From 97e17546cc6c7b5a5ad587050c350556b8dda573 Mon Sep 17 00:00:00 2001 From: Matt Bowen <83967628+mattbowen-usds@users.noreply.github.com> Date: Wed, 10 Aug 2022 16:02:59 -0400 Subject: [PATCH] Refactor DOE Energy Burden and COI to use YAML (#1796) * added tribalId for Supplemental dataset (#1804) * Setting zoom levels for tribal map (#1810) * NRI dataset and initial score YAML configuration (#1534) * update be staging gha * NRI dataset and initial score YAML configuration * checkpoint * adding data checks for release branch * passing tests * adding INPUT_EXTRACTED_FILE_NAME to base class * lint * columns to keep and tests * update be staging gha * checkpoint * update be staging gha * NRI dataset and initial score YAML configuration * checkpoint * adding data checks for release branch * passing tests * adding INPUT_EXTRACTED_FILE_NAME to base class * lint * columns to keep and tests * checkpoint * PR Review * renoving source url * tests * stop execution of ETL if there's a YAML schema issue * update be staging gha * adding source url as class var again * clean up * force cache bust * gha cache bust * dynamically set score vars from YAML * docsctrings * removing last updated year - optional reverse percentile * passing tests * sort order * column ordening * PR review * class level vars * Updating DatasetsConfig * fix pylint errors * moving metadata hint back to code Co-authored-by: lucasmbrown-usds * Correct copy typo (#1809) * Add basic test suite for COI (#1518) * Update COI to use new yaml (#1518) * Add tests for DOE energy budren (1518 * Add dataset config for energy budren (1518) * Refactor ETL to use datasets.yml (#1518) * Add fake GEOIDs to COI tests (#1518) * Refactor _setup_etl_instance_and_run_extract to base (#1518) For the three classes we've done so far, a generic _setup_etl_instance_and_run_extract will work fine, for the moment we can reuse the same setup method until we decide future classes need more flexibility --- but they can also always subclass so... * Add output-path tests (#1518) * Update YAML to match constant (#1518) * Don't blindly set float format (#1518) * Add defaults for extract (#1518) * Run YAML load on all subclasses (#1518) * Update description fields (#1518) * Update YAML per final format (#1518) * Update fixture tract IDs (#1518) * Update base class refactor (#1518) Now that NRI is final I needed to make a small number of updates to my refactored code. * Remove old comment (#1518) * Fix type signature and return (#1518) * Update per code review (#1518) Co-authored-by: Jorge Escobar <83969469+esfoobar-usds@users.noreply.github.com> Co-authored-by: lucasmbrown-usds Co-authored-by: Vim <86254807+vim-usds@users.noreply.github.com> --- data/data-pipeline/data_pipeline/etl/base.py | 96 ++++++++++-------- .../etl/score/config/datasets.yml | 52 ++++++++++ .../sources/child_opportunity_index/etl.py | 72 ++++++------- .../etl/sources/doe_energy_burden/etl.py | 56 ++++------ .../etl/sources/national_risk_index/etl.py | 3 - .../child_opportunity_index/__init__.py | 0 .../child_opportunity_index/data/coi.zip | Bin 0 -> 5858 bytes .../child_opportunity_index/data/extract.csv | 11 ++ .../child_opportunity_index/data/output.csv | 16 +++ .../child_opportunity_index/data/raw.csv | 28 +++++ .../data/transform.csv | 16 +++ .../child_opportunity_index/test_etl.py | 69 +++++++++++++ .../sources/doe_energy_burden/__init__.py | 0 .../data/DOE_LEAD_AMI_TRACT_2018_ALL.csv.zip | Bin 0 -> 382 bytes .../doe_energy_burden/data/extract.csv | 16 +++ .../sources/doe_energy_burden/data/output.csv | 16 +++ .../doe_energy_burden/data/transform.csv | 16 +++ .../sources/doe_energy_burden/test_etl.py | 61 +++++++++++ .../tests/sources/example/data/extract.csv | 6 +- .../tests/sources/example/data/input.zip | Bin 390 -> 366 bytes .../tests/sources/example/data/output.csv | 6 +- .../tests/sources/example/data/transform.csv | 6 +- .../tests/sources/example/test_etl.py | 49 ++++++--- .../data/NRI_Table_CensusTracts.zip | Bin 64366 -> 64404 bytes .../national_risk_index/data/extract.csv | 6 +- .../national_risk_index/data/output.csv | 6 +- .../national_risk_index/data/transform.csv | 6 +- .../sources/national_risk_index/test_etl.py | 31 ------ 28 files changed, 455 insertions(+), 189 deletions(-) create mode 100644 data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/__init__.py create mode 100644 data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/data/coi.zip create mode 100644 data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/data/extract.csv create mode 100644 data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/data/output.csv create mode 100644 data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/data/raw.csv create mode 100644 data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/data/transform.csv create mode 100644 data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/test_etl.py create mode 100644 data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/__init__.py create mode 100644 data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/data/DOE_LEAD_AMI_TRACT_2018_ALL.csv.zip create mode 100644 data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/data/extract.csv create mode 100644 data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/data/output.csv create mode 100644 data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/data/transform.csv create mode 100644 data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/test_etl.py diff --git a/data/data-pipeline/data_pipeline/etl/base.py b/data/data-pipeline/data_pipeline/etl/base.py index 873aa74c..b6ef269b 100644 --- a/data/data-pipeline/data_pipeline/etl/base.py +++ b/data/data-pipeline/data_pipeline/etl/base.py @@ -46,7 +46,8 @@ class ExtractTransformLoad: DATA_PATH: pathlib.Path = APP_ROOT / "data" TMP_PATH: pathlib.Path = DATA_PATH / "tmp" CONTENT_CONFIG: pathlib.Path = APP_ROOT / "content" / "config" - DATASET_CONFIG: pathlib.Path = APP_ROOT / "etl" / "score" / "config" + DATASET_CONFIG_PATH: pathlib.Path = APP_ROOT / "etl" / "score" / "config" + DATASET_CONFIG: Optional[dict] = None # Parameters GEOID_FIELD_NAME: str = "GEOID10" @@ -98,48 +99,51 @@ class ExtractTransformLoad: # It is used on the "load" base class method output_df: pd.DataFrame = None + def __init_subclass__(cls) -> None: + cls.DATASET_CONFIG = cls.yaml_config_load() + @classmethod - def yaml_config_load(cls) -> dict: + def yaml_config_load(cls) -> Optional[dict]: """Generate config dictionary and set instance variables from YAML dataset.""" - - # check if the class instance has score YAML definitions - datasets_config = load_yaml_dict_from_file( - cls.DATASET_CONFIG / "datasets.yml", - DatasetsConfig, - ) - - # get the config for this dataset - try: - dataset_config = next( - item - for item in datasets_config.get("datasets") - if item["module_name"] == cls.NAME + if cls.NAME is not None: + # check if the class instance has score YAML definitions + datasets_config = load_yaml_dict_from_file( + cls.DATASET_CONFIG_PATH / "datasets.yml", + DatasetsConfig, ) - except StopIteration: - # Note: it'd be nice to log the name of the dataframe, but that's not accessible in this scope. - logger.error( - f"Exception encountered while extracting dataset config for dataset {cls.NAME}" - ) - sys.exit() - # set some of the basic fields - cls.INPUT_GEOID_TRACT_FIELD_NAME = dataset_config[ - "input_geoid_tract_field_name" - ] + # get the config for this dataset + try: + dataset_config = next( + item + for item in datasets_config.get("datasets") + if item["module_name"] == cls.NAME + ) + except StopIteration: + # Note: it'd be nice to log the name of the dataframe, but that's not accessible in this scope. + logger.error( + f"Exception encountered while extracting dataset config for dataset {cls.NAME}" + ) + sys.exit() - # get the columns to write on the CSV - # and set the constants - cls.COLUMNS_TO_KEEP = [ - cls.GEOID_TRACT_FIELD_NAME, # always index with geoid tract id - ] - for field in dataset_config["load_fields"]: - cls.COLUMNS_TO_KEEP.append(field["long_name"]) + # set some of the basic fields + cls.INPUT_GEOID_TRACT_FIELD_NAME = dataset_config[ + "input_geoid_tract_field_name" + ] - # set the constants for the class - setattr(cls, field["df_field_name"], field["long_name"]) + # get the columns to write on the CSV + # and set the constants + cls.COLUMNS_TO_KEEP = [ + cls.GEOID_TRACT_FIELD_NAME, # always index with geoid tract id + ] + for field in dataset_config["load_fields"]: + cls.COLUMNS_TO_KEEP.append(field["long_name"]) + setattr(cls, field["df_field_name"], field["long_name"]) - # return the config dict - return dataset_config + # set the constants for the class + setattr(cls, field["df_field_name"], field["long_name"]) + return dataset_config + return None # This is a classmethod so it can be used by `get_data_frame` without # needing to create an instance of the class. This is a use case in `etl_score`. @@ -176,14 +180,18 @@ class ExtractTransformLoad: to get the file from a source url, unzips it and stores it on an extract_path.""" - # this can be accessed via super().extract() - if source_url and extract_path: - unzip_file_from_url( - file_url=source_url, - download_path=self.get_tmp_path(), - unzipped_file_path=extract_path, - verify=verify, - ) + if source_url is None: + source_url = self.SOURCE_URL + + if extract_path is None: + extract_path = self.get_tmp_path() + + unzip_file_from_url( + file_url=source_url, + download_path=self.get_tmp_path(), + unzipped_file_path=extract_path, + verify=verify, + ) def transform(self) -> None: """Transform the data extracted into a format that can be consumed by the diff --git a/data/data-pipeline/data_pipeline/etl/score/config/datasets.yml b/data/data-pipeline/data_pipeline/etl/score/config/datasets.yml index 8bcf72ea..5316fadd 100644 --- a/data/data-pipeline/data_pipeline/etl/score/config/datasets.yml +++ b/data/data-pipeline/data_pipeline/etl/score/config/datasets.yml @@ -77,3 +77,55 @@ datasets: df_field_name: "CONTAINS_AGRIVALUE" long_name: "Contains agricultural value" field_type: bool + - long_name: "Child Opportunity Index 2.0 database" + short_name: "coi" + module_name: "child_opportunity_index" + input_geoid_tract_field_name: "geoid" + load_fields: + - short_name: "he_heat" + df_field_name: "EXTREME_HEAT_FIELD" + long_name: "Summer days above 90F" + field_type: float + include_in_downloadable_files: true + include_in_tiles: true + - short_name: "he_food" + long_name: "Percent low access to healthy food" + df_field_name: "HEALTHY_FOOD_FIELD" + field_type: float + include_in_downloadable_files: true + include_in_tiles: true + - short_name: "he_green" + long_name: "Percent impenetrable surface areas" + df_field_name: "IMPENETRABLE_SURFACES_FIELD" + field_type: float + include_in_downloadable_files: true + include_in_tiles: true + - short_name: "ed_reading" + df_field_name: "READING_FIELD" + long_name: "Third grade reading proficiency" + field_type: float + include_in_downloadable_files: true + include_in_tiles: true + - long_name: "Low-Income Energy Affordabililty Data" + short_name: "LEAD" + module_name: "doe_energy_burden" + input_geoid_tract_field_name: "FIP" + load_fields: + - short_name: "EBP_PFS" + df_field_name: "REVISED_ENERGY_BURDEN_FIELD_NAME" + long_name: "Energy burden" + field_type: float + include_in_downloadable_files: true + include_in_tiles: true + - long_name: "Example ETL" + short_name: "Example" + module_name: "example_dataset" + input_geoid_tract_field_name: "GEOID10_TRACT" + load_fields: + - short_name: "EXAMPLE_FIELD" + df_field_name: "Input Field 1" + long_name: "Example Field 1" + field_type: float + include_in_tiles: true + include_in_downloadable_files: true + diff --git a/data/data-pipeline/data_pipeline/etl/sources/child_opportunity_index/etl.py b/data/data-pipeline/data_pipeline/etl/sources/child_opportunity_index/etl.py index eb9de9db..b3e40e3a 100644 --- a/data/data-pipeline/data_pipeline/etl/sources/child_opportunity_index/etl.py +++ b/data/data-pipeline/data_pipeline/etl/sources/child_opportunity_index/etl.py @@ -1,9 +1,8 @@ from pathlib import Path import pandas as pd -from data_pipeline.etl.base import ExtractTransformLoad -from data_pipeline.score import field_names -from data_pipeline.utils import get_module_logger, unzip_file_from_url +from data_pipeline.etl.base import ExtractTransformLoad, ValidGeoLevel +from data_pipeline.utils import get_module_logger logger = get_module_logger(__name__) @@ -21,15 +20,27 @@ class ChildOpportunityIndex(ExtractTransformLoad): Full technical documents: https://www.diversitydatakids.org/sites/default/files/2020-02/ddk_coi2.0_technical_documentation_20200212.pdf. Github repo: https://github.com/diversitydatakids/COI/ - """ + # Metadata for the baseclass + NAME = "child_opportunity_index" + GEO_LEVEL = ValidGeoLevel.CENSUS_TRACT + + # Define these for easy code completion + EXTREME_HEAT_FIELD: str + HEALTHY_FOOD_FIELD: str + IMPENETRABLE_SURFACES_FIELD: str + READING_FIELD: str + def __init__(self): - self.COI_FILE_URL = ( + self.SOURCE_URL = ( "https://data.diversitydatakids.org/datastore/zip/f16fff12-b1e5-4f60-85d3-" "3a0ededa30a0?format=csv" ) + # TODO: Decide about nixing this + self.TRACT_INPUT_COLUMN_NAME = self.INPUT_GEOID_TRACT_FIELD_NAME + self.OUTPUT_PATH: Path = ( self.DATA_PATH / "dataset" / "child_opportunity_index" ) @@ -40,31 +51,19 @@ class ChildOpportunityIndex(ExtractTransformLoad): self.IMPENETRABLE_SURFACES_INPUT_FIELD = "HE_GREEN" self.READING_INPUT_FIELD = "ED_READING" - # Constants for output - self.COLUMNS_TO_KEEP = [ - self.GEOID_TRACT_FIELD_NAME, - field_names.EXTREME_HEAT_FIELD, - field_names.HEALTHY_FOOD_FIELD, - field_names.IMPENETRABLE_SURFACES_FIELD, - field_names.READING_FIELD, - ] - - self.raw_df: pd.DataFrame self.output_df: pd.DataFrame def extract(self) -> None: logger.info("Starting 51MB data download.") - - unzip_file_from_url( - file_url=self.COI_FILE_URL, - download_path=self.get_tmp_path(), - unzipped_file_path=self.get_tmp_path() / "child_opportunity_index", + super().extract( + source_url=self.SOURCE_URL, + extract_path=self.get_tmp_path(), ) - self.raw_df = pd.read_csv( - filepath_or_buffer=self.get_tmp_path() - / "child_opportunity_index" - / "raw.csv", + def transform(self) -> None: + logger.info("Starting transforms.") + raw_df = pd.read_csv( + filepath_or_buffer=self.get_tmp_path() / "raw.csv", # The following need to remain as strings for all of their digits, not get # converted to numbers. dtype={ @@ -73,16 +72,13 @@ class ChildOpportunityIndex(ExtractTransformLoad): low_memory=False, ) - def transform(self) -> None: - logger.info("Starting transforms.") - - output_df = self.raw_df.rename( + output_df = raw_df.rename( columns={ self.TRACT_INPUT_COLUMN_NAME: self.GEOID_TRACT_FIELD_NAME, - self.EXTREME_HEAT_INPUT_FIELD: field_names.EXTREME_HEAT_FIELD, - self.HEALTHY_FOOD_INPUT_FIELD: field_names.HEALTHY_FOOD_FIELD, - self.IMPENETRABLE_SURFACES_INPUT_FIELD: field_names.IMPENETRABLE_SURFACES_FIELD, - self.READING_INPUT_FIELD: field_names.READING_FIELD, + self.EXTREME_HEAT_INPUT_FIELD: self.EXTREME_HEAT_FIELD, + self.HEALTHY_FOOD_INPUT_FIELD: self.HEALTHY_FOOD_FIELD, + self.IMPENETRABLE_SURFACES_INPUT_FIELD: self.IMPENETRABLE_SURFACES_FIELD, + self.READING_INPUT_FIELD: self.READING_FIELD, } ) @@ -95,8 +91,8 @@ class ChildOpportunityIndex(ExtractTransformLoad): # Convert percents from 0-100 to 0-1 to standardize with our other fields. percent_fields_to_convert = [ - field_names.HEALTHY_FOOD_FIELD, - field_names.IMPENETRABLE_SURFACES_FIELD, + self.HEALTHY_FOOD_FIELD, + self.IMPENETRABLE_SURFACES_FIELD, ] for percent_field_to_convert in percent_fields_to_convert: @@ -105,11 +101,3 @@ class ChildOpportunityIndex(ExtractTransformLoad): ) self.output_df = output_df - - def load(self) -> None: - logger.info("Saving CSV") - - self.OUTPUT_PATH.mkdir(parents=True, exist_ok=True) - self.output_df[self.COLUMNS_TO_KEEP].to_csv( - path_or_buf=self.OUTPUT_PATH / "usa.csv", index=False - ) diff --git a/data/data-pipeline/data_pipeline/etl/sources/doe_energy_burden/etl.py b/data/data-pipeline/data_pipeline/etl/sources/doe_energy_burden/etl.py index 80407d39..52e8d3f0 100644 --- a/data/data-pipeline/data_pipeline/etl/sources/doe_energy_burden/etl.py +++ b/data/data-pipeline/data_pipeline/etl/sources/doe_energy_burden/etl.py @@ -2,63 +2,48 @@ from pathlib import Path import pandas as pd from data_pipeline.config import settings -from data_pipeline.etl.base import ExtractTransformLoad -from data_pipeline.utils import get_module_logger, unzip_file_from_url +from data_pipeline.etl.base import ExtractTransformLoad, ValidGeoLevel +from data_pipeline.utils import get_module_logger logger = get_module_logger(__name__) class DOEEnergyBurden(ExtractTransformLoad): - def __init__(self): - self.DOE_FILE_URL = ( - settings.AWS_JUSTICE40_DATASOURCES_URL - + "/DOE_LEAD_AMI_TRACT_2018_ALL.csv.zip" - ) + NAME = "doe_energy_burden" + SOURCE_URL: str = ( + settings.AWS_JUSTICE40_DATASOURCES_URL + + "/DOE_LEAD_AMI_TRACT_2018_ALL.csv.zip" + ) + GEO_LEVEL = ValidGeoLevel.CENSUS_TRACT + REVISED_ENERGY_BURDEN_FIELD_NAME: str + + def __init__(self): self.OUTPUT_PATH: Path = ( self.DATA_PATH / "dataset" / "doe_energy_burden" ) - - self.TRACT_INPUT_COLUMN_NAME = "FIP" self.INPUT_ENERGY_BURDEN_FIELD_NAME = "BURDEN" - self.REVISED_ENERGY_BURDEN_FIELD_NAME = "Energy burden" - - # Constants for output - self.COLUMNS_TO_KEEP = [ - self.GEOID_TRACT_FIELD_NAME, - self.REVISED_ENERGY_BURDEN_FIELD_NAME, - ] self.raw_df: pd.DataFrame self.output_df: pd.DataFrame - def extract(self) -> None: - logger.info("Starting data download.") - - unzip_file_from_url( - file_url=self.DOE_FILE_URL, - download_path=self.get_tmp_path(), - unzipped_file_path=self.get_tmp_path() / "doe_energy_burden", - ) - - self.raw_df = pd.read_csv( + def transform(self) -> None: + logger.info("Starting DOE Energy Burden transforms.") + raw_df: pd.DataFrame = pd.read_csv( filepath_or_buffer=self.get_tmp_path() - / "doe_energy_burden" / "DOE_LEAD_AMI_TRACT_2018_ALL.csv", # The following need to remain as strings for all of their digits, not get converted to numbers. dtype={ - self.TRACT_INPUT_COLUMN_NAME: "string", + self.INPUT_GEOID_TRACT_FIELD_NAME: "string", }, low_memory=False, ) - def transform(self) -> None: - logger.info("Starting transforms.") - - output_df = self.raw_df.rename( + logger.info("Renaming columns and ensuring output format is correct") + output_df = raw_df.rename( columns={ self.INPUT_ENERGY_BURDEN_FIELD_NAME: self.REVISED_ENERGY_BURDEN_FIELD_NAME, - self.TRACT_INPUT_COLUMN_NAME: self.GEOID_TRACT_FIELD_NAME, + self.INPUT_GEOID_TRACT_FIELD_NAME: self.GEOID_TRACT_FIELD_NAME, } ) @@ -75,7 +60,4 @@ class DOEEnergyBurden(ExtractTransformLoad): def load(self) -> None: logger.info("Saving DOE Energy Burden CSV") - self.OUTPUT_PATH.mkdir(parents=True, exist_ok=True) - self.output_df[self.COLUMNS_TO_KEEP].to_csv( - path_or_buf=self.OUTPUT_PATH / "usa.csv", index=False - ) + super().load() diff --git a/data/data-pipeline/data_pipeline/etl/sources/national_risk_index/etl.py b/data/data-pipeline/data_pipeline/etl/sources/national_risk_index/etl.py index 5b14d79b..0b7ff12e 100644 --- a/data/data-pipeline/data_pipeline/etl/sources/national_risk_index/etl.py +++ b/data/data-pipeline/data_pipeline/etl/sources/national_risk_index/etl.py @@ -33,9 +33,6 @@ class NationalRiskIndexETL(ExtractTransformLoad): AGRIVALUE_LOWER_BOUND = 408000 def __init__(self): - # load YAML config - self.DATASET_CONFIG = super().yaml_config_load() - # define the full path for the input CSV file self.INPUT_CSV = self.get_tmp_path() / "NRI_Table_CensusTracts.csv" diff --git a/data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/__init__.py b/data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/data/coi.zip b/data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/data/coi.zip new file mode 100644 index 0000000000000000000000000000000000000000..a5289deb1e6f4f324c09c9887ccfcedb86fb5c2a GIT binary patch literal 5858 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 + --snapshot-update + """ + + _ETL_CLASS = ChildOpportunityIndex + + _SAMPLE_DATA_PATH = pathlib.Path(__file__).parents[0] / "data" + _SAMPLE_DATA_FILE_NAME = "raw.csv" + _SAMPLE_DATA_ZIP_FILE_NAME = "coi.zip" + _EXTRACT_TMP_FOLDER_NAME = "ChildOpportunityIndex" + _EXTRACT_CSV_FILE_NAME = "raw.csv" + + def setup_method(self, _method, filename=__file__): + """Invoke `setup_method` from Parent, but using the current file name. + + This code can be copied identically between all child classes. + """ + super().setup_method(_method=_method, filename=filename) + + def test_init(self, mock_etl, mock_paths): + """Tests that the ChildOpportunityIndexETL class was initialized + correctly. + """ + + etl = ChildOpportunityIndex() + data_path, _ = mock_paths + assert etl.DATA_PATH == data_path + assert etl.COLUMNS_TO_KEEP == [ + "GEOID10_TRACT", + "Summer days above 90F", + "Percent low access to healthy food", + "Percent impenetrable surface areas", + "Third grade reading proficiency", + ] + assert etl.GEOID_FIELD_NAME == "GEOID10" + assert etl.GEOID_TRACT_FIELD_NAME == "GEOID10_TRACT" + assert etl.TRACT_INPUT_COLUMN_NAME == "geoid" + assert etl.EXTREME_HEAT_INPUT_FIELD == "HE_HEAT" + assert etl.HEALTHY_FOOD_INPUT_FIELD == "HE_FOOD" + assert etl.IMPENETRABLE_SURFACES_INPUT_FIELD == "HE_GREEN" + assert etl.READING_INPUT_FIELD == "ED_READING" + + def test_get_output_file_path(self, mock_etl, mock_paths): + """Tests the right file name is returned.""" + etl = self._ETL_CLASS() + data_path, tmp_path = mock_paths + + output_file_path = etl._get_output_file_path() + expected_output_file_path = ( + data_path / "dataset" / "child_opportunity_index" / "usa.csv" + ) + assert output_file_path == expected_output_file_path diff --git a/data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/__init__.py b/data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/data/DOE_LEAD_AMI_TRACT_2018_ALL.csv.zip b/data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/data/DOE_LEAD_AMI_TRACT_2018_ALL.csv.zip new file mode 100644 index 0000000000000000000000000000000000000000..32c1edae978e4dd44126f6390ed9a29ea36d9e97 GIT binary patch literal 382 zcmWIWW@Zs#U|`^2F!bjNRr{13vkJ)TW@KQHXOLlV@pp~)admWwcl7m)4+(N~4v9B1 zFtmtw^zqS4E-niV;bdU;-T67`@63lur4`%^j4Ush85qDs?1j60hZJ~NA5;t9e{y6? z>!;$KFMCwd0w34>cNe_Tc2HXHm!tn_gSrA={+`pXjm}o+9sc9@{bj`t)eS<1oX?p{ zl!OyjH0!YHIB#M04sy_$^I9PwS5@#7ug}7*Q!6qu9-N${9Bi!9^8diKl{`A754Q8L z_wpwBMt%>FxPMSi@57yg``GuCea+?VXWu=& zT#IABHpT~dGcw6B;|c@`U~n)n0K0p6@^AnlAmm + --snapshot-update + """ + + _ETL_CLASS = DOEEnergyBurden + + _SAMPLE_DATA_PATH = pathlib.Path(__file__).parents[0] / "data" + _SAMPLE_DATA_FILE_NAME = "DOE_LEAD_AMI_TRACT_2018_ALL.csv" + _SAMPLE_DATA_ZIP_FILE_NAME = "DOE_LEAD_AMI_TRACT_2018_ALL.csv.zip" + _EXTRACT_TMP_FOLDER_NAME = "DOEEnergyBurden" + _EXTRACT_CSV_FILE_NAME = "extract.csv" + + def setup_method(self, _method, filename=__file__): + """Invoke `setup_method` from Parent, but using the current file name. + + This code can be copied identically between all child classes. + """ + super().setup_method(_method=_method, filename=filename) + + def test_init(self, mock_etl, mock_paths): + """Tests that the ChildOpportunityIndexETL class was initialized + correctly. + """ + + etl = DOEEnergyBurden() + data_path, _ = mock_paths + assert etl.DATA_PATH == data_path + assert etl.COLUMNS_TO_KEEP == ["GEOID10_TRACT", "Energy burden"] + assert etl.GEOID_FIELD_NAME == "GEOID10" + assert etl.GEOID_TRACT_FIELD_NAME == "GEOID10_TRACT" + assert etl.INPUT_GEOID_TRACT_FIELD_NAME == "FIP" + assert etl.INPUT_ENERGY_BURDEN_FIELD_NAME == "BURDEN" + assert etl.REVISED_ENERGY_BURDEN_FIELD_NAME == "Energy burden" + + def test_get_output_file_path(self, mock_etl, mock_paths): + """Tests the right file name is returned.""" + etl = self._ETL_CLASS() + data_path, tmp_path = mock_paths + + output_file_path = etl._get_output_file_path() + expected_output_file_path = ( + data_path / "dataset" / "doe_energy_burden" / "usa.csv" + ) + assert output_file_path == expected_output_file_path diff --git a/data/data-pipeline/data_pipeline/tests/sources/example/data/extract.csv b/data/data-pipeline/data_pipeline/tests/sources/example/data/extract.csv index 8531b3b3..6a5bdf73 100644 --- a/data/data-pipeline/data_pipeline/tests/sources/example/data/extract.csv +++ b/data/data-pipeline/data_pipeline/tests/sources/example/data/extract.csv @@ -1,7 +1,7 @@ GEOID10_TRACT,Input Field 1 -06007040300,2.0000000000 -06001020100,6.1000000000 -06007040500,-7.8000000000 +06027000800,2.0000000000 +06069000802,6.1000000000 +06061021322,-7.8000000000 15001021010,12.0000000000 15001021101,12.0552478300 15007040603,13.5141757800 diff --git a/data/data-pipeline/data_pipeline/tests/sources/example/data/input.zip b/data/data-pipeline/data_pipeline/tests/sources/example/data/input.zip index 17293f6cb181b5b6e4a948e43955e2e744c81f8f..d0a8235cb44cab35e2398416ae2b00ff6ec1d639 100644 GIT binary patch literal 366 zcmWIWW@Zs#U|`^2_~OGAS`^)(e+5V-*$ww63R(-Y20qkW>wog-t7E)J z1fCUrk@_t=CBx#U$cIarOV%wpb=KMJ!4)G%t|eMhF}7kS?lCsVUA${{!P6*@Y4N=^ z|6O?xEOuVS-F@hmR{l=?C?-YLoW??NoyATnSHiFSNu1gdT5_{EZuJ(24N1(&izDx@ zYIEQ5_5bs&j5mTyQV#0}cr!A|G2;pf31FZwFaSe^VM!y1g%mKXkbpr8lmKs5HjqL_ MAoK^)oFKgn0GR@Y>i_@% literal 390 zcmWIWW@Zs#-~dAAiH;!*P>{#Sz`)6%z>t|&P+FpwTwE3!!pp!OzV~Nh77%9uacKoN z10%~fpgN#-1_s{=yR(`Nd0M|a+*9O#AR&8lSB1{r7N5omd%dkiyk1_|SO4_BNcx6{ zbNsC))mH7BGv8tT_Sc6Wubs1hUwu8FzWn?7`Rs4XQ(XLdTULCSqHxan=quUlCVg?q z`r;>fi*K6p3U#!l#+XR?fv}g zYzh7sAJzwWvvYj4W&3dm=o^st1H2iTM3@mlgDeLM8W>p82x1W(PyyboY#JC_>j{MNDOv6;?45lAB8?gE@A{^eBH3JA-lT*I>TUT= z!^IqyRrdJ2igFG$w`arQQI+9h7F7OXA5{j(_>{~o%?rbx-*mg~LGL%Kz)S4xh49U zgOo`&U;9cPjh-*i-fy;Zfcx`Vhxg~y*nKCZ2}Kr%H8~(J*b=A&+ErP72(9i-qHP`_9BJvK*|2r zMQRY*Nze2C(fZAa@auL<$=J%aj{$!si$M3b56|Z7(0waQ68k>fv+Nq;vP!blCOu^X=uVkNJH& zp|4JCO60fyBYNGOc)2`X`gEV<{dx;?2XxL;`(|HPblW#)|HHTLbz?0AzIbuDF%k4? zA!ahN>fUzww`!jjVqXvt>t_(Fl*;=G-oMw8=r|I)g?fAm*vOEV!; z&Ov)>f%3_8&B^q!@3nhP7)i-J$$Jan{$$Ue+3hVfCc`XE@=N++u}}FrK6=ynuQCv` zz5MlmH2v2{fz1oA2dAg~bqBz`&4@qq!d(a$d;Kq~`^j|49K*< z>;0p?$D>!T2W!D6S3y2skFL$zzu|7*dr_{?_RJvWt;M!()q`{f8o4s{Ka-bJnQu~2bbR_ti;Id%h_V) zf89JNc;x>3@=vtSekuPKjQ>V#U&*rps<0C9ux@jI=Ge9Q$oNkw{VSWoz=X8hKlOBL z)yngK)GF!jYUvWR$@_Lp)@;9RY&N%b8 zC(f~LX?gYc%eUS4r|#h6#F{SD3*Y;{g%taK9s7R8GRxAPC6@lSPV#;?1f;)h*8tCB z-ETnRz2f1+;+LF`oMw`fvQ+CR9r;DPLzegAIK7&UWU$^G9Oxb(d*Gwe4!WQUosllT z8$9>9E~2Rhjg^``J(LK)|1o;s2VRaR-#0g3&uiYlmCIgO72T%z#t1(2lvTPH>xjvg z?OQFDnM9oiZ7k*+`gmlq>Cf}KR_U0Hkd>4jqq?$t0W&PJ>m_sp0%}feeKTS)O^216 z0@3Gsu2ctx-U>idG}t!%rhRt`c*yK46>Ov%RJ&={n?ai!j!MDHrR$$wqt(^k))Oli z55mwt!zb`9@QY9`vU7Oce7_ZbKkk10Ya_@0IcRS&HQuMJDYOh`QJ&}B=fkbB@ z5QJ&)ha##glMXG6l3H7gvFW%h2`pBo&f}3b&1!5B1>BBb-9LA~ooseK*Sz0OzF+0M zJpgZy%0q|5Z!OhELsmUuKlC@H1;rIKP z$)>i-Az_d*=i{8%lxCzK>AEQlThJtysoWR+m-(wxc{?smnPiu~>sXV5!Jtc)kgAYZYR;J)> zkiUf=)=X2-m)WYF-1nc`3U)UFsGHkS_U-#giJ@-1SiaHV4KMV}V=rWjBUbC&jO^P@ z-#M7)vG?2j`*H{0_xHC&;nx!2bryJQcL#vSvCX%KFDP5U`vvfHF?8_?>t0GXBRwz9 zSmyKSzINw*fGa;Lc_IlbF69(Fbjp6XF8-VmvAm)j`v)z|-iI98@m% zrE))=3o{|C0!Dp;R$SiM99K!d5xhq~!QTy?sme*4)AYhw@$GZa4q&UzlXC}xO%E3f zJonZHj0CX^{R`6=hETcIWPEOB5D=q5!ti#JomQcZ&V}80)9}^0lRvPKO$W+Z)!H*W z;umP<$-%jcNwd`|gd{B^@3W#2qdJyZ71Larc>Pp?LB+$W02!H#7^p^y#8Zb9XM#~)e4raM8= z^)pcIPASvRCoBy#_z;a4M1UYaqd`+HDqeYlE|vpk{=(&x?ham?+eQ$ z(3#(}lIJu+Alh4k#h;7+fZm=@LM6CYxdXBH2RKxdisCik`HH}awq8f|21}xXbj4zFFbJw6Zpmk}9X-f4v`v=D z(uv2&Gc+j9qv8nZ`IL&4uRE313AJCS8YHngFRo69qGCe6fQv`{&$sAk^%s*a_V!$T z5koZ8Ff7t?0x@||D%avH@2FW5kKqQbJm9P5o1N4Pz2&a!0kM#@Eb@9jDBBO+W)5oL zN#G#&dbD}JOn;hvT3j)zY(@(&uKEi{{;$L@MP0Y7Yz-6-#O8$i$lOB3M3cTMn8GP} z_+S&NgM)}-Evq&pPvP`<*>1gscBj6GoMiP90lJG>zLYj0c5<`qRZhIUF>YdW{j$E1L`-)RaLyQu5Xn*A{oW z;~!3WSxE*hCayKW=CvCpT6Rr>&qOF8@W&a}E#_b@(RN;zV?0W1$DW2Kzva*oH(gp9?m9|7IP-kgW)Ic-1yLabf*!!B*l2s*dOq;#lV5DNSniy0pMg zAzvjJ5kqkz=_X=Orx->8rQ#eNPCim{AE%Dq9b>hnQ)-vZ4*YcfIW+S~Js=e^j1B)= zT6$T?b8qj)FrD%dNB1y(b=y}P#Q;J4U7Iy40!S(W?Md!&j2>?W&(Aw_dwd*dUl@f& z-S9l$-t&=WOAEH@JRUhGwobY}I%5dzDKhZyVLOdrxn-(D;dZqaY$yy!b;|2$Ff)e5^23EzU>c@qmFWqt12W)!hK@P3GiJ=EKw8t3$OS?JV|qD;fw z)q|Bk=uktYD6WlhLtWjp_C5c|uDv0j6liF5gLSjGcqXhi^*wQ(A0C9Sv(eo^D6jgV zQBm>Zn!qCBo2n2+;oQPDm@$jit|VMF5^;UhWQ2>z7HcR%d&XAxlddZfriU1QUqNlx(=i zu0kiFKp*k)lGfTsSx}XrwjhN+zu;7&E*X+qp)PjaldP7^MLFVH!;b8u-_GS6j-lGx zbiO3ANT-(`WG%s7ZQCfS9;)cb5Av`=2xhA_9K3b9Id8aPIo{Hb;=d6MQURWYlkWVt zhQUO^MUAAxp>f+IskIAQQq2}UpsQWS3Q3w3d z+O%@E0%1hOtE9G$+WH-tK!)q2j(SBoGi>Q&bt*L{m<}aTwGR(7>lTP<}?_p{-etkqSz^pZ;2D8&sq;jlL$q;j&I zin@@V&$x>%(3Yqdmj#SZWoK8PEJIW@3q*#oGoAe_!v?$1c`C_8M)wkSl-DK6^pR29 z2dXt^&KRsW57s8efLU5CLhzb%hjNt04IZN$M#abRsXc4)mTa608%UcaC|2eoPbx1# zsTtI%-_uQ2dw<}Rl_y(=Cv6v+ij9-k=_7E4e(qcQLt2urG6YRPFkMW5tWT3GMZ@f+ z+^ghE#y)FrOXj~-tfG%QaFxos_YN*g1f*pjST%pk;JDZ01+wOzX8Vs{)XJxz9+bzO z8$hDpXMSX9&$snV6X;03os(RbJEWZ}Y*ZoPn?P6eXA46WQCSjnkjZc`3 z-y!Tzko;y?UBt@Ush`%XWn)jItx!g=5~3OR;l>$R6qTltZK=!?rY4DVSiB)k6Gj0P z#=m$T*z)nWI}k7gPvkn;X1p{H8I=D48cEIer=ohK5?Z%<#&%Vl_6e=^2r75!h9(z% zs{ehQfreTo6?0;!;%|)(RQZR-e)w+|rxj2TovOkPKgNBoo=lPi)PJrLhC5S@-=B_K zZh;8De@wFkCnWnJvuo#u$^4$a{49dTSqE9NXZeWBz5@J){&Cl&aiP{7w|}WWr%xv* z4zbaYS!}A#U5}i6uBr;NAFrN-TS)H+lj;1A9@y5waO_QHn^_Xh@)DRRdZ zy+Q&3m?h=t$+S$V39@sMV%kL>dn$9uqs4S6T0S%tHT@dIo2h4RA()ms{Zfh?`(=|* zu13I=^QwnHL7cmXbVoAX*=(Y9MIId|Z3G@n8RBpD+Juktu!AavM%ds-iCYT_@2}Y9 zDVCn4#Fdy(RK@rs>&FRmN*G=g@UUT;zN8iu_IjV_6Z>9%_0RspvgI@kGN z4FMSf9W99>)!E?K`b|SKxfm$>U(#$JNUQ<+5q@f`e8hUFXY26WUx-_zlVv;_J@&9d ze~^Yfyzy#wzC-=qM~Uxu4K?*Ml+CpFI6BiHrZt&k43DX|`)!2%(e+M3Os)E$ieCx0 z6lQWfzSt-3HAu{m9lJvV(IYVMwc1fP5+c~b$S0LZSe3m|Jy2Hjx*^izVjyHwe_#wq z(IiJRQJ0vNULHVLRPZU1QZ5i2n4xR>4iauN%vHi)8&}6y&X-h;)Dm2D5Q7ys7L z)zJwZT<2r;GdVffeIaM=N=U)r2+yRNSvD>FkG~hXtuG-ZZm5M0=S4L5uIW$Doc0VduybHnq%zI1@7 zd7b&d3LVOiwkYmVL=YrC4t_n{Xe%yUQR@d6qDHOapB|GQh$x)7tBH)!8%sEc&Hbn% z1ukIAK!2yH8*^G|9^|`6HP0?B$K7PFA1!hlv*~}E95|d`vos8oMFwOKwhW$UovV}S zz%=7m*weEv;xQ>QhIN=|a&ABw3sWyq$zHln+*}XIw$NW(w@b^ufFqYa#xBFOg6tc; zdd+7cS9~&?Oet+2A#4F%LOK%K3KD}VMHA|0Da1&hwvOO&g*Z=&6}1>#9?3fCc+UCg zBWR0!L0L;lRXL6=a`fc>BgqZjfo#&jYZodI;dGDa=bZh4fuR zN+{2?!Q6B8r^gAlET29q5ewn)=JE|6Y><4daa?iKu$D<=;vly7=&#)uhoG?l!=kgx zP1`@`+@Md_>1#{9*AWgw2ZBlOe>~0?V>Ut{Uji_;YW#%nRe#7++2!%E`~E^VD?!UY z!|-a}UAMiFopbbI<^KkJ-L7UVfg0VK0kxjs+`Bbo$|9JIj9Dbh&?j5a0G=!#9nti!az$xGwS9rD_OC5adk48c%I~zrX_q{nd-{a|t6fET>H2 zTB8!^+GzKhyo$I3{GgeYVU=@OaXxHAA(`1qC?$`w5A3-&kL?5carc*_Qy>f5n&P$- zA?mvc(wcf3?IUw2$xn#2DXyg6k_es}_yolQ^|OIi5&Ov%aD0QsGx{*N!*h$r5*B?5 zWLav~pgx2#C_x}U-I$?SXqaa?W8;?{{kHF5C}f1tK>H2EzOU@H&(~x7qN?oLgai@6 zoT5*xIwq;vpL9KQbA^A?q^2EJSj{req~U1f_IQ1xv@!~dFP)oCnK ziYUzdnD&wSm6htcE1pi$hLw|E@Af%)YpNWcc2G&Sc-#u<(@D8=w{GM@TSl)W+32)* zGD4wu4tB%Zz?3*)I;hFYoX88z4ku|sBVUxRj8|hC&t#&LkG#}}lH1?P_4IkY=ZeEfA*C+~%aq``WSx|i{iz&n*VAv0+aE1f};^)RqAJFoGLo1 zZBzw7GeCw|3;hp7wx-N4pPJw;$xQ+J4}~}E9K#yh8uFufoQsK>n0Bn&^4O?+N0;EvA{l0sSsZ}K2B|sU8 z#Jb>*k+8haxMK9432Ka&u_b4nadkoQXUpi|niJsP0ga@S%2t$GM0wUXM87 z1H|oo#tj5p4isvBbxGZ-()nZ)je@Eys5zIMampue(yVgt9o2^m^=UJLXe?1hr)tlubq11Gmz(V zgtR?sZB1-?9XV#pX361~^R0FD5vMl6#n=j+AW8I)HdKxtu@f6+VUMw;C#!yR-|&-V zQK8){mCe*XCXV3FOj6I!NJH}}Y;lJ7;QWnRLhv$|pwmM1G%5ek^tv8J;QKN_x-!PM z)}FS&E#6q?2{y&%!?eI~W-2I=>3uT7#-*=-%}0^2XuP1UmmfcY!m+B`lT%OH>YM&L zO*^5+RiYAMV}KY7K4?n`sKM1kQy}bws!1SEyAtrfqhh+AUqhUxo6z`FAk#mK+OqVg z7!D~m4XV3rFPN%sLziph(j5_yBB~UU67HcX>q3c{%76-mwbl7y#Ss>f8ft;qwbk)M z+xTv@ZMAv{6ER04F~ewt`$ud|MSJXL?qG#0{Ox8?8|9+agZ(+0gm65 zuGXi;5fO9O>zTP1yZ$?Yw;SB{UqXsDDiO!tN+hJF^KI7Si{IV+_}1uvZml^R)Yl`S zJUZ9tLHkGV6Ungw+Or;30d(BT%%Ny@NU3rCW&AwE`e13BW5dYEF1#M1=1IEe;*ym- z1syG;dgoE8?Z)%;2|J#H8+B{4uND!Id_7WSE?W3Z7uBcryawUqp3R^JpWbh7SBXDuMbq?gcYwfCdsTK z`GV@Q#XLdj(De{NFBwLGcrPu`*TEHU{accRu0cAF!>GCKb9`q#k}WkU{y50-S^`!l zI!o(FRJV%UphDcZS51~iJ!%crVh*SJE&j<;(O_sImjo>&v`ZH9g)Nm6ge`_UjNiny z=OZ@3;nhItdQy`3S-y{B8LH^c4y;v<%xNItJUkvNM1vpFJGS|2{K0xlqgW+t-S{cAUf#h6T>^vg$!kPdWB%rCW+HR zDCRKM+fn7}f1Ojx{pLhSY>W%FP6_hHGZmREL;A}3=}p%>0Ls?`6*g*H8nU_D?Eol_JEuIB)5Kmewo9%Q zAo@e;TqN9;jSRlyd_?ArKeoJk2MVRb=i)IllvOSunrJ-5T=dRX=R_?|8&?0P4K6j7 zM1oh0iYD*MJgIjfUwbC+4TS&-Tk)B5fHuXzX0XI1<(L;2C54!62KTOe{Ls&U+6(#? zs*p|WU@f*$o)D!ON?V^V!^3FEuVOK`m-F=E-$tfI zqD#d9+AvLd#Pm>_bh+5p#*ED5ja*f2-*;vSdcUFs}LXDhF{^O7#Fp;v+E5QNO{9oG$XiMH!*-O zfe>1}#!U&NSn@%GNuN^x;U-iexyG1jFCqridgqDOn>iuh==GC}Pbj^UQg@01XAG!^ z;>zH-xKGoets`d4HKGdNf12yEUvnRXIsgaKl2JM4_9}$tiJ34GT`k~zHL`ockA(D) z_M=OsdLdG)i1JIALGL(zK8QRfq=l0WzJ3X~##r#@$#GmC)J~J{EruPWqC};j+(`i1 z(BmUmmej_#V%VIS!ji*MmZ{WPPKdHk>$~e)koY4<9?|N@9HV035bQpGE_Kghx)!_- zFieHGH~xJ*@5Vy}j^BmR*!+0SCN{r?6R_2PgItCl{&2I3Yt5qU3d$#i61DunBH}1h z#wi45jX3iER&PR|Y&GW9C#bwwun7b3Uoo4b^z^_({z)#5wZBT99XiR02c$4WYlOLUwHzXhxwYz5UdRmp2LT<09X0v&M2cb)1h3K0X^@I%7V9h z(2C(_Y8j(=vd0uO;{noa4+wx&g-`HklILQOHWT@?#@sA4?a}QguC}iWxl=O7<;-O@ zLCsv%*92HrKE@LXeWRueTd0L=H`$&!Szk#t9>AXf|8 zgK8Nf4*4J$r{655TA6+?IttIQk7*|)Ia7<&FYc~6s~S|yS!4XtA!Hl|Nf3vjQC)bC zT}jIQ0lk1Fa8J}vv}GkXzV;V}^s?x#*Qw5ev|Flq&eB*ChV7}z9rr}j{y2ep-((O* z3%e8}zbBK_+CR7A6s17+p25M#=*|qdz@n%{F3x1vpaaS4>nTAx`%)_vNX`5+u|pa? z>E`7hNFN$F14iOi@(R>$@chR_BGO5SOun*zL)xuWP%Z$F2bBBBi_70FS5ZN^ z)g*LbCIl~y6Gwv>Z&xqjYRJ5HJv{U=$CM|z8#;bu8A-IilbYzq;8l3W-)GbheY$*L zYhXWWea;M`Gu>&;+fK)e;D0#HrLD^IuA-^Z!TXwPQeRvcssZu)r+Q#?SJ+xu!L1ZC zw`gAS4*s8+o2fY9`^Ndi2b=L-SWM#J9jgyt_7;9zK2F$O{30g0os?Tzj7|(vwzx~O zb~0T|9FS+OFfV@|MT<_2`y5Nq*{zVcM?m@V!tPMnNwBaH^#au{j~Po|={;SzKMSpR0kIS0ml|#|`s{^2}@GNB;C$@n5QD@q30S9<{O?;{YC$m>3%E z6t!SB8m(j7Wq|c{3bm;@Z=+TMPqrMpSogfm$0VReO%x6 zKqV(I+2c(YL~8osdm#>KwPpZDPhsmEh6coFsuK4%pit9)14UxG47M3Q>v!w)F{7sA z`E(J<;9Hxt4}$`#F|w<e8AZU>53Gbfm_zgRCW&}Z{uHt)&(n3!Jdt36h5&x2i;_{)6FEweRc8KN zO4%+l@NJF&nNdS!y(gL)8e28TvVbhDkZ!&L)RXcV1|M6za=bYg&Zr{@p32ocD30K_ z*8Fb*Ch*{KB?jNYdP|DkAgWHJ*Bk-7cejnXOFKh19)wf{L9=65yaWIADAahvm!SiZ z{2!|9RAPg_raE4p>!Do<;RaGIemfb0=I-v*+VW~VZz=Sp?i9u{Uy_8OLdg>kT>mW zrHXLtGix=XFJ@pKxH%>Mh{OqV1aU}S@Q060G-+iR;@3xo)@xaR=CmpXsdh6X>aIpF zfSy2k_nU?JVgAvP+|haUB`r49jSdp`pBTJPv-m%oa5z@5$rgM;T8#AmSB&lXn9VxMD=uIoT>@4uoaK+VHPSR^bMA&eFAD!Ed4Z`WQ<(k(F z)tr_8RWzcZc=Tw!g8U;WN}N5HoCeya388Ig*dP);OFM=FM=oIlTc9icre81F2XPY@2@29%{~5MJza8ahwk>mMP&#C!3qZ^ zM&T(IB0i$1!u1*bLdp@;2U#NW?9?B6mrW%u>)Vr1;p_r7O|4}eBEa17#f^G>xH(&eFuHvD1QM1-3ZdVzDSvgjF3 z48mLL1v$Q=_Ld{Y?Fal4lxWH6@Pi{3QF({bH`pEK0f62>ggaMKt=w1} zaY5m#1uML#=K-VurTz0hceAD`gxE%wm^hI*~3x28p@76PKUo!OM;Qzs6*bZJ`)z$O?pC z?3}|>*{8$y&^ejaga9-OC3LS8u6Q-+w6mLZHSCI8iK=x8Du#*4IY}M6G;CSi;TRkd z259BdHMNcHV-M|)$}lDG%arbVemfqbAdP^>s;V}E(#4Cu4~iy9bB}u2X$T3hlp*Np z1oF@<&oSShP+635OcSh$QWjE0JVI)*BoV5`D+|)Iql1D#9|08j=oM&U-r^Frm|1Zd zbh$>6Z*TaSoY)%?)y@zn#1JkwzdYTl_jy?Cwjcu1ESBr%4@vXXrm2{pLhO3Tn-?J? zdVQ3X>S*9q%GQo55$fa2=d9@ZBln>^-9)mL7<25wNML+DUzq{0;UGcP3&_4F$ts33N`U&hO_MVzc&YMib@!{CZ9t zD_Uv7q$F`P7dG)l|V(gDtx-Vt|dVU(c~8T`LT;Wthpr-hz*m z9Q+fC#$p~0MKx-vfBq*PJ9AgK12s9ZAC9vS3Acr8MKY3D6oZkSy|1}_t)@{GC8`o< zSkqS$n%EuCkX_pmj>Ur!_&lZtdl)peUaxexQdyw}5WO`$q0G1PPj5RSqV!{l-MKtUnaEnPsMw2~Tf#~_+s{Tno^1LJ~9JM5GCbi?(avC}P z0O^Fav&!OpB|^>V6nr$QMQ42wvD9Jx7bc#}24ks1cCIf?gSFY6oU5qe6652#7qDIl zr*dLblN+EMu$mBX3F;j^S7;RMnM-BgkQX=7_d;#_p89 zqXbBW>BSr1*ytAz;s|H<0%#fc5sz4p#7gg|?p!}j5lpY1?M`=$*`-)`edSWmEOBUG z1n-!rFiqa+-s;tq#Z%u~Dosg!tnws5qv%FNpaV zb`1g&wR<7N`9UnFiz~V%S!!DGm}eGrVP#-sd1bhVQC6xAiW7-za*IRxfs0h!%rl_d zXX>^I=`-R=U6#4>ASPWn;t_r7!Et{{mdhVgwjVJ5rm1KP#~0)49P=gL~52gZU(E1^qemuEy`)p#%BZw#S;~ zyZ3DxCVn3%XyVB%_i3cL)2>2HDhv~%lrO3#PaE-a%O=;i;JA7fMjRhjTfGYJE6%f@ z*|80~6J(+3^T&W7vFe%o&Oc|r$@CXQ8pW&v;tR zBGUo$)MYeBW$~`QCQVIGbdkjwSW6GTK1Y(^7YL@USwFUKhn_>_NxpG`NbE$r|EQWp zRc*j6I%mY%at&y_IKu$}zn#XiKckS|II%a1Q@1bqKMkpZ7wAu!=*u0A! z!Z%!2k?`TomHhp6LIuU-hhXM#+w9b#(n(Apy(yK~uAuz}oP3XPmc1+1L-{F)Iyyoh z8ctua_S+Uo8$|=KBuMdQSVMf6zHZ^uV^#DrP>3_s7fj{khcXX^S`dT+1;znfk)|?X zMqksMz~62sMl5JYE2mhG7o&l%@Lm^(qj|RWH3hLa#vcqv{AtV*QjBI`s(9=ad0PCimSU+$(pG zF_A2O*Xn9e9f*EMdP$E6GVTr6I~zDh^a+!r=dV&K>edRr)5{1r%&)H*5$XKc;>|9Q zk!esZW!{_{tSeM4umnT0?}CGCos8bbDY9TX-Ys__ULrxvBtD0bUk$^XdY&oaOp4t* z6qVHq##tc`fn^Y@*CPNjXqBJVpnkyQ!_~i`guNua3-j(_JDEsxv~z!IRq!g#eBQ%~ zYFYd})xvqu81tziawm62?U+E!&|F_mYfzhzQ_vX1q}k^_^4n^icIx@DwGFR#K#Db; zI4ps*!qFuoZBb68)cnS!1by7`kvX+wr-iz^>@<)uo4EIZ*e@=p&CpU#?JhBPNG zAIj{{Fsa2CHknEQ2VJ@%hqy`+6dc546N#xNs=~R+BQFG$WteEkN)nu|JR8O?1y&1R zZ}B+~;zQG)aC}P5%*aiML+ZUK&t7Dhz2?x<*# zUp^aKo3^mm(e$s>AYqg$J}G;u%&I11&|sK$xE&dCge(LYOtKi<(EqR}+R92SgE0j& zNYguXga2qiK3bWjMxd?BPc8(YaY*M?u|`i)H4}v}PLktI8S~TD;7opMuoi*zv7$aY z>^C15d!YF&$i5148%SC`5=_HSD$VK=tiphphmqm7c&dZzHzI93^$}eq%}_>-i~!{d z?#A6OehLQ6A#-=9UzATj^QfJEOaU0;e7t{Vd)L%kr)t(ict-?dpWtI}vgwiD*sDe0 z&?@I4C*wm+a8t_iyH3UJ)Ary$V58+RPkh;fhpw-+fl&mZ;5Nd?V`}-yELAsuqP19u zWx>ai6#eSwX3@T&p1(XKL@Ync>Qd5nJX+FL|5E_4wfL<^%`;Y7UCd3bn%!Vfi9>B3 zyfqv(+F6G9`V-!+)Eg~`@BaA0U8Iyn{_#-2rJ%fL%%gsxXc*YmcNcuh8SKVK&!FsiUze{sv&WspA6c1e2 zWPZ&VVJ)wVS|n!VL`(7uEK*Z`!PPHtd)ve{cA7ol;-IY{9-7puvm{B5X_Qw+rYwn& zNh}I2&1S$(oV8)FkICnK zPjLMQ`|1Ip-*L<1_6slBc}1`kw=>e(mwjs#wxT*2bC1K)KLrT}-~0jHi?MasMl3@H z+Oh@olkuCs7KaNP%)F+sB5Q$ZT@)9F3ElvGj2wKCkn;`p{1B1?G&gFrW69^cGS624 z!r51L%%{l|R1iKIE{$N+7s2f+SC^YL6Q_~XplX8nHn*Dl%?la3dHD2Kj-8f)a{8A! zmj)YUAmF>oIW(b|>i2{V?dr6T;n(IV6<@!kJz*q67<)Djk%h!t^(V>~za=oSAlsF* zwS?1Z>l9<)s3D>&xQry(Tb0jFxkTCl@=^l9SfEdzS?4vUk1Y2&48)Yj@bHS&D4Fy2 z2J)BfT$xm5KN;Ly{l+`T2&Ri#;UTBYt3DQe~dX0%DIOaERy9jo?V6i@q|^K*M%2D879+9Y|B!q_1|akM!4I$NSW-IHM>@}E;pV|!ypoxtAp0dsT=sF zU{|R#7BAQ8tDJd4#E(Wr|L{Ujon?-uSQXxsC=+@P;R`nyg26y3UPa#=V?94WC)@4DHeBsm z7he$z7kY;CouO*ku^lqtBQ-OAH>t>twG|l|0}>=Ll{?5lYsHk1DVi;H`I#IY9jjcC z_HFvZs`~PsmLW~_pn;B}eekzG=B?9Caxha1-{Y1AsmWuLM7R;_&nP*@No%92Hn!MZ zIS{EO6$b4y-5aI3bme9N@1y)y}ht@ULG}8VeR8j zuVHlBAuSm7Ej-fEv3jeBG=V@%lyx^RlG3ZFQdih3R4;4=W!JDl8^bY2HS0*zk50hF zdGH~*Mc(mdWv^U(0dpd)Ue$iuT;Z$%pI}Qnw zM=oH0^d5G_D;PGUNcy4ov>JFv~Rw+2Z=^(e4|__~%Fat($#ZJqUgG*5!CtZwO1 z4Xg3l33+0$T>~6BFQ^0QsKoYbNOj8wqOdB$>*8eGGvELegx207ew3HZlSIbSUnysMiM?Mu}N@YYQfy~BCiaXqa!AB;a zr)@}sLH1VBAomcL$2t;6W6$&ESdiqZC#4B}jcQ)_x@eI%oy;6<>NT-jm2?-%zFD1g z$4q^9Hf68HoSDlt<5ktn(xpFBdKBH|0P9~@H-QV#k}dO3a9|aX#VK?W_M+w(h(9Ri zOjqH`7ZGMY21tA(B?nZgO19X7>T5%ty{I>P=v^ z(s?EDw@xbI(YK+s3T{Ju4^wBwMFi>F{)ImVQ3v4o8qsJ+3dEs?pS+eEYT9qEUCBB| z`ac8p1)ItU@N<=oK{L>4G6PkcMaxO!gP1InJ2D?jVQ)@-vTT`JCR2%RQKoaHKL?e8 zZ;pFCy!h*pGGWy);kg9P;va*hVSe=avrVaLugnKrlf|UOm%x&d;L*`*fz{ulRKgRm zUX9o+pR&Iiw^`E?O_ly8qO~(I-gmh{aurnfTHr5M4Fq9Fwx ze`SgRgYfUCGYT(e>D8*Xr~+PS{63$hw0-gTzBCET@H-|ryuG-W#Sk4vB){Z~J$bOg z5lvA#hVOZ!B^ni+JL{F|uI>7XUP{~4RN%1FciHJ3JE@nB@8#k(F%p>Pk>On1tz}t2 z_0XVKwjOk479JlASJz`o9HT{v1no6PpOxHMg=>rYKr-YS*^khazD4ub8_^Mk0z3YaSvLXzKNZ*o|JRMA)dkT-TF5HV??zS@T%1bfebxz_ z@_VH=l3h~WReH`vJXk0c6aGJQZ>3Mg995OVQ(TMgIZBCbRY>^uMX#kP>1hR(?ldEe z@P65;p6I&}P}k~*?OC&5p(iOZ{EikaMuBoFLHGU{q8usNFjD@IuN8ud69}XMBN%2^ zU%H^*swI3}d+_0)DC};RGuUNS!}$5@|8RtlL}L=kl-Hk?Bx2~QqM&F#LR&B3P0qs? zK<6%tX|9Ufu1!!-3h1(K-*fjbDs{W{b7!Yxx#4ugve7W!wvUzYty=uJ@>{Y|HNmSP zO&Y=GvX~DzheB?gWvCTMB(5Do zu_&r!;h*#*MSBdl>0k~GPCu0|#tH$=7W%A^;Si4yaFojNgPtw!dk9k+;H>QV!gW19 zmUlKhME`O-bv+#Zs}W6usljzF1>omE6ugb3acbc}+_Z`w|KiMEXZ-+hUGyZ;^>pu| zCbZXv{Qd0(sq8igcUR82-Cht~!xq8(X@q`WY(my= zB$hh8yO<;1%ljUG67|BSIej=HY9>rs-)K zblaj|_-M#qb;1=;3|q9YW+KdS_G@=h_FZJ6sS{w+usNs_uW(-MKWB>%DC#|0bV{($ zVN@m0tgQ;Aytl@0w5Kg{Q*@R(GPKVyHN}X}aHhzM^^6vy%0b(?(CRQ^J5BV*W4EgO zo|g@7!%fEi<8P}snlnTXb04`V!ujHSnHocCh}1mBfB``tQQ@McCuLKRL-7?)H`S)4BWvdA2N+>Z|mM85GpgQUw1vqTn5`BlwNgje+c0AN6$zgw3c zBAAI9PIxnS;cPHU;Y7TPI8X_9i}>Dy#roM<6z;-e-AtnplJYbva(~zrMXGMynu>C) zzz)&+4;?gmPz->h%G(+>aBd!kD68jG2HxpZMNKf#ZjBZI`>N5(PZS0iGwlVx?m)+b zjU45lSLkU_*gGP|HIHvO>!5QR5dapyC%#O7e~)LTY_2uUks zP@#jd*K@@$VmO0cihpQ07+HFz8G%sRiY_Q)w{lyE)92FDZln?cSU$_J)2Rd|Kp+8J zzQt>c(^91TDkl_d+V^bG{GquNY=YK7Z*~cAye0r#_$xbtf0iz2wn3j%Db8ks24nrA zOraoqGuPhc#i8oI$hoL5fsYXa;<~xb>$ntfXp#MpfHLK2VSh!46??RHqLHjD4CL{Lv%E$Af1!8MB-PoR(?(Q4c-Y*3)RqAnR&0=b}+ z92ILw=zk$KrdvakhxeqG=mL*KVkAo!;2V3LkV5d@CuIU&_{wgF4!FsM`Z*Kx^zv7raaFUAhJLL`& zA!w!!V0o?5*Q#vf^YyvcfVMRB7R%(j=~RStjy2^&Q?qSXeJ@ocjfOmQ?Yev+$^xWV z(B?76+9dA>OC<$&NXHL&_Or9H1xmtY@y2#PK`+TRQi@^PknIh$z2VHa18whOUVj1e z0)MA=P~YIrHlg_#v4 z)98$=1tv!D$#l^qt1s-m&`{PXAbK8X`;tcbd7v$d63rXY0=xfZF*Y=cL`pSfaWsA= z2^$E524QBSel0}{^k?!beRfdckIa3hNq>XpXlfUBk*Ev`CA`Q2p@SH9a>Vxn+FnO~ zix`XoQ7_X;1xf~(0&bf!HD2J-^w4;l%oE@%`pBW0jBca`6Oj%XO7Lq_aztqqK`LZf zQZ@M&O=m|BPA(ZeU0QN(1a;5wQYR4ncf$uZY>4YGXoJo)qF{VAOYeej**ej2fVeQqv3dZ=8Rc@>sA3CTL)slh_LT88 zXm<)AFES$osi01g=mpxCt;*Z(Q-2q}f-bkx$gjDhW&90C{fsI+HR^P6lBxi$t~Z_e zs=n4alJpZTk-cr1s_4wH{ND;TH3wJ2*=CvYY8?ogzch3zJP__ArW)CzrU}Ai zr7C`hRj9{Z^}&p3VD>~9e!>>#v!6nVf{bnD&MvnJcf(HUC3-5$;6j1YTYoh@FgZc0 z7${zyn%Qd0OH1E znFJ!!tZi0A1q?E!1PY)L{US$)RbP;OdxexhrnyKI~8 z6&WSJ-yggJ{k543Ym9?sgnu9bdM3>RX08Ty0M-Or5ov3iXD$S^m6ATKB^aD54KC&6 znOP4sM@M*63TE8b=WCiF-lONGrxejwo8N5wxH_#lJ}GHeCJUm*uFjxZdp=j7n1(%y zr%+8Iv?glS;kb}ZK4{eDIc37$YSlDf9sIqM(Eq0afAb9fCU_Mds(+gO^4Guo_0NC% z^WV+@a5BtS>pHB;X3Hmun5RNnJ(>6(F7&1@=5UJxP8@l9EqW*u6h+j|f*`20ok^`` zh5oXS!*(Wjabcw-jy9$agA1DUqDz)3+a6ihQKWMc zN7KS(`)!JLhz3R^Q-7dlDH`oNh3#5I1F=|WY#`UM!AHihDMps*m&KxB4z(@?d#3A9 z;YiXCXZuCwmLG3LYgU!31xXVO{R$)RRbyd`g55Ut7U@@q zBr_Pegp`5ubQ{rZ^W*x zY(SFQWu&t;6l!dUkJNht< z(qR^@oKUAk4V~~l@=2)99MF_MDPN>|q03&O=YKAMol1|lj4gKq^d2ZWp@Mr!c?QU8 zGS#&DR9J5msaGqzl)a;o0ZAJf%+al+L4gzUOUg9BjbLnJXAC0INh<^~%1E&Q6`h6B zEPbMSR7v!7T?U2Im(X)R;sOBBD{P}&Ht z(EL%9a_oXNxco9t7qXRHzHU!#jyO_Vcdj;}YKTIf#l|t1^0S3;zhHe~1Av;LlEZmF zO9>H44O*>AXB^3fF^^V+!Ltdi48S-Nkbh=yZ`Ctuq)}*jL|eSfFw!cd86wK1Te!C) zQ3|~{go*WOxVN&o2IQRj_@<+N!VsPsbtP_^=WJWWb4jirsAv1NI64{s1Re0(#gIF= zUW;IC4UO}4eQCnNdXSmRF!hEpcinsRVtJAPawuAB>dU3R%7`HC!daX}drGCKeK!GhTT9MG~bJQ^f2+fD=29QH!1OTum=H4g)T(`r}BZ4o6|J+yuhT*VB^XLTXsc%{YM^f(7n~FDKFiB_?T}599`I?yp{+@Y9##@Zr$(VLx%-B?p5rEd zSRDETaF3c4h=PbG=6F`%tT&~QS3q*W$O|-E73;y< zPd_o}5rsPlnZp4VeOC;ZXbgh(f8L~3Ql^|TCs^%VwEiNQrnyaLi|)$wkB)$p0zK4q zo`vqdoTcV(kALoJ7QnKIX4F1d9)J}x=cuy#WnF|sbtmP41s=-S9hHJ87-dvvZ4bU8 z@M3J43Z*I5wdkCUZUx#%)M%>g+suLy_mZ_&KrDa1#l2T?@X`=WXRpg3Qwa_n z2r#g=ne=V(AHkSLfr0GIW2L?HlgnqaN&~$$dgr|K;LoS<4k9{g*-EXBq@_?(Pr8#$ z*Ez7kYRg-{nT!#R$LKJfiWv1S;BV+rTs9(iYH>7g((#6C)DMK37Wsl$AjrJBCnv94 z!{sgV9o-56}Bwt01#@efuB`*MliD&B-1Bx|MsE|pB z)SG-7WoUHXkl&vO`K@Pa2mQY*sU6a(%zt(g)-GJal#eUFb5>eQSA?nZMtNeoV<6phb5mk1 z=_G3z;e8_ipiiliaVU+jmd!JMl7CRE43~ltp+mB_jdz;UUC>?!Ie#jC+kcTwcC*b9 z=ExAyH#snvmiZjy_DWYF-&dNcCr%d+d~|`v^KFBUUh<7yzC>^U`|}$B{OmI~0>JSg z;?#2QubtYV%63u0z%>7?ea3$8SGtzvW6HbGp3C}uPH^oyZU<17a(oS%A%Ds$xK>GP zTv<;9T2-e(WWGJka<241LGsS^5{1G)2zqv1&1s{ANc{ip8WIL7ff&Y=+ zbn9LK81S;T!Ss*2HTgJ7Lw~w8CX;sK`^m*mpSdqvE~Cz~kkayO`Fu z1HSZJQczgsgH6eNDSr!e5OiyWBDQ0e!Yj?z@G!O|HtUUTH_NE74d0pr_oj}(WT_&& zm&lSNt7BE5S}w}&*lp7NK{KX_@k|EZ7d6YzV{;e-l5;DoY{>*=Pk*1GmsGLl!1z?i zw&?t&VvVPz_^8oOWqqzFjH2>wtQiDr8fHBnpoJZ7L@fpCI(kqVV=%0HMSHKKa03SdmFis37)@wli~K;dG=QH4Ugw-tXf$#OcPF;sAC=&tNBVmXnqhqZBe z#5a>TAl+)$1XQGNIe#q>1Su6ohE{G&w&cuL@ScvS#gQ@`;I=C>AjT9joVgqQ9(k5l z6WdDrE^In>DC@z&x3b%veKijHc5Ysc0rI-^Z=%_}Iv=eiYMcxH8JwS8awr8Uke+K& zl;|SAjj1Eb!rBexOJKhg9|xu>jjtV|!)SF%7u`0RBhU^Sg?~$ZIs?%VXuU=xwfeUm z^cgRBYS05UzRDgoDK{Evo_tQ1I1M@wCJf76eBbtBAOlw9~`EYtou?1pRCl7 z#Ge{LRudgJy&XfkvYzbtA`n^GXME&shm-k|$6=n#QGa)h24;qaA2n6YHXHGo#+QO) z1|PvFCNng?6ca-!r!hHMrNt@7j$U!6J|lKE_RftM{9Q@otK~+A$IJ$DdUJtii8&wQ zbkeG0W6WCf(DUTnpmN`%(3yekD7qXlYRj=hb+wfZm=Up7aZkj$8`JcL@xF>^{~^ZP zw(4rvVt>4OgYj}Kqk@omnzhaM@sFo>z!4$9MILFSmse;&c7=iw;!>o_jNKg96`)5W z58oLNOotquW?_LxESO5INeI$80$qbre+Z`(J(+?eF;CjX5~Vx#_d2_8w1afy)0_#Z zK>=VC4(Jmi3ai`Hk_@=TXyo@Wv*-fBs%cSxqkmy|o*3p&2;k&-%0#PvrUS%N%RBdg zn1nNoToENUWI-YwvI_754GV*Q!nofE>riWFlU}7jl<^MmwgY0H{*4g!5*%&E{%*0| zZ?r1rGjDooUvTCJhI0=}apFqTyC!GH=IW8t=g4KJrshdl5*4o%^&Grw5p{m-_IB0Ju{R^X35zL=f4nw?hxv(o*z z8Xwc>n&(g%v-G=NRWULVP+s|E2u`6FpxdynrvYQAadOE1u>CeN1r`T=Tf?DLnUwIb z#}`_-x)NxcEPll?eK>ol`3PwqY6w7=*M9=riAwX=2<~Pu7v(9EN;!mtP)Ip%Q_#7R zneYZUBq}@Te89r%R0Ngq^uAM^l@j%vdWcN-5t)aSY*|Ms9B>th7@FQMnoWJAKhrFU zFZV`8<9}{2_a0{T%~-C&F$nb86{ZU`gmudn=I%oE(LgVkcrv1XR%ZPhuON{|9e-m} zf~`?OqNh1Lmtv5U)&x^uCWQ*+1p6*>>|1`NMvHu9Tj~lv}6k2MduP)PL=`y^2%771k6k$TN3IQa!%XikwOl= zB!>k#Xx=A}-y6NX2lMo^tEb(Ad4IYYpsfUWO(unJto4i(cA#rEOUh*Gq=nx9B*)5+ zC)BGQqSOrHrzpybqXT@&smN-<;(=QwucVKW*0XU@;0ZM;v{mq@jB8p1n~6Tr))Bwu zke{ODr-oc3CXeh#fz@ugXWf(n6E^Pb47i(Zv?;CI@&dpwLu&5PV$+C~^M5ll<_Z`S z^kASy(GU+>IQv|t4sNIC0NbJMv=qQtpjoJUdLBk03oe=oX!OfUxEOSBQoa*i7yqW4 z_N{c&YHdIYN8hts80xW(`*;5O$8+{xm30!a3FFpJ`AKJ z*xl~)26wZ?8)&d+r>w*0KG8!#msqxVRmoj1N%?U>?gwppk2N>Z3A#Yw48{`#cIxWk zZ5O-kKC<4$mYpxa$bXO(=B8MlcM*vj20QhUThO=Vfk)QdD3PD6@T?|y1;)4Y!Dlq0+5$O zU6ywcYig!nh;9YN6CvyyHl9idu^wM>P#?^n&i&KIZMi{%=I8X9!vEgtMo#;7jWjx0 zAcv{OAw+g`&TlAe$c1*bZvJZ^i$K>$CX<3&cldyAWYFCy8R?B8DJ}eF0D!_mWg)fW zHTW^qB3u-SaDPFn>=b{ZO8thzKL5Sk>B(!M}3W-pBia}Ua4%RnMs%UfMap_xGhrJiX(#7bW9g` z9u)9swrSqlIjCn~a55o4k8W9of1Hw7Xvyo=rZjyj4D647cRtwDe8Xp7=w81LK09W7 zmVYwTx|1}U|6@gHXALu%$oak7&q2sN(fUYEc4&!_C!?`@(9$y?GNoe*@flC_2Rkiq zBqSU~*VGKvjP%PSxAb|CTS6kPm4f6-t(>ZG=`3if+#K>_ol;l&)2Mi8mzU7@cdS00 zTrkEST>_SZ)?7zVk+%CBpoLdPDsNmmvVUF_p7L?HgC+{y^hUxUGJzorA3ELn^y60B zH=*@i?ztHKt1A1R=}s?b|Wk)~G~S;iZF4&8h*U>FvtTWGf-gF=Md^jlQtb?PKiDrkUhRp%jm#A^?enj(XBt1}TTior2Cx zWr=3%ok12qFfcp%-blH;{M~Xx#eZ5n^OyUBFW@;aT`%-1W_k9<4Kj;qKL9XzKhlU+ z;bV%&7n|c@tpm2AMp+O-`i)1RXm{H=qal)+_4E~=U{_W?YcVJ(kFB5CZmFCqO4<9O zSw=@BC48mZul#I+=Ij9#E*_*_6St?7*+x1)rUw?5hA9II{ zu_CVXYZ>D<&O*1(Wx73A>V!(FgPT=U`kbe}OnGT7C`KV_J6I_h zrh3F&V693HYTN|BK7t1RLh*-EQfqV^ibZOC9yt4=Ci)PaP0RlMCe14-i4T4janUL~ zW3@kpIJJWcc~l8=GkKm_QF5Z|+2STe*yssEISdb>z7^>##Xv|k?0-<#0E??t62f#N zKe|J1?**5=j^38O+YH~CGkINEXT%?sZ%kToE}|%}$*92(hc~Q8*k6ZG)yEl8N-Cnw0^!!U|I6%IaSEdGHMa$9()vxs49!6qEEI((FjpM zw_Qk?P#b|JLU0dp!+)5?w=7SCiFejbqazqmkv1A}ZG~rqg`)JT)8ee3n-NOS6XIHm zim5tlbU(@fC|qQ>v{))*+G)_MZu~JV(;W&@7=6)Q@2}BW^C*p3pr36yi2@;WSe}&b z+u9uawwI;Lohl=h>1(FCx;{p<;tHFjH88Nw_@-$+X;$pd27d>V&9ZnhbOm|rNe+vh zRXs;##DUm0D&wOjsF1v7lZe@*B!LcdSu!hhhgtB7;@W`>R-q&N9!5SRaDq@P>M`s5 zmzRU)rkwa}VS%tTe{6qYroo;f+?p$53!6AA0J&NyN_%}EgEVz*1v|4fh0cS#9+4Bx zd#K#WXkk)-)PF$HE6Q<*T+$eZ+TW#|BYWY26{3W&ZY8x3R5|o@ohr7TPR<0@0!7Xm zBN-!FIlAr#{@6IRjD`n_X-tWc^~}LAWimQ!2>^NeJ`WtNxOg(jN>pAVYc|1_O-bfh zMD&1|3+#SYthX4KmC|;@76`uNR< zNCXvX!~tNkNyh~?HS{A;%0pUn*9wPtq6{I;f^5v@wy)DT8qH`LzU!HJ7Avy_VS$(? z(uITQDYH1ZIp@e-R+MhAc@}GSDL_Db3BE>_Ewo>^#^Q^OsIswc{Q+^Xhh1aqi~=^+OgqSJOoCC4PJh~tR&jYqnl|y zrhojGE7!dQm=r9Q*Yj$|9OGfdwttlt;lbO*qqtiPxLq>d2A+n}1r&m9TePDG2ZJn+ zHKCI*XseMY(=#jlc|_`Lzkb-mP;5F#1KBjEnS~N^Gr!>+g~^~-8qLcElWBy!?xK`( z$ertnD5Z=rT5R4Nfw25adZgHkNWIz^4Sxm6h~q)smh4l6xK@H>kCKYaWmcN3(FdSWtO(KICS@!{(0}A7 zW(HF6*W{CnNQ&&v*Br`+ZV~a$OqUB1w<*{2YXKm(Qn&o2=r6hwUe2hQs;{lt^&x4L zVtFjAX^L&xmP^vU2 zHAgOcFSU6Wmd^id@GnJs${diD)_)_pkNN!t)wyg0Yx#RJSFX7XUl>-lmSeD%GNP(Wo`U<WB8Mz9sHKILGn3Fr1lc1Xx0owRk&FVkBel#& zdo0;{EsEa)I40S${fQPN~&`$p|58 zg*~AqVunV!anD0`9xc|cVKV`9fivfq;T&@gHS#{-^PFBg|# zN6HZOdG3B5*uCGP-9vU@t)zTbeV=BLplW2%6(!Wz(LK%7`qkk`n{e#tx@ra6ybV^^ zo1C$SwRLxC_Okj1tbZ4kSQ0K-*wLSl=PKu+`%O0rAN*-VKr2cD&sSiEex#dqLI+b) zVOyV1Hk2(2zDcwl_Bb>RSFGZwc09T|9{`nMnqTjbY*IlJbdnNMx`*P~h1x4YSQ4B+~B zdHqIxmjVsNB{G@p&~|xEc9KdVv(rddJp=rwJXolqP}QtK%gr$P*x)7VgWdwlxaCJ< zBsSn#pBy_R@qo8}+YuE^7dTz?8d(KH#nH=7ri@)l|v>w}}^I*no?h?~# zYH~&st#$U$Xrs6kHHpT4-c9ZYfFZ-@#GXKrxrAKlcpE+|M7_K1< zL-U+Q*T>B<=6ZJ$-HKBI?f$g{FnD}1J990F3kQTAz!8Y6{Jt1!cKS+1N2SAyFrT0) zLn}zjynj>>+ftSbP^NDLGlaK^eu$wMYFoiu3AoXrq%c(`;iA0vs-mE;IF>tK*c6}T zVPh;y(AU>wIRf$}D>vTFAg-o`^8tjZ2Gej_8yL_H#sVi!BBWas4nkk$*}zXk3dn>TO4+RHv}Q^wtu&w}ShcKR z019VCM~JC3*(4>v^#a1x+bBP1D0w|eDEY96_a%+=wHR(-)i*1~t0p3~BtnXH6176W zm46eol+IXL>de{IQ6nxhy8_{xwK5stQ51zNIYUb|xP=<_TKW!N5VfSu;;L27|G z71bN2w^}J5iMHcFHZl|9_%DWe2V%U2gMS1gJC+}hbH$hvU`r9AKBqX4CIB!7ifVK> z_-~v+urUIl^N=Fb9&A4mK_^E$BPi~menpXE#&1I(P-%ioqitQY@;KccX_?|_O*Q{I z{r1i1FQW^mZ5>AcLfO&j0)t0Da+BCqjSitD)C6gSA{|Y1)llx2QBP6sM2OoeReywq zK2fRxHJz0Ek$=L?fTDKWDvg2*XC-1NEn)o9lWYvZLMvrE1$O*zI`$|0;K{KMgOXfX zmAI+c(K~gUR5H$IP`Roy?fycMG8Usmq!cH-xTW|s)f`0~%(P(_y_Jvf7g{gM$AQIm(H+;3oZaKPgwCyID zty%vspwnwiKy1-M9F(e6YHNmOg#mCC$YmkthZfn?OdNtLXxZaj0+ome_cGfMviq@N!m5~F#LA!SPwL`mc3+?7-K)ZR`eokR=W6P?Q z&ysg-&R8qxpzN+6}2bP&fU>OP|@9aNzeXndNiIQ<5m{s);{ z3ieIbvDwNS`T4EYc9p!2z zq1nXC0C)THZ$_!Cj!UTYUJ=~~v<$&e{YLA8qFFSID()Ijuf!qHh<}56t%ea%Inx(u zARLfS$ukbfp%f7JsVD@YHY``Y1hEo)GZyA;;J1iZ&JT(uV(=Grv3Zchb2HYavwd@* zTk({3VnMO&nhjQitEtmqUm!p*HyBMouTzmw!==EmcHN7 z?x+F2epEL@px-SE`+tlj#!~N2Qg{{~>-vqrdY@&^y%N=hbf+r~UOrB#iiN`H=r+pN zPnWfnFgr-&=D!LN+JwHjqG#6@)^3v`P)rk?ajm66gk9DJHKV$Uv^rU2D%8}sB|*79 zJN$}cdBf=5j_1moxf-AbQea21Tv;zkBOv>gwF1yM2yqfmv42`y!@+Ip**aKp5#>%a z2G%lFiz69!vN=V?4;>7G%PteyYKLEY~>y>EweQ97qcpUt0|m}<)< z(KSTSOqNg{A6S-+AT)B=vN*WSQoGY6E&9qvQzuQh$t603bc2+`< z>gS!pPq`J>C|_Wv>;Es>%$K)G$S4;9{;K7Qx>JFgOrE(JbU3URabI{XcOIi{8&b*x zckJ#RufRv&j@>pbrvedDsc_1TwOksWDo7G&oGD6ld+RX&>mlKW`_W9%D$Ky{MxYIP znUv$f7=Ms5`i2kyh707@Q!`ClfmX4e!joypfP$$Zp)~6E9&-&Q?7#E^oE=AKh_IcA zixU+N0crsvmaXHU>Au5UO1)6u#QSiTk_OBL&(X+8BRQTa7?zVA~ z*<9DHbd3Q`B6+f|ddklf1+sacGe4sPX?kly)*xVkeSthaLwB(33SCRVK#??sq8&IN z@Vc+V)F|P|&`?_14#82U)w#e&JKwS5_GErU-xXkvXhyFv=&#kM^@y3mI|c@CQe(wR zjekvj?68&jxM(+~XsiWt__Y1Ps*m;%8yxhcQGiEbpH1Q9qD={uI^fOCOyPvWM^I1^ z>DN|5GHfTIGhwTKJw4XOj{t*QFuS&$-q%695dKpH+#m}*S$b*im2X{ez;4gd7}(9xDE+PwPv=N@J#_=A`CD-p`qACs~fMtHd%rBramD2 zm?2uNo(RH6NMgNTz%vVN0wD|@HKH9By9wcdj^<+<03RDFr7Y4;m4ViEb(;!abbpKJ zH&rC-xV)*AvA!`{gcu+TT60=wB+Y*AtC8)d(FQ(Wi;1m(*eMmE=@03LY^^mi=~-^L z%DiG_G50#f7IriWVlzCu0g%~&-33C~XdMHQpFt}NogMaX0G18y@;Tfs-g`;G5F;Q( z1x*;#`0rYvFJz3I3Az;G{<>fx&tCcb(a-VOyNulW^+bLSlCLZ;hW-xC9c8>iRGTm(?Q9Q8E>B3m^N7>`d-#n1fANbg)R<9AY!tvsp4Tat!ZT~iKaZwRA)QC5izjyPRFiNdq^zd%+hU< zk)uH5;rScrNYe_$5d=qKA;_LLQAqU79op*c~`V58Ltqq>iGe6@kwRs2J&Tc-%J@t1~}e=OeEGw2U~eX ze&xiwF)QzHsPJ_|>|oWRGH{B76@{4AOb9HuP`qV|FH=+GP3&6e3s%Zc`(h<$KvM%v z-zbMgUIQmtq|sNwe1A9UPvmyw1{QA2o8ewvhiXrNW;*6*E6nqx0Wm@=9ZHP^NdSo( zRmIVAv{YMB*5qaOdp3q@#pBJGO`10de;AYl=P3FZXn8@hQLNI^qfWd-a1w9}w8a+b z$ID6ay8QI*oDEuCG+}9+VT`ddp7{b$t7@O~EAiBD!E_;8jT-q`m?hM zxFp!9gO}+YDXZ+U^=ci@-KWg{*H2Ngslh0k(k9R?hFy zp#C-WTk^Ho2Ga}^n_$k?%epG1R1+=76ty`GTZDsxV(yr#0rR2uIW7;BPf=bK7NXZH zVPBFerHisOnmlaUoQqd+zBK1X*-k}>8i-;S)$f?B{eK2tOm79w2#6$WvW8cZb{tLT zt=EkeR#?r{3X95aU+5U%wL#P4f_+Kp0vm3I?hLF{g1dQG1g)8GO>0egz48}Y3uMHZ zP9W}0&nnxlXU&xG!5|9t6HNY%if;;Tlmt?gcTp{L9VwhXO?og_?UU zdrdya-hTrK2$Z^`#nVZ+*b`Ob=s+1&bfI)ZKVi_tUUxk)0q=vqQOcIA+VTzGwbQR1 z-_0|=o2XIU;k$qR%U}Qew?F^wjPTCXy0VP(ySJaDcT?s?i|lie<>rinYy~-uRue3w zhtY-tG$H_C$+(peHq|4j;T4AKNpx7s7bv$|H-Bg`?jWipO~fFv>UMRo?0J#xa*e8m zXav*af{-E8??h8lwPv%5F1@}J)_QhN9IBZRtrk}0LUg621Tn;5l}!a!a3I`Nj4=g5 zhlAg*RGAWBcA*B_`deKuqsy(Ku^cOVU>ImN|ASxtjni)sZpatcEWu@ZM3$1bv8$E} z$bTyi?%xPt8{znYM@2l&*lL$EUkKpdFu$)qLo-ojdg*2r1luu?2a#_^yMY~8Gr zd9!|MqdA8mXTMYZR8ly;>Zm?@oc$xPt)(R?eHOM2)HQdQLQ&|ozJ~PzFvT>5@}_4B zIh#WGWF%~d&Pf5EBJe2n3;VscKfoPP*%w4rT9*BkaR5>YA)chcM69ilCJX`Sje)QNTm z@rqnbrHFla%|0sVZd}-(y_h^1a`O#3gY~1dSpdAvXA0#h5Ehp$wh=OAZW?1{?9~v7 zTkr4aO3|4<1?8huk6tJ}Imk88JIm~yZg)9efpazAiBQ*>F_+C}LYTBt6@OtDK%f1k z4Dui^rGnaEn{@$MEsVm#F{KWA)H*3(daMa74S052hcvEpr3y}^Wf$S~izUWwDoFJa zWlZ>MeSh*#y4HyFEWCB~vl;mdjCNrh8z5;trx!rd;B|BP@niM13L~8Cb>h{g>EF)y zpq`es_U15kXF`O{3dGoTI)Avy2wxYKp+#c|;Y*Kj@tCGHs$vDDvn^yuJt`vR2+L|- ze7{hJkR=7+klr`HOnEzCi0|@@dlf|iYWUb zY+BZ`SpMI&WwG|&?dPJA81*!7ZSC!=HKI0o)f^)ETw)8{Q2gu=1AmqYSMaCIg`E+U zq>^kL#xNn7yswM(t}EW-6Uw7|=y~eYIAESGV`S@)%2|qRkLzNKYgEn# z0&k^F@}~zyw#Fir+%T;_w6f^oQ4ARfL<%Fu-(lQC8Fk>xPU`tRi3 zHl*iaypq~jBmYefCT?(1s-{shZ!>vZG>Qwu#tYKu?C-%3OzN&6pBQA)3eI$kIQBOY z0j}9<<(A-x;GzUm*Vv@jjkxh5O7taao~L3!`(?)@g$$?S1AoXJXN5YSnth6GM?^uP z!!>4GIA+-FY7u(9tv^nRt08|Cu2e!I| zlP=i7Yt5f9nd4t@Z9y!Ql3Ltn%M{ZIR6#Btf~nJ0DSgP%)m5nsmX|om6e#Rv|MzrO zc}qac!d00Doqwf`6pFnqGhPAQqjaJpj#AT>4Cg6bltBveH3#z2A$G(q8Z}P?X|K&| zGW*?tyqfo$W(xmp4u;X2(Z4OX}+5JpgM1{cZ6sWWuMc#OXRVc2Gyio z-l}2gd4COHNba>v0haM zOSNZg-N6|+AhIl=oQ2}g4!diC@`a)=aHM-6j?14vZDuIrdPE zNQbga3N0&TnIvHcTnF%G$RkrCSn@$H?yK?1H`l#lfizVLgsT<)(v`I(Q{~oY?Rd&w z(aeBz7UFCzw$z$4eqeAoOdd9l z_47Hio0jM$gS9^=Lv3koOcXR>33ZRPB_8oqB1NdgG#x$|=oS>OHfo+w(m|B*qJ1J6 z!%JneE{Cnd*l*|HFcNj;DW1<9JeV8LynkAv+G`}pP`6{gYk`5QYXnW}o!(kSthUV` z=$>K!$LdcCl#+1N7@g5TvbnI$U%VdDkWZ0l^_3cXTfiuo%jyB;;WD8z z@Q4i#5MO;v5o(6X#z#u^hbbR>eS3oZ3y>8$^=guWJN|;~*v&zNT?>%k%PD#_dOrQD zNJ}QCT~xZf7L3+1GdV|%HcZ0Md{yLx6#CM4+!29?B%sS=%81c_pwA8i1Ap{h>&RhS zOJQ-PrT`?pYnmt;I&se|phrcAwNneXT_^wlwvoaECHaZGD9uf$)T+${!VQ0>Aykiv zbo3lyUk6#M6a&h*vT2s-7SYY>KMDD_>fwbQS$Vv|o)^qpcV^%GPlnY#sDZtQS$#Wi zL1V?weUWfK)wReq0CupetH)}Q9$Z#Q2^jTfyeSgql5F?9SDM6Ir)Mxbt!+(L~38sEMJS%mfBX+C-k*2#QSQgo}mb`XBgf^nE31y-?9f zWu|-*ZD!Tz8$6DnB8^3l30?(74Kg6e3KTcycqwf@a~3FsFTjpN!2>FF<@uZicVfzJ zrz~jAf#CovAwxITWFvpUCNY%Rg>IAuy+Nc$(=oUWS(&b>FJ#q5Q@E2qcUUDT^bqyX zEm7z~lC5u#?1^uC=LfsolnG+u=rg^-L&J2@=4t!ghdpBdxO=Ly7NZqV4g zti~99alC|94YRbthFC7bq7315CfVJ~MRxYiQF|In!J%erBIEvgF+L7gBW^8!CY zW21b>BOxqPt7(4=eGJ%tMu^>tA9b<;gatsA05dog28z=W{Ulb0e(Zq4z>o^&1yNUf zqcE6Hzjjo&trP|WJnw1>1AF)OleDI4?px$?RsVxhdn(U6n`vxjdE-%OxzGbb&=@XM zE)||<1w@5{OE^R#Z)b}kpV3(BU?rqzlno#;ybBtWWw?I;cGmHxWr6k{JkP5H8N>$3 zL%L6+CNWchC{}4MBsd;US@OOL65YnqT)>wZ-+{uPiD=6KKPV!GmY+J_gCQ^yT}Z5y zIC~}JVat*3@HJ@040uKmd5ErWWyciD{U)PLc5%%&7K8J9-dGH-I`anJUVY{+SPbSw zE@py>`Wb(li%C9+30Km9gVz+KK5oFD!D1i-TcS(n&l_jcLWB@qgzM%vbpN9qWm5`|Y3N~-4}xG!g$`MZwHAi`Hy+Z^i- zbZLJUb7QvII+!P|`b>)#e1~R%$4viA})J_SxzJQTL-=*bOO!UozXNMLV9 z?p}b~d$35)WiWV67U>nZ*qaFrv=(Y-OB8rM)-!zsZPU~_XJk#BmRa;BNzC7ofK^jg zr%bUy_iI-wwrw2ejxo1FJ1pkc4x009Lw-HI9%IStgCj&kk+IBv-e@K=E! zE4zk94I46go^@M0i$LIDJA-;)LY_B9gYTb(J#prZ(cm6DoBxSW)IOuA!$`3oFdBdS z`#=6|QyDu9G}WY>-?{x%p)9i**PK5vp}C;>>K)yXXo^6xg3xvXDWu-KScwk8N6M5T zlZyq?E?;3dK1zWVRa30a9x~EOFq^mLKs$q9kkw%zrQW8Puj%SaHjgjXqw;uu3F2GX zI@Y?SjCR%o6fK$W2!exIG5el9P$U=3b{glaS+4d6^nM^Leuxjd9TMR;v z5&Tkv;GxvhQb#7mQx3{bGy>zkSgnRb10}LUIOti~>zXR7pfohM3Wsf`DUo|iG`^hv z4byL+d`=gSq6A0b*a}*VeHDDAnuG^QjRY+IQ$O%UFn;;IIrF8Zvg1JX*$X#2Z=_9!hB`*bSZSpjLR^g0T1zjvVv?QDM zMh}l~+N>Ms<8_^jG|n^Gfc9ZG2pc;Pv;26qpeuB|IL$8|2|7MT*Gz^$J9PGF;gjkF zOI?eA8l8($StF)Xil?8GOL>2?#ps34{J>~y8v9C^hyd~F&(0j7Opl*o3boi${+@s< ztbe^?CujnD+(cu+cPC}9T6%;PEcMap3_g0z&U9)Cth?^a0iyr%T5fqu5Jux()!c+#7G z6Pu{|qVR^b-f-sIVXc36F|Thgn(cJIk~0Oi>5X@4!4vW@xp?;5HL=+uMi8vfTSKrw zuS)f`vCmT|F;sY_SWF>9K(+`ST9jzneDD-CHKMD20UgqAP1}#6FvW;ZdGH6I>r2|_ z!?M{L7rF2UQDKcPm|jD+j^-5xq3BWe1uiZ>$)Gx*RAhN9G>m_3Qqt-`K47=BR{v~@ z4MfXYVTc?UIrXkx3v{t}qIYzLb^-9c0I|XE#p<(DP?_v+IYX0((g(eO%)0{FjFLo_ zbxmv!Xvhk)j#|2D){clBjTz!78WTDVtI8pgM$FA6CYqjrJF>^1SDkENI4igFEy@K_ zG`B!iAXp8d;WdA1g~))Ky)oPTOpqN7pGq5?2;b_A4O}l&kh>GsE8oCsBBVx9Ib}bX z`K_Bevn;;mR8*v{#Kam^^ih-8qfdM|+mmBAnvLL2YUJS8p&AEBQt|ZhzGpCkx=gax zDCynjF0aLD(_fEy8k-Fd84@F5U7){^<_)5}rTWkqm^y#yAUmX{a}5LN&!&(zG+M%igL0k6emDhxui zY7`l*248=++(o9@*D9ppEP(2;S)r;HMUSu*La2oXtpW%zTrhO1rWG2ed>JSqlLIzT ziE{nM)$Fy>bVu+v>SmVShl13TY%~1cP)!jB!cC&^SmU6KnBOZ)WVq~H2uICVqp_5n zb-?`t}!KgIkCfRl=GPi2INT}7f00R*gR&P-)U(}qzeXa&(HFi+*eKBP<}2oVxyAsNrb$w>z} zI=X)@_$0ICDXN4(2ScfsfIbWwIU}s5m}res1Jw@|RX=1m+@Rtx1f$+eawv8VmS#3f z^swb<5coqXP=jsI*Onxi4QQQ1Wr>dAtt{Xh{QD}x|A+AJIK#h+{H}z5dFS?1a2_d- zFW!>%-M0r#UnP0uk@9D7jUoXJHW#UslF5Id^9HKe%yPEMry`RFhn_!PryUayrHB?H z9HL6XU?MrIf@zi~z-00?sDR+vLagx-X4pa+j2NS=ADvAHV6w?0$PJ7{JcWd{{E(J+ z2<*#^2)L)cTM1W-a^Nt6rOw=u!zBX~Wn02A7fZh6>ODCo8mSNRKNBoJ@Zj z5|Z^);8>w&e#ewR?HSQ~gO}AOD0d;|r7>ywm-3L@A221n68yIka~A4iA~f&8QZhY6 z@OJ%j0B)iqNDtb?97?DnB5=v}nJ;u5$ShB^jzyzYP;AUbflRPI+w&%~&$tBW;kQ3C zKx45ruo`F_jwXq`YPr}CuU5W02hx8K;UOIt=q6+r9foB6x`xC_W2?hF+9fzjXA4#Ld1qQ7-Krs;6+=r53o9G46i0xpkQXbkv128VF(5ehPz zTU$TA*t5`IdN7&{*ZOhIol}V%8Ob7Gi{X+tVE1h?T-1ihQpVO3R(`#}ASi!Ss8!*g zQL5G|Cnr1ri3g4SInw956z`=jbF@4NUGS)-xc73g|57l8x`(g+5}7T6Hg+X67JQI9Lv2?X+a zo4uq=s2{18Q5tkjPv#4s`I&za;JcXCw#Q!OA@*>Q)Ba5-}m| z0Vh4dJQN8UIkXXi_3>#qp<;txp-m8fXlnP=D8S^avFZvn7khp)1Ps%g12dz?8ddux zP}Voo_}{JWLhe*=U|D}e18kb2Tjd{6X46_uZ@H2bt$h+H`EDrcz1}fs_bnh1N;@iS zcS_w7A|c_C-WSCHG_A*m^BLtbHM+h<=3ZR)%|LLMp)ry-#oyF@t`<%cM)?m}%>)r{ z$?$EYRA8Uy$(3ZP(;CADW#%;c{CK;beKJW6o4)jvCWG_C7HEGe4rmMJV?9$)t*899 zQgiTCKtwR8I~a48A#8?dnVg+_*Uv?e4*>g~uG$8f0+Ay08_vXIOJ=L4 zp(X=+W9(T!&1$fSzMVG>#4p z-fW!th{=z68p9@1EvNLx76x>l`pHd)FcQXIxevWOGU~o=@rWxSU`?DfjN7)XULM-0 z!rCtMENb-hcnd`@u(l{9w{y|T?Bsz86dxAe>q*LF3}q1Ug4{?~g-1hvsz4N-^BV^I zx-sD7S9*Wk@C;G2un{%0W7^m!V{IXX+ zq@Y_tg2EN}S|DYrmlV0(NM0ax_sm_*%KaA>k6?}#gDg25Q~tp<^hHErum)0ne0Yrt zu|lT27v3t$Kd2V#6BVCb0gsGgH+~X~qD_^kfR=wQJ*avWSyPPyNu(=KU{`jpA*P}w zm;#hYUn*2(DKdm?AIYc7h9bX8*~Ag>3tgG+-N+|kGtwy;Z)1d=|1HL3n;wqFeNyCJ z;=YJG7!7%{YLnC}q%ewQZZ3lwMc8zT2ZrwwBt|u0`FIXsEM@K6=uqWHD;A%bv1q!| zvF*&)%e=5beS;@7fc4IxkRKTLRl0Hzh*EYl|J`y+cfyf7D6zpxwa?gOO!nU9Wdd6} z-oI9Y>7*UKW@oPD$dv&_^7!B)5!$}8Df@p_ge-%p80A#=3j>{gl?*ZY>h3&n1C0S5 zE`KuT^1yX8CEkHbD=oXeRXlrAK&6+jI+hO{B8+En4Qh~MsB?VHYt4wex$E>Awk z(9sgex)ii4GFB`OTc3VO+v(JF2SS|CX3*?J9_hgw?!xN%9~S^VoaYKTl%&uKFVit5 zR%|3NL5+K$E9T1y!WeWH^t{^V}=dK8pMl zNOh`8GPP%6-CeyI0ZwVK8{s=N_KJTY{0gs7^UIEfN4mfx9jl1GkJh1`Y-5VZw6n(n z*J4+qsR__~aMp(fZ(X6G3+eVwxs4WyykDiieUq%~#=(=BJ5mXxj=)@QA@8F6TNNi!5C>Y z>EqxIp?rms-J56|Sk0W6bn<_>friJ}(t<`A2#7=#Z$@PDHZQ#%&wMjKZp;V7c; zuPG;UCrVfDx%b8YpT7%ov*85mmTO2ae2GAoIxxxSG_m5zhqbff_pp z{2xW)2gN^>ac3iW#)I!D_>Mw0rbcBGS0RLM>{~vH6*YMJQ2<=ae;|JzeV&|A28f>H z}2YYI;41C^ZNA{}=W4RthF##|xgHvZ1p+8u(Grr9DC9vNDa~0e?h4C@>z> z?gp2r6Jscfak@_$Odx;CZi1frp$*&_JUmb(t*8bmMgRn*b!8pgcpF3zSwEko{n;8x=(@{; zB1mK=HO$2FK>WKU9o>N3SLs6mZ5!W;A-C*zc!EQwh`3LGkYLXsP$UE|ssOV-rT?#>UIqFJXh3`9AfDP`ob(96(6eM`tOkuyi z^bpz&XK42s%4cDtd}hb`adE1)tKpCK?gDXPmbaI$!oYv>NIS&l0fj2#$c;A36*p#O z574=@cbogU8f?kWp`xYvjse7QjIPi#8EGvH?{uEXRa&XLQT#yrl`k(rK_*q8(C*6W zB9O6_J)_?g`ZUF)w3#7pfSaL!9+H1>K4;A3W7wv6vKR_2Zq!1d9oMpj%N@hvsJKTD z)Hv;FER=r_a8&P7D9SD)nleD#^eZ$VKuU;@_numJ9^X#%R*kHFYQ=49dchJE^YwD^ z0A2~WTTJc_8scJ#p9&43rplA1Gkd05lhwM_vlT}0EMzL11IpH9Sa$Cxtg45v*jSSq z@c<5ZZ1l@0uuc%*U92{q?N+Wm#OOvsv`;uPNW@$-RC`GwM+S!QL z1?j@^MGB_XM6WtK1*IAtD5-&E5CDI$nyw@wlW7)Ff~xRclOwR0DnTXGZM2cQU{!3g z!)TPtT{hdNWD|}29PkBjSPP(iDae}}Xs zpgSSUD8`lr4>e0!BLJ3(N*pse&{6{_UZ?c5O-UvqHOMMtc`15{TOOuPoj!lFfp$m} zbbpO5`*u+@+gH(IVF#(vgR?wHMpJiT#VDCn4LNR#o)e>}z{w-MCr^d_V$Tj%d`&)A z=N2o&jFBD)Ug@?T5ruq8s`a>!L{&TrGL!>qLX9hZcVt^0Qdh${zU7lx;DjfiL?8vG zz$R_0dZ_+|%V2dDEM${o*gSuU0R=n5#07ws*9!!;xvS4DP8|+oT2mnrqB5RMi)6L# zUH`4Lv?=(7_zJM2(LjqKhKkn;y?urhIgU%6H1Ip{`bJ&uR*GUAjk^+FD#Mo2UPRj! zFGgrH;T$YhFQvg!fanmmg|^7Ub2zLjDx(Gm|5?X407Pq+vXX#$6bye<>=0xXNf*>` z`0I4i&c6o{wn_xifNN`AgDo}+mAT+WD*A50dZ{ZQH3H-TtYdW7;peD|OM!(^s1I{X z18BCa#7M{58PV$}(Wwo;PDi}=@NHMArZJVR{+S*(_*0O!XNy+@5G(|N(u|@ z52KmV=aWW8HRuN9aU_$ZVvoDPl7g?^Zv?@>q+i7+fl_*ZIZW8&J5#WIC_w+`(JtP2 z=BKIljf-rW^@m<9n>N3D`^jYdm04+tilG3KkyJImJnmx1=JO)0W!IGdhn`DQfp&;)WnKYq?a-^Q7@DP3m zy;(8fpoR9>SRsFBsW_3UD~(u&p-Dy^vYD~`o2TD+fR>BvzbUDm-}9!VcGa057zhq& z?_-*^CEDK&cXS_GYJmnbTDRCHd)yFXr}rxxn!QJ)UKO@QO6HDU^Uu;!V_#mT?qC!k zgj_eVrpPv`t7j4i(pFjHlzg$0fbD5YU`#4$#AphW$1Q)L%5S4d*n>wRu6$#sC<)2e z8{21(w*LY#wMagwr=qBnc0U@mH_Kh2t$t>v=BF5*X7#?*930(chT4>lcN+3=n=-Y`Myfsk5ETgy$vb?oN+S5A&EmW9H zWdYEuDr0{v*@wfDi(X(8ZM4CX1xLsk9X6GKs8UujHWNBI0t-~8>Di))=2`IX%UNgs zu2WM31Q_gdD;$O>XO%Pnr+^R~R<$u)ph2xIwCl9n8apKNi+YA7$?CBE)8SSu(C)y& zbI~yl`2$28PzR@je$nrZ_uhj^`q|agzOzaC0yTd%a5t@%RID3yf6vhl zMg?xLCQ^ZZ7v?qZ(ZECFrMl*dww&go^X}+ncU3unBP3;~$oBxTx)pV}6 zC6v9k-j?@nKL;-oOsCC|w=3=*x-3~xWq`E3L)fotINIcCvuPUFy3mTxMY7$|rDcj( zFr8`GM>W%2>1n9eJ!_z84Xh&A0NGu;yo7&|X(#As+1Kh^BC(fEb*2HdP+288VQ1cL8hT0b8(a;p4 zLkDn}@E3iOq8BQv&` z1?mVoG8D4QRZ>4QLHmOcPt<%s4ymwLoY*{`D9N|q3yp?GGt<5otoUd7Q5C7BoF9n8 z!rHM-GhC1O_Ms>xRS1$cZ>B@x^f0X)i7E%HF62{|im?PLd#@g}ULKD4h>C*?2MjX< zy&$pEe(|Q8cEgz)L;HhhvAX&r5Ga4h7)K-J_>3jSQ14G7NiiQEyk=}PkDK+YYiy|* zU>9fI;?b0v!7Flgv?NZKEo>aMGe>R+6i`f5D@Ch6S@6|Hk-gQ}(ubn|M~z*-sL83Y z=E`<9ZZeWZTv4#IP4m9uP~I@OUr=0YWpIi5HOibyT8R@pWiJ@ZTBk<;bAf-?&}hM0 zIYOS&K*OagvuhxuN|d_w1Y)iWLZEt#7lnti=UPbx!6~@g@65RQpAAag*3^Dg+i=T- zzP*?hm7JIxyrc5}C`_$ugwj8%lu%|$4mvtC(E=^3<8Vfo$YXyAe@jInEm%3; z1P}$)VkMtQOo`AB?$cH!DxBcsz`f`f8-AtfWZ@~uae+}Nf~9fnKI=JOPd_Atb22a ziz#(AHl)4<1iRL)l2U(EY6|jRPc;Ns8;(LIwn7x#e%BF?3iZ&=p=f>WfD35v4F-Ll zAjb%7G$kz~FvZr>iMd|D8+$-NKZovR7*1*C9eEs$cZ{%MH(2?MzG2={rp8N?zaj9F z(uHCGG|4qoh!qfH+suMPEi{^B=@vho(HeweMb8)ta_FjKvdMpBrX~VdFv$?}GE;+M zffD)(m9=h7A#XO?#*V73Ug?=|tWuboR)&^qt7LmM(F&OlvT>6^T;8rbmgUbDTToDn zEErXqa9y-%z+y|s3hl|>$iOM_CZ6o{=nN!zceR?s5u!r;5ui)ldyS(aOaT1U*W!zL z#-Ml+U@hueL^NdY1H;e1E5kU*A&*|4K^ONELvU;Pg$;QsO z1q81ui}jTBq4AtDj7ulmtzRj7NU*O*mMM2-EwB$M=dI|Clim80>o8J)d5VDlXYi_M zM8SK6NAIX|PxNwhh=kj>DvQ07(Eg_ZZu1$qtjru4k3iRq%g=OS>elENX%8*|H33n&Nd^v}T-m2$ za(^VR-B{FVegPLXerl6%s0!;Vrbpp^#H3jxg=`Z(gbmJs+U1FpqNDs;o#HTMe=_ml zbM-KLkd=Q^ViAo-f$oKU@oq8IcVo4$$#R_}&rG#PTmJPxw!`O(OW!SId&!G{vY5g@ z>n>4zK!^hQ4)w$oQc;=_^z$2oG(mdIqxTIOg`razez=fmC(?gwpcQB*BV_{0hZKED z?Mg*pf{^$Eh3znyZxS@>e$B2bTuNj=n|ITScB+3nGkvQ9ToOGTEz#l1liVoG4xTm- zhq{B2$D{rfF31p?kq>Jz*mnGoLZS*yw#~ zigv&w{b;r+5 zn4YZ{Dpgv#jC&O2_1F&+_0C8^xTUaHeoFR?%C?gA1ZP7L+XZNgkS|1V$ZGWVbaMFO zXMSeT_B+q$+i7hJPG9bp@~}ZtwOle)W;B0nooS*ao$e?A*={|ZM=Uo0PXvM46vGSK zyYL_Azvw8Mixd(-(&*>=LZHM2orl{{>72nipEnl(sQ=+jkr;rHUZuM52;>;r!R zg4-+`n`MPR074nWfND_yl( zabz{!%0E-1YOq~qHRgLGa?pkHYczkEU;uu;1nKv8&$lz)mWT)_L=#4BQP!%S#(%(e zQ0gQvMamlkM3-IZOFJs&>;av*Nj+S&$oKSSz9%X)9KbUUz_-PY=g(@2A}} zs&lOxJNfq=aecYMO{fObSWy_$53e-Heh#}$)KL+XWE#7>-^kEW@>6IBwPt@><^Fn} zvtCUKM|YXD>V2nB88WX*ne=2NQq;$Kdrn)KUu=howFfwG!=+f~(a&U&>MBcfUYwhZ z5bX_tP#8XAEvh_0Z~&A_eKHiMc?6b(;xiQ3GPMkvnP{`=X)E*{z1e=r2oBl}PpL%K zNS0-5=t=|^+DEvU$-Iq!7ixd31$|5`YJy4#y){z$I`oSp%~09=hf-&hcL5|l^EMbJ z>F_bSgN~$_Ufr7v`D|kZr52!D6uJ{OJ{rykQ0~imV}CX4EdfShL?}QxJr4*YJmH8Q zHa*o2ExJIBpjLK=PnnYg!T<;ka)6x|{sJK90{LP?V_@%$<<^bA2iSj0lWk9o@&@I; zih%zilv`FPmq~dolxy$ZevUm^{ZmRkoZB>)@RN0#FQbA;b|r%`l2iK(Cq<k3s7 z{f+P7hBIH4?;t{WOplRP)_qLtn^E72Oo2zi0)YsMnpWsVdA`o)hB68DXicu4pdJ!K zMKiV0JyqcOgE4RlbB|PvXn><1KRSXw71oav5>>WX85(~lATy9vkv%*Q^Lk0SEZyLBc5U6g400uCNU!q+gH;VI7oJjg`=c0~oq6kdU@lX6m;*0$&t z4R*xZ8TrIL(si!YE+;Vp5>ox-Vnjq0I$XchX`L|~EBmVR zW?rF?$WufPbA^2eU)FU`y0xg}x*6kng!DiULkWL3jT@AgqOPkr2=T~m;|7hFrAMn& zKqu<^MLAF4wD+6+KEgnog6ZuJ6znFpV;$tL}QQ3pqb5WURP?X=y~*EL>qBs9{nrgdHM|(RJIl|YBLdcJ%R_X^6EH&Ax--ZxP8nP+Yr-NGweqCd{b3jgG3iu4p8e&|%DFO7fW$9@6HL4XA%o)K_#4 zSt{LD%&}@%6M|L4#5++1HrBI@sw(nQ1)X7eLL&xXY!s9IsR zPz2HMWM-1NCrwy_0#D6 zXG_5=*7ImXDf1&jrQwR4r;mRJ6tq}26P8YjF`lA)e2B)rplQAuja9yi6hsE?8>EIy z6vex<;@B~Z2-A*cT3H6hW<{>qAykbzJB(3uR1XTec#3qwA-K8)V`2BKG~-+6bA1D2 z56=ADVC>yE-P_Svk4Sn)VUO-jW#fw*r%z}EKp7Hgqz?jVCu*$99&LZW!-!hobxQEI z7hP;PV`x?O36cxHAMYA?`!@G%U-FVDN}>llN2@V-%IRuEAyR6Tc#dy4^5^vb$&n9` zw|H87+J>aAE5M0)bq(AIxK#~{ZEkq!(!73+y}+O~r@(1DEZ6*bd-6Z9T3BE)FD9*Y?U z3y>pmR#ZR>NTG8RY@C9y8DK3%v0edTH0D4AY1llJv+^ilQI5t2SoBe^6y$fNQcgYm)A32B;X(01gOG5@m1}igzFrlx{TajR$|!;HgY((<9S8S-N`AthN`^&A1B37_m83bE0GxLNT8nJxWu?B{ zW-M*nEjoQ|w9am@q}83W6!i2f4HK2#18CNs579=M>K098ZqdLCCcxNH1n!e2IigEQ zBvZj0b&2I9?L&VV%{rKvBYK@$(ui2fBfw^Mq#Q_hL`RtoNNqgIM)Yk&!ej(tuWCed z&rF?fJM+`j(6%j)?RW-{?U=ToD=5=63gPK&-F^RnDgfnZPm_6o69j5kV`Dv>8YWG5Y{ZJbk;%1p5< zS%*jdTT5Jbf*(s1&&sSpRnMh>q$~&yNW&`wQ6QRggdnKXOup692xO`9w*@oe^F!Zr z7iP}?Y&h+iBSBC8F6Q>_?6#wjA3&1@KPG?52+JkuOV=$_*onH{HJJa%@)X<^6bK_i zqy*P8y!BH?DGWwPT3VIOLZ`)s1P}@gpQg;d-F|3IaYU=+qo9q?gK1yVI$sOZHU;F0 zRTA-}LdM}&EtSk@(s#>^Co4+RU0QChCt@^**3PDzz%U1*dkW0p*n}2^;BK!?t8jl+ z(J?olaz&otb<-r6bJH+8N-`LPqUay&q{&~wM?jKoGf7sH+Ce2b3hRvn0sbxyP|Q${ z-mLvV=9Y>+W%GK?xIch28Z^y>vGTg(Mnw0FnCml2n1&G@QVCtkiNMx`BQtUyC^s12 zqtjy|eQ79CX@O}CPz0gmqifEjtsxJx*t+2X&{h?#3I`X!c;70#$-X(6en3xfN1%Xjg&ZaQ0Brk_=d)B$Q`8S3R^C?DRVWTM6#}w!=|U7B98Pzc zg=G7Q^BIudfXN?$E29Mg;f)pbDNgRt z9I&ZhyYd+sA!s1m(q45f$g9cN$=YQ!NS@(BUS^AKIs>$`Okq28GD>4+oy>|miwu&F zuH*stP%wts0jG?{n3=9Y)>)Ahwr5V!Fl>S<;=hEZ9D``HAz ztm0DPZJ;&sG?TNebb^$J9b|<&1-*H8mT5_6^J6}VI514e8JI|46ts96q()ZJ4(ZAP zYXWRZG@e64+4r&gSAu_h?<58IX%OE&BfiO4ydSbA{Piz?{qx`c{I@gan+)bvP(HtV z`$;R$fqdP_40m@>3xphspBwF#Y(y3$Rp3jCbg2~>r3)*M?H<3Q{WQBcxrV2x2f` z<_02d7<^7`KwIUX)C-eu@@*gwk^R2IGS^0?OXQgVYxPFZ)xdwAV2-wVQuNeiX`);f zG7q$J0L}vE$uY;_9lI(zDpnkl=aq{{J1r{n4ju*O9K%3^Ib8W)Jg=@^<|v+&KH z1e~-ek(pA4mwW4|j?$#(LNymj4+B*4OJW!-ja1IKC9B7Sl`RimfKC(bp8>?ik<|D^9~(JOkZ$SWmOX*Q~#z(3nDx z!hoA`aKTL6nOkycK2vy95u9M?-fITQWHz<6hCVq9L6nX69&!W4bfls*p#DnFQkUmxDwKENM2BRf~1PFFBlaPU4{cWkpjifB(F%L1ree`NwarTal{Dp z3Xz8Pej)DRsT7_W(PUNbZOhC5yjU=Nxpy(IZ)bnarILkA*k}$F9j+o~aA8Hd0VwF{ zB#oXR9^s%net%970N8M|E%e1iw1*M!Pz(H<4J@%Nc6^_Gqw=OEbhKi_hGqf?_=|+ErI*J)z0oDc%C}1TVCJHy4HNVh5j@rQXdytyc=g^8bg24^ubT|0#L1B_?VY>{rO(ItbOmPTd7^sj7 zw5No(Y?J9Snl?~)D*Kt_t2B(7*BPxh3Iq#+G=ctF#g@G%$E&p&I-8W_Oprmh5uuD9 zAjt@xSxmg-t#DKDEK1$M>+crk&($DJuibCr9_;VRJ7{~R#zrK7$g2~Ul>5rP(2o%5zg)9Q6}t0%NAl5<%)zO8bGfL38- z2YmM^{hfu)*v_JcdM@2k-lMrzVX=QmI;{zrV6Ra&R5RsertqL(wHJ93t!%Ajxtr>Y z(m@l5nkK(}-c^?@P*DLd;(E3(9SnPuWzZ(_}^fpPFY~cg;q9PqYr?!AEOz1zu=O7IX)^(GneaBXx^8Jt*v* zV|}^m!2YgnSOMkj-txlHWyV3mEuL__rvwRFbu`j|eD1ep_zmfO6#@Q3q<5T=-ne67 z_#Dz3Pdp6ECtC#+#D^0j?(Tm8L!i7G!m+^SHRYFq?MS47*^8>|r&W6^TU55Q0~vfP z`Pln6xF*=WuE+&;LJV2aYRt8Z0$Q|9AsIe}QMDE}rqc1n3ZZ90kRdj(7vI{_k$VAR2#;7kh4C^>JI8n2`x#gB{X0&98NjO@A;tTbBpehU|sz2P7U9 zh$#==MHMpA7&tq6d4NO}heHRUDY319q{k77cd9#zPxpp^yaB#fpScgfH(Qsn1v&XM zRvII|54({mdxY*xD~=8P!;AT60lr$P-Mg~ChVRC7xtzhev(bN5RtAS)#T2q=aA7U) zqYo}v1-G0{C4?n$y4=EE0AC7@3cK|v*2nzpY9hO>uQ#R-T_xLGivMh^WlhrhTA4H7 z6uubjO~w&~L$d@AP0hxtdwlYx@J-eG}YM?ZAwq5qx2BQ zhdkG{pt(_zs%w9UNp3MQy~mpx2w7KrBWSqc%(nx3?_yrxUiq6Na0Y~VZ22OFxWJPY z$4n&}5^1)JYkXFDkfv9;aLraTC$yH*J+1Ie(IxyOvLh5F(5mIoI8b8Nu^)=mw)5IE zosk@=(04sWkN5!VeK{M=-*s3oBWFK&NRDib}FTNKGj>>;pDs%;f~wN=pq~P`Sy6Ky7UinJ&V&r_g$tNxRd|tb?xc@i}@-4-=h z&>_M6g{(PIp=JXiBf}gVKDZA^PZe02w6=RrDIOvjul+Wlz^VHQM^$) zlj%}_&?4uTE2PrHpehf37ba*#Osy6)anMtuFFwUQR5Y_|-DN zcm>1yHfZ1mbT(x#@*5~Ym5HQIRaPoy>w`+Nv@tCIR;qSGjTe``Ul{k2Q5Pa1ImMv( zl*d(JWAjGZ+^O=0Y#B8?(l_Fg2=%-SzRR(H52I{~bUI-EsR{urh5ymSbpp)^ep$R$ z8m#23Uy$uaqJpiaD+zTa7*`r;i5)8(-!p4Szru* z^!}utV}7KGj;PqTN6q>57;Zz8(Vc-=B*5pT$fnk6U?zl?t*2}Ko~|&`ILs|NKK&_& z=+^0twBFYE_v1>|ZxUKA;H0}RqJX}V&17bsC< zi)nZZ2Lg@xji`?PTkkJ~&cNVkJfmDI)u-Bw4s%9bf5HyI}nNrhD43~ zEO9p=(C_rFQ518)6Gy_N-%~+tD0_XFlia@tz8Ri{eUu$!I?^G{JU7e$tikA6COK)n z1>LMh#k5f+?(PHdt0Il&DG91dT=Bo~i|W7V()U|U(c}u;mw|dA&8B>RMX`v9F^!>> z{8b~#XOFfPLZ@iGN9OeD^RN)G53Tt+PYw(hK0xX4HqY-7EpV8q0%Wm$Z9RZw-m?Hp zoXFZ>PK4VProVh}lgbbsigG2B{iBFeAnu7sK*;eRd$vs=vlapBn`GXkgwG_}H5vwN zuqzg=Hra#>ITn174%%3MkJ-sY%mcomOha!|aF?i@rt%&d);8stkGDndx{iiEB$J#M zeEVuh7RzGLKZVjLztwzxe@R9M+}Xo7*pk*S*$zTaqnaTohl`!ZX6CTMUfCga;dh{n zc^HXDeX`QOTWD~gyx{0gL8)M54%c8KnB{8ZMi79)m?<*6j2V6s^K97 z-$enL-CXQO8gN}J93hhLGA_0W2i%L!oN-IZ5O9Qdw(Ap&S|=A&RI>0%nfh+RaxF7IeeXmf?Ox8Z)Nbn&Q?Bu|Is~%;t6fked&jTc8b!O#< zbTptasF-do%8>Y+4#x;AAC-NqVfqk%bRa#17Qlfx+me=sriIA#XQE zGh)1hD%=tul-1pZx${3aPWzoF^vyVJ2=wBV2E)pK3_vXIiVgfi3MmIhvQB-yr>awS zDjuQ*@HJ``R1mVB3Ex0tD>Nd|nZksXw!jB;p|U64NL1@ns_zeg+LyD={9Oms5@^!Z zg=_?+3TL8pxXBfyDBDM$LJ=kSP@DP96?d7b?rcmOn+o`Vegd4EkhOxqgtEmcDhl-Q z9@Dsgyj4YfT}Z8*n?@wbv~}dEVn)0f;7-O*sfzLuTCEWq4CDip<&Bny!d&EzI$QiG zB_FMrZqil_f(5#?(fZNjmy0~T`AZ6G73xq3S3zy4=InKK*|-K}Sm<;p1$H#5E6k&T z2Pv<^Mbq_LA-qE&1#vIvbpnO&0S2@{+JY2+(wiW2YL4Sc2?4jqh|){Z;6F>r2pYF`HGPd_yZ{YOYJVcEHlDHC{4A_CZ?Ia9v5ylZw)u0a zxtlZWbXfs^Jk?c#bOp+-C{u*cr|mGyOdW#^O9cC(%rRQ8D@wie+8AaFmgi)DGw9wz zmbGw{#y+ zt@oxLp*(bXC^!n8$OXEY9W8kv3>Sv`!A`e z9nB%(TqqDMiu=!5i-G)qv|z(IdAN6>4L1DTv6r*<{V*vd*{~`u21x zZPP^P5@e4l{^;Zz_hs(<&kfan=Lvl?RNIH6awuEfRi!Ux`8@mxmi^bMDX2&?E-}NV z)Xz_Jdn2I|hbdT~G|+08(gcsE7LwKmnIcV`o03`?pM)4|qlK$~KLvX{Kx$vkIP-TU zQj4kpV@AY6<<&~U0(&B|+Zq7n+-Qy~wU2!nxzJqnt%n&a0e*z=fW4Z6p1Gm8TaY3b zYvhK-qK5Wrky@FHo{g>6D!SQ!>IRmfjxZVowh{5KW@J8a3nZf_E%e}3>O}g{YDu)k z5l6BmnWJZN8P(T+>Ag3jv=D#E^?H<~*m;nVUa|OM!qXLGPe~3XaEZcSSUP<=Yy;Fn zf{a&gwBq+67)AI}|Ix_KG~3Ev*si!nC57T$q`MSHKNq0A1Lu1)KpP!&3I*-vApg6< z3qhW-Q*jaz6GvwYvJhj_J9fP=n#wv-H0d=#6g9C)s;3Qq{YD(fRb6b7T4tFN8dTP9 z^rYvdwN?Lw_}QfX+mAM-u+%Y8d%mKGfhv7Ox!Y#}+B9e|rM!o_FW#{h)5f6ejB3|t zwVlm~I*}QS6aWQSaI~c9orMeyL9}>L6XmQI zmS3OH+5CQ_fN#+2okZb34fLAM&?`NQ*F&$x`)T`sNd>fRf^(^0cCWbqU@9_+8dUlc zKyN93V!O#gY<8WFDP^N$2e6^WiRDH`8KK3rp{N~}jZ=5Ub{2HtU9L=#l4H z!L>&#{^{LBD&Yy33Sw5#(Tg5&04t`fC4EuIO=zDb83f)SCAg9t=mX?1TvLdHRl*SY_H8X9!Pl$sV5XIM7%0-49GxEOsBgwXJf zop}Ovb5ji7jiCz`gFzby++A=;L03yb*#$Xmk5q5d*<-YNcLq+pVX@D-rMtjlsclih zNA8R=^P}b&>wOqmKU$cDZg_vx)?bgsCUOyW!j`{o9g!B0*0}1C8CH=^A$|EP2@M5* z6tb1euLvzoU1mth8w!k8CR9;&%v2N;BxG}}ipwhLpG$m4?Ee+V^x32AzeI*CMK_?< z#$v%VTQ`*>gYeR(6^V%4nhWh_B#h{O9~^;C7!uKZp|zl8FDGe2oVG|0oH`q=<*YJ)*MYFr1hX?*KXg;4 zbDNPV;Z`e`4RE6}&SBXht1=jh>*YEZMpOi%U=$$$We374@aTg$s_qS1rvs|F zQB2$lar%rZP zTm^aNTNy@I1sLhWAx;>AQq2NGw)_*7oIE`@Z*`=IG;%B#z$`P1iY7$rYrdiaM7Pr* zDQz&Be8=%Na)U;`MtSNoV5EncP593Ov(V_Hlv<6OoB-(DIiWQH@d5FFWvmWDREnAK zETbK+PhTOH=7AuD)Ae?`1fteIod$4G`)w0NSJs;#_t&jaBz@U>vHzXO@`jMk#DDUT zOd&0pLBki^)+0BxxxCggBJKf>Mzke2s@P$qO7G!B|OR>36)33H>?Gu^$YqWNOm zC^*<>!nC8(&+5sAVXujQy2I6fV*w+C1cTc63=F~661>7A>yxk~VE<@gk%f$)H_C-^ z+mu{!KjjhHvF=(&%bw>wEU|wppqQ+Au*&S7xv7NeUD`X-Q*zX~{9{Od-Q62!To&qHz-C8TU89hS4`CkmR zZuON=(cUoAuRoK25oSX-^@49U!%!PuW}V)L!qrV@-ay*t+|r$Zw4EJu4_&MOjP=Dh zAB4!Mgh%0kLeBT)B4Q0ulEXoet&J=AiUxe4N$*@QtDHjNF%lU%y<)c!?a44uoQ-s2 zq6AbQk)wpT++=@g)0M07H&GiXx~yMwXrDdU{!8j*5n4ch>C&W=lmMpl;w~sA!4u1P zS{a}rDzuRtVYMMg5M9V5X)H)+HjtZpbVxeov*}V8#Z$}^DXk4XlzZEf@;^6L`<*BB z%~)-znpc|W2~!ZOKQkMU4O^U2lo+~DDR)vT9?=6oq@XQPvp&GB1-YmZht3sO$Ul)} z`>pbwraD!B;cUPbVB%+rhrOI_=I=VF)|NdQ=e`iDo)resxSf>_yj4@Crsy=GNlqYX z+O4iyYHtBTrdvaCwX8q^LQg4`?RtlRT-P#Xbh^pv{Xw<&V3MAT#J(nz^a_0J7jVoL zt40p=)%m>H@Q`)F$Q1&a>QLh(k%XpKuN|2r-<=76J)#>HETNSjrQCYJIUpb1+r_#v zrYN}KkRH3L>cf~UC`kFP<89kv$!HG8dAE(qmOwl)SGqpRGFy$}6hRpJ9efR|c~8*F z$uTH^QQ*TS9BMSO=)|f=cd5Jp3I(c7QA7dWh7XHwNGJ+qGq-zA)tQbsWuT$7vh_+;i-P4&jNcA3koBxR*)pCYZW&WN4sb+tMR5^yRA4#S*uH=vPFyVJ4#T{j5 z&Y;RAW0jS*$^ju7`ie#Q2Y zE~P6#C5@<8S)kcES(SrBt`NyBxlwi%CnCsy;b@Kxs3dm!(C2+J2wxIXl?rws-)n<* zot9#%#xWE7(IzsIkAaLW=cpf0@^Q-F0((|Pi7Vs}`mKsz!4#O0%fHzaqteCY-%!=_ zd)`phtIoWks?WKlJ3&=56rQISA2-0*=luWxpv`{=uhE$Hs5O5EstVnf>*tThaY6=v zjl-_4Ux*2E5W=h_vh15@>aT!4PJe^;uh3nm1)$KOpr7B5*#%6u20V}EF+2LFgwXCE}!^3U@5o@km0 z#EsQ7UunZ^-D>U+MT!!2X4MEZW2gI-&1o`wW5P?xXtA~=1W;%y?4z*nqMYe?ydQw7 zFJ_wgyHeLH%d)bKrA6F~%w;h*z+8j6Eedy?krd=pAlVh+>We$gOeM`9Bqnu#vMmrW zp~!+3!nWv7E}|hI2!kR8_ivc$!I_^JQ?)bS*&=-brfPlP^1Z%8kAB84>DAUl8>WPp zD;0?aX$<9^M}3h^;R>7qG-{#}=S?*!(u+B4>r$!Y1s5#b`3l!rfu&vHUjy#Ap|%;m z=V%8CO`%Z8wZ*nTDw_NZ4V2P<^W=DpYM?sWQ1!nGd)ZV!r!UHP>0vDt=(}jXeb$kC zKq_~-6SnKUCF!lQOV`Pook_2O8c?RaE!D5C!dO#@nE)K}8=`vmdF~scdJmq>|3rvt zJtL~)IV`XC?(HXgQlJ$e?_neBs$WF-1%jhI+|EEU1#v3Mt)8Z_u&ddBq>ClU?&j++sWFa^I^%6t&PHw`F+TE6Boh>XnJQIm{+Ty5KJ7SNkJ41WOC zM8D#}8}7m~{=krHD0}(W?#l9a!yVlP;#!Lm=>Q?2p4;avG@VEf&q3(_NL>QGOZ8D( ze?8t>w5$=6zF-hIEi`2nA*^2*vT}&D;;lmg?}W7sv|KHxb;qqw6j8xU5>0$UmOJk3 zX@*iRWlBZ&GO9>Z6zWXaaV#*bUof9l3PGq_!8(t4m-fy7+$igJozpjC ztg+L}otnHleaz&~t9NR!;APTwgrjqSps$;L<{^Dz^1z3GG=;}tQZ1FrRl1qLQAdPU z`U2EY3?eHNEOE>InU$+AWsUi}4q_e6gX=R!5~wJ zOpZd^sVI_vB%)NNfdxc|6?U+e4()4TV3g`0SFS7RZQ+6^>t=d^)bzcI=La;RwL$-| zB7D?+_gNpeLkT_{kU1*sDUq5TW-m=&LB+R%je_zlX;YgL$w+1^v~{a**{5^z)5_z# zMgep!mPPOGbvWUhA=m~xuH0<^&4V&vU1UBpDaaguDg6QT1n6r_yGQgvlwZ(Ru87>* zGt;a^KN=-XMK(QNP@<6G$iHjSb{zcEh+u?MLQ7Ti=sS*ep~auT1j@E0X+x7WP=Pfk z-VXrShdHjI8Kr}IRI+14pmnq6n4WB>5x-y|QRrfyo~F_L{m^i#OVQh)i)Q7hMX9($ z2v*U5W~OH>ZB1$jAjmK?bU3eKd!{H?@btNA;WubmNG3rCH7Cl{De#iHhVjsoHAbcG z_!!H=Tn~w@LgZt*Y=t7|UI7ngJ`{Gr8?$YZ34aQueOTQFLgM836!>|(Zf5!|AJfW5 zuRK-#MpUqoF82tvv}m7ft|CiA=^WW%rgB zjv3zo+dB!{e;UBHZ2{Z-EWkET+fTw$GNCGUJ*xn$?+9HXf5jQtfsBiss1};(<7UxD zMO3j!(6b3YbHhH=)QYl`Y`QCJ$BD{9Jz8H%grl5b<}V2{gYI+{#Y1oyXcldb!tfR?PzM7#3Ic^6r$k@dauohYr!MJn#1%}oK2@{KwULmyAwZO!bZ z;xrC~$vk#ACBrpj+j2mwEL0!DT(>QMc-( zbjkItYz)jp4n^B$;-iDY?dAP44B)xOsIPfLL0D867U7uC2aD1c?m3bsD#Jlt*D<~s zGGl9B*^99s?8r z000O8VN?oL5&nBf%K88RqqqbB8UPpo000000RR91q=5hc0FfOXECm1q7Q*vlb$AN^ k0R-p+000E&0{{R}O9ci1000010097C0000U`v3p{0KgSwH~;_u delta 57154 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 diff --git a/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/extract.csv b/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/extract.csv index 5e2f79e6..ce92d4f4 100644 --- a/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/extract.csv +++ b/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/extract.csv @@ -1,7 +1,7 @@ OID_,NRI_ID,STATE,STATEABBRV,STATEFIPS,COUNTY,COUNTYTYPE,COUNTYFIPS,STCOFIPS,TRACT,TRACTFIPS,POPULATION,BUILDVALUE,AGRIVALUE,AREA,RISK_SCORE,RISK_RATNG,RISK_NPCTL,RISK_SPCTL,EAL_SCORE,EAL_RATNG,EAL_NPCTL,EAL_SPCTL,EAL_VALT,EAL_VALB,EAL_VALP,EAL_VALPE,EAL_VALA,SOVI_SCORE,SOVI_RATNG,SOVI_NPCTL,SOVI_SPCTL,SOVI_VALUE,RESL_SCORE,RESL_RATNG,RESL_NPCTL,RESL_SPCTL,RESL_VALUE,AVLN_EVNTS,AVLN_AFREQ,AVLN_EXPB,AVLN_EXPP,AVLN_EXPPE,AVLN_EXPT,AVLN_HLRB,AVLN_HLRP,AVLN_HLRR,AVLN_EALB,AVLN_EALP,AVLN_EALPE,AVLN_EALT,AVLN_EALS,AVLN_EALR,AVLN_RISKS,AVLN_RISKR,CFLD_EVNTS,CFLD_AFREQ,CFLD_EXPB,CFLD_EXPP,CFLD_EXPPE,CFLD_EXPT,CFLD_HLRB,CFLD_HLRP,CFLD_HLRR,CFLD_EALB,CFLD_EALP,CFLD_EALPE,CFLD_EALT,CFLD_EALS,CFLD_EALR,CFLD_RISKS,CFLD_RISKR,CWAV_EVNTS,CWAV_AFREQ,CWAV_EXPB,CWAV_EXPP,CWAV_EXPPE,CWAV_EXPA,CWAV_EXPT,CWAV_HLRB,CWAV_HLRP,CWAV_HLRA,CWAV_HLRR,CWAV_EALB,CWAV_EALP,CWAV_EALPE,CWAV_EALA,CWAV_EALT,CWAV_EALS,CWAV_EALR,CWAV_RISKS,CWAV_RISKR,DRGT_EVNTS,DRGT_AFREQ,DRGT_EXPA,DRGT_EXPT,DRGT_HLRA,DRGT_HLRR,DRGT_EALA,DRGT_EALT,DRGT_EALS,DRGT_EALR,DRGT_RISKS,DRGT_RISKR,ERQK_EVNTS,ERQK_AFREQ,ERQK_EXPB,ERQK_EXPP,ERQK_EXPPE,ERQK_EXPT,ERQK_HLRB,ERQK_HLRP,ERQK_HLRR,ERQK_EALB,ERQK_EALP,ERQK_EALPE,ERQK_EALT,ERQK_EALS,ERQK_EALR,ERQK_RISKS,ERQK_RISKR,HAIL_EVNTS,HAIL_AFREQ,HAIL_EXPB,HAIL_EXPP,HAIL_EXPPE,HAIL_EXPA,HAIL_EXPT,HAIL_HLRB,HAIL_HLRP,HAIL_HLRA,HAIL_HLRR,HAIL_EALB,HAIL_EALP,HAIL_EALPE,HAIL_EALA,HAIL_EALT,HAIL_EALS,HAIL_EALR,HAIL_RISKS,HAIL_RISKR,HWAV_EVNTS,HWAV_AFREQ,HWAV_EXPB,HWAV_EXPP,HWAV_EXPPE,HWAV_EXPA,HWAV_EXPT,HWAV_HLRB,HWAV_HLRP,HWAV_HLRA,HWAV_HLRR,HWAV_EALB,HWAV_EALP,HWAV_EALPE,HWAV_EALA,HWAV_EALT,HWAV_EALS,HWAV_EALR,HWAV_RISKS,HWAV_RISKR,HRCN_EVNTS,HRCN_AFREQ,HRCN_EXPB,HRCN_EXPP,HRCN_EXPPE,HRCN_EXPA,HRCN_EXPT,HRCN_HLRB,HRCN_HLRP,HRCN_HLRA,HRCN_HLRR,HRCN_EALB,HRCN_EALP,HRCN_EALPE,HRCN_EALA,HRCN_EALT,HRCN_EALS,HRCN_EALR,HRCN_RISKS,HRCN_RISKR,ISTM_EVNTS,ISTM_AFREQ,ISTM_EXPB,ISTM_EXPP,ISTM_EXPPE,ISTM_EXPT,ISTM_HLRB,ISTM_HLRP,ISTM_HLRR,ISTM_EALB,ISTM_EALP,ISTM_EALPE,ISTM_EALT,ISTM_EALS,ISTM_EALR,ISTM_RISKS,ISTM_RISKR,LNDS_EVNTS,LNDS_AFREQ,LNDS_EXPB,LNDS_EXPP,LNDS_EXPPE,LNDS_EXPT,LNDS_HLRB,LNDS_HLRP,LNDS_HLRR,LNDS_EALB,LNDS_EALP,LNDS_EALPE,LNDS_EALT,LNDS_EALS,LNDS_EALR,LNDS_RISKS,LNDS_RISKR,LTNG_EVNTS,LTNG_AFREQ,LTNG_EXPB,LTNG_EXPP,LTNG_EXPPE,LTNG_EXPT,LTNG_HLRB,LTNG_HLRP,LTNG_HLRR,LTNG_EALB,LTNG_EALP,LTNG_EALPE,LTNG_EALT,LTNG_EALS,LTNG_EALR,LTNG_RISKS,LTNG_RISKR,RFLD_EVNTS,RFLD_AFREQ,RFLD_EXPB,RFLD_EXPP,RFLD_EXPPE,RFLD_EXPA,RFLD_EXPT,RFLD_HLRB,RFLD_HLRP,RFLD_HLRA,RFLD_HLRR,RFLD_EALB,RFLD_EALP,RFLD_EALPE,RFLD_EALA,RFLD_EALT,RFLD_EALS,RFLD_EALR,RFLD_RISKS,RFLD_RISKR,SWND_EVNTS,SWND_AFREQ,SWND_EXPB,SWND_EXPP,SWND_EXPPE,SWND_EXPA,SWND_EXPT,SWND_HLRB,SWND_HLRP,SWND_HLRA,SWND_HLRR,SWND_EALB,SWND_EALP,SWND_EALPE,SWND_EALA,SWND_EALT,SWND_EALS,SWND_EALR,SWND_RISKS,SWND_RISKR,TRND_EVNTS,TRND_AFREQ,TRND_EXPB,TRND_EXPP,TRND_EXPPE,TRND_EXPA,TRND_EXPT,TRND_HLRB,TRND_HLRP,TRND_HLRA,TRND_HLRR,TRND_EALB,TRND_EALP,TRND_EALPE,TRND_EALA,TRND_EALT,TRND_EALS,TRND_EALR,TRND_RISKS,TRND_RISKR,TSUN_EVNTS,TSUN_AFREQ,TSUN_EXPB,TSUN_EXPP,TSUN_EXPPE,TSUN_EXPT,TSUN_HLRB,TSUN_HLRP,TSUN_HLRR,TSUN_EALB,TSUN_EALP,TSUN_EALPE,TSUN_EALT,TSUN_EALS,TSUN_EALR,TSUN_RISKS,TSUN_RISKR,VLCN_EVNTS,VLCN_AFREQ,VLCN_EXPB,VLCN_EXPP,VLCN_EXPPE,VLCN_EXPT,VLCN_HLRB,VLCN_HLRP,VLCN_HLRR,VLCN_EALB,VLCN_EALP,VLCN_EALPE,VLCN_EALT,VLCN_EALS,VLCN_EALR,VLCN_RISKS,VLCN_RISKR,WFIR_EVNTS,WFIR_AFREQ,WFIR_EXPB,WFIR_EXPP,WFIR_EXPPE,WFIR_EXPA,WFIR_EXPT,WFIR_HLRB,WFIR_HLRP,WFIR_HLRA,WFIR_HLRR,WFIR_EALB,WFIR_EALP,WFIR_EALPE,WFIR_EALA,WFIR_EALT,WFIR_EALS,WFIR_EALR,WFIR_RISKS,WFIR_RISKR,WNTW_EVNTS,WNTW_AFREQ,WNTW_EXPB,WNTW_EXPP,WNTW_EXPPE,WNTW_EXPA,WNTW_EXPT,WNTW_HLRB,WNTW_HLRP,WNTW_HLRA,WNTW_HLRR,WNTW_EALB,WNTW_EALP,WNTW_EALPE,WNTW_EALA,WNTW_EALT,WNTW_EALS,WNTW_EALR,WNTW_RISKS,WNTW_RISKR,NRI_VER -1,T06001020100,Hawaii,HI,15,Kauai,County,7,15007,40300,6001020100,8385,992658000.0000000000,147860.5647200878,3.6108521589,18.0705830803,Relatively Low,63.0775787404,63.4969325153,18.6199401875,Relatively Low,59.6420077263,70.5521472393,324935.2155714268,98076.5248682368,0.0296790442,225560.7358958097,1297.9548073803,31.6808724993,Relatively Moderate,48.7278745931,51.8518518519,-0.1330000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,202742385.5800542533,1862.6855876887,14156410466.4337959290,14359152852.0138511658,0.0000357579,0.0000000020,Very Low,507.2650077305,0.0000002606,1.9802850905,509.2452928210,2.6321796000,Very Low,2.5538810410,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0030589604,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0005345855,912658000.0000000000,8385.0000000000,63726000000.0000000000,64638658000.0000000000,0.0167507621,0.0001397988,Very Low,22512.2000000000,0.0001541200,1171.3120000000,23683.5120000000,11.8920653303,Relatively Low,13.0147002820,Relatively Low,0.0000000000,0.0000000000,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0343605913,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000255348,0.0000003276,0.0002460797,Very Low,788.9305592758,0.0000968737,736.2401254130,1.3226671624,1526.4933518512,4.6757862953,Very Low,6.1662913066,Very Low,0.0000000000,0.0148900000,912658000.0000000000,8385.0000000000,63726000000.0000000000,64638658000.0000000000,0.0000058883,0.0000028944,Relatively Low,80.0189118426,0.0003613770,2746.4650635800,2826.4839754226,19.2773661946,Relatively Low,15.4429446232,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,59632790.0585851222,418.9266599156,3183842615.3584799767,51591.3125103788,3243526996.7295761108,0.0001804370,0.0000114831,0.0042466231,Very Low,63663.1136805333,0.0284625391,216315.2971586954,1296.2757495066,281274.6865887354,29.5879096062,Relatively High,26.9708819409,Relatively High,1.0000000000,0.0312500000,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000032387,0.0000018297,0.0000727233,Very Low,92.3692287258,0.0004794348,3643.7043933928,0.3360282071,3736.4096503256,14.9734902768,Relatively Low,16.6070545485,Relatively Low,0.0000000000,0.0000653310,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0089662390,0.0000059784,0.0021079463,Very Low,534.6107152638,0.0000032750,24.8896914625,0.0203625042,559.5207692305,5.8706925202,Very Low,6.7469108145,Very Low,7.0000000000,0.0319693090,198555247.5326173902,978.4678896234,7436355961.1380958557,7634911208.6707134247,0.0015593140,0.0000038734,Very Low,9898.0167648649,0.0001211641,920.8471781755,10818.8639430404,23.6580872265,Relatively High,20.2115884136,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021 -2,T06007040300,Hawaii,HI,15,Hawaii,County,1,15001,20100,6007040300,5213,409283000.0000000000,30161527.9142542519,97.0642891247,26.0474557835,Relatively High,89.4815710967,87.4233128834,24.6571275391,Relatively Moderate,83.8106105391,87.4233128834,754552.3595077734,510222.1167381129,0.0320334258,243454.0359926557,876.2067770047,33.3455935266,Relatively Moderate,67.0519519602,65.5270655271,0.9080000000,50.7751980000,Relatively Low,9.3859370029,40.0000000000,2.5387599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0579710120,1082842.5920536572,13.7920666932,104819706.8679994941,105902549.4600531608,0.0000313713,0.0000000025,Very Low,1.9692852387,0.0000000020,0.0151413322,1.9844265710,0.4142077200,Very Low,0.4374499910,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000541,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0099874373,409283000.0000000000,5213.0000000000,39618800000.0000000000,40028083000.0000000000,0.0008505842,0.0000116917,Very Low,509627.8000000000,0.0314233600,238817.5360000000,748445.3360000000,37.5977579168,Very High,44.7882310288,Very High,1.0000000000,0.0312500000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000180224,0.0000000760,0.0002275779,Very Low,230.5075462219,0.0000123856,94.1304164907,214.5030827638,539.1410454765,5.2311349597,Very Low,5.8932581207,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0100000000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000255348,0.0000003276,0.0002460797,Very Low,104.5094165573,0.0000170798,129.8064434247,74.2213962963,308.5372562783,2.7440512545,Very Low,3.9390063490,Very Low,0.0000000000,0.0148900000,409283000.0000000000,5213.0000000000,39618800000.0000000000,40028083000.0000000000,0.0000058883,0.0000013610,Very Low,35.8846142757,0.0001056430,802.8864714520,838.7710857277,12.8581949229,Relatively Low,11.2121138672,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0006245044,0.0000038327,0.0003492485,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,1.0000000000,0.0312500000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000083601,0.0000003102,0.0006212585,Very Low,106.9261414761,0.0000505411,384.1124266061,585.5657605523,1076.6043286345,9.8898625798,Very Low,11.9394659724,Relatively Low,0.0000000000,0.0006781468,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542519,40058244527.9142456055,0.0003985575,0.0000002657,0.0000937001,Very Low,110.6212172132,0.0000009395,7.1398535480,1.9165373923,119.6776081535,3.5109250974,Very Low,4.3917261130,Very Low,4.0000000000,0.0182681760,315888.8587620233,2.2117928286,16809625.4977076985,17125514.3564697206,0.0006654598,0.0000038734,Very Low,3.8401775301,0.0000001565,1.1894532216,5.0296307517,1.8327269938,Very Low,1.7042906890,Very Low,4.0000000000,0.0204021391,407903840.5845158696,5201.9799937840,39535047952.7582778931,39942951793.3427886963,0.0000000070,0.0000040043,Very Low,0.0583395999,0.0004233184,3217.2197865804,3217.2781261802,17.0524727301,Relatively Low,17.9932135371,Relatively Low,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021 -3,T06007040500,Hawaii,HI,15,Kauai,County,7,15007,40500,6007040500,5943,1030806000.0000000000,459516.6731830848,6.1500338151,19.0467198618,Relatively Moderate,67.4534981234,69.3251533742,18.7719774304,Relatively Low,60.4118835838,72.0858895706,332959.9571449574,167792.7734322688,0.0217301935,165149.4709508616,17.7127618271,33.1217117362,Relatively Moderate,64.7826443794,63.5327635328,0.7680000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,66594737.2848528028,383.9447225607,2917979891.4611377716,2984574628.7459902763,0.0000063169,0.0000000003,Very Low,29.4350693631,0.0000000083,0.0628428106,29.4979121737,1.0184434918,Very Low,1.0330889632,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,56.0000000000,3.1111111110,0.0000000000,0.0000000000,0.0030589604,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0005860614,1030806000.0000000000,5943.0000000000,45166800000.0000000000,46197606000.0000000000,0.0167507621,0.0001397988,Very Low,120075.0000000000,0.0011438300,8693.1080000000,128768.1080000000,20.9111551033,Relatively Moderate,23.9260247408,Relatively Moderate,0.0000000000,0.0000000000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0289855072,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000255348,0.0000003276,0.0002460797,Very Low,762.9385502884,0.0000564393,428.9386307213,3.2776151707,1195.1547961804,4.3095415029,Very Low,5.9417734791,Very Low,0.0000000000,0.0148900000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,46197606000.0000000000,0.0000058883,0.0000028944,Relatively Low,90.3777476786,0.0002561316,1946.6001040973,2036.9778517759,17.2833380202,Relatively Low,14.4752368977,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,40606220.8832914308,293.0385094863,2227092672.0956783295,530.1707312656,2267699423.1497006416,0.0001804370,0.0000114831,0.0042466231,Very Low,43350.6205845832,0.0199094993,151312.1945288390,13.3209920158,194676.1361054380,26.1722849103,Relatively High,24.9423944801,Relatively High,1.0000000000,0.0312500000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000032387,0.0000018297,0.0000727233,Very Low,104.3268729204,0.0003398069,2582.5325235382,1.0442984855,2687.9036949441,13.4166096589,Relatively Low,15.5570766452,Relatively Low,0.0000000000,0.0001223370,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830848,46198065516.6731948853,0.0052856261,0.0000035243,0.0012426410,Very Low,666.5475081608,0.0000025623,19.4736228040,0.0698561550,686.0909871197,6.2836381633,Very Low,7.5500148235,Very Low,9.0000000000,0.0411033970,42337272.9888006300,137.6534442030,1046166175.9429297447,1088503448.9317302704,0.0015593140,0.0000038734,Very Low,2713.5270992744,0.0000219159,166.5606980512,2880.0877973256,15.2190537663,Relatively Moderate,13.5932751503,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021 +1,T06069000802,Hawaii,HI,15,Kauai,County,7,15007,40300,6069000802,8385,992658000.0000000000,147860.5647200878,3.6108521589,18.0705830803,Relatively Low,63.0775787404,63.4969325153,18.6199401875,Relatively Low,59.6420077263,70.5521472393,324935.2155714268,98076.5248682368,0.0296790442,225560.7358958097,1297.9548073803,31.6808724993,Relatively Moderate,48.7278745931,51.8518518519,-0.1330000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,202742385.5800542533,1862.6855876887,14156410466.4337959290,14359152852.0138511658,0.0000357579,0.0000000020,Very Low,507.2650077305,0.0000002606,1.9802850905,509.2452928210,2.6321796000,Very Low,2.5538810410,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0030589604,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0005345855,912658000.0000000000,8385.0000000000,63726000000.0000000000,64638658000.0000000000,0.0167507621,0.0001397988,Very Low,22512.2000000000,0.0001541200,1171.3120000000,23683.5120000000,11.8920653303,Relatively Low,13.0147002820,Relatively Low,0.0000000000,0.0000000000,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0343605913,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000255348,0.0000003276,0.0002460797,Very Low,788.9305592758,0.0000968737,736.2401254130,1.3226671624,1526.4933518512,4.6757862953,Very Low,6.1662913066,Very Low,0.0000000000,0.0148900000,912658000.0000000000,8385.0000000000,63726000000.0000000000,64638658000.0000000000,0.0000058883,0.0000028944,Relatively Low,80.0189118426,0.0003613770,2746.4650635800,2826.4839754226,19.2773661946,Relatively Low,15.4429446232,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,59632790.0585851222,418.9266599156,3183842615.3584799767,51591.3125103788,3243526996.7295761108,0.0001804370,0.0000114831,0.0042466231,Very Low,63663.1136805333,0.0284625391,216315.2971586954,1296.2757495066,281274.6865887354,29.5879096062,Relatively High,26.9708819409,Relatively High,1.0000000000,0.0312500000,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000032387,0.0000018297,0.0000727233,Very Low,92.3692287258,0.0004794348,3643.7043933928,0.3360282071,3736.4096503256,14.9734902768,Relatively Low,16.6070545485,Relatively Low,0.0000000000,0.0000653310,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0089662390,0.0000059784,0.0021079463,Very Low,534.6107152638,0.0000032750,24.8896914625,0.0203625042,559.5207692305,5.8706925202,Very Low,6.7469108145,Very Low,7.0000000000,0.0319693090,198555247.5326173902,978.4678896234,7436355961.1380958557,7634911208.6707134247,0.0015593140,0.0000038734,Very Low,9898.0167648649,0.0001211641,920.8471781755,10818.8639430404,23.6580872265,Relatively High,20.2115884136,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021 +2,T06061021322,Hawaii,HI,15,Hawaii,County,1,15001,20100,6061021322,5213,409283000.0000000000,30161527.9142542519,97.0642891247,26.0474557835,Relatively High,89.4815710967,87.4233128834,24.6571275391,Relatively Moderate,83.8106105391,87.4233128834,754552.3595077734,510222.1167381129,0.0320334258,243454.0359926557,876.2067770047,33.3455935266,Relatively Moderate,67.0519519602,65.5270655271,0.9080000000,50.7751980000,Relatively Low,9.3859370029,40.0000000000,2.5387599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0579710120,1082842.5920536572,13.7920666932,104819706.8679994941,105902549.4600531608,0.0000313713,0.0000000025,Very Low,1.9692852387,0.0000000020,0.0151413322,1.9844265710,0.4142077200,Very Low,0.4374499910,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000541,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0099874373,409283000.0000000000,5213.0000000000,39618800000.0000000000,40028083000.0000000000,0.0008505842,0.0000116917,Very Low,509627.8000000000,0.0314233600,238817.5360000000,748445.3360000000,37.5977579168,Very High,44.7882310288,Very High,1.0000000000,0.0312500000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000180224,0.0000000760,0.0002275779,Very Low,230.5075462219,0.0000123856,94.1304164907,214.5030827638,539.1410454765,5.2311349597,Very Low,5.8932581207,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0100000000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000255348,0.0000003276,0.0002460797,Very Low,104.5094165573,0.0000170798,129.8064434247,74.2213962963,308.5372562783,2.7440512545,Very Low,3.9390063490,Very Low,0.0000000000,0.0148900000,409283000.0000000000,5213.0000000000,39618800000.0000000000,40028083000.0000000000,0.0000058883,0.0000013610,Very Low,35.8846142757,0.0001056430,802.8864714520,838.7710857277,12.8581949229,Relatively Low,11.2121138672,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0006245044,0.0000038327,0.0003492485,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,1.0000000000,0.0312500000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000083601,0.0000003102,0.0006212585,Very Low,106.9261414761,0.0000505411,384.1124266061,585.5657605523,1076.6043286345,9.8898625798,Very Low,11.9394659724,Relatively Low,0.0000000000,0.0006781468,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542519,40058244527.9142456055,0.0003985575,0.0000002657,0.0000937001,Very Low,110.6212172132,0.0000009395,7.1398535480,1.9165373923,119.6776081535,3.5109250974,Very Low,4.3917261130,Very Low,4.0000000000,0.0182681760,315888.8587620233,2.2117928286,16809625.4977076985,17125514.3564697206,0.0006654598,0.0000038734,Very Low,3.8401775301,0.0000001565,1.1894532216,5.0296307517,1.8327269938,Very Low,1.7042906890,Very Low,4.0000000000,0.0204021391,407903840.5845158696,5201.9799937840,39535047952.7582778931,39942951793.3427886963,0.0000000070,0.0000040043,Very Low,0.0583395999,0.0004233184,3217.2197865804,3217.2781261802,17.0524727301,Relatively Low,17.9932135371,Relatively Low,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021 +3,T06027000800,Hawaii,HI,15,Kauai,County,7,15007,40500,6027000800,5943,1030806000.0000000000,459516.6731830848,6.1500338151,19.0467198618,Relatively Moderate,67.4534981234,69.3251533742,18.7719774304,Relatively Low,60.4118835838,72.0858895706,332959.9571449574,167792.7734322688,0.0217301935,165149.4709508616,17.7127618271,33.1217117362,Relatively Moderate,64.7826443794,63.5327635328,0.7680000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,66594737.2848528028,383.9447225607,2917979891.4611377716,2984574628.7459902763,0.0000063169,0.0000000003,Very Low,29.4350693631,0.0000000083,0.0628428106,29.4979121737,1.0184434918,Very Low,1.0330889632,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,56.0000000000,3.1111111110,0.0000000000,0.0000000000,0.0030589604,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0005860614,1030806000.0000000000,5943.0000000000,45166800000.0000000000,46197606000.0000000000,0.0167507621,0.0001397988,Very Low,120075.0000000000,0.0011438300,8693.1080000000,128768.1080000000,20.9111551033,Relatively Moderate,23.9260247408,Relatively Moderate,0.0000000000,0.0000000000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0289855072,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000255348,0.0000003276,0.0002460797,Very Low,762.9385502884,0.0000564393,428.9386307213,3.2776151707,1195.1547961804,4.3095415029,Very Low,5.9417734791,Very Low,0.0000000000,0.0148900000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,46197606000.0000000000,0.0000058883,0.0000028944,Relatively Low,90.3777476786,0.0002561316,1946.6001040973,2036.9778517759,17.2833380202,Relatively Low,14.4752368977,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,40606220.8832914308,293.0385094863,2227092672.0956783295,530.1707312656,2267699423.1497006416,0.0001804370,0.0000114831,0.0042466231,Very Low,43350.6205845832,0.0199094993,151312.1945288390,13.3209920158,194676.1361054380,26.1722849103,Relatively High,24.9423944801,Relatively High,1.0000000000,0.0312500000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000032387,0.0000018297,0.0000727233,Very Low,104.3268729204,0.0003398069,2582.5325235382,1.0442984855,2687.9036949441,13.4166096589,Relatively Low,15.5570766452,Relatively Low,0.0000000000,0.0001223370,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830848,46198065516.6731948853,0.0052856261,0.0000035243,0.0012426410,Very Low,666.5475081608,0.0000025623,19.4736228040,0.0698561550,686.0909871197,6.2836381633,Very Low,7.5500148235,Very Low,9.0000000000,0.0411033970,42337272.9888006300,137.6534442030,1046166175.9429297447,1088503448.9317302704,0.0015593140,0.0000038734,Very Low,2713.5270992744,0.0000219159,166.5606980512,2880.0877973256,15.2190537663,Relatively Moderate,13.5932751503,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021 4,T15001021010,Hawaii,HI,15,Hawaii,County,1,15001,21010,15001021010,7884,737712000.0000000000,8711454.3090733420,58.4401512286,43.1066279987,Very High,99.4459643383,98.1595092025,42.6674572964,Very High,99.2741170486,99.0797546012,3909779.1321200719,2582125.8111252696,0.1746532017,1327364.3330713348,288.9879234675,31.8903618889,Relatively Moderate,51.0956693021,54.4159544160,-0.0020000000,50.7751980000,Relatively Low,9.3859370029,40.0000000000,2.5387599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000478451,0.0000000048,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000541,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0099998852,737712000.0000000000,7884.0000000000,59918400000.0000000000,60656112000.0000000000,0.0008505842,0.0000116917,Very Low,2580741.3999999999,0.1736765400,1319941.7039999999,3900683.1039999998,65.1861714882,Very High,74.2640163391,Very High,1.0000000000,0.0312500000,737712000.0000000000,7884.0000000000,59918400000.0000000000,8711454.3090733420,60664823454.3090744019,0.0000180224,0.0000000760,0.0002275779,Very Low,415.4782459486,0.0000187316,142.3602922696,61.9542156517,619.7927538699,5.4799587665,Very Low,5.9041560145,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0269344664,737712000.0000000000,7884.0000000000,59918400000.0000000000,8711454.3090733420,60664823454.3090744019,0.0000255348,0.0000003276,0.0002460797,Very Low,473.5051910310,0.0000651127,494.8567057547,57.2461948490,1025.6080916347,4.0952789981,Very Low,5.6221049906,Very Low,0.0000000000,0.0148900000,737712000.0000000000,7884.0000000000,59918400000.0000000000,60656112000.0000000000,0.0000058883,0.0000013610,Very Low,64.6802104328,0.0001597715,1214.2637523360,1278.9439627688,14.7995789625,Relatively Low,12.3417814165,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0006245044,0.0000038327,0.0003492485,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,1.0000000000,0.0312500000,737712000.0000000000,7884.0000000000,59918400000.0000000000,8711454.3090733420,60664823454.3090744019,0.0000083601,0.0000003102,0.0006212585,Very Low,192.7289862509,0.0000764370,580.9212298706,169.1270211135,942.7772372349,9.4618177655,Very Low,10.9242145239,Very Low,1.0000000000,0.0004673635,737712000.0000000000,7884.0000000000,59918400000.0000000000,8711454.3090733420,60664823454.3090744019,0.0006900376,0.0000004601,0.0001622266,Very Low,237.9109428670,0.0000016953,12.8843062101,0.6604918534,251.4557409305,4.4968090785,Very Low,5.3796416501,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0006654598,0.0000038734,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,4.0000000000,0.0207448000,737708710.8628113270,7883.9591351862,59918089427.4153671265,60655798138.2781677246,0.0000000070,0.0000040043,Very Low,0.1075487398,0.0006549135,4977.3427848938,4977.4503336337,19.7224171343,Relatively Low,19.9022650650,Relatively Low,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021 5,T15001021101,Hawaii,HI,15,Hawaii,County,1,15001,21101,15001021101,3531,365469000.0000000000,1115552.9463470120,41.0551206444,39.6369371498,Very High,99.0514029613,96.6257668712,35.4631324234,Relatively High,97.7453635601,94.4785276074,2244880.4514211570,1569603.2441089998,0.0888473124,675239.5743199890,37.6329921689,35.2805718581,Relatively High,83.0000273575,82.3361823362,2.1180000000,50.7751980000,Relatively Low,9.3859370029,40.0000000000,2.5387599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0679710120,53358423.6905883327,515.5255139327,3917993905.8884677887,3971352329.5790557861,0.0000009778,0.0000000001,Very Low,3.5462107144,0.0000000023,0.0178004814,3.5640111958,0.5034846073,Very Low,0.5625920420,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000541,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0099998512,365469000.0000000000,3531.0000000000,26835600000.0000000000,27201069000.0000000000,0.0008505842,0.0000116917,Very Low,1549795.8000000000,0.0875910700,665692.1319999999,2215487.9320000000,53.9839983966,Very High,68.0399795668,Very High,1.0000000000,0.0312500000,365469000.0000000000,3531.0000000000,26835600000.0000000000,1115552.9463470120,27202184552.9463424683,0.0000180224,0.0000000760,0.0002275779,Very Low,205.8315698678,0.0000083893,63.7587762572,7.9336015953,277.5239477203,4.1923926160,Very Low,4.9971070139,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0289855072,365469000.0000000000,3531.0000000000,26835600000.0000000000,1115552.9463470120,27202184552.9463424683,0.0000255348,0.0000003276,0.0002460797,Very Low,270.4974447523,0.0000335331,254.8514731746,7.9569545004,533.3058724274,3.2931774779,Very Low,5.0015747332,Very Low,0.0000000000,0.0148900000,365469000.0000000000,3531.0000000000,26835600000.0000000000,27201069000.0000000000,0.0000058883,0.0000013610,Very Low,32.0431439731,0.0000715567,543.8312163240,575.8743602971,11.3433526973,Very Low,10.4651653429,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,4828130.5279219840,35.1384012388,267051849.4150594473,0.0000000000,271879979.9429814219,0.0006245044,0.0000038327,0.0003492485,Very Low,17839.8663537918,0.0007968309,6055.9146131274,0.0000000000,23895.7809669192,13.0070200492,Relatively Moderate,13.6546608024,Relatively Moderate,1.0000000000,0.0312500000,365469000.0000000000,3531.0000000000,26835600000.0000000000,1115552.9463470120,27202184552.9463424683,0.0000083601,0.0000003102,0.0006212585,Very Low,95.4796314509,0.0000342338,260.1766695466,21.6577094941,377.3140104915,6.9727783560,Very Low,8.9063071715,Very Low,0.0000000000,0.0003634330,365469000.0000000000,3531.0000000000,26835600000.0000000000,1115552.9463470120,27202184552.9463424683,0.0008889061,0.0000005927,0.0002089802,Very Low,118.0676167774,0.0000007606,5.7804922284,0.0847265791,123.9328355849,3.5520526364,Very Low,4.7010550308,Very Low,13.0000000000,0.0593715740,31437177.7921413518,196.0173546829,1489731895.5901708603,1521169073.3823122978,0.0006654598,0.0000038734,Very Low,1242.0638448472,0.0000450783,342.5948426489,1584.6586874961,12.4708959075,Relatively Moderate,12.2698912376,Relatively Moderate,3.0000000000,0.0188028000,365467633.7354047298,3530.9854379618,26835489328.5099411011,27200956962.2453422546,0.0000000070,0.0000040043,Very Low,0.0482928249,0.0002658574,2020.5164362008,2020.5647290257,14.6032241308,Relatively Low,16.3029908639,Relatively Low,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021 6,T15007040603,Hawaii,HI,15,Kauai,County,7,15007,40603,15007040603,2544,509507000.0000000000,3763051.3782403329,15.9289735326,23.8613675670,Relatively Moderate,84.6148558545,84.9693251534,22.2413255033,Relatively Moderate,75.9028856597,83.7423312883,553788.5026946985,159866.0053362669,0.0465200191,353552.1448416797,40370.3525167520,35.0215086434,Relatively Moderate,81.3161710393,79.7720797721,1.9560000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,59268365.9828897715,295.9306212878,2249072721.7871074677,2308341087.7699966431,0.0000020063,0.0000000001,Very Low,8.3203647759,0.0000000014,0.0109218690,8.3312866448,0.6682062552,Very Low,0.7166933897,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,119.0000000000,6.6111111110,1994468.3763317089,1994468.3763317089,0.0030589604,Relatively Moderate,40334.3876510453,40334.3876510453,9.3173396900,Relatively Moderate,10.0118819196,Relatively Moderate,,0.0006288023,509507000.0000000000,2544.0000000000,19334400000.0000000000,19843907000.0000000000,0.0167507621,0.0001397988,Very Low,29888.8000000000,0.0002046000,1554.9600000000,31443.7600000000,13.0703357152,Relatively Low,15.8125293377,Relatively Low,0.0000000000,0.0000000000,509507000.0000000000,2544.0000000000,19334400000.0000000000,3763051.3782403329,19847670051.3782386780,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0289855072,509500026.7867159247,2543.9789504995,19334240023.7962799072,3763051.3782403329,19847503101.9612274170,0.0000255348,0.0000003276,0.0002460797,Very Low,377.1002611632,0.0000241596,183.6127961654,26.8408852286,587.5539425572,3.4012529352,Very Low,4.9584510525,Very Low,0.0000000000,0.0148900000,509507000.0000000000,2544.0000000000,19334400000.0000000000,19843907000.0000000000,0.0000058883,0.0000028944,Relatively Low,44.6719315627,0.0001096414,833.2745523849,877.9464839477,13.0553404852,Relatively Low,11.5613443431,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,119566421.2469792366,677.5008183296,5149006219.3049850464,0.0000000000,5268572640.5519647598,0.0001804370,0.0000114831,0.0042466231,Very Low,127647.4010480262,0.0460304759,349831.6169989206,0.0000000000,477479.0180469467,35.2957296359,Relatively High,35.5664685650,Very High,1.0000000000,0.0312500000,509507000.0000000000,2544.0000000000,19334400000.0000000000,3763051.3782403329,19847670051.3782386780,0.0000032387,0.0000018297,0.0000727233,Very Low,51.5667080334,0.0001454600,1105.4960019992,8.5519178837,1165.6146279163,10.1552327033,Very Low,12.4507973241,Relatively Low,0.0000000000,0.0002990171,509507000.0000000000,2544.0000000000,19334400000.0000000000,3763051.3782403329,19847670051.3782386780,0.0021625099,0.0000014419,0.0005084021,Very Low,329.4612383326,0.0000010968,8.3360081463,0.5720625944,338.3693090733,4.9645617720,Very Low,6.3071150891,Very Low,3.0000000000,0.0137011320,71084897.0818793178,86.3741073938,656443216.1930950880,727528113.2749742270,0.0015593140,0.0000038734,Relatively Low,1518.6837843730,0.0000045839,34.8375621943,1553.5213465673,12.3886737842,Relatively Moderate,11.6999323670,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021 diff --git a/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/output.csv b/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/output.csv index b01e6d14..160164d8 100644 --- a/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/output.csv +++ b/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/output.csv @@ -1,7 +1,7 @@ GEOID10_TRACT,FEMA Risk Index Expected Annual Loss Score,Expected population loss rate (Natural Hazards Risk Index),Expected agricultural loss rate (Natural Hazards Risk Index),Expected building loss rate (Natural Hazards Risk Index),Contains agricultural value -06001020100,18.6199401875,0.0000035067,0.0031812618,0.0000661520,True -06007040300,24.6571275391,0.0000000358,0.0000290505,0.0000014426,True -06007040500,18.7719774304,0.0000034603,0.0000385465,0.0000436593,True +06069000802,18.6199401875,0.0000035067,0.0031812618,0.0000661520,True +06061021322,24.6571275391,0.0000000358,0.0000290505,0.0000014426,True +06027000800,18.7719774304,0.0000034603,0.0000385465,0.0000436593,True 15001021010,42.6674572964,0.0000000408,0.0000331733,0.0000018765,True 15001021101,35.4631324234,0.0000002677,0.0000337348,0.0000507987,True 15007040603,22.2413255033,0.0000182039,0.0107280896,0.0002521232,True diff --git a/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/transform.csv b/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/transform.csv index ce24d055..80972601 100644 --- a/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/transform.csv +++ b/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/transform.csv @@ -1,7 +1,7 @@ OID_,NRI_ID,STATE,STATEABBRV,STATEFIPS,COUNTY,COUNTYTYPE,COUNTYFIPS,STCOFIPS,TRACT,GEOID10_TRACT,POPULATION,BUILDVALUE,AGRIVALUE,AREA,RISK_SCORE,RISK_RATNG,RISK_NPCTL,RISK_SPCTL,FEMA Risk Index Expected Annual Loss Score,EAL_RATNG,EAL_NPCTL,EAL_SPCTL,EAL_VALT,EAL_VALB,EAL_VALP,EAL_VALPE,EAL_VALA,SOVI_SCORE,SOVI_RATNG,SOVI_NPCTL,SOVI_SPCTL,SOVI_VALUE,RESL_SCORE,RESL_RATNG,RESL_NPCTL,RESL_SPCTL,RESL_VALUE,AVLN_EVNTS,AVLN_AFREQ,AVLN_EXPB,AVLN_EXPP,AVLN_EXPPE,AVLN_EXPT,AVLN_HLRB,AVLN_HLRP,AVLN_HLRR,AVLN_EALB,AVLN_EALP,AVLN_EALPE,AVLN_EALT,AVLN_EALS,AVLN_EALR,AVLN_RISKS,AVLN_RISKR,CFLD_EVNTS,CFLD_AFREQ,CFLD_EXPB,CFLD_EXPP,CFLD_EXPPE,CFLD_EXPT,CFLD_HLRB,CFLD_HLRP,CFLD_HLRR,CFLD_EALB,CFLD_EALP,CFLD_EALPE,CFLD_EALT,CFLD_EALS,CFLD_EALR,CFLD_RISKS,CFLD_RISKR,CWAV_EVNTS,CWAV_AFREQ,CWAV_EXPB,CWAV_EXPP,CWAV_EXPPE,CWAV_EXPA,CWAV_EXPT,CWAV_HLRB,CWAV_HLRP,CWAV_HLRA,CWAV_HLRR,CWAV_EALB,CWAV_EALP,CWAV_EALPE,CWAV_EALA,CWAV_EALT,CWAV_EALS,CWAV_EALR,CWAV_RISKS,CWAV_RISKR,DRGT_EVNTS,DRGT_AFREQ,DRGT_EXPA,DRGT_EXPT,DRGT_HLRA,DRGT_HLRR,DRGT_EALA,DRGT_EALT,DRGT_EALS,DRGT_EALR,DRGT_RISKS,DRGT_RISKR,ERQK_EVNTS,ERQK_AFREQ,ERQK_EXPB,ERQK_EXPP,ERQK_EXPPE,ERQK_EXPT,ERQK_HLRB,ERQK_HLRP,ERQK_HLRR,ERQK_EALB,ERQK_EALP,ERQK_EALPE,ERQK_EALT,ERQK_EALS,ERQK_EALR,ERQK_RISKS,ERQK_RISKR,HAIL_EVNTS,HAIL_AFREQ,HAIL_EXPB,HAIL_EXPP,HAIL_EXPPE,HAIL_EXPA,HAIL_EXPT,HAIL_HLRB,HAIL_HLRP,HAIL_HLRA,HAIL_HLRR,HAIL_EALB,HAIL_EALP,HAIL_EALPE,HAIL_EALA,HAIL_EALT,HAIL_EALS,HAIL_EALR,HAIL_RISKS,HAIL_RISKR,HWAV_EVNTS,HWAV_AFREQ,HWAV_EXPB,HWAV_EXPP,HWAV_EXPPE,HWAV_EXPA,HWAV_EXPT,HWAV_HLRB,HWAV_HLRP,HWAV_HLRA,HWAV_HLRR,HWAV_EALB,HWAV_EALP,HWAV_EALPE,HWAV_EALA,HWAV_EALT,HWAV_EALS,HWAV_EALR,HWAV_RISKS,HWAV_RISKR,HRCN_EVNTS,HRCN_AFREQ,HRCN_EXPB,HRCN_EXPP,HRCN_EXPPE,HRCN_EXPA,HRCN_EXPT,HRCN_HLRB,HRCN_HLRP,HRCN_HLRA,HRCN_HLRR,HRCN_EALB,HRCN_EALP,HRCN_EALPE,HRCN_EALA,HRCN_EALT,HRCN_EALS,HRCN_EALR,HRCN_RISKS,HRCN_RISKR,ISTM_EVNTS,ISTM_AFREQ,ISTM_EXPB,ISTM_EXPP,ISTM_EXPPE,ISTM_EXPT,ISTM_HLRB,ISTM_HLRP,ISTM_HLRR,ISTM_EALB,ISTM_EALP,ISTM_EALPE,ISTM_EALT,ISTM_EALS,ISTM_EALR,ISTM_RISKS,ISTM_RISKR,LNDS_EVNTS,LNDS_AFREQ,LNDS_EXPB,LNDS_EXPP,LNDS_EXPPE,LNDS_EXPT,LNDS_HLRB,LNDS_HLRP,LNDS_HLRR,LNDS_EALB,LNDS_EALP,LNDS_EALPE,LNDS_EALT,LNDS_EALS,LNDS_EALR,LNDS_RISKS,LNDS_RISKR,LTNG_EVNTS,LTNG_AFREQ,LTNG_EXPB,LTNG_EXPP,LTNG_EXPPE,LTNG_EXPT,LTNG_HLRB,LTNG_HLRP,LTNG_HLRR,LTNG_EALB,LTNG_EALP,LTNG_EALPE,LTNG_EALT,LTNG_EALS,LTNG_EALR,LTNG_RISKS,LTNG_RISKR,RFLD_EVNTS,RFLD_AFREQ,RFLD_EXPB,RFLD_EXPP,RFLD_EXPPE,RFLD_EXPA,RFLD_EXPT,RFLD_HLRB,RFLD_HLRP,RFLD_HLRA,RFLD_HLRR,RFLD_EALB,RFLD_EALP,RFLD_EALPE,RFLD_EALA,RFLD_EALT,RFLD_EALS,RFLD_EALR,RFLD_RISKS,RFLD_RISKR,SWND_EVNTS,SWND_AFREQ,SWND_EXPB,SWND_EXPP,SWND_EXPPE,SWND_EXPA,SWND_EXPT,SWND_HLRB,SWND_HLRP,SWND_HLRA,SWND_HLRR,SWND_EALB,SWND_EALP,SWND_EALPE,SWND_EALA,SWND_EALT,SWND_EALS,SWND_EALR,SWND_RISKS,SWND_RISKR,TRND_EVNTS,TRND_AFREQ,TRND_EXPB,TRND_EXPP,TRND_EXPPE,TRND_EXPA,TRND_EXPT,TRND_HLRB,TRND_HLRP,TRND_HLRA,TRND_HLRR,TRND_EALB,TRND_EALP,TRND_EALPE,TRND_EALA,TRND_EALT,TRND_EALS,TRND_EALR,TRND_RISKS,TRND_RISKR,TSUN_EVNTS,TSUN_AFREQ,TSUN_EXPB,TSUN_EXPP,TSUN_EXPPE,TSUN_EXPT,TSUN_HLRB,TSUN_HLRP,TSUN_HLRR,TSUN_EALB,TSUN_EALP,TSUN_EALPE,TSUN_EALT,TSUN_EALS,TSUN_EALR,TSUN_RISKS,TSUN_RISKR,VLCN_EVNTS,VLCN_AFREQ,VLCN_EXPB,VLCN_EXPP,VLCN_EXPPE,VLCN_EXPT,VLCN_HLRB,VLCN_HLRP,VLCN_HLRR,VLCN_EALB,VLCN_EALP,VLCN_EALPE,VLCN_EALT,VLCN_EALS,VLCN_EALR,VLCN_RISKS,VLCN_RISKR,WFIR_EVNTS,WFIR_AFREQ,WFIR_EXPB,WFIR_EXPP,WFIR_EXPPE,WFIR_EXPA,WFIR_EXPT,WFIR_HLRB,WFIR_HLRP,WFIR_HLRA,WFIR_HLRR,WFIR_EALB,WFIR_EALP,WFIR_EALPE,WFIR_EALA,WFIR_EALT,WFIR_EALS,WFIR_EALR,WFIR_RISKS,WFIR_RISKR,WNTW_EVNTS,WNTW_AFREQ,WNTW_EXPB,WNTW_EXPP,WNTW_EXPPE,WNTW_EXPA,WNTW_EXPT,WNTW_HLRB,WNTW_HLRP,WNTW_HLRA,WNTW_HLRR,WNTW_EALB,WNTW_EALP,WNTW_EALPE,WNTW_EALA,WNTW_EALT,WNTW_EALS,WNTW_EALR,WNTW_RISKS,WNTW_RISKR,NRI_VER,Expected population loss rate (Natural Hazards Risk Index),Expected agricultural loss rate (Natural Hazards Risk Index),Contains agricultural value,Expected building loss rate (Natural Hazards Risk Index) -1,T06001020100,Hawaii,HI,15,Kauai,County,7,15007,40300,06001020100,8385,992658000.0000000000,147860.5647200878,3.6108521589,18.0705830803,Relatively Low,63.0775787404,63.4969325153,18.6199401875,Relatively Low,59.6420077263,70.5521472393,324935.2155714268,98076.5248682368,0.0296790442,225560.7358958097,1297.9548073803,31.6808724993,Relatively Moderate,48.7278745931,51.8518518519,-0.1330000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,202742385.5800542533,1862.6855876887,14156410466.4337959290,14359152852.0138511658,0.0000357579,0.0000000020,Very Low,507.2650077305,0.0000002606,1.9802850905,509.2452928210,2.6321796000,Very Low,2.5538810410,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0030589604,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0005345855,912658000.0000000000,8385.0000000000,63726000000.0000000000,64638658000.0000076294,0.0167507621,0.0001397988,Very Low,22512.2000000000,0.0001541200,1171.3120000000,23683.5120000000,11.8920653303,Relatively Low,13.0147002820,Relatively Low,0.0000000000,0.0000000000,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0343605913,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000255348,0.0000003276,0.0002460797,Very Low,788.9305592758,0.0000968737,736.2401254130,1.3226671624,1526.4933518512,4.6757862953,Very Low,6.1662913066,Very Low,0.0000000000,0.0148900000,912658000.0000000000,8385.0000000000,63726000000.0000000000,64638658000.0000076294,0.0000058883,0.0000028944,Relatively Low,80.0189118426,0.0003613770,2746.4650635800,2826.4839754226,19.2773661946,Relatively Low,15.4429446232,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,59632790.0585851297,418.9266599156,3183842615.3584799767,51591.3125103788,3243526996.7295761108,0.0001804370,0.0000114831,0.0042466231,Very Low,63663.1136805333,0.0284625391,216315.2971586954,1296.2757495066,281274.6865887354,29.5879096062,Relatively High,26.9708819409,Relatively High,1.0000000000,0.0312500000,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000032387,0.0000018297,0.0000727233,Very Low,92.3692287258,0.0004794348,3643.7043933928,0.3360282071,3736.4096503256,14.9734902768,Relatively Low,16.6070545485,Relatively Low,0.0000000000,0.0000653310,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0089662390,0.0000059784,0.0021079463,Very Low,534.6107152638,0.0000032750,24.8896914625,0.0203625042,559.5207692305,5.8706925202,Very Low,6.7469108145,Very Low,7.0000000000,0.0319693090,198555247.5326173902,978.4678896234,7436355961.1380958557,7634911208.6707124710,0.0015593140,0.0000038734,Very Low,9898.0167648649,0.0001211641,920.8471781755,10818.8639430404,23.6580872265,Relatively High,20.2115884136,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021,0.0000035067,0.0031812618,True,0.0000661520 -2,T06007040300,Hawaii,HI,15,Hawaii,County,1,15001,20100,06007040300,5213,409283000.0000000000,30161527.9142542519,97.0642891247,26.0474557835,Relatively High,89.4815710967,87.4233128834,24.6571275391,Relatively Moderate,83.8106105391,87.4233128834,754552.3595077734,510222.1167381129,0.0320334258,243454.0359926558,876.2067770047,33.3455935266,Relatively Moderate,67.0519519602,65.5270655271,0.9080000000,50.7751980000,Relatively Low,9.3859370029,40.0000000000,2.5387599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0579710120,1082842.5920536572,13.7920666932,104819706.8679994941,105902549.4600531608,0.0000313713,0.0000000025,Very Low,1.9692852387,0.0000000020,0.0151413322,1.9844265710,0.4142077200,Very Low,0.4374499910,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000541,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0099874373,409283000.0000000000,5213.0000000000,39618800000.0000000000,40028083000.0000000000,0.0008505842,0.0000116917,Very Low,509627.8000000000,0.0314233600,238817.5360000000,748445.3360000000,37.5977579168,Very High,44.7882310288,Very High,1.0000000000,0.0312500000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000180224,0.0000000760,0.0002275779,Very Low,230.5075462219,0.0000123856,94.1304164907,214.5030827638,539.1410454765,5.2311349597,Very Low,5.8932581207,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0100000000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000255348,0.0000003276,0.0002460797,Very Low,104.5094165573,0.0000170798,129.8064434247,74.2213962963,308.5372562783,2.7440512545,Very Low,3.9390063490,Very Low,0.0000000000,0.0148900000,409283000.0000000000,5213.0000000000,39618800000.0000000000,40028083000.0000000000,0.0000058883,0.0000013610,Very Low,35.8846142757,0.0001056430,802.8864714520,838.7710857277,12.8581949229,Relatively Low,11.2121138672,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0006245044,0.0000038327,0.0003492485,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,1.0000000000,0.0312500000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000083601,0.0000003102,0.0006212585,Very Low,106.9261414761,0.0000505411,384.1124266061,585.5657605523,1076.6043286345,9.8898625798,Very Low,11.9394659724,Relatively Low,0.0000000000,0.0006781468,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542519,40058244527.9142456055,0.0003985575,0.0000002657,0.0000937001,Very Low,110.6212172132,0.0000009395,7.1398535480,1.9165373923,119.6776081535,3.5109250974,Very Low,4.3917261130,Very Low,4.0000000000,0.0182681760,315888.8587620232,2.2117928286,16809625.4977076985,17125514.3564697206,0.0006654598,0.0000038734,Very Low,3.8401775301,0.0000001565,1.1894532216,5.0296307517,1.8327269938,Very Low,1.7042906890,Very Low,4.0000000000,0.0204021391,407903840.5845158696,5201.9799937840,39535047952.7582778931,39942951793.3427886963,0.0000000070,0.0000040043,Very Low,0.0583395999,0.0004233184,3217.2197865804,3217.2781261802,17.0524727301,Relatively Low,17.9932135371,Relatively Low,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021,0.0000000358,0.0000290505,True,0.0000014426 -3,T06007040500,Hawaii,HI,15,Kauai,County,7,15007,40500,06007040500,5943,1030806000.0000000000,459516.6731830848,6.1500338151,19.0467198618,Relatively Moderate,67.4534981234,69.3251533742,18.7719774304,Relatively Low,60.4118835838,72.0858895706,332959.9571449574,167792.7734322688,0.0217301935,165149.4709508616,17.7127618271,33.1217117362,Relatively Moderate,64.7826443794,63.5327635328,0.7680000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,66594737.2848528028,383.9447225607,2917979891.4611377716,2984574628.7459902763,0.0000063169,0.0000000003,Very Low,29.4350693631,0.0000000083,0.0628428106,29.4979121737,1.0184434918,Very Low,1.0330889632,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,56.0000000000,3.1111111110,0.0000000000,0.0000000000,0.0030589604,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0005860614,1030806000.0000000000,5943.0000000000,45166800000.0000000000,46197606000.0000000000,0.0167507621,0.0001397988,Very Low,120075.0000000000,0.0011438300,8693.1080000000,128768.1080000000,20.9111551033,Relatively Moderate,23.9260247408,Relatively Moderate,0.0000000000,0.0000000000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0289855072,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000255348,0.0000003276,0.0002460797,Very Low,762.9385502884,0.0000564393,428.9386307213,3.2776151707,1195.1547961804,4.3095415029,Very Low,5.9417734791,Very Low,0.0000000000,0.0148900000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,46197606000.0000000000,0.0000058883,0.0000028944,Relatively Low,90.3777476786,0.0002561316,1946.6001040973,2036.9778517759,17.2833380202,Relatively Low,14.4752368977,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,40606220.8832914308,293.0385094863,2227092672.0956783295,530.1707312656,2267699423.1497006416,0.0001804370,0.0000114831,0.0042466231,Very Low,43350.6205845832,0.0199094993,151312.1945288390,13.3209920158,194676.1361054380,26.1722849103,Relatively High,24.9423944801,Relatively High,1.0000000000,0.0312500000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000032387,0.0000018297,0.0000727233,Very Low,104.3268729204,0.0003398069,2582.5325235382,1.0442984855,2687.9036949441,13.4166096589,Relatively Low,15.5570766452,Relatively Low,0.0000000000,0.0001223370,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830848,46198065516.6731948853,0.0052856261,0.0000035243,0.0012426410,Very Low,666.5475081608,0.0000025623,19.4736228040,0.0698561550,686.0909871197,6.2836381633,Very Low,7.5500148235,Very Low,9.0000000000,0.0411033970,42337272.9888006300,137.6534442030,1046166175.9429298639,1088503448.9317302704,0.0015593140,0.0000038734,Very Low,2713.5270992744,0.0000219159,166.5606980512,2880.0877973256,15.2190537663,Relatively Moderate,13.5932751503,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021,0.0000034603,0.0000385465,True,0.0000436593 +1,T06069000802,Hawaii,HI,15,Kauai,County,7,15007,40300,06069000802,8385,992658000.0000000000,147860.5647200878,3.6108521589,18.0705830803,Relatively Low,63.0775787404,63.4969325153,18.6199401875,Relatively Low,59.6420077263,70.5521472393,324935.2155714268,98076.5248682368,0.0296790442,225560.7358958097,1297.9548073803,31.6808724993,Relatively Moderate,48.7278745931,51.8518518519,-0.1330000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,202742385.5800542533,1862.6855876887,14156410466.4337959290,14359152852.0138511658,0.0000357579,0.0000000020,Very Low,507.2650077305,0.0000002606,1.9802850905,509.2452928210,2.6321796000,Very Low,2.5538810410,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0030589604,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0005345855,912658000.0000000000,8385.0000000000,63726000000.0000000000,64638658000.0000076294,0.0167507621,0.0001397988,Very Low,22512.2000000000,0.0001541200,1171.3120000000,23683.5120000000,11.8920653303,Relatively Low,13.0147002820,Relatively Low,0.0000000000,0.0000000000,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0343605913,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000255348,0.0000003276,0.0002460797,Very Low,788.9305592758,0.0000968737,736.2401254130,1.3226671624,1526.4933518512,4.6757862953,Very Low,6.1662913066,Very Low,0.0000000000,0.0148900000,912658000.0000000000,8385.0000000000,63726000000.0000000000,64638658000.0000076294,0.0000058883,0.0000028944,Relatively Low,80.0189118426,0.0003613770,2746.4650635800,2826.4839754226,19.2773661946,Relatively Low,15.4429446232,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,59632790.0585851297,418.9266599156,3183842615.3584799767,51591.3125103788,3243526996.7295761108,0.0001804370,0.0000114831,0.0042466231,Very Low,63663.1136805333,0.0284625391,216315.2971586954,1296.2757495066,281274.6865887354,29.5879096062,Relatively High,26.9708819409,Relatively High,1.0000000000,0.0312500000,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000032387,0.0000018297,0.0000727233,Very Low,92.3692287258,0.0004794348,3643.7043933928,0.3360282071,3736.4096503256,14.9734902768,Relatively Low,16.6070545485,Relatively Low,0.0000000000,0.0000653310,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0089662390,0.0000059784,0.0021079463,Very Low,534.6107152638,0.0000032750,24.8896914625,0.0203625042,559.5207692305,5.8706925202,Very Low,6.7469108145,Very Low,7.0000000000,0.0319693090,198555247.5326173902,978.4678896234,7436355961.1380958557,7634911208.6707124710,0.0015593140,0.0000038734,Very Low,9898.0167648649,0.0001211641,920.8471781755,10818.8639430404,23.6580872265,Relatively High,20.2115884136,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021,0.0000035067,0.0031812618,True,0.0000661520 +2,T06061021322,Hawaii,HI,15,Hawaii,County,1,15001,20100,06061021322,5213,409283000.0000000000,30161527.9142542519,97.0642891247,26.0474557835,Relatively High,89.4815710967,87.4233128834,24.6571275391,Relatively Moderate,83.8106105391,87.4233128834,754552.3595077734,510222.1167381129,0.0320334258,243454.0359926558,876.2067770047,33.3455935266,Relatively Moderate,67.0519519602,65.5270655271,0.9080000000,50.7751980000,Relatively Low,9.3859370029,40.0000000000,2.5387599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0579710120,1082842.5920536572,13.7920666932,104819706.8679994941,105902549.4600531608,0.0000313713,0.0000000025,Very Low,1.9692852387,0.0000000020,0.0151413322,1.9844265710,0.4142077200,Very Low,0.4374499910,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000541,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0099874373,409283000.0000000000,5213.0000000000,39618800000.0000000000,40028083000.0000000000,0.0008505842,0.0000116917,Very Low,509627.8000000000,0.0314233600,238817.5360000000,748445.3360000000,37.5977579168,Very High,44.7882310288,Very High,1.0000000000,0.0312500000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000180224,0.0000000760,0.0002275779,Very Low,230.5075462219,0.0000123856,94.1304164907,214.5030827638,539.1410454765,5.2311349597,Very Low,5.8932581207,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0100000000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000255348,0.0000003276,0.0002460797,Very Low,104.5094165573,0.0000170798,129.8064434247,74.2213962963,308.5372562783,2.7440512545,Very Low,3.9390063490,Very Low,0.0000000000,0.0148900000,409283000.0000000000,5213.0000000000,39618800000.0000000000,40028083000.0000000000,0.0000058883,0.0000013610,Very Low,35.8846142757,0.0001056430,802.8864714520,838.7710857277,12.8581949229,Relatively Low,11.2121138672,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0006245044,0.0000038327,0.0003492485,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,1.0000000000,0.0312500000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000083601,0.0000003102,0.0006212585,Very Low,106.9261414761,0.0000505411,384.1124266061,585.5657605523,1076.6043286345,9.8898625798,Very Low,11.9394659724,Relatively Low,0.0000000000,0.0006781468,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542519,40058244527.9142456055,0.0003985575,0.0000002657,0.0000937001,Very Low,110.6212172132,0.0000009395,7.1398535480,1.9165373923,119.6776081535,3.5109250974,Very Low,4.3917261130,Very Low,4.0000000000,0.0182681760,315888.8587620232,2.2117928286,16809625.4977076985,17125514.3564697206,0.0006654598,0.0000038734,Very Low,3.8401775301,0.0000001565,1.1894532216,5.0296307517,1.8327269938,Very Low,1.7042906890,Very Low,4.0000000000,0.0204021391,407903840.5845158696,5201.9799937840,39535047952.7582778931,39942951793.3427886963,0.0000000070,0.0000040043,Very Low,0.0583395999,0.0004233184,3217.2197865804,3217.2781261802,17.0524727301,Relatively Low,17.9932135371,Relatively Low,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021,0.0000000358,0.0000290505,True,0.0000014426 +3,T06027000800,Hawaii,HI,15,Kauai,County,7,15007,40500,06027000800,5943,1030806000.0000000000,459516.6731830848,6.1500338151,19.0467198618,Relatively Moderate,67.4534981234,69.3251533742,18.7719774304,Relatively Low,60.4118835838,72.0858895706,332959.9571449574,167792.7734322688,0.0217301935,165149.4709508616,17.7127618271,33.1217117362,Relatively Moderate,64.7826443794,63.5327635328,0.7680000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,66594737.2848528028,383.9447225607,2917979891.4611377716,2984574628.7459902763,0.0000063169,0.0000000003,Very Low,29.4350693631,0.0000000083,0.0628428106,29.4979121737,1.0184434918,Very Low,1.0330889632,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,56.0000000000,3.1111111110,0.0000000000,0.0000000000,0.0030589604,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0005860614,1030806000.0000000000,5943.0000000000,45166800000.0000000000,46197606000.0000000000,0.0167507621,0.0001397988,Very Low,120075.0000000000,0.0011438300,8693.1080000000,128768.1080000000,20.9111551033,Relatively Moderate,23.9260247408,Relatively Moderate,0.0000000000,0.0000000000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0289855072,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000255348,0.0000003276,0.0002460797,Very Low,762.9385502884,0.0000564393,428.9386307213,3.2776151707,1195.1547961804,4.3095415029,Very Low,5.9417734791,Very Low,0.0000000000,0.0148900000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,46197606000.0000000000,0.0000058883,0.0000028944,Relatively Low,90.3777476786,0.0002561316,1946.6001040973,2036.9778517759,17.2833380202,Relatively Low,14.4752368977,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,40606220.8832914308,293.0385094863,2227092672.0956783295,530.1707312656,2267699423.1497006416,0.0001804370,0.0000114831,0.0042466231,Very Low,43350.6205845832,0.0199094993,151312.1945288390,13.3209920158,194676.1361054380,26.1722849103,Relatively High,24.9423944801,Relatively High,1.0000000000,0.0312500000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000032387,0.0000018297,0.0000727233,Very Low,104.3268729204,0.0003398069,2582.5325235382,1.0442984855,2687.9036949441,13.4166096589,Relatively Low,15.5570766452,Relatively Low,0.0000000000,0.0001223370,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830848,46198065516.6731948853,0.0052856261,0.0000035243,0.0012426410,Very Low,666.5475081608,0.0000025623,19.4736228040,0.0698561550,686.0909871197,6.2836381633,Very Low,7.5500148235,Very Low,9.0000000000,0.0411033970,42337272.9888006300,137.6534442030,1046166175.9429298639,1088503448.9317302704,0.0015593140,0.0000038734,Very Low,2713.5270992744,0.0000219159,166.5606980512,2880.0877973256,15.2190537663,Relatively Moderate,13.5932751503,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021,0.0000034603,0.0000385465,True,0.0000436593 4,T15001021010,Hawaii,HI,15,Hawaii,County,1,15001,21010,15001021010,7884,737712000.0000000000,8711454.3090733420,58.4401512286,43.1066279987,Very High,99.4459643383,98.1595092025,42.6674572964,Very High,99.2741170486,99.0797546012,3909779.1321200719,2582125.8111252696,0.1746532017,1327364.3330713348,288.9879234675,31.8903618889,Relatively Moderate,51.0956693021,54.4159544160,-0.0020000000,50.7751980000,Relatively Low,9.3859370029,40.0000000000,2.5387599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000478451,0.0000000048,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000541,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0099998852,737712000.0000000000,7884.0000000000,59918400000.0000000000,60656112000.0000000000,0.0008505842,0.0000116917,Very Low,2580741.3999999999,0.1736765400,1319941.7039999999,3900683.1039999998,65.1861714882,Very High,74.2640163391,Very High,1.0000000000,0.0312500000,737712000.0000000000,7884.0000000000,59918400000.0000000000,8711454.3090733420,60664823454.3090744019,0.0000180224,0.0000000760,0.0002275779,Very Low,415.4782459486,0.0000187316,142.3602922696,61.9542156517,619.7927538699,5.4799587665,Very Low,5.9041560145,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0269344664,737712000.0000000000,7884.0000000000,59918400000.0000000000,8711454.3090733420,60664823454.3090744019,0.0000255348,0.0000003276,0.0002460797,Very Low,473.5051910310,0.0000651127,494.8567057547,57.2461948490,1025.6080916347,4.0952789981,Very Low,5.6221049906,Very Low,0.0000000000,0.0148900000,737712000.0000000000,7884.0000000000,59918400000.0000000000,60656112000.0000000000,0.0000058883,0.0000013610,Very Low,64.6802104328,0.0001597715,1214.2637523360,1278.9439627688,14.7995789625,Relatively Low,12.3417814165,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0006245044,0.0000038327,0.0003492485,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,1.0000000000,0.0312500000,737712000.0000000000,7884.0000000000,59918400000.0000000000,8711454.3090733420,60664823454.3090744019,0.0000083601,0.0000003102,0.0006212585,Very Low,192.7289862509,0.0000764370,580.9212298706,169.1270211135,942.7772372349,9.4618177655,Very Low,10.9242145239,Very Low,1.0000000000,0.0004673635,737712000.0000000000,7884.0000000000,59918400000.0000000000,8711454.3090733420,60664823454.3090744019,0.0006900376,0.0000004601,0.0001622266,Very Low,237.9109428670,0.0000016953,12.8843062101,0.6604918534,251.4557409305,4.4968090785,Very Low,5.3796416501,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0006654598,0.0000038734,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,4.0000000000,0.0207448000,737708710.8628113270,7883.9591351862,59918089427.4153594971,60655798138.2781677246,0.0000000070,0.0000040043,Very Low,0.1075487398,0.0006549135,4977.3427848938,4977.4503336337,19.7224171343,Relatively Low,19.9022650650,Relatively Low,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021,0.0000000408,0.0000331733,True,0.0000018765 5,T15001021101,Hawaii,HI,15,Hawaii,County,1,15001,21101,15001021101,3531,365469000.0000000000,1115552.9463470120,41.0551206444,39.6369371498,Very High,99.0514029613,96.6257668712,35.4631324234,Relatively High,97.7453635601,94.4785276074,2244880.4514211570,1569603.2441089998,0.0888473124,675239.5743199890,37.6329921689,35.2805718581,Relatively High,83.0000273575,82.3361823362,2.1180000000,50.7751980000,Relatively Low,9.3859370029,40.0000000000,2.5387599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0679710120,53358423.6905883327,515.5255139327,3917993905.8884682655,3971352329.5790553093,0.0000009778,0.0000000001,Very Low,3.5462107144,0.0000000023,0.0178004814,3.5640111958,0.5034846073,Very Low,0.5625920420,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000541,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0099998512,365469000.0000000000,3531.0000000000,26835600000.0000000000,27201069000.0000000000,0.0008505842,0.0000116917,Very Low,1549795.8000000000,0.0875910700,665692.1319999999,2215487.9320000000,53.9839983966,Very High,68.0399795668,Very High,1.0000000000,0.0312500000,365469000.0000000000,3531.0000000000,26835600000.0000000000,1115552.9463470120,27202184552.9463424683,0.0000180224,0.0000000760,0.0002275779,Very Low,205.8315698678,0.0000083893,63.7587762572,7.9336015953,277.5239477203,4.1923926160,Very Low,4.9971070139,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0289855072,365469000.0000000000,3531.0000000000,26835600000.0000000000,1115552.9463470120,27202184552.9463424683,0.0000255348,0.0000003276,0.0002460797,Very Low,270.4974447523,0.0000335331,254.8514731746,7.9569545004,533.3058724274,3.2931774779,Very Low,5.0015747332,Very Low,0.0000000000,0.0148900000,365469000.0000000000,3531.0000000000,26835600000.0000000000,27201069000.0000000000,0.0000058883,0.0000013610,Very Low,32.0431439731,0.0000715567,543.8312163240,575.8743602971,11.3433526973,Very Low,10.4651653429,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,4828130.5279219840,35.1384012388,267051849.4150594473,0.0000000000,271879979.9429814219,0.0006245044,0.0000038327,0.0003492485,Very Low,17839.8663537918,0.0007968309,6055.9146131274,0.0000000000,23895.7809669192,13.0070200492,Relatively Moderate,13.6546608024,Relatively Moderate,1.0000000000,0.0312500000,365469000.0000000000,3531.0000000000,26835600000.0000000000,1115552.9463470120,27202184552.9463424683,0.0000083601,0.0000003102,0.0006212585,Very Low,95.4796314509,0.0000342338,260.1766695466,21.6577094941,377.3140104915,6.9727783560,Very Low,8.9063071715,Very Low,0.0000000000,0.0003634330,365469000.0000000000,3531.0000000000,26835600000.0000000000,1115552.9463470120,27202184552.9463424683,0.0008889061,0.0000005927,0.0002089802,Very Low,118.0676167774,0.0000007606,5.7804922284,0.0847265791,123.9328355849,3.5520526364,Very Low,4.7010550308,Very Low,13.0000000000,0.0593715740,31437177.7921413518,196.0173546829,1489731895.5901708603,1521169073.3823122978,0.0006654598,0.0000038734,Very Low,1242.0638448472,0.0000450783,342.5948426489,1584.6586874961,12.4708959075,Relatively Moderate,12.2698912376,Relatively Moderate,3.0000000000,0.0188028000,365467633.7354047298,3530.9854379618,26835489328.5099411011,27200956962.2453422546,0.0000000070,0.0000040043,Very Low,0.0482928249,0.0002658574,2020.5164362008,2020.5647290257,14.6032241308,Relatively Low,16.3029908639,Relatively Low,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021,0.0000002677,0.0000337348,True,0.0000507987 6,T15007040603,Hawaii,HI,15,Kauai,County,7,15007,40603,15007040603,2544,509507000.0000000000,3763051.3782403329,15.9289735326,23.8613675670,Relatively Moderate,84.6148558545,84.9693251534,22.2413255033,Relatively Moderate,75.9028856597,83.7423312883,553788.5026946985,159866.0053362670,0.0465200191,353552.1448416796,40370.3525167520,35.0215086434,Relatively Moderate,81.3161710393,79.7720797721,1.9560000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,59268365.9828897640,295.9306212878,2249072721.7871074677,2308341087.7699966431,0.0000020063,0.0000000001,Very Low,8.3203647759,0.0000000014,0.0109218690,8.3312866448,0.6682062552,Very Low,0.7166933897,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,119.0000000000,6.6111111110,1994468.3763317089,1994468.3763317089,0.0030589604,Relatively Moderate,40334.3876510453,40334.3876510453,9.3173396900,Relatively Moderate,10.0118819196,Relatively Moderate,,0.0006288023,509507000.0000000000,2544.0000000000,19334400000.0000000000,19843907000.0000000000,0.0167507621,0.0001397988,Very Low,29888.8000000000,0.0002046000,1554.9600000000,31443.7600000000,13.0703357152,Relatively Low,15.8125293377,Relatively Low,0.0000000000,0.0000000000,509507000.0000000000,2544.0000000000,19334400000.0000000000,3763051.3782403329,19847670051.3782386780,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0289855072,509500026.7867159843,2543.9789504995,19334240023.7962799072,3763051.3782403329,19847503101.9612274170,0.0000255348,0.0000003276,0.0002460797,Very Low,377.1002611632,0.0000241596,183.6127961654,26.8408852286,587.5539425572,3.4012529352,Very Low,4.9584510525,Very Low,0.0000000000,0.0148900000,509507000.0000000000,2544.0000000000,19334400000.0000000000,19843907000.0000000000,0.0000058883,0.0000028944,Relatively Low,44.6719315627,0.0001096414,833.2745523849,877.9464839477,13.0553404852,Relatively Low,11.5613443431,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,119566421.2469792217,677.5008183296,5149006219.3049850464,0.0000000000,5268572640.5519647598,0.0001804370,0.0000114831,0.0042466231,Very Low,127647.4010480262,0.0460304759,349831.6169989206,0.0000000000,477479.0180469467,35.2957296359,Relatively High,35.5664685650,Very High,1.0000000000,0.0312500000,509507000.0000000000,2544.0000000000,19334400000.0000000000,3763051.3782403329,19847670051.3782386780,0.0000032387,0.0000018297,0.0000727233,Very Low,51.5667080334,0.0001454600,1105.4960019992,8.5519178837,1165.6146279163,10.1552327033,Very Low,12.4507973241,Relatively Low,0.0000000000,0.0002990171,509507000.0000000000,2544.0000000000,19334400000.0000000000,3763051.3782403329,19847670051.3782386780,0.0021625099,0.0000014419,0.0005084021,Very Low,329.4612383326,0.0000010968,8.3360081463,0.5720625944,338.3693090733,4.9645617720,Very Low,6.3071150891,Very Low,3.0000000000,0.0137011320,71084897.0818793178,86.3741073938,656443216.1930950880,727528113.2749742270,0.0015593140,0.0000038734,Relatively Low,1518.6837843730,0.0000045839,34.8375621943,1553.5213465673,12.3886737842,Relatively Moderate,11.6999323670,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021,0.0000182039,0.0107280896,True,0.0002521232 diff --git a/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/test_etl.py b/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/test_etl.py index f428565f..5839c61d 100644 --- a/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/test_etl.py +++ b/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/test_etl.py @@ -1,7 +1,5 @@ # pylint: disable=protected-access -from unittest import mock import pathlib -import requests from data_pipeline.etl.base import ValidGeoLevel from data_pipeline.etl.sources.national_risk_index.etl import ( @@ -36,35 +34,6 @@ class TestNationalRiskIndexETL(TestETL): """ super().setup_method(_method=_method, filename=filename) - def _setup_etl_instance_and_run_extract(self, mock_etl, mock_paths): - with mock.patch("data_pipeline.utils.requests") as requests_mock: - zip_file_fixture_src = ( - self._DATA_DIRECTORY_FOR_TEST / "NRI_Table_CensusTracts.zip" - ) - tmp_path = mock_paths[1] - - # Create mock response. - with open(zip_file_fixture_src, mode="rb") as file: - file_contents = file.read() - response_mock = requests.Response() - response_mock.status_code = 200 - # pylint: disable=protected-access - response_mock._content = file_contents - - # Return text fixture: - requests_mock.get = mock.MagicMock(return_value=response_mock) - - # Instantiate the ETL class. - etl = NationalRiskIndexETL() - - # Monkey-patch the temporary directory to the one used in the test - etl.TMP_PATH = tmp_path - - # Run the extract method. - etl.extract() - - return etl - def test_init(self, mock_etl, mock_paths): """Tests that the mock NationalRiskIndexETL class instance was initiliazed correctly.