diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 4800cab0..00000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 CO-CONNECT - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/QuickStart.md b/QuickStart.md deleted file mode 100644 index 385fdb14..00000000 --- a/QuickStart.md +++ /dev/null @@ -1,121 +0,0 @@ - -## Transforming data to CDM - -### 1. Install the co-connect-tools python package - -This package runs with `python` versions `>=3.6`, the easiest way to install is via pip: -``` -$ python3 -m pip install co-connect-tools -``` - -!!! warning - The tool is stable on (latest) Unix releases such as MacOS, Ubuntu, Centos. If you are using Windows, you may encounter problems. - - -If you are struggling to install from `pip` due to permissions, you can install as a user via: -``` -$ python3 -m pip install co-connect-tools --user -``` -Or, you can download the source code from [https://github.com/CO-CONNECT/co-connect-tools/tags](https://github.com/CO-CONNECT/co-connect-tools/tags), unpack and install as a local package: -``` -$ cd < downloaded source code folder > -$ python3 -m pip install -e . -``` - -!!! note - If you have trouble with `pip` hanging on installing dependencies, try to install also using the argument `--no-cache-dir`. Also make sure that you have updated `pip` via `pip3 install --upgrade pip`. - - -### 2. Checking the package - - -To verify the package is installed you can test the following information commands: -``` -$ coconnect info version - - -$ coconnect info install_folder - - -``` - -### 3. Gather inputs - -To run the transformation to CDM you will need: -1. Input Data -2. `json` file containing the so-called mapping rules - -#### File checks - -Input data is expected in `csv` format. - -It is possible to do a quick check to display the first 10 rows of an input `csv`. -Run: -``` -$ coconnect display dataframe --head 10 data/file_0.csv - -``` - - -With your `json` file for the rules, you can quickly check the tool is able to read and display them via: -``` -$ coconnect display json rules.json -``` - -### 4. Run the tool -``` -$ coconnect map run --name --rules <.json file for rules> -``` -E.g.: -``` -$ coconnect map run --name TestData --rules rules.json data/*.csv -``` - -### 5. Check the output - -By default, mapped `csv` files are created in the folder `output_data` within your current working directory. -!!! note - To specify a different output folder, use the command line argument `--output-folder` when running `coconnect map run` - -Additionally, log files are created in a subdirectory of the output folder, for example: -``` -output_data/ -├── condition_occurrence.csv -├── logs -│   └── 2021-07-19T100054.json -└── observation.csv -``` - -Other than opening up the output csv in your favourite viewer, you can also use the command line tools to display a simple dataframe -``` -$ coconnect display dataframe --drop-na output_data/condition_occurrence.csv - condition_occurrence_id person_id condition_concept_id ... condition_end_datetime condition_source_value condition_source_concept_id -0 1 9 312437 ... 2020-04-10 00:00:00 1 312437 -1 2 18 312437 ... 2020-04-11 00:00:00 1 312437 -2 3 28 312437 ... 2020-04-10 00:00:00 1 312437 -3 4 38 312437 ... 2020-04-10 00:00:00 1 312437 -4 5 44 312437 ... 2020-04-10 00:00:00 1 312437 -``` - -## Common Problems - -The following documents common error messages and FAQs. - -### Why do I get a `KeyError` message about my input data? - -You may see a look up error like this, when running the tool: -``` - self.observation_concept_id.series = self.inputs["FILE0.csv"]["column_name_0"] -KeyError: 'FILE0.csv' -``` - -This tells you that when running the tool you have not supplied the input file `FILE0.csv`. - -It is crucial that the names of the files encocded in the `json` file match those that are supplied to the tool, otherwise the tool cannot run. - -A common problem is the capitalisation of the file names, or the file names in the `json` file missing a `.csv` extension. - -In other words, whatever file names are used in the `json` file under the section `"source_table":` must be supplied as inputs. - - - diff --git a/README.md b/README.md index db82f409..bf76088f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1 @@ -All documentation relating to the CaRROT-CDM builder can be found here: - -## [https://hdruk.github.io/CaRROT-Docs/CaRROT-CDM/About/](https://hdruk.github.io/CaRROT-Docs/CaRROT-CDM/About/) +TODO: Document CaRROT-CDM-Lite diff --git a/carrot/__init__.py b/carrot/__init__.py deleted file mode 100644 index 6eb273f7..00000000 --- a/carrot/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from ._version import __version__ -params = { - 'debug_level':2, - 'log_file': None, - 'version':__version__, - 'cdm':'5.3.1' -} -from . import cdm - diff --git a/carrot/_version.py b/carrot/_version.py deleted file mode 100644 index 1643ae21..00000000 --- a/carrot/_version.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = '0.745' diff --git a/carrot/analyses/__init__.py b/carrot/analyses/__init__.py deleted file mode 100644 index 8b137891..00000000 --- a/carrot/analyses/__init__.py +++ /dev/null @@ -1 +0,0 @@ - diff --git a/carrot/analyses/example_serology.py b/carrot/analyses/example_serology.py deleted file mode 100644 index 4d5dd2da..00000000 --- a/carrot/analyses/example_serology.py +++ /dev/null @@ -1,29 +0,0 @@ -import scipy.stats -import time -import numpy as np -import json - -def create_analysis(_filter): - def ana(model): - df = model.filter(_filter,dropna=True) - if len(df) == 0: - return {'fit':None,'hist':None} - - df['age'] = 2022 - df['year_of_birth'] - res = scipy.stats.linregress(x=df['age'],y=df['value_as_number']) - attributes = ['intercept', 'intercept_stderr', 'pvalue', 'rvalue', 'slope', 'stderr'] - res = {a:getattr(res,a) for a in attributes} - res.update({'n':len(df)}) - antibodies = df['value_as_number'] - hist = np.histogram(antibodies,bins=20, range=(0,300)) - - #time.sleep(10) - return {'fit':res,'hist':hist} - - # #time.sleep(20) - # fname = 'res_'+hex(id(_filter))+'.json' - # with open(fname,"w") as f: - # json.dump(res,f,indent=6) - # return res - - return ana diff --git a/carrot/cdm/__init__.py b/carrot/cdm/__init__.py deleted file mode 100644 index 628c1638..00000000 --- a/carrot/cdm/__init__.py +++ /dev/null @@ -1,27 +0,0 @@ -from .model import CommonDataModel -from .operations import OperationTools - -from .objects import get_cdm_class, get_cdm_decorator - -#can we make these imports dynamic? -from .objects import ( - Person, - ConditionOccurrence, - VisitOccurrence, - Measurement, - Observation, - DrugExposure -) - -from .decorators import ( - define_table, - define_person, - define_condition_occurrence, - define_visit_occurrence, - define_measurement, - define_observation, - define_drug_exposure, - load_file, - from_table, - qsub -) diff --git a/carrot/cdm/decorators.py b/carrot/cdm/decorators.py deleted file mode 100644 index 36b68ce9..00000000 --- a/carrot/cdm/decorators.py +++ /dev/null @@ -1,153 +0,0 @@ - -from .objects import ( - Person, - ConditionOccurrence, - VisitOccurrence, - Measurement, - Observation, - DrugExposure, - Death -) -import copy -import sys -import time - -import subprocess - -class analysis(object): - def __init__(self, method): - self._method = method - self._name = method.__name__ - def __call__(self, obj, *args, **kwargs): - return self._method(obj, *args, **kwargs) - - -class qsub(object): - - def __init__(self,jobscript,**kwargs): - self.default_kwargs = kwargs - self.jobscript = jobscript - - def set_jobscript(self,jobscript): - self.jobscript = jobscript - - def __call__(self, analysis, *args, **kwargs): - return self._qsub(analysis, *args, **kwargs) - - def make_jobscript(self,**kwargs): - return self.jobscript.format(**kwargs) - - @classmethod - def eddie(cls,**kwargs): - default_kwargs={'runtime':"00:30:00",'memory':"1G",'anaconda':"5.3.1"} - default_kwargs.update(kwargs) - jobscript = r''' -#!/bin/sh -# Grid Engine options (lines prefixed with #$) -#$ -N {job_name} -#$ -cwd -#$ -l h_rt={runtime} -#$ -l h_vmem={memory} - -# Initialise the environment modules -. /etc/profile.d/modules.sh - -# Load Python -module load anaconda/{anaconda} - -# Load the virtual environment -source /exports/applications/apps/SL7/anaconda/5.3.1/etc/profile.d/conda.sh -conda activate carrot-env - -{command} -''' - obj = cls(jobscript=jobscript,**default_kwargs) - - return obj - - def run(self,commands,jobname="qsub_job"): - kwargs = self.default_kwargs - kwargs.update({'job_name':jobname,'command':" ".join(commands)}) - jobscript = self.make_jobscript(**kwargs) - fname = f"{jobname}.sh" - with open(fname,"w") as f: - f.write(jobscript) - output = subprocess.check_output(['qsub','-N',jobname,fname]).decode() - return output - - def _qsub(self,analysis,*args,**kwargs): - def wrapper(model,*args,**kwargs): - commands = copy.copy(sys.argv) - if "--analysis" in commands: - return analysis(model,*args,**kwargs) - else: - commands.extend(["--analysis",analysis.__name__]) - name = "analysis" - _id = format(id(analysis),'X') - return self.run(commands=commands,jobname=f"{name}_{analysis.__name__}_{_id}") - return wrapper - #return _qsub - -def load_file(_input): - def func(self): - for colname in _input: - self[colname].series = _input[colname] - return func - - -def from_table(obj,table): - df = obj.inputs[table] - for colname in df.columns: - obj[colname].series = df[colname] - return obj - -def define_table(cls): - def decorator(defs): - obj = cls() - obj.define = defs - obj.set_name(defs.__name__) - return obj - return decorator - -def define_person(defs): - c = Person() - c.define = defs - c.set_name(defs.__name__) - return c - -def define_condition_occurrence(defs): - c = ConditionOccurrence() - c.define = defs - c.set_name(defs.__name__) - return c - -def define_visit_occurrence(defs): - c = VisitOccurrence() - c.define = defs - c.set_name(defs.__name__) - return c - -def define_measurement(defs): - c = Measurement() - c.define = defs - c.set_name(defs.__name__) - return c - -def define_observation(defs): - c = Observation() - c.define = defs - c.set_name(defs.__name__) - return c - -def define_drug_exposure(defs): - c = DrugExposure() - c.define = defs - c.set_name(defs.__name__) - return c - -def define_death(defs): - c = Death() - c.define = defs - c.set_name(defs.__name__) - return c - diff --git a/carrot/cdm/model.py b/carrot/cdm/model.py deleted file mode 100644 index ba185af8..00000000 --- a/carrot/cdm/model.py +++ /dev/null @@ -1,903 +0,0 @@ -import os -import pandas as pd -import numpy as np -import json -import copy -import getpass -import operator - -import shutil -import threading -import concurrent.futures -from time import gmtime, strftime, sleep, time - -from .operations import OperationTools -from carrot.tools.logger import Logger -from carrot.tools.profiling import Profiler -from carrot.tools.metrics import Metrics -import carrot.tools -from carrot.io import DataCollection - -from carrot import __version__ as carrot_version -from .objects import DestinationTable, FormatterLevel -from .objects import get_cdm_class, get_cdm_decorator -from .decorators import load_file, analysis - -class BadInputObject(Exception): - pass - -class PersonExists(Exception): - pass - - -class CommonDataModel(Logger): - """Pythonic Version of the OHDSI CDM. - - This class controls and manages CDM Table objects that are added to it - - When self.process() is executed by the user, all added objects are defined, merged, formatted and finalised, before being dumped to an output file (.tsv file by default). - - """ - - - @classmethod - def load(cls,inputs,**kwargs): - default_kwargs = {'save_files':False,'do_mask_person_id':False,'format_level':0} - default_kwargs.update(kwargs) - cdm = cls(**default_kwargs) - cdm._load_inputs(inputs) - return cdm - - @classmethod - def from_rules(cls,rules,**kwargs): - cdm = cls(**kwargs) - cdm.create_and_add_objects(rules) - return cdm - - - def __init__(self, name=None, omop_version='5.3.1', - outputs = None, - save_files=True, - inputs=None, - use_profiler=False, - format_level=None, - do_mask_person_id=True, - drop_duplicates=True, - automatically_fill_missing_columns=True): - """ - CommonDataModel class initialisation - Args: - name (str): Give a name for the class to appear in the logging - output_folder (str): Path of where the output tsv/csv files should be written to. - The default is to save to a folder in the current directory - called 'output_data'. - inputs (dict or DataCollection): inputs can be a dictionary mapping file names to pandas dataframes, - or can be a DataCollection object - use_profiler (bool): Turn on/off profiling of the CPU/Memory of running the current process. - The default is set to false. - """ - self.profiler = None - self.metrics = Metrics("Unknown") - name = self.__class__.__name__ if name is None else self.__class__.__name__ + "::" + name - - self.logger.info(f"CommonDataModel ({omop_version}) created with co-connect-tools version {carrot_version}") - - self.omop_version = omop_version - - self.drop_duplicates = drop_duplicates - self.do_mask_person_id = do_mask_person_id - self.execution_order = None - - if format_level == None: - format_level = 1 - try: - format_level = int(format_level) - except ValueError: - self.logger.error(f"You as specifying format_level='{format_level}' -- this should be an integer!") - raise ValueError("format_level not set as an int ") - - self.format_level = FormatterLevel(format_level) - self.profiler = None - - self.outputs = outputs - self.save_files = save_files - - if use_profiler: - self.logger.debug(f"Turning on cpu/memory profiling") - self.profiler = Profiler(name=name) - self.profiler.start() - - #perform some checks on the input data - if isinstance(inputs,dict): - self.logger.info("Running with an DataCollection object") - elif isinstance(inputs,DataCollection): - self.logger.info("Running with an DataCollection object") - elif inputs is not None: - _type = type(inputs).__name__ - raise BadInputObject(f"input object {inputs} is of type {_type}, which is not a valid input object") - - if inputs is not None: - if hasattr(self,'inputs'): - self.logger.warning("overwriting inputs") - self.inputs = inputs - elif not hasattr(self,'inputs'): - self.inputs = None - - #register opereation tools - self.tools = OperationTools() - - #allow rules to be generated automatically or not - self.automatically_fill_missing_columns = automatically_fill_missing_columns - if self.automatically_fill_missing_columns: - self.logger.info(f"Turning on automatic cdm column filling") - - #define a person_id masker, if the person_id are to be masked - if self.outputs: - self.person_id_masker = self.outputs.load_global_ids() - self.indexing_conf = self.outputs.load_indexing() - else: - self.person_id_masker = None - self.indexing_conf = None - - #stores the final pandas dataframe for each CDM object - # { - # 'person':pandas.DataFrame, - # 'measurement':pandas.DataFrame. - # .... - #} - self.__df_map = {} - - #stores the invididual objects associated to this model - # { - # 'observation': - # { - # 'observation_0': , - # 'observation_1': , - # }, - # 'measurement': - # { - # 'measurement_0': , - # ... - # } - # ... - # } - self.__objects = {} - #check if objects have already been registered with this class - #via the decorator methods - - registered_objects = [ - getattr(self,name) - for name in dir(self) - if isinstance(getattr(self,name),DestinationTable) - ] - #if they have, then include them in this model - for obj in registered_objects: - obj.inputs = self.inputs - self.add(obj) - - self.__analyses = { - name:getattr(self,name) - for name in dir(self) - if isinstance(getattr(self,name),analysis) - } - - #bookkeep some logs - self.logs = { - 'meta':{ - 'version': carrot_version, - 'created_by': self._get_user(), - 'created_at': strftime("%Y-%m-%dT%H%M%S", gmtime()), - 'dataset':name, - 'total_data_processed':{} - } - } - - def _get_user(self): - try: - user = getpass.getuser() - return user - except (OSError, KeyError): - return None - - def _load_inputs(self,inputs): - for fname in inputs.keys(): - destination_table,_ = os.path.splitext(fname) - try: - obj = get_cdm_class(destination_table).from_df(inputs[fname],destination_table) - except KeyError: - self.logger.warning(f"Not loading {fname}, this is not a valid CDM Table") - continue - - df = obj.get_df(force_rebuild=False) - self[destination_table] = df.set_index(df.columns[0]) - - def reset(self): - self.__df_map.clear() - [x.reset() for x in self.get_all_objects()] - self.inputs.reset() - - if self.outputs: - self.person_id_masker = self.outputs.load_global_ids() - self.indexing_conf = self.outputs.load_indexing() - else: - self.person_id_masker = None - self.indexing_conf = None - - - - def close(self): - """ - Class destructor: - Stops the profiler from running before deleting self - """ - - - self.logger.info(json.dumps(self.logs['meta'],indent=6)) - #self.logger.info(self.metrics.get_summary()) - if self.outputs: - self.outputs.write_meta(self.logs) - self.outputs.write_tsv_summary(self.metrics.get_summary(), 'summary') - self.outputs.finalise() - - if not hasattr(self,'profiler'): - return - if self.profiler: - self.profiler.stop() - df_profile = self.profiler.get_df() - f_out = self.output_folder - f_out = f'{f_out}{os.path.sep}logs{os.path.sep}' - if not os.path.exists(f'{f_out}'): - self.logger.info(f'making output folder {f_out}') - os.makedirs(f'{f_out}') - - date = self.logs['meta']['created_at'] - fname = f'{f_out}{os.path.sep}statistics_{date}.csv' - df_profile.to_csv(fname) - self.logger.info(f"Writen the memory/cpu statistics to {fname}") - self.logger.info("Finished") - - @classmethod - def from_existing(cls,**kwargs): - """ - Initialise the CDM model from existing data in the CDM format - """ - cdm = cls(**kwargs) - if 'inputs' not in kwargs: - raise NoInputFiles("you need to specify some inputs") - inputs = kwargs['inputs'] - #loop over all input names - for fname in inputs.keys(): - #obtain the name of the destination table - #e.g fname='person.tsv' we want 'person' - destination_table,_ = os.path.splitext(fname) - name = destination_table - if '.' in destination_table: - destination_table = destination_table.split('.')[0] - try: - obj = get_cdm_class(destination_table).from_df(inputs[fname],name=name) - except KeyError: - cdm.logger.warning(f"Not loading {fname}, this is not a valid CDM Table") - continue - cdm.add(obj) - return cdm - - def __del__(self): - self.__df_map.clear() - del self.__df_map - self.__objects.clear() - del self.__objects - - - def __getitem__(self,key): - """ - Ability lookup processed objects from the CDM - Example: - cdm = CommonDataModel() - ... - cdm.process() - ... - person = cdm['person'] - Args: - key (str): The name of the cdm table to be returned - Returns: - pandas.DataFrame if a processed object is found, otherwise returns None - """ - if key not in self.__df_map.keys(): - return None - else: - return self.__df_map[key] - - def __setitem__(self,key,obj): - """ - Registration of a new dataframe for a new object - Args: - key (str) : name of the CDM table (e.g. "person") - obj (pandas.DataFrame) : dataframe to refer to - """ - self.logger.debug(f"creating {obj} for {key}") - self.__df_map[key] = obj - - def print(self): - for name in self.keys(): - print (self[name].dropna(axis=1)) - - def add(self,obj): - """ - Function to add a new CDM table (object) to the current model - Args: - obj (DestinationTable) : CDM Table to be registered with the class - """ - if obj._type not in self.__objects: - self.__objects[obj._type] = {} - - if obj.name in self.__objects[obj._type].keys(): - raise Exception(f"Object called {obj.name} already exists") - - obj.cdm = self - obj.format_level = self.format_level - - self.__objects[obj._type][obj.name] = obj - self.logger.info(f"Added {obj.name} of type {obj._type}") - - - def create_and_add_objects(self,config): - #loop over the cdm object types defined in the configuration - #e.g person, measurement etc.. - for destination_table,rules_set in config['cdm'].items(): - #loop over each object instance in the rule set - #for example, condition_occurrence may have multiple rulesx - #for multiple condition_ocurrences e.g. Headache, Fever .. - for name,rules in rules_set.items(): - #make a new object for the cdm object - #Example: - # destination_table : person - # get_cdm_class returns - # obj : Person() - obj = get_cdm_class(destination_table)() - #set the name of the object - obj.set_name(name) - - #Build a lambda function that will get executed during run time - #and will be able to apply these rules to the inputs that are loaded - #(this is useful when chunk) - obj.define = lambda x,rules=rules : carrot.tools.apply_rules(x,rules,inputs=self.inputs) - - #register this object with the CDM model, so it can be processed - self.add(obj) - - - def add_analysis(self,func,_id=None): - if _id is None: - _id = hex(id(func)) - self.__analyses[_id] = func - - def get_analyses(self): - return self.__analyses - def get_analysis(self,key): - return self.__analyses[key] - - def run_analysis(self,f): - return f(self) - - def run_analyses(self,analyses=None,max_workers=4): - - def msg(x): - self.logger.info(f"finished with {x}") - self.logger.debug(x.result()) - - start = time() - - with concurrent.futures.ThreadPoolExecutor(max_workers=max_workers) as executor: - futures = {} - for name,f in self.__analyses.items(): - self.logger.info(f"Start thread for {f} ") - future = executor.submit(f, self) - future.add_done_callback(msg) - futures[future] = name - - while True: - status = {futures[f]:{'status':'running' if f.running() else 'done' if f.done() else 'waiting'} for f in futures} - self.logger.debug(json.dumps(status,indent=6)) - if all([f.done() for f in futures]): - break - sleep(1) - - - results = {} - for future in concurrent.futures.as_completed(futures): - _id = futures[future] - results[_id] = future.result() - - end = time() - start - self.logger.info(f"Running analyses took {end} seconds") - return results - - def find_one(self,config,cols=None,dropna=False): - return self.filter(config,cols,dropna).sample(frac=1).iloc[0] - - def find(self,config,cols=None,dropna=False): - return self.filter(config,cols,dropna) - - def _filter(self,df,filters): - ops = { - '>': operator.gt, - '<': operator.lt, - '>=': operator.ge, - '<=': operator.le, - '==': operator.eq - } - - - if not isinstance(filters,dict): - raise NotImplementedError("filter must be a 'dict' .") - - for col,value in filters.items(): - if isinstance(value,dict): - for op_str,val in value.items(): - df = df[ops[op_str](df[col],val)] - else: - df = df[df[col] == value] - return df - - - def filter(self,config,cols=None,dropna=False): - retval = copy.deepcopy(self) - for table,spec in config.items(): - df = retval[table] - if isinstance(df,DestinationTable): - df = df.get_df() - for col,func in spec.items(): - df = df[df[col].apply(func)] - - retval[table] = df - - if dropna: - retval = retval.dropna(axis=1) - if cols is not None: - index = retval.index.name - retval = retval.reset_index() - retval = retval[[col for col,keep in cols.items() if keep]] - if index in retval.columns: - retval = retval.set_index(index) - - return retval - - - # for obj in config: - # if isinstance(obj,str): - # df = self[obj].get_df() - # if df.index.name != 'person_id': - # df = df.set_index('person_id') - # elif isinstance(obj,dict): - # for key,value in obj.items(): - # print (self[key]) - # df = self[key] - # df = self._filter(df,value) - # if df.index.name != 'person_id': - # df = df.set_index('person_id') - # if retval is None: - # retval = df - # else: - # retval = retval.merge(df,left_index=True,right_index=True) - # else: - # raise NotImplementedError("need to pass a json object to filter()") - - - def get_all_objects(self): - return [ obj for collection in self.__objects.values() for obj in collection.values()] - - - def get_start_index(self,destination_table): - self.logger.debug(f'getting start index for {destination_table}') - - if self.indexing_conf == None or not self.indexing_conf : - self.logger.debug(f"no indexing specified, so starting the index for {destination_table} from 1") - return 1 - - if destination_table in self.indexing_conf: - return int(self.indexing_conf[destination_table]) - else: - self.logger.warning(self.indexing_conf) - self.logger.warning("indexing configuration has be parsed " - f"but this table ({destination_table}) " - "has not be passed, so starting from 1") - return 1 - - def clear_objects(self,destination_table=None): - if destination_table: - self.__objects[destination_table].clear() - else: - for destination_table in self.__objects: - self.__objects[destination_table].clear() - - def get_objects(self,destination_table=None): - """ - For a given destination table: - * Retrieve all associated objects that have been registered with the class - - Args: - destination_table (str) : name of a destination (CDM) table e.g. "person" - Returns: - list : a list of destination table objects - e.g. [, ] - which would be objects for male and female mapping - """ - if destination_table == None: - return self.__objects - - self.logger.debug(f"looking for {destination_table}") - if destination_table not in self.__objects.keys(): - self.logger.error(f"Trying to obtain the table '{destination_table}', but cannot find any objects") - raise Exception("Something wrong!") - - return [ - obj - for obj in self.__objects[destination_table].values() - ] - - - def mask_person_id(self,df,destination_table): - """ - Given a dataframe object, apply a masking map on the person_id, if one has been created - Args: - df (pandas.Dataframe) : input pandas dataframe - Returns: - pandas.Dataframe: modified dataframe with person id masked - """ - - if 'person_id' in df.columns: - #if masker has not been defined, define it - if destination_table == 'person': - if self.person_id_masker is not None: - start_index = int(list(self.person_id_masker.values())[-1]) + 1 - new = False - else: - self.person_id_masker = {} - start_index = self.get_start_index(destination_table) - new = True - - person_id_masker = {} - for i,x in enumerate(df['person_id'].unique()): - index = i+start_index - if x in self.person_id_masker: - existing_index = self.person_id_masker[x] - self.logger.error(f"'{x}' already found in the person_id_masker") - self.logger.error(f"'{existing_index}' assigned to this already") - self.logger.error(f"was trying to set '{index}'") - self.logger.error(f"Most likely cause is this is duplicate data!") - raise PersonExists('Duplicate person found!') - person_id_masker[x] = index - - self.person_id_masker.update(person_id_masker) - - if self.outputs: - dfp = pd.DataFrame(((s,t) - for t,s in person_id_masker.items()), - columns=['SOURCE_SUBJECT','TARGET_SUBJECT']) - - mode = 'w' if new else 'a' - self.outputs.write(f"person_ids",dfp,mode) - - #apply the masking - if self.person_id_masker is None: - raise Exception(f"Person ID masking cannot be performed on" - f" {destination_table} as no masker based on a person table has been defined!") - - nbefore = len(df['person_id']) - df['person_id'] = df['person_id'].map(self.person_id_masker) - - self.logger.debug(f"Just masked person_id using integers") - if destination_table != 'person': - df.dropna(subset=['person_id'],inplace=True) - nafter = len(df['person_id']) - ndiff = nbefore - nafter - df.attrs['valid_person_id'] = {'before':nbefore,'after':nafter} - #if rows have been removed - if ndiff>0: - self.logger.error("There are person_ids in this table that are not in the output person table!") - self.logger.error("Either they are not in the original data, or while creating the person table, ") - self.logger.error("studies have been removed due to lack of required fields, such as birthdate.") - self.logger.error(f"{nafter}/{nbefore} were good, {ndiff} studies are removed.") - - return df - - def count_objects(self): - """ - For each CDM (destination) table, count the number of objects associated - e.g. - { - "observation": 6, - "condition_occurrence": 1, - "person": 2 - } - """ - count_map = json.dumps({ - key: len(obj.keys()) - for key,obj in self.__objects.items() - },indent=6) - self.logger.info(f"Number of objects to process for each table...\n{count_map}") - - def keys(self): - """ - For cdm.keys(), return the keys of which objects have been mapped. - Hence which CDM table dataframes have been created. - This should be used AFTER cdm.process() has been run, which creates the dataframes. - """ - return self.__df_map.keys() - - def objects(self): - """ - Method to retrieve the input objects to the CDM - """ - return self.__objects - - - def process(self,object_list=None,conserve_memory=False): - """ - Process chunked data, processes as follows - * While the chunking of is not yet finished - * Loop over all CDM tables (via execution order) - and process the table (see process_table), returning a dataframe - * Register the retrieve dataframe with the model - * For the current chunk slice, save the data/logs to files - * Retrieve the next chunk of data - - """ - self.execution_order = self.get_execution_order() - self.logger.info(f"Starting processing in order: {self.execution_order}") - self.count_objects() - - for destination_table in self.execution_order: - first = True - i = 0 - while True: - df_generator = self.process_table(destination_table,object_list=object_list) - ntables = 0 - nrows = 0 - dfs = [] - #print (self.drop_duplicates) - for j,obj in enumerate(df_generator): - df = obj.get_df() - ntables +=1 - nrows += len(df) - if conserve_memory and self.save_files: - mode = None if first else 'a' - self.save_dataframe(destination_table,df,mode=mode) - first = False - obj.clear() - del df - df = None - else: - dfs.append(df) - - if not conserve_memory: - df = pd.concat(dfs,ignore_index=True)#.sort_values(df.columns[0]) - if self.save_files: - if self.drop_duplicates and destination_table != 'person': - nbefore = len(df) - df_hash = pd.util.hash_pandas_object(df.drop(df.columns[0],axis=1),index=False) - df_temp = df[df_hash.duplicated(keep=False)].head(10).dropna(axis=1) - df = df[~df_hash.duplicated()] - nafter = len(df) - ndiff = nbefore - nafter - if ndiff>0: - self.logger.error(f"Removed {ndiff} row(s) due to duplicates found when merging {destination_table}") - self.logger.warning("Example duplicates...") - self.logger.warning(df_temp.set_index(df_temp.columns[0])) - - mode = None if first else 'a' - self.save_dataframe(destination_table,df,mode=mode) - first = False - - for col in df.columns: - if col.endswith("_id"): - df[col] = df[col].astype(float).astype(pd.Int64Dtype()) - if df.index.name == 'index' or df.index.name is None: - df = df.set_index(df.columns[0]) - - self[destination_table] = df - - - self.logger.info(f'finalised {destination_table} on iteration {i} producing {nrows} rows from {ntables} tables') - - #move onto the next iteration - i+=1 - - - if self.inputs: - try: - #make sure to reset the objects, clearing any existing dataframes - [x.reset() for x in self.get_all_objects()] - self.inputs.next() - except StopIteration: - break - else: - break - - - - #if inputs are defined, and we havent just finished the last table, - #reset the inputs - if self.inputs and not destination_table == self.execution_order[-1]: - self.inputs.reset() - - #for destination_table in self.execution_order: - # index = self.get_start_index(destination_table) - # print (index) - - - def process_simult(self,object_list=None,conserve_memory=False): - """ - process simulataneously - """ - self.execution_order = self.get_execution_order() - self.logger.info(f"Starting processing in order: {self.execution_order}") - self.count_objects() - i=0 - while True: - for destination_table in self.execution_order: - df_generator = self.process_table(destination_table,object_list=object_list) - ntables = 0 - nrows = 0 - dfs = [] - for j,obj in enumerate(df_generator): - df = obj.get_df() - - ntables +=1 - nrows += len(df) - if self.save_files: - mode = None if j==0 else 'a' - self.save_dataframe(destination_table,df,mode=mode) - first = False - if not conserve_memory: - dfs.append(df) - #else: - # obj.clear() - # del df - # df = None - if not conserve_memory: - self[destination_table] = pd.concat(dfs,ignore_index=True) - - if self.inputs: - try: - [x.reset() for x in self.get_all_objects()] - self.inputs.next() - except StopIteration: - break - else: - break - i+=1 - - - - def get_tables(self): - return list(self.__objects.keys()) - - def get_execution_order(self): - if not self.execution_order: - self.execution_order = sorted(self.__objects.keys(), key=lambda x: x != 'person') - return self.execution_order - - def set_execution_order(self,order): - self.execution_order = order - - def process_table(self,destination_table,object_list=None): - """ - Process a CDM (destination) table. The method proceeds as follows: - * Given a destination table name e.g. 'person' - * Retrieve all objects belonging to the given CDM table (e.g. ) - * Loop over each object - * Retrieve a dataframe for that object given it's definition/rules (see get_df) - * Concatenate all retrieve dataframes together by stacking on top of each other vertically - * Create new indexes for the primary column so the go from 1-N - - Args: - destination_table (str) : name of a destination table to process (e.g. 'person') - object_list (list) : [optional] list of objects to process - Returns: - list(pandas.Dataframe): a dataframes in the CDM format for this destination table - """ - objects = self.get_objects(destination_table) - if object_list: - objects = [obj for obj in object_list if obj in objects] - - nobjects = len(objects) - extra = "" - if nobjects>1: - extra="s" - self.logger.info(f"for {destination_table}: found {nobjects} object{extra}") - - if len(objects) == 0: - yield None - - #execute them all - dfs = [] - self.logger.info(f"working on {destination_table}") - logs = {'objects':{}} - - if destination_table not in self.logs['meta']['total_data_processed']: - self.logs['meta']['total_data_processed'][destination_table] = 0 - - nrows_processed = self.logs['meta']['total_data_processed'][destination_table] - - for i,obj in enumerate(objects): - self.logger.info(f"starting on {obj.name}") - - start_index = self.get_start_index(destination_table) - start_index += nrows_processed - - #force_rebuild=True, - # Why was this (force_rebuild=True) turned off/removed from the initial get_df? - # ---> this also explains the problem we observed - # and why we need a reset when retrieving new input chunks - # ( [x.reset() for x in self.get_all_objects()] ) - # - # Answer: I think to save computational time if you load an existing CDM dataset - # into the software (?) - df = obj.get_df(start_index=start_index) - - self.logger.info(f"finished {obj.name} ({hex(id(df))}) " - f"... {i+1}/{len(objects)} completed, {len(df)} rows") - if len(df) == 0: - self.logger.warning(f".. no outputs were found ") - continue - - if self.do_mask_person_id: - df = self.mask_person_id(df,destination_table) - - obj._meta.update(df.attrs) - nrows_processed += len(df) - self.logs['meta']['total_data_processed'][destination_table] = nrows_processed - if destination_table not in self.logs: - self.logs[destination_table] = {} - - self.logs[destination_table][hex(id(df))] = copy.deepcopy(obj._meta) - self.metrics.add_data(destination_table, obj._meta) - - obj.set_df(df) - yield obj - - def save_dataframe(self,table,df=None,mode=None): - if self.outputs: - _id = hex(id(df)) - self.logger.info(f"saving dataframe ({_id}) to {self.outputs}") - self.outputs.write(table,df,mode) - else: - self.logger.info(f"called save_dateframe but outputs are not defined. save_files: {self.save_files}") - - def set_person_id_map(self,person_id_map): - self.person_id_masker = person_id_map - - def set_indexing_map(self,indexing): - self.indexing_conf = indexing - - def set_outfile_separator(self,sep): - """ - Set which separator to use, e.g. ',' or '\t' - - Args: - sep (str): which separator to use when writing csv (tsv) files - """ - self._outfile_separator = sep - - def set_indexing(self,index_map,strict_check=False): - """ - Create indexes on input files which would allow rules to use data from - different input tables. - - Args: - index_map (dict): a map between the filename and what should be the column used for indexing - - """ - if self.inputs == None: - raise NoInputFiles('Trying to indexing before any inputs have been setup') - - for key,index in index_map.items(): - if key not in self.inputs.keys(): - self.logger.warning(f"trying to set index '{index}' for '{key}' but this has not been loaded as an inputs!") - continue - - if index not in self.inputs[key].columns: - self.logger.error(f"trying to set index '{index}' on dataset '{key}', but this index is not in the columns! something really wrong!") - continue - self.inputs[key].index = self.inputs[key][index].rename('index') diff --git a/carrot/cdm/objects/__init__.py b/carrot/cdm/objects/__init__.py deleted file mode 100644 index 6f721d42..00000000 --- a/carrot/cdm/objects/__init__.py +++ /dev/null @@ -1,54 +0,0 @@ -import carrot -import importlib -import inspect - -__default_cdm_version = '5.3.1' -if 'cdm' in carrot.params: - __cdm_version = carrot.params['cdm'] -else: - __cdm_version = __default_cdm_version - -__cdm_version_split = '_'.join(__cdm_version.split('.')) - -try: - __cdm_tables = importlib.import_module(f'carrot.cdm.objects.versions.v{__cdm_version_split}') -except ModuleNotFoundError as e: - raise ModuleNotFoundError(f'Cannot find CDM version {__cdm_version}, this does not exist in this package!') from e - -__cdm_tables = { - m[0]:getattr(__cdm_tables,m[0]) - for m in inspect.getmembers( - __cdm_tables, - inspect.isclass) -} - - -__cdm_object_map = { - obj.name : obj - for obj in __cdm_tables.values() -} -def get_cdm_tables(): - return __cdm_object_map - -import sys -this = sys.modules[__name__] - -for name,_class in __cdm_tables.items(): - setattr(this,name,_class) - -from .. import decorators - -__cdm_decorator_map = { - name.replace("define_",""):getattr(decorators,name) - for name in dir(decorators) - if 'define' in name -} - -def get_cdm_decorator(key): - return __cdm_decorator_map[key] - -def get_cdm_class(key): - return __cdm_object_map[key] - -from .common import DestinationTable, DataFormatter, FormatterLevel - diff --git a/carrot/cdm/objects/common.py b/carrot/cdm/objects/common.py deleted file mode 100644 index 8e05eb54..00000000 --- a/carrot/cdm/objects/common.py +++ /dev/null @@ -1,529 +0,0 @@ -import os -import json -import re -import pandas as pd -import numpy as np -import collections -from enum import Enum -from carrot.cdm.operations import OperationTools -from carrot.tools.logger import Logger - -class RequiredFieldIsNone(Exception): - pass - -class ConvertDataType(Exception): - pass - -class FailedRequiredCheck(Exception): - pass - -class FormattingError(Exception): - pass - -class DataStandardError(Exception): - pass - -class BadInputs(Exception): - pass - - -class FormatterLevel(Enum): - OFF = 0 - ON = 1 - CHECK = 2 - -class DataFormatter(collections.OrderedDict,Logger): - """ - Class for formatting DestinationFields in the CommonDataModel - - Inherits from an ordered dictionary, and maps datatypes to lambda functions. - The lamba functions encode how to transform and format a pandas series given the datatype. - - """ - - def check_formatting(self,series,function,nsample=50,tolerance=0.3): - """ - Apply a formatting function to a subset of a series - Args: - series (pandas.Series) : input data series - function (built-in function): formatting function to be applied - nsample (int): number of rows to sample to make checks on (default = 50) - Returns: - series : modified or original pandas.Series object - - """ - # get the number of rows of the datframe - n = len(series) - nsample = nsample if n > nsample else n - - - #sample the series - series_slice = series.sample(nsample) - #format the sample of the series - series_slice_formatted = function(series_slice) - - #if it's just formatting of a number, just return the series if no error has been raised - if series_slice_formatted.dtype == 'Float64': - return series - - #if it's formatting of text i.e. date string - #and the pre- and post-formatting of the series are equal - #dont waste time formatting the entire series, just return it as it is - series_slice_values = series_slice.dropna().astype(str).unique() - series_slice_formatted_values = series_slice_formatted.dropna().astype(str).replace('', np.nan).dropna().unique() - - if np.array_equal(series_slice_values,series_slice_formatted_values): - self.logger.debug(f'Sampling {nsample}/{n} values suggests the column '\ - f'{series.name}" is already formatted!!') - return series - else: - a=np.array(series_slice.values,dtype=str) - b=np.array(series_slice_formatted.values,dtype=str) - - are_equal = a==b - ngood = are_equal.sum() - fraction_good = round(ngood / nsample,2) - - logger = self.logger.critical if fraction_good <= tolerance else self.logger.warning - - logger(f'Tested fomatting {nsample} rows of {series.name}. The original data is not in the right format.') - - df_bad = pd.concat([series_slice[~are_equal],series_slice_formatted[~are_equal]],axis=1) - df_bad.columns = ['original','should be'] - - self.logger.warning(f"\n {df_bad}") - - if logger == self.logger.critical: - logger(f"Fraction of good columns = {fraction_good} ({ngood} / {nsample} ), is below the tolerance threshold={tolerance}") - raise DataStandardError(f"{series.name} has not been formatted correctly") - else: - logger(f"Fraction of good columns ={fraction_good} ({ngood} / {nsample} ), is above the tolerance threshold={tolerance}") - - - def __init__(self,errors='coerce'): - super().__init__() - - self['Integer'] = lambda x : pd.to_numeric(x,errors=errors).astype('Int64') - self['Float'] = lambda x : pd.to_numeric(x,errors=errors).astype('Float64') - self['Text20'] = lambda x : x.fillna('').astype(str).apply(lambda x: x[:20]) - self['Text50'] = lambda x : x.fillna('').astype(str).apply(lambda x: x[:50]) - self['Text60'] = lambda x : x.fillna('').astype(str).apply(lambda x: x[:60]) - - self['Timestamp'] = lambda x : pd.to_datetime(x,errors=errors)\ - .dt.strftime('%Y-%m-%d %H:%M:%S.%f') - self['Date'] = lambda x : pd.to_datetime(x,errors=errors).dt.date - - -class DestinationField(object): - """ - CommonDataModel Table Destination Field. - - Object for handling output columns (destination fields) in a - Destination Table - - Attributes: - series (pandas.Series): raw column data in the form of a series - dtype (str): data type for how to format the column based on the DataFormatter - required (bool): if the column is required or not - i.e. if the row should be delete if it is not filled - pk (str): primary key label, indicating if the column is the primary required field - - """ - def __init__(self, dtype: str, required: bool, pk=False): - self.series = None - self.dtype = dtype - self.required = required - self.pk = pk - -class DestinationTable(Logger): - """ - Common object that all CDM objects (tables) inherit from. - """ - - @classmethod - def from_df(cls,df,name=None): - obj = cls(name) - obj.__df = df - #for colname in df.columns: - # obj[colname].series = df[colname] - return obj - - def __len__(self): - return len(self.__df) - - def reset(self): - self.clear() - self._meta.clear() - self.__init_meta() - - def clear(self): - self.__df = None - #for field in self.fields: - # series = getattr(self,field) - # del series - - def __init_meta(self): - self._meta = {'required_fields':{}} - - def __init__(self,name,_type,_version='v5_3_1',format_level=1): - """ - Initialise the CDM DestinationTable Object class - Args: - _type (str): the name of the object being initialsed, e.g. "person" - _version (str): the CDM version, see https://github.com/OHDSI/CommonDataModel/tags - Returns: - None - """ - self.name = name - self._type = _type - self.__init_meta() - - self.dtypes = DataFormatter() - self.format_level = FormatterLevel(format_level) - self.fields = self.get_field_names() - #self.do_formatting = not format_level is None - - if len(self.fields) == 0: - raise Exception("something misconfigured - cannot find any DataTypes for {self.name}") - - #print a check to see what cdm objects have been initialised - self.logger.debug(self.get_destination_fields()) - self.__df = None - - #get the required fields - self.required_fields = [ - field - for field in self.get_field_names() - if getattr(self,field).required == True - ] - - self.automatically_fill_missing_columns = True - self.tools = OperationTools() - - - def get_field_names(self): - """ - From the current object, loop over all member objects and find those that are instances - of a DestinationField (column) - - Returns: - list : a list of destination fields (columns [series]) - - """ - return [ - item - for item in self.__dict__.keys() - if isinstance(getattr(self,item),DestinationField) - ] - - def get_field_dtypes(self): - """ - From the current object, loop over all member objects and find those that are instances - of a DestinationField (column) - - Returns: - list : a list of destination fields (columns [series]) - - """ - return { - item:getattr(self,item).dtype - for item in self.__dict__.keys() - if isinstance(getattr(self,item),DestinationField) - } - - def get_ordering(self): - """ - Loops over all associated fields and finds which have been marked as being a primary key. - - Returns: - list: a string list of the names of primary columns (fields) - """ - retval = [ - field - for field in self.fields - if getattr(self,field).pk == True - ] - - return retval - - def __getitem__(self, key): - """ - Retrieve a field (column) from the table (dataframe) - - Args: - key (str) : name of a destination field - Returns: - DestinationField : the destination field object - """ - - return getattr(self, key) - - def __setitem__(self, key, obj): - """ - Register a field object with the table - """ - return setattr(self, key, obj) - - #def set_format_level(self,level): - # self.format_level = level - - def set_name(self,name): - """ - Register/Set the name of the destination table - """ - self.name = name - self.logger.name = self.name - - def define(self,_): - """ - define function, expected to be overloaded by the user defining the object - """ - pass - - def get_destination_fields(self): - """ - Get a list of all the destination fields that have been - loaded and associated to this cdm object - - - Returns: - list: a list of all the destination fields that have been defined - """ - return list(self.fields) - - def update(self,that): - #extract all objects from the passed object - objs = {k:v for k,v in that.__dict__.items() if k!='logger' } - #add objects to this class - self.__dict__.update(objs) - - - def set_df(self,df): - self.__df = df - - def get_df(self,force_rebuild=False,dont_build=False,dropna=False,**kwargs): - """ - Retrieve a dataframe from the current object - - Returns: - pandas.Dataframe: extracted dataframe of the cdm object - """ - - if not self.__df is None: - self.logger.debug(f"df({hex(id(self.__df))}) already exists") - - if dont_build: - if self.__df is None: - self.__df = pd.DataFrame(columns = self.fields) - self.set_df_name() - return self.__df - - #if the dataframe has already been built.. just return it - if not self.__df is None and not force_rebuild: - self.logger.debug('already got a dataframe, so returning the existing one') - if dropna: - return self.__df.dropna(axis=1) - else: - return self.__df - - self.define(self) - - #get a dict of all series - #each object is a pandas series - dfs = {} - - for field in self.fields: - obj = getattr(self,field) - series = obj.series - if series is None: - #if required: - # self.logger.error(f"{field} is all null/none or has not been set/defined") - # raise RequiredFieldIsNone(f"{field} is a required for {self.name}.") - continue - - #rename the column to be the final destination field name - series = series.rename(field) - #register the new series - dfs[field] = series - self.logger.debug(f'Adding series to dataframe from field "{field}"') - - #if there's none defined, dont do anything - if len(dfs) == 0: - self.logger.warning("no objects defined") - self.__df = pd.DataFrame(columns = self.fields) - self.set_df_name() - return self.__df - - #check the lengths of the dataframes - lengths = list(set([len(df) for df in dfs.values()])) - if len(lengths)>1: - self.logger.error("One or more inputs being mapped to this object has a different number of entries") - for name,df in dfs.items(): - self.logger.error(f"{name} of length {len(df)}") - raise BadInputs("Differring number of rows in the inputs") - - #create a dataframe from all the series objects - df = pd.concat(dfs.values(),axis=1) - - #find which fields in the cdm havent been defined - missing_fields = set(self.fields) - set(df.columns) - - #self._meta['defined_columns'] = df.columns.tolist() - #self._meta['undefined_columns'] = list(missing_fields) - - #set these to a nan/null series - for field in missing_fields: - df[field] = np.nan - - #simply order the columns - df = df[self.fields] - - df = self.finalise(df,**kwargs) - df = self.format(df) - - if dropna: - df = df.dropna(axis=1) - - #register the df - self.__df = df - self.set_df_name() - - self.logger.info(f"created df ({hex(id(df))})[{self.get_df_name()}]") - return self.__df - - - def get_df_name(self): - if not self.__df is None: - return self.__df.attrs['name'] - - def set_df_name(self): - if self.__df is None: - return - name = re.sub("[^0-9a-zA-Z]+","_",self.name) - self.__df.attrs['name'] = name - - def format(self,df): - - if self.format_level is FormatterLevel.OFF: - self.logger.info('Not formatting data columns') - return df - elif self.format_level is FormatterLevel.ON: - self.logger.info("Automatically formatting data columns.") - elif self.format_level is FormatterLevel.CHECK: - self.logger.info("Performing checks on data formatting.") - - - for col in self.fields: - #if is already all na/nan, dont bother trying to format - is_nan_already = df[col].head(100).isna().all() - if is_nan_already: - continue - - obj = getattr(self,col) - - #dont try any formatting for primary keys that need to be integers - if obj.pk == True or col == 'person_id': - continue - - dtype = obj.dtype - formatter_function = self.dtypes[dtype] - - nbefore = len(df[col]) - if nbefore == 0: - self.logger.warning(f"trying to format an empty column ({cols})") - - nsample = 5 if nbefore > 5 else nbefore - sample = df[col].sample(nsample) - - if self.format_level is FormatterLevel.ON: - self.logger.debug(f"Formatting {col}") - try: - df[col] = formatter_function(df[col]) - except Exception as e: - self.logger.critical(e) - if 'source_files' in self._meta: - self.logger.error("This is coming from the source file (table & column) ...") - self.logger.error(self._meta['source_files'][col]) - raise(e) - - if col in self.required_fields: - df = df[~df[col].isna()] - #count the number of rows after - nafter = len(df) - self._meta['required_fields'][col]['after_formatting'] = nafter - - if nafter == 0 : - self.logger.error(f"Something wrong with the formatting of the required field {col} using {dtype}") - self.logger.info(f"Formatting resulted in all NaN values. Sample of this column before formatting:") - self.logger.error(sample) - if 'source_files' in self._meta: - self.logger.error("This is coming from the source file (table & column) ...") - self.logger.error(self._meta['source_files'][col]) - raise FormattingError(f"When formatting the required column {col}, using the formatter function {dtype}, all produced values are NaN/null values.") - else: - ndiff = nafter - nbefore - if ndiff > 0: - self.logger.warning(f"Formatting of values in {col} removed {ndiff} rows, leaving {nafter} rows.") - - elif self.format_level is FormatterLevel.CHECK: - self.logger.debug(f"Checking formatting of {col} to {dtype}") - try: - _ = self.dtypes.check_formatting(df[col],formatter_function) - except Exception as e: - if 'source_files' in self._meta: - self.logger.error("This is coming from the source file (table & column) ...") - self.logger.error(self._meta['source_files'][col]) - raise(e) - - return df - - def finalise(self,df,start_index=1,**kwargs): - """ - Finalise a dataframe by dropping null/nan rows if a required field is missing. - also sort the dataframe by the primary key of the table. - - Args: - df (pandas.Dataframe): input dataframe - Returns: - pandas.Dataframe: cleaned output dataframe - """ - - #loop over the non-index fields - for field in df.columns[1:]: - #if it's not required, skip - if field not in self.required_fields: - continue - - #count the number of rows before - nbefore = len(df) - #remove rows which do not have this required field filled - df = df[~df[field].isna()] - - #count the number of rows after - nafter = len(df) - #get the number of rows removed - ndiff = nbefore - nafter - #if rows have been removed - if ndiff>0: - #log a warning message if after requiring non-NaN values has removed all rows - log = self.logger.warning if nafter > 0 else self.logger.error - log(f"Requiring non-null values in {field} removed {ndiff} rows, leaving {nafter} rows.") - - #log some metadata - self._meta['required_fields'][field] = { - 'before':nbefore, - 'after':nafter - } - - #now index properly - primary_column = df.columns[0] - if primary_column != 'person_id': - if df[primary_column].head(100).isnull().all(): - df[primary_column] = df.reset_index().index + start_index - - #return the dataframe sorted by the primary key requested - #ordering = self.get_ordering() - #if len(ordering) > 0: - # df = df.sort_values(self.get_ordering()) - return df - diff --git a/carrot/cdm/objects/versions/__init__.py b/carrot/cdm/objects/versions/__init__.py deleted file mode 100644 index b8599646..00000000 --- a/carrot/cdm/objects/versions/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from . import v5_3_1 diff --git a/carrot/cdm/objects/versions/v5_3_1/__init__.py b/carrot/cdm/objects/versions/v5_3_1/__init__.py deleted file mode 100644 index 9cd54aee..00000000 --- a/carrot/cdm/objects/versions/v5_3_1/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from .person import Person -from .condition_occurrence import ConditionOccurrence -from .drug_exposure import DrugExposure -from .measurement import Measurement -from .observation import Observation -from .procedure_occurrence import ProcedureOccurrence -from .specimen import Specimen -from .visit_occurrence import VisitOccurrence -from .death import Death - diff --git a/carrot/cdm/objects/versions/v5_3_1/condition_occurrence.py b/carrot/cdm/objects/versions/v5_3_1/condition_occurrence.py deleted file mode 100644 index 12b944a4..00000000 --- a/carrot/cdm/objects/versions/v5_3_1/condition_occurrence.py +++ /dev/null @@ -1,50 +0,0 @@ -import pandas as pd -from ...common import DestinationTable, DestinationField - -class ConditionOccurrence(DestinationTable): - """ - CDM Condition Occurrence object class - """ - - name = 'condition_occurrence' - def __init__(self,name=None): - self.condition_occurrence_id = DestinationField(dtype="Integer" , required=True , pk=True) - self.person_id = DestinationField(dtype="Integer" , required=True ) - self.condition_concept_id = DestinationField(dtype="Integer" , required=True ) - self.condition_start_date = DestinationField(dtype="Date" , required=False ) - self.condition_start_datetime = DestinationField(dtype="Timestamp" , required=True ) - self.condition_end_date = DestinationField(dtype="Date" , required=False ) - self.condition_end_datetime = DestinationField(dtype="Timestamp" , required=False ) - self.condition_type_concept_id = DestinationField(dtype="Integer" , required=False ) - self.stop_reason = DestinationField(dtype="Text20" , required=False ) - self.provider_id = DestinationField(dtype="Integer" , required=False ) - self.visit_occurrence_id = DestinationField(dtype="Integer" , required=False ) - self.condition_source_value = DestinationField(dtype="Text50" , required=False ) - self.condition_source_concept_id = DestinationField(dtype="Integer" , required=False ) - self.condition_status_source_value = DestinationField(dtype="Text50" , required=False ) - self.condition_status_concept_id = DestinationField(dtype="Integer" , required=False ) - - if name is None: - name = hex(id(self)) - super().__init__(name,self.name) - - - def get_df(self,**kwargs): - """ - Overload/append the creation of the dataframe, specifically for the condition_occurrence objects - * condition_concept_id is required to be not null - this can happen when spawning multiple rows from a person - we just want to keep the ones that have actually been filled - - Returns: - pandas.Dataframe: output dataframe - """ - - df = super().get_df(**kwargs) - if self.automatically_fill_missing_columns == True: - if df['condition_start_date'].isnull().all(): - df['condition_start_date'] = self.tools.get_date(df['condition_start_datetime']) - - if df['condition_end_date'].isnull().all(): - df['condition_end_date'] = self.tools.get_date(df['condition_end_datetime']) - return df diff --git a/carrot/cdm/objects/versions/v5_3_1/death.py b/carrot/cdm/objects/versions/v5_3_1/death.py deleted file mode 100644 index fd71217a..00000000 --- a/carrot/cdm/objects/versions/v5_3_1/death.py +++ /dev/null @@ -1,38 +0,0 @@ -from ...common import DestinationTable, DestinationField - -class Death(DestinationTable): - """ - CDM Death object class - """ - name = 'death' - def __init__(self,name=None): - self.person_id = DestinationField(dtype="Integer" , required=False , pk=True) - self.death_date = DestinationField(dtype="Date" , required=False ) - self.death_datetime = DestinationField(dtype="Timestamp" , required=False ) - self.death_type_concept_id = DestinationField(dtype="Integer" , required=False ) - self.cause_concept_id = DestinationField(dtype="Integer" , required=False ) - self.cause_source_value = DestinationField(dtype="Text50" , required=False ) - self.cause_source_concept_id = DestinationField(dtype="Integer" , required=False ) - - if name is None: - name = hex(id(self)) - super().__init__(name,self.name) - - def finalise(self,df,**kwargs): - """ - Overload the finalise function here for any specifics for the person table - """ - df = super().finalise(df,**kwargs) - return df - - - def get_df(self,**kwargs): - """ - Returns: - pandas.Dataframe: output dataframe - """ - df = super().get_df(**kwargs) - if self.automatically_fill_missing_columns == True: - pass - - return df diff --git a/carrot/cdm/objects/versions/v5_3_1/drug_exposure.py b/carrot/cdm/objects/versions/v5_3_1/drug_exposure.py deleted file mode 100644 index 1c645a44..00000000 --- a/carrot/cdm/objects/versions/v5_3_1/drug_exposure.py +++ /dev/null @@ -1,58 +0,0 @@ -import pandas as pd -from ...common import DestinationTable, DestinationField - -class DrugExposure(DestinationTable): - """ - CDM Drug Exposure object class - """ - - name = 'drug_exposure' - def __init__(self,name=None): - self.drug_exposure_id = DestinationField(dtype="Integer" , required=True , pk=True) - self.person_id = DestinationField(dtype="Integer" , required=True ) - self.drug_concept_id = DestinationField(dtype="Integer" , required=True ) - self.drug_exposure_start_date = DestinationField(dtype="Date" , required=False ) - self.drug_exposure_start_datetime = DestinationField(dtype="Timestamp" , required=True ) - self.drug_exposure_end_date = DestinationField(dtype="Date" , required=False ) - self.drug_exposure_end_datetime = DestinationField(dtype="Timestamp" , required=False ) - self.verbatim_end_date = DestinationField(dtype="Date" , required=False ) - self.drug_type_concept_id = DestinationField(dtype="Integer" , required=False ) - self.stop_reason = DestinationField(dtype="Text20" , required=False ) - self.refills = DestinationField(dtype="Integer" , required=False ) - self.quantity = DestinationField(dtype="Float" , required=False ) - self.days_supply = DestinationField(dtype="Integer" , required=False ) - self.sig = DestinationField(dtype="Integer" , required=False ) - self.route_concept_id = DestinationField(dtype="Integer" , required=False ) - self.lot_number = DestinationField(dtype="Text50" , required=False ) - self.provider_id = DestinationField(dtype="Integer" , required=False ) - self.visit_occurrence_id = DestinationField(dtype="Integer" , required=False ) - self.drug_source_value = DestinationField(dtype="Text50" , required=False ) - self.drug_source_concept_id = DestinationField(dtype="Integer" , required=False ) - self.route_source_value = DestinationField(dtype="Text50" , required=False ) - self.dose_unit_source_value = DestinationField(dtype="Text50" , required=False ) - - if name is None: - name = hex(id(self)) - super().__init__(name,self.name) - - - def get_df(self,**kwargs): - """ - Overload/append the creation of the dataframe, specifically for the drug_exposure objects - * drug_concept_id is required to be not null - this can happen when spawning multiple rows from a person - we just want to keep the ones that have actually been filled - - Returns: - pandas.Dataframe: output dataframe - """ - - df = super().get_df(**kwargs) - if self.automatically_fill_missing_columns == True: - if df['drug_exposure_start_date'].isnull().all(): - df['drug_exposure_start_date'] = self.tools.get_date(df['drug_exposure_start_datetime']) - - if df['drug_exposure_end_date'].isnull().all(): - df['drug_exposure_end_date'] = self.tools.get_date(df['drug_exposure_end_datetime']) - return df - diff --git a/carrot/cdm/objects/versions/v5_3_1/measurement.py b/carrot/cdm/objects/versions/v5_3_1/measurement.py deleted file mode 100644 index c9564377..00000000 --- a/carrot/cdm/objects/versions/v5_3_1/measurement.py +++ /dev/null @@ -1,52 +0,0 @@ -import pandas as pd -from ...common import DestinationTable, DestinationField - -class Measurement(DestinationTable): - """ - CDM Measurement object class - """ - - name = 'measurement' - def __init__(self,name=None): - self.measurement_id = DestinationField(dtype="Integer" , required=True , pk=True) - self.person_id = DestinationField(dtype="Integer" , required=True ) - self.measurement_concept_id = DestinationField(dtype="Integer" , required=True ) - self.measurement_date = DestinationField(dtype="Date" , required=False ) - self.measurement_datetime = DestinationField(dtype="Timestamp" , required=True ) - self.measurement_type_concept_id = DestinationField(dtype="Integer" , required=False ) - self.operator_concept_id = DestinationField(dtype="Integer" , required=False ) - self.value_as_number = DestinationField(dtype="Float" , required=False ) - self.value_as_concept_id = DestinationField(dtype="Integer" , required=False ) - self.unit_concept_id = DestinationField(dtype="Integer" , required=False ) - self.range_low = DestinationField(dtype="Float" , required=False ) - self.range_high = DestinationField(dtype="Float" , required=False ) - self.provider_id = DestinationField(dtype="Integer" , required=False ) - self.visit_occurrence_id = DestinationField(dtype="Integer" , required=False ) - self.measurement_source_value = DestinationField(dtype="Text50" , required=False ) - self.measurement_source_concept_id = DestinationField(dtype="Integer" , required=False ) - self.unit_source_value = DestinationField(dtype="Text50" , required=False ) - self.value_source_value = DestinationField(dtype="Text50" , required=False ) - - if name is None: - name = hex(id(self)) - super().__init__(name,self.name) - - def get_df(self,**kwargs): - """ - Overload/append the creation of the dataframe, specifically for the measurement objects - * measurement_concept_id is required to be not null - this can happen when spawning multiple rows from a person - we just want to keep the ones that have actually been filled - - Returns: - pandas.Dataframe: output dataframe - """ - - df = super().get_df(**kwargs) - if self.automatically_fill_missing_columns == True: - if df['measurement_date'].isnull().all(): - df['measurement_date'] = self.tools.get_date(df['measurement_datetime']) - if df['value_as_number'].isnull().all(): - df['value_as_number'] = pd.to_numeric(df['measurement_source_value'],errors='coerce').astype('Float64') - - return df diff --git a/carrot/cdm/objects/versions/v5_3_1/observation.py b/carrot/cdm/objects/versions/v5_3_1/observation.py deleted file mode 100644 index 32d0d17e..00000000 --- a/carrot/cdm/objects/versions/v5_3_1/observation.py +++ /dev/null @@ -1,50 +0,0 @@ -import pandas as pd -from ...common import DestinationTable, DestinationField - -class Observation(DestinationTable): - """ - CDM Observation object class - """ - - name = 'observation' - def __init__(self,name=None): - self.observation_id = DestinationField(dtype="Integer" , required=True , pk=True) - self.person_id = DestinationField(dtype="Integer" , required=True ) - self.observation_concept_id = DestinationField(dtype="Integer" , required=True ) - self.observation_date = DestinationField(dtype="Date" , required=False ) - self.observation_datetime = DestinationField(dtype="Timestamp" , required=True ) - self.observation_type_concept_id = DestinationField(dtype="Integer" , required=False ) - self.value_as_number = DestinationField(dtype="Float" , required=False ) - self.value_as_string = DestinationField(dtype="Text60" , required=False ) - self.value_as_concept_id = DestinationField(dtype="Integer" , required=False ) - self.qualifier_concept_id = DestinationField(dtype="Integer" , required=False ) - self.unit_concept_id = DestinationField(dtype="Integer" , required=False ) - self.provider_id = DestinationField(dtype="Integer" , required=False ) - self.visit_occurrence_id = DestinationField(dtype="Integer" , required=False ) - self.observation_source_value = DestinationField(dtype="Text50" , required=False ) - self.observation_source_concept_id = DestinationField(dtype="Integer" , required=False ) - self.unit_source_value = DestinationField(dtype="Text50" , required=False ) - self.qualifier_source_value = DestinationField(dtype="Text50" , required=False ) - - if name is None: - name = hex(id(self)) - super().__init__(name,self.name) - - - def get_df(self,**kwargs): - """ - Overload/append the creation of the dataframe, specifically for the observation objects - * observation_concept_id is required to be not null - this can happen when spawning multiple rows from a person - we just want to keep the ones that have actually been filled - - Returns: - pandas.Dataframe: output dataframe - """ - - df = super().get_df(**kwargs) - if self.automatically_fill_missing_columns == True: - if df['observation_date'].isnull().all(): - df['observation_date'] = self.tools.get_date(df['observation_datetime']) - - return df diff --git a/carrot/cdm/objects/versions/v5_3_1/person.py b/carrot/cdm/objects/versions/v5_3_1/person.py deleted file mode 100644 index 5211a836..00000000 --- a/carrot/cdm/objects/versions/v5_3_1/person.py +++ /dev/null @@ -1,63 +0,0 @@ -from ...common import DestinationTable, DestinationField - -class Person(DestinationTable): - """ - CDM Person object class - """ - name = 'person' - def __init__(self,name=None): - self.person_id = DestinationField(dtype="Integer" , required=True , pk=True) - self.gender_concept_id = DestinationField(dtype="Integer" , required=True ) - self.year_of_birth = DestinationField(dtype="Integer" , required=False ) - self.month_of_birth = DestinationField(dtype="Integer" , required=False ) - self.day_of_birth = DestinationField(dtype="Integer" , required=False ) - self.birth_datetime = DestinationField(dtype="Timestamp" , required=True ) - self.race_concept_id = DestinationField(dtype="Integer" , required=False ) - self.ethnicity_concept_id = DestinationField(dtype="Integer" , required=False ) - self.location_id = DestinationField(dtype="Integer" , required=False ) - self.provider_id = DestinationField(dtype="Integer" , required=False ) - self.care_site_id = DestinationField(dtype="Integer" , required=False ) - self.person_source_value = DestinationField(dtype="Text50" , required=False ) - self.gender_source_value = DestinationField(dtype="Text50" , required=False ) - self.gender_source_concept_id = DestinationField(dtype="Integer" , required=False ) - self.race_source_value = DestinationField(dtype="Text50" , required=False ) - self.race_source_concept_id = DestinationField(dtype="Integer" , required=False ) - self.ethnicity_source_value = DestinationField(dtype="Text50" , required=False ) - self.ethnicity_source_concept_id = DestinationField(dtype="Integer" , required=False ) - - if name is None: - name = hex(id(self)) - super().__init__(name,self.name) - - def finalise(self,df,**kwargs): - """ - Overload the finalise function here for any specifics for the person table - """ - df = super().finalise(df,**kwargs) - return df - - - def get_df(self,**kwargs): - """ - Overload/append the creation of the dataframe, specifically for the person objects - * year_of_birth is automatically converted to a year (int) - * month_of_birth is automatically converted to a month (int) - * day_of_birth is automatically converted to a day (int) - * birth_datetime is automatically coverted to a datatime - - - Returns: - pandas.Dataframe: output dataframe - """ - df = super().get_df(**kwargs) - if self.automatically_fill_missing_columns == True: - if df['year_of_birth'].isnull().all(): - df['year_of_birth'] = self.tools.get_year(df['birth_datetime']) - - if df['month_of_birth'].isnull().all(): - df['month_of_birth'] = self.tools.get_month(df['birth_datetime']) - - if df['day_of_birth'].isnull().all(): - df['day_of_birth'] = self.tools.get_day(df['birth_datetime']) - - return df diff --git a/carrot/cdm/objects/versions/v5_3_1/procedure_occurrence.py b/carrot/cdm/objects/versions/v5_3_1/procedure_occurrence.py deleted file mode 100644 index e138c7dc..00000000 --- a/carrot/cdm/objects/versions/v5_3_1/procedure_occurrence.py +++ /dev/null @@ -1,47 +0,0 @@ -import pandas as pd -from ...common import DestinationTable, DestinationField - -class ProcedureOccurrence(DestinationTable): - """ - CDM Procedure Occurrence object class - """ - - name = 'procedure_occurrence' - def __init__(self,name=None): - self.procedure_occurrence_id = DestinationField(dtype="Integer" , required=False , pk=True) - self.person_id = DestinationField(dtype="Integer" , required=True ) - self.procedure_concept_id = DestinationField(dtype="Integer" , required=True ) - self.procedure_date = DestinationField(dtype="Date" , required=False ) - self.procedure_datetime = DestinationField(dtype="Timestamp" , required=True ) - self.procedure_type_concept_id = DestinationField(dtype="Integer" , required=False ) - self.modifier_concept_id = DestinationField(dtype="Integer" , required=False ) - self.quantity = DestinationField(dtype="Integer" , required=False ) - self.provider_id = DestinationField(dtype="Integer" , required=False ) - self.visit_occurrence_id = DestinationField(dtype="Integer" , required=False ) - self.procedure_source_value = DestinationField(dtype="Text50" , required=False ) - self.procedure_source_concept_id = DestinationField(dtype="Integer" , required=False ) - self.qualifier_source_value = DestinationField(dtype="Text50" , required=False ) - - if name is None: - name = hex(id(self)) - super().__init__(name,self.name) - - - def get_df(self,**kwargs): - """ - Overload/append the creation of the dataframe, specifically for the procedure_occurrence objects - * procedure_concept_id is required to be not null - this can happen when spawning multiple rows from a person - we just want to keep the ones that have actually been filled - - Returns: - pandas.Dataframe: output dataframe - """ - - df = super().get_df(**kwargs) - - if self.automatically_fill_missing_columns == True: - if df['procedure_date'].isnull().all(): - df['procedure_date'] = self.tools.get_date(df['procedure_datetime']) - - return df diff --git a/carrot/cdm/objects/versions/v5_3_1/specimen.py b/carrot/cdm/objects/versions/v5_3_1/specimen.py deleted file mode 100644 index 783c9b6e..00000000 --- a/carrot/cdm/objects/versions/v5_3_1/specimen.py +++ /dev/null @@ -1,48 +0,0 @@ -import pandas as pd -from ...common import DestinationTable, DestinationField - -class Specimen(DestinationTable): - """ - CDM Specimen object class - """ - - name = 'specimen' - def __init__(self,name=None): - - self.specimen_id = DestinationField(dtype="Integer" , required=False , pk=True) - self.person_id = DestinationField(dtype="Integer" , required=False ) - self.specimen_concept_id = DestinationField(dtype="Integer" , required=False ) - self.specimen_type_concept_id = DestinationField(dtype="Integer" , required=False ) - self.specimen_date = DestinationField(dtype="Date" , required=False ) - self.specimen_datetime = DestinationField(dtype="Timestamp" , required=False ) - self.quantity = DestinationField(dtype="Float" , required=False ) - self.unit_concept_id = DestinationField(dtype="Integer" , required=False ) - self.anatomic_site_concept_id = DestinationField(dtype="Integer" , required=False ) - self.disease_status_concept_id = DestinationField(dtype="Integer" , required=False ) - self.specimen_source_id = DestinationField(dtype="Text50" , required=False ) - self.specimen_source_value = DestinationField(dtype="Text50" , required=False ) - self.unit_source_value = DestinationField(dtype="Text50" , required=False ) - self.anatomic_site_source_value = DestinationField(dtype="Text50" , required=False ) - self.disease_status_source_value = DestinationField(dtype="Text50" , required=False ) - - if name is None: - name = hex(id(self)) - super().__init__(name,self.name) - - def get_df(self,**kwargs): - """ - Overload/append the creation of the dataframe, specifically for the specimen objects - * specimen_concept_id is required to be not null - this can happen when spawning multiple rows from a person - we just want to keep the ones that have actually been filled - - Returns: - pandas.Dataframe: output dataframe - """ - - df = super().get_df(**kwargs) - - if self.automatically_fill_missing_columns == True: - if df['specimen_date'].isnull().all(): - df['specimen_date'] = self.tools.get_date(df['specimen_datetime']) - return df diff --git a/carrot/cdm/objects/versions/v5_3_1/visit_occurrence.py b/carrot/cdm/objects/versions/v5_3_1/visit_occurrence.py deleted file mode 100644 index 5ff7d768..00000000 --- a/carrot/cdm/objects/versions/v5_3_1/visit_occurrence.py +++ /dev/null @@ -1,31 +0,0 @@ -import pandas as pd -from ...common import DestinationTable, DestinationField - -class VisitOccurrence(DestinationTable): - """ - CDM Visit Occurrence object class - """ - - name = 'visit_occurrence' - def __init__(self,name=None): - self.visit_occurrence_id = DestinationField(dtype="Integer" , required=True, pk=True) - self.person_id = DestinationField(dtype="Integer" , required=True) - self.visit_concept_id = DestinationField(dtype="Integer" , required=True) - self.visit_start_date = DestinationField(dtype="Date" , required=True) - self.visit_start_datetime = DestinationField(dtype="Timestamp" , required=False) - self.visit_end_date = DestinationField(dtype="Date" , required=True) - self.visit_end_datetime = DestinationField(dtype="Timestamp" , required=False) - self.visit_type_concept_id = DestinationField(dtype="Integer" , required=True) - self.provider_id = DestinationField(dtype="Integer" , required=False) - self.care_site_id = DestinationField(dtype="Integer" , required=False) - self.visit_source_value = DestinationField(dtype="Text50" , required=False) - self.visit_source_concept_id = DestinationField(dtype="Integer" , required=False) - self.admitting_source_concept_id = DestinationField(dtype="Integer" , required=False) - self.admitting_source_value = DestinationField(dtype="Text50" , required=False) - self.discharge_to_concept_id = DestinationField(dtype="Integer" , required=False) - self.discharge_to_source_value = DestinationField(dtype="Text50" , required=False) - self.preceding_visit_occurrence_id = DestinationField(dtype="Integer" , required=False) - - if name is None: - name = hex(id(self)) - super().__init__(name,self.name) diff --git a/carrot/cdm/operations.py b/carrot/cdm/operations.py deleted file mode 100644 index ef467228..00000000 --- a/carrot/cdm/operations.py +++ /dev/null @@ -1,46 +0,0 @@ -import pandas as pd -import datetime - -class OperationTools: - - get_datetime = lambda self,df : pd.to_datetime(df,errors='coerce').dt.strftime('%Y-%m-%d %H:%M:%S.%f') - get_date = lambda self,df : pd.to_datetime(df,errors='coerce').dt.strftime('%Y-%m-%d') - get_year = lambda self,df : pd.to_datetime(df,errors='coerce').dt.year - get_month = lambda self,df : pd.to_datetime(df,errors='coerce').dt.month - get_day = lambda self,df : pd.to_datetime(df,errors='coerce').dt.day - - def keys(self): - return [ key for key in dir(self) if key.startswith('get') ] - - def get_datetime_from_age(self,df,norm=None): - if norm is None: - #set normalisation to middle of 2020 - norm = datetime.datetime(2020, 7, 1) - - def _get_datetime_from_age(x): - try: - return norm - datetime.timedelta(days=365*int(float(x))) - except Exception as e: - print (e) - return None - - retval = df.fillna(0).apply(lambda x: _get_datetime_from_age(x)) - return self.get_datetime(retval) - - def get_source_field_name_as_value(self,series): - temp = series.copy() - temp.values[:] = series.name - return temp - - def make_scalar(self,series,value): - #if we dont do a copy, the original data gets replaced - temp = series.copy() - temp.values[:] = value - return temp - - def __getitem__(self, item): - try: - retval = getattr(self,item) - except AttributeError as err: - raise UnknownOperation(err) - return retval diff --git a/carrot/cli/cli.py b/carrot/cli/cli.py deleted file mode 100644 index 500103a7..00000000 --- a/carrot/cli/cli.py +++ /dev/null @@ -1,65 +0,0 @@ -from .subcommands.info import info -from .subcommands.etl import etl -from .subcommands.display import display -from .subcommands.run import run -from .subcommands.airflow import airflow -from .subcommands.generate import generate - -from .subcommands.get import get -from .subcommands.search import search -from .subcommands.pseudonymise import pseudonymise - -from carrot.tools.logger import _Logger as Logger -import carrot as c - -import click -import json - - -@click.group(invoke_without_command=True) -@click.option("--version","-v",is_flag=True) -@click.option("--log-level","-l", - type=click.Choice(['0','1','2','3']), - default='2', - help="change the level for log messaging. 0 - ERROR, 1 - WARNING, 2 - INFO (default), 3 - DEBUG ") -@click.option("-cp", "--cprofile", is_flag=True, help='use cProfile to profile the tool') -@click.pass_context -def carrot(ctx,version,log_level,cprofile): - if ctx.invoked_subcommand == None : - if version: - click.echo(c.__version__) - else: - click.echo(ctx.get_help()) - return - - - c.params['debug_level'] = int(log_level) - log = Logger("carrot") - if cprofile: - import cProfile - log.info("Profiling...") - pr = cProfile.Profile() - pr.enable() - - def callback(): - pr.disable() - log.info("Profiling completed") - pr.dump_stats('carrot.prof') - - ctx.call_on_close(callback) - - -carrot.add_command(etl, "etl") -carrot.add_command(run, "run") -carrot.add_command(info, "info") -carrot.add_command(display, "display") -carrot.add_command(generate, "generate") -carrot.add_command(get, "get") -carrot.add_command(search, "search") -carrot.add_command(pseudonymise, "pseudonymise") -carrot.add_command(airflow,'airflow') - - - -if __name__ == "__main__": - carrot() diff --git a/carrot/cli/subcommands/__init__.py b/carrot/cli/subcommands/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/carrot/cli/subcommands/airflow.py b/carrot/cli/subcommands/airflow.py deleted file mode 100644 index 4d5fc739..00000000 --- a/carrot/cli/subcommands/airflow.py +++ /dev/null @@ -1,25 +0,0 @@ -import click - -@click.group(help='Command group for configuring runs with airflow') -def airflow(): - pass - -@click.command(help='Create dags for usage with airflow') -def make_dags(): - import carrot.workflows.airflow as airflow_helpers - reports = airflow_helpers.get_reports() - for report_id,report_name in reports.items(): - click.echo(f"creating {report_id} {report_name}") - airflow_helpers.create_template(report_name,report_id) - -@click.command(help='Create dags for usage with airflow') -def trigger_dags(): - import carrot.workflows.airflow as airflow_helpers - airflow_helpers.trigger_etl_dags() - - -airflow.add_command(make_dags,'make_dags') -airflow.add_command(trigger_dags,'trigger_dags') - - - diff --git a/carrot/cli/subcommands/display.py b/carrot/cli/subcommands/display.py deleted file mode 100644 index f0e2f292..00000000 --- a/carrot/cli/subcommands/display.py +++ /dev/null @@ -1,237 +0,0 @@ -import os -import click -import pandas -import json -import carrot.tools as tools -import carrot -import pandas as pd -import numpy as np -import datetime - -@click.group(help='Commands for displaying various types of data and files.') -def display(): - pass - -@click.group(help='Commands for displaying various help for the CDM') -def cdm(): - pass - - -@click.command(help="Display a table for the CDM") -@click.argument('names',required=True,nargs=-1) -@click.option('--markdown',is_flag=True) -@click.option('--latex',is_flag=True) -def table(names,markdown,latex): - for name in names: - obj = carrot.cdm.get_cdm_class(name)() - data = [] - for field in obj.fields: - pk = obj[field].pk - if pk == True: - pk = '✔' - else: - pk = ' ' - - data.append([field,pk,obj[field].dtype]) - - df = pd.DataFrame(data, columns=['name','pk','dtype'])#.set_index('name') - df['table'] = name - df.set_index('table',inplace=True) - df.set_index('name',inplace=True) - - if markdown: - df = df.to_markdown() - elif latex: - df = df.to_latex() - - print (df) - -@click.command(help="Display a dataframe") -@click.argument('fname') -@click.option('--drop-col',multiple=True) -@click.option('--drop-na',is_flag=True) -@click.option('--markdown',is_flag=True) -@click.option('--latex',is_flag=True) -@click.option('--head',type=int,default=None) -@click.option('--sample',type=int,default=None) -@click.option('--separator','--sep',type=str,default=None) -def dataframe(fname,drop_na,drop_col,markdown,head,sample,separator,latex): - - #if separator not specified, get it from the file extension - if separator == None: - separator = tools.get_separator_from_filename(fname) - - - if sample and head: - head = None - df = pandas.read_csv(fname,nrows=head,sep=separator) - if sample: - df = df.sample(sample) - df.set_index(df.columns[0],inplace=True) - if drop_na: - df = df.dropna(axis=1,how='all') - - drop_col = list(drop_col) - df = df.drop(drop_col,axis=1) - - if markdown: - df = df.to_markdown() - elif latex: - df = df.to_latex() - - print (df) - -@click.command(help="plot from a csv file") -@click.argument('fnames',nargs=-1) -@click.option('-y',required=True,multiple=True) -@click.option('-x',required=True) -@click.option('--nbins',default=None,help='bin and take the average',type=int) -@click.option('--save-plot',default=None,help='choose the name of file to save the plot to') -def plot(fnames,x,y,save_plot,nbins): - import matplotlib.pyplot as plt - fig,ax = plt.subplots(len(y),figsize=(14,7)) - - dfs = { - fname:pandas.read_csv(fname) - for fname in fnames - } - - for i,_y in enumerate(y): - ax[i].set_ylabel(_y) - for fname in fnames: - if not nbins: - dfs[fname].plot(x=x,y=_y,ax=ax[i],label=fname) - else: - dx = dfs[fname][x] - dy = dfs[fname][_y] - sums, edges = np.histogram(dx, bins=nbins, weights=dy) - print (sums) - counts, _ = np.histogram(dx, bins=nbins) - counts = sums / counts - ax[i].hist(edges[1:],weights=counts,histtype='step') - pass - plt.show() - if save_plot: - fig.savefig(save_plot) - - -@click.command(help="Display the OMOP mapping json as a DAG") -@click.option('--orientation',default='RL',type=click.Choice(['RL','LR','TB','BT'])) -@click.option('--show-concepts',is_flag=True,help="also show the concepts") -@click.option('--output-file',default='dag.gv',help="output file name") -@click.option('--format',default='pdf',help="file extension") -@click.argument("rules") -def dag(rules,orientation,show_concepts,output_file,format): - data = tools.load_json(rules) - if 'cdm' in data: - data = data['cdm'] - tools.make_dag(data,output_file=output_file,format=format,orientation=orientation,render=True,show_concepts=show_concepts) - -@click.command(help="Display the report json as a DAG") -@click.option('--orientation',default='RL',type=click.Choice(['RL','LR','TB','BT'])) -@click.argument("f") -def report_dag(f,orientation): - data = tools.load_json(f) - tools.make_report_dag(data,orientation=orientation,render=True) - - -@click.command(help="Show the OMOP mapping json") -@click.argument("rules") -@click.option('--list-tables',is_flag=True) -@click.option('--list-fields',is_flag=True) -@click.option('operations','--add-operation',default=None,type=str) -def print_json(rules,list_fields,list_tables,operations): - data = tools.load_json(rules) - if list_fields or list_tables: - data = tools.get_mapped_fields_from_rules(data) - if list_tables: - data = list(data.keys()) - - if operations: - operations = tools.load_json(operations) - for field_name,operation in operations.items(): - print (field_name,operation) - - print (json.dumps(data,indent=6)) - - -@click.command(help="Detect differences in either inputs or output csv files") -@click.option('--separator','--sep',type=str,default=None) -@click.option('--max-rows','-n',type=int,default=None) -@click.argument("file1") -@click.argument("file2") -def diff(file1,file2,separator,max_rows): - tools.diff_csv(file1,file2,separator=separator,nrows=max_rows) - -@click.command(help="display a delta of two rules files") -@click.argument("rules",nargs=2) -def delta(rules): - r1,r2 = rules - delta = carrot.tools.load_json_delta(r2,r1) - dt = str(datetime.datetime.now()) - delta['metadata']['date_created'] = dt - click.echo(json.dumps(delta,indent=6)) - -@click.command(help="flattern a rules json file") -@click.argument("rules") -def flatten(rules): - data = tools.load_json(rules) - objects = data['cdm'] - for destination_table,rule_set in objects.items(): - if len(rule_set) < 2: continue - #print (rule_set) - df = pd.DataFrame.from_records(rule_set).T - - #for name in df.index: - # print (name,len(df.loc[name])) - - df = df.loc['condition_concept_id'].apply(pd.Series) - - - def merge(s): - if s == 'term_mapping': - print ('hiya') - return {k:v for a in s for k,v in a.items()} - - print (df.groupby('source_field').agg(merge)) - - #print (df.iloc[1]) - #print (df.iloc[1][1]) - #print (df) - #print (df.iloc[0]) - #print (df.iloc[0].name) - #print (df.iloc[0].apply(pd.Series)) - #print (df.iloc[1].apply(pd.Series)['term_mapping'].apply(pd.Series)) - - exit(0) - - -cdm.add_command(table,"table") -display.add_command(cdm,"cdm") - -display.add_command(dataframe,"dataframe") -display.add_command(plot,"plot") -display.add_command(diff,"diff") - -@click.group(help='Commands for displaying json rules in various ways.') -def rules(): - pass - - -rules.add_command(delta,"delta") -rules.add_command(dag,"dag") -rules.add_command(print_json,"json") -rules.add_command(flatten,"flatten") -display.add_command(rules,"rules") - - -@click.group(help='Commands for displaying json report in various ways.') -def report(): - pass - - -report.add_command(print_json,"json") -report.add_command(report_dag,"dag") - - -display.add_command(report,"report") diff --git a/carrot/cli/subcommands/etl.py b/carrot/cli/subcommands/etl.py deleted file mode 100644 index a744b691..00000000 --- a/carrot/cli/subcommands/etl.py +++ /dev/null @@ -1,1221 +0,0 @@ -import click -import inquirer -import signal -import hashlib -import os -import glob -import subprocess -try: - import daemon - from daemon.pidfile import TimeoutPIDLockFile -except ImportError: - #this package is not supported in Windows - #latest version gives an import error of package pwd - #https://stackoverflow.com/questions/39366261/python27win-import-daemon-but-there-is-an-error-no-module-named-pwd - daemon = None - -import lockfile -import shutil -import io -import time -import datetime -import yaml -import json -import copy -import pandas as pd - -import carrot -from carrot.tools.bclink_helpers import BCLinkHelpers -from carrot.tools.logger import _Logger as Logger - -from .run import map as cc_map -from .pseudonymise import pseudonymise - -class PlatformNotSupported(Exception): - pass - -class UserNotSupported(Exception): - pass - -class DuplicateDataDetected(Exception): - pass - -class UnknownConfigurationSetting(Exception): - pass - -class BadConfigurationFile(Exception): - pass - -class MissingRulesFile(Exception): - pass - -class BadRulesFile(Exception): - pass - -def _load_config(config_file): - stream = open(config_file) - config = yaml.safe_load(stream) - return config - -def _check_conf(config): - if 'transform' not in config: - raise BadConfigurationFile("You must specify a transform: block in your configration file") - - if 'data' not in config['transform']: - raise BadConfigurationFile("You must specify a transform: data: block in your configration file") - # raise MissingRulesFile(f"you must specify a json rules file in your '{config_file}'" - # f" via 'rules:'") - - # try: - # rules = carrot.tools.load_json(config['transform']['rules']) - # destination_tables = list(rules['cdm'].keys()) - # except Exception as e: - # raise BadRulesFile(e) - - #data = config['transform']['data'] - - -def _outputs_exist(output,tables): - return os.path.exists(output) - -def _run_extract(config): - output_folder = config['output'] - input_folder = config['input'] - files = carrot.tools.get_files(input_folder,type='csv') - for f in files: - bash_command = config['bash'].format(input=f,output=output_folder) - for command in bash_command.splitlines(): - commands = command.split() - if len(commands) == 0 : - continue - process = subprocess.Popen(command.split(), stdout=subprocess.PIPE) - output, error = process.communicate() - click.echo(output.decode("utf-8")) - - return output_folder - - -def _find_data(d): - data = copy.deepcopy(d) - root_input_folder = data.pop('input') - root_output_folder = data.pop('output') - additional = {} - if isinstance(root_input_folder,dict): - #there is some additional configuration to run here - temp = root_input_folder.pop('input') - additional = root_input_folder - root_input_folder = temp - subfolders = carrot.tools.get_subfolders(root_input_folder) - data = [ - {**data,**{'input':f,'output':root_output_folder,'additional':additional}} - for k,f in subfolders.items() - ] - return data - -def _make_id(d): - return hashlib.sha256(str(d).encode("utf-8")).hexdigest() - -def _load_transform_data(data,processed_data={}): - - if isinstance(data,dict): - data = _find_data(data) - - #extract the rules from the data - data = {_make_id(d['input']):d for d in copy.deepcopy(data) } - - for _id,_data in data.items(): - processed_rules = processed_data[_id]['rules'] if _id in processed_data else None - _data['rules'] = carrot.tools.load_json_delta(_data['rules'],processed_rules) - - return data - -def _run_data(data,clean,ctx): - logger = Logger("_run_data") - _data = copy.deepcopy(data) - rules = _data.pop('rules') - if rules is None: - logger.warning('no rules to run') - return - - destination_tables = list(rules['cdm'].keys()) - - - input_folder = _data.pop('input') - - extract_config = _data.pop('additional',None) - if extract_config: - input_folder = _run_extract(extract_config) - elif isinstance(input_folder,dict): - input_folder = _run_extract(input_folder) - - inputs = carrot.tools.get_files(input_folder,type='csv') - output = _data.pop('output') - - kwargs = { - 'split_outputs':True, - 'allow_missing_data':True, - 'write_mode':'a' - } - #assume the remained are kwargs for the transform - kwargs.update(_data) - - - output_database = None - output_folder = None - if isinstance(output,dict): - output_database = output - if clean: - ctx.invoke(clean_tables) - else: - ## get output folder - output_folder = output - if _outputs_exist(output_folder,destination_tables): - logger.warning(f'{output_folder} exists!') - if clean and os.path.exists(output_folder) and os.path.isdir(output_folder): - logger.warning(f"removing {output_folder}") - shutil.rmtree(output_folder) - - #invoke mapping - try: - ctx.invoke(cc_map, - rules=rules, - inputs=inputs, - output_folder=output_folder, - output_database=output_database, - **kwargs - ) - except carrot.cdm.model.PersonExists as e: - logger.error(e) - logger.error(f"failed to map {inputs} because there were people") - logger.error(f" already processed and present in existing data. Check the person_id map/lookup!") - return True - - - -def _run_etl(ctx,config_file): - logger = Logger("run_etl") - last_modified_config = os.path.getmtime(config_file) - logger.info(f"running etl on {config_file} (last modified: {last_modified_config})") - - conf = _load_config(config_file) - _check_conf(conf) - data = _load_transform_data(conf['transform']['data']) - - ctx.obj = {'conf':conf,'data':data} - if not ctx.invoked_subcommand == None : - return - - settings = conf.get('settings',{}) - listen_for_changes = settings.get('listen_for_changes',False) - clean = settings.get('clean',False) - - #run the data - _ = [_run_data(d,clean if i==0 else False,ctx) for i,d in enumerate(data.values())] - - display_msg = True - while True: - #if a change has been detected in the config_file - #load it up again - if last_modified_config != os.path.getmtime(config_file): - conf = _load_config(config_file) - _check_conf(conf) - last_modified_config = os.path.getmtime(config_file) - - #reload to detect if there's something different going on - new_data = _load_transform_data(conf['transform']['data'],data) - #work out what needs to be re-processed - data_to_process = { - k:v - for k,v in new_data.items() - if not (k in data and v==data[k]) - } - - display_msg = True if data_to_process else display_msg - #run the data - _ = [_run_data(d,False,ctx) for d in data_to_process.values()] - - #update the data to - data = _load_transform_data(conf['transform']['data']) - - if not listen_for_changes: - break - - if display_msg: - logger.info(f"Finished!... Listening for changes every 5 seconds to data in {config_file}") - display_msg = False - - time.sleep(5) - - - - -@click.group(help='Command group for running the full ETL of a dataset',invoke_without_command=True) -@click.option('config_file','--config','--config-file',help='specify a yaml configuration file') -@click.option('run_as_daemon','--daemon','-d',help='run the ETL as a daemon process',is_flag=True) -@click.option('--log-file','-l',default='carrot.log',help='specify the log file to write to') -@click.pass_context -def etl(ctx,config_file,run_as_daemon,log_file): - logger = Logger("etl") - - if run_as_daemon and daemon is None: - raise ImportError(f"You are trying to run in daemon mode, " - "but the package 'daemon' hasn't been installed. " - "pip install python-daemon. \n" - "If you are running on a Windows machine, this package is not supported") - - if run_as_daemon and daemon is not None: - stderr = log_file - stdout = f'{stderr}.out' - - logger.info(f"running as a daemon process, logging to {stderr}") - pidfile = TimeoutPIDLockFile('etl.pid', -1) - logger.info(f"process_id in {pidfile}") - - with open(stdout, 'w+') as stdout_handle, open(stderr, 'w+') as stderr_handle: - d_ctx = daemon.DaemonContext( - working_directory=os.getcwd(), - stdout=stdout_handle, - stderr=stderr_handle, - pidfile=TimeoutPIDLockFile('etl.pid', -1) - ) - with d_ctx: - _run_etl(ctx,config_file) - else: - _run_etl(ctx,config_file) - - - - - -@click.group(help='Command group for ETL integration with bclink') -@click.option('--force','-f',help='Force running of this, useful for development purposes',is_flag=True) -@click.option('--interactive','-i',help='run with interactive options - i.e. so user can confirm operations',is_flag=True) -@click.option('config_file','--config','--config-file',help='specify a yaml configuration file',required=True) -@click.pass_context -def bclink(ctx,force,config_file,interactive): - user = os.environ.get("USER") - - if not force: - #check the platform (i.e. should be centos) - if os.name == 'nt': - raise PlatformNotSupported(f"Not suported to run this on Windows") - #check the username - #for bclink, we need to run as bcos_srv to get access to all the datasettool2 etc. tools - #and be able to connect with the postgres server without the need for a password - if user != 'bcos_srv': - raise UserNotSupported(f"{user} not supported! You must run this as user 'bcos_srv'") - - config = _load_config(config_file) - - m_steps = ['clean','extract','transform','load'] - #put in protection for missing keys - if 'rules' not in config: - raise MissingRulesFile(f"you must specify a json rules file in your '{config_file}'" - f" via 'rules:'") - - try: - rules = carrot.tools.load_json(config['rules']) - destination_tables = list(rules['cdm'].keys()) - except Exception as e: - raise BadRulesFile(e) - - bclink_settings = {} - if 'bclink' in config: - bclink_settings = config.pop('bclink') - elif user != 'bcos_srv': - bclink_settings['dry_run'] = True - m_steps.remove('clean') - m_steps.remove('extract') - - if 'tables' not in bclink_settings: - bclink_settings['tables'] = {x:x for x in destination_tables} - - if 'global_ids' not in bclink_settings: - #change default behaviour to non-table - bclink_settings['global_ids'] = None#'global_ids' - - bclink_settings['tables'] = _get_table_map(bclink_settings['tables'],destination_tables) - bclink_helpers = BCLinkHelpers(**bclink_settings) - if ctx.obj is None: - ctx.obj = dict() - ctx.obj['bclink_helpers'] = bclink_helpers - ctx.obj['rules'] = rules - ctx.obj['data'] = config['data'] - - log = 'carrot.log' - if 'log' in config.keys(): - log = config['log'] - ctx.obj['log'] = log - ctx.obj['conf'] = config_file - - clean = False - if 'clean' in config.keys(): - clean = config['clean'] - ctx.obj['clean'] = clean - - ctx.obj['interactive'] = interactive - - if 'pseudonymise' in config: - ctx.obj['pseudonymise'] = config['pseudonymise'] - - #define the default steps to execute - ctx.obj['steps'] = m_steps - - unknown_keys = list( set(config.keys()) - set(ctx.obj.keys()) ) - if len(unknown_keys) > 0 : - raise UnknownConfigurationSetting(f'"{unknown_keys}" are not valid settings in the yaml file') - - if ctx.invoked_subcommand == None: - ctx.invoke(execute) - - -def _process_data(ctx): - data = ctx.obj['data'] - if isinstance(data,list): - _process_list_data(ctx) - else: - _process_dict_data(ctx) - -def _process_list_data(ctx): - logger = Logger("_process_list_data") - logger.info("ETL process has begun") - - interactive = ctx.obj['interactive'] - data = [] - clean = ctx.obj['clean'] - rules = ctx.obj['rules'] - bclink_helpers = ctx.obj['bclink_helpers'] - config_file = ctx.obj['conf'] - conf = _load_config(config_file) - rules_file = conf['rules'] - rules_file_last_modified = os.path.getmtime(rules_file) - - bclink_helpers.print_summary() - display_msg = True - _clean = clean - - while True: - - re_execute = False - try: - conf = _load_config(config_file) - except Exception as e: - if not display_msg: - logger.critical(e) - logger.error(f"You've misconfigured your file '{config_file}'!! Please fix!") - time.sleep(5) - display_msg = True - continue - - current_rules_file = conf['rules'] - new_rules_file = rules_file != current_rules_file - - if new_rules_file: - #if there's a new rules file - logger.info(f"Detected a new rules file.. old was '{rules_file}' and new is '{current_rules_file}'") - rules_file = current_rules_file - rules = carrot.tools.load_json_delta(rules_file,rules) - rules_file_last_modified = os.path.getmtime(rules_file) - re_execute = True - else: - #otherwise check for changes in the existing file - new_rules_file_last_modified = os.path.getmtime(current_rules_file) - change_in_rules = rules_file_last_modified != new_rules_file_last_modified - if change_in_rules: - logger.info(f"Detected a change/update in the rules file '{rules_file}'") - rules = carrot.tools.load_json_delta(current_rules_file,rules) - re_execute = True - - current_data = conf['data'] - print (data) - print (current_data) - exit(0) - if not data == current_data: - logger.debug(f"old {data}") - logger.debug(f"new {current_data}") - new_data = [obj for obj in current_data if obj not in data] - logger.info(f"New data found! {new_data}") - re_execute = True - else: - new_data = data - - logger.debug(f"re-execute {re_execute}") - print (re_execute) - exit(0) - if re_execute: - current_data = copy.deepcopy(new_data) - #loop over any new data - for item in new_data: - if isinstance(item['input'],list): - inputs = item['input'] - else: - input_folder = item['input'] - if not os.path.isdir(input_folder): - raise Exception(f"{input_folder} is not a directory containing files!") - inputs = carrot.tools.get_files(input_folder,type='csv') - filtered_rules = carrot.tools.remove_missing_sources_from_rules(rules,inputs) - - _execute(ctx, - data=item, - rules=filtered_rules, - clean=_clean - ) - _clean = False - - data += [x for x in current_data if x not in data] - display_msg=True - - - if new_rules_file or change_in_rules: - #if there's a new rules file or rules delta, - #need to pick up the full rules for the next loop - #incase we insert new data - # --> we dont want to just apply the delta to the new data - rules = carrot.tools.load_json(current_rules_file) - - if ctx.obj['listen_for_changes'] == False: - break - - if display_msg: - logger.info(f"Finished!... Listening for changes to data in {config_file}") - if display_msg: - display_msg = False - - time.sleep(5) - - -def _process_dict_data(ctx): - logger = Logger("_process_dict_data") - logger.info("ETL process has begun") - - interactive = ctx.obj['interactive'] - data = ctx.obj['data'] - clean = ctx.obj['clean'] - rules = ctx.obj['rules'] - bclink_helpers = ctx.obj['bclink_helpers'] - - bclink_helpers.print_summary() - - #calculate the amount of time to wait before checking for changes - tdelta = None - if 'watch' in data: - watch = data['watch'] - tdelta = datetime.timedelta(**watch) - - #get the input folder to watch - input_folder = data['input'] - #get the root output folder - output_folder = data['output'] - - - i = 0 - while True: - #find subfolders containing data dumps - subfolders = carrot.tools.get_subfolders(input_folder) - # if len(subfolders)>0: - # logger.info(f"Found {len(subfolders)} subfolders at path '{input_folder}'") - # if interactive and len(subfolders)>0: - # questions = [ - # inquirer.Checkbox('folders', - # message="Confirm processing the following subfolders.. ", - # choices=subfolders, - # default=subfolders - # ) - # ] - # answers = inquirer.prompt(questions) - # if answers == None: - # os.kill(os.getpid(), signal.SIGINT) - - # subfolders = {k:v for k,v in subfolders.items() if k in answers['folders']} - # logger.info(f"selected {subfolders}") - - logger.debug(f"Found and checking {len(subfolders.values())} subfolders") - logger.debug(list(subfolders.values())) - - if len(subfolders.values())> 0: - logger.debug(f"{list(subfolders.values())}") - - njobs=0 - #print (reversed(sorted(subfolders.items(),key=lambda x: os.path.getmtime(x[1])))) - for name,path in sorted(subfolders.items(),key=lambda x: os.path.getmtime(x[1])): - output_folder_exists = os.path.exists(f"{output_folder}/{name}") - - inputs = carrot.tools.get_files(path,type='csv') - filtered_rules = carrot.tools.remove_missing_sources_from_rules(rules,inputs) - - if output_folder_exists: - output_tables = [ - os.path.splitext(os.path.basename(x))[0] - for x in carrot.tools.get_files(f"{output_folder}/{name}",type='tsv') - ] - - expected_outputs = list(filtered_rules['cdm'].keys()) - to_process = list(set(expected_outputs) - set(output_tables)) - - if len(to_process) == 0: - continue - - filtered_rules = carrot.tools.filter_rules_by_destination_tables(filtered_rules,to_process) - - - logger.debug(f"New data found!") - logger.info(f"Creating a new task for processing {path}") - - - if len(inputs) == 0: - logger.critical(f"Subfolder contains no .csv files!") - continue - - tables = list(filtered_rules['cdm'].keys()) - logger.debug(f'inputs: {inputs}') - logger.info(f'cdm tables: {tables}') - - - _data = copy.deepcopy(data) - _data['input'] = inputs - _data['output'] = f"{output_folder}/{name}" - - - _execute(ctx, - data=_data, - rules=filtered_rules, - clean=clean if (i==0 and njobs==0) else False - ) - njobs+=1 - - if tdelta is None: - break - - if njobs>0 or i==0: - logger.info(f"Refreshing {input_folder} every {tdelta} to look for new subfolders....") - if len(subfolders.values()) == 0: - logger.warning("No subfolders for data dumps yet found...") - - i+=1 - time.sleep(tdelta.total_seconds()) - -@click.command(help='print all tables in the bclink tables defined in the config file') -@click.option('--drop-na',is_flag=True) -@click.option('--markdown',is_flag=True) -@click.option('--head',type=int,default=None) -@click.argument("tables",nargs=-1) -@click.pass_obj -def print_tables(ctx,drop_na,markdown,head,tables): - - bclink_helpers = ctx['bclink_helpers'] - logger = Logger("print_tables") - - tables_to_print = list(tables) - if len(tables_to_print) == 0: - tables_to_print = list(bclink_helpers.table_map.keys()) - - tables = [ - table - for table_name,table in bclink_helpers.table_map.items() - if table_name in tables_to_print - ] - - for table in tables: - df = bclink_helpers.get_table(table) - df.set_index(df.columns[0],inplace=True) - if drop_na: - df = df.dropna(axis=1,how='all') - if markdown: - df = df.to_markdown() - - click.echo(df) - - -@click.command(help='delete some tables') -@click.pass_obj -def delete_tables(ctx): - logger = Logger('delete_tables') - out_folders = [] - bc_settings = None - for item in ctx['data'].values(): - output = item['output'] - if isinstance(output,str): - pass - elif 'bclink' in output: - bc_settings = output['bclink'] - output = output['cache'] - - if os.path.exists(output) and os.path.isdir(output): - out_folders.append(output) - - out_folders = list(set(out_folders)) - all_files = [ - carrot.tools.get_files(f,type='tsv') - for f in out_folders - ] - all_files = [ subitem for item in all_files for subitem in item] - - choices = all_files - questions = [ - inquirer.Checkbox('files', - message=f"Which tables do you want to delete? ... ", - choices=choices, - default=[], - ) - ] - answers = inquirer.prompt(questions) - if answers == None: - os.kill(os.getpid(), signal.SIGINT) - - files_to_delete = answers['files'] - if bc_settings: - helpers = BCLinkHelpers(**bc_settings) - for f in files_to_delete: - helpers.remove_table(f) - - for f in files_to_delete: - logger.warning(f"removing {f}") - os.remove(f) - -@click.command(help='create new bclink tables') -@click.option('--tables',help="specify which tables to remove",default=None) -@click.pass_obj -def create_tables(ctx,tables): - logger = Logger("check-tables") - load = ctx['conf']['load'] - if 'bclink' in load: - settings = load['bclink'] - settings['clean'] = False - settings['check'] = False - if tables: - settings['tables'] = {k:v for k,v in settings['tables'].items() if k in tables} - helpers = BCLinkHelpers(**settings) - helpers.create_tables() - else: - raise NotImplementedError("cannot clean tables for configuration load: {load}") - - -@click.command(help='check tables') -@click.option('--tables',help="specify which tables to remove",default=None) -@click.pass_obj -def check_tables(ctx,tables): - logger = Logger("check-tables") - for item in ctx['data'].values(): - output = item['output'] - logger.info(f"cleaning {output}") - if 'bclink' in output: - settings = output['bclink'] - settings['clean'] = False - if tables: - settings['tables'] = {k:v for k,v in settings['tables'].items() if k in tables} - helpers = BCLinkHelpers(**settings) - else: - raise NotImplementedError(f"cannot call check_tables on output {output}. This is for bclink stuff") - - - -@click.command(help='clean (delete all rows) of a given table name') -@click.argument('table') -@click.pass_context -def clean_table(ctx,table): - ctx.invoke(clean_tables,tables=[table]) - -@click.command(help='clean (delete all rows) in the tables defined in the config file') -@click.option('--tables',help="specify which tables to remove",default=None) -@click.pass_obj -def clean_tables(ctx,tables): - logger = Logger("clean-tables") - load = ctx['conf']['load'] - - if 'bclink' in load: - settings = load['bclink'] - settings['clean'] = True - if tables: - settings['tables'] = {k:v for k,v in settings['tables'].items() if k in tables} - helpers = BCLinkHelpers(**settings) - else: - raise NotImplementedError("cannot clean tables for configuration load: {load}") - - -@click.command(help='delete data that has been inserted into bclink') -@click.pass_obj -def delete_data(ctx): - bclink_helpers = ctx['bclink_helpers'] - logger = Logger("delete_data") - logger.info("deleting data...") - - data = ctx['data'] - input_data = data['input'] - output_data = data['output'] - - - folders = carrot.tools.get_subfolders(output_data) - - options = [ - inquirer.Checkbox('folders', - message="Which data-dump do you want to remove?", - choices=list(folders.values()) - ), - ] - selected_folders = inquirer.prompt(options) - if selected_folders == None: - os.kill(os.getpid(), signal.SIGINT) - selected_folders = selected_folders["folders"] - - for selected_folder in selected_folders: - files = carrot.tools.get_files(selected_folder,type='tsv') - - options = [ - inquirer.Checkbox('files', - message="Confirm the removal of the following tsv files.. ", - choices=files, - default=files - ), - ] - selected_files = inquirer.prompt(options) - if selected_files == None: - os.kill(os.getpid(), signal.SIGINT) - selected_files = selected_files["files"] - - for f in selected_files: - - bclink_helpers.remove_table(f) - - click.echo(f"Deleting {f}") - os.remove(f) - - -@click.command(help='check and drop for duplicates') -@click.pass_obj -def drop_duplicates(ctx): - bclink_helpers = ctx['bclink_helpers'] - logger = Logger("drop_duplicates") - - retval = {} - logger.info("printing to see if tables exist") - for cdm_table,bclink_table in bclink_helpers.table_map.items(): - #dont do this for person table - #a person with the same sex and date of birth isnt a duplicate - if cdm_table == "person": - continue - logger.info(f"Looking for duplicates in {cdm_table} ({bclink_table})") - - #if the table hasnt been created, skip - exists = bclink_helpers.check_table_exists(bclink_table) - if not exists: - continue - #find out what the primary key is - droped_duplicates = bclink_helpers.drop_duplicates(bclink_table) - if len(droped_duplicates)>0: - logger.warning(f"Found and dropped {len(droped_duplicates)} duplicates in {bclink_table}") - -@click.command(help='Run the Extract part of ETL process for CO-CONNECT integrated with BCLink') -@click.pass_context -def extract(ctx): - logger = Logger("Extract") - logger.info("doing extract only") - ctx.obj['steps'] = ['extract'] - ctx.invoke(execute) - -@click.command(help='Run the Transform part of ETL process for CO-CONNECT integrated with BCLink') -@click.pass_context -def transform(ctx): - logger = Logger("Transform") - logger.info("doing transform only") - ctx.obj['steps'] = ['transform'] - ctx.invoke(execute) - -@click.command(help='Run the Load part of ETL process for CO-CONNECT integrated with BCLink') -@click.pass_context -def load(ctx): - logger = Logger("Load") - logger.info("doing load only") - ctx.obj['steps'] = ['load'] - ctx.invoke(execute) - - -@click.command(help='Run the full ETL process for CO-CONNECT integrated with BCLink') -@click.option('run_as_daemon','--daemon','-d',help='run the ETL as a daemon process',is_flag=True) -@click.pass_context -def execute(ctx,run_as_daemon): - logger = Logger("Execute") - - if run_as_daemon and daemon is None: - raise ImportError(f"You are trying to run in daemon mode, " - "but the package 'daemon' hasn't been installed. " - "pip install python-daemon. \n" - "If you are running on a Windows machine, this package is not supported") - - if run_as_daemon and daemon is not None: - stderr = ctx.obj['log'] - stdout = f'{stderr}.out' - - logger.info(f"running as a daemon process, logging to {stderr}") - pidfile = TimeoutPIDLockFile('etl.pid', -1) - logger.info(f"process_id in {pidfile}") - - with open(stdout, 'w+') as stdout_handle, open(stderr, 'w+') as stderr_handle: - d_ctx = daemon.DaemonContext( - working_directory=os.getcwd(), - stdout=stdout_handle, - stderr=stderr_handle, - pidfile=TimeoutPIDLockFile('etl.pid', -1) - ) - with d_ctx: - _process_data(ctx) - else: - _process_data(ctx) - - -def _extract(ctx,data,rules,bclink_helpers): - if not 'extract' in ctx.obj['steps']: - return {'data':data} - - logger = Logger("extract") - logger.info(f"starting extraction processes") - - inputs = data['input'] - if isinstance(inputs,str): - if not os.path.exists(inputs): - raise Exception(f"{inputs} is not an existing path") - if not os.path.isdir(inputs): - raise Exception(f"{inputs} is not a dir!") - inputs = carrot.tools.get_files(inputs) - if len(inputs) == 0: - raise Exception(f"No .csv files found in {inputs}") - - do_pseudonymise=False - _pseudonymise = {} - if 'pseudonymise' in data: - _pseudonymise = data['pseudonymise'] - do_pseudonymise = True - if 'do' in _pseudonymise: - do_pseudonymise = _pseudonymise['do'] - - if do_pseudonymise: - chunksize = 1000 - if 'chunksize' in _pseudonymise: - chunksize = _pseudonymise['chunksize'] - - output = "./pseudonymised_input_data/" - if 'output' in _pseudonymise: - output = _pseudonymise['output'] - - if 'salt' not in _pseudonymise: - raise Exception("To use pseudonymise a salt must be provided!") - salt = _pseudonymise['salt'] - - logger.info(f"Called do_pseudonymisation on input data {data} ") - if not isinstance(rules,dict): - rules = carrot.tools.load_json(rules) - person_id_map = carrot.tools.get_person_ids(rules) - - input_map = {os.path.basename(x):x for x in inputs} - - inputs = [] - for table,person_id in person_id_map.items(): - if table not in input_map: - logger.warning(f"Could not find table {table} in input_map") - logger.warning(input_map) - continue - fin = input_map[table] - - fout = ctx.invoke(pseudonymise, - input=fin, - output_folder=output, - chunksize=chunksize, - salt=salt, - person_id=person_id - ) - inputs.append(fout) - - data.pop('pseudonymise') - data['input'] = inputs - - - _dir = data['output'] - - f_global_ids = f"{_dir}/existing_global_ids.tsv" - f_global_ids = bclink_helpers.get_global_ids(f_global_ids) - if f_global_ids == None: - f_global_ids = f"{_dir}/global_ids.tsv" - if not os.path.exists(f_global_ids): - f_global_ids = None - else: - logger.warning(f"falling back to {f_global_ids} for global_ids") - - indexer = bclink_helpers.get_indicies() - return { - 'indexer':indexer, - 'data':data, - 'existing_global_ids':f_global_ids - } - -def _transform(ctx,rules,inputs,output_folder,indexer,existing_global_ids,**kwargs): - if not 'transform' in ctx.obj['steps']: - return - - logger = Logger("transform") - logger.info("starting data transform processes") - - if isinstance(inputs,str): - inputs = [inputs] - - logger.info(f"inputs: {inputs}") - logger.info(f"output_folder: {output_folder}") - logger.info(f"indexer: {indexer}") - logger.info(f"existing_global_ids: {existing_global_ids}") - - ctx.invoke(cc_map, - rules=rules, - inputs=inputs, - output_folder=output_folder, - indexing_conf=indexer, - person_id_map=existing_global_ids, - **kwargs - ) - -def _load(ctx,output_folder,cdm_tables,global_ids,bclink_helpers): - - if not 'load' in ctx.obj['steps']: - return - - logger = Logger("load") - logger.info("starting loading data processes") - - logger.info("starting loading global ids") - if global_ids: - bclink_helpers.load_global_ids(output_folder) - - logger.info("starting loading cdm tables") - bclink_helpers.load_tables(output_folder,cdm_tables) - - -def _execute(ctx, - rules=None, - data=None, - clean=None, - bclink_helpers=None): - - if data == None: - data = ctx.obj['data'] - if clean == None: - clean = ctx.obj['clean'] - if rules == None: - rules = ctx.obj['rules'] - if bclink_helpers == None: - bclink_helpers = ctx.obj['bclink_helpers'] - - interactive = ctx.obj['interactive'] - steps = ctx.obj['steps'] - - ctx.obj['listen_for_changes'] = all([step in steps for step in ['extract','transform','load']]) - - check_and_drop_duplicates = 'drop_duplicates' in steps - - logger = Logger("execute") - logger.info(f"Executing steps {steps}") - - - if clean and 'clean' in steps: - logger.info(f"cleaning existing bclink tables") - ctx.invoke(clean_tables,data=data) - - - tables = list(rules['cdm'].keys()) - if interactive and ('extract' in steps or 'transform' in steps): - choices = [] - #location = f"{output_folder}/{name}" - for table in tables: - source_tables = [ - f"{data['input']}/{x}" - for x in carrot.tools.get_source_tables_from_rules(rules,table) - ] - choices.append((f"{table} ({source_tables})",table)) - questions = [ - inquirer.Checkbox('tables', - message=f"Confirm executing ETL for ... ", - choices=choices, - default=tables - ) - ] - answers = inquirer.prompt(questions) - if answers == None: - os.kill(os.getpid(), signal.SIGINT) - tables = answers['tables'] - if len(tables) == 0: - logger.info("no tables selected, skipping..") - return - rules = carrot.tools.filter_rules_by_destination_tables(rules,tables) - logger.info(f'cdm tables: {tables}') - - logger.info(f"Executing ETL...") - - #call any extracting of data - #---------------------------------- - extract_data= _extract(ctx, - data, - rules, - bclink_helpers - ) - indexer = extract_data.get('indexer') - existing_global_ids = extract_data.get('existing_global_ids') - data = extract_data.get('data') - - #---------------------------------- - - inputs = data.pop('input') - output_folder = data.pop('output') - transform_kwargs = data - - #call transform - #---------------------------------- - _transform(ctx, - rules, - inputs, - output_folder, - indexer, - existing_global_ids, - **transform_kwargs - ) - #---------------------------------- - #remove this lookup file once done with it - if existing_global_ids and os.path.exists(existing_global_ids): - os.remove(existing_global_ids) - - - if 'load' not in steps: - logger.info("done!") - return - - cdm_tables = carrot.tools.get_files(output_folder,type='tsv') - if interactive: - choices = [] - for x in cdm_tables: - tab = os.path.splitext(os.path.basename(x))[0] - bctab = bclink_helpers.get_bclink_table(tab) - text = f"{x} --> {bctab} ({tab})" - choices.append((text,x)) - options = [ - inquirer.Checkbox('cdm_tables', - message="Choose which CDM tables to load..", - choices=choices, - default=cdm_tables - ), - ] - answers = inquirer.prompt(options) - if answers == None: - os.kill(os.getpid(), signal.SIGINT) - tables_to_load = answers['cdm_tables'] - cdm_tables = tables_to_load - if len(cdm_tables) == 0 : - logger.info("No tables chosen to be loaded..") - return - else: - logger.info("Chosen to load...") - logger.warning(cdm_tables) - - cdm_tables = [ - os.path.splitext(os.path.basename(x))[0] - for x in cdm_tables - ] - - try: - idx_global_ids = cdm_tables.index('global_ids') - global_ids = cdm_tables.pop(idx_global_ids) - except ValueError: - global_ids = None - - #call load - #---------------------------------- - _load(ctx, - output_folder, - cdm_tables, - global_ids, - bclink_helpers - ) - - if check_and_drop_duplicates: - #final check for duplicates - logger.info(f"looking for duplicates and deleting any") - ctx.invoke(drop_duplicates) - - bclink_helpers.print_report() - logger.info("done!") - - -def _get_table_map(table_map,destination_tables): - #if it's not a dict, and is a file, load the json - if not isinstance(table_map,dict): - table_map = carrot.tools.load_json(table_map) - - # loop over all tables from the rules json - for table_name in destination_tables: - #if the dest table is not in the mapping, fail - if table_name not in table_map.keys(): - raise Exception(f"You must give the name of the bclink table for {table_name}") - - #drop any tables that are not mapped (not in the destination_tables) - table_map = {k:v for k,v in table_map.items() if k in destination_tables} - return table_map - -@click.command(help='[for developers] Run the CO-CONNECT ETL manually ') -@click.option('--rules','-r',help='location of the json rules file',required=True) -@click.option('--output-folder','-o',help='location of the output results folder',required=True) -@click.option('--clean',help='clean all the BCLink tables first by removing all existing rows',is_flag=True) -@click.option('--table-map','-t',help='a look up json file that maps between the CDM table and the table name in BCLink',default={}) -@click.option('--gui-user',help='name of the bclink gui user',default='data') -@click.option('--user',help='name of the bclink user',default='bclink') -@click.option('--database',help='name of the bclink database',default='bclink') -@click.option('--dry-run',help='peform a dry-run of the bclink uplod',is_flag=True) -@click.argument('inputs',required=True,nargs=-1) -@click.pass_context -def manual(ctx,rules,inputs,output_folder,clean,table_map,gui_user,user,database,dry_run): - - _rules = carrot.tools.load_json(rules) - destination_tables = list(_rules['cdm'].keys()) - - data = { - 'input':list(inputs), - 'output':output_folder - } - - table_map = _get_table_map(table_map,destination_tables) - bclink_settings = { - 'user':user, - 'gui_user': gui_user, - 'database':database, - 'dry_run':dry_run, - 'tables':table_map, - } - - logger = Logger("Manual") - logger.info(f'Rules: {rules}') - logger.info(f'Inputs: {data["input"]}') - logger.info(f'Output: {data["output"]}') - logger.info(f'Clean Tables: {clean}') - logger.info(f'Processing {destination_tables}') - logger.info(f'BCLink settings:') - logger.info(json.dumps(bclink_settings,indent=6)) - - bclink_helpers = BCLinkHelpers(**bclink_settings) - - _execute(ctx,rules,data,clean,bclink_helpers) - - - -#bclink.add_command(print_tables,'print_tables') -#bclink.add_command(clean_tables,'clean_tables') -#bclink.add_command(delete_data,'delete_data') -#bclink.add_command(drop_duplicates,'drop_duplicates') -#bclink.add_command(check_tables,'check_tables') -#bclink.add_command(create_tables,'create_tables') -#bclink.add_command(execute,'execute') -#bclink.add_command(extract,'extract') -#bclink.add_command(transform,'transform') -#bclink.add_command(load,'load') -#etl.add_command(manual,'bclink-manual') -#etl.add_command(bclink,'bclink') -etl.add_command(create_tables,'create-tables') -etl.add_command(check_tables,'check-tables') -etl.add_command(clean_table,'clean-table') -etl.add_command(clean_tables,'clean-tables') -etl.add_command(delete_tables,'delete-tables') - - - diff --git a/carrot/cli/subcommands/generate.py b/carrot/cli/subcommands/generate.py deleted file mode 100644 index 3b510100..00000000 --- a/carrot/cli/subcommands/generate.py +++ /dev/null @@ -1,606 +0,0 @@ -import os -import click -import json -import yaml -import carrot -import pandas as pd -import numpy as np -import requests -import secrets -import random -import datetime -import time - -class MissingToken(Exception): - pass - - -@click.group(help='Commands to generate helpful files.') -def generate(): - pass - -@click.group(help='Commands to generate synthetic data.') -def synthetic(): - pass - -@click.command(help="generate synthetic data from a ScanReport ID from CCOM") -@click.option("-i","--report-id",help="ScanReport ID on the website",required=True,type=int) -@click.option("-n","--number-of-events",help="number of rows to generate",required=True,type=int) -@click.option("-o","--output-directory",help="folder to save the synthetic data to",required=True,type=str) -@click.option("--fill-column-with-values",help="select columns to fill values for",multiple=True,type=str) -@click.option("-t","--token",help="specify the carrot_token for accessing the CCOM website",type=str,default=None) -@click.option("--get-json",help="also download the json",is_flag=True) -@click.option("-u","--url",help="url endpoint for the CCOM website to ping", - type=str, - default="https://ccom.azurewebsites.net") -def ccom(report_id,number_of_events,output_directory, - fill_column_with_values,token,get_json, - url): - - fill_column_with_values = list(fill_column_with_values) - - token = os.environ.get("CARROT_MAPPER_TOKEN") or token - if token == None: - raise MissingToken("you must use the option --token or set the environment variable carrot_TOKEN to be able to use this functionality. I.e export carrot_TOKEN=12345678 ") - - headers = { - "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36", - "Content-type": "application/json", - "charset": "utf-8", - "Authorization": f"Token {token}" - } - - if get_json: - response = requests.get( - f"{url}/api/json/?id={report_id}", - headers=headers - ) - print (json.dumps(response.json()[0],indent=6)) - fname = response.json()[0]['metadata']['dataset'] - with open(f'{fname}.json', 'w') as outfile: - print ('saving',fname) - json.dump(response.json()[0],outfile,indent=6) - - response = requests.get( - f"{url}/api/scanreporttables/?scan_report={report_id}", - headers=headers - ) - if response.status_code != 200: - print ('failed to get a response') - print (response.json()) - exit(0) - else: - print (json.dumps(response.json(),indent=6)) - - for table in response.json(): - name = table['name'] - _id = table['id'] - - #get which is the person_id and automatically fill this with incrementing values - #so they are not all NaN in the synthetic data (because of List Truncated...) - person_id = table['person_id'] - if person_id == None: - continue - - _url = f"{url}/api/scanreportfields/?id={person_id}&fields=name" - person_id = requests.get( - _url, headers=headers, - allow_redirects=True, - ).json()[0]['name'].lstrip('\ufeff') - - - _url = f"{url}/api/scanreportvaluesfilterscanreporttable/?scan_report_table={_id}&fields=value,frequency,scan_report_field" - response = requests.get( - _url, headers=headers, - allow_redirects=True, - ) - - - - df = pd.DataFrame.from_records(response.json()).set_index('scan_report_field') - _url = f"{url}/api/scanreportfields/?scan_report_table={_id}&fields=id,name" - response = requests.get( - _url, headers=headers, - allow_redirects=True, - ) - - - print (response.content) - res = json.loads(response.content.decode('utf-8')) - print (res) - id_to_col_name = { - field['id']:field['name'].lstrip('\ufeff') - for field in res - } - - df.index = df.index.map(id_to_col_name) - - - df_synthetic = {} - - for col_name in df.index.unique(): - if col_name == '': continue - - _df = df.loc[[col_name]] - _df['value'].replace('',np.nan,inplace=True) - - _df = _df.dropna() - - - if len(_df) > number_of_events: - _df = _df.sample(frac=1)[:number_of_events] - - - frequency = _df['frequency'] - total = frequency.sum() - - - if total > 0 : - frequency = number_of_events*frequency / total - frequency = frequency.astype(int) - else: - frequency = number_of_events - - values = _df['value'].repeat(frequency)\ - .sample(frac=1)\ - .reset_index(drop=True) - - values.name = col_name - df_synthetic[col_name] = values - - df_synthetic = pd.concat(df_synthetic.values(),axis=1) - - - for col_name in fill_column_with_values: - if col_name in df_synthetic.columns: - df_synthetic[col_name] = df_synthetic[col_name].reset_index()['index'] - - - if not os.path.isdir(output_directory): - os.makedirs(output_directory) - fname = f"{output_directory}/{name}" - - df_synthetic.index = 'pk'+df_synthetic.index.astype(str) - df_synthetic.rename_axis(person_id,inplace=True) - #df_synthetic.set_index(df_synthetic.columns[0],inplace=True) - print (df_synthetic) - df_synthetic.to_csv(fname) - print (f"created {fname} with {number_of_events} events") - - -@click.command(help="generate synthetic data from a ScanReport xlsx file") -@click.argument("report") -@click.option("-n","--number-of-events",help="number of rows to generate",required=True,type=int) -@click.option("-o","--output-directory",help="folder to save the synthetic data to",required=True,type=str) -@click.option("--fill-column-with-values",help="select columns to fill values for",multiple=True,type=str) -def xlsx(report,number_of_events,output_directory,fill_column_with_values): - dfs = pd.read_excel(report,sheet_name=None) - sheets_to_process = list(dfs.keys())[2:-1] - - for name in sheets_to_process: - df = dfs[name] - columns_to_make = [ - x - for x in df.columns - if 'Frequency' not in x and 'Unnamed' not in x - ] - - df_synthetic = {} - for col_name in columns_to_make: - i_col = df.columns.get_loc(col_name) - df_stats = df.iloc[:,[i_col,i_col+1]].dropna() - - if not df_stats.empty: - frequency = df_stats.iloc[:,1] - frequency = number_of_events*frequency / frequency.sum() - frequency = frequency.astype(int) - - values = df_stats.loc[df_stats.index.repeat(frequency)]\ - .iloc[:,0]\ - .sample(frac=1)\ - .reset_index(drop=True) - df_synthetic[col_name] = values - else: - df_synthetic[col_name] = df_stats.iloc[:,0] - - df_synthetic = pd.concat(df_synthetic.values(),axis=1) - - for col_name in fill_column_with_values: - if col_name in df_synthetic.columns: - df_synthetic[col_name] = df_synthetic[col_name].reset_index()['index'] - - - if not os.path.isdir(output_directory): - os.makedirs(output_directory) - fname = f"{output_directory}/{name}" - #ext = fname[-3:] - df_synthetic.set_index(df_synthetic.columns[0],inplace=True) - print (df_synthetic) - df_synthetic.to_csv(fname) - print (f"created {fname} with {number_of_events} events") - - -synthetic.add_command(xlsx,"from_xlsx") -synthetic.add_command(ccom,"from_ccom") - -@click.command(help="generate a synthetic CDM from a yaml file") -@click.argument("config") -def synthetic_cdm(config): - with open(config, 'r') as stream: - config = yaml.safe_load(stream) - - dfs = {} - order = sorted(config.items(), key=lambda x: x[0] != 'person') - for destination_table_name,destination_table in order: - n = destination_table['n'] - obj = carrot.cdm.get_cdm_class(destination_table_name)() - columns = destination_table['columns'] - for column,spec in columns.items(): - if 'range' in spec: - _range = spec['range'] - _min = 0 - if 'min' in _range: - _min = _range['min'] - _max = _min + n - x = range(_min,_max) - x = pd.Series(x) - elif 'random' in spec: - _map = spec['random'] - _df = pd.Series(_map).to_frame() - x = _df.index.to_series().repeat(_df[0]*n).sample(frac=1).reset_index(drop=True) - elif 'map' in spec: - _map = spec['map'] - col_to_map,_map = list(_map.items())[0] - x = obj[col_to_map].series.map(_map) - elif 'gaus' in spec: - _range = spec['gaus'] - mu = _range['mean'] - sigma = (_range['max'] - _range['min']).total_seconds()/5 - mu = time.mktime(mu.timetuple()) - x = [datetime.date.fromtimestamp(x) for x in np.random.normal(mu,sigma,n)] - x = pd.Series(x) - elif 'person' in spec: - x = dfs['person']['person_id'].sample(n,replace=True).sort_values().reset_index(drop=True) - else: - print (spec) - exit(0) - - x.name = column - print (x) - obj[column].series = x - - df = obj.get_df() - print (df.dropna(axis=1)) - dfs[destination_table_name] = df - -synthetic.add_command(synthetic_cdm,"cdm") - - -generate.add_command(synthetic,"synthetic") - - - -@click.command(help="generate a python configuration for the given table") -@click.argument("table") -@click.argument("version") -def cdm(table,version): - data_dir = os.path.dirname(carrot.__file__) - data_dir = f'{data_dir}{os.path.sep}data{os.path.sep}' - data_dir = f'{data_dir}{os.path.sep}cdm{os.path.sep}BCLINK_EXPORT{os.path.sep}' - - #load the details of this cdm objects from the data files taken from OHDSI GitHub - # - set the table (e.g. person, condition_occurrence,...) as the index - # so that all values associated with the object (name) can be retrieved - # - then set the field (e.g. person_id, birth_datetime,,) to help with future lookups - # - just keep information on if the field is required (Yes/No) and what the datatype is (INTEGER,..) - cdm = pd.read_csv(f'{data_dir}{version}{os.path.sep}export-{table.upper()}.csv', - encoding="ISO-8859-1",sep='\t')\ - .set_index('DESCRIPTION') - - for index,row in cdm.iterrows(): - required = row['REQUIRED'] == "Yes" - dtype = row['TYPE'] - length = row['LENGTH'] - key = row['KEY'] - - if not np.isnan(length): - dtype = f"{dtype}{int(length)}" - - if not np.isnan(key): - extra = ', pk=True' - else: - extra = '' - - string = f'self.{index} = DestinationField(dtype="{dtype}", required={required} {extra})' - print (string) - -generate.add_command(cdm,"cdm") - - -@click.command(help="generate a hash token to be used as a salt") -@click.option("length","--length",default=64) -def salt(length): - salt = secrets.token_hex(length) - click.echo(salt) - -generate.add_command(salt,"salt") - - - -def report_to_xlsx(report,f_out): - with pd.ExcelWriter(f_out) as writer: - for table in report: - table_name = table['table'] - total = [] - for field in table['fields']: - field_name = field['field'] - values = field['values'] - data = pd.DataFrame.from_records(values) - columns = [field_name,'Frequency'] - if data.empty: - data = pd.DataFrame(columns=columns) - else: - data.columns=columns - total.append(data) - df = pd.concat(total,axis=1) - click.echo(df) - df.to_excel(writer, sheet_name=table_name, index=False) - - - -@click.command(help="generate scan report json from input data") -@click.option("max_distinct_values","--max-distinct-values", - default=10, - type=int, - help='specify the maximum number of distinct values to include in the ScanReport.') -@click.option("min_cell_count","--min-cell-count", - default=5, - type=int, - help='specify the minimum number of occurrences of a cell value before it can appear in the ScanReport.') -@click.option("rows_per_table","--rows-per-table", - default=100000, - type=int, - help='specify the maximum of rows to scan per input data file (table).') -@click.option("randomise","--randomise", - is_flag=True, - help='randomise rows') -@click.option("as_type","--as-type","--save-as", - default=None, - type=click.Choice(['xlsx','json','latex']), - help='save the report as a json or xlsx (whiteRabbit style).') -@click.option("f_out","--output-file-name", - default=None, - help='specify the output file name (to be used with --save-as)') -@click.option("name","--name", - required=True, - help='give a name to the report') -@click.argument("inputs", - nargs=-1) -def report(inputs,name,max_distinct_values,min_cell_count,rows_per_table,randomise,as_type,f_out): - skiprows = None - - data = [] - for fname in inputs: - #get the name of the data table - table_name = os.path.basename(fname) - #load as a pandas dataframe - #load it and preserve the original data (i.e. no NaN conversions) - df = pd.read_csv(fname, - dtype=str, - keep_default_na=False, - nrows=rows_per_table, - skiprows=skiprows) - if randomise: - df = df.sample(frac=1) - - #get a list of all column (field) names - column_names = df.columns.tolist() - fields = [] - #loop over all colimns - for col in column_names: - #value count the columns - series = df[col].value_counts() - #reduce the size of the value counts depending on specifications of max distinct values - if max_distinct_values>0 and len(series)>=max_distinct_values: - series = series.iloc[:max_distinct_values] - - #if the min cell count is set, remove value counts that are below this threshold - if not min_cell_count is None: - series = series[series >= min_cell_count] - - #convert into a frequency instead of value count - series = (series/len(df)).rename('frequency').round(4) - - #convert the values to a dictionary - frame = series.to_frame() - - values = frame.rename_axis('value').reset_index().to_dict(orient='records') - #record the value (frequency counts) for this field - fields.append({'field':col,'values':values}) - - meta = { - 'dataset':name, - 'nscanned':len(df), - 'max_distinct_values':max_distinct_values, - 'min_cell_count':min_cell_count - } - data.append({'table':table_name,'fields':fields, 'meta':meta}) - - if as_type == 'json': - f_out = f_out if f_out != None else 'ScanReport.json' - click.echo(json.dumps(data,indent=6)) - with open(f_out, 'w') as f: - json.dump(data, f,indent=6) - elif as_type == 'xlsx': - f_out = f_out if f_out != None else 'ScanReport.xlsx' - report_to_xlsx(data,f_out) - elif as_type == 'latex': - for d in data: - d = d['fields'] - for d in d: - df = pd.DataFrame(d['values']) - if len(df)>0: - print (df.to_latex(index=False)) - else: - click.echo(json.dumps(data,indent=6)) - -generate.add_command(report,"report") - - -@click.command(help="generate a mapping rules json based on a json scan report") -#@click.option("max_distinct_values","--max-distinct-values", -# default=10, -# type=int, -# help='specify the maximum number of distinct values to include in the ScanReport.') -@click.argument("report") -def mapping_rules(report): - - person_ids = ['ID','PersonID','person_id','Study','Study_ID','CHI','LINKNO'] - date_events = ['date','date_','date_of','time','occurrence','age'] - from difflib import SequenceMatcher - def get_similar_score(a, b): - return SequenceMatcher(None, a.lower(), b.lower()).ratio() - def get_similar_scores(cols,matcher): - return {b:max([get_similar_score(a,b) for a in matcher]) for b in cols } - - domain_lookup = {'Condition':'condition_occurrence','Observation':'observation','Gender':'person'} - #date_lookup = carrot.cdm.get_cdm_class(destination_ - #print (dir(date_lookup)) - #exit(0) - def create_hde_from_value(concept,value,table,field,person_id,date_event): - domain_id = concept['domain_id'] - name = concept['concept_name'] - concept_id = concept['concept_id'] - destination_table = domain_lookup[concept['domain_id']] - obj = carrot.cdm.get_cdm_class(destination_table)() - date_events = [k for k,v in obj.get_field_dtypes().items() if v == 'Timestamp'] - date_destination = date_events[0] - obj = { - destination_table : { - name : { - "person_id":{ - "source_table":table, - "source_field":person_id, - }, - date_destination:{ - "source_table":table, - "source_field":date_event, - }, - f"{domain_id.lower()}_source_value":{ - "source_table":table, - "source_field":field, - }, - f"{domain_id.lower()}_concept_id":{ - "source_table":table, - "source_field":field, - "term_mapping": { - value:concept_id - } - } - } - } - } - return obj - - def find_person_id_and_date_event(fields): - person_id = [k for k,v in sorted(get_similar_scores(fields,person_ids).items(),key=lambda x: x[1],reverse=True)][0] - date_event = [k for k,v in sorted(get_similar_scores(fields,date_events).items(),key=lambda x: x[1],reverse=True)][0] - return person_id,date_event - - def collapse(hdes): - retval = {} - for hde in hdes: - for destination_table,objs in hde.items(): - if destination_table not in retval: - retval[destination_table] = {} - - for name,obj in objs.items(): - if name not in retval[destination_table]: - retval[destination_table][name] : {} - else: - raise Exception(f"{name} already exists") - - retval[destination_table][name] = obj - return retval - - report = carrot.tools.load_json(report) - hdes = [] - for table in report: - fields = [x['field'] for x in table['fields']] - person_id,date_event = find_person_id_and_date_event(fields) - for field in table['fields']: - for value in field['values']: - concepts = value.get('concepts') - if not concepts: - continue - for concept in concepts: - hde = create_hde_from_value(concept, - value.get('value'), - table['table'], - field['field'], - person_id, - date_event) - hdes.append(hde) - cdm = collapse(hdes) - - name = report[0]['meta']['dataset'] - rules = { - 'metadata':{ - "date_created": str(datetime.datetime.now()), - "dataset": name - }, - 'cdm':cdm - } - click.echo(json.dumps(rules,indent=6)) - - -generate.add_command(mapping_rules,"mapping-rules") - -@click.command(help="Generate synthetic data from the json format of the scan report") -@click.option("-n","--number-of-events",help="number of rows to generate",required=True,type=int) -@click.option("-o","--output-directory",help="folder to save the synthetic data to",required=True,type=str) -@click.option("--fill-column-with-values",help="select columns to fill values for",multiple=True,type=str) -@click.argument("f_in") -def synthetic_from_json(f_in,number_of_events,output_directory,fill_column_with_values): - fill_column_with_values = list(fill_column_with_values) - report = json.load(open(f_in)) - for table in report: - table_name = table['table'] - fields = table['fields'] - df_synthetic = {} - for field in fields: - field_name = field['field'] - values = field['values'] - df = pd.DataFrame.from_records(values) - if len(df) == 0: - values = pd.Series([]) - else: - frequency = df['frequency'] - frequency = number_of_events*frequency / frequency.sum() - frequency = frequency.astype(int) - values = df['value'].repeat(frequency).sample(frac=1).reset_index(drop=True) - values.name = field_name - - df_synthetic[field_name] = values - - df_synthetic = pd.concat(df_synthetic.values(),axis=1) - for col_name in fill_column_with_values: - if col_name in df_synthetic.columns: - df_synthetic[col_name] = df_synthetic[col_name].reset_index()['index'] - - df_synthetic.set_index(df_synthetic.columns[0],inplace=True) - - if not os.path.isdir(output_directory): - os.makedirs(output_directory) - fname = f"{output_directory}/{table_name}" - - click.echo(df_synthetic) - df_synthetic.to_csv(fname) - click.echo(f"created {fname} with {number_of_events} events") - - -synthetic.add_command(synthetic_from_json,"json") - - - - diff --git a/carrot/cli/subcommands/get.py b/carrot/cli/subcommands/get.py deleted file mode 100644 index 9fee81e5..00000000 --- a/carrot/cli/subcommands/get.py +++ /dev/null @@ -1,229 +0,0 @@ -import os -import click -import json -import carrot -import pandas as pd -import numpy as np -import requests -from dotenv import dotenv_values - -class MissingToken(Exception): - pass - - -@click.group(help='Commands to get data from the CCOM api.') -@click.option("-t","--token",help="specify the carrot_token for accessing the CCOM website",type=str,default=None) -@click.option("-u","--url",help="url endpoint for the CCOM website to ping", - type=str, - default=None) -@click.pass_context -def get(ctx,token,url): - config = dotenv_values(".env") - if token: - config['CCOM_TOKEN'] = token - if url: - config['CCOM_URL'] = url - - if 'CCOM_TOKEN' not in config: - raise MissingToken("you must use the option --token or create a .env file containing CCOM_TOKEN to be able to use this functionality.") - - token = config['CCOM_TOKEN'] - config['headers'] = { - "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36", - "Content-type": "application/json", - "charset": "utf-8", - "Authorization": f"Token {token}" - } - ctx.obj = config - - -@click.command(help="get information about a concept") -@click.argument("concept_id",required=True) -@click.pass_obj -def concept(config,concept_id): - url = config['CCOM_URL'] - headers=config['headers'] - response = requests.get( - f"{url}/api/omop/concepts/{concept_id}/", - headers=config['headers'] - ) - res = response.json() - click.echo(json.dumps(response.json(),indent=6)) - -@click.command(help="get all person_ids used") -@click.pass_obj -def person_ids(config): - url = config['CCOM_URL'] - headers=config['headers'] - response = requests.get( - f"{url}/api/scanreporttablesfilter/", - headers=headers - ) - person_ids = ','.join([str(x['person_id']) for x in response.json() if x['person_id']]) - response = requests.get( - f"{url}/api/scanreportfieldsfilter/?id__in={person_ids}&fields=name", - headers=headers - ) - click.echo(list(set([x['name'].replace("\ufeff","") for x in response.json()]))) - -@click.command(help="get all date_events used") -@click.pass_obj -def date_events(config): - url = config['CCOM_URL'] - headers=config['headers'] - response = requests.get( - f"{url}/api/scanreporttablesfilter/", - headers=headers - ) - date_events = ','.join([str(x['date_event']) for x in response.json() if x['date_event']]) - response = requests.get( - f"{url}/api/scanreportfieldsfilter/?id__in={date_events}&fields=name", - headers=headers - ) - click.echo(list(set([x['name'].replace("\ufeff","") for x in response.json()]))) - - -@click.command(help="get a report of the concepts that have been mapped ") -@click.option("--flat",help="do one object for each concept (dont group)",is_flag=True) -@click.pass_obj -def concepts(config,flat): - - token = config['CCOM_TOKEN'] - url = config['CCOM_URL'] - headers = config['headers'] - - response = requests.get( - f"{url}/api/scanreports", - headers=headers - ) - scan_report_ids = [ - report['id'] - for report in response.json() - if report['hidden'] == False - ] - - all_rules = [] - for _id in scan_report_ids: - response = requests.get( - f"{url}/api/json/?id={_id}", - headers=headers - ) - try: - all_rules.append(response.json()[0]) - except: - pass - - - - inverted = {} - _list = [] - for rules in all_rules: - - source_dataset = rules['metadata']['dataset'] - - for cdm_table_name,table in rules['cdm'].items(): - for concept_name,concept_group in table.items(): - for cdm_field_name,field in concept_group.items(): - if not 'term_mapping' in field: - continue - - source_table = field['source_table'] - source_field = field['source_field'] - - term_mapping = field['term_mapping'] - - if not isinstance(term_mapping,dict): - concept_ids = [(None,term_mapping)] - else: - concept_ids = list(term_mapping.items()) - - - for source_value,concept_id in concept_ids: - - if concept_id not in inverted: - inverted[concept_id] = { - 'concept_name':concept_name.rsplit(' ',1)[0], - 'domain':cdm_table_name, - 'sources':[] - } - - - #if concept_id not in inverted: - # inverted[concept_id] = [] - #else: - # print (concept_id) - # print (inverted[concept_id]) - # exit(0) - - obj = { - 'source_field':source_field, - 'source_table':source_table, - 'source_dataset':source_dataset - } - if source_value is not None: - obj['source_value'] = source_value - - temp = { - 'concept_id':concept_id, - 'concept_name':concept_name, - 'domain':cdm_table_name, - **obj - } - _list.append(temp) - - if obj not in inverted[concept_id]['sources']: - inverted[concept_id]['sources'].append(obj) - - inverted = [ - {'concept_id':_id,**obj} - for _id,obj in inverted.items() - ] - - if not flat: - print (json.dumps(inverted,indent=6)) - else: - print (json.dumps(_list,indent=6)) - - -@click.command(help="get a json file") -@click.option("-i","--report-id",help="ScanReport ID on the website",required=True,type=int) -@click.option("-t","--token",help="specify the carrot_token for accessing the CCOM website",type=str,default=None) -@click.option("-u","--url",help="url endpoint for the CCOM website to ping", - type=str, - default="https://ccom.azurewebsites.net") -def _json(report_id,token,url): - - token = os.environ.get("carrot_TOKEN") or token - if token == None: - raise MissingToken("you must use the option --token or set the environment variable carrot_TOKEN to be able to use this functionality. I.e export carrot_TOKEN=12345678 ") - - headers = { - "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36", - "Content-type": "application/json", - "charset": "utf-8", - "Authorization": f"Token {token}" - } - - response = requests.get( - f"{url}/api/json/?id={report_id}", - headers=headers - ).json()[0] - - print (json.dumps(response,indent=6)) - -@click.command(help="get a json file") -@click.argument('rules') -def object_list(rules): - config = carrot.tools.load_json(rules) - object_list = { - dest: [k for k,v in rule_set.items()] - for dest,rule_set in config['cdm'].items() - } - click.echo(json.dumps(object_list,indent=6)) - -get.add_command(object_list,"object-list-from-json") -get.add_command(_json,"json") -get.add_command(concepts,"concepts") -get.add_command(concept,"concept") -get.add_command(person_ids,"person-ids") -get.add_command(date_events,"date-events") diff --git a/carrot/cli/subcommands/info.py b/carrot/cli/subcommands/info.py deleted file mode 100644 index a409b3eb..00000000 --- a/carrot/cli/subcommands/info.py +++ /dev/null @@ -1,28 +0,0 @@ -import click -import os -import carrot - -@click.group(help='Commands to find information about the package.') -def info(): - pass - -@click.command(help="Get the data folder location") -def data_folder(): - _dir = os.path.dirname(os.path.abspath(carrot.__file__)) - data_dir = f"{_dir}{os.path.sep}data" - print (data_dir) - -@click.command(help="Get the root folder location of carrot tools") -def install_folder(): - _dir = os.path.dirname(os.path.abspath(carrot.__file__)) - print (_dir) - -@click.command(help="Get the installed version of the package'") -def version(): - print (carrot.__version__) - -info.add_command(install_folder,'install_folder') -info.add_command(data_folder,'data_folder') -info.add_command(version,'version') - - diff --git a/carrot/cli/subcommands/pseudonymise.py b/carrot/cli/subcommands/pseudonymise.py deleted file mode 100644 index 512c94e5..00000000 --- a/carrot/cli/subcommands/pseudonymise.py +++ /dev/null @@ -1,52 +0,0 @@ -import click -import requests -import carrot -import hashlib -import os -from carrot.tools.logger import Logger - -@click.command(help="Command to help pseudonymise data.") -@click.option("-s","--salt",help="salt hash",required=True,type=str) -@click.option("--person-id","-i","--id",help="name of the person_id",required=True,type=str) -@click.option("--output-folder","-o",help="path of the output folder",required=True,type=str) -@click.option("--chunksize",help="set the chunksize when loading data",type=int,default=None) -@click.argument("input",required=True) -def pseudonymise(input,output_folder,chunksize,salt,person_id): - - logger = Logger("pseudonymise") - logger.info(f"Working on file {input}, pseudonymising column '{person_id}' with salt '{salt}'") - - #create the dir - os.makedirs(output_folder,exist_ok=True) - f_out = f"{output_folder}{os.path.sep}{os.path.basename(input)}" - - logger.info(f"Saving new file to {f_out}") - - #load data - data = carrot.tools.load_csv(input,chunksize=chunksize) - - i = 0 - while True: - data[input][person_id] = data[input][person_id].apply( - lambda x: hashlib.sha256((x+salt).encode("UTF-8")).hexdigest() - ) - logger.info(data[input][person_id]) - - mode = 'w' - header=True - if i > 0 : - mode = 'a' - header=False - - data[input].to_csv(f_out,mode=mode,header=header,index=False) - log.info(f"Finished {input} of size={len(data[input])} on iteration {i}") - i+=1 - - try: - data.next() - except StopIteration: - break - - - logger.info("Done!") - return f_out diff --git a/carrot/cli/subcommands/run.py b/carrot/cli/subcommands/run.py deleted file mode 100644 index cfa02c2e..00000000 --- a/carrot/cli/subcommands/run.py +++ /dev/null @@ -1,1262 +0,0 @@ -import pandas as pd -import csv -import inspect -import os, time -import datetime -import fnmatch -import sys -import click -import json -import yaml -import glob -import copy -import subprocess -import cProfile, pstats -import carrot -import carrot.tools as tools - -@click.group(help="Commands for mapping data to the OMOP CommonDataModel (CDM).") -def run(): - pass - - -@click.command(help="Generate a python class from the OMOP mapping json") -@click.option("--name", - help="give the name of the dataset, this will be the name of the .py class file created") -@click.option("--register", - is_flag=True, - help="also register the python config with the tool") -@click.argument("rules") -@click.pass_context - -def make_class(ctx,name,rules,register): - data = tools.load_json(rules) - if name == None: - name = data['metadata']['dataset'] - - fname = tools.extract.make_class(data,name) - if register: - ctx.invoke(register_class,pyconfig=fname) - return fname - -@click.command(help="Register a python class with the tool") -@click.argument("pyconfig") -def register_class(pyconfig): - pyconfig = os.path.abspath(pyconfig) - _,conf_extension = os.path.splitext(pyconfig) - if conf_extension != '.py': - raise NotImplementedError(f"You're trying to register the file {pyconfig} which isnt a .py file") - tools.extract.register_class(pyconfig) - - - -@click.command(help="List all the python classes there are available to run") -def list_classes(): - print (json.dumps(tools.get_classes(),indent=6)) - -@click.command(help="remove a registered class") -@click.pass_context -@click.argument("name") -def remove_class(ctx,name): - classes = tools.get_classes() - if name not in classes: - print (f"{name} is not a registered class") - ctx.invoke(list_classes) - else: - _class = classes[name] - os.unlink(_class['sympath']) - -@click.command(help="Execute the running of the test dataset") -@click.pass_context -def test(ctx): - _dir = os.path.dirname(os.path.abspath(carrot.__file__)) - _dir = f"{_dir}{os.path.sep}data{os.path.sep}test" - inputs = glob.glob(f"{_dir}{os.path.sep}inputs{os.path.sep}*.csv") - rules = f"{_dir}{os.path.sep}rules{os.path.sep}rules_14June2021.json" - output_folder = 'tests' - ctx.invoke(run,inputs=inputs,rules=rules,output_folder=output_folder) - for fname in glob.glob(f"{output_folder}{os.path.sep}*.tsv"): - tools.diff_csv(fname,fname) - - -@click.command(help="apply operations (transforms) to a dataset") -@click.option("--config","-c",required=True,type=str) -@click.option("--number-of-rows-per-chunk","--nc",default=1e5,type=int) -@click.option("--output-folder","-o",required=True,type=str) -@click.argument("inputs",nargs=-1,required=True) -def transform(inputs,config,number_of_rows_per_chunk,output_folder): - - logger = tools.logger.Logger("transform") - - if not os.path.exists(output_folder): - os.makedirs(output_folder) - - if os.path.isfile(config): - config = json.load(open(config)) - else: - config = json.loads(config) - - logger.info(json.dumps(config,indent=6)) - - inputs = { - os.path.basename(x):x - for x in inputs - } - input_data = tools.load_csv(inputs,chunksize=number_of_rows_per_chunk) - - operation_tools = carrot.cdm.OperationTools() - - header=True - mode='w' - - i = 0 - while True: - if i > 0: - mode = 'a' - header=False - i+=1 - for fname,rules in config.items(): - logger.info(f"Working on {fname}") - df = input_data[fname] - for colname,operations in rules.items(): - series = df[colname] - for operation in operations: - logger.info(f".. transforming '{colname}' with operation '{operation}'") - fn_operation = operation_tools[operation] - series = fn_operation(series) - df[colname] = series - fout = f"{output_folder}/{fname}" - df.to_csv(fout,header=header,mode=mode,index=False) - - try: - input_data.next() - except StopIteration: - break - -@click.command() -@click.option("--number-of-rows-per-chunk","--nc",default=1e5,type=int) -@click.option("--output-folder","-o",required=True,type=str) -@click.argument("inputs",nargs=-1,required=True) -def format(inputs,number_of_rows_per_chunk,output_folder): - """ - Format a CDM model by passing all CDM objects and applying formatting. - """ - types = list(set([ - os.path.splitext(fname)[1] - for fname in inputs - ])) - if len(types) > 1: - raise Exception(f"Running with mixed input files '{types}'. Only input tsv or csv files.") - types = types[0] - - inputs = { - os.path.basename(x):x - for x in inputs - } - if types == '.csv': - inputs = tools.load_csv(inputs,chunksize=number_of_rows_per_chunk) - else: - inputs = tools.load_tsv(inputs,chunksize=number_of_rows_per_chunk) - - cdm = carrot.cdm.CommonDataModel.from_existing(inputs=inputs, - output_folder=output_folder, - format_level=1) - #cdm.save_files = False - cdm.process() - cdm.end() - -@click.command() -@click.option("--output-folder","-o",required=True,type=str,help='specify an output folder of where to put the merged tables') -@click.argument("inputs",nargs=-1,required=True) -def merge(inputs,output_folder): - """ - Build a CDM model from subfiles - """ - types = list(set([ - os.path.splitext(fname)[1] - for fname in inputs - ])) - if len(types) > 1: - raise Exception(f"Running with mixed input files '{types}'. Only input tsv or csv files.") - types = types[0] - - inputs = { - os.path.basename(x):x - for x in inputs - } - if types == '.csv': - inputs = tools.load_csv(inputs)#,chunksize=number_of_rows_per_chunk) - else: - inputs = tools.load_tsv(inputs)#,chunksize=number_of_rows_per_chunk) - - outputs = carrot.tools.create_csv_store(output_folder=output_folder,sep='\t',write_mode='w',write_separate=False) - - cdm = carrot.cdm.CommonDataModel.from_existing(inputs=inputs, - do_mask_person_id=False, - drop_duplicates=True, - format_level=0, - outputs=outputs) - cdm.process() - - -@click.command(help="loading") -@click.option("--config","-c",required=True,type=str) -@click.argument("inputs",nargs=-1,required=True) -def load(inputs,config): - inputs = {os.path.basename(x).split('.')[0]:x for x in inputs} - config = json.loads(config) - if 'bclink' in config: - outputs = carrot.io.BCLinkDataCollection(config['bclink']) - else: - raise NotImplementedError(f"Not setup to implement configuration for load {config}") - - for destination_table,fname in inputs.items(): - outputs.load(fname,destination_table) - - outputs.finalise() - -@click.command() -@click.option("--input", - required=True, - help='input csv file') -@click.option("--column", - required=True, - help="which column of the input data to modify") -@click.option("--operation", - required=True, - help="which operation to apply to the column") -def format_input_data(column,operation,input): - """ - Useful formatting command for applying an operation on some data before being passed into the ETL-Tool - - """ - optools = carrot.cdm.OperationTools() - allowed_operations = optools.keys() - if operation not in allowed_operations: - raise Exception(f"Operation '{operation}' is not a known operation. Choose from {allowed_operations}") - df_input = pd.read_csv(input) - df_input[column] = optools[operation](df_input[column]) - n = 5 if len(df_input) > 5 else len(df_input) - print (df_input[column].sample(n)) - df_input.to_csv(input) - - -def _condor(name,commands,jobscript): - #hold_jid {name} - wait for previous job - def wrapper(args): - script = jobscript + '\n' + ' '.join(commands) - fname = f"{name}.sh" - with open(fname,"w") as f: - f.write(script) - output = subprocess.check_output(['qsub','-N',name,fname]).decode() - return output - return wrapper - -from importlib import import_module - -@click.command() -@click.option("analysis_name","--analysis",default=None,type=str) -@click.argument("analysis_file") -@click.pass_context -def analysis(ctx,analysis_file,analysis_name): - """ - Use this command to run analyses on input data (in the CDM format) given a configuration yaml file - """ - _dir = os.path.dirname(analysis_file) - fname = os.path.splitext(os.path.basename(analysis_file))[0] - sys.path.append(_dir) - module = import_module(fname) - clsmembers = inspect.getmembers(module, inspect.isclass) - name,cls = clsmembers[0] - obj = cls() - if analysis_name: - ana = obj.get_analysis(analysis_name) - res = obj.run_analysis(ana) - print (res) - else: - #print (obj.get_analyses()) - #exit(0) - obj.run_analyses() - - -@click.command() -@click.option("--max-workers",default=None,type=int) -@click.option("--batch",default=None,type=click.Choice(['condor'])) -@click.option("analysis_names","--analysis-name",default=None,multiple=True,type=str) -@click.argument("config") -@click.pass_context -def ___analysis(ctx,config,analysis_names,max_workers,batch): - """ - Use this command to run analyses on input data (in the CDM format) given a configuration yaml file - """ - from importlib import import_module - fname = config - stream = open(config) - config = yaml.safe_load(stream) - - inputs = config['cdm'] - inputs = carrot.tools.load_tsv(config['cdm'], - dtype=None) - - cdm = carrot.cdm.CommonDataModel.load(inputs=inputs) - - analyses = config['analyses'] - - jobscript = config['condor']['jobscript'] - - - if analysis_names: - temp = copy.copy(analyses) - for name in temp: - if name not in analysis_names: - analyses.pop(name) - - for name,_def in analyses.items(): - analysis = _def['analysis'] - cohort = _def['filter'] - if batch: - if batch == 'condor': - commands = copy.copy(sys.argv) - commands.remove('--batch') - commands.remove('condor') - commands.extend(['--analysis-name',name]) - - f = _condor(name=name,commands=commands,jobscript=jobscript) - else: - raise NotImplementedError(f"{batch} mode for --batch not a thing") - else: - func = import_module(analysis) - f = func.create_analysis(cohort) - cdm.add_analysis(f) - - results = cdm.run_analyses(max_workers=max_workers) - - - -@click.command() -@click.option("--rules", - required=True, - help="input json file containing all the mapping rules to be applied") -@click.option("--indexing-conf", - default=None, - help="configuration file to specify how to start the indexing") -@click.option("--csv-separator", - default='\t', - type=click.Choice([';',':','\t',',',' ',]), - help="choose a separator to use when dumping output csv files") -@click.option("--use-profiler", - is_flag=True, - help="turn on saving statistics for profiling CPU and memory usage") -@click.option("format_level","--format-level", - default='1', - type=click.Choice(['0','1','2']), - help="Choose the level of formatting to apply on the output data. 0 - no formatting. 1 - automatic formatting. 2 (default) - check formatting (will crash if input data is not already formatted).") -@click.option("--output-folder", - default=None, - help="define the output folder where to dump csv files to") -@click.option("--write-mode", - default='w', - type=click.Choice(['w','a']), - help="force the write-mode on existing files") -@click.option("--split-outputs", - is_flag=True, - help="force the output files to be split into separate files") -@click.option("--allow-missing-data", - is_flag=True, - help="don't crash if there is data tables in rules file that hasnt been loaded") -@click.option("output_database","--database", - default=None, - help="define the output database where to insert data into") -@click.option("-nc","--number-of-rows-per-chunk", - default=-1, - help="Choose the number of rows (INTEGER) of input data to load (chunksize). The option 'auto' will work out the ideal chunksize. Inputing a value <=0 will turn off data chunking (default behaviour).") -@click.option("-np","--number-of-rows-to-process", - default=None, - type=int, - help="the total number of rows to process") -@click.option("--person-id-map", - default=None, - help="pass the location of a file containing existing masked person_ids") -@click.option("--db", - default=None, - help="instead, pass a connection string to a db") -@click.option("--merge-output", - is_flag=True, - help="merge the output into one file") -@click.option("no_mask_person_id","--parse-original-person-id", - is_flag=True, - help="turn off automatic conversion (creation) of person_id to (as) Integer") -@click.option("dont_automatically_fill_missing_columns","--no-fill-missing-columns", - is_flag=True, - help="Turn off automatically filling missing CDM columns") -@click.option("log_file","--log-file", - default = 'none', - help="specify a path for a log file") -@click.option("--max-rules", - default = None, - type=int, - help="maximum number of rules to process") -@click.option("objects","--object", - default = None, - multiple=True, - type=str, - help="give a list of objects by name to process") -@click.option("tables","--table", - default = None, - multiple=True, - type=str, - help="give a list of tables by name to process") -@click.argument("inputs", - required=False, - nargs=-1) -@click.pass_context -def map(ctx,rules,inputs,format_level, - output_folder,output_database, - csv_separator,use_profiler,log_file, - no_mask_person_id,indexing_conf, - person_id_map,max_rules,merge_output, - objects,tables,db,write_mode,split_outputs, - dont_automatically_fill_missing_columns, - number_of_rows_per_chunk,allow_missing_data, - number_of_rows_to_process): - """ - Perform OMOP Mapping given an json file and a series of input files - - INPUTS should be a space separated list of individual input files or directories (which contain .csv files) - """ - - if output_folder is None: - output_folder = f'{os.getcwd()}{os.path.sep}output_data{os.path.sep}' - - #if log_file == 'auto' and carrot.params['log_file'] is None: - if log_file == 'auto': - log_file = f"{output_folder}{os.path.sep}logs{os.path.sep}carrot.log" - carrot.params['log_file'] = log_file - elif log_file == 'none': - pass - else: - carrot.params['log_file'] = log_file - - #load the json loads - if type(rules) == dict: - config = rules - else: - config = tools.load_json(rules) - - if tables: - tables = list(set(tables)) - config = carrot.tools.filter_rules_by_destination_tables(config,tables) - - if objects: - objects = list(set(objects)) - config = carrot.tools.filter_rules_by_object_names(config,objects) - - if max_rules: - i = 0 - n = max_rules - new = {} - for destination_table,rule_set in config['cdm'].items(): - if destination_table == 'person': - new[destination_table] = rule_set - else: - for name,_rules in rule_set.items(): - if i>=n: - break - if destination_table not in new: - new[destination_table] = {} - new[destination_table][name] = _rules - i+=1 - - config['cdm'] = new - - name = config['metadata']['dataset'] - - if indexing_conf is not None: - if isinstance(indexing_conf,dict): - pass - elif indexing_conf.endswith(".json") and os.path.exists(indexing_conf): - indexing_conf = tools.load_json(indexing_conf) - elif indexing_conf.endswith(".csv") and os.path.exists(indexing_conf): - try: - indexing_conf = pd.read_csv(indexing_conf,header=None,index_col=0)[1].to_dict() - except pd.errors.EmptyDataError: - indexing_conf = None - pass - - - #automatically calculate the ideal chunksize - if number_of_rows_per_chunk == 'auto': - #get the fields that are going to be used/loaded - used_fields = tools.get_mapped_fields_from_rules(config) - #calculate the number of fields that are to be used per dataset - n_used_fields = [ len(sublist) for sublist in used_fields.values() ] - #find what's the largest number of fields loaded by any dataset - max_n_used_fields = max(n_used_fields) - #get the number of files used - n_files = len(n_used_fields) - - # If there is one dataset and one column being used, the max loaded to memory - # is 2million rows (this is fairly arbitrary) - # it is an approximation assuming the data in the values is relatively small - # this should keep the memory usage down - # When there is more fields and more files loaded, reduce the of rows per chunk - max_n_rows = 2e6 - number_of_rows_per_chunk = int(max_n_rows/(max_n_used_fields*n_files)) - else: - try: - number_of_rows_per_chunk = int(number_of_rows_per_chunk) - except ValueError: - raise ValueError(f"number_of_rows_per_chunk must be an Integer or 'auto', you inputted '{number_of_rows_per_chunk}'") - - #turn off chunking if 0 or negative chunksizes are given - if number_of_rows_per_chunk <= 0 : - number_of_rows_per_chunk = None - - #check if exists - if any('*' in x for x in inputs): - data_dir = os.path.dirname(carrot.__file__) - data_dir = f'{data_dir}{os.path.sep}data{os.path.sep}' - - new_inputs = [] - for i,x in enumerate(inputs): - if not os.path.exists(x): - new_inputs.extend(glob.glob(f"{data_dir}{os.path.sep}{x}")) - else: - new_inputs.append(x) - inputs = new_inputs - - inputs = list(inputs) - - for x in inputs: - if os.path.isdir(x): - inputs.remove(x) - inputs.extend(glob.glob(f'{x}{os.path.sep}*.csv')) - - #convert the list into a map between the filename and the full path - inputs = { - os.path.basename(x):x - for x in inputs - } - - if db: - inputs = tools.load_sql(connection_string=db,chunksize=number_of_rows_per_chunk,nrows=number_of_rows_to_process) - else: - if allow_missing_data: - config = carrot.tools.remove_missing_sources_from_rules(config,inputs) - - inputs = tools.load_csv(inputs, - rules=config, - chunksize=number_of_rows_per_chunk, - nrows=number_of_rows_to_process) - - #do something with - #person_id_map - - if isinstance(output_database,dict): - if 'bclink' in output_database: - outputs = carrot.tools.create_bclink_store(bclink_settings=output_database['bclink'], - output_folder=output_database['cache'], - sep=csv_separator, - write_separate=split_outputs, - write_mode=write_mode) - else: - raise NotImplementedError(f"dont know how to configure outputs... {output_database}") - elif output_database == None: - outputs = carrot.tools.create_csv_store(output_folder=output_folder, - sep=csv_separator, - write_separate=split_outputs, - write_mode=write_mode) - else: - outputs = carrot.tools.create_sql_store() - - #build an object to store the cdm - cdm = carrot.cdm.CommonDataModel(name=name, - inputs=inputs, - format_level=format_level, - do_mask_person_id=not no_mask_person_id, - outputs = outputs, - #output_folder=output_folder, - #output_database=output_database, - automatically_fill_missing_columns=not dont_automatically_fill_missing_columns, - use_profiler=use_profiler) - #allow the csv separator to be changed - #the default is tab (\t) separation - #if not csv_separator is None: - # cdm.set_csv_separator(csv_separator) - cdm.create_and_add_objects(config) - - cdm.process(conserve_memory=True) - cdm.close() - - if merge_output: - ctx.invoke(merge, - inputs=glob.glob(f"{output_folder}{os.path.sep}*"), - output_folder=output_folder) -@click.command() -@click.option("--rules-file", - required=True, - help="json file containing mapping rules") -@click.option("--output-dir", - default=None, - help="define the output directory for OMOP-format tsv files") -@click.option("--write-mode", - default='w', - type=click.Choice(['w','a']), - help="force write-mode on output files") -@click.option("--person-file", - required=True, - help="File containing person_ids in the first column") -@click.option("--omop-ddl-file", - required=True, - help="File containing OHDSI ddl statements for OMOP tables") -@click.option("--omop-config-file", - required=True, - help="File containing additional / override json config for omop outputs") -@click.option("--saved-person-id-file", - default=None, - required=False, - help="Full path to person id file used to save person_id state and share person_ids between data sets") -@click.option("--use-input-person-ids", - required=False, - default='N', - help="Use person ids as input without generating new integers") -@click.option("--last-used-ids-file", - default=None, - required=False, - help="Full path to last used ids file for OMOP tables - format: tablename\tlast_used_id, \nwhere last_used_id must be an integer") -@click.option("--log-file-threshold", - required=False, - default=0, - help="Lower outcount limit for logfile output") -@click.argument("input-dir", - required=False, - nargs=-1) -def mapstream(rules_file, output_dir, write_mode, person_file, omop_ddl_file, omop_config_file, saved_person_id_file, use_input_person_ids, last_used_ids_file, log_file_threshold, input_dir): - """ - Map to output using input streams - """ - print(input_dir) - if os.path.isdir(input_dir[0]) == False: - print("Not a directory, input dir {0}".format(input_dir[0])) - sys.exit(1) - - if os.path.isdir(output_dir) == False: - print("Not a directory, output dir {0}".format(output_dir)) - sys.exit(1) - - if saved_person_id_file == None: - saved_person_id_file = output_dir + "/" + "person_ids.tsv" - if os.path.exists(saved_person_id_file): - os.remove(saved_person_id_file) - - starttime = time.time() - omopcdm = tools.omopcdm.OmopCDM(omop_ddl_file, omop_config_file) - #print(omopcdm.dump_ddl()) - mappingrules = tools.mappingrules.MappingRules(rules_file, omopcdm) - metrics = tools.metrics.Metrics(mappingrules.get_dataset_name(), log_file_threshold) - nowtime = time.time() - - print("--------------------------------------------------------------------------------") - print("Loaded mapping rules from: {0} after {1:.5f} secs".format(rules_file, (nowtime - starttime))) - output_files = mappingrules.get_all_outfile_names() - record_numbers = {} - for output_file in output_files: - record_numbers[output_file] = 1 - - fhd = {} - tgtcolmaps = {} - - try: - # Add in a saved-person-file existence test and reload from it is necessary returning the last used integer - if os.path.isfile(saved_person_id_file): - person_lookup, last_used_integer = load_saved_person_ids(saved_person_id_file) - else: - person_lookup = {} - last_used_integer = 1 - if last_used_ids_file != None: - if os.path.isfile(last_used_ids_file): - record_numbers = load_last_used_ids(last_used_ids_file, record_numbers) - - #fhp = open(person_file, mode="r", encoding="utf-8-sig") - #csvrp = csv.reader(fhp) - person_lookup, rejected_person_count = load_person_ids(person_file, person_lookup, mappingrules, use_input_person_ids, last_used_integer) - fhpout = open(saved_person_id_file, mode="w") - fhpout.write("SOURCE_SUBJECT\tTARGET_SUBJECT\n") - for person_id, person_assigned_id in person_lookup.items(): - fhpout.write("{0}\t{1}\n".format(str(person_id), str(person_assigned_id))) - fhpout.close() - for tgtfile in output_files: - fhd[tgtfile] = open(output_dir + "/" + tgtfile + ".tsv", mode=write_mode) - if write_mode == 'w': - outhdr = omopcdm.get_omop_column_list(tgtfile) - fhd[tgtfile].write("\t".join(outhdr) + "\n") - tgtcolmaps[tgtfile] = omopcdm.get_omop_column_map(tgtfile) - - except IOError as e: - print("I/O - error({0}): {1} -> {2}".format(e.errno, e.strerror, str(e))) - exit() - - print("person_id stats: total loaded {0}, reject count {1}".format(len(person_lookup), rejected_person_count)) - - # TODO get this list of input files from the parsed rules - existing_input_files = fnmatch.filter(os.listdir(input_dir[0]), '*.csv') - rules_input_files = mappingrules.get_all_infile_names() - for infile in existing_input_files: - if infile not in rules_input_files: - msg = "ERROR: no mapping rules found for existing input file - {0}".format(infile) - print(msg) - metrics.add_log_data(msg) - for infile in rules_input_files: - if infile not in existing_input_files: - msg = "ERROR: no data for mapped input file - {0}".format(infile) - print(msg) - metrics.add_log_data(msg) - rejidcounts = {} - rejdatecounts = {} - #src_tgt_counts = {} - print(rules_input_files) - - for srcfilename in rules_input_files: - rejidcounts[srcfilename] = 0 - rejdatecounts[srcfilename] = 0 - - for srcfilename in rules_input_files: - outcounts = {} - rejcounts = {} - rcount = 0 - - try: - fh = open(input_dir[0] + "/" + srcfilename, mode="r", encoding="utf-8-sig") - csvr = csv.reader(fh) - except IOError as e: - print("Unable to open: {0}".format(input_dir[0] + "/" + srcfilename)) - print("I/O error({0}): {1}".format(e.errno, e.strerror)) - continue - - tgtfiles, src_to_tgt = mappingrules.parse_rules_src_to_tgt(srcfilename) - infile_datetime_source, infile_person_id_source = mappingrules.get_infile_date_person_id(srcfilename) - for tgtfile in tgtfiles: - outcounts[tgtfile] = 0 - rejcounts[tgtfile] = 0 - datacolsall = [] - hdrdata = next(csvr) - dflist = mappingrules.get_infile_data_fields(srcfilename) - for colname in hdrdata: - datacolsall.append(colname) - inputcolmap = omopcdm.get_column_map(hdrdata) - pers_id_col = inputcolmap[infile_person_id_source] - datetime_col = inputcolmap[infile_datetime_source] - print("--------------------------------------------------------------------------------") - print("Processing input: {0}".format(srcfilename)) -# print("Processing input: {0}, All input cols = {1}, Data cols = {2}".format(srcfilename, str(datacolsall), str(dflist))) - - for indata in csvr: - #indata = inputline.strip().split(",") - key = srcfilename + "~all~all~all~" - metrics.increment_key_count(key, "input_count") - rcount += 1 - strdate = indata[datetime_col].split(" ")[0] - fulldate = parse_date(strdate) - if fulldate != None: - #fulldate = "{0}-{1:02}-{2:02}".format(dt.year, dt.month, dt.day) - indata[datetime_col] = fulldate - else: - metrics.increment_key_count(key, "invalid_date_fields") - continue - - for tgtfile in tgtfiles: - tgtcolmap = tgtcolmaps[tgtfile] - auto_num_col = omopcdm.get_omop_auto_number_field(tgtfile) - pers_id_col = omopcdm.get_omop_person_id_field(tgtfile) - - datacols = datacolsall - if tgtfile in dflist: - datacols = dflist[tgtfile] - - for datacol in datacols: - built_records, outrecords, metrics = get_target_records(tgtfile, tgtcolmap, src_to_tgt, datacol, indata, inputcolmap, srcfilename, omopcdm, metrics) - if built_records == True: - for outrecord in outrecords: - if auto_num_col != None: - outrecord[tgtcolmap[auto_num_col]] = str(record_numbers[tgtfile]) - record_numbers[tgtfile] += 1 - if (outrecord[tgtcolmap[pers_id_col]]) in person_lookup: - outrecord[tgtcolmap[pers_id_col]] = person_lookup[outrecord[tgtcolmap[pers_id_col]]] - outcounts[tgtfile] += 1 - key = srcfilename + "~all~all~all~" - metrics.increment_key_count(key, "output_count") - key = "all~all~" + tgtfile + "~all~" - metrics.increment_key_count(key, "output_count") - key = srcfilename + "~all~" + tgtfile + "~all~" - metrics.increment_key_count(key, "output_count") - if tgtfile == "person": - key = srcfilename + "~all~" + tgtfile + "~" + outrecord[1] +"~" - metrics.increment_key_count(key, "output_count") - key = srcfilename + "~" + datacol +"~" + tgtfile + "~" + outrecord[1] + "~" + outrecord[2] - metrics.increment_key_count(key, "output_count") - else: - key = srcfilename + "~" + datacol +"~" + tgtfile + "~" + outrecord[2] + "~" - metrics.increment_key_count(key, "output_count") - key = srcfilename + "~all~" + tgtfile + "~" + outrecord[2] + "~" - metrics.increment_key_count(key, "output_count") - key = "all~all~" + tgtfile + "~" + outrecord[2] + "~" - metrics.increment_key_count(key, "output_count") - key = "all~all~all~" + outrecord[2] + "~" - metrics.increment_key_count(key, "output_count") - fhd[tgtfile].write("\t".join(outrecord) + "\n") - else: - key = srcfilename + "~all~" + tgtfile + "~all~" - metrics.increment_key_count(key, "invalid_person_ids") - rejidcounts[srcfilename] += 1 - - fh.close() - - nowtime= time.time() - print("INPUT file data : {0}: input count {1}, time since start {2:.5} secs".format(srcfilename, str(rcount), (nowtime - starttime))) - for outtablename, count in outcounts.items(): - print("TARGET: {0}: output count {1}".format(outtablename, str(count))) - - print("--------------------------------------------------------------------------------") - data_summary = metrics.get_mapstream_summary() - log_report = metrics.get_log_data() - try: - dsfh = open(output_dir + "/summary_mapstream.tsv", mode="w") - dsfh.write(data_summary) - dsfh.close() - logfh = open(output_dir + "/error_report.txt", mode="w") - logfh.write(log_report) - logfh.close() - except IOError as e: - print("I/O error({0}): {1}".format(e.errno, e.strerror)) - print("Unable to write file") - - nowtime = time.time() - print("Elapsed time = {0:.5f} secs".format(nowtime - starttime)) - #profiler.disable() - #stats = pstats.Stats(profiler).sort_stats('ncalls') - #stats.print_stats() - -def get_target_records(tgtfilename, tgtcolmap, rulesmap, srcfield, srcdata, srccolmap, srcfilename, omopcdm, metrics): - build_records = False - tgtrecords = [] - date_col_data = omopcdm.get_omop_datetime_linked_fields(tgtfilename) - date_component_data = omopcdm.get_omop_date_field_components(tgtfilename) - notnull_numeric_fields = omopcdm.get_omop_notnull_numeric_fields(tgtfilename) - - srckey = srcfilename + "~" + srcfield + "~" + tgtfilename - summarykey = srcfilename + "~" + srcfield + "~" + tgtfilename + "~all~" - if valid_value(str(srcdata[srccolmap[srcfield]])): - srcfullkey = srcfilename + "~" + srcfield + "~" + str(srcdata[srccolmap[srcfield]]) + "~" + tgtfilename - dictkeys = [] - if srcfullkey in rulesmap: - build_records = True - dictkeys.append(srcfullkey) - if srckey in rulesmap: - build_records = True - dictkeys.append(srckey) - if build_records == True: - for dictkey in dictkeys: - for out_data_elem in rulesmap[dictkey]: - valid_data_elem = True - tgtarray = ['']*len(tgtcolmap) - for req_integer in notnull_numeric_fields: - tgtarray[tgtcolmap[req_integer]] = "0" - for infield, outfield_list in out_data_elem.items(): - for output_col_data in outfield_list: - if "~" in output_col_data: - outcol, term = output_col_data.split("~") - tgtarray[tgtcolmap[outcol]] = term - else: - tgtarray[tgtcolmap[output_col_data]] = srcdata[srccolmap[infield]] - if output_col_data in date_component_data: - strdate = srcdata[srccolmap[infield]].split(" ")[0] - dt = get_datetime_value(strdate) - if dt != None: - year_field = date_component_data[output_col_data]["year"] - month_field = date_component_data[output_col_data]["month"] - day_field = date_component_data[output_col_data]["day"] - tgtarray[tgtcolmap[year_field]] = str(dt.year) - tgtarray[tgtcolmap[month_field]] = str(dt.month) - tgtarray[tgtcolmap[day_field]] = str(dt.day) - fulldate = "{0}-{1:02}-{2:02}".format(dt.year, dt.month, dt.day) - tgtarray[tgtcolmap[output_col_data]] = fulldate - else: - metrics.increment_key_count(summarykey, "invalid_date_fields") - valid_data_elem = False - elif output_col_data in date_col_data: - fulldate = srcdata[srccolmap[infield]] - tgtarray[tgtcolmap[output_col_data]] = fulldate - tgtarray[tgtcolmap[date_col_data[output_col_data]]] = fulldate - if valid_data_elem == True: - tgtrecords.append(tgtarray) - else: - metrics.increment_key_count(summarykey, "invalid_source_fields") - - - return build_records, tgtrecords, metrics - -def valid_value(item): - """ - Check if an item is non blank (null) - """ - if item.strip() == "": - return(False) - return(True) - -def valid_date_value(item): - """ - Check if a date item is non null and parses as ISO (YYYY-MM-DD), reverse-ISO - or dd/mm/yyyy or mm/dd/yyyy - """ - if item.strip() == "": - return(False) - if not valid_iso_date(item) and not valid_reverse_iso_date(item) and not valid_uk_date(item): - #print("Bad date : {0}".format(item)) - return(False) - return(True) - -def get_datetime_value(item): - """ - Check if a date item is non null and parses as ISO (YYYY-MM-DD), reverse-ISO - or dd/mm/yyyy or mm/dd/yyyy - """ - dt = None - # Does the date parse as an ISO date? - try: - dt = datetime.datetime.strptime(item, "%Y-%m-%d") - except ValueError: - pass - if dt != None: - return(dt) - - # Does the date parse as a reverse ISO date? - try: - dt = datetime.datetime.strptime(item, "%d-%m-%Y") - except ValueError: - pass - - if dt != None: - return(dt) - - # Does the date parse as a UK old-style date? - try: - dt = datetime.datetime.strptime(item, "%d/%m/%Y") - except ValueError: - pass - - if dt != None: - return(dt) - - return None - -def parse_date(item): - """ - Crude hand-coded check on date format - """ - datedata = item.split("-") - if len(datedata) != 3: - datedata = item.split("/") - if len(datedata) != 3: - return None - if len(datedata[2]) == 4: - return("{0}-{1}-{2}".format(datedata[2], datedata[1], datedata[0])) - return("{0}-{1}-{2}".format(datedata[0], datedata[1], datedata[2])) - - -def valid_iso_date(item): - """ - Check if a date item is non null and parses as ISO (YYYY-MM-DD) - """ - try: - datetime.datetime.strptime(item, "%Y-%m-%d") - except ValueError: - return(False) - - return(True) - -def valid_reverse_iso_date(item): - """ - Check if a date item is non null and parses as reverse ISO (DD-MM-YYYY) - """ - try: - datetime.datetime.strptime(item, "%d-%m-%Y") - except ValueError: - return(False) - - return(True) - -def valid_uk_date(item): - """ - Check if a date item is non null and parses as UK format (DD/MM/YYYY) - """ - try: - datetime.datetime.strptime(item, "%d/%m/%Y") - except ValueError: - return(False) - - return(True) - -def load_last_used_ids(last_used_ids_file, last_used_ids): - fh = open(last_used_ids_file, mode="r", encoding="utf-8-sig") - csvr = csv.reader(fh, delimiter="\t") - - for last_ids_data in csvr: - last_used_ids[last_ids_data[0]] = int(last_ids_data[1]) + 1 - - fh.close() - return last_used_ids - -def load_saved_person_ids(person_file): - fh = open(person_file, mode="r", encoding="utf-8-sig") - csvr = csv.reader(fh, delimiter="\t") - last_int = 1 - person_ids = {} - - next(csvr) - for persondata in csvr: - person_ids[persondata[0]] = persondata[1] - last_int += 1 - - fh.close() - return person_ids, last_int - -def load_person_ids(person_file, person_ids, mappingrules, use_input_person_ids, person_number=1, delim=","): - fh = open(person_file, mode="r", encoding="utf-8-sig") - csvr = csv.reader(fh, delimiter=delim) - person_columns = {} - person_col_in_hdr_number = 0 - reject_count = 0 - - personhdr = next(csvr) - print(personhdr) - - # Make a dictionary of column names vs their positions - for col in personhdr: - person_columns[col] = person_col_in_hdr_number - person_col_in_hdr_number += 1 - - birth_datetime_source, person_id_source = mappingrules.get_person_source_field_info("person") - print("Load Person Data {0}, {1}".format(birth_datetime_source, person_id_source)) - person_col = person_columns[person_id_source] - - for persondata in csvr: - if not valid_value(persondata[person_columns[person_id_source]]): - reject_count += 1 - continue - if not valid_date_value(persondata[person_columns[birth_datetime_source]]): - reject_count += 1 - continue - if persondata[person_col] not in person_ids: - if use_input_person_ids == "N": - person_ids[persondata[person_col]] = str(person_number) - person_number += 1 - else: - person_ids[persondata[person_col]] = str(persondata[person_col]) - fh.close() - - return person_ids, reject_count - -@click.command(help="Perform OMOP Mapping given a python configuration file.") -@click.option("--rules", - help="input json file containing all the mapping rules to be applied") -@click.option("--pyconf","--conf", - required=True, - help="Run with a python configuration file") -@click.option("--object","objects", - multiple=True, - help="Only run specific objects.") -@click.option("--type", - default='csv', - type=click.Choice(['csv']), - help="specify the type of inputs, the default is .csv inputs") -@click.option("--use-profiler", - is_flag=True, - help="turn on saving statistics for profiling CPU and memory usage") -@click.option("--output-folder", - default=None, - help="define the output folder where to dump csv files to") -@click.option("-nc","--number-of-rows-per-chunk", - default=None, - type=int, - help="choose to chunk running the data into nrows") -@click.option("-np","--number-of-rows-to-process", - default=None, - type=int, - help="the total number of rows to process") -@click.argument("inputs", - #help="give a list of input files to process, and/or an input directory", - nargs=-1) -@click.pass_context -def run_pyconfig(ctx,rules,pyconf,inputs,objects, - output_folder,type,use_profiler, - number_of_rows_per_chunk, - number_of_rows_to_process): - - object_list = list(objects) - if len(object_list) == 0: - object_list = None - - if type != 'csv': - raise NotImplementedError("Can only handle inputs that are .csv so far") - - #check if exists - if any('*' in x for x in inputs): - data_dir = os.path.dirname(carrot.__file__) - data_dir = f'{data_dir}{os.path.sep}data{os.path.sep}' - - new_inputs = [] - for i,x in enumerate(inputs): - if not os.path.exists(x): - new_inputs.extend(glob.glob(f"{data_dir}{os.path.sep}{x}")) - else: - new_inputs.append(x) - inputs = new_inputs - - inputs = list(inputs) - for x in inputs: - if os.path.isdir(x): - inputs.remove(x) - inputs.extend(glob.glob(f'{x}{os.path.sep}*.csv')) - - #convert the list into a map between the filename and the full path - inputs = { - os.path.basename(x):x - for x in inputs - } - - if output_folder is None: - output_folder = f'{os.getcwd()}{os.path.sep}output_data{os.path.sep}' - - outputs = carrot.tools.create_csv_store(output_folder=output_folder) - - - if not inputs: - raise Exception('no inputs defined!') - - inputs = tools.load_csv(inputs, - rules=rules, - chunksize=number_of_rows_per_chunk, - nrows=number_of_rows_to_process) - - available_classes = tools.get_classes() - if pyconf not in available_classes: - ctx.invoke(list_classes) - raise KeyError(f"cannot find config {pyconf}. Run 'carrot map py list' to see available classes.") - - module = __import__(available_classes[pyconf]['module'],fromlist=[pyconf]) - defined_classes = [ - m[0] - for m in inspect.getmembers(module, inspect.isclass) - if m[1].__module__ == module.__name__ - ] - #should only be running one class anyway - defined_class = defined_classes[0] - cls = getattr(module,defined_class) - - #build a class object - cdm = cls(inputs=inputs, - outputs=outputs, - use_profiler=use_profiler) - #run it - cdm.process(object_list) - -@click.command(help="run as a Graphical User Interface (GUI)") -@click.pass_context -def gui(ctx): - import PySimpleGUI as sg - - carrot_theme = {'BACKGROUND': 'white', - 'TEXT': '#000000', - 'INPUT': '#c4c6e2', - 'TEXT_INPUT': '#000000', - 'SCROLL': '#c4c6e2', - 'BUTTON': ('white', '#475da7','#3DB28C'), - 'PROGRESS': ('#01826B', '#D0D0D0'), - 'BORDER': 1, - 'SLIDER_DEPTH': 1, - 'PROGRESS_DEPTH': 0} - - # Add your dictionary to the PySimpleGUI themes - sg.theme_add_new('carrot', carrot_theme) - sg.theme('carrot') - - _dir = os.path.dirname(os.path.abspath(carrot.__file__)) - data_dir = f"{_dir}{os.path.sep}data{os.path.sep}" - - layout = [ - [sg.Image(f'{data_dir}logo.png'),sg.T("CO-CONNECT: Dataset2CDM",font = ("Roboto", 25))], - [sg.T('Select the rules json:')], - [sg.Input(key='_RULES_'), sg.FilesBrowse(initial_folder=os.getcwd())], - [sg.T('Select the input CSVs:')], - [sg.Input(key='_INPUTS_'), sg.FilesBrowse(initial_folder=os.getcwd())], - [sg.T('Select an output folder:')], - [sg.Input(key='_OUTPUT_',default_text='.'), sg.FolderBrowse(initial_folder=os.getcwd())], - #[sg.Checkbox("Mask the person_id",key="_MASK_PERSON_ID_",default=False)], - #[[sg.T('Change the default data chunksize:'), - # sg.Slider(range=(0,1000000), - # default_value=100000, - # resolution=10000, - # orientation='horizontal')]], - [sg.OK('Run'), sg.Cancel(button_color=('white','#3DB28C'))] - ] - - font = ("Roboto", 15) - - window = sg.Window('carrot', layout, font=font) - while True: - event, values = window.Read() - - if event == 'Cancel' or event == None: - break - - output_folder = values['_OUTPUT_'] - if output_folder == '': - output_folder = None - - rules = values['_RULES_'] - if rules == '': - sg.Popup(f'Error: please select a rules file') - continue - elif len(rules.split(';'))>1: - sg.Popup(f'Error: only select one file for the rules!') - continue - - inputs = values['_INPUTS_'] - if inputs == '': - sg.Popup(f'Error: please select at least one file or directory for the inputs') - continue - inputs = inputs.split(';') - - #mask_person_id = values['_MASK_PERSON_ID_'] - - try: - #ctx.invoke(run,rules=rules,inputs=inputs,output_folder=output_folder,mask_person_id=mask_person_id) - ctx.invoke(run,rules=rules,inputs=inputs,output_folder=output_folder) - sg.Popup("Done!") - except Exception as err: - sg.popup_error("An exception occurred!",err) - - break - - window.close() - -@click.group(help="Commands for using python configurations to run the ETL transformation.") -def py(): - pass - -py.add_command(make_class,"make") -py.add_command(register_class,"register") -py.add_command(list_classes,"list") -py.add_command(remove_class,"remove") -py.add_command(run_pyconfig,"map") -run.add_command(py,"py") -run.add_command(map,"map") -run.add_command(mapstream,"mapstream") -run.add_command(list_classes, "list_classes") -run.add_command(load,"load") -run.add_command(analysis,"analysis") -run.add_command(format,"format") -run.add_command(merge,"merge") -run.add_command(transform,"transform") -run.add_command(gui,"gui") -run.add_command(test,"test") diff --git a/carrot/cli/subcommands/search.py b/carrot/cli/subcommands/search.py deleted file mode 100644 index ccdfdf2d..00000000 --- a/carrot/cli/subcommands/search.py +++ /dev/null @@ -1,77 +0,0 @@ -import os -import click -import json -import carrot -import pandas as pd -import numpy as np -import requests -from dotenv import dotenv_values - -class MissingToken(Exception): - pass - - -@click.group(help='Commands for search/help with mapping') -def search(): - pass - - - -@click.group(help='Commands to get data from the CCOM OMOP database.') -@click.pass_context -def omop(ctx): - from sqlalchemy import create_engine, inspect - from sqlalchemy.schema import CreateSchema - from sqlalchemy_utils import database_exists, create_database - - config = dotenv_values(".env") - - host = config['carrot_DB_HOST'] - port = config['carrot_DB_PORT'] - dbname = config['carrot_DB_NAME'] - user = config['carrot_DB_USER'] - password = config['carrot_DB_PASSWORD'] - - connection_str = f'postgresql://{user}:{password}@{host}/{dbname}' - - psql_engine = create_engine(connection_str) - - #insp = inspect(psql_engine) - #existing_tables = insp.get_table_names() - - ctx.obj = psql_engine - - -@click.command(help='omop code') -@click.option("--concept-id",help='omop code') -@click.option("--concept-name",help='omop code') -@click.option("--standard",is_flag=True) -@click.pass_obj -def concept(psql_engine,concept_id,concept_name,standard): - - if concept_id: - query = f"SELECT * FROM concept WHERE concept_id='{concept_id}'" - elif concept_name: - #query = f"SELECT * FROM concept WHERE concept_name LIKE '%{concept_name}%'" - query = f"SELECT * FROM concept WHERE concept_name ILIKE '%%{concept_name}%%'" - else: - click.echo("Error... you must used --concept-id or --concept-name") - return - - if standard: - query += " and standard_concept='S'" - - df = pd.read_sql(query,psql_engine).astype(str)#.squeeze(axis=0) - #print (df)#json.dumps(df.to_dict(),indent=6)) - #for series in df: - # print (series) - data = df.to_dict(orient='records') - print (json.dumps(data,indent=6)) - - - -omop.add_command(concept,"concept") -search.add_command(omop,"omop") -#search.add_command(mongo,"mongo") - - diff --git a/carrot/config/OMOPCDM_postgresql_5.3_ddl.sql b/carrot/config/OMOPCDM_postgresql_5.3_ddl.sql deleted file mode 100644 index 23813ad4..00000000 --- a/carrot/config/OMOPCDM_postgresql_5.3_ddl.sql +++ /dev/null @@ -1,508 +0,0 @@ ---postgresql CDM DDL Specification for OMOP Common Data Model 5.3 - ---HINT DISTRIBUTE ON KEY (person_id) -CREATE TABLE @cdmDatabaseSchema.PERSON ( - person_id integer NOT NULL, - gender_concept_id integer NOT NULL, - year_of_birth integer NOT NULL, - month_of_birth integer NULL, - day_of_birth integer NULL, - birth_datetime TIMESTAMP NULL, - race_concept_id integer NOT NULL, - ethnicity_concept_id integer NOT NULL, - location_id integer NULL, - provider_id integer NULL, - care_site_id integer NULL, - person_source_value varchar(50) NULL, - gender_source_value varchar(50) NULL, - gender_source_concept_id integer NULL, - race_source_value varchar(50) NULL, - race_source_concept_id integer NULL, - ethnicity_source_value varchar(50) NULL, - ethnicity_source_concept_id integer NULL ); - ---HINT DISTRIBUTE ON KEY (person_id) -CREATE TABLE @cdmDatabaseSchema.OBSERVATION_PERIOD ( - observation_period_id integer NOT NULL, - person_id integer NOT NULL, - observation_period_start_date date NOT NULL, - observation_period_end_date date NOT NULL, - period_type_concept_id integer NOT NULL ); - ---HINT DISTRIBUTE ON KEY (person_id) -CREATE TABLE @cdmDatabaseSchema.VISIT_OCCURRENCE ( - visit_occurrence_id integer NOT NULL, - person_id integer NOT NULL, - visit_concept_id integer NOT NULL, - visit_start_date date NOT NULL, - visit_start_datetime TIMESTAMP NULL, - visit_end_date date NOT NULL, - visit_end_datetime TIMESTAMP NULL, - visit_type_concept_id Integer NOT NULL, - provider_id integer NULL, - care_site_id integer NULL, - visit_source_value varchar(50) NULL, - visit_source_concept_id integer NULL, - admitting_source_concept_id integer NULL, - admitting_source_value varchar(50) NULL, - discharge_to_concept_id integer NULL, - discharge_to_source_value varchar(50) NULL, - preceding_visit_occurrence_id integer NULL ); - ---HINT DISTRIBUTE ON KEY (person_id) -CREATE TABLE @cdmDatabaseSchema.VISIT_DETAIL ( - visit_detail_id integer NOT NULL, - person_id integer NOT NULL, - visit_detail_concept_id integer NOT NULL, - visit_detail_start_date date NOT NULL, - visit_detail_start_datetime TIMESTAMP NULL, - visit_detail_end_date date NOT NULL, - visit_detail_end_datetime TIMESTAMP NULL, - visit_detail_type_concept_id integer NOT NULL, - provider_id integer NULL, - care_site_id integer NULL, - visit_detail_source_value varchar(50) NULL, - visit_detail_source_concept_id Integer NULL, - admitting_source_value Varchar(50) NULL, - admitting_source_concept_id Integer NULL, - discharge_to_source_value Varchar(50) NULL, - discharge_to_concept_id integer NULL, - preceding_visit_detail_id integer NULL, - visit_detail_parent_id integer NULL, - visit_occurrence_id integer NOT NULL ); - ---HINT DISTRIBUTE ON KEY (person_id) -CREATE TABLE @cdmDatabaseSchema.CONDITION_OCCURRENCE ( - condition_occurrence_id integer NOT NULL, - person_id integer NOT NULL, - condition_concept_id integer NOT NULL, - condition_start_date date NOT NULL, - condition_start_datetime TIMESTAMP NULL, - condition_end_date date NULL, - condition_end_datetime TIMESTAMP NULL, - condition_type_concept_id integer NOT NULL, - condition_status_concept_id integer NULL, - stop_reason varchar(20) NULL, - provider_id integer NULL, - visit_occurrence_id integer NULL, - visit_detail_id integer NULL, - condition_source_value varchar(50) NULL, - condition_source_concept_id integer NULL, - condition_status_source_value varchar(50) NULL ); - ---HINT DISTRIBUTE ON KEY (person_id) -CREATE TABLE @cdmDatabaseSchema.DRUG_EXPOSURE ( - drug_exposure_id integer NOT NULL, - person_id integer NOT NULL, - drug_concept_id integer NOT NULL, - drug_exposure_start_date date NOT NULL, - drug_exposure_start_datetime TIMESTAMP NULL, - drug_exposure_end_date date NOT NULL, - drug_exposure_end_datetime TIMESTAMP NULL, - verbatim_end_date date NULL, - drug_type_concept_id integer NOT NULL, - stop_reason varchar(20) NULL, - refills integer NULL, - quantity NUMERIC NULL, - days_supply integer NULL, - sig TEXT NULL, - route_concept_id integer NULL, - lot_number varchar(50) NULL, - provider_id integer NULL, - visit_occurrence_id integer NULL, - visit_detail_id integer NULL, - drug_source_value varchar(50) NULL, - drug_source_concept_id integer NULL, - route_source_value varchar(50) NULL, - dose_unit_source_value varchar(50) NULL ); - ---HINT DISTRIBUTE ON KEY (person_id) -CREATE TABLE @cdmDatabaseSchema.PROCEDURE_OCCURRENCE ( - procedure_occurrence_id integer NOT NULL, - person_id integer NOT NULL, - procedure_concept_id integer NOT NULL, - procedure_date date NOT NULL, - procedure_datetime TIMESTAMP NULL, - procedure_type_concept_id integer NOT NULL, - modifier_concept_id integer NULL, - quantity integer NULL, - provider_id integer NULL, - visit_occurrence_id integer NULL, - visit_detail_id integer NULL, - procedure_source_value varchar(50) NULL, - procedure_source_concept_id integer NULL, - modifier_source_value varchar(50) NULL ); - ---HINT DISTRIBUTE ON KEY (person_id) -CREATE TABLE @cdmDatabaseSchema.DEVICE_EXPOSURE ( - device_exposure_id integer NOT NULL, - person_id integer NOT NULL, - device_concept_id integer NOT NULL, - device_exposure_start_date date NOT NULL, - device_exposure_start_datetime TIMESTAMP NULL, - device_exposure_end_date date NULL, - device_exposure_end_datetime TIMESTAMP NULL, - device_type_concept_id integer NOT NULL, - unique_device_id varchar(50) NULL, - quantity integer NULL, - provider_id integer NULL, - visit_occurrence_id integer NULL, - visit_detail_id integer NULL, - device_source_value varchar(50) NULL, - device_source_concept_id integer NULL ); - ---HINT DISTRIBUTE ON KEY (person_id) -CREATE TABLE @cdmDatabaseSchema.MEASUREMENT ( - measurement_id integer NOT NULL, - person_id integer NOT NULL, - measurement_concept_id integer NOT NULL, - measurement_date date NOT NULL, - measurement_datetime TIMESTAMP NULL, - measurement_time varchar(10) NULL, - measurement_type_concept_id integer NOT NULL, - operator_concept_id integer NULL, - value_as_number NUMERIC NULL, - value_as_concept_id integer NULL, - unit_concept_id integer NULL, - range_low NUMERIC NULL, - range_high NUMERIC NULL, - provider_id integer NULL, - visit_occurrence_id integer NULL, - visit_detail_id integer NULL, - measurement_source_value varchar(50) NULL, - measurement_source_concept_id integer NULL, - unit_source_value varchar(50) NULL, - value_source_value varchar(50) NULL ); - ---HINT DISTRIBUTE ON KEY (person_id) -CREATE TABLE @cdmDatabaseSchema.OBSERVATION ( - observation_id integer NOT NULL, - person_id integer NOT NULL, - observation_concept_id integer NOT NULL, - observation_date date NOT NULL, - observation_datetime TIMESTAMP NULL, - observation_type_concept_id integer NOT NULL, - value_as_number NUMERIC NULL, - value_as_string varchar(60) NULL, - value_as_concept_id Integer NULL, - qualifier_concept_id integer NULL, - unit_concept_id integer NULL, - provider_id integer NULL, - visit_occurrence_id integer NULL, - visit_detail_id integer NULL, - observation_source_value varchar(50) NULL, - observation_source_concept_id integer NULL, - unit_source_value varchar(50) NULL, - qualifier_source_value varchar(50) NULL ); - ---HINT DISTRIBUTE ON KEY (person_id) -CREATE TABLE @cdmDatabaseSchema.DEATH ( - person_id integer NOT NULL, - death_date date NOT NULL, - death_datetime TIMESTAMP NULL, - death_type_concept_id integer NULL, - cause_concept_id integer NULL, - cause_source_value varchar(50) NULL, - cause_source_concept_id integer NULL ); - ---HINT DISTRIBUTE ON KEY (person_id) -CREATE TABLE @cdmDatabaseSchema.NOTE ( - note_id integer NOT NULL, - person_id integer NOT NULL, - note_date date NOT NULL, - note_datetime TIMESTAMP NULL, - note_type_concept_id integer NOT NULL, - note_class_concept_id integer NOT NULL, - note_title varchar(250) NULL, - note_text TEXT NOT NULL, - encoding_concept_id integer NOT NULL, - language_concept_id integer NOT NULL, - provider_id integer NULL, - visit_occurrence_id integer NULL, - visit_detail_id integer NULL, - note_source_value varchar(50) NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.NOTE_NLP ( - note_nlp_id integer NOT NULL, - note_id integer NOT NULL, - section_concept_id integer NULL, - snippet varchar(250) NULL, - "offset" varchar(50) NULL, - lexical_variant varchar(250) NOT NULL, - note_nlp_concept_id integer NULL, - note_nlp_source_concept_id integer NULL, - nlp_system varchar(250) NULL, - nlp_date date NOT NULL, - nlp_datetime TIMESTAMP NULL, - term_exists varchar(1) NULL, - term_temporal varchar(50) NULL, - term_modifiers varchar(2000) NULL ); - ---HINT DISTRIBUTE ON KEY (person_id) -CREATE TABLE @cdmDatabaseSchema.SPECIMEN ( - specimen_id integer NOT NULL, - person_id integer NOT NULL, - specimen_concept_id integer NOT NULL, - specimen_type_concept_id integer NOT NULL, - specimen_date date NOT NULL, - specimen_datetime TIMESTAMP NULL, - quantity NUMERIC NULL, - unit_concept_id integer NULL, - anatomic_site_concept_id integer NULL, - disease_status_concept_id integer NULL, - specimen_source_id varchar(50) NULL, - specimen_source_value varchar(50) NULL, - unit_source_value varchar(50) NULL, - anatomic_site_source_value varchar(50) NULL, - disease_status_source_value varchar(50) NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.FACT_RELATIONSHIP ( - domain_concept_id_1 integer NOT NULL, - fact_id_1 integer NOT NULL, - domain_concept_id_2 integer NOT NULL, - fact_id_2 integer NOT NULL, - relationship_concept_id integer NOT NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.LOCATION ( - location_id integer NOT NULL, - address_1 varchar(50) NULL, - address_2 varchar(50) NULL, - city varchar(50) NULL, - state varchar(2) NULL, - zip varchar(9) NULL, - county varchar(20) NULL, - location_source_value varchar(50) NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.CARE_SITE ( - care_site_id integer NOT NULL, - care_site_name varchar(255) NULL, - place_of_service_concept_id integer NULL, - location_id integer NULL, - care_site_source_value varchar(50) NULL, - place_of_service_source_value varchar(50) NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.PROVIDER ( - provider_id integer NOT NULL, - provider_name varchar(255) NULL, - npi varchar(20) NULL, - dea varchar(20) NULL, - specialty_concept_id integer NULL, - care_site_id integer NULL, - year_of_birth integer NULL, - gender_concept_id integer NULL, - provider_source_value varchar(50) NULL, - specialty_source_value varchar(50) NULL, - specialty_source_concept_id integer NULL, - gender_source_value varchar(50) NULL, - gender_source_concept_id integer NULL ); - ---HINT DISTRIBUTE ON KEY (person_id) -CREATE TABLE @cdmDatabaseSchema.PAYER_PLAN_PERIOD ( - payer_plan_period_id integer NOT NULL, - person_id integer NOT NULL, - payer_plan_period_start_date date NOT NULL, - payer_plan_period_end_date date NOT NULL, - payer_concept_id integer NULL, - payer_source_value varchar(50) NULL, - payer_source_concept_id integer NULL, - plan_concept_id integer NULL, - plan_source_value varchar(50) NULL, - plan_source_concept_id integer NULL, - sponsor_concept_id integer NULL, - sponsor_source_value varchar(50) NULL, - sponsor_source_concept_id integer NULL, - family_source_value varchar(50) NULL, - stop_reason_concept_id integer NULL, - stop_reason_source_value varchar(50) NULL, - stop_reason_source_concept_id integer NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.COST ( - cost_id integer NOT NULL, - cost_event_id integer NOT NULL, - cost_domain_id varchar(20) NOT NULL, - cost_type_concept_id integer NOT NULL, - currency_concept_id integer NULL, - total_charge NUMERIC NULL, - total_cost NUMERIC NULL, - total_paid NUMERIC NULL, - paid_by_payer NUMERIC NULL, - paid_by_patient NUMERIC NULL, - paid_patient_copay NUMERIC NULL, - paid_patient_coinsurance NUMERIC NULL, - paid_patient_deductible NUMERIC NULL, - paid_by_primary NUMERIC NULL, - paid_ingredient_cost NUMERIC NULL, - paid_dispensing_fee NUMERIC NULL, - payer_plan_period_id integer NULL, - amount_allowed NUMERIC NULL, - revenue_code_concept_id integer NULL, - revenue_code_source_value varchar(50) NULL, - drg_concept_id integer NULL, - drg_source_value varchar(3) NULL ); - ---HINT DISTRIBUTE ON KEY (person_id) -CREATE TABLE @cdmDatabaseSchema.DRUG_ERA ( - drug_era_id integer NOT NULL, - person_id integer NOT NULL, - drug_concept_id integer NOT NULL, - drug_era_start_date date NOT NULL, - drug_era_end_date date NOT NULL, - drug_exposure_count integer NULL, - gap_days integer NULL ); - ---HINT DISTRIBUTE ON KEY (person_id) -CREATE TABLE @cdmDatabaseSchema.DOSE_ERA ( - dose_era_id integer NOT NULL, - person_id integer NOT NULL, - drug_concept_id integer NOT NULL, - unit_concept_id integer NOT NULL, - dose_value NUMERIC NOT NULL, - dose_era_start_date date NOT NULL, - dose_era_end_date date NOT NULL ); - ---HINT DISTRIBUTE ON KEY (person_id) -CREATE TABLE @cdmDatabaseSchema.CONDITION_ERA ( - condition_era_id integer NOT NULL, - person_id integer NOT NULL, - condition_concept_id integer NOT NULL, - condition_era_start_date date NOT NULL, - condition_era_end_date date NOT NULL, - condition_occurrence_count integer NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.METADATA ( - metadata_concept_id integer NOT NULL, - metadata_type_concept_id integer NOT NULL, - name varchar(250) NOT NULL, - value_as_string varchar(250) NULL, - value_as_concept_id integer NULL, - metadata_date date NULL, - metadata_datetime TIMESTAMP NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.CDM_SOURCE ( - cdm_source_name varchar(255) NOT NULL, - cdm_source_abbreviation varchar(25) NULL, - cdm_holder varchar(255) NULL, - source_description TEXT NULL, - source_documentation_reference varchar(255) NULL, - cdm_etl_reference varchar(255) NULL, - source_release_date date NULL, - cdm_release_date date NULL, - cdm_version varchar(10) NULL, - vocabulary_version varchar(20) NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.CONCEPT ( - concept_id integer NOT NULL, - concept_name varchar(255) NOT NULL, - domain_id varchar(20) NOT NULL, - vocabulary_id varchar(20) NOT NULL, - concept_class_id varchar(20) NOT NULL, - standard_concept varchar(1) NULL, - concept_code varchar(50) NOT NULL, - valid_start_date date NOT NULL, - valid_end_date date NOT NULL, - invalid_reason varchar(1) NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.VOCABULARY ( - vocabulary_id varchar(20) NOT NULL, - vocabulary_name varchar(255) NOT NULL, - vocabulary_reference varchar(255) NOT NULL, - vocabulary_version varchar(255) NULL, - vocabulary_concept_id integer NOT NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.DOMAIN ( - domain_id varchar(20) NOT NULL, - domain_name varchar(255) NOT NULL, - domain_concept_id integer NOT NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.CONCEPT_CLASS ( - concept_class_id varchar(20) NOT NULL, - concept_class_name varchar(255) NOT NULL, - concept_class_concept_id integer NOT NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.CONCEPT_RELATIONSHIP ( - concept_id_1 integer NOT NULL, - concept_id_2 integer NOT NULL, - relationship_id varchar(20) NOT NULL, - valid_start_date date NOT NULL, - valid_end_date date NOT NULL, - invalid_reason varchar(1) NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.RELATIONSHIP ( - relationship_id varchar(20) NOT NULL, - relationship_name varchar(255) NOT NULL, - is_hierarchical varchar(1) NOT NULL, - defines_ancestry varchar(1) NOT NULL, - reverse_relationship_id varchar(20) NOT NULL, - relationship_concept_id integer NOT NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.CONCEPT_SYNONYM ( - concept_id integer NOT NULL, - concept_synonym_name varchar(1000) NOT NULL, - language_concept_id integer NOT NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.CONCEPT_ANCESTOR ( - ancestor_concept_id integer NOT NULL, - descendant_concept_id integer NOT NULL, - min_levels_of_separation integer NOT NULL, - max_levels_of_separation integer NOT NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.SOURCE_TO_CONCEPT_MAP ( - source_code varchar(50) NOT NULL, - source_concept_id integer NOT NULL, - source_vocabulary_id varchar(20) NOT NULL, - source_code_description varchar(255) NULL, - target_concept_id integer NOT NULL, - target_vocabulary_id varchar(20) NOT NULL, - valid_start_date date NOT NULL, - valid_end_date date NOT NULL, - invalid_reason varchar(1) NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.DRUG_STRENGTH ( - drug_concept_id integer NOT NULL, - ingredient_concept_id integer NOT NULL, - amount_value NUMERIC NULL, - amount_unit_concept_id integer NULL, - numerator_value NUMERIC NULL, - numerator_unit_concept_id integer NULL, - denominator_value NUMERIC NULL, - denominator_unit_concept_id integer NULL, - box_size integer NULL, - valid_start_date date NOT NULL, - valid_end_date date NOT NULL, - invalid_reason varchar(1) NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.COHORT_DEFINITION ( - cohort_definition_id integer NOT NULL, - cohort_definition_name varchar(255) NOT NULL, - cohort_definition_description TEXT NULL, - definition_type_concept_id integer NOT NULL, - cohort_definition_syntax TEXT NULL, - subject_concept_id integer NOT NULL, - cohort_initiation_date date NULL ); - ---HINT DISTRIBUTE ON RANDOM -CREATE TABLE @cdmDatabaseSchema.ATTRIBUTE_DEFINITION ( - attribute_definition_id integer NOT NULL, - attribute_name varchar(255) NOT NULL, - attribute_description TEXT NULL, - attribute_type_concept_id integer NOT NULL, - attribute_syntax TEXT NULL ); diff --git a/carrot/config/omop.json b/carrot/config/omop.json deleted file mode 100644 index b3b5b8a9..00000000 --- a/carrot/config/omop.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "datetime_linked_fields": { - "condition_occurrence": { - "condition_start_datetime": "condition_start_date", - "condition_end_datetime": "condition_end_date" - }, - "death": { - "death_datetime": "death_date" - }, - "drug_exposure": { - "drug_exposure_start_datetime": "drug_exposure_start_date", - "drug_exposure_end_datetime": "drug_exposure_end_date" - }, - "measurement": { - "measurement_datetime": "measurement_date" - }, - "observation": { - "observation_datetime": "observation_date" - }, - "procedure_occurrence": { - "procedure_datetime": "procedure_date" - }, - "specimen": { - "specimen_datetime": "specimen_date" - }, - "visit_occurrence": { - "visit_start_datetime": "visit_start_date", - "visit_end_datetime": "visit_end_date" - } - }, - "date_field_components": { - "person": { - "birth_datetime": { - "year":"year_of_birth", - "month":"month_of_birth", - "day":"day_of_birth" - } - } - }, - "person_id_field": { - "condition_occurrence": "person_id", - "death": "person_id", - "drug_exposure": "person_id", - "measurement": "person_id", - "observation": "person_id", - "person": "person_id", - "procedure_occurrence": "person_id", - "specimen": "person_id", - "visit_occurrence": "person_id" - }, - "auto_number_field": { - "condition_occurrence": "condition_occurrence_id", - "death": "death_id", - "drug_exposure": "drug_exposure_id", - "measurement": "measurement_id", - "observation": "observation_id", - "procedure_occurrence": "procedure_occurrence_id", - "specimen": "specimen_id", - "visit_occurrence": "visit_occurrence_id" - } -} diff --git a/carrot/data/.!13120!logo.png b/carrot/data/.!13120!logo.png deleted file mode 100644 index e69de29b..00000000 diff --git a/carrot/data/.!13930!logo.png b/carrot/data/.!13930!logo.png deleted file mode 100644 index e69de29b..00000000 diff --git a/carrot/data/.!24166!logo.png b/carrot/data/.!24166!logo.png deleted file mode 100644 index e69de29b..00000000 diff --git a/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-CONDITION_OCCURRENCE.csv b/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-CONDITION_OCCURRENCE.csv deleted file mode 100644 index cdc5b4a4..00000000 --- a/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-CONDITION_OCCURRENCE.csv +++ /dev/null @@ -1,16 +0,0 @@ -VARIABLE DESCRIPTION TYPE KEY MINVAL MAXVAL CHOICESET REQUIRED LENGTH VALUEFUNCTION DEFAULT VALUEFORMATREGEXP BCDBITRATE -CONDITION_OCCURRENCE_ID condition_occurrence_id Integer 1 yes -PERSON_ID person_id Integer -CONDITION_CONCEPT_ID condition_concept_id Integer -CONDITION_START_DATE condition_start_date Date -CONDITION_START_DATETIME condition_start_datetime Timestamp -CONDITION_END_DATE condition_end_date Date -CONDITION_END_DATETIME condition_end_datetime Timestamp -CONDITION_TYPE_CONCEPT_ID condition_type_concept_id Integer -STOP_REASON stop_reason Text 20 -PROVIDER_ID provider_id Integer -VISIT_OCCURRENCE_ID visit_occurrence_id Integer -CONDITION_SOURCE_VALUE condition_source_value Text 50 -CONDITION_SOURCE_CONCEPT_ID condition_source_concept_id Integer -CONDITION_STATUS_SOURCE_VALUE condition_status_source_value Text 50 -CONDITION_STATUS_CONCEPT_ID condition_status_concept_id Integer diff --git a/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-DEATH.csv b/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-DEATH.csv deleted file mode 100644 index a37bd9fe..00000000 --- a/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-DEATH.csv +++ /dev/null @@ -1,8 +0,0 @@ -VARIABLE DESCRIPTION TYPE KEY MINVAL MAXVAL CHOICESET REQUIRED LENGTH VALUEFUNCTION DEFAULT VALUEFORMATREGEXP BCDBITRATE -PERSON_ID person_id Integer 1 yes -DEATH_DATE death_date Date -DEATH_DATETIME death_datetime Timestamp -DEATH_TYPE_CONCEPT_ID death_type_concept_id Integer -CAUSE_CONCEPT_ID cause_concept_id Integer -CAUSE_SOURCE_VALUE cause_source_value Text 50 -CAUSE_SOURCE_CONCEPT_ID cause_source_concept_id Integer \ No newline at end of file diff --git a/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-DRUG_EXPOSURE.csv b/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-DRUG_EXPOSURE.csv deleted file mode 100644 index db3921aa..00000000 --- a/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-DRUG_EXPOSURE.csv +++ /dev/null @@ -1,23 +0,0 @@ -VARIABLE DESCRIPTION TYPE KEY MINVAL MAXVAL CHOICESET REQUIRED LENGTH VALUEFUNCTION DEFAULT VALUEFORMATREGEXP BCDBITRATE -DRUG_EXPOSURE_ID drug_exposure_id Integer 1 yes -PERSON_ID person_id Integer -DRUG_CONCEPT_ID drug_concept_id Integer -DRUG_EXPOSURE_START_DATE drug_exposure_start_date Date -DRUG_EXPOSURE_START_DATETIME drug_exposure_start_datetime Timestamp -DRUG_EXPOSURE_END_DATE drug_exposure_end_date Date -DRUG_EXPOSURE_END_DATETIME drug_exposure_end_datetime Timestamp -VERBATIM_END_DATE verbatim_end_date Date -DRUG_TYPE_CONCEPT_ID drug_type_concept_id Integer -STOP_REASON stop_reason Text 20 -REFILLS refills Integer -QUANTITY quantity Float -DAYS_SUPPLY days_supply Integer -SIG sig Integer -ROUTE_CONCEPT_ID route_concept_id Integer -LOT_NUMBER lot_number Text 50 -PROVIDER_ID provider_id Integer -VISIT_OCCURRENCE_ID visit_occurrence_id Integer -DRUG_SOURCE_VALUE drug_source_value Text 50 -DRUG_SOURCE_CONCEPT_ID drug_source_concept_id Integer -ROUTE_SOURCE_VALUE route_source_value Text 50 -DOSE_UNIT_SOURCE_VALUE dose_unit_source_value Text 50 diff --git a/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-MEASUREMENT.csv b/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-MEASUREMENT.csv deleted file mode 100644 index f2f34680..00000000 --- a/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-MEASUREMENT.csv +++ /dev/null @@ -1,19 +0,0 @@ -VARIABLE DESCRIPTION TYPE KEY MINVAL MAXVAL CHOICESET REQUIRED LENGTH VALUEFUNCTION DEFAULT VALUEFORMATREGEXP BCDBITRATE -MEASUREMENT_ID measurement_id Integer 1 yes -PERSON_ID person_id Integer -MEASUREMENT_CONCEPT_ID measurement_concept_id Integer -MEASUREMENT_DATE measurement_date Date -MEASUREMENT_DATETIME measurement_datetime Timestamp -MEASUREMENT_TYPE_CONCEPT_ID measurement_type_concept_id Integer -OPERATOR_CONCEPT_ID operator_concept_id Integer -VALUE_AS_NUMBER value_as_number Float -VALUE_AS_CONCEPT_ID value_as_concept_id Integer -UNIT_CONCEPT_ID unit_concept_id Integer -RANGE_LOW range_low Float -RANGE_HIGH range_high Float -PROVIDER_ID provider_id Integer -VISIT_OCCURRENCE_ID visit_occurrence_id Integer -MEASUREMENT_SOURCE_VALUE measurement_source_value Text 50 -MEASUREMENT_SOURCE_CONCEPT_ID measurement_source_concept_id Integer -UNIT_SOURCE_VALUE unit_source_value Text 50 -VALUE_SOURCE_VALUE value_source_value Text 50 diff --git a/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-OBSERVATION.csv b/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-OBSERVATION.csv deleted file mode 100644 index 0ff15c75..00000000 --- a/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-OBSERVATION.csv +++ /dev/null @@ -1,18 +0,0 @@ -VARIABLE DESCRIPTION TYPE KEY MINVAL MAXVAL CHOICESET REQUIRED LENGTH VALUEFUNCTION DEFAULT VALUEFORMATREGEXP BCDBITRATE -OBSERVATION_ID observation_id Integer 1 yes -PERSON_ID person_id Integer -OBSERVATION_CONCEPT_ID observation_concept_id Integer -OBSERVATION_DATE observation_date Date -OBSERVATION_DATETIME observation_datetime Timestamp -OBSERVATION_TYPE_CONCEPT_ID observation_type_concept_id Integer -VALUE_AS_NUMBER value_as_number Float -VALUE_AS_STRING value_as_string Text 60 -VALUE_AS_CONCEPT_ID value_as_concept_id Integer -QUALIFIER_CONCEPT_ID qualifier_concept_id Integer -UNIT_CONCEPT_ID unit_concept_id Integer -PROVIDER_ID provider_id Integer -VISIT_OCCURRENCE_ID visit_occurrence_id Integer -OBSERVATION_SOURCE_VALUE observation_source_value Text 50 -OBSERVATION_SOURCE_CONCEPT_ID observation_source_concept_id Integer -UNIT_SOURCE_VALUE unit_source_value Text 50 -QUALIFIER_SOURCE_VALUE qualifier_source_value Text 50 diff --git a/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-PERSON.csv b/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-PERSON.csv deleted file mode 100644 index c3fae554..00000000 --- a/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-PERSON.csv +++ /dev/null @@ -1,19 +0,0 @@ -VARIABLE DESCRIPTION TYPE KEY MINVAL MAXVAL CHOICESET REQUIRED LENGTH VALUEFUNCTION DEFAULT VALUEFORMATREGEXP BCDBITRATE -PERSON_ID person_id Integer 1 yes -GENDER_CONCEPT_ID gender_concept_id Integer -YEAR_OF_BIRTH year_of_birth Integer -MONTH_OF_BIRTH month_of_birth Integer -DAY_OF_BIRTH day_of_birth Integer -BIRTH_DATETIME birth_datetime Timestamp -RACE_CONCEPT_ID race_concept_id Integer -ETHNICITY_CONCEPT_ID ethnicity_concept_id Integer -LOCATION_ID location_id Integer -PROVIDER_ID provider_id Integer -CARE_SITE_ID care_site_id Integer -PERSON_SOURCE_VALUE person_source_value Text 50 -GENDER_SOURCE_VALUE gender_source_value Text 50 -GENDER_SOURCE_CONCEPT_ID gender_source_concept_id Integer -RACE_SOURCE_VALUE race_source_value Text 50 -RACE_SOURCE_CONCEPT_ID race_source_concept_id Integer -ETHNICITY_SOURCE_VALUE ethnicity_source_value Text 50 -ETHNICITY_SOURCE_CONCEPT_ID ethnicity_source_concept_id Integer diff --git a/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-PROCEDURE_OCCURRENCE.csv b/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-PROCEDURE_OCCURRENCE.csv deleted file mode 100644 index f6fc1a44..00000000 --- a/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-PROCEDURE_OCCURRENCE.csv +++ /dev/null @@ -1,14 +0,0 @@ -VARIABLE DESCRIPTION TYPE KEY MINVAL MAXVAL CHOICESET REQUIRED LENGTH VALUEFUNCTION DEFAULT VALUEFORMATREGEXP BCDBITRATE -PROCEDURE_OCCURRENCE_ID procedure_occurrence_id Integer 1 yes -PERSON_ID person_id Integer -PROCEDURE_CONCEPT_ID procedure_concept_id Integer -PROCEDURE_DATE procedure_date Date -PROCEDURE_DATETIME procedure_datetime Timestamp -PROCEDURE_TYPE_CONCEPT_ID procedure_type_concept_id Integer -MODIFIER_CONCEPT_ID modifier_concept_id Integer -QUANTITY quantity Integer -PROVIDER_ID provider_id Integer -VISIT_OCCURRENCE_ID visit_occurrence_id Integer -PROCEDURE_SOURCE_VALUE procedure_source_value Text 50 -PROCEDURE_SOURCE_CONCEPT_ID procedure_source_concept_id Integer -QUALIFIER_SOURCE_VALUE qualifier_source_value Text 50 \ No newline at end of file diff --git a/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-SPECIMEN.csv b/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-SPECIMEN.csv deleted file mode 100644 index 4430db57..00000000 --- a/carrot/data/cdm/BCLINK_EXPORT/5.3.1/export-SPECIMEN.csv +++ /dev/null @@ -1,16 +0,0 @@ -VARIABLE DESCRIPTION TYPE KEY MINVAL MAXVAL CHOICESET REQUIRED LENGTH VALUEFUNCTION DEFAULT VALUEFORMATREGEXP BCDBITRATE -SPECIMEN_ID specimen_id Integer 1 yes -PERSON_ID person_id Integer -SPECIMEN_CONCEPT_ID specimen_concept_id Integer -SPECIMEN_TYPE_CONCEPT_ID specimen_type_concept_id Integer -SPECIMEN_DATE specimen_date Date -SPECIMEN_DATETIME specimen_datetime Timestamp -QUANTITY quantity Float -UNIT_CONCEPT_ID unit_concept_id Integer -ANATOMIC_SITE_CONCEPT_ID anatomic_site_concept_id Integer -DISEASE_STATUS_CONCEPT_ID disease_status_concept_id Integer -SPECIMEN_SOURCE_ID specimen_source_id Text 50 -SPECIMEN_SOURCE_VALUE specimen_source_value Text 50 -UNIT_SOURCE_VALUE unit_source_value Text 50 -ANATOMIC_SITE_SOURCE_VALUE anatomic_site_source_value Text 50 -DISEASE_STATUS_SOURCE_VALUE disease_status_source_value Text 50 \ No newline at end of file diff --git a/carrot/data/cdm/BCLINK_EXPORT/5.3.1/notes.md b/carrot/data/cdm/BCLINK_EXPORT/5.3.1/notes.md deleted file mode 100644 index b0e74ea9..00000000 --- a/carrot/data/cdm/BCLINK_EXPORT/5.3.1/notes.md +++ /dev/null @@ -1,4 +0,0 @@ -Example: -``` -datasettool2 export-form PROCEDURE_OCCURRENCE --database bclink -``` diff --git a/carrot/data/config/omop.json b/carrot/data/config/omop.json deleted file mode 100644 index b3b5b8a9..00000000 --- a/carrot/data/config/omop.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "datetime_linked_fields": { - "condition_occurrence": { - "condition_start_datetime": "condition_start_date", - "condition_end_datetime": "condition_end_date" - }, - "death": { - "death_datetime": "death_date" - }, - "drug_exposure": { - "drug_exposure_start_datetime": "drug_exposure_start_date", - "drug_exposure_end_datetime": "drug_exposure_end_date" - }, - "measurement": { - "measurement_datetime": "measurement_date" - }, - "observation": { - "observation_datetime": "observation_date" - }, - "procedure_occurrence": { - "procedure_datetime": "procedure_date" - }, - "specimen": { - "specimen_datetime": "specimen_date" - }, - "visit_occurrence": { - "visit_start_datetime": "visit_start_date", - "visit_end_datetime": "visit_end_date" - } - }, - "date_field_components": { - "person": { - "birth_datetime": { - "year":"year_of_birth", - "month":"month_of_birth", - "day":"day_of_birth" - } - } - }, - "person_id_field": { - "condition_occurrence": "person_id", - "death": "person_id", - "drug_exposure": "person_id", - "measurement": "person_id", - "observation": "person_id", - "person": "person_id", - "procedure_occurrence": "person_id", - "specimen": "person_id", - "visit_occurrence": "person_id" - }, - "auto_number_field": { - "condition_occurrence": "condition_occurrence_id", - "death": "death_id", - "drug_exposure": "drug_exposure_id", - "measurement": "measurement_id", - "observation": "observation_id", - "procedure_occurrence": "procedure_occurrence_id", - "specimen": "specimen_id", - "visit_occurrence": "visit_occurrence_id" - } -} diff --git a/carrot/data/example/sample_config/lion_structural_mapping.json b/carrot/data/example/sample_config/lion_structural_mapping.json deleted file mode 100644 index 41c48efa..00000000 --- a/carrot/data/example/sample_config/lion_structural_mapping.json +++ /dev/null @@ -1,295 +0,0 @@ -{ - "metadata": { - "datapartner": "University of Nottingham Trent", - "dataset": "Lion", - "date_created": "2021-03-17T22:10:31.022137", - "person_id": { - "demo.csv": "study number", - "questions.csv": "study id" - } - }, - "cdm": { - "person": { - "person": { - "birth_datetime": { - "source_table": "demo.csv", - "source_field": "dob", - "term_mapping": null, - "operations": [ - "get_datetime" - ] - }, - "day_of_birth": { - "source_table": "demo.csv", - "source_field": "dob", - "term_mapping": null, - "operations": [ - "get_day" - ] - }, - "gender_concept_id": { - "source_table": "demo.csv", - "source_field": "gender", - "term_mapping": { - "F": 8532, - "M": 8507 - } - }, - "gender_source_concept_id": { - "source_table": "demo.csv", - "source_field": "gender", - "term_mapping": { - "F": 8532, - "M": 8507 - } - }, - "gender_source_value": { - "source_table": "demo.csv", - "source_field": "gender", - "term_mapping": null - }, - "month_of_birth": { - "source_table": "demo.csv", - "source_field": "dob", - "term_mapping": null, - "operations": [ - "get_month" - ] - }, - "person_id": { - "source_table": "demo.csv", - "source_field": "study number", - "term_mapping": null - }, - "race_concept_id": { - "source_table": "demo.csv", - "source_field": "ethnicity", - "term_mapping": { - "WHITE BRITISH": 4196428, - "BLACK CARIBBEAN": 4087917 - } - }, - "race_source_concept_id": { - "source_table": "demo.csv", - "source_field": "ethnicity", - "term_mapping": { - "WHITE BRITISH": 123456, - "BLACK CARIBBEAN": 123422 - } - }, - "race_source_value": { - "source_table": "demo.csv", - "source_field": "ethnicity", - "term_mapping": null - }, - "year_of_birth": { - "source_table": "demo.csv", - "source_field": "dob", - "term_mapping": null, - "operations": [ - "get_year" - ] - } - } - }, - "condition_occurrence": { - "headache": { - "condition_end_date": { - "source_table": "questions.csv", - "source_field": "date of visit", - "term_mapping": null, - "operations": [ - "get_date" - ] - }, - "condition_end_datetime": { - "source_table": "questions.csv", - "source_field": "date of visit", - "term_mapping": null, - "operations": [ - "get_datetime" - ] - - }, - "condition_start_date": { - "source_table": "questions.csv", - "source_field": "date of visit", - "term_mapping": null, - "operations": [ - "get_date" - ] - }, - "condition_start_datetime": { - "source_table": "questions.csv", - "source_field": "date of visit", - "term_mapping": null, - "operations": [ - "get_datetime" - ] - }, - "person_id": { - "source_table": "questions.csv", - "source_field": "study id", - "term_mapping": null - }, - "condition_source_value": { - "source_table": "questions.csv", - "source_field": "headache", - "term_mapping": null - }, - "condition_source_concept_id": { - "source_table": "questions.csv", - "source_field": "headache", - "term_mapping": { - "Y": 378253, - "Yes": 378253 - } - }, - "condition_concept_id": { - "source_table": "questions.csv", - "source_field": "headache", - "term_mapping": { - "Y": 378253, - "Yes": 378253 - } - } - }, - "sore throat": { - "condition_end_date": { - "source_table": "questions.csv", - "source_field": "date of visit", - "term_mapping": null, - "operations": [ - "get_date" - ] - }, - "condition_end_datetime": { - "source_table": "questions.csv", - "source_field": "date of visit", - "term_mapping": null, - "operations": [ - "get_datetime" - ] - }, - "condition_start_date": { - "source_table": "questions.csv", - "source_field": "date of visit", - "term_mapping": null, - "operations": [ - "get_date" - ] - }, - "condition_start_datetime": { - "source_table": "questions.csv", - "source_field": "date of visit", - "term_mapping": null, - "operations": [ - "get_datetime" - ] - }, - "person_id": { - "source_table": "questions.csv", - "source_field": "study id", - "term_mapping": null - }, - "condition_source_value": { - "source_table": "questions.csv", - "source_field": "sore throat", - "term_mapping": null - }, - "condition_source_concept_id": { - "source_table": "questions.csv", - "source_field": "sore throat", - "term_mapping": { - "Y": 4147326, - "Yes": 4147326 - } - }, - "condition_concept_id": { - "source_table": "questions.csv", - "source_field": "sore throat", - "term_mapping": { - "Y": 4147326, - "Yes": 4147326 - } - } - } - }, - "observation": { - "smoker": { - "observation_concept_id": { - "source_table": "demo.csv", - "source_field": "smoker", - "term_mapping": { - "y": "40766945" - } - }, - "observation_datetime": { - "source_table": "demo.csv", - "source_field": "consent date", - "term_mapping": null, - "operations": [ - "get_datetime" - ] - }, - "observation_source_concept_id": { - "source_table": "demo.csv", - "source_field": "smoker", - "term_mapping": { - "y": "40766945" - } - }, - "observation_source_value": { - "source_table": "demo.csv", - "source_field": "smoker", - "term_mapping": null, - "operations": [ - "get_source_field_name_as_value" - ] - }, - "person_id": { - "source_table": "demo.csv", - "source_field": "study number", - "term_mapping": null - } - } - }, - "measurement": { - "antibodies": { - "measurement_concept_id": { - "source_table": "demo.csv", - "source_field": "antibody", - "term_mapping": "4022977" - }, - "measurement_datetime": { - "source_table": "demo.csv", - "source_field": "consent date", - "term_mapping": null, - "operations": [ - "get_datetime" - ] - }, - "measurement_source_concept_id": { - "source_table": "demo.csv", - "source_field": "antibody", - "term_mapping": "4022977" - }, - "measurement_source_value": { - "source_table": "demo.csv", - "source_field": "antibody", - "term_mapping": null - }, - "person_id": { - "source_table": "demo.csv", - "source_field": "study number", - "term_mapping": null - }, - "value_as_number": { - "source_table": "demo.csv", - "source_field": "antibody", - "term_mapping": null - } - } - } - } -} diff --git a/carrot/data/example/sample_input_data/demo.csv b/carrot/data/example/sample_input_data/demo.csv deleted file mode 100644 index a0c1c4c0..00000000 --- a/carrot/data/example/sample_input_data/demo.csv +++ /dev/null @@ -1,5 +0,0 @@ -study number,consent date,gender,dob,group,smoker,diabetic,ethnicity,antibody -1,02/05/2020,F,18/07/1962,NURSE,y,n,WHITE BRITISH,0.7 -2,02/05/2020,M,01/03/1972,NURSE,n,n,WHITE BRITISH,0.2 -3,03/05/2020,F,23/01/1979,DOCTOR,y,y,BLACK CARIBBEAN,0.1 -4,04/05/2020,F,13/09/1991,NURSE,n,y,WHITE BRITISH,0.6 \ No newline at end of file diff --git a/carrot/data/example/sample_input_data/questions.csv b/carrot/data/example/sample_input_data/questions.csv deleted file mode 100644 index 80e439d8..00000000 --- a/carrot/data/example/sample_input_data/questions.csv +++ /dev/null @@ -1,13 +0,0 @@ -id,date of visit,study id,visit number,headache,sore throat -101,01/05/2020,1,1,Y,N -102,01/05/2020,2,1,N,Y -103,01/05/2020,3,1,N,N -104,01/05/2020,4,1,Y,Y -105,20/05/2020,1,2,N,N -106,21/05/2020,2,2,Y,Y -107,21/05/2020,3,2,Y,N -108,22/05/2020,4,2,Y,Y -105,02/06/2020,1,3,N,Y -106,02/06/2020,2,3,Y,Y -107,02/06/2020,3,3,Y,Y -108,02/06/2020,4,3,Y,N diff --git a/carrot/data/logo.png b/carrot/data/logo.png deleted file mode 100644 index ebe55bdf..00000000 Binary files a/carrot/data/logo.png and /dev/null differ diff --git a/carrot/data/test/automation/example-full.yml b/carrot/data/test/automation/example-full.yml deleted file mode 100644 index 290957bc..00000000 --- a/carrot/data/test/automation/example-full.yml +++ /dev/null @@ -1,18 +0,0 @@ -clean: true -rules: /usr/lib/bcos/OMOP-test-data/tests_06Oct/rules.json -log: /usr/lib/bcos/OMOP-test-data/tests_06Oct/etl.log -data: - watch: - seconds: 5 - input: /usr/lib/bcos/OMOP-test-data/tests_06Oct/data - output: /usr/lib/bcos/OMOP-test-data/tests_06Oct/output - pseudonymise: - output: /usr/lib/bcos/OMOP-test-data/tests_06Oct/pseudo_data - salt: 00ed1234da -bclink: - global_ids: ids_001 - tables: - person: person_001 - observation: observation_001 - condition_occurrence: condition_occurrence_001 - measurement: measurement_001 diff --git a/carrot/data/test/automation/example.yml b/carrot/data/test/automation/example.yml deleted file mode 100644 index ab37a4df..00000000 --- a/carrot/data/test/automation/example.yml +++ /dev/null @@ -1,14 +0,0 @@ -transform: - data: - - input: inputs/ - rules: rules/rules_14June2021.json - output: - cache: output/ - bclink: - dry_run: true - tables: - person_ids: ds00000 - person: person_001 - observation: observation_001 - measurement: measurement_001 - condition_occurrence: condition_occurrence_001 diff --git a/carrot/data/test/expected_outputs/condition_occurrence.tsv b/carrot/data/test/expected_outputs/condition_occurrence.tsv deleted file mode 100644 index 55f840fb..00000000 --- a/carrot/data/test/expected_outputs/condition_occurrence.tsv +++ /dev/null @@ -1,401 +0,0 @@ -condition_occurrence_id person_id condition_concept_id condition_start_date condition_start_datetime condition_end_date condition_end_datetime condition_type_concept_id stop_reason provider_id visit_occurrence_id condition_source_value condition_source_concept_id condition_status_source_value condition_status_concept_id -1 601 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -2 602 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -3 1 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -4 3 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -5 6 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -6 7 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -7 8 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -8 606 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -9 607 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -10 12 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -11 610 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -12 15 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -13 17 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -14 18 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -15 20 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -16 613 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -17 21 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -18 613 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -19 24 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -20 617 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -21 617 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -22 25 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -23 29 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -24 30 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -25 31 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -26 621 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -27 34 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -28 35 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -29 34 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -30 624 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -31 39 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -32 40 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -33 39 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -34 40 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -35 41 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -36 44 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -37 629 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -38 630 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -39 46 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -40 50 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -41 633 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -42 634 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -43 54 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -44 636 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -45 636 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -46 55 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -47 56 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -48 57 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -49 639 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -50 640 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -51 61 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -52 643 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -53 642 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -54 643 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -55 64 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -56 644 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -57 68 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -58 647 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -59 70 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -60 73 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -61 649 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -62 73 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -63 77 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -64 78 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -65 78 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -66 79 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -67 655 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -68 656 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -69 656 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -70 83 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -71 84 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -72 87 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -73 658 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -74 89 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -75 90 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -76 92 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -77 92 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -78 663 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -79 94 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -80 96 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -81 98 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -82 100 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -83 101 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -84 102 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -85 668 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -86 103 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -87 106 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -88 107 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -89 107 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -90 672 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -91 109 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -92 112 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -93 112 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -94 675 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -95 117 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -96 118 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -97 117 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -98 677 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -99 119 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -100 122 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -101 122 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -102 123 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -103 126 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -104 684 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -105 128 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -106 686 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -107 687 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -108 688 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -109 687 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -110 688 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -111 133 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -112 689 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -113 136 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -114 693 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -115 140 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -116 141 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -117 143 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -118 694 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -119 697 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -120 698 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -121 697 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -122 699 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -123 700 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -124 150 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -125 700 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -126 701 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -127 152 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -128 154 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -129 155 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -130 156 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -131 157 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -132 707 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -133 159 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -134 160 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -135 162 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -136 166 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -137 166 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -138 709 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -139 710 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -140 168 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -141 713 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -142 714 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -143 715 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -144 716 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -145 174 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -146 717 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -147 175 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -148 718 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -149 720 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -150 179 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -151 181 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -152 184 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -153 183 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -154 185 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -155 186 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -156 725 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -157 188 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -158 189 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -159 726 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -160 193 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -161 193 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -162 194 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -163 730 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -164 197 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -165 197 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -166 201 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -167 202 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -168 203 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -169 203 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -170 736 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -171 737 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -172 738 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -173 738 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -174 208 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -175 209 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -176 740 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -177 213 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -178 215 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -179 744 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -180 217 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -181 745 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -182 218 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -183 746 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -184 220 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -185 221 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -186 749 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -187 750 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -188 227 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -189 751 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -190 752 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -191 228 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -192 229 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -193 232 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -194 233 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -195 757 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -196 758 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -197 236 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -198 758 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -199 237 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -200 761 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -201 761 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -202 762 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -203 243 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -204 245 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -205 246 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -206 765 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -207 250 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -208 251 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -209 768 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -210 253 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -211 771 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -212 254 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -213 255 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -214 257 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -215 259 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -216 261 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -217 262 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -218 263 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -219 264 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -220 778 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -221 778 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -222 266 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -223 267 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -224 269 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -225 270 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -226 781 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -227 271 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -228 783 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -229 783 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -230 275 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -231 279 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -232 281 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -233 280 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -234 789 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -235 284 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -236 285 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -237 286 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -238 790 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -239 791 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -240 289 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -241 794 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -242 290 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -243 796 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -244 294 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -245 796 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -246 294 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -247 295 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -248 298 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -249 800 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -250 801 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -251 302 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -252 303 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -253 302 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -254 804 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -255 305 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -256 805 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -257 311 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -258 808 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -259 313 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -260 314 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -261 314 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -262 810 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -263 317 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -264 318 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -265 317 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -266 319 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -267 815 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -268 816 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -269 324 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -270 819 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -271 820 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -272 326 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -273 326 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -274 328 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -275 329 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -276 333 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -277 332 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -278 333 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -279 822 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -280 336 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -281 825 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -282 337 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -283 827 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -284 338 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -285 828 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -286 345 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -287 347 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -288 348 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -289 348 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -290 832 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -291 351 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -292 834 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -293 352 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -294 353 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -295 354 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -296 357 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -297 357 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -298 838 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -299 361 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -300 841 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -301 361 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -302 363 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -303 365 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -304 366 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -305 844 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -306 367 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -307 368 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -308 372 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -309 373 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -310 375 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -311 376 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -312 377 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -313 850 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -314 851 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -315 380 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -316 854 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -317 380 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -318 855 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -319 381 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -320 384 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -321 857 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -322 385 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -323 386 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -324 387 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -325 859 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -326 392 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -327 394 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -328 395 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -329 396 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -330 397 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -331 865 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -332 866 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -333 400 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -334 866 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -335 867 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -336 869 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -337 870 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -338 404 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -339 405 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -340 873 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -341 410 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -342 411 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -343 413 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -344 414 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -345 413 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -346 878 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -347 415 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -348 880 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -349 417 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -350 419 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -351 425 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -352 881 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -353 425 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -354 883 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -355 428 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -356 429 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -357 885 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -358 887 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -359 432 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -360 889 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -361 434 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -362 890 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -363 891 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -364 437 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -365 437 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -366 894 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -367 895 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -368 443 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -369 444 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -370 896 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -371 897 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -372 900 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -373 900 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -374 446 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -375 447 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -376 453 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -377 452 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -378 903 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -379 904 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -380 906 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -381 905 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -382 457 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -383 907 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -384 462 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -385 461 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -386 464 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -387 467 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -388 911 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -389 468 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -390 469 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -391 913 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -392 914 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -393 914 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -394 915 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -395 473 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -396 474 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 -397 475 254761 2020-01-04 2020-01-04 00:00:00.000000 2020-01-04 2020-01-04 00:00:00.000000 Y 254761 -398 478 254761 2020-07-27 2020-07-27 00:00:00.000000 2020-07-27 2020-07-27 00:00:00.000000 Y 254761 -399 920 254761 2020-03-27 2020-03-27 00:00:00.000000 2020-03-27 2020-03-27 00:00:00.000000 Y 254761 -400 481 254761 2020-11-15 2020-11-15 00:00:00.000000 2020-11-15 2020-11-15 00:00:00.000000 Y 254761 diff --git a/carrot/data/test/expected_outputs/measurement.tsv b/carrot/data/test/expected_outputs/measurement.tsv deleted file mode 100644 index d739c846..00000000 --- a/carrot/data/test/expected_outputs/measurement.tsv +++ /dev/null @@ -1,1001 +0,0 @@ -measurement_id person_id measurement_concept_id measurement_date measurement_datetime measurement_type_concept_id operator_concept_id value_as_number value_as_concept_id unit_concept_id range_low range_high provider_id visit_occurrence_id measurement_source_value measurement_source_concept_id unit_source_value value_source_value -1 601 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -2 602 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -3 1 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -4 2 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -5 3 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -6 603 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -7 4 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -8 604 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -9 5 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -10 6 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -11 7 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -12 8 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -13 9 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -14 10 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -15 605 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -16 11 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -17 606 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -18 607 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -19 608 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -20 12 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -21 609 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -22 13 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -23 14 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -24 610 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -25 611 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -26 15 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -27 16 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -28 17 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -29 18 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -30 612 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -31 19 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -32 20 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -33 21 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -34 613 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -35 614 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -36 615 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -37 616 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -38 22 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -39 23 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -40 24 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -41 617 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -42 25 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -43 26 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -44 27 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -45 618 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -46 28 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -47 619 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -48 29 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -49 620 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -50 30 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -51 31 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -52 621 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -53 622 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -54 32 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -55 623 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -56 33 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -57 34 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -58 35 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -59 624 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -60 36 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -61 37 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -62 38 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -63 625 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -64 626 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -65 39 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -66 40 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -67 627 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -68 41 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -69 628 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -70 42 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -71 43 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -72 44 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -73 45 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -74 629 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -75 630 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -76 46 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -77 47 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -78 631 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -79 632 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -80 48 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -81 49 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -82 50 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -83 51 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -84 633 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -85 634 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -86 52 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -87 635 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -88 53 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -89 54 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -90 636 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -91 55 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -92 56 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -93 57 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -94 637 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -95 638 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -96 58 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -97 639 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -98 640 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -99 59 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -100 60 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -101 61 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -102 641 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -103 62 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -104 63 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -105 642 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -106 643 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -107 64 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -108 65 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -109 644 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -110 66 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -111 645 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -112 646 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -113 67 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -114 68 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -115 69 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -116 647 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -117 70 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -118 648 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -119 71 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -120 72 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -121 649 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -122 73 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -123 74 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -124 650 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -125 651 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -126 75 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -127 76 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -128 77 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -129 652 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -130 78 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -131 79 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -132 653 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -133 80 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -134 654 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -135 81 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -136 655 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -137 82 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -138 656 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -139 83 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -140 84 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -141 657 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -142 85 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -143 86 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -144 87 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -145 88 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -146 658 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -147 89 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -148 659 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -149 90 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -150 660 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -151 661 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -152 662 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -153 91 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -154 92 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -155 663 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -156 93 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -157 94 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -158 95 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -159 664 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -160 96 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -161 97 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -162 98 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -163 99 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -164 100 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -165 101 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -166 665 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -167 666 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -168 102 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -169 667 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -170 668 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -171 669 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -172 103 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -173 670 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -174 104 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -175 105 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -176 106 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -177 671 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -178 107 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -179 108 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -180 672 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -181 109 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -182 673 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -183 110 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -184 111 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -185 674 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -186 112 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -187 113 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -188 675 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -189 676 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -190 114 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -191 115 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -192 116 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -193 117 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -194 118 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -195 677 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -196 678 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -197 119 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -198 679 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -199 680 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -200 120 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -201 121 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -202 122 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -203 123 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -204 124 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -205 681 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -206 682 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -207 125 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -208 126 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -209 683 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -210 684 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -211 127 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -212 128 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -213 685 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -214 129 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -215 130 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -216 686 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -217 687 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -218 688 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -219 131 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -220 132 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -221 133 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -222 134 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -223 135 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -224 689 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -225 690 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -226 136 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -227 691 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -228 137 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -229 692 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -230 138 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -231 139 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -232 693 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -233 140 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -234 141 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -235 142 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -236 143 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -237 694 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -238 695 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -239 696 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -240 144 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -241 697 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -242 698 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -243 145 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -244 699 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -245 146 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -246 147 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -247 148 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -248 149 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -249 700 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -250 150 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -251 701 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -252 151 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -253 152 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -254 702 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -255 153 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -256 703 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -257 154 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -258 704 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -259 155 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -260 156 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -261 157 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -262 158 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -263 705 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -264 706 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -265 707 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -266 159 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -267 160 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -268 161 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -269 162 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -270 708 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -271 163 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -272 164 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -273 165 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -274 166 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -275 709 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -276 710 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -277 167 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -278 711 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -279 712 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -280 168 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -281 169 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -282 713 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -283 714 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -284 170 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -285 171 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -286 172 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -287 173 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -288 715 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -289 174 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -290 716 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -291 717 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -292 175 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -293 718 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -294 176 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -295 177 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -296 178 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -297 719 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -298 720 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -299 179 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -300 180 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -301 181 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -302 721 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -303 182 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -304 722 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -305 183 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -306 184 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -307 185 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -308 723 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -309 186 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -310 724 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -311 187 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -312 725 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -313 188 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -314 189 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -315 190 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -316 726 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -317 727 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -318 191 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -319 728 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -320 192 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -321 193 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -322 194 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -323 729 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -324 730 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -325 195 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -326 731 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -327 196 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -328 732 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -329 197 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -330 198 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -331 733 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -332 734 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -333 199 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -334 735 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -335 200 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -336 201 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -337 202 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -338 203 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -339 736 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -340 204 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -341 737 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -342 205 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -343 206 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -344 207 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -345 738 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -346 208 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -347 739 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -348 209 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -349 740 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -350 210 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -351 741 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -352 211 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -353 212 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -354 213 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -355 742 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -356 214 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -357 215 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -358 743 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -359 216 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -360 744 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -361 745 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -362 217 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -363 218 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -364 746 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -365 747 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -366 219 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -367 748 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -368 220 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -369 221 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -370 222 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -371 749 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -372 223 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -373 224 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -374 225 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -375 226 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -376 750 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -377 227 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -378 751 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -379 752 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -380 228 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -381 229 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -382 230 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -383 753 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -384 754 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -385 231 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -386 755 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -387 756 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -388 232 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -389 233 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -390 234 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -391 235 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -392 757 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -393 236 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -394 758 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -395 759 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -396 237 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -397 238 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -398 760 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -399 239 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -400 240 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -401 761 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -402 241 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -403 762 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -404 242 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -405 243 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -406 763 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -407 764 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -408 244 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -409 245 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -410 246 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -411 765 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -412 247 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -413 248 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -414 249 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -415 766 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -416 250 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -417 767 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -418 251 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -419 768 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -420 252 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -421 253 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -422 769 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -423 770 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -424 771 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -425 254 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -426 255 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -427 772 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -428 256 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -429 257 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -430 258 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -431 773 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -432 259 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -433 260 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -434 261 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -435 262 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -436 774 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -437 263 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -438 775 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -439 776 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -440 264 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -441 777 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -442 778 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -443 265 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -444 266 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -445 267 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -446 268 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -447 779 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -448 269 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -449 270 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -450 780 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -451 781 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -452 271 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -453 782 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -454 272 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -455 273 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -456 274 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -457 783 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -458 275 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -459 276 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -460 784 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -461 277 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -462 278 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -463 785 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -464 279 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -465 280 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -466 281 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -467 786 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -468 787 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -469 788 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -470 282 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -471 283 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -472 789 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -473 284 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -474 285 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -475 286 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -476 790 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -477 791 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -478 792 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -479 287 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -480 288 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -481 289 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -482 793 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -483 794 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -484 290 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -485 795 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -486 291 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -487 292 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -488 293 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -489 796 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -490 294 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -491 295 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -492 296 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -493 797 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -494 798 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -495 297 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -496 298 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -497 799 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -498 299 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -499 800 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -500 300 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -501 801 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -502 802 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -503 803 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -504 301 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -505 302 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -506 303 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -507 304 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -508 804 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -509 305 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -510 306 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -511 307 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -512 805 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -513 308 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -514 309 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -515 310 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -516 311 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -517 806 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -518 312 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -519 807 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -520 808 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -521 313 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -522 314 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -523 315 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -524 809 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -525 810 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -526 811 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -527 812 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -528 316 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -529 317 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -530 318 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -531 319 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -532 813 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -533 320 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -534 321 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -535 814 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -536 815 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -537 322 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -538 816 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -539 323 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -540 324 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -541 817 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -542 818 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -543 325 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -544 819 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -545 820 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -546 326 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -547 327 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -548 328 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -549 329 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -550 330 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -551 821 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -552 331 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -553 332 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -554 333 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -555 822 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -556 823 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -557 824 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -558 334 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -559 335 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -560 336 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -561 825 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -562 337 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -563 826 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -564 827 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -565 338 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -566 339 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -567 340 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -568 341 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -569 828 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -570 342 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -571 343 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -572 344 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -573 345 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -574 829 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -575 346 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -576 347 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -577 348 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -578 830 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -579 831 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -580 832 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -581 349 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -582 833 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -583 350 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -584 351 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -585 352 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -586 834 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -587 353 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -588 835 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -589 354 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -590 836 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -591 355 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -592 356 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -593 837 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -594 357 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -595 358 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -596 838 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -597 839 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -598 359 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -599 840 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -600 360 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -601 361 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -602 841 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -603 842 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -604 362 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -605 363 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -606 843 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -607 364 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -608 365 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -609 366 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -610 844 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -611 367 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -612 368 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -613 369 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -614 845 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -615 846 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -616 370 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -617 371 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -618 372 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -619 847 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -620 848 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -621 373 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -622 374 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -623 849 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -624 375 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -625 376 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -626 377 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -627 850 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -628 851 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -629 852 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -630 378 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -631 379 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -632 853 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -633 380 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -634 854 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -635 855 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -636 381 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -637 382 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -638 856 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -639 383 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -640 384 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -641 857 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -642 385 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -643 386 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -644 387 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -645 388 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -646 389 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -647 858 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -648 390 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -649 859 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -650 860 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -651 391 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -652 861 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -653 392 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -654 862 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -655 393 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -656 394 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -657 863 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -658 395 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -659 396 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -660 864 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -661 397 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -662 398 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -663 399 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -664 865 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -665 400 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -666 866 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -667 401 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -668 867 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -669 868 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -670 402 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -671 403 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -672 869 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -673 870 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -674 404 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -675 405 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -676 406 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -677 871 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -678 407 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -679 408 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -680 872 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -681 873 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -682 409 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -683 410 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -684 411 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -685 874 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -686 875 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -687 876 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -688 412 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -689 413 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -690 414 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -691 877 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -692 878 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -693 415 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -694 879 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -695 416 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -696 880 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -697 417 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -698 418 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -699 419 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -700 420 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -701 421 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -702 422 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -703 423 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -704 424 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -705 425 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -706 881 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -707 426 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -708 882 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -709 883 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -710 884 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -711 427 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -712 428 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -713 429 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -714 885 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -715 886 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -716 887 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -717 430 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -718 888 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -719 431 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -720 432 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -721 433 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -722 889 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -723 434 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -724 890 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -725 891 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -726 435 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -727 436 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -728 892 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -729 437 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -730 438 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -731 439 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -732 440 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -733 893 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -734 441 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -735 442 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -736 894 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -737 895 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -738 443 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -739 444 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -740 896 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -741 897 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -742 898 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -743 899 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -744 445 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -745 900 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -746 446 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -747 447 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -748 448 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -749 449 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -750 450 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -751 451 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -752 901 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -753 452 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -754 453 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -755 902 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -756 903 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -757 904 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -758 454 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -759 455 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -760 456 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -761 905 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -762 906 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -763 457 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -764 907 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -765 458 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -766 908 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -767 459 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -768 460 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -769 461 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -770 462 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -771 463 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -772 464 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -773 909 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -774 465 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -775 910 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -776 466 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -777 467 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -778 911 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -779 468 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -780 912 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -781 469 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -782 470 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -783 471 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -784 472 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -785 913 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -786 914 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -787 915 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -788 473 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -789 474 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -790 916 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -791 917 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -792 918 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -793 475 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -794 476 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -795 477 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -796 919 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -797 478 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -798 479 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -799 480 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -800 920 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -801 921 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -802 481 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -803 922 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -804 482 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -805 923 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -806 924 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -807 483 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -808 484 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -809 485 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -810 486 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -811 487 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -812 925 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -813 488 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -814 489 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -815 490 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -816 491 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -817 926 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -818 927 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -819 492 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -820 928 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -821 493 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -822 929 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -823 930 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -824 494 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -825 495 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -826 931 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -827 496 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -828 497 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -829 932 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -830 498 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -831 499 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -832 933 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -833 500 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -834 501 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -835 502 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -836 934 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -837 503 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -838 504 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -839 935 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -840 936 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -841 505 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -842 506 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -843 507 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -844 937 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -845 508 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -846 938 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -847 939 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -848 509 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -849 940 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -850 510 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -851 941 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -852 511 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -853 512 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -854 942 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -855 513 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -856 514 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -857 515 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -858 943 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -859 944 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -860 516 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -861 517 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -862 518 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -863 519 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -864 520 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -865 521 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -866 945 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -867 946 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -868 947 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -869 522 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -870 948 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -871 949 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -872 950 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -873 523 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -874 524 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -875 525 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -876 526 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -877 527 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -878 528 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -879 951 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -880 952 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -881 529 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -882 530 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -883 531 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -884 532 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -885 953 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -886 533 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -887 534 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -888 954 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -889 955 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -890 956 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -891 535 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -892 957 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -893 536 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -894 958 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -895 537 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -896 538 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -897 959 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -898 539 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -899 540 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -900 960 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -901 541 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -902 542 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -903 961 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -904 962 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -905 543 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -906 963 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -907 544 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -908 545 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -909 964 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -910 546 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -911 965 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -912 966 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -913 967 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -914 968 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -915 547 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -916 548 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -917 549 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -918 550 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -919 551 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -920 552 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -921 553 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -922 969 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -923 554 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -924 555 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -925 556 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -926 970 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -927 557 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -928 971 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -929 558 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -930 972 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -931 973 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -932 559 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -933 974 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -934 975 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -935 560 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -936 561 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -937 562 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -938 563 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -939 564 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -940 976 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -941 565 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -942 566 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -943 567 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -944 568 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -945 977 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -946 569 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -947 570 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -948 978 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -949 979 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -950 980 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -951 571 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -952 981 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -953 572 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -954 573 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -955 982 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -956 983 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -957 574 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -958 984 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -959 575 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -960 576 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -961 985 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -962 986 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -963 577 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -964 578 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -965 579 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -966 987 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -967 988 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -968 580 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -969 581 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -970 582 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -971 583 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -972 584 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -973 989 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -974 585 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -975 586 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -976 587 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -977 990 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -978 588 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -979 991 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -980 992 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -981 589 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -982 993 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -983 994 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 -984 995 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -985 590 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -986 591 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -987 592 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -988 593 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -989 996 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -990 594 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -991 595 37398191 2020-08-07 2020-08-07 00:00:00.000000 0.01 0.01 37398191 -992 596 37398191 2020-04-25 2020-04-25 00:00:00.000000 0.1 0.1 37398191 -993 597 37398191 2020-10-08 2020-10-08 00:00:00.000000 10.08 10.08 37398191 -994 598 37398191 2020-04-15 2020-04-15 00:00:00.000000 6.72 6.72 37398191 -995 599 37398191 2020-10-04 2020-10-04 00:00:00.000000 30.3 30.3 37398191 -996 600 37398191 2020-02-15 2020-02-15 00:00:00.000000 0.0 0.0 37398191 -997 997 37398191 2021-07-01 2021-07-01 00:00:00.000000 20.13 20.13 37398191 -998 998 37398191 2020-11-29 2020-11-29 00:00:00.000000 3.63 3.63 37398191 -999 999 37398191 2020-04-16 2020-04-16 00:00:00.000000 0.25 0.25 37398191 -1000 1000 37398191 2021-03-01 2021-03-01 00:00:00.000000 0.0 0.0 37398191 diff --git a/carrot/data/test/expected_outputs/observation.tsv b/carrot/data/test/expected_outputs/observation.tsv deleted file mode 100644 index b0676a7f..00000000 --- a/carrot/data/test/expected_outputs/observation.tsv +++ /dev/null @@ -1,901 +0,0 @@ -observation_id person_id observation_concept_id observation_date observation_datetime observation_type_concept_id value_as_number value_as_string value_as_concept_id qualifier_concept_id unit_concept_id provider_id visit_occurrence_id observation_source_value observation_source_concept_id unit_source_value qualifier_source_value -1 4 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -2 12 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -3 16 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -4 19 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -5 25 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -6 36 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -7 42 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -8 45 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -9 54 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -10 60 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -11 63 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -12 68 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -13 75 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -14 82 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -15 86 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -16 94 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -17 101 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -18 104 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -19 110 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -20 120 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -21 121 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -22 129 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -23 133 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -24 142 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -25 146 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -26 156 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -27 161 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -28 166 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -29 172 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -30 178 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -31 184 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -32 188 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -33 196 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -34 200 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -35 210 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -36 216 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -37 222 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -38 226 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -39 233 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -40 238 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -41 246 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -42 248 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -43 258 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -44 260 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -45 268 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -46 271 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -47 280 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -48 287 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -49 293 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -50 295 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -51 301 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -52 311 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -53 317 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -54 320 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -55 327 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -56 333 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -57 338 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -58 348 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -59 354 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -60 356 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -61 362 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -62 368 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -63 375 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -64 384 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -65 389 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -66 391 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -67 397 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -68 407 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -69 414 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -70 419 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -71 424 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -72 427 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -73 436 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -74 439 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -75 445 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -76 455 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -77 457 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -78 466 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -79 471 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -80 479 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -81 485 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -82 490 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -83 498 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -84 501 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -85 510 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -86 513 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -87 521 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -88 526 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -89 534 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -90 535 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -91 541 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -92 550 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -93 553 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -94 559 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -95 567 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -96 572 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -97 579 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -98 587 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -99 592 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -100 599 35825508 1956-11-12 1956-11-12 00:00:00.000000 Asian 35825508 -101 2 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -102 9 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -103 17 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -104 23 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -105 29 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -106 33 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -107 39 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -108 46 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -109 52 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -110 59 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -111 61 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -112 72 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -113 74 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -114 79 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -115 89 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -116 96 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -117 102 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -118 103 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -119 114 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -120 117 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -121 123 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -122 132 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -123 137 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -124 140 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -125 145 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -126 155 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -127 160 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -128 167 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -129 169 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -130 176 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -131 183 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -132 189 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -133 195 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -134 204 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -135 209 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -136 213 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -137 217 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -138 228 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -139 234 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -140 240 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -141 241 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -142 247 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -143 257 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -144 261 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -145 265 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -146 274 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -147 282 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -148 286 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -149 294 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -150 300 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -151 304 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -152 308 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -153 313 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -154 322 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -155 326 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -156 331 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -157 339 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -158 343 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -159 352 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -160 358 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -161 366 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -162 367 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -163 374 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -164 383 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -165 388 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -166 392 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -167 398 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -168 408 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -169 413 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -170 417 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -171 423 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -172 432 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -173 434 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -174 443 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -175 449 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -176 452 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -177 459 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -178 464 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -179 474 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -180 477 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -181 483 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -182 489 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -183 496 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -184 503 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -185 507 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -186 512 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -187 517 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -188 523 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -189 531 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -190 539 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -191 546 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -192 548 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -193 556 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -194 562 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -195 568 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -196 573 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -197 578 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -198 583 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -199 594 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -200 597 35825531 1975-06-07 1975-06-07 00:00:00.000000 Bangladeshi 35825531 -201 1 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -202 8 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -203 18 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -204 20 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -205 26 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -206 35 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -207 40 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -208 48 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -209 49 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -210 57 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -211 62 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -212 70 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -213 77 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -214 84 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -215 85 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -216 95 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -217 99 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -218 108 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -219 109 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -220 116 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -221 125 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -222 130 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -223 138 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -224 144 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -225 147 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -226 153 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -227 158 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -228 168 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -229 173 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -230 180 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -231 182 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -232 187 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -233 198 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -234 199 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -235 205 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -236 212 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -237 220 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -238 223 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -239 230 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -240 239 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -241 245 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -242 249 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -243 256 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -244 259 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -245 266 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -246 276 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -247 278 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -248 285 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -249 292 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -250 296 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -251 302 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -252 312 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -253 316 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -254 319 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -255 329 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -256 335 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -257 337 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -258 345 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -259 353 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -260 357 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -261 364 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -262 372 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -263 373 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -264 382 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -265 386 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -266 396 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -267 399 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -268 406 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -269 411 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -270 416 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -271 425 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -272 431 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -273 435 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -274 440 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -275 447 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -276 454 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -277 460 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -278 463 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -279 470 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -280 480 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -281 486 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -282 491 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -283 494 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -284 504 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -285 506 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -286 511 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -287 522 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -288 527 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -289 533 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -290 540 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -291 544 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -292 552 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -293 554 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -294 564 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -295 566 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -296 576 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -297 580 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -298 584 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -299 593 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -300 595 35826241 1997-05-11 1997-05-11 00:00:00.000000 Indian 35826241 -301 601 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -302 3 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -303 6 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -304 7 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -305 10 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -306 606 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -307 14 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -308 15 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -309 612 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -310 21 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -311 615 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -312 24 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -313 27 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -314 619 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -315 30 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -316 31 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -317 34 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -318 624 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -319 38 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -320 627 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -321 41 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -322 44 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -323 47 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -324 632 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -325 51 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -326 53 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -327 636 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -328 55 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -329 56 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -330 637 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -331 643 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -332 65 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -333 66 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -334 646 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -335 69 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -336 71 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -337 73 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -338 650 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -339 76 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -340 80 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -341 656 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -342 83 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -343 88 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -344 659 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -345 90 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -346 662 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -347 92 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -348 93 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -349 97 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -350 100 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -351 666 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -352 105 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -353 106 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -354 672 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -355 111 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -356 674 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -357 113 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -358 115 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -359 119 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -360 679 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -361 122 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -362 682 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -363 126 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -364 127 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -365 128 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -366 687 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -367 134 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -368 135 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -369 690 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -370 139 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -371 143 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -372 696 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -373 698 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -374 148 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -375 149 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -376 152 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -377 702 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -378 154 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -379 157 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -380 706 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -381 162 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -382 163 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -383 165 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -384 709 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -385 170 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -386 174 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -387 716 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -388 177 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -389 720 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -390 179 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -391 181 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -392 185 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -393 723 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -394 725 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -395 190 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -396 192 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -397 193 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -398 729 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -399 197 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -400 202 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -401 203 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -402 736 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -403 207 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -404 738 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -405 208 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -406 211 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -407 214 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -408 744 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -409 218 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -410 219 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -411 748 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -412 224 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -413 227 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -414 751 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -415 229 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -416 753 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -417 231 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -418 235 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -419 759 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -420 237 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -421 243 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -422 763 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -423 244 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -424 250 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -425 767 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -426 251 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -427 771 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -428 254 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -429 255 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -430 774 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -431 263 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -432 264 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -433 779 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -434 269 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -435 270 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -436 272 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -437 273 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -438 783 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -439 279 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -440 281 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -441 786 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -442 283 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -443 790 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -444 288 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -445 289 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -446 291 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -447 796 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -448 797 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -449 298 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -450 299 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -451 803 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -452 303 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -453 306 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -454 309 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -455 310 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -456 807 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -457 315 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -458 812 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -459 318 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -460 815 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -461 323 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -462 324 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -463 818 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -464 325 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -465 330 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -466 332 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -467 823 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -468 336 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -469 827 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -470 340 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -471 342 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -472 344 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -473 346 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -474 830 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -475 833 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -476 350 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -477 351 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -478 355 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -479 839 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -480 360 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -481 361 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -482 363 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -483 844 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -484 846 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -485 370 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -486 371 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -487 376 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -488 850 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -489 378 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -490 380 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -491 854 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -492 381 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -493 387 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -494 390 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -495 859 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -496 393 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -497 395 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -498 864 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -499 401 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -500 867 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -501 402 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -502 403 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -503 405 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -504 871 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -505 873 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -506 409 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -507 412 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -508 415 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -509 880 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -510 418 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -511 422 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -512 881 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -513 426 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -514 429 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -515 887 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -516 430 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -517 891 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -518 437 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -519 438 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -520 441 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -521 442 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -522 896 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -523 897 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -524 446 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -525 448 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -526 453 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -527 902 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -528 456 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -529 458 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -530 908 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -531 461 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -532 910 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -533 467 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -534 468 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -535 469 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -536 915 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -537 473 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -538 475 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -539 919 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -540 478 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -541 482 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -542 923 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -543 484 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -544 925 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -545 488 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -546 492 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -547 493 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -548 931 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -549 497 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -550 933 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -551 500 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -552 502 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -553 505 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -554 939 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -555 509 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -556 514 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -557 943 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -558 516 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -559 518 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -560 520 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -561 946 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -562 524 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -563 525 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -564 951 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -565 529 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -566 532 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -567 956 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -568 536 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -569 958 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -570 538 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -571 543 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -572 545 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -573 964 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -574 967 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -575 549 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -576 551 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -577 555 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -578 971 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -579 558 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -580 974 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -581 560 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -582 561 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -583 569 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -584 570 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -585 980 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -586 574 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -587 984 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -588 575 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -589 577 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -590 988 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -591 581 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -592 989 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -593 585 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -594 588 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -595 589 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -596 993 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -597 591 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -598 598 35827394 1976-04-23 1976-04-23 00:00:00.000000 White 35827394 -599 600 35827394 1993-09-07 1993-09-07 00:00:00.000000 White 35827394 -600 997 35827394 1951-12-25 1951-12-25 00:00:00.000000 White 35827394 -601 602 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -602 603 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -603 605 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -604 608 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -605 609 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -606 611 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -607 613 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -608 616 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -609 617 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -610 620 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -611 621 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -612 623 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -613 625 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -614 628 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -615 629 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -616 630 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -617 634 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -618 635 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -619 638 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -620 640 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -621 641 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -622 644 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -623 645 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -624 647 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -625 649 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -626 652 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -627 653 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -628 655 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -629 657 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -630 660 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -631 661 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -632 664 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -633 667 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -634 668 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -635 670 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -636 671 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -637 675 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -638 676 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -639 677 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -640 678 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -641 683 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -642 684 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -643 686 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -644 688 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -645 689 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -646 692 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -647 693 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -648 695 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -649 697 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -650 700 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -651 701 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -652 704 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -653 705 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -654 707 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -655 711 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -656 712 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -657 713 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -658 714 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -659 717 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -660 719 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -661 721 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -662 722 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -663 727 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -664 728 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -665 731 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -666 732 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -667 734 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -668 735 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -669 739 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -670 740 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -671 742 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -672 743 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -673 745 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -674 746 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -675 750 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -676 752 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -677 755 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -678 756 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -679 758 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -680 760 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -681 761 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -682 764 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -683 765 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -684 768 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -685 769 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -686 770 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -687 773 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -688 776 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -689 777 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -690 778 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -691 782 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -692 784 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -693 785 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -694 788 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -695 789 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -696 792 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -697 794 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -698 795 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -699 798 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -700 800 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -701 802 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -702 804 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -703 805 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -704 808 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -705 809 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -706 810 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -707 814 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -708 816 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -709 819 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -710 820 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -711 821 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -712 822 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -713 825 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -714 828 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -715 829 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -716 832 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -717 834 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -718 835 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -719 837 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -720 840 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -721 842 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -722 843 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -723 847 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -724 848 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -725 851 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -726 852 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -727 855 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -728 856 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -729 857 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -730 858 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -731 861 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -732 863 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -733 865 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -734 868 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -735 869 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -736 872 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -737 874 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -738 875 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -739 877 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -740 879 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -741 882 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -742 883 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -743 885 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -744 886 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -745 889 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -746 892 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -747 894 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -748 895 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -749 899 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -750 900 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -751 901 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -752 903 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -753 905 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -754 906 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -755 911 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -756 912 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -757 914 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -758 916 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -759 917 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -760 920 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -761 921 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -762 924 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -763 926 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -764 927 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -765 930 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -766 932 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -767 934 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -768 935 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -769 937 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -770 938 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -771 941 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -772 944 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -773 945 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -774 947 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -775 950 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -776 952 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -777 953 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -778 954 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -779 957 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -780 959 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -781 961 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -782 962 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -783 965 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -784 966 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -785 969 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -786 970 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -787 975 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -788 976 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -789 978 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -790 979 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -791 981 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -792 982 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -793 985 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -794 986 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -795 990 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -796 992 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -797 995 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -798 996 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -799 998 35825567 1966-09-29 1966-09-29 00:00:00.000000 Black 35825567 -800 1000 35825567 1981-11-19 1981-11-19 00:00:00.000000 Black 35825567 -801 604 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -802 607 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -803 610 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -804 614 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -805 618 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -806 622 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -807 626 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -808 631 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -809 633 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -810 639 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -811 642 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -812 648 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -813 651 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -814 654 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -815 658 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -816 663 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -817 665 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -818 669 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -819 673 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -820 680 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -821 681 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -822 685 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -823 691 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -824 694 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -825 699 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -826 703 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -827 708 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -828 710 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -829 715 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -830 718 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -831 724 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -832 726 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -833 730 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -834 733 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -835 737 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -836 741 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -837 747 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -838 749 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -839 754 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -840 757 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -841 762 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -842 766 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -843 772 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -844 775 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -845 780 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -846 781 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -847 787 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -848 791 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -849 793 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -850 799 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -851 801 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -852 806 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -853 811 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -854 813 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -855 817 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -856 824 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -857 826 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -858 831 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -859 836 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -860 838 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -861 841 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -862 845 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -863 849 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -864 853 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -865 860 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -866 862 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -867 866 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -868 870 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -869 876 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -870 878 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -871 884 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -872 888 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -873 890 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -874 893 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -875 898 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -876 904 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -877 907 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -878 909 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -879 913 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -880 918 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -881 922 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -882 928 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -883 929 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -884 936 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -885 940 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -886 942 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -887 948 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -888 949 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -889 955 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -890 960 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -891 963 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -892 968 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -893 972 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -894 973 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -895 977 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -896 983 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -897 987 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -898 991 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -899 994 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 -900 999 35827395 1985-03-01 1985-03-01 00:00:00.000000 White and Asian 35827395 diff --git a/carrot/data/test/expected_outputs/person.tsv b/carrot/data/test/expected_outputs/person.tsv deleted file mode 100644 index 53873796..00000000 --- a/carrot/data/test/expected_outputs/person.tsv +++ /dev/null @@ -1,1001 +0,0 @@ -person_id gender_concept_id year_of_birth month_of_birth day_of_birth birth_datetime race_concept_id ethnicity_concept_id location_id provider_id care_site_id person_source_value gender_source_value gender_source_concept_id race_source_value race_source_concept_id ethnicity_source_value ethnicity_source_concept_id -1 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -2 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -3 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -4 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -5 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -6 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -7 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -8 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -9 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -10 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -11 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -12 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -13 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -14 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -15 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -16 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -17 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -18 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -19 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -20 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -21 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -22 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -23 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -24 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -25 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -26 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -27 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -28 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -29 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -30 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -31 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -32 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -33 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -34 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -35 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -36 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -37 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -38 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -39 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -40 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -41 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -42 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -43 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -44 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -45 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -46 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -47 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -48 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -49 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -50 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -51 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -52 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -53 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -54 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -55 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -56 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -57 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -58 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -59 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -60 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -61 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -62 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -63 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -64 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -65 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -66 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -67 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -68 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -69 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -70 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -71 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -72 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -73 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -74 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -75 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -76 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -77 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -78 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -79 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -80 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -81 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -82 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -83 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -84 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -85 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -86 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -87 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -88 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -89 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -90 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -91 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -92 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -93 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -94 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -95 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -96 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -97 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -98 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -99 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -100 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -101 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -102 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -103 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -104 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -105 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -106 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -107 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -108 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -109 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -110 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -111 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -112 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -113 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -114 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -115 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -116 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -117 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -118 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -119 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -120 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -121 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -122 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -123 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -124 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -125 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -126 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -127 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -128 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -129 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -130 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -131 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -132 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -133 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -134 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -135 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -136 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -137 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -138 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -139 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -140 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -141 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -142 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -143 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -144 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -145 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -146 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -147 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -148 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -149 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -150 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -151 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -152 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -153 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -154 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -155 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -156 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -157 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -158 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -159 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -160 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -161 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -162 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -163 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -164 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -165 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -166 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -167 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -168 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -169 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -170 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -171 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -172 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -173 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -174 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -175 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -176 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -177 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -178 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -179 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -180 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -181 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -182 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -183 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -184 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -185 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -186 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -187 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -188 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -189 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -190 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -191 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -192 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -193 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -194 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -195 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -196 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -197 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -198 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -199 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -200 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -201 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -202 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -203 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -204 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -205 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -206 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -207 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -208 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -209 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -210 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -211 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -212 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -213 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -214 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -215 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -216 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -217 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -218 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -219 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -220 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -221 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -222 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -223 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -224 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -225 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -226 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -227 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -228 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -229 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -230 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -231 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -232 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -233 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -234 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -235 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -236 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -237 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -238 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -239 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -240 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -241 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -242 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -243 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -244 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -245 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -246 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -247 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -248 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -249 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -250 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -251 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -252 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -253 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -254 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -255 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -256 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -257 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -258 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -259 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -260 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -261 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -262 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -263 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -264 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -265 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -266 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -267 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -268 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -269 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -270 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -271 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -272 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -273 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -274 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -275 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -276 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -277 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -278 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -279 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -280 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -281 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -282 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -283 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -284 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -285 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -286 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -287 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -288 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -289 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -290 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -291 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -292 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -293 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -294 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -295 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -296 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -297 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -298 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -299 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -300 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -301 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -302 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -303 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -304 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -305 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -306 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -307 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -308 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -309 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -310 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -311 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -312 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -313 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -314 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -315 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -316 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -317 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -318 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -319 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -320 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -321 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -322 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -323 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -324 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -325 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -326 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -327 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -328 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -329 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -330 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -331 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -332 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -333 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -334 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -335 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -336 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -337 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -338 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -339 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -340 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -341 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -342 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -343 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -344 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -345 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -346 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -347 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -348 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -349 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -350 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -351 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -352 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -353 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -354 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -355 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -356 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -357 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -358 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -359 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -360 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -361 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -362 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -363 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -364 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -365 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -366 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -367 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -368 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -369 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -370 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -371 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -372 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -373 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -374 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -375 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -376 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -377 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -378 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -379 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -380 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -381 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -382 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -383 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -384 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -385 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -386 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -387 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -388 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -389 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -390 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -391 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -392 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -393 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -394 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -395 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -396 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -397 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -398 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -399 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -400 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -401 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -402 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -403 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -404 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -405 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -406 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -407 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -408 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -409 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -410 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -411 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -412 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -413 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -414 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -415 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -416 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -417 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -418 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -419 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -420 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -421 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -422 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -423 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -424 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -425 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -426 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -427 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -428 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -429 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -430 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -431 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -432 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -433 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -434 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -435 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -436 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -437 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -438 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -439 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -440 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -441 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -442 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -443 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -444 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -445 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -446 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -447 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -448 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -449 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -450 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -451 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -452 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -453 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -454 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -455 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -456 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -457 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -458 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -459 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -460 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -461 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -462 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -463 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -464 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -465 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -466 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -467 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -468 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -469 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -470 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -471 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -472 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -473 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -474 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -475 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -476 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -477 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -478 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -479 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -480 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -481 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -482 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -483 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -484 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -485 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -486 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -487 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -488 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -489 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -490 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -491 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -492 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -493 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -494 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -495 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -496 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -497 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -498 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -499 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -500 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -501 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -502 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -503 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -504 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -505 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -506 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -507 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -508 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -509 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -510 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -511 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -512 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -513 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -514 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -515 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -516 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -517 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -518 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -519 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -520 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -521 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -522 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -523 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -524 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -525 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -526 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -527 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -528 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -529 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -530 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -531 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -532 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -533 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -534 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -535 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -536 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -537 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -538 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -539 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -540 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -541 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -542 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -543 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -544 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -545 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -546 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -547 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -548 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -549 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -550 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -551 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -552 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -553 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -554 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -555 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -556 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -557 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -558 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -559 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -560 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -561 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -562 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -563 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -564 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -565 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -566 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -567 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -568 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -569 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -570 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -571 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -572 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -573 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -574 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -575 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -576 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -577 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -578 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -579 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -580 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -581 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -582 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -583 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -584 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -585 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -586 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -587 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -588 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -589 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -590 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -591 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -592 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -593 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -594 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -595 8532 1997 5 11 1997-05-11 00:00:00.000000 F 8532 -596 8532 1950 10 31 1950-10-31 00:00:00.000000 F 8532 -597 8532 1975 6 7 1975-06-07 00:00:00.000000 F 8532 -598 8532 1976 4 23 1976-04-23 00:00:00.000000 F 8532 -599 8532 1956 11 12 1956-11-12 00:00:00.000000 F 8532 -600 8532 1993 9 7 1993-09-07 00:00:00.000000 F 8532 -601 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -602 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -603 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -604 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -605 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -606 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -607 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -608 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -609 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -610 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -611 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -612 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -613 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -614 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -615 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -616 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -617 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -618 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -619 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -620 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -621 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -622 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -623 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -624 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -625 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -626 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -627 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -628 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -629 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -630 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -631 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -632 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -633 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -634 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -635 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -636 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -637 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -638 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -639 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -640 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -641 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -642 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -643 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -644 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -645 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -646 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -647 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -648 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -649 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -650 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -651 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -652 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -653 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -654 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -655 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -656 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -657 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -658 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -659 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -660 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -661 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -662 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -663 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -664 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -665 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -666 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -667 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -668 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -669 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -670 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -671 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -672 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -673 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -674 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -675 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -676 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -677 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -678 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -679 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -680 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -681 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -682 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -683 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -684 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -685 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -686 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -687 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -688 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -689 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -690 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -691 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -692 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -693 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -694 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -695 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -696 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -697 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -698 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -699 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -700 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -701 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -702 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -703 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -704 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -705 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -706 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -707 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -708 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -709 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -710 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -711 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -712 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -713 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -714 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -715 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -716 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -717 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -718 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -719 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -720 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -721 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -722 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -723 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -724 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -725 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -726 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -727 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -728 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -729 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -730 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -731 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -732 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -733 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -734 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -735 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -736 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -737 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -738 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -739 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -740 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -741 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -742 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -743 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -744 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -745 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -746 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -747 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -748 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -749 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -750 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -751 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -752 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -753 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -754 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -755 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -756 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -757 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -758 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -759 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -760 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -761 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -762 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -763 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -764 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -765 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -766 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -767 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -768 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -769 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -770 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -771 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -772 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -773 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -774 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -775 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -776 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -777 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -778 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -779 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -780 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -781 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -782 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -783 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -784 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -785 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -786 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -787 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -788 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -789 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -790 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -791 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -792 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -793 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -794 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -795 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -796 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -797 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -798 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -799 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -800 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -801 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -802 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -803 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -804 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -805 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -806 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -807 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -808 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -809 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -810 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -811 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -812 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -813 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -814 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -815 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -816 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -817 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -818 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -819 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -820 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -821 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -822 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -823 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -824 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -825 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -826 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -827 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -828 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -829 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -830 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -831 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -832 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -833 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -834 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -835 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -836 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -837 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -838 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -839 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -840 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -841 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -842 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -843 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -844 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -845 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -846 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -847 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -848 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -849 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -850 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -851 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -852 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -853 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -854 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -855 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -856 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -857 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -858 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -859 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -860 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -861 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -862 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -863 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -864 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -865 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -866 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -867 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -868 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -869 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -870 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -871 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -872 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -873 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -874 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -875 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -876 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -877 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -878 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -879 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -880 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -881 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -882 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -883 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -884 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -885 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -886 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -887 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -888 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -889 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -890 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -891 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -892 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -893 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -894 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -895 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -896 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -897 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -898 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -899 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -900 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -901 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -902 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -903 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -904 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -905 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -906 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -907 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -908 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -909 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -910 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -911 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -912 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -913 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -914 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -915 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -916 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -917 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -918 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -919 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -920 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -921 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -922 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -923 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -924 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -925 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -926 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -927 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -928 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -929 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -930 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -931 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -932 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -933 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -934 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -935 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -936 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -937 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -938 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -939 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -940 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -941 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -942 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -943 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -944 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -945 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -946 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -947 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -948 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -949 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -950 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -951 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -952 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -953 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -954 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -955 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -956 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -957 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -958 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -959 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -960 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -961 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -962 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -963 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -964 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -965 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -966 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -967 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -968 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -969 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -970 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -971 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -972 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -973 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -974 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -975 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -976 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -977 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -978 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -979 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -980 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -981 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -982 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -983 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -984 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -985 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -986 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -987 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -988 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -989 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -990 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -991 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -992 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -993 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -994 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -995 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 -996 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -997 8507 1951 12 25 1951-12-25 00:00:00.000000 M 8507 -998 8507 1966 9 29 1966-09-29 00:00:00.000000 M 8507 -999 8507 1985 3 1 1985-03-01 00:00:00.000000 M 8507 -1000 8507 1981 11 19 1981-11-19 00:00:00.000000 M 8507 diff --git a/carrot/data/test/expected_outputs/person_ids.tsv b/carrot/data/test/expected_outputs/person_ids.tsv deleted file mode 100644 index 5bb33755..00000000 --- a/carrot/data/test/expected_outputs/person_ids.tsv +++ /dev/null @@ -1,1001 +0,0 @@ -SOURCE_SUBJECT TARGET_SUBJECT -1 454f63ac30c8322997ef025edff6abd23e0dbe7b8a3d5126a894e4a168c1b59b -2 5ef6fdf32513aa7cd11f72beccf132b9224d33f271471fff402742887a171edf -3 1253e9373e781b7500266caa55150e08e210bc8cd8cc70d89985e3600155e860 -4 3346f2bbf6c34bd2dbe28bd1bb657d0e9c37392a1d5ec9929e6a5df4763ddc2d -5 0fd42b3f73c448b34940b339f87d07adf116b05c0227aad72e8f0ee90533e699 -6 9bdb2af6799204a299c603994b8e400e4b1fd625efdb74066cc869fee42c9df3 -7 f6e0a1e2ac41945a9aa7ff8a8aaa0cebc12a3bcc981a929ad5cf810a090e11ae -8 b1556dea32e9d0cdbfed038fd7787275775ea40939c146a64e205bcb349ad02f -9 6c658ee83fb7e812482494f3e416a876f63f418a0b8a1f5e76d47ee4177035cb -10 9f1f9dce319c4700ef28ec8c53bd3cc8e6abe64c68385479ab89215806a5bdd6 -11 e5b861a6d8a966dfca7e7341cd3eb6be9901688d547a72ebed0b1f5e14f3d08d -12 2abaca4911e68fa9bfbf3482ee797fd5b9045b841fdff7253557c5fe15de6477 -13 1be00341082e25c4e251ca6713e767f7131a2823b0052caf9c9b006ec512f6cb -14 a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3 -15 65a699905c02619370bcf9207f5a477c3d67130ca71ec6f750e07fe8d510b084 -16 922c7954216ccfe7a61def609305ce1dc7c67e225f873f256d30d7a8ee4f404c -17 2747b7c718564ba5f066f0523b03e17f6a496b06851333d2d59ab6d863225848 -18 6566230e3a3ce3774c1bbc7c18b590ae0f457bbcd511e90e3e7dca2a02e7addc -19 eeca91fd439b6d5e827e8fda7fee35046f2def93508637483f6be8a2df7a4392 -20 dbb1ded63bc70732626c5dfe6c7f50ced3d560e970f30b15335ac290358748f6 -21 d2f483672c0239f6d7dd3c9ecee6deacbcd59185855625902a8b1c1a3bd67440 -22 d6a4031733610bb080d0bfa794fcc9dbdcff74834aeaab7c6b927e21e9754037 -23 8d27ba37c5d810106b55f3fd6cdb35842007e88754184bfc0e6035f9bcede633 -24 dbae772db29058a88f9bd830e957c695347c41b6162a7eb9a9ea13def34be56b -25 d4ee9f58e5860574ca98e3b4839391e7a356328d4bd6afecefc2381df5f5b41b -26 d6f0c71ef0c88e45e4b3a2118fcb83b0def392d759c901e9d755d0e879028727 -27 5ec1a0c99d428601ce42b407ae9c675e0836a8ba591c8ca6e2a2cf5563d97ff0 -28 0a5b046d07f6f971b7776de682f57c5b9cdc8fa060db7ef59de82e721c8098f4 -29 ec2e990b934dde55cb87300629cedfc21b15cd28bbcf77d8bbdc55359d7689da -30 9ae2bdd7beedc2e766c6b76585530e16925115707dc7a06ab5ee4aa2776b2c7b -31 8e612bd1f5d132a339575b8dafb7842c64614e56bcf3d5ab65a0bc4b34329407 -32 1d0ebea552eb43d0b1e1561f6de8ae92e3de7f1abec52399244d1caed7dbdfa6 -33 0fecf9247f3ddc84db8a804fa3065c013baf6b7c2458c2ba2bf56c2e1d42ddd4 -34 c75de23d89df36ba921287616ee8edb4c986e328a78e033e57c1e5e2b59c838e -35 7ed8f0f3b707956d9fb1e889e11153e0aa0a854983081d262fbe5eede32da7ca -36 a512db2741cd20693e4b16f19891e72b9ff12cead72761fc5e92d2aaf34740c1 -37 bb668ca95563216088b98a62557fa1e26802563f3919ac78ae30533bb9ed422c -38 79d6eaa2676189eb927f2e16a70091474078e2117c3fc607d35cdc6b591ef355 -39 bc52dd634277c4a34a2d6210994a9a5e2ab6d33bb4a3a8963410e00ca6c15a02 -40 e0f05da93a0f5a86a3be5fc0e301606513c9f7e59dac2357348aa0f2f47db984 -41 80c3cd40fa35f9088b8741bd8be6153de05f661cfeeb4625ffbf5f4a6c3c02c4 -42 734d0759cdb4e0d0a35e4fd73749aee287e4fdcc8648b71a8d6ed591b7d4cb3f -43 284de502c9847342318c17d474733ef468fbdbe252cddf6e4b4be0676706d9d0 -44 68519a9eca55c68c72658a2a1716aac3788c289859d46d6f5c3f14760fa37c9e -45 4a8596a7790b5ca9e067da401c018b3206befbcf95c38121854d1a0158e7678a -46 cba28b89eb859497f544956d64cf2ecf29b76fe2ef7175b33ea59e64293a4461 -47 8cd2510271575d8430c05368315a87b9c4784c7389a47496080c1e615a2a00b6 -48 7b69759630f869f2723875f873935fed29d2d12b10ef763c1c33b8e0004cb405 -49 580811fa95269f3ecd4f22d176e079d36093573680b6ef66fa341e687a15b5da -50 bfa7634640c53da7cb5e9c39031128c4e583399f936896f27f999f1d58d7b37e -51 b8aed072d29403ece56ae9641638ddd50d420f950bde0eefc092ee8879554141 -52 2811745d7b8d8874f6e653d176cefdd19e05e920ce389b9b7e83e5b2dfa546c7 -53 d6061bbee6cf13bd73765faaea7cdd0af1323e4b125342ac346047f7c4bda1fc -54 7045d16ae7f043ec25774a0a85d6f479e5bb019e9c5a1584bc76736d116b8f33 -55 70260742c2952154c84e2ea9f68b1a7397f49b6d343da1ed284093c0bd72c742 -56 eb3be230bbd2844b1f5d8f2e4fab9ffba8ab22cfeeb69c4c1361993ba4f377b9 -57 684fe39f03758de6a882ae61fa62312b67e5b1e665928cbf3dc3d8f4f53e3562 -58 b4bbe448fde336bb6a7d7d765f36d3327c772b845e7b54c8282aa08c9775ddd7 -59 5a39cadd1b007093db50744797c7a04a34f73b35ed444704206705b02597d6fd -60 27badc983df1780b60c2b3fa9d3a19a00e46aac798451f0febdca52920faaddf -61 43974ed74066b207c30ffd0fed5146762e6c60745ac977004bc14507c7c42b50 -62 4621c1d55fa4e86ce0dae4288302641baac86dd53f76227c892df9d300682d41 -63 fc56dbc6d4652b315b86b71c8d688c1ccdea9c5f1fd07763d2659fde2e2fc49a -64 968076be2e38cf897d4d6cea3faca9c037e1a4e3b4b7744fb2533e07751bd30a -65 8df66f64b57424391d363fd6b811fed3c430c77597da265025728bd637bad804 -66 d29d53701d3c859e29e1b90028eec1ca8e2f29439198b6e036c60951fb458aa1 -67 d48ff4b2f68a10fd7c86f185a6ccede0dc0f2c48538d697cb33b6ada3f1e85db -68 802b906a18591ead8a6dd809b262ace4c65c16e89764c40ae326cfcff811e10c -69 d86580a57f7bf542e85202283cb845953c9d28f80a8e651db08b2fc0b2d6a731 -70 16badfc6202cb3f8889e0f2779b19218af4cbb736e56acadce8148aba9a7a9f8 -71 314f04b30f62e0056bd059354a5536fb2e302107eed143b5fa2aa0bbba07f608 -72 36790ecd55c2030dc553685bef719df653f413a20cdad1bfd1dc934c76686ddd -73 9b871512327c09ce91dd649b3f96a63b7408ef267c8cc5710114e629730cb61f -74 56f4da26ed956730309fa1488611ee0f13b0ac95ebb1bc9b5d210e31ff70e79c -75 8f1f64db81c40ea10e1e9080c9ae60a7acb8925968c431ee16784dea9841c66f -76 dfe62e836a0a6f2633422230c81287700a56e2639652c73f264e6562220c207a -77 9d693eeee1d1899cbc50b6d45df953d3835acf28ee869879b45565fccc814765 -78 a0eaec5a55dc2f5b2ba523018adc485ff620b9d83509b9f37186a7716e438d21 -79 138d9e809e386a7b800791d1f664f56d1c55f3d1ba411b950862729bc486c5ce -80 c0509a487a18b003ba05e505419ebb63e57a29158073e381f57160b5c5b86426 -81 0a2d643bfd24a028cd236e76575d828424ccffbfa47392bd09d8ca9dc85e2f8d -82 f0bc318fb8965cad8d73d578cd03c63b7987dc6a79b906aada091e1b6a13443f -83 79bf08685d3138f9b109c3546780f056bc954fd69377b84a2cf23622e464897b -84 6af1f692e9496c6d0b668316eccb93276ae6b6774fa728aac31ff40a38318760 -85 14063697603e22d600d336bee6cff12c8be93509ce84a0642918d89b2aef1753 -86 72440a20f54075ac43f51a2cf0dbb2a14366b38a5c01b110ae174abc1cb44238 -87 82c01ce15b431d420eb6a1febfba7d7a2b69e5bcdcb929cb42cd3e9179d43fc4 -88 011af72a910ac4acf367eef9e6b761e0980842c30d4e9809840f4141d5163ede -89 396f804443825586c1283a27fdcadf74abb82008bcd9b260a30912a26563f27d -90 9f484139a27415ae2e8612bf6c65a8101a18eb5e9b7809e74ca63a45a65f17f4 -91 e7866fdc6672f827c76f6124ca3eeaff44aff8b7caf4ee1469b2ab887e7e7875 -92 9512d95d00d61bdec03d2b99d6ecc455ee5644ae52d10e7c4a61c93062dc97a3 -93 51e8ea280b44e16934d4d611901f3d3afc41789840acdff81942c2f65009cd52 -94 4c970004b0678d439f177e77d3cabdb7e9a44df770948ddc2467cbc76b7211c3 -95 a30f4ef42176d28f0e2293533c5f532e9c9c5696c68813b35315d17edc44f6b1 -96 39bb88f40d3aa2b2fe9dea67be27c74765db0ebb3ff3cf8fb779af6319fa2045 -97 e888a676e1926d0c08b5f11fb9116df58b62604b05846f39f8d6fc4dd0ba31f1 -98 9e6a72557ada15d02001f024f43f06edc4a31437e0e1bb3eeac36ca2d0c4fda7 -99 4be84111a613654b362415e563cb7607df7b203b5d303802a8a546061bbc7847 -100 bba58959c32abe688d9cb5222b97de973002a67c412d6a8c8d2a79ac692f32b7 -101 768b84ef05f655d57fe22d488451f075365f6cd18a13073466aa826cc0ebdbfb -102 8b496bf96bbcc9e5ac11c068b6cfb00c32f9d163bb8a3d5af107217499de997a -103 1c6c0bb2c7ecdc3be8e134f79b9de45155258c1f554ae7542dce48f5cc8d63f0 -104 718127812c05853f0bec61582a4a3840b1c844fe11fe1a004b5b7eb8b8b59846 -105 3a1dfb05d7257530e6349233688c3e121945c5de50f1273a7620537755d61e45 -106 c76b405781134be1dab7fe45adfb8c32104805a01de7b863e1004b66d56edf9f -107 ee62de25ccc2b55d3a0495244b246fb97055b6f1c2697d837b8e94976c03756f -108 efd96aedf377e20afd95285a7c751a864260bd6a149656a4040c5b7757bdbbb6 -109 71a1c003a2b855d85582c8f6c7648c49d3fe836408a7e1b5d9b222448acb3c1b -110 e0850a775c17a87060c0cf6efad1020e0cbef5a44ba942bef6add5776598de53 -111 1e68ed4e3d58a51096a7feea3947f40debf1fd9246ec977eb62ab93c81823ad9 -112 00328ce57bbc14b33bd6695bc8eb32cdf2fb5f3a7d89ec14a42825e15d39df60 -113 d7cdaa5ca0582076c8e772cce739e32c5077cfd24f2ea33f04bb754594989a56 -114 09895de0407bcb0386733daa14bdb5dfa544505530c634334a05a60f161b71fc -115 33512007840ced1bb0aab68f47cb5f702abd494a15f26bcbe26a1e47af03d841 -116 6db6eb4af1e18ab81d3878e44672185d60ca8c988c9e2f7783de220735534c33 -117 7cb676d57114874e00c536916e6dcad2a5d3cb8c9a5abc06335df359cd9a6ef9 -118 2cfc8ccbd7c0b17615323b41e815651ff2ae9ffae45a4599c0499b98ff940429 -119 4c15f47afe7f817fd559e12ddbc276f4930c5822f2049088d6f6605bec7cea56 -120 983bd614bb5afece5ab3b6023f71147cd7b6bc2314f9d27af7422541c6558389 -121 c3ea99f86b2f8a74ef4145bb245155ff5f91cd856f287523481c15a1959d5fd1 -122 f32828acecb4282c87eaa554d2e1db74e418cd6845843012463a3324028bdd9d -123 8bd9c0d453533757387ed019c45617cdc440ba680a67b1a101c85b998ef715c0 -124 d874e4e4a5df21173b0f83e313151f813bea4f488686efe670ae47f87c177595 -125 6d976934be74941fba578b143ba964eded443d10384e3f3d62a1ba7b4d339df8 -126 48a1706eca5ee6148f748ca91a0f7db6ebcf59943532044a7bf60bbe44e5b1d2 -127 20e9c64c05a54d199610fb7e38135361324b5ed5dcf39c23afe9b48926c07376 -128 865736a1c30a82dc67aba820360a01b1d9d0da5643234cd07c4d60b06eb530c5 -129 748064be03a08df81e31bd6f9e7e7c4cc9f84b4401b9a3c6e85b7ff816d3ba68 -130 377adeb4cd4096adc7ca64b533938cffc6294a9b3534f883b2336a26252cda9a -131 156091ee0884f36de9836d58b6f05f357ec6ef0620c571577ac61f7beac35f8e -132 88820462180e5c893eff2ed73f4ec33e205d1cd5acc4d17fa7b2bca2495d3448 -133 8d23cf6c86e834a7aa6eded54c26ce2bb2e74903538c61bdd5d2197997ab2f72 -134 f10d91a7596bf5a6773579ff1306afdc363b0be08602c768907c09261cad3a56 -135 3949ac1596ec77106a709a618bf5adcb19b77537ce8bcbdf54ff830169cdd084 -136 a4e987d17584557e2fbed011cddf66dc5185338bc3ef33d4226f86c32b7364dd -137 2452984f72ef1195df62ab3f23748777dbf39767229425f1bfd0862d476e5840 -138 5426d2ca50f244fb43fe9eafc82da08f33f3b4f8d9140802bd0102e780b629d6 -139 0bba869d7f392cbcaca6b8935ddc7fc3a8c50846d884959333fb7da475957511 -140 556d7dc3a115356350f1f9910b1af1ab0e312d4b3e4fc788d2da63668f36d017 -141 058d5d43bf485bf78dda1ed4eaf8b78e3106f3c6364c625ead2cc3aeb1908237 -142 7acc684a848a9b954959fdd22493f48cf44eed028275b6b9999c7cade8956fc7 -143 eaa0689a095d4394a05fb51b84b0175a47f68221261377e4829444cbfcae23ca -144 9644294ac4ffb3091eef01219b3fe4fe467f05890cc56af961dce68fddbb7704 -145 3c15285c04fff40024bb8714b93e58178bf8d3bebe6943178e1c5412957b7aa1 -146 da70dfa4d9f95ac979f921e8e623358236313f334afcd06cddf8a5621cf6a1e9 -147 6aac0cf87a32e631536122c3f2f9a2df215f56f28792a43a8658b0593f2e5255 -148 2289b221b39605c3494e7290856218e931c00af556cf7a07827108193b276511 -149 06b2d82840e43ed8432b3f444de18b57dbe60637c99379c708aa8e66de83dbc1 -150 deeeb5df3f2cee6bf4e597a8a3a878a6ce49b932b9e90b416922d4499f54fae6 -151 9a72c24f2fd76561729110d804c69f38a7088f2ec41fdf8fbfea20d07e8bcff8 -152 459535faa370a3b5f8b87203b089623c7aeb9325abf241ec8a685b9c325047a3 -153 355d8c0ee4e5698eaed38b96aab64dbf0ad72eca3e352183be6e957e9d9230a7 -154 2ab0ce7632a611e907a40710ff46da13c5ba832f5a402c6f51e15f53d6e8fa0e -155 9197e4844abed2fea3569a2acf7b0d584c979c333ab7ae10ba6c339898776f5a -156 838f461c2fa673cec73e6eecdafa88b127802d6cb0a61c53175197a122cb645a -157 73daa9289ddd08a53ba86f065ddb07bf915aba208bec652e999613d2a8444228 -158 3963317a2b410e5357f4d839787aedb9ceef495514fe5cd91f846ab3a59621e0 -159 600b4cdf20cc06a7b5a5cca5f7464296861815519af6d8a14604201b13965ab8 -160 0788979fc9366e21cd56311511b897a222cf91711481bcd7dc837eac2172d087 -161 8e6aee9efac8086ebac545d45c63e0d0dfcddd0d77d53e45c04d05cafdd2a8a8 -162 5f193b350c8aba4883dedf97367ef3080821470661d0a2e1faf420a300cb5ca8 -163 9b15fed64ef16980f625aeed46ab4cd2c498690551d3a2d1e5254d551d7d6ddf -164 62f77e7d6197863ac98d9e0cfa76bea0c8e05379ed5281afbe72f7fc206fe37b -165 e52d08747b9d7a6d04551bb86ee3f7ee6c49f7477c8cd66f77448378cc30b92b -166 01299ac65733b5a3d774265fbfe8396b8611e5e3321855dbc541cd301e71fe5e -167 2c4cf657337835125bc4258d0e2e546af4185bdb70f64e1b0aa46d1d78017404 -168 2af4dd48399a5cf64c23fc7933e11aaf6171d80001b4b1377498ae6056b1acbf -169 392a52e4f77c40bf3321dc2feac356fac2a906a80c961748170af4ce2bce1e6a -170 37b73510175057c633ebe4beb0a34917fa2a0696432db43a4eeb2c3ff83a4c3b -171 131b0c35e2d7edef9dd63f48eff39341ef0a5f770538aa4e0017f41b9cdb135d -172 15a26c6fa5151c712acc7ee45a1fd525ab85b801f096847c7d5fdf49efeabb4d -173 25dac95b8f595046bc435139636b0e2f1ff6e0ea31a54f3c19e7e726fb98738b -174 b98880883fd8d975260f1807fa46a5156fcc4cc82bf6d657a417d8bb4e42cd55 -175 6ea2fdb3399f4d2e806beb01e9a3371bd622bed6a409acf3151818d738c370ec -176 04d19fde0a08b17aca69491e714bea43565384d12a63626e08477662cc03780e -177 a3af7b3808c4cf72478d05c9bab9c0d47e31c1d2cb3a29e7481669f7ea278c4e -178 3c1b7053f0edd447b778edbc0ad8359b0fa892d69857d9bd5e6b19007bb3f01e -179 0f78540965a86402578f8188c826c1cb6c7ddcb608ae3a3201e532c7cacb6ce3 -180 26d228663f13a88592a12d16cf9587caab0388b262d6d9f126ed62f9333aca94 -181 dcaadad1cfce437735b81ab025f776e5857e48558c47f6960e6a5f2595664a85 -182 d26eae87829adde551bf4b852f9da6b8c3c2db9b65b8b68870632a2db5f53e00 -183 a73b320dc0d3a57c03f897eb28ca91e623c5ee635db59476ba3178c90b94019f -184 f64f410744d9470ffe2d6b9ee6f042cdffcc42a745d2568146e8782ea828ff48 -185 a5abb1500bdeaef41e2edd598c015edfaa46793051b82d7da60a70efbf786da4 -186 480f5a496560ae4228bb7977ecf29b2c589d7a7aa6b609534566af8cbc229a9e -187 52f14fc33ef45dd80ac2626077948f44d8d211d5f24bf9db333c9403968e634a -188 1c49f22f6de9bd15e5e566fa8983be4cfa4709abf0f95edf96dcd3d6249c2649 -189 8111eb1556229541d7d2720a51203037e78ee57fb2e407e0da4a805473dab7af -190 fc72c98a6c2916c1bbf9f39fce094f5785bb6f1d656971520b660b2e8a760fe3 -191 4c8d5b6c695d265fb63dd73f275a21043a5887b37cb4fea0552ecc7b417c8f88 -192 db55da3fc3098e9c42311c6013304ff36b19ef73d12ea932054b5ad51df4f49d -193 5092c37bcbc9f0fb33cb0f9cab7aa5ae94ed0f1219773c380b143b7c1224d01b -194 5658b88806a236b6439a7ecd0a87af2475a02a848095304c6d25981ae5e7e9a9 -195 0dfcddb0440e967f05bb68ca09a5e2188b8abc36bfb5b95b83b88be59c42c6e7 -196 42f25adecf47629878e89e31b2073d1af009c9c76f4140a06313af5e5950eabc -197 2d1007980f49215311f7f1012e84f99b801eb5daeca04dedea3ada41cc45353b -198 fed88b40aba63cac05eadd5db0088c036005ec235c7be6fd87d656946b733332 -199 aaf01d71b55e51b1a3051cbb3cdc0646578dcda722b2922072a81f257b1a9821 -200 5f2703a5211db19a9020f7443f6a440fbc95cda90b7c2d53912f5ce47d050056 -201 155d1cf609cedded2fbc27a4646de87ce7f7de2913b1e5a1bbf148a6df483e19 -202 0ef962215cc055786d516355238a80dacc204ecf9b160d0a252190bf5c0cc370 -203 18d37c950a3e810d9b9a84c72c230ca16b7cec19f7fb55c625e5441790d448ef -204 e3f6959781c353c201d378e02d9da532601673e08a1706fa15a5ebbd9ea1bd36 -205 5627b4a8f9efbd8fbdadaf4177824186f8c734f320935c88e926bc027af6c50f -206 6d05621ab7cb7b4fb796ca2ffbe1a141e0d4319d3deb6a05322b9de85d69b923 -207 3538a1ef2e113da64249eea7bd068b585ec7ce5df73b2d1e319d8c9bf47eb314 -208 75c3e223190bf1a1fa2af808d1dfcdffe33727d57eb0028b5a52ad893480eeb9 -209 a4ecdd704d258aa841bb3f9a1e3b0cafc59bd88810e542f8e7a0519809d78fe7 -210 83151157c10d85af7c84657c71c3e3603d955160f0526fce672481da83a2e090 -211 549a2fac47d713cc00f2db498ad6b5574fb03c9293aef6c7ad50a11b394c197d -212 d83c7ee736be931d85b78a4a60881ced3ff9a31bb417804e45b1d30de40f94f2 -213 48f89b630677c2cbb70e2ba05bf7a3633294e368a45bdc2c7df9d832f9e0c941 -214 b3a8e0e1f9ab1bfe3a36f231f676f78bb30a519d2b21e6c530c0eee8ebb4a5d0 -215 353767b239099863e13ca954e20a66c9d75f777baf239f56e399958de49bf79d -216 42f0bec3310ddd8a55e8d62817337ca49c55a898c14ab073d07c16dee24d73d4 -217 da4d43f295ce92630829272fad6d2e7237c6248e9cd9499e6382d6fa6d758e7b -218 06de973bb45531d52cdbd483c5e50bcddaa2095f9515e03cfad490061cc9831e -219 826e27285307a923759de350de081d6218a04f4cff82b20c5ddaa8c60138c066 -220 1e5ee5e58c8f490ae68e7e91b1575ebefc2bf6c211f302a553ff0c4925e85321 -221 c6bd343ae0007cdb979de7540f2668fe849d68ff47fa1a650a28f89104f41f1e -222 30eec89ddd9c342ef28a87f731d6e50ba977baf12d7caa7045a9d56b0e923f03 -223 b6cb293891dd62748d85aa2e00eb97e267870905edefdfe53a2ea0f3da49e88d -224 3a8f6d79cd434dc10588606993976b7b2bc038ff4a2481e857ac0168fc29a683 -225 98144d79af44407273f26589afc01901b7b296deada61a4740b0d404c5043c53 -226 b1585fdb272b31401eaac5dd46a936c1c09b4861e53e23f12ac72fc077b3c82c -227 6e82b8197ce29396936a07b1eb951c88650a2fc0fe1201a51b15b6ca8a73318a -228 ddfe0e8d462af661f81db36589c39882dc0f2330785b5d80cd34f2f520ad618f -229 51d089cdaf0c968c94b80671489d22b6f79b1c57de80df880b008e9b37b49788 -230 d4679c618f1af07ee8570edd4b931e2e68e1c2d4b7d3c2f1033a9b597f85d4b0 -231 5844a72aee9269a68da28cae55c706d824b02ffb92189aaacd746a0d6097f549 -232 a77b6cbdf6fae1676369dea1e1ea675e4c2400c9e43bd535fdfd9395cb48cbaa -233 e4be97ce765e6cfcd703884cc31db7478fa7befca7cf6dc15420ba20ed718abe -234 cbd02d97b0731d88c78d30c20d90492b2d4c3f2f983931c38fef2dedc7ce48d4 -235 227445a988500528d7826c6921d2e3b4a79ccf3a94cc3bcf7b667e3ae4990b36 -236 560aa3e6e94314c78236109e209ac79e15e05ec8bf2dcb78300ae65e720edf9e -237 35bbce4007c5cd57a4c6dcabbdf5b347c9557ec11898111c280a788f8396e2c5 -238 dcb5d6e69e4ded78464ae2843f509daf65c9ca09dfdc9b5ad69166341963a877 -239 db3defda18fafc0c197740438051c690d98b551a7e449d66390d38fa2db09b77 -240 0604cd3138feed202ef293e062da2f4720f77a05d25ee036a7a01c9cfcdd1f0a -241 5344c4110f483793dc352c388e67776724c36b4bea3ffda6cab7c75b9c65aceb -242 ba689abd93c9c6a7d08b5b5c04dd27f6d69755ebe9a87fb969e73dfc11660e38 -243 e13b778ae833ca8c5d757c58e4a85bd71e08c05caedbd096e13ec3f7b228b43a -244 ecac903ea62dc1d5446a88330af0a17ce89c7787e5aaf450113a4a426813e3cc -245 a05198938c6ca8cd56289c6dba6bb8aaa68dfe8e0d7a37df2fb76e48eeba4244 -246 5e5c743a015ff8d81e2374d5bca1bdf8ed87ce18484fce8cf4062183dde08493 -247 94f8607915dff25f013e45fc0642fb9830b0fb25ab0ab46d477eaf1061def379 -248 39700d452c77592c9710a4a34c6fe97d6150e26d550a5cfa553b0177d7b23e95 -249 b027feeb60b70f0d34ece10aead660113cf06408da4c6477c7b2606839475de4 -250 4771bef2c04a34b548b77ea7581cf821152d9dea9c2c85151a07856fe3639314 -251 8952115444bab6de66aab97501f75fee64be3448203a91b47818e5e8943e0dfb -252 0b35b06a22779418f775a804f36485f7bc978071d1709ad263a68f4f18117b11 -253 72933e3b31f0070af6478edc3becf96e1ee59917620e8c509cf0e6b360e29c02 -254 c32ffef1ae0cabc0576614cb4d2064cea5bd9c0fa13c7b8bb9fb9b4e8ba950a9 -255 f7c2599681e9284ce1c403459e22b730e997d67d16c45c4f593108e8372029a9 -256 bd3a797ba948938978965781bd341bc0fc7711ed00e513b9c63a61cf3d916562 -257 8920a14a7f6469b955b114111564cb9736440238d220fc9fd525efdb9a056d3e -258 87e29676d583c04a1682dbd5bc0d989f8311c888655ca66bc486b6f7f76d4702 -259 68f10bf021d7734e071e07bbf561aa0f1bfc7974f266f71311b9177b177d39d1 -260 fb8a0d2da8683cec6cc64542f95ae11e085c72d56c744b2be5be335295976610 -261 5ef6514ed3304cf62b950982541114ac352c52729dbf80747775a9d1a733af93 -262 20ca98162ba780883712eb701c84e4c06f73aba78e903935a9ad799193b4627f -263 da6813d10025369ac0411363a16ab750adb21c6d0b38a03a9fc5ce58134da875 -264 84f01dd97c687fb28a296bcc2ef1801446ea7405860595924eb2b5bb634718d1 -265 18beb4813723e788a1d79bcbf80802538ec813aa19ded2e9c21cbf08bed6bee3 -266 d359f8b537f1888bc71fe20b3d79eae6674be7aca9b645b0279c7015f6ff19fd -267 68e476b5d5aeca7b0e3b5ca867106c32e40cad05a490f6b08a24063cceed7e7e -268 6fc8f95bc6465849249d974d53eecc56c00ffda0fc3c7024bfa5b8e4d794b072 -269 6e2d4d3a3d4c4bb21b095657230061140c63b1ff4d89d85e32fb9a312319b35f -270 068814875fcdfb8faf539ef43cf5d109a22b7cfd28770e90b00be8c48bfc722f -271 cc6bb91d4a9aec9fe2e20ae49fd18166f522a7918a2ff2ecd1c2c35b5d4649e1 -272 833cd8c0e698745b16dac196a511327c3b30258a0d9b96710745d28eca932533 -273 91a73fd806ab2c005c13b4dc19130a884e909dea3f72d46e30266fe1a1f588d8 -274 9d6aa3d89c0171b9c2ccd57e6d41ccec3053d3c3f118386e7f10b89ebaa7b8e4 -275 dd8e8c8c9dae8978f122d7bcf3d0d49f6a0e86b9fc35528f55e78f7408927bb1 -276 0d6f9709edaeba4bebf576d6b886b8c7083374f521f5256bf571add42fc7465c -277 04edd1d7736883194af3ddb232c337e53d17bc93cfd2140c4f4c4e0d966798b1 -278 4eef24c6b8248c2271f6663f44ec0de3c2535ca396a22cf60051137d71721309 -279 621cb5d0bdea9584dc9f7ede1479e7cca67f8d9778d7e3c8c5cb8aa9eaef47ef -280 236b565af6b512826fd89dbbde2e88b94465f780985c134e58b62dea6ee258b2 -281 c57727d64e318e2ea42af2b4c3360999ced134403066d050c980e7c6b70d49e4 -282 085b2a38876eeddc33e3fbf612912d3d52a45c37cee95cf42cd3099d0a3fd8cb -283 f292c8c5c2fe9fd30ef1c632e6936edabe42f087e3cb50ceef0324b729383d82 -284 5b4afb8d2ed60a5777760a1cd17fb91b7c940c125cc7f74ae40b75df92036e5b -285 8e28c5eb829e92abf7a5a921f42364cbb8b255d7c9861a68a3814a9de95d9d67 -286 fb84a9739699e1a2c6c56b5baa0a16047a4d845a5c6615ab9e18bafe688f45d6 -287 59b524f8de039389005bce58385cae1d9241abd663e87647727abc8802e85c3b -288 de0023e398111d43424845aaeee2e119249cc0567e7b585eaba5f44080b458c6 -289 4299da7466df09516d290f7a99c8b7a2fa94766eb94a61c24e1ce8f6ca80af44 -290 085bcb597bbd610a7f0f955301d0fe3734b92a7144e87f68e8b5beec1a09b55b -291 219de1387a6743e583e805aad3bf0ffc69dc2107e6d233d43ee8ab62434729e9 -292 82a93b152b275d4c8de67c3d05c9b00e92477eeb024f117c7632cdb26fd874aa -293 a917ca757ac59f9d568616140c2f72362fc2722ab277e7b5019008f280f17beb -294 e6fcc0253ed7a328a10eb6e2e1ad6abcad60c374c64dbac4b76da610085b43d8 -295 60f070e3393291d6f836bf0acdca6138eadc4dd1d168ccaf03ab17cf0464f81b -296 793733573a1dfd14a2e889a11b2ad7b6981de29df813863b528dc1ae99416eeb -297 a3aaf5a0e9ad2901ab35ce73910be7fbbe1731a3ed1ff947a6ac395c5024a8b3 -298 be6b5b7140b02bff9ad8fa5aaaeca5973791521c5029c9f6b42390f8b87ce2bd -299 bf7db3a1fea244ba0c173404b5abb382def24d3bc547ca4f410bae2a311cdf85 -300 284b7e6d788f363f910f7beb1910473e23ce9d6c871f1ce0f31f22a982d48ad4 -301 3b86df3ff95ad2fd72102e34f3a721f2bdc876e12e3bd1434af8ab4cabbd5547 -302 90b5bc7f03c840b2efddb22ffdfc37dd12cb391b49aa0fc8751726c04d32ff30 -303 f57b8252cea0e3cad78056cbf96b9fc041279769afd2228f8c9a8a904550aeb0 -304 67eab6db6703cdf9acf656bbb09640fcde2ff197786adbd9ae9c14936fc8d159 -305 1f594da9b409f7f4b9dc5015a81761b2fc2dd60eec773f74539bdfd30c552c89 -306 01ce4b291ad3ecd240be71870340051b755e74e91e05d5c5baa0d7830c1b75d4 -307 97623535a9ed79620c0c749a7c0a785de0f8a895807195daf2b0e58893db160e -308 7595dae9cde82218336a5457ed9d55ec898c51623f73a69eefaa57a2cc9194fc -309 fa7aec4efb728534ef32c172197c9560097c6d0e4893fe6b20242a566ef033d1 -310 3de8392541ace28284aca7f2724273739fcf4cf73de276a8ddd3547c0011323c -311 683d098205b11550f2d71016c82c4377a96c9f808e132f83f15ba9bd058c7b20 -312 ee377871c73631fd6543ddb5164d0b48ea072daa207a91ac696051e0838135dd -313 90b0ce469fbd8e30a2862bb24d562dc641c534a9b43c7c33c25cfaefe25e5e47 -314 fc47b34e36f4032acd1ca2192a7b9b097011ccbfe3d8e27b04bb6999e000578d -315 fc71f2d6d38dbfc752ecaf2262916dc8ad99a34243d47b34691f9f8a3afaeffd -316 67c312330b0371a0a37c565cf44ef264835147fea61261bf57380f338efcd8c9 -317 1ad269a743bd01b5bb74f135c332a4acc98ef1a570d966fcd6a801de6d9ae3bc -318 21900f41ecb7b8e6cfd9250f096aad2fe7f6d8fbec9436b2d28e48c304ff8255 -319 7b81eb727ed48055fa55c5e03aaa43f27b01bd9b1c8eb38f37a1ca541a79c1f7 -320 b6b1b469ea43c90a602e7ae3bdea001b11f66c17337dec23df0b0249542357ee -321 709df012e236dc3f5c53b8ce75c5adf74c39054aef58e3eca5d852fa5f2244de -322 bda584056eb9957d6c681e00079eff36fec289e2a0432a4221b95438dfef5ca4 -323 2cfd4b162e427e8e59a2fedf7d5d138eb696d08b98ad9765da0af1690c77b280 -324 3f1bb7c0da3c01e685edd592f3a3ca0b149a399d25b97c0da47118c24a39f59a -325 62e66f3e9936906923febd26f9d2536edf38936998c4e5d678b925d848aaa89d -326 ed0b853bd9c28435b6aa98fb0780ca80d7d6f72350f76d57aee9509219cc8d61 -327 86bc00bf176c8b99e9cbdd89afdd2492de002c1dcce63606f711e0c04203c4da -328 c86a2932e1c79343a3c16fb218b9944791aaeedd3e30c87d1c7f505c0e588f7c -329 5480ab857f30bc9abdc0d88179b66cb30b6a294029f8bed71e3b606a19941359 -330 2099a9b5f777e242d1f9e19d27e232cc71e2fa7964fc988a319fce5671ca7f73 -331 83eaf4dc5e19bcbeb23801e2c3e08c4a89cc82d0a42a903767f9c938d1deac4f -332 5f128c8385e577cd1539a0e5a758e4004f4b97e5986b00fb17d393a5ee5ed85d -333 92a6a32f99def322d70ea1167a99c6859ab4e8bbc593b997ec5994d244a82475 -334 c22e1a4acbd2d996ff19a852585f9434883c30124f6b118eb9152fe4e5ee7994 -335 5c17cac5569c1ab72a3f009c7608dfc49299ad8f447e4724030ea416383b04fd -336 fc9e91cc78e1817d80b4ba8c2dc9a638d0c57959825ee34f5e3d7688ad80dfb9 -337 81f27f8a7d8766c72c0307a31327c1fad9007c6c3d33724ad2a5c0a8fe0df33d -338 9ae8f17cfc8ba7fd8fb34b2a194ef965a3b36a40839a46eeab1350e916692ac9 -339 c7e616822f366fb1b5e0756af498cc11d2c0862edcb32ca65882f622ff39de1b -340 8b5551ea922dd24625c45051c64adb50fdff91fecdf5327a02c7b0be3933965e -341 6f81082badfd007354ac6ebb78adaa04bfedf9a1fb9a01909788bad472008ea3 -342 172e1676eda470ede17e9d491554bcbe97ba4691f92880064c8cb29ec35a467e -343 00bebc5be79d19e1b8b3f250dc39aebfa9a054baf5f8d61380438d92394c476a -344 12f26af0dcdfae8fe4331d6a4c369edd549220cdeb119b3b1831b2a2cf77f281 -345 f4466a4b51d21014b34f621813a1ed75f1c750ec328d908d9edc989c64778962 -346 a440868cf4311953cb45c7ded9360009e1bb77775b6395a3e13aa9ef831794b1 -347 63db0204e2f34aaadace364d046ef5d7614b8cb287b939e55ac05c53aee90de1 -348 2782526eaa0c5c254b36d0c90e1f8c06af41d167a8b539bd3c81cd6d155e7e5f -349 1c8dcc518b9942ef52885666bfb82260c287afbbeebb71e741b1262099424f11 -350 07bed92aab16ecdd9c886a79e44f0c0b02d70c746c593eaa3b8acf24e687bcd8 -351 10ba045e9ee40807e57f6093280b9fa9eaf640ba4955e340ae4c749382ad96fc -352 bb9b8ef813475d1e0ad84e2505af6656d16c990b1f77efaf9324e8fbcae2db67 -353 c2077253a9b10166e7c8ffda8f2377456f332029eea3d27def7fb2b23502c0d4 -354 fc4fb94d36f45aa9d13358022455e55db4b6f0eb536a1b2897c90dfd3df9eb9b -355 809e63d5c8aa03af112d17361058d0d8955f6d8e1e7591487d593dad276f9757 -356 4cc3d9cba4633096fadf09ea1106b4b321ab81b1d461c3d6994f0e303f631249 -357 a6c2a2325dfd588f202a240a06ccb2b037854e7097a303fc8991ecc15501528c -358 11f8e31ccbdbb7d91589ecf40713d3a8a5d17a7ec0cebf641f975af50a1eba8d -359 e4c6a9f38e8e4d127290cf104ac1f46d0649c7db6c89f4bc10be7447bf1f514c -360 99ee50221221864d50c60baea6f14d8ac2e235cc6e78be6088cd40cc97fca394 -361 290a0b92873bdf4e47986dc5208037bad7527653bff700dc53c1e57eb98103c1 -362 e4e549408422875958476160732390defefcac7c2bd8353d918fe452d20de2a6 -363 bd94717d91260895035088525e817ea10375454f03aa3bd8b28b355a4cee22c5 -364 5b60f221d4a1852afd0194ad0857fae9c558608e35621dce43301e8c771b7877 -365 1706be6c293444756e72b05e4afa9eb1038e552ac6ce058309451ef7ddad7748 -366 92c5fd0421c1d619cbf1bdba83a207261f2c5f764aed46db9b4d2de03b72b654 -367 2499d690642faa4da2a67b078236d1c031217f3c31cf2da2142c8e84e3d617f1 -368 9b09d7f65345fc85aaa8814b69f3c933ce5eda41786f0c1df1b1ab2b1fdd2ecc -369 40f8d6d22b99ea3388538fd60bbf532256434b0eac401df1d9a2bdbb29354ae8 -370 2e00b312b0a9681bef09f9085a4e918b8fceb0c0b1c043dc17c90beef5fa446c -371 d536a8c1664fec0bc85615cf3cb2645871e8b2935c9642c534c67ac85315cd35 -372 6c0f3412848008d49d186d5fad7fd1482656cfb62ad3c060a14e41c3fb3f1b43 -373 74de057f768beb42de17ffc4b8a56100f0bed85947ecacaef111e3d3ec997950 -374 0ebb3519a0c4044c4571b2408a52e7ed8009564205ca65a69fd43f232352f256 -375 68c6c6e9ad314d1a5c4d647cfb6ed84265e47cbc2a05a54fb58ae74c0085ef29 -376 5c3e9040008c91509e2d28e5308034b677d4e2cc0b386863d4883bdb747eba1c -377 9dcbe7e30f0bd60827341113108a55f86b604f921e0792418a9810075dbf3d22 -378 61182f39851829ca78c919a83ecbfa045fc0686bff16d0cfa3e643988d9dfecd -379 f24f1a64b591544a871284bdde332d3c5d2cb109d21c03122c57d768e7c535b1 -380 367461e6dd07bdb57342cb64b2a8d8e0fa13c53842a95ec20a90d35bdd6eb77f -381 2b9449f314bf93145f8122906d8dc56c4ca1f116e6db7ad2768d6f9ade29b31e -382 bc8db39f614342b78a67494dbece216d3726f6924b73563be34fc630ac1db7f5 -383 40962624bfc236888ff8a68a74b0c30166b7245423520bb28196b67f57d5e332 -384 234666d765f4c0a26cf4d96eced9155888477cb9b19e8cb48ae4ea79ce1b28de -385 ccbcd0d62f439eacea8b0fa4139d934d2782bae1b8046e8764e598dc64a9f421 -386 0df5486b7bca884d5f00c502e216f734b2865b202397f24bca25ac9b8a95ab4a -387 a15faf6f6c7e4c11d7956175f4a1c01edffff6e114684eee28c255a86a8888f8 -388 42c6024940120036d7a0103375d5b8e5072589f6d0f9a1a8e7f6eb6a17358675 -389 5dad6478e152b8aa33dc6a2c27992d26c0a6873d6ed1407a7e6efddca3985122 -390 0c658eb5d61e88c86f37613342bbce6cbf278a9a86ba6514dc7e5c205f76c99f -391 d3b913cdf3e8a79786216cc7bbd15fc27f86a7be516f3e14c909b86b7f9eb241 -392 a8cee66e4788af8b855979155e486c988d84a42aba71e43a0fc26997ca12e737 -393 86ab8cbe5869bd1f9c70924e9c04fef3bbe3bbaaf4e816efeeaf7eb6a31937d2 -394 a7f0b84de7a450eaf6ffab449cb0f141b69eb701ffb455f375c3dae4277b25c1 -395 f15223dcc0da90206acdce51c6a9e24938b18665165a819f1abb69233c068cae -396 b967fb22d506bda1b4d8a878f46c85862f5d71bb7669ecc6b0fe65f5ad19f844 -397 c78961d3d782d8a85d9344eedae027f43ce6b9fd35c8f355861a39e0d0ddecc5 -398 9b6c13f0d182b253c607005217881bbca28a5b04076842f6bc65580c3801a0b0 -399 df56bc061e91023bff33c6ba0d49d166a60e3aa9317f90e7a7fa3d7a65f96886 -400 a67063986e67b7ddd107229ba9d480ee3a02f9d59732d4bc03b2d97d27a1310d -401 12132cd6767ee325d35883d25c0b7f5e1d142d60d33c563c39cea29984dcea57 -402 ca0cec7f60085f0289aaea5cbfbdd84ad2ba05148de121075dab1c636682a566 -403 0fbc9039145b6449a7765dcc00d3bd8377d93ac8cccda9f0292b5976e6d67c75 -404 089ee14b926fabea6dd95890032d1a37e69c1011c710977af774ec3a7b5b39a6 -405 54006483f014c53f76d879c033e5589a76e0080d8ced5d818d777344eb78656f -406 3daebbc6dfd81355f1cc9d9565ab4a4a53bda47f6117529409acc7acb55556bb -407 93411f44e228b5004bdec50f32b6c646819eebd09ba3fa26511502b23781a617 -408 87a4a78ecb6deb2dee9ddd0678d03800141864a049c99b072e1e6e7904018db7 -409 3da6ee6699da1eb52d358aa59b8e1cf6b5d77db224b4cec0faaa540610fb3b2e -410 5620e84be3e5141819e0d9e4ba10b782ba40e232e56352ed636dc0282161b543 -411 ff108b68b0e9bc1e5a744f80f9ef1b8575c7d041eeb3e8d2eae300347de6e7fc -412 82607c98dec8f45ac84e7eae445d8da60d05706ee7405a9a53b0c914b488f1ab -413 35a9e381b1a27567549b5f8a6f783c167ebf809f1c4d6a9e367240484d8ce281 -414 1a6d9c97798d8997f85ed9228296d533be6b47f97217709d7e2b628e21800220 -415 23c5910b8b10cfa86e40099cf01e5c2b36f4dd0a903f0c60e5517ea177f4d390 -416 c032851ed192d8ac0a3ad04b0ef3060b44d1f6d62f8c17414006702787c5d88b -417 f7abf2a084c3668c7b90654bf01205085e5d0219ffad0564904e5c923af11523 -418 4d5e5deb0353d3a6c0b5cf97de0a23087a56796a3474ee500edbe4676c3b9716 -419 ce02d4b6d1aceeea96a562c10923d590607df6182b4a3405ad10be85b6354787 -420 1a1cf797fabe7f95836fabeca626907c77b3e6c9aff7c2290b396a238c69362e -421 096012b7ebcaf56d1d63b2784d2b2bbdeae080d72ad6bd1b9f7018e62a3c37d0 -422 477f4b2cdd3fe2b9fdd7dfb887f98252ef26cecf13eb53289116a1344382256d -423 9f006addc898a6458ff29db72de90b27e29302c92b9c73e33515df56290bd855 -424 dccb3c52e7c79f7033e1ea06eadf92fd90bfd7b0b5737dc0c2511a0e163872f5 -425 d1c78c9aa5dcb0991f46b25fbaaa359d7d5823ac7a2a94c4d4a31da42a26c24f -426 fce86e339dc3131c489202ec3b6c8d4319c61f152b3541ba0e4141e5d5c3fac3 -427 bcaf44f4041e62e142d50cad2aae2520e01247cd144d28d4ab20b758524a7217 -428 313c938e0103b56b43632b702e3e63447fab1f90a4fe890ca5abb7a6cf8830ee -429 477d8dffaf92d265c56dca496167d71bfc1c34f443bc9a6677009963e6e99706 -430 7b2c21ead1522776414b5a256722903b465fd0c8e029005fcd865144a429da52 -431 bc57590a33fe355e174396df60ac503f8e99763776307dcd8b9ce8dfe3c47a2a -432 edbad80a93adb5830afc3fccfe0e7c27a81359b59bb2a8c277f95d4adec7c389 -433 af5422f824076084bed9b8a09086ac59f0ed8c74eea7b189d2809b198ba1f6ee -434 7a84ae249fa744b8c1acb6c5247c2cf443e31870aa7217f4a9cd9b157dbd54ef -435 f6543e952ecb93fba1fa65c547c5073a5d25aba46611fe6cc76c1d2645deb3ff -436 ab16ce326c754df41ed00df6f64f7073dcac3e2986bbf8b2a1ce4549b189a0fb -437 a807c0dc0a5b5ea4a70b12ba52ead3d30922e1eac15c396ccfdea715a2f15396 -438 10716564f7bea47036cae9a39adc7dcd395850714228939a2b508d4e57d61824 -439 209eb5f20ab018ff6f1e42b98e5b57921aa4e2b7a7b683de32458b7153720a28 -440 93c3755d0c9030cd90f0e6eae6870a8497730f89b7fd0cf231adef048d2b524d -441 5c344ba7044815dd03c3448028a43e5b9c16074cb5a6a19c7ae86165c149735f -442 a5af16fb4a4856cc3f8530b5214830a85103fb5a515b39b93e652c0a142363ee -443 cef5838d118dccd9de488f16a934cf10a82303577b62888b7ff6f84114827e58 -444 7f3ee9fe1fbf452b0c242614e1cad18b6dce034e5bc80763dff6332e872ad2ff -445 db9351a297a7362b3c913ac8de77bd9a1ccc0d61bada939db15a315f5e8113fc -446 6cb6d4b2fa122bf8bd63280061e4a230565fdec3ce03268caa2f48ccd931c691 -447 19e68d9fe08f7c4ac18948bf437400f955359b1cf21a86544342427695c3c938 -448 de498b9901677f58da56b38a515db0a6a3b93840bde5fd0b74437502163e9fb1 -449 12e967ca0f368d0d8511518c58c6929146650bb1babce4448263e67722dd0161 -450 7ffc2066e20c16e95c0b41167e334afe57ff4991b21c8d581611a3f516a786a9 -451 6ffbae9aaff664bd4739f51a6c7883a2c3ce74e9227a6aff728d0d57ad56f234 -452 7fc81a57656ec055615121454cb5343aaf3db93c762fe310d976e5fe8d05e66d -453 f0cbba2470c7c8706fe77e8d88e947ed8c33100409ffb51ae1af99af7d3077a8 -454 8e46760943785a93c7bbfd1b0e733299b05f4d9fe575cf23087da310db486f7a -455 12bdc9eedc0abc0dc0f5a4c36836d8bac9a5b78de2e10a4747859a305f6d4535 -456 02f99d2002c703f1669e358989f1663e1e38e96297dcb3bb70fb67b0d74fb877 -457 c62ce8b4e927f02f91742ab99d269a17e05d47f12b2275cec9d353e711ddc218 -458 8b6cd7c429e83373dbd412f43d7422c0c4a127d93d0f2ad15909f0c2a3e7b320 -459 7c4e3e519f7e8481ec5cdb09dd1e35a1a79860ea1d440673c9aecb9c9057148a -460 d2e655334ee2e4841be477484381df1617a8b891adc04cbc536cc1bed229d713 -461 5b7c4e75c9485e2e988dce7c57bd9e9915a74217914e7d7a1f13955367db0899 -462 8a9a02d73aeefd97306a08c30969a9e8d5ef03960978a1c5db4447558d40f689 -463 062f50753b9095ee2eff40f888d93e61f2ffeb661bb126d15229f03e0463bdb4 -464 b543b2a3edcc48cc0f9d7159522673384b34fbce51920d75df4d0c184dd89b18 -465 3d734d729009b74c011651eb24b06a74151fb99b8da5110295da8bb77ec3f92d -466 a73ab888363736220eb589458721088241ee10059b1f5898a13fe9c2e14fcd8c -467 30e26cef13a6dbbf0e3035f8c16f55670f4e468e97ac7dad43798621da636abf -468 4f97f2eebf92cde58c103466712fa2f65b10d06ff8f1934d78ff592fa0575e27 -469 28096b238fafbfd5abdb8ddf4e7f5a2c67196cfd8b5d49a196012d0269a2189f -470 1de4842b42fa3db35fc4cf058a02acb057a8df02d0d3cdc96e686551aee25a39 -471 3055e0d8130c7a197bc6e020afe9bea1edef31f33b720cc326dd404d8e3f82d5 -472 f44b7809595e5ebe3bb4d65e0cdd1ebbb41b29f5ab8fd73b2b6aef8e8691a62e -473 5e968ce47ce4a17e3823c29332a39d049a8d0afb08d157eb6224625f92671a51 -474 a829c72c42755e384141ad8f163e4965ef5c9f8f0e07378c1d05a7222af0dd80 -475 64d94c866dffad6dab67498f5ed9cdf32a6e747e2c17e58d2535f549f7976cb0 -476 eaa1938017b2d55e02387d0837e1b56bc124ae8a17624e10e366bae6c4b9c834 -477 c49b60838c5c6ddf34806b6b3f56b51516842cb1cead54a903f55d9c6d73c76d -478 c62510afc57db491f9f993387b76dd9a7d08f09c01326953904b6586c19c4b8a -479 1bde41ce9b4fccbf7dde0dc315d1aea5fa03f78c56feb1ba744be9e37fab2dce -480 91d95f436356bc3df44d44406a139351debd062823258c8cdc67e8dadb9df256 -481 6a97982dccf77dd3dafa27fcbdf75c017301f730ba186b1d9e8ea212eee73f54 -482 533eb9a8909f614c351b65e6b8aba1ffc2890735ce9a8a8936e17c05335dfa47 -483 c8c9cad7b920b50f713830b8dc55f59fffbbad98335d9f30e0bca8fab5dfeedd -484 5e61b431f3823da05836b2139f9a811c3cc078153ba1853b44519879b7d64af4 -485 b123f95a5578ac2ffb571adb3fd60b023e925128d1ef5bf917a73a8fa3d136a4 -486 39e18a493b913441c12fac89a09f24958e5da0ff6f3300c80c5359f36e3223aa -487 a5ccb1c538e34663a658b1be28b16455ee5285efb10e6f1d4caba1f69ec9782b -488 1bee34b6262a7777362f96e3dd5635764e820f97bab9772f492397774a38d74a -489 28ac593455c7f44e49e0e5fb2b130739cd8aed87c15e4d79eb2fc69c47649360 -490 b9dafef03fc90f65d4f9efd71ce73bb7a024381eea09b5f909a977bd0d8d1fa4 -491 953815689985e39a762284426cd5884050ea56b7001aa332b18d44d8df0ba478 -492 b50d427a71ef5f98a1bdd4335b71d381dc6a3e937d899f87b92af24121bb9579 -493 7e07ae1a0cd3da38f7e619aacacec577992e62944683b47726c201890e98d2a3 -494 1a5659493256d9eb296edea686b14dfd94116d21c8ab25ec0ca46a46f617067e -495 51054b8a03281fd02034378a5570ae0c970fb1d5d64246e0eb981481c228c108 -496 df156e8465ff477c90a1393a0ab5947e448ed696ac0d3ea982480f5c237a29e1 -497 73c2e083e4e933fc3ba76abc2bd6aea80c838c172e7db94ea473c9be4e07b2d7 -498 bff3992c1d4f9aa5a7945023e32989d83c60ae06b21fd37904de6dbfd67694a3 -499 2f74d62c5e51079f4e0db990f3a44137f37b268c0f159b661420dbf203df0373 -500 ee1a7173778d6b708b4e532f6b997fcd54053fada5b6315886211257c04aed2d -501 a8443b1426652157edc23a7c54fb7ad2c7643b5d8c431ceb54bc29341faf7e7c -502 b064bdba191139689139124101c1c39926326a9b221bd8dfcd603f065c3dc3b8 -503 ffd560d182369b08a8b3ed35cfa5ee3cc50b5b5f093ece3139181709813896c3 -504 21eb478c997305f06e5e0d043d3ec5acc63a85938da69e14f239f34a8348fc54 -505 dae40fcfed8e9ce405c3e0e207ba4781acb0a6a55a527f591b6b2b442f8cbbc5 -506 68e1e435db6ab43fd38ae5df6c6a03b50a5c9c6290f4691e1b670a786c0ebe12 -507 e133553ea138da0438f229cc2273c76d2e44c23a1dcc98a8e7a0d1780a3a65cc -508 828bb918957379a792e06807bcd291daf3c1efaa51325f32d2fc7e3280f1b983 -509 b1e92fe0fa7edab2161fa5090a65e065425f6ead93e1152013b1ba77b471494c -510 5538e771949ffec150f6e8260b2e3801236c7373ed62c22a3f82dc0071265cc4 -511 ad8fa913d25b3970c6efa8ca504da8ba670ce2a9cf012d399b71924deb483d3f -512 6953c2a883537cc80135516935de542987c2cd76f94d8cbf2ad004d7bf4c6195 -513 4652614c4d8778e57a970722f142d832798c133a14b1232a92ffe26a0e98919e -514 fbb2a73b0bacf3953186a92029e3e9b130373a9ff1449407e6125b3481f4f0ca -515 46d4c7c3285e2d04cbf9d55aa79142a277c48372a71c1455971363f2b8f8ed67 -516 7f5642cd0c851c48e5dfbd492e1cdee9a93cba81b38677376437c6587b3af95e -517 eef79a6a04f78a54832c8891ed83f4863850ec0a7d9807e9b6ac208d23a1e59c -518 084917af148384c1e8396addcec2fca2a9f2c3918cad9676e12cdaad7dc7dfb2 -519 b22eb34537f6f6753da6e0dc05713be0ccc35ef12dae0f6bf19b5206d373af33 -520 835cc509d6d86a3a287de70581b43415aee21309f2dfd9533df5f563f37e3b22 -521 2f1d593cd98cb5bf81eb9d880221122342784ac5fb7f41f2b137006bafc92e39 -522 16b30490a644117a249c2018f31f7d29d2848c8bd43956a895f9bcd649f3ff9c -523 c24cf8d31cf7e596ba052b7ed00f169b1c2bafb941b01e277910a1c8263c3e89 -524 51cfe39433c33d8144a4d4663e3834ca238ce78c5e38335c96a9301c5960ac0e -525 0aa598c735f77296910c9b61658e9411d38061dc817b9e35b5ea4867d83f7603 -526 3cb65cad26f0a517866e06dcba59afa4a5eadf832404e0e17c707b928825c144 -527 3837e1aa083f578c9179bdd9e3b2b0ebe980361d800f99637c7b331c29a26e87 -528 759b87b87ba0c0c701d14eb2e6e31560929e93591537818856d079634ee1bb68 -529 aaf5060b9517ba4f550ee34a7f3ed7b05b6e5100a523d3e0aae05bf4f8f7ec34 -530 dff17949eb4f9ecd9361bb97c38a9404f3d034565e5d4395f073c0c367b5ea0b -531 fbe10beedf9d29cf53137ba38859ffd1dbe7642cedb7ef0a102a3ab109b47842 -532 72805ff7c0f210f3aa6e66f3f208974437611c64a2393f4e7edfef47d8e140a7 -533 2c3f699f4b5f7734ed802c0b52f27f670772ddff9d4b875c6d1b7c2f09f728a0 -534 55c8079ac96c6a4f6a94e3460c79e4006d62374cce6e9fc8b281938a3abc7627 -535 25b7c81e770034aeda70db74af0fb638beca992d2a535641e6313f38b9665016 -536 40fb7164e459a38813f304e3b45db2b074be149818924e46fdc49cc38a3e4955 -537 abbb9233cee3e720b2a86acf4ad04e51a670a7e762f301f0fc5b64b8794c30cd -538 3292bef42975c0ab63a2e9ab72143d6e2658dbd6e81a28cb9cf7618ff906c978 -539 462c39f8e9bbf461369150222f7493055e67079106a1a721824544b113519bf3 -540 83cf8b609de60036a8277bd0e96135751bbc07eb234256d4b65b893360651bf2 -541 fe675fe7aaee830b6fed09b64e034f84dcbdaeb429d9cccd4ebb90e15af8dd71 -542 b281bc2c616cb3c3a097215fdc9397ae87e6e06b156cc34e656be7a1a9ce8839 -543 7f861bcee185de001377d79e08af62e94b1e7718e2470e08520c917f8d953602 -544 2c8b871e52d4e5f5db5ff84a82a45327e20df77edef961c4b6fa0e9c3d97ce5b -545 9aaf689fbcdfe9f64a071f9cbe28ae44193fa218e72af24456f44bed64583b4d -546 7a5df5ffa0dec2228d90b8d0a0f1b0767b748b0a41314c123075b8289e4e053f -547 9553627933b214db60798fe40d2b4f8497781d024f53d62dc1b12469b7d53784 -548 ef32cc5c2b7c62093d3ec4844b36a02b08bb83eee2efa6b6b5e85ad605790192 -549 b0ab628c9e14621846c58b4eb35060ef3885253a457d2d76136716d4850bad45 -550 9989a37538faecc495bbe774b30fb447a1582b8f1bc14ac88dfd84996a7b799a -551 61ab550f4c85a975cd46f8606ede483d8ee720a76f627773de1bc1dd8ce5fb35 -552 f296867839c8befafed32b55a7c11ab4ad14387d2434b970a55237d537bc9353 -553 cdad86ca9450d1c143675a8436131cabaf55905c114fa4524bf6a9ec5662cad7 -554 6629ddae3736e894e89cb4a1300a9d2c5c0fad418f8ea06a341b81f2a98bb491 -555 e39eef82f61b21e2e7f762fcc4307358f165757f2e77ec855d6992f7e0191932 -556 46372791018924b8cbc444334300f85a211d2f29a56f2bb4890780b5983fc201 -557 60f256c7ccbc748036024fa0440e45fe1574db20a874e4041a16faf0105a01ff -558 d9a5223b761c375d1263e6e57ebec42d3e0fe3f6f283488d2eb204fb6ff17ee5 -559 340ab11db8d1a7435cb4b4a0492a9eee7b8e388e3e4a1714bcd3b69df3d8f1e1 -560 f46733e1619957ff5bb51ea0272a2d8d73376cabd24f44461061c2caca2430aa -561 56cc29cee9e859a5314952b8184da882e2482d7bc17234b4ca333bfffe5f74f3 -562 920c37d6464a8f20e8930c1980560dfd8ab7183334a20fa9447ecd5edb7a83b8 -563 0c1c43111448b131d65b3b380041de26f2edd6264ee1c371184f54d26ab53365 -564 00037f39cf870a1f49129f9c82d935665d352ffd25ea3296208f6f7b16fd654f -565 8c6c42f379f08f03b79653a3230abd5e8079999435030fd8ca703ae35fe9b37a -566 216da54b5931a6d37cca8e29953361fe02c680bbd8b482343f508e32e8e9cc3b -567 c0aa4a0be7ba28399b09a68835a21755f442e25f8e0971b1d1ea3a6c749f0385 -568 a0a531122de465614efef1078901475b2d78b72b13d67968bd2bb7bd8558ae67 -569 6db44caad5c968a5ec334024daa615d29998fa79f82797cc12141871d0ffbd7b -570 025ca19d7b07d7f554fd7cd060b628e628d0f607afa3a6fde17c4488f35716d2 -571 11382b8de6b4b042f25bf021335d31c09f2f23ae80ca4dafc63214691dfb3dae -572 285b71922aaa01d870483d3b4f59e4a61c2057e1476854a810f387a1d2317806 -573 7d7179c146d0d6af4ebd304ab799a718fe949a8dcd660cd6d12fb97915f9ab0a -574 b910260d6ccd1fedb9919e9974c4b1eacf7ff1e3a4643c05cf423de2f221c06a -575 12051e9967d26fabc3b319b06be4bb57b504c40ac47edc24b5b335f64e71b4e1 -576 8dfd13f4376053626e97eb7221d469013cae9bc031027e64f0db2ec114f8ffd9 -577 0fe39b99b379952df916ed88c169ec63757291bf0c3db2881a4e0e9bf84b1463 -578 0087cf99a4636ebd9a0f66eaf98fde8bca977e2a274bc832cc903c3561735e9d -579 4f95c3cf2c7c5bb500102f36abe7f477de6f89c5b77d13a271614ffbf115f7bd -580 0f0b82fae280ae9fec1905f029b6ee9a9c85bb6cc5151da6dafe38a7902a4a53 -581 2ff2a721fab172f1ab7e77774978c698899249076747675c872eaa9b2f6780b8 -582 d0f451801443fa1478e1cf080e8d63dead650c9712b2631edf7e1658a98967d9 -583 34be1021b378c5701b4dd1430970982e0dbe72b3b340018d7a9b65939881ed7b -584 f8b2f96ed09b16bfd24ff625c064408fe19143db121b7944763fcbcc69ab4991 -585 fde3f2e7127f6810eb4160bf7bb0563240d78c9d75a9a590b6d6244748a7f4ff -586 337b02741a9561b611d394e835278d377c8eb54b0fa32f9923e4e90ddb5582b5 -587 61dbec1d67afe651537e012d2327f6b469780e41565e50e39498f8336fd38cc8 -588 d88c39de46401a311ffda92d37930b4a543eb6286f835afe9d04dd416476434d -589 e18037f42fd038fa9b51c6234fa4f332fa681c14653c9852fdf9a0a501bbac24 -590 0c0ad5934ba82dd287896d6406d1428b9e9669a995ce7964226aa47ede31d547 -591 084ae23e6996e701addeeb7dcf33696f32dcb4ab78c0ca2026f8f5dbbe5a81d0 -592 c6d537e112156be1afbb8a5a85221ff4d95e2461f83f03425549ff42dee7a278 -593 9dacbde326501c9f63debf4311ae5e2bc047636edc4ee9d9ce828bcdf4a7f25d -594 b7768fbb1847758d75c3ee28c3e2391e70c6ee29f7ce19847822bd5a7381ac67 -595 11bde34a6593b3da0d81a8a71b24dc6f6cf05d18e9f59e610e58ff202263adef -596 5f302d143dace627a6a87157fd1362b010874e4dc64609b17d87db648de0af3c -597 1ff7b91c979ea344298826c212adf745783ae8a14a3eded36d56ba1b0f4bdeee -598 f1250af9005fb93c6bc8ea65860a4079e4f90b38d8c258af498bf8cb5e9e84df -599 e0d8014e6e3c51d780465166f0ed7faf81a08bb1817693ba45282fcca874eeb6 -600 8352dd9eb8b64669e0a8347fd37ae6e5cd67c817f2b4b1eec4475d466ab59eb7 -601 16dc368a89b428b2485484313ba67a3912ca03f2b2b42429174a4f8b3dc84e44 -602 37834f2f25762f23e1f74a531cbe445db73d6765ebe60878a7dfbecd7d4af6e1 -603 482d9673cfee5de391f97fde4d1c84f9f8d6f2cf0784fcffb958b4032de7236c -604 9537f32ec7599e1ae953af6c9f929fe747ff9dadf79a9beff1f304c550173011 -605 28dae7c8bde2f3ca608f86d0e16a214dee74c74bee011cdfdd46bc04b655bc14 -606 2ac878b0e2180616993b4b6aa71e61166fdc86c28d47e359d0ee537eb11d46d3 -607 85daaf6f7055cd5736287faed9603d712920092c4f8fd0097ec3b650bf27530e -608 3038bfb575bee6a0e61945eff8784835bb2c720634e42734678c083994b7f018 -609 89aa1e580023722db67646e8149eb246c748e180e34a1cf679ab0b41a416d904 -610 6affdae3b3c1aa6aa7689e9b6a7b3225a636aa1ac0025f490cca1285ceaf1487 -611 0f8ef3377b30fc47f96b48247f463a726a802f62f3faa03d56403751d2f66c67 -612 38d66d9692ac590000a91b03a88da1c88d51fab2b78f63171f553ecc551a0c6f -613 5d389f5e2e34c6b0bad96581c22cee0be36dcf627cd73af4d4cccacd9ef40cc3 -614 13671077b66a29874a2578b5240319092ef2a1043228e433e9b006b5e53e7513 -615 36ebe205bcdfc499a25e6923f4450fa8d48196ceb4fa0ce077d9d8ec4a36926d -616 d80eae6e96d148b3b2abbbc6760077b66c4ea071f847dab573d507a32c4d99a5 -617 2c7d5490e6050836f8f2f0d496b1c8d6a38d4ffac2b898e6e77751bdcd20ebf5 -618 be47addbcb8f60566a3d7fd5a36f8195798e2848b368195d9a5d20e007c59a0c -619 1d28c120568c10e19b9d8abe8b66d0983fa3d2e11ee7751aca50f83c6f4a43aa -620 05ada863a4cf9660fd8c68e2295f1d35b2264815f5b605003d6625bd9e0492cf -621 043066daf2109523a7490d4bfad4766da5719950a2b5f96d192fc0537e84f32a -622 620c9c332101a5bae955c66ae72268fbcd3972766179522c8deede6a249addb7 -623 210e3b160c355818509425b9d9e9fd3ea2e287f2c43a13e5be8817140db0b9e6 -624 ff2ccb6ba423d356bd549ed4bfb76e96976a0dcde05a09996a1cdb9f83422ec4 -625 3d3286f7cd19074f04e514b0c6c237e757513fb32820698b790e1dec801d947a -626 3f9807cb9ae9fb6c30942af6139909d27753a5e03fe5a5c6e93b014f5b17366f -627 73d3f1ba062585bce51f77d70a26be88c44b55d70f81b8bd7e2ded030ca4454a -628 f57e5cb1f4532c008183057ecc94283801fcb5afe2d1c190e3dfd38c4da08042 -629 41e521adf8ae7a0f419ee06e1d9fb794162369237b46f64bf5b2b9969b0bcd2e -630 dac53c17c250fd4d4d81eaf6d88435676dac1f3f3896441e277af839bf50ed8a -631 01d54579da446ae1e75cda808cd188438834fa6249b151269db0f9123c9ddc61 -632 3068430da9e4b7a674184035643d9e19af3dc7483e31cc03b35f75268401df77 -633 52f11620e397f867b7d9f19e48caeb64658356a6b5d17138c00dd9feaf5d7ad6 -634 61a229bae1e90331edd986b6bbbe617f7035de88a5bf7c018c3add6c762a6e8d -635 38b2d03f3256502b1e9db02b2d12aa27a46033ffe6d8c0ef0f2cf6b1530be9d8 -636 2397346b45823e070f6fc72ac94c0a999d234c472479f0e26b30cdf5942db854 -637 7559ca4a957c8c82ba04781cd66a68d6022229fca0e8e88d8e487c96ee4446d0 -638 1dfacb2ea5a03e0a915999e03b5a56196f1b1664d2f768d1b7eff60ac059789d -639 8bcbb4c131df56f7c79066016241cc4bdf4e58db55c4f674e88b22365bd2e2ad -640 a4e00d7e6aa82111575438c5e5d3e63269d4c475c718b2389f6d02932c47f8a6 -641 c17edaae86e4016a583e098582f6dbf3eccade8ef83747df9ba617ded9d31309 -642 f8809aff4d69bece79dabe35be0c708b890d7eafb841f121330667b77d2e2590 -643 5cf4e26bd3d87da5e03f80a43a64f1220a1f4ba9e1d6348caea83c06353c3f39 -644 83f814f7a92e365cbd79f9addceed185761a8d38a06a2d4350bb1fe4b7632b34 -645 093434a3ee9e0a010bb2c2aae06c2614dd24894062a1caf26718a01e175569b8 -646 fa2b7af0a811b9acde602aacb78e3638e8506dfead5fe6c3425b10b526f94bdd -647 0f4121d0ef1df4c86854c7ebb47ae1c93de8aec8f944035eeaa6495dd71a0678 -648 5966abd0cbfc86f98a186531b2b4ee5f6e910120ce13222f98207203dfc9a9a2 -649 67e9c3acebb154a282f326d4ff1951cd1f342e58e74d562b556b517da5e56132 -650 84a5092e4a5b6fe968fd523fb2fc917dbffae44105f82b6b94c8ed5b9a800223 -651 0e6523810856a138a75dec70a9cf3778a5c70b83ac915f22c33f05db97cb3e68 -652 08490295488a1189099751ebeddb5992313dd2a831e07a92e66d196ddc261777 -653 835d5e8314340ab852a2f979ab4cd53e994dbe38366afb6eed84fe4957b980c8 -654 114bd151f8fb0c58642d2170da4ae7d7c57977260ac2cc8905306cab6b2acabc -655 9a049b03f6fc40bfcf2f136320359257ed4af8513f71aa6fef47f17059bbae23 -656 8ae4c23b80d1e7c8ff79e515fe791ebd68190bae842dda7af193db125f700452 -657 749fc650cacb0f06547520d53c31505c8156e0a3be07073eddb2ef3ad9e383ba -658 37c20f19f3272b5ccc3a5d80587eb9deb3f4afcf568c4280fb195568da8eb1a2 -659 766cb53c753baedac5dc782593e04694b3bae3aed057ac2ff98cc1aef6413137 -660 1e472b39b105d349bcd069c4a711b44a2fffb8e274714bb07ecfff69a9a7f67b -661 c75d3f1f5bcd6914d0331ce5ec17c0db8f2070a2d4285f8e3ff11c6ca19168ff -662 d6e5a20b30f87216b2c758f5e7a23c437dbc3dfa1ccb177c474de152bb0ef731 -663 9556b82499cc0aaf86aee7f0d253e17c61b7ef73d48a295f37d98f08b04ffa7f -664 7c252ab334fb8fd88e8242c4972c21db9c7ce0b47c9acc4ebfe40c14614cb734 -665 ea5b27556fbb134def2c2fbf944d9cdda3dbdb6b10473a1aec59f6f170c4ca3a -666 8acc23987b8960d83c44541f9f0eb46454cea080ea94d916f56fccf033db866f -667 f747870ae666c39b589f577856a0f7198b3b81269cb0326de86d8046f2cf72db -668 d8d1790737d57ac4fe91a2c0a28087c0a97c81f5dc6b19d5e4aec20c08bb95ae -669 3635a91e3da857f7847f68185a116a5260d2593f3913f6b1b66cc2d75b0d6ec0 -670 303c8bd55875dda240897db158acf70afe4226f300757f3518b86e6817c00022 -671 27d719c754aacd492a6dc8a1b76619355abcf5ef473cbec02018d3c57ebbf0d5 -672 7f0a22117f8fe0172cf9209ff622b64a51aaeda21d58b5b62685a93dbe2dad25 -673 27e1615212f3c6ea846ed6c412df1361ce97f006ee20bb5aa2483a3b61d5cadd -674 a0d177b4967a6d99f4ff117defe1c0d23d4e78ca4630febcb948ee9e4520eff3 -675 23c657f2efda7731a3c1990b25f318fa2eb1332208f97ab9cc2a7eac70ab5a76 -676 af180e4359fc6179dc953abdcbdcaf7c146b53e1bee2b335e50dead11ccefa07 -677 9cfd3c755be26b4e1645918e2a64a26e3d851ede421e0b257f783b443bc443d1 -678 a0f8b2c4cb1ac82abdb37f0fe5203b97be556c4468c83bba18684d620fd8eaf9 -679 76ebdb6d45c61ca12e622118cc90939ade672adf7890aa2b246405d4884dd75a -680 308831041ea4863c3f87d222c31f759411898c874a9006b4bd6c745858b8f3bd -681 090d3859ff6840b2280f4708cf08cdaed873d967183a4d1deedc1a7964a21eee -682 38b83caefa1ef26940f1d07bd4ec94c60809b0f88f2118e82ef8ec2d98938a84 -683 43c727ee4fc7250574d2ef90cfa16626388a10e1b30d36ece1c272953ad2ed9e -684 226f76b55acb49701e06ded1d95165d179458f6fc37f5c6fc760ae30dec1c378 -685 8efbbe9bc19ad2e043c6cdb187c0a0fedde70b6458443ce0b5648ec04ccf4cdf -686 7a20311cf7a4b222d436424480bc65dd0f9d2cefcbbb1fa148ca0d7e1d5bb55a -687 8d1ede4f889e0ed6f0823d8c1821905b9de37a0f851dc270df0dbf72b3c93641 -688 aae02129362d611717b6c00ad8d73bf820a0f6d88fca8e515cafe78d3a335965 -689 1038e0b72d98745fac0fb015fd9c56704862adf11392936242a2ff5a65629f50 -690 9e11c362bc3d3572970b973d5cd86c073da358b6f9bceaa3be65d1a6487f8819 -691 02cca3803b564ede11ccf9f303c9910b39c532061e7a8c3b773169bc3d3c140b -692 0791963ca2667a23cf3268ad25d7bb6ca0ed287b192869703cdbcf0e87934c33 -693 7104741a92e73eb6c5d69cd04cf0afbe50a8796a010d8fa25daaf79e5e173bf3 -694 8ede6b26343305e05c3c0029f4e830d4e8c2016869a9d1cd97b100b2a16dfd1c -695 5d8f6cce532a7aeb57196be62344095936793400b3aeb3580d248b17d5518a86 -696 fc95ce176603e9e1d1ffee39023b31dd856e00ad030526902604ed2a68a12c4b -697 524b2d27a1e7fbc3a1614fa661e2dcad68462352feeb8bf633deaccfb8aa84f3 -698 023849c38925e2af028a2eb4e1dc41afd7dc7a238195c1c2ae00438d1dae00e1 -699 02e6295d8f522840f09b5194b3f023799ad6ed3306d9296005787e792224df20 -700 72ba187b05e705de2dced5824d716a71872dedccf21f0c179bd2d5f2c7c974b1 -701 04a8708c3a481ced13845a30de522486895de0592222c29326d9139ec2b9df25 -702 09a1b036b82baba3177d83c27c1f7d0beacaac6de1c5fdcc9680c49f638c5fb9 -703 03a3d955b8799a90f1ff5a39479fde8e618f8ca3282d5b187186f2cf361abd32 -704 62a0eae98b9fc0bd0ad941ae07ae5e2af545a64c8ddc43407bdfe6ae82addb4c -705 a43231c2216f23db8d65bbd57e0ce6573654f9a102365cd4b345723f1437ab2b -706 b3dfdc6efe322a6feccb0d081e88ffac20b0f28e8495efa76188c8dc3ada6181 -707 4e47eb5525df25f94da777993dafa41d9ab2bfa80a89e28f76d42cd46ab082e7 -708 f1607c19a0f910ca1b8dce18843bc34e46a533c87e3524ea75798949f7a352d5 -709 de5872c6bb4494cebd250152ce148cd6231654e4469229f2f993984b3950b422 -710 12e2c8df501501b2bb531e941a737ffa7a2a491e849c5c5841e3b6132291bc35 -711 21ef779311a43f0e067d0f4f600bb5451a8a7e093662086a1fe6a75d27d7892a -712 64c212df34c66e6fe9fccbfebc8899c10584cfa1669c42a175d65db073b13bc0 -713 f65ccfbfec288565c1d414275985547799fde0ed286c85a50bd0ec5faa01d1ac -714 48b361d46638bfa4eee090c158a750a69c7beec3a62e703e2801125551b1b157 -715 ab5e292db6495899871d889aaab28308f7da8dfc3693a477ee73de9ad894ce44 -716 48a1a756f2d83f1dc57bbf14052b70a6f40d0fceed6662812e34903a9fe90924 -717 a934c244755c66aebb0d6f9f5687038ffae8f00b00b28b4e17521016393f38b9 -718 99a0b871c9047c4f5555fcf062e0623174bae38746fece6efdf032d80fb2221a -719 1d2028ddcd746a7ee87dd0739d7435602b77d4908f96e27ebdad57b09aa27b69 -720 188c1fdca79d927f6e812133173fc41d3a4e57074de521020274caa9bb29af7d -721 b7c7470e59e2a2df1bfd0a4705488ee6fe0c5c125de15cccdfab0e00d6c03dc0 -722 6b3c238ebcf1f3c07cf0e556faa82c6b8fe96840ff4b6b7e9962a2d855843a0b -723 e6f47e008cc58b38596e6fdf2f50a0fea93fd10543e652522aeab3aa71355719 -724 612111a352a571cbed3927ec6f74948849bcc9fe8489bf4f0d6235afdc0a4ad7 -725 fabf5b7fedb3e62a81c9298b19706249ee128011bf9d94867681020c16f8b741 -726 67e0bdb7b6c549d4fa834d0f6848ce6a3a12e07de9cea949ad41932bd5881bc4 -727 afcf8bc077e68eb94dfe783205f32cabdeead61fd32ff5710947b6111ff2ff77 -728 cc6aed2709b80e146bebc151f1cf1dec5e323b58148535a433529155030e3a52 -729 814bb6b8dc12188a44b71e378dc20a4292e01979aa9ab95b09b8a681391dfc9d -730 814fd2e8e45e9a6d3e1f6ff86867aaf2251ccd07f3eed02708fae286192c29e3 -731 9be3da431e0a833d2b07781de97ebbd0b14c274d16c0597820d9982a5f547cb3 -732 cbf2f7864f1c988391a9ab199627a29bd60987da067748c2812b75785d7ec151 -733 0a1f1256f9bac68e806442aa76455bb761af5414855efa23c1b3fd54477c0ba1 -734 98f1f17f9a73ccfe3e25940add8d9ce9bf05513104cacb84f2f1185bf5886a84 -735 ea415bf50eb65ade427d8d80222df4627e28cd9a418f830bfd9b81d4149bb2ab -736 050a010ce24d0896056e9a36a1940738d38f469d644b3682cfcc47569739c525 -737 2dfe70c43208f52b9ef4ea7e134705283947116491e81fbac05f0aedc25c5956 -738 0e12831a7047f759733b21f028525039607350b1b1b4fe904595427e72ea0d9b -739 c498f3fe97c0df55ee8dea01a72572059b93f42d235a5e439e9c9a1654d6d4e1 -740 4a30a219a9d7663fdd35c0a5df49c8d55018f13a0c53e10dd8efe8f7e4cc5d89 -741 caa1aedb2a6ce96b39b9fde1a49e1ebcb431b6da4586da0aef56df9b78221d60 -742 f626051bc94422f26f4b774a2bca105e122df36a2f32f51bd7ee470daa620b0b -743 ad21a2b810af49a8b9241e10dfce3a016987441cc93aa72feae47dd017ddf0bb -744 841a05fd378a2c067058585e3691c2a3f5399206fded7a580fdbbc281003168e -745 de482c7ed5ca67ae135ef25bf3b13194970a2f3902318f1eda3c64af2a2eb344 -746 88b54564b232405ab2165996517fece1149259cf1ea262a375db0f66039294d0 -747 ad3b83575249b68aab9602de378314fc221ab07a9b2ab0bb4a245ec649219f45 -748 e078af3026edb42cc26b32784baa142a79970078f7ac58f8c7b74115f4f7fb60 -749 064c3e311ef63912b0cc91db9681ce2d301c3e76c447febf8faa303de38cc005 -750 e73cb135243c08ab2c2adc333b150b9237093315f6b38e3361f07caf2bfb4d6b -751 200dd69b70a88134b3a939de5f0b10c44a1675344329b9d9a5ad6b7342f978b2 -752 9869a8a3a11a33284dc2bcc3d2e6ffd52cad30e2009c11dfe604e74dc21a887e -753 48ce32e8ec7741594c8786e445fbed501f5a735a49522314b8e24878e2544b9e -754 a42e815c58f3977fe531a80ffd4659121c3b9f876a89869042816c369ed80776 -755 86b700fab5db37977a73700b53a0654b21bdad0896914cc19ad70dee5f5fb3f6 -756 9b19f9ab816598a0809e4afd5d60800f2dbef9cbb9b03ad2ce766b3c237b9059 -757 23e8b0175874e1bb3b4799e13a6634a8eddb456c1b8675b871e07ec09abc0c07 -758 d18b29d80a8bd366b77c952d9775510507c2d006eec917ab2f89ef93acc5452f -759 ac1270c5058af65025e5b2a3e3014cea69460e7d9f159ae667028e1b6eab433e -760 f138665c5aa6600801452ebb40df70c46e73f2c51f4cb72f66b438139c5ec3f6 -761 1158e7e12c5e7362318e5e3c2e1f2f1ab49578ab1d1691e9818a7c3f6b30b528 -762 7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5 -763 a2075145d3cc47b2b56aeec5e9c78fe7e0055169961b6823629772c96f1f0319 -764 a435270b90e9b7091c77f478df0b8f78dddd32079b75698b8de902061f74efaf -765 2c69bc9b34fb0800a44a702e45019c107dfdc8273b9feb62c9615addc7138bde -766 d4b9aead1dd10a596542d1d8211a5021b9c3e894751d019ac64b15a55b9b69ba -767 5088c1bc42f5cc6a32cdb92d7524ea06febe006baac86a0fc8986a8ee00602bc -768 0cce0bd361c46fcde41daebc801da75e21320763dc2b1a5a62d9b28e7c3e1d10 -769 a9346b0068335c634304afa5de1d51232a80966775613d8c1c5a0f6d231c8b1a -770 a1e8154bd1a4c96efad1d5bd4a3ecbd73f4f39a44b14b6025cff18b31ddef7f0 -771 388c2eafe5afd475492698c0995a2daf157eb3b3be8207391d3a023c97c8c034 -772 e1bb74a7794720edf4935a8813538e8113491318168b1fa61a0ac3528e7b0440 -773 891d46993a36d78392247c642138cede01d9841daab1d945709755b5194597c4 -774 d11501b090fb2749f2c49284394dd36fe0ac76eb1a52cb3bba260dbc119ec46e -775 8def3488486c17dfbc2861301b63237c3c3a05b4c23afed03d59829fba57e10c -776 5109a4e14cbbfda6b4512fc17ff13814ff9427f7b602694236f2c5be4d9875af -777 5de664ef205f95d4a68b69b148eecb04f110ac95ef77f4e5158ae315a76ddd8a -778 2d86377d4cc3e6c85bab00dd407f8c5b657c239c6af3109de6cdf4d418aa2d89 -779 fadb19bfbddde11ed6828a22e742cc97f5589ce48ac8ec8f94a6510ad5f16b8b -780 f89f8d0e735a91c5269ab08d72fa27670d000e7561698d6e664e7b603f5c4e40 -781 1f09802c4beac758321ae8a9f94d752b0976c7d54baa6e511bba8a7374107bef -782 d40fbd13d527595c47eacbf0d7c87d256139d9d45261c25c2840d30a4756495b -783 5fbc314fb0b511345465b5b907ec6961328e5e393ff831c8d74912184098bf41 -784 6bcaea9882504292b2f6ea37a84b215463e71ab73b824ee90ecdc10c8dde71ed -785 fa4ddf29f41b575377ce14a7900d1e26b669163ca53b80ea3168c6801cf7e114 -786 97a6d21df7c51e8289ac1a8c026aaac143e15aa1957f54f42e30d8f8a85c3a55 -787 f8818b67ab25419ad5b1bd61440573498e0785aad6c634c987fe5a637570f464 -788 c7ce483fd1cc5fd498e7e2a09851c65f89a33a6837f66d9fbb36e5e5f70b41a2 -789 5e74cb2ad4e2c9e2d3f59a1e6c8a5d4999df48e5dd69871d2798e0a146b91ee9 -790 f3457dabe1b412ed6374d56fe8fe3b969c761b77dcc80ecc0964b7c7641d219b -791 1086d35563c495c1cecbce12135cab3b945e01dd185ea2c1dc8ace5ad988977e -792 b2cc86ae48fd3b8775335b586b3549e53af3d749f07748a7343f893522ae63ea -793 421c0a7b6d0ee1c34e3d78f1685b6d95113fb2f1091919efaab45f1156a4e428 -794 62bfa285013f08807d394266cdf8261dd060a704959ae9c20e4ad262b65da12a -795 c403741c4121989ac12c0829be88b8bec6f27b270f3cf8a7be3fe72cba473897 -796 fbe697429f16141bc71e3b91f3823641c8dd258dd58bf076241514754954cb8c -797 d4e33e2934280979f580a63f992daa7d0de2cd64a145d5c403a75c3dc5c0004e -798 e2fa8f5b4364b8ef4dd1f26ab47105d908d06ec84d835e3d1aac404a63f1464a -799 fcf1e4bf9cc9c1083647b91463e86f49c6961406c37055c7eb8ad13937a519db -800 182dc6b90f1c9cd913c39a6b5506f582caba9ddeadafe32f5bdbac25efd705ac -801 36c1cc2f9d7022bf6beacb6248a89e7e677b3bf9a91e6457a5ffdbade55b76da -802 aee4848a8580f31102073d34012cb3700fee3e61f9fcfd725fcfe5fa4a220ec3 -803 97468f679ad305fa4dbbf17fd4bf18c41fb655f2d86162b1d91ad4f1e09814c1 -804 1de4d95a81eb1780d5c21a880a8be6595306670af426e40872b2a03c5cfb9996 -805 55f0124bb79f5c53d868ca45bbb0f4d04da15eea4fb29c6b95087fe8801bf0a3 -806 85ea151b8c5b5ab0d3349100e441bd4b8dc20740d429c16c3b85b77066386e75 -807 86a3f9b13a5b652f93cb17e3f4d212d84cf25c52a595f13fff9f3c5810afff1f -808 524148f24802f8c68974c2e1ecc8b8f47d0d60b7a0d1948951c050a25b5a8e59 -809 1b3c33580f2e2094cbde0bfd58f8008ee6e29c06643ca310222045c82fe0ab0e -810 ad723f42c7aba316d944f19f340ce47d8e0c6fb354d212736ec4782314a6824a -811 87acb1e183a2b0f74c3b2008b8ef6975a95269bc490a8886f317fa4bd714b085 -812 9a35532c7499c19daeacafc961657409c7280ce59d7ae1a3606dd638ac3d99ec -813 3bcc1340d90b3d55accb9a57998b69708fea2a63c39f7369047469f952ccad4f -814 2618182c3894875e16eeafa6c24e1fe926150ebc6403980c2cb1bbff192d296d -815 02c000a36dcd047f5738f5abfda07dc3b6d56fc44ea752c8f45b965f6fc04c1e -816 f4dd301311d96b70a2ee62a6bccfe21bb0d94a89ca2805333cf352c1a2381c13 -817 455ae2dfc77dd77562c06dc893a49d84795a93e4f86ea2e92006940c870ec044 -818 68fcd1eb684859a314bbf7f7c99037cead480f5bb209ccd4725bd319423e832f -819 87e50b28705900bb064d1e9df1bd6cf55a7efa01cc16c6cf0703f491a1f13d44 -820 3c2308b1bc64683e5aed4111841da5bc3b3295b01a852f1dc4e68510f79dd37f -821 e9ad42e2c3f4805614f568186b0282219cf7350b7707f2036405835916e3a65a -822 9f6cb78c09b22a1a10564f6be4a1784327a42ff11a10a31d355435db59f44710 -823 d62a7b3da232bd0ac1f7520a3b5bb57b171aec57f960f55b47b1987d4e398f68 -824 24be8ee76308afb924abfaf26212411f2b66e53b9ce2534e5c9f88354c88cc39 -825 316c0f93c7fe125865d85d6e7e7a31b79e9a46c414c45078b732080fa22ef2a3 -826 4b8ba4b13094beaef100d3eb7d4c8e23600c30be4420c47e0d6b4e88dbd70abb -827 09eac95eb995b821f45353054da3c7eec5f5171fb061de72f1890679956b12a8 -828 bf31e6128301d31bb4014faf6b1e0f05f3ab8877cb55ce3d1ab3230d2ea8a220 -829 8ef532f440c91b5dfa24570e53d6bded96c4064a45e6d18a61c5e08b172b9814 -830 cebe3d9d614ba5c19f633566104315854a11353a333bf96f16b5afa0e90abdc4 -831 34e2ad7b31cd9ee87c038c10fd6fbe310314ba67abb73a686f0d1087267d7a1d -832 a4c6af0cb6f02dff01ba174e4cf11f24f73d9ed16ca7a1e3c9d831c0139faa5c -833 ec1c7d93ba051204e4fea7e167f540c2136769c82329c53f5b7a0770bb237987 -834 162753c27c8b32975a0edf5e89ab4ed8e2f06f02a182e0f181481cc050fdcc72 -835 1c63ed9164d61acfd1f4f3a7b6dfacbd98d1dc01e755b7b558c6af0491154a2e -836 f6103ca1e01bd200a9258a366b7e8c22a542e771bf11a0679967a5bb47ef3688 -837 8b7fb6aee1c63e17f44f935a6b64e05920ddad65327de1cb5e6994a6a3f0b618 -838 677fe64a8ea7e98a420d129f1cf3d4d23a9f107e9fbe8d83efe95f093001cd54 -839 d6723fa996ced47773f2dea29cce9b11f951e6dafe321a84ac7d32791c3b4660 -840 c9a5da075f9e5c3e7a916570946fed4826e181656382e13696fbe0aaf1412bf5 -841 47fec9f491173c57c1d5b35dfefdb69cba6bd61bfbadea64015a65120efa15a0 -842 769e881d85fc5d27cb4cbc8382200d95b179cfdeb56e0b439da737069eaf8a5a -843 35254aa9a21444e50349cebb5465b9b42cb4a625ebcbffe24504b178c35bcb85 -844 4ec24a2d7f1dfae1f98882eabf0400cd9483dd2de78b926b625c46e8787f3816 -845 c66bbe9d118f554bfdba35a609848b9ab2d9c22e6bed77be6f8a55e96c295549 -846 35c71bd7eaf4607047bb7c186d17251942204229b897e033923b13dc8ce2d109 -847 02837c1944876b4fa860432c13f2d9b11a7fd94dae707c4143d1217dee66fc43 -848 d829857eb1366e70be857a69886d1555af0d32681beab068afb93492c2e2b843 -849 07e46896ba89f88776fed50a1b7895129f9b9af7d3b8b33ca23af478bb818d6c -850 30e4c02268d49ca010e3c62fcc2615da2fad4cf0c359eb8fedc0366739b34205 -851 7c3d90003d7d645be0b5f3782533c198a5d5dee06870420b4d594976ed857fc3 -852 509694b0a010c6431900e71b8210521af57d39ce8e64deb365f0a5c6c9a2ef6d -853 81defd9e2e8f85c7f09874bbe5b8d9a9a5503c6d915a3afe4b65758f28d71fb7 -854 c2a181d8178a9f753b013fc4bb892ceeb5dc5bcb763352610844b93341ea52a4 -855 1a42d5267aba37d7057cadd672fefef04771be2476eeee231d6f56a8e1f57733 -856 102624ac0a714fa26aa0f8569b1aa0f0f80c4b34de420d2bb9e46b3dfdbec039 -857 75f7313c20144e39edcf57a14733d074aee0c482320d5178ee0ef2f2608c2996 -858 6f90a5a0d3234433d03c7a06fc4bd5c3ac1f21f33978292fee61323e22238a92 -859 6165d33e490f91dbf808b194904d4f07c550d5e3a19c9e776e0c895136ec9fa2 -860 64d095f2fecfdeb907dae5403b10966c4ae755b7598aa078cb932e345bd0b5d0 -861 8b80f49ec2822cb3cdbe97d9405e39ae40ba418b084c06604b51e2a5af11a7f8 -862 4099ed5ba70aebc5a9dc26bc2093d4b45839f99b306bd12f68cedfd351e6ab7a -863 b6bc077d6675a7c8cc9e2fa5a08c86ba59b675d69af118052bb390c3cf11e5e0 -864 afccd937e6ac2d1b6d6e9f318bc5e8a179c977c7413b33b3e4d902ff8cec501e -865 aaee0ce51abf0849e68b257ab97d83a36d9d082916b939cd1012f27d7f6bb873 -866 04222ea3e14cb1209b9726defe3efce5196b7afa0a959854a30401be41f4026d -867 f7b856c054de7ccced087ad4f9413380ec494e40abc818b840aaad990ca3c5bc -868 afa472a961fbcb09314e81b2c3eb19cd2d9fd7527582f43a3b8fd9d3ed6d893d -869 9168e847861429230da331e23aa7983862033165c1ce3fe5f6d29a76c04c8a07 -870 d15e7843961ed4bfa3e08a80b882c74670e9e9347ea55325cbc1be93c7f54edc -871 eaf89db7108470dc3f6b23ea90618264b3e8f8b6145371667c4055e9c5ce9f52 -872 0e78437805639c14d6413de94c031fd1babdb561b7728d31ae06bfc5ff1766d4 -873 28955b1fb53203e2ff246fd2d4c3e148d4666a617469cdcc86060985682ab4bc -874 9e04a49e5786695116f9af28552da3083d4eeb015294b878d27053439e363cdf -875 87c7965a1cc6c11a653b210aaef95e381b95afddf1781da3fa5b2d4b1d3097bf -876 fc091d39524c9d4b5b11f84f9132996a94ca01c9816d2db3b866bef1b0699d91 -877 0b0fc3be2ee8d1d33518036b0f38402ee7bc022380a0b9653886019d38acd128 -878 74332c78b10e3ee51ac4a3c18ccc15c1b6c9807b3ca609969de5e3c361573dfa -879 5283f1b4e66467616feca1e0162c7d37e4e304623d6343a525553ffb436cbdfe -880 724213d95916de041564e5d39c2373585dc15855743a42a5841d849b9f3716de -881 f0ccd8e78b618cb55731054911af540b5496f37e94026cd20dae22363089b2e9 -882 d72a11d264e746464ed45f73e1ec058e33ad40270c79324be171932d834d11f3 -883 0b06d2ffebd5c025cf444cb95a73e1fff046569238eafd1e80f511ea2a807de3 -884 5d85be4cc5af40a7cf2c4f0818d92689c185fdea6566745ef26305d80413f483 -885 76ba652cbd2ef1931d0546ac1c9d8f12d21c81fad272b754975a0b1561dda275 -886 96da2f8885ba92c9ca4d34bb763a3bc9e19017f0df6424956d61f45abdc7f241 -887 96bb293aaa330ef307ee004448b92b75ffdc25ade2831ed23fc60ffa97fffb7f -888 2b4da94214015b4281ac65905270bda4eefb97e08f5b4ae2f517b424ff77bfd9 -889 f391e014b2ee3a42955272b8fc78634de1d5833e0cacb412b180376f9c756e49 -890 7a9b1b9dd2e433fc1fc962c38ad571bf1ebb49cb365bfdfb2c36d3f059d6fdd5 -891 10e4e7caf8b078429bb1c80b1a10118ac6f963eff098fd25a66c78862ae5ebce -892 43d244581aa23a744de9d775979165eb226a80e2cce6c0d0885412c9b6a0dbdf -893 130790feced08212eed7d1490dd4d7abf138543be61a4744a03f69ecb9609764 -894 33eb7e4ae43f9873d9c84c0f07b055946b24a71ca27daa60acbbf95b44c7c5e0 -895 501a4e61aa4f7737df0305124a39119b79a6449d2bfcc6f026da0197af2ae60b -896 fd0f7e53c5b02b688a57ee37f3d52065cb168a7b9fd5a3abd93d37e1559fbd30 -897 7125e777a6b199fc4e8c2a0d024215e393c06bf775c217a5f2d8d1a6a7c98d96 -898 ac93f3a0fee5afa2d9399d5d0f257dc92bbde89b1e48452e1bfac3c5c1dc99db -899 55e8ab098d48f8be5578e3d3708496d152a27c4c5713586a8d321ed84c239827 -900 3d34f102d1708fc5edd3111144f78764b4d7b745cb5450815780545495df1e68 -901 929f003731a97f915d11893c6652bbc7db0b36118eb4357cc721f7f68aeb25ff -902 3097fc802d49355a0a256d4b07ab9f7257fcf35077cdb8133d59f607fedb229e -903 c0cc3b36d8f848d56fbf95b8259dd6f3bf80707e436233a6bfc2667b49e28c8a -904 22cdd352056c42ac1a6d01d6bd4f8e8ed1c27fb9addc6e500a59f88b57e4612a -905 eb0c9cdc0862653468dacc6a876a0c40e9d642c50f798bae1162fe27f18d482c -906 ee9d527a0a6108477fc5c98cf2a00f65d38c8e8508c4d17c1c11b2441c78a2ec -907 8f97d9164b8fa131f0361abbe49fe706d3abfd77663ed7939ee20d361a0c6a67 -908 80c39b8ca01cdfda142928ba683d503173017d52bfafacb118c62e34ec9bc693 -909 46f9d22816179479bd27b0036854788327eedf3f6f5d8dcb866b976e17cc9715 -910 c63efd61a70d0f6b7e5de2b9e0c36adfae6d760613271650c71c90df16c71344 -911 f1916530dae6514fd8ba7c17eadab5ba6739cbd9190b7f967adbe8744748c539 -912 52efd2aad05d27e3eac3665b82f2bffa6da52351ce871c1c28e4ba69b40ea3e6 -913 3bd625f07792e885b5a4b5f0b9005a5b53a56a610efa2c27cd923aed53a6a4b5 -914 000f21ac06aceb9cdd0575e82d0d85fc39bed0a7a1d71970ba1641666a44f530 -915 be4b2f45069c180ef309521f6770146920df18e69165c577dc7ff8e5a7c34465 -916 e6f095e985e6762f1538b47ff1abda58dbe8ce088b16d8a5744fc179e9a2fc16 -917 d7be6321b3d940822dd195bcc86cca411cd9d95f82301d04b84119671575a2d9 -918 46db1ca7f3598c26c3e6c8d99e3ed95d2b1c76db040b8f8cd29af723ee086077 -919 62f6d46c48c7d9ff3d09a408d0ec880f167a5dc9c8fd343a4e56e96318349583 -920 bdc5d8a48c23897906b09a9a3680bd2e9c8b3121edbda36f949800f0959c8d55 -921 fa88d374b9cf5e059fad4a2fe406feae4c49cbf4803083ec521d3c75ee22557c -922 a2cc73deb383356e2c51d5616631e0071bdf5faba44812156af3526ebc6fba69 -923 43f64dc77762f69f9f52d5f70b53170679cb9abfc688f4cf77bdfc8077f022bc -924 2f84035610deb9378036cb7a5498b885486cf8e0acfde755081b3484bcff8eed -925 9284d61c8c2ba62b951d501629da26c029eb067c27241a0e4e18d98f702c752e -926 c4ed8e89485d94f74489c8120a6734bb7a9ebdd906328e22a7d89a79be6513cf -927 4779bc407343d916c5a4f6a996174046419bdd87ce6c609054dc8788b3dfc233 -928 728bf33aab1d32d4dca8fcc6a020d8baeb6b9910104541aa68c2d408154734fc -929 b312d5fbcfab403a28f259ab3d2b333ae2412727528b63ae3c032be535410ed5 -930 b5a9ede9a93528be3e12c5665c179c2dc0e2648aa6f1b1650f3715e56dad8bec -931 85e36899399df701301f6741ffab57962a14326584b6f082ae0e87d90e492fd4 -932 e0e3fcdfb0803ca538910c12042cb6232acb9e3c6db8908524aea6ed560e5334 -933 6e8d1a943f129896827384a699a11a6bc83d13ab6b8667763df327c8b2a9b500 -934 f53f2fb9b99180ea02b1f345b6c862e6bdde16e3b82a6886be0234d09a0e1645 -935 aaf57ee8c549ef3df8a07abf3a0df0f028e402399ad27aaec710c17aa78d408f -936 5904c93073387f898f4f339094d4bad7043b6440519debb01b2867939661ded2 -937 6d094db49a6e224278dd87d28835b66af6d2db257522e22c105b829cf368af98 -938 fb335e8fd0f8aed3eb6ffedd7fca08259d3f25bb14066536c978fbc96c4f75fd -939 4d0198f4905a08812518045d62dd366a485d24e9e070ce9fc9a34abf4e5af6bd -940 3033cf66fa728da7a2940d823aad8118fb40687ebfad1147c313478b2baafe4b -941 8a8b2d66735ed03d0841027e42d38806eedd8e5bd5da54270f958a55d509091f -942 b471aeea26820f379ea5ca12029f2788ef4eee3f833e6633e5dd4bccda9e0d3f -943 debc96817a3523d6f3cde58b00abaf6480477744625d0b1f4e406e644ae1763b -944 e6d3cee8c029277da8d978deb058e43540a640414845b2f1c9ffe75f64f8d8be -945 339d9d13edbaa267cb977f39e0a9da194e07c1dc9ec3a2567eec6f45776e3018 -946 40a7ae9a07a94bf510c89d41b034787f768cc960e7471746dec613c8c6287c11 -947 d6420a4ee44bc345c7bf3a2efbab98e08a4727016df8e8d6bb8375d0a23a8c72 -948 ce7d916f3b5c6edb421222b8e3b4c69f21bcdd5c38bac9e8a2751f55d865b9dc -949 98964da49d0a98402ed3d2d37b3350cf0aa346f522f8f1feb6b01cd680bc9455 -950 3658d7fa3c43456f3c9c87db0490e872039516e6375336254560167cc3db2ea2 -951 8590ac062555493444893ec5871609dffedf8cf684d93f7533bc52ffc5611dc8 -952 38879b6376fbabdc8fbfb85f6b11a296aca6de14093a54881b73528b62848d8c -953 70d432707ec2478670d5b36a95d5b1000cb9c3ef6ea1fb7be14b060775723d03 -954 ba9c5622470525f1bbed5f36077631df5089db3ad0d79e9782078a681c0dac09 -955 926a7fc32c08e49183ba9969eb0fe284d7572a79934f3da12dcb26458777091d -956 fe50b64954720ccb97ff36a6bd105b6c6018565eea17352a8e1c095204ff4e62 -957 c0d2d188feaa1562d9a1ca041b28896773ad5cf55793d9c056a2ece46eb3667a -958 8c004c94eb689b3765ccb51f03e1aa3392f46c6852196c8602b7ee6fc0c9d7de -959 864995ea35b82212a9a2d456a3f89833f24651c4e5ebc21c18476a9afb065035 -960 40510175845988f13f6162ed8526f0b09f73384467fa855e1e79b44a56562a58 -961 8c9a013ab70c0434313e3e881c310b9ff24aff1075255ceede3f2c239c231623 -962 75992a5ac67ff644d3063976c2effd10bdd93fcc109798e3d5c1acf2e530d01a -963 478c4ffb1cbcea37956a748e6c19d8eadd0a47e86f5e308d26cad39453b5d1ab -964 6ad4a6b1e5ea5569795e516d71909e0ce4809d9dc983d2c219144f684f816e12 -965 3dd9c0995d54c0abd51a90f1d57b1ce77bc885fc8a7cea52dcad3c2540dda5ee -966 165940940a02a187e4463ff467090930038c5af8fc26107bf301e714f599a1da -967 2ec42bc1f3e672fc1cf7fdcfc23246415dcf20f03c0d4a5bbbd92a185708f5b7 -968 df4865fca1f159162557359ef967f9502087f57527b0e030e139933e54f3061e -969 f00f2e7bca65e9f8409fdb3bcddfa031664224255d7bd2f6b3de8ff11ababe20 -970 582c0168ba17eac49642bc85ae623204069e8d6ea06cf45af11e7de46ea31d18 -971 a73060afb61efe1b7c817645d00c342df02407f65435a64c88d251d56150ff42 -972 2f1987bf98c09d2f5d2a23a6ae29fa53b9aec8f07ed1330bd439122f5a1a2c2c -973 3e34b5dc434bcf3186f089d362691cfac1b17231601f2f402dc79015be878d83 -974 f8b7291025863577c250b562e8aa0d7a70387bc67029915cd5c2dfda40a9e055 -975 6719009a76851c4bed2fcdea10b635c1bd58bf12af0c1fea3a470a87d3ee6995 -976 0d21ae129a64e1d19e4a94dfca3a67c777e17374e9d4ca2f74b65647a88119ea -977 40794500a2845c943a0f4910461d9c39868a2930f689d2dfa9659625aa7a15cc -978 6d6ae523edc27b235030584adf12a890bf2b3c209da5b11b97d6b58c3ed66f60 -979 0c62cc42d6479a691f03083654ab6a7a84229ab156c948ba8d3b6c79ddd95536 -980 ffa6059b954a4602a9fa1518d10ca6163bce3f9d4bd3ee51c860eb6c2da16675 -981 d8b5e2791d0d1cee319ee3def0e4631852bfcb329e06feb1c6ee6add251509ae -982 02abf8fa7d9c4db035df33acba2dcd495ae9af91152ea9a135533cb747eb3afc -983 e8c5e943ad4fd9d115c2baacd110acddee7f66ec24aa177efa6780f5641ce277 -984 fb5316204aa75301303e70a2e9555cf9cbb1457356a041dd58a88e003aca9142 -985 5d9e09b09389f1e4c8268e5464bfce4c9ea6a516f9c84b2f49e313427421ef3d -986 ae4def1ecaae8be24edf7f6453e37f7200ef2e41048da1b17d68978322097cd6 -987 eab8ff114cc63fd8ab3d9f42249e20b8ce5ecce463e8368e98747f03c50eeabb -988 f48280c0107726b99afcbd3cd0a46a2bac5f1ddb44e8768f232ac4da562eb166 -989 be1722b1d104ffb2753260682954754d9757b986013823c5df20f28e0f74e655 -990 bcce03f625c22998dcb812feb157db59cbb8f22a424a70710a8d9ef20c7e5580 -991 de2d0a787b3351763f3c1a45aca2d08ad0b90276a621104fe49ab367e96db632 -992 32eb1a8dafeb0873c8d00b0e9058c8c77ff6c6d9235b3236989c50ef63d8f9ba -993 3ef58410b868298fcca4ee41144221bf86bc94e810dfdac6f4b502ce5fcd75c6 -994 1090b9e9eba719a3f27dfa49de49497271d9569d00826d58b4ef83c60d0ba5b9 -995 9fbb55aa1ca6da90db1c9914bc0960ad0d6a7b3eabe9a88c37580a6e31b5a0c0 -996 8cf04f0d07191f042b1d11880ab80618c2680e8e03bbacc60f9e31160d4fa87f -997 235aa062e6372588dbae00552abf36b8ff9c315e3da56cf02786980e764630e9 -998 4aec429ac0bfafdbb8dab14f41d1b7a98dacf1ce3478b71b904d383ae614b032 -999 330e14d4ae80612334d94c488d29eb469626b476864abdeb5c1bd261db461c50 -1000 ab9828ca390581b72629069049793ba3c99bb8e5e9e7b97a55c71957e04df9a3 diff --git a/carrot/data/test/expected_outputs/summary.tsv b/carrot/data/test/expected_outputs/summary.tsv deleted file mode 100644 index 82ff12b2..00000000 --- a/carrot/data/test/expected_outputs/summary.tsv +++ /dev/null @@ -1,37 +0,0 @@ -source tablename name column name before after content check pct reject content check after date format check pct reject date format -Demographics person female gender_concept_id 1000 600 40.000 600 0.000 -Demographics person female birth_datetime 600 600 0.000 600 0.000 -Demographics person male gender_concept_id 1000 400 60.000 400 0.000 -Demographics person male birth_datetime 400 400 0.000 400 0.000 -Demographics observation observation_0 person_id 1000 1000 0.000 NA NA -Demographics observation observation_0 observation_concept_id 1000 100 90.000 100 0.000 -Demographics observation observation_0 observation_datetime 100 100 0.000 100 0.000 -NA observation observation_0 valid_person_id 100 100 0.000 NA NA -Demographics observation observation_1 person_id 1000 1000 0.000 NA NA -Demographics observation observation_1 observation_concept_id 1000 100 90.000 100 0.000 -Demographics observation observation_1 observation_datetime 100 100 0.000 100 0.000 -NA observation observation_1 valid_person_id 100 100 0.000 NA NA -Demographics observation observation_2 person_id 1000 1000 0.000 NA NA -Demographics observation observation_2 observation_concept_id 1000 100 90.000 100 0.000 -Demographics observation observation_2 observation_datetime 100 100 0.000 100 0.000 -NA observation observation_2 valid_person_id 100 100 0.000 NA NA -Demographics observation observation_3 person_id 1000 1000 0.000 NA NA -Demographics observation observation_3 observation_concept_id 1000 300 70.000 300 0.000 -Demographics observation observation_3 observation_datetime 300 300 0.000 300 0.000 -NA observation observation_3 valid_person_id 300 300 0.000 NA NA -Demographics observation observation_4 person_id 1000 1000 0.000 NA NA -Demographics observation observation_4 observation_concept_id 1000 200 80.000 200 0.000 -Demographics observation observation_4 observation_datetime 200 200 0.000 200 0.000 -NA observation observation_4 valid_person_id 200 200 0.000 NA NA -Demographics observation observation_5 person_id 1000 1000 0.000 NA NA -Demographics observation observation_5 observation_concept_id 1000 100 90.000 100 0.000 -Demographics observation observation_5 observation_datetime 100 100 0.000 100 0.000 -NA observation observation_5 valid_person_id 100 100 0.000 NA NA -Symptoms condition_occurrence condition_occurrence_0 person_id 800 800 0.000 NA NA -Symptoms condition_occurrence condition_occurrence_0 condition_concept_id 800 400 50.000 400 0.000 -Symptoms condition_occurrence condition_occurrence_0 condition_start_datetime 400 400 0.000 400 0.000 -NA condition_occurrence condition_occurrence_0 valid_person_id 400 400 0.000 NA NA -covid19_antibody measurement covid_antibody person_id 1000 1000 0.000 NA NA -covid19_antibody measurement covid_antibody measurement_concept_id 1000 1000 0.000 1000 0.000 -covid19_antibody measurement covid_antibody measurement_datetime 1000 1000 0.000 1000 0.000 -NA measurement covid_antibody valid_person_id 1000 1000 0.000 NA NA diff --git a/carrot/data/test/inputs/Covid19_test.csv b/carrot/data/test/inputs/Covid19_test.csv deleted file mode 100644 index aa3eb84b..00000000 --- a/carrot/data/test/inputs/Covid19_test.csv +++ /dev/null @@ -1,801 +0,0 @@ -PersonID,date,result -16dc368a89b428b2485484313ba67a3912ca03f2b2b42429174a4f8b3dc84e44,2020-11-15,POSITIVE -37834f2f25762f23e1f74a531cbe445db73d6765ebe60878a7dfbecd7d4af6e1,2020-01-04,NEGATIVE -454f63ac30c8322997ef025edff6abd23e0dbe7b8a3d5126a894e4a168c1b59b,2020-03-27,POS -5ef6fdf32513aa7cd11f72beccf132b9224d33f271471fff402742887a171edf,2020-06-24,NEG -1253e9373e781b7500266caa55150e08e210bc8cd8cc70d89985e3600155e860,2020-07-27,POSITIVE -9537f32ec7599e1ae953af6c9f929fe747ff9dadf79a9beff1f304c550173011,2020-11-04,NEGATIVE -0fd42b3f73c448b34940b339f87d07adf116b05c0227aad72e8f0ee90533e699,2020-12-24,INDETERMINATE -9bdb2af6799204a299c603994b8e400e4b1fd625efdb74066cc869fee42c9df3,2020-02-04,NEGATIVE -0fd42b3f73c448b34940b339f87d07adf116b05c0227aad72e8f0ee90533e699,2020-11-04,NEGATIVE -9bdb2af6799204a299c603994b8e400e4b1fd625efdb74066cc869fee42c9df3,2020-01-04,NEGATIVE -f6e0a1e2ac41945a9aa7ff8a8aaa0cebc12a3bcc981a929ad5cf810a090e11ae,2020-12-24,INDETERMINATE -b1556dea32e9d0cdbfed038fd7787275775ea40939c146a64e205bcb349ad02f,2020-03-27,POS -6c658ee83fb7e812482494f3e416a876f63f418a0b8a1f5e76d47ee4177035cb,2020-02-04,NEGATIVE -e5b861a6d8a966dfca7e7341cd3eb6be9901688d547a72ebed0b1f5e14f3d08d,2020-11-15,POSITIVE -2ac878b0e2180616993b4b6aa71e61166fdc86c28d47e359d0ee537eb11d46d3,2020-06-24,NEG -85daaf6f7055cd5736287faed9603d712920092c4f8fd0097ec3b650bf27530e,2020-07-27,POSITIVE -2ac878b0e2180616993b4b6aa71e61166fdc86c28d47e359d0ee537eb11d46d3,2020-12-24,INDETERMINATE -85daaf6f7055cd5736287faed9603d712920092c4f8fd0097ec3b650bf27530e,2020-02-04,NEGATIVE -3038bfb575bee6a0e61945eff8784835bb2c720634e42734678c083994b7f018,2020-11-15,POSITIVE -2abaca4911e68fa9bfbf3482ee797fd5b9045b841fdff7253557c5fe15de6477,2020-11-04,NEGATIVE -89aa1e580023722db67646e8149eb246c748e180e34a1cf679ab0b41a416d904,2020-01-04,NEGATIVE -6affdae3b3c1aa6aa7689e9b6a7b3225a636aa1ac0025f490cca1285ceaf1487,2020-03-27,POS -0f8ef3377b30fc47f96b48247f463a726a802f62f3faa03d56403751d2f66c67,2020-07-27,POSITIVE -65a699905c02619370bcf9207f5a477c3d67130ca71ec6f750e07fe8d510b084,2020-06-24,NEG -0f8ef3377b30fc47f96b48247f463a726a802f62f3faa03d56403751d2f66c67,2020-07-27,POSITIVE -65a699905c02619370bcf9207f5a477c3d67130ca71ec6f750e07fe8d510b084,2020-11-15,POSITIVE -922c7954216ccfe7a61def609305ce1dc7c67e225f873f256d30d7a8ee4f404c,2020-12-24,INDETERMINATE -2747b7c718564ba5f066f0523b03e17f6a496b06851333d2d59ab6d863225848,2020-02-04,NEGATIVE -6566230e3a3ce3774c1bbc7c18b590ae0f457bbcd511e90e3e7dca2a02e7addc,2020-06-24,NEG -dbb1ded63bc70732626c5dfe6c7f50ced3d560e970f30b15335ac290358748f6,2020-11-04,NEGATIVE -d2f483672c0239f6d7dd3c9ecee6deacbcd59185855625902a8b1c1a3bd67440,2020-03-27,POS -5d389f5e2e34c6b0bad96581c22cee0be36dcf627cd73af4d4cccacd9ef40cc3,2020-01-04,NEGATIVE -d2f483672c0239f6d7dd3c9ecee6deacbcd59185855625902a8b1c1a3bd67440,2020-11-04,NEGATIVE -5d389f5e2e34c6b0bad96581c22cee0be36dcf627cd73af4d4cccacd9ef40cc3,2020-01-04,NEGATIVE -13671077b66a29874a2578b5240319092ef2a1043228e433e9b006b5e53e7513,2020-11-15,POSITIVE -36ebe205bcdfc499a25e6923f4450fa8d48196ceb4fa0ce077d9d8ec4a36926d,2020-02-04,NEGATIVE -d80eae6e96d148b3b2abbbc6760077b66c4ea071f847dab573d507a32c4d99a5,2020-03-27,POS -dbae772db29058a88f9bd830e957c695347c41b6162a7eb9a9ea13def34be56b,2020-07-27,POSITIVE -2c7d5490e6050836f8f2f0d496b1c8d6a38d4ffac2b898e6e77751bdcd20ebf5,2020-06-24,NEG -d4ee9f58e5860574ca98e3b4839391e7a356328d4bd6afecefc2381df5f5b41b,2020-12-24,INDETERMINATE -2c7d5490e6050836f8f2f0d496b1c8d6a38d4ffac2b898e6e77751bdcd20ebf5,2020-07-27,POSITIVE -d4ee9f58e5860574ca98e3b4839391e7a356328d4bd6afecefc2381df5f5b41b,2020-02-04,NEGATIVE -d6f0c71ef0c88e45e4b3a2118fcb83b0def392d759c901e9d755d0e879028727,2020-11-15,POSITIVE -5ec1a0c99d428601ce42b407ae9c675e0836a8ba591c8ca6e2a2cf5563d97ff0,2020-03-27,POS -be47addbcb8f60566a3d7fd5a36f8195798e2848b368195d9a5d20e007c59a0c,2020-06-24,NEG -ec2e990b934dde55cb87300629cedfc21b15cd28bbcf77d8bbdc55359d7689da,2020-12-24,INDETERMINATE -05ada863a4cf9660fd8c68e2295f1d35b2264815f5b605003d6625bd9e0492cf,2020-11-04,NEGATIVE -9ae2bdd7beedc2e766c6b76585530e16925115707dc7a06ab5ee4aa2776b2c7b,2020-01-04,NEGATIVE -05ada863a4cf9660fd8c68e2295f1d35b2264815f5b605003d6625bd9e0492cf,2020-11-15,POSITIVE -9ae2bdd7beedc2e766c6b76585530e16925115707dc7a06ab5ee4aa2776b2c7b,2020-03-27,POS -8e612bd1f5d132a339575b8dafb7842c64614e56bcf3d5ab65a0bc4b34329407,2020-02-04,NEGATIVE -043066daf2109523a7490d4bfad4766da5719950a2b5f96d192fc0537e84f32a,2020-06-24,NEG -620c9c332101a5bae955c66ae72268fbcd3972766179522c8deede6a249addb7,2020-12-24,INDETERMINATE -0fecf9247f3ddc84db8a804fa3065c013baf6b7c2458c2ba2bf56c2e1d42ddd4,2020-07-27,POSITIVE -c75de23d89df36ba921287616ee8edb4c986e328a78e033e57c1e5e2b59c838e,2020-11-04,NEGATIVE -7ed8f0f3b707956d9fb1e889e11153e0aa0a854983081d262fbe5eede32da7ca,2020-01-04,NEGATIVE -c75de23d89df36ba921287616ee8edb4c986e328a78e033e57c1e5e2b59c838e,2020-01-04,NEGATIVE -7ed8f0f3b707956d9fb1e889e11153e0aa0a854983081d262fbe5eede32da7ca,2020-02-04,NEGATIVE -ff2ccb6ba423d356bd549ed4bfb76e96976a0dcde05a09996a1cdb9f83422ec4,2020-07-27,POSITIVE -a512db2741cd20693e4b16f19891e72b9ff12cead72761fc5e92d2aaf34740c1,2020-11-04,NEGATIVE -bb668ca95563216088b98a62557fa1e26802563f3919ac78ae30533bb9ed422c,2020-06-24,NEG -3f9807cb9ae9fb6c30942af6139909d27753a5e03fe5a5c6e93b014f5b17366f,2020-03-27,POS -bc52dd634277c4a34a2d6210994a9a5e2ab6d33bb4a3a8963410e00ca6c15a02,2020-12-24,INDETERMINATE -e0f05da93a0f5a86a3be5fc0e301606513c9f7e59dac2357348aa0f2f47db984,2020-11-15,POSITIVE -bc52dd634277c4a34a2d6210994a9a5e2ab6d33bb4a3a8963410e00ca6c15a02,2020-11-15,POSITIVE -e0f05da93a0f5a86a3be5fc0e301606513c9f7e59dac2357348aa0f2f47db984,2020-06-24,NEG -73d3f1ba062585bce51f77d70a26be88c44b55d70f81b8bd7e2ded030ca4454a,2020-07-27,POSITIVE -80c3cd40fa35f9088b8741bd8be6153de05f661cfeeb4625ffbf5f4a6c3c02c4,2020-12-24,INDETERMINATE -f57e5cb1f4532c008183057ecc94283801fcb5afe2d1c190e3dfd38c4da08042,2020-03-27,POS -68519a9eca55c68c72658a2a1716aac3788c289859d46d6f5c3f14760fa37c9e,2020-01-04,NEGATIVE -4a8596a7790b5ca9e067da401c018b3206befbcf95c38121854d1a0158e7678a,2020-02-04,NEGATIVE -41e521adf8ae7a0f419ee06e1d9fb794162369237b46f64bf5b2b9969b0bcd2e,2020-11-04,NEGATIVE -4a8596a7790b5ca9e067da401c018b3206befbcf95c38121854d1a0158e7678a,2020-02-04,NEGATIVE -41e521adf8ae7a0f419ee06e1d9fb794162369237b46f64bf5b2b9969b0bcd2e,2020-06-24,NEG -dac53c17c250fd4d4d81eaf6d88435676dac1f3f3896441e277af839bf50ed8a,2020-03-27,POS -cba28b89eb859497f544956d64cf2ecf29b76fe2ef7175b33ea59e64293a4461,2020-12-24,INDETERMINATE -8cd2510271575d8430c05368315a87b9c4784c7389a47496080c1e615a2a00b6,2020-01-04,NEGATIVE -7b69759630f869f2723875f873935fed29d2d12b10ef763c1c33b8e0004cb405,2020-07-27,POSITIVE -580811fa95269f3ecd4f22d176e079d36093573680b6ef66fa341e687a15b5da,2020-11-15,POSITIVE -bfa7634640c53da7cb5e9c39031128c4e583399f936896f27f999f1d58d7b37e,2020-11-04,NEGATIVE -580811fa95269f3ecd4f22d176e079d36093573680b6ef66fa341e687a15b5da,2020-07-27,POSITIVE -bfa7634640c53da7cb5e9c39031128c4e583399f936896f27f999f1d58d7b37e,2020-02-04,NEGATIVE -b8aed072d29403ece56ae9641638ddd50d420f950bde0eefc092ee8879554141,2020-11-04,NEGATIVE -52f11620e397f867b7d9f19e48caeb64658356a6b5d17138c00dd9feaf5d7ad6,2020-01-04,NEGATIVE -61a229bae1e90331edd986b6bbbe617f7035de88a5bf7c018c3add6c762a6e8d,2020-11-15,POSITIVE -d6061bbee6cf13bd73765faaea7cdd0af1323e4b125342ac346047f7c4bda1fc,2020-12-24,INDETERMINATE -7045d16ae7f043ec25774a0a85d6f479e5bb019e9c5a1584bc76736d116b8f33,2020-03-27,POS -2397346b45823e070f6fc72ac94c0a999d234c472479f0e26b30cdf5942db854,2020-06-24,NEG -7045d16ae7f043ec25774a0a85d6f479e5bb019e9c5a1584bc76736d116b8f33,2020-03-27,POS -2397346b45823e070f6fc72ac94c0a999d234c472479f0e26b30cdf5942db854,2020-06-24,NEG -70260742c2952154c84e2ea9f68b1a7397f49b6d343da1ed284093c0bd72c742,2020-11-04,NEGATIVE -eb3be230bbd2844b1f5d8f2e4fab9ffba8ab22cfeeb69c4c1361993ba4f377b9,2020-12-24,INDETERMINATE -684fe39f03758de6a882ae61fa62312b67e5b1e665928cbf3dc3d8f4f53e3562,2020-07-27,POSITIVE -b4bbe448fde336bb6a7d7d765f36d3327c772b845e7b54c8282aa08c9775ddd7,2020-11-15,POSITIVE -8bcbb4c131df56f7c79066016241cc4bdf4e58db55c4f674e88b22365bd2e2ad,2020-01-04,NEGATIVE -a4e00d7e6aa82111575438c5e5d3e63269d4c475c718b2389f6d02932c47f8a6,2020-02-04,NEGATIVE -8bcbb4c131df56f7c79066016241cc4bdf4e58db55c4f674e88b22365bd2e2ad,2020-12-24,INDETERMINATE -a4e00d7e6aa82111575438c5e5d3e63269d4c475c718b2389f6d02932c47f8a6,2020-06-24,NEG -5a39cadd1b007093db50744797c7a04a34f73b35ed444704206705b02597d6fd,2020-02-04,NEGATIVE -27badc983df1780b60c2b3fa9d3a19a00e46aac798451f0febdca52920faaddf,2020-03-27,POS -43974ed74066b207c30ffd0fed5146762e6c60745ac977004bc14507c7c42b50,2020-11-15,POSITIVE -fc56dbc6d4652b315b86b71c8d688c1ccdea9c5f1fd07763d2659fde2e2fc49a,2020-07-27,POSITIVE -f8809aff4d69bece79dabe35be0c708b890d7eafb841f121330667b77d2e2590,2020-01-04,NEGATIVE -5cf4e26bd3d87da5e03f80a43a64f1220a1f4ba9e1d6348caea83c06353c3f39,2020-11-04,NEGATIVE -f8809aff4d69bece79dabe35be0c708b890d7eafb841f121330667b77d2e2590,2020-11-15,POSITIVE -5cf4e26bd3d87da5e03f80a43a64f1220a1f4ba9e1d6348caea83c06353c3f39,2020-06-24,NEG -968076be2e38cf897d4d6cea3faca9c037e1a4e3b4b7744fb2533e07751bd30a,2020-02-04,NEGATIVE -8df66f64b57424391d363fd6b811fed3c430c77597da265025728bd637bad804,2020-12-24,INDETERMINATE -83f814f7a92e365cbd79f9addceed185761a8d38a06a2d4350bb1fe4b7632b34,2020-01-04,NEGATIVE -fa2b7af0a811b9acde602aacb78e3638e8506dfead5fe6c3425b10b526f94bdd,2020-03-27,POS -d48ff4b2f68a10fd7c86f185a6ccede0dc0f2c48538d697cb33b6ada3f1e85db,2020-07-27,POSITIVE -802b906a18591ead8a6dd809b262ace4c65c16e89764c40ae326cfcff811e10c,2020-11-04,NEGATIVE -d48ff4b2f68a10fd7c86f185a6ccede0dc0f2c48538d697cb33b6ada3f1e85db,2020-11-04,NEGATIVE -802b906a18591ead8a6dd809b262ace4c65c16e89764c40ae326cfcff811e10c,2020-03-27,POS -d86580a57f7bf542e85202283cb845953c9d28f80a8e651db08b2fc0b2d6a731,2020-11-15,POSITIVE -0f4121d0ef1df4c86854c7ebb47ae1c93de8aec8f944035eeaa6495dd71a0678,2020-12-24,INDETERMINATE -16badfc6202cb3f8889e0f2779b19218af4cbb736e56acadce8148aba9a7a9f8,2020-02-04,NEGATIVE -36790ecd55c2030dc553685bef719df653f413a20cdad1bfd1dc934c76686ddd,2020-01-04,NEGATIVE -67e9c3acebb154a282f326d4ff1951cd1f342e58e74d562b556b517da5e56132,2020-06-24,NEG -9b871512327c09ce91dd649b3f96a63b7408ef267c8cc5710114e629730cb61f,2020-07-27,POSITIVE -67e9c3acebb154a282f326d4ff1951cd1f342e58e74d562b556b517da5e56132,2020-06-24,NEG -9b871512327c09ce91dd649b3f96a63b7408ef267c8cc5710114e629730cb61f,2020-07-27,POSITIVE -56f4da26ed956730309fa1488611ee0f13b0ac95ebb1bc9b5d210e31ff70e79c,2020-02-04,NEGATIVE -84a5092e4a5b6fe968fd523fb2fc917dbffae44105f82b6b94c8ed5b9a800223,2020-11-04,NEGATIVE -0e6523810856a138a75dec70a9cf3778a5c70b83ac915f22c33f05db97cb3e68,2020-11-15,POSITIVE -9d693eeee1d1899cbc50b6d45df953d3835acf28ee869879b45565fccc814765,2020-12-24,INDETERMINATE -08490295488a1189099751ebeddb5992313dd2a831e07a92e66d196ddc261777,2020-01-04,NEGATIVE -a0eaec5a55dc2f5b2ba523018adc485ff620b9d83509b9f37186a7716e438d21,2020-03-27,POS -08490295488a1189099751ebeddb5992313dd2a831e07a92e66d196ddc261777,2020-11-15,POSITIVE -a0eaec5a55dc2f5b2ba523018adc485ff620b9d83509b9f37186a7716e438d21,2020-01-04,NEGATIVE -138d9e809e386a7b800791d1f664f56d1c55f3d1ba411b950862729bc486c5ce,2020-03-27,POS -835d5e8314340ab852a2f979ab4cd53e994dbe38366afb6eed84fe4957b980c8,2020-06-24,NEG -c0509a487a18b003ba05e505419ebb63e57a29158073e381f57160b5c5b86426,2020-02-04,NEGATIVE -9a049b03f6fc40bfcf2f136320359257ed4af8513f71aa6fef47f17059bbae23,2020-11-04,NEGATIVE -f0bc318fb8965cad8d73d578cd03c63b7987dc6a79b906aada091e1b6a13443f,2020-07-27,POSITIVE -8ae4c23b80d1e7c8ff79e515fe791ebd68190bae842dda7af193db125f700452,2020-12-24,INDETERMINATE -f0bc318fb8965cad8d73d578cd03c63b7987dc6a79b906aada091e1b6a13443f,2020-06-24,NEG -8ae4c23b80d1e7c8ff79e515fe791ebd68190bae842dda7af193db125f700452,2020-12-24,INDETERMINATE -79bf08685d3138f9b109c3546780f056bc954fd69377b84a2cf23622e464897b,2020-11-15,POSITIVE -6af1f692e9496c6d0b668316eccb93276ae6b6774fa728aac31ff40a38318760,2020-07-27,POSITIVE -749fc650cacb0f06547520d53c31505c8156e0a3be07073eddb2ef3ad9e383ba,2020-02-04,NEGATIVE -82c01ce15b431d420eb6a1febfba7d7a2b69e5bcdcb929cb42cd3e9179d43fc4,2020-03-27,POS -011af72a910ac4acf367eef9e6b761e0980842c30d4e9809840f4141d5163ede,2020-01-04,NEGATIVE -37c20f19f3272b5ccc3a5d80587eb9deb3f4afcf568c4280fb195568da8eb1a2,2020-11-04,NEGATIVE -011af72a910ac4acf367eef9e6b761e0980842c30d4e9809840f4141d5163ede,2020-03-27,POS -37c20f19f3272b5ccc3a5d80587eb9deb3f4afcf568c4280fb195568da8eb1a2,2020-01-04,NEGATIVE -396f804443825586c1283a27fdcadf74abb82008bcd9b260a30912a26563f27d,2020-11-04,NEGATIVE -766cb53c753baedac5dc782593e04694b3bae3aed057ac2ff98cc1aef6413137,2020-02-04,NEGATIVE -9f484139a27415ae2e8612bf6c65a8101a18eb5e9b7809e74ca63a45a65f17f4,2020-07-27,POSITIVE -d6e5a20b30f87216b2c758f5e7a23c437dbc3dfa1ccb177c474de152bb0ef731,2020-06-24,NEG -e7866fdc6672f827c76f6124ca3eeaff44aff8b7caf4ee1469b2ab887e7e7875,2020-11-15,POSITIVE -9512d95d00d61bdec03d2b99d6ecc455ee5644ae52d10e7c4a61c93062dc97a3,2020-12-24,INDETERMINATE -e7866fdc6672f827c76f6124ca3eeaff44aff8b7caf4ee1469b2ab887e7e7875,2020-12-24,INDETERMINATE -9512d95d00d61bdec03d2b99d6ecc455ee5644ae52d10e7c4a61c93062dc97a3,2020-01-04,NEGATIVE -9556b82499cc0aaf86aee7f0d253e17c61b7ef73d48a295f37d98f08b04ffa7f,2020-03-27,POS -51e8ea280b44e16934d4d611901f3d3afc41789840acdff81942c2f65009cd52,2020-06-24,NEG -4c970004b0678d439f177e77d3cabdb7e9a44df770948ddc2467cbc76b7211c3,2020-11-15,POSITIVE -39bb88f40d3aa2b2fe9dea67be27c74765db0ebb3ff3cf8fb779af6319fa2045,2020-07-27,POSITIVE -e888a676e1926d0c08b5f11fb9116df58b62604b05846f39f8d6fc4dd0ba31f1,2020-11-04,NEGATIVE -9e6a72557ada15d02001f024f43f06edc4a31437e0e1bb3eeac36ca2d0c4fda7,2020-02-04,NEGATIVE -e888a676e1926d0c08b5f11fb9116df58b62604b05846f39f8d6fc4dd0ba31f1,2020-02-04,NEGATIVE -9e6a72557ada15d02001f024f43f06edc4a31437e0e1bb3eeac36ca2d0c4fda7,2020-07-27,POSITIVE -4be84111a613654b362415e563cb7607df7b203b5d303802a8a546061bbc7847,2020-11-04,NEGATIVE -bba58959c32abe688d9cb5222b97de973002a67c412d6a8c8d2a79ac692f32b7,2020-03-27,POS -768b84ef05f655d57fe22d488451f075365f6cd18a13073466aa826cc0ebdbfb,2020-12-24,INDETERMINATE -8b496bf96bbcc9e5ac11c068b6cfb00c32f9d163bb8a3d5af107217499de997a,2020-01-04,NEGATIVE -f747870ae666c39b589f577856a0f7198b3b81269cb0326de86d8046f2cf72db,2020-06-24,NEG -d8d1790737d57ac4fe91a2c0a28087c0a97c81f5dc6b19d5e4aec20c08bb95ae,2020-11-15,POSITIVE -f747870ae666c39b589f577856a0f7198b3b81269cb0326de86d8046f2cf72db,2020-01-04,NEGATIVE -d8d1790737d57ac4fe91a2c0a28087c0a97c81f5dc6b19d5e4aec20c08bb95ae,2020-06-24,NEG -3635a91e3da857f7847f68185a116a5260d2593f3913f6b1b66cc2d75b0d6ec0,2020-11-15,POSITIVE -1c6c0bb2c7ecdc3be8e134f79b9de45155258c1f554ae7542dce48f5cc8d63f0,2020-02-04,NEGATIVE -303c8bd55875dda240897db158acf70afe4226f300757f3518b86e6817c00022,2020-03-27,POS -c76b405781134be1dab7fe45adfb8c32104805a01de7b863e1004b66d56edf9f,2020-07-27,POSITIVE -27d719c754aacd492a6dc8a1b76619355abcf5ef473cbec02018d3c57ebbf0d5,2020-11-04,NEGATIVE -ee62de25ccc2b55d3a0495244b246fb97055b6f1c2697d837b8e94976c03756f,2020-12-24,INDETERMINATE -27d719c754aacd492a6dc8a1b76619355abcf5ef473cbec02018d3c57ebbf0d5,2020-12-24,INDETERMINATE -ee62de25ccc2b55d3a0495244b246fb97055b6f1c2697d837b8e94976c03756f,2020-11-04,NEGATIVE -efd96aedf377e20afd95285a7c751a864260bd6a149656a4040c5b7757bdbbb6,2020-06-24,NEG -7f0a22117f8fe0172cf9209ff622b64a51aaeda21d58b5b62685a93dbe2dad25,2020-02-04,NEGATIVE -71a1c003a2b855d85582c8f6c7648c49d3fe836408a7e1b5d9b222448acb3c1b,2020-01-04,NEGATIVE -1e68ed4e3d58a51096a7feea3947f40debf1fd9246ec977eb62ab93c81823ad9,2020-07-27,POSITIVE -a0d177b4967a6d99f4ff117defe1c0d23d4e78ca4630febcb948ee9e4520eff3,2020-11-15,POSITIVE -00328ce57bbc14b33bd6695bc8eb32cdf2fb5f3a7d89ec14a42825e15d39df60,2020-03-27,POS -a0d177b4967a6d99f4ff117defe1c0d23d4e78ca4630febcb948ee9e4520eff3,2020-11-15,POSITIVE -00328ce57bbc14b33bd6695bc8eb32cdf2fb5f3a7d89ec14a42825e15d39df60,2020-02-04,NEGATIVE -d7cdaa5ca0582076c8e772cce739e32c5077cfd24f2ea33f04bb754594989a56,2020-01-04,NEGATIVE -23c657f2efda7731a3c1990b25f318fa2eb1332208f97ab9cc2a7eac70ab5a76,2020-06-24,NEG -af180e4359fc6179dc953abdcbdcaf7c146b53e1bee2b335e50dead11ccefa07,2020-11-04,NEGATIVE -6db6eb4af1e18ab81d3878e44672185d60ca8c988c9e2f7783de220735534c33,2020-03-27,POS -7cb676d57114874e00c536916e6dcad2a5d3cb8c9a5abc06335df359cd9a6ef9,2020-12-24,INDETERMINATE -2cfc8ccbd7c0b17615323b41e815651ff2ae9ffae45a4599c0499b98ff940429,2020-07-27,POSITIVE -7cb676d57114874e00c536916e6dcad2a5d3cb8c9a5abc06335df359cd9a6ef9,2020-02-04,NEGATIVE -2cfc8ccbd7c0b17615323b41e815651ff2ae9ffae45a4599c0499b98ff940429,2020-11-15,POSITIVE -9cfd3c755be26b4e1645918e2a64a26e3d851ede421e0b257f783b443bc443d1,2020-03-27,POS -a0f8b2c4cb1ac82abdb37f0fe5203b97be556c4468c83bba18684d620fd8eaf9,2020-11-04,NEGATIVE -4c15f47afe7f817fd559e12ddbc276f4930c5822f2049088d6f6605bec7cea56,2020-06-24,NEG -983bd614bb5afece5ab3b6023f71147cd7b6bc2314f9d27af7422541c6558389,2020-12-24,INDETERMINATE -c3ea99f86b2f8a74ef4145bb245155ff5f91cd856f287523481c15a1959d5fd1,2020-07-27,POSITIVE -f32828acecb4282c87eaa554d2e1db74e418cd6845843012463a3324028bdd9d,2020-01-04,NEGATIVE -c3ea99f86b2f8a74ef4145bb245155ff5f91cd856f287523481c15a1959d5fd1,2020-01-04,NEGATIVE -f32828acecb4282c87eaa554d2e1db74e418cd6845843012463a3324028bdd9d,2020-12-24,INDETERMINATE -8bd9c0d453533757387ed019c45617cdc440ba680a67b1a101c85b998ef715c0,2020-11-04,NEGATIVE -d874e4e4a5df21173b0f83e313151f813bea4f488686efe670ae47f87c177595,2020-07-27,POSITIVE -090d3859ff6840b2280f4708cf08cdaed873d967183a4d1deedc1a7964a21eee,2020-11-15,POSITIVE -48a1706eca5ee6148f748ca91a0f7db6ebcf59943532044a7bf60bbe44e5b1d2,2020-06-24,NEG -43c727ee4fc7250574d2ef90cfa16626388a10e1b30d36ece1c272953ad2ed9e,2020-02-04,NEGATIVE -226f76b55acb49701e06ded1d95165d179458f6fc37f5c6fc760ae30dec1c378,2020-03-27,POS -43c727ee4fc7250574d2ef90cfa16626388a10e1b30d36ece1c272953ad2ed9e,2020-11-15,POSITIVE -226f76b55acb49701e06ded1d95165d179458f6fc37f5c6fc760ae30dec1c378,2020-01-04,NEGATIVE -20e9c64c05a54d199610fb7e38135361324b5ed5dcf39c23afe9b48926c07376,2020-02-04,NEGATIVE -865736a1c30a82dc67aba820360a01b1d9d0da5643234cd07c4d60b06eb530c5,2020-12-24,INDETERMINATE -8efbbe9bc19ad2e043c6cdb187c0a0fedde70b6458443ce0b5648ec04ccf4cdf,2020-06-24,NEG -7a20311cf7a4b222d436424480bc65dd0f9d2cefcbbb1fa148ca0d7e1d5bb55a,2020-03-27,POS -8d1ede4f889e0ed6f0823d8c1821905b9de37a0f851dc270df0dbf72b3c93641,2020-07-27,POSITIVE -aae02129362d611717b6c00ad8d73bf820a0f6d88fca8e515cafe78d3a335965,2020-11-04,NEGATIVE -8d1ede4f889e0ed6f0823d8c1821905b9de37a0f851dc270df0dbf72b3c93641,2020-06-24,NEG -aae02129362d611717b6c00ad8d73bf820a0f6d88fca8e515cafe78d3a335965,2020-11-04,NEGATIVE -156091ee0884f36de9836d58b6f05f357ec6ef0620c571577ac61f7beac35f8e,2020-11-15,POSITIVE -88820462180e5c893eff2ed73f4ec33e205d1cd5acc4d17fa7b2bca2495d3448,2020-07-27,POSITIVE -8d23cf6c86e834a7aa6eded54c26ce2bb2e74903538c61bdd5d2197997ab2f72,2020-02-04,NEGATIVE -1038e0b72d98745fac0fb015fd9c56704862adf11392936242a2ff5a65629f50,2020-01-04,NEGATIVE -9e11c362bc3d3572970b973d5cd86c073da358b6f9bceaa3be65d1a6487f8819,2020-03-27,POS -a4e987d17584557e2fbed011cddf66dc5185338bc3ef33d4226f86c32b7364dd,2020-12-24,INDETERMINATE -9e11c362bc3d3572970b973d5cd86c073da358b6f9bceaa3be65d1a6487f8819,2020-11-15,POSITIVE -a4e987d17584557e2fbed011cddf66dc5185338bc3ef33d4226f86c32b7364dd,2020-03-27,POS -02cca3803b564ede11ccf9f303c9910b39c532061e7a8c3b773169bc3d3c140b,2020-01-04,NEGATIVE -2452984f72ef1195df62ab3f23748777dbf39767229425f1bfd0862d476e5840,2020-06-24,NEG -0791963ca2667a23cf3268ad25d7bb6ca0ed287b192869703cdbcf0e87934c33,2020-11-04,NEGATIVE -7104741a92e73eb6c5d69cd04cf0afbe50a8796a010d8fa25daaf79e5e173bf3,2020-12-24,INDETERMINATE -556d7dc3a115356350f1f9910b1af1ab0e312d4b3e4fc788d2da63668f36d017,2020-02-04,NEGATIVE -058d5d43bf485bf78dda1ed4eaf8b78e3106f3c6364c625ead2cc3aeb1908237,2020-07-27,POSITIVE -556d7dc3a115356350f1f9910b1af1ab0e312d4b3e4fc788d2da63668f36d017,2020-11-15,POSITIVE -058d5d43bf485bf78dda1ed4eaf8b78e3106f3c6364c625ead2cc3aeb1908237,2020-11-04,NEGATIVE -7acc684a848a9b954959fdd22493f48cf44eed028275b6b9999c7cade8956fc7,2020-03-27,POS -eaa0689a095d4394a05fb51b84b0175a47f68221261377e4829444cbfcae23ca,2020-12-24,INDETERMINATE -8ede6b26343305e05c3c0029f4e830d4e8c2016869a9d1cd97b100b2a16dfd1c,2020-07-27,POSITIVE -9644294ac4ffb3091eef01219b3fe4fe467f05890cc56af961dce68fddbb7704,2020-06-24,NEG -524b2d27a1e7fbc3a1614fa661e2dcad68462352feeb8bf633deaccfb8aa84f3,2020-01-04,NEGATIVE -023849c38925e2af028a2eb4e1dc41afd7dc7a238195c1c2ae00438d1dae00e1,2020-02-04,NEGATIVE -524b2d27a1e7fbc3a1614fa661e2dcad68462352feeb8bf633deaccfb8aa84f3,2020-11-15,POSITIVE -023849c38925e2af028a2eb4e1dc41afd7dc7a238195c1c2ae00438d1dae00e1,2020-12-24,INDETERMINATE -3c15285c04fff40024bb8714b93e58178bf8d3bebe6943178e1c5412957b7aa1,2020-06-24,NEG -02e6295d8f522840f09b5194b3f023799ad6ed3306d9296005787e792224df20,2020-07-27,POSITIVE -da70dfa4d9f95ac979f921e8e623358236313f334afcd06cddf8a5621cf6a1e9,2020-01-04,NEGATIVE -06b2d82840e43ed8432b3f444de18b57dbe60637c99379c708aa8e66de83dbc1,2020-03-27,POS -72ba187b05e705de2dced5824d716a71872dedccf21f0c179bd2d5f2c7c974b1,2020-11-04,NEGATIVE -deeeb5df3f2cee6bf4e597a8a3a878a6ce49b932b9e90b416922d4499f54fae6,2020-02-04,NEGATIVE -72ba187b05e705de2dced5824d716a71872dedccf21f0c179bd2d5f2c7c974b1,2020-06-24,NEG -deeeb5df3f2cee6bf4e597a8a3a878a6ce49b932b9e90b416922d4499f54fae6,2020-03-27,POS -04a8708c3a481ced13845a30de522486895de0592222c29326d9139ec2b9df25,2020-01-04,NEGATIVE -9a72c24f2fd76561729110d804c69f38a7088f2ec41fdf8fbfea20d07e8bcff8,2020-07-27,POSITIVE -459535faa370a3b5f8b87203b089623c7aeb9325abf241ec8a685b9c325047a3,2020-12-24,INDETERMINATE -03a3d955b8799a90f1ff5a39479fde8e618f8ca3282d5b187186f2cf361abd32,2020-11-04,NEGATIVE -2ab0ce7632a611e907a40710ff46da13c5ba832f5a402c6f51e15f53d6e8fa0e,2020-02-04,NEGATIVE -62a0eae98b9fc0bd0ad941ae07ae5e2af545a64c8ddc43407bdfe6ae82addb4c,2020-11-15,POSITIVE -2ab0ce7632a611e907a40710ff46da13c5ba832f5a402c6f51e15f53d6e8fa0e,2020-07-27,POSITIVE -62a0eae98b9fc0bd0ad941ae07ae5e2af545a64c8ddc43407bdfe6ae82addb4c,2020-01-04,NEGATIVE -9197e4844abed2fea3569a2acf7b0d584c979c333ab7ae10ba6c339898776f5a,2020-02-04,NEGATIVE -838f461c2fa673cec73e6eecdafa88b127802d6cb0a61c53175197a122cb645a,2020-12-24,INDETERMINATE -73daa9289ddd08a53ba86f065ddb07bf915aba208bec652e999613d2a8444228,2020-11-04,NEGATIVE -b3dfdc6efe322a6feccb0d081e88ffac20b0f28e8495efa76188c8dc3ada6181,2020-11-15,POSITIVE -4e47eb5525df25f94da777993dafa41d9ab2bfa80a89e28f76d42cd46ab082e7,2020-03-27,POS -600b4cdf20cc06a7b5a5cca5f7464296861815519af6d8a14604201b13965ab8,2020-06-24,NEG -4e47eb5525df25f94da777993dafa41d9ab2bfa80a89e28f76d42cd46ab082e7,2020-07-27,POSITIVE -600b4cdf20cc06a7b5a5cca5f7464296861815519af6d8a14604201b13965ab8,2020-03-27,POS -0788979fc9366e21cd56311511b897a222cf91711481bcd7dc837eac2172d087,2020-11-15,POSITIVE -8e6aee9efac8086ebac545d45c63e0d0dfcddd0d77d53e45c04d05cafdd2a8a8,2020-12-24,INDETERMINATE -5f193b350c8aba4883dedf97367ef3080821470661d0a2e1faf420a300cb5ca8,2020-06-24,NEG -62f77e7d6197863ac98d9e0cfa76bea0c8e05379ed5281afbe72f7fc206fe37b,2020-11-04,NEGATIVE -e52d08747b9d7a6d04551bb86ee3f7ee6c49f7477c8cd66f77448378cc30b92b,2020-01-04,NEGATIVE -01299ac65733b5a3d774265fbfe8396b8611e5e3321855dbc541cd301e71fe5e,2020-02-04,NEGATIVE -e52d08747b9d7a6d04551bb86ee3f7ee6c49f7477c8cd66f77448378cc30b92b,2020-01-04,NEGATIVE -01299ac65733b5a3d774265fbfe8396b8611e5e3321855dbc541cd301e71fe5e,2020-12-24,INDETERMINATE -de5872c6bb4494cebd250152ce148cd6231654e4469229f2f993984b3950b422,2020-11-04,NEGATIVE -12e2c8df501501b2bb531e941a737ffa7a2a491e849c5c5841e3b6132291bc35,2020-11-15,POSITIVE -2c4cf657337835125bc4258d0e2e546af4185bdb70f64e1b0aa46d1d78017404,2020-07-27,POSITIVE -2af4dd48399a5cf64c23fc7933e11aaf6171d80001b4b1377498ae6056b1acbf,2020-06-24,NEG -392a52e4f77c40bf3321dc2feac356fac2a906a80c961748170af4ce2bce1e6a,2020-02-04,NEGATIVE -f65ccfbfec288565c1d414275985547799fde0ed286c85a50bd0ec5faa01d1ac,2020-03-27,POS -392a52e4f77c40bf3321dc2feac356fac2a906a80c961748170af4ce2bce1e6a,2020-11-15,POSITIVE -f65ccfbfec288565c1d414275985547799fde0ed286c85a50bd0ec5faa01d1ac,2020-12-24,INDETERMINATE -48b361d46638bfa4eee090c158a750a69c7beec3a62e703e2801125551b1b157,2020-11-04,NEGATIVE -37b73510175057c633ebe4beb0a34917fa2a0696432db43a4eeb2c3ff83a4c3b,2020-02-04,NEGATIVE -131b0c35e2d7edef9dd63f48eff39341ef0a5f770538aa4e0017f41b9cdb135d,2020-01-04,NEGATIVE -ab5e292db6495899871d889aaab28308f7da8dfc3693a477ee73de9ad894ce44,2020-03-27,POS -b98880883fd8d975260f1807fa46a5156fcc4cc82bf6d657a417d8bb4e42cd55,2020-07-27,POSITIVE -48a1a756f2d83f1dc57bbf14052b70a6f40d0fceed6662812e34903a9fe90924,2020-06-24,NEG -b98880883fd8d975260f1807fa46a5156fcc4cc82bf6d657a417d8bb4e42cd55,2020-07-27,POSITIVE -48a1a756f2d83f1dc57bbf14052b70a6f40d0fceed6662812e34903a9fe90924,2020-02-04,NEGATIVE -a934c244755c66aebb0d6f9f5687038ffae8f00b00b28b4e17521016393f38b9,2020-06-24,NEG -6ea2fdb3399f4d2e806beb01e9a3371bd622bed6a409acf3151818d738c370ec,2020-11-15,POSITIVE -99a0b871c9047c4f5555fcf062e0623174bae38746fece6efdf032d80fb2221a,2020-03-27,POS -3c1b7053f0edd447b778edbc0ad8359b0fa892d69857d9bd5e6b19007bb3f01e,2020-01-04,NEGATIVE -1d2028ddcd746a7ee87dd0739d7435602b77d4908f96e27ebdad57b09aa27b69,2020-11-04,NEGATIVE -188c1fdca79d927f6e812133173fc41d3a4e57074de521020274caa9bb29af7d,2020-12-24,INDETERMINATE -1d2028ddcd746a7ee87dd0739d7435602b77d4908f96e27ebdad57b09aa27b69,2020-03-27,POS -188c1fdca79d927f6e812133173fc41d3a4e57074de521020274caa9bb29af7d,2020-11-15,POSITIVE -0f78540965a86402578f8188c826c1cb6c7ddcb608ae3a3201e532c7cacb6ce3,2020-12-24,INDETERMINATE -26d228663f13a88592a12d16cf9587caab0388b262d6d9f126ed62f9333aca94,2020-06-24,NEG -dcaadad1cfce437735b81ab025f776e5857e48558c47f6960e6a5f2595664a85,2020-07-27,POSITIVE -6b3c238ebcf1f3c07cf0e556faa82c6b8fe96840ff4b6b7e9962a2d855843a0b,2020-11-04,NEGATIVE -a73b320dc0d3a57c03f897eb28ca91e623c5ee635db59476ba3178c90b94019f,2020-01-04,NEGATIVE -f64f410744d9470ffe2d6b9ee6f042cdffcc42a745d2568146e8782ea828ff48,2020-02-04,NEGATIVE -a73b320dc0d3a57c03f897eb28ca91e623c5ee635db59476ba3178c90b94019f,2020-07-27,POSITIVE -f64f410744d9470ffe2d6b9ee6f042cdffcc42a745d2568146e8782ea828ff48,2020-02-04,NEGATIVE -a5abb1500bdeaef41e2edd598c015edfaa46793051b82d7da60a70efbf786da4,2020-12-24,INDETERMINATE -e6f47e008cc58b38596e6fdf2f50a0fea93fd10543e652522aeab3aa71355719,2020-11-04,NEGATIVE -480f5a496560ae4228bb7977ecf29b2c589d7a7aa6b609534566af8cbc229a9e,2020-01-04,NEGATIVE -fabf5b7fedb3e62a81c9298b19706249ee128011bf9d94867681020c16f8b741,2020-03-27,POS -1c49f22f6de9bd15e5e566fa8983be4cfa4709abf0f95edf96dcd3d6249c2649,2020-06-24,NEG -8111eb1556229541d7d2720a51203037e78ee57fb2e407e0da4a805473dab7af,2020-11-15,POSITIVE -1c49f22f6de9bd15e5e566fa8983be4cfa4709abf0f95edf96dcd3d6249c2649,2020-07-27,POSITIVE -8111eb1556229541d7d2720a51203037e78ee57fb2e407e0da4a805473dab7af,2020-06-24,NEG -fc72c98a6c2916c1bbf9f39fce094f5785bb6f1d656971520b660b2e8a760fe3,2020-03-27,POS -67e0bdb7b6c549d4fa834d0f6848ce6a3a12e07de9cea949ad41932bd5881bc4,2020-01-04,NEGATIVE -afcf8bc077e68eb94dfe783205f32cabdeead61fd32ff5710947b6111ff2ff77,2020-11-04,NEGATIVE -db55da3fc3098e9c42311c6013304ff36b19ef73d12ea932054b5ad51df4f49d,2020-12-24,INDETERMINATE -5092c37bcbc9f0fb33cb0f9cab7aa5ae94ed0f1219773c380b143b7c1224d01b,2020-02-04,NEGATIVE -5658b88806a236b6439a7ecd0a87af2475a02a848095304c6d25981ae5e7e9a9,2020-11-15,POSITIVE -5092c37bcbc9f0fb33cb0f9cab7aa5ae94ed0f1219773c380b143b7c1224d01b,2020-12-24,INDETERMINATE -5658b88806a236b6439a7ecd0a87af2475a02a848095304c6d25981ae5e7e9a9,2020-06-24,NEG -814bb6b8dc12188a44b71e378dc20a4292e01979aa9ab95b09b8a681391dfc9d,2020-03-27,POS -814fd2e8e45e9a6d3e1f6ff86867aaf2251ccd07f3eed02708fae286192c29e3,2020-01-04,NEGATIVE -0dfcddb0440e967f05bb68ca09a5e2188b8abc36bfb5b95b83b88be59c42c6e7,2020-02-04,NEGATIVE -cbf2f7864f1c988391a9ab199627a29bd60987da067748c2812b75785d7ec151,2020-11-04,NEGATIVE -2d1007980f49215311f7f1012e84f99b801eb5daeca04dedea3ada41cc45353b,2020-07-27,POSITIVE -fed88b40aba63cac05eadd5db0088c036005ec235c7be6fd87d656946b733332,2020-11-15,POSITIVE -2d1007980f49215311f7f1012e84f99b801eb5daeca04dedea3ada41cc45353b,2020-07-27,POSITIVE -fed88b40aba63cac05eadd5db0088c036005ec235c7be6fd87d656946b733332,2020-11-04,NEGATIVE -0a1f1256f9bac68e806442aa76455bb761af5414855efa23c1b3fd54477c0ba1,2020-06-24,NEG -98f1f17f9a73ccfe3e25940add8d9ce9bf05513104cacb84f2f1185bf5886a84,2020-02-04,NEGATIVE -aaf01d71b55e51b1a3051cbb3cdc0646578dcda722b2922072a81f257b1a9821,2020-12-24,INDETERMINATE -155d1cf609cedded2fbc27a4646de87ce7f7de2913b1e5a1bbf148a6df483e19,2020-01-04,NEGATIVE -0ef962215cc055786d516355238a80dacc204ecf9b160d0a252190bf5c0cc370,2020-11-15,POSITIVE -18d37c950a3e810d9b9a84c72c230ca16b7cec19f7fb55c625e5441790d448ef,2020-03-27,POS -0ef962215cc055786d516355238a80dacc204ecf9b160d0a252190bf5c0cc370,2020-01-04,NEGATIVE -18d37c950a3e810d9b9a84c72c230ca16b7cec19f7fb55c625e5441790d448ef,2020-02-04,NEGATIVE -050a010ce24d0896056e9a36a1940738d38f469d644b3682cfcc47569739c525,2020-06-24,NEG -e3f6959781c353c201d378e02d9da532601673e08a1706fa15a5ebbd9ea1bd36,2020-11-04,NEGATIVE -2dfe70c43208f52b9ef4ea7e134705283947116491e81fbac05f0aedc25c5956,2020-12-24,INDETERMINATE -3538a1ef2e113da64249eea7bd068b585ec7ce5df73b2d1e319d8c9bf47eb314,2020-07-27,POSITIVE -0e12831a7047f759733b21f028525039607350b1b1b4fe904595427e72ea0d9b,2020-03-27,POS -75c3e223190bf1a1fa2af808d1dfcdffe33727d57eb0028b5a52ad893480eeb9,2020-11-15,POSITIVE -0e12831a7047f759733b21f028525039607350b1b1b4fe904595427e72ea0d9b,2020-06-24,NEG -75c3e223190bf1a1fa2af808d1dfcdffe33727d57eb0028b5a52ad893480eeb9,2020-07-27,POSITIVE -c498f3fe97c0df55ee8dea01a72572059b93f42d235a5e439e9c9a1654d6d4e1,2020-12-24,INDETERMINATE -a4ecdd704d258aa841bb3f9a1e3b0cafc59bd88810e542f8e7a0519809d78fe7,2020-03-27,POS -4a30a219a9d7663fdd35c0a5df49c8d55018f13a0c53e10dd8efe8f7e4cc5d89,2020-11-15,POSITIVE -549a2fac47d713cc00f2db498ad6b5574fb03c9293aef6c7ad50a11b394c197d,2020-01-04,NEGATIVE -d83c7ee736be931d85b78a4a60881ced3ff9a31bb417804e45b1d30de40f94f2,2020-11-04,NEGATIVE -48f89b630677c2cbb70e2ba05bf7a3633294e368a45bdc2c7df9d832f9e0c941,2020-02-04,NEGATIVE -d83c7ee736be931d85b78a4a60881ced3ff9a31bb417804e45b1d30de40f94f2,2020-06-24,NEG -48f89b630677c2cbb70e2ba05bf7a3633294e368a45bdc2c7df9d832f9e0c941,2020-07-27,POSITIVE -f626051bc94422f26f4b774a2bca105e122df36a2f32f51bd7ee470daa620b0b,2020-02-04,NEGATIVE -b3a8e0e1f9ab1bfe3a36f231f676f78bb30a519d2b21e6c530c0eee8ebb4a5d0,2020-11-15,POSITIVE -353767b239099863e13ca954e20a66c9d75f777baf239f56e399958de49bf79d,2020-11-04,NEGATIVE -841a05fd378a2c067058585e3691c2a3f5399206fded7a580fdbbc281003168e,2020-01-04,NEGATIVE -de482c7ed5ca67ae135ef25bf3b13194970a2f3902318f1eda3c64af2a2eb344,2020-03-27,POS -da4d43f295ce92630829272fad6d2e7237c6248e9cd9499e6382d6fa6d758e7b,2020-12-24,INDETERMINATE -de482c7ed5ca67ae135ef25bf3b13194970a2f3902318f1eda3c64af2a2eb344,2020-02-04,NEGATIVE -da4d43f295ce92630829272fad6d2e7237c6248e9cd9499e6382d6fa6d758e7b,2020-11-15,POSITIVE -06de973bb45531d52cdbd483c5e50bcddaa2095f9515e03cfad490061cc9831e,2020-01-04,NEGATIVE -88b54564b232405ab2165996517fece1149259cf1ea262a375db0f66039294d0,2020-06-24,NEG -ad3b83575249b68aab9602de378314fc221ab07a9b2ab0bb4a245ec649219f45,2020-07-27,POSITIVE -1e5ee5e58c8f490ae68e7e91b1575ebefc2bf6c211f302a553ff0c4925e85321,2020-11-04,NEGATIVE -c6bd343ae0007cdb979de7540f2668fe849d68ff47fa1a650a28f89104f41f1e,2020-12-24,INDETERMINATE -30eec89ddd9c342ef28a87f731d6e50ba977baf12d7caa7045a9d56b0e923f03,2020-03-27,POS -c6bd343ae0007cdb979de7540f2668fe849d68ff47fa1a650a28f89104f41f1e,2020-06-24,NEG -30eec89ddd9c342ef28a87f731d6e50ba977baf12d7caa7045a9d56b0e923f03,2020-01-04,NEGATIVE -064c3e311ef63912b0cc91db9681ce2d301c3e76c447febf8faa303de38cc005,2020-03-27,POS -b6cb293891dd62748d85aa2e00eb97e267870905edefdfe53a2ea0f3da49e88d,2020-11-15,POSITIVE -3a8f6d79cd434dc10588606993976b7b2bc038ff4a2481e857ac0168fc29a683,2020-07-27,POSITIVE -e73cb135243c08ab2c2adc333b150b9237093315f6b38e3361f07caf2bfb4d6b,2020-02-04,NEGATIVE -6e82b8197ce29396936a07b1eb951c88650a2fc0fe1201a51b15b6ca8a73318a,2020-12-24,INDETERMINATE -200dd69b70a88134b3a939de5f0b10c44a1675344329b9d9a5ad6b7342f978b2,2020-11-04,NEGATIVE -6e82b8197ce29396936a07b1eb951c88650a2fc0fe1201a51b15b6ca8a73318a,2020-03-27,POS -200dd69b70a88134b3a939de5f0b10c44a1675344329b9d9a5ad6b7342f978b2,2020-07-27,POSITIVE -9869a8a3a11a33284dc2bcc3d2e6ffd52cad30e2009c11dfe604e74dc21a887e,2020-12-24,INDETERMINATE -ddfe0e8d462af661f81db36589c39882dc0f2330785b5d80cd34f2f520ad618f,2020-01-04,NEGATIVE -51d089cdaf0c968c94b80671489d22b6f79b1c57de80df880b008e9b37b49788,2020-11-15,POSITIVE -a42e815c58f3977fe531a80ffd4659121c3b9f876a89869042816c369ed80776,2020-06-24,NEG -5844a72aee9269a68da28cae55c706d824b02ffb92189aaacd746a0d6097f549,2020-11-04,NEGATIVE -86b700fab5db37977a73700b53a0654b21bdad0896914cc19ad70dee5f5fb3f6,2020-02-04,NEGATIVE -5844a72aee9269a68da28cae55c706d824b02ffb92189aaacd746a0d6097f549,2020-07-27,POSITIVE -86b700fab5db37977a73700b53a0654b21bdad0896914cc19ad70dee5f5fb3f6,2020-11-15,POSITIVE -9b19f9ab816598a0809e4afd5d60800f2dbef9cbb9b03ad2ce766b3c237b9059,2020-01-04,NEGATIVE -a77b6cbdf6fae1676369dea1e1ea675e4c2400c9e43bd535fdfd9395cb48cbaa,2020-02-04,NEGATIVE -e4be97ce765e6cfcd703884cc31db7478fa7befca7cf6dc15420ba20ed718abe,2020-06-24,NEG -23e8b0175874e1bb3b4799e13a6634a8eddb456c1b8675b871e07ec09abc0c07,2020-11-04,NEGATIVE -560aa3e6e94314c78236109e209ac79e15e05ec8bf2dcb78300ae65e720edf9e,2020-03-27,POS -d18b29d80a8bd366b77c952d9775510507c2d006eec917ab2f89ef93acc5452f,2020-12-24,INDETERMINATE -560aa3e6e94314c78236109e209ac79e15e05ec8bf2dcb78300ae65e720edf9e,2020-06-24,NEG -d18b29d80a8bd366b77c952d9775510507c2d006eec917ab2f89ef93acc5452f,2020-07-27,POSITIVE -ac1270c5058af65025e5b2a3e3014cea69460e7d9f159ae667028e1b6eab433e,2020-02-04,NEGATIVE -35bbce4007c5cd57a4c6dcabbdf5b347c9557ec11898111c280a788f8396e2c5,2020-11-04,NEGATIVE -dcb5d6e69e4ded78464ae2843f509daf65c9ca09dfdc9b5ad69166341963a877,2020-11-15,POSITIVE -0604cd3138feed202ef293e062da2f4720f77a05d25ee036a7a01c9cfcdd1f0a,2020-01-04,NEGATIVE -1158e7e12c5e7362318e5e3c2e1f2f1ab49578ab1d1691e9818a7c3f6b30b528,2020-03-27,POS -5344c4110f483793dc352c388e67776724c36b4bea3ffda6cab7c75b9c65aceb,2020-12-24,INDETERMINATE -1158e7e12c5e7362318e5e3c2e1f2f1ab49578ab1d1691e9818a7c3f6b30b528,2020-03-27,POS -5344c4110f483793dc352c388e67776724c36b4bea3ffda6cab7c75b9c65aceb,2020-01-04,NEGATIVE -7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5,2020-06-24,NEG -ba689abd93c9c6a7d08b5b5c04dd27f6d69755ebe9a87fb969e73dfc11660e38,2020-07-27,POSITIVE -e13b778ae833ca8c5d757c58e4a85bd71e08c05caedbd096e13ec3f7b228b43a,2020-11-15,POSITIVE -ecac903ea62dc1d5446a88330af0a17ce89c7787e5aaf450113a4a426813e3cc,2020-12-24,INDETERMINATE -a05198938c6ca8cd56289c6dba6bb8aaa68dfe8e0d7a37df2fb76e48eeba4244,2020-02-04,NEGATIVE -5e5c743a015ff8d81e2374d5bca1bdf8ed87ce18484fce8cf4062183dde08493,2020-11-04,NEGATIVE -a05198938c6ca8cd56289c6dba6bb8aaa68dfe8e0d7a37df2fb76e48eeba4244,2020-07-27,POSITIVE -5e5c743a015ff8d81e2374d5bca1bdf8ed87ce18484fce8cf4062183dde08493,2020-12-24,INDETERMINATE -2c69bc9b34fb0800a44a702e45019c107dfdc8273b9feb62c9615addc7138bde,2020-01-04,NEGATIVE -94f8607915dff25f013e45fc0642fb9830b0fb25ab0ab46d477eaf1061def379,2020-06-24,NEG -39700d452c77592c9710a4a34c6fe97d6150e26d550a5cfa553b0177d7b23e95,2020-02-04,NEGATIVE -4771bef2c04a34b548b77ea7581cf821152d9dea9c2c85151a07856fe3639314,2020-11-15,POSITIVE -5088c1bc42f5cc6a32cdb92d7524ea06febe006baac86a0fc8986a8ee00602bc,2020-11-04,NEGATIVE -8952115444bab6de66aab97501f75fee64be3448203a91b47818e5e8943e0dfb,2020-03-27,POS -5088c1bc42f5cc6a32cdb92d7524ea06febe006baac86a0fc8986a8ee00602bc,2020-02-04,NEGATIVE -8952115444bab6de66aab97501f75fee64be3448203a91b47818e5e8943e0dfb,2020-03-27,POS -0cce0bd361c46fcde41daebc801da75e21320763dc2b1a5a62d9b28e7c3e1d10,2020-12-24,INDETERMINATE -0b35b06a22779418f775a804f36485f7bc978071d1709ad263a68f4f18117b11,2020-07-27,POSITIVE -72933e3b31f0070af6478edc3becf96e1ee59917620e8c509cf0e6b360e29c02,2020-01-04,NEGATIVE -388c2eafe5afd475492698c0995a2daf157eb3b3be8207391d3a023c97c8c034,2020-11-15,POSITIVE -c32ffef1ae0cabc0576614cb4d2064cea5bd9c0fa13c7b8bb9fb9b4e8ba950a9,2020-11-04,NEGATIVE -f7c2599681e9284ce1c403459e22b730e997d67d16c45c4f593108e8372029a9,2020-06-24,NEG -c32ffef1ae0cabc0576614cb4d2064cea5bd9c0fa13c7b8bb9fb9b4e8ba950a9,2020-07-27,POSITIVE -f7c2599681e9284ce1c403459e22b730e997d67d16c45c4f593108e8372029a9,2020-11-15,POSITIVE -e1bb74a7794720edf4935a8813538e8113491318168b1fa61a0ac3528e7b0440,2020-02-04,NEGATIVE -bd3a797ba948938978965781bd341bc0fc7711ed00e513b9c63a61cf3d916562,2020-11-04,NEGATIVE -8920a14a7f6469b955b114111564cb9736440238d220fc9fd525efdb9a056d3e,2020-12-24,INDETERMINATE -68f10bf021d7734e071e07bbf561aa0f1bfc7974f266f71311b9177b177d39d1,2020-03-27,POS -fb8a0d2da8683cec6cc64542f95ae11e085c72d56c744b2be5be335295976610,2020-06-24,NEG -5ef6514ed3304cf62b950982541114ac352c52729dbf80747775a9d1a733af93,2020-01-04,NEGATIVE -fb8a0d2da8683cec6cc64542f95ae11e085c72d56c744b2be5be335295976610,2020-06-24,NEG -5ef6514ed3304cf62b950982541114ac352c52729dbf80747775a9d1a733af93,2020-01-04,NEGATIVE -20ca98162ba780883712eb701c84e4c06f73aba78e903935a9ad799193b4627f,2020-07-27,POSITIVE -d11501b090fb2749f2c49284394dd36fe0ac76eb1a52cb3bba260dbc119ec46e,2020-12-24,INDETERMINATE -da6813d10025369ac0411363a16ab750adb21c6d0b38a03a9fc5ce58134da875,2020-03-27,POS -84f01dd97c687fb28a296bcc2ef1801446ea7405860595924eb2b5bb634718d1,2020-11-15,POSITIVE -5de664ef205f95d4a68b69b148eecb04f110ac95ef77f4e5158ae315a76ddd8a,2020-02-04,NEGATIVE -2d86377d4cc3e6c85bab00dd407f8c5b657c239c6af3109de6cdf4d418aa2d89,2020-11-04,NEGATIVE -5de664ef205f95d4a68b69b148eecb04f110ac95ef77f4e5158ae315a76ddd8a,2020-07-27,POSITIVE -2d86377d4cc3e6c85bab00dd407f8c5b657c239c6af3109de6cdf4d418aa2d89,2020-01-04,NEGATIVE -18beb4813723e788a1d79bcbf80802538ec813aa19ded2e9c21cbf08bed6bee3,2020-06-24,NEG -d359f8b537f1888bc71fe20b3d79eae6674be7aca9b645b0279c7015f6ff19fd,2020-11-04,NEGATIVE -68e476b5d5aeca7b0e3b5ca867106c32e40cad05a490f6b08a24063cceed7e7e,2020-02-04,NEGATIVE -6e2d4d3a3d4c4bb21b095657230061140c63b1ff4d89d85e32fb9a312319b35f,2020-03-27,POS -068814875fcdfb8faf539ef43cf5d109a22b7cfd28770e90b00be8c48bfc722f,2020-12-24,INDETERMINATE -f89f8d0e735a91c5269ab08d72fa27670d000e7561698d6e664e7b603f5c4e40,2020-11-15,POSITIVE -068814875fcdfb8faf539ef43cf5d109a22b7cfd28770e90b00be8c48bfc722f,2020-11-04,NEGATIVE -f89f8d0e735a91c5269ab08d72fa27670d000e7561698d6e664e7b603f5c4e40,2020-02-04,NEGATIVE -1f09802c4beac758321ae8a9f94d752b0976c7d54baa6e511bba8a7374107bef,2020-01-04,NEGATIVE -cc6bb91d4a9aec9fe2e20ae49fd18166f522a7918a2ff2ecd1c2c35b5d4649e1,2020-06-24,NEG -d40fbd13d527595c47eacbf0d7c87d256139d9d45261c25c2840d30a4756495b,2020-03-27,POS -9d6aa3d89c0171b9c2ccd57e6d41ccec3053d3c3f118386e7f10b89ebaa7b8e4,2020-11-15,POSITIVE -5fbc314fb0b511345465b5b907ec6961328e5e393ff831c8d74912184098bf41,2020-12-24,INDETERMINATE -dd8e8c8c9dae8978f122d7bcf3d0d49f6a0e86b9fc35528f55e78f7408927bb1,2020-07-27,POSITIVE -5fbc314fb0b511345465b5b907ec6961328e5e393ff831c8d74912184098bf41,2020-03-27,POS -dd8e8c8c9dae8978f122d7bcf3d0d49f6a0e86b9fc35528f55e78f7408927bb1,2020-11-15,POSITIVE -0d6f9709edaeba4bebf576d6b886b8c7083374f521f5256bf571add42fc7465c,2020-11-04,NEGATIVE -6bcaea9882504292b2f6ea37a84b215463e71ab73b824ee90ecdc10c8dde71ed,2020-12-24,INDETERMINATE -04edd1d7736883194af3ddb232c337e53d17bc93cfd2140c4f4c4e0d966798b1,2020-02-04,NEGATIVE -621cb5d0bdea9584dc9f7ede1479e7cca67f8d9778d7e3c8c5cb8aa9eaef47ef,2020-06-24,NEG -236b565af6b512826fd89dbbde2e88b94465f780985c134e58b62dea6ee258b2,2020-01-04,NEGATIVE -c57727d64e318e2ea42af2b4c3360999ced134403066d050c980e7c6b70d49e4,2020-07-27,POSITIVE -236b565af6b512826fd89dbbde2e88b94465f780985c134e58b62dea6ee258b2,2020-06-24,NEG -c57727d64e318e2ea42af2b4c3360999ced134403066d050c980e7c6b70d49e4,2020-11-15,POSITIVE -97a6d21df7c51e8289ac1a8c026aaac143e15aa1957f54f42e30d8f8a85c3a55,2020-01-04,NEGATIVE -f8818b67ab25419ad5b1bd61440573498e0785aad6c634c987fe5a637570f464,2020-12-24,INDETERMINATE -c7ce483fd1cc5fd498e7e2a09851c65f89a33a6837f66d9fbb36e5e5f70b41a2,2020-02-04,NEGATIVE -5e74cb2ad4e2c9e2d3f59a1e6c8a5d4999df48e5dd69871d2798e0a146b91ee9,2020-11-04,NEGATIVE -5b4afb8d2ed60a5777760a1cd17fb91b7c940c125cc7f74ae40b75df92036e5b,2020-03-27,POS -8e28c5eb829e92abf7a5a921f42364cbb8b255d7c9861a68a3814a9de95d9d67,2020-07-27,POSITIVE -5b4afb8d2ed60a5777760a1cd17fb91b7c940c125cc7f74ae40b75df92036e5b,2020-06-24,NEG -8e28c5eb829e92abf7a5a921f42364cbb8b255d7c9861a68a3814a9de95d9d67,2020-11-15,POSITIVE -fb84a9739699e1a2c6c56b5baa0a16047a4d845a5c6615ab9e18bafe688f45d6,2020-11-04,NEGATIVE -f3457dabe1b412ed6374d56fe8fe3b969c761b77dcc80ecc0964b7c7641d219b,2020-03-27,POS -1086d35563c495c1cecbce12135cab3b945e01dd185ea2c1dc8ace5ad988977e,2020-02-04,NEGATIVE -de0023e398111d43424845aaeee2e119249cc0567e7b585eaba5f44080b458c6,2020-07-27,POSITIVE -4299da7466df09516d290f7a99c8b7a2fa94766eb94a61c24e1ce8f6ca80af44,2020-12-24,INDETERMINATE -421c0a7b6d0ee1c34e3d78f1685b6d95113fb2f1091919efaab45f1156a4e428,2020-01-04,NEGATIVE -4299da7466df09516d290f7a99c8b7a2fa94766eb94a61c24e1ce8f6ca80af44,2020-07-27,POSITIVE -421c0a7b6d0ee1c34e3d78f1685b6d95113fb2f1091919efaab45f1156a4e428,2020-06-24,NEG -62bfa285013f08807d394266cdf8261dd060a704959ae9c20e4ad262b65da12a,2020-02-04,NEGATIVE -085bcb597bbd610a7f0f955301d0fe3734b92a7144e87f68e8b5beec1a09b55b,2020-11-15,POSITIVE -c403741c4121989ac12c0829be88b8bec6f27b270f3cf8a7be3fe72cba473897,2020-12-24,INDETERMINATE -a917ca757ac59f9d568616140c2f72362fc2722ab277e7b5019008f280f17beb,2020-03-27,POS -fbe697429f16141bc71e3b91f3823641c8dd258dd58bf076241514754954cb8c,2020-01-04,NEGATIVE -e6fcc0253ed7a328a10eb6e2e1ad6abcad60c374c64dbac4b76da610085b43d8,2020-11-04,NEGATIVE -fbe697429f16141bc71e3b91f3823641c8dd258dd58bf076241514754954cb8c,2020-11-15,POSITIVE -e6fcc0253ed7a328a10eb6e2e1ad6abcad60c374c64dbac4b76da610085b43d8,2020-07-27,POSITIVE -60f070e3393291d6f836bf0acdca6138eadc4dd1d168ccaf03ab17cf0464f81b,2020-12-24,INDETERMINATE -793733573a1dfd14a2e889a11b2ad7b6981de29df813863b528dc1ae99416eeb,2020-11-04,NEGATIVE -d4e33e2934280979f580a63f992daa7d0de2cd64a145d5c403a75c3dc5c0004e,2020-02-04,NEGATIVE -be6b5b7140b02bff9ad8fa5aaaeca5973791521c5029c9f6b42390f8b87ce2bd,2020-01-04,NEGATIVE -fcf1e4bf9cc9c1083647b91463e86f49c6961406c37055c7eb8ad13937a519db,2020-03-27,POS -bf7db3a1fea244ba0c173404b5abb382def24d3bc547ca4f410bae2a311cdf85,2020-06-24,NEG -fcf1e4bf9cc9c1083647b91463e86f49c6961406c37055c7eb8ad13937a519db,2020-02-04,NEGATIVE -bf7db3a1fea244ba0c173404b5abb382def24d3bc547ca4f410bae2a311cdf85,2020-03-27,POS -182dc6b90f1c9cd913c39a6b5506f582caba9ddeadafe32f5bdbac25efd705ac,2020-07-27,POSITIVE -284b7e6d788f363f910f7beb1910473e23ce9d6c871f1ce0f31f22a982d48ad4,2020-01-04,NEGATIVE -36c1cc2f9d7022bf6beacb6248a89e7e677b3bf9a91e6457a5ffdbade55b76da,2020-06-24,NEG -3b86df3ff95ad2fd72102e34f3a721f2bdc876e12e3bd1434af8ab4cabbd5547,2020-11-04,NEGATIVE -90b5bc7f03c840b2efddb22ffdfc37dd12cb391b49aa0fc8751726c04d32ff30,2020-12-24,INDETERMINATE -f57b8252cea0e3cad78056cbf96b9fc041279769afd2228f8c9a8a904550aeb0,2020-11-15,POSITIVE -90b5bc7f03c840b2efddb22ffdfc37dd12cb391b49aa0fc8751726c04d32ff30,2020-07-27,POSITIVE -f57b8252cea0e3cad78056cbf96b9fc041279769afd2228f8c9a8a904550aeb0,2020-06-24,NEG -67eab6db6703cdf9acf656bbb09640fcde2ff197786adbd9ae9c14936fc8d159,2020-11-15,POSITIVE -1de4d95a81eb1780d5c21a880a8be6595306670af426e40872b2a03c5cfb9996,2020-03-27,POS -1f594da9b409f7f4b9dc5015a81761b2fc2dd60eec773f74539bdfd30c552c89,2020-11-04,NEGATIVE -55f0124bb79f5c53d868ca45bbb0f4d04da15eea4fb29c6b95087fe8801bf0a3,2020-02-04,NEGATIVE -7595dae9cde82218336a5457ed9d55ec898c51623f73a69eefaa57a2cc9194fc,2020-12-24,INDETERMINATE -fa7aec4efb728534ef32c172197c9560097c6d0e4893fe6b20242a566ef033d1,2020-01-04,NEGATIVE -7595dae9cde82218336a5457ed9d55ec898c51623f73a69eefaa57a2cc9194fc,2020-11-15,POSITIVE -fa7aec4efb728534ef32c172197c9560097c6d0e4893fe6b20242a566ef033d1,2020-06-24,NEG -3de8392541ace28284aca7f2724273739fcf4cf73de276a8ddd3547c0011323c,2020-02-04,NEGATIVE -683d098205b11550f2d71016c82c4377a96c9f808e132f83f15ba9bd058c7b20,2020-01-04,NEGATIVE -85ea151b8c5b5ab0d3349100e441bd4b8dc20740d429c16c3b85b77066386e75,2020-12-24,INDETERMINATE -524148f24802f8c68974c2e1ecc8b8f47d0d60b7a0d1948951c050a25b5a8e59,2020-07-27,POSITIVE -90b0ce469fbd8e30a2862bb24d562dc641c534a9b43c7c33c25cfaefe25e5e47,2020-03-27,POS -fc47b34e36f4032acd1ca2192a7b9b097011ccbfe3d8e27b04bb6999e000578d,2020-11-04,NEGATIVE -90b0ce469fbd8e30a2862bb24d562dc641c534a9b43c7c33c25cfaefe25e5e47,2020-11-15,POSITIVE -fc47b34e36f4032acd1ca2192a7b9b097011ccbfe3d8e27b04bb6999e000578d,2020-11-04,NEGATIVE -fc71f2d6d38dbfc752ecaf2262916dc8ad99a34243d47b34691f9f8a3afaeffd,2020-12-24,INDETERMINATE -1b3c33580f2e2094cbde0bfd58f8008ee6e29c06643ca310222045c82fe0ab0e,2020-01-04,NEGATIVE -ad723f42c7aba316d944f19f340ce47d8e0c6fb354d212736ec4782314a6824a,2020-07-27,POSITIVE -67c312330b0371a0a37c565cf44ef264835147fea61261bf57380f338efcd8c9,2020-03-27,POS -1ad269a743bd01b5bb74f135c332a4acc98ef1a570d966fcd6a801de6d9ae3bc,2020-02-04,NEGATIVE -21900f41ecb7b8e6cfd9250f096aad2fe7f6d8fbec9436b2d28e48c304ff8255,2020-06-24,NEG -1ad269a743bd01b5bb74f135c332a4acc98ef1a570d966fcd6a801de6d9ae3bc,2020-06-24,NEG -21900f41ecb7b8e6cfd9250f096aad2fe7f6d8fbec9436b2d28e48c304ff8255,2020-11-04,NEGATIVE -7b81eb727ed48055fa55c5e03aaa43f27b01bd9b1c8eb38f37a1ca541a79c1f7,2020-02-04,NEGATIVE -3bcc1340d90b3d55accb9a57998b69708fea2a63c39f7369047469f952ccad4f,2020-11-15,POSITIVE -b6b1b469ea43c90a602e7ae3bdea001b11f66c17337dec23df0b0249542357ee,2020-03-27,POS -02c000a36dcd047f5738f5abfda07dc3b6d56fc44ea752c8f45b965f6fc04c1e,2020-07-27,POSITIVE -bda584056eb9957d6c681e00079eff36fec289e2a0432a4221b95438dfef5ca4,2020-01-04,NEGATIVE -f4dd301311d96b70a2ee62a6bccfe21bb0d94a89ca2805333cf352c1a2381c13,2020-12-24,INDETERMINATE -bda584056eb9957d6c681e00079eff36fec289e2a0432a4221b95438dfef5ca4,2020-02-04,NEGATIVE -f4dd301311d96b70a2ee62a6bccfe21bb0d94a89ca2805333cf352c1a2381c13,2020-06-24,NEG -2cfd4b162e427e8e59a2fedf7d5d138eb696d08b98ad9765da0af1690c77b280,2020-01-04,NEGATIVE -3f1bb7c0da3c01e685edd592f3a3ca0b149a399d25b97c0da47118c24a39f59a,2020-11-15,POSITIVE -455ae2dfc77dd77562c06dc893a49d84795a93e4f86ea2e92006940c870ec044,2020-12-24,INDETERMINATE -87e50b28705900bb064d1e9df1bd6cf55a7efa01cc16c6cf0703f491a1f13d44,2020-03-27,POS -3c2308b1bc64683e5aed4111841da5bc3b3295b01a852f1dc4e68510f79dd37f,2020-11-04,NEGATIVE -ed0b853bd9c28435b6aa98fb0780ca80d7d6f72350f76d57aee9509219cc8d61,2020-07-27,POSITIVE -3c2308b1bc64683e5aed4111841da5bc3b3295b01a852f1dc4e68510f79dd37f,2020-12-24,INDETERMINATE -ed0b853bd9c28435b6aa98fb0780ca80d7d6f72350f76d57aee9509219cc8d61,2020-11-15,POSITIVE -86bc00bf176c8b99e9cbdd89afdd2492de002c1dcce63606f711e0c04203c4da,2020-06-24,NEG -c86a2932e1c79343a3c16fb218b9944791aaeedd3e30c87d1c7f505c0e588f7c,2020-07-27,POSITIVE -5480ab857f30bc9abdc0d88179b66cb30b6a294029f8bed71e3b606a19941359,2020-02-04,NEGATIVE -83eaf4dc5e19bcbeb23801e2c3e08c4a89cc82d0a42a903767f9c938d1deac4f,2020-03-27,POS -5f128c8385e577cd1539a0e5a758e4004f4b97e5986b00fb17d393a5ee5ed85d,2020-11-04,NEGATIVE -92a6a32f99def322d70ea1167a99c6859ab4e8bbc593b997ec5994d244a82475,2020-01-04,NEGATIVE -5f128c8385e577cd1539a0e5a758e4004f4b97e5986b00fb17d393a5ee5ed85d,2020-12-24,INDETERMINATE -92a6a32f99def322d70ea1167a99c6859ab4e8bbc593b997ec5994d244a82475,2020-11-04,NEGATIVE -9f6cb78c09b22a1a10564f6be4a1784327a42ff11a10a31d355435db59f44710,2020-06-24,NEG -d62a7b3da232bd0ac1f7520a3b5bb57b171aec57f960f55b47b1987d4e398f68,2020-02-04,NEGATIVE -24be8ee76308afb924abfaf26212411f2b66e53b9ce2534e5c9f88354c88cc39,2020-03-27,POS -fc9e91cc78e1817d80b4ba8c2dc9a638d0c57959825ee34f5e3d7688ad80dfb9,2020-11-15,POSITIVE -316c0f93c7fe125865d85d6e7e7a31b79e9a46c414c45078b732080fa22ef2a3,2020-07-27,POSITIVE -81f27f8a7d8766c72c0307a31327c1fad9007c6c3d33724ad2a5c0a8fe0df33d,2020-01-04,NEGATIVE -316c0f93c7fe125865d85d6e7e7a31b79e9a46c414c45078b732080fa22ef2a3,2020-01-04,NEGATIVE -81f27f8a7d8766c72c0307a31327c1fad9007c6c3d33724ad2a5c0a8fe0df33d,2020-02-04,NEGATIVE -4b8ba4b13094beaef100d3eb7d4c8e23600c30be4420c47e0d6b4e88dbd70abb,2020-11-15,POSITIVE -09eac95eb995b821f45353054da3c7eec5f5171fb061de72f1890679956b12a8,2020-11-04,NEGATIVE -9ae8f17cfc8ba7fd8fb34b2a194ef965a3b36a40839a46eeab1350e916692ac9,2020-06-24,NEG -6f81082badfd007354ac6ebb78adaa04bfedf9a1fb9a01909788bad472008ea3,2020-12-24,INDETERMINATE -bf31e6128301d31bb4014faf6b1e0f05f3ab8877cb55ce3d1ab3230d2ea8a220,2020-07-27,POSITIVE -172e1676eda470ede17e9d491554bcbe97ba4691f92880064c8cb29ec35a467e,2020-03-27,POS -bf31e6128301d31bb4014faf6b1e0f05f3ab8877cb55ce3d1ab3230d2ea8a220,2020-11-15,POSITIVE -172e1676eda470ede17e9d491554bcbe97ba4691f92880064c8cb29ec35a467e,2020-06-24,NEG -00bebc5be79d19e1b8b3f250dc39aebfa9a054baf5f8d61380438d92394c476a,2020-11-04,NEGATIVE -12f26af0dcdfae8fe4331d6a4c369edd549220cdeb119b3b1831b2a2cf77f281,2020-02-04,NEGATIVE -f4466a4b51d21014b34f621813a1ed75f1c750ec328d908d9edc989c64778962,2020-01-04,NEGATIVE -63db0204e2f34aaadace364d046ef5d7614b8cb287b939e55ac05c53aee90de1,2020-03-27,POS -2782526eaa0c5c254b36d0c90e1f8c06af41d167a8b539bd3c81cd6d155e7e5f,2020-07-27,POSITIVE -cebe3d9d614ba5c19f633566104315854a11353a333bf96f16b5afa0e90abdc4,2020-12-24,INDETERMINATE -2782526eaa0c5c254b36d0c90e1f8c06af41d167a8b539bd3c81cd6d155e7e5f,2020-02-04,NEGATIVE -cebe3d9d614ba5c19f633566104315854a11353a333bf96f16b5afa0e90abdc4,2020-01-04,NEGATIVE -34e2ad7b31cd9ee87c038c10fd6fbe310314ba67abb73a686f0d1087267d7a1d,2020-11-15,POSITIVE -a4c6af0cb6f02dff01ba174e4cf11f24f73d9ed16ca7a1e3c9d831c0139faa5c,2020-07-27,POSITIVE -1c8dcc518b9942ef52885666bfb82260c287afbbeebb71e741b1262099424f11,2020-11-04,NEGATIVE -10ba045e9ee40807e57f6093280b9fa9eaf640ba4955e340ae4c749382ad96fc,2020-03-27,POS -bb9b8ef813475d1e0ad84e2505af6656d16c990b1f77efaf9324e8fbcae2db67,2020-12-24,INDETERMINATE -162753c27c8b32975a0edf5e89ab4ed8e2f06f02a182e0f181481cc050fdcc72,2020-06-24,NEG -bb9b8ef813475d1e0ad84e2505af6656d16c990b1f77efaf9324e8fbcae2db67,2020-07-27,POSITIVE -162753c27c8b32975a0edf5e89ab4ed8e2f06f02a182e0f181481cc050fdcc72,2020-11-04,NEGATIVE -c2077253a9b10166e7c8ffda8f2377456f332029eea3d27def7fb2b23502c0d4,2020-11-15,POSITIVE -1c63ed9164d61acfd1f4f3a7b6dfacbd98d1dc01e755b7b558c6af0491154a2e,2020-12-24,INDETERMINATE -fc4fb94d36f45aa9d13358022455e55db4b6f0eb536a1b2897c90dfd3df9eb9b,2020-03-27,POS -4cc3d9cba4633096fadf09ea1106b4b321ab81b1d461c3d6994f0e303f631249,2020-06-24,NEG -8b7fb6aee1c63e17f44f935a6b64e05920ddad65327de1cb5e6994a6a3f0b618,2020-01-04,NEGATIVE -a6c2a2325dfd588f202a240a06ccb2b037854e7097a303fc8991ecc15501528c,2020-02-04,NEGATIVE -8b7fb6aee1c63e17f44f935a6b64e05920ddad65327de1cb5e6994a6a3f0b618,2020-11-15,POSITIVE -a6c2a2325dfd588f202a240a06ccb2b037854e7097a303fc8991ecc15501528c,2020-06-24,NEG -11f8e31ccbdbb7d91589ecf40713d3a8a5d17a7ec0cebf641f975af50a1eba8d,2020-12-24,INDETERMINATE -677fe64a8ea7e98a420d129f1cf3d4d23a9f107e9fbe8d83efe95f093001cd54,2020-11-04,NEGATIVE -d6723fa996ced47773f2dea29cce9b11f951e6dafe321a84ac7d32791c3b4660,2020-01-04,NEGATIVE -99ee50221221864d50c60baea6f14d8ac2e235cc6e78be6088cd40cc97fca394,2020-03-27,POS -290a0b92873bdf4e47986dc5208037bad7527653bff700dc53c1e57eb98103c1,2020-02-04,NEGATIVE -47fec9f491173c57c1d5b35dfefdb69cba6bd61bfbadea64015a65120efa15a0,2020-07-27,POSITIVE -290a0b92873bdf4e47986dc5208037bad7527653bff700dc53c1e57eb98103c1,2020-12-24,INDETERMINATE -47fec9f491173c57c1d5b35dfefdb69cba6bd61bfbadea64015a65120efa15a0,2020-11-15,POSITIVE -769e881d85fc5d27cb4cbc8382200d95b179cfdeb56e0b439da737069eaf8a5a,2020-07-27,POSITIVE -e4e549408422875958476160732390defefcac7c2bd8353d918fe452d20de2a6,2020-02-04,NEGATIVE -bd94717d91260895035088525e817ea10375454f03aa3bd8b28b355a4cee22c5,2020-01-04,NEGATIVE -1706be6c293444756e72b05e4afa9eb1038e552ac6ce058309451ef7ddad7748,2020-03-27,POS -92c5fd0421c1d619cbf1bdba83a207261f2c5f764aed46db9b4d2de03b72b654,2020-11-04,NEGATIVE -4ec24a2d7f1dfae1f98882eabf0400cd9483dd2de78b926b625c46e8787f3816,2020-06-24,NEG -92c5fd0421c1d619cbf1bdba83a207261f2c5f764aed46db9b4d2de03b72b654,2020-07-27,POSITIVE -4ec24a2d7f1dfae1f98882eabf0400cd9483dd2de78b926b625c46e8787f3816,2020-11-04,NEGATIVE -2499d690642faa4da2a67b078236d1c031217f3c31cf2da2142c8e84e3d617f1,2020-02-04,NEGATIVE -9b09d7f65345fc85aaa8814b69f3c933ce5eda41786f0c1df1b1ab2b1fdd2ecc,2020-11-15,POSITIVE -40f8d6d22b99ea3388538fd60bbf532256434b0eac401df1d9a2bdbb29354ae8,2020-01-04,NEGATIVE -2e00b312b0a9681bef09f9085a4e918b8fceb0c0b1c043dc17c90beef5fa446c,2020-06-24,NEG -d536a8c1664fec0bc85615cf3cb2645871e8b2935c9642c534c67ac85315cd35,2020-12-24,INDETERMINATE -6c0f3412848008d49d186d5fad7fd1482656cfb62ad3c060a14e41c3fb3f1b43,2020-03-27,POS -d536a8c1664fec0bc85615cf3cb2645871e8b2935c9642c534c67ac85315cd35,2020-02-04,NEGATIVE -6c0f3412848008d49d186d5fad7fd1482656cfb62ad3c060a14e41c3fb3f1b43,2020-01-04,NEGATIVE -02837c1944876b4fa860432c13f2d9b11a7fd94dae707c4143d1217dee66fc43,2020-11-04,NEGATIVE -d829857eb1366e70be857a69886d1555af0d32681beab068afb93492c2e2b843,2020-07-27,POSITIVE -74de057f768beb42de17ffc4b8a56100f0bed85947ecacaef111e3d3ec997950,2020-12-24,INDETERMINATE -68c6c6e9ad314d1a5c4d647cfb6ed84265e47cbc2a05a54fb58ae74c0085ef29,2020-11-15,POSITIVE -5c3e9040008c91509e2d28e5308034b677d4e2cc0b386863d4883bdb747eba1c,2020-03-27,POS -9dcbe7e30f0bd60827341113108a55f86b604f921e0792418a9810075dbf3d22,2020-06-24,NEG -5c3e9040008c91509e2d28e5308034b677d4e2cc0b386863d4883bdb747eba1c,2020-02-04,NEGATIVE -9dcbe7e30f0bd60827341113108a55f86b604f921e0792418a9810075dbf3d22,2020-06-24,NEG -30e4c02268d49ca010e3c62fcc2615da2fad4cf0c359eb8fedc0366739b34205,2020-11-04,NEGATIVE -7c3d90003d7d645be0b5f3782533c198a5d5dee06870420b4d594976ed857fc3,2020-03-27,POS -509694b0a010c6431900e71b8210521af57d39ce8e64deb365f0a5c6c9a2ef6d,2020-11-15,POSITIVE -81defd9e2e8f85c7f09874bbe5b8d9a9a5503c6d915a3afe4b65758f28d71fb7,2020-07-27,POSITIVE -367461e6dd07bdb57342cb64b2a8d8e0fa13c53842a95ec20a90d35bdd6eb77f,2020-12-24,INDETERMINATE -c2a181d8178a9f753b013fc4bb892ceeb5dc5bcb763352610844b93341ea52a4,2020-01-04,NEGATIVE -367461e6dd07bdb57342cb64b2a8d8e0fa13c53842a95ec20a90d35bdd6eb77f,2020-06-24,NEG -c2a181d8178a9f753b013fc4bb892ceeb5dc5bcb763352610844b93341ea52a4,2020-12-24,INDETERMINATE -1a42d5267aba37d7057cadd672fefef04771be2476eeee231d6f56a8e1f57733,2020-11-04,NEGATIVE -2b9449f314bf93145f8122906d8dc56c4ca1f116e6db7ad2768d6f9ade29b31e,2020-02-04,NEGATIVE -bc8db39f614342b78a67494dbece216d3726f6924b73563be34fc630ac1db7f5,2020-03-27,POS -234666d765f4c0a26cf4d96eced9155888477cb9b19e8cb48ae4ea79ce1b28de,2020-11-15,POSITIVE -75f7313c20144e39edcf57a14733d074aee0c482320d5178ee0ef2f2608c2996,2020-07-27,POSITIVE -ccbcd0d62f439eacea8b0fa4139d934d2782bae1b8046e8764e598dc64a9f421,2020-01-04,NEGATIVE -75f7313c20144e39edcf57a14733d074aee0c482320d5178ee0ef2f2608c2996,2020-07-27,POSITIVE -ccbcd0d62f439eacea8b0fa4139d934d2782bae1b8046e8764e598dc64a9f421,2020-11-15,POSITIVE -0df5486b7bca884d5f00c502e216f734b2865b202397f24bca25ac9b8a95ab4a,2020-02-04,NEGATIVE -a15faf6f6c7e4c11d7956175f4a1c01edffff6e114684eee28c255a86a8888f8,2020-03-27,POS -42c6024940120036d7a0103375d5b8e5072589f6d0f9a1a8e7f6eb6a17358675,2020-06-24,NEG -0c658eb5d61e88c86f37613342bbce6cbf278a9a86ba6514dc7e5c205f76c99f,2020-01-04,NEGATIVE -6165d33e490f91dbf808b194904d4f07c550d5e3a19c9e776e0c895136ec9fa2,2020-11-04,NEGATIVE -64d095f2fecfdeb907dae5403b10966c4ae755b7598aa078cb932e345bd0b5d0,2020-12-24,INDETERMINATE -6165d33e490f91dbf808b194904d4f07c550d5e3a19c9e776e0c895136ec9fa2,2020-07-27,POSITIVE -64d095f2fecfdeb907dae5403b10966c4ae755b7598aa078cb932e345bd0b5d0,2020-03-27,POS -d3b913cdf3e8a79786216cc7bbd15fc27f86a7be516f3e14c909b86b7f9eb241,2020-01-04,NEGATIVE -8b80f49ec2822cb3cdbe97d9405e39ae40ba418b084c06604b51e2a5af11a7f8,2020-11-15,POSITIVE -a8cee66e4788af8b855979155e486c988d84a42aba71e43a0fc26997ca12e737,2020-11-04,NEGATIVE -a7f0b84de7a450eaf6ffab449cb0f141b69eb701ffb455f375c3dae4277b25c1,2020-02-04,NEGATIVE -b6bc077d6675a7c8cc9e2fa5a08c86ba59b675d69af118052bb390c3cf11e5e0,2020-06-24,NEG -f15223dcc0da90206acdce51c6a9e24938b18665165a819f1abb69233c068cae,2020-12-24,INDETERMINATE -b6bc077d6675a7c8cc9e2fa5a08c86ba59b675d69af118052bb390c3cf11e5e0,2020-11-15,POSITIVE -f15223dcc0da90206acdce51c6a9e24938b18665165a819f1abb69233c068cae,2020-12-24,INDETERMINATE -b967fb22d506bda1b4d8a878f46c85862f5d71bb7669ecc6b0fe65f5ad19f844,2020-06-24,NEG -afccd937e6ac2d1b6d6e9f318bc5e8a179c977c7413b33b3e4d902ff8cec501e,2020-07-27,POSITIVE -c78961d3d782d8a85d9344eedae027f43ce6b9fd35c8f355861a39e0d0ddecc5,2020-11-04,NEGATIVE -aaee0ce51abf0849e68b257ab97d83a36d9d082916b939cd1012f27d7f6bb873,2020-01-04,NEGATIVE -a67063986e67b7ddd107229ba9d480ee3a02f9d59732d4bc03b2d97d27a1310d,2020-02-04,NEGATIVE -04222ea3e14cb1209b9726defe3efce5196b7afa0a959854a30401be41f4026d,2020-03-27,POS -a67063986e67b7ddd107229ba9d480ee3a02f9d59732d4bc03b2d97d27a1310d,2020-11-04,NEGATIVE -04222ea3e14cb1209b9726defe3efce5196b7afa0a959854a30401be41f4026d,2020-11-15,POSITIVE -12132cd6767ee325d35883d25c0b7f5e1d142d60d33c563c39cea29984dcea57,2020-03-27,POS -f7b856c054de7ccced087ad4f9413380ec494e40abc818b840aaad990ca3c5bc,2020-06-24,NEG -afa472a961fbcb09314e81b2c3eb19cd2d9fd7527582f43a3b8fd9d3ed6d893d,2020-12-24,INDETERMINATE -9168e847861429230da331e23aa7983862033165c1ce3fe5f6d29a76c04c8a07,2020-02-04,NEGATIVE -d15e7843961ed4bfa3e08a80b882c74670e9e9347ea55325cbc1be93c7f54edc,2020-01-04,NEGATIVE -089ee14b926fabea6dd95890032d1a37e69c1011c710977af774ec3a7b5b39a6,2020-07-27,POSITIVE -d15e7843961ed4bfa3e08a80b882c74670e9e9347ea55325cbc1be93c7f54edc,2020-03-27,POS -089ee14b926fabea6dd95890032d1a37e69c1011c710977af774ec3a7b5b39a6,2020-11-04,NEGATIVE -54006483f014c53f76d879c033e5589a76e0080d8ced5d818d777344eb78656f,2020-11-15,POSITIVE -3daebbc6dfd81355f1cc9d9565ab4a4a53bda47f6117529409acc7acb55556bb,2020-06-24,NEG -eaf89db7108470dc3f6b23ea90618264b3e8f8b6145371667c4055e9c5ce9f52,2020-02-04,NEGATIVE -0e78437805639c14d6413de94c031fd1babdb561b7728d31ae06bfc5ff1766d4,2020-07-27,POSITIVE -28955b1fb53203e2ff246fd2d4c3e148d4666a617469cdcc86060985682ab4bc,2020-12-24,INDETERMINATE -3da6ee6699da1eb52d358aa59b8e1cf6b5d77db224b4cec0faaa540610fb3b2e,2020-01-04,NEGATIVE -28955b1fb53203e2ff246fd2d4c3e148d4666a617469cdcc86060985682ab4bc,2020-03-27,POS -3da6ee6699da1eb52d358aa59b8e1cf6b5d77db224b4cec0faaa540610fb3b2e,2020-12-24,INDETERMINATE -5620e84be3e5141819e0d9e4ba10b782ba40e232e56352ed636dc0282161b543,2020-11-04,NEGATIVE -ff108b68b0e9bc1e5a744f80f9ef1b8575c7d041eeb3e8d2eae300347de6e7fc,2020-01-04,NEGATIVE -9e04a49e5786695116f9af28552da3083d4eeb015294b878d27053439e363cdf,2020-02-04,NEGATIVE -82607c98dec8f45ac84e7eae445d8da60d05706ee7405a9a53b0c914b488f1ab,2020-11-15,POSITIVE -35a9e381b1a27567549b5f8a6f783c167ebf809f1c4d6a9e367240484d8ce281,2020-06-24,NEG -1a6d9c97798d8997f85ed9228296d533be6b47f97217709d7e2b628e21800220,2020-07-27,POSITIVE -35a9e381b1a27567549b5f8a6f783c167ebf809f1c4d6a9e367240484d8ce281,2020-03-27,POS -1a6d9c97798d8997f85ed9228296d533be6b47f97217709d7e2b628e21800220,2020-07-27,POSITIVE -0b0fc3be2ee8d1d33518036b0f38402ee7bc022380a0b9653886019d38acd128,2020-11-15,POSITIVE -74332c78b10e3ee51ac4a3c18ccc15c1b6c9807b3ca609969de5e3c361573dfa,2020-02-04,NEGATIVE -23c5910b8b10cfa86e40099cf01e5c2b36f4dd0a903f0c60e5517ea177f4d390,2020-06-24,NEG -724213d95916de041564e5d39c2373585dc15855743a42a5841d849b9f3716de,2020-12-24,INDETERMINATE -f7abf2a084c3668c7b90654bf01205085e5d0219ffad0564904e5c923af11523,2020-11-04,NEGATIVE -4d5e5deb0353d3a6c0b5cf97de0a23087a56796a3474ee500edbe4676c3b9716,2020-01-04,NEGATIVE -f7abf2a084c3668c7b90654bf01205085e5d0219ffad0564904e5c923af11523,2020-01-04,NEGATIVE -4d5e5deb0353d3a6c0b5cf97de0a23087a56796a3474ee500edbe4676c3b9716,2020-03-27,POS -ce02d4b6d1aceeea96a562c10923d590607df6182b4a3405ad10be85b6354787,2020-11-15,POSITIVE -1a1cf797fabe7f95836fabeca626907c77b3e6c9aff7c2290b396a238c69362e,2020-02-04,NEGATIVE -096012b7ebcaf56d1d63b2784d2b2bbdeae080d72ad6bd1b9f7018e62a3c37d0,2020-12-24,INDETERMINATE -dccb3c52e7c79f7033e1ea06eadf92fd90bfd7b0b5737dc0c2511a0e163872f5,2020-11-04,NEGATIVE -d1c78c9aa5dcb0991f46b25fbaaa359d7d5823ac7a2a94c4d4a31da42a26c24f,2020-06-24,NEG -f0ccd8e78b618cb55731054911af540b5496f37e94026cd20dae22363089b2e9,2020-07-27,POSITIVE -d1c78c9aa5dcb0991f46b25fbaaa359d7d5823ac7a2a94c4d4a31da42a26c24f,2020-02-04,NEGATIVE -f0ccd8e78b618cb55731054911af540b5496f37e94026cd20dae22363089b2e9,2020-12-24,INDETERMINATE -fce86e339dc3131c489202ec3b6c8d4319c61f152b3541ba0e4141e5d5c3fac3,2020-11-04,NEGATIVE -d72a11d264e746464ed45f73e1ec058e33ad40270c79324be171932d834d11f3,2020-03-27,POS -0b06d2ffebd5c025cf444cb95a73e1fff046569238eafd1e80f511ea2a807de3,2020-11-15,POSITIVE -313c938e0103b56b43632b702e3e63447fab1f90a4fe890ca5abb7a6cf8830ee,2020-07-27,POSITIVE -477d8dffaf92d265c56dca496167d71bfc1c34f443bc9a6677009963e6e99706,2020-06-24,NEG -76ba652cbd2ef1931d0546ac1c9d8f12d21c81fad272b754975a0b1561dda275,2020-01-04,NEGATIVE -477d8dffaf92d265c56dca496167d71bfc1c34f443bc9a6677009963e6e99706,2020-01-04,NEGATIVE -76ba652cbd2ef1931d0546ac1c9d8f12d21c81fad272b754975a0b1561dda275,2020-03-27,POS -96da2f8885ba92c9ca4d34bb763a3bc9e19017f0df6424956d61f45abdc7f241,2020-11-15,POSITIVE -96bb293aaa330ef307ee004448b92b75ffdc25ade2831ed23fc60ffa97fffb7f,2020-12-24,INDETERMINATE -7b2c21ead1522776414b5a256722903b465fd0c8e029005fcd865144a429da52,2020-07-27,POSITIVE -edbad80a93adb5830afc3fccfe0e7c27a81359b59bb2a8c277f95d4adec7c389,2020-02-04,NEGATIVE -af5422f824076084bed9b8a09086ac59f0ed8c74eea7b189d2809b198ba1f6ee,2020-06-24,NEG -f391e014b2ee3a42955272b8fc78634de1d5833e0cacb412b180376f9c756e49,2020-11-04,NEGATIVE -af5422f824076084bed9b8a09086ac59f0ed8c74eea7b189d2809b198ba1f6ee,2020-11-15,POSITIVE -f391e014b2ee3a42955272b8fc78634de1d5833e0cacb412b180376f9c756e49,2020-02-04,NEGATIVE -7a84ae249fa744b8c1acb6c5247c2cf443e31870aa7217f4a9cd9b157dbd54ef,2020-01-04,NEGATIVE -7a9b1b9dd2e433fc1fc962c38ad571bf1ebb49cb365bfdfb2c36d3f059d6fdd5,2020-11-04,NEGATIVE -10e4e7caf8b078429bb1c80b1a10118ac6f963eff098fd25a66c78862ae5ebce,2020-03-27,POS -43d244581aa23a744de9d775979165eb226a80e2cce6c0d0885412c9b6a0dbdf,2020-12-24,INDETERMINATE -a807c0dc0a5b5ea4a70b12ba52ead3d30922e1eac15c396ccfdea715a2f15396,2020-07-27,POSITIVE -10716564f7bea47036cae9a39adc7dcd395850714228939a2b508d4e57d61824,2020-06-24,NEG -a807c0dc0a5b5ea4a70b12ba52ead3d30922e1eac15c396ccfdea715a2f15396,2020-06-24,NEG -10716564f7bea47036cae9a39adc7dcd395850714228939a2b508d4e57d61824,2020-11-04,NEGATIVE -209eb5f20ab018ff6f1e42b98e5b57921aa4e2b7a7b683de32458b7153720a28,2020-02-04,NEGATIVE -93c3755d0c9030cd90f0e6eae6870a8497730f89b7fd0cf231adef048d2b524d,2020-03-27,POS -130790feced08212eed7d1490dd4d7abf138543be61a4744a03f69ecb9609764,2020-01-04,NEGATIVE -33eb7e4ae43f9873d9c84c0f07b055946b24a71ca27daa60acbbf95b44c7c5e0,2020-11-15,POSITIVE -501a4e61aa4f7737df0305124a39119b79a6449d2bfcc6f026da0197af2ae60b,2020-12-24,INDETERMINATE -cef5838d118dccd9de488f16a934cf10a82303577b62888b7ff6f84114827e58,2020-07-27,POSITIVE -501a4e61aa4f7737df0305124a39119b79a6449d2bfcc6f026da0197af2ae60b,2020-01-04,NEGATIVE -cef5838d118dccd9de488f16a934cf10a82303577b62888b7ff6f84114827e58,2020-02-04,NEGATIVE -7f3ee9fe1fbf452b0c242614e1cad18b6dce034e5bc80763dff6332e872ad2ff,2020-11-04,NEGATIVE -fd0f7e53c5b02b688a57ee37f3d52065cb168a7b9fd5a3abd93d37e1559fbd30,2020-12-24,INDETERMINATE -7125e777a6b199fc4e8c2a0d024215e393c06bf775c217a5f2d8d1a6a7c98d96,2020-06-24,NEG -db9351a297a7362b3c913ac8de77bd9a1ccc0d61bada939db15a315f5e8113fc,2020-03-27,POS -3d34f102d1708fc5edd3111144f78764b4d7b745cb5450815780545495df1e68,2020-11-15,POSITIVE -6cb6d4b2fa122bf8bd63280061e4a230565fdec3ce03268caa2f48ccd931c691,2020-07-27,POSITIVE -3d34f102d1708fc5edd3111144f78764b4d7b745cb5450815780545495df1e68,2020-06-24,NEG -6cb6d4b2fa122bf8bd63280061e4a230565fdec3ce03268caa2f48ccd931c691,2020-01-04,NEGATIVE -19e68d9fe08f7c4ac18948bf437400f955359b1cf21a86544342427695c3c938,2020-07-27,POSITIVE -de498b9901677f58da56b38a515db0a6a3b93840bde5fd0b74437502163e9fb1,2020-12-24,INDETERMINATE -12e967ca0f368d0d8511518c58c6929146650bb1babce4448263e67722dd0161,2020-11-15,POSITIVE -929f003731a97f915d11893c6652bbc7db0b36118eb4357cc721f7f68aeb25ff,2020-11-04,NEGATIVE -7fc81a57656ec055615121454cb5343aaf3db93c762fe310d976e5fe8d05e66d,2020-03-27,POS -f0cbba2470c7c8706fe77e8d88e947ed8c33100409ffb51ae1af99af7d3077a8,2020-02-04,NEGATIVE -7fc81a57656ec055615121454cb5343aaf3db93c762fe310d976e5fe8d05e66d,2020-01-04,NEGATIVE -f0cbba2470c7c8706fe77e8d88e947ed8c33100409ffb51ae1af99af7d3077a8,2020-12-24,INDETERMINATE -3097fc802d49355a0a256d4b07ab9f7257fcf35077cdb8133d59f607fedb229e,2020-11-15,POSITIVE -c0cc3b36d8f848d56fbf95b8259dd6f3bf80707e436233a6bfc2667b49e28c8a,2020-06-24,NEG -22cdd352056c42ac1a6d01d6bd4f8e8ed1c27fb9addc6e500a59f88b57e4612a,2020-02-04,NEGATIVE -02f99d2002c703f1669e358989f1663e1e38e96297dcb3bb70fb67b0d74fb877,2020-03-27,POS -eb0c9cdc0862653468dacc6a876a0c40e9d642c50f798bae1162fe27f18d482c,2020-07-27,POSITIVE -ee9d527a0a6108477fc5c98cf2a00f65d38c8e8508c4d17c1c11b2441c78a2ec,2020-11-04,NEGATIVE -eb0c9cdc0862653468dacc6a876a0c40e9d642c50f798bae1162fe27f18d482c,2020-12-24,INDETERMINATE -ee9d527a0a6108477fc5c98cf2a00f65d38c8e8508c4d17c1c11b2441c78a2ec,2020-03-27,POS -c62ce8b4e927f02f91742ab99d269a17e05d47f12b2275cec9d353e711ddc218,2020-01-04,NEGATIVE -8f97d9164b8fa131f0361abbe49fe706d3abfd77663ed7939ee20d361a0c6a67,2020-06-24,NEG -8b6cd7c429e83373dbd412f43d7422c0c4a127d93d0f2ad15909f0c2a3e7b320,2020-02-04,NEGATIVE -d2e655334ee2e4841be477484381df1617a8b891adc04cbc536cc1bed229d713,2020-11-15,POSITIVE -5b7c4e75c9485e2e988dce7c57bd9e9915a74217914e7d7a1f13955367db0899,2020-07-27,POSITIVE -8a9a02d73aeefd97306a08c30969a9e8d5ef03960978a1c5db4447558d40f689,2020-11-04,NEGATIVE -5b7c4e75c9485e2e988dce7c57bd9e9915a74217914e7d7a1f13955367db0899,2020-01-04,NEGATIVE -8a9a02d73aeefd97306a08c30969a9e8d5ef03960978a1c5db4447558d40f689,2020-11-15,POSITIVE -062f50753b9095ee2eff40f888d93e61f2ffeb661bb126d15229f03e0463bdb4,2020-11-04,NEGATIVE -b543b2a3edcc48cc0f9d7159522673384b34fbce51920d75df4d0c184dd89b18,2020-12-24,INDETERMINATE -46f9d22816179479bd27b0036854788327eedf3f6f5d8dcb866b976e17cc9715,2020-06-24,NEG -a73ab888363736220eb589458721088241ee10059b1f5898a13fe9c2e14fcd8c,2020-02-04,NEGATIVE -30e26cef13a6dbbf0e3035f8c16f55670f4e468e97ac7dad43798621da636abf,2020-03-27,POS -f1916530dae6514fd8ba7c17eadab5ba6739cbd9190b7f967adbe8744748c539,2020-07-27,POSITIVE -30e26cef13a6dbbf0e3035f8c16f55670f4e468e97ac7dad43798621da636abf,2020-03-27,POS -f1916530dae6514fd8ba7c17eadab5ba6739cbd9190b7f967adbe8744748c539,2020-07-27,POSITIVE -4f97f2eebf92cde58c103466712fa2f65b10d06ff8f1934d78ff592fa0575e27,2020-12-24,INDETERMINATE -52efd2aad05d27e3eac3665b82f2bffa6da52351ce871c1c28e4ba69b40ea3e6,2020-02-04,NEGATIVE -28096b238fafbfd5abdb8ddf4e7f5a2c67196cfd8b5d49a196012d0269a2189f,2020-06-24,NEG -f44b7809595e5ebe3bb4d65e0cdd1ebbb41b29f5ab8fd73b2b6aef8e8691a62e,2020-01-04,NEGATIVE -3bd625f07792e885b5a4b5f0b9005a5b53a56a610efa2c27cd923aed53a6a4b5,2020-11-04,NEGATIVE -000f21ac06aceb9cdd0575e82d0d85fc39bed0a7a1d71970ba1641666a44f530,2020-11-15,POSITIVE -3bd625f07792e885b5a4b5f0b9005a5b53a56a610efa2c27cd923aed53a6a4b5,2020-12-24,INDETERMINATE -000f21ac06aceb9cdd0575e82d0d85fc39bed0a7a1d71970ba1641666a44f530,2020-06-24,NEG -be4b2f45069c180ef309521f6770146920df18e69165c577dc7ff8e5a7c34465,2020-01-04,NEGATIVE -5e968ce47ce4a17e3823c29332a39d049a8d0afb08d157eb6224625f92671a51,2020-11-04,NEGATIVE -a829c72c42755e384141ad8f163e4965ef5c9f8f0e07378c1d05a7222af0dd80,2020-07-27,POSITIVE -46db1ca7f3598c26c3e6c8d99e3ed95d2b1c76db040b8f8cd29af723ee086077,2020-11-15,POSITIVE -64d94c866dffad6dab67498f5ed9cdf32a6e747e2c17e58d2535f549f7976cb0,2020-03-27,POS -eaa1938017b2d55e02387d0837e1b56bc124ae8a17624e10e366bae6c4b9c834,2020-02-04,NEGATIVE -64d94c866dffad6dab67498f5ed9cdf32a6e747e2c17e58d2535f549f7976cb0,2020-11-04,NEGATIVE -eaa1938017b2d55e02387d0837e1b56bc124ae8a17624e10e366bae6c4b9c834,2020-12-24,INDETERMINATE -c49b60838c5c6ddf34806b6b3f56b51516842cb1cead54a903f55d9c6d73c76d,2020-07-27,POSITIVE -62f6d46c48c7d9ff3d09a408d0ec880f167a5dc9c8fd343a4e56e96318349583,2020-01-04,NEGATIVE -c62510afc57db491f9f993387b76dd9a7d08f09c01326953904b6586c19c4b8a,2020-06-24,NEG -bdc5d8a48c23897906b09a9a3680bd2e9c8b3121edbda36f949800f0959c8d55,2020-11-15,POSITIVE -fa88d374b9cf5e059fad4a2fe406feae4c49cbf4803083ec521d3c75ee22557c,2020-02-04,NEGATIVE -6a97982dccf77dd3dafa27fcbdf75c017301f730ba186b1d9e8ea212eee73f54,2020-03-27,POS diff --git a/carrot/data/test/inputs/Demographics.csv b/carrot/data/test/inputs/Demographics.csv deleted file mode 100644 index 88ea8fa9..00000000 --- a/carrot/data/test/inputs/Demographics.csv +++ /dev/null @@ -1,1001 +0,0 @@ -PersonID,sex,date_of_birth,ethnicity -16dc368a89b428b2485484313ba67a3912ca03f2b2b42429174a4f8b3dc84e44,M,1951-12-25,White -37834f2f25762f23e1f74a531cbe445db73d6765ebe60878a7dfbecd7d4af6e1,M,1981-11-19,Black -454f63ac30c8322997ef025edff6abd23e0dbe7b8a3d5126a894e4a168c1b59b,F,1997-05-11,Indian -5ef6fdf32513aa7cd11f72beccf132b9224d33f271471fff402742887a171edf,F,1975-06-07,Bangladeshi -1253e9373e781b7500266caa55150e08e210bc8cd8cc70d89985e3600155e860,F,1976-04-23,White -482d9673cfee5de391f97fde4d1c84f9f8d6f2cf0784fcffb958b4032de7236c,M,1966-09-29,Black -3346f2bbf6c34bd2dbe28bd1bb657d0e9c37392a1d5ec9929e6a5df4763ddc2d,F,1956-11-12,Asian -9537f32ec7599e1ae953af6c9f929fe747ff9dadf79a9beff1f304c550173011,M,1985-03-01,White and Asian -0fd42b3f73c448b34940b339f87d07adf116b05c0227aad72e8f0ee90533e699,F,1950-10-31, -9bdb2af6799204a299c603994b8e400e4b1fd625efdb74066cc869fee42c9df3,F,1993-09-07,White -f6e0a1e2ac41945a9aa7ff8a8aaa0cebc12a3bcc981a929ad5cf810a090e11ae,F,1976-04-23,White -b1556dea32e9d0cdbfed038fd7787275775ea40939c146a64e205bcb349ad02f,F,1997-05-11,Indian -6c658ee83fb7e812482494f3e416a876f63f418a0b8a1f5e76d47ee4177035cb,F,1975-06-07,Bangladeshi -9f1f9dce319c4700ef28ec8c53bd3cc8e6abe64c68385479ab89215806a5bdd6,F,1993-09-07,White -28dae7c8bde2f3ca608f86d0e16a214dee74c74bee011cdfdd46bc04b655bc14,M,1981-11-19,Black -e5b861a6d8a966dfca7e7341cd3eb6be9901688d547a72ebed0b1f5e14f3d08d,F,1950-10-31, -2ac878b0e2180616993b4b6aa71e61166fdc86c28d47e359d0ee537eb11d46d3,M,1951-12-25,White -85daaf6f7055cd5736287faed9603d712920092c4f8fd0097ec3b650bf27530e,M,1985-03-01,White and Asian -3038bfb575bee6a0e61945eff8784835bb2c720634e42734678c083994b7f018,M,1966-09-29,Black -2abaca4911e68fa9bfbf3482ee797fd5b9045b841fdff7253557c5fe15de6477,F,1956-11-12,Asian -89aa1e580023722db67646e8149eb246c748e180e34a1cf679ab0b41a416d904,M,1966-09-29,Black -1be00341082e25c4e251ca6713e767f7131a2823b0052caf9c9b006ec512f6cb,F,1950-10-31, -a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3,F,1976-04-23,White -6affdae3b3c1aa6aa7689e9b6a7b3225a636aa1ac0025f490cca1285ceaf1487,M,1985-03-01,White and Asian -0f8ef3377b30fc47f96b48247f463a726a802f62f3faa03d56403751d2f66c67,M,1981-11-19,Black -65a699905c02619370bcf9207f5a477c3d67130ca71ec6f750e07fe8d510b084,F,1993-09-07,White -922c7954216ccfe7a61def609305ce1dc7c67e225f873f256d30d7a8ee4f404c,F,1956-11-12,Asian -2747b7c718564ba5f066f0523b03e17f6a496b06851333d2d59ab6d863225848,F,1975-06-07,Bangladeshi -6566230e3a3ce3774c1bbc7c18b590ae0f457bbcd511e90e3e7dca2a02e7addc,F,1997-05-11,Indian -38d66d9692ac590000a91b03a88da1c88d51fab2b78f63171f553ecc551a0c6f,M,1951-12-25,White -eeca91fd439b6d5e827e8fda7fee35046f2def93508637483f6be8a2df7a4392,F,1956-11-12,Asian -dbb1ded63bc70732626c5dfe6c7f50ced3d560e970f30b15335ac290358748f6,F,1997-05-11,Indian -d2f483672c0239f6d7dd3c9ecee6deacbcd59185855625902a8b1c1a3bd67440,F,1993-09-07,White -5d389f5e2e34c6b0bad96581c22cee0be36dcf627cd73af4d4cccacd9ef40cc3,M,1966-09-29,Black -13671077b66a29874a2578b5240319092ef2a1043228e433e9b006b5e53e7513,M,1985-03-01,White and Asian -36ebe205bcdfc499a25e6923f4450fa8d48196ceb4fa0ce077d9d8ec4a36926d,M,1951-12-25,White -d80eae6e96d148b3b2abbbc6760077b66c4ea071f847dab573d507a32c4d99a5,M,1981-11-19,Black -d6a4031733610bb080d0bfa794fcc9dbdcff74834aeaab7c6b927e21e9754037,F,1950-10-31, -8d27ba37c5d810106b55f3fd6cdb35842007e88754184bfc0e6035f9bcede633,F,1975-06-07,Bangladeshi -dbae772db29058a88f9bd830e957c695347c41b6162a7eb9a9ea13def34be56b,F,1976-04-23,White -2c7d5490e6050836f8f2f0d496b1c8d6a38d4ffac2b898e6e77751bdcd20ebf5,M,1966-09-29,Black -d4ee9f58e5860574ca98e3b4839391e7a356328d4bd6afecefc2381df5f5b41b,F,1956-11-12,Asian -d6f0c71ef0c88e45e4b3a2118fcb83b0def392d759c901e9d755d0e879028727,F,1997-05-11,Indian -5ec1a0c99d428601ce42b407ae9c675e0836a8ba591c8ca6e2a2cf5563d97ff0,F,1993-09-07,White -be47addbcb8f60566a3d7fd5a36f8195798e2848b368195d9a5d20e007c59a0c,M,1985-03-01,White and Asian -0a5b046d07f6f971b7776de682f57c5b9cdc8fa060db7ef59de82e721c8098f4,F,1950-10-31, -1d28c120568c10e19b9d8abe8b66d0983fa3d2e11ee7751aca50f83c6f4a43aa,M,1951-12-25,White -ec2e990b934dde55cb87300629cedfc21b15cd28bbcf77d8bbdc55359d7689da,F,1975-06-07,Bangladeshi -05ada863a4cf9660fd8c68e2295f1d35b2264815f5b605003d6625bd9e0492cf,M,1981-11-19,Black -9ae2bdd7beedc2e766c6b76585530e16925115707dc7a06ab5ee4aa2776b2c7b,F,1976-04-23,White -8e612bd1f5d132a339575b8dafb7842c64614e56bcf3d5ab65a0bc4b34329407,F,1993-09-07,White -043066daf2109523a7490d4bfad4766da5719950a2b5f96d192fc0537e84f32a,M,1981-11-19,Black -620c9c332101a5bae955c66ae72268fbcd3972766179522c8deede6a249addb7,M,1985-03-01,White and Asian -1d0ebea552eb43d0b1e1561f6de8ae92e3de7f1abec52399244d1caed7dbdfa6,F,1950-10-31, -210e3b160c355818509425b9d9e9fd3ea2e287f2c43a13e5be8817140db0b9e6,M,1966-09-29,Black -0fecf9247f3ddc84db8a804fa3065c013baf6b7c2458c2ba2bf56c2e1d42ddd4,F,1975-06-07,Bangladeshi -c75de23d89df36ba921287616ee8edb4c986e328a78e033e57c1e5e2b59c838e,F,1976-04-23,White -7ed8f0f3b707956d9fb1e889e11153e0aa0a854983081d262fbe5eede32da7ca,F,1997-05-11,Indian -ff2ccb6ba423d356bd549ed4bfb76e96976a0dcde05a09996a1cdb9f83422ec4,M,1951-12-25,White -a512db2741cd20693e4b16f19891e72b9ff12cead72761fc5e92d2aaf34740c1,F,1956-11-12,Asian -bb668ca95563216088b98a62557fa1e26802563f3919ac78ae30533bb9ed422c,F,1950-10-31, -79d6eaa2676189eb927f2e16a70091474078e2117c3fc607d35cdc6b591ef355,F,1993-09-07,White -3d3286f7cd19074f04e514b0c6c237e757513fb32820698b790e1dec801d947a,M,1966-09-29,Black -3f9807cb9ae9fb6c30942af6139909d27753a5e03fe5a5c6e93b014f5b17366f,M,1985-03-01,White and Asian -bc52dd634277c4a34a2d6210994a9a5e2ab6d33bb4a3a8963410e00ca6c15a02,F,1975-06-07,Bangladeshi -e0f05da93a0f5a86a3be5fc0e301606513c9f7e59dac2357348aa0f2f47db984,F,1997-05-11,Indian -73d3f1ba062585bce51f77d70a26be88c44b55d70f81b8bd7e2ded030ca4454a,M,1951-12-25,White -80c3cd40fa35f9088b8741bd8be6153de05f661cfeeb4625ffbf5f4a6c3c02c4,F,1976-04-23,White -f57e5cb1f4532c008183057ecc94283801fcb5afe2d1c190e3dfd38c4da08042,M,1981-11-19,Black -734d0759cdb4e0d0a35e4fd73749aee287e4fdcc8648b71a8d6ed591b7d4cb3f,F,1956-11-12,Asian -284de502c9847342318c17d474733ef468fbdbe252cddf6e4b4be0676706d9d0,F,1950-10-31, -68519a9eca55c68c72658a2a1716aac3788c289859d46d6f5c3f14760fa37c9e,F,1993-09-07,White -4a8596a7790b5ca9e067da401c018b3206befbcf95c38121854d1a0158e7678a,F,1956-11-12,Asian -41e521adf8ae7a0f419ee06e1d9fb794162369237b46f64bf5b2b9969b0bcd2e,M,1981-11-19,Black -dac53c17c250fd4d4d81eaf6d88435676dac1f3f3896441e277af839bf50ed8a,M,1966-09-29,Black -cba28b89eb859497f544956d64cf2ecf29b76fe2ef7175b33ea59e64293a4461,F,1975-06-07,Bangladeshi -8cd2510271575d8430c05368315a87b9c4784c7389a47496080c1e615a2a00b6,F,1976-04-23,White -01d54579da446ae1e75cda808cd188438834fa6249b151269db0f9123c9ddc61,M,1985-03-01,White and Asian -3068430da9e4b7a674184035643d9e19af3dc7483e31cc03b35f75268401df77,M,1951-12-25,White -7b69759630f869f2723875f873935fed29d2d12b10ef763c1c33b8e0004cb405,F,1997-05-11,Indian -580811fa95269f3ecd4f22d176e079d36093573680b6ef66fa341e687a15b5da,F,1997-05-11,Indian -bfa7634640c53da7cb5e9c39031128c4e583399f936896f27f999f1d58d7b37e,F,1950-10-31, -b8aed072d29403ece56ae9641638ddd50d420f950bde0eefc092ee8879554141,F,1976-04-23,White -52f11620e397f867b7d9f19e48caeb64658356a6b5d17138c00dd9feaf5d7ad6,M,1985-03-01,White and Asian -61a229bae1e90331edd986b6bbbe617f7035de88a5bf7c018c3add6c762a6e8d,M,1966-09-29,Black -2811745d7b8d8874f6e653d176cefdd19e05e920ce389b9b7e83e5b2dfa546c7,F,1975-06-07,Bangladeshi -38b2d03f3256502b1e9db02b2d12aa27a46033ffe6d8c0ef0f2cf6b1530be9d8,M,1981-11-19,Black -d6061bbee6cf13bd73765faaea7cdd0af1323e4b125342ac346047f7c4bda1fc,F,1993-09-07,White -7045d16ae7f043ec25774a0a85d6f479e5bb019e9c5a1584bc76736d116b8f33,F,1956-11-12,Asian -2397346b45823e070f6fc72ac94c0a999d234c472479f0e26b30cdf5942db854,M,1951-12-25,White -70260742c2952154c84e2ea9f68b1a7397f49b6d343da1ed284093c0bd72c742,F,1993-09-07,White -eb3be230bbd2844b1f5d8f2e4fab9ffba8ab22cfeeb69c4c1361993ba4f377b9,F,1976-04-23,White -684fe39f03758de6a882ae61fa62312b67e5b1e665928cbf3dc3d8f4f53e3562,F,1997-05-11,Indian -7559ca4a957c8c82ba04781cd66a68d6022229fca0e8e88d8e487c96ee4446d0,M,1951-12-25,White -1dfacb2ea5a03e0a915999e03b5a56196f1b1664d2f768d1b7eff60ac059789d,M,1966-09-29,Black -b4bbe448fde336bb6a7d7d765f36d3327c772b845e7b54c8282aa08c9775ddd7,F,1950-10-31, -8bcbb4c131df56f7c79066016241cc4bdf4e58db55c4f674e88b22365bd2e2ad,M,1985-03-01,White and Asian -a4e00d7e6aa82111575438c5e5d3e63269d4c475c718b2389f6d02932c47f8a6,M,1981-11-19,Black -5a39cadd1b007093db50744797c7a04a34f73b35ed444704206705b02597d6fd,F,1975-06-07,Bangladeshi -27badc983df1780b60c2b3fa9d3a19a00e46aac798451f0febdca52920faaddf,F,1956-11-12,Asian -43974ed74066b207c30ffd0fed5146762e6c60745ac977004bc14507c7c42b50,F,1975-06-07,Bangladeshi -c17edaae86e4016a583e098582f6dbf3eccade8ef83747df9ba617ded9d31309,M,1981-11-19,Black -4621c1d55fa4e86ce0dae4288302641baac86dd53f76227c892df9d300682d41,F,1997-05-11,Indian -fc56dbc6d4652b315b86b71c8d688c1ccdea9c5f1fd07763d2659fde2e2fc49a,F,1956-11-12,Asian -f8809aff4d69bece79dabe35be0c708b890d7eafb841f121330667b77d2e2590,M,1985-03-01,White and Asian -5cf4e26bd3d87da5e03f80a43a64f1220a1f4ba9e1d6348caea83c06353c3f39,M,1951-12-25,White -968076be2e38cf897d4d6cea3faca9c037e1a4e3b4b7744fb2533e07751bd30a,F,1950-10-31, -8df66f64b57424391d363fd6b811fed3c430c77597da265025728bd637bad804,F,1993-09-07,White -83f814f7a92e365cbd79f9addceed185761a8d38a06a2d4350bb1fe4b7632b34,M,1966-09-29,Black -d29d53701d3c859e29e1b90028eec1ca8e2f29439198b6e036c60951fb458aa1,F,1976-04-23,White -093434a3ee9e0a010bb2c2aae06c2614dd24894062a1caf26718a01e175569b8,M,1966-09-29,Black -fa2b7af0a811b9acde602aacb78e3638e8506dfead5fe6c3425b10b526f94bdd,M,1951-12-25,White -d48ff4b2f68a10fd7c86f185a6ccede0dc0f2c48538d697cb33b6ada3f1e85db,F,1950-10-31, -802b906a18591ead8a6dd809b262ace4c65c16e89764c40ae326cfcff811e10c,F,1956-11-12,Asian -d86580a57f7bf542e85202283cb845953c9d28f80a8e651db08b2fc0b2d6a731,F,1993-09-07,White -0f4121d0ef1df4c86854c7ebb47ae1c93de8aec8f944035eeaa6495dd71a0678,M,1981-11-19,Black -16badfc6202cb3f8889e0f2779b19218af4cbb736e56acadce8148aba9a7a9f8,F,1997-05-11,Indian -5966abd0cbfc86f98a186531b2b4ee5f6e910120ce13222f98207203dfc9a9a2,M,1985-03-01,White and Asian -314f04b30f62e0056bd059354a5536fb2e302107eed143b5fa2aa0bbba07f608,F,1976-04-23,White -36790ecd55c2030dc553685bef719df653f413a20cdad1bfd1dc934c76686ddd,F,1975-06-07,Bangladeshi -67e9c3acebb154a282f326d4ff1951cd1f342e58e74d562b556b517da5e56132,M,1966-09-29,Black -9b871512327c09ce91dd649b3f96a63b7408ef267c8cc5710114e629730cb61f,F,1976-04-23,White -56f4da26ed956730309fa1488611ee0f13b0ac95ebb1bc9b5d210e31ff70e79c,F,1975-06-07,Bangladeshi -84a5092e4a5b6fe968fd523fb2fc917dbffae44105f82b6b94c8ed5b9a800223,M,1951-12-25,White -0e6523810856a138a75dec70a9cf3778a5c70b83ac915f22c33f05db97cb3e68,M,1985-03-01,White and Asian -8f1f64db81c40ea10e1e9080c9ae60a7acb8925968c431ee16784dea9841c66f,F,1956-11-12,Asian -dfe62e836a0a6f2633422230c81287700a56e2639652c73f264e6562220c207a,F,1993-09-07,White -9d693eeee1d1899cbc50b6d45df953d3835acf28ee869879b45565fccc814765,F,1997-05-11,Indian -08490295488a1189099751ebeddb5992313dd2a831e07a92e66d196ddc261777,M,1981-11-19,Black -a0eaec5a55dc2f5b2ba523018adc485ff620b9d83509b9f37186a7716e438d21,F,1950-10-31, -138d9e809e386a7b800791d1f664f56d1c55f3d1ba411b950862729bc486c5ce,F,1975-06-07,Bangladeshi -835d5e8314340ab852a2f979ab4cd53e994dbe38366afb6eed84fe4957b980c8,M,1966-09-29,Black -c0509a487a18b003ba05e505419ebb63e57a29158073e381f57160b5c5b86426,F,1993-09-07,White -114bd151f8fb0c58642d2170da4ae7d7c57977260ac2cc8905306cab6b2acabc,M,1985-03-01,White and Asian -0a2d643bfd24a028cd236e76575d828424ccffbfa47392bd09d8ca9dc85e2f8d,F,1950-10-31, -9a049b03f6fc40bfcf2f136320359257ed4af8513f71aa6fef47f17059bbae23,M,1981-11-19,Black -f0bc318fb8965cad8d73d578cd03c63b7987dc6a79b906aada091e1b6a13443f,F,1956-11-12,Asian -8ae4c23b80d1e7c8ff79e515fe791ebd68190bae842dda7af193db125f700452,M,1951-12-25,White -79bf08685d3138f9b109c3546780f056bc954fd69377b84a2cf23622e464897b,F,1976-04-23,White -6af1f692e9496c6d0b668316eccb93276ae6b6774fa728aac31ff40a38318760,F,1997-05-11,Indian -749fc650cacb0f06547520d53c31505c8156e0a3be07073eddb2ef3ad9e383ba,M,1966-09-29,Black -14063697603e22d600d336bee6cff12c8be93509ce84a0642918d89b2aef1753,F,1997-05-11,Indian -72440a20f54075ac43f51a2cf0dbb2a14366b38a5c01b110ae174abc1cb44238,F,1956-11-12,Asian -82c01ce15b431d420eb6a1febfba7d7a2b69e5bcdcb929cb42cd3e9179d43fc4,F,1950-10-31, -011af72a910ac4acf367eef9e6b761e0980842c30d4e9809840f4141d5163ede,F,1976-04-23,White -37c20f19f3272b5ccc3a5d80587eb9deb3f4afcf568c4280fb195568da8eb1a2,M,1985-03-01,White and Asian -396f804443825586c1283a27fdcadf74abb82008bcd9b260a30912a26563f27d,F,1975-06-07,Bangladeshi -766cb53c753baedac5dc782593e04694b3bae3aed057ac2ff98cc1aef6413137,M,1951-12-25,White -9f484139a27415ae2e8612bf6c65a8101a18eb5e9b7809e74ca63a45a65f17f4,F,1993-09-07,White -1e472b39b105d349bcd069c4a711b44a2fffb8e274714bb07ecfff69a9a7f67b,M,1981-11-19,Black -c75d3f1f5bcd6914d0331ce5ec17c0db8f2070a2d4285f8e3ff11c6ca19168ff,M,1981-11-19,Black -d6e5a20b30f87216b2c758f5e7a23c437dbc3dfa1ccb177c474de152bb0ef731,M,1951-12-25,White -e7866fdc6672f827c76f6124ca3eeaff44aff8b7caf4ee1469b2ab887e7e7875,F,1950-10-31, -9512d95d00d61bdec03d2b99d6ecc455ee5644ae52d10e7c4a61c93062dc97a3,F,1993-09-07,White -9556b82499cc0aaf86aee7f0d253e17c61b7ef73d48a295f37d98f08b04ffa7f,M,1985-03-01,White and Asian -51e8ea280b44e16934d4d611901f3d3afc41789840acdff81942c2f65009cd52,F,1976-04-23,White -4c970004b0678d439f177e77d3cabdb7e9a44df770948ddc2467cbc76b7211c3,F,1956-11-12,Asian -a30f4ef42176d28f0e2293533c5f532e9c9c5696c68813b35315d17edc44f6b1,F,1997-05-11,Indian -7c252ab334fb8fd88e8242c4972c21db9c7ce0b47c9acc4ebfe40c14614cb734,M,1966-09-29,Black -39bb88f40d3aa2b2fe9dea67be27c74765db0ebb3ff3cf8fb779af6319fa2045,F,1975-06-07,Bangladeshi -e888a676e1926d0c08b5f11fb9116df58b62604b05846f39f8d6fc4dd0ba31f1,F,1993-09-07,White -9e6a72557ada15d02001f024f43f06edc4a31437e0e1bb3eeac36ca2d0c4fda7,F,1950-10-31, -4be84111a613654b362415e563cb7607df7b203b5d303802a8a546061bbc7847,F,1997-05-11,Indian -bba58959c32abe688d9cb5222b97de973002a67c412d6a8c8d2a79ac692f32b7,F,1976-04-23,White -768b84ef05f655d57fe22d488451f075365f6cd18a13073466aa826cc0ebdbfb,F,1956-11-12,Asian -ea5b27556fbb134def2c2fbf944d9cdda3dbdb6b10473a1aec59f6f170c4ca3a,M,1985-03-01,White and Asian -8acc23987b8960d83c44541f9f0eb46454cea080ea94d916f56fccf033db866f,M,1951-12-25,White -8b496bf96bbcc9e5ac11c068b6cfb00c32f9d163bb8a3d5af107217499de997a,F,1975-06-07,Bangladeshi -f747870ae666c39b589f577856a0f7198b3b81269cb0326de86d8046f2cf72db,M,1966-09-29,Black -d8d1790737d57ac4fe91a2c0a28087c0a97c81f5dc6b19d5e4aec20c08bb95ae,M,1981-11-19,Black -3635a91e3da857f7847f68185a116a5260d2593f3913f6b1b66cc2d75b0d6ec0,M,1985-03-01,White and Asian -1c6c0bb2c7ecdc3be8e134f79b9de45155258c1f554ae7542dce48f5cc8d63f0,F,1975-06-07,Bangladeshi -303c8bd55875dda240897db158acf70afe4226f300757f3518b86e6817c00022,M,1981-11-19,Black -718127812c05853f0bec61582a4a3840b1c844fe11fe1a004b5b7eb8b8b59846,F,1956-11-12,Asian -3a1dfb05d7257530e6349233688c3e121945c5de50f1273a7620537755d61e45,F,1976-04-23,White -c76b405781134be1dab7fe45adfb8c32104805a01de7b863e1004b66d56edf9f,F,1993-09-07,White -27d719c754aacd492a6dc8a1b76619355abcf5ef473cbec02018d3c57ebbf0d5,M,1966-09-29,Black -ee62de25ccc2b55d3a0495244b246fb97055b6f1c2697d837b8e94976c03756f,F,1950-10-31, -efd96aedf377e20afd95285a7c751a864260bd6a149656a4040c5b7757bdbbb6,F,1997-05-11,Indian -7f0a22117f8fe0172cf9209ff622b64a51aaeda21d58b5b62685a93dbe2dad25,M,1951-12-25,White -71a1c003a2b855d85582c8f6c7648c49d3fe836408a7e1b5d9b222448acb3c1b,F,1997-05-11,Indian -27e1615212f3c6ea846ed6c412df1361ce97f006ee20bb5aa2483a3b61d5cadd,M,1985-03-01,White and Asian -e0850a775c17a87060c0cf6efad1020e0cbef5a44ba942bef6add5776598de53,F,1956-11-12,Asian -1e68ed4e3d58a51096a7feea3947f40debf1fd9246ec977eb62ab93c81823ad9,F,1993-09-07,White -a0d177b4967a6d99f4ff117defe1c0d23d4e78ca4630febcb948ee9e4520eff3,M,1951-12-25,White -00328ce57bbc14b33bd6695bc8eb32cdf2fb5f3a7d89ec14a42825e15d39df60,F,1950-10-31, -d7cdaa5ca0582076c8e772cce739e32c5077cfd24f2ea33f04bb754594989a56,F,1976-04-23,White -23c657f2efda7731a3c1990b25f318fa2eb1332208f97ab9cc2a7eac70ab5a76,M,1966-09-29,Black -af180e4359fc6179dc953abdcbdcaf7c146b53e1bee2b335e50dead11ccefa07,M,1981-11-19,Black -09895de0407bcb0386733daa14bdb5dfa544505530c634334a05a60f161b71fc,F,1975-06-07,Bangladeshi -33512007840ced1bb0aab68f47cb5f702abd494a15f26bcbe26a1e47af03d841,F,1976-04-23,White -6db6eb4af1e18ab81d3878e44672185d60ca8c988c9e2f7783de220735534c33,F,1997-05-11,Indian -7cb676d57114874e00c536916e6dcad2a5d3cb8c9a5abc06335df359cd9a6ef9,F,1975-06-07,Bangladeshi -2cfc8ccbd7c0b17615323b41e815651ff2ae9ffae45a4599c0499b98ff940429,F,1950-10-31, -9cfd3c755be26b4e1645918e2a64a26e3d851ede421e0b257f783b443bc443d1,M,1981-11-19,Black -a0f8b2c4cb1ac82abdb37f0fe5203b97be556c4468c83bba18684d620fd8eaf9,M,1966-09-29,Black -4c15f47afe7f817fd559e12ddbc276f4930c5822f2049088d6f6605bec7cea56,F,1993-09-07,White -76ebdb6d45c61ca12e622118cc90939ade672adf7890aa2b246405d4884dd75a,M,1951-12-25,White -308831041ea4863c3f87d222c31f759411898c874a9006b4bd6c745858b8f3bd,M,1985-03-01,White and Asian -983bd614bb5afece5ab3b6023f71147cd7b6bc2314f9d27af7422541c6558389,F,1956-11-12,Asian -c3ea99f86b2f8a74ef4145bb245155ff5f91cd856f287523481c15a1959d5fd1,F,1956-11-12,Asian -f32828acecb4282c87eaa554d2e1db74e418cd6845843012463a3324028bdd9d,F,1993-09-07,White -8bd9c0d453533757387ed019c45617cdc440ba680a67b1a101c85b998ef715c0,F,1975-06-07,Bangladeshi -d874e4e4a5df21173b0f83e313151f813bea4f488686efe670ae47f87c177595,F,1950-10-31, -090d3859ff6840b2280f4708cf08cdaed873d967183a4d1deedc1a7964a21eee,M,1985-03-01,White and Asian -38b83caefa1ef26940f1d07bd4ec94c60809b0f88f2118e82ef8ec2d98938a84,M,1951-12-25,White -6d976934be74941fba578b143ba964eded443d10384e3f3d62a1ba7b4d339df8,F,1997-05-11,Indian -48a1706eca5ee6148f748ca91a0f7db6ebcf59943532044a7bf60bbe44e5b1d2,F,1976-04-23,White -43c727ee4fc7250574d2ef90cfa16626388a10e1b30d36ece1c272953ad2ed9e,M,1981-11-19,Black -226f76b55acb49701e06ded1d95165d179458f6fc37f5c6fc760ae30dec1c378,M,1966-09-29,Black -20e9c64c05a54d199610fb7e38135361324b5ed5dcf39c23afe9b48926c07376,F,1993-09-07,White -865736a1c30a82dc67aba820360a01b1d9d0da5643234cd07c4d60b06eb530c5,F,1976-04-23,White -8efbbe9bc19ad2e043c6cdb187c0a0fedde70b6458443ce0b5648ec04ccf4cdf,M,1985-03-01,White and Asian -748064be03a08df81e31bd6f9e7e7c4cc9f84b4401b9a3c6e85b7ff816d3ba68,F,1956-11-12,Asian -377adeb4cd4096adc7ca64b533938cffc6294a9b3534f883b2336a26252cda9a,F,1997-05-11,Indian -7a20311cf7a4b222d436424480bc65dd0f9d2cefcbbb1fa148ca0d7e1d5bb55a,M,1981-11-19,Black -8d1ede4f889e0ed6f0823d8c1821905b9de37a0f851dc270df0dbf72b3c93641,M,1951-12-25,White -aae02129362d611717b6c00ad8d73bf820a0f6d88fca8e515cafe78d3a335965,M,1966-09-29,Black -156091ee0884f36de9836d58b6f05f357ec6ef0620c571577ac61f7beac35f8e,F,1950-10-31, -88820462180e5c893eff2ed73f4ec33e205d1cd5acc4d17fa7b2bca2495d3448,F,1975-06-07,Bangladeshi -8d23cf6c86e834a7aa6eded54c26ce2bb2e74903538c61bdd5d2197997ab2f72,F,1956-11-12,Asian -f10d91a7596bf5a6773579ff1306afdc363b0be08602c768907c09261cad3a56,F,1993-09-07,White -3949ac1596ec77106a709a618bf5adcb19b77537ce8bcbdf54ff830169cdd084,F,1976-04-23,White -1038e0b72d98745fac0fb015fd9c56704862adf11392936242a2ff5a65629f50,M,1981-11-19,Black -9e11c362bc3d3572970b973d5cd86c073da358b6f9bceaa3be65d1a6487f8819,M,1951-12-25,White -a4e987d17584557e2fbed011cddf66dc5185338bc3ef33d4226f86c32b7364dd,F,1950-10-31, -02cca3803b564ede11ccf9f303c9910b39c532061e7a8c3b773169bc3d3c140b,M,1985-03-01,White and Asian -2452984f72ef1195df62ab3f23748777dbf39767229425f1bfd0862d476e5840,F,1975-06-07,Bangladeshi -0791963ca2667a23cf3268ad25d7bb6ca0ed287b192869703cdbcf0e87934c33,M,1966-09-29,Black -5426d2ca50f244fb43fe9eafc82da08f33f3b4f8d9140802bd0102e780b629d6,F,1997-05-11,Indian -0bba869d7f392cbcaca6b8935ddc7fc3a8c50846d884959333fb7da475957511,F,1976-04-23,White -7104741a92e73eb6c5d69cd04cf0afbe50a8796a010d8fa25daaf79e5e173bf3,M,1966-09-29,Black -556d7dc3a115356350f1f9910b1af1ab0e312d4b3e4fc788d2da63668f36d017,F,1975-06-07,Bangladeshi -058d5d43bf485bf78dda1ed4eaf8b78e3106f3c6364c625ead2cc3aeb1908237,F,1950-10-31, -7acc684a848a9b954959fdd22493f48cf44eed028275b6b9999c7cade8956fc7,F,1956-11-12,Asian -eaa0689a095d4394a05fb51b84b0175a47f68221261377e4829444cbfcae23ca,F,1993-09-07,White -8ede6b26343305e05c3c0029f4e830d4e8c2016869a9d1cd97b100b2a16dfd1c,M,1985-03-01,White and Asian -5d8f6cce532a7aeb57196be62344095936793400b3aeb3580d248b17d5518a86,M,1981-11-19,Black -fc95ce176603e9e1d1ffee39023b31dd856e00ad030526902604ed2a68a12c4b,M,1951-12-25,White -9644294ac4ffb3091eef01219b3fe4fe467f05890cc56af961dce68fddbb7704,F,1997-05-11,Indian -524b2d27a1e7fbc3a1614fa661e2dcad68462352feeb8bf633deaccfb8aa84f3,M,1966-09-29,Black -023849c38925e2af028a2eb4e1dc41afd7dc7a238195c1c2ae00438d1dae00e1,M,1951-12-25,White -3c15285c04fff40024bb8714b93e58178bf8d3bebe6943178e1c5412957b7aa1,F,1975-06-07,Bangladeshi -02e6295d8f522840f09b5194b3f023799ad6ed3306d9296005787e792224df20,M,1985-03-01,White and Asian -da70dfa4d9f95ac979f921e8e623358236313f334afcd06cddf8a5621cf6a1e9,F,1956-11-12,Asian -6aac0cf87a32e631536122c3f2f9a2df215f56f28792a43a8658b0593f2e5255,F,1997-05-11,Indian -2289b221b39605c3494e7290856218e931c00af556cf7a07827108193b276511,F,1993-09-07,White -06b2d82840e43ed8432b3f444de18b57dbe60637c99379c708aa8e66de83dbc1,F,1976-04-23,White -72ba187b05e705de2dced5824d716a71872dedccf21f0c179bd2d5f2c7c974b1,M,1981-11-19,Black -deeeb5df3f2cee6bf4e597a8a3a878a6ce49b932b9e90b416922d4499f54fae6,F,1950-10-31, -04a8708c3a481ced13845a30de522486895de0592222c29326d9139ec2b9df25,M,1966-09-29,Black -9a72c24f2fd76561729110d804c69f38a7088f2ec41fdf8fbfea20d07e8bcff8,F,1950-10-31, -459535faa370a3b5f8b87203b089623c7aeb9325abf241ec8a685b9c325047a3,F,1993-09-07,White -09a1b036b82baba3177d83c27c1f7d0beacaac6de1c5fdcc9680c49f638c5fb9,M,1951-12-25,White -355d8c0ee4e5698eaed38b96aab64dbf0ad72eca3e352183be6e957e9d9230a7,F,1997-05-11,Indian -03a3d955b8799a90f1ff5a39479fde8e618f8ca3282d5b187186f2cf361abd32,M,1985-03-01,White and Asian -2ab0ce7632a611e907a40710ff46da13c5ba832f5a402c6f51e15f53d6e8fa0e,F,1976-04-23,White -62a0eae98b9fc0bd0ad941ae07ae5e2af545a64c8ddc43407bdfe6ae82addb4c,M,1981-11-19,Black -9197e4844abed2fea3569a2acf7b0d584c979c333ab7ae10ba6c339898776f5a,F,1975-06-07,Bangladeshi -838f461c2fa673cec73e6eecdafa88b127802d6cb0a61c53175197a122cb645a,F,1956-11-12,Asian -73daa9289ddd08a53ba86f065ddb07bf915aba208bec652e999613d2a8444228,F,1976-04-23,White -3963317a2b410e5357f4d839787aedb9ceef495514fe5cd91f846ab3a59621e0,F,1997-05-11,Indian -a43231c2216f23db8d65bbd57e0ce6573654f9a102365cd4b345723f1437ab2b,M,1981-11-19,Black -b3dfdc6efe322a6feccb0d081e88ffac20b0f28e8495efa76188c8dc3ada6181,M,1951-12-25,White -4e47eb5525df25f94da777993dafa41d9ab2bfa80a89e28f76d42cd46ab082e7,M,1966-09-29,Black -600b4cdf20cc06a7b5a5cca5f7464296861815519af6d8a14604201b13965ab8,F,1950-10-31, -0788979fc9366e21cd56311511b897a222cf91711481bcd7dc837eac2172d087,F,1975-06-07,Bangladeshi -8e6aee9efac8086ebac545d45c63e0d0dfcddd0d77d53e45c04d05cafdd2a8a8,F,1956-11-12,Asian -5f193b350c8aba4883dedf97367ef3080821470661d0a2e1faf420a300cb5ca8,F,1993-09-07,White -f1607c19a0f910ca1b8dce18843bc34e46a533c87e3524ea75798949f7a352d5,M,1985-03-01,White and Asian -9b15fed64ef16980f625aeed46ab4cd2c498690551d3a2d1e5254d551d7d6ddf,F,1976-04-23,White -62f77e7d6197863ac98d9e0cfa76bea0c8e05379ed5281afbe72f7fc206fe37b,F,1950-10-31, -e52d08747b9d7a6d04551bb86ee3f7ee6c49f7477c8cd66f77448378cc30b92b,F,1993-09-07,White -01299ac65733b5a3d774265fbfe8396b8611e5e3321855dbc541cd301e71fe5e,F,1956-11-12,Asian -de5872c6bb4494cebd250152ce148cd6231654e4469229f2f993984b3950b422,M,1951-12-25,White -12e2c8df501501b2bb531e941a737ffa7a2a491e849c5c5841e3b6132291bc35,M,1985-03-01,White and Asian -2c4cf657337835125bc4258d0e2e546af4185bdb70f64e1b0aa46d1d78017404,F,1975-06-07,Bangladeshi -21ef779311a43f0e067d0f4f600bb5451a8a7e093662086a1fe6a75d27d7892a,M,1981-11-19,Black -64c212df34c66e6fe9fccbfebc8899c10584cfa1669c42a175d65db073b13bc0,M,1966-09-29,Black -2af4dd48399a5cf64c23fc7933e11aaf6171d80001b4b1377498ae6056b1acbf,F,1997-05-11,Indian -392a52e4f77c40bf3321dc2feac356fac2a906a80c961748170af4ce2bce1e6a,F,1975-06-07,Bangladeshi -f65ccfbfec288565c1d414275985547799fde0ed286c85a50bd0ec5faa01d1ac,M,1981-11-19,Black -48b361d46638bfa4eee090c158a750a69c7beec3a62e703e2801125551b1b157,M,1966-09-29,Black -37b73510175057c633ebe4beb0a34917fa2a0696432db43a4eeb2c3ff83a4c3b,F,1976-04-23,White -131b0c35e2d7edef9dd63f48eff39341ef0a5f770538aa4e0017f41b9cdb135d,F,1950-10-31, -15a26c6fa5151c712acc7ee45a1fd525ab85b801f096847c7d5fdf49efeabb4d,F,1956-11-12,Asian -25dac95b8f595046bc435139636b0e2f1ff6e0ea31a54f3c19e7e726fb98738b,F,1997-05-11,Indian -ab5e292db6495899871d889aaab28308f7da8dfc3693a477ee73de9ad894ce44,M,1985-03-01,White and Asian -b98880883fd8d975260f1807fa46a5156fcc4cc82bf6d657a417d8bb4e42cd55,F,1993-09-07,White -48a1a756f2d83f1dc57bbf14052b70a6f40d0fceed6662812e34903a9fe90924,M,1951-12-25,White -a934c244755c66aebb0d6f9f5687038ffae8f00b00b28b4e17521016393f38b9,M,1966-09-29,Black -6ea2fdb3399f4d2e806beb01e9a3371bd622bed6a409acf3151818d738c370ec,F,1950-10-31, -99a0b871c9047c4f5555fcf062e0623174bae38746fece6efdf032d80fb2221a,M,1985-03-01,White and Asian -04d19fde0a08b17aca69491e714bea43565384d12a63626e08477662cc03780e,F,1975-06-07,Bangladeshi -a3af7b3808c4cf72478d05c9bab9c0d47e31c1d2cb3a29e7481669f7ea278c4e,F,1993-09-07,White -3c1b7053f0edd447b778edbc0ad8359b0fa892d69857d9bd5e6b19007bb3f01e,F,1956-11-12,Asian -1d2028ddcd746a7ee87dd0739d7435602b77d4908f96e27ebdad57b09aa27b69,M,1981-11-19,Black -188c1fdca79d927f6e812133173fc41d3a4e57074de521020274caa9bb29af7d,M,1951-12-25,White -0f78540965a86402578f8188c826c1cb6c7ddcb608ae3a3201e532c7cacb6ce3,F,1976-04-23,White -26d228663f13a88592a12d16cf9587caab0388b262d6d9f126ed62f9333aca94,F,1997-05-11,Indian -dcaadad1cfce437735b81ab025f776e5857e48558c47f6960e6a5f2595664a85,F,1976-04-23,White -b7c7470e59e2a2df1bfd0a4705488ee6fe0c5c125de15cccdfab0e00d6c03dc0,M,1966-09-29,Black -d26eae87829adde551bf4b852f9da6b8c3c2db9b65b8b68870632a2db5f53e00,F,1997-05-11,Indian -6b3c238ebcf1f3c07cf0e556faa82c6b8fe96840ff4b6b7e9962a2d855843a0b,M,1981-11-19,Black -a73b320dc0d3a57c03f897eb28ca91e623c5ee635db59476ba3178c90b94019f,F,1975-06-07,Bangladeshi -f64f410744d9470ffe2d6b9ee6f042cdffcc42a745d2568146e8782ea828ff48,F,1956-11-12,Asian -a5abb1500bdeaef41e2edd598c015edfaa46793051b82d7da60a70efbf786da4,F,1993-09-07,White -e6f47e008cc58b38596e6fdf2f50a0fea93fd10543e652522aeab3aa71355719,M,1951-12-25,White -480f5a496560ae4228bb7977ecf29b2c589d7a7aa6b609534566af8cbc229a9e,F,1950-10-31, -612111a352a571cbed3927ec6f74948849bcc9fe8489bf4f0d6235afdc0a4ad7,M,1985-03-01,White and Asian -52f14fc33ef45dd80ac2626077948f44d8d211d5f24bf9db333c9403968e634a,F,1997-05-11,Indian -fabf5b7fedb3e62a81c9298b19706249ee128011bf9d94867681020c16f8b741,M,1951-12-25,White -1c49f22f6de9bd15e5e566fa8983be4cfa4709abf0f95edf96dcd3d6249c2649,F,1956-11-12,Asian -8111eb1556229541d7d2720a51203037e78ee57fb2e407e0da4a805473dab7af,F,1975-06-07,Bangladeshi -fc72c98a6c2916c1bbf9f39fce094f5785bb6f1d656971520b660b2e8a760fe3,F,1976-04-23,White -67e0bdb7b6c549d4fa834d0f6848ce6a3a12e07de9cea949ad41932bd5881bc4,M,1985-03-01,White and Asian -afcf8bc077e68eb94dfe783205f32cabdeead61fd32ff5710947b6111ff2ff77,M,1966-09-29,Black -4c8d5b6c695d265fb63dd73f275a21043a5887b37cb4fea0552ecc7b417c8f88,F,1950-10-31, -cc6aed2709b80e146bebc151f1cf1dec5e323b58148535a433529155030e3a52,M,1981-11-19,Black -db55da3fc3098e9c42311c6013304ff36b19ef73d12ea932054b5ad51df4f49d,F,1993-09-07,White -5092c37bcbc9f0fb33cb0f9cab7aa5ae94ed0f1219773c380b143b7c1224d01b,F,1976-04-23,White -5658b88806a236b6439a7ecd0a87af2475a02a848095304c6d25981ae5e7e9a9,F,1950-10-31, -814bb6b8dc12188a44b71e378dc20a4292e01979aa9ab95b09b8a681391dfc9d,M,1951-12-25,White -814fd2e8e45e9a6d3e1f6ff86867aaf2251ccd07f3eed02708fae286192c29e3,M,1985-03-01,White and Asian -0dfcddb0440e967f05bb68ca09a5e2188b8abc36bfb5b95b83b88be59c42c6e7,F,1975-06-07,Bangladeshi -9be3da431e0a833d2b07781de97ebbd0b14c274d16c0597820d9982a5f547cb3,M,1966-09-29,Black -42f25adecf47629878e89e31b2073d1af009c9c76f4140a06313af5e5950eabc,F,1956-11-12,Asian -cbf2f7864f1c988391a9ab199627a29bd60987da067748c2812b75785d7ec151,M,1981-11-19,Black -2d1007980f49215311f7f1012e84f99b801eb5daeca04dedea3ada41cc45353b,F,1993-09-07,White -fed88b40aba63cac05eadd5db0088c036005ec235c7be6fd87d656946b733332,F,1997-05-11,Indian -0a1f1256f9bac68e806442aa76455bb761af5414855efa23c1b3fd54477c0ba1,M,1985-03-01,White and Asian -98f1f17f9a73ccfe3e25940add8d9ce9bf05513104cacb84f2f1185bf5886a84,M,1981-11-19,Black -aaf01d71b55e51b1a3051cbb3cdc0646578dcda722b2922072a81f257b1a9821,F,1997-05-11,Indian -ea415bf50eb65ade427d8d80222df4627e28cd9a418f830bfd9b81d4149bb2ab,M,1966-09-29,Black -5f2703a5211db19a9020f7443f6a440fbc95cda90b7c2d53912f5ce47d050056,F,1956-11-12,Asian -155d1cf609cedded2fbc27a4646de87ce7f7de2913b1e5a1bbf148a6df483e19,F,1950-10-31, -0ef962215cc055786d516355238a80dacc204ecf9b160d0a252190bf5c0cc370,F,1976-04-23,White -18d37c950a3e810d9b9a84c72c230ca16b7cec19f7fb55c625e5441790d448ef,F,1993-09-07,White -050a010ce24d0896056e9a36a1940738d38f469d644b3682cfcc47569739c525,M,1951-12-25,White -e3f6959781c353c201d378e02d9da532601673e08a1706fa15a5ebbd9ea1bd36,F,1975-06-07,Bangladeshi -2dfe70c43208f52b9ef4ea7e134705283947116491e81fbac05f0aedc25c5956,M,1985-03-01,White and Asian -5627b4a8f9efbd8fbdadaf4177824186f8c734f320935c88e926bc027af6c50f,F,1997-05-11,Indian -6d05621ab7cb7b4fb796ca2ffbe1a141e0d4319d3deb6a05322b9de85d69b923,F,1950-10-31, -3538a1ef2e113da64249eea7bd068b585ec7ce5df73b2d1e319d8c9bf47eb314,F,1993-09-07,White -0e12831a7047f759733b21f028525039607350b1b1b4fe904595427e72ea0d9b,M,1951-12-25,White -75c3e223190bf1a1fa2af808d1dfcdffe33727d57eb0028b5a52ad893480eeb9,F,1976-04-23,White -c498f3fe97c0df55ee8dea01a72572059b93f42d235a5e439e9c9a1654d6d4e1,M,1981-11-19,Black -a4ecdd704d258aa841bb3f9a1e3b0cafc59bd88810e542f8e7a0519809d78fe7,F,1975-06-07,Bangladeshi -4a30a219a9d7663fdd35c0a5df49c8d55018f13a0c53e10dd8efe8f7e4cc5d89,M,1966-09-29,Black -83151157c10d85af7c84657c71c3e3603d955160f0526fce672481da83a2e090,F,1956-11-12,Asian -caa1aedb2a6ce96b39b9fde1a49e1ebcb431b6da4586da0aef56df9b78221d60,M,1985-03-01,White and Asian -549a2fac47d713cc00f2db498ad6b5574fb03c9293aef6c7ad50a11b394c197d,F,1976-04-23,White -d83c7ee736be931d85b78a4a60881ced3ff9a31bb417804e45b1d30de40f94f2,F,1997-05-11,Indian -48f89b630677c2cbb70e2ba05bf7a3633294e368a45bdc2c7df9d832f9e0c941,F,1975-06-07,Bangladeshi -f626051bc94422f26f4b774a2bca105e122df36a2f32f51bd7ee470daa620b0b,M,1966-09-29,Black -b3a8e0e1f9ab1bfe3a36f231f676f78bb30a519d2b21e6c530c0eee8ebb4a5d0,F,1993-09-07,White -353767b239099863e13ca954e20a66c9d75f777baf239f56e399958de49bf79d,F,1950-10-31, -ad21a2b810af49a8b9241e10dfce3a016987441cc93aa72feae47dd017ddf0bb,M,1981-11-19,Black -42f0bec3310ddd8a55e8d62817337ca49c55a898c14ab073d07c16dee24d73d4,F,1956-11-12,Asian -841a05fd378a2c067058585e3691c2a3f5399206fded7a580fdbbc281003168e,M,1951-12-25,White -de482c7ed5ca67ae135ef25bf3b13194970a2f3902318f1eda3c64af2a2eb344,M,1981-11-19,Black -da4d43f295ce92630829272fad6d2e7237c6248e9cd9499e6382d6fa6d758e7b,F,1975-06-07,Bangladeshi -06de973bb45531d52cdbd483c5e50bcddaa2095f9515e03cfad490061cc9831e,F,1976-04-23,White -88b54564b232405ab2165996517fece1149259cf1ea262a375db0f66039294d0,M,1966-09-29,Black -ad3b83575249b68aab9602de378314fc221ab07a9b2ab0bb4a245ec649219f45,M,1985-03-01,White and Asian -826e27285307a923759de350de081d6218a04f4cff82b20c5ddaa8c60138c066,F,1993-09-07,White -e078af3026edb42cc26b32784baa142a79970078f7ac58f8c7b74115f4f7fb60,M,1951-12-25,White -1e5ee5e58c8f490ae68e7e91b1575ebefc2bf6c211f302a553ff0c4925e85321,F,1997-05-11,Indian -c6bd343ae0007cdb979de7540f2668fe849d68ff47fa1a650a28f89104f41f1e,F,1950-10-31, -30eec89ddd9c342ef28a87f731d6e50ba977baf12d7caa7045a9d56b0e923f03,F,1956-11-12,Asian -064c3e311ef63912b0cc91db9681ce2d301c3e76c447febf8faa303de38cc005,M,1985-03-01,White and Asian -b6cb293891dd62748d85aa2e00eb97e267870905edefdfe53a2ea0f3da49e88d,F,1997-05-11,Indian -3a8f6d79cd434dc10588606993976b7b2bc038ff4a2481e857ac0168fc29a683,F,1993-09-07,White -98144d79af44407273f26589afc01901b7b296deada61a4740b0d404c5043c53,F,1950-10-31, -b1585fdb272b31401eaac5dd46a936c1c09b4861e53e23f12ac72fc077b3c82c,F,1956-11-12,Asian -e73cb135243c08ab2c2adc333b150b9237093315f6b38e3361f07caf2bfb4d6b,M,1966-09-29,Black -6e82b8197ce29396936a07b1eb951c88650a2fc0fe1201a51b15b6ca8a73318a,F,1976-04-23,White -200dd69b70a88134b3a939de5f0b10c44a1675344329b9d9a5ad6b7342f978b2,M,1951-12-25,White -9869a8a3a11a33284dc2bcc3d2e6ffd52cad30e2009c11dfe604e74dc21a887e,M,1981-11-19,Black -ddfe0e8d462af661f81db36589c39882dc0f2330785b5d80cd34f2f520ad618f,F,1975-06-07,Bangladeshi -51d089cdaf0c968c94b80671489d22b6f79b1c57de80df880b008e9b37b49788,F,1993-09-07,White -d4679c618f1af07ee8570edd4b931e2e68e1c2d4b7d3c2f1033a9b597f85d4b0,F,1997-05-11,Indian -48ce32e8ec7741594c8786e445fbed501f5a735a49522314b8e24878e2544b9e,M,1951-12-25,White -a42e815c58f3977fe531a80ffd4659121c3b9f876a89869042816c369ed80776,M,1985-03-01,White and Asian -5844a72aee9269a68da28cae55c706d824b02ffb92189aaacd746a0d6097f549,F,1976-04-23,White -86b700fab5db37977a73700b53a0654b21bdad0896914cc19ad70dee5f5fb3f6,M,1981-11-19,Black -9b19f9ab816598a0809e4afd5d60800f2dbef9cbb9b03ad2ce766b3c237b9059,M,1966-09-29,Black -a77b6cbdf6fae1676369dea1e1ea675e4c2400c9e43bd535fdfd9395cb48cbaa,F,1950-10-31, -e4be97ce765e6cfcd703884cc31db7478fa7befca7cf6dc15420ba20ed718abe,F,1956-11-12,Asian -cbd02d97b0731d88c78d30c20d90492b2d4c3f2f983931c38fef2dedc7ce48d4,F,1975-06-07,Bangladeshi -227445a988500528d7826c6921d2e3b4a79ccf3a94cc3bcf7b667e3ae4990b36,F,1976-04-23,White -23e8b0175874e1bb3b4799e13a6634a8eddb456c1b8675b871e07ec09abc0c07,M,1985-03-01,White and Asian -560aa3e6e94314c78236109e209ac79e15e05ec8bf2dcb78300ae65e720edf9e,F,1950-10-31, -d18b29d80a8bd366b77c952d9775510507c2d006eec917ab2f89ef93acc5452f,M,1966-09-29,Black -ac1270c5058af65025e5b2a3e3014cea69460e7d9f159ae667028e1b6eab433e,M,1951-12-25,White -35bbce4007c5cd57a4c6dcabbdf5b347c9557ec11898111c280a788f8396e2c5,F,1993-09-07,White -dcb5d6e69e4ded78464ae2843f509daf65c9ca09dfdc9b5ad69166341963a877,F,1956-11-12,Asian -f138665c5aa6600801452ebb40df70c46e73f2c51f4cb72f66b438139c5ec3f6,M,1981-11-19,Black -db3defda18fafc0c197740438051c690d98b551a7e449d66390d38fa2db09b77,F,1997-05-11,Indian -0604cd3138feed202ef293e062da2f4720f77a05d25ee036a7a01c9cfcdd1f0a,F,1975-06-07,Bangladeshi -1158e7e12c5e7362318e5e3c2e1f2f1ab49578ab1d1691e9818a7c3f6b30b528,M,1966-09-29,Black -5344c4110f483793dc352c388e67776724c36b4bea3ffda6cab7c75b9c65aceb,F,1975-06-07,Bangladeshi -7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5,M,1985-03-01,White and Asian -ba689abd93c9c6a7d08b5b5c04dd27f6d69755ebe9a87fb969e73dfc11660e38,F,1950-10-31, -e13b778ae833ca8c5d757c58e4a85bd71e08c05caedbd096e13ec3f7b228b43a,F,1976-04-23,White -a2075145d3cc47b2b56aeec5e9c78fe7e0055169961b6823629772c96f1f0319,M,1951-12-25,White -a435270b90e9b7091c77f478df0b8f78dddd32079b75698b8de902061f74efaf,M,1981-11-19,Black -ecac903ea62dc1d5446a88330af0a17ce89c7787e5aaf450113a4a426813e3cc,F,1993-09-07,White -a05198938c6ca8cd56289c6dba6bb8aaa68dfe8e0d7a37df2fb76e48eeba4244,F,1997-05-11,Indian -5e5c743a015ff8d81e2374d5bca1bdf8ed87ce18484fce8cf4062183dde08493,F,1956-11-12,Asian -2c69bc9b34fb0800a44a702e45019c107dfdc8273b9feb62c9615addc7138bde,M,1966-09-29,Black -94f8607915dff25f013e45fc0642fb9830b0fb25ab0ab46d477eaf1061def379,F,1975-06-07,Bangladeshi -39700d452c77592c9710a4a34c6fe97d6150e26d550a5cfa553b0177d7b23e95,F,1956-11-12,Asian -b027feeb60b70f0d34ece10aead660113cf06408da4c6477c7b2606839475de4,F,1997-05-11,Indian -d4b9aead1dd10a596542d1d8211a5021b9c3e894751d019ac64b15a55b9b69ba,M,1985-03-01,White and Asian -4771bef2c04a34b548b77ea7581cf821152d9dea9c2c85151a07856fe3639314,F,1976-04-23,White -5088c1bc42f5cc6a32cdb92d7524ea06febe006baac86a0fc8986a8ee00602bc,M,1951-12-25,White -8952115444bab6de66aab97501f75fee64be3448203a91b47818e5e8943e0dfb,F,1993-09-07,White -0cce0bd361c46fcde41daebc801da75e21320763dc2b1a5a62d9b28e7c3e1d10,M,1981-11-19,Black -0b35b06a22779418f775a804f36485f7bc978071d1709ad263a68f4f18117b11,F,1950-10-31, -72933e3b31f0070af6478edc3becf96e1ee59917620e8c509cf0e6b360e29c02,F,1950-10-31, -a9346b0068335c634304afa5de1d51232a80966775613d8c1c5a0f6d231c8b1a,M,1981-11-19,Black -a1e8154bd1a4c96efad1d5bd4a3ecbd73f4f39a44b14b6025cff18b31ddef7f0,M,1966-09-29,Black -388c2eafe5afd475492698c0995a2daf157eb3b3be8207391d3a023c97c8c034,M,1951-12-25,White -c32ffef1ae0cabc0576614cb4d2064cea5bd9c0fa13c7b8bb9fb9b4e8ba950a9,F,1976-04-23,White -f7c2599681e9284ce1c403459e22b730e997d67d16c45c4f593108e8372029a9,F,1993-09-07,White -e1bb74a7794720edf4935a8813538e8113491318168b1fa61a0ac3528e7b0440,M,1985-03-01,White and Asian -bd3a797ba948938978965781bd341bc0fc7711ed00e513b9c63a61cf3d916562,F,1997-05-11,Indian -8920a14a7f6469b955b114111564cb9736440238d220fc9fd525efdb9a056d3e,F,1975-06-07,Bangladeshi -87e29676d583c04a1682dbd5bc0d989f8311c888655ca66bc486b6f7f76d4702,F,1956-11-12,Asian -891d46993a36d78392247c642138cede01d9841daab1d945709755b5194597c4,M,1966-09-29,Black -68f10bf021d7734e071e07bbf561aa0f1bfc7974f266f71311b9177b177d39d1,F,1997-05-11,Indian -fb8a0d2da8683cec6cc64542f95ae11e085c72d56c744b2be5be335295976610,F,1956-11-12,Asian -5ef6514ed3304cf62b950982541114ac352c52729dbf80747775a9d1a733af93,F,1975-06-07,Bangladeshi -20ca98162ba780883712eb701c84e4c06f73aba78e903935a9ad799193b4627f,F,1950-10-31, -d11501b090fb2749f2c49284394dd36fe0ac76eb1a52cb3bba260dbc119ec46e,M,1951-12-25,White -da6813d10025369ac0411363a16ab750adb21c6d0b38a03a9fc5ce58134da875,F,1993-09-07,White -8def3488486c17dfbc2861301b63237c3c3a05b4c23afed03d59829fba57e10c,M,1985-03-01,White and Asian -5109a4e14cbbfda6b4512fc17ff13814ff9427f7b602694236f2c5be4d9875af,M,1981-11-19,Black -84f01dd97c687fb28a296bcc2ef1801446ea7405860595924eb2b5bb634718d1,F,1976-04-23,White -5de664ef205f95d4a68b69b148eecb04f110ac95ef77f4e5158ae315a76ddd8a,M,1966-09-29,Black -2d86377d4cc3e6c85bab00dd407f8c5b657c239c6af3109de6cdf4d418aa2d89,M,1981-11-19,Black -18beb4813723e788a1d79bcbf80802538ec813aa19ded2e9c21cbf08bed6bee3,F,1975-06-07,Bangladeshi -d359f8b537f1888bc71fe20b3d79eae6674be7aca9b645b0279c7015f6ff19fd,F,1997-05-11,Indian -68e476b5d5aeca7b0e3b5ca867106c32e40cad05a490f6b08a24063cceed7e7e,F,1950-10-31, -6fc8f95bc6465849249d974d53eecc56c00ffda0fc3c7024bfa5b8e4d794b072,F,1956-11-12,Asian -fadb19bfbddde11ed6828a22e742cc97f5589ce48ac8ec8f94a6510ad5f16b8b,M,1951-12-25,White -6e2d4d3a3d4c4bb21b095657230061140c63b1ff4d89d85e32fb9a312319b35f,F,1976-04-23,White -068814875fcdfb8faf539ef43cf5d109a22b7cfd28770e90b00be8c48bfc722f,F,1993-09-07,White -f89f8d0e735a91c5269ab08d72fa27670d000e7561698d6e664e7b603f5c4e40,M,1985-03-01,White and Asian -1f09802c4beac758321ae8a9f94d752b0976c7d54baa6e511bba8a7374107bef,M,1985-03-01,White and Asian -cc6bb91d4a9aec9fe2e20ae49fd18166f522a7918a2ff2ecd1c2c35b5d4649e1,F,1956-11-12,Asian -d40fbd13d527595c47eacbf0d7c87d256139d9d45261c25c2840d30a4756495b,M,1966-09-29,Black -833cd8c0e698745b16dac196a511327c3b30258a0d9b96710745d28eca932533,F,1993-09-07,White -91a73fd806ab2c005c13b4dc19130a884e909dea3f72d46e30266fe1a1f588d8,F,1976-04-23,White -9d6aa3d89c0171b9c2ccd57e6d41ccec3053d3c3f118386e7f10b89ebaa7b8e4,F,1975-06-07,Bangladeshi -5fbc314fb0b511345465b5b907ec6961328e5e393ff831c8d74912184098bf41,M,1951-12-25,White -dd8e8c8c9dae8978f122d7bcf3d0d49f6a0e86b9fc35528f55e78f7408927bb1,F,1950-10-31, -0d6f9709edaeba4bebf576d6b886b8c7083374f521f5256bf571add42fc7465c,F,1997-05-11,Indian -6bcaea9882504292b2f6ea37a84b215463e71ab73b824ee90ecdc10c8dde71ed,M,1981-11-19,Black -04edd1d7736883194af3ddb232c337e53d17bc93cfd2140c4f4c4e0d966798b1,F,1950-10-31, -4eef24c6b8248c2271f6663f44ec0de3c2535ca396a22cf60051137d71721309,F,1997-05-11,Indian -fa4ddf29f41b575377ce14a7900d1e26b669163ca53b80ea3168c6801cf7e114,M,1981-11-19,Black -621cb5d0bdea9584dc9f7ede1479e7cca67f8d9778d7e3c8c5cb8aa9eaef47ef,F,1993-09-07,White -236b565af6b512826fd89dbbde2e88b94465f780985c134e58b62dea6ee258b2,F,1956-11-12,Asian -c57727d64e318e2ea42af2b4c3360999ced134403066d050c980e7c6b70d49e4,F,1976-04-23,White -97a6d21df7c51e8289ac1a8c026aaac143e15aa1957f54f42e30d8f8a85c3a55,M,1951-12-25,White -f8818b67ab25419ad5b1bd61440573498e0785aad6c634c987fe5a637570f464,M,1985-03-01,White and Asian -c7ce483fd1cc5fd498e7e2a09851c65f89a33a6837f66d9fbb36e5e5f70b41a2,M,1966-09-29,Black -085b2a38876eeddc33e3fbf612912d3d52a45c37cee95cf42cd3099d0a3fd8cb,F,1975-06-07,Bangladeshi -f292c8c5c2fe9fd30ef1c632e6936edabe42f087e3cb50ceef0324b729383d82,F,1976-04-23,White -5e74cb2ad4e2c9e2d3f59a1e6c8a5d4999df48e5dd69871d2798e0a146b91ee9,M,1981-11-19,Black -5b4afb8d2ed60a5777760a1cd17fb91b7c940c125cc7f74ae40b75df92036e5b,F,1950-10-31, -8e28c5eb829e92abf7a5a921f42364cbb8b255d7c9861a68a3814a9de95d9d67,F,1997-05-11,Indian -fb84a9739699e1a2c6c56b5baa0a16047a4d845a5c6615ab9e18bafe688f45d6,F,1975-06-07,Bangladeshi -f3457dabe1b412ed6374d56fe8fe3b969c761b77dcc80ecc0964b7c7641d219b,M,1951-12-25,White -1086d35563c495c1cecbce12135cab3b945e01dd185ea2c1dc8ace5ad988977e,M,1985-03-01,White and Asian -b2cc86ae48fd3b8775335b586b3549e53af3d749f07748a7343f893522ae63ea,M,1966-09-29,Black -59b524f8de039389005bce58385cae1d9241abd663e87647727abc8802e85c3b,F,1956-11-12,Asian -de0023e398111d43424845aaeee2e119249cc0567e7b585eaba5f44080b458c6,F,1993-09-07,White -4299da7466df09516d290f7a99c8b7a2fa94766eb94a61c24e1ce8f6ca80af44,F,1993-09-07,White -421c0a7b6d0ee1c34e3d78f1685b6d95113fb2f1091919efaab45f1156a4e428,M,1985-03-01,White and Asian -62bfa285013f08807d394266cdf8261dd060a704959ae9c20e4ad262b65da12a,M,1981-11-19,Black -085bcb597bbd610a7f0f955301d0fe3734b92a7144e87f68e8b5beec1a09b55b,F,1950-10-31, -c403741c4121989ac12c0829be88b8bec6f27b270f3cf8a7be3fe72cba473897,M,1966-09-29,Black -219de1387a6743e583e805aad3bf0ffc69dc2107e6d233d43ee8ab62434729e9,F,1976-04-23,White -82a93b152b275d4c8de67c3d05c9b00e92477eeb024f117c7632cdb26fd874aa,F,1997-05-11,Indian -a917ca757ac59f9d568616140c2f72362fc2722ab277e7b5019008f280f17beb,F,1956-11-12,Asian -fbe697429f16141bc71e3b91f3823641c8dd258dd58bf076241514754954cb8c,M,1951-12-25,White -e6fcc0253ed7a328a10eb6e2e1ad6abcad60c374c64dbac4b76da610085b43d8,F,1975-06-07,Bangladeshi -60f070e3393291d6f836bf0acdca6138eadc4dd1d168ccaf03ab17cf0464f81b,F,1956-11-12,Asian -793733573a1dfd14a2e889a11b2ad7b6981de29df813863b528dc1ae99416eeb,F,1997-05-11,Indian -d4e33e2934280979f580a63f992daa7d0de2cd64a145d5c403a75c3dc5c0004e,M,1951-12-25,White -e2fa8f5b4364b8ef4dd1f26ab47105d908d06ec84d835e3d1aac404a63f1464a,M,1966-09-29,Black -a3aaf5a0e9ad2901ab35ce73910be7fbbe1731a3ed1ff947a6ac395c5024a8b3,F,1950-10-31, -be6b5b7140b02bff9ad8fa5aaaeca5973791521c5029c9f6b42390f8b87ce2bd,F,1976-04-23,White -fcf1e4bf9cc9c1083647b91463e86f49c6961406c37055c7eb8ad13937a519db,M,1985-03-01,White and Asian -bf7db3a1fea244ba0c173404b5abb382def24d3bc547ca4f410bae2a311cdf85,F,1993-09-07,White -182dc6b90f1c9cd913c39a6b5506f582caba9ddeadafe32f5bdbac25efd705ac,M,1981-11-19,Black -284b7e6d788f363f910f7beb1910473e23ce9d6c871f1ce0f31f22a982d48ad4,F,1975-06-07,Bangladeshi -36c1cc2f9d7022bf6beacb6248a89e7e677b3bf9a91e6457a5ffdbade55b76da,M,1985-03-01,White and Asian -aee4848a8580f31102073d34012cb3700fee3e61f9fcfd725fcfe5fa4a220ec3,M,1981-11-19,Black -97468f679ad305fa4dbbf17fd4bf18c41fb655f2d86162b1d91ad4f1e09814c1,M,1951-12-25,White -3b86df3ff95ad2fd72102e34f3a721f2bdc876e12e3bd1434af8ab4cabbd5547,F,1956-11-12,Asian -90b5bc7f03c840b2efddb22ffdfc37dd12cb391b49aa0fc8751726c04d32ff30,F,1997-05-11,Indian -f57b8252cea0e3cad78056cbf96b9fc041279769afd2228f8c9a8a904550aeb0,F,1993-09-07,White -67eab6db6703cdf9acf656bbb09640fcde2ff197786adbd9ae9c14936fc8d159,F,1975-06-07,Bangladeshi -1de4d95a81eb1780d5c21a880a8be6595306670af426e40872b2a03c5cfb9996,M,1966-09-29,Black -1f594da9b409f7f4b9dc5015a81761b2fc2dd60eec773f74539bdfd30c552c89,F,1950-10-31, -01ce4b291ad3ecd240be71870340051b755e74e91e05d5c5baa0d7830c1b75d4,F,1976-04-23,White -97623535a9ed79620c0c749a7c0a785de0f8a895807195daf2b0e58893db160e,F,1950-10-31, -55f0124bb79f5c53d868ca45bbb0f4d04da15eea4fb29c6b95087fe8801bf0a3,M,1981-11-19,Black -7595dae9cde82218336a5457ed9d55ec898c51623f73a69eefaa57a2cc9194fc,F,1975-06-07,Bangladeshi -fa7aec4efb728534ef32c172197c9560097c6d0e4893fe6b20242a566ef033d1,F,1976-04-23,White -3de8392541ace28284aca7f2724273739fcf4cf73de276a8ddd3547c0011323c,F,1993-09-07,White -683d098205b11550f2d71016c82c4377a96c9f808e132f83f15ba9bd058c7b20,F,1956-11-12,Asian -85ea151b8c5b5ab0d3349100e441bd4b8dc20740d429c16c3b85b77066386e75,M,1985-03-01,White and Asian -ee377871c73631fd6543ddb5164d0b48ea072daa207a91ac696051e0838135dd,F,1997-05-11,Indian -86a3f9b13a5b652f93cb17e3f4d212d84cf25c52a595f13fff9f3c5810afff1f,M,1951-12-25,White -524148f24802f8c68974c2e1ecc8b8f47d0d60b7a0d1948951c050a25b5a8e59,M,1966-09-29,Black -90b0ce469fbd8e30a2862bb24d562dc641c534a9b43c7c33c25cfaefe25e5e47,F,1975-06-07,Bangladeshi -fc47b34e36f4032acd1ca2192a7b9b097011ccbfe3d8e27b04bb6999e000578d,F,1950-10-31, -fc71f2d6d38dbfc752ecaf2262916dc8ad99a34243d47b34691f9f8a3afaeffd,F,1976-04-23,White -1b3c33580f2e2094cbde0bfd58f8008ee6e29c06643ca310222045c82fe0ab0e,M,1981-11-19,Black -ad723f42c7aba316d944f19f340ce47d8e0c6fb354d212736ec4782314a6824a,M,1966-09-29,Black -87acb1e183a2b0f74c3b2008b8ef6975a95269bc490a8886f317fa4bd714b085,M,1985-03-01,White and Asian -9a35532c7499c19daeacafc961657409c7280ce59d7ae1a3606dd638ac3d99ec,M,1951-12-25,White -67c312330b0371a0a37c565cf44ef264835147fea61261bf57380f338efcd8c9,F,1997-05-11,Indian -1ad269a743bd01b5bb74f135c332a4acc98ef1a570d966fcd6a801de6d9ae3bc,F,1956-11-12,Asian -21900f41ecb7b8e6cfd9250f096aad2fe7f6d8fbec9436b2d28e48c304ff8255,F,1993-09-07,White -7b81eb727ed48055fa55c5e03aaa43f27b01bd9b1c8eb38f37a1ca541a79c1f7,F,1997-05-11,Indian -3bcc1340d90b3d55accb9a57998b69708fea2a63c39f7369047469f952ccad4f,M,1985-03-01,White and Asian -b6b1b469ea43c90a602e7ae3bdea001b11f66c17337dec23df0b0249542357ee,F,1956-11-12,Asian -709df012e236dc3f5c53b8ce75c5adf74c39054aef58e3eca5d852fa5f2244de,F,1950-10-31, -2618182c3894875e16eeafa6c24e1fe926150ebc6403980c2cb1bbff192d296d,M,1966-09-29,Black -02c000a36dcd047f5738f5abfda07dc3b6d56fc44ea752c8f45b965f6fc04c1e,M,1951-12-25,White -bda584056eb9957d6c681e00079eff36fec289e2a0432a4221b95438dfef5ca4,F,1975-06-07,Bangladeshi -f4dd301311d96b70a2ee62a6bccfe21bb0d94a89ca2805333cf352c1a2381c13,M,1981-11-19,Black -2cfd4b162e427e8e59a2fedf7d5d138eb696d08b98ad9765da0af1690c77b280,F,1976-04-23,White -3f1bb7c0da3c01e685edd592f3a3ca0b149a399d25b97c0da47118c24a39f59a,F,1993-09-07,White -455ae2dfc77dd77562c06dc893a49d84795a93e4f86ea2e92006940c870ec044,M,1985-03-01,White and Asian -68fcd1eb684859a314bbf7f7c99037cead480f5bb209ccd4725bd319423e832f,M,1951-12-25,White -62e66f3e9936906923febd26f9d2536edf38936998c4e5d678b925d848aaa89d,F,1993-09-07,White -87e50b28705900bb064d1e9df1bd6cf55a7efa01cc16c6cf0703f491a1f13d44,M,1981-11-19,Black -3c2308b1bc64683e5aed4111841da5bc3b3295b01a852f1dc4e68510f79dd37f,M,1966-09-29,Black -ed0b853bd9c28435b6aa98fb0780ca80d7d6f72350f76d57aee9509219cc8d61,F,1975-06-07,Bangladeshi -86bc00bf176c8b99e9cbdd89afdd2492de002c1dcce63606f711e0c04203c4da,F,1956-11-12,Asian -c86a2932e1c79343a3c16fb218b9944791aaeedd3e30c87d1c7f505c0e588f7c,F,1950-10-31, -5480ab857f30bc9abdc0d88179b66cb30b6a294029f8bed71e3b606a19941359,F,1997-05-11,Indian -2099a9b5f777e242d1f9e19d27e232cc71e2fa7964fc988a319fce5671ca7f73,F,1976-04-23,White -e9ad42e2c3f4805614f568186b0282219cf7350b7707f2036405835916e3a65a,M,1966-09-29,Black -83eaf4dc5e19bcbeb23801e2c3e08c4a89cc82d0a42a903767f9c938d1deac4f,F,1975-06-07,Bangladeshi -5f128c8385e577cd1539a0e5a758e4004f4b97e5986b00fb17d393a5ee5ed85d,F,1993-09-07,White -92a6a32f99def322d70ea1167a99c6859ab4e8bbc593b997ec5994d244a82475,F,1956-11-12,Asian -9f6cb78c09b22a1a10564f6be4a1784327a42ff11a10a31d355435db59f44710,M,1981-11-19,Black -d62a7b3da232bd0ac1f7520a3b5bb57b171aec57f960f55b47b1987d4e398f68,M,1951-12-25,White -24be8ee76308afb924abfaf26212411f2b66e53b9ce2534e5c9f88354c88cc39,M,1985-03-01,White and Asian -c22e1a4acbd2d996ff19a852585f9434883c30124f6b118eb9152fe4e5ee7994,F,1950-10-31, -5c17cac5569c1ab72a3f009c7608dfc49299ad8f447e4724030ea416383b04fd,F,1997-05-11,Indian -fc9e91cc78e1817d80b4ba8c2dc9a638d0c57959825ee34f5e3d7688ad80dfb9,F,1976-04-23,White -316c0f93c7fe125865d85d6e7e7a31b79e9a46c414c45078b732080fa22ef2a3,M,1981-11-19,Black -81f27f8a7d8766c72c0307a31327c1fad9007c6c3d33724ad2a5c0a8fe0df33d,F,1997-05-11,Indian -4b8ba4b13094beaef100d3eb7d4c8e23600c30be4420c47e0d6b4e88dbd70abb,M,1985-03-01,White and Asian -09eac95eb995b821f45353054da3c7eec5f5171fb061de72f1890679956b12a8,M,1951-12-25,White -9ae8f17cfc8ba7fd8fb34b2a194ef965a3b36a40839a46eeab1350e916692ac9,F,1956-11-12,Asian -c7e616822f366fb1b5e0756af498cc11d2c0862edcb32ca65882f622ff39de1b,F,1975-06-07,Bangladeshi -8b5551ea922dd24625c45051c64adb50fdff91fecdf5327a02c7b0be3933965e,F,1976-04-23,White -6f81082badfd007354ac6ebb78adaa04bfedf9a1fb9a01909788bad472008ea3,F,1950-10-31, -bf31e6128301d31bb4014faf6b1e0f05f3ab8877cb55ce3d1ab3230d2ea8a220,M,1966-09-29,Black -172e1676eda470ede17e9d491554bcbe97ba4691f92880064c8cb29ec35a467e,F,1993-09-07,White -00bebc5be79d19e1b8b3f250dc39aebfa9a054baf5f8d61380438d92394c476a,F,1975-06-07,Bangladeshi -12f26af0dcdfae8fe4331d6a4c369edd549220cdeb119b3b1831b2a2cf77f281,F,1976-04-23,White -f4466a4b51d21014b34f621813a1ed75f1c750ec328d908d9edc989c64778962,F,1997-05-11,Indian -8ef532f440c91b5dfa24570e53d6bded96c4064a45e6d18a61c5e08b172b9814,M,1966-09-29,Black -a440868cf4311953cb45c7ded9360009e1bb77775b6395a3e13aa9ef831794b1,F,1993-09-07,White -63db0204e2f34aaadace364d046ef5d7614b8cb287b939e55ac05c53aee90de1,F,1950-10-31, -2782526eaa0c5c254b36d0c90e1f8c06af41d167a8b539bd3c81cd6d155e7e5f,F,1956-11-12,Asian -cebe3d9d614ba5c19f633566104315854a11353a333bf96f16b5afa0e90abdc4,M,1951-12-25,White -34e2ad7b31cd9ee87c038c10fd6fbe310314ba67abb73a686f0d1087267d7a1d,M,1985-03-01,White and Asian -a4c6af0cb6f02dff01ba174e4cf11f24f73d9ed16ca7a1e3c9d831c0139faa5c,M,1981-11-19,Black -1c8dcc518b9942ef52885666bfb82260c287afbbeebb71e741b1262099424f11,F,1950-10-31, -ec1c7d93ba051204e4fea7e167f540c2136769c82329c53f5b7a0770bb237987,M,1951-12-25,White -07bed92aab16ecdd9c886a79e44f0c0b02d70c746c593eaa3b8acf24e687bcd8,F,1976-04-23,White -10ba045e9ee40807e57f6093280b9fa9eaf640ba4955e340ae4c749382ad96fc,F,1993-09-07,White -bb9b8ef813475d1e0ad84e2505af6656d16c990b1f77efaf9324e8fbcae2db67,F,1975-06-07,Bangladeshi -162753c27c8b32975a0edf5e89ab4ed8e2f06f02a182e0f181481cc050fdcc72,M,1966-09-29,Black -c2077253a9b10166e7c8ffda8f2377456f332029eea3d27def7fb2b23502c0d4,F,1997-05-11,Indian -1c63ed9164d61acfd1f4f3a7b6dfacbd98d1dc01e755b7b558c6af0491154a2e,M,1981-11-19,Black -fc4fb94d36f45aa9d13358022455e55db4b6f0eb536a1b2897c90dfd3df9eb9b,F,1956-11-12,Asian -f6103ca1e01bd200a9258a366b7e8c22a542e771bf11a0679967a5bb47ef3688,M,1985-03-01,White and Asian -809e63d5c8aa03af112d17361058d0d8955f6d8e1e7591487d593dad276f9757,F,1993-09-07,White -4cc3d9cba4633096fadf09ea1106b4b321ab81b1d461c3d6994f0e303f631249,F,1956-11-12,Asian -8b7fb6aee1c63e17f44f935a6b64e05920ddad65327de1cb5e6994a6a3f0b618,M,1981-11-19,Black -a6c2a2325dfd588f202a240a06ccb2b037854e7097a303fc8991ecc15501528c,F,1997-05-11,Indian -11f8e31ccbdbb7d91589ecf40713d3a8a5d17a7ec0cebf641f975af50a1eba8d,F,1975-06-07,Bangladeshi -677fe64a8ea7e98a420d129f1cf3d4d23a9f107e9fbe8d83efe95f093001cd54,M,1985-03-01,White and Asian -d6723fa996ced47773f2dea29cce9b11f951e6dafe321a84ac7d32791c3b4660,M,1951-12-25,White -e4c6a9f38e8e4d127290cf104ac1f46d0649c7db6c89f4bc10be7447bf1f514c,F,1950-10-31, -c9a5da075f9e5c3e7a916570946fed4826e181656382e13696fbe0aaf1412bf5,M,1966-09-29,Black -99ee50221221864d50c60baea6f14d8ac2e235cc6e78be6088cd40cc97fca394,F,1976-04-23,White -290a0b92873bdf4e47986dc5208037bad7527653bff700dc53c1e57eb98103c1,F,1976-04-23,White -47fec9f491173c57c1d5b35dfefdb69cba6bd61bfbadea64015a65120efa15a0,M,1985-03-01,White and Asian -769e881d85fc5d27cb4cbc8382200d95b179cfdeb56e0b439da737069eaf8a5a,M,1981-11-19,Black -e4e549408422875958476160732390defefcac7c2bd8353d918fe452d20de2a6,F,1956-11-12,Asian -bd94717d91260895035088525e817ea10375454f03aa3bd8b28b355a4cee22c5,F,1993-09-07,White -35254aa9a21444e50349cebb5465b9b42cb4a625ebcbffe24504b178c35bcb85,M,1966-09-29,Black -5b60f221d4a1852afd0194ad0857fae9c558608e35621dce43301e8c771b7877,F,1997-05-11,Indian -1706be6c293444756e72b05e4afa9eb1038e552ac6ce058309451ef7ddad7748,F,1950-10-31, -92c5fd0421c1d619cbf1bdba83a207261f2c5f764aed46db9b4d2de03b72b654,F,1975-06-07,Bangladeshi -4ec24a2d7f1dfae1f98882eabf0400cd9483dd2de78b926b625c46e8787f3816,M,1951-12-25,White -2499d690642faa4da2a67b078236d1c031217f3c31cf2da2142c8e84e3d617f1,F,1975-06-07,Bangladeshi -9b09d7f65345fc85aaa8814b69f3c933ce5eda41786f0c1df1b1ab2b1fdd2ecc,F,1956-11-12,Asian -40f8d6d22b99ea3388538fd60bbf532256434b0eac401df1d9a2bdbb29354ae8,F,1950-10-31, -c66bbe9d118f554bfdba35a609848b9ab2d9c22e6bed77be6f8a55e96c295549,M,1985-03-01,White and Asian -35c71bd7eaf4607047bb7c186d17251942204229b897e033923b13dc8ce2d109,M,1951-12-25,White -2e00b312b0a9681bef09f9085a4e918b8fceb0c0b1c043dc17c90beef5fa446c,F,1976-04-23,White -d536a8c1664fec0bc85615cf3cb2645871e8b2935c9642c534c67ac85315cd35,F,1993-09-07,White -6c0f3412848008d49d186d5fad7fd1482656cfb62ad3c060a14e41c3fb3f1b43,F,1997-05-11,Indian -02837c1944876b4fa860432c13f2d9b11a7fd94dae707c4143d1217dee66fc43,M,1966-09-29,Black -d829857eb1366e70be857a69886d1555af0d32681beab068afb93492c2e2b843,M,1981-11-19,Black -74de057f768beb42de17ffc4b8a56100f0bed85947ecacaef111e3d3ec997950,F,1997-05-11,Indian -0ebb3519a0c4044c4571b2408a52e7ed8009564205ca65a69fd43f232352f256,F,1975-06-07,Bangladeshi -07e46896ba89f88776fed50a1b7895129f9b9af7d3b8b33ca23af478bb818d6c,M,1985-03-01,White and Asian -68c6c6e9ad314d1a5c4d647cfb6ed84265e47cbc2a05a54fb58ae74c0085ef29,F,1956-11-12,Asian -5c3e9040008c91509e2d28e5308034b677d4e2cc0b386863d4883bdb747eba1c,F,1976-04-23,White -9dcbe7e30f0bd60827341113108a55f86b604f921e0792418a9810075dbf3d22,F,1950-10-31, -30e4c02268d49ca010e3c62fcc2615da2fad4cf0c359eb8fedc0366739b34205,M,1951-12-25,White -7c3d90003d7d645be0b5f3782533c198a5d5dee06870420b4d594976ed857fc3,M,1981-11-19,Black -509694b0a010c6431900e71b8210521af57d39ce8e64deb365f0a5c6c9a2ef6d,M,1966-09-29,Black -61182f39851829ca78c919a83ecbfa045fc0686bff16d0cfa3e643988d9dfecd,F,1993-09-07,White -f24f1a64b591544a871284bdde332d3c5d2cb109d21c03122c57d768e7c535b1,F,1950-10-31, -81defd9e2e8f85c7f09874bbe5b8d9a9a5503c6d915a3afe4b65758f28d71fb7,M,1985-03-01,White and Asian -367461e6dd07bdb57342cb64b2a8d8e0fa13c53842a95ec20a90d35bdd6eb77f,F,1976-04-23,White -c2a181d8178a9f753b013fc4bb892ceeb5dc5bcb763352610844b93341ea52a4,M,1951-12-25,White -1a42d5267aba37d7057cadd672fefef04771be2476eeee231d6f56a8e1f57733,M,1981-11-19,Black -2b9449f314bf93145f8122906d8dc56c4ca1f116e6db7ad2768d6f9ade29b31e,F,1993-09-07,White -bc8db39f614342b78a67494dbece216d3726f6924b73563be34fc630ac1db7f5,F,1997-05-11,Indian -102624ac0a714fa26aa0f8569b1aa0f0f80c4b34de420d2bb9e46b3dfdbec039,M,1966-09-29,Black -40962624bfc236888ff8a68a74b0c30166b7245423520bb28196b67f57d5e332,F,1975-06-07,Bangladeshi -234666d765f4c0a26cf4d96eced9155888477cb9b19e8cb48ae4ea79ce1b28de,F,1956-11-12,Asian -75f7313c20144e39edcf57a14733d074aee0c482320d5178ee0ef2f2608c2996,M,1966-09-29,Black -ccbcd0d62f439eacea8b0fa4139d934d2782bae1b8046e8764e598dc64a9f421,F,1950-10-31, -0df5486b7bca884d5f00c502e216f734b2865b202397f24bca25ac9b8a95ab4a,F,1997-05-11,Indian -a15faf6f6c7e4c11d7956175f4a1c01edffff6e114684eee28c255a86a8888f8,F,1993-09-07,White -42c6024940120036d7a0103375d5b8e5072589f6d0f9a1a8e7f6eb6a17358675,F,1975-06-07,Bangladeshi -5dad6478e152b8aa33dc6a2c27992d26c0a6873d6ed1407a7e6efddca3985122,F,1956-11-12,Asian -6f90a5a0d3234433d03c7a06fc4bd5c3ac1f21f33978292fee61323e22238a92,M,1981-11-19,Black -0c658eb5d61e88c86f37613342bbce6cbf278a9a86ba6514dc7e5c205f76c99f,F,1976-04-23,White -6165d33e490f91dbf808b194904d4f07c550d5e3a19c9e776e0c895136ec9fa2,M,1951-12-25,White -64d095f2fecfdeb907dae5403b10966c4ae755b7598aa078cb932e345bd0b5d0,M,1985-03-01,White and Asian -d3b913cdf3e8a79786216cc7bbd15fc27f86a7be516f3e14c909b86b7f9eb241,F,1956-11-12,Asian -8b80f49ec2822cb3cdbe97d9405e39ae40ba418b084c06604b51e2a5af11a7f8,M,1966-09-29,Black -a8cee66e4788af8b855979155e486c988d84a42aba71e43a0fc26997ca12e737,F,1975-06-07,Bangladeshi -4099ed5ba70aebc5a9dc26bc2093d4b45839f99b306bd12f68cedfd351e6ab7a,M,1985-03-01,White and Asian -86ab8cbe5869bd1f9c70924e9c04fef3bbe3bbaaf4e816efeeaf7eb6a31937d2,F,1976-04-23,White -a7f0b84de7a450eaf6ffab449cb0f141b69eb701ffb455f375c3dae4277b25c1,F,1950-10-31, -b6bc077d6675a7c8cc9e2fa5a08c86ba59b675d69af118052bb390c3cf11e5e0,M,1981-11-19,Black -f15223dcc0da90206acdce51c6a9e24938b18665165a819f1abb69233c068cae,F,1993-09-07,White -b967fb22d506bda1b4d8a878f46c85862f5d71bb7669ecc6b0fe65f5ad19f844,F,1997-05-11,Indian -afccd937e6ac2d1b6d6e9f318bc5e8a179c977c7413b33b3e4d902ff8cec501e,M,1951-12-25,White -c78961d3d782d8a85d9344eedae027f43ce6b9fd35c8f355861a39e0d0ddecc5,F,1956-11-12,Asian -9b6c13f0d182b253c607005217881bbca28a5b04076842f6bc65580c3801a0b0,F,1975-06-07,Bangladeshi -df56bc061e91023bff33c6ba0d49d166a60e3aa9317f90e7a7fa3d7a65f96886,F,1997-05-11,Indian -aaee0ce51abf0849e68b257ab97d83a36d9d082916b939cd1012f27d7f6bb873,M,1981-11-19,Black -a67063986e67b7ddd107229ba9d480ee3a02f9d59732d4bc03b2d97d27a1310d,F,1950-10-31, -04222ea3e14cb1209b9726defe3efce5196b7afa0a959854a30401be41f4026d,M,1985-03-01,White and Asian -12132cd6767ee325d35883d25c0b7f5e1d142d60d33c563c39cea29984dcea57,F,1976-04-23,White -f7b856c054de7ccced087ad4f9413380ec494e40abc818b840aaad990ca3c5bc,M,1951-12-25,White -afa472a961fbcb09314e81b2c3eb19cd2d9fd7527582f43a3b8fd9d3ed6d893d,M,1966-09-29,Black -ca0cec7f60085f0289aaea5cbfbdd84ad2ba05148de121075dab1c636682a566,F,1993-09-07,White -0fbc9039145b6449a7765dcc00d3bd8377d93ac8cccda9f0292b5976e6d67c75,F,1993-09-07,White -9168e847861429230da331e23aa7983862033165c1ce3fe5f6d29a76c04c8a07,M,1966-09-29,Black -d15e7843961ed4bfa3e08a80b882c74670e9e9347ea55325cbc1be93c7f54edc,M,1985-03-01,White and Asian -089ee14b926fabea6dd95890032d1a37e69c1011c710977af774ec3a7b5b39a6,F,1950-10-31, -54006483f014c53f76d879c033e5589a76e0080d8ced5d818d777344eb78656f,F,1976-04-23,White -3daebbc6dfd81355f1cc9d9565ab4a4a53bda47f6117529409acc7acb55556bb,F,1997-05-11,Indian -eaf89db7108470dc3f6b23ea90618264b3e8f8b6145371667c4055e9c5ce9f52,M,1951-12-25,White -93411f44e228b5004bdec50f32b6c646819eebd09ba3fa26511502b23781a617,F,1956-11-12,Asian -87a4a78ecb6deb2dee9ddd0678d03800141864a049c99b072e1e6e7904018db7,F,1975-06-07,Bangladeshi -0e78437805639c14d6413de94c031fd1babdb561b7728d31ae06bfc5ff1766d4,M,1981-11-19,Black -28955b1fb53203e2ff246fd2d4c3e148d4666a617469cdcc86060985682ab4bc,M,1951-12-25,White -3da6ee6699da1eb52d358aa59b8e1cf6b5d77db224b4cec0faaa540610fb3b2e,F,1993-09-07,White -5620e84be3e5141819e0d9e4ba10b782ba40e232e56352ed636dc0282161b543,F,1950-10-31, -ff108b68b0e9bc1e5a744f80f9ef1b8575c7d041eeb3e8d2eae300347de6e7fc,F,1997-05-11,Indian -9e04a49e5786695116f9af28552da3083d4eeb015294b878d27053439e363cdf,M,1981-11-19,Black -87c7965a1cc6c11a653b210aaef95e381b95afddf1781da3fa5b2d4b1d3097bf,M,1966-09-29,Black -fc091d39524c9d4b5b11f84f9132996a94ca01c9816d2db3b866bef1b0699d91,M,1985-03-01,White and Asian -82607c98dec8f45ac84e7eae445d8da60d05706ee7405a9a53b0c914b488f1ab,F,1976-04-23,White -35a9e381b1a27567549b5f8a6f783c167ebf809f1c4d6a9e367240484d8ce281,F,1975-06-07,Bangladeshi -1a6d9c97798d8997f85ed9228296d533be6b47f97217709d7e2b628e21800220,F,1956-11-12,Asian -0b0fc3be2ee8d1d33518036b0f38402ee7bc022380a0b9653886019d38acd128,M,1966-09-29,Black -74332c78b10e3ee51ac4a3c18ccc15c1b6c9807b3ca609969de5e3c361573dfa,M,1985-03-01,White and Asian -23c5910b8b10cfa86e40099cf01e5c2b36f4dd0a903f0c60e5517ea177f4d390,F,1993-09-07,White -5283f1b4e66467616feca1e0162c7d37e4e304623d6343a525553ffb436cbdfe,M,1981-11-19,Black -c032851ed192d8ac0a3ad04b0ef3060b44d1f6d62f8c17414006702787c5d88b,F,1997-05-11,Indian -724213d95916de041564e5d39c2373585dc15855743a42a5841d849b9f3716de,M,1951-12-25,White -f7abf2a084c3668c7b90654bf01205085e5d0219ffad0564904e5c923af11523,F,1975-06-07,Bangladeshi -4d5e5deb0353d3a6c0b5cf97de0a23087a56796a3474ee500edbe4676c3b9716,F,1976-04-23,White -ce02d4b6d1aceeea96a562c10923d590607df6182b4a3405ad10be85b6354787,F,1956-11-12,Asian -1a1cf797fabe7f95836fabeca626907c77b3e6c9aff7c2290b396a238c69362e,F,1950-10-31, -096012b7ebcaf56d1d63b2784d2b2bbdeae080d72ad6bd1b9f7018e62a3c37d0,F,1950-10-31, -477f4b2cdd3fe2b9fdd7dfb887f98252ef26cecf13eb53289116a1344382256d,F,1993-09-07,White -9f006addc898a6458ff29db72de90b27e29302c92b9c73e33515df56290bd855,F,1975-06-07,Bangladeshi -dccb3c52e7c79f7033e1ea06eadf92fd90bfd7b0b5737dc0c2511a0e163872f5,F,1956-11-12,Asian -d1c78c9aa5dcb0991f46b25fbaaa359d7d5823ac7a2a94c4d4a31da42a26c24f,F,1997-05-11,Indian -f0ccd8e78b618cb55731054911af540b5496f37e94026cd20dae22363089b2e9,M,1951-12-25,White -fce86e339dc3131c489202ec3b6c8d4319c61f152b3541ba0e4141e5d5c3fac3,F,1976-04-23,White -d72a11d264e746464ed45f73e1ec058e33ad40270c79324be171932d834d11f3,M,1981-11-19,Black -0b06d2ffebd5c025cf444cb95a73e1fff046569238eafd1e80f511ea2a807de3,M,1966-09-29,Black -5d85be4cc5af40a7cf2c4f0818d92689c185fdea6566745ef26305d80413f483,M,1985-03-01,White and Asian -bcaf44f4041e62e142d50cad2aae2520e01247cd144d28d4ab20b758524a7217,F,1956-11-12,Asian -313c938e0103b56b43632b702e3e63447fab1f90a4fe890ca5abb7a6cf8830ee,F,1950-10-31, -477d8dffaf92d265c56dca496167d71bfc1c34f443bc9a6677009963e6e99706,F,1976-04-23,White -76ba652cbd2ef1931d0546ac1c9d8f12d21c81fad272b754975a0b1561dda275,M,1966-09-29,Black -96da2f8885ba92c9ca4d34bb763a3bc9e19017f0df6424956d61f45abdc7f241,M,1981-11-19,Black -96bb293aaa330ef307ee004448b92b75ffdc25ade2831ed23fc60ffa97fffb7f,M,1951-12-25,White -7b2c21ead1522776414b5a256722903b465fd0c8e029005fcd865144a429da52,F,1993-09-07,White -2b4da94214015b4281ac65905270bda4eefb97e08f5b4ae2f517b424ff77bfd9,M,1985-03-01,White and Asian -bc57590a33fe355e174396df60ac503f8e99763776307dcd8b9ce8dfe3c47a2a,F,1997-05-11,Indian -edbad80a93adb5830afc3fccfe0e7c27a81359b59bb2a8c277f95d4adec7c389,F,1975-06-07,Bangladeshi -af5422f824076084bed9b8a09086ac59f0ed8c74eea7b189d2809b198ba1f6ee,F,1950-10-31, -f391e014b2ee3a42955272b8fc78634de1d5833e0cacb412b180376f9c756e49,M,1966-09-29,Black -7a84ae249fa744b8c1acb6c5247c2cf443e31870aa7217f4a9cd9b157dbd54ef,F,1975-06-07,Bangladeshi -7a9b1b9dd2e433fc1fc962c38ad571bf1ebb49cb365bfdfb2c36d3f059d6fdd5,M,1985-03-01,White and Asian -10e4e7caf8b078429bb1c80b1a10118ac6f963eff098fd25a66c78862ae5ebce,M,1951-12-25,White -f6543e952ecb93fba1fa65c547c5073a5d25aba46611fe6cc76c1d2645deb3ff,F,1997-05-11,Indian -ab16ce326c754df41ed00df6f64f7073dcac3e2986bbf8b2a1ce4549b189a0fb,F,1956-11-12,Asian -43d244581aa23a744de9d775979165eb226a80e2cce6c0d0885412c9b6a0dbdf,M,1981-11-19,Black -a807c0dc0a5b5ea4a70b12ba52ead3d30922e1eac15c396ccfdea715a2f15396,F,1976-04-23,White -10716564f7bea47036cae9a39adc7dcd395850714228939a2b508d4e57d61824,F,1993-09-07,White -209eb5f20ab018ff6f1e42b98e5b57921aa4e2b7a7b683de32458b7153720a28,F,1956-11-12,Asian -93c3755d0c9030cd90f0e6eae6870a8497730f89b7fd0cf231adef048d2b524d,F,1997-05-11,Indian -130790feced08212eed7d1490dd4d7abf138543be61a4744a03f69ecb9609764,M,1985-03-01,White and Asian -5c344ba7044815dd03c3448028a43e5b9c16074cb5a6a19c7ae86165c149735f,F,1976-04-23,White -a5af16fb4a4856cc3f8530b5214830a85103fb5a515b39b93e652c0a142363ee,F,1993-09-07,White -33eb7e4ae43f9873d9c84c0f07b055946b24a71ca27daa60acbbf95b44c7c5e0,M,1981-11-19,Black -501a4e61aa4f7737df0305124a39119b79a6449d2bfcc6f026da0197af2ae60b,M,1966-09-29,Black -cef5838d118dccd9de488f16a934cf10a82303577b62888b7ff6f84114827e58,F,1975-06-07,Bangladeshi -7f3ee9fe1fbf452b0c242614e1cad18b6dce034e5bc80763dff6332e872ad2ff,F,1950-10-31, -fd0f7e53c5b02b688a57ee37f3d52065cb168a7b9fd5a3abd93d37e1559fbd30,M,1951-12-25,White -7125e777a6b199fc4e8c2a0d024215e393c06bf775c217a5f2d8d1a6a7c98d96,M,1951-12-25,White -ac93f3a0fee5afa2d9399d5d0f257dc92bbde89b1e48452e1bfac3c5c1dc99db,M,1985-03-01,White and Asian -55e8ab098d48f8be5578e3d3708496d152a27c4c5713586a8d321ed84c239827,M,1966-09-29,Black -db9351a297a7362b3c913ac8de77bd9a1ccc0d61bada939db15a315f5e8113fc,F,1956-11-12,Asian -3d34f102d1708fc5edd3111144f78764b4d7b745cb5450815780545495df1e68,M,1981-11-19,Black -6cb6d4b2fa122bf8bd63280061e4a230565fdec3ce03268caa2f48ccd931c691,F,1993-09-07,White -19e68d9fe08f7c4ac18948bf437400f955359b1cf21a86544342427695c3c938,F,1997-05-11,Indian -de498b9901677f58da56b38a515db0a6a3b93840bde5fd0b74437502163e9fb1,F,1976-04-23,White -12e967ca0f368d0d8511518c58c6929146650bb1babce4448263e67722dd0161,F,1975-06-07,Bangladeshi -7ffc2066e20c16e95c0b41167e334afe57ff4991b21c8d581611a3f516a786a9,F,1950-10-31, -6ffbae9aaff664bd4739f51a6c7883a2c3ce74e9227a6aff728d0d57ad56f234,F,1950-10-31, -929f003731a97f915d11893c6652bbc7db0b36118eb4357cc721f7f68aeb25ff,M,1966-09-29,Black -7fc81a57656ec055615121454cb5343aaf3db93c762fe310d976e5fe8d05e66d,F,1975-06-07,Bangladeshi -f0cbba2470c7c8706fe77e8d88e947ed8c33100409ffb51ae1af99af7d3077a8,F,1976-04-23,White -3097fc802d49355a0a256d4b07ab9f7257fcf35077cdb8133d59f607fedb229e,M,1951-12-25,White -c0cc3b36d8f848d56fbf95b8259dd6f3bf80707e436233a6bfc2667b49e28c8a,M,1981-11-19,Black -22cdd352056c42ac1a6d01d6bd4f8e8ed1c27fb9addc6e500a59f88b57e4612a,M,1985-03-01,White and Asian -8e46760943785a93c7bbfd1b0e733299b05f4d9fe575cf23087da310db486f7a,F,1997-05-11,Indian -12bdc9eedc0abc0dc0f5a4c36836d8bac9a5b78de2e10a4747859a305f6d4535,F,1956-11-12,Asian -02f99d2002c703f1669e358989f1663e1e38e96297dcb3bb70fb67b0d74fb877,F,1993-09-07,White -eb0c9cdc0862653468dacc6a876a0c40e9d642c50f798bae1162fe27f18d482c,M,1981-11-19,Black -ee9d527a0a6108477fc5c98cf2a00f65d38c8e8508c4d17c1c11b2441c78a2ec,M,1966-09-29,Black -c62ce8b4e927f02f91742ab99d269a17e05d47f12b2275cec9d353e711ddc218,F,1956-11-12,Asian -8f97d9164b8fa131f0361abbe49fe706d3abfd77663ed7939ee20d361a0c6a67,M,1985-03-01,White and Asian -8b6cd7c429e83373dbd412f43d7422c0c4a127d93d0f2ad15909f0c2a3e7b320,F,1976-04-23,White -80c39b8ca01cdfda142928ba683d503173017d52bfafacb118c62e34ec9bc693,M,1951-12-25,White -7c4e3e519f7e8481ec5cdb09dd1e35a1a79860ea1d440673c9aecb9c9057148a,F,1975-06-07,Bangladeshi -d2e655334ee2e4841be477484381df1617a8b891adc04cbc536cc1bed229d713,F,1997-05-11,Indian -5b7c4e75c9485e2e988dce7c57bd9e9915a74217914e7d7a1f13955367db0899,F,1993-09-07,White -8a9a02d73aeefd97306a08c30969a9e8d5ef03960978a1c5db4447558d40f689,F,1950-10-31, -062f50753b9095ee2eff40f888d93e61f2ffeb661bb126d15229f03e0463bdb4,F,1997-05-11,Indian -b543b2a3edcc48cc0f9d7159522673384b34fbce51920d75df4d0c184dd89b18,F,1975-06-07,Bangladeshi -46f9d22816179479bd27b0036854788327eedf3f6f5d8dcb866b976e17cc9715,M,1985-03-01,White and Asian -3d734d729009b74c011651eb24b06a74151fb99b8da5110295da8bb77ec3f92d,F,1950-10-31, -c63efd61a70d0f6b7e5de2b9e0c36adfae6d760613271650c71c90df16c71344,M,1951-12-25,White -a73ab888363736220eb589458721088241ee10059b1f5898a13fe9c2e14fcd8c,F,1956-11-12,Asian -30e26cef13a6dbbf0e3035f8c16f55670f4e468e97ac7dad43798621da636abf,F,1993-09-07,White -f1916530dae6514fd8ba7c17eadab5ba6739cbd9190b7f967adbe8744748c539,M,1966-09-29,Black -4f97f2eebf92cde58c103466712fa2f65b10d06ff8f1934d78ff592fa0575e27,F,1976-04-23,White -52efd2aad05d27e3eac3665b82f2bffa6da52351ce871c1c28e4ba69b40ea3e6,M,1981-11-19,Black -28096b238fafbfd5abdb8ddf4e7f5a2c67196cfd8b5d49a196012d0269a2189f,F,1993-09-07,White -1de4842b42fa3db35fc4cf058a02acb057a8df02d0d3cdc96e686551aee25a39,F,1997-05-11,Indian -3055e0d8130c7a197bc6e020afe9bea1edef31f33b720cc326dd404d8e3f82d5,F,1956-11-12,Asian -f44b7809595e5ebe3bb4d65e0cdd1ebbb41b29f5ab8fd73b2b6aef8e8691a62e,F,1950-10-31, -3bd625f07792e885b5a4b5f0b9005a5b53a56a610efa2c27cd923aed53a6a4b5,M,1985-03-01,White and Asian -000f21ac06aceb9cdd0575e82d0d85fc39bed0a7a1d71970ba1641666a44f530,M,1981-11-19,Black -be4b2f45069c180ef309521f6770146920df18e69165c577dc7ff8e5a7c34465,M,1951-12-25,White -5e968ce47ce4a17e3823c29332a39d049a8d0afb08d157eb6224625f92671a51,F,1976-04-23,White -a829c72c42755e384141ad8f163e4965ef5c9f8f0e07378c1d05a7222af0dd80,F,1975-06-07,Bangladeshi -e6f095e985e6762f1538b47ff1abda58dbe8ce088b16d8a5744fc179e9a2fc16,M,1966-09-29,Black -d7be6321b3d940822dd195bcc86cca411cd9d95f82301d04b84119671575a2d9,M,1966-09-29,Black -46db1ca7f3598c26c3e6c8d99e3ed95d2b1c76db040b8f8cd29af723ee086077,M,1985-03-01,White and Asian -64d94c866dffad6dab67498f5ed9cdf32a6e747e2c17e58d2535f549f7976cb0,F,1976-04-23,White -eaa1938017b2d55e02387d0837e1b56bc124ae8a17624e10e366bae6c4b9c834,F,1950-10-31, -c49b60838c5c6ddf34806b6b3f56b51516842cb1cead54a903f55d9c6d73c76d,F,1975-06-07,Bangladeshi -62f6d46c48c7d9ff3d09a408d0ec880f167a5dc9c8fd343a4e56e96318349583,M,1951-12-25,White -c62510afc57db491f9f993387b76dd9a7d08f09c01326953904b6586c19c4b8a,F,1993-09-07,White -1bde41ce9b4fccbf7dde0dc315d1aea5fa03f78c56feb1ba744be9e37fab2dce,F,1956-11-12,Asian -91d95f436356bc3df44d44406a139351debd062823258c8cdc67e8dadb9df256,F,1997-05-11,Indian -bdc5d8a48c23897906b09a9a3680bd2e9c8b3121edbda36f949800f0959c8d55,M,1981-11-19,Black -fa88d374b9cf5e059fad4a2fe406feae4c49cbf4803083ec521d3c75ee22557c,M,1966-09-29,Black -6a97982dccf77dd3dafa27fcbdf75c017301f730ba186b1d9e8ea212eee73f54,F,1950-10-31, -a2cc73deb383356e2c51d5616631e0071bdf5faba44812156af3526ebc6fba69,M,1985-03-01,White and Asian -533eb9a8909f614c351b65e6b8aba1ffc2890735ce9a8a8936e17c05335dfa47,F,1976-04-23,White -43f64dc77762f69f9f52d5f70b53170679cb9abfc688f4cf77bdfc8077f022bc,M,1951-12-25,White -2f84035610deb9378036cb7a5498b885486cf8e0acfde755081b3484bcff8eed,M,1981-11-19,Black -c8c9cad7b920b50f713830b8dc55f59fffbbad98335d9f30e0bca8fab5dfeedd,F,1975-06-07,Bangladeshi -5e61b431f3823da05836b2139f9a811c3cc078153ba1853b44519879b7d64af4,F,1993-09-07,White -b123f95a5578ac2ffb571adb3fd60b023e925128d1ef5bf917a73a8fa3d136a4,F,1956-11-12,Asian -39e18a493b913441c12fac89a09f24958e5da0ff6f3300c80c5359f36e3223aa,F,1997-05-11,Indian -a5ccb1c538e34663a658b1be28b16455ee5285efb10e6f1d4caba1f69ec9782b,F,1950-10-31, -9284d61c8c2ba62b951d501629da26c029eb067c27241a0e4e18d98f702c752e,M,1951-12-25,White -1bee34b6262a7777362f96e3dd5635764e820f97bab9772f492397774a38d74a,F,1993-09-07,White -28ac593455c7f44e49e0e5fb2b130739cd8aed87c15e4d79eb2fc69c47649360,F,1975-06-07,Bangladeshi -b9dafef03fc90f65d4f9efd71ce73bb7a024381eea09b5f909a977bd0d8d1fa4,F,1956-11-12,Asian -953815689985e39a762284426cd5884050ea56b7001aa332b18d44d8df0ba478,F,1997-05-11,Indian -c4ed8e89485d94f74489c8120a6734bb7a9ebdd906328e22a7d89a79be6513cf,M,1966-09-29,Black -4779bc407343d916c5a4f6a996174046419bdd87ce6c609054dc8788b3dfc233,M,1981-11-19,Black -b50d427a71ef5f98a1bdd4335b71d381dc6a3e937d899f87b92af24121bb9579,F,1976-04-23,White -728bf33aab1d32d4dca8fcc6a020d8baeb6b9910104541aa68c2d408154734fc,M,1985-03-01,White and Asian -7e07ae1a0cd3da38f7e619aacacec577992e62944683b47726c201890e98d2a3,F,1993-09-07,White -b312d5fbcfab403a28f259ab3d2b333ae2412727528b63ae3c032be535410ed5,M,1985-03-01,White and Asian -b5a9ede9a93528be3e12c5665c179c2dc0e2648aa6f1b1650f3715e56dad8bec,M,1966-09-29,Black -1a5659493256d9eb296edea686b14dfd94116d21c8ab25ec0ca46a46f617067e,F,1997-05-11,Indian -51054b8a03281fd02034378a5570ae0c970fb1d5d64246e0eb981481c228c108,F,1950-10-31, -85e36899399df701301f6741ffab57962a14326584b6f082ae0e87d90e492fd4,M,1951-12-25,White -df156e8465ff477c90a1393a0ab5947e448ed696ac0d3ea982480f5c237a29e1,F,1975-06-07,Bangladeshi -73c2e083e4e933fc3ba76abc2bd6aea80c838c172e7db94ea473c9be4e07b2d7,F,1976-04-23,White -e0e3fcdfb0803ca538910c12042cb6232acb9e3c6db8908524aea6ed560e5334,M,1981-11-19,Black -bff3992c1d4f9aa5a7945023e32989d83c60ae06b21fd37904de6dbfd67694a3,F,1956-11-12,Asian -2f74d62c5e51079f4e0db990f3a44137f37b268c0f159b661420dbf203df0373,F,1950-10-31, -6e8d1a943f129896827384a699a11a6bc83d13ab6b8667763df327c8b2a9b500,M,1951-12-25,White -ee1a7173778d6b708b4e532f6b997fcd54053fada5b6315886211257c04aed2d,F,1976-04-23,White -a8443b1426652157edc23a7c54fb7ad2c7643b5d8c431ceb54bc29341faf7e7c,F,1956-11-12,Asian -b064bdba191139689139124101c1c39926326a9b221bd8dfcd603f065c3dc3b8,F,1993-09-07,White -f53f2fb9b99180ea02b1f345b6c862e6bdde16e3b82a6886be0234d09a0e1645,M,1966-09-29,Black -ffd560d182369b08a8b3ed35cfa5ee3cc50b5b5f093ece3139181709813896c3,F,1975-06-07,Bangladeshi -21eb478c997305f06e5e0d043d3ec5acc63a85938da69e14f239f34a8348fc54,F,1997-05-11,Indian -aaf57ee8c549ef3df8a07abf3a0df0f028e402399ad27aaec710c17aa78d408f,M,1981-11-19,Black -5904c93073387f898f4f339094d4bad7043b6440519debb01b2867939661ded2,M,1985-03-01,White and Asian -dae40fcfed8e9ce405c3e0e207ba4781acb0a6a55a527f591b6b2b442f8cbbc5,F,1993-09-07,White -68e1e435db6ab43fd38ae5df6c6a03b50a5c9c6290f4691e1b670a786c0ebe12,F,1997-05-11,Indian -e133553ea138da0438f229cc2273c76d2e44c23a1dcc98a8e7a0d1780a3a65cc,F,1975-06-07,Bangladeshi -6d094db49a6e224278dd87d28835b66af6d2db257522e22c105b829cf368af98,M,1981-11-19,Black -828bb918957379a792e06807bcd291daf3c1efaa51325f32d2fc7e3280f1b983,F,1950-10-31, -fb335e8fd0f8aed3eb6ffedd7fca08259d3f25bb14066536c978fbc96c4f75fd,M,1966-09-29,Black -4d0198f4905a08812518045d62dd366a485d24e9e070ce9fc9a34abf4e5af6bd,M,1951-12-25,White -b1e92fe0fa7edab2161fa5090a65e065425f6ead93e1152013b1ba77b471494c,F,1976-04-23,White -3033cf66fa728da7a2940d823aad8118fb40687ebfad1147c313478b2baafe4b,M,1985-03-01,White and Asian -5538e771949ffec150f6e8260b2e3801236c7373ed62c22a3f82dc0071265cc4,F,1956-11-12,Asian -8a8b2d66735ed03d0841027e42d38806eedd8e5bd5da54270f958a55d509091f,M,1966-09-29,Black -ad8fa913d25b3970c6efa8ca504da8ba670ce2a9cf012d399b71924deb483d3f,F,1997-05-11,Indian -6953c2a883537cc80135516935de542987c2cd76f94d8cbf2ad004d7bf4c6195,F,1975-06-07,Bangladeshi -b471aeea26820f379ea5ca12029f2788ef4eee3f833e6633e5dd4bccda9e0d3f,M,1985-03-01,White and Asian -4652614c4d8778e57a970722f142d832798c133a14b1232a92ffe26a0e98919e,F,1956-11-12,Asian -fbb2a73b0bacf3953186a92029e3e9b130373a9ff1449407e6125b3481f4f0ca,F,1976-04-23,White -46d4c7c3285e2d04cbf9d55aa79142a277c48372a71c1455971363f2b8f8ed67,F,1950-10-31, -debc96817a3523d6f3cde58b00abaf6480477744625d0b1f4e406e644ae1763b,M,1951-12-25,White -e6d3cee8c029277da8d978deb058e43540a640414845b2f1c9ffe75f64f8d8be,M,1981-11-19,Black -7f5642cd0c851c48e5dfbd492e1cdee9a93cba81b38677376437c6587b3af95e,F,1993-09-07,White -eef79a6a04f78a54832c8891ed83f4863850ec0a7d9807e9b6ac208d23a1e59c,F,1975-06-07,Bangladeshi -084917af148384c1e8396addcec2fca2a9f2c3918cad9676e12cdaad7dc7dfb2,F,1976-04-23,White -b22eb34537f6f6753da6e0dc05713be0ccc35ef12dae0f6bf19b5206d373af33,F,1950-10-31, -835cc509d6d86a3a287de70581b43415aee21309f2dfd9533df5f563f37e3b22,F,1993-09-07,White -2f1d593cd98cb5bf81eb9d880221122342784ac5fb7f41f2b137006bafc92e39,F,1956-11-12,Asian -339d9d13edbaa267cb977f39e0a9da194e07c1dc9ec3a2567eec6f45776e3018,M,1966-09-29,Black -40a7ae9a07a94bf510c89d41b034787f768cc960e7471746dec613c8c6287c11,M,1951-12-25,White -d6420a4ee44bc345c7bf3a2efbab98e08a4727016df8e8d6bb8375d0a23a8c72,M,1981-11-19,Black -16b30490a644117a249c2018f31f7d29d2848c8bd43956a895f9bcd649f3ff9c,F,1997-05-11,Indian -ce7d916f3b5c6edb421222b8e3b4c69f21bcdd5c38bac9e8a2751f55d865b9dc,M,1985-03-01,White and Asian -98964da49d0a98402ed3d2d37b3350cf0aa346f522f8f1feb6b01cd680bc9455,M,1985-03-01,White and Asian -3658d7fa3c43456f3c9c87db0490e872039516e6375336254560167cc3db2ea2,M,1981-11-19,Black -c24cf8d31cf7e596ba052b7ed00f169b1c2bafb941b01e277910a1c8263c3e89,F,1975-06-07,Bangladeshi -51cfe39433c33d8144a4d4663e3834ca238ce78c5e38335c96a9301c5960ac0e,F,1993-09-07,White -0aa598c735f77296910c9b61658e9411d38061dc817b9e35b5ea4867d83f7603,F,1976-04-23,White -3cb65cad26f0a517866e06dcba59afa4a5eadf832404e0e17c707b928825c144,F,1956-11-12,Asian -3837e1aa083f578c9179bdd9e3b2b0ebe980361d800f99637c7b331c29a26e87,F,1997-05-11,Indian -759b87b87ba0c0c701d14eb2e6e31560929e93591537818856d079634ee1bb68,F,1950-10-31, -8590ac062555493444893ec5871609dffedf8cf684d93f7533bc52ffc5611dc8,M,1951-12-25,White -38879b6376fbabdc8fbfb85f6b11a296aca6de14093a54881b73528b62848d8c,M,1966-09-29,Black -aaf5060b9517ba4f550ee34a7f3ed7b05b6e5100a523d3e0aae05bf4f8f7ec34,F,1976-04-23,White -dff17949eb4f9ecd9361bb97c38a9404f3d034565e5d4395f073c0c367b5ea0b,F,1950-10-31, -fbe10beedf9d29cf53137ba38859ffd1dbe7642cedb7ef0a102a3ab109b47842,F,1975-06-07,Bangladeshi -72805ff7c0f210f3aa6e66f3f208974437611c64a2393f4e7edfef47d8e140a7,F,1993-09-07,White -70d432707ec2478670d5b36a95d5b1000cb9c3ef6ea1fb7be14b060775723d03,M,1966-09-29,Black -2c3f699f4b5f7734ed802c0b52f27f670772ddff9d4b875c6d1b7c2f09f728a0,F,1997-05-11,Indian -55c8079ac96c6a4f6a94e3460c79e4006d62374cce6e9fc8b281938a3abc7627,F,1956-11-12,Asian -ba9c5622470525f1bbed5f36077631df5089db3ad0d79e9782078a681c0dac09,M,1981-11-19,Black -926a7fc32c08e49183ba9969eb0fe284d7572a79934f3da12dcb26458777091d,M,1985-03-01,White and Asian -fe50b64954720ccb97ff36a6bd105b6c6018565eea17352a8e1c095204ff4e62,M,1951-12-25,White -25b7c81e770034aeda70db74af0fb638beca992d2a535641e6313f38b9665016,F,1956-11-12,Asian -c0d2d188feaa1562d9a1ca041b28896773ad5cf55793d9c056a2ece46eb3667a,M,1981-11-19,Black -40fb7164e459a38813f304e3b45db2b074be149818924e46fdc49cc38a3e4955,F,1976-04-23,White -8c004c94eb689b3765ccb51f03e1aa3392f46c6852196c8602b7ee6fc0c9d7de,M,1951-12-25,White -abbb9233cee3e720b2a86acf4ad04e51a670a7e762f301f0fc5b64b8794c30cd,F,1950-10-31, -3292bef42975c0ab63a2e9ab72143d6e2658dbd6e81a28cb9cf7618ff906c978,F,1993-09-07,White -864995ea35b82212a9a2d456a3f89833f24651c4e5ebc21c18476a9afb065035,M,1966-09-29,Black -462c39f8e9bbf461369150222f7493055e67079106a1a721824544b113519bf3,F,1975-06-07,Bangladeshi -83cf8b609de60036a8277bd0e96135751bbc07eb234256d4b65b893360651bf2,F,1997-05-11,Indian -40510175845988f13f6162ed8526f0b09f73384467fa855e1e79b44a56562a58,M,1985-03-01,White and Asian -fe675fe7aaee830b6fed09b64e034f84dcbdaeb429d9cccd4ebb90e15af8dd71,F,1956-11-12,Asian -b281bc2c616cb3c3a097215fdc9397ae87e6e06b156cc34e656be7a1a9ce8839,F,1950-10-31, -8c9a013ab70c0434313e3e881c310b9ff24aff1075255ceede3f2c239c231623,M,1981-11-19,Black -75992a5ac67ff644d3063976c2effd10bdd93fcc109798e3d5c1acf2e530d01a,M,1966-09-29,Black -7f861bcee185de001377d79e08af62e94b1e7718e2470e08520c917f8d953602,F,1993-09-07,White -478c4ffb1cbcea37956a748e6c19d8eadd0a47e86f5e308d26cad39453b5d1ab,M,1985-03-01,White and Asian -2c8b871e52d4e5f5db5ff84a82a45327e20df77edef961c4b6fa0e9c3d97ce5b,F,1997-05-11,Indian -9aaf689fbcdfe9f64a071f9cbe28ae44193fa218e72af24456f44bed64583b4d,F,1976-04-23,White -6ad4a6b1e5ea5569795e516d71909e0ce4809d9dc983d2c219144f684f816e12,M,1951-12-25,White -7a5df5ffa0dec2228d90b8d0a0f1b0767b748b0a41314c123075b8289e4e053f,F,1975-06-07,Bangladeshi -3dd9c0995d54c0abd51a90f1d57b1ce77bc885fc8a7cea52dcad3c2540dda5ee,M,1981-11-19,Black -165940940a02a187e4463ff467090930038c5af8fc26107bf301e714f599a1da,M,1966-09-29,Black -2ec42bc1f3e672fc1cf7fdcfc23246415dcf20f03c0d4a5bbbd92a185708f5b7,M,1951-12-25,White -df4865fca1f159162557359ef967f9502087f57527b0e030e139933e54f3061e,M,1985-03-01,White and Asian -9553627933b214db60798fe40d2b4f8497781d024f53d62dc1b12469b7d53784,F,1950-10-31, -ef32cc5c2b7c62093d3ec4844b36a02b08bb83eee2efa6b6b5e85ad605790192,F,1975-06-07,Bangladeshi -b0ab628c9e14621846c58b4eb35060ef3885253a457d2d76136716d4850bad45,F,1976-04-23,White -9989a37538faecc495bbe774b30fb447a1582b8f1bc14ac88dfd84996a7b799a,F,1956-11-12,Asian -61ab550f4c85a975cd46f8606ede483d8ee720a76f627773de1bc1dd8ce5fb35,F,1993-09-07,White -f296867839c8befafed32b55a7c11ab4ad14387d2434b970a55237d537bc9353,F,1997-05-11,Indian -cdad86ca9450d1c143675a8436131cabaf55905c114fa4524bf6a9ec5662cad7,F,1956-11-12,Asian -f00f2e7bca65e9f8409fdb3bcddfa031664224255d7bd2f6b3de8ff11ababe20,M,1981-11-19,Black -6629ddae3736e894e89cb4a1300a9d2c5c0fad418f8ea06a341b81f2a98bb491,F,1997-05-11,Indian -e39eef82f61b21e2e7f762fcc4307358f165757f2e77ec855d6992f7e0191932,F,1976-04-23,White -46372791018924b8cbc444334300f85a211d2f29a56f2bb4890780b5983fc201,F,1975-06-07,Bangladeshi -582c0168ba17eac49642bc85ae623204069e8d6ea06cf45af11e7de46ea31d18,M,1966-09-29,Black -60f256c7ccbc748036024fa0440e45fe1574db20a874e4041a16faf0105a01ff,F,1950-10-31, -a73060afb61efe1b7c817645d00c342df02407f65435a64c88d251d56150ff42,M,1951-12-25,White -d9a5223b761c375d1263e6e57ebec42d3e0fe3f6f283488d2eb204fb6ff17ee5,F,1993-09-07,White -2f1987bf98c09d2f5d2a23a6ae29fa53b9aec8f07ed1330bd439122f5a1a2c2c,M,1985-03-01,White and Asian -3e34b5dc434bcf3186f089d362691cfac1b17231601f2f402dc79015be878d83,M,1985-03-01,White and Asian -340ab11db8d1a7435cb4b4a0492a9eee7b8e388e3e4a1714bcd3b69df3d8f1e1,F,1956-11-12,Asian -f8b7291025863577c250b562e8aa0d7a70387bc67029915cd5c2dfda40a9e055,M,1951-12-25,White -6719009a76851c4bed2fcdea10b635c1bd58bf12af0c1fea3a470a87d3ee6995,M,1981-11-19,Black -f46733e1619957ff5bb51ea0272a2d8d73376cabd24f44461061c2caca2430aa,F,1976-04-23,White -56cc29cee9e859a5314952b8184da882e2482d7bc17234b4ca333bfffe5f74f3,F,1993-09-07,White -920c37d6464a8f20e8930c1980560dfd8ab7183334a20fa9447ecd5edb7a83b8,F,1975-06-07,Bangladeshi -0c1c43111448b131d65b3b380041de26f2edd6264ee1c371184f54d26ab53365,F,1950-10-31, -00037f39cf870a1f49129f9c82d935665d352ffd25ea3296208f6f7b16fd654f,F,1997-05-11,Indian -0d21ae129a64e1d19e4a94dfca3a67c777e17374e9d4ca2f74b65647a88119ea,M,1966-09-29,Black -8c6c42f379f08f03b79653a3230abd5e8079999435030fd8ca703ae35fe9b37a,F,1950-10-31, -216da54b5931a6d37cca8e29953361fe02c680bbd8b482343f508e32e8e9cc3b,F,1997-05-11,Indian -c0aa4a0be7ba28399b09a68835a21755f442e25f8e0971b1d1ea3a6c749f0385,F,1956-11-12,Asian -a0a531122de465614efef1078901475b2d78b72b13d67968bd2bb7bd8558ae67,F,1975-06-07,Bangladeshi -40794500a2845c943a0f4910461d9c39868a2930f689d2dfa9659625aa7a15cc,M,1985-03-01,White and Asian -6db44caad5c968a5ec334024daa615d29998fa79f82797cc12141871d0ffbd7b,F,1976-04-23,White -025ca19d7b07d7f554fd7cd060b628e628d0f607afa3a6fde17c4488f35716d2,F,1993-09-07,White -6d6ae523edc27b235030584adf12a890bf2b3c209da5b11b97d6b58c3ed66f60,M,1966-09-29,Black -0c62cc42d6479a691f03083654ab6a7a84229ab156c948ba8d3b6c79ddd95536,M,1981-11-19,Black -ffa6059b954a4602a9fa1518d10ca6163bce3f9d4bd3ee51c860eb6c2da16675,M,1951-12-25,White -11382b8de6b4b042f25bf021335d31c09f2f23ae80ca4dafc63214691dfb3dae,F,1950-10-31, -d8b5e2791d0d1cee319ee3def0e4631852bfcb329e06feb1c6ee6add251509ae,M,1966-09-29,Black -285b71922aaa01d870483d3b4f59e4a61c2057e1476854a810f387a1d2317806,F,1956-11-12,Asian -7d7179c146d0d6af4ebd304ab799a718fe949a8dcd660cd6d12fb97915f9ab0a,F,1975-06-07,Bangladeshi -02abf8fa7d9c4db035df33acba2dcd495ae9af91152ea9a135533cb747eb3afc,M,1981-11-19,Black -e8c5e943ad4fd9d115c2baacd110acddee7f66ec24aa177efa6780f5641ce277,M,1985-03-01,White and Asian -b910260d6ccd1fedb9919e9974c4b1eacf7ff1e3a4643c05cf423de2f221c06a,F,1993-09-07,White -fb5316204aa75301303e70a2e9555cf9cbb1457356a041dd58a88e003aca9142,M,1951-12-25,White -12051e9967d26fabc3b319b06be4bb57b504c40ac47edc24b5b335f64e71b4e1,F,1976-04-23,White -8dfd13f4376053626e97eb7221d469013cae9bc031027e64f0db2ec114f8ffd9,F,1997-05-11,Indian -5d9e09b09389f1e4c8268e5464bfce4c9ea6a516f9c84b2f49e313427421ef3d,M,1981-11-19,Black -ae4def1ecaae8be24edf7f6453e37f7200ef2e41048da1b17d68978322097cd6,M,1966-09-29,Black -0fe39b99b379952df916ed88c169ec63757291bf0c3db2881a4e0e9bf84b1463,F,1993-09-07,White -0087cf99a4636ebd9a0f66eaf98fde8bca977e2a274bc832cc903c3561735e9d,F,1975-06-07,Bangladeshi -4f95c3cf2c7c5bb500102f36abe7f477de6f89c5b77d13a271614ffbf115f7bd,F,1956-11-12,Asian -eab8ff114cc63fd8ab3d9f42249e20b8ce5ecce463e8368e98747f03c50eeabb,M,1985-03-01,White and Asian -f48280c0107726b99afcbd3cd0a46a2bac5f1ddb44e8768f232ac4da562eb166,M,1951-12-25,White -0f0b82fae280ae9fec1905f029b6ee9a9c85bb6cc5151da6dafe38a7902a4a53,F,1997-05-11,Indian -2ff2a721fab172f1ab7e77774978c698899249076747675c872eaa9b2f6780b8,F,1976-04-23,White -d0f451801443fa1478e1cf080e8d63dead650c9712b2631edf7e1658a98967d9,F,1950-10-31, -34be1021b378c5701b4dd1430970982e0dbe72b3b340018d7a9b65939881ed7b,F,1975-06-07,Bangladeshi -f8b2f96ed09b16bfd24ff625c064408fe19143db121b7944763fcbcc69ab4991,F,1997-05-11,Indian -be1722b1d104ffb2753260682954754d9757b986013823c5df20f28e0f74e655,M,1951-12-25,White -fde3f2e7127f6810eb4160bf7bb0563240d78c9d75a9a590b6d6244748a7f4ff,F,1976-04-23,White -337b02741a9561b611d394e835278d377c8eb54b0fa32f9923e4e90ddb5582b5,F,1950-10-31, -61dbec1d67afe651537e012d2327f6b469780e41565e50e39498f8336fd38cc8,F,1956-11-12,Asian -bcce03f625c22998dcb812feb157db59cbb8f22a424a70710a8d9ef20c7e5580,M,1981-11-19,Black -d88c39de46401a311ffda92d37930b4a543eb6286f835afe9d04dd416476434d,F,1993-09-07,White -de2d0a787b3351763f3c1a45aca2d08ad0b90276a621104fe49ab367e96db632,M,1985-03-01,White and Asian -32eb1a8dafeb0873c8d00b0e9058c8c77ff6c6d9235b3236989c50ef63d8f9ba,M,1966-09-29,Black -e18037f42fd038fa9b51c6234fa4f332fa681c14653c9852fdf9a0a501bbac24,F,1976-04-23,White -3ef58410b868298fcca4ee41144221bf86bc94e810dfdac6f4b502ce5fcd75c6,M,1951-12-25,White -1090b9e9eba719a3f27dfa49de49497271d9569d00826d58b4ef83c60d0ba5b9,M,1985-03-01,White and Asian -9fbb55aa1ca6da90db1c9914bc0960ad0d6a7b3eabe9a88c37580a6e31b5a0c0,M,1981-11-19,Black -0c0ad5934ba82dd287896d6406d1428b9e9669a995ce7964226aa47ede31d547,F,1950-10-31, -084ae23e6996e701addeeb7dcf33696f32dcb4ab78c0ca2026f8f5dbbe5a81d0,F,1993-09-07,White -c6d537e112156be1afbb8a5a85221ff4d95e2461f83f03425549ff42dee7a278,F,1956-11-12,Asian -9dacbde326501c9f63debf4311ae5e2bc047636edc4ee9d9ce828bcdf4a7f25d,F,1997-05-11,Indian -8cf04f0d07191f042b1d11880ab80618c2680e8e03bbacc60f9e31160d4fa87f,M,1966-09-29,Black -b7768fbb1847758d75c3ee28c3e2391e70c6ee29f7ce19847822bd5a7381ac67,F,1975-06-07,Bangladeshi -11bde34a6593b3da0d81a8a71b24dc6f6cf05d18e9f59e610e58ff202263adef,F,1997-05-11,Indian -5f302d143dace627a6a87157fd1362b010874e4dc64609b17d87db648de0af3c,F,1950-10-31, -1ff7b91c979ea344298826c212adf745783ae8a14a3eded36d56ba1b0f4bdeee,F,1975-06-07,Bangladeshi -f1250af9005fb93c6bc8ea65860a4079e4f90b38d8c258af498bf8cb5e9e84df,F,1976-04-23,White -e0d8014e6e3c51d780465166f0ed7faf81a08bb1817693ba45282fcca874eeb6,F,1956-11-12,Asian -8352dd9eb8b64669e0a8347fd37ae6e5cd67c817f2b4b1eec4475d466ab59eb7,F,1993-09-07,White -235aa062e6372588dbae00552abf36b8ff9c315e3da56cf02786980e764630e9,M,1951-12-25,White -4aec429ac0bfafdbb8dab14f41d1b7a98dacf1ce3478b71b904d383ae614b032,M,1966-09-29,Black -330e14d4ae80612334d94c488d29eb469626b476864abdeb5c1bd261db461c50,M,1985-03-01,White and Asian -ab9828ca390581b72629069049793ba3c99bb8e5e9e7b97a55c71957e04df9a3,M,1981-11-19,Black diff --git a/carrot/data/test/inputs/Symptoms.csv b/carrot/data/test/inputs/Symptoms.csv deleted file mode 100644 index 0b1a64d0..00000000 --- a/carrot/data/test/inputs/Symptoms.csv +++ /dev/null @@ -1,801 +0,0 @@ -PersonID,visit_date,symptom1,symptom2,symptom3 -16dc368a89b428b2485484313ba67a3912ca03f2b2b42429174a4f8b3dc84e44,2020-11-15 00:00:00.000000,Y,Y,Y -37834f2f25762f23e1f74a531cbe445db73d6765ebe60878a7dfbecd7d4af6e1,2020-01-04 00:00:00.000000,Y,Y,Y -454f63ac30c8322997ef025edff6abd23e0dbe7b8a3d5126a894e4a168c1b59b,2020-03-27 00:00:00.000000,Y,Y,Y -5ef6fdf32513aa7cd11f72beccf132b9224d33f271471fff402742887a171edf,2020-06-24 00:00:00.000000,N,N,N -1253e9373e781b7500266caa55150e08e210bc8cd8cc70d89985e3600155e860,2020-07-27 00:00:00.000000,Y,Y,Y -9537f32ec7599e1ae953af6c9f929fe747ff9dadf79a9beff1f304c550173011,2020-11-04 00:00:00.000000,N,Y,N -0fd42b3f73c448b34940b339f87d07adf116b05c0227aad72e8f0ee90533e699,2020-12-24 00:00:00.000000,N,N,N -9bdb2af6799204a299c603994b8e400e4b1fd625efdb74066cc869fee42c9df3,2020-02-04 00:00:00.000000,N,N,N -0fd42b3f73c448b34940b339f87d07adf116b05c0227aad72e8f0ee90533e699,2020-02-04 00:00:00.000000,N,N,N -9bdb2af6799204a299c603994b8e400e4b1fd625efdb74066cc869fee42c9df3,2020-01-04 00:00:00.000000,Y,Y,Y -f6e0a1e2ac41945a9aa7ff8a8aaa0cebc12a3bcc981a929ad5cf810a090e11ae,2020-03-27 00:00:00.000000,Y,Y,Y -b1556dea32e9d0cdbfed038fd7787275775ea40939c146a64e205bcb349ad02f,2020-11-15 00:00:00.000000,Y,Y,Y -6c658ee83fb7e812482494f3e416a876f63f418a0b8a1f5e76d47ee4177035cb,2020-12-24 00:00:00.000000,N,N,N -e5b861a6d8a966dfca7e7341cd3eb6be9901688d547a72ebed0b1f5e14f3d08d,2020-11-04 00:00:00.000000,N,Y,N -2ac878b0e2180616993b4b6aa71e61166fdc86c28d47e359d0ee537eb11d46d3,2020-07-27 00:00:00.000000,Y,Y,Y -85daaf6f7055cd5736287faed9603d712920092c4f8fd0097ec3b650bf27530e,2020-06-24 00:00:00.000000,N,N,N -2ac878b0e2180616993b4b6aa71e61166fdc86c28d47e359d0ee537eb11d46d3,2020-12-24 00:00:00.000000,N,N,N -85daaf6f7055cd5736287faed9603d712920092c4f8fd0097ec3b650bf27530e,2020-11-15 00:00:00.000000,Y,Y,Y -3038bfb575bee6a0e61945eff8784835bb2c720634e42734678c083994b7f018,2020-11-04 00:00:00.000000,N,Y,N -2abaca4911e68fa9bfbf3482ee797fd5b9045b841fdff7253557c5fe15de6477,2020-07-27 00:00:00.000000,Y,Y,Y -89aa1e580023722db67646e8149eb246c748e180e34a1cf679ab0b41a416d904,2020-06-24 00:00:00.000000,N,N,N -6affdae3b3c1aa6aa7689e9b6a7b3225a636aa1ac0025f490cca1285ceaf1487,2020-03-27 00:00:00.000000,Y,Y,Y -0f8ef3377b30fc47f96b48247f463a726a802f62f3faa03d56403751d2f66c67,2020-02-04 00:00:00.000000,N,N,N -65a699905c02619370bcf9207f5a477c3d67130ca71ec6f750e07fe8d510b084,2020-01-04 00:00:00.000000,Y,Y,Y -0f8ef3377b30fc47f96b48247f463a726a802f62f3faa03d56403751d2f66c67,2020-12-24 00:00:00.000000,N,N,N -65a699905c02619370bcf9207f5a477c3d67130ca71ec6f750e07fe8d510b084,2020-06-24 00:00:00.000000,N,N,N -922c7954216ccfe7a61def609305ce1dc7c67e225f873f256d30d7a8ee4f404c,2020-02-04 00:00:00.000000,N,N,N -2747b7c718564ba5f066f0523b03e17f6a496b06851333d2d59ab6d863225848,2020-11-15 00:00:00.000000,Y,Y,Y -6566230e3a3ce3774c1bbc7c18b590ae0f457bbcd511e90e3e7dca2a02e7addc,2020-01-04 00:00:00.000000,Y,Y,Y -dbb1ded63bc70732626c5dfe6c7f50ced3d560e970f30b15335ac290358748f6,2020-03-27 00:00:00.000000,Y,Y,Y -d2f483672c0239f6d7dd3c9ecee6deacbcd59185855625902a8b1c1a3bd67440,2020-11-04 00:00:00.000000,N,Y,N -5d389f5e2e34c6b0bad96581c22cee0be36dcf627cd73af4d4cccacd9ef40cc3,2020-07-27 00:00:00.000000,Y,Y,Y -d2f483672c0239f6d7dd3c9ecee6deacbcd59185855625902a8b1c1a3bd67440,2020-03-27 00:00:00.000000,Y,Y,Y -5d389f5e2e34c6b0bad96581c22cee0be36dcf627cd73af4d4cccacd9ef40cc3,2020-11-15 00:00:00.000000,Y,Y,Y -13671077b66a29874a2578b5240319092ef2a1043228e433e9b006b5e53e7513,2020-12-24 00:00:00.000000,N,N,N -36ebe205bcdfc499a25e6923f4450fa8d48196ceb4fa0ce077d9d8ec4a36926d,2020-11-04 00:00:00.000000,N,Y,N -d80eae6e96d148b3b2abbbc6760077b66c4ea071f847dab573d507a32c4d99a5,2020-02-04 00:00:00.000000,N,N,N -dbae772db29058a88f9bd830e957c695347c41b6162a7eb9a9ea13def34be56b,2020-07-27 00:00:00.000000,Y,Y,Y -2c7d5490e6050836f8f2f0d496b1c8d6a38d4ffac2b898e6e77751bdcd20ebf5,2020-01-04 00:00:00.000000,Y,Y,Y -d4ee9f58e5860574ca98e3b4839391e7a356328d4bd6afecefc2381df5f5b41b,2020-06-24 00:00:00.000000,N,N,N -2c7d5490e6050836f8f2f0d496b1c8d6a38d4ffac2b898e6e77751bdcd20ebf5,2020-11-15 00:00:00.000000,Y,Y,Y -d4ee9f58e5860574ca98e3b4839391e7a356328d4bd6afecefc2381df5f5b41b,2020-07-27 00:00:00.000000,Y,Y,Y -d6f0c71ef0c88e45e4b3a2118fcb83b0def392d759c901e9d755d0e879028727,2020-06-24 00:00:00.000000,N,N,N -5ec1a0c99d428601ce42b407ae9c675e0836a8ba591c8ca6e2a2cf5563d97ff0,2020-02-04 00:00:00.000000,N,N,N -be47addbcb8f60566a3d7fd5a36f8195798e2848b368195d9a5d20e007c59a0c,2020-11-04 00:00:00.000000,N,Y,N -ec2e990b934dde55cb87300629cedfc21b15cd28bbcf77d8bbdc55359d7689da,2020-03-27 00:00:00.000000,Y,Y,Y -05ada863a4cf9660fd8c68e2295f1d35b2264815f5b605003d6625bd9e0492cf,2020-12-24 00:00:00.000000,N,N,N -9ae2bdd7beedc2e766c6b76585530e16925115707dc7a06ab5ee4aa2776b2c7b,2020-01-04 00:00:00.000000,Y,Y,Y -05ada863a4cf9660fd8c68e2295f1d35b2264815f5b605003d6625bd9e0492cf,2020-02-04 00:00:00.000000,N,N,N -9ae2bdd7beedc2e766c6b76585530e16925115707dc7a06ab5ee4aa2776b2c7b,2020-12-24 00:00:00.000000,N,N,N -8e612bd1f5d132a339575b8dafb7842c64614e56bcf3d5ab65a0bc4b34329407,2020-07-27 00:00:00.000000,Y,Y,Y -043066daf2109523a7490d4bfad4766da5719950a2b5f96d192fc0537e84f32a,2020-01-04 00:00:00.000000,Y,Y,Y -620c9c332101a5bae955c66ae72268fbcd3972766179522c8deede6a249addb7,2020-11-04 00:00:00.000000,N,Y,N -0fecf9247f3ddc84db8a804fa3065c013baf6b7c2458c2ba2bf56c2e1d42ddd4,2020-06-24 00:00:00.000000,N,N,N -c75de23d89df36ba921287616ee8edb4c986e328a78e033e57c1e5e2b59c838e,2020-11-15 00:00:00.000000,Y,Y,Y -7ed8f0f3b707956d9fb1e889e11153e0aa0a854983081d262fbe5eede32da7ca,2020-03-27 00:00:00.000000,Y,Y,Y -c75de23d89df36ba921287616ee8edb4c986e328a78e033e57c1e5e2b59c838e,2020-11-15 00:00:00.000000,Y,Y,Y -7ed8f0f3b707956d9fb1e889e11153e0aa0a854983081d262fbe5eede32da7ca,2020-02-04 00:00:00.000000,N,N,N -ff2ccb6ba423d356bd549ed4bfb76e96976a0dcde05a09996a1cdb9f83422ec4,2020-07-27 00:00:00.000000,Y,Y,Y -a512db2741cd20693e4b16f19891e72b9ff12cead72761fc5e92d2aaf34740c1,2020-06-24 00:00:00.000000,N,N,N -bb668ca95563216088b98a62557fa1e26802563f3919ac78ae30533bb9ed422c,2020-12-24 00:00:00.000000,N,N,N -3f9807cb9ae9fb6c30942af6139909d27753a5e03fe5a5c6e93b014f5b17366f,2020-11-04 00:00:00.000000,N,Y,N -bc52dd634277c4a34a2d6210994a9a5e2ab6d33bb4a3a8963410e00ca6c15a02,2020-03-27 00:00:00.000000,Y,Y,Y -e0f05da93a0f5a86a3be5fc0e301606513c9f7e59dac2357348aa0f2f47db984,2020-01-04 00:00:00.000000,Y,Y,Y -bc52dd634277c4a34a2d6210994a9a5e2ab6d33bb4a3a8963410e00ca6c15a02,2020-01-04 00:00:00.000000,Y,Y,Y -e0f05da93a0f5a86a3be5fc0e301606513c9f7e59dac2357348aa0f2f47db984,2020-07-27 00:00:00.000000,Y,Y,Y -73d3f1ba062585bce51f77d70a26be88c44b55d70f81b8bd7e2ded030ca4454a,2020-06-24 00:00:00.000000,N,N,N -80c3cd40fa35f9088b8741bd8be6153de05f661cfeeb4625ffbf5f4a6c3c02c4,2020-03-27 00:00:00.000000,Y,Y,Y -f57e5cb1f4532c008183057ecc94283801fcb5afe2d1c190e3dfd38c4da08042,2020-12-24 00:00:00.000000,N,N,N -68519a9eca55c68c72658a2a1716aac3788c289859d46d6f5c3f14760fa37c9e,2020-11-15 00:00:00.000000,Y,Y,Y -4a8596a7790b5ca9e067da401c018b3206befbcf95c38121854d1a0158e7678a,2020-02-04 00:00:00.000000,N,N,N -41e521adf8ae7a0f419ee06e1d9fb794162369237b46f64bf5b2b9969b0bcd2e,2020-11-04 00:00:00.000000,N,Y,N -4a8596a7790b5ca9e067da401c018b3206befbcf95c38121854d1a0158e7678a,2020-02-04 00:00:00.000000,N,N,N -41e521adf8ae7a0f419ee06e1d9fb794162369237b46f64bf5b2b9969b0bcd2e,2020-11-15 00:00:00.000000,Y,Y,Y -dac53c17c250fd4d4d81eaf6d88435676dac1f3f3896441e277af839bf50ed8a,2020-07-27 00:00:00.000000,Y,Y,Y -cba28b89eb859497f544956d64cf2ecf29b76fe2ef7175b33ea59e64293a4461,2020-01-04 00:00:00.000000,Y,Y,Y -8cd2510271575d8430c05368315a87b9c4784c7389a47496080c1e615a2a00b6,2020-06-24 00:00:00.000000,N,N,N -7b69759630f869f2723875f873935fed29d2d12b10ef763c1c33b8e0004cb405,2020-11-04 00:00:00.000000,N,Y,N -580811fa95269f3ecd4f22d176e079d36093573680b6ef66fa341e687a15b5da,2020-12-24 00:00:00.000000,N,N,N -bfa7634640c53da7cb5e9c39031128c4e583399f936896f27f999f1d58d7b37e,2020-03-27 00:00:00.000000,Y,Y,Y -580811fa95269f3ecd4f22d176e079d36093573680b6ef66fa341e687a15b5da,2020-12-24 00:00:00.000000,N,N,N -bfa7634640c53da7cb5e9c39031128c4e583399f936896f27f999f1d58d7b37e,2020-11-04 00:00:00.000000,N,Y,N -b8aed072d29403ece56ae9641638ddd50d420f950bde0eefc092ee8879554141,2020-02-04 00:00:00.000000,N,N,N -52f11620e397f867b7d9f19e48caeb64658356a6b5d17138c00dd9feaf5d7ad6,2020-07-27 00:00:00.000000,Y,Y,Y -61a229bae1e90331edd986b6bbbe617f7035de88a5bf7c018c3add6c762a6e8d,2020-11-15 00:00:00.000000,Y,Y,Y -d6061bbee6cf13bd73765faaea7cdd0af1323e4b125342ac346047f7c4bda1fc,2020-06-24 00:00:00.000000,N,N,N -7045d16ae7f043ec25774a0a85d6f479e5bb019e9c5a1584bc76736d116b8f33,2020-01-04 00:00:00.000000,Y,Y,Y -2397346b45823e070f6fc72ac94c0a999d234c472479f0e26b30cdf5942db854,2020-03-27 00:00:00.000000,Y,Y,Y -7045d16ae7f043ec25774a0a85d6f479e5bb019e9c5a1584bc76736d116b8f33,2020-12-24 00:00:00.000000,N,N,N -2397346b45823e070f6fc72ac94c0a999d234c472479f0e26b30cdf5942db854,2020-03-27 00:00:00.000000,Y,Y,Y -70260742c2952154c84e2ea9f68b1a7397f49b6d343da1ed284093c0bd72c742,2020-11-15 00:00:00.000000,Y,Y,Y -eb3be230bbd2844b1f5d8f2e4fab9ffba8ab22cfeeb69c4c1361993ba4f377b9,2020-07-27 00:00:00.000000,Y,Y,Y -684fe39f03758de6a882ae61fa62312b67e5b1e665928cbf3dc3d8f4f53e3562,2020-01-04 00:00:00.000000,Y,Y,Y -b4bbe448fde336bb6a7d7d765f36d3327c772b845e7b54c8282aa08c9775ddd7,2020-06-24 00:00:00.000000,N,N,N -8bcbb4c131df56f7c79066016241cc4bdf4e58db55c4f674e88b22365bd2e2ad,2020-02-04 00:00:00.000000,N,N,N -a4e00d7e6aa82111575438c5e5d3e63269d4c475c718b2389f6d02932c47f8a6,2020-11-04 00:00:00.000000,N,Y,N -8bcbb4c131df56f7c79066016241cc4bdf4e58db55c4f674e88b22365bd2e2ad,2020-07-27 00:00:00.000000,Y,Y,Y -a4e00d7e6aa82111575438c5e5d3e63269d4c475c718b2389f6d02932c47f8a6,2020-01-04 00:00:00.000000,Y,Y,Y -5a39cadd1b007093db50744797c7a04a34f73b35ed444704206705b02597d6fd,2020-12-24 00:00:00.000000,N,N,N -27badc983df1780b60c2b3fa9d3a19a00e46aac798451f0febdca52920faaddf,2020-11-04 00:00:00.000000,N,Y,N -43974ed74066b207c30ffd0fed5146762e6c60745ac977004bc14507c7c42b50,2020-03-27 00:00:00.000000,Y,Y,Y -fc56dbc6d4652b315b86b71c8d688c1ccdea9c5f1fd07763d2659fde2e2fc49a,2020-02-04 00:00:00.000000,N,N,N -f8809aff4d69bece79dabe35be0c708b890d7eafb841f121330667b77d2e2590,2020-06-24 00:00:00.000000,N,N,N -5cf4e26bd3d87da5e03f80a43a64f1220a1f4ba9e1d6348caea83c06353c3f39,2020-11-15 00:00:00.000000,Y,Y,Y -f8809aff4d69bece79dabe35be0c708b890d7eafb841f121330667b77d2e2590,2020-07-27 00:00:00.000000,Y,Y,Y -5cf4e26bd3d87da5e03f80a43a64f1220a1f4ba9e1d6348caea83c06353c3f39,2020-03-27 00:00:00.000000,Y,Y,Y -968076be2e38cf897d4d6cea3faca9c037e1a4e3b4b7744fb2533e07751bd30a,2020-11-15 00:00:00.000000,Y,Y,Y -8df66f64b57424391d363fd6b811fed3c430c77597da265025728bd637bad804,2020-11-04 00:00:00.000000,N,Y,N -83f814f7a92e365cbd79f9addceed185761a8d38a06a2d4350bb1fe4b7632b34,2020-01-04 00:00:00.000000,Y,Y,Y -fa2b7af0a811b9acde602aacb78e3638e8506dfead5fe6c3425b10b526f94bdd,2020-06-24 00:00:00.000000,N,N,N -d48ff4b2f68a10fd7c86f185a6ccede0dc0f2c48538d697cb33b6ada3f1e85db,2020-12-24 00:00:00.000000,N,N,N -802b906a18591ead8a6dd809b262ace4c65c16e89764c40ae326cfcff811e10c,2020-02-04 00:00:00.000000,N,N,N -d48ff4b2f68a10fd7c86f185a6ccede0dc0f2c48538d697cb33b6ada3f1e85db,2020-06-24 00:00:00.000000,N,N,N -802b906a18591ead8a6dd809b262ace4c65c16e89764c40ae326cfcff811e10c,2020-03-27 00:00:00.000000,Y,Y,Y -d86580a57f7bf542e85202283cb845953c9d28f80a8e651db08b2fc0b2d6a731,2020-11-04 00:00:00.000000,N,Y,N -0f4121d0ef1df4c86854c7ebb47ae1c93de8aec8f944035eeaa6495dd71a0678,2020-01-04 00:00:00.000000,Y,Y,Y -16badfc6202cb3f8889e0f2779b19218af4cbb736e56acadce8148aba9a7a9f8,2020-07-27 00:00:00.000000,Y,Y,Y -36790ecd55c2030dc553685bef719df653f413a20cdad1bfd1dc934c76686ddd,2020-12-24 00:00:00.000000,N,N,N -67e9c3acebb154a282f326d4ff1951cd1f342e58e74d562b556b517da5e56132,2020-02-04 00:00:00.000000,N,N,N -9b871512327c09ce91dd649b3f96a63b7408ef267c8cc5710114e629730cb61f,2020-11-15 00:00:00.000000,Y,Y,Y -67e9c3acebb154a282f326d4ff1951cd1f342e58e74d562b556b517da5e56132,2020-07-27 00:00:00.000000,Y,Y,Y -9b871512327c09ce91dd649b3f96a63b7408ef267c8cc5710114e629730cb61f,2020-01-04 00:00:00.000000,Y,Y,Y -56f4da26ed956730309fa1488611ee0f13b0ac95ebb1bc9b5d210e31ff70e79c,2020-12-24 00:00:00.000000,N,N,N -84a5092e4a5b6fe968fd523fb2fc917dbffae44105f82b6b94c8ed5b9a800223,2020-02-04 00:00:00.000000,N,N,N -0e6523810856a138a75dec70a9cf3778a5c70b83ac915f22c33f05db97cb3e68,2020-06-24 00:00:00.000000,N,N,N -9d693eeee1d1899cbc50b6d45df953d3835acf28ee869879b45565fccc814765,2020-03-27 00:00:00.000000,Y,Y,Y -08490295488a1189099751ebeddb5992313dd2a831e07a92e66d196ddc261777,2020-11-04 00:00:00.000000,N,Y,N -a0eaec5a55dc2f5b2ba523018adc485ff620b9d83509b9f37186a7716e438d21,2020-11-15 00:00:00.000000,Y,Y,Y -08490295488a1189099751ebeddb5992313dd2a831e07a92e66d196ddc261777,2020-11-04 00:00:00.000000,N,Y,N -a0eaec5a55dc2f5b2ba523018adc485ff620b9d83509b9f37186a7716e438d21,2020-03-27 00:00:00.000000,Y,Y,Y -138d9e809e386a7b800791d1f664f56d1c55f3d1ba411b950862729bc486c5ce,2020-11-15 00:00:00.000000,Y,Y,Y -835d5e8314340ab852a2f979ab4cd53e994dbe38366afb6eed84fe4957b980c8,2020-12-24 00:00:00.000000,N,N,N -c0509a487a18b003ba05e505419ebb63e57a29158073e381f57160b5c5b86426,2020-06-24 00:00:00.000000,N,N,N -9a049b03f6fc40bfcf2f136320359257ed4af8513f71aa6fef47f17059bbae23,2020-01-04 00:00:00.000000,Y,Y,Y -f0bc318fb8965cad8d73d578cd03c63b7987dc6a79b906aada091e1b6a13443f,2020-02-04 00:00:00.000000,N,N,N -8ae4c23b80d1e7c8ff79e515fe791ebd68190bae842dda7af193db125f700452,2020-07-27 00:00:00.000000,Y,Y,Y -f0bc318fb8965cad8d73d578cd03c63b7987dc6a79b906aada091e1b6a13443f,2020-12-24 00:00:00.000000,N,N,N -8ae4c23b80d1e7c8ff79e515fe791ebd68190bae842dda7af193db125f700452,2020-11-15 00:00:00.000000,Y,Y,Y -79bf08685d3138f9b109c3546780f056bc954fd69377b84a2cf23622e464897b,2020-03-27 00:00:00.000000,Y,Y,Y -6af1f692e9496c6d0b668316eccb93276ae6b6774fa728aac31ff40a38318760,2020-01-04 00:00:00.000000,Y,Y,Y -749fc650cacb0f06547520d53c31505c8156e0a3be07073eddb2ef3ad9e383ba,2020-06-24 00:00:00.000000,N,N,N -82c01ce15b431d420eb6a1febfba7d7a2b69e5bcdcb929cb42cd3e9179d43fc4,2020-07-27 00:00:00.000000,Y,Y,Y -011af72a910ac4acf367eef9e6b761e0980842c30d4e9809840f4141d5163ede,2020-11-04 00:00:00.000000,N,Y,N -37c20f19f3272b5ccc3a5d80587eb9deb3f4afcf568c4280fb195568da8eb1a2,2020-02-04 00:00:00.000000,N,N,N -011af72a910ac4acf367eef9e6b761e0980842c30d4e9809840f4141d5163ede,2020-06-24 00:00:00.000000,N,N,N -37c20f19f3272b5ccc3a5d80587eb9deb3f4afcf568c4280fb195568da8eb1a2,2020-11-15 00:00:00.000000,Y,Y,Y -396f804443825586c1283a27fdcadf74abb82008bcd9b260a30912a26563f27d,2020-01-04 00:00:00.000000,Y,Y,Y -766cb53c753baedac5dc782593e04694b3bae3aed057ac2ff98cc1aef6413137,2020-12-24 00:00:00.000000,N,N,N -9f484139a27415ae2e8612bf6c65a8101a18eb5e9b7809e74ca63a45a65f17f4,2020-03-27 00:00:00.000000,Y,Y,Y -d6e5a20b30f87216b2c758f5e7a23c437dbc3dfa1ccb177c474de152bb0ef731,2020-02-04 00:00:00.000000,N,N,N -e7866fdc6672f827c76f6124ca3eeaff44aff8b7caf4ee1469b2ab887e7e7875,2020-11-04 00:00:00.000000,N,Y,N -9512d95d00d61bdec03d2b99d6ecc455ee5644ae52d10e7c4a61c93062dc97a3,2020-07-27 00:00:00.000000,Y,Y,Y -e7866fdc6672f827c76f6124ca3eeaff44aff8b7caf4ee1469b2ab887e7e7875,2020-06-24 00:00:00.000000,N,N,N -9512d95d00d61bdec03d2b99d6ecc455ee5644ae52d10e7c4a61c93062dc97a3,2020-01-04 00:00:00.000000,Y,Y,Y -9556b82499cc0aaf86aee7f0d253e17c61b7ef73d48a295f37d98f08b04ffa7f,2020-03-27 00:00:00.000000,Y,Y,Y -51e8ea280b44e16934d4d611901f3d3afc41789840acdff81942c2f65009cd52,2020-02-04 00:00:00.000000,N,N,N -4c970004b0678d439f177e77d3cabdb7e9a44df770948ddc2467cbc76b7211c3,2020-07-27 00:00:00.000000,Y,Y,Y -39bb88f40d3aa2b2fe9dea67be27c74765db0ebb3ff3cf8fb779af6319fa2045,2020-11-15 00:00:00.000000,Y,Y,Y -e888a676e1926d0c08b5f11fb9116df58b62604b05846f39f8d6fc4dd0ba31f1,2020-12-24 00:00:00.000000,N,N,N -9e6a72557ada15d02001f024f43f06edc4a31437e0e1bb3eeac36ca2d0c4fda7,2020-11-04 00:00:00.000000,N,Y,N -e888a676e1926d0c08b5f11fb9116df58b62604b05846f39f8d6fc4dd0ba31f1,2020-11-04 00:00:00.000000,N,Y,N -9e6a72557ada15d02001f024f43f06edc4a31437e0e1bb3eeac36ca2d0c4fda7,2020-03-27 00:00:00.000000,Y,Y,Y -4be84111a613654b362415e563cb7607df7b203b5d303802a8a546061bbc7847,2020-06-24 00:00:00.000000,N,N,N -bba58959c32abe688d9cb5222b97de973002a67c412d6a8c8d2a79ac692f32b7,2020-01-04 00:00:00.000000,Y,Y,Y -768b84ef05f655d57fe22d488451f075365f6cd18a13073466aa826cc0ebdbfb,2020-11-15 00:00:00.000000,Y,Y,Y -8b496bf96bbcc9e5ac11c068b6cfb00c32f9d163bb8a3d5af107217499de997a,2020-07-27 00:00:00.000000,Y,Y,Y -f747870ae666c39b589f577856a0f7198b3b81269cb0326de86d8046f2cf72db,2020-02-04 00:00:00.000000,N,N,N -d8d1790737d57ac4fe91a2c0a28087c0a97c81f5dc6b19d5e4aec20c08bb95ae,2020-12-24 00:00:00.000000,N,N,N -f747870ae666c39b589f577856a0f7198b3b81269cb0326de86d8046f2cf72db,2020-02-04 00:00:00.000000,N,N,N -d8d1790737d57ac4fe91a2c0a28087c0a97c81f5dc6b19d5e4aec20c08bb95ae,2020-11-15 00:00:00.000000,Y,Y,Y -3635a91e3da857f7847f68185a116a5260d2593f3913f6b1b66cc2d75b0d6ec0,2020-11-04 00:00:00.000000,N,Y,N -1c6c0bb2c7ecdc3be8e134f79b9de45155258c1f554ae7542dce48f5cc8d63f0,2020-01-04 00:00:00.000000,Y,Y,Y -303c8bd55875dda240897db158acf70afe4226f300757f3518b86e6817c00022,2020-06-24 00:00:00.000000,N,N,N -c76b405781134be1dab7fe45adfb8c32104805a01de7b863e1004b66d56edf9f,2020-03-27 00:00:00.000000,Y,Y,Y -27d719c754aacd492a6dc8a1b76619355abcf5ef473cbec02018d3c57ebbf0d5,2020-12-24 00:00:00.000000,N,N,N -ee62de25ccc2b55d3a0495244b246fb97055b6f1c2697d837b8e94976c03756f,2020-07-27 00:00:00.000000,Y,Y,Y -27d719c754aacd492a6dc8a1b76619355abcf5ef473cbec02018d3c57ebbf0d5,2020-12-24 00:00:00.000000,N,N,N -ee62de25ccc2b55d3a0495244b246fb97055b6f1c2697d837b8e94976c03756f,2020-11-15 00:00:00.000000,Y,Y,Y -efd96aedf377e20afd95285a7c751a864260bd6a149656a4040c5b7757bdbbb6,2020-02-04 00:00:00.000000,N,N,N -7f0a22117f8fe0172cf9209ff622b64a51aaeda21d58b5b62685a93dbe2dad25,2020-03-27 00:00:00.000000,Y,Y,Y -71a1c003a2b855d85582c8f6c7648c49d3fe836408a7e1b5d9b222448acb3c1b,2020-01-04 00:00:00.000000,Y,Y,Y -1e68ed4e3d58a51096a7feea3947f40debf1fd9246ec977eb62ab93c81823ad9,2020-06-24 00:00:00.000000,N,N,N -a0d177b4967a6d99f4ff117defe1c0d23d4e78ca4630febcb948ee9e4520eff3,2020-11-04 00:00:00.000000,N,Y,N -00328ce57bbc14b33bd6695bc8eb32cdf2fb5f3a7d89ec14a42825e15d39df60,2020-07-27 00:00:00.000000,Y,Y,Y -a0d177b4967a6d99f4ff117defe1c0d23d4e78ca4630febcb948ee9e4520eff3,2020-12-24 00:00:00.000000,N,N,N -00328ce57bbc14b33bd6695bc8eb32cdf2fb5f3a7d89ec14a42825e15d39df60,2020-11-15 00:00:00.000000,Y,Y,Y -d7cdaa5ca0582076c8e772cce739e32c5077cfd24f2ea33f04bb754594989a56,2020-11-04 00:00:00.000000,N,Y,N -23c657f2efda7731a3c1990b25f318fa2eb1332208f97ab9cc2a7eac70ab5a76,2020-07-27 00:00:00.000000,Y,Y,Y -af180e4359fc6179dc953abdcbdcaf7c146b53e1bee2b335e50dead11ccefa07,2020-02-04 00:00:00.000000,N,N,N -6db6eb4af1e18ab81d3878e44672185d60ca8c988c9e2f7783de220735534c33,2020-06-24 00:00:00.000000,N,N,N -7cb676d57114874e00c536916e6dcad2a5d3cb8c9a5abc06335df359cd9a6ef9,2020-01-04 00:00:00.000000,Y,Y,Y -2cfc8ccbd7c0b17615323b41e815651ff2ae9ffae45a4599c0499b98ff940429,2020-03-27 00:00:00.000000,Y,Y,Y -7cb676d57114874e00c536916e6dcad2a5d3cb8c9a5abc06335df359cd9a6ef9,2020-11-15 00:00:00.000000,Y,Y,Y -2cfc8ccbd7c0b17615323b41e815651ff2ae9ffae45a4599c0499b98ff940429,2020-02-04 00:00:00.000000,N,N,N -9cfd3c755be26b4e1645918e2a64a26e3d851ede421e0b257f783b443bc443d1,2020-07-27 00:00:00.000000,Y,Y,Y -a0f8b2c4cb1ac82abdb37f0fe5203b97be556c4468c83bba18684d620fd8eaf9,2020-12-24 00:00:00.000000,N,N,N -4c15f47afe7f817fd559e12ddbc276f4930c5822f2049088d6f6605bec7cea56,2020-01-04 00:00:00.000000,Y,Y,Y -983bd614bb5afece5ab3b6023f71147cd7b6bc2314f9d27af7422541c6558389,2020-11-04 00:00:00.000000,N,Y,N -c3ea99f86b2f8a74ef4145bb245155ff5f91cd856f287523481c15a1959d5fd1,2020-06-24 00:00:00.000000,N,N,N -f32828acecb4282c87eaa554d2e1db74e418cd6845843012463a3324028bdd9d,2020-03-27 00:00:00.000000,Y,Y,Y -c3ea99f86b2f8a74ef4145bb245155ff5f91cd856f287523481c15a1959d5fd1,2020-12-24 00:00:00.000000,N,N,N -f32828acecb4282c87eaa554d2e1db74e418cd6845843012463a3324028bdd9d,2020-01-04 00:00:00.000000,Y,Y,Y -8bd9c0d453533757387ed019c45617cdc440ba680a67b1a101c85b998ef715c0,2020-07-27 00:00:00.000000,Y,Y,Y -d874e4e4a5df21173b0f83e313151f813bea4f488686efe670ae47f87c177595,2020-06-24 00:00:00.000000,N,N,N -090d3859ff6840b2280f4708cf08cdaed873d967183a4d1deedc1a7964a21eee,2020-11-04 00:00:00.000000,N,Y,N -48a1706eca5ee6148f748ca91a0f7db6ebcf59943532044a7bf60bbe44e5b1d2,2020-11-15 00:00:00.000000,Y,Y,Y -43c727ee4fc7250574d2ef90cfa16626388a10e1b30d36ece1c272953ad2ed9e,2020-02-04 00:00:00.000000,N,N,N -226f76b55acb49701e06ded1d95165d179458f6fc37f5c6fc760ae30dec1c378,2020-03-27 00:00:00.000000,Y,Y,Y -43c727ee4fc7250574d2ef90cfa16626388a10e1b30d36ece1c272953ad2ed9e,2020-02-04 00:00:00.000000,N,N,N -226f76b55acb49701e06ded1d95165d179458f6fc37f5c6fc760ae30dec1c378,2020-06-24 00:00:00.000000,N,N,N -20e9c64c05a54d199610fb7e38135361324b5ed5dcf39c23afe9b48926c07376,2020-11-04 00:00:00.000000,N,Y,N -865736a1c30a82dc67aba820360a01b1d9d0da5643234cd07c4d60b06eb530c5,2020-11-15 00:00:00.000000,Y,Y,Y -8efbbe9bc19ad2e043c6cdb187c0a0fedde70b6458443ce0b5648ec04ccf4cdf,2020-12-24 00:00:00.000000,N,N,N -7a20311cf7a4b222d436424480bc65dd0f9d2cefcbbb1fa148ca0d7e1d5bb55a,2020-01-04 00:00:00.000000,Y,Y,Y -8d1ede4f889e0ed6f0823d8c1821905b9de37a0f851dc270df0dbf72b3c93641,2020-07-27 00:00:00.000000,Y,Y,Y -aae02129362d611717b6c00ad8d73bf820a0f6d88fca8e515cafe78d3a335965,2020-03-27 00:00:00.000000,Y,Y,Y -8d1ede4f889e0ed6f0823d8c1821905b9de37a0f851dc270df0dbf72b3c93641,2020-01-04 00:00:00.000000,Y,Y,Y -aae02129362d611717b6c00ad8d73bf820a0f6d88fca8e515cafe78d3a335965,2020-07-27 00:00:00.000000,Y,Y,Y -156091ee0884f36de9836d58b6f05f357ec6ef0620c571577ac61f7beac35f8e,2020-12-24 00:00:00.000000,N,N,N -88820462180e5c893eff2ed73f4ec33e205d1cd5acc4d17fa7b2bca2495d3448,2020-11-04 00:00:00.000000,N,Y,N -8d23cf6c86e834a7aa6eded54c26ce2bb2e74903538c61bdd5d2197997ab2f72,2020-03-27 00:00:00.000000,Y,Y,Y -1038e0b72d98745fac0fb015fd9c56704862adf11392936242a2ff5a65629f50,2020-11-15 00:00:00.000000,Y,Y,Y -9e11c362bc3d3572970b973d5cd86c073da358b6f9bceaa3be65d1a6487f8819,2020-02-04 00:00:00.000000,N,N,N -a4e987d17584557e2fbed011cddf66dc5185338bc3ef33d4226f86c32b7364dd,2020-06-24 00:00:00.000000,N,N,N -9e11c362bc3d3572970b973d5cd86c073da358b6f9bceaa3be65d1a6487f8819,2020-11-04 00:00:00.000000,N,Y,N -a4e987d17584557e2fbed011cddf66dc5185338bc3ef33d4226f86c32b7364dd,2020-07-27 00:00:00.000000,Y,Y,Y -02cca3803b564ede11ccf9f303c9910b39c532061e7a8c3b773169bc3d3c140b,2020-02-04 00:00:00.000000,N,N,N -2452984f72ef1195df62ab3f23748777dbf39767229425f1bfd0862d476e5840,2020-12-24 00:00:00.000000,N,N,N -0791963ca2667a23cf3268ad25d7bb6ca0ed287b192869703cdbcf0e87934c33,2020-06-24 00:00:00.000000,N,N,N -7104741a92e73eb6c5d69cd04cf0afbe50a8796a010d8fa25daaf79e5e173bf3,2020-11-15 00:00:00.000000,Y,Y,Y -556d7dc3a115356350f1f9910b1af1ab0e312d4b3e4fc788d2da63668f36d017,2020-03-27 00:00:00.000000,Y,Y,Y -058d5d43bf485bf78dda1ed4eaf8b78e3106f3c6364c625ead2cc3aeb1908237,2020-01-04 00:00:00.000000,Y,Y,Y -556d7dc3a115356350f1f9910b1af1ab0e312d4b3e4fc788d2da63668f36d017,2020-06-24 00:00:00.000000,N,N,N -058d5d43bf485bf78dda1ed4eaf8b78e3106f3c6364c625ead2cc3aeb1908237,2020-02-04 00:00:00.000000,N,N,N -7acc684a848a9b954959fdd22493f48cf44eed028275b6b9999c7cade8956fc7,2020-11-04 00:00:00.000000,N,Y,N -eaa0689a095d4394a05fb51b84b0175a47f68221261377e4829444cbfcae23ca,2020-11-15 00:00:00.000000,Y,Y,Y -8ede6b26343305e05c3c0029f4e830d4e8c2016869a9d1cd97b100b2a16dfd1c,2020-01-04 00:00:00.000000,Y,Y,Y -9644294ac4ffb3091eef01219b3fe4fe467f05890cc56af961dce68fddbb7704,2020-12-24 00:00:00.000000,N,N,N -524b2d27a1e7fbc3a1614fa661e2dcad68462352feeb8bf633deaccfb8aa84f3,2020-07-27 00:00:00.000000,Y,Y,Y -023849c38925e2af028a2eb4e1dc41afd7dc7a238195c1c2ae00438d1dae00e1,2020-03-27 00:00:00.000000,Y,Y,Y -524b2d27a1e7fbc3a1614fa661e2dcad68462352feeb8bf633deaccfb8aa84f3,2020-11-15 00:00:00.000000,Y,Y,Y -023849c38925e2af028a2eb4e1dc41afd7dc7a238195c1c2ae00438d1dae00e1,2020-06-24 00:00:00.000000,N,N,N -3c15285c04fff40024bb8714b93e58178bf8d3bebe6943178e1c5412957b7aa1,2020-12-24 00:00:00.000000,N,N,N -02e6295d8f522840f09b5194b3f023799ad6ed3306d9296005787e792224df20,2020-07-27 00:00:00.000000,Y,Y,Y -da70dfa4d9f95ac979f921e8e623358236313f334afcd06cddf8a5621cf6a1e9,2020-02-04 00:00:00.000000,N,N,N -06b2d82840e43ed8432b3f444de18b57dbe60637c99379c708aa8e66de83dbc1,2020-11-04 00:00:00.000000,N,Y,N -72ba187b05e705de2dced5824d716a71872dedccf21f0c179bd2d5f2c7c974b1,2020-03-27 00:00:00.000000,Y,Y,Y -deeeb5df3f2cee6bf4e597a8a3a878a6ce49b932b9e90b416922d4499f54fae6,2020-01-04 00:00:00.000000,Y,Y,Y -72ba187b05e705de2dced5824d716a71872dedccf21f0c179bd2d5f2c7c974b1,2020-03-27 00:00:00.000000,Y,Y,Y -deeeb5df3f2cee6bf4e597a8a3a878a6ce49b932b9e90b416922d4499f54fae6,2020-02-04 00:00:00.000000,N,N,N -04a8708c3a481ced13845a30de522486895de0592222c29326d9139ec2b9df25,2020-11-15 00:00:00.000000,Y,Y,Y -9a72c24f2fd76561729110d804c69f38a7088f2ec41fdf8fbfea20d07e8bcff8,2020-11-04 00:00:00.000000,N,Y,N -459535faa370a3b5f8b87203b089623c7aeb9325abf241ec8a685b9c325047a3,2020-01-04 00:00:00.000000,Y,Y,Y -03a3d955b8799a90f1ff5a39479fde8e618f8ca3282d5b187186f2cf361abd32,2020-06-24 00:00:00.000000,N,N,N -2ab0ce7632a611e907a40710ff46da13c5ba832f5a402c6f51e15f53d6e8fa0e,2020-07-27 00:00:00.000000,Y,Y,Y -62a0eae98b9fc0bd0ad941ae07ae5e2af545a64c8ddc43407bdfe6ae82addb4c,2020-12-24 00:00:00.000000,N,N,N -2ab0ce7632a611e907a40710ff46da13c5ba832f5a402c6f51e15f53d6e8fa0e,2020-06-24 00:00:00.000000,N,N,N -62a0eae98b9fc0bd0ad941ae07ae5e2af545a64c8ddc43407bdfe6ae82addb4c,2020-11-04 00:00:00.000000,N,Y,N -9197e4844abed2fea3569a2acf7b0d584c979c333ab7ae10ba6c339898776f5a,2020-07-27 00:00:00.000000,Y,Y,Y -838f461c2fa673cec73e6eecdafa88b127802d6cb0a61c53175197a122cb645a,2020-11-15 00:00:00.000000,Y,Y,Y -73daa9289ddd08a53ba86f065ddb07bf915aba208bec652e999613d2a8444228,2020-03-27 00:00:00.000000,Y,Y,Y -b3dfdc6efe322a6feccb0d081e88ffac20b0f28e8495efa76188c8dc3ada6181,2020-12-24 00:00:00.000000,N,N,N -4e47eb5525df25f94da777993dafa41d9ab2bfa80a89e28f76d42cd46ab082e7,2020-01-04 00:00:00.000000,Y,Y,Y -600b4cdf20cc06a7b5a5cca5f7464296861815519af6d8a14604201b13965ab8,2020-02-04 00:00:00.000000,N,N,N -4e47eb5525df25f94da777993dafa41d9ab2bfa80a89e28f76d42cd46ab082e7,2020-02-04 00:00:00.000000,N,N,N -600b4cdf20cc06a7b5a5cca5f7464296861815519af6d8a14604201b13965ab8,2020-07-27 00:00:00.000000,Y,Y,Y -0788979fc9366e21cd56311511b897a222cf91711481bcd7dc837eac2172d087,2020-11-15 00:00:00.000000,Y,Y,Y -8e6aee9efac8086ebac545d45c63e0d0dfcddd0d77d53e45c04d05cafdd2a8a8,2020-12-24 00:00:00.000000,N,N,N -5f193b350c8aba4883dedf97367ef3080821470661d0a2e1faf420a300cb5ca8,2020-03-27 00:00:00.000000,Y,Y,Y -62f77e7d6197863ac98d9e0cfa76bea0c8e05379ed5281afbe72f7fc206fe37b,2020-06-24 00:00:00.000000,N,N,N -e52d08747b9d7a6d04551bb86ee3f7ee6c49f7477c8cd66f77448378cc30b92b,2020-11-04 00:00:00.000000,N,Y,N -01299ac65733b5a3d774265fbfe8396b8611e5e3321855dbc541cd301e71fe5e,2020-01-04 00:00:00.000000,Y,Y,Y -e52d08747b9d7a6d04551bb86ee3f7ee6c49f7477c8cd66f77448378cc30b92b,2020-12-24 00:00:00.000000,N,N,N -01299ac65733b5a3d774265fbfe8396b8611e5e3321855dbc541cd301e71fe5e,2020-01-04 00:00:00.000000,Y,Y,Y -de5872c6bb4494cebd250152ce148cd6231654e4469229f2f993984b3950b422,2020-03-27 00:00:00.000000,Y,Y,Y -12e2c8df501501b2bb531e941a737ffa7a2a491e849c5c5841e3b6132291bc35,2020-11-15 00:00:00.000000,Y,Y,Y -2c4cf657337835125bc4258d0e2e546af4185bdb70f64e1b0aa46d1d78017404,2020-06-24 00:00:00.000000,N,N,N -2af4dd48399a5cf64c23fc7933e11aaf6171d80001b4b1377498ae6056b1acbf,2020-07-27 00:00:00.000000,Y,Y,Y -392a52e4f77c40bf3321dc2feac356fac2a906a80c961748170af4ce2bce1e6a,2020-02-04 00:00:00.000000,N,N,N -f65ccfbfec288565c1d414275985547799fde0ed286c85a50bd0ec5faa01d1ac,2020-11-04 00:00:00.000000,N,Y,N -392a52e4f77c40bf3321dc2feac356fac2a906a80c961748170af4ce2bce1e6a,2020-11-04 00:00:00.000000,N,Y,N -f65ccfbfec288565c1d414275985547799fde0ed286c85a50bd0ec5faa01d1ac,2020-07-27 00:00:00.000000,Y,Y,Y -48b361d46638bfa4eee090c158a750a69c7beec3a62e703e2801125551b1b157,2020-03-27 00:00:00.000000,Y,Y,Y -37b73510175057c633ebe4beb0a34917fa2a0696432db43a4eeb2c3ff83a4c3b,2020-06-24 00:00:00.000000,N,N,N -131b0c35e2d7edef9dd63f48eff39341ef0a5f770538aa4e0017f41b9cdb135d,2020-12-24 00:00:00.000000,N,N,N -ab5e292db6495899871d889aaab28308f7da8dfc3693a477ee73de9ad894ce44,2020-01-04 00:00:00.000000,Y,Y,Y -b98880883fd8d975260f1807fa46a5156fcc4cc82bf6d657a417d8bb4e42cd55,2020-02-04 00:00:00.000000,N,N,N -48a1a756f2d83f1dc57bbf14052b70a6f40d0fceed6662812e34903a9fe90924,2020-11-15 00:00:00.000000,Y,Y,Y -b98880883fd8d975260f1807fa46a5156fcc4cc82bf6d657a417d8bb4e42cd55,2020-07-27 00:00:00.000000,Y,Y,Y -48a1a756f2d83f1dc57bbf14052b70a6f40d0fceed6662812e34903a9fe90924,2020-06-24 00:00:00.000000,N,N,N -a934c244755c66aebb0d6f9f5687038ffae8f00b00b28b4e17521016393f38b9,2020-01-04 00:00:00.000000,Y,Y,Y -6ea2fdb3399f4d2e806beb01e9a3371bd622bed6a409acf3151818d738c370ec,2020-03-27 00:00:00.000000,Y,Y,Y -99a0b871c9047c4f5555fcf062e0623174bae38746fece6efdf032d80fb2221a,2020-11-15 00:00:00.000000,Y,Y,Y -3c1b7053f0edd447b778edbc0ad8359b0fa892d69857d9bd5e6b19007bb3f01e,2020-11-04 00:00:00.000000,N,Y,N -1d2028ddcd746a7ee87dd0739d7435602b77d4908f96e27ebdad57b09aa27b69,2020-12-24 00:00:00.000000,N,N,N -188c1fdca79d927f6e812133173fc41d3a4e57074de521020274caa9bb29af7d,2020-02-04 00:00:00.000000,N,N,N -1d2028ddcd746a7ee87dd0739d7435602b77d4908f96e27ebdad57b09aa27b69,2020-02-04 00:00:00.000000,N,N,N -188c1fdca79d927f6e812133173fc41d3a4e57074de521020274caa9bb29af7d,2020-01-04 00:00:00.000000,Y,Y,Y -0f78540965a86402578f8188c826c1cb6c7ddcb608ae3a3201e532c7cacb6ce3,2020-11-15 00:00:00.000000,Y,Y,Y -26d228663f13a88592a12d16cf9587caab0388b262d6d9f126ed62f9333aca94,2020-06-24 00:00:00.000000,N,N,N -dcaadad1cfce437735b81ab025f776e5857e48558c47f6960e6a5f2595664a85,2020-03-27 00:00:00.000000,Y,Y,Y -6b3c238ebcf1f3c07cf0e556faa82c6b8fe96840ff4b6b7e9962a2d855843a0b,2020-11-04 00:00:00.000000,N,Y,N -a73b320dc0d3a57c03f897eb28ca91e623c5ee635db59476ba3178c90b94019f,2020-12-24 00:00:00.000000,N,N,N -f64f410744d9470ffe2d6b9ee6f042cdffcc42a745d2568146e8782ea828ff48,2020-07-27 00:00:00.000000,Y,Y,Y -a73b320dc0d3a57c03f897eb28ca91e623c5ee635db59476ba3178c90b94019f,2020-07-27 00:00:00.000000,Y,Y,Y -f64f410744d9470ffe2d6b9ee6f042cdffcc42a745d2568146e8782ea828ff48,2020-02-04 00:00:00.000000,N,N,N -a5abb1500bdeaef41e2edd598c015edfaa46793051b82d7da60a70efbf786da4,2020-01-04 00:00:00.000000,Y,Y,Y -e6f47e008cc58b38596e6fdf2f50a0fea93fd10543e652522aeab3aa71355719,2020-06-24 00:00:00.000000,N,N,N -480f5a496560ae4228bb7977ecf29b2c589d7a7aa6b609534566af8cbc229a9e,2020-11-15 00:00:00.000000,Y,Y,Y -fabf5b7fedb3e62a81c9298b19706249ee128011bf9d94867681020c16f8b741,2020-03-27 00:00:00.000000,Y,Y,Y -1c49f22f6de9bd15e5e566fa8983be4cfa4709abf0f95edf96dcd3d6249c2649,2020-12-24 00:00:00.000000,N,N,N -8111eb1556229541d7d2720a51203037e78ee57fb2e407e0da4a805473dab7af,2020-11-04 00:00:00.000000,N,Y,N -1c49f22f6de9bd15e5e566fa8983be4cfa4709abf0f95edf96dcd3d6249c2649,2020-07-27 00:00:00.000000,Y,Y,Y -8111eb1556229541d7d2720a51203037e78ee57fb2e407e0da4a805473dab7af,2020-11-15 00:00:00.000000,Y,Y,Y -fc72c98a6c2916c1bbf9f39fce094f5785bb6f1d656971520b660b2e8a760fe3,2020-02-04 00:00:00.000000,N,N,N -67e0bdb7b6c549d4fa834d0f6848ce6a3a12e07de9cea949ad41932bd5881bc4,2020-01-04 00:00:00.000000,Y,Y,Y -afcf8bc077e68eb94dfe783205f32cabdeead61fd32ff5710947b6111ff2ff77,2020-12-24 00:00:00.000000,N,N,N -db55da3fc3098e9c42311c6013304ff36b19ef73d12ea932054b5ad51df4f49d,2020-11-04 00:00:00.000000,N,Y,N -5092c37bcbc9f0fb33cb0f9cab7aa5ae94ed0f1219773c380b143b7c1224d01b,2020-03-27 00:00:00.000000,Y,Y,Y -5658b88806a236b6439a7ecd0a87af2475a02a848095304c6d25981ae5e7e9a9,2020-06-24 00:00:00.000000,N,N,N -5092c37bcbc9f0fb33cb0f9cab7aa5ae94ed0f1219773c380b143b7c1224d01b,2020-11-15 00:00:00.000000,Y,Y,Y -5658b88806a236b6439a7ecd0a87af2475a02a848095304c6d25981ae5e7e9a9,2020-01-04 00:00:00.000000,Y,Y,Y -814bb6b8dc12188a44b71e378dc20a4292e01979aa9ab95b09b8a681391dfc9d,2020-06-24 00:00:00.000000,N,N,N -814fd2e8e45e9a6d3e1f6ff86867aaf2251ccd07f3eed02708fae286192c29e3,2020-03-27 00:00:00.000000,Y,Y,Y -0dfcddb0440e967f05bb68ca09a5e2188b8abc36bfb5b95b83b88be59c42c6e7,2020-12-24 00:00:00.000000,N,N,N -cbf2f7864f1c988391a9ab199627a29bd60987da067748c2812b75785d7ec151,2020-11-04 00:00:00.000000,N,Y,N -2d1007980f49215311f7f1012e84f99b801eb5daeca04dedea3ada41cc45353b,2020-07-27 00:00:00.000000,Y,Y,Y -fed88b40aba63cac05eadd5db0088c036005ec235c7be6fd87d656946b733332,2020-02-04 00:00:00.000000,N,N,N -2d1007980f49215311f7f1012e84f99b801eb5daeca04dedea3ada41cc45353b,2020-07-27 00:00:00.000000,Y,Y,Y -fed88b40aba63cac05eadd5db0088c036005ec235c7be6fd87d656946b733332,2020-11-04 00:00:00.000000,N,Y,N -0a1f1256f9bac68e806442aa76455bb761af5414855efa23c1b3fd54477c0ba1,2020-12-24 00:00:00.000000,N,N,N -98f1f17f9a73ccfe3e25940add8d9ce9bf05513104cacb84f2f1185bf5886a84,2020-06-24 00:00:00.000000,N,N,N -aaf01d71b55e51b1a3051cbb3cdc0646578dcda722b2922072a81f257b1a9821,2020-02-04 00:00:00.000000,N,N,N -155d1cf609cedded2fbc27a4646de87ce7f7de2913b1e5a1bbf148a6df483e19,2020-03-27 00:00:00.000000,Y,Y,Y -0ef962215cc055786d516355238a80dacc204ecf9b160d0a252190bf5c0cc370,2020-11-15 00:00:00.000000,Y,Y,Y -18d37c950a3e810d9b9a84c72c230ca16b7cec19f7fb55c625e5441790d448ef,2020-01-04 00:00:00.000000,Y,Y,Y -0ef962215cc055786d516355238a80dacc204ecf9b160d0a252190bf5c0cc370,2020-11-04 00:00:00.000000,N,Y,N -18d37c950a3e810d9b9a84c72c230ca16b7cec19f7fb55c625e5441790d448ef,2020-07-27 00:00:00.000000,Y,Y,Y -050a010ce24d0896056e9a36a1940738d38f469d644b3682cfcc47569739c525,2020-01-04 00:00:00.000000,Y,Y,Y -e3f6959781c353c201d378e02d9da532601673e08a1706fa15a5ebbd9ea1bd36,2020-12-24 00:00:00.000000,N,N,N -2dfe70c43208f52b9ef4ea7e134705283947116491e81fbac05f0aedc25c5956,2020-03-27 00:00:00.000000,Y,Y,Y -3538a1ef2e113da64249eea7bd068b585ec7ce5df73b2d1e319d8c9bf47eb314,2020-02-04 00:00:00.000000,N,N,N -0e12831a7047f759733b21f028525039607350b1b1b4fe904595427e72ea0d9b,2020-11-15 00:00:00.000000,Y,Y,Y -75c3e223190bf1a1fa2af808d1dfcdffe33727d57eb0028b5a52ad893480eeb9,2020-06-24 00:00:00.000000,N,N,N -0e12831a7047f759733b21f028525039607350b1b1b4fe904595427e72ea0d9b,2020-03-27 00:00:00.000000,Y,Y,Y -75c3e223190bf1a1fa2af808d1dfcdffe33727d57eb0028b5a52ad893480eeb9,2020-07-27 00:00:00.000000,Y,Y,Y -c498f3fe97c0df55ee8dea01a72572059b93f42d235a5e439e9c9a1654d6d4e1,2020-06-24 00:00:00.000000,N,N,N -a4ecdd704d258aa841bb3f9a1e3b0cafc59bd88810e542f8e7a0519809d78fe7,2020-11-15 00:00:00.000000,Y,Y,Y -4a30a219a9d7663fdd35c0a5df49c8d55018f13a0c53e10dd8efe8f7e4cc5d89,2020-01-04 00:00:00.000000,Y,Y,Y -549a2fac47d713cc00f2db498ad6b5574fb03c9293aef6c7ad50a11b394c197d,2020-02-04 00:00:00.000000,N,N,N -d83c7ee736be931d85b78a4a60881ced3ff9a31bb417804e45b1d30de40f94f2,2020-12-24 00:00:00.000000,N,N,N -48f89b630677c2cbb70e2ba05bf7a3633294e368a45bdc2c7df9d832f9e0c941,2020-11-04 00:00:00.000000,N,Y,N -d83c7ee736be931d85b78a4a60881ced3ff9a31bb417804e45b1d30de40f94f2,2020-12-24 00:00:00.000000,N,N,N -48f89b630677c2cbb70e2ba05bf7a3633294e368a45bdc2c7df9d832f9e0c941,2020-07-27 00:00:00.000000,Y,Y,Y -f626051bc94422f26f4b774a2bca105e122df36a2f32f51bd7ee470daa620b0b,2020-02-04 00:00:00.000000,N,N,N -b3a8e0e1f9ab1bfe3a36f231f676f78bb30a519d2b21e6c530c0eee8ebb4a5d0,2020-06-24 00:00:00.000000,N,N,N -353767b239099863e13ca954e20a66c9d75f777baf239f56e399958de49bf79d,2020-03-27 00:00:00.000000,Y,Y,Y -841a05fd378a2c067058585e3691c2a3f5399206fded7a580fdbbc281003168e,2020-11-15 00:00:00.000000,Y,Y,Y -de482c7ed5ca67ae135ef25bf3b13194970a2f3902318f1eda3c64af2a2eb344,2020-11-04 00:00:00.000000,N,Y,N -da4d43f295ce92630829272fad6d2e7237c6248e9cd9499e6382d6fa6d758e7b,2020-01-04 00:00:00.000000,Y,Y,Y -de482c7ed5ca67ae135ef25bf3b13194970a2f3902318f1eda3c64af2a2eb344,2020-11-15 00:00:00.000000,Y,Y,Y -da4d43f295ce92630829272fad6d2e7237c6248e9cd9499e6382d6fa6d758e7b,2020-12-24 00:00:00.000000,N,N,N -06de973bb45531d52cdbd483c5e50bcddaa2095f9515e03cfad490061cc9831e,2020-01-04 00:00:00.000000,Y,Y,Y -88b54564b232405ab2165996517fece1149259cf1ea262a375db0f66039294d0,2020-07-27 00:00:00.000000,Y,Y,Y -ad3b83575249b68aab9602de378314fc221ab07a9b2ab0bb4a245ec649219f45,2020-06-24 00:00:00.000000,N,N,N -1e5ee5e58c8f490ae68e7e91b1575ebefc2bf6c211f302a553ff0c4925e85321,2020-03-27 00:00:00.000000,Y,Y,Y -c6bd343ae0007cdb979de7540f2668fe849d68ff47fa1a650a28f89104f41f1e,2020-11-04 00:00:00.000000,N,Y,N -30eec89ddd9c342ef28a87f731d6e50ba977baf12d7caa7045a9d56b0e923f03,2020-02-04 00:00:00.000000,N,N,N -c6bd343ae0007cdb979de7540f2668fe849d68ff47fa1a650a28f89104f41f1e,2020-03-27 00:00:00.000000,Y,Y,Y -30eec89ddd9c342ef28a87f731d6e50ba977baf12d7caa7045a9d56b0e923f03,2020-02-04 00:00:00.000000,N,N,N -064c3e311ef63912b0cc91db9681ce2d301c3e76c447febf8faa303de38cc005,2020-07-27 00:00:00.000000,Y,Y,Y -b6cb293891dd62748d85aa2e00eb97e267870905edefdfe53a2ea0f3da49e88d,2020-12-24 00:00:00.000000,N,N,N -3a8f6d79cd434dc10588606993976b7b2bc038ff4a2481e857ac0168fc29a683,2020-06-24 00:00:00.000000,N,N,N -e73cb135243c08ab2c2adc333b150b9237093315f6b38e3361f07caf2bfb4d6b,2020-11-15 00:00:00.000000,Y,Y,Y -6e82b8197ce29396936a07b1eb951c88650a2fc0fe1201a51b15b6ca8a73318a,2020-01-04 00:00:00.000000,Y,Y,Y -200dd69b70a88134b3a939de5f0b10c44a1675344329b9d9a5ad6b7342f978b2,2020-11-04 00:00:00.000000,N,Y,N -6e82b8197ce29396936a07b1eb951c88650a2fc0fe1201a51b15b6ca8a73318a,2020-11-04 00:00:00.000000,N,Y,N -200dd69b70a88134b3a939de5f0b10c44a1675344329b9d9a5ad6b7342f978b2,2020-07-27 00:00:00.000000,Y,Y,Y -9869a8a3a11a33284dc2bcc3d2e6ffd52cad30e2009c11dfe604e74dc21a887e,2020-03-27 00:00:00.000000,Y,Y,Y -ddfe0e8d462af661f81db36589c39882dc0f2330785b5d80cd34f2f520ad618f,2020-01-04 00:00:00.000000,Y,Y,Y -51d089cdaf0c968c94b80671489d22b6f79b1c57de80df880b008e9b37b49788,2020-11-15 00:00:00.000000,Y,Y,Y -a42e815c58f3977fe531a80ffd4659121c3b9f876a89869042816c369ed80776,2020-12-24 00:00:00.000000,N,N,N -5844a72aee9269a68da28cae55c706d824b02ffb92189aaacd746a0d6097f549,2020-02-04 00:00:00.000000,N,N,N -86b700fab5db37977a73700b53a0654b21bdad0896914cc19ad70dee5f5fb3f6,2020-06-24 00:00:00.000000,N,N,N -5844a72aee9269a68da28cae55c706d824b02ffb92189aaacd746a0d6097f549,2020-06-24 00:00:00.000000,N,N,N -86b700fab5db37977a73700b53a0654b21bdad0896914cc19ad70dee5f5fb3f6,2020-12-24 00:00:00.000000,N,N,N -9b19f9ab816598a0809e4afd5d60800f2dbef9cbb9b03ad2ce766b3c237b9059,2020-11-04 00:00:00.000000,N,Y,N -a77b6cbdf6fae1676369dea1e1ea675e4c2400c9e43bd535fdfd9395cb48cbaa,2020-01-04 00:00:00.000000,Y,Y,Y -e4be97ce765e6cfcd703884cc31db7478fa7befca7cf6dc15420ba20ed718abe,2020-07-27 00:00:00.000000,Y,Y,Y -23e8b0175874e1bb3b4799e13a6634a8eddb456c1b8675b871e07ec09abc0c07,2020-11-15 00:00:00.000000,Y,Y,Y -560aa3e6e94314c78236109e209ac79e15e05ec8bf2dcb78300ae65e720edf9e,2020-02-04 00:00:00.000000,N,N,N -d18b29d80a8bd366b77c952d9775510507c2d006eec917ab2f89ef93acc5452f,2020-03-27 00:00:00.000000,Y,Y,Y -560aa3e6e94314c78236109e209ac79e15e05ec8bf2dcb78300ae65e720edf9e,2020-07-27 00:00:00.000000,Y,Y,Y -d18b29d80a8bd366b77c952d9775510507c2d006eec917ab2f89ef93acc5452f,2020-11-15 00:00:00.000000,Y,Y,Y -ac1270c5058af65025e5b2a3e3014cea69460e7d9f159ae667028e1b6eab433e,2020-02-04 00:00:00.000000,N,N,N -35bbce4007c5cd57a4c6dcabbdf5b347c9557ec11898111c280a788f8396e2c5,2020-03-27 00:00:00.000000,Y,Y,Y -dcb5d6e69e4ded78464ae2843f509daf65c9ca09dfdc9b5ad69166341963a877,2020-11-04 00:00:00.000000,N,Y,N -0604cd3138feed202ef293e062da2f4720f77a05d25ee036a7a01c9cfcdd1f0a,2020-06-24 00:00:00.000000,N,N,N -1158e7e12c5e7362318e5e3c2e1f2f1ab49578ab1d1691e9818a7c3f6b30b528,2020-01-04 00:00:00.000000,Y,Y,Y -5344c4110f483793dc352c388e67776724c36b4bea3ffda6cab7c75b9c65aceb,2020-12-24 00:00:00.000000,N,N,N -1158e7e12c5e7362318e5e3c2e1f2f1ab49578ab1d1691e9818a7c3f6b30b528,2020-11-15 00:00:00.000000,Y,Y,Y -5344c4110f483793dc352c388e67776724c36b4bea3ffda6cab7c75b9c65aceb,2020-06-24 00:00:00.000000,N,N,N -7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5,2020-01-04 00:00:00.000000,Y,Y,Y -ba689abd93c9c6a7d08b5b5c04dd27f6d69755ebe9a87fb969e73dfc11660e38,2020-02-04 00:00:00.000000,N,N,N -e13b778ae833ca8c5d757c58e4a85bd71e08c05caedbd096e13ec3f7b228b43a,2020-03-27 00:00:00.000000,Y,Y,Y -ecac903ea62dc1d5446a88330af0a17ce89c7787e5aaf450113a4a426813e3cc,2020-12-24 00:00:00.000000,N,N,N -a05198938c6ca8cd56289c6dba6bb8aaa68dfe8e0d7a37df2fb76e48eeba4244,2020-07-27 00:00:00.000000,Y,Y,Y -5e5c743a015ff8d81e2374d5bca1bdf8ed87ce18484fce8cf4062183dde08493,2020-11-04 00:00:00.000000,N,Y,N -a05198938c6ca8cd56289c6dba6bb8aaa68dfe8e0d7a37df2fb76e48eeba4244,2020-06-24 00:00:00.000000,N,N,N -5e5c743a015ff8d81e2374d5bca1bdf8ed87ce18484fce8cf4062183dde08493,2020-01-04 00:00:00.000000,Y,Y,Y -2c69bc9b34fb0800a44a702e45019c107dfdc8273b9feb62c9615addc7138bde,2020-11-15 00:00:00.000000,Y,Y,Y -94f8607915dff25f013e45fc0642fb9830b0fb25ab0ab46d477eaf1061def379,2020-12-24 00:00:00.000000,N,N,N -39700d452c77592c9710a4a34c6fe97d6150e26d550a5cfa553b0177d7b23e95,2020-11-04 00:00:00.000000,N,Y,N -4771bef2c04a34b548b77ea7581cf821152d9dea9c2c85151a07856fe3639314,2020-07-27 00:00:00.000000,Y,Y,Y -5088c1bc42f5cc6a32cdb92d7524ea06febe006baac86a0fc8986a8ee00602bc,2020-02-04 00:00:00.000000,N,N,N -8952115444bab6de66aab97501f75fee64be3448203a91b47818e5e8943e0dfb,2020-03-27 00:00:00.000000,Y,Y,Y -5088c1bc42f5cc6a32cdb92d7524ea06febe006baac86a0fc8986a8ee00602bc,2020-11-04 00:00:00.000000,N,Y,N -8952115444bab6de66aab97501f75fee64be3448203a91b47818e5e8943e0dfb,2020-02-04 00:00:00.000000,N,N,N -0cce0bd361c46fcde41daebc801da75e21320763dc2b1a5a62d9b28e7c3e1d10,2020-01-04 00:00:00.000000,Y,Y,Y -0b35b06a22779418f775a804f36485f7bc978071d1709ad263a68f4f18117b11,2020-06-24 00:00:00.000000,N,N,N -72933e3b31f0070af6478edc3becf96e1ee59917620e8c509cf0e6b360e29c02,2020-07-27 00:00:00.000000,Y,Y,Y -388c2eafe5afd475492698c0995a2daf157eb3b3be8207391d3a023c97c8c034,2020-03-27 00:00:00.000000,Y,Y,Y -c32ffef1ae0cabc0576614cb4d2064cea5bd9c0fa13c7b8bb9fb9b4e8ba950a9,2020-11-15 00:00:00.000000,Y,Y,Y -f7c2599681e9284ce1c403459e22b730e997d67d16c45c4f593108e8372029a9,2020-12-24 00:00:00.000000,N,N,N -c32ffef1ae0cabc0576614cb4d2064cea5bd9c0fa13c7b8bb9fb9b4e8ba950a9,2020-12-24 00:00:00.000000,N,N,N -f7c2599681e9284ce1c403459e22b730e997d67d16c45c4f593108e8372029a9,2020-07-27 00:00:00.000000,Y,Y,Y -e1bb74a7794720edf4935a8813538e8113491318168b1fa61a0ac3528e7b0440,2020-06-24 00:00:00.000000,N,N,N -bd3a797ba948938978965781bd341bc0fc7711ed00e513b9c63a61cf3d916562,2020-11-04 00:00:00.000000,N,Y,N -8920a14a7f6469b955b114111564cb9736440238d220fc9fd525efdb9a056d3e,2020-03-27 00:00:00.000000,Y,Y,Y -68f10bf021d7734e071e07bbf561aa0f1bfc7974f266f71311b9177b177d39d1,2020-01-04 00:00:00.000000,Y,Y,Y -fb8a0d2da8683cec6cc64542f95ae11e085c72d56c744b2be5be335295976610,2020-02-04 00:00:00.000000,N,N,N -5ef6514ed3304cf62b950982541114ac352c52729dbf80747775a9d1a733af93,2020-11-15 00:00:00.000000,Y,Y,Y -fb8a0d2da8683cec6cc64542f95ae11e085c72d56c744b2be5be335295976610,2020-12-24 00:00:00.000000,N,N,N -5ef6514ed3304cf62b950982541114ac352c52729dbf80747775a9d1a733af93,2020-02-04 00:00:00.000000,N,N,N -20ca98162ba780883712eb701c84e4c06f73aba78e903935a9ad799193b4627f,2020-11-15 00:00:00.000000,Y,Y,Y -d11501b090fb2749f2c49284394dd36fe0ac76eb1a52cb3bba260dbc119ec46e,2020-06-24 00:00:00.000000,N,N,N -da6813d10025369ac0411363a16ab750adb21c6d0b38a03a9fc5ce58134da875,2020-03-27 00:00:00.000000,Y,Y,Y -84f01dd97c687fb28a296bcc2ef1801446ea7405860595924eb2b5bb634718d1,2020-01-04 00:00:00.000000,Y,Y,Y -5de664ef205f95d4a68b69b148eecb04f110ac95ef77f4e5158ae315a76ddd8a,2020-11-04 00:00:00.000000,N,Y,N -2d86377d4cc3e6c85bab00dd407f8c5b657c239c6af3109de6cdf4d418aa2d89,2020-07-27 00:00:00.000000,Y,Y,Y -5de664ef205f95d4a68b69b148eecb04f110ac95ef77f4e5158ae315a76ddd8a,2020-12-24 00:00:00.000000,N,N,N -2d86377d4cc3e6c85bab00dd407f8c5b657c239c6af3109de6cdf4d418aa2d89,2020-07-27 00:00:00.000000,Y,Y,Y -18beb4813723e788a1d79bcbf80802538ec813aa19ded2e9c21cbf08bed6bee3,2020-02-04 00:00:00.000000,N,N,N -d359f8b537f1888bc71fe20b3d79eae6674be7aca9b645b0279c7015f6ff19fd,2020-11-15 00:00:00.000000,Y,Y,Y -68e476b5d5aeca7b0e3b5ca867106c32e40cad05a490f6b08a24063cceed7e7e,2020-03-27 00:00:00.000000,Y,Y,Y -6e2d4d3a3d4c4bb21b095657230061140c63b1ff4d89d85e32fb9a312319b35f,2020-01-04 00:00:00.000000,Y,Y,Y -068814875fcdfb8faf539ef43cf5d109a22b7cfd28770e90b00be8c48bfc722f,2020-06-24 00:00:00.000000,N,N,N -f89f8d0e735a91c5269ab08d72fa27670d000e7561698d6e664e7b603f5c4e40,2020-11-04 00:00:00.000000,N,Y,N -068814875fcdfb8faf539ef43cf5d109a22b7cfd28770e90b00be8c48bfc722f,2020-11-15 00:00:00.000000,Y,Y,Y -f89f8d0e735a91c5269ab08d72fa27670d000e7561698d6e664e7b603f5c4e40,2020-11-04 00:00:00.000000,N,Y,N -1f09802c4beac758321ae8a9f94d752b0976c7d54baa6e511bba8a7374107bef,2020-03-27 00:00:00.000000,Y,Y,Y -cc6bb91d4a9aec9fe2e20ae49fd18166f522a7918a2ff2ecd1c2c35b5d4649e1,2020-07-27 00:00:00.000000,Y,Y,Y -d40fbd13d527595c47eacbf0d7c87d256139d9d45261c25c2840d30a4756495b,2020-12-24 00:00:00.000000,N,N,N -9d6aa3d89c0171b9c2ccd57e6d41ccec3053d3c3f118386e7f10b89ebaa7b8e4,2020-02-04 00:00:00.000000,N,N,N -5fbc314fb0b511345465b5b907ec6961328e5e393ff831c8d74912184098bf41,2020-01-04 00:00:00.000000,Y,Y,Y -dd8e8c8c9dae8978f122d7bcf3d0d49f6a0e86b9fc35528f55e78f7408927bb1,2020-06-24 00:00:00.000000,N,N,N -5fbc314fb0b511345465b5b907ec6961328e5e393ff831c8d74912184098bf41,2020-11-15 00:00:00.000000,Y,Y,Y -dd8e8c8c9dae8978f122d7bcf3d0d49f6a0e86b9fc35528f55e78f7408927bb1,2020-07-27 00:00:00.000000,Y,Y,Y -0d6f9709edaeba4bebf576d6b886b8c7083374f521f5256bf571add42fc7465c,2020-02-04 00:00:00.000000,N,N,N -6bcaea9882504292b2f6ea37a84b215463e71ab73b824ee90ecdc10c8dde71ed,2020-06-24 00:00:00.000000,N,N,N -04edd1d7736883194af3ddb232c337e53d17bc93cfd2140c4f4c4e0d966798b1,2020-12-24 00:00:00.000000,N,N,N -621cb5d0bdea9584dc9f7ede1479e7cca67f8d9778d7e3c8c5cb8aa9eaef47ef,2020-01-04 00:00:00.000000,Y,Y,Y -236b565af6b512826fd89dbbde2e88b94465f780985c134e58b62dea6ee258b2,2020-11-04 00:00:00.000000,N,Y,N -c57727d64e318e2ea42af2b4c3360999ced134403066d050c980e7c6b70d49e4,2020-03-27 00:00:00.000000,Y,Y,Y -236b565af6b512826fd89dbbde2e88b94465f780985c134e58b62dea6ee258b2,2020-07-27 00:00:00.000000,Y,Y,Y -c57727d64e318e2ea42af2b4c3360999ced134403066d050c980e7c6b70d49e4,2020-11-04 00:00:00.000000,N,Y,N -97a6d21df7c51e8289ac1a8c026aaac143e15aa1957f54f42e30d8f8a85c3a55,2020-12-24 00:00:00.000000,N,N,N -f8818b67ab25419ad5b1bd61440573498e0785aad6c634c987fe5a637570f464,2020-06-24 00:00:00.000000,N,N,N -c7ce483fd1cc5fd498e7e2a09851c65f89a33a6837f66d9fbb36e5e5f70b41a2,2020-02-04 00:00:00.000000,N,N,N -5e74cb2ad4e2c9e2d3f59a1e6c8a5d4999df48e5dd69871d2798e0a146b91ee9,2020-01-04 00:00:00.000000,Y,Y,Y -5b4afb8d2ed60a5777760a1cd17fb91b7c940c125cc7f74ae40b75df92036e5b,2020-11-15 00:00:00.000000,Y,Y,Y -8e28c5eb829e92abf7a5a921f42364cbb8b255d7c9861a68a3814a9de95d9d67,2020-03-27 00:00:00.000000,Y,Y,Y -5b4afb8d2ed60a5777760a1cd17fb91b7c940c125cc7f74ae40b75df92036e5b,2020-06-24 00:00:00.000000,N,N,N -8e28c5eb829e92abf7a5a921f42364cbb8b255d7c9861a68a3814a9de95d9d67,2020-12-24 00:00:00.000000,N,N,N -fb84a9739699e1a2c6c56b5baa0a16047a4d845a5c6615ab9e18bafe688f45d6,2020-01-04 00:00:00.000000,Y,Y,Y -f3457dabe1b412ed6374d56fe8fe3b969c761b77dcc80ecc0964b7c7641d219b,2020-11-15 00:00:00.000000,Y,Y,Y -1086d35563c495c1cecbce12135cab3b945e01dd185ea2c1dc8ace5ad988977e,2020-03-27 00:00:00.000000,Y,Y,Y -de0023e398111d43424845aaeee2e119249cc0567e7b585eaba5f44080b458c6,2020-02-04 00:00:00.000000,N,N,N -4299da7466df09516d290f7a99c8b7a2fa94766eb94a61c24e1ce8f6ca80af44,2020-07-27 00:00:00.000000,Y,Y,Y -421c0a7b6d0ee1c34e3d78f1685b6d95113fb2f1091919efaab45f1156a4e428,2020-11-04 00:00:00.000000,N,Y,N -4299da7466df09516d290f7a99c8b7a2fa94766eb94a61c24e1ce8f6ca80af44,2020-11-04 00:00:00.000000,N,Y,N -421c0a7b6d0ee1c34e3d78f1685b6d95113fb2f1091919efaab45f1156a4e428,2020-02-04 00:00:00.000000,N,N,N -62bfa285013f08807d394266cdf8261dd060a704959ae9c20e4ad262b65da12a,2020-07-27 00:00:00.000000,Y,Y,Y -085bcb597bbd610a7f0f955301d0fe3734b92a7144e87f68e8b5beec1a09b55b,2020-01-04 00:00:00.000000,Y,Y,Y -c403741c4121989ac12c0829be88b8bec6f27b270f3cf8a7be3fe72cba473897,2020-06-24 00:00:00.000000,N,N,N -a917ca757ac59f9d568616140c2f72362fc2722ab277e7b5019008f280f17beb,2020-12-24 00:00:00.000000,N,N,N -fbe697429f16141bc71e3b91f3823641c8dd258dd58bf076241514754954cb8c,2020-03-27 00:00:00.000000,Y,Y,Y -e6fcc0253ed7a328a10eb6e2e1ad6abcad60c374c64dbac4b76da610085b43d8,2020-11-15 00:00:00.000000,Y,Y,Y -fbe697429f16141bc71e3b91f3823641c8dd258dd58bf076241514754954cb8c,2020-03-27 00:00:00.000000,Y,Y,Y -e6fcc0253ed7a328a10eb6e2e1ad6abcad60c374c64dbac4b76da610085b43d8,2020-07-27 00:00:00.000000,Y,Y,Y -60f070e3393291d6f836bf0acdca6138eadc4dd1d168ccaf03ab17cf0464f81b,2020-01-04 00:00:00.000000,Y,Y,Y -793733573a1dfd14a2e889a11b2ad7b6981de29df813863b528dc1ae99416eeb,2020-06-24 00:00:00.000000,N,N,N -d4e33e2934280979f580a63f992daa7d0de2cd64a145d5c403a75c3dc5c0004e,2020-11-04 00:00:00.000000,N,Y,N -be6b5b7140b02bff9ad8fa5aaaeca5973791521c5029c9f6b42390f8b87ce2bd,2020-11-15 00:00:00.000000,Y,Y,Y -fcf1e4bf9cc9c1083647b91463e86f49c6961406c37055c7eb8ad13937a519db,2020-12-24 00:00:00.000000,N,N,N -bf7db3a1fea244ba0c173404b5abb382def24d3bc547ca4f410bae2a311cdf85,2020-02-04 00:00:00.000000,N,N,N -fcf1e4bf9cc9c1083647b91463e86f49c6961406c37055c7eb8ad13937a519db,2020-02-04 00:00:00.000000,N,N,N -bf7db3a1fea244ba0c173404b5abb382def24d3bc547ca4f410bae2a311cdf85,2020-12-24 00:00:00.000000,N,N,N -182dc6b90f1c9cd913c39a6b5506f582caba9ddeadafe32f5bdbac25efd705ac,2020-03-27 00:00:00.000000,Y,Y,Y -284b7e6d788f363f910f7beb1910473e23ce9d6c871f1ce0f31f22a982d48ad4,2020-11-04 00:00:00.000000,N,Y,N -36c1cc2f9d7022bf6beacb6248a89e7e677b3bf9a91e6457a5ffdbade55b76da,2020-11-15 00:00:00.000000,Y,Y,Y -3b86df3ff95ad2fd72102e34f3a721f2bdc876e12e3bd1434af8ab4cabbd5547,2020-06-24 00:00:00.000000,N,N,N -90b5bc7f03c840b2efddb22ffdfc37dd12cb391b49aa0fc8751726c04d32ff30,2020-01-04 00:00:00.000000,Y,Y,Y -f57b8252cea0e3cad78056cbf96b9fc041279769afd2228f8c9a8a904550aeb0,2020-07-27 00:00:00.000000,Y,Y,Y -90b5bc7f03c840b2efddb22ffdfc37dd12cb391b49aa0fc8751726c04d32ff30,2020-07-27 00:00:00.000000,Y,Y,Y -f57b8252cea0e3cad78056cbf96b9fc041279769afd2228f8c9a8a904550aeb0,2020-12-24 00:00:00.000000,N,N,N -67eab6db6703cdf9acf656bbb09640fcde2ff197786adbd9ae9c14936fc8d159,2020-06-24 00:00:00.000000,N,N,N -1de4d95a81eb1780d5c21a880a8be6595306670af426e40872b2a03c5cfb9996,2020-01-04 00:00:00.000000,Y,Y,Y -1f594da9b409f7f4b9dc5015a81761b2fc2dd60eec773f74539bdfd30c552c89,2020-03-27 00:00:00.000000,Y,Y,Y -55f0124bb79f5c53d868ca45bbb0f4d04da15eea4fb29c6b95087fe8801bf0a3,2020-11-15 00:00:00.000000,Y,Y,Y -7595dae9cde82218336a5457ed9d55ec898c51623f73a69eefaa57a2cc9194fc,2020-02-04 00:00:00.000000,N,N,N -fa7aec4efb728534ef32c172197c9560097c6d0e4893fe6b20242a566ef033d1,2020-11-04 00:00:00.000000,N,Y,N -7595dae9cde82218336a5457ed9d55ec898c51623f73a69eefaa57a2cc9194fc,2020-02-04 00:00:00.000000,N,N,N -fa7aec4efb728534ef32c172197c9560097c6d0e4893fe6b20242a566ef033d1,2020-12-24 00:00:00.000000,N,N,N -3de8392541ace28284aca7f2724273739fcf4cf73de276a8ddd3547c0011323c,2020-11-04 00:00:00.000000,N,Y,N -683d098205b11550f2d71016c82c4377a96c9f808e132f83f15ba9bd058c7b20,2020-01-04 00:00:00.000000,Y,Y,Y -85ea151b8c5b5ab0d3349100e441bd4b8dc20740d429c16c3b85b77066386e75,2020-06-24 00:00:00.000000,N,N,N -524148f24802f8c68974c2e1ecc8b8f47d0d60b7a0d1948951c050a25b5a8e59,2020-11-15 00:00:00.000000,Y,Y,Y -90b0ce469fbd8e30a2862bb24d562dc641c534a9b43c7c33c25cfaefe25e5e47,2020-07-27 00:00:00.000000,Y,Y,Y -fc47b34e36f4032acd1ca2192a7b9b097011ccbfe3d8e27b04bb6999e000578d,2020-03-27 00:00:00.000000,Y,Y,Y -90b0ce469fbd8e30a2862bb24d562dc641c534a9b43c7c33c25cfaefe25e5e47,2020-02-04 00:00:00.000000,N,N,N -fc47b34e36f4032acd1ca2192a7b9b097011ccbfe3d8e27b04bb6999e000578d,2020-07-27 00:00:00.000000,Y,Y,Y -fc71f2d6d38dbfc752ecaf2262916dc8ad99a34243d47b34691f9f8a3afaeffd,2020-12-24 00:00:00.000000,N,N,N -1b3c33580f2e2094cbde0bfd58f8008ee6e29c06643ca310222045c82fe0ab0e,2020-11-04 00:00:00.000000,N,Y,N -ad723f42c7aba316d944f19f340ce47d8e0c6fb354d212736ec4782314a6824a,2020-11-15 00:00:00.000000,Y,Y,Y -67c312330b0371a0a37c565cf44ef264835147fea61261bf57380f338efcd8c9,2020-06-24 00:00:00.000000,N,N,N -1ad269a743bd01b5bb74f135c332a4acc98ef1a570d966fcd6a801de6d9ae3bc,2020-03-27 00:00:00.000000,Y,Y,Y -21900f41ecb7b8e6cfd9250f096aad2fe7f6d8fbec9436b2d28e48c304ff8255,2020-01-04 00:00:00.000000,Y,Y,Y -1ad269a743bd01b5bb74f135c332a4acc98ef1a570d966fcd6a801de6d9ae3bc,2020-03-27 00:00:00.000000,Y,Y,Y -21900f41ecb7b8e6cfd9250f096aad2fe7f6d8fbec9436b2d28e48c304ff8255,2020-12-24 00:00:00.000000,N,N,N -7b81eb727ed48055fa55c5e03aaa43f27b01bd9b1c8eb38f37a1ca541a79c1f7,2020-01-04 00:00:00.000000,Y,Y,Y -3bcc1340d90b3d55accb9a57998b69708fea2a63c39f7369047469f952ccad4f,2020-02-04 00:00:00.000000,N,N,N -b6b1b469ea43c90a602e7ae3bdea001b11f66c17337dec23df0b0249542357ee,2020-11-04 00:00:00.000000,N,Y,N -02c000a36dcd047f5738f5abfda07dc3b6d56fc44ea752c8f45b965f6fc04c1e,2020-07-27 00:00:00.000000,Y,Y,Y -bda584056eb9957d6c681e00079eff36fec289e2a0432a4221b95438dfef5ca4,2020-06-24 00:00:00.000000,N,N,N -f4dd301311d96b70a2ee62a6bccfe21bb0d94a89ca2805333cf352c1a2381c13,2020-11-15 00:00:00.000000,Y,Y,Y -bda584056eb9957d6c681e00079eff36fec289e2a0432a4221b95438dfef5ca4,2020-11-04 00:00:00.000000,N,Y,N -f4dd301311d96b70a2ee62a6bccfe21bb0d94a89ca2805333cf352c1a2381c13,2020-06-24 00:00:00.000000,N,N,N -2cfd4b162e427e8e59a2fedf7d5d138eb696d08b98ad9765da0af1690c77b280,2020-12-24 00:00:00.000000,N,N,N -3f1bb7c0da3c01e685edd592f3a3ca0b149a399d25b97c0da47118c24a39f59a,2020-01-04 00:00:00.000000,Y,Y,Y -455ae2dfc77dd77562c06dc893a49d84795a93e4f86ea2e92006940c870ec044,2020-02-04 00:00:00.000000,N,N,N -87e50b28705900bb064d1e9df1bd6cf55a7efa01cc16c6cf0703f491a1f13d44,2020-11-15 00:00:00.000000,Y,Y,Y -3c2308b1bc64683e5aed4111841da5bc3b3295b01a852f1dc4e68510f79dd37f,2020-03-27 00:00:00.000000,Y,Y,Y -ed0b853bd9c28435b6aa98fb0780ca80d7d6f72350f76d57aee9509219cc8d61,2020-07-27 00:00:00.000000,Y,Y,Y -3c2308b1bc64683e5aed4111841da5bc3b3295b01a852f1dc4e68510f79dd37f,2020-02-04 00:00:00.000000,N,N,N -ed0b853bd9c28435b6aa98fb0780ca80d7d6f72350f76d57aee9509219cc8d61,2020-01-04 00:00:00.000000,Y,Y,Y -86bc00bf176c8b99e9cbdd89afdd2492de002c1dcce63606f711e0c04203c4da,2020-06-24 00:00:00.000000,N,N,N -c86a2932e1c79343a3c16fb218b9944791aaeedd3e30c87d1c7f505c0e588f7c,2020-11-15 00:00:00.000000,Y,Y,Y -5480ab857f30bc9abdc0d88179b66cb30b6a294029f8bed71e3b606a19941359,2020-07-27 00:00:00.000000,Y,Y,Y -83eaf4dc5e19bcbeb23801e2c3e08c4a89cc82d0a42a903767f9c938d1deac4f,2020-11-04 00:00:00.000000,N,Y,N -5f128c8385e577cd1539a0e5a758e4004f4b97e5986b00fb17d393a5ee5ed85d,2020-12-24 00:00:00.000000,N,N,N -92a6a32f99def322d70ea1167a99c6859ab4e8bbc593b997ec5994d244a82475,2020-03-27 00:00:00.000000,Y,Y,Y -5f128c8385e577cd1539a0e5a758e4004f4b97e5986b00fb17d393a5ee5ed85d,2020-07-27 00:00:00.000000,Y,Y,Y -92a6a32f99def322d70ea1167a99c6859ab4e8bbc593b997ec5994d244a82475,2020-03-27 00:00:00.000000,Y,Y,Y -9f6cb78c09b22a1a10564f6be4a1784327a42ff11a10a31d355435db59f44710,2020-01-04 00:00:00.000000,Y,Y,Y -d62a7b3da232bd0ac1f7520a3b5bb57b171aec57f960f55b47b1987d4e398f68,2020-11-04 00:00:00.000000,N,Y,N -24be8ee76308afb924abfaf26212411f2b66e53b9ce2534e5c9f88354c88cc39,2020-02-04 00:00:00.000000,N,N,N -fc9e91cc78e1817d80b4ba8c2dc9a638d0c57959825ee34f5e3d7688ad80dfb9,2020-11-15 00:00:00.000000,Y,Y,Y -316c0f93c7fe125865d85d6e7e7a31b79e9a46c414c45078b732080fa22ef2a3,2020-12-24 00:00:00.000000,N,N,N -81f27f8a7d8766c72c0307a31327c1fad9007c6c3d33724ad2a5c0a8fe0df33d,2020-06-24 00:00:00.000000,N,N,N -316c0f93c7fe125865d85d6e7e7a31b79e9a46c414c45078b732080fa22ef2a3,2020-03-27 00:00:00.000000,Y,Y,Y -81f27f8a7d8766c72c0307a31327c1fad9007c6c3d33724ad2a5c0a8fe0df33d,2020-11-15 00:00:00.000000,Y,Y,Y -4b8ba4b13094beaef100d3eb7d4c8e23600c30be4420c47e0d6b4e88dbd70abb,2020-02-04 00:00:00.000000,N,N,N -09eac95eb995b821f45353054da3c7eec5f5171fb061de72f1890679956b12a8,2020-07-27 00:00:00.000000,Y,Y,Y -9ae8f17cfc8ba7fd8fb34b2a194ef965a3b36a40839a46eeab1350e916692ac9,2020-01-04 00:00:00.000000,Y,Y,Y -6f81082badfd007354ac6ebb78adaa04bfedf9a1fb9a01909788bad472008ea3,2020-11-04 00:00:00.000000,N,Y,N -bf31e6128301d31bb4014faf6b1e0f05f3ab8877cb55ce3d1ab3230d2ea8a220,2020-12-24 00:00:00.000000,N,N,N -172e1676eda470ede17e9d491554bcbe97ba4691f92880064c8cb29ec35a467e,2020-06-24 00:00:00.000000,N,N,N -bf31e6128301d31bb4014faf6b1e0f05f3ab8877cb55ce3d1ab3230d2ea8a220,2020-11-15 00:00:00.000000,Y,Y,Y -172e1676eda470ede17e9d491554bcbe97ba4691f92880064c8cb29ec35a467e,2020-02-04 00:00:00.000000,N,N,N -00bebc5be79d19e1b8b3f250dc39aebfa9a054baf5f8d61380438d92394c476a,2020-06-24 00:00:00.000000,N,N,N -12f26af0dcdfae8fe4331d6a4c369edd549220cdeb119b3b1831b2a2cf77f281,2020-12-24 00:00:00.000000,N,N,N -f4466a4b51d21014b34f621813a1ed75f1c750ec328d908d9edc989c64778962,2020-01-04 00:00:00.000000,Y,Y,Y -63db0204e2f34aaadace364d046ef5d7614b8cb287b939e55ac05c53aee90de1,2020-03-27 00:00:00.000000,Y,Y,Y -2782526eaa0c5c254b36d0c90e1f8c06af41d167a8b539bd3c81cd6d155e7e5f,2020-07-27 00:00:00.000000,Y,Y,Y -cebe3d9d614ba5c19f633566104315854a11353a333bf96f16b5afa0e90abdc4,2020-11-04 00:00:00.000000,N,Y,N -2782526eaa0c5c254b36d0c90e1f8c06af41d167a8b539bd3c81cd6d155e7e5f,2020-11-15 00:00:00.000000,Y,Y,Y -cebe3d9d614ba5c19f633566104315854a11353a333bf96f16b5afa0e90abdc4,2020-12-24 00:00:00.000000,N,N,N -34e2ad7b31cd9ee87c038c10fd6fbe310314ba67abb73a686f0d1087267d7a1d,2020-11-04 00:00:00.000000,N,Y,N -a4c6af0cb6f02dff01ba174e4cf11f24f73d9ed16ca7a1e3c9d831c0139faa5c,2020-07-27 00:00:00.000000,Y,Y,Y -1c8dcc518b9942ef52885666bfb82260c287afbbeebb71e741b1262099424f11,2020-02-04 00:00:00.000000,N,N,N -10ba045e9ee40807e57f6093280b9fa9eaf640ba4955e340ae4c749382ad96fc,2020-01-04 00:00:00.000000,Y,Y,Y -bb9b8ef813475d1e0ad84e2505af6656d16c990b1f77efaf9324e8fbcae2db67,2020-06-24 00:00:00.000000,N,N,N -162753c27c8b32975a0edf5e89ab4ed8e2f06f02a182e0f181481cc050fdcc72,2020-03-27 00:00:00.000000,Y,Y,Y -bb9b8ef813475d1e0ad84e2505af6656d16c990b1f77efaf9324e8fbcae2db67,2020-01-04 00:00:00.000000,Y,Y,Y -162753c27c8b32975a0edf5e89ab4ed8e2f06f02a182e0f181481cc050fdcc72,2020-11-04 00:00:00.000000,N,Y,N -c2077253a9b10166e7c8ffda8f2377456f332029eea3d27def7fb2b23502c0d4,2020-11-15 00:00:00.000000,Y,Y,Y -1c63ed9164d61acfd1f4f3a7b6dfacbd98d1dc01e755b7b558c6af0491154a2e,2020-12-24 00:00:00.000000,N,N,N -fc4fb94d36f45aa9d13358022455e55db4b6f0eb536a1b2897c90dfd3df9eb9b,2020-03-27 00:00:00.000000,Y,Y,Y -4cc3d9cba4633096fadf09ea1106b4b321ab81b1d461c3d6994f0e303f631249,2020-02-04 00:00:00.000000,N,N,N -8b7fb6aee1c63e17f44f935a6b64e05920ddad65327de1cb5e6994a6a3f0b618,2020-06-24 00:00:00.000000,N,N,N -a6c2a2325dfd588f202a240a06ccb2b037854e7097a303fc8991ecc15501528c,2020-07-27 00:00:00.000000,Y,Y,Y -8b7fb6aee1c63e17f44f935a6b64e05920ddad65327de1cb5e6994a6a3f0b618,2020-11-04 00:00:00.000000,N,Y,N -a6c2a2325dfd588f202a240a06ccb2b037854e7097a303fc8991ecc15501528c,2020-03-27 00:00:00.000000,Y,Y,Y -11f8e31ccbdbb7d91589ecf40713d3a8a5d17a7ec0cebf641f975af50a1eba8d,2020-06-24 00:00:00.000000,N,N,N -677fe64a8ea7e98a420d129f1cf3d4d23a9f107e9fbe8d83efe95f093001cd54,2020-01-04 00:00:00.000000,Y,Y,Y -d6723fa996ced47773f2dea29cce9b11f951e6dafe321a84ac7d32791c3b4660,2020-02-04 00:00:00.000000,N,N,N -99ee50221221864d50c60baea6f14d8ac2e235cc6e78be6088cd40cc97fca394,2020-12-24 00:00:00.000000,N,N,N -290a0b92873bdf4e47986dc5208037bad7527653bff700dc53c1e57eb98103c1,2020-11-15 00:00:00.000000,Y,Y,Y -47fec9f491173c57c1d5b35dfefdb69cba6bd61bfbadea64015a65120efa15a0,2020-07-27 00:00:00.000000,Y,Y,Y -290a0b92873bdf4e47986dc5208037bad7527653bff700dc53c1e57eb98103c1,2020-07-27 00:00:00.000000,Y,Y,Y -47fec9f491173c57c1d5b35dfefdb69cba6bd61bfbadea64015a65120efa15a0,2020-11-04 00:00:00.000000,N,Y,N -769e881d85fc5d27cb4cbc8382200d95b179cfdeb56e0b439da737069eaf8a5a,2020-02-04 00:00:00.000000,N,N,N -e4e549408422875958476160732390defefcac7c2bd8353d918fe452d20de2a6,2020-06-24 00:00:00.000000,N,N,N -bd94717d91260895035088525e817ea10375454f03aa3bd8b28b355a4cee22c5,2020-03-27 00:00:00.000000,Y,Y,Y -1706be6c293444756e72b05e4afa9eb1038e552ac6ce058309451ef7ddad7748,2020-11-15 00:00:00.000000,Y,Y,Y -92c5fd0421c1d619cbf1bdba83a207261f2c5f764aed46db9b4d2de03b72b654,2020-01-04 00:00:00.000000,Y,Y,Y -4ec24a2d7f1dfae1f98882eabf0400cd9483dd2de78b926b625c46e8787f3816,2020-12-24 00:00:00.000000,N,N,N -92c5fd0421c1d619cbf1bdba83a207261f2c5f764aed46db9b4d2de03b72b654,2020-11-04 00:00:00.000000,N,Y,N -4ec24a2d7f1dfae1f98882eabf0400cd9483dd2de78b926b625c46e8787f3816,2020-01-04 00:00:00.000000,Y,Y,Y -2499d690642faa4da2a67b078236d1c031217f3c31cf2da2142c8e84e3d617f1,2020-07-27 00:00:00.000000,Y,Y,Y -9b09d7f65345fc85aaa8814b69f3c933ce5eda41786f0c1df1b1ab2b1fdd2ecc,2020-11-15 00:00:00.000000,Y,Y,Y -40f8d6d22b99ea3388538fd60bbf532256434b0eac401df1d9a2bdbb29354ae8,2020-12-24 00:00:00.000000,N,N,N -2e00b312b0a9681bef09f9085a4e918b8fceb0c0b1c043dc17c90beef5fa446c,2020-02-04 00:00:00.000000,N,N,N -d536a8c1664fec0bc85615cf3cb2645871e8b2935c9642c534c67ac85315cd35,2020-06-24 00:00:00.000000,N,N,N -6c0f3412848008d49d186d5fad7fd1482656cfb62ad3c060a14e41c3fb3f1b43,2020-03-27 00:00:00.000000,Y,Y,Y -d536a8c1664fec0bc85615cf3cb2645871e8b2935c9642c534c67ac85315cd35,2020-12-24 00:00:00.000000,N,N,N -6c0f3412848008d49d186d5fad7fd1482656cfb62ad3c060a14e41c3fb3f1b43,2020-06-24 00:00:00.000000,N,N,N -02837c1944876b4fa860432c13f2d9b11a7fd94dae707c4143d1217dee66fc43,2020-11-04 00:00:00.000000,N,Y,N -d829857eb1366e70be857a69886d1555af0d32681beab068afb93492c2e2b843,2020-02-04 00:00:00.000000,N,N,N -74de057f768beb42de17ffc4b8a56100f0bed85947ecacaef111e3d3ec997950,2020-07-27 00:00:00.000000,Y,Y,Y -68c6c6e9ad314d1a5c4d647cfb6ed84265e47cbc2a05a54fb58ae74c0085ef29,2020-01-04 00:00:00.000000,Y,Y,Y -5c3e9040008c91509e2d28e5308034b677d4e2cc0b386863d4883bdb747eba1c,2020-11-15 00:00:00.000000,Y,Y,Y -9dcbe7e30f0bd60827341113108a55f86b604f921e0792418a9810075dbf3d22,2020-03-27 00:00:00.000000,Y,Y,Y -5c3e9040008c91509e2d28e5308034b677d4e2cc0b386863d4883bdb747eba1c,2020-02-04 00:00:00.000000,N,N,N -9dcbe7e30f0bd60827341113108a55f86b604f921e0792418a9810075dbf3d22,2020-12-24 00:00:00.000000,N,N,N -30e4c02268d49ca010e3c62fcc2615da2fad4cf0c359eb8fedc0366739b34205,2020-03-27 00:00:00.000000,Y,Y,Y -7c3d90003d7d645be0b5f3782533c198a5d5dee06870420b4d594976ed857fc3,2020-11-15 00:00:00.000000,Y,Y,Y -509694b0a010c6431900e71b8210521af57d39ce8e64deb365f0a5c6c9a2ef6d,2020-11-04 00:00:00.000000,N,Y,N -81defd9e2e8f85c7f09874bbe5b8d9a9a5503c6d915a3afe4b65758f28d71fb7,2020-06-24 00:00:00.000000,N,N,N -367461e6dd07bdb57342cb64b2a8d8e0fa13c53842a95ec20a90d35bdd6eb77f,2020-01-04 00:00:00.000000,Y,Y,Y -c2a181d8178a9f753b013fc4bb892ceeb5dc5bcb763352610844b93341ea52a4,2020-07-27 00:00:00.000000,Y,Y,Y -367461e6dd07bdb57342cb64b2a8d8e0fa13c53842a95ec20a90d35bdd6eb77f,2020-01-04 00:00:00.000000,Y,Y,Y -c2a181d8178a9f753b013fc4bb892ceeb5dc5bcb763352610844b93341ea52a4,2020-11-04 00:00:00.000000,N,Y,N -1a42d5267aba37d7057cadd672fefef04771be2476eeee231d6f56a8e1f57733,2020-07-27 00:00:00.000000,Y,Y,Y -2b9449f314bf93145f8122906d8dc56c4ca1f116e6db7ad2768d6f9ade29b31e,2020-03-27 00:00:00.000000,Y,Y,Y -bc8db39f614342b78a67494dbece216d3726f6924b73563be34fc630ac1db7f5,2020-06-24 00:00:00.000000,N,N,N -234666d765f4c0a26cf4d96eced9155888477cb9b19e8cb48ae4ea79ce1b28de,2020-11-15 00:00:00.000000,Y,Y,Y -75f7313c20144e39edcf57a14733d074aee0c482320d5178ee0ef2f2608c2996,2020-02-04 00:00:00.000000,N,N,N -ccbcd0d62f439eacea8b0fa4139d934d2782bae1b8046e8764e598dc64a9f421,2020-12-24 00:00:00.000000,N,N,N -75f7313c20144e39edcf57a14733d074aee0c482320d5178ee0ef2f2608c2996,2020-07-27 00:00:00.000000,Y,Y,Y -ccbcd0d62f439eacea8b0fa4139d934d2782bae1b8046e8764e598dc64a9f421,2020-01-04 00:00:00.000000,Y,Y,Y -0df5486b7bca884d5f00c502e216f734b2865b202397f24bca25ac9b8a95ab4a,2020-11-15 00:00:00.000000,Y,Y,Y -a15faf6f6c7e4c11d7956175f4a1c01edffff6e114684eee28c255a86a8888f8,2020-03-27 00:00:00.000000,Y,Y,Y -42c6024940120036d7a0103375d5b8e5072589f6d0f9a1a8e7f6eb6a17358675,2020-02-04 00:00:00.000000,N,N,N -0c658eb5d61e88c86f37613342bbce6cbf278a9a86ba6514dc7e5c205f76c99f,2020-11-04 00:00:00.000000,N,Y,N -6165d33e490f91dbf808b194904d4f07c550d5e3a19c9e776e0c895136ec9fa2,2020-06-24 00:00:00.000000,N,N,N -64d095f2fecfdeb907dae5403b10966c4ae755b7598aa078cb932e345bd0b5d0,2020-12-24 00:00:00.000000,N,N,N -6165d33e490f91dbf808b194904d4f07c550d5e3a19c9e776e0c895136ec9fa2,2020-03-27 00:00:00.000000,Y,Y,Y -64d095f2fecfdeb907dae5403b10966c4ae755b7598aa078cb932e345bd0b5d0,2020-02-04 00:00:00.000000,N,N,N -d3b913cdf3e8a79786216cc7bbd15fc27f86a7be516f3e14c909b86b7f9eb241,2020-11-04 00:00:00.000000,N,Y,N -8b80f49ec2822cb3cdbe97d9405e39ae40ba418b084c06604b51e2a5af11a7f8,2020-12-24 00:00:00.000000,N,N,N -a8cee66e4788af8b855979155e486c988d84a42aba71e43a0fc26997ca12e737,2020-07-27 00:00:00.000000,Y,Y,Y -a7f0b84de7a450eaf6ffab449cb0f141b69eb701ffb455f375c3dae4277b25c1,2020-01-04 00:00:00.000000,Y,Y,Y -b6bc077d6675a7c8cc9e2fa5a08c86ba59b675d69af118052bb390c3cf11e5e0,2020-06-24 00:00:00.000000,N,N,N -f15223dcc0da90206acdce51c6a9e24938b18665165a819f1abb69233c068cae,2020-11-15 00:00:00.000000,Y,Y,Y -b6bc077d6675a7c8cc9e2fa5a08c86ba59b675d69af118052bb390c3cf11e5e0,2020-02-04 00:00:00.000000,N,N,N -f15223dcc0da90206acdce51c6a9e24938b18665165a819f1abb69233c068cae,2020-12-24 00:00:00.000000,N,N,N -b967fb22d506bda1b4d8a878f46c85862f5d71bb7669ecc6b0fe65f5ad19f844,2020-11-15 00:00:00.000000,Y,Y,Y -afccd937e6ac2d1b6d6e9f318bc5e8a179c977c7413b33b3e4d902ff8cec501e,2020-06-24 00:00:00.000000,N,N,N -c78961d3d782d8a85d9344eedae027f43ce6b9fd35c8f355861a39e0d0ddecc5,2020-07-27 00:00:00.000000,Y,Y,Y -aaee0ce51abf0849e68b257ab97d83a36d9d082916b939cd1012f27d7f6bb873,2020-01-04 00:00:00.000000,Y,Y,Y -a67063986e67b7ddd107229ba9d480ee3a02f9d59732d4bc03b2d97d27a1310d,2020-11-04 00:00:00.000000,N,Y,N -04222ea3e14cb1209b9726defe3efce5196b7afa0a959854a30401be41f4026d,2020-03-27 00:00:00.000000,Y,Y,Y -a67063986e67b7ddd107229ba9d480ee3a02f9d59732d4bc03b2d97d27a1310d,2020-01-04 00:00:00.000000,Y,Y,Y -04222ea3e14cb1209b9726defe3efce5196b7afa0a959854a30401be41f4026d,2020-03-27 00:00:00.000000,Y,Y,Y -12132cd6767ee325d35883d25c0b7f5e1d142d60d33c563c39cea29984dcea57,2020-12-24 00:00:00.000000,N,N,N -f7b856c054de7ccced087ad4f9413380ec494e40abc818b840aaad990ca3c5bc,2020-07-27 00:00:00.000000,Y,Y,Y -afa472a961fbcb09314e81b2c3eb19cd2d9fd7527582f43a3b8fd9d3ed6d893d,2020-06-24 00:00:00.000000,N,N,N -9168e847861429230da331e23aa7983862033165c1ce3fe5f6d29a76c04c8a07,2020-11-15 00:00:00.000000,Y,Y,Y -d15e7843961ed4bfa3e08a80b882c74670e9e9347ea55325cbc1be93c7f54edc,2020-02-04 00:00:00.000000,N,N,N -089ee14b926fabea6dd95890032d1a37e69c1011c710977af774ec3a7b5b39a6,2020-11-04 00:00:00.000000,N,Y,N -d15e7843961ed4bfa3e08a80b882c74670e9e9347ea55325cbc1be93c7f54edc,2020-01-04 00:00:00.000000,Y,Y,Y -089ee14b926fabea6dd95890032d1a37e69c1011c710977af774ec3a7b5b39a6,2020-07-27 00:00:00.000000,Y,Y,Y -54006483f014c53f76d879c033e5589a76e0080d8ced5d818d777344eb78656f,2020-03-27 00:00:00.000000,Y,Y,Y -3daebbc6dfd81355f1cc9d9565ab4a4a53bda47f6117529409acc7acb55556bb,2020-06-24 00:00:00.000000,N,N,N -eaf89db7108470dc3f6b23ea90618264b3e8f8b6145371667c4055e9c5ce9f52,2020-02-04 00:00:00.000000,N,N,N -0e78437805639c14d6413de94c031fd1babdb561b7728d31ae06bfc5ff1766d4,2020-12-24 00:00:00.000000,N,N,N -28955b1fb53203e2ff246fd2d4c3e148d4666a617469cdcc86060985682ab4bc,2020-11-15 00:00:00.000000,Y,Y,Y -3da6ee6699da1eb52d358aa59b8e1cf6b5d77db224b4cec0faaa540610fb3b2e,2020-11-04 00:00:00.000000,N,Y,N -28955b1fb53203e2ff246fd2d4c3e148d4666a617469cdcc86060985682ab4bc,2020-11-04 00:00:00.000000,N,Y,N -3da6ee6699da1eb52d358aa59b8e1cf6b5d77db224b4cec0faaa540610fb3b2e,2020-02-04 00:00:00.000000,N,N,N -5620e84be3e5141819e0d9e4ba10b782ba40e232e56352ed636dc0282161b543,2020-07-27 00:00:00.000000,Y,Y,Y -ff108b68b0e9bc1e5a744f80f9ef1b8575c7d041eeb3e8d2eae300347de6e7fc,2020-03-27 00:00:00.000000,Y,Y,Y -9e04a49e5786695116f9af28552da3083d4eeb015294b878d27053439e363cdf,2020-06-24 00:00:00.000000,N,N,N -82607c98dec8f45ac84e7eae445d8da60d05706ee7405a9a53b0c914b488f1ab,2020-12-24 00:00:00.000000,N,N,N -35a9e381b1a27567549b5f8a6f783c167ebf809f1c4d6a9e367240484d8ce281,2020-01-04 00:00:00.000000,Y,Y,Y -1a6d9c97798d8997f85ed9228296d533be6b47f97217709d7e2b628e21800220,2020-11-15 00:00:00.000000,Y,Y,Y -35a9e381b1a27567549b5f8a6f783c167ebf809f1c4d6a9e367240484d8ce281,2020-03-27 00:00:00.000000,Y,Y,Y -1a6d9c97798d8997f85ed9228296d533be6b47f97217709d7e2b628e21800220,2020-12-24 00:00:00.000000,N,N,N -0b0fc3be2ee8d1d33518036b0f38402ee7bc022380a0b9653886019d38acd128,2020-11-04 00:00:00.000000,N,Y,N -74332c78b10e3ee51ac4a3c18ccc15c1b6c9807b3ca609969de5e3c361573dfa,2020-11-15 00:00:00.000000,Y,Y,Y -23c5910b8b10cfa86e40099cf01e5c2b36f4dd0a903f0c60e5517ea177f4d390,2020-07-27 00:00:00.000000,Y,Y,Y -724213d95916de041564e5d39c2373585dc15855743a42a5841d849b9f3716de,2020-01-04 00:00:00.000000,Y,Y,Y -f7abf2a084c3668c7b90654bf01205085e5d0219ffad0564904e5c923af11523,2020-06-24 00:00:00.000000,N,N,N -4d5e5deb0353d3a6c0b5cf97de0a23087a56796a3474ee500edbe4676c3b9716,2020-02-04 00:00:00.000000,N,N,N -f7abf2a084c3668c7b90654bf01205085e5d0219ffad0564904e5c923af11523,2020-03-27 00:00:00.000000,Y,Y,Y -4d5e5deb0353d3a6c0b5cf97de0a23087a56796a3474ee500edbe4676c3b9716,2020-02-04 00:00:00.000000,N,N,N -ce02d4b6d1aceeea96a562c10923d590607df6182b4a3405ad10be85b6354787,2020-07-27 00:00:00.000000,Y,Y,Y -1a1cf797fabe7f95836fabeca626907c77b3e6c9aff7c2290b396a238c69362e,2020-11-04 00:00:00.000000,N,Y,N -096012b7ebcaf56d1d63b2784d2b2bbdeae080d72ad6bd1b9f7018e62a3c37d0,2020-12-24 00:00:00.000000,N,N,N -dccb3c52e7c79f7033e1ea06eadf92fd90bfd7b0b5737dc0c2511a0e163872f5,2020-06-24 00:00:00.000000,N,N,N -d1c78c9aa5dcb0991f46b25fbaaa359d7d5823ac7a2a94c4d4a31da42a26c24f,2020-11-15 00:00:00.000000,Y,Y,Y -f0ccd8e78b618cb55731054911af540b5496f37e94026cd20dae22363089b2e9,2020-01-04 00:00:00.000000,Y,Y,Y -d1c78c9aa5dcb0991f46b25fbaaa359d7d5823ac7a2a94c4d4a31da42a26c24f,2020-11-15 00:00:00.000000,Y,Y,Y -f0ccd8e78b618cb55731054911af540b5496f37e94026cd20dae22363089b2e9,2020-02-04 00:00:00.000000,N,N,N -fce86e339dc3131c489202ec3b6c8d4319c61f152b3541ba0e4141e5d5c3fac3,2020-12-24 00:00:00.000000,N,N,N -d72a11d264e746464ed45f73e1ec058e33ad40270c79324be171932d834d11f3,2020-06-24 00:00:00.000000,N,N,N -0b06d2ffebd5c025cf444cb95a73e1fff046569238eafd1e80f511ea2a807de3,2020-07-27 00:00:00.000000,Y,Y,Y -313c938e0103b56b43632b702e3e63447fab1f90a4fe890ca5abb7a6cf8830ee,2020-01-04 00:00:00.000000,Y,Y,Y -477d8dffaf92d265c56dca496167d71bfc1c34f443bc9a6677009963e6e99706,2020-03-27 00:00:00.000000,Y,Y,Y -76ba652cbd2ef1931d0546ac1c9d8f12d21c81fad272b754975a0b1561dda275,2020-11-04 00:00:00.000000,N,Y,N -477d8dffaf92d265c56dca496167d71bfc1c34f443bc9a6677009963e6e99706,2020-06-24 00:00:00.000000,N,N,N -76ba652cbd2ef1931d0546ac1c9d8f12d21c81fad272b754975a0b1561dda275,2020-03-27 00:00:00.000000,Y,Y,Y -96da2f8885ba92c9ca4d34bb763a3bc9e19017f0df6424956d61f45abdc7f241,2020-12-24 00:00:00.000000,N,N,N -96bb293aaa330ef307ee004448b92b75ffdc25ade2831ed23fc60ffa97fffb7f,2020-07-27 00:00:00.000000,Y,Y,Y -7b2c21ead1522776414b5a256722903b465fd0c8e029005fcd865144a429da52,2020-02-04 00:00:00.000000,N,N,N -edbad80a93adb5830afc3fccfe0e7c27a81359b59bb2a8c277f95d4adec7c389,2020-01-04 00:00:00.000000,Y,Y,Y -af5422f824076084bed9b8a09086ac59f0ed8c74eea7b189d2809b198ba1f6ee,2020-11-04 00:00:00.000000,N,Y,N -f391e014b2ee3a42955272b8fc78634de1d5833e0cacb412b180376f9c756e49,2020-11-15 00:00:00.000000,Y,Y,Y -af5422f824076084bed9b8a09086ac59f0ed8c74eea7b189d2809b198ba1f6ee,2020-11-04 00:00:00.000000,N,Y,N -f391e014b2ee3a42955272b8fc78634de1d5833e0cacb412b180376f9c756e49,2020-02-04 00:00:00.000000,N,N,N -7a84ae249fa744b8c1acb6c5247c2cf443e31870aa7217f4a9cd9b157dbd54ef,2020-03-27 00:00:00.000000,Y,Y,Y -7a9b1b9dd2e433fc1fc962c38ad571bf1ebb49cb365bfdfb2c36d3f059d6fdd5,2020-07-27 00:00:00.000000,Y,Y,Y -10e4e7caf8b078429bb1c80b1a10118ac6f963eff098fd25a66c78862ae5ebce,2020-11-15 00:00:00.000000,Y,Y,Y -43d244581aa23a744de9d775979165eb226a80e2cce6c0d0885412c9b6a0dbdf,2020-12-24 00:00:00.000000,N,N,N -a807c0dc0a5b5ea4a70b12ba52ead3d30922e1eac15c396ccfdea715a2f15396,2020-01-04 00:00:00.000000,Y,Y,Y -10716564f7bea47036cae9a39adc7dcd395850714228939a2b508d4e57d61824,2020-06-24 00:00:00.000000,N,N,N -a807c0dc0a5b5ea4a70b12ba52ead3d30922e1eac15c396ccfdea715a2f15396,2020-01-04 00:00:00.000000,Y,Y,Y -10716564f7bea47036cae9a39adc7dcd395850714228939a2b508d4e57d61824,2020-02-04 00:00:00.000000,N,N,N -209eb5f20ab018ff6f1e42b98e5b57921aa4e2b7a7b683de32458b7153720a28,2020-12-24 00:00:00.000000,N,N,N -93c3755d0c9030cd90f0e6eae6870a8497730f89b7fd0cf231adef048d2b524d,2020-06-24 00:00:00.000000,N,N,N -130790feced08212eed7d1490dd4d7abf138543be61a4744a03f69ecb9609764,2020-11-04 00:00:00.000000,N,Y,N -33eb7e4ae43f9873d9c84c0f07b055946b24a71ca27daa60acbbf95b44c7c5e0,2020-11-15 00:00:00.000000,Y,Y,Y -501a4e61aa4f7737df0305124a39119b79a6449d2bfcc6f026da0197af2ae60b,2020-03-27 00:00:00.000000,Y,Y,Y -cef5838d118dccd9de488f16a934cf10a82303577b62888b7ff6f84114827e58,2020-07-27 00:00:00.000000,Y,Y,Y -501a4e61aa4f7737df0305124a39119b79a6449d2bfcc6f026da0197af2ae60b,2020-12-24 00:00:00.000000,N,N,N -cef5838d118dccd9de488f16a934cf10a82303577b62888b7ff6f84114827e58,2020-02-04 00:00:00.000000,N,N,N -7f3ee9fe1fbf452b0c242614e1cad18b6dce034e5bc80763dff6332e872ad2ff,2020-07-27 00:00:00.000000,Y,Y,Y -fd0f7e53c5b02b688a57ee37f3d52065cb168a7b9fd5a3abd93d37e1559fbd30,2020-01-04 00:00:00.000000,Y,Y,Y -7125e777a6b199fc4e8c2a0d024215e393c06bf775c217a5f2d8d1a6a7c98d96,2020-11-15 00:00:00.000000,Y,Y,Y -db9351a297a7362b3c913ac8de77bd9a1ccc0d61bada939db15a315f5e8113fc,2020-06-24 00:00:00.000000,N,N,N -3d34f102d1708fc5edd3111144f78764b4d7b745cb5450815780545495df1e68,2020-03-27 00:00:00.000000,Y,Y,Y -6cb6d4b2fa122bf8bd63280061e4a230565fdec3ce03268caa2f48ccd931c691,2020-11-04 00:00:00.000000,N,Y,N -3d34f102d1708fc5edd3111144f78764b4d7b745cb5450815780545495df1e68,2020-01-04 00:00:00.000000,Y,Y,Y -6cb6d4b2fa122bf8bd63280061e4a230565fdec3ce03268caa2f48ccd931c691,2020-03-27 00:00:00.000000,Y,Y,Y -19e68d9fe08f7c4ac18948bf437400f955359b1cf21a86544342427695c3c938,2020-07-27 00:00:00.000000,Y,Y,Y -de498b9901677f58da56b38a515db0a6a3b93840bde5fd0b74437502163e9fb1,2020-12-24 00:00:00.000000,N,N,N -12e967ca0f368d0d8511518c58c6929146650bb1babce4448263e67722dd0161,2020-06-24 00:00:00.000000,N,N,N -929f003731a97f915d11893c6652bbc7db0b36118eb4357cc721f7f68aeb25ff,2020-02-04 00:00:00.000000,N,N,N -7fc81a57656ec055615121454cb5343aaf3db93c762fe310d976e5fe8d05e66d,2020-11-04 00:00:00.000000,N,Y,N -f0cbba2470c7c8706fe77e8d88e947ed8c33100409ffb51ae1af99af7d3077a8,2020-11-15 00:00:00.000000,Y,Y,Y -7fc81a57656ec055615121454cb5343aaf3db93c762fe310d976e5fe8d05e66d,2020-07-27 00:00:00.000000,Y,Y,Y -f0cbba2470c7c8706fe77e8d88e947ed8c33100409ffb51ae1af99af7d3077a8,2020-12-24 00:00:00.000000,N,N,N -3097fc802d49355a0a256d4b07ab9f7257fcf35077cdb8133d59f607fedb229e,2020-02-04 00:00:00.000000,N,N,N -c0cc3b36d8f848d56fbf95b8259dd6f3bf80707e436233a6bfc2667b49e28c8a,2020-11-15 00:00:00.000000,Y,Y,Y -22cdd352056c42ac1a6d01d6bd4f8e8ed1c27fb9addc6e500a59f88b57e4612a,2020-01-04 00:00:00.000000,Y,Y,Y -02f99d2002c703f1669e358989f1663e1e38e96297dcb3bb70fb67b0d74fb877,2020-11-04 00:00:00.000000,N,Y,N -eb0c9cdc0862653468dacc6a876a0c40e9d642c50f798bae1162fe27f18d482c,2020-06-24 00:00:00.000000,N,N,N -ee9d527a0a6108477fc5c98cf2a00f65d38c8e8508c4d17c1c11b2441c78a2ec,2020-03-27 00:00:00.000000,Y,Y,Y -eb0c9cdc0862653468dacc6a876a0c40e9d642c50f798bae1162fe27f18d482c,2020-01-04 00:00:00.000000,Y,Y,Y -ee9d527a0a6108477fc5c98cf2a00f65d38c8e8508c4d17c1c11b2441c78a2ec,2020-12-24 00:00:00.000000,N,N,N -c62ce8b4e927f02f91742ab99d269a17e05d47f12b2275cec9d353e711ddc218,2020-07-27 00:00:00.000000,Y,Y,Y -8f97d9164b8fa131f0361abbe49fe706d3abfd77663ed7939ee20d361a0c6a67,2020-11-15 00:00:00.000000,Y,Y,Y -8b6cd7c429e83373dbd412f43d7422c0c4a127d93d0f2ad15909f0c2a3e7b320,2020-02-04 00:00:00.000000,N,N,N -d2e655334ee2e4841be477484381df1617a8b891adc04cbc536cc1bed229d713,2020-06-24 00:00:00.000000,N,N,N -5b7c4e75c9485e2e988dce7c57bd9e9915a74217914e7d7a1f13955367db0899,2020-11-04 00:00:00.000000,N,Y,N -8a9a02d73aeefd97306a08c30969a9e8d5ef03960978a1c5db4447558d40f689,2020-03-27 00:00:00.000000,Y,Y,Y -5b7c4e75c9485e2e988dce7c57bd9e9915a74217914e7d7a1f13955367db0899,2020-01-04 00:00:00.000000,Y,Y,Y -8a9a02d73aeefd97306a08c30969a9e8d5ef03960978a1c5db4447558d40f689,2020-12-24 00:00:00.000000,N,N,N -062f50753b9095ee2eff40f888d93e61f2ffeb661bb126d15229f03e0463bdb4,2020-02-04 00:00:00.000000,N,N,N -b543b2a3edcc48cc0f9d7159522673384b34fbce51920d75df4d0c184dd89b18,2020-11-15 00:00:00.000000,Y,Y,Y -46f9d22816179479bd27b0036854788327eedf3f6f5d8dcb866b976e17cc9715,2020-11-04 00:00:00.000000,N,Y,N -a73ab888363736220eb589458721088241ee10059b1f5898a13fe9c2e14fcd8c,2020-06-24 00:00:00.000000,N,N,N -30e26cef13a6dbbf0e3035f8c16f55670f4e468e97ac7dad43798621da636abf,2020-03-27 00:00:00.000000,Y,Y,Y -f1916530dae6514fd8ba7c17eadab5ba6739cbd9190b7f967adbe8744748c539,2020-07-27 00:00:00.000000,Y,Y,Y -30e26cef13a6dbbf0e3035f8c16f55670f4e468e97ac7dad43798621da636abf,2020-06-24 00:00:00.000000,N,N,N -f1916530dae6514fd8ba7c17eadab5ba6739cbd9190b7f967adbe8744748c539,2020-02-04 00:00:00.000000,N,N,N -4f97f2eebf92cde58c103466712fa2f65b10d06ff8f1934d78ff592fa0575e27,2020-01-04 00:00:00.000000,Y,Y,Y -52efd2aad05d27e3eac3665b82f2bffa6da52351ce871c1c28e4ba69b40ea3e6,2020-11-04 00:00:00.000000,N,Y,N -28096b238fafbfd5abdb8ddf4e7f5a2c67196cfd8b5d49a196012d0269a2189f,2020-11-15 00:00:00.000000,Y,Y,Y -f44b7809595e5ebe3bb4d65e0cdd1ebbb41b29f5ab8fd73b2b6aef8e8691a62e,2020-12-24 00:00:00.000000,N,N,N -3bd625f07792e885b5a4b5f0b9005a5b53a56a610efa2c27cd923aed53a6a4b5,2020-03-27 00:00:00.000000,Y,Y,Y -000f21ac06aceb9cdd0575e82d0d85fc39bed0a7a1d71970ba1641666a44f530,2020-07-27 00:00:00.000000,Y,Y,Y -3bd625f07792e885b5a4b5f0b9005a5b53a56a610efa2c27cd923aed53a6a4b5,2020-02-04 00:00:00.000000,N,N,N -000f21ac06aceb9cdd0575e82d0d85fc39bed0a7a1d71970ba1641666a44f530,2020-01-04 00:00:00.000000,Y,Y,Y -be4b2f45069c180ef309521f6770146920df18e69165c577dc7ff8e5a7c34465,2020-03-27 00:00:00.000000,Y,Y,Y -5e968ce47ce4a17e3823c29332a39d049a8d0afb08d157eb6224625f92671a51,2020-07-27 00:00:00.000000,Y,Y,Y -a829c72c42755e384141ad8f163e4965ef5c9f8f0e07378c1d05a7222af0dd80,2020-11-15 00:00:00.000000,Y,Y,Y -46db1ca7f3598c26c3e6c8d99e3ed95d2b1c76db040b8f8cd29af723ee086077,2020-06-24 00:00:00.000000,N,N,N -64d94c866dffad6dab67498f5ed9cdf32a6e747e2c17e58d2535f549f7976cb0,2020-11-04 00:00:00.000000,N,Y,N -eaa1938017b2d55e02387d0837e1b56bc124ae8a17624e10e366bae6c4b9c834,2020-12-24 00:00:00.000000,N,N,N -64d94c866dffad6dab67498f5ed9cdf32a6e747e2c17e58d2535f549f7976cb0,2020-01-04 00:00:00.000000,Y,Y,Y -eaa1938017b2d55e02387d0837e1b56bc124ae8a17624e10e366bae6c4b9c834,2020-02-04 00:00:00.000000,N,N,N -c49b60838c5c6ddf34806b6b3f56b51516842cb1cead54a903f55d9c6d73c76d,2020-06-24 00:00:00.000000,N,N,N -62f6d46c48c7d9ff3d09a408d0ec880f167a5dc9c8fd343a4e56e96318349583,2020-11-04 00:00:00.000000,N,Y,N -c62510afc57db491f9f993387b76dd9a7d08f09c01326953904b6586c19c4b8a,2020-07-27 00:00:00.000000,Y,Y,Y -bdc5d8a48c23897906b09a9a3680bd2e9c8b3121edbda36f949800f0959c8d55,2020-03-27 00:00:00.000000,Y,Y,Y -fa88d374b9cf5e059fad4a2fe406feae4c49cbf4803083ec521d3c75ee22557c,2020-12-24 00:00:00.000000,N,N,N -6a97982dccf77dd3dafa27fcbdf75c017301f730ba186b1d9e8ea212eee73f54,2020-11-15 00:00:00.000000,Y,Y,Y diff --git a/carrot/data/test/inputs/covid19_antibody.csv b/carrot/data/test/inputs/covid19_antibody.csv deleted file mode 100644 index d2cdd07e..00000000 --- a/carrot/data/test/inputs/covid19_antibody.csv +++ /dev/null @@ -1,1001 +0,0 @@ -PersonID,date,ABresult,IgG -16dc368a89b428b2485484313ba67a3912ca03f2b2b42429174a4f8b3dc84e44,2020-11-29 00:00:00.000000,1,3.63 -37834f2f25762f23e1f74a531cbe445db73d6765ebe60878a7dfbecd7d4af6e1,2020-04-15 00:00:00.000000,1,6.72 -454f63ac30c8322997ef025edff6abd23e0dbe7b8a3d5126a894e4a168c1b59b,2020-10-04 00:00:00.000000,1,30.3 -5ef6fdf32513aa7cd11f72beccf132b9224d33f271471fff402742887a171edf,2020-08-07 00:00:00.000000,0,0.01 -1253e9373e781b7500266caa55150e08e210bc8cd8cc70d89985e3600155e860,2020-10-08 00:00:00.000000,1,10.08 -482d9673cfee5de391f97fde4d1c84f9f8d6f2cf0784fcffb958b4032de7236c,2020-02-15 00:00:00.000000,0,0.0 -3346f2bbf6c34bd2dbe28bd1bb657d0e9c37392a1d5ec9929e6a5df4763ddc2d,2021-03-01 00:00:00.000000,0,0.0 -9537f32ec7599e1ae953af6c9f929fe747ff9dadf79a9beff1f304c550173011,2020-04-25 00:00:00.000000,0,0.1 -0fd42b3f73c448b34940b339f87d07adf116b05c0227aad72e8f0ee90533e699,2021-07-01 00:00:00.000000,1,20.13 -9bdb2af6799204a299c603994b8e400e4b1fd625efdb74066cc869fee42c9df3,2020-04-16 00:00:00.000000,0,0.25 -f6e0a1e2ac41945a9aa7ff8a8aaa0cebc12a3bcc981a929ad5cf810a090e11ae,2020-04-25 00:00:00.000000,0,0.1 -b1556dea32e9d0cdbfed038fd7787275775ea40939c146a64e205bcb349ad02f,2020-02-15 00:00:00.000000,0,0.0 -6c658ee83fb7e812482494f3e416a876f63f418a0b8a1f5e76d47ee4177035cb,2020-10-04 00:00:00.000000,1,30.3 -9f1f9dce319c4700ef28ec8c53bd3cc8e6abe64c68385479ab89215806a5bdd6,2020-04-15 00:00:00.000000,1,6.72 -28dae7c8bde2f3ca608f86d0e16a214dee74c74bee011cdfdd46bc04b655bc14,2021-07-01 00:00:00.000000,1,20.13 -e5b861a6d8a966dfca7e7341cd3eb6be9901688d547a72ebed0b1f5e14f3d08d,2020-11-29 00:00:00.000000,1,3.63 -2ac878b0e2180616993b4b6aa71e61166fdc86c28d47e359d0ee537eb11d46d3,2020-04-16 00:00:00.000000,0,0.25 -85daaf6f7055cd5736287faed9603d712920092c4f8fd0097ec3b650bf27530e,2021-03-01 00:00:00.000000,0,0.0 -3038bfb575bee6a0e61945eff8784835bb2c720634e42734678c083994b7f018,2020-08-07 00:00:00.000000,0,0.01 -2abaca4911e68fa9bfbf3482ee797fd5b9045b841fdff7253557c5fe15de6477,2020-10-08 00:00:00.000000,1,10.08 -89aa1e580023722db67646e8149eb246c748e180e34a1cf679ab0b41a416d904,2021-03-01 00:00:00.000000,0,0.0 -1be00341082e25c4e251ca6713e767f7131a2823b0052caf9c9b006ec512f6cb,2020-04-25 00:00:00.000000,0,0.1 -a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3,2020-04-15 00:00:00.000000,1,6.72 -6affdae3b3c1aa6aa7689e9b6a7b3225a636aa1ac0025f490cca1285ceaf1487,2020-04-16 00:00:00.000000,0,0.25 -0f8ef3377b30fc47f96b48247f463a726a802f62f3faa03d56403751d2f66c67,2020-10-04 00:00:00.000000,1,30.3 -65a699905c02619370bcf9207f5a477c3d67130ca71ec6f750e07fe8d510b084,2020-10-08 00:00:00.000000,1,10.08 -922c7954216ccfe7a61def609305ce1dc7c67e225f873f256d30d7a8ee4f404c,2021-07-01 00:00:00.000000,1,20.13 -2747b7c718564ba5f066f0523b03e17f6a496b06851333d2d59ab6d863225848,2020-02-15 00:00:00.000000,0,0.0 -6566230e3a3ce3774c1bbc7c18b590ae0f457bbcd511e90e3e7dca2a02e7addc,2020-08-07 00:00:00.000000,0,0.01 -38d66d9692ac590000a91b03a88da1c88d51fab2b78f63171f553ecc551a0c6f,2020-11-29 00:00:00.000000,1,3.63 -eeca91fd439b6d5e827e8fda7fee35046f2def93508637483f6be8a2df7a4392,2020-10-04 00:00:00.000000,1,30.3 -dbb1ded63bc70732626c5dfe6c7f50ced3d560e970f30b15335ac290358748f6,2020-02-15 00:00:00.000000,0,0.0 -d2f483672c0239f6d7dd3c9ecee6deacbcd59185855625902a8b1c1a3bd67440,2020-11-29 00:00:00.000000,1,3.63 -5d389f5e2e34c6b0bad96581c22cee0be36dcf627cd73af4d4cccacd9ef40cc3,2020-04-15 00:00:00.000000,1,6.72 -13671077b66a29874a2578b5240319092ef2a1043228e433e9b006b5e53e7513,2020-04-16 00:00:00.000000,0,0.25 -36ebe205bcdfc499a25e6923f4450fa8d48196ceb4fa0ce077d9d8ec4a36926d,2021-03-01 00:00:00.000000,0,0.0 -d80eae6e96d148b3b2abbbc6760077b66c4ea071f847dab573d507a32c4d99a5,2020-04-25 00:00:00.000000,0,0.1 -d6a4031733610bb080d0bfa794fcc9dbdcff74834aeaab7c6b927e21e9754037,2021-07-01 00:00:00.000000,1,20.13 -8d27ba37c5d810106b55f3fd6cdb35842007e88754184bfc0e6035f9bcede633,2020-08-07 00:00:00.000000,0,0.01 -dbae772db29058a88f9bd830e957c695347c41b6162a7eb9a9ea13def34be56b,2020-10-08 00:00:00.000000,1,10.08 -2c7d5490e6050836f8f2f0d496b1c8d6a38d4ffac2b898e6e77751bdcd20ebf5,2021-03-01 00:00:00.000000,0,0.0 -d4ee9f58e5860574ca98e3b4839391e7a356328d4bd6afecefc2381df5f5b41b,2020-04-15 00:00:00.000000,1,6.72 -d6f0c71ef0c88e45e4b3a2118fcb83b0def392d759c901e9d755d0e879028727,2020-11-29 00:00:00.000000,1,3.63 -5ec1a0c99d428601ce42b407ae9c675e0836a8ba591c8ca6e2a2cf5563d97ff0,2020-10-04 00:00:00.000000,1,30.3 -be47addbcb8f60566a3d7fd5a36f8195798e2848b368195d9a5d20e007c59a0c,2020-02-15 00:00:00.000000,0,0.0 -0a5b046d07f6f971b7776de682f57c5b9cdc8fa060db7ef59de82e721c8098f4,2020-08-07 00:00:00.000000,0,0.01 -1d28c120568c10e19b9d8abe8b66d0983fa3d2e11ee7751aca50f83c6f4a43aa,2020-04-16 00:00:00.000000,0,0.25 -ec2e990b934dde55cb87300629cedfc21b15cd28bbcf77d8bbdc55359d7689da,2020-04-25 00:00:00.000000,0,0.1 -05ada863a4cf9660fd8c68e2295f1d35b2264815f5b605003d6625bd9e0492cf,2020-10-08 00:00:00.000000,1,10.08 -9ae2bdd7beedc2e766c6b76585530e16925115707dc7a06ab5ee4aa2776b2c7b,2021-07-01 00:00:00.000000,1,20.13 -8e612bd1f5d132a339575b8dafb7842c64614e56bcf3d5ab65a0bc4b34329407,2020-04-25 00:00:00.000000,0,0.1 -043066daf2109523a7490d4bfad4766da5719950a2b5f96d192fc0537e84f32a,2020-08-07 00:00:00.000000,0,0.01 -620c9c332101a5bae955c66ae72268fbcd3972766179522c8deede6a249addb7,2020-04-15 00:00:00.000000,1,6.72 -1d0ebea552eb43d0b1e1561f6de8ae92e3de7f1abec52399244d1caed7dbdfa6,2021-03-01 00:00:00.000000,0,0.0 -210e3b160c355818509425b9d9e9fd3ea2e287f2c43a13e5be8817140db0b9e6,2020-10-08 00:00:00.000000,1,10.08 -0fecf9247f3ddc84db8a804fa3065c013baf6b7c2458c2ba2bf56c2e1d42ddd4,2021-07-01 00:00:00.000000,1,20.13 -c75de23d89df36ba921287616ee8edb4c986e328a78e033e57c1e5e2b59c838e,2020-10-04 00:00:00.000000,1,30.3 -7ed8f0f3b707956d9fb1e889e11153e0aa0a854983081d262fbe5eede32da7ca,2020-11-29 00:00:00.000000,1,3.63 -ff2ccb6ba423d356bd549ed4bfb76e96976a0dcde05a09996a1cdb9f83422ec4,2020-02-15 00:00:00.000000,0,0.0 -a512db2741cd20693e4b16f19891e72b9ff12cead72761fc5e92d2aaf34740c1,2020-04-16 00:00:00.000000,0,0.25 -bb668ca95563216088b98a62557fa1e26802563f3919ac78ae30533bb9ed422c,2021-07-01 00:00:00.000000,1,20.13 -79d6eaa2676189eb927f2e16a70091474078e2117c3fc607d35cdc6b591ef355,2020-11-29 00:00:00.000000,1,3.63 -3d3286f7cd19074f04e514b0c6c237e757513fb32820698b790e1dec801d947a,2020-04-16 00:00:00.000000,0,0.25 -3f9807cb9ae9fb6c30942af6139909d27753a5e03fe5a5c6e93b014f5b17366f,2020-10-04 00:00:00.000000,1,30.3 -bc52dd634277c4a34a2d6210994a9a5e2ab6d33bb4a3a8963410e00ca6c15a02,2020-02-15 00:00:00.000000,0,0.0 -e0f05da93a0f5a86a3be5fc0e301606513c9f7e59dac2357348aa0f2f47db984,2021-03-01 00:00:00.000000,0,0.0 -73d3f1ba062585bce51f77d70a26be88c44b55d70f81b8bd7e2ded030ca4454a,2020-10-08 00:00:00.000000,1,10.08 -80c3cd40fa35f9088b8741bd8be6153de05f661cfeeb4625ffbf5f4a6c3c02c4,2020-04-25 00:00:00.000000,0,0.1 -f57e5cb1f4532c008183057ecc94283801fcb5afe2d1c190e3dfd38c4da08042,2020-04-15 00:00:00.000000,1,6.72 -734d0759cdb4e0d0a35e4fd73749aee287e4fdcc8648b71a8d6ed591b7d4cb3f,2020-08-07 00:00:00.000000,0,0.01 -284de502c9847342318c17d474733ef468fbdbe252cddf6e4b4be0676706d9d0,2020-10-08 00:00:00.000000,1,10.08 -68519a9eca55c68c72658a2a1716aac3788c289859d46d6f5c3f14760fa37c9e,2020-11-29 00:00:00.000000,1,3.63 -4a8596a7790b5ca9e067da401c018b3206befbcf95c38121854d1a0158e7678a,2020-04-16 00:00:00.000000,0,0.25 -41e521adf8ae7a0f419ee06e1d9fb794162369237b46f64bf5b2b9969b0bcd2e,2020-10-04 00:00:00.000000,1,30.3 -dac53c17c250fd4d4d81eaf6d88435676dac1f3f3896441e277af839bf50ed8a,2021-03-01 00:00:00.000000,0,0.0 -cba28b89eb859497f544956d64cf2ecf29b76fe2ef7175b33ea59e64293a4461,2020-02-15 00:00:00.000000,0,0.0 -8cd2510271575d8430c05368315a87b9c4784c7389a47496080c1e615a2a00b6,2020-08-07 00:00:00.000000,0,0.01 -01d54579da446ae1e75cda808cd188438834fa6249b151269db0f9123c9ddc61,2020-04-15 00:00:00.000000,1,6.72 -3068430da9e4b7a674184035643d9e19af3dc7483e31cc03b35f75268401df77,2021-07-01 00:00:00.000000,1,20.13 -7b69759630f869f2723875f873935fed29d2d12b10ef763c1c33b8e0004cb405,2020-04-25 00:00:00.000000,0,0.1 -580811fa95269f3ecd4f22d176e079d36093573680b6ef66fa341e687a15b5da,2020-04-15 00:00:00.000000,1,6.72 -bfa7634640c53da7cb5e9c39031128c4e583399f936896f27f999f1d58d7b37e,2020-10-04 00:00:00.000000,1,30.3 -b8aed072d29403ece56ae9641638ddd50d420f950bde0eefc092ee8879554141,2021-07-01 00:00:00.000000,1,20.13 -52f11620e397f867b7d9f19e48caeb64658356a6b5d17138c00dd9feaf5d7ad6,2020-04-25 00:00:00.000000,0,0.1 -61a229bae1e90331edd986b6bbbe617f7035de88a5bf7c018c3add6c762a6e8d,2020-02-15 00:00:00.000000,0,0.0 -2811745d7b8d8874f6e653d176cefdd19e05e920ce389b9b7e83e5b2dfa546c7,2020-08-07 00:00:00.000000,0,0.01 -38b2d03f3256502b1e9db02b2d12aa27a46033ffe6d8c0ef0f2cf6b1530be9d8,2020-04-16 00:00:00.000000,0,0.25 -d6061bbee6cf13bd73765faaea7cdd0af1323e4b125342ac346047f7c4bda1fc,2020-11-29 00:00:00.000000,1,3.63 -7045d16ae7f043ec25774a0a85d6f479e5bb019e9c5a1584bc76736d116b8f33,2021-03-01 00:00:00.000000,0,0.0 -2397346b45823e070f6fc72ac94c0a999d234c472479f0e26b30cdf5942db854,2020-10-08 00:00:00.000000,1,10.08 -70260742c2952154c84e2ea9f68b1a7397f49b6d343da1ed284093c0bd72c742,2020-10-08 00:00:00.000000,1,10.08 -eb3be230bbd2844b1f5d8f2e4fab9ffba8ab22cfeeb69c4c1361993ba4f377b9,2020-04-25 00:00:00.000000,0,0.1 -684fe39f03758de6a882ae61fa62312b67e5b1e665928cbf3dc3d8f4f53e3562,2021-03-01 00:00:00.000000,0,0.0 -7559ca4a957c8c82ba04781cd66a68d6022229fca0e8e88d8e487c96ee4446d0,2020-02-15 00:00:00.000000,0,0.0 -1dfacb2ea5a03e0a915999e03b5a56196f1b1664d2f768d1b7eff60ac059789d,2020-11-29 00:00:00.000000,1,3.63 -b4bbe448fde336bb6a7d7d765f36d3327c772b845e7b54c8282aa08c9775ddd7,2021-07-01 00:00:00.000000,1,20.13 -8bcbb4c131df56f7c79066016241cc4bdf4e58db55c4f674e88b22365bd2e2ad,2020-08-07 00:00:00.000000,0,0.01 -a4e00d7e6aa82111575438c5e5d3e63269d4c475c718b2389f6d02932c47f8a6,2020-04-16 00:00:00.000000,0,0.25 -5a39cadd1b007093db50744797c7a04a34f73b35ed444704206705b02597d6fd,2020-04-15 00:00:00.000000,1,6.72 -27badc983df1780b60c2b3fa9d3a19a00e46aac798451f0febdca52920faaddf,2020-10-04 00:00:00.000000,1,30.3 -43974ed74066b207c30ffd0fed5146762e6c60745ac977004bc14507c7c42b50,2020-10-04 00:00:00.000000,1,30.3 -c17edaae86e4016a583e098582f6dbf3eccade8ef83747df9ba617ded9d31309,2021-07-01 00:00:00.000000,1,20.13 -4621c1d55fa4e86ce0dae4288302641baac86dd53f76227c892df9d300682d41,2020-10-08 00:00:00.000000,1,10.08 -fc56dbc6d4652b315b86b71c8d688c1ccdea9c5f1fd07763d2659fde2e2fc49a,2020-04-15 00:00:00.000000,1,6.72 -f8809aff4d69bece79dabe35be0c708b890d7eafb841f121330667b77d2e2590,2020-04-25 00:00:00.000000,0,0.1 -5cf4e26bd3d87da5e03f80a43a64f1220a1f4ba9e1d6348caea83c06353c3f39,2021-03-01 00:00:00.000000,0,0.0 -968076be2e38cf897d4d6cea3faca9c037e1a4e3b4b7744fb2533e07751bd30a,2020-02-15 00:00:00.000000,0,0.0 -8df66f64b57424391d363fd6b811fed3c430c77597da265025728bd637bad804,2020-11-29 00:00:00.000000,1,3.63 -83f814f7a92e365cbd79f9addceed185761a8d38a06a2d4350bb1fe4b7632b34,2020-04-16 00:00:00.000000,0,0.25 -d29d53701d3c859e29e1b90028eec1ca8e2f29439198b6e036c60951fb458aa1,2020-08-07 00:00:00.000000,0,0.01 -093434a3ee9e0a010bb2c2aae06c2614dd24894062a1caf26718a01e175569b8,2020-10-08 00:00:00.000000,1,10.08 -fa2b7af0a811b9acde602aacb78e3638e8506dfead5fe6c3425b10b526f94bdd,2020-08-07 00:00:00.000000,0,0.01 -d48ff4b2f68a10fd7c86f185a6ccede0dc0f2c48538d697cb33b6ada3f1e85db,2020-04-16 00:00:00.000000,0,0.25 -802b906a18591ead8a6dd809b262ace4c65c16e89764c40ae326cfcff811e10c,2021-07-01 00:00:00.000000,1,20.13 -d86580a57f7bf542e85202283cb845953c9d28f80a8e651db08b2fc0b2d6a731,2021-03-01 00:00:00.000000,0,0.0 -0f4121d0ef1df4c86854c7ebb47ae1c93de8aec8f944035eeaa6495dd71a0678,2020-10-04 00:00:00.000000,1,30.3 -16badfc6202cb3f8889e0f2779b19218af4cbb736e56acadce8148aba9a7a9f8,2020-02-15 00:00:00.000000,0,0.0 -5966abd0cbfc86f98a186531b2b4ee5f6e910120ce13222f98207203dfc9a9a2,2020-04-15 00:00:00.000000,1,6.72 -314f04b30f62e0056bd059354a5536fb2e302107eed143b5fa2aa0bbba07f608,2020-11-29 00:00:00.000000,1,3.63 -36790ecd55c2030dc553685bef719df653f413a20cdad1bfd1dc934c76686ddd,2020-04-25 00:00:00.000000,0,0.1 -67e9c3acebb154a282f326d4ff1951cd1f342e58e74d562b556b517da5e56132,2020-04-16 00:00:00.000000,0,0.25 -9b871512327c09ce91dd649b3f96a63b7408ef267c8cc5710114e629730cb61f,2020-10-04 00:00:00.000000,1,30.3 -56f4da26ed956730309fa1488611ee0f13b0ac95ebb1bc9b5d210e31ff70e79c,2020-10-08 00:00:00.000000,1,10.08 -84a5092e4a5b6fe968fd523fb2fc917dbffae44105f82b6b94c8ed5b9a800223,2020-08-07 00:00:00.000000,0,0.01 -0e6523810856a138a75dec70a9cf3778a5c70b83ac915f22c33f05db97cb3e68,2020-02-15 00:00:00.000000,0,0.0 -8f1f64db81c40ea10e1e9080c9ae60a7acb8925968c431ee16784dea9841c66f,2020-11-29 00:00:00.000000,1,3.63 -dfe62e836a0a6f2633422230c81287700a56e2639652c73f264e6562220c207a,2021-03-01 00:00:00.000000,0,0.0 -9d693eeee1d1899cbc50b6d45df953d3835acf28ee869879b45565fccc814765,2020-04-25 00:00:00.000000,0,0.1 -08490295488a1189099751ebeddb5992313dd2a831e07a92e66d196ddc261777,2020-04-15 00:00:00.000000,1,6.72 -a0eaec5a55dc2f5b2ba523018adc485ff620b9d83509b9f37186a7716e438d21,2021-07-01 00:00:00.000000,1,20.13 -138d9e809e386a7b800791d1f664f56d1c55f3d1ba411b950862729bc486c5ce,2020-10-08 00:00:00.000000,1,10.08 -835d5e8314340ab852a2f979ab4cd53e994dbe38366afb6eed84fe4957b980c8,2020-02-15 00:00:00.000000,0,0.0 -c0509a487a18b003ba05e505419ebb63e57a29158073e381f57160b5c5b86426,2020-04-15 00:00:00.000000,1,6.72 -114bd151f8fb0c58642d2170da4ae7d7c57977260ac2cc8905306cab6b2acabc,2021-03-01 00:00:00.000000,0,0.0 -0a2d643bfd24a028cd236e76575d828424ccffbfa47392bd09d8ca9dc85e2f8d,2020-04-16 00:00:00.000000,0,0.25 -9a049b03f6fc40bfcf2f136320359257ed4af8513f71aa6fef47f17059bbae23,2020-11-29 00:00:00.000000,1,3.63 -f0bc318fb8965cad8d73d578cd03c63b7987dc6a79b906aada091e1b6a13443f,2020-08-07 00:00:00.000000,0,0.01 -8ae4c23b80d1e7c8ff79e515fe791ebd68190bae842dda7af193db125f700452,2020-10-04 00:00:00.000000,1,30.3 -79bf08685d3138f9b109c3546780f056bc954fd69377b84a2cf23622e464897b,2021-07-01 00:00:00.000000,1,20.13 -6af1f692e9496c6d0b668316eccb93276ae6b6774fa728aac31ff40a38318760,2020-04-25 00:00:00.000000,0,0.1 -749fc650cacb0f06547520d53c31505c8156e0a3be07073eddb2ef3ad9e383ba,2020-10-04 00:00:00.000000,1,30.3 -14063697603e22d600d336bee6cff12c8be93509ce84a0642918d89b2aef1753,2021-03-01 00:00:00.000000,0,0.0 -72440a20f54075ac43f51a2cf0dbb2a14366b38a5c01b110ae174abc1cb44238,2020-02-15 00:00:00.000000,0,0.0 -82c01ce15b431d420eb6a1febfba7d7a2b69e5bcdcb929cb42cd3e9179d43fc4,2020-10-08 00:00:00.000000,1,10.08 -011af72a910ac4acf367eef9e6b761e0980842c30d4e9809840f4141d5163ede,2020-04-25 00:00:00.000000,0,0.1 -37c20f19f3272b5ccc3a5d80587eb9deb3f4afcf568c4280fb195568da8eb1a2,2020-11-29 00:00:00.000000,1,3.63 -396f804443825586c1283a27fdcadf74abb82008bcd9b260a30912a26563f27d,2020-04-16 00:00:00.000000,0,0.25 -766cb53c753baedac5dc782593e04694b3bae3aed057ac2ff98cc1aef6413137,2021-07-01 00:00:00.000000,1,20.13 -9f484139a27415ae2e8612bf6c65a8101a18eb5e9b7809e74ca63a45a65f17f4,2020-08-07 00:00:00.000000,0,0.01 -1e472b39b105d349bcd069c4a711b44a2fffb8e274714bb07ecfff69a9a7f67b,2020-04-15 00:00:00.000000,1,6.72 -c75d3f1f5bcd6914d0331ce5ec17c0db8f2070a2d4285f8e3ff11c6ca19168ff,2020-11-29 00:00:00.000000,1,3.63 -d6e5a20b30f87216b2c758f5e7a23c437dbc3dfa1ccb177c474de152bb0ef731,2020-08-07 00:00:00.000000,0,0.01 -e7866fdc6672f827c76f6124ca3eeaff44aff8b7caf4ee1469b2ab887e7e7875,2020-04-25 00:00:00.000000,0,0.1 -9512d95d00d61bdec03d2b99d6ecc455ee5644ae52d10e7c4a61c93062dc97a3,2020-10-04 00:00:00.000000,1,30.3 -9556b82499cc0aaf86aee7f0d253e17c61b7ef73d48a295f37d98f08b04ffa7f,2021-03-01 00:00:00.000000,0,0.0 -51e8ea280b44e16934d4d611901f3d3afc41789840acdff81942c2f65009cd52,2021-07-01 00:00:00.000000,1,20.13 -4c970004b0678d439f177e77d3cabdb7e9a44df770948ddc2467cbc76b7211c3,2020-10-08 00:00:00.000000,1,10.08 -a30f4ef42176d28f0e2293533c5f532e9c9c5696c68813b35315d17edc44f6b1,2020-04-16 00:00:00.000000,0,0.25 -7c252ab334fb8fd88e8242c4972c21db9c7ce0b47c9acc4ebfe40c14614cb734,2020-04-15 00:00:00.000000,1,6.72 -39bb88f40d3aa2b2fe9dea67be27c74765db0ebb3ff3cf8fb779af6319fa2045,2020-02-15 00:00:00.000000,0,0.0 -e888a676e1926d0c08b5f11fb9116df58b62604b05846f39f8d6fc4dd0ba31f1,2021-07-01 00:00:00.000000,1,20.13 -9e6a72557ada15d02001f024f43f06edc4a31437e0e1bb3eeac36ca2d0c4fda7,2020-10-08 00:00:00.000000,1,10.08 -4be84111a613654b362415e563cb7607df7b203b5d303802a8a546061bbc7847,2020-04-25 00:00:00.000000,0,0.1 -bba58959c32abe688d9cb5222b97de973002a67c412d6a8c8d2a79ac692f32b7,2021-03-01 00:00:00.000000,0,0.0 -768b84ef05f655d57fe22d488451f075365f6cd18a13073466aa826cc0ebdbfb,2020-10-04 00:00:00.000000,1,30.3 -ea5b27556fbb134def2c2fbf944d9cdda3dbdb6b10473a1aec59f6f170c4ca3a,2020-08-07 00:00:00.000000,0,0.01 -8acc23987b8960d83c44541f9f0eb46454cea080ea94d916f56fccf033db866f,2020-02-15 00:00:00.000000,0,0.0 -8b496bf96bbcc9e5ac11c068b6cfb00c32f9d163bb8a3d5af107217499de997a,2020-04-15 00:00:00.000000,1,6.72 -f747870ae666c39b589f577856a0f7198b3b81269cb0326de86d8046f2cf72db,2020-04-16 00:00:00.000000,0,0.25 -d8d1790737d57ac4fe91a2c0a28087c0a97c81f5dc6b19d5e4aec20c08bb95ae,2020-11-29 00:00:00.000000,1,3.63 -3635a91e3da857f7847f68185a116a5260d2593f3913f6b1b66cc2d75b0d6ec0,2020-10-04 00:00:00.000000,1,30.3 -1c6c0bb2c7ecdc3be8e134f79b9de45155258c1f554ae7542dce48f5cc8d63f0,2021-03-01 00:00:00.000000,0,0.0 -303c8bd55875dda240897db158acf70afe4226f300757f3518b86e6817c00022,2020-10-08 00:00:00.000000,1,10.08 -718127812c05853f0bec61582a4a3840b1c844fe11fe1a004b5b7eb8b8b59846,2020-02-15 00:00:00.000000,0,0.0 -3a1dfb05d7257530e6349233688c3e121945c5de50f1273a7620537755d61e45,2020-11-29 00:00:00.000000,1,3.63 -c76b405781134be1dab7fe45adfb8c32104805a01de7b863e1004b66d56edf9f,2020-04-16 00:00:00.000000,0,0.25 -27d719c754aacd492a6dc8a1b76619355abcf5ef473cbec02018d3c57ebbf0d5,2021-07-01 00:00:00.000000,1,20.13 -ee62de25ccc2b55d3a0495244b246fb97055b6f1c2697d837b8e94976c03756f,2020-04-15 00:00:00.000000,1,6.72 -efd96aedf377e20afd95285a7c751a864260bd6a149656a4040c5b7757bdbbb6,2020-08-07 00:00:00.000000,0,0.01 -7f0a22117f8fe0172cf9209ff622b64a51aaeda21d58b5b62685a93dbe2dad25,2020-04-25 00:00:00.000000,0,0.1 -71a1c003a2b855d85582c8f6c7648c49d3fe836408a7e1b5d9b222448acb3c1b,2020-10-04 00:00:00.000000,1,30.3 -27e1615212f3c6ea846ed6c412df1361ce97f006ee20bb5aa2483a3b61d5cadd,2020-02-15 00:00:00.000000,0,0.0 -e0850a775c17a87060c0cf6efad1020e0cbef5a44ba942bef6add5776598de53,2020-11-29 00:00:00.000000,1,3.63 -1e68ed4e3d58a51096a7feea3947f40debf1fd9246ec977eb62ab93c81823ad9,2021-07-01 00:00:00.000000,1,20.13 -a0d177b4967a6d99f4ff117defe1c0d23d4e78ca4630febcb948ee9e4520eff3,2020-04-25 00:00:00.000000,0,0.1 -00328ce57bbc14b33bd6695bc8eb32cdf2fb5f3a7d89ec14a42825e15d39df60,2020-10-08 00:00:00.000000,1,10.08 -d7cdaa5ca0582076c8e772cce739e32c5077cfd24f2ea33f04bb754594989a56,2020-04-15 00:00:00.000000,1,6.72 -23c657f2efda7731a3c1990b25f318fa2eb1332208f97ab9cc2a7eac70ab5a76,2020-04-16 00:00:00.000000,0,0.25 -af180e4359fc6179dc953abdcbdcaf7c146b53e1bee2b335e50dead11ccefa07,2020-08-07 00:00:00.000000,0,0.01 -09895de0407bcb0386733daa14bdb5dfa544505530c634334a05a60f161b71fc,2021-03-01 00:00:00.000000,0,0.0 -33512007840ced1bb0aab68f47cb5f702abd494a15f26bcbe26a1e47af03d841,2020-11-29 00:00:00.000000,1,3.63 -6db6eb4af1e18ab81d3878e44672185d60ca8c988c9e2f7783de220735534c33,2021-03-01 00:00:00.000000,0,0.0 -7cb676d57114874e00c536916e6dcad2a5d3cb8c9a5abc06335df359cd9a6ef9,2020-08-07 00:00:00.000000,0,0.01 -2cfc8ccbd7c0b17615323b41e815651ff2ae9ffae45a4599c0499b98ff940429,2020-10-08 00:00:00.000000,1,10.08 -9cfd3c755be26b4e1645918e2a64a26e3d851ede421e0b257f783b443bc443d1,2020-02-15 00:00:00.000000,0,0.0 -a0f8b2c4cb1ac82abdb37f0fe5203b97be556c4468c83bba18684d620fd8eaf9,2020-04-16 00:00:00.000000,0,0.25 -4c15f47afe7f817fd559e12ddbc276f4930c5822f2049088d6f6605bec7cea56,2021-07-01 00:00:00.000000,1,20.13 -76ebdb6d45c61ca12e622118cc90939ade672adf7890aa2b246405d4884dd75a,2020-10-04 00:00:00.000000,1,30.3 -308831041ea4863c3f87d222c31f759411898c874a9006b4bd6c745858b8f3bd,2020-04-15 00:00:00.000000,1,6.72 -983bd614bb5afece5ab3b6023f71147cd7b6bc2314f9d27af7422541c6558389,2020-04-25 00:00:00.000000,0,0.1 -c3ea99f86b2f8a74ef4145bb245155ff5f91cd856f287523481c15a1959d5fd1,2020-10-04 00:00:00.000000,1,30.3 -f32828acecb4282c87eaa554d2e1db74e418cd6845843012463a3324028bdd9d,2021-03-01 00:00:00.000000,0,0.0 -8bd9c0d453533757387ed019c45617cdc440ba680a67b1a101c85b998ef715c0,2020-11-29 00:00:00.000000,1,3.63 -d874e4e4a5df21173b0f83e313151f813bea4f488686efe670ae47f87c177595,2020-04-15 00:00:00.000000,1,6.72 -090d3859ff6840b2280f4708cf08cdaed873d967183a4d1deedc1a7964a21eee,2020-04-16 00:00:00.000000,0,0.25 -38b83caefa1ef26940f1d07bd4ec94c60809b0f88f2118e82ef8ec2d98938a84,2020-02-15 00:00:00.000000,0,0.0 -6d976934be74941fba578b143ba964eded443d10384e3f3d62a1ba7b4d339df8,2020-08-07 00:00:00.000000,0,0.01 -48a1706eca5ee6148f748ca91a0f7db6ebcf59943532044a7bf60bbe44e5b1d2,2020-10-08 00:00:00.000000,1,10.08 -43c727ee4fc7250574d2ef90cfa16626388a10e1b30d36ece1c272953ad2ed9e,2021-07-01 00:00:00.000000,1,20.13 -226f76b55acb49701e06ded1d95165d179458f6fc37f5c6fc760ae30dec1c378,2020-04-25 00:00:00.000000,0,0.1 -20e9c64c05a54d199610fb7e38135361324b5ed5dcf39c23afe9b48926c07376,2020-04-16 00:00:00.000000,0,0.25 -865736a1c30a82dc67aba820360a01b1d9d0da5643234cd07c4d60b06eb530c5,2020-04-15 00:00:00.000000,1,6.72 -8efbbe9bc19ad2e043c6cdb187c0a0fedde70b6458443ce0b5648ec04ccf4cdf,2020-02-15 00:00:00.000000,0,0.0 -748064be03a08df81e31bd6f9e7e7c4cc9f84b4401b9a3c6e85b7ff816d3ba68,2021-03-01 00:00:00.000000,0,0.0 -377adeb4cd4096adc7ca64b533938cffc6294a9b3534f883b2336a26252cda9a,2021-07-01 00:00:00.000000,1,20.13 -7a20311cf7a4b222d436424480bc65dd0f9d2cefcbbb1fa148ca0d7e1d5bb55a,2020-11-29 00:00:00.000000,1,3.63 -8d1ede4f889e0ed6f0823d8c1821905b9de37a0f851dc270df0dbf72b3c93641,2020-10-04 00:00:00.000000,1,30.3 -aae02129362d611717b6c00ad8d73bf820a0f6d88fca8e515cafe78d3a335965,2020-08-07 00:00:00.000000,0,0.01 -156091ee0884f36de9836d58b6f05f357ec6ef0620c571577ac61f7beac35f8e,2020-10-08 00:00:00.000000,1,10.08 -88820462180e5c893eff2ed73f4ec33e205d1cd5acc4d17fa7b2bca2495d3448,2020-04-25 00:00:00.000000,0,0.1 -8d23cf6c86e834a7aa6eded54c26ce2bb2e74903538c61bdd5d2197997ab2f72,2020-02-15 00:00:00.000000,0,0.0 -f10d91a7596bf5a6773579ff1306afdc363b0be08602c768907c09261cad3a56,2021-03-01 00:00:00.000000,0,0.0 -3949ac1596ec77106a709a618bf5adcb19b77537ce8bcbdf54ff830169cdd084,2020-08-07 00:00:00.000000,0,0.01 -1038e0b72d98745fac0fb015fd9c56704862adf11392936242a2ff5a65629f50,2020-04-16 00:00:00.000000,0,0.25 -9e11c362bc3d3572970b973d5cd86c073da358b6f9bceaa3be65d1a6487f8819,2020-10-04 00:00:00.000000,1,30.3 -a4e987d17584557e2fbed011cddf66dc5185338bc3ef33d4226f86c32b7364dd,2020-10-08 00:00:00.000000,1,10.08 -02cca3803b564ede11ccf9f303c9910b39c532061e7a8c3b773169bc3d3c140b,2020-11-29 00:00:00.000000,1,3.63 -2452984f72ef1195df62ab3f23748777dbf39767229425f1bfd0862d476e5840,2020-04-25 00:00:00.000000,0,0.1 -0791963ca2667a23cf3268ad25d7bb6ca0ed287b192869703cdbcf0e87934c33,2021-07-01 00:00:00.000000,1,20.13 -5426d2ca50f244fb43fe9eafc82da08f33f3b4f8d9140802bd0102e780b629d6,2020-04-15 00:00:00.000000,1,6.72 -0bba869d7f392cbcaca6b8935ddc7fc3a8c50846d884959333fb7da475957511,2020-04-16 00:00:00.000000,0,0.25 -7104741a92e73eb6c5d69cd04cf0afbe50a8796a010d8fa25daaf79e5e173bf3,2020-02-15 00:00:00.000000,0,0.0 -556d7dc3a115356350f1f9910b1af1ab0e312d4b3e4fc788d2da63668f36d017,2020-10-08 00:00:00.000000,1,10.08 -058d5d43bf485bf78dda1ed4eaf8b78e3106f3c6364c625ead2cc3aeb1908237,2020-04-25 00:00:00.000000,0,0.1 -7acc684a848a9b954959fdd22493f48cf44eed028275b6b9999c7cade8956fc7,2020-08-07 00:00:00.000000,0,0.01 -eaa0689a095d4394a05fb51b84b0175a47f68221261377e4829444cbfcae23ca,2021-07-01 00:00:00.000000,1,20.13 -8ede6b26343305e05c3c0029f4e830d4e8c2016869a9d1cd97b100b2a16dfd1c,2020-04-15 00:00:00.000000,1,6.72 -5d8f6cce532a7aeb57196be62344095936793400b3aeb3580d248b17d5518a86,2020-11-29 00:00:00.000000,1,3.63 -fc95ce176603e9e1d1ffee39023b31dd856e00ad030526902604ed2a68a12c4b,2020-10-04 00:00:00.000000,1,30.3 -9644294ac4ffb3091eef01219b3fe4fe467f05890cc56af961dce68fddbb7704,2021-03-01 00:00:00.000000,0,0.0 -524b2d27a1e7fbc3a1614fa661e2dcad68462352feeb8bf633deaccfb8aa84f3,2020-02-15 00:00:00.000000,0,0.0 -023849c38925e2af028a2eb4e1dc41afd7dc7a238195c1c2ae00438d1dae00e1,2021-07-01 00:00:00.000000,1,20.13 -3c15285c04fff40024bb8714b93e58178bf8d3bebe6943178e1c5412957b7aa1,2020-10-04 00:00:00.000000,1,30.3 -02e6295d8f522840f09b5194b3f023799ad6ed3306d9296005787e792224df20,2020-04-25 00:00:00.000000,0,0.1 -da70dfa4d9f95ac979f921e8e623358236313f334afcd06cddf8a5621cf6a1e9,2020-08-07 00:00:00.000000,0,0.01 -6aac0cf87a32e631536122c3f2f9a2df215f56f28792a43a8658b0593f2e5255,2021-03-01 00:00:00.000000,0,0.0 -2289b221b39605c3494e7290856218e931c00af556cf7a07827108193b276511,2020-11-29 00:00:00.000000,1,3.63 -06b2d82840e43ed8432b3f444de18b57dbe60637c99379c708aa8e66de83dbc1,2020-04-15 00:00:00.000000,1,6.72 -72ba187b05e705de2dced5824d716a71872dedccf21f0c179bd2d5f2c7c974b1,2020-10-08 00:00:00.000000,1,10.08 -deeeb5df3f2cee6bf4e597a8a3a878a6ce49b932b9e90b416922d4499f54fae6,2020-04-16 00:00:00.000000,0,0.25 -04a8708c3a481ced13845a30de522486895de0592222c29326d9139ec2b9df25,2020-11-29 00:00:00.000000,1,3.63 -9a72c24f2fd76561729110d804c69f38a7088f2ec41fdf8fbfea20d07e8bcff8,2020-04-15 00:00:00.000000,1,6.72 -459535faa370a3b5f8b87203b089623c7aeb9325abf241ec8a685b9c325047a3,2020-02-15 00:00:00.000000,0,0.0 -09a1b036b82baba3177d83c27c1f7d0beacaac6de1c5fdcc9680c49f638c5fb9,2020-10-04 00:00:00.000000,1,30.3 -355d8c0ee4e5698eaed38b96aab64dbf0ad72eca3e352183be6e957e9d9230a7,2020-08-07 00:00:00.000000,0,0.01 -03a3d955b8799a90f1ff5a39479fde8e618f8ca3282d5b187186f2cf361abd32,2021-03-01 00:00:00.000000,0,0.0 -2ab0ce7632a611e907a40710ff46da13c5ba832f5a402c6f51e15f53d6e8fa0e,2020-04-25 00:00:00.000000,0,0.1 -62a0eae98b9fc0bd0ad941ae07ae5e2af545a64c8ddc43407bdfe6ae82addb4c,2021-07-01 00:00:00.000000,1,20.13 -9197e4844abed2fea3569a2acf7b0d584c979c333ab7ae10ba6c339898776f5a,2020-04-16 00:00:00.000000,0,0.25 -838f461c2fa673cec73e6eecdafa88b127802d6cb0a61c53175197a122cb645a,2020-10-08 00:00:00.000000,1,10.08 -73daa9289ddd08a53ba86f065ddb07bf915aba208bec652e999613d2a8444228,2020-04-16 00:00:00.000000,0,0.25 -3963317a2b410e5357f4d839787aedb9ceef495514fe5cd91f846ab3a59621e0,2021-03-01 00:00:00.000000,0,0.0 -a43231c2216f23db8d65bbd57e0ce6573654f9a102365cd4b345723f1437ab2b,2020-04-15 00:00:00.000000,1,6.72 -b3dfdc6efe322a6feccb0d081e88ffac20b0f28e8495efa76188c8dc3ada6181,2021-07-01 00:00:00.000000,1,20.13 -4e47eb5525df25f94da777993dafa41d9ab2bfa80a89e28f76d42cd46ab082e7,2020-02-15 00:00:00.000000,0,0.0 -600b4cdf20cc06a7b5a5cca5f7464296861815519af6d8a14604201b13965ab8,2020-08-07 00:00:00.000000,0,0.01 -0788979fc9366e21cd56311511b897a222cf91711481bcd7dc837eac2172d087,2020-10-04 00:00:00.000000,1,30.3 -8e6aee9efac8086ebac545d45c63e0d0dfcddd0d77d53e45c04d05cafdd2a8a8,2020-10-08 00:00:00.000000,1,10.08 -5f193b350c8aba4883dedf97367ef3080821470661d0a2e1faf420a300cb5ca8,2020-04-25 00:00:00.000000,0,0.1 -f1607c19a0f910ca1b8dce18843bc34e46a533c87e3524ea75798949f7a352d5,2020-11-29 00:00:00.000000,1,3.63 -9b15fed64ef16980f625aeed46ab4cd2c498690551d3a2d1e5254d551d7d6ddf,2020-04-15 00:00:00.000000,1,6.72 -62f77e7d6197863ac98d9e0cfa76bea0c8e05379ed5281afbe72f7fc206fe37b,2020-04-16 00:00:00.000000,0,0.25 -e52d08747b9d7a6d04551bb86ee3f7ee6c49f7477c8cd66f77448378cc30b92b,2020-10-04 00:00:00.000000,1,30.3 -01299ac65733b5a3d774265fbfe8396b8611e5e3321855dbc541cd301e71fe5e,2020-02-15 00:00:00.000000,0,0.0 -de5872c6bb4494cebd250152ce148cd6231654e4469229f2f993984b3950b422,2020-10-08 00:00:00.000000,1,10.08 -12e2c8df501501b2bb531e941a737ffa7a2a491e849c5c5841e3b6132291bc35,2020-11-29 00:00:00.000000,1,3.63 -2c4cf657337835125bc4258d0e2e546af4185bdb70f64e1b0aa46d1d78017404,2021-07-01 00:00:00.000000,1,20.13 -21ef779311a43f0e067d0f4f600bb5451a8a7e093662086a1fe6a75d27d7892a,2020-08-07 00:00:00.000000,0,0.01 -64c212df34c66e6fe9fccbfebc8899c10584cfa1669c42a175d65db073b13bc0,2020-04-25 00:00:00.000000,0,0.1 -2af4dd48399a5cf64c23fc7933e11aaf6171d80001b4b1377498ae6056b1acbf,2021-03-01 00:00:00.000000,0,0.0 -392a52e4f77c40bf3321dc2feac356fac2a906a80c961748170af4ce2bce1e6a,2021-07-01 00:00:00.000000,1,20.13 -f65ccfbfec288565c1d414275985547799fde0ed286c85a50bd0ec5faa01d1ac,2020-08-07 00:00:00.000000,0,0.01 -48b361d46638bfa4eee090c158a750a69c7beec3a62e703e2801125551b1b157,2021-03-01 00:00:00.000000,0,0.0 -37b73510175057c633ebe4beb0a34917fa2a0696432db43a4eeb2c3ff83a4c3b,2020-04-15 00:00:00.000000,1,6.72 -131b0c35e2d7edef9dd63f48eff39341ef0a5f770538aa4e0017f41b9cdb135d,2020-10-04 00:00:00.000000,1,30.3 -15a26c6fa5151c712acc7ee45a1fd525ab85b801f096847c7d5fdf49efeabb4d,2020-10-08 00:00:00.000000,1,10.08 -25dac95b8f595046bc435139636b0e2f1ff6e0ea31a54f3c19e7e726fb98738b,2020-04-16 00:00:00.000000,0,0.25 -ab5e292db6495899871d889aaab28308f7da8dfc3693a477ee73de9ad894ce44,2020-11-29 00:00:00.000000,1,3.63 -b98880883fd8d975260f1807fa46a5156fcc4cc82bf6d657a417d8bb4e42cd55,2020-04-25 00:00:00.000000,0,0.1 -48a1a756f2d83f1dc57bbf14052b70a6f40d0fceed6662812e34903a9fe90924,2020-02-15 00:00:00.000000,0,0.0 -a934c244755c66aebb0d6f9f5687038ffae8f00b00b28b4e17521016393f38b9,2021-07-01 00:00:00.000000,1,20.13 -6ea2fdb3399f4d2e806beb01e9a3371bd622bed6a409acf3151818d738c370ec,2020-02-15 00:00:00.000000,0,0.0 -99a0b871c9047c4f5555fcf062e0623174bae38746fece6efdf032d80fb2221a,2020-11-29 00:00:00.000000,1,3.63 -04d19fde0a08b17aca69491e714bea43565384d12a63626e08477662cc03780e,2021-03-01 00:00:00.000000,0,0.0 -a3af7b3808c4cf72478d05c9bab9c0d47e31c1d2cb3a29e7481669f7ea278c4e,2020-08-07 00:00:00.000000,0,0.01 -3c1b7053f0edd447b778edbc0ad8359b0fa892d69857d9bd5e6b19007bb3f01e,2020-10-04 00:00:00.000000,1,30.3 -1d2028ddcd746a7ee87dd0739d7435602b77d4908f96e27ebdad57b09aa27b69,2020-04-16 00:00:00.000000,0,0.25 -188c1fdca79d927f6e812133173fc41d3a4e57074de521020274caa9bb29af7d,2020-04-25 00:00:00.000000,0,0.1 -0f78540965a86402578f8188c826c1cb6c7ddcb608ae3a3201e532c7cacb6ce3,2020-10-08 00:00:00.000000,1,10.08 -26d228663f13a88592a12d16cf9587caab0388b262d6d9f126ed62f9333aca94,2020-04-15 00:00:00.000000,1,6.72 -dcaadad1cfce437735b81ab025f776e5857e48558c47f6960e6a5f2595664a85,2020-04-16 00:00:00.000000,0,0.25 -b7c7470e59e2a2df1bfd0a4705488ee6fe0c5c125de15cccdfab0e00d6c03dc0,2020-02-15 00:00:00.000000,0,0.0 -d26eae87829adde551bf4b852f9da6b8c3c2db9b65b8b68870632a2db5f53e00,2021-03-01 00:00:00.000000,0,0.0 -6b3c238ebcf1f3c07cf0e556faa82c6b8fe96840ff4b6b7e9962a2d855843a0b,2020-10-08 00:00:00.000000,1,10.08 -a73b320dc0d3a57c03f897eb28ca91e623c5ee635db59476ba3178c90b94019f,2020-04-15 00:00:00.000000,1,6.72 -f64f410744d9470ffe2d6b9ee6f042cdffcc42a745d2568146e8782ea828ff48,2020-11-29 00:00:00.000000,1,3.63 -a5abb1500bdeaef41e2edd598c015edfaa46793051b82d7da60a70efbf786da4,2020-04-25 00:00:00.000000,0,0.1 -e6f47e008cc58b38596e6fdf2f50a0fea93fd10543e652522aeab3aa71355719,2020-10-04 00:00:00.000000,1,30.3 -480f5a496560ae4228bb7977ecf29b2c589d7a7aa6b609534566af8cbc229a9e,2021-07-01 00:00:00.000000,1,20.13 -612111a352a571cbed3927ec6f74948849bcc9fe8489bf4f0d6235afdc0a4ad7,2020-08-07 00:00:00.000000,0,0.01 -52f14fc33ef45dd80ac2626077948f44d8d211d5f24bf9db333c9403968e634a,2020-10-04 00:00:00.000000,1,30.3 -fabf5b7fedb3e62a81c9298b19706249ee128011bf9d94867681020c16f8b741,2020-02-15 00:00:00.000000,0,0.0 -1c49f22f6de9bd15e5e566fa8983be4cfa4709abf0f95edf96dcd3d6249c2649,2021-03-01 00:00:00.000000,0,0.0 -8111eb1556229541d7d2720a51203037e78ee57fb2e407e0da4a805473dab7af,2020-08-07 00:00:00.000000,0,0.01 -fc72c98a6c2916c1bbf9f39fce094f5785bb6f1d656971520b660b2e8a760fe3,2020-04-15 00:00:00.000000,1,6.72 -67e0bdb7b6c549d4fa834d0f6848ce6a3a12e07de9cea949ad41932bd5881bc4,2021-07-01 00:00:00.000000,1,20.13 -afcf8bc077e68eb94dfe783205f32cabdeead61fd32ff5710947b6111ff2ff77,2020-10-08 00:00:00.000000,1,10.08 -4c8d5b6c695d265fb63dd73f275a21043a5887b37cb4fea0552ecc7b417c8f88,2020-04-16 00:00:00.000000,0,0.25 -cc6aed2709b80e146bebc151f1cf1dec5e323b58148535a433529155030e3a52,2020-11-29 00:00:00.000000,1,3.63 -db55da3fc3098e9c42311c6013304ff36b19ef73d12ea932054b5ad51df4f49d,2020-04-25 00:00:00.000000,0,0.1 -5092c37bcbc9f0fb33cb0f9cab7aa5ae94ed0f1219773c380b143b7c1224d01b,2020-02-15 00:00:00.000000,0,0.0 -5658b88806a236b6439a7ecd0a87af2475a02a848095304c6d25981ae5e7e9a9,2020-08-07 00:00:00.000000,0,0.01 -814bb6b8dc12188a44b71e378dc20a4292e01979aa9ab95b09b8a681391dfc9d,2020-11-29 00:00:00.000000,1,3.63 -814fd2e8e45e9a6d3e1f6ff86867aaf2251ccd07f3eed02708fae286192c29e3,2020-04-16 00:00:00.000000,0,0.25 -0dfcddb0440e967f05bb68ca09a5e2188b8abc36bfb5b95b83b88be59c42c6e7,2021-07-01 00:00:00.000000,1,20.13 -9be3da431e0a833d2b07781de97ebbd0b14c274d16c0597820d9982a5f547cb3,2021-03-01 00:00:00.000000,0,0.0 -42f25adecf47629878e89e31b2073d1af009c9c76f4140a06313af5e5950eabc,2020-10-04 00:00:00.000000,1,30.3 -cbf2f7864f1c988391a9ab199627a29bd60987da067748c2812b75785d7ec151,2020-10-08 00:00:00.000000,1,10.08 -2d1007980f49215311f7f1012e84f99b801eb5daeca04dedea3ada41cc45353b,2020-04-25 00:00:00.000000,0,0.1 -fed88b40aba63cac05eadd5db0088c036005ec235c7be6fd87d656946b733332,2020-04-15 00:00:00.000000,1,6.72 -0a1f1256f9bac68e806442aa76455bb761af5414855efa23c1b3fd54477c0ba1,2020-02-15 00:00:00.000000,0,0.0 -98f1f17f9a73ccfe3e25940add8d9ce9bf05513104cacb84f2f1185bf5886a84,2020-04-15 00:00:00.000000,1,6.72 -aaf01d71b55e51b1a3051cbb3cdc0646578dcda722b2922072a81f257b1a9821,2020-08-07 00:00:00.000000,0,0.01 -ea415bf50eb65ade427d8d80222df4627e28cd9a418f830bfd9b81d4149bb2ab,2021-07-01 00:00:00.000000,1,20.13 -5f2703a5211db19a9020f7443f6a440fbc95cda90b7c2d53912f5ce47d050056,2020-04-16 00:00:00.000000,0,0.25 -155d1cf609cedded2fbc27a4646de87ce7f7de2913b1e5a1bbf148a6df483e19,2020-10-04 00:00:00.000000,1,30.3 -0ef962215cc055786d516355238a80dacc204ecf9b160d0a252190bf5c0cc370,2021-03-01 00:00:00.000000,0,0.0 -18d37c950a3e810d9b9a84c72c230ca16b7cec19f7fb55c625e5441790d448ef,2020-10-08 00:00:00.000000,1,10.08 -050a010ce24d0896056e9a36a1940738d38f469d644b3682cfcc47569739c525,2020-04-25 00:00:00.000000,0,0.1 -e3f6959781c353c201d378e02d9da532601673e08a1706fa15a5ebbd9ea1bd36,2020-11-29 00:00:00.000000,1,3.63 -2dfe70c43208f52b9ef4ea7e134705283947116491e81fbac05f0aedc25c5956,2020-10-04 00:00:00.000000,1,30.3 -5627b4a8f9efbd8fbdadaf4177824186f8c734f320935c88e926bc027af6c50f,2020-02-15 00:00:00.000000,0,0.0 -6d05621ab7cb7b4fb796ca2ffbe1a141e0d4319d3deb6a05322b9de85d69b923,2021-07-01 00:00:00.000000,1,20.13 -3538a1ef2e113da64249eea7bd068b585ec7ce5df73b2d1e319d8c9bf47eb314,2020-04-15 00:00:00.000000,1,6.72 -0e12831a7047f759733b21f028525039607350b1b1b4fe904595427e72ea0d9b,2020-10-08 00:00:00.000000,1,10.08 -75c3e223190bf1a1fa2af808d1dfcdffe33727d57eb0028b5a52ad893480eeb9,2020-04-16 00:00:00.000000,0,0.25 -c498f3fe97c0df55ee8dea01a72572059b93f42d235a5e439e9c9a1654d6d4e1,2020-11-29 00:00:00.000000,1,3.63 -a4ecdd704d258aa841bb3f9a1e3b0cafc59bd88810e542f8e7a0519809d78fe7,2020-08-07 00:00:00.000000,0,0.01 -4a30a219a9d7663fdd35c0a5df49c8d55018f13a0c53e10dd8efe8f7e4cc5d89,2021-03-01 00:00:00.000000,0,0.0 -83151157c10d85af7c84657c71c3e3603d955160f0526fce672481da83a2e090,2020-04-25 00:00:00.000000,0,0.1 -caa1aedb2a6ce96b39b9fde1a49e1ebcb431b6da4586da0aef56df9b78221d60,2020-08-07 00:00:00.000000,0,0.01 -549a2fac47d713cc00f2db498ad6b5574fb03c9293aef6c7ad50a11b394c197d,2021-03-01 00:00:00.000000,0,0.0 -d83c7ee736be931d85b78a4a60881ced3ff9a31bb417804e45b1d30de40f94f2,2020-11-29 00:00:00.000000,1,3.63 -48f89b630677c2cbb70e2ba05bf7a3633294e368a45bdc2c7df9d832f9e0c941,2020-04-25 00:00:00.000000,0,0.1 -f626051bc94422f26f4b774a2bca105e122df36a2f32f51bd7ee470daa620b0b,2021-07-01 00:00:00.000000,1,20.13 -b3a8e0e1f9ab1bfe3a36f231f676f78bb30a519d2b21e6c530c0eee8ebb4a5d0,2020-04-16 00:00:00.000000,0,0.25 -353767b239099863e13ca954e20a66c9d75f777baf239f56e399958de49bf79d,2020-04-15 00:00:00.000000,1,6.72 -ad21a2b810af49a8b9241e10dfce3a016987441cc93aa72feae47dd017ddf0bb,2020-02-15 00:00:00.000000,0,0.0 -42f0bec3310ddd8a55e8d62817337ca49c55a898c14ab073d07c16dee24d73d4,2020-10-08 00:00:00.000000,1,10.08 -841a05fd378a2c067058585e3691c2a3f5399206fded7a580fdbbc281003168e,2020-10-04 00:00:00.000000,1,30.3 -de482c7ed5ca67ae135ef25bf3b13194970a2f3902318f1eda3c64af2a2eb344,2021-07-01 00:00:00.000000,1,20.13 -da4d43f295ce92630829272fad6d2e7237c6248e9cd9499e6382d6fa6d758e7b,2020-04-25 00:00:00.000000,0,0.1 -06de973bb45531d52cdbd483c5e50bcddaa2095f9515e03cfad490061cc9831e,2020-04-15 00:00:00.000000,1,6.72 -88b54564b232405ab2165996517fece1149259cf1ea262a375db0f66039294d0,2020-08-07 00:00:00.000000,0,0.01 -ad3b83575249b68aab9602de378314fc221ab07a9b2ab0bb4a245ec649219f45,2020-10-08 00:00:00.000000,1,10.08 -826e27285307a923759de350de081d6218a04f4cff82b20c5ddaa8c60138c066,2021-03-01 00:00:00.000000,0,0.0 -e078af3026edb42cc26b32784baa142a79970078f7ac58f8c7b74115f4f7fb60,2020-11-29 00:00:00.000000,1,3.63 -1e5ee5e58c8f490ae68e7e91b1575ebefc2bf6c211f302a553ff0c4925e85321,2020-10-04 00:00:00.000000,1,30.3 -c6bd343ae0007cdb979de7540f2668fe849d68ff47fa1a650a28f89104f41f1e,2020-04-16 00:00:00.000000,0,0.25 -30eec89ddd9c342ef28a87f731d6e50ba977baf12d7caa7045a9d56b0e923f03,2020-02-15 00:00:00.000000,0,0.0 -064c3e311ef63912b0cc91db9681ce2d301c3e76c447febf8faa303de38cc005,2020-04-16 00:00:00.000000,0,0.25 -b6cb293891dd62748d85aa2e00eb97e267870905edefdfe53a2ea0f3da49e88d,2020-02-15 00:00:00.000000,0,0.0 -3a8f6d79cd434dc10588606993976b7b2bc038ff4a2481e857ac0168fc29a683,2020-04-25 00:00:00.000000,0,0.1 -98144d79af44407273f26589afc01901b7b296deada61a4740b0d404c5043c53,2020-04-15 00:00:00.000000,1,6.72 -b1585fdb272b31401eaac5dd46a936c1c09b4861e53e23f12ac72fc077b3c82c,2020-08-07 00:00:00.000000,0,0.01 -e73cb135243c08ab2c2adc333b150b9237093315f6b38e3361f07caf2bfb4d6b,2020-10-04 00:00:00.000000,1,30.3 -6e82b8197ce29396936a07b1eb951c88650a2fc0fe1201a51b15b6ca8a73318a,2020-10-08 00:00:00.000000,1,10.08 -200dd69b70a88134b3a939de5f0b10c44a1675344329b9d9a5ad6b7342f978b2,2020-11-29 00:00:00.000000,1,3.63 -9869a8a3a11a33284dc2bcc3d2e6ffd52cad30e2009c11dfe604e74dc21a887e,2021-07-01 00:00:00.000000,1,20.13 -ddfe0e8d462af661f81db36589c39882dc0f2330785b5d80cd34f2f520ad618f,2021-03-01 00:00:00.000000,0,0.0 -51d089cdaf0c968c94b80671489d22b6f79b1c57de80df880b008e9b37b49788,2021-07-01 00:00:00.000000,1,20.13 -d4679c618f1af07ee8570edd4b931e2e68e1c2d4b7d3c2f1033a9b597f85d4b0,2020-10-08 00:00:00.000000,1,10.08 -48ce32e8ec7741594c8786e445fbed501f5a735a49522314b8e24878e2544b9e,2020-02-15 00:00:00.000000,0,0.0 -a42e815c58f3977fe531a80ffd4659121c3b9f876a89869042816c369ed80776,2020-11-29 00:00:00.000000,1,3.63 -5844a72aee9269a68da28cae55c706d824b02ffb92189aaacd746a0d6097f549,2020-04-16 00:00:00.000000,0,0.25 -86b700fab5db37977a73700b53a0654b21bdad0896914cc19ad70dee5f5fb3f6,2020-04-15 00:00:00.000000,1,6.72 -9b19f9ab816598a0809e4afd5d60800f2dbef9cbb9b03ad2ce766b3c237b9059,2021-03-01 00:00:00.000000,0,0.0 -a77b6cbdf6fae1676369dea1e1ea675e4c2400c9e43bd535fdfd9395cb48cbaa,2020-04-25 00:00:00.000000,0,0.1 -e4be97ce765e6cfcd703884cc31db7478fa7befca7cf6dc15420ba20ed718abe,2020-08-07 00:00:00.000000,0,0.01 -cbd02d97b0731d88c78d30c20d90492b2d4c3f2f983931c38fef2dedc7ce48d4,2020-10-04 00:00:00.000000,1,30.3 -227445a988500528d7826c6921d2e3b4a79ccf3a94cc3bcf7b667e3ae4990b36,2020-04-25 00:00:00.000000,0,0.1 -23e8b0175874e1bb3b4799e13a6634a8eddb456c1b8675b871e07ec09abc0c07,2021-03-01 00:00:00.000000,0,0.0 -560aa3e6e94314c78236109e209ac79e15e05ec8bf2dcb78300ae65e720edf9e,2020-04-15 00:00:00.000000,1,6.72 -d18b29d80a8bd366b77c952d9775510507c2d006eec917ab2f89ef93acc5452f,2020-02-15 00:00:00.000000,0,0.0 -ac1270c5058af65025e5b2a3e3014cea69460e7d9f159ae667028e1b6eab433e,2021-07-01 00:00:00.000000,1,20.13 -35bbce4007c5cd57a4c6dcabbdf5b347c9557ec11898111c280a788f8396e2c5,2020-10-04 00:00:00.000000,1,30.3 -dcb5d6e69e4ded78464ae2843f509daf65c9ca09dfdc9b5ad69166341963a877,2020-08-07 00:00:00.000000,0,0.01 -f138665c5aa6600801452ebb40df70c46e73f2c51f4cb72f66b438139c5ec3f6,2020-04-16 00:00:00.000000,0,0.25 -db3defda18fafc0c197740438051c690d98b551a7e449d66390d38fa2db09b77,2020-11-29 00:00:00.000000,1,3.63 -0604cd3138feed202ef293e062da2f4720f77a05d25ee036a7a01c9cfcdd1f0a,2020-10-08 00:00:00.000000,1,10.08 -1158e7e12c5e7362318e5e3c2e1f2f1ab49578ab1d1691e9818a7c3f6b30b528,2020-02-15 00:00:00.000000,0,0.0 -5344c4110f483793dc352c388e67776724c36b4bea3ffda6cab7c75b9c65aceb,2020-10-04 00:00:00.000000,1,30.3 -7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5,2021-07-01 00:00:00.000000,1,20.13 -ba689abd93c9c6a7d08b5b5c04dd27f6d69755ebe9a87fb969e73dfc11660e38,2020-08-07 00:00:00.000000,0,0.01 -e13b778ae833ca8c5d757c58e4a85bd71e08c05caedbd096e13ec3f7b228b43a,2020-04-25 00:00:00.000000,0,0.1 -a2075145d3cc47b2b56aeec5e9c78fe7e0055169961b6823629772c96f1f0319,2020-10-08 00:00:00.000000,1,10.08 -a435270b90e9b7091c77f478df0b8f78dddd32079b75698b8de902061f74efaf,2020-04-16 00:00:00.000000,0,0.25 -ecac903ea62dc1d5446a88330af0a17ce89c7787e5aaf450113a4a426813e3cc,2020-04-15 00:00:00.000000,1,6.72 -a05198938c6ca8cd56289c6dba6bb8aaa68dfe8e0d7a37df2fb76e48eeba4244,2020-11-29 00:00:00.000000,1,3.63 -5e5c743a015ff8d81e2374d5bca1bdf8ed87ce18484fce8cf4062183dde08493,2021-03-01 00:00:00.000000,0,0.0 -2c69bc9b34fb0800a44a702e45019c107dfdc8273b9feb62c9615addc7138bde,2020-04-25 00:00:00.000000,0,0.1 -94f8607915dff25f013e45fc0642fb9830b0fb25ab0ab46d477eaf1061def379,2020-10-04 00:00:00.000000,1,30.3 -39700d452c77592c9710a4a34c6fe97d6150e26d550a5cfa553b0177d7b23e95,2021-07-01 00:00:00.000000,1,20.13 -b027feeb60b70f0d34ece10aead660113cf06408da4c6477c7b2606839475de4,2020-10-08 00:00:00.000000,1,10.08 -d4b9aead1dd10a596542d1d8211a5021b9c3e894751d019ac64b15a55b9b69ba,2020-02-15 00:00:00.000000,0,0.0 -4771bef2c04a34b548b77ea7581cf821152d9dea9c2c85151a07856fe3639314,2020-04-16 00:00:00.000000,0,0.25 -5088c1bc42f5cc6a32cdb92d7524ea06febe006baac86a0fc8986a8ee00602bc,2020-11-29 00:00:00.000000,1,3.63 -8952115444bab6de66aab97501f75fee64be3448203a91b47818e5e8943e0dfb,2021-03-01 00:00:00.000000,0,0.0 -0cce0bd361c46fcde41daebc801da75e21320763dc2b1a5a62d9b28e7c3e1d10,2020-08-07 00:00:00.000000,0,0.01 -0b35b06a22779418f775a804f36485f7bc978071d1709ad263a68f4f18117b11,2020-04-15 00:00:00.000000,1,6.72 -72933e3b31f0070af6478edc3becf96e1ee59917620e8c509cf0e6b360e29c02,2021-07-01 00:00:00.000000,1,20.13 -a9346b0068335c634304afa5de1d51232a80966775613d8c1c5a0f6d231c8b1a,2021-03-01 00:00:00.000000,0,0.0 -a1e8154bd1a4c96efad1d5bd4a3ecbd73f4f39a44b14b6025cff18b31ddef7f0,2020-10-08 00:00:00.000000,1,10.08 -388c2eafe5afd475492698c0995a2daf157eb3b3be8207391d3a023c97c8c034,2020-10-04 00:00:00.000000,1,30.3 -c32ffef1ae0cabc0576614cb4d2064cea5bd9c0fa13c7b8bb9fb9b4e8ba950a9,2020-04-25 00:00:00.000000,0,0.1 -f7c2599681e9284ce1c403459e22b730e997d67d16c45c4f593108e8372029a9,2020-02-15 00:00:00.000000,0,0.0 -e1bb74a7794720edf4935a8813538e8113491318168b1fa61a0ac3528e7b0440,2020-04-15 00:00:00.000000,1,6.72 -bd3a797ba948938978965781bd341bc0fc7711ed00e513b9c63a61cf3d916562,2020-08-07 00:00:00.000000,0,0.01 -8920a14a7f6469b955b114111564cb9736440238d220fc9fd525efdb9a056d3e,2020-11-29 00:00:00.000000,1,3.63 -87e29676d583c04a1682dbd5bc0d989f8311c888655ca66bc486b6f7f76d4702,2020-04-16 00:00:00.000000,0,0.25 -891d46993a36d78392247c642138cede01d9841daab1d945709755b5194597c4,2020-04-16 00:00:00.000000,0,0.25 -68f10bf021d7734e071e07bbf561aa0f1bfc7974f266f71311b9177b177d39d1,2020-10-04 00:00:00.000000,1,30.3 -fb8a0d2da8683cec6cc64542f95ae11e085c72d56c744b2be5be335295976610,2020-02-15 00:00:00.000000,0,0.0 -5ef6514ed3304cf62b950982541114ac352c52729dbf80747775a9d1a733af93,2020-10-08 00:00:00.000000,1,10.08 -20ca98162ba780883712eb701c84e4c06f73aba78e903935a9ad799193b4627f,2021-07-01 00:00:00.000000,1,20.13 -d11501b090fb2749f2c49284394dd36fe0ac76eb1a52cb3bba260dbc119ec46e,2021-03-01 00:00:00.000000,0,0.0 -da6813d10025369ac0411363a16ab750adb21c6d0b38a03a9fc5ce58134da875,2020-11-29 00:00:00.000000,1,3.63 -8def3488486c17dfbc2861301b63237c3c3a05b4c23afed03d59829fba57e10c,2020-08-07 00:00:00.000000,0,0.01 -5109a4e14cbbfda6b4512fc17ff13814ff9427f7b602694236f2c5be4d9875af,2020-04-15 00:00:00.000000,1,6.72 -84f01dd97c687fb28a296bcc2ef1801446ea7405860595924eb2b5bb634718d1,2020-04-25 00:00:00.000000,0,0.1 -5de664ef205f95d4a68b69b148eecb04f110ac95ef77f4e5158ae315a76ddd8a,2021-03-01 00:00:00.000000,0,0.0 -2d86377d4cc3e6c85bab00dd407f8c5b657c239c6af3109de6cdf4d418aa2d89,2020-10-08 00:00:00.000000,1,10.08 -18beb4813723e788a1d79bcbf80802538ec813aa19ded2e9c21cbf08bed6bee3,2020-04-16 00:00:00.000000,0,0.25 -d359f8b537f1888bc71fe20b3d79eae6674be7aca9b645b0279c7015f6ff19fd,2020-10-04 00:00:00.000000,1,30.3 -68e476b5d5aeca7b0e3b5ca867106c32e40cad05a490f6b08a24063cceed7e7e,2020-04-25 00:00:00.000000,0,0.1 -6fc8f95bc6465849249d974d53eecc56c00ffda0fc3c7024bfa5b8e4d794b072,2020-04-15 00:00:00.000000,1,6.72 -fadb19bfbddde11ed6828a22e742cc97f5589ce48ac8ec8f94a6510ad5f16b8b,2020-11-29 00:00:00.000000,1,3.63 -6e2d4d3a3d4c4bb21b095657230061140c63b1ff4d89d85e32fb9a312319b35f,2020-08-07 00:00:00.000000,0,0.01 -068814875fcdfb8faf539ef43cf5d109a22b7cfd28770e90b00be8c48bfc722f,2020-02-15 00:00:00.000000,0,0.0 -f89f8d0e735a91c5269ab08d72fa27670d000e7561698d6e664e7b603f5c4e40,2021-07-01 00:00:00.000000,1,20.13 -1f09802c4beac758321ae8a9f94d752b0976c7d54baa6e511bba8a7374107bef,2021-07-01 00:00:00.000000,1,20.13 -cc6bb91d4a9aec9fe2e20ae49fd18166f522a7918a2ff2ecd1c2c35b5d4649e1,2020-10-08 00:00:00.000000,1,10.08 -d40fbd13d527595c47eacbf0d7c87d256139d9d45261c25c2840d30a4756495b,2021-03-01 00:00:00.000000,0,0.0 -833cd8c0e698745b16dac196a511327c3b30258a0d9b96710745d28eca932533,2020-02-15 00:00:00.000000,0,0.0 -91a73fd806ab2c005c13b4dc19130a884e909dea3f72d46e30266fe1a1f588d8,2020-04-16 00:00:00.000000,0,0.25 -9d6aa3d89c0171b9c2ccd57e6d41ccec3053d3c3f118386e7f10b89ebaa7b8e4,2020-04-15 00:00:00.000000,1,6.72 -5fbc314fb0b511345465b5b907ec6961328e5e393ff831c8d74912184098bf41,2020-11-29 00:00:00.000000,1,3.63 -dd8e8c8c9dae8978f122d7bcf3d0d49f6a0e86b9fc35528f55e78f7408927bb1,2020-08-07 00:00:00.000000,0,0.01 -0d6f9709edaeba4bebf576d6b886b8c7083374f521f5256bf571add42fc7465c,2020-10-04 00:00:00.000000,1,30.3 -6bcaea9882504292b2f6ea37a84b215463e71ab73b824ee90ecdc10c8dde71ed,2020-04-25 00:00:00.000000,0,0.1 -04edd1d7736883194af3ddb232c337e53d17bc93cfd2140c4f4c4e0d966798b1,2020-11-29 00:00:00.000000,1,3.63 -4eef24c6b8248c2271f6663f44ec0de3c2535ca396a22cf60051137d71721309,2020-04-16 00:00:00.000000,0,0.25 -fa4ddf29f41b575377ce14a7900d1e26b669163ca53b80ea3168c6801cf7e114,2021-07-01 00:00:00.000000,1,20.13 -621cb5d0bdea9584dc9f7ede1479e7cca67f8d9778d7e3c8c5cb8aa9eaef47ef,2021-03-01 00:00:00.000000,0,0.0 -236b565af6b512826fd89dbbde2e88b94465f780985c134e58b62dea6ee258b2,2020-08-07 00:00:00.000000,0,0.01 -c57727d64e318e2ea42af2b4c3360999ced134403066d050c980e7c6b70d49e4,2020-04-25 00:00:00.000000,0,0.1 -97a6d21df7c51e8289ac1a8c026aaac143e15aa1957f54f42e30d8f8a85c3a55,2020-04-15 00:00:00.000000,1,6.72 -f8818b67ab25419ad5b1bd61440573498e0785aad6c634c987fe5a637570f464,2020-02-15 00:00:00.000000,0,0.0 -c7ce483fd1cc5fd498e7e2a09851c65f89a33a6837f66d9fbb36e5e5f70b41a2,2020-10-08 00:00:00.000000,1,10.08 -085b2a38876eeddc33e3fbf612912d3d52a45c37cee95cf42cd3099d0a3fd8cb,2020-10-04 00:00:00.000000,1,30.3 -f292c8c5c2fe9fd30ef1c632e6936edabe42f087e3cb50ceef0324b729383d82,2020-04-15 00:00:00.000000,1,6.72 -5e74cb2ad4e2c9e2d3f59a1e6c8a5d4999df48e5dd69871d2798e0a146b91ee9,2020-10-08 00:00:00.000000,1,10.08 -5b4afb8d2ed60a5777760a1cd17fb91b7c940c125cc7f74ae40b75df92036e5b,2021-07-01 00:00:00.000000,1,20.13 -8e28c5eb829e92abf7a5a921f42364cbb8b255d7c9861a68a3814a9de95d9d67,2020-04-16 00:00:00.000000,0,0.25 -fb84a9739699e1a2c6c56b5baa0a16047a4d845a5c6615ab9e18bafe688f45d6,2020-11-29 00:00:00.000000,1,3.63 -f3457dabe1b412ed6374d56fe8fe3b969c761b77dcc80ecc0964b7c7641d219b,2020-10-04 00:00:00.000000,1,30.3 -1086d35563c495c1cecbce12135cab3b945e01dd185ea2c1dc8ace5ad988977e,2021-03-01 00:00:00.000000,0,0.0 -b2cc86ae48fd3b8775335b586b3549e53af3d749f07748a7343f893522ae63ea,2020-08-07 00:00:00.000000,0,0.01 -59b524f8de039389005bce58385cae1d9241abd663e87647727abc8802e85c3b,2020-04-25 00:00:00.000000,0,0.1 -de0023e398111d43424845aaeee2e119249cc0567e7b585eaba5f44080b458c6,2020-02-15 00:00:00.000000,0,0.0 -4299da7466df09516d290f7a99c8b7a2fa94766eb94a61c24e1ce8f6ca80af44,2020-02-15 00:00:00.000000,0,0.0 -421c0a7b6d0ee1c34e3d78f1685b6d95113fb2f1091919efaab45f1156a4e428,2020-04-25 00:00:00.000000,0,0.1 -62bfa285013f08807d394266cdf8261dd060a704959ae9c20e4ad262b65da12a,2020-04-15 00:00:00.000000,1,6.72 -085bcb597bbd610a7f0f955301d0fe3734b92a7144e87f68e8b5beec1a09b55b,2020-10-08 00:00:00.000000,1,10.08 -c403741c4121989ac12c0829be88b8bec6f27b270f3cf8a7be3fe72cba473897,2020-11-29 00:00:00.000000,1,3.63 -219de1387a6743e583e805aad3bf0ffc69dc2107e6d233d43ee8ab62434729e9,2020-10-04 00:00:00.000000,1,30.3 -82a93b152b275d4c8de67c3d05c9b00e92477eeb024f117c7632cdb26fd874aa,2020-04-16 00:00:00.000000,0,0.25 -a917ca757ac59f9d568616140c2f72362fc2722ab277e7b5019008f280f17beb,2021-03-01 00:00:00.000000,0,0.0 -fbe697429f16141bc71e3b91f3823641c8dd258dd58bf076241514754954cb8c,2021-07-01 00:00:00.000000,1,20.13 -e6fcc0253ed7a328a10eb6e2e1ad6abcad60c374c64dbac4b76da610085b43d8,2020-08-07 00:00:00.000000,0,0.01 -60f070e3393291d6f836bf0acdca6138eadc4dd1d168ccaf03ab17cf0464f81b,2020-10-08 00:00:00.000000,1,10.08 -793733573a1dfd14a2e889a11b2ad7b6981de29df813863b528dc1ae99416eeb,2021-03-01 00:00:00.000000,0,0.0 -d4e33e2934280979f580a63f992daa7d0de2cd64a145d5c403a75c3dc5c0004e,2021-07-01 00:00:00.000000,1,20.13 -e2fa8f5b4364b8ef4dd1f26ab47105d908d06ec84d835e3d1aac404a63f1464a,2020-08-07 00:00:00.000000,0,0.01 -a3aaf5a0e9ad2901ab35ce73910be7fbbe1731a3ed1ff947a6ac395c5024a8b3,2020-04-25 00:00:00.000000,0,0.1 -be6b5b7140b02bff9ad8fa5aaaeca5973791521c5029c9f6b42390f8b87ce2bd,2020-04-15 00:00:00.000000,1,6.72 -fcf1e4bf9cc9c1083647b91463e86f49c6961406c37055c7eb8ad13937a519db,2020-10-04 00:00:00.000000,1,30.3 -bf7db3a1fea244ba0c173404b5abb382def24d3bc547ca4f410bae2a311cdf85,2020-02-15 00:00:00.000000,0,0.0 -182dc6b90f1c9cd913c39a6b5506f582caba9ddeadafe32f5bdbac25efd705ac,2020-11-29 00:00:00.000000,1,3.63 -284b7e6d788f363f910f7beb1910473e23ce9d6c871f1ce0f31f22a982d48ad4,2020-04-16 00:00:00.000000,0,0.25 -36c1cc2f9d7022bf6beacb6248a89e7e677b3bf9a91e6457a5ffdbade55b76da,2020-04-15 00:00:00.000000,1,6.72 -aee4848a8580f31102073d34012cb3700fee3e61f9fcfd725fcfe5fa4a220ec3,2020-04-16 00:00:00.000000,0,0.25 -97468f679ad305fa4dbbf17fd4bf18c41fb655f2d86162b1d91ad4f1e09814c1,2020-11-29 00:00:00.000000,1,3.63 -3b86df3ff95ad2fd72102e34f3a721f2bdc876e12e3bd1434af8ab4cabbd5547,2021-03-01 00:00:00.000000,0,0.0 -90b5bc7f03c840b2efddb22ffdfc37dd12cb391b49aa0fc8751726c04d32ff30,2020-10-04 00:00:00.000000,1,30.3 -f57b8252cea0e3cad78056cbf96b9fc041279769afd2228f8c9a8a904550aeb0,2020-04-25 00:00:00.000000,0,0.1 -67eab6db6703cdf9acf656bbb09640fcde2ff197786adbd9ae9c14936fc8d159,2020-10-08 00:00:00.000000,1,10.08 -1de4d95a81eb1780d5c21a880a8be6595306670af426e40872b2a03c5cfb9996,2020-02-15 00:00:00.000000,0,0.0 -1f594da9b409f7f4b9dc5015a81761b2fc2dd60eec773f74539bdfd30c552c89,2020-08-07 00:00:00.000000,0,0.01 -01ce4b291ad3ecd240be71870340051b755e74e91e05d5c5baa0d7830c1b75d4,2021-07-01 00:00:00.000000,1,20.13 -97623535a9ed79620c0c749a7c0a785de0f8a895807195daf2b0e58893db160e,2020-04-16 00:00:00.000000,0,0.25 -55f0124bb79f5c53d868ca45bbb0f4d04da15eea4fb29c6b95087fe8801bf0a3,2020-02-15 00:00:00.000000,0,0.0 -7595dae9cde82218336a5457ed9d55ec898c51623f73a69eefaa57a2cc9194fc,2021-03-01 00:00:00.000000,0,0.0 -fa7aec4efb728534ef32c172197c9560097c6d0e4893fe6b20242a566ef033d1,2020-04-15 00:00:00.000000,1,6.72 -3de8392541ace28284aca7f2724273739fcf4cf73de276a8ddd3547c0011323c,2020-10-04 00:00:00.000000,1,30.3 -683d098205b11550f2d71016c82c4377a96c9f808e132f83f15ba9bd058c7b20,2020-10-08 00:00:00.000000,1,10.08 -85ea151b8c5b5ab0d3349100e441bd4b8dc20740d429c16c3b85b77066386e75,2020-08-07 00:00:00.000000,0,0.01 -ee377871c73631fd6543ddb5164d0b48ea072daa207a91ac696051e0838135dd,2020-04-25 00:00:00.000000,0,0.1 -86a3f9b13a5b652f93cb17e3f4d212d84cf25c52a595f13fff9f3c5810afff1f,2020-11-29 00:00:00.000000,1,3.63 -524148f24802f8c68974c2e1ecc8b8f47d0d60b7a0d1948951c050a25b5a8e59,2021-07-01 00:00:00.000000,1,20.13 -90b0ce469fbd8e30a2862bb24d562dc641c534a9b43c7c33c25cfaefe25e5e47,2020-04-16 00:00:00.000000,0,0.25 -fc47b34e36f4032acd1ca2192a7b9b097011ccbfe3d8e27b04bb6999e000578d,2021-03-01 00:00:00.000000,0,0.0 -fc71f2d6d38dbfc752ecaf2262916dc8ad99a34243d47b34691f9f8a3afaeffd,2020-10-04 00:00:00.000000,1,30.3 -1b3c33580f2e2094cbde0bfd58f8008ee6e29c06643ca310222045c82fe0ab0e,2020-04-15 00:00:00.000000,1,6.72 -ad723f42c7aba316d944f19f340ce47d8e0c6fb354d212736ec4782314a6824a,2020-08-07 00:00:00.000000,0,0.01 -87acb1e183a2b0f74c3b2008b8ef6975a95269bc490a8886f317fa4bd714b085,2021-07-01 00:00:00.000000,1,20.13 -9a35532c7499c19daeacafc961657409c7280ce59d7ae1a3606dd638ac3d99ec,2020-02-15 00:00:00.000000,0,0.0 -67c312330b0371a0a37c565cf44ef264835147fea61261bf57380f338efcd8c9,2020-11-29 00:00:00.000000,1,3.63 -1ad269a743bd01b5bb74f135c332a4acc98ef1a570d966fcd6a801de6d9ae3bc,2020-10-08 00:00:00.000000,1,10.08 -21900f41ecb7b8e6cfd9250f096aad2fe7f6d8fbec9436b2d28e48c304ff8255,2020-04-25 00:00:00.000000,0,0.1 -7b81eb727ed48055fa55c5e03aaa43f27b01bd9b1c8eb38f37a1ca541a79c1f7,2021-07-01 00:00:00.000000,1,20.13 -3bcc1340d90b3d55accb9a57998b69708fea2a63c39f7369047469f952ccad4f,2021-03-01 00:00:00.000000,0,0.0 -b6b1b469ea43c90a602e7ae3bdea001b11f66c17337dec23df0b0249542357ee,2020-10-04 00:00:00.000000,1,30.3 -709df012e236dc3f5c53b8ce75c5adf74c39054aef58e3eca5d852fa5f2244de,2020-11-29 00:00:00.000000,1,3.63 -2618182c3894875e16eeafa6c24e1fe926150ebc6403980c2cb1bbff192d296d,2020-04-16 00:00:00.000000,0,0.25 -02c000a36dcd047f5738f5abfda07dc3b6d56fc44ea752c8f45b965f6fc04c1e,2020-04-15 00:00:00.000000,1,6.72 -bda584056eb9957d6c681e00079eff36fec289e2a0432a4221b95438dfef5ca4,2020-02-15 00:00:00.000000,0,0.0 -f4dd301311d96b70a2ee62a6bccfe21bb0d94a89ca2805333cf352c1a2381c13,2020-08-07 00:00:00.000000,0,0.01 -2cfd4b162e427e8e59a2fedf7d5d138eb696d08b98ad9765da0af1690c77b280,2020-04-25 00:00:00.000000,0,0.1 -3f1bb7c0da3c01e685edd592f3a3ca0b149a399d25b97c0da47118c24a39f59a,2020-10-08 00:00:00.000000,1,10.08 -455ae2dfc77dd77562c06dc893a49d84795a93e4f86ea2e92006940c870ec044,2020-10-04 00:00:00.000000,1,30.3 -68fcd1eb684859a314bbf7f7c99037cead480f5bb209ccd4725bd319423e832f,2020-04-25 00:00:00.000000,0,0.1 -62e66f3e9936906923febd26f9d2536edf38936998c4e5d678b925d848aaa89d,2020-10-08 00:00:00.000000,1,10.08 -87e50b28705900bb064d1e9df1bd6cf55a7efa01cc16c6cf0703f491a1f13d44,2021-03-01 00:00:00.000000,0,0.0 -3c2308b1bc64683e5aed4111841da5bc3b3295b01a852f1dc4e68510f79dd37f,2020-08-07 00:00:00.000000,0,0.01 -ed0b853bd9c28435b6aa98fb0780ca80d7d6f72350f76d57aee9509219cc8d61,2020-11-29 00:00:00.000000,1,3.63 -86bc00bf176c8b99e9cbdd89afdd2492de002c1dcce63606f711e0c04203c4da,2020-04-15 00:00:00.000000,1,6.72 -c86a2932e1c79343a3c16fb218b9944791aaeedd3e30c87d1c7f505c0e588f7c,2020-04-16 00:00:00.000000,0,0.25 -5480ab857f30bc9abdc0d88179b66cb30b6a294029f8bed71e3b606a19941359,2020-02-15 00:00:00.000000,0,0.0 -2099a9b5f777e242d1f9e19d27e232cc71e2fa7964fc988a319fce5671ca7f73,2021-07-01 00:00:00.000000,1,20.13 -e9ad42e2c3f4805614f568186b0282219cf7350b7707f2036405835916e3a65a,2021-03-01 00:00:00.000000,0,0.0 -83eaf4dc5e19bcbeb23801e2c3e08c4a89cc82d0a42a903767f9c938d1deac4f,2020-02-15 00:00:00.000000,0,0.0 -5f128c8385e577cd1539a0e5a758e4004f4b97e5986b00fb17d393a5ee5ed85d,2021-07-01 00:00:00.000000,1,20.13 -92a6a32f99def322d70ea1167a99c6859ab4e8bbc593b997ec5994d244a82475,2020-08-07 00:00:00.000000,0,0.01 -9f6cb78c09b22a1a10564f6be4a1784327a42ff11a10a31d355435db59f44710,2020-10-08 00:00:00.000000,1,10.08 -d62a7b3da232bd0ac1f7520a3b5bb57b171aec57f960f55b47b1987d4e398f68,2020-04-25 00:00:00.000000,0,0.1 -24be8ee76308afb924abfaf26212411f2b66e53b9ce2534e5c9f88354c88cc39,2020-04-16 00:00:00.000000,0,0.25 -c22e1a4acbd2d996ff19a852585f9434883c30124f6b118eb9152fe4e5ee7994,2020-10-04 00:00:00.000000,1,30.3 -5c17cac5569c1ab72a3f009c7608dfc49299ad8f447e4724030ea416383b04fd,2020-11-29 00:00:00.000000,1,3.63 -fc9e91cc78e1817d80b4ba8c2dc9a638d0c57959825ee34f5e3d7688ad80dfb9,2020-04-15 00:00:00.000000,1,6.72 -316c0f93c7fe125865d85d6e7e7a31b79e9a46c414c45078b732080fa22ef2a3,2020-04-25 00:00:00.000000,0,0.1 -81f27f8a7d8766c72c0307a31327c1fad9007c6c3d33724ad2a5c0a8fe0df33d,2020-08-07 00:00:00.000000,0,0.01 -4b8ba4b13094beaef100d3eb7d4c8e23600c30be4420c47e0d6b4e88dbd70abb,2020-04-15 00:00:00.000000,1,6.72 -09eac95eb995b821f45353054da3c7eec5f5171fb061de72f1890679956b12a8,2020-10-08 00:00:00.000000,1,10.08 -9ae8f17cfc8ba7fd8fb34b2a194ef965a3b36a40839a46eeab1350e916692ac9,2021-03-01 00:00:00.000000,0,0.0 -c7e616822f366fb1b5e0756af498cc11d2c0862edcb32ca65882f622ff39de1b,2020-10-04 00:00:00.000000,1,30.3 -8b5551ea922dd24625c45051c64adb50fdff91fecdf5327a02c7b0be3933965e,2020-11-29 00:00:00.000000,1,3.63 -6f81082badfd007354ac6ebb78adaa04bfedf9a1fb9a01909788bad472008ea3,2020-04-16 00:00:00.000000,0,0.25 -bf31e6128301d31bb4014faf6b1e0f05f3ab8877cb55ce3d1ab3230d2ea8a220,2021-07-01 00:00:00.000000,1,20.13 -172e1676eda470ede17e9d491554bcbe97ba4691f92880064c8cb29ec35a467e,2020-02-15 00:00:00.000000,0,0.0 -00bebc5be79d19e1b8b3f250dc39aebfa9a054baf5f8d61380438d92394c476a,2020-04-25 00:00:00.000000,0,0.1 -12f26af0dcdfae8fe4331d6a4c369edd549220cdeb119b3b1831b2a2cf77f281,2021-03-01 00:00:00.000000,0,0.0 -f4466a4b51d21014b34f621813a1ed75f1c750ec328d908d9edc989c64778962,2020-04-16 00:00:00.000000,0,0.25 -8ef532f440c91b5dfa24570e53d6bded96c4064a45e6d18a61c5e08b172b9814,2020-08-07 00:00:00.000000,0,0.01 -a440868cf4311953cb45c7ded9360009e1bb77775b6395a3e13aa9ef831794b1,2020-04-15 00:00:00.000000,1,6.72 -63db0204e2f34aaadace364d046ef5d7614b8cb287b939e55ac05c53aee90de1,2020-02-15 00:00:00.000000,0,0.0 -2782526eaa0c5c254b36d0c90e1f8c06af41d167a8b539bd3c81cd6d155e7e5f,2020-10-04 00:00:00.000000,1,30.3 -cebe3d9d614ba5c19f633566104315854a11353a333bf96f16b5afa0e90abdc4,2021-07-01 00:00:00.000000,1,20.13 -34e2ad7b31cd9ee87c038c10fd6fbe310314ba67abb73a686f0d1087267d7a1d,2020-11-29 00:00:00.000000,1,3.63 -a4c6af0cb6f02dff01ba174e4cf11f24f73d9ed16ca7a1e3c9d831c0139faa5c,2020-10-08 00:00:00.000000,1,10.08 -1c8dcc518b9942ef52885666bfb82260c287afbbeebb71e741b1262099424f11,2020-04-16 00:00:00.000000,0,0.25 -ec1c7d93ba051204e4fea7e167f540c2136769c82329c53f5b7a0770bb237987,2021-03-01 00:00:00.000000,0,0.0 -07bed92aab16ecdd9c886a79e44f0c0b02d70c746c593eaa3b8acf24e687bcd8,2020-08-07 00:00:00.000000,0,0.01 -10ba045e9ee40807e57f6093280b9fa9eaf640ba4955e340ae4c749382ad96fc,2020-04-15 00:00:00.000000,1,6.72 -bb9b8ef813475d1e0ad84e2505af6656d16c990b1f77efaf9324e8fbcae2db67,2021-07-01 00:00:00.000000,1,20.13 -162753c27c8b32975a0edf5e89ab4ed8e2f06f02a182e0f181481cc050fdcc72,2020-02-15 00:00:00.000000,0,0.0 -c2077253a9b10166e7c8ffda8f2377456f332029eea3d27def7fb2b23502c0d4,2020-04-25 00:00:00.000000,0,0.1 -1c63ed9164d61acfd1f4f3a7b6dfacbd98d1dc01e755b7b558c6af0491154a2e,2020-10-04 00:00:00.000000,1,30.3 -fc4fb94d36f45aa9d13358022455e55db4b6f0eb536a1b2897c90dfd3df9eb9b,2020-10-08 00:00:00.000000,1,10.08 -f6103ca1e01bd200a9258a366b7e8c22a542e771bf11a0679967a5bb47ef3688,2020-11-29 00:00:00.000000,1,3.63 -809e63d5c8aa03af112d17361058d0d8955f6d8e1e7591487d593dad276f9757,2021-03-01 00:00:00.000000,0,0.0 -4cc3d9cba4633096fadf09ea1106b4b321ab81b1d461c3d6994f0e303f631249,2021-07-01 00:00:00.000000,1,20.13 -8b7fb6aee1c63e17f44f935a6b64e05920ddad65327de1cb5e6994a6a3f0b618,2020-02-15 00:00:00.000000,0,0.0 -a6c2a2325dfd588f202a240a06ccb2b037854e7097a303fc8991ecc15501528c,2020-08-07 00:00:00.000000,0,0.01 -11f8e31ccbdbb7d91589ecf40713d3a8a5d17a7ec0cebf641f975af50a1eba8d,2020-10-08 00:00:00.000000,1,10.08 -677fe64a8ea7e98a420d129f1cf3d4d23a9f107e9fbe8d83efe95f093001cd54,2020-11-29 00:00:00.000000,1,3.63 -d6723fa996ced47773f2dea29cce9b11f951e6dafe321a84ac7d32791c3b4660,2020-10-04 00:00:00.000000,1,30.3 -e4c6a9f38e8e4d127290cf104ac1f46d0649c7db6c89f4bc10be7447bf1f514c,2020-04-16 00:00:00.000000,0,0.25 -c9a5da075f9e5c3e7a916570946fed4826e181656382e13696fbe0aaf1412bf5,2020-04-25 00:00:00.000000,0,0.1 -99ee50221221864d50c60baea6f14d8ac2e235cc6e78be6088cd40cc97fca394,2020-04-15 00:00:00.000000,1,6.72 -290a0b92873bdf4e47986dc5208037bad7527653bff700dc53c1e57eb98103c1,2020-02-15 00:00:00.000000,0,0.0 -47fec9f491173c57c1d5b35dfefdb69cba6bd61bfbadea64015a65120efa15a0,2021-07-01 00:00:00.000000,1,20.13 -769e881d85fc5d27cb4cbc8382200d95b179cfdeb56e0b439da737069eaf8a5a,2020-10-04 00:00:00.000000,1,30.3 -e4e549408422875958476160732390defefcac7c2bd8353d918fe452d20de2a6,2021-03-01 00:00:00.000000,0,0.0 -bd94717d91260895035088525e817ea10375454f03aa3bd8b28b355a4cee22c5,2020-08-07 00:00:00.000000,0,0.01 -35254aa9a21444e50349cebb5465b9b42cb4a625ebcbffe24504b178c35bcb85,2020-11-29 00:00:00.000000,1,3.63 -5b60f221d4a1852afd0194ad0857fae9c558608e35621dce43301e8c771b7877,2020-04-16 00:00:00.000000,0,0.25 -1706be6c293444756e72b05e4afa9eb1038e552ac6ce058309451ef7ddad7748,2020-04-15 00:00:00.000000,1,6.72 -92c5fd0421c1d619cbf1bdba83a207261f2c5f764aed46db9b4d2de03b72b654,2020-10-08 00:00:00.000000,1,10.08 -4ec24a2d7f1dfae1f98882eabf0400cd9483dd2de78b926b625c46e8787f3816,2020-04-25 00:00:00.000000,0,0.1 -2499d690642faa4da2a67b078236d1c031217f3c31cf2da2142c8e84e3d617f1,2020-02-15 00:00:00.000000,0,0.0 -9b09d7f65345fc85aaa8814b69f3c933ce5eda41786f0c1df1b1ab2b1fdd2ecc,2020-11-29 00:00:00.000000,1,3.63 -40f8d6d22b99ea3388538fd60bbf532256434b0eac401df1d9a2bdbb29354ae8,2020-10-04 00:00:00.000000,1,30.3 -c66bbe9d118f554bfdba35a609848b9ab2d9c22e6bed77be6f8a55e96c295549,2021-03-01 00:00:00.000000,0,0.0 -35c71bd7eaf4607047bb7c186d17251942204229b897e033923b13dc8ce2d109,2020-08-07 00:00:00.000000,0,0.01 -2e00b312b0a9681bef09f9085a4e918b8fceb0c0b1c043dc17c90beef5fa446c,2020-04-16 00:00:00.000000,0,0.25 -d536a8c1664fec0bc85615cf3cb2645871e8b2935c9642c534c67ac85315cd35,2020-04-15 00:00:00.000000,1,6.72 -6c0f3412848008d49d186d5fad7fd1482656cfb62ad3c060a14e41c3fb3f1b43,2020-10-08 00:00:00.000000,1,10.08 -02837c1944876b4fa860432c13f2d9b11a7fd94dae707c4143d1217dee66fc43,2021-07-01 00:00:00.000000,1,20.13 -d829857eb1366e70be857a69886d1555af0d32681beab068afb93492c2e2b843,2020-04-25 00:00:00.000000,0,0.1 -74de057f768beb42de17ffc4b8a56100f0bed85947ecacaef111e3d3ec997950,2020-04-16 00:00:00.000000,0,0.25 -0ebb3519a0c4044c4571b2408a52e7ed8009564205ca65a69fd43f232352f256,2020-11-29 00:00:00.000000,1,3.63 -07e46896ba89f88776fed50a1b7895129f9b9af7d3b8b33ca23af478bb818d6c,2020-02-15 00:00:00.000000,0,0.0 -68c6c6e9ad314d1a5c4d647cfb6ed84265e47cbc2a05a54fb58ae74c0085ef29,2020-04-25 00:00:00.000000,0,0.1 -5c3e9040008c91509e2d28e5308034b677d4e2cc0b386863d4883bdb747eba1c,2021-03-01 00:00:00.000000,0,0.0 -9dcbe7e30f0bd60827341113108a55f86b604f921e0792418a9810075dbf3d22,2020-10-04 00:00:00.000000,1,30.3 -30e4c02268d49ca010e3c62fcc2615da2fad4cf0c359eb8fedc0366739b34205,2021-07-01 00:00:00.000000,1,20.13 -7c3d90003d7d645be0b5f3782533c198a5d5dee06870420b4d594976ed857fc3,2020-10-08 00:00:00.000000,1,10.08 -509694b0a010c6431900e71b8210521af57d39ce8e64deb365f0a5c6c9a2ef6d,2020-04-15 00:00:00.000000,1,6.72 -61182f39851829ca78c919a83ecbfa045fc0686bff16d0cfa3e643988d9dfecd,2020-08-07 00:00:00.000000,0,0.01 -f24f1a64b591544a871284bdde332d3c5d2cb109d21c03122c57d768e7c535b1,2020-04-15 00:00:00.000000,1,6.72 -81defd9e2e8f85c7f09874bbe5b8d9a9a5503c6d915a3afe4b65758f28d71fb7,2020-11-29 00:00:00.000000,1,3.63 -367461e6dd07bdb57342cb64b2a8d8e0fa13c53842a95ec20a90d35bdd6eb77f,2021-03-01 00:00:00.000000,0,0.0 -c2a181d8178a9f753b013fc4bb892ceeb5dc5bcb763352610844b93341ea52a4,2021-07-01 00:00:00.000000,1,20.13 -1a42d5267aba37d7057cadd672fefef04771be2476eeee231d6f56a8e1f57733,2020-04-16 00:00:00.000000,0,0.25 -2b9449f314bf93145f8122906d8dc56c4ca1f116e6db7ad2768d6f9ade29b31e,2020-10-04 00:00:00.000000,1,30.3 -bc8db39f614342b78a67494dbece216d3726f6924b73563be34fc630ac1db7f5,2020-02-15 00:00:00.000000,0,0.0 -102624ac0a714fa26aa0f8569b1aa0f0f80c4b34de420d2bb9e46b3dfdbec039,2020-08-07 00:00:00.000000,0,0.01 -40962624bfc236888ff8a68a74b0c30166b7245423520bb28196b67f57d5e332,2020-10-08 00:00:00.000000,1,10.08 -234666d765f4c0a26cf4d96eced9155888477cb9b19e8cb48ae4ea79ce1b28de,2020-04-25 00:00:00.000000,0,0.1 -75f7313c20144e39edcf57a14733d074aee0c482320d5178ee0ef2f2608c2996,2020-10-04 00:00:00.000000,1,30.3 -ccbcd0d62f439eacea8b0fa4139d934d2782bae1b8046e8764e598dc64a9f421,2020-11-29 00:00:00.000000,1,3.63 -0df5486b7bca884d5f00c502e216f734b2865b202397f24bca25ac9b8a95ab4a,2020-04-16 00:00:00.000000,0,0.25 -a15faf6f6c7e4c11d7956175f4a1c01edffff6e114684eee28c255a86a8888f8,2021-07-01 00:00:00.000000,1,20.13 -42c6024940120036d7a0103375d5b8e5072589f6d0f9a1a8e7f6eb6a17358675,2020-02-15 00:00:00.000000,0,0.0 -5dad6478e152b8aa33dc6a2c27992d26c0a6873d6ed1407a7e6efddca3985122,2021-03-01 00:00:00.000000,0,0.0 -6f90a5a0d3234433d03c7a06fc4bd5c3ac1f21f33978292fee61323e22238a92,2020-10-08 00:00:00.000000,1,10.08 -0c658eb5d61e88c86f37613342bbce6cbf278a9a86ba6514dc7e5c205f76c99f,2020-04-15 00:00:00.000000,1,6.72 -6165d33e490f91dbf808b194904d4f07c550d5e3a19c9e776e0c895136ec9fa2,2020-08-07 00:00:00.000000,0,0.01 -64d095f2fecfdeb907dae5403b10966c4ae755b7598aa078cb932e345bd0b5d0,2020-04-25 00:00:00.000000,0,0.1 -d3b913cdf3e8a79786216cc7bbd15fc27f86a7be516f3e14c909b86b7f9eb241,2021-03-01 00:00:00.000000,0,0.0 -8b80f49ec2822cb3cdbe97d9405e39ae40ba418b084c06604b51e2a5af11a7f8,2020-10-08 00:00:00.000000,1,10.08 -a8cee66e4788af8b855979155e486c988d84a42aba71e43a0fc26997ca12e737,2021-07-01 00:00:00.000000,1,20.13 -4099ed5ba70aebc5a9dc26bc2093d4b45839f99b306bd12f68cedfd351e6ab7a,2020-02-15 00:00:00.000000,0,0.0 -86ab8cbe5869bd1f9c70924e9c04fef3bbe3bbaaf4e816efeeaf7eb6a31937d2,2020-08-07 00:00:00.000000,0,0.01 -a7f0b84de7a450eaf6ffab449cb0f141b69eb701ffb455f375c3dae4277b25c1,2020-04-25 00:00:00.000000,0,0.1 -b6bc077d6675a7c8cc9e2fa5a08c86ba59b675d69af118052bb390c3cf11e5e0,2020-04-15 00:00:00.000000,1,6.72 -f15223dcc0da90206acdce51c6a9e24938b18665165a819f1abb69233c068cae,2020-11-29 00:00:00.000000,1,3.63 -b967fb22d506bda1b4d8a878f46c85862f5d71bb7669ecc6b0fe65f5ad19f844,2020-04-16 00:00:00.000000,0,0.25 -afccd937e6ac2d1b6d6e9f318bc5e8a179c977c7413b33b3e4d902ff8cec501e,2020-10-04 00:00:00.000000,1,30.3 -c78961d3d782d8a85d9344eedae027f43ce6b9fd35c8f355861a39e0d0ddecc5,2020-04-16 00:00:00.000000,0,0.25 -9b6c13f0d182b253c607005217881bbca28a5b04076842f6bc65580c3801a0b0,2021-07-01 00:00:00.000000,1,20.13 -df56bc061e91023bff33c6ba0d49d166a60e3aa9317f90e7a7fa3d7a65f96886,2020-02-15 00:00:00.000000,0,0.0 -aaee0ce51abf0849e68b257ab97d83a36d9d082916b939cd1012f27d7f6bb873,2021-03-01 00:00:00.000000,0,0.0 -a67063986e67b7ddd107229ba9d480ee3a02f9d59732d4bc03b2d97d27a1310d,2020-10-08 00:00:00.000000,1,10.08 -04222ea3e14cb1209b9726defe3efce5196b7afa0a959854a30401be41f4026d,2020-11-29 00:00:00.000000,1,3.63 -12132cd6767ee325d35883d25c0b7f5e1d142d60d33c563c39cea29984dcea57,2020-10-04 00:00:00.000000,1,30.3 -f7b856c054de7ccced087ad4f9413380ec494e40abc818b840aaad990ca3c5bc,2020-08-07 00:00:00.000000,0,0.01 -afa472a961fbcb09314e81b2c3eb19cd2d9fd7527582f43a3b8fd9d3ed6d893d,2020-04-25 00:00:00.000000,0,0.1 -ca0cec7f60085f0289aaea5cbfbdd84ad2ba05148de121075dab1c636682a566,2020-04-15 00:00:00.000000,1,6.72 -0fbc9039145b6449a7765dcc00d3bd8377d93ac8cccda9f0292b5976e6d67c75,2020-04-16 00:00:00.000000,0,0.25 -9168e847861429230da331e23aa7983862033165c1ce3fe5f6d29a76c04c8a07,2020-10-04 00:00:00.000000,1,30.3 -d15e7843961ed4bfa3e08a80b882c74670e9e9347ea55325cbc1be93c7f54edc,2020-11-29 00:00:00.000000,1,3.63 -089ee14b926fabea6dd95890032d1a37e69c1011c710977af774ec3a7b5b39a6,2020-02-15 00:00:00.000000,0,0.0 -54006483f014c53f76d879c033e5589a76e0080d8ced5d818d777344eb78656f,2020-08-07 00:00:00.000000,0,0.01 -3daebbc6dfd81355f1cc9d9565ab4a4a53bda47f6117529409acc7acb55556bb,2020-04-15 00:00:00.000000,1,6.72 -eaf89db7108470dc3f6b23ea90618264b3e8f8b6145371667c4055e9c5ce9f52,2021-03-01 00:00:00.000000,0,0.0 -93411f44e228b5004bdec50f32b6c646819eebd09ba3fa26511502b23781a617,2021-07-01 00:00:00.000000,1,20.13 -87a4a78ecb6deb2dee9ddd0678d03800141864a049c99b072e1e6e7904018db7,2020-04-25 00:00:00.000000,0,0.1 -0e78437805639c14d6413de94c031fd1babdb561b7728d31ae06bfc5ff1766d4,2020-10-08 00:00:00.000000,1,10.08 -28955b1fb53203e2ff246fd2d4c3e148d4666a617469cdcc86060985682ab4bc,2020-04-16 00:00:00.000000,0,0.25 -3da6ee6699da1eb52d358aa59b8e1cf6b5d77db224b4cec0faaa540610fb3b2e,2021-07-01 00:00:00.000000,1,20.13 -5620e84be3e5141819e0d9e4ba10b782ba40e232e56352ed636dc0282161b543,2020-10-04 00:00:00.000000,1,30.3 -ff108b68b0e9bc1e5a744f80f9ef1b8575c7d041eeb3e8d2eae300347de6e7fc,2021-03-01 00:00:00.000000,0,0.0 -9e04a49e5786695116f9af28552da3083d4eeb015294b878d27053439e363cdf,2020-10-08 00:00:00.000000,1,10.08 -87c7965a1cc6c11a653b210aaef95e381b95afddf1781da3fa5b2d4b1d3097bf,2020-08-07 00:00:00.000000,0,0.01 -fc091d39524c9d4b5b11f84f9132996a94ca01c9816d2db3b866bef1b0699d91,2020-04-15 00:00:00.000000,1,6.72 -82607c98dec8f45ac84e7eae445d8da60d05706ee7405a9a53b0c914b488f1ab,2020-02-15 00:00:00.000000,0,0.0 -35a9e381b1a27567549b5f8a6f783c167ebf809f1c4d6a9e367240484d8ce281,2020-11-29 00:00:00.000000,1,3.63 -1a6d9c97798d8997f85ed9228296d533be6b47f97217709d7e2b628e21800220,2020-04-25 00:00:00.000000,0,0.1 -0b0fc3be2ee8d1d33518036b0f38402ee7bc022380a0b9653886019d38acd128,2020-10-04 00:00:00.000000,1,30.3 -74332c78b10e3ee51ac4a3c18ccc15c1b6c9807b3ca609969de5e3c361573dfa,2021-07-01 00:00:00.000000,1,20.13 -23c5910b8b10cfa86e40099cf01e5c2b36f4dd0a903f0c60e5517ea177f4d390,2020-04-16 00:00:00.000000,0,0.25 -5283f1b4e66467616feca1e0162c7d37e4e304623d6343a525553ffb436cbdfe,2020-08-07 00:00:00.000000,0,0.01 -c032851ed192d8ac0a3ad04b0ef3060b44d1f6d62f8c17414006702787c5d88b,2020-04-15 00:00:00.000000,1,6.72 -724213d95916de041564e5d39c2373585dc15855743a42a5841d849b9f3716de,2021-03-01 00:00:00.000000,0,0.0 -f7abf2a084c3668c7b90654bf01205085e5d0219ffad0564904e5c923af11523,2020-10-08 00:00:00.000000,1,10.08 -4d5e5deb0353d3a6c0b5cf97de0a23087a56796a3474ee500edbe4676c3b9716,2020-02-15 00:00:00.000000,0,0.0 -ce02d4b6d1aceeea96a562c10923d590607df6182b4a3405ad10be85b6354787,2020-11-29 00:00:00.000000,1,3.63 -1a1cf797fabe7f95836fabeca626907c77b3e6c9aff7c2290b396a238c69362e,2020-04-25 00:00:00.000000,0,0.1 -096012b7ebcaf56d1d63b2784d2b2bbdeae080d72ad6bd1b9f7018e62a3c37d0,2021-03-01 00:00:00.000000,0,0.0 -477f4b2cdd3fe2b9fdd7dfb887f98252ef26cecf13eb53289116a1344382256d,2020-04-16 00:00:00.000000,0,0.25 -9f006addc898a6458ff29db72de90b27e29302c92b9c73e33515df56290bd855,2020-08-07 00:00:00.000000,0,0.01 -dccb3c52e7c79f7033e1ea06eadf92fd90bfd7b0b5737dc0c2511a0e163872f5,2020-02-15 00:00:00.000000,0,0.0 -d1c78c9aa5dcb0991f46b25fbaaa359d7d5823ac7a2a94c4d4a31da42a26c24f,2021-07-01 00:00:00.000000,1,20.13 -f0ccd8e78b618cb55731054911af540b5496f37e94026cd20dae22363089b2e9,2020-11-29 00:00:00.000000,1,3.63 -fce86e339dc3131c489202ec3b6c8d4319c61f152b3541ba0e4141e5d5c3fac3,2020-04-15 00:00:00.000000,1,6.72 -d72a11d264e746464ed45f73e1ec058e33ad40270c79324be171932d834d11f3,2020-10-04 00:00:00.000000,1,30.3 -0b06d2ffebd5c025cf444cb95a73e1fff046569238eafd1e80f511ea2a807de3,2020-10-08 00:00:00.000000,1,10.08 -5d85be4cc5af40a7cf2c4f0818d92689c185fdea6566745ef26305d80413f483,2020-04-25 00:00:00.000000,0,0.1 -bcaf44f4041e62e142d50cad2aae2520e01247cd144d28d4ab20b758524a7217,2020-04-15 00:00:00.000000,1,6.72 -313c938e0103b56b43632b702e3e63447fab1f90a4fe890ca5abb7a6cf8830ee,2021-07-01 00:00:00.000000,1,20.13 -477d8dffaf92d265c56dca496167d71bfc1c34f443bc9a6677009963e6e99706,2020-02-15 00:00:00.000000,0,0.0 -76ba652cbd2ef1931d0546ac1c9d8f12d21c81fad272b754975a0b1561dda275,2021-03-01 00:00:00.000000,0,0.0 -96da2f8885ba92c9ca4d34bb763a3bc9e19017f0df6424956d61f45abdc7f241,2020-04-25 00:00:00.000000,0,0.1 -96bb293aaa330ef307ee004448b92b75ffdc25ade2831ed23fc60ffa97fffb7f,2020-11-29 00:00:00.000000,1,3.63 -7b2c21ead1522776414b5a256722903b465fd0c8e029005fcd865144a429da52,2020-08-07 00:00:00.000000,0,0.01 -2b4da94214015b4281ac65905270bda4eefb97e08f5b4ae2f517b424ff77bfd9,2020-10-04 00:00:00.000000,1,30.3 -bc57590a33fe355e174396df60ac503f8e99763776307dcd8b9ce8dfe3c47a2a,2020-10-08 00:00:00.000000,1,10.08 -edbad80a93adb5830afc3fccfe0e7c27a81359b59bb2a8c277f95d4adec7c389,2020-04-16 00:00:00.000000,0,0.25 -af5422f824076084bed9b8a09086ac59f0ed8c74eea7b189d2809b198ba1f6ee,2020-08-07 00:00:00.000000,0,0.01 -f391e014b2ee3a42955272b8fc78634de1d5833e0cacb412b180376f9c756e49,2021-07-01 00:00:00.000000,1,20.13 -7a84ae249fa744b8c1acb6c5247c2cf443e31870aa7217f4a9cd9b157dbd54ef,2020-04-15 00:00:00.000000,1,6.72 -7a9b1b9dd2e433fc1fc962c38ad571bf1ebb49cb365bfdfb2c36d3f059d6fdd5,2020-04-16 00:00:00.000000,0,0.25 -10e4e7caf8b078429bb1c80b1a10118ac6f963eff098fd25a66c78862ae5ebce,2020-11-29 00:00:00.000000,1,3.63 -f6543e952ecb93fba1fa65c547c5073a5d25aba46611fe6cc76c1d2645deb3ff,2020-02-15 00:00:00.000000,0,0.0 -ab16ce326c754df41ed00df6f64f7073dcac3e2986bbf8b2a1ce4549b189a0fb,2020-10-04 00:00:00.000000,1,30.3 -43d244581aa23a744de9d775979165eb226a80e2cce6c0d0885412c9b6a0dbdf,2021-03-01 00:00:00.000000,0,0.0 -a807c0dc0a5b5ea4a70b12ba52ead3d30922e1eac15c396ccfdea715a2f15396,2020-04-25 00:00:00.000000,0,0.1 -10716564f7bea47036cae9a39adc7dcd395850714228939a2b508d4e57d61824,2020-10-08 00:00:00.000000,1,10.08 -209eb5f20ab018ff6f1e42b98e5b57921aa4e2b7a7b683de32458b7153720a28,2020-04-16 00:00:00.000000,0,0.25 -93c3755d0c9030cd90f0e6eae6870a8497730f89b7fd0cf231adef048d2b524d,2020-04-15 00:00:00.000000,1,6.72 -130790feced08212eed7d1490dd4d7abf138543be61a4744a03f69ecb9609764,2021-07-01 00:00:00.000000,1,20.13 -5c344ba7044815dd03c3448028a43e5b9c16074cb5a6a19c7ae86165c149735f,2020-10-04 00:00:00.000000,1,30.3 -a5af16fb4a4856cc3f8530b5214830a85103fb5a515b39b93e652c0a142363ee,2020-10-08 00:00:00.000000,1,10.08 -33eb7e4ae43f9873d9c84c0f07b055946b24a71ca27daa60acbbf95b44c7c5e0,2020-11-29 00:00:00.000000,1,3.63 -501a4e61aa4f7737df0305124a39119b79a6449d2bfcc6f026da0197af2ae60b,2021-03-01 00:00:00.000000,0,0.0 -cef5838d118dccd9de488f16a934cf10a82303577b62888b7ff6f84114827e58,2020-08-07 00:00:00.000000,0,0.01 -7f3ee9fe1fbf452b0c242614e1cad18b6dce034e5bc80763dff6332e872ad2ff,2020-04-25 00:00:00.000000,0,0.1 -fd0f7e53c5b02b688a57ee37f3d52065cb168a7b9fd5a3abd93d37e1559fbd30,2020-02-15 00:00:00.000000,0,0.0 -7125e777a6b199fc4e8c2a0d024215e393c06bf775c217a5f2d8d1a6a7c98d96,2020-04-16 00:00:00.000000,0,0.25 -ac93f3a0fee5afa2d9399d5d0f257dc92bbde89b1e48452e1bfac3c5c1dc99db,2021-07-01 00:00:00.000000,1,20.13 -55e8ab098d48f8be5578e3d3708496d152a27c4c5713586a8d321ed84c239827,2020-04-25 00:00:00.000000,0,0.1 -db9351a297a7362b3c913ac8de77bd9a1ccc0d61bada939db15a315f5e8113fc,2020-10-08 00:00:00.000000,1,10.08 -3d34f102d1708fc5edd3111144f78764b4d7b745cb5450815780545495df1e68,2021-03-01 00:00:00.000000,0,0.0 -6cb6d4b2fa122bf8bd63280061e4a230565fdec3ce03268caa2f48ccd931c691,2020-02-15 00:00:00.000000,0,0.0 -19e68d9fe08f7c4ac18948bf437400f955359b1cf21a86544342427695c3c938,2020-04-15 00:00:00.000000,1,6.72 -de498b9901677f58da56b38a515db0a6a3b93840bde5fd0b74437502163e9fb1,2020-10-04 00:00:00.000000,1,30.3 -12e967ca0f368d0d8511518c58c6929146650bb1babce4448263e67722dd0161,2020-08-07 00:00:00.000000,0,0.01 -7ffc2066e20c16e95c0b41167e334afe57ff4991b21c8d581611a3f516a786a9,2020-11-29 00:00:00.000000,1,3.63 -6ffbae9aaff664bd4739f51a6c7883a2c3ce74e9227a6aff728d0d57ad56f234,2020-10-08 00:00:00.000000,1,10.08 -929f003731a97f915d11893c6652bbc7db0b36118eb4357cc721f7f68aeb25ff,2021-07-01 00:00:00.000000,1,20.13 -7fc81a57656ec055615121454cb5343aaf3db93c762fe310d976e5fe8d05e66d,2020-02-15 00:00:00.000000,0,0.0 -f0cbba2470c7c8706fe77e8d88e947ed8c33100409ffb51ae1af99af7d3077a8,2020-04-15 00:00:00.000000,1,6.72 -3097fc802d49355a0a256d4b07ab9f7257fcf35077cdb8133d59f607fedb229e,2020-08-07 00:00:00.000000,0,0.01 -c0cc3b36d8f848d56fbf95b8259dd6f3bf80707e436233a6bfc2667b49e28c8a,2020-04-16 00:00:00.000000,0,0.25 -22cdd352056c42ac1a6d01d6bd4f8e8ed1c27fb9addc6e500a59f88b57e4612a,2020-10-04 00:00:00.000000,1,30.3 -8e46760943785a93c7bbfd1b0e733299b05f4d9fe575cf23087da310db486f7a,2020-11-29 00:00:00.000000,1,3.63 -12bdc9eedc0abc0dc0f5a4c36836d8bac9a5b78de2e10a4747859a305f6d4535,2021-03-01 00:00:00.000000,0,0.0 -02f99d2002c703f1669e358989f1663e1e38e96297dcb3bb70fb67b0d74fb877,2020-04-25 00:00:00.000000,0,0.1 -eb0c9cdc0862653468dacc6a876a0c40e9d642c50f798bae1162fe27f18d482c,2020-08-07 00:00:00.000000,0,0.01 -ee9d527a0a6108477fc5c98cf2a00f65d38c8e8508c4d17c1c11b2441c78a2ec,2020-02-15 00:00:00.000000,0,0.0 -c62ce8b4e927f02f91742ab99d269a17e05d47f12b2275cec9d353e711ddc218,2020-11-29 00:00:00.000000,1,3.63 -8f97d9164b8fa131f0361abbe49fe706d3abfd77663ed7939ee20d361a0c6a67,2020-04-16 00:00:00.000000,0,0.25 -8b6cd7c429e83373dbd412f43d7422c0c4a127d93d0f2ad15909f0c2a3e7b320,2021-07-01 00:00:00.000000,1,20.13 -80c39b8ca01cdfda142928ba683d503173017d52bfafacb118c62e34ec9bc693,2020-04-25 00:00:00.000000,0,0.1 -7c4e3e519f7e8481ec5cdb09dd1e35a1a79860ea1d440673c9aecb9c9057148a,2020-04-15 00:00:00.000000,1,6.72 -d2e655334ee2e4841be477484381df1617a8b891adc04cbc536cc1bed229d713,2020-10-08 00:00:00.000000,1,10.08 -5b7c4e75c9485e2e988dce7c57bd9e9915a74217914e7d7a1f13955367db0899,2021-03-01 00:00:00.000000,0,0.0 -8a9a02d73aeefd97306a08c30969a9e8d5ef03960978a1c5db4447558d40f689,2020-10-04 00:00:00.000000,1,30.3 -062f50753b9095ee2eff40f888d93e61f2ffeb661bb126d15229f03e0463bdb4,2020-10-04 00:00:00.000000,1,30.3 -b543b2a3edcc48cc0f9d7159522673384b34fbce51920d75df4d0c184dd89b18,2020-04-25 00:00:00.000000,0,0.1 -46f9d22816179479bd27b0036854788327eedf3f6f5d8dcb866b976e17cc9715,2021-07-01 00:00:00.000000,1,20.13 -3d734d729009b74c011651eb24b06a74151fb99b8da5110295da8bb77ec3f92d,2020-08-07 00:00:00.000000,0,0.01 -c63efd61a70d0f6b7e5de2b9e0c36adfae6d760613271650c71c90df16c71344,2020-04-16 00:00:00.000000,0,0.25 -a73ab888363736220eb589458721088241ee10059b1f5898a13fe9c2e14fcd8c,2020-02-15 00:00:00.000000,0,0.0 -30e26cef13a6dbbf0e3035f8c16f55670f4e468e97ac7dad43798621da636abf,2020-11-29 00:00:00.000000,1,3.63 -f1916530dae6514fd8ba7c17eadab5ba6739cbd9190b7f967adbe8744748c539,2020-10-08 00:00:00.000000,1,10.08 -4f97f2eebf92cde58c103466712fa2f65b10d06ff8f1934d78ff592fa0575e27,2021-03-01 00:00:00.000000,0,0.0 -52efd2aad05d27e3eac3665b82f2bffa6da52351ce871c1c28e4ba69b40ea3e6,2020-04-15 00:00:00.000000,1,6.72 -28096b238fafbfd5abdb8ddf4e7f5a2c67196cfd8b5d49a196012d0269a2189f,2020-04-16 00:00:00.000000,0,0.25 -1de4842b42fa3db35fc4cf058a02acb057a8df02d0d3cdc96e686551aee25a39,2020-10-04 00:00:00.000000,1,30.3 -3055e0d8130c7a197bc6e020afe9bea1edef31f33b720cc326dd404d8e3f82d5,2020-11-29 00:00:00.000000,1,3.63 -f44b7809595e5ebe3bb4d65e0cdd1ebbb41b29f5ab8fd73b2b6aef8e8691a62e,2020-02-15 00:00:00.000000,0,0.0 -3bd625f07792e885b5a4b5f0b9005a5b53a56a610efa2c27cd923aed53a6a4b5,2020-08-07 00:00:00.000000,0,0.01 -000f21ac06aceb9cdd0575e82d0d85fc39bed0a7a1d71970ba1641666a44f530,2021-03-01 00:00:00.000000,0,0.0 -be4b2f45069c180ef309521f6770146920df18e69165c577dc7ff8e5a7c34465,2020-10-08 00:00:00.000000,1,10.08 -5e968ce47ce4a17e3823c29332a39d049a8d0afb08d157eb6224625f92671a51,2020-04-15 00:00:00.000000,1,6.72 -a829c72c42755e384141ad8f163e4965ef5c9f8f0e07378c1d05a7222af0dd80,2020-04-25 00:00:00.000000,0,0.1 -e6f095e985e6762f1538b47ff1abda58dbe8ce088b16d8a5744fc179e9a2fc16,2021-07-01 00:00:00.000000,1,20.13 -d7be6321b3d940822dd195bcc86cca411cd9d95f82301d04b84119671575a2d9,2020-10-04 00:00:00.000000,1,30.3 -46db1ca7f3598c26c3e6c8d99e3ed95d2b1c76db040b8f8cd29af723ee086077,2021-07-01 00:00:00.000000,1,20.13 -64d94c866dffad6dab67498f5ed9cdf32a6e747e2c17e58d2535f549f7976cb0,2020-08-07 00:00:00.000000,0,0.01 -eaa1938017b2d55e02387d0837e1b56bc124ae8a17624e10e366bae6c4b9c834,2020-04-25 00:00:00.000000,0,0.1 -c49b60838c5c6ddf34806b6b3f56b51516842cb1cead54a903f55d9c6d73c76d,2020-04-16 00:00:00.000000,0,0.25 -62f6d46c48c7d9ff3d09a408d0ec880f167a5dc9c8fd343a4e56e96318349583,2020-10-08 00:00:00.000000,1,10.08 -c62510afc57db491f9f993387b76dd9a7d08f09c01326953904b6586c19c4b8a,2020-11-29 00:00:00.000000,1,3.63 -1bde41ce9b4fccbf7dde0dc315d1aea5fa03f78c56feb1ba744be9e37fab2dce,2020-02-15 00:00:00.000000,0,0.0 -91d95f436356bc3df44d44406a139351debd062823258c8cdc67e8dadb9df256,2021-03-01 00:00:00.000000,0,0.0 -bdc5d8a48c23897906b09a9a3680bd2e9c8b3121edbda36f949800f0959c8d55,2020-04-15 00:00:00.000000,1,6.72 -fa88d374b9cf5e059fad4a2fe406feae4c49cbf4803083ec521d3c75ee22557c,2020-02-15 00:00:00.000000,0,0.0 -6a97982dccf77dd3dafa27fcbdf75c017301f730ba186b1d9e8ea212eee73f54,2020-04-15 00:00:00.000000,1,6.72 -a2cc73deb383356e2c51d5616631e0071bdf5faba44812156af3526ebc6fba69,2020-08-07 00:00:00.000000,0,0.01 -533eb9a8909f614c351b65e6b8aba1ffc2890735ce9a8a8936e17c05335dfa47,2021-03-01 00:00:00.000000,0,0.0 -43f64dc77762f69f9f52d5f70b53170679cb9abfc688f4cf77bdfc8077f022bc,2020-04-16 00:00:00.000000,0,0.25 -2f84035610deb9378036cb7a5498b885486cf8e0acfde755081b3484bcff8eed,2020-10-08 00:00:00.000000,1,10.08 -c8c9cad7b920b50f713830b8dc55f59fffbbad98335d9f30e0bca8fab5dfeedd,2020-10-04 00:00:00.000000,1,30.3 -5e61b431f3823da05836b2139f9a811c3cc078153ba1853b44519879b7d64af4,2020-04-25 00:00:00.000000,0,0.1 -b123f95a5578ac2ffb571adb3fd60b023e925128d1ef5bf917a73a8fa3d136a4,2020-11-29 00:00:00.000000,1,3.63 -39e18a493b913441c12fac89a09f24958e5da0ff6f3300c80c5359f36e3223aa,2021-07-01 00:00:00.000000,1,20.13 -a5ccb1c538e34663a658b1be28b16455ee5285efb10e6f1d4caba1f69ec9782b,2020-02-15 00:00:00.000000,0,0.0 -9284d61c8c2ba62b951d501629da26c029eb067c27241a0e4e18d98f702c752e,2020-11-29 00:00:00.000000,1,3.63 -1bee34b6262a7777362f96e3dd5635764e820f97bab9772f492397774a38d74a,2020-04-25 00:00:00.000000,0,0.1 -28ac593455c7f44e49e0e5fb2b130739cd8aed87c15e4d79eb2fc69c47649360,2020-10-08 00:00:00.000000,1,10.08 -b9dafef03fc90f65d4f9efd71ce73bb7a024381eea09b5f909a977bd0d8d1fa4,2020-04-16 00:00:00.000000,0,0.25 -953815689985e39a762284426cd5884050ea56b7001aa332b18d44d8df0ba478,2021-07-01 00:00:00.000000,1,20.13 -c4ed8e89485d94f74489c8120a6734bb7a9ebdd906328e22a7d89a79be6513cf,2020-04-15 00:00:00.000000,1,6.72 -4779bc407343d916c5a4f6a996174046419bdd87ce6c609054dc8788b3dfc233,2021-03-01 00:00:00.000000,0,0.0 -b50d427a71ef5f98a1bdd4335b71d381dc6a3e937d899f87b92af24121bb9579,2020-08-07 00:00:00.000000,0,0.01 -728bf33aab1d32d4dca8fcc6a020d8baeb6b9910104541aa68c2d408154734fc,2020-10-04 00:00:00.000000,1,30.3 -7e07ae1a0cd3da38f7e619aacacec577992e62944683b47726c201890e98d2a3,2020-08-07 00:00:00.000000,0,0.01 -b312d5fbcfab403a28f259ab3d2b333ae2412727528b63ae3c032be535410ed5,2020-04-16 00:00:00.000000,0,0.25 -b5a9ede9a93528be3e12c5665c179c2dc0e2648aa6f1b1650f3715e56dad8bec,2020-11-29 00:00:00.000000,1,3.63 -1a5659493256d9eb296edea686b14dfd94116d21c8ab25ec0ca46a46f617067e,2020-02-15 00:00:00.000000,0,0.0 -51054b8a03281fd02034378a5570ae0c970fb1d5d64246e0eb981481c228c108,2020-04-15 00:00:00.000000,1,6.72 -85e36899399df701301f6741ffab57962a14326584b6f082ae0e87d90e492fd4,2021-03-01 00:00:00.000000,0,0.0 -df156e8465ff477c90a1393a0ab5947e448ed696ac0d3ea982480f5c237a29e1,2021-07-01 00:00:00.000000,1,20.13 -73c2e083e4e933fc3ba76abc2bd6aea80c838c172e7db94ea473c9be4e07b2d7,2020-10-04 00:00:00.000000,1,30.3 -e0e3fcdfb0803ca538910c12042cb6232acb9e3c6db8908524aea6ed560e5334,2020-10-08 00:00:00.000000,1,10.08 -bff3992c1d4f9aa5a7945023e32989d83c60ae06b21fd37904de6dbfd67694a3,2020-04-25 00:00:00.000000,0,0.1 -2f74d62c5e51079f4e0db990f3a44137f37b268c0f159b661420dbf203df0373,2020-04-25 00:00:00.000000,0,0.1 -6e8d1a943f129896827384a699a11a6bc83d13ab6b8667763df327c8b2a9b500,2020-10-04 00:00:00.000000,1,30.3 -ee1a7173778d6b708b4e532f6b997fcd54053fada5b6315886211257c04aed2d,2020-08-07 00:00:00.000000,0,0.01 -a8443b1426652157edc23a7c54fb7ad2c7643b5d8c431ceb54bc29341faf7e7c,2021-07-01 00:00:00.000000,1,20.13 -b064bdba191139689139124101c1c39926326a9b221bd8dfcd603f065c3dc3b8,2021-03-01 00:00:00.000000,0,0.0 -f53f2fb9b99180ea02b1f345b6c862e6bdde16e3b82a6886be0234d09a0e1645,2020-04-15 00:00:00.000000,1,6.72 -ffd560d182369b08a8b3ed35cfa5ee3cc50b5b5f093ece3139181709813896c3,2020-11-29 00:00:00.000000,1,3.63 -21eb478c997305f06e5e0d043d3ec5acc63a85938da69e14f239f34a8348fc54,2020-10-08 00:00:00.000000,1,10.08 -aaf57ee8c549ef3df8a07abf3a0df0f028e402399ad27aaec710c17aa78d408f,2020-02-15 00:00:00.000000,0,0.0 -5904c93073387f898f4f339094d4bad7043b6440519debb01b2867939661ded2,2020-04-16 00:00:00.000000,0,0.25 -dae40fcfed8e9ce405c3e0e207ba4781acb0a6a55a527f591b6b2b442f8cbbc5,2020-10-04 00:00:00.000000,1,30.3 -68e1e435db6ab43fd38ae5df6c6a03b50a5c9c6290f4691e1b670a786c0ebe12,2020-04-25 00:00:00.000000,0,0.1 -e133553ea138da0438f229cc2273c76d2e44c23a1dcc98a8e7a0d1780a3a65cc,2020-08-07 00:00:00.000000,0,0.01 -6d094db49a6e224278dd87d28835b66af6d2db257522e22c105b829cf368af98,2020-04-15 00:00:00.000000,1,6.72 -828bb918957379a792e06807bcd291daf3c1efaa51325f32d2fc7e3280f1b983,2020-02-15 00:00:00.000000,0,0.0 -fb335e8fd0f8aed3eb6ffedd7fca08259d3f25bb14066536c978fbc96c4f75fd,2020-04-16 00:00:00.000000,0,0.25 -4d0198f4905a08812518045d62dd366a485d24e9e070ce9fc9a34abf4e5af6bd,2020-10-08 00:00:00.000000,1,10.08 -b1e92fe0fa7edab2161fa5090a65e065425f6ead93e1152013b1ba77b471494c,2021-07-01 00:00:00.000000,1,20.13 -3033cf66fa728da7a2940d823aad8118fb40687ebfad1147c313478b2baafe4b,2020-11-29 00:00:00.000000,1,3.63 -5538e771949ffec150f6e8260b2e3801236c7373ed62c22a3f82dc0071265cc4,2021-03-01 00:00:00.000000,0,0.0 -8a8b2d66735ed03d0841027e42d38806eedd8e5bd5da54270f958a55d509091f,2020-02-15 00:00:00.000000,0,0.0 -ad8fa913d25b3970c6efa8ca504da8ba670ce2a9cf012d399b71924deb483d3f,2020-10-04 00:00:00.000000,1,30.3 -6953c2a883537cc80135516935de542987c2cd76f94d8cbf2ad004d7bf4c6195,2021-07-01 00:00:00.000000,1,20.13 -b471aeea26820f379ea5ca12029f2788ef4eee3f833e6633e5dd4bccda9e0d3f,2020-04-25 00:00:00.000000,0,0.1 -4652614c4d8778e57a970722f142d832798c133a14b1232a92ffe26a0e98919e,2020-08-07 00:00:00.000000,0,0.01 -fbb2a73b0bacf3953186a92029e3e9b130373a9ff1449407e6125b3481f4f0ca,2021-03-01 00:00:00.000000,0,0.0 -46d4c7c3285e2d04cbf9d55aa79142a277c48372a71c1455971363f2b8f8ed67,2020-04-15 00:00:00.000000,1,6.72 -debc96817a3523d6f3cde58b00abaf6480477744625d0b1f4e406e644ae1763b,2020-11-29 00:00:00.000000,1,3.63 -e6d3cee8c029277da8d978deb058e43540a640414845b2f1c9ffe75f64f8d8be,2020-04-16 00:00:00.000000,0,0.25 -7f5642cd0c851c48e5dfbd492e1cdee9a93cba81b38677376437c6587b3af95e,2020-10-08 00:00:00.000000,1,10.08 -eef79a6a04f78a54832c8891ed83f4863850ec0a7d9807e9b6ac208d23a1e59c,2021-07-01 00:00:00.000000,1,20.13 -084917af148384c1e8396addcec2fca2a9f2c3918cad9676e12cdaad7dc7dfb2,2020-04-16 00:00:00.000000,0,0.25 -b22eb34537f6f6753da6e0dc05713be0ccc35ef12dae0f6bf19b5206d373af33,2020-08-07 00:00:00.000000,0,0.01 -835cc509d6d86a3a287de70581b43415aee21309f2dfd9533df5f563f37e3b22,2020-11-29 00:00:00.000000,1,3.63 -2f1d593cd98cb5bf81eb9d880221122342784ac5fb7f41f2b137006bafc92e39,2021-03-01 00:00:00.000000,0,0.0 -339d9d13edbaa267cb977f39e0a9da194e07c1dc9ec3a2567eec6f45776e3018,2020-02-15 00:00:00.000000,0,0.0 -40a7ae9a07a94bf510c89d41b034787f768cc960e7471746dec613c8c6287c11,2020-10-04 00:00:00.000000,1,30.3 -d6420a4ee44bc345c7bf3a2efbab98e08a4727016df8e8d6bb8375d0a23a8c72,2020-04-25 00:00:00.000000,0,0.1 -16b30490a644117a249c2018f31f7d29d2848c8bd43956a895f9bcd649f3ff9c,2020-10-08 00:00:00.000000,1,10.08 -ce7d916f3b5c6edb421222b8e3b4c69f21bcdd5c38bac9e8a2751f55d865b9dc,2020-04-15 00:00:00.000000,1,6.72 -98964da49d0a98402ed3d2d37b3350cf0aa346f522f8f1feb6b01cd680bc9455,2020-04-25 00:00:00.000000,0,0.1 -3658d7fa3c43456f3c9c87db0490e872039516e6375336254560167cc3db2ea2,2020-10-04 00:00:00.000000,1,30.3 -c24cf8d31cf7e596ba052b7ed00f169b1c2bafb941b01e277910a1c8263c3e89,2021-07-01 00:00:00.000000,1,20.13 -51cfe39433c33d8144a4d4663e3834ca238ce78c5e38335c96a9301c5960ac0e,2020-08-07 00:00:00.000000,0,0.01 -0aa598c735f77296910c9b61658e9411d38061dc817b9e35b5ea4867d83f7603,2020-10-08 00:00:00.000000,1,10.08 -3cb65cad26f0a517866e06dcba59afa4a5eadf832404e0e17c707b928825c144,2020-04-15 00:00:00.000000,1,6.72 -3837e1aa083f578c9179bdd9e3b2b0ebe980361d800f99637c7b331c29a26e87,2020-02-15 00:00:00.000000,0,0.0 -759b87b87ba0c0c701d14eb2e6e31560929e93591537818856d079634ee1bb68,2020-04-16 00:00:00.000000,0,0.25 -8590ac062555493444893ec5871609dffedf8cf684d93f7533bc52ffc5611dc8,2020-11-29 00:00:00.000000,1,3.63 -38879b6376fbabdc8fbfb85f6b11a296aca6de14093a54881b73528b62848d8c,2021-03-01 00:00:00.000000,0,0.0 -aaf5060b9517ba4f550ee34a7f3ed7b05b6e5100a523d3e0aae05bf4f8f7ec34,2020-02-15 00:00:00.000000,0,0.0 -dff17949eb4f9ecd9361bb97c38a9404f3d034565e5d4395f073c0c367b5ea0b,2020-04-15 00:00:00.000000,1,6.72 -fbe10beedf9d29cf53137ba38859ffd1dbe7642cedb7ef0a102a3ab109b47842,2021-03-01 00:00:00.000000,0,0.0 -72805ff7c0f210f3aa6e66f3f208974437611c64a2393f4e7edfef47d8e140a7,2021-07-01 00:00:00.000000,1,20.13 -70d432707ec2478670d5b36a95d5b1000cb9c3ef6ea1fb7be14b060775723d03,2020-11-29 00:00:00.000000,1,3.63 -2c3f699f4b5f7734ed802c0b52f27f670772ddff9d4b875c6d1b7c2f09f728a0,2020-10-04 00:00:00.000000,1,30.3 -55c8079ac96c6a4f6a94e3460c79e4006d62374cce6e9fc8b281938a3abc7627,2020-04-16 00:00:00.000000,0,0.25 -ba9c5622470525f1bbed5f36077631df5089db3ad0d79e9782078a681c0dac09,2020-08-07 00:00:00.000000,0,0.01 -926a7fc32c08e49183ba9969eb0fe284d7572a79934f3da12dcb26458777091d,2020-04-25 00:00:00.000000,0,0.1 -fe50b64954720ccb97ff36a6bd105b6c6018565eea17352a8e1c095204ff4e62,2020-10-08 00:00:00.000000,1,10.08 -25b7c81e770034aeda70db74af0fb638beca992d2a535641e6313f38b9665016,2021-07-01 00:00:00.000000,1,20.13 -c0d2d188feaa1562d9a1ca041b28896773ad5cf55793d9c056a2ece46eb3667a,2021-03-01 00:00:00.000000,0,0.0 -40fb7164e459a38813f304e3b45db2b074be149818924e46fdc49cc38a3e4955,2020-02-15 00:00:00.000000,0,0.0 -8c004c94eb689b3765ccb51f03e1aa3392f46c6852196c8602b7ee6fc0c9d7de,2020-04-15 00:00:00.000000,1,6.72 -abbb9233cee3e720b2a86acf4ad04e51a670a7e762f301f0fc5b64b8794c30cd,2020-10-08 00:00:00.000000,1,10.08 -3292bef42975c0ab63a2e9ab72143d6e2658dbd6e81a28cb9cf7618ff906c978,2020-10-04 00:00:00.000000,1,30.3 -864995ea35b82212a9a2d456a3f89833f24651c4e5ebc21c18476a9afb065035,2020-04-16 00:00:00.000000,0,0.25 -462c39f8e9bbf461369150222f7493055e67079106a1a721824544b113519bf3,2020-08-07 00:00:00.000000,0,0.01 -83cf8b609de60036a8277bd0e96135751bbc07eb234256d4b65b893360651bf2,2020-11-29 00:00:00.000000,1,3.63 -40510175845988f13f6162ed8526f0b09f73384467fa855e1e79b44a56562a58,2020-04-25 00:00:00.000000,0,0.1 -fe675fe7aaee830b6fed09b64e034f84dcbdaeb429d9cccd4ebb90e15af8dd71,2020-08-07 00:00:00.000000,0,0.01 -b281bc2c616cb3c3a097215fdc9397ae87e6e06b156cc34e656be7a1a9ce8839,2020-04-16 00:00:00.000000,0,0.25 -8c9a013ab70c0434313e3e881c310b9ff24aff1075255ceede3f2c239c231623,2020-10-08 00:00:00.000000,1,10.08 -75992a5ac67ff644d3063976c2effd10bdd93fcc109798e3d5c1acf2e530d01a,2021-03-01 00:00:00.000000,0,0.0 -7f861bcee185de001377d79e08af62e94b1e7718e2470e08520c917f8d953602,2020-02-15 00:00:00.000000,0,0.0 -478c4ffb1cbcea37956a748e6c19d8eadd0a47e86f5e308d26cad39453b5d1ab,2020-04-15 00:00:00.000000,1,6.72 -2c8b871e52d4e5f5db5ff84a82a45327e20df77edef961c4b6fa0e9c3d97ce5b,2020-11-29 00:00:00.000000,1,3.63 -9aaf689fbcdfe9f64a071f9cbe28ae44193fa218e72af24456f44bed64583b4d,2020-04-25 00:00:00.000000,0,0.1 -6ad4a6b1e5ea5569795e516d71909e0ce4809d9dc983d2c219144f684f816e12,2020-10-04 00:00:00.000000,1,30.3 -7a5df5ffa0dec2228d90b8d0a0f1b0767b748b0a41314c123075b8289e4e053f,2021-07-01 00:00:00.000000,1,20.13 -3dd9c0995d54c0abd51a90f1d57b1ce77bc885fc8a7cea52dcad3c2540dda5ee,2021-07-01 00:00:00.000000,1,20.13 -165940940a02a187e4463ff467090930038c5af8fc26107bf301e714f599a1da,2020-04-15 00:00:00.000000,1,6.72 -2ec42bc1f3e672fc1cf7fdcfc23246415dcf20f03c0d4a5bbbd92a185708f5b7,2020-10-04 00:00:00.000000,1,30.3 -df4865fca1f159162557359ef967f9502087f57527b0e030e139933e54f3061e,2020-11-29 00:00:00.000000,1,3.63 -9553627933b214db60798fe40d2b4f8497781d024f53d62dc1b12469b7d53784,2020-02-15 00:00:00.000000,0,0.0 -ef32cc5c2b7c62093d3ec4844b36a02b08bb83eee2efa6b6b5e85ad605790192,2020-10-08 00:00:00.000000,1,10.08 -b0ab628c9e14621846c58b4eb35060ef3885253a457d2d76136716d4850bad45,2020-04-25 00:00:00.000000,0,0.1 -9989a37538faecc495bbe774b30fb447a1582b8f1bc14ac88dfd84996a7b799a,2021-03-01 00:00:00.000000,0,0.0 -61ab550f4c85a975cd46f8606ede483d8ee720a76f627773de1bc1dd8ce5fb35,2020-08-07 00:00:00.000000,0,0.01 -f296867839c8befafed32b55a7c11ab4ad14387d2434b970a55237d537bc9353,2020-04-16 00:00:00.000000,0,0.25 -cdad86ca9450d1c143675a8436131cabaf55905c114fa4524bf6a9ec5662cad7,2020-08-07 00:00:00.000000,0,0.01 -f00f2e7bca65e9f8409fdb3bcddfa031664224255d7bd2f6b3de8ff11ababe20,2020-10-04 00:00:00.000000,1,30.3 -6629ddae3736e894e89cb4a1300a9d2c5c0fad418f8ea06a341b81f2a98bb491,2021-07-01 00:00:00.000000,1,20.13 -e39eef82f61b21e2e7f762fcc4307358f165757f2e77ec855d6992f7e0191932,2020-02-15 00:00:00.000000,0,0.0 -46372791018924b8cbc444334300f85a211d2f29a56f2bb4890780b5983fc201,2020-04-16 00:00:00.000000,0,0.25 -582c0168ba17eac49642bc85ae623204069e8d6ea06cf45af11e7de46ea31d18,2020-04-15 00:00:00.000000,1,6.72 -60f256c7ccbc748036024fa0440e45fe1574db20a874e4041a16faf0105a01ff,2020-11-29 00:00:00.000000,1,3.63 -a73060afb61efe1b7c817645d00c342df02407f65435a64c88d251d56150ff42,2020-04-25 00:00:00.000000,0,0.1 -d9a5223b761c375d1263e6e57ebec42d3e0fe3f6f283488d2eb204fb6ff17ee5,2020-10-08 00:00:00.000000,1,10.08 -2f1987bf98c09d2f5d2a23a6ae29fa53b9aec8f07ed1330bd439122f5a1a2c2c,2021-03-01 00:00:00.000000,0,0.0 -3e34b5dc434bcf3186f089d362691cfac1b17231601f2f402dc79015be878d83,2021-07-01 00:00:00.000000,1,20.13 -340ab11db8d1a7435cb4b4a0492a9eee7b8e388e3e4a1714bcd3b69df3d8f1e1,2020-04-16 00:00:00.000000,0,0.25 -f8b7291025863577c250b562e8aa0d7a70387bc67029915cd5c2dfda40a9e055,2020-08-07 00:00:00.000000,0,0.01 -6719009a76851c4bed2fcdea10b635c1bd58bf12af0c1fea3a470a87d3ee6995,2020-10-08 00:00:00.000000,1,10.08 -f46733e1619957ff5bb51ea0272a2d8d73376cabd24f44461061c2caca2430aa,2020-04-15 00:00:00.000000,1,6.72 -56cc29cee9e859a5314952b8184da882e2482d7bc17234b4ca333bfffe5f74f3,2020-02-15 00:00:00.000000,0,0.0 -920c37d6464a8f20e8930c1980560dfd8ab7183334a20fa9447ecd5edb7a83b8,2021-03-01 00:00:00.000000,0,0.0 -0c1c43111448b131d65b3b380041de26f2edd6264ee1c371184f54d26ab53365,2020-11-29 00:00:00.000000,1,3.63 -00037f39cf870a1f49129f9c82d935665d352ffd25ea3296208f6f7b16fd654f,2020-10-04 00:00:00.000000,1,30.3 -0d21ae129a64e1d19e4a94dfca3a67c777e17374e9d4ca2f74b65647a88119ea,2020-04-25 00:00:00.000000,0,0.1 -8c6c42f379f08f03b79653a3230abd5e8079999435030fd8ca703ae35fe9b37a,2021-07-01 00:00:00.000000,1,20.13 -216da54b5931a6d37cca8e29953361fe02c680bbd8b482343f508e32e8e9cc3b,2020-04-16 00:00:00.000000,0,0.25 -c0aa4a0be7ba28399b09a68835a21755f442e25f8e0971b1d1ea3a6c749f0385,2020-10-08 00:00:00.000000,1,10.08 -a0a531122de465614efef1078901475b2d78b72b13d67968bd2bb7bd8558ae67,2020-10-04 00:00:00.000000,1,30.3 -40794500a2845c943a0f4910461d9c39868a2930f689d2dfa9659625aa7a15cc,2020-04-15 00:00:00.000000,1,6.72 -6db44caad5c968a5ec334024daa615d29998fa79f82797cc12141871d0ffbd7b,2020-04-25 00:00:00.000000,0,0.1 -025ca19d7b07d7f554fd7cd060b628e628d0f607afa3a6fde17c4488f35716d2,2020-02-15 00:00:00.000000,0,0.0 -6d6ae523edc27b235030584adf12a890bf2b3c209da5b11b97d6b58c3ed66f60,2021-03-01 00:00:00.000000,0,0.0 -0c62cc42d6479a691f03083654ab6a7a84229ab156c948ba8d3b6c79ddd95536,2020-08-07 00:00:00.000000,0,0.01 -ffa6059b954a4602a9fa1518d10ca6163bce3f9d4bd3ee51c860eb6c2da16675,2020-11-29 00:00:00.000000,1,3.63 -11382b8de6b4b042f25bf021335d31c09f2f23ae80ca4dafc63214691dfb3dae,2021-03-01 00:00:00.000000,0,0.0 -d8b5e2791d0d1cee319ee3def0e4631852bfcb329e06feb1c6ee6add251509ae,2021-07-01 00:00:00.000000,1,20.13 -285b71922aaa01d870483d3b4f59e4a61c2057e1476854a810f387a1d2317806,2020-10-08 00:00:00.000000,1,10.08 -7d7179c146d0d6af4ebd304ab799a718fe949a8dcd660cd6d12fb97915f9ab0a,2020-10-04 00:00:00.000000,1,30.3 -02abf8fa7d9c4db035df33acba2dcd495ae9af91152ea9a135533cb747eb3afc,2020-04-16 00:00:00.000000,0,0.25 -e8c5e943ad4fd9d115c2baacd110acddee7f66ec24aa177efa6780f5641ce277,2020-02-15 00:00:00.000000,0,0.0 -b910260d6ccd1fedb9919e9974c4b1eacf7ff1e3a4643c05cf423de2f221c06a,2020-04-25 00:00:00.000000,0,0.1 -fb5316204aa75301303e70a2e9555cf9cbb1457356a041dd58a88e003aca9142,2020-11-29 00:00:00.000000,1,3.63 -12051e9967d26fabc3b319b06be4bb57b504c40ac47edc24b5b335f64e71b4e1,2020-04-15 00:00:00.000000,1,6.72 -8dfd13f4376053626e97eb7221d469013cae9bc031027e64f0db2ec114f8ffd9,2020-08-07 00:00:00.000000,0,0.01 -5d9e09b09389f1e4c8268e5464bfce4c9ea6a516f9c84b2f49e313427421ef3d,2020-04-16 00:00:00.000000,0,0.25 -ae4def1ecaae8be24edf7f6453e37f7200ef2e41048da1b17d68978322097cd6,2020-10-04 00:00:00.000000,1,30.3 -0fe39b99b379952df916ed88c169ec63757291bf0c3db2881a4e0e9bf84b1463,2020-04-25 00:00:00.000000,0,0.1 -0087cf99a4636ebd9a0f66eaf98fde8bca977e2a274bc832cc903c3561735e9d,2020-04-15 00:00:00.000000,1,6.72 -4f95c3cf2c7c5bb500102f36abe7f477de6f89c5b77d13a271614ffbf115f7bd,2020-02-15 00:00:00.000000,0,0.0 -eab8ff114cc63fd8ab3d9f42249e20b8ce5ecce463e8368e98747f03c50eeabb,2021-03-01 00:00:00.000000,0,0.0 -f48280c0107726b99afcbd3cd0a46a2bac5f1ddb44e8768f232ac4da562eb166,2020-11-29 00:00:00.000000,1,3.63 -0f0b82fae280ae9fec1905f029b6ee9a9c85bb6cc5151da6dafe38a7902a4a53,2021-07-01 00:00:00.000000,1,20.13 -2ff2a721fab172f1ab7e77774978c698899249076747675c872eaa9b2f6780b8,2020-08-07 00:00:00.000000,0,0.01 -d0f451801443fa1478e1cf080e8d63dead650c9712b2631edf7e1658a98967d9,2020-10-08 00:00:00.000000,1,10.08 -34be1021b378c5701b4dd1430970982e0dbe72b3b340018d7a9b65939881ed7b,2020-04-16 00:00:00.000000,0,0.25 -f8b2f96ed09b16bfd24ff625c064408fe19143db121b7944763fcbcc69ab4991,2021-07-01 00:00:00.000000,1,20.13 -be1722b1d104ffb2753260682954754d9757b986013823c5df20f28e0f74e655,2020-04-25 00:00:00.000000,0,0.1 -fde3f2e7127f6810eb4160bf7bb0563240d78c9d75a9a590b6d6244748a7f4ff,2021-03-01 00:00:00.000000,0,0.0 -337b02741a9561b611d394e835278d377c8eb54b0fa32f9923e4e90ddb5582b5,2020-11-29 00:00:00.000000,1,3.63 -61dbec1d67afe651537e012d2327f6b469780e41565e50e39498f8336fd38cc8,2020-04-15 00:00:00.000000,1,6.72 -bcce03f625c22998dcb812feb157db59cbb8f22a424a70710a8d9ef20c7e5580,2020-10-08 00:00:00.000000,1,10.08 -d88c39de46401a311ffda92d37930b4a543eb6286f835afe9d04dd416476434d,2020-10-04 00:00:00.000000,1,30.3 -de2d0a787b3351763f3c1a45aca2d08ad0b90276a621104fe49ab367e96db632,2020-02-15 00:00:00.000000,0,0.0 -32eb1a8dafeb0873c8d00b0e9058c8c77ff6c6d9235b3236989c50ef63d8f9ba,2020-08-07 00:00:00.000000,0,0.01 -e18037f42fd038fa9b51c6234fa4f332fa681c14653c9852fdf9a0a501bbac24,2020-04-16 00:00:00.000000,0,0.25 -3ef58410b868298fcca4ee41144221bf86bc94e810dfdac6f4b502ce5fcd75c6,2021-07-01 00:00:00.000000,1,20.13 -1090b9e9eba719a3f27dfa49de49497271d9569d00826d58b4ef83c60d0ba5b9,2021-03-01 00:00:00.000000,0,0.0 -9fbb55aa1ca6da90db1c9914bc0960ad0d6a7b3eabe9a88c37580a6e31b5a0c0,2020-04-15 00:00:00.000000,1,6.72 -0c0ad5934ba82dd287896d6406d1428b9e9669a995ce7964226aa47ede31d547,2020-02-15 00:00:00.000000,0,0.0 -084ae23e6996e701addeeb7dcf33696f32dcb4ab78c0ca2026f8f5dbbe5a81d0,2020-08-07 00:00:00.000000,0,0.01 -c6d537e112156be1afbb8a5a85221ff4d95e2461f83f03425549ff42dee7a278,2020-11-29 00:00:00.000000,1,3.63 -9dacbde326501c9f63debf4311ae5e2bc047636edc4ee9d9ce828bcdf4a7f25d,2020-10-08 00:00:00.000000,1,10.08 -8cf04f0d07191f042b1d11880ab80618c2680e8e03bbacc60f9e31160d4fa87f,2020-04-25 00:00:00.000000,0,0.1 -b7768fbb1847758d75c3ee28c3e2391e70c6ee29f7ce19847822bd5a7381ac67,2020-10-04 00:00:00.000000,1,30.3 -11bde34a6593b3da0d81a8a71b24dc6f6cf05d18e9f59e610e58ff202263adef,2020-08-07 00:00:00.000000,0,0.01 -5f302d143dace627a6a87157fd1362b010874e4dc64609b17d87db648de0af3c,2020-04-25 00:00:00.000000,0,0.1 -1ff7b91c979ea344298826c212adf745783ae8a14a3eded36d56ba1b0f4bdeee,2020-10-08 00:00:00.000000,1,10.08 -f1250af9005fb93c6bc8ea65860a4079e4f90b38d8c258af498bf8cb5e9e84df,2020-04-15 00:00:00.000000,1,6.72 -e0d8014e6e3c51d780465166f0ed7faf81a08bb1817693ba45282fcca874eeb6,2020-10-04 00:00:00.000000,1,30.3 -8352dd9eb8b64669e0a8347fd37ae6e5cd67c817f2b4b1eec4475d466ab59eb7,2020-02-15 00:00:00.000000,0,0.0 -235aa062e6372588dbae00552abf36b8ff9c315e3da56cf02786980e764630e9,2021-07-01 00:00:00.000000,1,20.13 -4aec429ac0bfafdbb8dab14f41d1b7a98dacf1ce3478b71b904d383ae614b032,2020-11-29 00:00:00.000000,1,3.63 -330e14d4ae80612334d94c488d29eb469626b476864abdeb5c1bd261db461c50,2020-04-16 00:00:00.000000,0,0.25 -ab9828ca390581b72629069049793ba3c99bb8e5e9e7b97a55c71957e04df9a3,2021-03-01 00:00:00.000000,0,0.0 diff --git a/carrot/data/test/inputs/original/Covid19_test.csv b/carrot/data/test/inputs/original/Covid19_test.csv deleted file mode 100644 index 8bee9bbb..00000000 --- a/carrot/data/test/inputs/original/Covid19_test.csv +++ /dev/null @@ -1,801 +0,0 @@ -PersonID,date,result -101,2020-11-15,POSITIVE -102,2020-01-04,NEGATIVE -103,2020-03-27,POS -104,2020-06-24,NEG -105,2020-07-27,POSITIVE -108,2020-11-04,NEGATIVE -109,2020-12-24,INDETERMINATE -110,2020-02-04,NEGATIVE -109,2020-11-04,NEGATIVE -110,2020-01-04,NEGATIVE -111,2020-12-24,INDETERMINATE -112,2020-03-27,POS -113,2020-02-04,NEGATIVE -116,2020-11-15,POSITIVE -117,2020-06-24,NEG -118,2020-07-27,POSITIVE -117,2020-12-24,INDETERMINATE -118,2020-02-04,NEGATIVE -119,2020-11-15,POSITIVE -120,2020-11-04,NEGATIVE -121,2020-01-04,NEGATIVE -124,2020-03-27,POS -125,2020-07-27,POSITIVE -126,2020-06-24,NEG -125,2020-07-27,POSITIVE -126,2020-11-15,POSITIVE -127,2020-12-24,INDETERMINATE -128,2020-02-04,NEGATIVE -129,2020-06-24,NEG -132,2020-11-04,NEGATIVE -133,2020-03-27,POS -134,2020-01-04,NEGATIVE -133,2020-11-04,NEGATIVE -134,2020-01-04,NEGATIVE -135,2020-11-15,POSITIVE -136,2020-02-04,NEGATIVE -137,2020-03-27,POS -140,2020-07-27,POSITIVE -141,2020-06-24,NEG -142,2020-12-24,INDETERMINATE -141,2020-07-27,POSITIVE -142,2020-02-04,NEGATIVE -143,2020-11-15,POSITIVE -144,2020-03-27,POS -145,2020-06-24,NEG -148,2020-12-24,INDETERMINATE -149,2020-11-04,NEGATIVE -150,2020-01-04,NEGATIVE -149,2020-11-15,POSITIVE -150,2020-03-27,POS -151,2020-02-04,NEGATIVE -152,2020-06-24,NEG -153,2020-12-24,INDETERMINATE -156,2020-07-27,POSITIVE -157,2020-11-04,NEGATIVE -158,2020-01-04,NEGATIVE -157,2020-01-04,NEGATIVE -158,2020-02-04,NEGATIVE -159,2020-07-27,POSITIVE -160,2020-11-04,NEGATIVE -161,2020-06-24,NEG -164,2020-03-27,POS -165,2020-12-24,INDETERMINATE -166,2020-11-15,POSITIVE -165,2020-11-15,POSITIVE -166,2020-06-24,NEG -167,2020-07-27,POSITIVE -168,2020-12-24,INDETERMINATE -169,2020-03-27,POS -172,2020-01-04,NEGATIVE -173,2020-02-04,NEGATIVE -174,2020-11-04,NEGATIVE -173,2020-02-04,NEGATIVE -174,2020-06-24,NEG -175,2020-03-27,POS -176,2020-12-24,INDETERMINATE -177,2020-01-04,NEGATIVE -180,2020-07-27,POSITIVE -181,2020-11-15,POSITIVE -182,2020-11-04,NEGATIVE -181,2020-07-27,POSITIVE -182,2020-02-04,NEGATIVE -183,2020-11-04,NEGATIVE -184,2020-01-04,NEGATIVE -185,2020-11-15,POSITIVE -188,2020-12-24,INDETERMINATE -189,2020-03-27,POS -190,2020-06-24,NEG -189,2020-03-27,POS -190,2020-06-24,NEG -191,2020-11-04,NEGATIVE -192,2020-12-24,INDETERMINATE -193,2020-07-27,POSITIVE -196,2020-11-15,POSITIVE -197,2020-01-04,NEGATIVE -198,2020-02-04,NEGATIVE -197,2020-12-24,INDETERMINATE -198,2020-06-24,NEG -199,2020-02-04,NEGATIVE -200,2020-03-27,POS -201,2020-11-15,POSITIVE -204,2020-07-27,POSITIVE -205,2020-01-04,NEGATIVE -206,2020-11-04,NEGATIVE -205,2020-11-15,POSITIVE -206,2020-06-24,NEG -207,2020-02-04,NEGATIVE -208,2020-12-24,INDETERMINATE -209,2020-01-04,NEGATIVE -212,2020-03-27,POS -213,2020-07-27,POSITIVE -214,2020-11-04,NEGATIVE -213,2020-11-04,NEGATIVE -214,2020-03-27,POS -215,2020-11-15,POSITIVE -216,2020-12-24,INDETERMINATE -217,2020-02-04,NEGATIVE -220,2020-01-04,NEGATIVE -221,2020-06-24,NEG -222,2020-07-27,POSITIVE -221,2020-06-24,NEG -222,2020-07-27,POSITIVE -223,2020-02-04,NEGATIVE -224,2020-11-04,NEGATIVE -225,2020-11-15,POSITIVE -228,2020-12-24,INDETERMINATE -229,2020-01-04,NEGATIVE -230,2020-03-27,POS -229,2020-11-15,POSITIVE -230,2020-01-04,NEGATIVE -231,2020-03-27,POS -232,2020-06-24,NEG -233,2020-02-04,NEGATIVE -236,2020-11-04,NEGATIVE -237,2020-07-27,POSITIVE -238,2020-12-24,INDETERMINATE -237,2020-06-24,NEG -238,2020-12-24,INDETERMINATE -239,2020-11-15,POSITIVE -240,2020-07-27,POSITIVE -241,2020-02-04,NEGATIVE -244,2020-03-27,POS -245,2020-01-04,NEGATIVE -246,2020-11-04,NEGATIVE -245,2020-03-27,POS -246,2020-01-04,NEGATIVE -247,2020-11-04,NEGATIVE -248,2020-02-04,NEGATIVE -249,2020-07-27,POSITIVE -252,2020-06-24,NEG -253,2020-11-15,POSITIVE -254,2020-12-24,INDETERMINATE -253,2020-12-24,INDETERMINATE -254,2020-01-04,NEGATIVE -255,2020-03-27,POS -256,2020-06-24,NEG -257,2020-11-15,POSITIVE -260,2020-07-27,POSITIVE -261,2020-11-04,NEGATIVE -262,2020-02-04,NEGATIVE -261,2020-02-04,NEGATIVE -262,2020-07-27,POSITIVE -263,2020-11-04,NEGATIVE -264,2020-03-27,POS -265,2020-12-24,INDETERMINATE -268,2020-01-04,NEGATIVE -269,2020-06-24,NEG -270,2020-11-15,POSITIVE -269,2020-01-04,NEGATIVE -270,2020-06-24,NEG -271,2020-11-15,POSITIVE -272,2020-02-04,NEGATIVE -273,2020-03-27,POS -276,2020-07-27,POSITIVE -277,2020-11-04,NEGATIVE -278,2020-12-24,INDETERMINATE -277,2020-12-24,INDETERMINATE -278,2020-11-04,NEGATIVE -279,2020-06-24,NEG -280,2020-02-04,NEGATIVE -281,2020-01-04,NEGATIVE -284,2020-07-27,POSITIVE -285,2020-11-15,POSITIVE -286,2020-03-27,POS -285,2020-11-15,POSITIVE -286,2020-02-04,NEGATIVE -287,2020-01-04,NEGATIVE -288,2020-06-24,NEG -289,2020-11-04,NEGATIVE -292,2020-03-27,POS -293,2020-12-24,INDETERMINATE -294,2020-07-27,POSITIVE -293,2020-02-04,NEGATIVE -294,2020-11-15,POSITIVE -295,2020-03-27,POS -296,2020-11-04,NEGATIVE -297,2020-06-24,NEG -300,2020-12-24,INDETERMINATE -301,2020-07-27,POSITIVE -302,2020-01-04,NEGATIVE -301,2020-01-04,NEGATIVE -302,2020-12-24,INDETERMINATE -303,2020-11-04,NEGATIVE -304,2020-07-27,POSITIVE -305,2020-11-15,POSITIVE -308,2020-06-24,NEG -309,2020-02-04,NEGATIVE -310,2020-03-27,POS -309,2020-11-15,POSITIVE -310,2020-01-04,NEGATIVE -311,2020-02-04,NEGATIVE -312,2020-12-24,INDETERMINATE -313,2020-06-24,NEG -316,2020-03-27,POS -317,2020-07-27,POSITIVE -318,2020-11-04,NEGATIVE -317,2020-06-24,NEG -318,2020-11-04,NEGATIVE -319,2020-11-15,POSITIVE -320,2020-07-27,POSITIVE -321,2020-02-04,NEGATIVE -324,2020-01-04,NEGATIVE -325,2020-03-27,POS -326,2020-12-24,INDETERMINATE -325,2020-11-15,POSITIVE -326,2020-03-27,POS -327,2020-01-04,NEGATIVE -328,2020-06-24,NEG -329,2020-11-04,NEGATIVE -332,2020-12-24,INDETERMINATE -333,2020-02-04,NEGATIVE -334,2020-07-27,POSITIVE -333,2020-11-15,POSITIVE -334,2020-11-04,NEGATIVE -335,2020-03-27,POS -336,2020-12-24,INDETERMINATE -337,2020-07-27,POSITIVE -340,2020-06-24,NEG -341,2020-01-04,NEGATIVE -342,2020-02-04,NEGATIVE -341,2020-11-15,POSITIVE -342,2020-12-24,INDETERMINATE -343,2020-06-24,NEG -344,2020-07-27,POSITIVE -345,2020-01-04,NEGATIVE -348,2020-03-27,POS -349,2020-11-04,NEGATIVE -350,2020-02-04,NEGATIVE -349,2020-06-24,NEG -350,2020-03-27,POS -351,2020-01-04,NEGATIVE -352,2020-07-27,POSITIVE -353,2020-12-24,INDETERMINATE -356,2020-11-04,NEGATIVE -357,2020-02-04,NEGATIVE -358,2020-11-15,POSITIVE -357,2020-07-27,POSITIVE -358,2020-01-04,NEGATIVE -359,2020-02-04,NEGATIVE -360,2020-12-24,INDETERMINATE -361,2020-11-04,NEGATIVE -364,2020-11-15,POSITIVE -365,2020-03-27,POS -366,2020-06-24,NEG -365,2020-07-27,POSITIVE -366,2020-03-27,POS -367,2020-11-15,POSITIVE -368,2020-12-24,INDETERMINATE -369,2020-06-24,NEG -372,2020-11-04,NEGATIVE -373,2020-01-04,NEGATIVE -374,2020-02-04,NEGATIVE -373,2020-01-04,NEGATIVE -374,2020-12-24,INDETERMINATE -375,2020-11-04,NEGATIVE -376,2020-11-15,POSITIVE -377,2020-07-27,POSITIVE -380,2020-06-24,NEG -381,2020-02-04,NEGATIVE -382,2020-03-27,POS -381,2020-11-15,POSITIVE -382,2020-12-24,INDETERMINATE -383,2020-11-04,NEGATIVE -384,2020-02-04,NEGATIVE -385,2020-01-04,NEGATIVE -388,2020-03-27,POS -389,2020-07-27,POSITIVE -390,2020-06-24,NEG -389,2020-07-27,POSITIVE -390,2020-02-04,NEGATIVE -391,2020-06-24,NEG -392,2020-11-15,POSITIVE -393,2020-03-27,POS -396,2020-01-04,NEGATIVE -397,2020-11-04,NEGATIVE -398,2020-12-24,INDETERMINATE -397,2020-03-27,POS -398,2020-11-15,POSITIVE -399,2020-12-24,INDETERMINATE -400,2020-06-24,NEG -401,2020-07-27,POSITIVE -404,2020-11-04,NEGATIVE -405,2020-01-04,NEGATIVE -406,2020-02-04,NEGATIVE -405,2020-07-27,POSITIVE -406,2020-02-04,NEGATIVE -407,2020-12-24,INDETERMINATE -408,2020-11-04,NEGATIVE -409,2020-01-04,NEGATIVE -412,2020-03-27,POS -413,2020-06-24,NEG -414,2020-11-15,POSITIVE -413,2020-07-27,POSITIVE -414,2020-06-24,NEG -415,2020-03-27,POS -416,2020-01-04,NEGATIVE -417,2020-11-04,NEGATIVE -420,2020-12-24,INDETERMINATE -421,2020-02-04,NEGATIVE -422,2020-11-15,POSITIVE -421,2020-12-24,INDETERMINATE -422,2020-06-24,NEG -423,2020-03-27,POS -424,2020-01-04,NEGATIVE -425,2020-02-04,NEGATIVE -428,2020-11-04,NEGATIVE -429,2020-07-27,POSITIVE -430,2020-11-15,POSITIVE -429,2020-07-27,POSITIVE -430,2020-11-04,NEGATIVE -431,2020-06-24,NEG -432,2020-02-04,NEGATIVE -433,2020-12-24,INDETERMINATE -436,2020-01-04,NEGATIVE -437,2020-11-15,POSITIVE -438,2020-03-27,POS -437,2020-01-04,NEGATIVE -438,2020-02-04,NEGATIVE -439,2020-06-24,NEG -440,2020-11-04,NEGATIVE -441,2020-12-24,INDETERMINATE -444,2020-07-27,POSITIVE -445,2020-03-27,POS -446,2020-11-15,POSITIVE -445,2020-06-24,NEG -446,2020-07-27,POSITIVE -447,2020-12-24,INDETERMINATE -448,2020-03-27,POS -449,2020-11-15,POSITIVE -452,2020-01-04,NEGATIVE -453,2020-11-04,NEGATIVE -454,2020-02-04,NEGATIVE -453,2020-06-24,NEG -454,2020-07-27,POSITIVE -455,2020-02-04,NEGATIVE -456,2020-11-15,POSITIVE -457,2020-11-04,NEGATIVE -460,2020-01-04,NEGATIVE -461,2020-03-27,POS -462,2020-12-24,INDETERMINATE -461,2020-02-04,NEGATIVE -462,2020-11-15,POSITIVE -463,2020-01-04,NEGATIVE -464,2020-06-24,NEG -465,2020-07-27,POSITIVE -468,2020-11-04,NEGATIVE -469,2020-12-24,INDETERMINATE -470,2020-03-27,POS -469,2020-06-24,NEG -470,2020-01-04,NEGATIVE -471,2020-03-27,POS -472,2020-11-15,POSITIVE -473,2020-07-27,POSITIVE -476,2020-02-04,NEGATIVE -477,2020-12-24,INDETERMINATE -478,2020-11-04,NEGATIVE -477,2020-03-27,POS -478,2020-07-27,POSITIVE -479,2020-12-24,INDETERMINATE -480,2020-01-04,NEGATIVE -481,2020-11-15,POSITIVE -484,2020-06-24,NEG -485,2020-11-04,NEGATIVE -486,2020-02-04,NEGATIVE -485,2020-07-27,POSITIVE -486,2020-11-15,POSITIVE -487,2020-01-04,NEGATIVE -488,2020-02-04,NEGATIVE -489,2020-06-24,NEG -492,2020-11-04,NEGATIVE -493,2020-03-27,POS -494,2020-12-24,INDETERMINATE -493,2020-06-24,NEG -494,2020-07-27,POSITIVE -495,2020-02-04,NEGATIVE -496,2020-11-04,NEGATIVE -497,2020-11-15,POSITIVE -500,2020-01-04,NEGATIVE -501,2020-03-27,POS -502,2020-12-24,INDETERMINATE -501,2020-03-27,POS -502,2020-01-04,NEGATIVE -503,2020-06-24,NEG -504,2020-07-27,POSITIVE -505,2020-11-15,POSITIVE -508,2020-12-24,INDETERMINATE -509,2020-02-04,NEGATIVE -510,2020-11-04,NEGATIVE -509,2020-07-27,POSITIVE -510,2020-12-24,INDETERMINATE -511,2020-01-04,NEGATIVE -512,2020-06-24,NEG -513,2020-02-04,NEGATIVE -516,2020-11-15,POSITIVE -517,2020-11-04,NEGATIVE -518,2020-03-27,POS -517,2020-02-04,NEGATIVE -518,2020-03-27,POS -519,2020-12-24,INDETERMINATE -520,2020-07-27,POSITIVE -521,2020-01-04,NEGATIVE -524,2020-11-15,POSITIVE -525,2020-11-04,NEGATIVE -526,2020-06-24,NEG -525,2020-07-27,POSITIVE -526,2020-11-15,POSITIVE -527,2020-02-04,NEGATIVE -528,2020-11-04,NEGATIVE -529,2020-12-24,INDETERMINATE -532,2020-03-27,POS -533,2020-06-24,NEG -534,2020-01-04,NEGATIVE -533,2020-06-24,NEG -534,2020-01-04,NEGATIVE -535,2020-07-27,POSITIVE -536,2020-12-24,INDETERMINATE -537,2020-03-27,POS -540,2020-11-15,POSITIVE -541,2020-02-04,NEGATIVE -542,2020-11-04,NEGATIVE -541,2020-07-27,POSITIVE -542,2020-01-04,NEGATIVE -543,2020-06-24,NEG -544,2020-11-04,NEGATIVE -545,2020-02-04,NEGATIVE -548,2020-03-27,POS -549,2020-12-24,INDETERMINATE -550,2020-11-15,POSITIVE -549,2020-11-04,NEGATIVE -550,2020-02-04,NEGATIVE -551,2020-01-04,NEGATIVE -552,2020-06-24,NEG -553,2020-03-27,POS -556,2020-11-15,POSITIVE -557,2020-12-24,INDETERMINATE -558,2020-07-27,POSITIVE -557,2020-03-27,POS -558,2020-11-15,POSITIVE -559,2020-11-04,NEGATIVE -560,2020-12-24,INDETERMINATE -561,2020-02-04,NEGATIVE -564,2020-06-24,NEG -565,2020-01-04,NEGATIVE -566,2020-07-27,POSITIVE -565,2020-06-24,NEG -566,2020-11-15,POSITIVE -567,2020-01-04,NEGATIVE -568,2020-12-24,INDETERMINATE -569,2020-02-04,NEGATIVE -572,2020-11-04,NEGATIVE -573,2020-03-27,POS -574,2020-07-27,POSITIVE -573,2020-06-24,NEG -574,2020-11-15,POSITIVE -575,2020-11-04,NEGATIVE -576,2020-03-27,POS -577,2020-02-04,NEGATIVE -580,2020-07-27,POSITIVE -581,2020-12-24,INDETERMINATE -582,2020-01-04,NEGATIVE -581,2020-07-27,POSITIVE -582,2020-06-24,NEG -583,2020-02-04,NEGATIVE -584,2020-11-15,POSITIVE -585,2020-12-24,INDETERMINATE -588,2020-03-27,POS -589,2020-01-04,NEGATIVE -590,2020-11-04,NEGATIVE -589,2020-11-15,POSITIVE -590,2020-07-27,POSITIVE -591,2020-12-24,INDETERMINATE -592,2020-11-04,NEGATIVE -593,2020-02-04,NEGATIVE -596,2020-01-04,NEGATIVE -597,2020-03-27,POS -598,2020-06-24,NEG -597,2020-02-04,NEGATIVE -598,2020-03-27,POS -599,2020-07-27,POSITIVE -600,2020-01-04,NEGATIVE -601,2020-06-24,NEG -604,2020-11-04,NEGATIVE -605,2020-12-24,INDETERMINATE -606,2020-11-15,POSITIVE -605,2020-07-27,POSITIVE -606,2020-06-24,NEG -607,2020-11-15,POSITIVE -608,2020-03-27,POS -609,2020-11-04,NEGATIVE -612,2020-02-04,NEGATIVE -613,2020-12-24,INDETERMINATE -614,2020-01-04,NEGATIVE -613,2020-11-15,POSITIVE -614,2020-06-24,NEG -615,2020-02-04,NEGATIVE -616,2020-01-04,NEGATIVE -617,2020-12-24,INDETERMINATE -620,2020-07-27,POSITIVE -621,2020-03-27,POS -622,2020-11-04,NEGATIVE -621,2020-11-15,POSITIVE -622,2020-11-04,NEGATIVE -623,2020-12-24,INDETERMINATE -624,2020-01-04,NEGATIVE -625,2020-07-27,POSITIVE -628,2020-03-27,POS -629,2020-02-04,NEGATIVE -630,2020-06-24,NEG -629,2020-06-24,NEG -630,2020-11-04,NEGATIVE -631,2020-02-04,NEGATIVE -632,2020-11-15,POSITIVE -633,2020-03-27,POS -636,2020-07-27,POSITIVE -637,2020-01-04,NEGATIVE -638,2020-12-24,INDETERMINATE -637,2020-02-04,NEGATIVE -638,2020-06-24,NEG -639,2020-01-04,NEGATIVE -640,2020-11-15,POSITIVE -641,2020-12-24,INDETERMINATE -644,2020-03-27,POS -645,2020-11-04,NEGATIVE -646,2020-07-27,POSITIVE -645,2020-12-24,INDETERMINATE -646,2020-11-15,POSITIVE -647,2020-06-24,NEG -648,2020-07-27,POSITIVE -649,2020-02-04,NEGATIVE -652,2020-03-27,POS -653,2020-11-04,NEGATIVE -654,2020-01-04,NEGATIVE -653,2020-12-24,INDETERMINATE -654,2020-11-04,NEGATIVE -655,2020-06-24,NEG -656,2020-02-04,NEGATIVE -657,2020-03-27,POS -660,2020-11-15,POSITIVE -661,2020-07-27,POSITIVE -662,2020-01-04,NEGATIVE -661,2020-01-04,NEGATIVE -662,2020-02-04,NEGATIVE -663,2020-11-15,POSITIVE -664,2020-11-04,NEGATIVE -665,2020-06-24,NEG -668,2020-12-24,INDETERMINATE -669,2020-07-27,POSITIVE -670,2020-03-27,POS -669,2020-11-15,POSITIVE -670,2020-06-24,NEG -671,2020-11-04,NEGATIVE -672,2020-02-04,NEGATIVE -673,2020-01-04,NEGATIVE -676,2020-03-27,POS -677,2020-07-27,POSITIVE -678,2020-12-24,INDETERMINATE -677,2020-02-04,NEGATIVE -678,2020-01-04,NEGATIVE -679,2020-11-15,POSITIVE -680,2020-07-27,POSITIVE -681,2020-11-04,NEGATIVE -684,2020-03-27,POS -685,2020-12-24,INDETERMINATE -686,2020-06-24,NEG -685,2020-07-27,POSITIVE -686,2020-11-04,NEGATIVE -687,2020-11-15,POSITIVE -688,2020-12-24,INDETERMINATE -689,2020-03-27,POS -692,2020-06-24,NEG -693,2020-01-04,NEGATIVE -694,2020-02-04,NEGATIVE -693,2020-11-15,POSITIVE -694,2020-06-24,NEG -695,2020-12-24,INDETERMINATE -696,2020-11-04,NEGATIVE -697,2020-01-04,NEGATIVE -700,2020-03-27,POS -701,2020-02-04,NEGATIVE -702,2020-07-27,POSITIVE -701,2020-12-24,INDETERMINATE -702,2020-11-15,POSITIVE -703,2020-07-27,POSITIVE -704,2020-02-04,NEGATIVE -705,2020-01-04,NEGATIVE -708,2020-03-27,POS -709,2020-11-04,NEGATIVE -710,2020-06-24,NEG -709,2020-07-27,POSITIVE -710,2020-11-04,NEGATIVE -711,2020-02-04,NEGATIVE -712,2020-11-15,POSITIVE -713,2020-01-04,NEGATIVE -716,2020-06-24,NEG -717,2020-12-24,INDETERMINATE -718,2020-03-27,POS -717,2020-02-04,NEGATIVE -718,2020-01-04,NEGATIVE -719,2020-11-04,NEGATIVE -720,2020-07-27,POSITIVE -721,2020-12-24,INDETERMINATE -724,2020-11-15,POSITIVE -725,2020-03-27,POS -726,2020-06-24,NEG -725,2020-02-04,NEGATIVE -726,2020-06-24,NEG -727,2020-11-04,NEGATIVE -728,2020-03-27,POS -729,2020-11-15,POSITIVE -732,2020-07-27,POSITIVE -733,2020-12-24,INDETERMINATE -734,2020-01-04,NEGATIVE -733,2020-06-24,NEG -734,2020-12-24,INDETERMINATE -735,2020-11-04,NEGATIVE -736,2020-02-04,NEGATIVE -737,2020-03-27,POS -740,2020-11-15,POSITIVE -741,2020-07-27,POSITIVE -742,2020-01-04,NEGATIVE -741,2020-07-27,POSITIVE -742,2020-11-15,POSITIVE -743,2020-02-04,NEGATIVE -744,2020-03-27,POS -745,2020-06-24,NEG -748,2020-01-04,NEGATIVE -749,2020-11-04,NEGATIVE -750,2020-12-24,INDETERMINATE -749,2020-07-27,POSITIVE -750,2020-03-27,POS -751,2020-01-04,NEGATIVE -752,2020-11-15,POSITIVE -753,2020-11-04,NEGATIVE -756,2020-02-04,NEGATIVE -757,2020-06-24,NEG -758,2020-12-24,INDETERMINATE -757,2020-11-15,POSITIVE -758,2020-12-24,INDETERMINATE -759,2020-06-24,NEG -760,2020-07-27,POSITIVE -761,2020-11-04,NEGATIVE -764,2020-01-04,NEGATIVE -765,2020-02-04,NEGATIVE -766,2020-03-27,POS -765,2020-11-04,NEGATIVE -766,2020-11-15,POSITIVE -767,2020-03-27,POS -768,2020-06-24,NEG -769,2020-12-24,INDETERMINATE -772,2020-02-04,NEGATIVE -773,2020-01-04,NEGATIVE -774,2020-07-27,POSITIVE -773,2020-03-27,POS -774,2020-11-04,NEGATIVE -775,2020-11-15,POSITIVE -776,2020-06-24,NEG -777,2020-02-04,NEGATIVE -780,2020-07-27,POSITIVE -781,2020-12-24,INDETERMINATE -782,2020-01-04,NEGATIVE -781,2020-03-27,POS -782,2020-12-24,INDETERMINATE -783,2020-11-04,NEGATIVE -784,2020-01-04,NEGATIVE -785,2020-02-04,NEGATIVE -788,2020-11-15,POSITIVE -789,2020-06-24,NEG -790,2020-07-27,POSITIVE -789,2020-03-27,POS -790,2020-07-27,POSITIVE -791,2020-11-15,POSITIVE -792,2020-02-04,NEGATIVE -793,2020-06-24,NEG -796,2020-12-24,INDETERMINATE -797,2020-11-04,NEGATIVE -798,2020-01-04,NEGATIVE -797,2020-01-04,NEGATIVE -798,2020-03-27,POS -799,2020-11-15,POSITIVE -800,2020-02-04,NEGATIVE -801,2020-12-24,INDETERMINATE -804,2020-11-04,NEGATIVE -805,2020-06-24,NEG -806,2020-07-27,POSITIVE -805,2020-02-04,NEGATIVE -806,2020-12-24,INDETERMINATE -807,2020-11-04,NEGATIVE -808,2020-03-27,POS -809,2020-11-15,POSITIVE -812,2020-07-27,POSITIVE -813,2020-06-24,NEG -814,2020-01-04,NEGATIVE -813,2020-01-04,NEGATIVE -814,2020-03-27,POS -815,2020-11-15,POSITIVE -816,2020-12-24,INDETERMINATE -817,2020-07-27,POSITIVE -820,2020-02-04,NEGATIVE -821,2020-06-24,NEG -822,2020-11-04,NEGATIVE -821,2020-11-15,POSITIVE -822,2020-02-04,NEGATIVE -823,2020-01-04,NEGATIVE -824,2020-11-04,NEGATIVE -825,2020-03-27,POS -828,2020-12-24,INDETERMINATE -829,2020-07-27,POSITIVE -830,2020-06-24,NEG -829,2020-06-24,NEG -830,2020-11-04,NEGATIVE -831,2020-02-04,NEGATIVE -832,2020-03-27,POS -833,2020-01-04,NEGATIVE -836,2020-11-15,POSITIVE -837,2020-12-24,INDETERMINATE -838,2020-07-27,POSITIVE -837,2020-01-04,NEGATIVE -838,2020-02-04,NEGATIVE -839,2020-11-04,NEGATIVE -840,2020-12-24,INDETERMINATE -841,2020-06-24,NEG -844,2020-03-27,POS -845,2020-11-15,POSITIVE -846,2020-07-27,POSITIVE -845,2020-06-24,NEG -846,2020-01-04,NEGATIVE -847,2020-07-27,POSITIVE -848,2020-12-24,INDETERMINATE -849,2020-11-15,POSITIVE -852,2020-11-04,NEGATIVE -853,2020-03-27,POS -854,2020-02-04,NEGATIVE -853,2020-01-04,NEGATIVE -854,2020-12-24,INDETERMINATE -855,2020-11-15,POSITIVE -856,2020-06-24,NEG -857,2020-02-04,NEGATIVE -860,2020-03-27,POS -861,2020-07-27,POSITIVE -862,2020-11-04,NEGATIVE -861,2020-12-24,INDETERMINATE -862,2020-03-27,POS -863,2020-01-04,NEGATIVE -864,2020-06-24,NEG -865,2020-02-04,NEGATIVE -868,2020-11-15,POSITIVE -869,2020-07-27,POSITIVE -870,2020-11-04,NEGATIVE -869,2020-01-04,NEGATIVE -870,2020-11-15,POSITIVE -871,2020-11-04,NEGATIVE -872,2020-12-24,INDETERMINATE -873,2020-06-24,NEG -876,2020-02-04,NEGATIVE -877,2020-03-27,POS -878,2020-07-27,POSITIVE -877,2020-03-27,POS -878,2020-07-27,POSITIVE -879,2020-12-24,INDETERMINATE -880,2020-02-04,NEGATIVE -881,2020-06-24,NEG -884,2020-01-04,NEGATIVE -885,2020-11-04,NEGATIVE -886,2020-11-15,POSITIVE -885,2020-12-24,INDETERMINATE -886,2020-06-24,NEG -887,2020-01-04,NEGATIVE -888,2020-11-04,NEGATIVE -889,2020-07-27,POSITIVE -892,2020-11-15,POSITIVE -893,2020-03-27,POS -894,2020-02-04,NEGATIVE -893,2020-11-04,NEGATIVE -894,2020-12-24,INDETERMINATE -895,2020-07-27,POSITIVE -896,2020-01-04,NEGATIVE -897,2020-06-24,NEG -900,2020-11-15,POSITIVE -901,2020-02-04,NEGATIVE -902,2020-03-27,POS diff --git a/carrot/data/test/inputs/original/Demographics.csv b/carrot/data/test/inputs/original/Demographics.csv deleted file mode 100644 index 5cf9efcd..00000000 --- a/carrot/data/test/inputs/original/Demographics.csv +++ /dev/null @@ -1,1001 +0,0 @@ -PersonID,sex,date_of_birth,ethnicity -101,M,1951-12-25 00:00:00.000000,White -102,M,1981-11-19 00:00:00.000000,Black -103,F,1997-05-11 00:00:00.000000,Indian -104,F,1975-06-07 00:00:00.000000,Bangladeshi -105,F,1976-04-23 00:00:00.000000,White -106,M,1966-09-29 00:00:00.000000,Black -107,F,1956-11-12 00:00:00.000000,Asian -108,M,1985-03-01 00:00:00.000000,White and Asian -109,F,1950-10-31 00:00:00.000000, -110,F,1993-09-07 00:00:00.000000,White -111,F,1976-04-23 00:00:00.000000,White -112,F,1997-05-11 00:00:00.000000,Indian -113,F,1975-06-07 00:00:00.000000,Bangladeshi -114,F,1993-09-07 00:00:00.000000,White -115,M,1981-11-19 00:00:00.000000,Black -116,F,1950-10-31 00:00:00.000000, -117,M,1951-12-25 00:00:00.000000,White -118,M,1985-03-01 00:00:00.000000,White and Asian -119,M,1966-09-29 00:00:00.000000,Black -120,F,1956-11-12 00:00:00.000000,Asian -121,M,1966-09-29 00:00:00.000000,Black -122,F,1950-10-31 00:00:00.000000, -123,F,1976-04-23 00:00:00.000000,White -124,M,1985-03-01 00:00:00.000000,White and Asian -125,M,1981-11-19 00:00:00.000000,Black -126,F,1993-09-07 00:00:00.000000,White -127,F,1956-11-12 00:00:00.000000,Asian -128,F,1975-06-07 00:00:00.000000,Bangladeshi -129,F,1997-05-11 00:00:00.000000,Indian -130,M,1951-12-25 00:00:00.000000,White -131,F,1956-11-12 00:00:00.000000,Asian -132,F,1997-05-11 00:00:00.000000,Indian -133,F,1993-09-07 00:00:00.000000,White -134,M,1966-09-29 00:00:00.000000,Black -135,M,1985-03-01 00:00:00.000000,White and Asian -136,M,1951-12-25 00:00:00.000000,White -137,M,1981-11-19 00:00:00.000000,Black -138,F,1950-10-31 00:00:00.000000, -139,F,1975-06-07 00:00:00.000000,Bangladeshi -140,F,1976-04-23 00:00:00.000000,White -141,M,1966-09-29 00:00:00.000000,Black -142,F,1956-11-12 00:00:00.000000,Asian -143,F,1997-05-11 00:00:00.000000,Indian -144,F,1993-09-07 00:00:00.000000,White -145,M,1985-03-01 00:00:00.000000,White and Asian -146,F,1950-10-31 00:00:00.000000, -147,M,1951-12-25 00:00:00.000000,White -148,F,1975-06-07 00:00:00.000000,Bangladeshi -149,M,1981-11-19 00:00:00.000000,Black -150,F,1976-04-23 00:00:00.000000,White -151,F,1993-09-07 00:00:00.000000,White -152,M,1981-11-19 00:00:00.000000,Black -153,M,1985-03-01 00:00:00.000000,White and Asian -154,F,1950-10-31 00:00:00.000000, -155,M,1966-09-29 00:00:00.000000,Black -156,F,1975-06-07 00:00:00.000000,Bangladeshi -157,F,1976-04-23 00:00:00.000000,White -158,F,1997-05-11 00:00:00.000000,Indian -159,M,1951-12-25 00:00:00.000000,White -160,F,1956-11-12 00:00:00.000000,Asian -161,F,1950-10-31 00:00:00.000000, -162,F,1993-09-07 00:00:00.000000,White -163,M,1966-09-29 00:00:00.000000,Black -164,M,1985-03-01 00:00:00.000000,White and Asian -165,F,1975-06-07 00:00:00.000000,Bangladeshi -166,F,1997-05-11 00:00:00.000000,Indian -167,M,1951-12-25 00:00:00.000000,White -168,F,1976-04-23 00:00:00.000000,White -169,M,1981-11-19 00:00:00.000000,Black -170,F,1956-11-12 00:00:00.000000,Asian -171,F,1950-10-31 00:00:00.000000, -172,F,1993-09-07 00:00:00.000000,White -173,F,1956-11-12 00:00:00.000000,Asian -174,M,1981-11-19 00:00:00.000000,Black -175,M,1966-09-29 00:00:00.000000,Black -176,F,1975-06-07 00:00:00.000000,Bangladeshi -177,F,1976-04-23 00:00:00.000000,White -178,M,1985-03-01 00:00:00.000000,White and Asian -179,M,1951-12-25 00:00:00.000000,White -180,F,1997-05-11 00:00:00.000000,Indian -181,F,1997-05-11 00:00:00.000000,Indian -182,F,1950-10-31 00:00:00.000000, -183,F,1976-04-23 00:00:00.000000,White -184,M,1985-03-01 00:00:00.000000,White and Asian -185,M,1966-09-29 00:00:00.000000,Black -186,F,1975-06-07 00:00:00.000000,Bangladeshi -187,M,1981-11-19 00:00:00.000000,Black -188,F,1993-09-07 00:00:00.000000,White -189,F,1956-11-12 00:00:00.000000,Asian -190,M,1951-12-25 00:00:00.000000,White -191,F,1993-09-07 00:00:00.000000,White -192,F,1976-04-23 00:00:00.000000,White -193,F,1997-05-11 00:00:00.000000,Indian -194,M,1951-12-25 00:00:00.000000,White -195,M,1966-09-29 00:00:00.000000,Black -196,F,1950-10-31 00:00:00.000000, -197,M,1985-03-01 00:00:00.000000,White and Asian -198,M,1981-11-19 00:00:00.000000,Black -199,F,1975-06-07 00:00:00.000000,Bangladeshi -200,F,1956-11-12 00:00:00.000000,Asian -201,F,1975-06-07 00:00:00.000000,Bangladeshi -202,M,1981-11-19 00:00:00.000000,Black -203,F,1997-05-11 00:00:00.000000,Indian -204,F,1956-11-12 00:00:00.000000,Asian -205,M,1985-03-01 00:00:00.000000,White and Asian -206,M,1951-12-25 00:00:00.000000,White -207,F,1950-10-31 00:00:00.000000, -208,F,1993-09-07 00:00:00.000000,White -209,M,1966-09-29 00:00:00.000000,Black -210,F,1976-04-23 00:00:00.000000,White -211,M,1966-09-29 00:00:00.000000,Black -212,M,1951-12-25 00:00:00.000000,White -213,F,1950-10-31 00:00:00.000000, -214,F,1956-11-12 00:00:00.000000,Asian -215,F,1993-09-07 00:00:00.000000,White -216,M,1981-11-19 00:00:00.000000,Black -217,F,1997-05-11 00:00:00.000000,Indian -218,M,1985-03-01 00:00:00.000000,White and Asian -219,F,1976-04-23 00:00:00.000000,White -220,F,1975-06-07 00:00:00.000000,Bangladeshi -221,M,1966-09-29 00:00:00.000000,Black -222,F,1976-04-23 00:00:00.000000,White -223,F,1975-06-07 00:00:00.000000,Bangladeshi -224,M,1951-12-25 00:00:00.000000,White -225,M,1985-03-01 00:00:00.000000,White and Asian -226,F,1956-11-12 00:00:00.000000,Asian -227,F,1993-09-07 00:00:00.000000,White -228,F,1997-05-11 00:00:00.000000,Indian -229,M,1981-11-19 00:00:00.000000,Black -230,F,1950-10-31 00:00:00.000000, -231,F,1975-06-07 00:00:00.000000,Bangladeshi -232,M,1966-09-29 00:00:00.000000,Black -233,F,1993-09-07 00:00:00.000000,White -234,M,1985-03-01 00:00:00.000000,White and Asian -235,F,1950-10-31 00:00:00.000000, -236,M,1981-11-19 00:00:00.000000,Black -237,F,1956-11-12 00:00:00.000000,Asian -238,M,1951-12-25 00:00:00.000000,White -239,F,1976-04-23 00:00:00.000000,White -240,F,1997-05-11 00:00:00.000000,Indian -241,M,1966-09-29 00:00:00.000000,Black -242,F,1997-05-11 00:00:00.000000,Indian -243,F,1956-11-12 00:00:00.000000,Asian -244,F,1950-10-31 00:00:00.000000, -245,F,1976-04-23 00:00:00.000000,White -246,M,1985-03-01 00:00:00.000000,White and Asian -247,F,1975-06-07 00:00:00.000000,Bangladeshi -248,M,1951-12-25 00:00:00.000000,White -249,F,1993-09-07 00:00:00.000000,White -250,M,1981-11-19 00:00:00.000000,Black -251,M,1981-11-19 00:00:00.000000,Black -252,M,1951-12-25 00:00:00.000000,White -253,F,1950-10-31 00:00:00.000000, -254,F,1993-09-07 00:00:00.000000,White -255,M,1985-03-01 00:00:00.000000,White and Asian -256,F,1976-04-23 00:00:00.000000,White -257,F,1956-11-12 00:00:00.000000,Asian -258,F,1997-05-11 00:00:00.000000,Indian -259,M,1966-09-29 00:00:00.000000,Black -260,F,1975-06-07 00:00:00.000000,Bangladeshi -261,F,1993-09-07 00:00:00.000000,White -262,F,1950-10-31 00:00:00.000000, -263,F,1997-05-11 00:00:00.000000,Indian -264,F,1976-04-23 00:00:00.000000,White -265,F,1956-11-12 00:00:00.000000,Asian -266,M,1985-03-01 00:00:00.000000,White and Asian -267,M,1951-12-25 00:00:00.000000,White -268,F,1975-06-07 00:00:00.000000,Bangladeshi -269,M,1966-09-29 00:00:00.000000,Black -270,M,1981-11-19 00:00:00.000000,Black -271,M,1985-03-01 00:00:00.000000,White and Asian -272,F,1975-06-07 00:00:00.000000,Bangladeshi -273,M,1981-11-19 00:00:00.000000,Black -274,F,1956-11-12 00:00:00.000000,Asian -275,F,1976-04-23 00:00:00.000000,White -276,F,1993-09-07 00:00:00.000000,White -277,M,1966-09-29 00:00:00.000000,Black -278,F,1950-10-31 00:00:00.000000, -279,F,1997-05-11 00:00:00.000000,Indian -280,M,1951-12-25 00:00:00.000000,White -281,F,1997-05-11 00:00:00.000000,Indian -282,M,1985-03-01 00:00:00.000000,White and Asian -283,F,1956-11-12 00:00:00.000000,Asian -284,F,1993-09-07 00:00:00.000000,White -285,M,1951-12-25 00:00:00.000000,White -286,F,1950-10-31 00:00:00.000000, -287,F,1976-04-23 00:00:00.000000,White -288,M,1966-09-29 00:00:00.000000,Black -289,M,1981-11-19 00:00:00.000000,Black -290,F,1975-06-07 00:00:00.000000,Bangladeshi -291,F,1976-04-23 00:00:00.000000,White -292,F,1997-05-11 00:00:00.000000,Indian -293,F,1975-06-07 00:00:00.000000,Bangladeshi -294,F,1950-10-31 00:00:00.000000, -295,M,1981-11-19 00:00:00.000000,Black -296,M,1966-09-29 00:00:00.000000,Black -297,F,1993-09-07 00:00:00.000000,White -298,M,1951-12-25 00:00:00.000000,White -299,M,1985-03-01 00:00:00.000000,White and Asian -300,F,1956-11-12 00:00:00.000000,Asian -301,F,1956-11-12 00:00:00.000000,Asian -302,F,1993-09-07 00:00:00.000000,White -303,F,1975-06-07 00:00:00.000000,Bangladeshi -304,F,1950-10-31 00:00:00.000000, -305,M,1985-03-01 00:00:00.000000,White and Asian -306,M,1951-12-25 00:00:00.000000,White -307,F,1997-05-11 00:00:00.000000,Indian -308,F,1976-04-23 00:00:00.000000,White -309,M,1981-11-19 00:00:00.000000,Black -310,M,1966-09-29 00:00:00.000000,Black -311,F,1993-09-07 00:00:00.000000,White -312,F,1976-04-23 00:00:00.000000,White -313,M,1985-03-01 00:00:00.000000,White and Asian -314,F,1956-11-12 00:00:00.000000,Asian -315,F,1997-05-11 00:00:00.000000,Indian -316,M,1981-11-19 00:00:00.000000,Black -317,M,1951-12-25 00:00:00.000000,White -318,M,1966-09-29 00:00:00.000000,Black -319,F,1950-10-31 00:00:00.000000, -320,F,1975-06-07 00:00:00.000000,Bangladeshi -321,F,1956-11-12 00:00:00.000000,Asian -322,F,1993-09-07 00:00:00.000000,White -323,F,1976-04-23 00:00:00.000000,White -324,M,1981-11-19 00:00:00.000000,Black -325,M,1951-12-25 00:00:00.000000,White -326,F,1950-10-31 00:00:00.000000, -327,M,1985-03-01 00:00:00.000000,White and Asian -328,F,1975-06-07 00:00:00.000000,Bangladeshi -329,M,1966-09-29 00:00:00.000000,Black -330,F,1997-05-11 00:00:00.000000,Indian -331,F,1976-04-23 00:00:00.000000,White -332,M,1966-09-29 00:00:00.000000,Black -333,F,1975-06-07 00:00:00.000000,Bangladeshi -334,F,1950-10-31 00:00:00.000000, -335,F,1956-11-12 00:00:00.000000,Asian -336,F,1993-09-07 00:00:00.000000,White -337,M,1985-03-01 00:00:00.000000,White and Asian -338,M,1981-11-19 00:00:00.000000,Black -339,M,1951-12-25 00:00:00.000000,White -340,F,1997-05-11 00:00:00.000000,Indian -341,M,1966-09-29 00:00:00.000000,Black -342,M,1951-12-25 00:00:00.000000,White -343,F,1975-06-07 00:00:00.000000,Bangladeshi -344,M,1985-03-01 00:00:00.000000,White and Asian -345,F,1956-11-12 00:00:00.000000,Asian -346,F,1997-05-11 00:00:00.000000,Indian -347,F,1993-09-07 00:00:00.000000,White -348,F,1976-04-23 00:00:00.000000,White -349,M,1981-11-19 00:00:00.000000,Black -350,F,1950-10-31 00:00:00.000000, -351,M,1966-09-29 00:00:00.000000,Black -352,F,1950-10-31 00:00:00.000000, -353,F,1993-09-07 00:00:00.000000,White -354,M,1951-12-25 00:00:00.000000,White -355,F,1997-05-11 00:00:00.000000,Indian -356,M,1985-03-01 00:00:00.000000,White and Asian -357,F,1976-04-23 00:00:00.000000,White -358,M,1981-11-19 00:00:00.000000,Black -359,F,1975-06-07 00:00:00.000000,Bangladeshi -360,F,1956-11-12 00:00:00.000000,Asian -361,F,1976-04-23 00:00:00.000000,White -362,F,1997-05-11 00:00:00.000000,Indian -363,M,1981-11-19 00:00:00.000000,Black -364,M,1951-12-25 00:00:00.000000,White -365,M,1966-09-29 00:00:00.000000,Black -366,F,1950-10-31 00:00:00.000000, -367,F,1975-06-07 00:00:00.000000,Bangladeshi -368,F,1956-11-12 00:00:00.000000,Asian -369,F,1993-09-07 00:00:00.000000,White -370,M,1985-03-01 00:00:00.000000,White and Asian -371,F,1976-04-23 00:00:00.000000,White -372,F,1950-10-31 00:00:00.000000, -373,F,1993-09-07 00:00:00.000000,White -374,F,1956-11-12 00:00:00.000000,Asian -375,M,1951-12-25 00:00:00.000000,White -376,M,1985-03-01 00:00:00.000000,White and Asian -377,F,1975-06-07 00:00:00.000000,Bangladeshi -378,M,1981-11-19 00:00:00.000000,Black -379,M,1966-09-29 00:00:00.000000,Black -380,F,1997-05-11 00:00:00.000000,Indian -381,F,1975-06-07 00:00:00.000000,Bangladeshi -382,M,1981-11-19 00:00:00.000000,Black -383,M,1966-09-29 00:00:00.000000,Black -384,F,1976-04-23 00:00:00.000000,White -385,F,1950-10-31 00:00:00.000000, -386,F,1956-11-12 00:00:00.000000,Asian -387,F,1997-05-11 00:00:00.000000,Indian -388,M,1985-03-01 00:00:00.000000,White and Asian -389,F,1993-09-07 00:00:00.000000,White -390,M,1951-12-25 00:00:00.000000,White -391,M,1966-09-29 00:00:00.000000,Black -392,F,1950-10-31 00:00:00.000000, -393,M,1985-03-01 00:00:00.000000,White and Asian -394,F,1975-06-07 00:00:00.000000,Bangladeshi -395,F,1993-09-07 00:00:00.000000,White -396,F,1956-11-12 00:00:00.000000,Asian -397,M,1981-11-19 00:00:00.000000,Black -398,M,1951-12-25 00:00:00.000000,White -399,F,1976-04-23 00:00:00.000000,White -400,F,1997-05-11 00:00:00.000000,Indian -401,F,1976-04-23 00:00:00.000000,White -402,M,1966-09-29 00:00:00.000000,Black -403,F,1997-05-11 00:00:00.000000,Indian -404,M,1981-11-19 00:00:00.000000,Black -405,F,1975-06-07 00:00:00.000000,Bangladeshi -406,F,1956-11-12 00:00:00.000000,Asian -407,F,1993-09-07 00:00:00.000000,White -408,M,1951-12-25 00:00:00.000000,White -409,F,1950-10-31 00:00:00.000000, -410,M,1985-03-01 00:00:00.000000,White and Asian -411,F,1997-05-11 00:00:00.000000,Indian -412,M,1951-12-25 00:00:00.000000,White -413,F,1956-11-12 00:00:00.000000,Asian -414,F,1975-06-07 00:00:00.000000,Bangladeshi -415,F,1976-04-23 00:00:00.000000,White -416,M,1985-03-01 00:00:00.000000,White and Asian -417,M,1966-09-29 00:00:00.000000,Black -418,F,1950-10-31 00:00:00.000000, -419,M,1981-11-19 00:00:00.000000,Black -420,F,1993-09-07 00:00:00.000000,White -421,F,1976-04-23 00:00:00.000000,White -422,F,1950-10-31 00:00:00.000000, -423,M,1951-12-25 00:00:00.000000,White -424,M,1985-03-01 00:00:00.000000,White and Asian -425,F,1975-06-07 00:00:00.000000,Bangladeshi -426,M,1966-09-29 00:00:00.000000,Black -427,F,1956-11-12 00:00:00.000000,Asian -428,M,1981-11-19 00:00:00.000000,Black -429,F,1993-09-07 00:00:00.000000,White -430,F,1997-05-11 00:00:00.000000,Indian -431,M,1985-03-01 00:00:00.000000,White and Asian -432,M,1981-11-19 00:00:00.000000,Black -433,F,1997-05-11 00:00:00.000000,Indian -434,M,1966-09-29 00:00:00.000000,Black -435,F,1956-11-12 00:00:00.000000,Asian -436,F,1950-10-31 00:00:00.000000, -437,F,1976-04-23 00:00:00.000000,White -438,F,1993-09-07 00:00:00.000000,White -439,M,1951-12-25 00:00:00.000000,White -440,F,1975-06-07 00:00:00.000000,Bangladeshi -441,M,1985-03-01 00:00:00.000000,White and Asian -442,F,1997-05-11 00:00:00.000000,Indian -443,F,1950-10-31 00:00:00.000000, -444,F,1993-09-07 00:00:00.000000,White -445,M,1951-12-25 00:00:00.000000,White -446,F,1976-04-23 00:00:00.000000,White -447,M,1981-11-19 00:00:00.000000,Black -448,F,1975-06-07 00:00:00.000000,Bangladeshi -449,M,1966-09-29 00:00:00.000000,Black -450,F,1956-11-12 00:00:00.000000,Asian -451,M,1985-03-01 00:00:00.000000,White and Asian -452,F,1976-04-23 00:00:00.000000,White -453,F,1997-05-11 00:00:00.000000,Indian -454,F,1975-06-07 00:00:00.000000,Bangladeshi -455,M,1966-09-29 00:00:00.000000,Black -456,F,1993-09-07 00:00:00.000000,White -457,F,1950-10-31 00:00:00.000000, -458,M,1981-11-19 00:00:00.000000,Black -459,F,1956-11-12 00:00:00.000000,Asian -460,M,1951-12-25 00:00:00.000000,White -461,M,1981-11-19 00:00:00.000000,Black -462,F,1975-06-07 00:00:00.000000,Bangladeshi -463,F,1976-04-23 00:00:00.000000,White -464,M,1966-09-29 00:00:00.000000,Black -465,M,1985-03-01 00:00:00.000000,White and Asian -466,F,1993-09-07 00:00:00.000000,White -467,M,1951-12-25 00:00:00.000000,White -468,F,1997-05-11 00:00:00.000000,Indian -469,F,1950-10-31 00:00:00.000000, -470,F,1956-11-12 00:00:00.000000,Asian -471,M,1985-03-01 00:00:00.000000,White and Asian -472,F,1997-05-11 00:00:00.000000,Indian -473,F,1993-09-07 00:00:00.000000,White -474,F,1950-10-31 00:00:00.000000, -475,F,1956-11-12 00:00:00.000000,Asian -476,M,1966-09-29 00:00:00.000000,Black -477,F,1976-04-23 00:00:00.000000,White -478,M,1951-12-25 00:00:00.000000,White -479,M,1981-11-19 00:00:00.000000,Black -480,F,1975-06-07 00:00:00.000000,Bangladeshi -481,F,1993-09-07 00:00:00.000000,White -482,F,1997-05-11 00:00:00.000000,Indian -483,M,1951-12-25 00:00:00.000000,White -484,M,1985-03-01 00:00:00.000000,White and Asian -485,F,1976-04-23 00:00:00.000000,White -486,M,1981-11-19 00:00:00.000000,Black -487,M,1966-09-29 00:00:00.000000,Black -488,F,1950-10-31 00:00:00.000000, -489,F,1956-11-12 00:00:00.000000,Asian -490,F,1975-06-07 00:00:00.000000,Bangladeshi -491,F,1976-04-23 00:00:00.000000,White -492,M,1985-03-01 00:00:00.000000,White and Asian -493,F,1950-10-31 00:00:00.000000, -494,M,1966-09-29 00:00:00.000000,Black -495,M,1951-12-25 00:00:00.000000,White -496,F,1993-09-07 00:00:00.000000,White -497,F,1956-11-12 00:00:00.000000,Asian -498,M,1981-11-19 00:00:00.000000,Black -499,F,1997-05-11 00:00:00.000000,Indian -500,F,1975-06-07 00:00:00.000000,Bangladeshi -501,M,1966-09-29 00:00:00.000000,Black -502,F,1975-06-07 00:00:00.000000,Bangladeshi -503,M,1985-03-01 00:00:00.000000,White and Asian -504,F,1950-10-31 00:00:00.000000, -505,F,1976-04-23 00:00:00.000000,White -506,M,1951-12-25 00:00:00.000000,White -507,M,1981-11-19 00:00:00.000000,Black -508,F,1993-09-07 00:00:00.000000,White -509,F,1997-05-11 00:00:00.000000,Indian -510,F,1956-11-12 00:00:00.000000,Asian -511,M,1966-09-29 00:00:00.000000,Black -512,F,1975-06-07 00:00:00.000000,Bangladeshi -513,F,1956-11-12 00:00:00.000000,Asian -514,F,1997-05-11 00:00:00.000000,Indian -515,M,1985-03-01 00:00:00.000000,White and Asian -516,F,1976-04-23 00:00:00.000000,White -517,M,1951-12-25 00:00:00.000000,White -518,F,1993-09-07 00:00:00.000000,White -519,M,1981-11-19 00:00:00.000000,Black -520,F,1950-10-31 00:00:00.000000, -521,F,1950-10-31 00:00:00.000000, -522,M,1981-11-19 00:00:00.000000,Black -523,M,1966-09-29 00:00:00.000000,Black -524,M,1951-12-25 00:00:00.000000,White -525,F,1976-04-23 00:00:00.000000,White -526,F,1993-09-07 00:00:00.000000,White -527,M,1985-03-01 00:00:00.000000,White and Asian -528,F,1997-05-11 00:00:00.000000,Indian -529,F,1975-06-07 00:00:00.000000,Bangladeshi -530,F,1956-11-12 00:00:00.000000,Asian -531,M,1966-09-29 00:00:00.000000,Black -532,F,1997-05-11 00:00:00.000000,Indian -533,F,1956-11-12 00:00:00.000000,Asian -534,F,1975-06-07 00:00:00.000000,Bangladeshi -535,F,1950-10-31 00:00:00.000000, -536,M,1951-12-25 00:00:00.000000,White -537,F,1993-09-07 00:00:00.000000,White -538,M,1985-03-01 00:00:00.000000,White and Asian -539,M,1981-11-19 00:00:00.000000,Black -540,F,1976-04-23 00:00:00.000000,White -541,M,1966-09-29 00:00:00.000000,Black -542,M,1981-11-19 00:00:00.000000,Black -543,F,1975-06-07 00:00:00.000000,Bangladeshi -544,F,1997-05-11 00:00:00.000000,Indian -545,F,1950-10-31 00:00:00.000000, -546,F,1956-11-12 00:00:00.000000,Asian -547,M,1951-12-25 00:00:00.000000,White -548,F,1976-04-23 00:00:00.000000,White -549,F,1993-09-07 00:00:00.000000,White -550,M,1985-03-01 00:00:00.000000,White and Asian -551,M,1985-03-01 00:00:00.000000,White and Asian -552,F,1956-11-12 00:00:00.000000,Asian -553,M,1966-09-29 00:00:00.000000,Black -554,F,1993-09-07 00:00:00.000000,White -555,F,1976-04-23 00:00:00.000000,White -556,F,1975-06-07 00:00:00.000000,Bangladeshi -557,M,1951-12-25 00:00:00.000000,White -558,F,1950-10-31 00:00:00.000000, -559,F,1997-05-11 00:00:00.000000,Indian -560,M,1981-11-19 00:00:00.000000,Black -561,F,1950-10-31 00:00:00.000000, -562,F,1997-05-11 00:00:00.000000,Indian -563,M,1981-11-19 00:00:00.000000,Black -564,F,1993-09-07 00:00:00.000000,White -565,F,1956-11-12 00:00:00.000000,Asian -566,F,1976-04-23 00:00:00.000000,White -567,M,1951-12-25 00:00:00.000000,White -568,M,1985-03-01 00:00:00.000000,White and Asian -569,M,1966-09-29 00:00:00.000000,Black -570,F,1975-06-07 00:00:00.000000,Bangladeshi -571,F,1976-04-23 00:00:00.000000,White -572,M,1981-11-19 00:00:00.000000,Black -573,F,1950-10-31 00:00:00.000000, -574,F,1997-05-11 00:00:00.000000,Indian -575,F,1975-06-07 00:00:00.000000,Bangladeshi -576,M,1951-12-25 00:00:00.000000,White -577,M,1985-03-01 00:00:00.000000,White and Asian -578,M,1966-09-29 00:00:00.000000,Black -579,F,1956-11-12 00:00:00.000000,Asian -580,F,1993-09-07 00:00:00.000000,White -581,F,1993-09-07 00:00:00.000000,White -582,M,1985-03-01 00:00:00.000000,White and Asian -583,M,1981-11-19 00:00:00.000000,Black -584,F,1950-10-31 00:00:00.000000, -585,M,1966-09-29 00:00:00.000000,Black -586,F,1976-04-23 00:00:00.000000,White -587,F,1997-05-11 00:00:00.000000,Indian -588,F,1956-11-12 00:00:00.000000,Asian -589,M,1951-12-25 00:00:00.000000,White -590,F,1975-06-07 00:00:00.000000,Bangladeshi -591,F,1956-11-12 00:00:00.000000,Asian -592,F,1997-05-11 00:00:00.000000,Indian -593,M,1951-12-25 00:00:00.000000,White -594,M,1966-09-29 00:00:00.000000,Black -595,F,1950-10-31 00:00:00.000000, -596,F,1976-04-23 00:00:00.000000,White -597,M,1985-03-01 00:00:00.000000,White and Asian -598,F,1993-09-07 00:00:00.000000,White -599,M,1981-11-19 00:00:00.000000,Black -600,F,1975-06-07 00:00:00.000000,Bangladeshi -601,M,1985-03-01 00:00:00.000000,White and Asian -602,M,1981-11-19 00:00:00.000000,Black -603,M,1951-12-25 00:00:00.000000,White -604,F,1956-11-12 00:00:00.000000,Asian -605,F,1997-05-11 00:00:00.000000,Indian -606,F,1993-09-07 00:00:00.000000,White -607,F,1975-06-07 00:00:00.000000,Bangladeshi -608,M,1966-09-29 00:00:00.000000,Black -609,F,1950-10-31 00:00:00.000000, -610,F,1976-04-23 00:00:00.000000,White -611,F,1950-10-31 00:00:00.000000, -612,M,1981-11-19 00:00:00.000000,Black -613,F,1975-06-07 00:00:00.000000,Bangladeshi -614,F,1976-04-23 00:00:00.000000,White -615,F,1993-09-07 00:00:00.000000,White -616,F,1956-11-12 00:00:00.000000,Asian -617,M,1985-03-01 00:00:00.000000,White and Asian -618,F,1997-05-11 00:00:00.000000,Indian -619,M,1951-12-25 00:00:00.000000,White -620,M,1966-09-29 00:00:00.000000,Black -621,F,1975-06-07 00:00:00.000000,Bangladeshi -622,F,1950-10-31 00:00:00.000000, -623,F,1976-04-23 00:00:00.000000,White -624,M,1981-11-19 00:00:00.000000,Black -625,M,1966-09-29 00:00:00.000000,Black -626,M,1985-03-01 00:00:00.000000,White and Asian -627,M,1951-12-25 00:00:00.000000,White -628,F,1997-05-11 00:00:00.000000,Indian -629,F,1956-11-12 00:00:00.000000,Asian -630,F,1993-09-07 00:00:00.000000,White -631,F,1997-05-11 00:00:00.000000,Indian -632,M,1985-03-01 00:00:00.000000,White and Asian -633,F,1956-11-12 00:00:00.000000,Asian -634,F,1950-10-31 00:00:00.000000, -635,M,1966-09-29 00:00:00.000000,Black -636,M,1951-12-25 00:00:00.000000,White -637,F,1975-06-07 00:00:00.000000,Bangladeshi -638,M,1981-11-19 00:00:00.000000,Black -639,F,1976-04-23 00:00:00.000000,White -640,F,1993-09-07 00:00:00.000000,White -641,M,1985-03-01 00:00:00.000000,White and Asian -642,M,1951-12-25 00:00:00.000000,White -643,F,1993-09-07 00:00:00.000000,White -644,M,1981-11-19 00:00:00.000000,Black -645,M,1966-09-29 00:00:00.000000,Black -646,F,1975-06-07 00:00:00.000000,Bangladeshi -647,F,1956-11-12 00:00:00.000000,Asian -648,F,1950-10-31 00:00:00.000000, -649,F,1997-05-11 00:00:00.000000,Indian -650,F,1976-04-23 00:00:00.000000,White -651,M,1966-09-29 00:00:00.000000,Black -652,F,1975-06-07 00:00:00.000000,Bangladeshi -653,F,1993-09-07 00:00:00.000000,White -654,F,1956-11-12 00:00:00.000000,Asian -655,M,1981-11-19 00:00:00.000000,Black -656,M,1951-12-25 00:00:00.000000,White -657,M,1985-03-01 00:00:00.000000,White and Asian -658,F,1950-10-31 00:00:00.000000, -659,F,1997-05-11 00:00:00.000000,Indian -660,F,1976-04-23 00:00:00.000000,White -661,M,1981-11-19 00:00:00.000000,Black -662,F,1997-05-11 00:00:00.000000,Indian -663,M,1985-03-01 00:00:00.000000,White and Asian -664,M,1951-12-25 00:00:00.000000,White -665,F,1956-11-12 00:00:00.000000,Asian -666,F,1975-06-07 00:00:00.000000,Bangladeshi -667,F,1976-04-23 00:00:00.000000,White -668,F,1950-10-31 00:00:00.000000, -669,M,1966-09-29 00:00:00.000000,Black -670,F,1993-09-07 00:00:00.000000,White -671,F,1975-06-07 00:00:00.000000,Bangladeshi -672,F,1976-04-23 00:00:00.000000,White -673,F,1997-05-11 00:00:00.000000,Indian -674,M,1966-09-29 00:00:00.000000,Black -675,F,1993-09-07 00:00:00.000000,White -676,F,1950-10-31 00:00:00.000000, -677,F,1956-11-12 00:00:00.000000,Asian -678,M,1951-12-25 00:00:00.000000,White -679,M,1985-03-01 00:00:00.000000,White and Asian -680,M,1981-11-19 00:00:00.000000,Black -681,F,1950-10-31 00:00:00.000000, -682,M,1951-12-25 00:00:00.000000,White -683,F,1976-04-23 00:00:00.000000,White -684,F,1993-09-07 00:00:00.000000,White -685,F,1975-06-07 00:00:00.000000,Bangladeshi -686,M,1966-09-29 00:00:00.000000,Black -687,F,1997-05-11 00:00:00.000000,Indian -688,M,1981-11-19 00:00:00.000000,Black -689,F,1956-11-12 00:00:00.000000,Asian -690,M,1985-03-01 00:00:00.000000,White and Asian -691,F,1993-09-07 00:00:00.000000,White -692,F,1956-11-12 00:00:00.000000,Asian -693,M,1981-11-19 00:00:00.000000,Black -694,F,1997-05-11 00:00:00.000000,Indian -695,F,1975-06-07 00:00:00.000000,Bangladeshi -696,M,1985-03-01 00:00:00.000000,White and Asian -697,M,1951-12-25 00:00:00.000000,White -698,F,1950-10-31 00:00:00.000000, -699,M,1966-09-29 00:00:00.000000,Black -700,F,1976-04-23 00:00:00.000000,White -701,F,1976-04-23 00:00:00.000000,White -702,M,1985-03-01 00:00:00.000000,White and Asian -703,M,1981-11-19 00:00:00.000000,Black -704,F,1956-11-12 00:00:00.000000,Asian -705,F,1993-09-07 00:00:00.000000,White -706,M,1966-09-29 00:00:00.000000,Black -707,F,1997-05-11 00:00:00.000000,Indian -708,F,1950-10-31 00:00:00.000000, -709,F,1975-06-07 00:00:00.000000,Bangladeshi -710,M,1951-12-25 00:00:00.000000,White -711,F,1975-06-07 00:00:00.000000,Bangladeshi -712,F,1956-11-12 00:00:00.000000,Asian -713,F,1950-10-31 00:00:00.000000, -714,M,1985-03-01 00:00:00.000000,White and Asian -715,M,1951-12-25 00:00:00.000000,White -716,F,1976-04-23 00:00:00.000000,White -717,F,1993-09-07 00:00:00.000000,White -718,F,1997-05-11 00:00:00.000000,Indian -719,M,1966-09-29 00:00:00.000000,Black -720,M,1981-11-19 00:00:00.000000,Black -721,F,1997-05-11 00:00:00.000000,Indian -722,F,1975-06-07 00:00:00.000000,Bangladeshi -723,M,1985-03-01 00:00:00.000000,White and Asian -724,F,1956-11-12 00:00:00.000000,Asian -725,F,1976-04-23 00:00:00.000000,White -726,F,1950-10-31 00:00:00.000000, -727,M,1951-12-25 00:00:00.000000,White -728,M,1981-11-19 00:00:00.000000,Black -729,M,1966-09-29 00:00:00.000000,Black -730,F,1993-09-07 00:00:00.000000,White -731,F,1950-10-31 00:00:00.000000, -732,M,1985-03-01 00:00:00.000000,White and Asian -733,F,1976-04-23 00:00:00.000000,White -734,M,1951-12-25 00:00:00.000000,White -735,M,1981-11-19 00:00:00.000000,Black -736,F,1993-09-07 00:00:00.000000,White -737,F,1997-05-11 00:00:00.000000,Indian -738,M,1966-09-29 00:00:00.000000,Black -739,F,1975-06-07 00:00:00.000000,Bangladeshi -740,F,1956-11-12 00:00:00.000000,Asian -741,M,1966-09-29 00:00:00.000000,Black -742,F,1950-10-31 00:00:00.000000, -743,F,1997-05-11 00:00:00.000000,Indian -744,F,1993-09-07 00:00:00.000000,White -745,F,1975-06-07 00:00:00.000000,Bangladeshi -746,F,1956-11-12 00:00:00.000000,Asian -747,M,1981-11-19 00:00:00.000000,Black -748,F,1976-04-23 00:00:00.000000,White -749,M,1951-12-25 00:00:00.000000,White -750,M,1985-03-01 00:00:00.000000,White and Asian -751,F,1956-11-12 00:00:00.000000,Asian -752,M,1966-09-29 00:00:00.000000,Black -753,F,1975-06-07 00:00:00.000000,Bangladeshi -754,M,1985-03-01 00:00:00.000000,White and Asian -755,F,1976-04-23 00:00:00.000000,White -756,F,1950-10-31 00:00:00.000000, -757,M,1981-11-19 00:00:00.000000,Black -758,F,1993-09-07 00:00:00.000000,White -759,F,1997-05-11 00:00:00.000000,Indian -760,M,1951-12-25 00:00:00.000000,White -761,F,1956-11-12 00:00:00.000000,Asian -762,F,1975-06-07 00:00:00.000000,Bangladeshi -763,F,1997-05-11 00:00:00.000000,Indian -764,M,1981-11-19 00:00:00.000000,Black -765,F,1950-10-31 00:00:00.000000, -766,M,1985-03-01 00:00:00.000000,White and Asian -767,F,1976-04-23 00:00:00.000000,White -768,M,1951-12-25 00:00:00.000000,White -769,M,1966-09-29 00:00:00.000000,Black -770,F,1993-09-07 00:00:00.000000,White -771,F,1993-09-07 00:00:00.000000,White -772,M,1966-09-29 00:00:00.000000,Black -773,M,1985-03-01 00:00:00.000000,White and Asian -774,F,1950-10-31 00:00:00.000000, -775,F,1976-04-23 00:00:00.000000,White -776,F,1997-05-11 00:00:00.000000,Indian -777,M,1951-12-25 00:00:00.000000,White -778,F,1956-11-12 00:00:00.000000,Asian -779,F,1975-06-07 00:00:00.000000,Bangladeshi -780,M,1981-11-19 00:00:00.000000,Black -781,M,1951-12-25 00:00:00.000000,White -782,F,1993-09-07 00:00:00.000000,White -783,F,1950-10-31 00:00:00.000000, -784,F,1997-05-11 00:00:00.000000,Indian -785,M,1981-11-19 00:00:00.000000,Black -786,M,1966-09-29 00:00:00.000000,Black -787,M,1985-03-01 00:00:00.000000,White and Asian -788,F,1976-04-23 00:00:00.000000,White -789,F,1975-06-07 00:00:00.000000,Bangladeshi -790,F,1956-11-12 00:00:00.000000,Asian -791,M,1966-09-29 00:00:00.000000,Black -792,M,1985-03-01 00:00:00.000000,White and Asian -793,F,1993-09-07 00:00:00.000000,White -794,M,1981-11-19 00:00:00.000000,Black -795,F,1997-05-11 00:00:00.000000,Indian -796,M,1951-12-25 00:00:00.000000,White -797,F,1975-06-07 00:00:00.000000,Bangladeshi -798,F,1976-04-23 00:00:00.000000,White -799,F,1956-11-12 00:00:00.000000,Asian -800,F,1950-10-31 00:00:00.000000, -801,F,1950-10-31 00:00:00.000000, -802,F,1993-09-07 00:00:00.000000,White -803,F,1975-06-07 00:00:00.000000,Bangladeshi -804,F,1956-11-12 00:00:00.000000,Asian -805,F,1997-05-11 00:00:00.000000,Indian -806,M,1951-12-25 00:00:00.000000,White -807,F,1976-04-23 00:00:00.000000,White -808,M,1981-11-19 00:00:00.000000,Black -809,M,1966-09-29 00:00:00.000000,Black -810,M,1985-03-01 00:00:00.000000,White and Asian -811,F,1956-11-12 00:00:00.000000,Asian -812,F,1950-10-31 00:00:00.000000, -813,F,1976-04-23 00:00:00.000000,White -814,M,1966-09-29 00:00:00.000000,Black -815,M,1981-11-19 00:00:00.000000,Black -816,M,1951-12-25 00:00:00.000000,White -817,F,1993-09-07 00:00:00.000000,White -818,M,1985-03-01 00:00:00.000000,White and Asian -819,F,1997-05-11 00:00:00.000000,Indian -820,F,1975-06-07 00:00:00.000000,Bangladeshi -821,F,1950-10-31 00:00:00.000000, -822,M,1966-09-29 00:00:00.000000,Black -823,F,1975-06-07 00:00:00.000000,Bangladeshi -824,M,1985-03-01 00:00:00.000000,White and Asian -825,M,1951-12-25 00:00:00.000000,White -826,F,1997-05-11 00:00:00.000000,Indian -827,F,1956-11-12 00:00:00.000000,Asian -828,M,1981-11-19 00:00:00.000000,Black -829,F,1976-04-23 00:00:00.000000,White -830,F,1993-09-07 00:00:00.000000,White -831,F,1956-11-12 00:00:00.000000,Asian -832,F,1997-05-11 00:00:00.000000,Indian -833,M,1985-03-01 00:00:00.000000,White and Asian -834,F,1976-04-23 00:00:00.000000,White -835,F,1993-09-07 00:00:00.000000,White -836,M,1981-11-19 00:00:00.000000,Black -837,M,1966-09-29 00:00:00.000000,Black -838,F,1975-06-07 00:00:00.000000,Bangladeshi -839,F,1950-10-31 00:00:00.000000, -840,M,1951-12-25 00:00:00.000000,White -841,M,1951-12-25 00:00:00.000000,White -842,M,1985-03-01 00:00:00.000000,White and Asian -843,M,1966-09-29 00:00:00.000000,Black -844,F,1956-11-12 00:00:00.000000,Asian -845,M,1981-11-19 00:00:00.000000,Black -846,F,1993-09-07 00:00:00.000000,White -847,F,1997-05-11 00:00:00.000000,Indian -848,F,1976-04-23 00:00:00.000000,White -849,F,1975-06-07 00:00:00.000000,Bangladeshi -850,F,1950-10-31 00:00:00.000000, -851,F,1950-10-31 00:00:00.000000, -852,M,1966-09-29 00:00:00.000000,Black -853,F,1975-06-07 00:00:00.000000,Bangladeshi -854,F,1976-04-23 00:00:00.000000,White -855,M,1951-12-25 00:00:00.000000,White -856,M,1981-11-19 00:00:00.000000,Black -857,M,1985-03-01 00:00:00.000000,White and Asian -858,F,1997-05-11 00:00:00.000000,Indian -859,F,1956-11-12 00:00:00.000000,Asian -860,F,1993-09-07 00:00:00.000000,White -861,M,1981-11-19 00:00:00.000000,Black -862,M,1966-09-29 00:00:00.000000,Black -863,F,1956-11-12 00:00:00.000000,Asian -864,M,1985-03-01 00:00:00.000000,White and Asian -865,F,1976-04-23 00:00:00.000000,White -866,M,1951-12-25 00:00:00.000000,White -867,F,1975-06-07 00:00:00.000000,Bangladeshi -868,F,1997-05-11 00:00:00.000000,Indian -869,F,1993-09-07 00:00:00.000000,White -870,F,1950-10-31 00:00:00.000000, -871,F,1997-05-11 00:00:00.000000,Indian -872,F,1975-06-07 00:00:00.000000,Bangladeshi -873,M,1985-03-01 00:00:00.000000,White and Asian -874,F,1950-10-31 00:00:00.000000, -875,M,1951-12-25 00:00:00.000000,White -876,F,1956-11-12 00:00:00.000000,Asian -877,F,1993-09-07 00:00:00.000000,White -878,M,1966-09-29 00:00:00.000000,Black -879,F,1976-04-23 00:00:00.000000,White -880,M,1981-11-19 00:00:00.000000,Black -881,F,1993-09-07 00:00:00.000000,White -882,F,1997-05-11 00:00:00.000000,Indian -883,F,1956-11-12 00:00:00.000000,Asian -884,F,1950-10-31 00:00:00.000000, -885,M,1985-03-01 00:00:00.000000,White and Asian -886,M,1981-11-19 00:00:00.000000,Black -887,M,1951-12-25 00:00:00.000000,White -888,F,1976-04-23 00:00:00.000000,White -889,F,1975-06-07 00:00:00.000000,Bangladeshi -890,M,1966-09-29 00:00:00.000000,Black -891,M,1966-09-29 00:00:00.000000,Black -892,M,1985-03-01 00:00:00.000000,White and Asian -893,F,1976-04-23 00:00:00.000000,White -894,F,1950-10-31 00:00:00.000000, -895,F,1975-06-07 00:00:00.000000,Bangladeshi -896,M,1951-12-25 00:00:00.000000,White -897,F,1993-09-07 00:00:00.000000,White -898,F,1956-11-12 00:00:00.000000,Asian -899,F,1997-05-11 00:00:00.000000,Indian -900,M,1981-11-19 00:00:00.000000,Black -901,M,1966-09-29 00:00:00.000000,Black -902,F,1950-10-31 00:00:00.000000, -903,M,1985-03-01 00:00:00.000000,White and Asian -904,F,1976-04-23 00:00:00.000000,White -905,M,1951-12-25 00:00:00.000000,White -906,M,1981-11-19 00:00:00.000000,Black -907,F,1975-06-07 00:00:00.000000,Bangladeshi -908,F,1993-09-07 00:00:00.000000,White -909,F,1956-11-12 00:00:00.000000,Asian -910,F,1997-05-11 00:00:00.000000,Indian -911,F,1950-10-31 00:00:00.000000, -912,M,1951-12-25 00:00:00.000000,White -913,F,1993-09-07 00:00:00.000000,White -914,F,1975-06-07 00:00:00.000000,Bangladeshi -915,F,1956-11-12 00:00:00.000000,Asian -916,F,1997-05-11 00:00:00.000000,Indian -917,M,1966-09-29 00:00:00.000000,Black -918,M,1981-11-19 00:00:00.000000,Black -919,F,1976-04-23 00:00:00.000000,White -920,M,1985-03-01 00:00:00.000000,White and Asian -921,F,1993-09-07 00:00:00.000000,White -922,M,1985-03-01 00:00:00.000000,White and Asian -923,M,1966-09-29 00:00:00.000000,Black -924,F,1997-05-11 00:00:00.000000,Indian -925,F,1950-10-31 00:00:00.000000, -926,M,1951-12-25 00:00:00.000000,White -927,F,1975-06-07 00:00:00.000000,Bangladeshi -928,F,1976-04-23 00:00:00.000000,White -929,M,1981-11-19 00:00:00.000000,Black -930,F,1956-11-12 00:00:00.000000,Asian -931,F,1950-10-31 00:00:00.000000, -932,M,1951-12-25 00:00:00.000000,White -933,F,1976-04-23 00:00:00.000000,White -934,F,1956-11-12 00:00:00.000000,Asian -935,F,1993-09-07 00:00:00.000000,White -936,M,1966-09-29 00:00:00.000000,Black -937,F,1975-06-07 00:00:00.000000,Bangladeshi -938,F,1997-05-11 00:00:00.000000,Indian -939,M,1981-11-19 00:00:00.000000,Black -940,M,1985-03-01 00:00:00.000000,White and Asian -941,F,1993-09-07 00:00:00.000000,White -942,F,1997-05-11 00:00:00.000000,Indian -943,F,1975-06-07 00:00:00.000000,Bangladeshi -944,M,1981-11-19 00:00:00.000000,Black -945,F,1950-10-31 00:00:00.000000, -946,M,1966-09-29 00:00:00.000000,Black -947,M,1951-12-25 00:00:00.000000,White -948,F,1976-04-23 00:00:00.000000,White -949,M,1985-03-01 00:00:00.000000,White and Asian -950,F,1956-11-12 00:00:00.000000,Asian -951,M,1966-09-29 00:00:00.000000,Black -952,F,1997-05-11 00:00:00.000000,Indian -953,F,1975-06-07 00:00:00.000000,Bangladeshi -954,M,1985-03-01 00:00:00.000000,White and Asian -955,F,1956-11-12 00:00:00.000000,Asian -956,F,1976-04-23 00:00:00.000000,White -957,F,1950-10-31 00:00:00.000000, -958,M,1951-12-25 00:00:00.000000,White -959,M,1981-11-19 00:00:00.000000,Black -960,F,1993-09-07 00:00:00.000000,White -961,F,1975-06-07 00:00:00.000000,Bangladeshi -962,F,1976-04-23 00:00:00.000000,White -963,F,1950-10-31 00:00:00.000000, -964,F,1993-09-07 00:00:00.000000,White -965,F,1956-11-12 00:00:00.000000,Asian -966,M,1966-09-29 00:00:00.000000,Black -967,M,1951-12-25 00:00:00.000000,White -968,M,1981-11-19 00:00:00.000000,Black -969,F,1997-05-11 00:00:00.000000,Indian -970,M,1985-03-01 00:00:00.000000,White and Asian -971,M,1985-03-01 00:00:00.000000,White and Asian -972,M,1981-11-19 00:00:00.000000,Black -973,F,1975-06-07 00:00:00.000000,Bangladeshi -974,F,1993-09-07 00:00:00.000000,White -975,F,1976-04-23 00:00:00.000000,White -976,F,1956-11-12 00:00:00.000000,Asian -977,F,1997-05-11 00:00:00.000000,Indian -978,F,1950-10-31 00:00:00.000000, -979,M,1951-12-25 00:00:00.000000,White -980,M,1966-09-29 00:00:00.000000,Black -981,F,1976-04-23 00:00:00.000000,White -982,F,1950-10-31 00:00:00.000000, -983,F,1975-06-07 00:00:00.000000,Bangladeshi -984,F,1993-09-07 00:00:00.000000,White -985,M,1966-09-29 00:00:00.000000,Black -986,F,1997-05-11 00:00:00.000000,Indian -987,F,1956-11-12 00:00:00.000000,Asian -988,M,1981-11-19 00:00:00.000000,Black -989,M,1985-03-01 00:00:00.000000,White and Asian -990,M,1951-12-25 00:00:00.000000,White -991,F,1956-11-12 00:00:00.000000,Asian -992,M,1981-11-19 00:00:00.000000,Black -993,F,1976-04-23 00:00:00.000000,White -994,M,1951-12-25 00:00:00.000000,White -995,F,1950-10-31 00:00:00.000000, -996,F,1993-09-07 00:00:00.000000,White -997,M,1966-09-29 00:00:00.000000,Black -998,F,1975-06-07 00:00:00.000000,Bangladeshi -999,F,1997-05-11 00:00:00.000000,Indian -1000,M,1985-03-01 00:00:00.000000,White and Asian -1001,F,1956-11-12 00:00:00.000000,Asian -1002,F,1950-10-31 00:00:00.000000, -1003,M,1981-11-19 00:00:00.000000,Black -1004,M,1966-09-29 00:00:00.000000,Black -1005,F,1993-09-07 00:00:00.000000,White -1006,M,1985-03-01 00:00:00.000000,White and Asian -1007,F,1997-05-11 00:00:00.000000,Indian -1008,F,1976-04-23 00:00:00.000000,White -1009,M,1951-12-25 00:00:00.000000,White -1010,F,1975-06-07 00:00:00.000000,Bangladeshi -1011,M,1981-11-19 00:00:00.000000,Black -1012,M,1966-09-29 00:00:00.000000,Black -1013,M,1951-12-25 00:00:00.000000,White -1014,M,1985-03-01 00:00:00.000000,White and Asian -1015,F,1950-10-31 00:00:00.000000, -1016,F,1975-06-07 00:00:00.000000,Bangladeshi -1017,F,1976-04-23 00:00:00.000000,White -1018,F,1956-11-12 00:00:00.000000,Asian -1019,F,1993-09-07 00:00:00.000000,White -1020,F,1997-05-11 00:00:00.000000,Indian -1021,F,1956-11-12 00:00:00.000000,Asian -1022,M,1981-11-19 00:00:00.000000,Black -1023,F,1997-05-11 00:00:00.000000,Indian -1024,F,1976-04-23 00:00:00.000000,White -1025,F,1975-06-07 00:00:00.000000,Bangladeshi -1026,M,1966-09-29 00:00:00.000000,Black -1027,F,1950-10-31 00:00:00.000000, -1028,M,1951-12-25 00:00:00.000000,White -1029,F,1993-09-07 00:00:00.000000,White -1030,M,1985-03-01 00:00:00.000000,White and Asian -1031,M,1985-03-01 00:00:00.000000,White and Asian -1032,F,1956-11-12 00:00:00.000000,Asian -1033,M,1951-12-25 00:00:00.000000,White -1034,M,1981-11-19 00:00:00.000000,Black -1035,F,1976-04-23 00:00:00.000000,White -1036,F,1993-09-07 00:00:00.000000,White -1037,F,1975-06-07 00:00:00.000000,Bangladeshi -1038,F,1950-10-31 00:00:00.000000, -1039,F,1997-05-11 00:00:00.000000,Indian -1040,M,1966-09-29 00:00:00.000000,Black -1041,F,1950-10-31 00:00:00.000000, -1042,F,1997-05-11 00:00:00.000000,Indian -1043,F,1956-11-12 00:00:00.000000,Asian -1044,F,1975-06-07 00:00:00.000000,Bangladeshi -1045,M,1985-03-01 00:00:00.000000,White and Asian -1046,F,1976-04-23 00:00:00.000000,White -1047,F,1993-09-07 00:00:00.000000,White -1048,M,1966-09-29 00:00:00.000000,Black -1049,M,1981-11-19 00:00:00.000000,Black -1050,M,1951-12-25 00:00:00.000000,White -1051,F,1950-10-31 00:00:00.000000, -1052,M,1966-09-29 00:00:00.000000,Black -1053,F,1956-11-12 00:00:00.000000,Asian -1054,F,1975-06-07 00:00:00.000000,Bangladeshi -1055,M,1981-11-19 00:00:00.000000,Black -1056,M,1985-03-01 00:00:00.000000,White and Asian -1057,F,1993-09-07 00:00:00.000000,White -1058,M,1951-12-25 00:00:00.000000,White -1059,F,1976-04-23 00:00:00.000000,White -1060,F,1997-05-11 00:00:00.000000,Indian -1061,M,1981-11-19 00:00:00.000000,Black -1062,M,1966-09-29 00:00:00.000000,Black -1063,F,1993-09-07 00:00:00.000000,White -1064,F,1975-06-07 00:00:00.000000,Bangladeshi -1065,F,1956-11-12 00:00:00.000000,Asian -1066,M,1985-03-01 00:00:00.000000,White and Asian -1067,M,1951-12-25 00:00:00.000000,White -1068,F,1997-05-11 00:00:00.000000,Indian -1069,F,1976-04-23 00:00:00.000000,White -1070,F,1950-10-31 00:00:00.000000, -1071,F,1975-06-07 00:00:00.000000,Bangladeshi -1072,F,1997-05-11 00:00:00.000000,Indian -1073,M,1951-12-25 00:00:00.000000,White -1074,F,1976-04-23 00:00:00.000000,White -1075,F,1950-10-31 00:00:00.000000, -1076,F,1956-11-12 00:00:00.000000,Asian -1077,M,1981-11-19 00:00:00.000000,Black -1078,F,1993-09-07 00:00:00.000000,White -1079,M,1985-03-01 00:00:00.000000,White and Asian -1080,M,1966-09-29 00:00:00.000000,Black -1081,F,1976-04-23 00:00:00.000000,White -1082,M,1951-12-25 00:00:00.000000,White -1083,M,1985-03-01 00:00:00.000000,White and Asian -1084,M,1981-11-19 00:00:00.000000,Black -1085,F,1950-10-31 00:00:00.000000, -1086,F,1993-09-07 00:00:00.000000,White -1087,F,1956-11-12 00:00:00.000000,Asian -1088,F,1997-05-11 00:00:00.000000,Indian -1089,M,1966-09-29 00:00:00.000000,Black -1090,F,1975-06-07 00:00:00.000000,Bangladeshi -1091,F,1997-05-11 00:00:00.000000,Indian -1092,F,1950-10-31 00:00:00.000000, -1093,F,1975-06-07 00:00:00.000000,Bangladeshi -1094,F,1976-04-23 00:00:00.000000,White -1095,F,1956-11-12 00:00:00.000000,Asian -1096,F,1993-09-07 00:00:00.000000,White -1097,M,1951-12-25 00:00:00.000000,White -1098,M,1966-09-29 00:00:00.000000,Black -1099,M,1985-03-01 00:00:00.000000,White and Asian -1100,M,1981-11-19 00:00:00.000000,Black diff --git a/carrot/data/test/inputs/original/Symptoms.csv b/carrot/data/test/inputs/original/Symptoms.csv deleted file mode 100644 index ce6e9341..00000000 --- a/carrot/data/test/inputs/original/Symptoms.csv +++ /dev/null @@ -1,801 +0,0 @@ -PersonID,visit_date,symptom1,symptom2,symptom3 -101,2020-11-15 00:00:00.000000,Y,Y,Y -102,2020-01-04 00:00:00.000000,Y,Y,Y -103,2020-03-27 00:00:00.000000,Y,Y,Y -104,2020-06-24 00:00:00.000000,N,N,N -105,2020-07-27 00:00:00.000000,Y,Y,Y -108,2020-11-04 00:00:00.000000,N,Y,N -109,2020-12-24 00:00:00.000000,N,N,N -110,2020-02-04 00:00:00.000000,N,N,N -109,2020-02-04 00:00:00.000000,N,N,N -110,2020-01-04 00:00:00.000000,Y,Y,Y -111,2020-03-27 00:00:00.000000,Y,Y,Y -112,2020-11-15 00:00:00.000000,Y,Y,Y -113,2020-12-24 00:00:00.000000,N,N,N -116,2020-11-04 00:00:00.000000,N,Y,N -117,2020-07-27 00:00:00.000000,Y,Y,Y -118,2020-06-24 00:00:00.000000,N,N,N -117,2020-12-24 00:00:00.000000,N,N,N -118,2020-11-15 00:00:00.000000,Y,Y,Y -119,2020-11-04 00:00:00.000000,N,Y,N -120,2020-07-27 00:00:00.000000,Y,Y,Y -121,2020-06-24 00:00:00.000000,N,N,N -124,2020-03-27 00:00:00.000000,Y,Y,Y -125,2020-02-04 00:00:00.000000,N,N,N -126,2020-01-04 00:00:00.000000,Y,Y,Y -125,2020-12-24 00:00:00.000000,N,N,N -126,2020-06-24 00:00:00.000000,N,N,N -127,2020-02-04 00:00:00.000000,N,N,N -128,2020-11-15 00:00:00.000000,Y,Y,Y -129,2020-01-04 00:00:00.000000,Y,Y,Y -132,2020-03-27 00:00:00.000000,Y,Y,Y -133,2020-11-04 00:00:00.000000,N,Y,N -134,2020-07-27 00:00:00.000000,Y,Y,Y -133,2020-03-27 00:00:00.000000,Y,Y,Y -134,2020-11-15 00:00:00.000000,Y,Y,Y -135,2020-12-24 00:00:00.000000,N,N,N -136,2020-11-04 00:00:00.000000,N,Y,N -137,2020-02-04 00:00:00.000000,N,N,N -140,2020-07-27 00:00:00.000000,Y,Y,Y -141,2020-01-04 00:00:00.000000,Y,Y,Y -142,2020-06-24 00:00:00.000000,N,N,N -141,2020-11-15 00:00:00.000000,Y,Y,Y -142,2020-07-27 00:00:00.000000,Y,Y,Y -143,2020-06-24 00:00:00.000000,N,N,N -144,2020-02-04 00:00:00.000000,N,N,N -145,2020-11-04 00:00:00.000000,N,Y,N -148,2020-03-27 00:00:00.000000,Y,Y,Y -149,2020-12-24 00:00:00.000000,N,N,N -150,2020-01-04 00:00:00.000000,Y,Y,Y -149,2020-02-04 00:00:00.000000,N,N,N -150,2020-12-24 00:00:00.000000,N,N,N -151,2020-07-27 00:00:00.000000,Y,Y,Y -152,2020-01-04 00:00:00.000000,Y,Y,Y -153,2020-11-04 00:00:00.000000,N,Y,N -156,2020-06-24 00:00:00.000000,N,N,N -157,2020-11-15 00:00:00.000000,Y,Y,Y -158,2020-03-27 00:00:00.000000,Y,Y,Y -157,2020-11-15 00:00:00.000000,Y,Y,Y -158,2020-02-04 00:00:00.000000,N,N,N -159,2020-07-27 00:00:00.000000,Y,Y,Y -160,2020-06-24 00:00:00.000000,N,N,N -161,2020-12-24 00:00:00.000000,N,N,N -164,2020-11-04 00:00:00.000000,N,Y,N -165,2020-03-27 00:00:00.000000,Y,Y,Y -166,2020-01-04 00:00:00.000000,Y,Y,Y -165,2020-01-04 00:00:00.000000,Y,Y,Y -166,2020-07-27 00:00:00.000000,Y,Y,Y -167,2020-06-24 00:00:00.000000,N,N,N -168,2020-03-27 00:00:00.000000,Y,Y,Y -169,2020-12-24 00:00:00.000000,N,N,N -172,2020-11-15 00:00:00.000000,Y,Y,Y -173,2020-02-04 00:00:00.000000,N,N,N -174,2020-11-04 00:00:00.000000,N,Y,N -173,2020-02-04 00:00:00.000000,N,N,N -174,2020-11-15 00:00:00.000000,Y,Y,Y -175,2020-07-27 00:00:00.000000,Y,Y,Y -176,2020-01-04 00:00:00.000000,Y,Y,Y -177,2020-06-24 00:00:00.000000,N,N,N -180,2020-11-04 00:00:00.000000,N,Y,N -181,2020-12-24 00:00:00.000000,N,N,N -182,2020-03-27 00:00:00.000000,Y,Y,Y -181,2020-12-24 00:00:00.000000,N,N,N -182,2020-11-04 00:00:00.000000,N,Y,N -183,2020-02-04 00:00:00.000000,N,N,N -184,2020-07-27 00:00:00.000000,Y,Y,Y -185,2020-11-15 00:00:00.000000,Y,Y,Y -188,2020-06-24 00:00:00.000000,N,N,N -189,2020-01-04 00:00:00.000000,Y,Y,Y -190,2020-03-27 00:00:00.000000,Y,Y,Y -189,2020-12-24 00:00:00.000000,N,N,N -190,2020-03-27 00:00:00.000000,Y,Y,Y -191,2020-11-15 00:00:00.000000,Y,Y,Y -192,2020-07-27 00:00:00.000000,Y,Y,Y -193,2020-01-04 00:00:00.000000,Y,Y,Y -196,2020-06-24 00:00:00.000000,N,N,N -197,2020-02-04 00:00:00.000000,N,N,N -198,2020-11-04 00:00:00.000000,N,Y,N -197,2020-07-27 00:00:00.000000,Y,Y,Y -198,2020-01-04 00:00:00.000000,Y,Y,Y -199,2020-12-24 00:00:00.000000,N,N,N -200,2020-11-04 00:00:00.000000,N,Y,N -201,2020-03-27 00:00:00.000000,Y,Y,Y -204,2020-02-04 00:00:00.000000,N,N,N -205,2020-06-24 00:00:00.000000,N,N,N -206,2020-11-15 00:00:00.000000,Y,Y,Y -205,2020-07-27 00:00:00.000000,Y,Y,Y -206,2020-03-27 00:00:00.000000,Y,Y,Y -207,2020-11-15 00:00:00.000000,Y,Y,Y -208,2020-11-04 00:00:00.000000,N,Y,N -209,2020-01-04 00:00:00.000000,Y,Y,Y -212,2020-06-24 00:00:00.000000,N,N,N -213,2020-12-24 00:00:00.000000,N,N,N -214,2020-02-04 00:00:00.000000,N,N,N -213,2020-06-24 00:00:00.000000,N,N,N -214,2020-03-27 00:00:00.000000,Y,Y,Y -215,2020-11-04 00:00:00.000000,N,Y,N -216,2020-01-04 00:00:00.000000,Y,Y,Y -217,2020-07-27 00:00:00.000000,Y,Y,Y -220,2020-12-24 00:00:00.000000,N,N,N -221,2020-02-04 00:00:00.000000,N,N,N -222,2020-11-15 00:00:00.000000,Y,Y,Y -221,2020-07-27 00:00:00.000000,Y,Y,Y -222,2020-01-04 00:00:00.000000,Y,Y,Y -223,2020-12-24 00:00:00.000000,N,N,N -224,2020-02-04 00:00:00.000000,N,N,N -225,2020-06-24 00:00:00.000000,N,N,N -228,2020-03-27 00:00:00.000000,Y,Y,Y -229,2020-11-04 00:00:00.000000,N,Y,N -230,2020-11-15 00:00:00.000000,Y,Y,Y -229,2020-11-04 00:00:00.000000,N,Y,N -230,2020-03-27 00:00:00.000000,Y,Y,Y -231,2020-11-15 00:00:00.000000,Y,Y,Y -232,2020-12-24 00:00:00.000000,N,N,N -233,2020-06-24 00:00:00.000000,N,N,N -236,2020-01-04 00:00:00.000000,Y,Y,Y -237,2020-02-04 00:00:00.000000,N,N,N -238,2020-07-27 00:00:00.000000,Y,Y,Y -237,2020-12-24 00:00:00.000000,N,N,N -238,2020-11-15 00:00:00.000000,Y,Y,Y -239,2020-03-27 00:00:00.000000,Y,Y,Y -240,2020-01-04 00:00:00.000000,Y,Y,Y -241,2020-06-24 00:00:00.000000,N,N,N -244,2020-07-27 00:00:00.000000,Y,Y,Y -245,2020-11-04 00:00:00.000000,N,Y,N -246,2020-02-04 00:00:00.000000,N,N,N -245,2020-06-24 00:00:00.000000,N,N,N -246,2020-11-15 00:00:00.000000,Y,Y,Y -247,2020-01-04 00:00:00.000000,Y,Y,Y -248,2020-12-24 00:00:00.000000,N,N,N -249,2020-03-27 00:00:00.000000,Y,Y,Y -252,2020-02-04 00:00:00.000000,N,N,N -253,2020-11-04 00:00:00.000000,N,Y,N -254,2020-07-27 00:00:00.000000,Y,Y,Y -253,2020-06-24 00:00:00.000000,N,N,N -254,2020-01-04 00:00:00.000000,Y,Y,Y -255,2020-03-27 00:00:00.000000,Y,Y,Y -256,2020-02-04 00:00:00.000000,N,N,N -257,2020-07-27 00:00:00.000000,Y,Y,Y -260,2020-11-15 00:00:00.000000,Y,Y,Y -261,2020-12-24 00:00:00.000000,N,N,N -262,2020-11-04 00:00:00.000000,N,Y,N -261,2020-11-04 00:00:00.000000,N,Y,N -262,2020-03-27 00:00:00.000000,Y,Y,Y -263,2020-06-24 00:00:00.000000,N,N,N -264,2020-01-04 00:00:00.000000,Y,Y,Y -265,2020-11-15 00:00:00.000000,Y,Y,Y -268,2020-07-27 00:00:00.000000,Y,Y,Y -269,2020-02-04 00:00:00.000000,N,N,N -270,2020-12-24 00:00:00.000000,N,N,N -269,2020-02-04 00:00:00.000000,N,N,N -270,2020-11-15 00:00:00.000000,Y,Y,Y -271,2020-11-04 00:00:00.000000,N,Y,N -272,2020-01-04 00:00:00.000000,Y,Y,Y -273,2020-06-24 00:00:00.000000,N,N,N -276,2020-03-27 00:00:00.000000,Y,Y,Y -277,2020-12-24 00:00:00.000000,N,N,N -278,2020-07-27 00:00:00.000000,Y,Y,Y -277,2020-12-24 00:00:00.000000,N,N,N -278,2020-11-15 00:00:00.000000,Y,Y,Y -279,2020-02-04 00:00:00.000000,N,N,N -280,2020-03-27 00:00:00.000000,Y,Y,Y -281,2020-01-04 00:00:00.000000,Y,Y,Y -284,2020-06-24 00:00:00.000000,N,N,N -285,2020-11-04 00:00:00.000000,N,Y,N -286,2020-07-27 00:00:00.000000,Y,Y,Y -285,2020-12-24 00:00:00.000000,N,N,N -286,2020-11-15 00:00:00.000000,Y,Y,Y -287,2020-11-04 00:00:00.000000,N,Y,N -288,2020-07-27 00:00:00.000000,Y,Y,Y -289,2020-02-04 00:00:00.000000,N,N,N -292,2020-06-24 00:00:00.000000,N,N,N -293,2020-01-04 00:00:00.000000,Y,Y,Y -294,2020-03-27 00:00:00.000000,Y,Y,Y -293,2020-11-15 00:00:00.000000,Y,Y,Y -294,2020-02-04 00:00:00.000000,N,N,N -295,2020-07-27 00:00:00.000000,Y,Y,Y -296,2020-12-24 00:00:00.000000,N,N,N -297,2020-01-04 00:00:00.000000,Y,Y,Y -300,2020-11-04 00:00:00.000000,N,Y,N -301,2020-06-24 00:00:00.000000,N,N,N -302,2020-03-27 00:00:00.000000,Y,Y,Y -301,2020-12-24 00:00:00.000000,N,N,N -302,2020-01-04 00:00:00.000000,Y,Y,Y -303,2020-07-27 00:00:00.000000,Y,Y,Y -304,2020-06-24 00:00:00.000000,N,N,N -305,2020-11-04 00:00:00.000000,N,Y,N -308,2020-11-15 00:00:00.000000,Y,Y,Y -309,2020-02-04 00:00:00.000000,N,N,N -310,2020-03-27 00:00:00.000000,Y,Y,Y -309,2020-02-04 00:00:00.000000,N,N,N -310,2020-06-24 00:00:00.000000,N,N,N -311,2020-11-04 00:00:00.000000,N,Y,N -312,2020-11-15 00:00:00.000000,Y,Y,Y -313,2020-12-24 00:00:00.000000,N,N,N -316,2020-01-04 00:00:00.000000,Y,Y,Y -317,2020-07-27 00:00:00.000000,Y,Y,Y -318,2020-03-27 00:00:00.000000,Y,Y,Y -317,2020-01-04 00:00:00.000000,Y,Y,Y -318,2020-07-27 00:00:00.000000,Y,Y,Y -319,2020-12-24 00:00:00.000000,N,N,N -320,2020-11-04 00:00:00.000000,N,Y,N -321,2020-03-27 00:00:00.000000,Y,Y,Y -324,2020-11-15 00:00:00.000000,Y,Y,Y -325,2020-02-04 00:00:00.000000,N,N,N -326,2020-06-24 00:00:00.000000,N,N,N -325,2020-11-04 00:00:00.000000,N,Y,N -326,2020-07-27 00:00:00.000000,Y,Y,Y -327,2020-02-04 00:00:00.000000,N,N,N -328,2020-12-24 00:00:00.000000,N,N,N -329,2020-06-24 00:00:00.000000,N,N,N -332,2020-11-15 00:00:00.000000,Y,Y,Y -333,2020-03-27 00:00:00.000000,Y,Y,Y -334,2020-01-04 00:00:00.000000,Y,Y,Y -333,2020-06-24 00:00:00.000000,N,N,N -334,2020-02-04 00:00:00.000000,N,N,N -335,2020-11-04 00:00:00.000000,N,Y,N -336,2020-11-15 00:00:00.000000,Y,Y,Y -337,2020-01-04 00:00:00.000000,Y,Y,Y -340,2020-12-24 00:00:00.000000,N,N,N -341,2020-07-27 00:00:00.000000,Y,Y,Y -342,2020-03-27 00:00:00.000000,Y,Y,Y -341,2020-11-15 00:00:00.000000,Y,Y,Y -342,2020-06-24 00:00:00.000000,N,N,N -343,2020-12-24 00:00:00.000000,N,N,N -344,2020-07-27 00:00:00.000000,Y,Y,Y -345,2020-02-04 00:00:00.000000,N,N,N -348,2020-11-04 00:00:00.000000,N,Y,N -349,2020-03-27 00:00:00.000000,Y,Y,Y -350,2020-01-04 00:00:00.000000,Y,Y,Y -349,2020-03-27 00:00:00.000000,Y,Y,Y -350,2020-02-04 00:00:00.000000,N,N,N -351,2020-11-15 00:00:00.000000,Y,Y,Y -352,2020-11-04 00:00:00.000000,N,Y,N -353,2020-01-04 00:00:00.000000,Y,Y,Y -356,2020-06-24 00:00:00.000000,N,N,N -357,2020-07-27 00:00:00.000000,Y,Y,Y -358,2020-12-24 00:00:00.000000,N,N,N -357,2020-06-24 00:00:00.000000,N,N,N -358,2020-11-04 00:00:00.000000,N,Y,N -359,2020-07-27 00:00:00.000000,Y,Y,Y -360,2020-11-15 00:00:00.000000,Y,Y,Y -361,2020-03-27 00:00:00.000000,Y,Y,Y -364,2020-12-24 00:00:00.000000,N,N,N -365,2020-01-04 00:00:00.000000,Y,Y,Y -366,2020-02-04 00:00:00.000000,N,N,N -365,2020-02-04 00:00:00.000000,N,N,N -366,2020-07-27 00:00:00.000000,Y,Y,Y -367,2020-11-15 00:00:00.000000,Y,Y,Y -368,2020-12-24 00:00:00.000000,N,N,N -369,2020-03-27 00:00:00.000000,Y,Y,Y -372,2020-06-24 00:00:00.000000,N,N,N -373,2020-11-04 00:00:00.000000,N,Y,N -374,2020-01-04 00:00:00.000000,Y,Y,Y -373,2020-12-24 00:00:00.000000,N,N,N -374,2020-01-04 00:00:00.000000,Y,Y,Y -375,2020-03-27 00:00:00.000000,Y,Y,Y -376,2020-11-15 00:00:00.000000,Y,Y,Y -377,2020-06-24 00:00:00.000000,N,N,N -380,2020-07-27 00:00:00.000000,Y,Y,Y -381,2020-02-04 00:00:00.000000,N,N,N -382,2020-11-04 00:00:00.000000,N,Y,N -381,2020-11-04 00:00:00.000000,N,Y,N -382,2020-07-27 00:00:00.000000,Y,Y,Y -383,2020-03-27 00:00:00.000000,Y,Y,Y -384,2020-06-24 00:00:00.000000,N,N,N -385,2020-12-24 00:00:00.000000,N,N,N -388,2020-01-04 00:00:00.000000,Y,Y,Y -389,2020-02-04 00:00:00.000000,N,N,N -390,2020-11-15 00:00:00.000000,Y,Y,Y -389,2020-07-27 00:00:00.000000,Y,Y,Y -390,2020-06-24 00:00:00.000000,N,N,N -391,2020-01-04 00:00:00.000000,Y,Y,Y -392,2020-03-27 00:00:00.000000,Y,Y,Y -393,2020-11-15 00:00:00.000000,Y,Y,Y -396,2020-11-04 00:00:00.000000,N,Y,N -397,2020-12-24 00:00:00.000000,N,N,N -398,2020-02-04 00:00:00.000000,N,N,N -397,2020-02-04 00:00:00.000000,N,N,N -398,2020-01-04 00:00:00.000000,Y,Y,Y -399,2020-11-15 00:00:00.000000,Y,Y,Y -400,2020-06-24 00:00:00.000000,N,N,N -401,2020-03-27 00:00:00.000000,Y,Y,Y -404,2020-11-04 00:00:00.000000,N,Y,N -405,2020-12-24 00:00:00.000000,N,N,N -406,2020-07-27 00:00:00.000000,Y,Y,Y -405,2020-07-27 00:00:00.000000,Y,Y,Y -406,2020-02-04 00:00:00.000000,N,N,N -407,2020-01-04 00:00:00.000000,Y,Y,Y -408,2020-06-24 00:00:00.000000,N,N,N -409,2020-11-15 00:00:00.000000,Y,Y,Y -412,2020-03-27 00:00:00.000000,Y,Y,Y -413,2020-12-24 00:00:00.000000,N,N,N -414,2020-11-04 00:00:00.000000,N,Y,N -413,2020-07-27 00:00:00.000000,Y,Y,Y -414,2020-11-15 00:00:00.000000,Y,Y,Y -415,2020-02-04 00:00:00.000000,N,N,N -416,2020-01-04 00:00:00.000000,Y,Y,Y -417,2020-12-24 00:00:00.000000,N,N,N -420,2020-11-04 00:00:00.000000,N,Y,N -421,2020-03-27 00:00:00.000000,Y,Y,Y -422,2020-06-24 00:00:00.000000,N,N,N -421,2020-11-15 00:00:00.000000,Y,Y,Y -422,2020-01-04 00:00:00.000000,Y,Y,Y -423,2020-06-24 00:00:00.000000,N,N,N -424,2020-03-27 00:00:00.000000,Y,Y,Y -425,2020-12-24 00:00:00.000000,N,N,N -428,2020-11-04 00:00:00.000000,N,Y,N -429,2020-07-27 00:00:00.000000,Y,Y,Y -430,2020-02-04 00:00:00.000000,N,N,N -429,2020-07-27 00:00:00.000000,Y,Y,Y -430,2020-11-04 00:00:00.000000,N,Y,N -431,2020-12-24 00:00:00.000000,N,N,N -432,2020-06-24 00:00:00.000000,N,N,N -433,2020-02-04 00:00:00.000000,N,N,N -436,2020-03-27 00:00:00.000000,Y,Y,Y -437,2020-11-15 00:00:00.000000,Y,Y,Y -438,2020-01-04 00:00:00.000000,Y,Y,Y -437,2020-11-04 00:00:00.000000,N,Y,N -438,2020-07-27 00:00:00.000000,Y,Y,Y -439,2020-01-04 00:00:00.000000,Y,Y,Y -440,2020-12-24 00:00:00.000000,N,N,N -441,2020-03-27 00:00:00.000000,Y,Y,Y -444,2020-02-04 00:00:00.000000,N,N,N -445,2020-11-15 00:00:00.000000,Y,Y,Y -446,2020-06-24 00:00:00.000000,N,N,N -445,2020-03-27 00:00:00.000000,Y,Y,Y -446,2020-07-27 00:00:00.000000,Y,Y,Y -447,2020-06-24 00:00:00.000000,N,N,N -448,2020-11-15 00:00:00.000000,Y,Y,Y -449,2020-01-04 00:00:00.000000,Y,Y,Y -452,2020-02-04 00:00:00.000000,N,N,N -453,2020-12-24 00:00:00.000000,N,N,N -454,2020-11-04 00:00:00.000000,N,Y,N -453,2020-12-24 00:00:00.000000,N,N,N -454,2020-07-27 00:00:00.000000,Y,Y,Y -455,2020-02-04 00:00:00.000000,N,N,N -456,2020-06-24 00:00:00.000000,N,N,N -457,2020-03-27 00:00:00.000000,Y,Y,Y -460,2020-11-15 00:00:00.000000,Y,Y,Y -461,2020-11-04 00:00:00.000000,N,Y,N -462,2020-01-04 00:00:00.000000,Y,Y,Y -461,2020-11-15 00:00:00.000000,Y,Y,Y -462,2020-12-24 00:00:00.000000,N,N,N -463,2020-01-04 00:00:00.000000,Y,Y,Y -464,2020-07-27 00:00:00.000000,Y,Y,Y -465,2020-06-24 00:00:00.000000,N,N,N -468,2020-03-27 00:00:00.000000,Y,Y,Y -469,2020-11-04 00:00:00.000000,N,Y,N -470,2020-02-04 00:00:00.000000,N,N,N -469,2020-03-27 00:00:00.000000,Y,Y,Y -470,2020-02-04 00:00:00.000000,N,N,N -471,2020-07-27 00:00:00.000000,Y,Y,Y -472,2020-12-24 00:00:00.000000,N,N,N -473,2020-06-24 00:00:00.000000,N,N,N -476,2020-11-15 00:00:00.000000,Y,Y,Y -477,2020-01-04 00:00:00.000000,Y,Y,Y -478,2020-11-04 00:00:00.000000,N,Y,N -477,2020-11-04 00:00:00.000000,N,Y,N -478,2020-07-27 00:00:00.000000,Y,Y,Y -479,2020-03-27 00:00:00.000000,Y,Y,Y -480,2020-01-04 00:00:00.000000,Y,Y,Y -481,2020-11-15 00:00:00.000000,Y,Y,Y -484,2020-12-24 00:00:00.000000,N,N,N -485,2020-02-04 00:00:00.000000,N,N,N -486,2020-06-24 00:00:00.000000,N,N,N -485,2020-06-24 00:00:00.000000,N,N,N -486,2020-12-24 00:00:00.000000,N,N,N -487,2020-11-04 00:00:00.000000,N,Y,N -488,2020-01-04 00:00:00.000000,Y,Y,Y -489,2020-07-27 00:00:00.000000,Y,Y,Y -492,2020-11-15 00:00:00.000000,Y,Y,Y -493,2020-02-04 00:00:00.000000,N,N,N -494,2020-03-27 00:00:00.000000,Y,Y,Y -493,2020-07-27 00:00:00.000000,Y,Y,Y -494,2020-11-15 00:00:00.000000,Y,Y,Y -495,2020-02-04 00:00:00.000000,N,N,N -496,2020-03-27 00:00:00.000000,Y,Y,Y -497,2020-11-04 00:00:00.000000,N,Y,N -500,2020-06-24 00:00:00.000000,N,N,N -501,2020-01-04 00:00:00.000000,Y,Y,Y -502,2020-12-24 00:00:00.000000,N,N,N -501,2020-11-15 00:00:00.000000,Y,Y,Y -502,2020-06-24 00:00:00.000000,N,N,N -503,2020-01-04 00:00:00.000000,Y,Y,Y -504,2020-02-04 00:00:00.000000,N,N,N -505,2020-03-27 00:00:00.000000,Y,Y,Y -508,2020-12-24 00:00:00.000000,N,N,N -509,2020-07-27 00:00:00.000000,Y,Y,Y -510,2020-11-04 00:00:00.000000,N,Y,N -509,2020-06-24 00:00:00.000000,N,N,N -510,2020-01-04 00:00:00.000000,Y,Y,Y -511,2020-11-15 00:00:00.000000,Y,Y,Y -512,2020-12-24 00:00:00.000000,N,N,N -513,2020-11-04 00:00:00.000000,N,Y,N -516,2020-07-27 00:00:00.000000,Y,Y,Y -517,2020-02-04 00:00:00.000000,N,N,N -518,2020-03-27 00:00:00.000000,Y,Y,Y -517,2020-11-04 00:00:00.000000,N,Y,N -518,2020-02-04 00:00:00.000000,N,N,N -519,2020-01-04 00:00:00.000000,Y,Y,Y -520,2020-06-24 00:00:00.000000,N,N,N -521,2020-07-27 00:00:00.000000,Y,Y,Y -524,2020-03-27 00:00:00.000000,Y,Y,Y -525,2020-11-15 00:00:00.000000,Y,Y,Y -526,2020-12-24 00:00:00.000000,N,N,N -525,2020-12-24 00:00:00.000000,N,N,N -526,2020-07-27 00:00:00.000000,Y,Y,Y -527,2020-06-24 00:00:00.000000,N,N,N -528,2020-11-04 00:00:00.000000,N,Y,N -529,2020-03-27 00:00:00.000000,Y,Y,Y -532,2020-01-04 00:00:00.000000,Y,Y,Y -533,2020-02-04 00:00:00.000000,N,N,N -534,2020-11-15 00:00:00.000000,Y,Y,Y -533,2020-12-24 00:00:00.000000,N,N,N -534,2020-02-04 00:00:00.000000,N,N,N -535,2020-11-15 00:00:00.000000,Y,Y,Y -536,2020-06-24 00:00:00.000000,N,N,N -537,2020-03-27 00:00:00.000000,Y,Y,Y -540,2020-01-04 00:00:00.000000,Y,Y,Y -541,2020-11-04 00:00:00.000000,N,Y,N -542,2020-07-27 00:00:00.000000,Y,Y,Y -541,2020-12-24 00:00:00.000000,N,N,N -542,2020-07-27 00:00:00.000000,Y,Y,Y -543,2020-02-04 00:00:00.000000,N,N,N -544,2020-11-15 00:00:00.000000,Y,Y,Y -545,2020-03-27 00:00:00.000000,Y,Y,Y -548,2020-01-04 00:00:00.000000,Y,Y,Y -549,2020-06-24 00:00:00.000000,N,N,N -550,2020-11-04 00:00:00.000000,N,Y,N -549,2020-11-15 00:00:00.000000,Y,Y,Y -550,2020-11-04 00:00:00.000000,N,Y,N -551,2020-03-27 00:00:00.000000,Y,Y,Y -552,2020-07-27 00:00:00.000000,Y,Y,Y -553,2020-12-24 00:00:00.000000,N,N,N -556,2020-02-04 00:00:00.000000,N,N,N -557,2020-01-04 00:00:00.000000,Y,Y,Y -558,2020-06-24 00:00:00.000000,N,N,N -557,2020-11-15 00:00:00.000000,Y,Y,Y -558,2020-07-27 00:00:00.000000,Y,Y,Y -559,2020-02-04 00:00:00.000000,N,N,N -560,2020-06-24 00:00:00.000000,N,N,N -561,2020-12-24 00:00:00.000000,N,N,N -564,2020-01-04 00:00:00.000000,Y,Y,Y -565,2020-11-04 00:00:00.000000,N,Y,N -566,2020-03-27 00:00:00.000000,Y,Y,Y -565,2020-07-27 00:00:00.000000,Y,Y,Y -566,2020-11-04 00:00:00.000000,N,Y,N -567,2020-12-24 00:00:00.000000,N,N,N -568,2020-06-24 00:00:00.000000,N,N,N -569,2020-02-04 00:00:00.000000,N,N,N -572,2020-01-04 00:00:00.000000,Y,Y,Y -573,2020-11-15 00:00:00.000000,Y,Y,Y -574,2020-03-27 00:00:00.000000,Y,Y,Y -573,2020-06-24 00:00:00.000000,N,N,N -574,2020-12-24 00:00:00.000000,N,N,N -575,2020-01-04 00:00:00.000000,Y,Y,Y -576,2020-11-15 00:00:00.000000,Y,Y,Y -577,2020-03-27 00:00:00.000000,Y,Y,Y -580,2020-02-04 00:00:00.000000,N,N,N -581,2020-07-27 00:00:00.000000,Y,Y,Y -582,2020-11-04 00:00:00.000000,N,Y,N -581,2020-11-04 00:00:00.000000,N,Y,N -582,2020-02-04 00:00:00.000000,N,N,N -583,2020-07-27 00:00:00.000000,Y,Y,Y -584,2020-01-04 00:00:00.000000,Y,Y,Y -585,2020-06-24 00:00:00.000000,N,N,N -588,2020-12-24 00:00:00.000000,N,N,N -589,2020-03-27 00:00:00.000000,Y,Y,Y -590,2020-11-15 00:00:00.000000,Y,Y,Y -589,2020-03-27 00:00:00.000000,Y,Y,Y -590,2020-07-27 00:00:00.000000,Y,Y,Y -591,2020-01-04 00:00:00.000000,Y,Y,Y -592,2020-06-24 00:00:00.000000,N,N,N -593,2020-11-04 00:00:00.000000,N,Y,N -596,2020-11-15 00:00:00.000000,Y,Y,Y -597,2020-12-24 00:00:00.000000,N,N,N -598,2020-02-04 00:00:00.000000,N,N,N -597,2020-02-04 00:00:00.000000,N,N,N -598,2020-12-24 00:00:00.000000,N,N,N -599,2020-03-27 00:00:00.000000,Y,Y,Y -600,2020-11-04 00:00:00.000000,N,Y,N -601,2020-11-15 00:00:00.000000,Y,Y,Y -604,2020-06-24 00:00:00.000000,N,N,N -605,2020-01-04 00:00:00.000000,Y,Y,Y -606,2020-07-27 00:00:00.000000,Y,Y,Y -605,2020-07-27 00:00:00.000000,Y,Y,Y -606,2020-12-24 00:00:00.000000,N,N,N -607,2020-06-24 00:00:00.000000,N,N,N -608,2020-01-04 00:00:00.000000,Y,Y,Y -609,2020-03-27 00:00:00.000000,Y,Y,Y -612,2020-11-15 00:00:00.000000,Y,Y,Y -613,2020-02-04 00:00:00.000000,N,N,N -614,2020-11-04 00:00:00.000000,N,Y,N -613,2020-02-04 00:00:00.000000,N,N,N -614,2020-12-24 00:00:00.000000,N,N,N -615,2020-11-04 00:00:00.000000,N,Y,N -616,2020-01-04 00:00:00.000000,Y,Y,Y -617,2020-06-24 00:00:00.000000,N,N,N -620,2020-11-15 00:00:00.000000,Y,Y,Y -621,2020-07-27 00:00:00.000000,Y,Y,Y -622,2020-03-27 00:00:00.000000,Y,Y,Y -621,2020-02-04 00:00:00.000000,N,N,N -622,2020-07-27 00:00:00.000000,Y,Y,Y -623,2020-12-24 00:00:00.000000,N,N,N -624,2020-11-04 00:00:00.000000,N,Y,N -625,2020-11-15 00:00:00.000000,Y,Y,Y -628,2020-06-24 00:00:00.000000,N,N,N -629,2020-03-27 00:00:00.000000,Y,Y,Y -630,2020-01-04 00:00:00.000000,Y,Y,Y -629,2020-03-27 00:00:00.000000,Y,Y,Y -630,2020-12-24 00:00:00.000000,N,N,N -631,2020-01-04 00:00:00.000000,Y,Y,Y -632,2020-02-04 00:00:00.000000,N,N,N -633,2020-11-04 00:00:00.000000,N,Y,N -636,2020-07-27 00:00:00.000000,Y,Y,Y -637,2020-06-24 00:00:00.000000,N,N,N -638,2020-11-15 00:00:00.000000,Y,Y,Y -637,2020-11-04 00:00:00.000000,N,Y,N -638,2020-06-24 00:00:00.000000,N,N,N -639,2020-12-24 00:00:00.000000,N,N,N -640,2020-01-04 00:00:00.000000,Y,Y,Y -641,2020-02-04 00:00:00.000000,N,N,N -644,2020-11-15 00:00:00.000000,Y,Y,Y -645,2020-03-27 00:00:00.000000,Y,Y,Y -646,2020-07-27 00:00:00.000000,Y,Y,Y -645,2020-02-04 00:00:00.000000,N,N,N -646,2020-01-04 00:00:00.000000,Y,Y,Y -647,2020-06-24 00:00:00.000000,N,N,N -648,2020-11-15 00:00:00.000000,Y,Y,Y -649,2020-07-27 00:00:00.000000,Y,Y,Y -652,2020-11-04 00:00:00.000000,N,Y,N -653,2020-12-24 00:00:00.000000,N,N,N -654,2020-03-27 00:00:00.000000,Y,Y,Y -653,2020-07-27 00:00:00.000000,Y,Y,Y -654,2020-03-27 00:00:00.000000,Y,Y,Y -655,2020-01-04 00:00:00.000000,Y,Y,Y -656,2020-11-04 00:00:00.000000,N,Y,N -657,2020-02-04 00:00:00.000000,N,N,N -660,2020-11-15 00:00:00.000000,Y,Y,Y -661,2020-12-24 00:00:00.000000,N,N,N -662,2020-06-24 00:00:00.000000,N,N,N -661,2020-03-27 00:00:00.000000,Y,Y,Y -662,2020-11-15 00:00:00.000000,Y,Y,Y -663,2020-02-04 00:00:00.000000,N,N,N -664,2020-07-27 00:00:00.000000,Y,Y,Y -665,2020-01-04 00:00:00.000000,Y,Y,Y -668,2020-11-04 00:00:00.000000,N,Y,N -669,2020-12-24 00:00:00.000000,N,N,N -670,2020-06-24 00:00:00.000000,N,N,N -669,2020-11-15 00:00:00.000000,Y,Y,Y -670,2020-02-04 00:00:00.000000,N,N,N -671,2020-06-24 00:00:00.000000,N,N,N -672,2020-12-24 00:00:00.000000,N,N,N -673,2020-01-04 00:00:00.000000,Y,Y,Y -676,2020-03-27 00:00:00.000000,Y,Y,Y -677,2020-07-27 00:00:00.000000,Y,Y,Y -678,2020-11-04 00:00:00.000000,N,Y,N -677,2020-11-15 00:00:00.000000,Y,Y,Y -678,2020-12-24 00:00:00.000000,N,N,N -679,2020-11-04 00:00:00.000000,N,Y,N -680,2020-07-27 00:00:00.000000,Y,Y,Y -681,2020-02-04 00:00:00.000000,N,N,N -684,2020-01-04 00:00:00.000000,Y,Y,Y -685,2020-06-24 00:00:00.000000,N,N,N -686,2020-03-27 00:00:00.000000,Y,Y,Y -685,2020-01-04 00:00:00.000000,Y,Y,Y -686,2020-11-04 00:00:00.000000,N,Y,N -687,2020-11-15 00:00:00.000000,Y,Y,Y -688,2020-12-24 00:00:00.000000,N,N,N -689,2020-03-27 00:00:00.000000,Y,Y,Y -692,2020-02-04 00:00:00.000000,N,N,N -693,2020-06-24 00:00:00.000000,N,N,N -694,2020-07-27 00:00:00.000000,Y,Y,Y -693,2020-11-04 00:00:00.000000,N,Y,N -694,2020-03-27 00:00:00.000000,Y,Y,Y -695,2020-06-24 00:00:00.000000,N,N,N -696,2020-01-04 00:00:00.000000,Y,Y,Y -697,2020-02-04 00:00:00.000000,N,N,N -700,2020-12-24 00:00:00.000000,N,N,N -701,2020-11-15 00:00:00.000000,Y,Y,Y -702,2020-07-27 00:00:00.000000,Y,Y,Y -701,2020-07-27 00:00:00.000000,Y,Y,Y -702,2020-11-04 00:00:00.000000,N,Y,N -703,2020-02-04 00:00:00.000000,N,N,N -704,2020-06-24 00:00:00.000000,N,N,N -705,2020-03-27 00:00:00.000000,Y,Y,Y -708,2020-11-15 00:00:00.000000,Y,Y,Y -709,2020-01-04 00:00:00.000000,Y,Y,Y -710,2020-12-24 00:00:00.000000,N,N,N -709,2020-11-04 00:00:00.000000,N,Y,N -710,2020-01-04 00:00:00.000000,Y,Y,Y -711,2020-07-27 00:00:00.000000,Y,Y,Y -712,2020-11-15 00:00:00.000000,Y,Y,Y -713,2020-12-24 00:00:00.000000,N,N,N -716,2020-02-04 00:00:00.000000,N,N,N -717,2020-06-24 00:00:00.000000,N,N,N -718,2020-03-27 00:00:00.000000,Y,Y,Y -717,2020-12-24 00:00:00.000000,N,N,N -718,2020-06-24 00:00:00.000000,N,N,N -719,2020-11-04 00:00:00.000000,N,Y,N -720,2020-02-04 00:00:00.000000,N,N,N -721,2020-07-27 00:00:00.000000,Y,Y,Y -724,2020-01-04 00:00:00.000000,Y,Y,Y -725,2020-11-15 00:00:00.000000,Y,Y,Y -726,2020-03-27 00:00:00.000000,Y,Y,Y -725,2020-02-04 00:00:00.000000,N,N,N -726,2020-12-24 00:00:00.000000,N,N,N -727,2020-03-27 00:00:00.000000,Y,Y,Y -728,2020-11-15 00:00:00.000000,Y,Y,Y -729,2020-11-04 00:00:00.000000,N,Y,N -732,2020-06-24 00:00:00.000000,N,N,N -733,2020-01-04 00:00:00.000000,Y,Y,Y -734,2020-07-27 00:00:00.000000,Y,Y,Y -733,2020-01-04 00:00:00.000000,Y,Y,Y -734,2020-11-04 00:00:00.000000,N,Y,N -735,2020-07-27 00:00:00.000000,Y,Y,Y -736,2020-03-27 00:00:00.000000,Y,Y,Y -737,2020-06-24 00:00:00.000000,N,N,N -740,2020-11-15 00:00:00.000000,Y,Y,Y -741,2020-02-04 00:00:00.000000,N,N,N -742,2020-12-24 00:00:00.000000,N,N,N -741,2020-07-27 00:00:00.000000,Y,Y,Y -742,2020-01-04 00:00:00.000000,Y,Y,Y -743,2020-11-15 00:00:00.000000,Y,Y,Y -744,2020-03-27 00:00:00.000000,Y,Y,Y -745,2020-02-04 00:00:00.000000,N,N,N -748,2020-11-04 00:00:00.000000,N,Y,N -749,2020-06-24 00:00:00.000000,N,N,N -750,2020-12-24 00:00:00.000000,N,N,N -749,2020-03-27 00:00:00.000000,Y,Y,Y -750,2020-02-04 00:00:00.000000,N,N,N -751,2020-11-04 00:00:00.000000,N,Y,N -752,2020-12-24 00:00:00.000000,N,N,N -753,2020-07-27 00:00:00.000000,Y,Y,Y -756,2020-01-04 00:00:00.000000,Y,Y,Y -757,2020-06-24 00:00:00.000000,N,N,N -758,2020-11-15 00:00:00.000000,Y,Y,Y -757,2020-02-04 00:00:00.000000,N,N,N -758,2020-12-24 00:00:00.000000,N,N,N -759,2020-11-15 00:00:00.000000,Y,Y,Y -760,2020-06-24 00:00:00.000000,N,N,N -761,2020-07-27 00:00:00.000000,Y,Y,Y -764,2020-01-04 00:00:00.000000,Y,Y,Y -765,2020-11-04 00:00:00.000000,N,Y,N -766,2020-03-27 00:00:00.000000,Y,Y,Y -765,2020-01-04 00:00:00.000000,Y,Y,Y -766,2020-03-27 00:00:00.000000,Y,Y,Y -767,2020-12-24 00:00:00.000000,N,N,N -768,2020-07-27 00:00:00.000000,Y,Y,Y -769,2020-06-24 00:00:00.000000,N,N,N -772,2020-11-15 00:00:00.000000,Y,Y,Y -773,2020-02-04 00:00:00.000000,N,N,N -774,2020-11-04 00:00:00.000000,N,Y,N -773,2020-01-04 00:00:00.000000,Y,Y,Y -774,2020-07-27 00:00:00.000000,Y,Y,Y -775,2020-03-27 00:00:00.000000,Y,Y,Y -776,2020-06-24 00:00:00.000000,N,N,N -777,2020-02-04 00:00:00.000000,N,N,N -780,2020-12-24 00:00:00.000000,N,N,N -781,2020-11-15 00:00:00.000000,Y,Y,Y -782,2020-11-04 00:00:00.000000,N,Y,N -781,2020-11-04 00:00:00.000000,N,Y,N -782,2020-02-04 00:00:00.000000,N,N,N -783,2020-07-27 00:00:00.000000,Y,Y,Y -784,2020-03-27 00:00:00.000000,Y,Y,Y -785,2020-06-24 00:00:00.000000,N,N,N -788,2020-12-24 00:00:00.000000,N,N,N -789,2020-01-04 00:00:00.000000,Y,Y,Y -790,2020-11-15 00:00:00.000000,Y,Y,Y -789,2020-03-27 00:00:00.000000,Y,Y,Y -790,2020-12-24 00:00:00.000000,N,N,N -791,2020-11-04 00:00:00.000000,N,Y,N -792,2020-11-15 00:00:00.000000,Y,Y,Y -793,2020-07-27 00:00:00.000000,Y,Y,Y -796,2020-01-04 00:00:00.000000,Y,Y,Y -797,2020-06-24 00:00:00.000000,N,N,N -798,2020-02-04 00:00:00.000000,N,N,N -797,2020-03-27 00:00:00.000000,Y,Y,Y -798,2020-02-04 00:00:00.000000,N,N,N -799,2020-07-27 00:00:00.000000,Y,Y,Y -800,2020-11-04 00:00:00.000000,N,Y,N -801,2020-12-24 00:00:00.000000,N,N,N -804,2020-06-24 00:00:00.000000,N,N,N -805,2020-11-15 00:00:00.000000,Y,Y,Y -806,2020-01-04 00:00:00.000000,Y,Y,Y -805,2020-11-15 00:00:00.000000,Y,Y,Y -806,2020-02-04 00:00:00.000000,N,N,N -807,2020-12-24 00:00:00.000000,N,N,N -808,2020-06-24 00:00:00.000000,N,N,N -809,2020-07-27 00:00:00.000000,Y,Y,Y -812,2020-01-04 00:00:00.000000,Y,Y,Y -813,2020-03-27 00:00:00.000000,Y,Y,Y -814,2020-11-04 00:00:00.000000,N,Y,N -813,2020-06-24 00:00:00.000000,N,N,N -814,2020-03-27 00:00:00.000000,Y,Y,Y -815,2020-12-24 00:00:00.000000,N,N,N -816,2020-07-27 00:00:00.000000,Y,Y,Y -817,2020-02-04 00:00:00.000000,N,N,N -820,2020-01-04 00:00:00.000000,Y,Y,Y -821,2020-11-04 00:00:00.000000,N,Y,N -822,2020-11-15 00:00:00.000000,Y,Y,Y -821,2020-11-04 00:00:00.000000,N,Y,N -822,2020-02-04 00:00:00.000000,N,N,N -823,2020-03-27 00:00:00.000000,Y,Y,Y -824,2020-07-27 00:00:00.000000,Y,Y,Y -825,2020-11-15 00:00:00.000000,Y,Y,Y -828,2020-12-24 00:00:00.000000,N,N,N -829,2020-01-04 00:00:00.000000,Y,Y,Y -830,2020-06-24 00:00:00.000000,N,N,N -829,2020-01-04 00:00:00.000000,Y,Y,Y -830,2020-02-04 00:00:00.000000,N,N,N -831,2020-12-24 00:00:00.000000,N,N,N -832,2020-06-24 00:00:00.000000,N,N,N -833,2020-11-04 00:00:00.000000,N,Y,N -836,2020-11-15 00:00:00.000000,Y,Y,Y -837,2020-03-27 00:00:00.000000,Y,Y,Y -838,2020-07-27 00:00:00.000000,Y,Y,Y -837,2020-12-24 00:00:00.000000,N,N,N -838,2020-02-04 00:00:00.000000,N,N,N -839,2020-07-27 00:00:00.000000,Y,Y,Y -840,2020-01-04 00:00:00.000000,Y,Y,Y -841,2020-11-15 00:00:00.000000,Y,Y,Y -844,2020-06-24 00:00:00.000000,N,N,N -845,2020-03-27 00:00:00.000000,Y,Y,Y -846,2020-11-04 00:00:00.000000,N,Y,N -845,2020-01-04 00:00:00.000000,Y,Y,Y -846,2020-03-27 00:00:00.000000,Y,Y,Y -847,2020-07-27 00:00:00.000000,Y,Y,Y -848,2020-12-24 00:00:00.000000,N,N,N -849,2020-06-24 00:00:00.000000,N,N,N -852,2020-02-04 00:00:00.000000,N,N,N -853,2020-11-04 00:00:00.000000,N,Y,N -854,2020-11-15 00:00:00.000000,Y,Y,Y -853,2020-07-27 00:00:00.000000,Y,Y,Y -854,2020-12-24 00:00:00.000000,N,N,N -855,2020-02-04 00:00:00.000000,N,N,N -856,2020-11-15 00:00:00.000000,Y,Y,Y -857,2020-01-04 00:00:00.000000,Y,Y,Y -860,2020-11-04 00:00:00.000000,N,Y,N -861,2020-06-24 00:00:00.000000,N,N,N -862,2020-03-27 00:00:00.000000,Y,Y,Y -861,2020-01-04 00:00:00.000000,Y,Y,Y -862,2020-12-24 00:00:00.000000,N,N,N -863,2020-07-27 00:00:00.000000,Y,Y,Y -864,2020-11-15 00:00:00.000000,Y,Y,Y -865,2020-02-04 00:00:00.000000,N,N,N -868,2020-06-24 00:00:00.000000,N,N,N -869,2020-11-04 00:00:00.000000,N,Y,N -870,2020-03-27 00:00:00.000000,Y,Y,Y -869,2020-01-04 00:00:00.000000,Y,Y,Y -870,2020-12-24 00:00:00.000000,N,N,N -871,2020-02-04 00:00:00.000000,N,N,N -872,2020-11-15 00:00:00.000000,Y,Y,Y -873,2020-11-04 00:00:00.000000,N,Y,N -876,2020-06-24 00:00:00.000000,N,N,N -877,2020-03-27 00:00:00.000000,Y,Y,Y -878,2020-07-27 00:00:00.000000,Y,Y,Y -877,2020-06-24 00:00:00.000000,N,N,N -878,2020-02-04 00:00:00.000000,N,N,N -879,2020-01-04 00:00:00.000000,Y,Y,Y -880,2020-11-04 00:00:00.000000,N,Y,N -881,2020-11-15 00:00:00.000000,Y,Y,Y -884,2020-12-24 00:00:00.000000,N,N,N -885,2020-03-27 00:00:00.000000,Y,Y,Y -886,2020-07-27 00:00:00.000000,Y,Y,Y -885,2020-02-04 00:00:00.000000,N,N,N -886,2020-01-04 00:00:00.000000,Y,Y,Y -887,2020-03-27 00:00:00.000000,Y,Y,Y -888,2020-07-27 00:00:00.000000,Y,Y,Y -889,2020-11-15 00:00:00.000000,Y,Y,Y -892,2020-06-24 00:00:00.000000,N,N,N -893,2020-11-04 00:00:00.000000,N,Y,N -894,2020-12-24 00:00:00.000000,N,N,N -893,2020-01-04 00:00:00.000000,Y,Y,Y -894,2020-02-04 00:00:00.000000,N,N,N -895,2020-06-24 00:00:00.000000,N,N,N -896,2020-11-04 00:00:00.000000,N,Y,N -897,2020-07-27 00:00:00.000000,Y,Y,Y -900,2020-03-27 00:00:00.000000,Y,Y,Y -901,2020-12-24 00:00:00.000000,N,N,N -902,2020-11-15 00:00:00.000000,Y,Y,Y diff --git a/carrot/data/test/inputs/original/covid19_antibody.csv b/carrot/data/test/inputs/original/covid19_antibody.csv deleted file mode 100644 index 81c74fc5..00000000 --- a/carrot/data/test/inputs/original/covid19_antibody.csv +++ /dev/null @@ -1,1001 +0,0 @@ -PersonID,date,ABresult,IgG -101,2020-11-29 00:00:00.000000,1,3.63 -102,2020-04-15 00:00:00.000000,1,6.72 -103,2020-10-04 00:00:00.000000,1,30.3 -104,2020-08-07 00:00:00.000000,0,0.01 -105,2020-10-08 00:00:00.000000,1,10.08 -106,2020-02-15 00:00:00.000000,0,0.0 -107,2021-03-01 00:00:00.000000,0,0.0 -108,2020-04-25 00:00:00.000000,0,0.1 -109,2021-07-01 00:00:00.000000,1,20.13 -110,2020-04-16 00:00:00.000000,0,0.25 -111,2020-04-25 00:00:00.000000,0,0.1 -112,2020-02-15 00:00:00.000000,0,0.0 -113,2020-10-04 00:00:00.000000,1,30.3 -114,2020-04-15 00:00:00.000000,1,6.72 -115,2021-07-01 00:00:00.000000,1,20.13 -116,2020-11-29 00:00:00.000000,1,3.63 -117,2020-04-16 00:00:00.000000,0,0.25 -118,2021-03-01 00:00:00.000000,0,0.0 -119,2020-08-07 00:00:00.000000,0,0.01 -120,2020-10-08 00:00:00.000000,1,10.08 -121,2021-03-01 00:00:00.000000,0,0.0 -122,2020-04-25 00:00:00.000000,0,0.1 -123,2020-04-15 00:00:00.000000,1,6.72 -124,2020-04-16 00:00:00.000000,0,0.25 -125,2020-10-04 00:00:00.000000,1,30.3 -126,2020-10-08 00:00:00.000000,1,10.08 -127,2021-07-01 00:00:00.000000,1,20.13 -128,2020-02-15 00:00:00.000000,0,0.0 -129,2020-08-07 00:00:00.000000,0,0.01 -130,2020-11-29 00:00:00.000000,1,3.63 -131,2020-10-04 00:00:00.000000,1,30.3 -132,2020-02-15 00:00:00.000000,0,0.0 -133,2020-11-29 00:00:00.000000,1,3.63 -134,2020-04-15 00:00:00.000000,1,6.72 -135,2020-04-16 00:00:00.000000,0,0.25 -136,2021-03-01 00:00:00.000000,0,0.0 -137,2020-04-25 00:00:00.000000,0,0.1 -138,2021-07-01 00:00:00.000000,1,20.13 -139,2020-08-07 00:00:00.000000,0,0.01 -140,2020-10-08 00:00:00.000000,1,10.08 -141,2021-03-01 00:00:00.000000,0,0.0 -142,2020-04-15 00:00:00.000000,1,6.72 -143,2020-11-29 00:00:00.000000,1,3.63 -144,2020-10-04 00:00:00.000000,1,30.3 -145,2020-02-15 00:00:00.000000,0,0.0 -146,2020-08-07 00:00:00.000000,0,0.01 -147,2020-04-16 00:00:00.000000,0,0.25 -148,2020-04-25 00:00:00.000000,0,0.1 -149,2020-10-08 00:00:00.000000,1,10.08 -150,2021-07-01 00:00:00.000000,1,20.13 -151,2020-04-25 00:00:00.000000,0,0.1 -152,2020-08-07 00:00:00.000000,0,0.01 -153,2020-04-15 00:00:00.000000,1,6.72 -154,2021-03-01 00:00:00.000000,0,0.0 -155,2020-10-08 00:00:00.000000,1,10.08 -156,2021-07-01 00:00:00.000000,1,20.13 -157,2020-10-04 00:00:00.000000,1,30.3 -158,2020-11-29 00:00:00.000000,1,3.63 -159,2020-02-15 00:00:00.000000,0,0.0 -160,2020-04-16 00:00:00.000000,0,0.25 -161,2021-07-01 00:00:00.000000,1,20.13 -162,2020-11-29 00:00:00.000000,1,3.63 -163,2020-04-16 00:00:00.000000,0,0.25 -164,2020-10-04 00:00:00.000000,1,30.3 -165,2020-02-15 00:00:00.000000,0,0.0 -166,2021-03-01 00:00:00.000000,0,0.0 -167,2020-10-08 00:00:00.000000,1,10.08 -168,2020-04-25 00:00:00.000000,0,0.1 -169,2020-04-15 00:00:00.000000,1,6.72 -170,2020-08-07 00:00:00.000000,0,0.01 -171,2020-10-08 00:00:00.000000,1,10.08 -172,2020-11-29 00:00:00.000000,1,3.63 -173,2020-04-16 00:00:00.000000,0,0.25 -174,2020-10-04 00:00:00.000000,1,30.3 -175,2021-03-01 00:00:00.000000,0,0.0 -176,2020-02-15 00:00:00.000000,0,0.0 -177,2020-08-07 00:00:00.000000,0,0.01 -178,2020-04-15 00:00:00.000000,1,6.72 -179,2021-07-01 00:00:00.000000,1,20.13 -180,2020-04-25 00:00:00.000000,0,0.1 -181,2020-04-15 00:00:00.000000,1,6.72 -182,2020-10-04 00:00:00.000000,1,30.3 -183,2021-07-01 00:00:00.000000,1,20.13 -184,2020-04-25 00:00:00.000000,0,0.1 -185,2020-02-15 00:00:00.000000,0,0.0 -186,2020-08-07 00:00:00.000000,0,0.01 -187,2020-04-16 00:00:00.000000,0,0.25 -188,2020-11-29 00:00:00.000000,1,3.63 -189,2021-03-01 00:00:00.000000,0,0.0 -190,2020-10-08 00:00:00.000000,1,10.08 -191,2020-10-08 00:00:00.000000,1,10.08 -192,2020-04-25 00:00:00.000000,0,0.1 -193,2021-03-01 00:00:00.000000,0,0.0 -194,2020-02-15 00:00:00.000000,0,0.0 -195,2020-11-29 00:00:00.000000,1,3.63 -196,2021-07-01 00:00:00.000000,1,20.13 -197,2020-08-07 00:00:00.000000,0,0.01 -198,2020-04-16 00:00:00.000000,0,0.25 -199,2020-04-15 00:00:00.000000,1,6.72 -200,2020-10-04 00:00:00.000000,1,30.3 -201,2020-10-04 00:00:00.000000,1,30.3 -202,2021-07-01 00:00:00.000000,1,20.13 -203,2020-10-08 00:00:00.000000,1,10.08 -204,2020-04-15 00:00:00.000000,1,6.72 -205,2020-04-25 00:00:00.000000,0,0.1 -206,2021-03-01 00:00:00.000000,0,0.0 -207,2020-02-15 00:00:00.000000,0,0.0 -208,2020-11-29 00:00:00.000000,1,3.63 -209,2020-04-16 00:00:00.000000,0,0.25 -210,2020-08-07 00:00:00.000000,0,0.01 -211,2020-10-08 00:00:00.000000,1,10.08 -212,2020-08-07 00:00:00.000000,0,0.01 -213,2020-04-16 00:00:00.000000,0,0.25 -214,2021-07-01 00:00:00.000000,1,20.13 -215,2021-03-01 00:00:00.000000,0,0.0 -216,2020-10-04 00:00:00.000000,1,30.3 -217,2020-02-15 00:00:00.000000,0,0.0 -218,2020-04-15 00:00:00.000000,1,6.72 -219,2020-11-29 00:00:00.000000,1,3.63 -220,2020-04-25 00:00:00.000000,0,0.1 -221,2020-04-16 00:00:00.000000,0,0.25 -222,2020-10-04 00:00:00.000000,1,30.3 -223,2020-10-08 00:00:00.000000,1,10.08 -224,2020-08-07 00:00:00.000000,0,0.01 -225,2020-02-15 00:00:00.000000,0,0.0 -226,2020-11-29 00:00:00.000000,1,3.63 -227,2021-03-01 00:00:00.000000,0,0.0 -228,2020-04-25 00:00:00.000000,0,0.1 -229,2020-04-15 00:00:00.000000,1,6.72 -230,2021-07-01 00:00:00.000000,1,20.13 -231,2020-10-08 00:00:00.000000,1,10.08 -232,2020-02-15 00:00:00.000000,0,0.0 -233,2020-04-15 00:00:00.000000,1,6.72 -234,2021-03-01 00:00:00.000000,0,0.0 -235,2020-04-16 00:00:00.000000,0,0.25 -236,2020-11-29 00:00:00.000000,1,3.63 -237,2020-08-07 00:00:00.000000,0,0.01 -238,2020-10-04 00:00:00.000000,1,30.3 -239,2021-07-01 00:00:00.000000,1,20.13 -240,2020-04-25 00:00:00.000000,0,0.1 -241,2020-10-04 00:00:00.000000,1,30.3 -242,2021-03-01 00:00:00.000000,0,0.0 -243,2020-02-15 00:00:00.000000,0,0.0 -244,2020-10-08 00:00:00.000000,1,10.08 -245,2020-04-25 00:00:00.000000,0,0.1 -246,2020-11-29 00:00:00.000000,1,3.63 -247,2020-04-16 00:00:00.000000,0,0.25 -248,2021-07-01 00:00:00.000000,1,20.13 -249,2020-08-07 00:00:00.000000,0,0.01 -250,2020-04-15 00:00:00.000000,1,6.72 -251,2020-11-29 00:00:00.000000,1,3.63 -252,2020-08-07 00:00:00.000000,0,0.01 -253,2020-04-25 00:00:00.000000,0,0.1 -254,2020-10-04 00:00:00.000000,1,30.3 -255,2021-03-01 00:00:00.000000,0,0.0 -256,2021-07-01 00:00:00.000000,1,20.13 -257,2020-10-08 00:00:00.000000,1,10.08 -258,2020-04-16 00:00:00.000000,0,0.25 -259,2020-04-15 00:00:00.000000,1,6.72 -260,2020-02-15 00:00:00.000000,0,0.0 -261,2021-07-01 00:00:00.000000,1,20.13 -262,2020-10-08 00:00:00.000000,1,10.08 -263,2020-04-25 00:00:00.000000,0,0.1 -264,2021-03-01 00:00:00.000000,0,0.0 -265,2020-10-04 00:00:00.000000,1,30.3 -266,2020-08-07 00:00:00.000000,0,0.01 -267,2020-02-15 00:00:00.000000,0,0.0 -268,2020-04-15 00:00:00.000000,1,6.72 -269,2020-04-16 00:00:00.000000,0,0.25 -270,2020-11-29 00:00:00.000000,1,3.63 -271,2020-10-04 00:00:00.000000,1,30.3 -272,2021-03-01 00:00:00.000000,0,0.0 -273,2020-10-08 00:00:00.000000,1,10.08 -274,2020-02-15 00:00:00.000000,0,0.0 -275,2020-11-29 00:00:00.000000,1,3.63 -276,2020-04-16 00:00:00.000000,0,0.25 -277,2021-07-01 00:00:00.000000,1,20.13 -278,2020-04-15 00:00:00.000000,1,6.72 -279,2020-08-07 00:00:00.000000,0,0.01 -280,2020-04-25 00:00:00.000000,0,0.1 -281,2020-10-04 00:00:00.000000,1,30.3 -282,2020-02-15 00:00:00.000000,0,0.0 -283,2020-11-29 00:00:00.000000,1,3.63 -284,2021-07-01 00:00:00.000000,1,20.13 -285,2020-04-25 00:00:00.000000,0,0.1 -286,2020-10-08 00:00:00.000000,1,10.08 -287,2020-04-15 00:00:00.000000,1,6.72 -288,2020-04-16 00:00:00.000000,0,0.25 -289,2020-08-07 00:00:00.000000,0,0.01 -290,2021-03-01 00:00:00.000000,0,0.0 -291,2020-11-29 00:00:00.000000,1,3.63 -292,2021-03-01 00:00:00.000000,0,0.0 -293,2020-08-07 00:00:00.000000,0,0.01 -294,2020-10-08 00:00:00.000000,1,10.08 -295,2020-02-15 00:00:00.000000,0,0.0 -296,2020-04-16 00:00:00.000000,0,0.25 -297,2021-07-01 00:00:00.000000,1,20.13 -298,2020-10-04 00:00:00.000000,1,30.3 -299,2020-04-15 00:00:00.000000,1,6.72 -300,2020-04-25 00:00:00.000000,0,0.1 -301,2020-10-04 00:00:00.000000,1,30.3 -302,2021-03-01 00:00:00.000000,0,0.0 -303,2020-11-29 00:00:00.000000,1,3.63 -304,2020-04-15 00:00:00.000000,1,6.72 -305,2020-04-16 00:00:00.000000,0,0.25 -306,2020-02-15 00:00:00.000000,0,0.0 -307,2020-08-07 00:00:00.000000,0,0.01 -308,2020-10-08 00:00:00.000000,1,10.08 -309,2021-07-01 00:00:00.000000,1,20.13 -310,2020-04-25 00:00:00.000000,0,0.1 -311,2020-04-16 00:00:00.000000,0,0.25 -312,2020-04-15 00:00:00.000000,1,6.72 -313,2020-02-15 00:00:00.000000,0,0.0 -314,2021-03-01 00:00:00.000000,0,0.0 -315,2021-07-01 00:00:00.000000,1,20.13 -316,2020-11-29 00:00:00.000000,1,3.63 -317,2020-10-04 00:00:00.000000,1,30.3 -318,2020-08-07 00:00:00.000000,0,0.01 -319,2020-10-08 00:00:00.000000,1,10.08 -320,2020-04-25 00:00:00.000000,0,0.1 -321,2020-02-15 00:00:00.000000,0,0.0 -322,2021-03-01 00:00:00.000000,0,0.0 -323,2020-08-07 00:00:00.000000,0,0.01 -324,2020-04-16 00:00:00.000000,0,0.25 -325,2020-10-04 00:00:00.000000,1,30.3 -326,2020-10-08 00:00:00.000000,1,10.08 -327,2020-11-29 00:00:00.000000,1,3.63 -328,2020-04-25 00:00:00.000000,0,0.1 -329,2021-07-01 00:00:00.000000,1,20.13 -330,2020-04-15 00:00:00.000000,1,6.72 -331,2020-04-16 00:00:00.000000,0,0.25 -332,2020-02-15 00:00:00.000000,0,0.0 -333,2020-10-08 00:00:00.000000,1,10.08 -334,2020-04-25 00:00:00.000000,0,0.1 -335,2020-08-07 00:00:00.000000,0,0.01 -336,2021-07-01 00:00:00.000000,1,20.13 -337,2020-04-15 00:00:00.000000,1,6.72 -338,2020-11-29 00:00:00.000000,1,3.63 -339,2020-10-04 00:00:00.000000,1,30.3 -340,2021-03-01 00:00:00.000000,0,0.0 -341,2020-02-15 00:00:00.000000,0,0.0 -342,2021-07-01 00:00:00.000000,1,20.13 -343,2020-10-04 00:00:00.000000,1,30.3 -344,2020-04-25 00:00:00.000000,0,0.1 -345,2020-08-07 00:00:00.000000,0,0.01 -346,2021-03-01 00:00:00.000000,0,0.0 -347,2020-11-29 00:00:00.000000,1,3.63 -348,2020-04-15 00:00:00.000000,1,6.72 -349,2020-10-08 00:00:00.000000,1,10.08 -350,2020-04-16 00:00:00.000000,0,0.25 -351,2020-11-29 00:00:00.000000,1,3.63 -352,2020-04-15 00:00:00.000000,1,6.72 -353,2020-02-15 00:00:00.000000,0,0.0 -354,2020-10-04 00:00:00.000000,1,30.3 -355,2020-08-07 00:00:00.000000,0,0.01 -356,2021-03-01 00:00:00.000000,0,0.0 -357,2020-04-25 00:00:00.000000,0,0.1 -358,2021-07-01 00:00:00.000000,1,20.13 -359,2020-04-16 00:00:00.000000,0,0.25 -360,2020-10-08 00:00:00.000000,1,10.08 -361,2020-04-16 00:00:00.000000,0,0.25 -362,2021-03-01 00:00:00.000000,0,0.0 -363,2020-04-15 00:00:00.000000,1,6.72 -364,2021-07-01 00:00:00.000000,1,20.13 -365,2020-02-15 00:00:00.000000,0,0.0 -366,2020-08-07 00:00:00.000000,0,0.01 -367,2020-10-04 00:00:00.000000,1,30.3 -368,2020-10-08 00:00:00.000000,1,10.08 -369,2020-04-25 00:00:00.000000,0,0.1 -370,2020-11-29 00:00:00.000000,1,3.63 -371,2020-04-15 00:00:00.000000,1,6.72 -372,2020-04-16 00:00:00.000000,0,0.25 -373,2020-10-04 00:00:00.000000,1,30.3 -374,2020-02-15 00:00:00.000000,0,0.0 -375,2020-10-08 00:00:00.000000,1,10.08 -376,2020-11-29 00:00:00.000000,1,3.63 -377,2021-07-01 00:00:00.000000,1,20.13 -378,2020-08-07 00:00:00.000000,0,0.01 -379,2020-04-25 00:00:00.000000,0,0.1 -380,2021-03-01 00:00:00.000000,0,0.0 -381,2021-07-01 00:00:00.000000,1,20.13 -382,2020-08-07 00:00:00.000000,0,0.01 -383,2021-03-01 00:00:00.000000,0,0.0 -384,2020-04-15 00:00:00.000000,1,6.72 -385,2020-10-04 00:00:00.000000,1,30.3 -386,2020-10-08 00:00:00.000000,1,10.08 -387,2020-04-16 00:00:00.000000,0,0.25 -388,2020-11-29 00:00:00.000000,1,3.63 -389,2020-04-25 00:00:00.000000,0,0.1 -390,2020-02-15 00:00:00.000000,0,0.0 -391,2021-07-01 00:00:00.000000,1,20.13 -392,2020-02-15 00:00:00.000000,0,0.0 -393,2020-11-29 00:00:00.000000,1,3.63 -394,2021-03-01 00:00:00.000000,0,0.0 -395,2020-08-07 00:00:00.000000,0,0.01 -396,2020-10-04 00:00:00.000000,1,30.3 -397,2020-04-16 00:00:00.000000,0,0.25 -398,2020-04-25 00:00:00.000000,0,0.1 -399,2020-10-08 00:00:00.000000,1,10.08 -400,2020-04-15 00:00:00.000000,1,6.72 -401,2020-04-16 00:00:00.000000,0,0.25 -402,2020-02-15 00:00:00.000000,0,0.0 -403,2021-03-01 00:00:00.000000,0,0.0 -404,2020-10-08 00:00:00.000000,1,10.08 -405,2020-04-15 00:00:00.000000,1,6.72 -406,2020-11-29 00:00:00.000000,1,3.63 -407,2020-04-25 00:00:00.000000,0,0.1 -408,2020-10-04 00:00:00.000000,1,30.3 -409,2021-07-01 00:00:00.000000,1,20.13 -410,2020-08-07 00:00:00.000000,0,0.01 -411,2020-10-04 00:00:00.000000,1,30.3 -412,2020-02-15 00:00:00.000000,0,0.0 -413,2021-03-01 00:00:00.000000,0,0.0 -414,2020-08-07 00:00:00.000000,0,0.01 -415,2020-04-15 00:00:00.000000,1,6.72 -416,2021-07-01 00:00:00.000000,1,20.13 -417,2020-10-08 00:00:00.000000,1,10.08 -418,2020-04-16 00:00:00.000000,0,0.25 -419,2020-11-29 00:00:00.000000,1,3.63 -420,2020-04-25 00:00:00.000000,0,0.1 -421,2020-02-15 00:00:00.000000,0,0.0 -422,2020-08-07 00:00:00.000000,0,0.01 -423,2020-11-29 00:00:00.000000,1,3.63 -424,2020-04-16 00:00:00.000000,0,0.25 -425,2021-07-01 00:00:00.000000,1,20.13 -426,2021-03-01 00:00:00.000000,0,0.0 -427,2020-10-04 00:00:00.000000,1,30.3 -428,2020-10-08 00:00:00.000000,1,10.08 -429,2020-04-25 00:00:00.000000,0,0.1 -430,2020-04-15 00:00:00.000000,1,6.72 -431,2020-02-15 00:00:00.000000,0,0.0 -432,2020-04-15 00:00:00.000000,1,6.72 -433,2020-08-07 00:00:00.000000,0,0.01 -434,2021-07-01 00:00:00.000000,1,20.13 -435,2020-04-16 00:00:00.000000,0,0.25 -436,2020-10-04 00:00:00.000000,1,30.3 -437,2021-03-01 00:00:00.000000,0,0.0 -438,2020-10-08 00:00:00.000000,1,10.08 -439,2020-04-25 00:00:00.000000,0,0.1 -440,2020-11-29 00:00:00.000000,1,3.63 -441,2020-10-04 00:00:00.000000,1,30.3 -442,2020-02-15 00:00:00.000000,0,0.0 -443,2021-07-01 00:00:00.000000,1,20.13 -444,2020-04-15 00:00:00.000000,1,6.72 -445,2020-10-08 00:00:00.000000,1,10.08 -446,2020-04-16 00:00:00.000000,0,0.25 -447,2020-11-29 00:00:00.000000,1,3.63 -448,2020-08-07 00:00:00.000000,0,0.01 -449,2021-03-01 00:00:00.000000,0,0.0 -450,2020-04-25 00:00:00.000000,0,0.1 -451,2020-08-07 00:00:00.000000,0,0.01 -452,2021-03-01 00:00:00.000000,0,0.0 -453,2020-11-29 00:00:00.000000,1,3.63 -454,2020-04-25 00:00:00.000000,0,0.1 -455,2021-07-01 00:00:00.000000,1,20.13 -456,2020-04-16 00:00:00.000000,0,0.25 -457,2020-04-15 00:00:00.000000,1,6.72 -458,2020-02-15 00:00:00.000000,0,0.0 -459,2020-10-08 00:00:00.000000,1,10.08 -460,2020-10-04 00:00:00.000000,1,30.3 -461,2021-07-01 00:00:00.000000,1,20.13 -462,2020-04-25 00:00:00.000000,0,0.1 -463,2020-04-15 00:00:00.000000,1,6.72 -464,2020-08-07 00:00:00.000000,0,0.01 -465,2020-10-08 00:00:00.000000,1,10.08 -466,2021-03-01 00:00:00.000000,0,0.0 -467,2020-11-29 00:00:00.000000,1,3.63 -468,2020-10-04 00:00:00.000000,1,30.3 -469,2020-04-16 00:00:00.000000,0,0.25 -470,2020-02-15 00:00:00.000000,0,0.0 -471,2020-04-16 00:00:00.000000,0,0.25 -472,2020-02-15 00:00:00.000000,0,0.0 -473,2020-04-25 00:00:00.000000,0,0.1 -474,2020-04-15 00:00:00.000000,1,6.72 -475,2020-08-07 00:00:00.000000,0,0.01 -476,2020-10-04 00:00:00.000000,1,30.3 -477,2020-10-08 00:00:00.000000,1,10.08 -478,2020-11-29 00:00:00.000000,1,3.63 -479,2021-07-01 00:00:00.000000,1,20.13 -480,2021-03-01 00:00:00.000000,0,0.0 -481,2021-07-01 00:00:00.000000,1,20.13 -482,2020-10-08 00:00:00.000000,1,10.08 -483,2020-02-15 00:00:00.000000,0,0.0 -484,2020-11-29 00:00:00.000000,1,3.63 -485,2020-04-16 00:00:00.000000,0,0.25 -486,2020-04-15 00:00:00.000000,1,6.72 -487,2021-03-01 00:00:00.000000,0,0.0 -488,2020-04-25 00:00:00.000000,0,0.1 -489,2020-08-07 00:00:00.000000,0,0.01 -490,2020-10-04 00:00:00.000000,1,30.3 -491,2020-04-25 00:00:00.000000,0,0.1 -492,2021-03-01 00:00:00.000000,0,0.0 -493,2020-04-15 00:00:00.000000,1,6.72 -494,2020-02-15 00:00:00.000000,0,0.0 -495,2021-07-01 00:00:00.000000,1,20.13 -496,2020-10-04 00:00:00.000000,1,30.3 -497,2020-08-07 00:00:00.000000,0,0.01 -498,2020-04-16 00:00:00.000000,0,0.25 -499,2020-11-29 00:00:00.000000,1,3.63 -500,2020-10-08 00:00:00.000000,1,10.08 -501,2020-02-15 00:00:00.000000,0,0.0 -502,2020-10-04 00:00:00.000000,1,30.3 -503,2021-07-01 00:00:00.000000,1,20.13 -504,2020-08-07 00:00:00.000000,0,0.01 -505,2020-04-25 00:00:00.000000,0,0.1 -506,2020-10-08 00:00:00.000000,1,10.08 -507,2020-04-16 00:00:00.000000,0,0.25 -508,2020-04-15 00:00:00.000000,1,6.72 -509,2020-11-29 00:00:00.000000,1,3.63 -510,2021-03-01 00:00:00.000000,0,0.0 -511,2020-04-25 00:00:00.000000,0,0.1 -512,2020-10-04 00:00:00.000000,1,30.3 -513,2021-07-01 00:00:00.000000,1,20.13 -514,2020-10-08 00:00:00.000000,1,10.08 -515,2020-02-15 00:00:00.000000,0,0.0 -516,2020-04-16 00:00:00.000000,0,0.25 -517,2020-11-29 00:00:00.000000,1,3.63 -518,2021-03-01 00:00:00.000000,0,0.0 -519,2020-08-07 00:00:00.000000,0,0.01 -520,2020-04-15 00:00:00.000000,1,6.72 -521,2021-07-01 00:00:00.000000,1,20.13 -522,2021-03-01 00:00:00.000000,0,0.0 -523,2020-10-08 00:00:00.000000,1,10.08 -524,2020-10-04 00:00:00.000000,1,30.3 -525,2020-04-25 00:00:00.000000,0,0.1 -526,2020-02-15 00:00:00.000000,0,0.0 -527,2020-04-15 00:00:00.000000,1,6.72 -528,2020-08-07 00:00:00.000000,0,0.01 -529,2020-11-29 00:00:00.000000,1,3.63 -530,2020-04-16 00:00:00.000000,0,0.25 -531,2020-04-16 00:00:00.000000,0,0.25 -532,2020-10-04 00:00:00.000000,1,30.3 -533,2020-02-15 00:00:00.000000,0,0.0 -534,2020-10-08 00:00:00.000000,1,10.08 -535,2021-07-01 00:00:00.000000,1,20.13 -536,2021-03-01 00:00:00.000000,0,0.0 -537,2020-11-29 00:00:00.000000,1,3.63 -538,2020-08-07 00:00:00.000000,0,0.01 -539,2020-04-15 00:00:00.000000,1,6.72 -540,2020-04-25 00:00:00.000000,0,0.1 -541,2021-03-01 00:00:00.000000,0,0.0 -542,2020-10-08 00:00:00.000000,1,10.08 -543,2020-04-16 00:00:00.000000,0,0.25 -544,2020-10-04 00:00:00.000000,1,30.3 -545,2020-04-25 00:00:00.000000,0,0.1 -546,2020-04-15 00:00:00.000000,1,6.72 -547,2020-11-29 00:00:00.000000,1,3.63 -548,2020-08-07 00:00:00.000000,0,0.01 -549,2020-02-15 00:00:00.000000,0,0.0 -550,2021-07-01 00:00:00.000000,1,20.13 -551,2021-07-01 00:00:00.000000,1,20.13 -552,2020-10-08 00:00:00.000000,1,10.08 -553,2021-03-01 00:00:00.000000,0,0.0 -554,2020-02-15 00:00:00.000000,0,0.0 -555,2020-04-16 00:00:00.000000,0,0.25 -556,2020-04-15 00:00:00.000000,1,6.72 -557,2020-11-29 00:00:00.000000,1,3.63 -558,2020-08-07 00:00:00.000000,0,0.01 -559,2020-10-04 00:00:00.000000,1,30.3 -560,2020-04-25 00:00:00.000000,0,0.1 -561,2020-11-29 00:00:00.000000,1,3.63 -562,2020-04-16 00:00:00.000000,0,0.25 -563,2021-07-01 00:00:00.000000,1,20.13 -564,2021-03-01 00:00:00.000000,0,0.0 -565,2020-08-07 00:00:00.000000,0,0.01 -566,2020-04-25 00:00:00.000000,0,0.1 -567,2020-04-15 00:00:00.000000,1,6.72 -568,2020-02-15 00:00:00.000000,0,0.0 -569,2020-10-08 00:00:00.000000,1,10.08 -570,2020-10-04 00:00:00.000000,1,30.3 -571,2020-04-15 00:00:00.000000,1,6.72 -572,2020-10-08 00:00:00.000000,1,10.08 -573,2021-07-01 00:00:00.000000,1,20.13 -574,2020-04-16 00:00:00.000000,0,0.25 -575,2020-11-29 00:00:00.000000,1,3.63 -576,2020-10-04 00:00:00.000000,1,30.3 -577,2021-03-01 00:00:00.000000,0,0.0 -578,2020-08-07 00:00:00.000000,0,0.01 -579,2020-04-25 00:00:00.000000,0,0.1 -580,2020-02-15 00:00:00.000000,0,0.0 -581,2020-02-15 00:00:00.000000,0,0.0 -582,2020-04-25 00:00:00.000000,0,0.1 -583,2020-04-15 00:00:00.000000,1,6.72 -584,2020-10-08 00:00:00.000000,1,10.08 -585,2020-11-29 00:00:00.000000,1,3.63 -586,2020-10-04 00:00:00.000000,1,30.3 -587,2020-04-16 00:00:00.000000,0,0.25 -588,2021-03-01 00:00:00.000000,0,0.0 -589,2021-07-01 00:00:00.000000,1,20.13 -590,2020-08-07 00:00:00.000000,0,0.01 -591,2020-10-08 00:00:00.000000,1,10.08 -592,2021-03-01 00:00:00.000000,0,0.0 -593,2021-07-01 00:00:00.000000,1,20.13 -594,2020-08-07 00:00:00.000000,0,0.01 -595,2020-04-25 00:00:00.000000,0,0.1 -596,2020-04-15 00:00:00.000000,1,6.72 -597,2020-10-04 00:00:00.000000,1,30.3 -598,2020-02-15 00:00:00.000000,0,0.0 -599,2020-11-29 00:00:00.000000,1,3.63 -600,2020-04-16 00:00:00.000000,0,0.25 -601,2020-04-15 00:00:00.000000,1,6.72 -602,2020-04-16 00:00:00.000000,0,0.25 -603,2020-11-29 00:00:00.000000,1,3.63 -604,2021-03-01 00:00:00.000000,0,0.0 -605,2020-10-04 00:00:00.000000,1,30.3 -606,2020-04-25 00:00:00.000000,0,0.1 -607,2020-10-08 00:00:00.000000,1,10.08 -608,2020-02-15 00:00:00.000000,0,0.0 -609,2020-08-07 00:00:00.000000,0,0.01 -610,2021-07-01 00:00:00.000000,1,20.13 -611,2020-04-16 00:00:00.000000,0,0.25 -612,2020-02-15 00:00:00.000000,0,0.0 -613,2021-03-01 00:00:00.000000,0,0.0 -614,2020-04-15 00:00:00.000000,1,6.72 -615,2020-10-04 00:00:00.000000,1,30.3 -616,2020-10-08 00:00:00.000000,1,10.08 -617,2020-08-07 00:00:00.000000,0,0.01 -618,2020-04-25 00:00:00.000000,0,0.1 -619,2020-11-29 00:00:00.000000,1,3.63 -620,2021-07-01 00:00:00.000000,1,20.13 -621,2020-04-16 00:00:00.000000,0,0.25 -622,2021-03-01 00:00:00.000000,0,0.0 -623,2020-10-04 00:00:00.000000,1,30.3 -624,2020-04-15 00:00:00.000000,1,6.72 -625,2020-08-07 00:00:00.000000,0,0.01 -626,2021-07-01 00:00:00.000000,1,20.13 -627,2020-02-15 00:00:00.000000,0,0.0 -628,2020-11-29 00:00:00.000000,1,3.63 -629,2020-10-08 00:00:00.000000,1,10.08 -630,2020-04-25 00:00:00.000000,0,0.1 -631,2021-07-01 00:00:00.000000,1,20.13 -632,2021-03-01 00:00:00.000000,0,0.0 -633,2020-10-04 00:00:00.000000,1,30.3 -634,2020-11-29 00:00:00.000000,1,3.63 -635,2020-04-16 00:00:00.000000,0,0.25 -636,2020-04-15 00:00:00.000000,1,6.72 -637,2020-02-15 00:00:00.000000,0,0.0 -638,2020-08-07 00:00:00.000000,0,0.01 -639,2020-04-25 00:00:00.000000,0,0.1 -640,2020-10-08 00:00:00.000000,1,10.08 -641,2020-10-04 00:00:00.000000,1,30.3 -642,2020-04-25 00:00:00.000000,0,0.1 -643,2020-10-08 00:00:00.000000,1,10.08 -644,2021-03-01 00:00:00.000000,0,0.0 -645,2020-08-07 00:00:00.000000,0,0.01 -646,2020-11-29 00:00:00.000000,1,3.63 -647,2020-04-15 00:00:00.000000,1,6.72 -648,2020-04-16 00:00:00.000000,0,0.25 -649,2020-02-15 00:00:00.000000,0,0.0 -650,2021-07-01 00:00:00.000000,1,20.13 -651,2021-03-01 00:00:00.000000,0,0.0 -652,2020-02-15 00:00:00.000000,0,0.0 -653,2021-07-01 00:00:00.000000,1,20.13 -654,2020-08-07 00:00:00.000000,0,0.01 -655,2020-10-08 00:00:00.000000,1,10.08 -656,2020-04-25 00:00:00.000000,0,0.1 -657,2020-04-16 00:00:00.000000,0,0.25 -658,2020-10-04 00:00:00.000000,1,30.3 -659,2020-11-29 00:00:00.000000,1,3.63 -660,2020-04-15 00:00:00.000000,1,6.72 -661,2020-04-25 00:00:00.000000,0,0.1 -662,2020-08-07 00:00:00.000000,0,0.01 -663,2020-04-15 00:00:00.000000,1,6.72 -664,2020-10-08 00:00:00.000000,1,10.08 -665,2021-03-01 00:00:00.000000,0,0.0 -666,2020-10-04 00:00:00.000000,1,30.3 -667,2020-11-29 00:00:00.000000,1,3.63 -668,2020-04-16 00:00:00.000000,0,0.25 -669,2021-07-01 00:00:00.000000,1,20.13 -670,2020-02-15 00:00:00.000000,0,0.0 -671,2020-04-25 00:00:00.000000,0,0.1 -672,2021-03-01 00:00:00.000000,0,0.0 -673,2020-04-16 00:00:00.000000,0,0.25 -674,2020-08-07 00:00:00.000000,0,0.01 -675,2020-04-15 00:00:00.000000,1,6.72 -676,2020-02-15 00:00:00.000000,0,0.0 -677,2020-10-04 00:00:00.000000,1,30.3 -678,2021-07-01 00:00:00.000000,1,20.13 -679,2020-11-29 00:00:00.000000,1,3.63 -680,2020-10-08 00:00:00.000000,1,10.08 -681,2020-04-16 00:00:00.000000,0,0.25 -682,2021-03-01 00:00:00.000000,0,0.0 -683,2020-08-07 00:00:00.000000,0,0.01 -684,2020-04-15 00:00:00.000000,1,6.72 -685,2021-07-01 00:00:00.000000,1,20.13 -686,2020-02-15 00:00:00.000000,0,0.0 -687,2020-04-25 00:00:00.000000,0,0.1 -688,2020-10-04 00:00:00.000000,1,30.3 -689,2020-10-08 00:00:00.000000,1,10.08 -690,2020-11-29 00:00:00.000000,1,3.63 -691,2021-03-01 00:00:00.000000,0,0.0 -692,2021-07-01 00:00:00.000000,1,20.13 -693,2020-02-15 00:00:00.000000,0,0.0 -694,2020-08-07 00:00:00.000000,0,0.01 -695,2020-10-08 00:00:00.000000,1,10.08 -696,2020-11-29 00:00:00.000000,1,3.63 -697,2020-10-04 00:00:00.000000,1,30.3 -698,2020-04-16 00:00:00.000000,0,0.25 -699,2020-04-25 00:00:00.000000,0,0.1 -700,2020-04-15 00:00:00.000000,1,6.72 -701,2020-02-15 00:00:00.000000,0,0.0 -702,2021-07-01 00:00:00.000000,1,20.13 -703,2020-10-04 00:00:00.000000,1,30.3 -704,2021-03-01 00:00:00.000000,0,0.0 -705,2020-08-07 00:00:00.000000,0,0.01 -706,2020-11-29 00:00:00.000000,1,3.63 -707,2020-04-16 00:00:00.000000,0,0.25 -708,2020-04-15 00:00:00.000000,1,6.72 -709,2020-10-08 00:00:00.000000,1,10.08 -710,2020-04-25 00:00:00.000000,0,0.1 -711,2020-02-15 00:00:00.000000,0,0.0 -712,2020-11-29 00:00:00.000000,1,3.63 -713,2020-10-04 00:00:00.000000,1,30.3 -714,2021-03-01 00:00:00.000000,0,0.0 -715,2020-08-07 00:00:00.000000,0,0.01 -716,2020-04-16 00:00:00.000000,0,0.25 -717,2020-04-15 00:00:00.000000,1,6.72 -718,2020-10-08 00:00:00.000000,1,10.08 -719,2021-07-01 00:00:00.000000,1,20.13 -720,2020-04-25 00:00:00.000000,0,0.1 -721,2020-04-16 00:00:00.000000,0,0.25 -722,2020-11-29 00:00:00.000000,1,3.63 -723,2020-02-15 00:00:00.000000,0,0.0 -724,2020-04-25 00:00:00.000000,0,0.1 -725,2021-03-01 00:00:00.000000,0,0.0 -726,2020-10-04 00:00:00.000000,1,30.3 -727,2021-07-01 00:00:00.000000,1,20.13 -728,2020-10-08 00:00:00.000000,1,10.08 -729,2020-04-15 00:00:00.000000,1,6.72 -730,2020-08-07 00:00:00.000000,0,0.01 -731,2020-04-15 00:00:00.000000,1,6.72 -732,2020-11-29 00:00:00.000000,1,3.63 -733,2021-03-01 00:00:00.000000,0,0.0 -734,2021-07-01 00:00:00.000000,1,20.13 -735,2020-04-16 00:00:00.000000,0,0.25 -736,2020-10-04 00:00:00.000000,1,30.3 -737,2020-02-15 00:00:00.000000,0,0.0 -738,2020-08-07 00:00:00.000000,0,0.01 -739,2020-10-08 00:00:00.000000,1,10.08 -740,2020-04-25 00:00:00.000000,0,0.1 -741,2020-10-04 00:00:00.000000,1,30.3 -742,2020-11-29 00:00:00.000000,1,3.63 -743,2020-04-16 00:00:00.000000,0,0.25 -744,2021-07-01 00:00:00.000000,1,20.13 -745,2020-02-15 00:00:00.000000,0,0.0 -746,2021-03-01 00:00:00.000000,0,0.0 -747,2020-10-08 00:00:00.000000,1,10.08 -748,2020-04-15 00:00:00.000000,1,6.72 -749,2020-08-07 00:00:00.000000,0,0.01 -750,2020-04-25 00:00:00.000000,0,0.1 -751,2021-03-01 00:00:00.000000,0,0.0 -752,2020-10-08 00:00:00.000000,1,10.08 -753,2021-07-01 00:00:00.000000,1,20.13 -754,2020-02-15 00:00:00.000000,0,0.0 -755,2020-08-07 00:00:00.000000,0,0.01 -756,2020-04-25 00:00:00.000000,0,0.1 -757,2020-04-15 00:00:00.000000,1,6.72 -758,2020-11-29 00:00:00.000000,1,3.63 -759,2020-04-16 00:00:00.000000,0,0.25 -760,2020-10-04 00:00:00.000000,1,30.3 -761,2020-04-16 00:00:00.000000,0,0.25 -762,2021-07-01 00:00:00.000000,1,20.13 -763,2020-02-15 00:00:00.000000,0,0.0 -764,2021-03-01 00:00:00.000000,0,0.0 -765,2020-10-08 00:00:00.000000,1,10.08 -766,2020-11-29 00:00:00.000000,1,3.63 -767,2020-10-04 00:00:00.000000,1,30.3 -768,2020-08-07 00:00:00.000000,0,0.01 -769,2020-04-25 00:00:00.000000,0,0.1 -770,2020-04-15 00:00:00.000000,1,6.72 -771,2020-04-16 00:00:00.000000,0,0.25 -772,2020-10-04 00:00:00.000000,1,30.3 -773,2020-11-29 00:00:00.000000,1,3.63 -774,2020-02-15 00:00:00.000000,0,0.0 -775,2020-08-07 00:00:00.000000,0,0.01 -776,2020-04-15 00:00:00.000000,1,6.72 -777,2021-03-01 00:00:00.000000,0,0.0 -778,2021-07-01 00:00:00.000000,1,20.13 -779,2020-04-25 00:00:00.000000,0,0.1 -780,2020-10-08 00:00:00.000000,1,10.08 -781,2020-04-16 00:00:00.000000,0,0.25 -782,2021-07-01 00:00:00.000000,1,20.13 -783,2020-10-04 00:00:00.000000,1,30.3 -784,2021-03-01 00:00:00.000000,0,0.0 -785,2020-10-08 00:00:00.000000,1,10.08 -786,2020-08-07 00:00:00.000000,0,0.01 -787,2020-04-15 00:00:00.000000,1,6.72 -788,2020-02-15 00:00:00.000000,0,0.0 -789,2020-11-29 00:00:00.000000,1,3.63 -790,2020-04-25 00:00:00.000000,0,0.1 -791,2020-10-04 00:00:00.000000,1,30.3 -792,2021-07-01 00:00:00.000000,1,20.13 -793,2020-04-16 00:00:00.000000,0,0.25 -794,2020-08-07 00:00:00.000000,0,0.01 -795,2020-04-15 00:00:00.000000,1,6.72 -796,2021-03-01 00:00:00.000000,0,0.0 -797,2020-10-08 00:00:00.000000,1,10.08 -798,2020-02-15 00:00:00.000000,0,0.0 -799,2020-11-29 00:00:00.000000,1,3.63 -800,2020-04-25 00:00:00.000000,0,0.1 -801,2021-03-01 00:00:00.000000,0,0.0 -802,2020-04-16 00:00:00.000000,0,0.25 -803,2020-08-07 00:00:00.000000,0,0.01 -804,2020-02-15 00:00:00.000000,0,0.0 -805,2021-07-01 00:00:00.000000,1,20.13 -806,2020-11-29 00:00:00.000000,1,3.63 -807,2020-04-15 00:00:00.000000,1,6.72 -808,2020-10-04 00:00:00.000000,1,30.3 -809,2020-10-08 00:00:00.000000,1,10.08 -810,2020-04-25 00:00:00.000000,0,0.1 -811,2020-04-15 00:00:00.000000,1,6.72 -812,2021-07-01 00:00:00.000000,1,20.13 -813,2020-02-15 00:00:00.000000,0,0.0 -814,2021-03-01 00:00:00.000000,0,0.0 -815,2020-04-25 00:00:00.000000,0,0.1 -816,2020-11-29 00:00:00.000000,1,3.63 -817,2020-08-07 00:00:00.000000,0,0.01 -818,2020-10-04 00:00:00.000000,1,30.3 -819,2020-10-08 00:00:00.000000,1,10.08 -820,2020-04-16 00:00:00.000000,0,0.25 -821,2020-08-07 00:00:00.000000,0,0.01 -822,2021-07-01 00:00:00.000000,1,20.13 -823,2020-04-15 00:00:00.000000,1,6.72 -824,2020-04-16 00:00:00.000000,0,0.25 -825,2020-11-29 00:00:00.000000,1,3.63 -826,2020-02-15 00:00:00.000000,0,0.0 -827,2020-10-04 00:00:00.000000,1,30.3 -828,2021-03-01 00:00:00.000000,0,0.0 -829,2020-04-25 00:00:00.000000,0,0.1 -830,2020-10-08 00:00:00.000000,1,10.08 -831,2020-04-16 00:00:00.000000,0,0.25 -832,2020-04-15 00:00:00.000000,1,6.72 -833,2021-07-01 00:00:00.000000,1,20.13 -834,2020-10-04 00:00:00.000000,1,30.3 -835,2020-10-08 00:00:00.000000,1,10.08 -836,2020-11-29 00:00:00.000000,1,3.63 -837,2021-03-01 00:00:00.000000,0,0.0 -838,2020-08-07 00:00:00.000000,0,0.01 -839,2020-04-25 00:00:00.000000,0,0.1 -840,2020-02-15 00:00:00.000000,0,0.0 -841,2020-04-16 00:00:00.000000,0,0.25 -842,2021-07-01 00:00:00.000000,1,20.13 -843,2020-04-25 00:00:00.000000,0,0.1 -844,2020-10-08 00:00:00.000000,1,10.08 -845,2021-03-01 00:00:00.000000,0,0.0 -846,2020-02-15 00:00:00.000000,0,0.0 -847,2020-04-15 00:00:00.000000,1,6.72 -848,2020-10-04 00:00:00.000000,1,30.3 -849,2020-08-07 00:00:00.000000,0,0.01 -850,2020-11-29 00:00:00.000000,1,3.63 -851,2020-10-08 00:00:00.000000,1,10.08 -852,2021-07-01 00:00:00.000000,1,20.13 -853,2020-02-15 00:00:00.000000,0,0.0 -854,2020-04-15 00:00:00.000000,1,6.72 -855,2020-08-07 00:00:00.000000,0,0.01 -856,2020-04-16 00:00:00.000000,0,0.25 -857,2020-10-04 00:00:00.000000,1,30.3 -858,2020-11-29 00:00:00.000000,1,3.63 -859,2021-03-01 00:00:00.000000,0,0.0 -860,2020-04-25 00:00:00.000000,0,0.1 -861,2020-08-07 00:00:00.000000,0,0.01 -862,2020-02-15 00:00:00.000000,0,0.0 -863,2020-11-29 00:00:00.000000,1,3.63 -864,2020-04-16 00:00:00.000000,0,0.25 -865,2021-07-01 00:00:00.000000,1,20.13 -866,2020-04-25 00:00:00.000000,0,0.1 -867,2020-04-15 00:00:00.000000,1,6.72 -868,2020-10-08 00:00:00.000000,1,10.08 -869,2021-03-01 00:00:00.000000,0,0.0 -870,2020-10-04 00:00:00.000000,1,30.3 -871,2020-10-04 00:00:00.000000,1,30.3 -872,2020-04-25 00:00:00.000000,0,0.1 -873,2021-07-01 00:00:00.000000,1,20.13 -874,2020-08-07 00:00:00.000000,0,0.01 -875,2020-04-16 00:00:00.000000,0,0.25 -876,2020-02-15 00:00:00.000000,0,0.0 -877,2020-11-29 00:00:00.000000,1,3.63 -878,2020-10-08 00:00:00.000000,1,10.08 -879,2021-03-01 00:00:00.000000,0,0.0 -880,2020-04-15 00:00:00.000000,1,6.72 -881,2020-04-16 00:00:00.000000,0,0.25 -882,2020-10-04 00:00:00.000000,1,30.3 -883,2020-11-29 00:00:00.000000,1,3.63 -884,2020-02-15 00:00:00.000000,0,0.0 -885,2020-08-07 00:00:00.000000,0,0.01 -886,2021-03-01 00:00:00.000000,0,0.0 -887,2020-10-08 00:00:00.000000,1,10.08 -888,2020-04-15 00:00:00.000000,1,6.72 -889,2020-04-25 00:00:00.000000,0,0.1 -890,2021-07-01 00:00:00.000000,1,20.13 -891,2020-10-04 00:00:00.000000,1,30.3 -892,2021-07-01 00:00:00.000000,1,20.13 -893,2020-08-07 00:00:00.000000,0,0.01 -894,2020-04-25 00:00:00.000000,0,0.1 -895,2020-04-16 00:00:00.000000,0,0.25 -896,2020-10-08 00:00:00.000000,1,10.08 -897,2020-11-29 00:00:00.000000,1,3.63 -898,2020-02-15 00:00:00.000000,0,0.0 -899,2021-03-01 00:00:00.000000,0,0.0 -900,2020-04-15 00:00:00.000000,1,6.72 -901,2020-02-15 00:00:00.000000,0,0.0 -902,2020-04-15 00:00:00.000000,1,6.72 -903,2020-08-07 00:00:00.000000,0,0.01 -904,2021-03-01 00:00:00.000000,0,0.0 -905,2020-04-16 00:00:00.000000,0,0.25 -906,2020-10-08 00:00:00.000000,1,10.08 -907,2020-10-04 00:00:00.000000,1,30.3 -908,2020-04-25 00:00:00.000000,0,0.1 -909,2020-11-29 00:00:00.000000,1,3.63 -910,2021-07-01 00:00:00.000000,1,20.13 -911,2020-02-15 00:00:00.000000,0,0.0 -912,2020-11-29 00:00:00.000000,1,3.63 -913,2020-04-25 00:00:00.000000,0,0.1 -914,2020-10-08 00:00:00.000000,1,10.08 -915,2020-04-16 00:00:00.000000,0,0.25 -916,2021-07-01 00:00:00.000000,1,20.13 -917,2020-04-15 00:00:00.000000,1,6.72 -918,2021-03-01 00:00:00.000000,0,0.0 -919,2020-08-07 00:00:00.000000,0,0.01 -920,2020-10-04 00:00:00.000000,1,30.3 -921,2020-08-07 00:00:00.000000,0,0.01 -922,2020-04-16 00:00:00.000000,0,0.25 -923,2020-11-29 00:00:00.000000,1,3.63 -924,2020-02-15 00:00:00.000000,0,0.0 -925,2020-04-15 00:00:00.000000,1,6.72 -926,2021-03-01 00:00:00.000000,0,0.0 -927,2021-07-01 00:00:00.000000,1,20.13 -928,2020-10-04 00:00:00.000000,1,30.3 -929,2020-10-08 00:00:00.000000,1,10.08 -930,2020-04-25 00:00:00.000000,0,0.1 -931,2020-04-25 00:00:00.000000,0,0.1 -932,2020-10-04 00:00:00.000000,1,30.3 -933,2020-08-07 00:00:00.000000,0,0.01 -934,2021-07-01 00:00:00.000000,1,20.13 -935,2021-03-01 00:00:00.000000,0,0.0 -936,2020-04-15 00:00:00.000000,1,6.72 -937,2020-11-29 00:00:00.000000,1,3.63 -938,2020-10-08 00:00:00.000000,1,10.08 -939,2020-02-15 00:00:00.000000,0,0.0 -940,2020-04-16 00:00:00.000000,0,0.25 -941,2020-10-04 00:00:00.000000,1,30.3 -942,2020-04-25 00:00:00.000000,0,0.1 -943,2020-08-07 00:00:00.000000,0,0.01 -944,2020-04-15 00:00:00.000000,1,6.72 -945,2020-02-15 00:00:00.000000,0,0.0 -946,2020-04-16 00:00:00.000000,0,0.25 -947,2020-10-08 00:00:00.000000,1,10.08 -948,2021-07-01 00:00:00.000000,1,20.13 -949,2020-11-29 00:00:00.000000,1,3.63 -950,2021-03-01 00:00:00.000000,0,0.0 -951,2020-02-15 00:00:00.000000,0,0.0 -952,2020-10-04 00:00:00.000000,1,30.3 -953,2021-07-01 00:00:00.000000,1,20.13 -954,2020-04-25 00:00:00.000000,0,0.1 -955,2020-08-07 00:00:00.000000,0,0.01 -956,2021-03-01 00:00:00.000000,0,0.0 -957,2020-04-15 00:00:00.000000,1,6.72 -958,2020-11-29 00:00:00.000000,1,3.63 -959,2020-04-16 00:00:00.000000,0,0.25 -960,2020-10-08 00:00:00.000000,1,10.08 -961,2021-07-01 00:00:00.000000,1,20.13 -962,2020-04-16 00:00:00.000000,0,0.25 -963,2020-08-07 00:00:00.000000,0,0.01 -964,2020-11-29 00:00:00.000000,1,3.63 -965,2021-03-01 00:00:00.000000,0,0.0 -966,2020-02-15 00:00:00.000000,0,0.0 -967,2020-10-04 00:00:00.000000,1,30.3 -968,2020-04-25 00:00:00.000000,0,0.1 -969,2020-10-08 00:00:00.000000,1,10.08 -970,2020-04-15 00:00:00.000000,1,6.72 -971,2020-04-25 00:00:00.000000,0,0.1 -972,2020-10-04 00:00:00.000000,1,30.3 -973,2021-07-01 00:00:00.000000,1,20.13 -974,2020-08-07 00:00:00.000000,0,0.01 -975,2020-10-08 00:00:00.000000,1,10.08 -976,2020-04-15 00:00:00.000000,1,6.72 -977,2020-02-15 00:00:00.000000,0,0.0 -978,2020-04-16 00:00:00.000000,0,0.25 -979,2020-11-29 00:00:00.000000,1,3.63 -980,2021-03-01 00:00:00.000000,0,0.0 -981,2020-02-15 00:00:00.000000,0,0.0 -982,2020-04-15 00:00:00.000000,1,6.72 -983,2021-03-01 00:00:00.000000,0,0.0 -984,2021-07-01 00:00:00.000000,1,20.13 -985,2020-11-29 00:00:00.000000,1,3.63 -986,2020-10-04 00:00:00.000000,1,30.3 -987,2020-04-16 00:00:00.000000,0,0.25 -988,2020-08-07 00:00:00.000000,0,0.01 -989,2020-04-25 00:00:00.000000,0,0.1 -990,2020-10-08 00:00:00.000000,1,10.08 -991,2021-07-01 00:00:00.000000,1,20.13 -992,2021-03-01 00:00:00.000000,0,0.0 -993,2020-02-15 00:00:00.000000,0,0.0 -994,2020-04-15 00:00:00.000000,1,6.72 -995,2020-10-08 00:00:00.000000,1,10.08 -996,2020-10-04 00:00:00.000000,1,30.3 -997,2020-04-16 00:00:00.000000,0,0.25 -998,2020-08-07 00:00:00.000000,0,0.01 -999,2020-11-29 00:00:00.000000,1,3.63 -1000,2020-04-25 00:00:00.000000,0,0.1 -1001,2020-08-07 00:00:00.000000,0,0.01 -1002,2020-04-16 00:00:00.000000,0,0.25 -1003,2020-10-08 00:00:00.000000,1,10.08 -1004,2021-03-01 00:00:00.000000,0,0.0 -1005,2020-02-15 00:00:00.000000,0,0.0 -1006,2020-04-15 00:00:00.000000,1,6.72 -1007,2020-11-29 00:00:00.000000,1,3.63 -1008,2020-04-25 00:00:00.000000,0,0.1 -1009,2020-10-04 00:00:00.000000,1,30.3 -1010,2021-07-01 00:00:00.000000,1,20.13 -1011,2021-07-01 00:00:00.000000,1,20.13 -1012,2020-04-15 00:00:00.000000,1,6.72 -1013,2020-10-04 00:00:00.000000,1,30.3 -1014,2020-11-29 00:00:00.000000,1,3.63 -1015,2020-02-15 00:00:00.000000,0,0.0 -1016,2020-10-08 00:00:00.000000,1,10.08 -1017,2020-04-25 00:00:00.000000,0,0.1 -1018,2021-03-01 00:00:00.000000,0,0.0 -1019,2020-08-07 00:00:00.000000,0,0.01 -1020,2020-04-16 00:00:00.000000,0,0.25 -1021,2020-08-07 00:00:00.000000,0,0.01 -1022,2020-10-04 00:00:00.000000,1,30.3 -1023,2021-07-01 00:00:00.000000,1,20.13 -1024,2020-02-15 00:00:00.000000,0,0.0 -1025,2020-04-16 00:00:00.000000,0,0.25 -1026,2020-04-15 00:00:00.000000,1,6.72 -1027,2020-11-29 00:00:00.000000,1,3.63 -1028,2020-04-25 00:00:00.000000,0,0.1 -1029,2020-10-08 00:00:00.000000,1,10.08 -1030,2021-03-01 00:00:00.000000,0,0.0 -1031,2021-07-01 00:00:00.000000,1,20.13 -1032,2020-04-16 00:00:00.000000,0,0.25 -1033,2020-08-07 00:00:00.000000,0,0.01 -1034,2020-10-08 00:00:00.000000,1,10.08 -1035,2020-04-15 00:00:00.000000,1,6.72 -1036,2020-02-15 00:00:00.000000,0,0.0 -1037,2021-03-01 00:00:00.000000,0,0.0 -1038,2020-11-29 00:00:00.000000,1,3.63 -1039,2020-10-04 00:00:00.000000,1,30.3 -1040,2020-04-25 00:00:00.000000,0,0.1 -1041,2021-07-01 00:00:00.000000,1,20.13 -1042,2020-04-16 00:00:00.000000,0,0.25 -1043,2020-10-08 00:00:00.000000,1,10.08 -1044,2020-10-04 00:00:00.000000,1,30.3 -1045,2020-04-15 00:00:00.000000,1,6.72 -1046,2020-04-25 00:00:00.000000,0,0.1 -1047,2020-02-15 00:00:00.000000,0,0.0 -1048,2021-03-01 00:00:00.000000,0,0.0 -1049,2020-08-07 00:00:00.000000,0,0.01 -1050,2020-11-29 00:00:00.000000,1,3.63 -1051,2021-03-01 00:00:00.000000,0,0.0 -1052,2021-07-01 00:00:00.000000,1,20.13 -1053,2020-10-08 00:00:00.000000,1,10.08 -1054,2020-10-04 00:00:00.000000,1,30.3 -1055,2020-04-16 00:00:00.000000,0,0.25 -1056,2020-02-15 00:00:00.000000,0,0.0 -1057,2020-04-25 00:00:00.000000,0,0.1 -1058,2020-11-29 00:00:00.000000,1,3.63 -1059,2020-04-15 00:00:00.000000,1,6.72 -1060,2020-08-07 00:00:00.000000,0,0.01 -1061,2020-04-16 00:00:00.000000,0,0.25 -1062,2020-10-04 00:00:00.000000,1,30.3 -1063,2020-04-25 00:00:00.000000,0,0.1 -1064,2020-04-15 00:00:00.000000,1,6.72 -1065,2020-02-15 00:00:00.000000,0,0.0 -1066,2021-03-01 00:00:00.000000,0,0.0 -1067,2020-11-29 00:00:00.000000,1,3.63 -1068,2021-07-01 00:00:00.000000,1,20.13 -1069,2020-08-07 00:00:00.000000,0,0.01 -1070,2020-10-08 00:00:00.000000,1,10.08 -1071,2020-04-16 00:00:00.000000,0,0.25 -1072,2021-07-01 00:00:00.000000,1,20.13 -1073,2020-04-25 00:00:00.000000,0,0.1 -1074,2021-03-01 00:00:00.000000,0,0.0 -1075,2020-11-29 00:00:00.000000,1,3.63 -1076,2020-04-15 00:00:00.000000,1,6.72 -1077,2020-10-08 00:00:00.000000,1,10.08 -1078,2020-10-04 00:00:00.000000,1,30.3 -1079,2020-02-15 00:00:00.000000,0,0.0 -1080,2020-08-07 00:00:00.000000,0,0.01 -1081,2020-04-16 00:00:00.000000,0,0.25 -1082,2021-07-01 00:00:00.000000,1,20.13 -1083,2021-03-01 00:00:00.000000,0,0.0 -1084,2020-04-15 00:00:00.000000,1,6.72 -1085,2020-02-15 00:00:00.000000,0,0.0 -1086,2020-08-07 00:00:00.000000,0,0.01 -1087,2020-11-29 00:00:00.000000,1,3.63 -1088,2020-10-08 00:00:00.000000,1,10.08 -1089,2020-04-25 00:00:00.000000,0,0.1 -1090,2020-10-04 00:00:00.000000,1,30.3 -1091,2020-08-07 00:00:00.000000,0,0.01 -1092,2020-04-25 00:00:00.000000,0,0.1 -1093,2020-10-08 00:00:00.000000,1,10.08 -1094,2020-04-15 00:00:00.000000,1,6.72 -1095,2020-10-04 00:00:00.000000,1,30.3 -1096,2020-02-15 00:00:00.000000,0,0.0 -1097,2021-07-01 00:00:00.000000,1,20.13 -1098,2020-11-29 00:00:00.000000,1,3.63 -1099,2020-04-16 00:00:00.000000,0,0.25 -1100,2021-03-01 00:00:00.000000,0,0.0 diff --git a/carrot/data/test/inputs/original/vaccine.csv b/carrot/data/test/inputs/original/vaccine.csv deleted file mode 100644 index 135a01ac..00000000 --- a/carrot/data/test/inputs/original/vaccine.csv +++ /dev/null @@ -1,501 +0,0 @@ -PersonID,vacc_date,Dose,vaccine_name -101,2021-02-17,1,PFIZER -101,2021-01-04,2,PFIZER -104,2021-04-04,1,ASTRAZENECA -109,2021-03-02,1,ASTRAZENECA -109,2021-05-03,2,ASTRAZENECA -106,2021-02-17,1,PFIZER -106,2021-04-04,1,ASTRAZENECA -109,2021-03-02,1,ASTRAZENECA -114,2021-05-03,2,ASTRAZENECA -114,2021-01-04,2,PFIZER -111,2021-01-04,2,PFIZER -111,2021-04-04,1,ASTRAZENECA -114,2021-03-02,1,ASTRAZENECA -119,2021-05-03,2,ASTRAZENECA -119,2021-02-17,1,PFIZER -116,2021-03-02,1,ASTRAZENECA -116,2021-01-04,2,PFIZER -119,2021-04-04,1,ASTRAZENECA -124,2021-02-17,1,PFIZER -124,2021-05-03,2,ASTRAZENECA -121,2021-01-04,2,PFIZER -121,2021-03-02,1,ASTRAZENECA -124,2021-05-03,2,ASTRAZENECA -129,2021-04-04,1,ASTRAZENECA -129,2021-02-17,1,PFIZER -126,2021-03-02,1,ASTRAZENECA -126,2021-01-04,2,PFIZER -129,2021-02-17,1,PFIZER -134,2021-05-03,2,ASTRAZENECA -134,2021-04-04,1,ASTRAZENECA -131,2021-01-04,2,PFIZER -131,2021-03-02,1,ASTRAZENECA -134,2021-04-04,1,ASTRAZENECA -139,2021-02-17,1,PFIZER -139,2021-05-03,2,ASTRAZENECA -136,2021-02-17,1,PFIZER -136,2021-05-03,2,ASTRAZENECA -139,2021-03-02,1,ASTRAZENECA -144,2021-04-04,1,ASTRAZENECA -144,2021-01-04,2,PFIZER -141,2021-05-03,2,ASTRAZENECA -141,2021-02-17,1,PFIZER -144,2021-04-04,1,ASTRAZENECA -149,2021-01-04,2,PFIZER -149,2021-03-02,1,ASTRAZENECA -146,2021-04-04,1,ASTRAZENECA -146,2021-02-17,1,PFIZER -149,2021-05-03,2,ASTRAZENECA -154,2021-01-04,2,PFIZER -154,2021-03-02,1,ASTRAZENECA -151,2021-04-04,1,ASTRAZENECA -151,2021-02-17,1,PFIZER -154,2021-03-02,1,ASTRAZENECA -159,2021-01-04,2,PFIZER -159,2021-05-03,2,ASTRAZENECA -156,2021-05-03,2,ASTRAZENECA -156,2021-03-02,1,ASTRAZENECA -159,2021-01-04,2,PFIZER -164,2021-02-17,1,PFIZER -164,2021-04-04,1,ASTRAZENECA -161,2021-01-04,2,PFIZER -161,2021-03-02,1,ASTRAZENECA -164,2021-05-03,2,ASTRAZENECA -169,2021-02-17,1,PFIZER -169,2021-04-04,1,ASTRAZENECA -166,2021-05-03,2,ASTRAZENECA -166,2021-04-04,1,ASTRAZENECA -169,2021-03-02,1,ASTRAZENECA -174,2021-01-04,2,PFIZER -174,2021-02-17,1,PFIZER -171,2021-03-02,1,ASTRAZENECA -171,2021-02-17,1,PFIZER -174,2021-04-04,1,ASTRAZENECA -179,2021-01-04,2,PFIZER -179,2021-05-03,2,ASTRAZENECA -176,2021-03-02,1,ASTRAZENECA -176,2021-05-03,2,ASTRAZENECA -179,2021-01-04,2,PFIZER -184,2021-04-04,1,ASTRAZENECA -184,2021-02-17,1,PFIZER -181,2021-03-02,1,ASTRAZENECA -181,2021-01-04,2,PFIZER -184,2021-04-04,1,ASTRAZENECA -189,2021-02-17,1,PFIZER -189,2021-05-03,2,ASTRAZENECA -186,2021-05-03,2,ASTRAZENECA -186,2021-02-17,1,PFIZER -189,2021-03-02,1,ASTRAZENECA -194,2021-04-04,1,ASTRAZENECA -194,2021-01-04,2,PFIZER -191,2021-05-03,2,ASTRAZENECA -191,2021-02-17,1,PFIZER -194,2021-01-04,2,PFIZER -199,2021-03-02,1,ASTRAZENECA -199,2021-04-04,1,ASTRAZENECA -196,2021-03-02,1,ASTRAZENECA -196,2021-02-17,1,PFIZER -199,2021-05-03,2,ASTRAZENECA -204,2021-01-04,2,PFIZER -204,2021-04-04,1,ASTRAZENECA -201,2021-04-04,1,ASTRAZENECA -201,2021-05-03,2,ASTRAZENECA -204,2021-02-17,1,PFIZER -209,2021-01-04,2,PFIZER -209,2021-03-02,1,ASTRAZENECA -206,2021-03-02,1,ASTRAZENECA -206,2021-04-04,1,ASTRAZENECA -209,2021-02-17,1,PFIZER -214,2021-05-03,2,ASTRAZENECA -214,2021-01-04,2,PFIZER -211,2021-01-04,2,PFIZER -211,2021-02-17,1,PFIZER -214,2021-03-02,1,ASTRAZENECA -219,2021-05-03,2,ASTRAZENECA -219,2021-04-04,1,ASTRAZENECA -216,2021-05-03,2,ASTRAZENECA -216,2021-01-04,2,PFIZER -219,2021-02-17,1,PFIZER -224,2021-04-04,1,ASTRAZENECA -224,2021-03-02,1,ASTRAZENECA -221,2021-04-04,1,ASTRAZENECA -221,2021-03-02,1,ASTRAZENECA -224,2021-05-03,2,ASTRAZENECA -229,2021-01-04,2,PFIZER -229,2021-02-17,1,PFIZER -226,2021-01-04,2,PFIZER -226,2021-05-03,2,ASTRAZENECA -229,2021-03-02,1,ASTRAZENECA -234,2021-04-04,1,ASTRAZENECA -234,2021-02-17,1,PFIZER -231,2021-02-17,1,PFIZER -231,2021-04-04,1,ASTRAZENECA -234,2021-05-03,2,ASTRAZENECA -239,2021-03-02,1,ASTRAZENECA -239,2021-01-04,2,PFIZER -236,2021-05-03,2,ASTRAZENECA -236,2021-03-02,1,ASTRAZENECA -239,2021-01-04,2,PFIZER -244,2021-02-17,1,PFIZER -244,2021-04-04,1,ASTRAZENECA -241,2021-05-03,2,ASTRAZENECA -241,2021-04-04,1,ASTRAZENECA -244,2021-03-02,1,ASTRAZENECA -249,2021-01-04,2,PFIZER -249,2021-02-17,1,PFIZER -246,2021-03-02,1,ASTRAZENECA -246,2021-02-17,1,PFIZER -249,2021-05-03,2,ASTRAZENECA -254,2021-01-04,2,PFIZER -254,2021-04-04,1,ASTRAZENECA -251,2021-01-04,2,PFIZER -251,2021-04-04,1,ASTRAZENECA -254,2021-03-02,1,ASTRAZENECA -259,2021-05-03,2,ASTRAZENECA -259,2021-02-17,1,PFIZER -256,2021-02-17,1,PFIZER -256,2021-03-02,1,ASTRAZENECA -259,2021-01-04,2,PFIZER -264,2021-04-04,1,ASTRAZENECA -264,2021-05-03,2,ASTRAZENECA -261,2021-02-17,1,PFIZER -261,2021-05-03,2,ASTRAZENECA -264,2021-03-02,1,ASTRAZENECA -269,2021-01-04,2,PFIZER -269,2021-04-04,1,ASTRAZENECA -266,2021-04-04,1,ASTRAZENECA -266,2021-01-04,2,PFIZER -269,2021-02-17,1,PFIZER -274,2021-05-03,2,ASTRAZENECA -274,2021-03-02,1,ASTRAZENECA -271,2021-05-03,2,ASTRAZENECA -271,2021-01-04,2,PFIZER -274,2021-03-02,1,ASTRAZENECA -279,2021-04-04,1,ASTRAZENECA -279,2021-02-17,1,PFIZER -276,2021-04-04,1,ASTRAZENECA -276,2021-01-04,2,PFIZER -279,2021-05-03,2,ASTRAZENECA -284,2021-03-02,1,ASTRAZENECA -284,2021-02-17,1,PFIZER -281,2021-02-17,1,PFIZER -281,2021-01-04,2,PFIZER -284,2021-05-03,2,ASTRAZENECA -289,2021-04-04,1,ASTRAZENECA -289,2021-03-02,1,ASTRAZENECA -286,2021-02-17,1,PFIZER -286,2021-03-02,1,ASTRAZENECA -289,2021-04-04,1,ASTRAZENECA -294,2021-01-04,2,PFIZER -294,2021-05-03,2,ASTRAZENECA -291,2021-04-04,1,ASTRAZENECA -291,2021-02-17,1,PFIZER -294,2021-01-04,2,PFIZER -299,2021-05-03,2,ASTRAZENECA -299,2021-03-02,1,ASTRAZENECA -296,2021-04-04,1,ASTRAZENECA -296,2021-02-17,1,PFIZER -299,2021-01-04,2,PFIZER -304,2021-03-02,1,ASTRAZENECA -304,2021-05-03,2,ASTRAZENECA -301,2021-04-04,1,ASTRAZENECA -301,2021-03-02,1,ASTRAZENECA -304,2021-01-04,2,PFIZER -309,2021-02-17,1,PFIZER -309,2021-05-03,2,ASTRAZENECA -306,2021-02-17,1,PFIZER -306,2021-05-03,2,ASTRAZENECA -309,2021-01-04,2,PFIZER -314,2021-04-04,1,ASTRAZENECA -314,2021-03-02,1,ASTRAZENECA -311,2021-04-04,1,ASTRAZENECA -311,2021-05-03,2,ASTRAZENECA -314,2021-03-02,1,ASTRAZENECA -319,2021-02-17,1,PFIZER -319,2021-01-04,2,PFIZER -316,2021-01-04,2,PFIZER -316,2021-04-04,1,ASTRAZENECA -319,2021-02-17,1,PFIZER -324,2021-05-03,2,ASTRAZENECA -324,2021-03-02,1,ASTRAZENECA -321,2021-01-04,2,PFIZER -321,2021-03-02,1,ASTRAZENECA -324,2021-05-03,2,ASTRAZENECA -329,2021-04-04,1,ASTRAZENECA -329,2021-02-17,1,PFIZER -326,2021-03-02,1,ASTRAZENECA -326,2021-04-04,1,ASTRAZENECA -329,2021-02-17,1,PFIZER -334,2021-01-04,2,PFIZER -334,2021-05-03,2,ASTRAZENECA -331,2021-02-17,1,PFIZER -331,2021-04-04,1,ASTRAZENECA -334,2021-01-04,2,PFIZER -339,2021-03-02,1,ASTRAZENECA -339,2021-05-03,2,ASTRAZENECA -336,2021-02-17,1,PFIZER -336,2021-04-04,1,ASTRAZENECA -339,2021-05-03,2,ASTRAZENECA -344,2021-01-04,2,PFIZER -344,2021-03-02,1,ASTRAZENECA -341,2021-05-03,2,ASTRAZENECA -341,2021-03-02,1,ASTRAZENECA -344,2021-04-04,1,ASTRAZENECA -349,2021-01-04,2,PFIZER -349,2021-02-17,1,PFIZER -346,2021-05-03,2,ASTRAZENECA -346,2021-04-04,1,ASTRAZENECA -349,2021-01-04,2,PFIZER -354,2021-02-17,1,PFIZER -354,2021-03-02,1,ASTRAZENECA -351,2021-05-03,2,ASTRAZENECA -351,2021-01-04,2,PFIZER -354,2021-04-04,1,ASTRAZENECA -359,2021-02-17,1,PFIZER -359,2021-03-02,1,ASTRAZENECA -356,2021-03-02,1,ASTRAZENECA -356,2021-05-03,2,ASTRAZENECA -359,2021-01-04,2,PFIZER -364,2021-02-17,1,PFIZER -364,2021-04-04,1,ASTRAZENECA -361,2021-01-04,2,PFIZER -361,2021-03-02,1,ASTRAZENECA -364,2021-02-17,1,PFIZER -369,2021-05-03,2,ASTRAZENECA -369,2021-04-04,1,ASTRAZENECA -366,2021-03-02,1,ASTRAZENECA -366,2021-01-04,2,PFIZER -369,2021-05-03,2,ASTRAZENECA -374,2021-04-04,1,ASTRAZENECA -374,2021-02-17,1,PFIZER -371,2021-01-04,2,PFIZER -371,2021-04-04,1,ASTRAZENECA -374,2021-05-03,2,ASTRAZENECA -379,2021-02-17,1,PFIZER -379,2021-03-02,1,ASTRAZENECA -376,2021-02-17,1,PFIZER -376,2021-05-03,2,ASTRAZENECA -379,2021-03-02,1,ASTRAZENECA -384,2021-01-04,2,PFIZER -384,2021-04-04,1,ASTRAZENECA -381,2021-05-03,2,ASTRAZENECA -381,2021-01-04,2,PFIZER -384,2021-02-17,1,PFIZER -389,2021-04-04,1,ASTRAZENECA -389,2021-03-02,1,ASTRAZENECA -386,2021-02-17,1,PFIZER -386,2021-04-04,1,ASTRAZENECA -389,2021-03-02,1,ASTRAZENECA -394,2021-01-04,2,PFIZER -394,2021-05-03,2,ASTRAZENECA -391,2021-02-17,1,PFIZER -391,2021-01-04,2,PFIZER -394,2021-05-03,2,ASTRAZENECA -399,2021-04-04,1,ASTRAZENECA -399,2021-03-02,1,ASTRAZENECA -396,2021-02-17,1,PFIZER -396,2021-03-02,1,ASTRAZENECA -399,2021-01-04,2,PFIZER -404,2021-05-03,2,ASTRAZENECA -404,2021-04-04,1,ASTRAZENECA -401,2021-03-02,1,ASTRAZENECA -401,2021-01-04,2,PFIZER -404,2021-02-17,1,PFIZER -409,2021-05-03,2,ASTRAZENECA -409,2021-04-04,1,ASTRAZENECA -406,2021-01-04,2,PFIZER -406,2021-03-02,1,ASTRAZENECA -409,2021-02-17,1,PFIZER -414,2021-05-03,2,ASTRAZENECA -414,2021-04-04,1,ASTRAZENECA -411,2021-04-04,1,ASTRAZENECA -411,2021-03-02,1,ASTRAZENECA -414,2021-05-03,2,ASTRAZENECA -419,2021-02-17,1,PFIZER -419,2021-01-04,2,PFIZER -416,2021-02-17,1,PFIZER -416,2021-01-04,2,PFIZER -419,2021-04-04,1,ASTRAZENECA -424,2021-05-03,2,ASTRAZENECA -424,2021-03-02,1,ASTRAZENECA -421,2021-01-04,2,PFIZER -421,2021-02-17,1,PFIZER -424,2021-04-04,1,ASTRAZENECA -429,2021-03-02,1,ASTRAZENECA -429,2021-05-03,2,ASTRAZENECA -426,2021-05-03,2,ASTRAZENECA -426,2021-02-17,1,PFIZER -429,2021-01-04,2,PFIZER -434,2021-04-04,1,ASTRAZENECA -434,2021-03-02,1,ASTRAZENECA -431,2021-04-04,1,ASTRAZENECA -431,2021-03-02,1,ASTRAZENECA -434,2021-02-17,1,PFIZER -439,2021-01-04,2,PFIZER -439,2021-05-03,2,ASTRAZENECA -436,2021-02-17,1,PFIZER -436,2021-04-04,1,ASTRAZENECA -439,2021-05-03,2,ASTRAZENECA -444,2021-01-04,2,PFIZER -444,2021-03-02,1,ASTRAZENECA -441,2021-01-04,2,PFIZER -441,2021-04-04,1,ASTRAZENECA -444,2021-02-17,1,PFIZER -449,2021-05-03,2,ASTRAZENECA -449,2021-03-02,1,ASTRAZENECA -446,2021-02-17,1,PFIZER -446,2021-04-04,1,ASTRAZENECA -449,2021-03-02,1,ASTRAZENECA -454,2021-05-03,2,ASTRAZENECA -454,2021-01-04,2,PFIZER -451,2021-04-04,1,ASTRAZENECA -451,2021-05-03,2,ASTRAZENECA -454,2021-02-17,1,PFIZER -459,2021-01-04,2,PFIZER -459,2021-03-02,1,ASTRAZENECA -456,2021-04-04,1,ASTRAZENECA -456,2021-03-02,1,ASTRAZENECA -459,2021-02-17,1,PFIZER -464,2021-05-03,2,ASTRAZENECA -464,2021-01-04,2,PFIZER -461,2021-03-02,1,ASTRAZENECA -461,2021-01-04,2,PFIZER -464,2021-04-04,1,ASTRAZENECA -469,2021-02-17,1,PFIZER -469,2021-05-03,2,ASTRAZENECA -466,2021-05-03,2,ASTRAZENECA -466,2021-01-04,2,PFIZER -469,2021-02-17,1,PFIZER -474,2021-03-02,1,ASTRAZENECA -474,2021-04-04,1,ASTRAZENECA -471,2021-04-04,1,ASTRAZENECA -471,2021-03-02,1,ASTRAZENECA -474,2021-01-04,2,PFIZER -479,2021-05-03,2,ASTRAZENECA -479,2021-02-17,1,PFIZER -476,2021-01-04,2,PFIZER -476,2021-03-02,1,ASTRAZENECA -479,2021-04-04,1,ASTRAZENECA -484,2021-02-17,1,PFIZER -484,2021-05-03,2,ASTRAZENECA -481,2021-05-03,2,ASTRAZENECA -481,2021-02-17,1,PFIZER -484,2021-01-04,2,PFIZER -489,2021-03-02,1,ASTRAZENECA -489,2021-04-04,1,ASTRAZENECA -486,2021-01-04,2,PFIZER -486,2021-04-04,1,ASTRAZENECA -489,2021-05-03,2,ASTRAZENECA -494,2021-03-02,1,ASTRAZENECA -494,2021-02-17,1,PFIZER -491,2021-01-04,2,PFIZER -491,2021-02-17,1,PFIZER -494,2021-05-03,2,ASTRAZENECA -499,2021-04-04,1,ASTRAZENECA -499,2021-03-02,1,ASTRAZENECA -496,2021-02-17,1,PFIZER -496,2021-05-03,2,ASTRAZENECA -499,2021-04-04,1,ASTRAZENECA -504,2021-03-02,1,ASTRAZENECA -504,2021-01-04,2,PFIZER -501,2021-01-04,2,PFIZER -501,2021-05-03,2,ASTRAZENECA -504,2021-04-04,1,ASTRAZENECA -509,2021-02-17,1,PFIZER -509,2021-03-02,1,ASTRAZENECA -506,2021-03-02,1,ASTRAZENECA -506,2021-04-04,1,ASTRAZENECA -509,2021-05-03,2,ASTRAZENECA -514,2021-01-04,2,PFIZER -514,2021-02-17,1,PFIZER -511,2021-02-17,1,PFIZER -511,2021-05-03,2,ASTRAZENECA -514,2021-04-04,1,ASTRAZENECA -519,2021-01-04,2,PFIZER -519,2021-03-02,1,ASTRAZENECA -516,2021-05-03,2,ASTRAZENECA -516,2021-03-02,1,ASTRAZENECA -519,2021-01-04,2,PFIZER -524,2021-02-17,1,PFIZER -524,2021-04-04,1,ASTRAZENECA -521,2021-05-03,2,ASTRAZENECA -521,2021-03-02,1,ASTRAZENECA -524,2021-01-04,2,PFIZER -529,2021-02-17,1,PFIZER -529,2021-04-04,1,ASTRAZENECA -526,2021-03-02,1,ASTRAZENECA -526,2021-04-04,1,ASTRAZENECA -529,2021-02-17,1,PFIZER -534,2021-01-04,2,PFIZER -534,2021-05-03,2,ASTRAZENECA -531,2021-04-04,1,ASTRAZENECA -531,2021-03-02,1,ASTRAZENECA -534,2021-01-04,2,PFIZER -539,2021-02-17,1,PFIZER -539,2021-05-03,2,ASTRAZENECA -536,2021-02-17,1,PFIZER -536,2021-04-04,1,ASTRAZENECA -539,2021-01-04,2,PFIZER -544,2021-05-03,2,ASTRAZENECA -544,2021-03-02,1,ASTRAZENECA -541,2021-01-04,2,PFIZER -541,2021-04-04,1,ASTRAZENECA -544,2021-05-03,2,ASTRAZENECA -549,2021-03-02,1,ASTRAZENECA -549,2021-02-17,1,PFIZER -546,2021-04-04,1,ASTRAZENECA -546,2021-01-04,2,PFIZER -549,2021-05-03,2,ASTRAZENECA -554,2021-03-02,1,ASTRAZENECA -554,2021-02-17,1,PFIZER -551,2021-02-17,1,PFIZER -551,2021-04-04,1,ASTRAZENECA -554,2021-01-04,2,PFIZER -559,2021-03-02,1,ASTRAZENECA -559,2021-05-03,2,ASTRAZENECA -556,2021-03-02,1,ASTRAZENECA -556,2021-04-04,1,ASTRAZENECA -559,2021-05-03,2,ASTRAZENECA -564,2021-02-17,1,PFIZER -564,2021-01-04,2,PFIZER -561,2021-03-02,1,ASTRAZENECA -561,2021-02-17,1,PFIZER -564,2021-05-03,2,ASTRAZENECA -569,2021-04-04,1,ASTRAZENECA -569,2021-01-04,2,PFIZER -566,2021-01-04,2,PFIZER -566,2021-05-03,2,ASTRAZENECA -569,2021-02-17,1,PFIZER -574,2021-03-02,1,ASTRAZENECA -574,2021-04-04,1,ASTRAZENECA -571,2021-03-02,1,ASTRAZENECA -571,2021-05-03,2,ASTRAZENECA -574,2021-01-04,2,PFIZER -579,2021-04-04,1,ASTRAZENECA -579,2021-02-17,1,PFIZER -576,2021-04-04,1,ASTRAZENECA -576,2021-05-03,2,ASTRAZENECA -579,2021-01-04,2,PFIZER -584,2021-02-17,1,PFIZER -584,2021-03-02,1,ASTRAZENECA -581,2021-03-02,1,ASTRAZENECA -581,2021-04-04,1,ASTRAZENECA -584,2021-02-17,1,PFIZER -589,2021-05-03,2,ASTRAZENECA -589,2021-01-04,2,PFIZER -586,2021-01-04,2,PFIZER -586,2021-02-17,1,PFIZER -589,2021-05-03,2,ASTRAZENECA -594,2021-04-04,1,ASTRAZENECA -594,2021-03-02,1,ASTRAZENECA -591,2021-01-04,2,PFIZER -591,2021-05-03,2,ASTRAZENECA -594,2021-04-04,1,ASTRAZENECA -599,2021-03-02,1,ASTRAZENECA -599,2021-02-17,1,PFIZER -596,2021-01-04,2,PFIZER -596,2021-04-04,1,ASTRAZENECA -599,2021-05-03,2,ASTRAZENECA -604,2021-03-02,1,ASTRAZENECA -604,2021-02-17,1,PFIZER diff --git a/carrot/data/test/inputs/vaccine.csv b/carrot/data/test/inputs/vaccine.csv deleted file mode 100644 index 245a4db7..00000000 --- a/carrot/data/test/inputs/vaccine.csv +++ /dev/null @@ -1,501 +0,0 @@ -PersonID,vacc_date,Dose,vaccine_name -16dc368a89b428b2485484313ba67a3912ca03f2b2b42429174a4f8b3dc84e44,2021-02-17,1,PFIZER -16dc368a89b428b2485484313ba67a3912ca03f2b2b42429174a4f8b3dc84e44,2021-01-04,2,PFIZER -5ef6fdf32513aa7cd11f72beccf132b9224d33f271471fff402742887a171edf,2021-04-04,1,ASTRAZENECA -0fd42b3f73c448b34940b339f87d07adf116b05c0227aad72e8f0ee90533e699,2021-03-02,1,ASTRAZENECA -0fd42b3f73c448b34940b339f87d07adf116b05c0227aad72e8f0ee90533e699,2021-05-03,2,ASTRAZENECA -482d9673cfee5de391f97fde4d1c84f9f8d6f2cf0784fcffb958b4032de7236c,2021-02-17,1,PFIZER -482d9673cfee5de391f97fde4d1c84f9f8d6f2cf0784fcffb958b4032de7236c,2021-04-04,1,ASTRAZENECA -0fd42b3f73c448b34940b339f87d07adf116b05c0227aad72e8f0ee90533e699,2021-03-02,1,ASTRAZENECA -9f1f9dce319c4700ef28ec8c53bd3cc8e6abe64c68385479ab89215806a5bdd6,2021-05-03,2,ASTRAZENECA -9f1f9dce319c4700ef28ec8c53bd3cc8e6abe64c68385479ab89215806a5bdd6,2021-01-04,2,PFIZER -f6e0a1e2ac41945a9aa7ff8a8aaa0cebc12a3bcc981a929ad5cf810a090e11ae,2021-01-04,2,PFIZER -f6e0a1e2ac41945a9aa7ff8a8aaa0cebc12a3bcc981a929ad5cf810a090e11ae,2021-04-04,1,ASTRAZENECA -9f1f9dce319c4700ef28ec8c53bd3cc8e6abe64c68385479ab89215806a5bdd6,2021-03-02,1,ASTRAZENECA -3038bfb575bee6a0e61945eff8784835bb2c720634e42734678c083994b7f018,2021-05-03,2,ASTRAZENECA -3038bfb575bee6a0e61945eff8784835bb2c720634e42734678c083994b7f018,2021-02-17,1,PFIZER -e5b861a6d8a966dfca7e7341cd3eb6be9901688d547a72ebed0b1f5e14f3d08d,2021-03-02,1,ASTRAZENECA -e5b861a6d8a966dfca7e7341cd3eb6be9901688d547a72ebed0b1f5e14f3d08d,2021-01-04,2,PFIZER -3038bfb575bee6a0e61945eff8784835bb2c720634e42734678c083994b7f018,2021-04-04,1,ASTRAZENECA -6affdae3b3c1aa6aa7689e9b6a7b3225a636aa1ac0025f490cca1285ceaf1487,2021-02-17,1,PFIZER -6affdae3b3c1aa6aa7689e9b6a7b3225a636aa1ac0025f490cca1285ceaf1487,2021-05-03,2,ASTRAZENECA -89aa1e580023722db67646e8149eb246c748e180e34a1cf679ab0b41a416d904,2021-01-04,2,PFIZER -89aa1e580023722db67646e8149eb246c748e180e34a1cf679ab0b41a416d904,2021-03-02,1,ASTRAZENECA -6affdae3b3c1aa6aa7689e9b6a7b3225a636aa1ac0025f490cca1285ceaf1487,2021-05-03,2,ASTRAZENECA -6566230e3a3ce3774c1bbc7c18b590ae0f457bbcd511e90e3e7dca2a02e7addc,2021-04-04,1,ASTRAZENECA -6566230e3a3ce3774c1bbc7c18b590ae0f457bbcd511e90e3e7dca2a02e7addc,2021-02-17,1,PFIZER -65a699905c02619370bcf9207f5a477c3d67130ca71ec6f750e07fe8d510b084,2021-03-02,1,ASTRAZENECA -65a699905c02619370bcf9207f5a477c3d67130ca71ec6f750e07fe8d510b084,2021-01-04,2,PFIZER -6566230e3a3ce3774c1bbc7c18b590ae0f457bbcd511e90e3e7dca2a02e7addc,2021-02-17,1,PFIZER -5d389f5e2e34c6b0bad96581c22cee0be36dcf627cd73af4d4cccacd9ef40cc3,2021-05-03,2,ASTRAZENECA -5d389f5e2e34c6b0bad96581c22cee0be36dcf627cd73af4d4cccacd9ef40cc3,2021-04-04,1,ASTRAZENECA -eeca91fd439b6d5e827e8fda7fee35046f2def93508637483f6be8a2df7a4392,2021-01-04,2,PFIZER -eeca91fd439b6d5e827e8fda7fee35046f2def93508637483f6be8a2df7a4392,2021-03-02,1,ASTRAZENECA -5d389f5e2e34c6b0bad96581c22cee0be36dcf627cd73af4d4cccacd9ef40cc3,2021-04-04,1,ASTRAZENECA -8d27ba37c5d810106b55f3fd6cdb35842007e88754184bfc0e6035f9bcede633,2021-02-17,1,PFIZER -8d27ba37c5d810106b55f3fd6cdb35842007e88754184bfc0e6035f9bcede633,2021-05-03,2,ASTRAZENECA -36ebe205bcdfc499a25e6923f4450fa8d48196ceb4fa0ce077d9d8ec4a36926d,2021-02-17,1,PFIZER -36ebe205bcdfc499a25e6923f4450fa8d48196ceb4fa0ce077d9d8ec4a36926d,2021-05-03,2,ASTRAZENECA -8d27ba37c5d810106b55f3fd6cdb35842007e88754184bfc0e6035f9bcede633,2021-03-02,1,ASTRAZENECA -5ec1a0c99d428601ce42b407ae9c675e0836a8ba591c8ca6e2a2cf5563d97ff0,2021-04-04,1,ASTRAZENECA -5ec1a0c99d428601ce42b407ae9c675e0836a8ba591c8ca6e2a2cf5563d97ff0,2021-01-04,2,PFIZER -2c7d5490e6050836f8f2f0d496b1c8d6a38d4ffac2b898e6e77751bdcd20ebf5,2021-05-03,2,ASTRAZENECA -2c7d5490e6050836f8f2f0d496b1c8d6a38d4ffac2b898e6e77751bdcd20ebf5,2021-02-17,1,PFIZER -5ec1a0c99d428601ce42b407ae9c675e0836a8ba591c8ca6e2a2cf5563d97ff0,2021-04-04,1,ASTRAZENECA -05ada863a4cf9660fd8c68e2295f1d35b2264815f5b605003d6625bd9e0492cf,2021-01-04,2,PFIZER -05ada863a4cf9660fd8c68e2295f1d35b2264815f5b605003d6625bd9e0492cf,2021-03-02,1,ASTRAZENECA -0a5b046d07f6f971b7776de682f57c5b9cdc8fa060db7ef59de82e721c8098f4,2021-04-04,1,ASTRAZENECA -0a5b046d07f6f971b7776de682f57c5b9cdc8fa060db7ef59de82e721c8098f4,2021-02-17,1,PFIZER -05ada863a4cf9660fd8c68e2295f1d35b2264815f5b605003d6625bd9e0492cf,2021-05-03,2,ASTRAZENECA -1d0ebea552eb43d0b1e1561f6de8ae92e3de7f1abec52399244d1caed7dbdfa6,2021-01-04,2,PFIZER -1d0ebea552eb43d0b1e1561f6de8ae92e3de7f1abec52399244d1caed7dbdfa6,2021-03-02,1,ASTRAZENECA -8e612bd1f5d132a339575b8dafb7842c64614e56bcf3d5ab65a0bc4b34329407,2021-04-04,1,ASTRAZENECA -8e612bd1f5d132a339575b8dafb7842c64614e56bcf3d5ab65a0bc4b34329407,2021-02-17,1,PFIZER -1d0ebea552eb43d0b1e1561f6de8ae92e3de7f1abec52399244d1caed7dbdfa6,2021-03-02,1,ASTRAZENECA -ff2ccb6ba423d356bd549ed4bfb76e96976a0dcde05a09996a1cdb9f83422ec4,2021-01-04,2,PFIZER -ff2ccb6ba423d356bd549ed4bfb76e96976a0dcde05a09996a1cdb9f83422ec4,2021-05-03,2,ASTRAZENECA -0fecf9247f3ddc84db8a804fa3065c013baf6b7c2458c2ba2bf56c2e1d42ddd4,2021-05-03,2,ASTRAZENECA -0fecf9247f3ddc84db8a804fa3065c013baf6b7c2458c2ba2bf56c2e1d42ddd4,2021-03-02,1,ASTRAZENECA -ff2ccb6ba423d356bd549ed4bfb76e96976a0dcde05a09996a1cdb9f83422ec4,2021-01-04,2,PFIZER -3f9807cb9ae9fb6c30942af6139909d27753a5e03fe5a5c6e93b014f5b17366f,2021-02-17,1,PFIZER -3f9807cb9ae9fb6c30942af6139909d27753a5e03fe5a5c6e93b014f5b17366f,2021-04-04,1,ASTRAZENECA -bb668ca95563216088b98a62557fa1e26802563f3919ac78ae30533bb9ed422c,2021-01-04,2,PFIZER -bb668ca95563216088b98a62557fa1e26802563f3919ac78ae30533bb9ed422c,2021-03-02,1,ASTRAZENECA -3f9807cb9ae9fb6c30942af6139909d27753a5e03fe5a5c6e93b014f5b17366f,2021-05-03,2,ASTRAZENECA -f57e5cb1f4532c008183057ecc94283801fcb5afe2d1c190e3dfd38c4da08042,2021-02-17,1,PFIZER -f57e5cb1f4532c008183057ecc94283801fcb5afe2d1c190e3dfd38c4da08042,2021-04-04,1,ASTRAZENECA -e0f05da93a0f5a86a3be5fc0e301606513c9f7e59dac2357348aa0f2f47db984,2021-05-03,2,ASTRAZENECA -e0f05da93a0f5a86a3be5fc0e301606513c9f7e59dac2357348aa0f2f47db984,2021-04-04,1,ASTRAZENECA -f57e5cb1f4532c008183057ecc94283801fcb5afe2d1c190e3dfd38c4da08042,2021-03-02,1,ASTRAZENECA -41e521adf8ae7a0f419ee06e1d9fb794162369237b46f64bf5b2b9969b0bcd2e,2021-01-04,2,PFIZER -41e521adf8ae7a0f419ee06e1d9fb794162369237b46f64bf5b2b9969b0bcd2e,2021-02-17,1,PFIZER -284de502c9847342318c17d474733ef468fbdbe252cddf6e4b4be0676706d9d0,2021-03-02,1,ASTRAZENECA -284de502c9847342318c17d474733ef468fbdbe252cddf6e4b4be0676706d9d0,2021-02-17,1,PFIZER -41e521adf8ae7a0f419ee06e1d9fb794162369237b46f64bf5b2b9969b0bcd2e,2021-04-04,1,ASTRAZENECA -3068430da9e4b7a674184035643d9e19af3dc7483e31cc03b35f75268401df77,2021-01-04,2,PFIZER -3068430da9e4b7a674184035643d9e19af3dc7483e31cc03b35f75268401df77,2021-05-03,2,ASTRAZENECA -cba28b89eb859497f544956d64cf2ecf29b76fe2ef7175b33ea59e64293a4461,2021-03-02,1,ASTRAZENECA -cba28b89eb859497f544956d64cf2ecf29b76fe2ef7175b33ea59e64293a4461,2021-05-03,2,ASTRAZENECA -3068430da9e4b7a674184035643d9e19af3dc7483e31cc03b35f75268401df77,2021-01-04,2,PFIZER -52f11620e397f867b7d9f19e48caeb64658356a6b5d17138c00dd9feaf5d7ad6,2021-04-04,1,ASTRAZENECA -52f11620e397f867b7d9f19e48caeb64658356a6b5d17138c00dd9feaf5d7ad6,2021-02-17,1,PFIZER -580811fa95269f3ecd4f22d176e079d36093573680b6ef66fa341e687a15b5da,2021-03-02,1,ASTRAZENECA -580811fa95269f3ecd4f22d176e079d36093573680b6ef66fa341e687a15b5da,2021-01-04,2,PFIZER -52f11620e397f867b7d9f19e48caeb64658356a6b5d17138c00dd9feaf5d7ad6,2021-04-04,1,ASTRAZENECA -7045d16ae7f043ec25774a0a85d6f479e5bb019e9c5a1584bc76736d116b8f33,2021-02-17,1,PFIZER -7045d16ae7f043ec25774a0a85d6f479e5bb019e9c5a1584bc76736d116b8f33,2021-05-03,2,ASTRAZENECA -2811745d7b8d8874f6e653d176cefdd19e05e920ce389b9b7e83e5b2dfa546c7,2021-05-03,2,ASTRAZENECA -2811745d7b8d8874f6e653d176cefdd19e05e920ce389b9b7e83e5b2dfa546c7,2021-02-17,1,PFIZER -7045d16ae7f043ec25774a0a85d6f479e5bb019e9c5a1584bc76736d116b8f33,2021-03-02,1,ASTRAZENECA -7559ca4a957c8c82ba04781cd66a68d6022229fca0e8e88d8e487c96ee4446d0,2021-04-04,1,ASTRAZENECA -7559ca4a957c8c82ba04781cd66a68d6022229fca0e8e88d8e487c96ee4446d0,2021-01-04,2,PFIZER -70260742c2952154c84e2ea9f68b1a7397f49b6d343da1ed284093c0bd72c742,2021-05-03,2,ASTRAZENECA -70260742c2952154c84e2ea9f68b1a7397f49b6d343da1ed284093c0bd72c742,2021-02-17,1,PFIZER -7559ca4a957c8c82ba04781cd66a68d6022229fca0e8e88d8e487c96ee4446d0,2021-01-04,2,PFIZER -5a39cadd1b007093db50744797c7a04a34f73b35ed444704206705b02597d6fd,2021-03-02,1,ASTRAZENECA -5a39cadd1b007093db50744797c7a04a34f73b35ed444704206705b02597d6fd,2021-04-04,1,ASTRAZENECA -b4bbe448fde336bb6a7d7d765f36d3327c772b845e7b54c8282aa08c9775ddd7,2021-03-02,1,ASTRAZENECA -b4bbe448fde336bb6a7d7d765f36d3327c772b845e7b54c8282aa08c9775ddd7,2021-02-17,1,PFIZER -5a39cadd1b007093db50744797c7a04a34f73b35ed444704206705b02597d6fd,2021-05-03,2,ASTRAZENECA -fc56dbc6d4652b315b86b71c8d688c1ccdea9c5f1fd07763d2659fde2e2fc49a,2021-01-04,2,PFIZER -fc56dbc6d4652b315b86b71c8d688c1ccdea9c5f1fd07763d2659fde2e2fc49a,2021-04-04,1,ASTRAZENECA -43974ed74066b207c30ffd0fed5146762e6c60745ac977004bc14507c7c42b50,2021-04-04,1,ASTRAZENECA -43974ed74066b207c30ffd0fed5146762e6c60745ac977004bc14507c7c42b50,2021-05-03,2,ASTRAZENECA -fc56dbc6d4652b315b86b71c8d688c1ccdea9c5f1fd07763d2659fde2e2fc49a,2021-02-17,1,PFIZER -83f814f7a92e365cbd79f9addceed185761a8d38a06a2d4350bb1fe4b7632b34,2021-01-04,2,PFIZER -83f814f7a92e365cbd79f9addceed185761a8d38a06a2d4350bb1fe4b7632b34,2021-03-02,1,ASTRAZENECA -5cf4e26bd3d87da5e03f80a43a64f1220a1f4ba9e1d6348caea83c06353c3f39,2021-03-02,1,ASTRAZENECA -5cf4e26bd3d87da5e03f80a43a64f1220a1f4ba9e1d6348caea83c06353c3f39,2021-04-04,1,ASTRAZENECA -83f814f7a92e365cbd79f9addceed185761a8d38a06a2d4350bb1fe4b7632b34,2021-02-17,1,PFIZER -802b906a18591ead8a6dd809b262ace4c65c16e89764c40ae326cfcff811e10c,2021-05-03,2,ASTRAZENECA -802b906a18591ead8a6dd809b262ace4c65c16e89764c40ae326cfcff811e10c,2021-01-04,2,PFIZER -093434a3ee9e0a010bb2c2aae06c2614dd24894062a1caf26718a01e175569b8,2021-01-04,2,PFIZER -093434a3ee9e0a010bb2c2aae06c2614dd24894062a1caf26718a01e175569b8,2021-02-17,1,PFIZER -802b906a18591ead8a6dd809b262ace4c65c16e89764c40ae326cfcff811e10c,2021-03-02,1,ASTRAZENECA -314f04b30f62e0056bd059354a5536fb2e302107eed143b5fa2aa0bbba07f608,2021-05-03,2,ASTRAZENECA -314f04b30f62e0056bd059354a5536fb2e302107eed143b5fa2aa0bbba07f608,2021-04-04,1,ASTRAZENECA -0f4121d0ef1df4c86854c7ebb47ae1c93de8aec8f944035eeaa6495dd71a0678,2021-05-03,2,ASTRAZENECA -0f4121d0ef1df4c86854c7ebb47ae1c93de8aec8f944035eeaa6495dd71a0678,2021-01-04,2,PFIZER -314f04b30f62e0056bd059354a5536fb2e302107eed143b5fa2aa0bbba07f608,2021-02-17,1,PFIZER -84a5092e4a5b6fe968fd523fb2fc917dbffae44105f82b6b94c8ed5b9a800223,2021-04-04,1,ASTRAZENECA -84a5092e4a5b6fe968fd523fb2fc917dbffae44105f82b6b94c8ed5b9a800223,2021-03-02,1,ASTRAZENECA -67e9c3acebb154a282f326d4ff1951cd1f342e58e74d562b556b517da5e56132,2021-04-04,1,ASTRAZENECA -67e9c3acebb154a282f326d4ff1951cd1f342e58e74d562b556b517da5e56132,2021-03-02,1,ASTRAZENECA -84a5092e4a5b6fe968fd523fb2fc917dbffae44105f82b6b94c8ed5b9a800223,2021-05-03,2,ASTRAZENECA -08490295488a1189099751ebeddb5992313dd2a831e07a92e66d196ddc261777,2021-01-04,2,PFIZER -08490295488a1189099751ebeddb5992313dd2a831e07a92e66d196ddc261777,2021-02-17,1,PFIZER -8f1f64db81c40ea10e1e9080c9ae60a7acb8925968c431ee16784dea9841c66f,2021-01-04,2,PFIZER -8f1f64db81c40ea10e1e9080c9ae60a7acb8925968c431ee16784dea9841c66f,2021-05-03,2,ASTRAZENECA -08490295488a1189099751ebeddb5992313dd2a831e07a92e66d196ddc261777,2021-03-02,1,ASTRAZENECA -114bd151f8fb0c58642d2170da4ae7d7c57977260ac2cc8905306cab6b2acabc,2021-04-04,1,ASTRAZENECA -114bd151f8fb0c58642d2170da4ae7d7c57977260ac2cc8905306cab6b2acabc,2021-02-17,1,PFIZER -138d9e809e386a7b800791d1f664f56d1c55f3d1ba411b950862729bc486c5ce,2021-02-17,1,PFIZER -138d9e809e386a7b800791d1f664f56d1c55f3d1ba411b950862729bc486c5ce,2021-04-04,1,ASTRAZENECA -114bd151f8fb0c58642d2170da4ae7d7c57977260ac2cc8905306cab6b2acabc,2021-05-03,2,ASTRAZENECA -79bf08685d3138f9b109c3546780f056bc954fd69377b84a2cf23622e464897b,2021-03-02,1,ASTRAZENECA -79bf08685d3138f9b109c3546780f056bc954fd69377b84a2cf23622e464897b,2021-01-04,2,PFIZER -9a049b03f6fc40bfcf2f136320359257ed4af8513f71aa6fef47f17059bbae23,2021-05-03,2,ASTRAZENECA -9a049b03f6fc40bfcf2f136320359257ed4af8513f71aa6fef47f17059bbae23,2021-03-02,1,ASTRAZENECA -79bf08685d3138f9b109c3546780f056bc954fd69377b84a2cf23622e464897b,2021-01-04,2,PFIZER -82c01ce15b431d420eb6a1febfba7d7a2b69e5bcdcb929cb42cd3e9179d43fc4,2021-02-17,1,PFIZER -82c01ce15b431d420eb6a1febfba7d7a2b69e5bcdcb929cb42cd3e9179d43fc4,2021-04-04,1,ASTRAZENECA -749fc650cacb0f06547520d53c31505c8156e0a3be07073eddb2ef3ad9e383ba,2021-05-03,2,ASTRAZENECA -749fc650cacb0f06547520d53c31505c8156e0a3be07073eddb2ef3ad9e383ba,2021-04-04,1,ASTRAZENECA -82c01ce15b431d420eb6a1febfba7d7a2b69e5bcdcb929cb42cd3e9179d43fc4,2021-03-02,1,ASTRAZENECA -9f484139a27415ae2e8612bf6c65a8101a18eb5e9b7809e74ca63a45a65f17f4,2021-01-04,2,PFIZER -9f484139a27415ae2e8612bf6c65a8101a18eb5e9b7809e74ca63a45a65f17f4,2021-02-17,1,PFIZER -37c20f19f3272b5ccc3a5d80587eb9deb3f4afcf568c4280fb195568da8eb1a2,2021-03-02,1,ASTRAZENECA -37c20f19f3272b5ccc3a5d80587eb9deb3f4afcf568c4280fb195568da8eb1a2,2021-02-17,1,PFIZER -9f484139a27415ae2e8612bf6c65a8101a18eb5e9b7809e74ca63a45a65f17f4,2021-05-03,2,ASTRAZENECA -9512d95d00d61bdec03d2b99d6ecc455ee5644ae52d10e7c4a61c93062dc97a3,2021-01-04,2,PFIZER -9512d95d00d61bdec03d2b99d6ecc455ee5644ae52d10e7c4a61c93062dc97a3,2021-04-04,1,ASTRAZENECA -c75d3f1f5bcd6914d0331ce5ec17c0db8f2070a2d4285f8e3ff11c6ca19168ff,2021-01-04,2,PFIZER -c75d3f1f5bcd6914d0331ce5ec17c0db8f2070a2d4285f8e3ff11c6ca19168ff,2021-04-04,1,ASTRAZENECA -9512d95d00d61bdec03d2b99d6ecc455ee5644ae52d10e7c4a61c93062dc97a3,2021-03-02,1,ASTRAZENECA -7c252ab334fb8fd88e8242c4972c21db9c7ce0b47c9acc4ebfe40c14614cb734,2021-05-03,2,ASTRAZENECA -7c252ab334fb8fd88e8242c4972c21db9c7ce0b47c9acc4ebfe40c14614cb734,2021-02-17,1,PFIZER -51e8ea280b44e16934d4d611901f3d3afc41789840acdff81942c2f65009cd52,2021-02-17,1,PFIZER -51e8ea280b44e16934d4d611901f3d3afc41789840acdff81942c2f65009cd52,2021-03-02,1,ASTRAZENECA -7c252ab334fb8fd88e8242c4972c21db9c7ce0b47c9acc4ebfe40c14614cb734,2021-01-04,2,PFIZER -bba58959c32abe688d9cb5222b97de973002a67c412d6a8c8d2a79ac692f32b7,2021-04-04,1,ASTRAZENECA -bba58959c32abe688d9cb5222b97de973002a67c412d6a8c8d2a79ac692f32b7,2021-05-03,2,ASTRAZENECA -e888a676e1926d0c08b5f11fb9116df58b62604b05846f39f8d6fc4dd0ba31f1,2021-02-17,1,PFIZER -e888a676e1926d0c08b5f11fb9116df58b62604b05846f39f8d6fc4dd0ba31f1,2021-05-03,2,ASTRAZENECA -bba58959c32abe688d9cb5222b97de973002a67c412d6a8c8d2a79ac692f32b7,2021-03-02,1,ASTRAZENECA -f747870ae666c39b589f577856a0f7198b3b81269cb0326de86d8046f2cf72db,2021-01-04,2,PFIZER -f747870ae666c39b589f577856a0f7198b3b81269cb0326de86d8046f2cf72db,2021-04-04,1,ASTRAZENECA -ea5b27556fbb134def2c2fbf944d9cdda3dbdb6b10473a1aec59f6f170c4ca3a,2021-04-04,1,ASTRAZENECA -ea5b27556fbb134def2c2fbf944d9cdda3dbdb6b10473a1aec59f6f170c4ca3a,2021-01-04,2,PFIZER -f747870ae666c39b589f577856a0f7198b3b81269cb0326de86d8046f2cf72db,2021-02-17,1,PFIZER -718127812c05853f0bec61582a4a3840b1c844fe11fe1a004b5b7eb8b8b59846,2021-05-03,2,ASTRAZENECA -718127812c05853f0bec61582a4a3840b1c844fe11fe1a004b5b7eb8b8b59846,2021-03-02,1,ASTRAZENECA -3635a91e3da857f7847f68185a116a5260d2593f3913f6b1b66cc2d75b0d6ec0,2021-05-03,2,ASTRAZENECA -3635a91e3da857f7847f68185a116a5260d2593f3913f6b1b66cc2d75b0d6ec0,2021-01-04,2,PFIZER -718127812c05853f0bec61582a4a3840b1c844fe11fe1a004b5b7eb8b8b59846,2021-03-02,1,ASTRAZENECA -efd96aedf377e20afd95285a7c751a864260bd6a149656a4040c5b7757bdbbb6,2021-04-04,1,ASTRAZENECA -efd96aedf377e20afd95285a7c751a864260bd6a149656a4040c5b7757bdbbb6,2021-02-17,1,PFIZER -c76b405781134be1dab7fe45adfb8c32104805a01de7b863e1004b66d56edf9f,2021-04-04,1,ASTRAZENECA -c76b405781134be1dab7fe45adfb8c32104805a01de7b863e1004b66d56edf9f,2021-01-04,2,PFIZER -efd96aedf377e20afd95285a7c751a864260bd6a149656a4040c5b7757bdbbb6,2021-05-03,2,ASTRAZENECA -1e68ed4e3d58a51096a7feea3947f40debf1fd9246ec977eb62ab93c81823ad9,2021-03-02,1,ASTRAZENECA -1e68ed4e3d58a51096a7feea3947f40debf1fd9246ec977eb62ab93c81823ad9,2021-02-17,1,PFIZER -71a1c003a2b855d85582c8f6c7648c49d3fe836408a7e1b5d9b222448acb3c1b,2021-02-17,1,PFIZER -71a1c003a2b855d85582c8f6c7648c49d3fe836408a7e1b5d9b222448acb3c1b,2021-01-04,2,PFIZER -1e68ed4e3d58a51096a7feea3947f40debf1fd9246ec977eb62ab93c81823ad9,2021-05-03,2,ASTRAZENECA -af180e4359fc6179dc953abdcbdcaf7c146b53e1bee2b335e50dead11ccefa07,2021-04-04,1,ASTRAZENECA -af180e4359fc6179dc953abdcbdcaf7c146b53e1bee2b335e50dead11ccefa07,2021-03-02,1,ASTRAZENECA -00328ce57bbc14b33bd6695bc8eb32cdf2fb5f3a7d89ec14a42825e15d39df60,2021-02-17,1,PFIZER -00328ce57bbc14b33bd6695bc8eb32cdf2fb5f3a7d89ec14a42825e15d39df60,2021-03-02,1,ASTRAZENECA -af180e4359fc6179dc953abdcbdcaf7c146b53e1bee2b335e50dead11ccefa07,2021-04-04,1,ASTRAZENECA -2cfc8ccbd7c0b17615323b41e815651ff2ae9ffae45a4599c0499b98ff940429,2021-01-04,2,PFIZER -2cfc8ccbd7c0b17615323b41e815651ff2ae9ffae45a4599c0499b98ff940429,2021-05-03,2,ASTRAZENECA -33512007840ced1bb0aab68f47cb5f702abd494a15f26bcbe26a1e47af03d841,2021-04-04,1,ASTRAZENECA -33512007840ced1bb0aab68f47cb5f702abd494a15f26bcbe26a1e47af03d841,2021-02-17,1,PFIZER -2cfc8ccbd7c0b17615323b41e815651ff2ae9ffae45a4599c0499b98ff940429,2021-01-04,2,PFIZER -308831041ea4863c3f87d222c31f759411898c874a9006b4bd6c745858b8f3bd,2021-05-03,2,ASTRAZENECA -308831041ea4863c3f87d222c31f759411898c874a9006b4bd6c745858b8f3bd,2021-03-02,1,ASTRAZENECA -a0f8b2c4cb1ac82abdb37f0fe5203b97be556c4468c83bba18684d620fd8eaf9,2021-04-04,1,ASTRAZENECA -a0f8b2c4cb1ac82abdb37f0fe5203b97be556c4468c83bba18684d620fd8eaf9,2021-02-17,1,PFIZER -308831041ea4863c3f87d222c31f759411898c874a9006b4bd6c745858b8f3bd,2021-01-04,2,PFIZER -d874e4e4a5df21173b0f83e313151f813bea4f488686efe670ae47f87c177595,2021-03-02,1,ASTRAZENECA -d874e4e4a5df21173b0f83e313151f813bea4f488686efe670ae47f87c177595,2021-05-03,2,ASTRAZENECA -c3ea99f86b2f8a74ef4145bb245155ff5f91cd856f287523481c15a1959d5fd1,2021-04-04,1,ASTRAZENECA -c3ea99f86b2f8a74ef4145bb245155ff5f91cd856f287523481c15a1959d5fd1,2021-03-02,1,ASTRAZENECA -d874e4e4a5df21173b0f83e313151f813bea4f488686efe670ae47f87c177595,2021-01-04,2,PFIZER -43c727ee4fc7250574d2ef90cfa16626388a10e1b30d36ece1c272953ad2ed9e,2021-02-17,1,PFIZER -43c727ee4fc7250574d2ef90cfa16626388a10e1b30d36ece1c272953ad2ed9e,2021-05-03,2,ASTRAZENECA -38b83caefa1ef26940f1d07bd4ec94c60809b0f88f2118e82ef8ec2d98938a84,2021-02-17,1,PFIZER -38b83caefa1ef26940f1d07bd4ec94c60809b0f88f2118e82ef8ec2d98938a84,2021-05-03,2,ASTRAZENECA -43c727ee4fc7250574d2ef90cfa16626388a10e1b30d36ece1c272953ad2ed9e,2021-01-04,2,PFIZER -748064be03a08df81e31bd6f9e7e7c4cc9f84b4401b9a3c6e85b7ff816d3ba68,2021-04-04,1,ASTRAZENECA -748064be03a08df81e31bd6f9e7e7c4cc9f84b4401b9a3c6e85b7ff816d3ba68,2021-03-02,1,ASTRAZENECA -20e9c64c05a54d199610fb7e38135361324b5ed5dcf39c23afe9b48926c07376,2021-04-04,1,ASTRAZENECA -20e9c64c05a54d199610fb7e38135361324b5ed5dcf39c23afe9b48926c07376,2021-05-03,2,ASTRAZENECA -748064be03a08df81e31bd6f9e7e7c4cc9f84b4401b9a3c6e85b7ff816d3ba68,2021-03-02,1,ASTRAZENECA -156091ee0884f36de9836d58b6f05f357ec6ef0620c571577ac61f7beac35f8e,2021-02-17,1,PFIZER -156091ee0884f36de9836d58b6f05f357ec6ef0620c571577ac61f7beac35f8e,2021-01-04,2,PFIZER -7a20311cf7a4b222d436424480bc65dd0f9d2cefcbbb1fa148ca0d7e1d5bb55a,2021-01-04,2,PFIZER -7a20311cf7a4b222d436424480bc65dd0f9d2cefcbbb1fa148ca0d7e1d5bb55a,2021-04-04,1,ASTRAZENECA -156091ee0884f36de9836d58b6f05f357ec6ef0620c571577ac61f7beac35f8e,2021-02-17,1,PFIZER -1038e0b72d98745fac0fb015fd9c56704862adf11392936242a2ff5a65629f50,2021-05-03,2,ASTRAZENECA -1038e0b72d98745fac0fb015fd9c56704862adf11392936242a2ff5a65629f50,2021-03-02,1,ASTRAZENECA -8d23cf6c86e834a7aa6eded54c26ce2bb2e74903538c61bdd5d2197997ab2f72,2021-01-04,2,PFIZER -8d23cf6c86e834a7aa6eded54c26ce2bb2e74903538c61bdd5d2197997ab2f72,2021-03-02,1,ASTRAZENECA -1038e0b72d98745fac0fb015fd9c56704862adf11392936242a2ff5a65629f50,2021-05-03,2,ASTRAZENECA -0791963ca2667a23cf3268ad25d7bb6ca0ed287b192869703cdbcf0e87934c33,2021-04-04,1,ASTRAZENECA -0791963ca2667a23cf3268ad25d7bb6ca0ed287b192869703cdbcf0e87934c33,2021-02-17,1,PFIZER -a4e987d17584557e2fbed011cddf66dc5185338bc3ef33d4226f86c32b7364dd,2021-03-02,1,ASTRAZENECA -a4e987d17584557e2fbed011cddf66dc5185338bc3ef33d4226f86c32b7364dd,2021-04-04,1,ASTRAZENECA -0791963ca2667a23cf3268ad25d7bb6ca0ed287b192869703cdbcf0e87934c33,2021-02-17,1,PFIZER -058d5d43bf485bf78dda1ed4eaf8b78e3106f3c6364c625ead2cc3aeb1908237,2021-01-04,2,PFIZER -058d5d43bf485bf78dda1ed4eaf8b78e3106f3c6364c625ead2cc3aeb1908237,2021-05-03,2,ASTRAZENECA -0bba869d7f392cbcaca6b8935ddc7fc3a8c50846d884959333fb7da475957511,2021-02-17,1,PFIZER -0bba869d7f392cbcaca6b8935ddc7fc3a8c50846d884959333fb7da475957511,2021-04-04,1,ASTRAZENECA -058d5d43bf485bf78dda1ed4eaf8b78e3106f3c6364c625ead2cc3aeb1908237,2021-01-04,2,PFIZER -fc95ce176603e9e1d1ffee39023b31dd856e00ad030526902604ed2a68a12c4b,2021-03-02,1,ASTRAZENECA -fc95ce176603e9e1d1ffee39023b31dd856e00ad030526902604ed2a68a12c4b,2021-05-03,2,ASTRAZENECA -eaa0689a095d4394a05fb51b84b0175a47f68221261377e4829444cbfcae23ca,2021-02-17,1,PFIZER -eaa0689a095d4394a05fb51b84b0175a47f68221261377e4829444cbfcae23ca,2021-04-04,1,ASTRAZENECA -fc95ce176603e9e1d1ffee39023b31dd856e00ad030526902604ed2a68a12c4b,2021-05-03,2,ASTRAZENECA -02e6295d8f522840f09b5194b3f023799ad6ed3306d9296005787e792224df20,2021-01-04,2,PFIZER -02e6295d8f522840f09b5194b3f023799ad6ed3306d9296005787e792224df20,2021-03-02,1,ASTRAZENECA -524b2d27a1e7fbc3a1614fa661e2dcad68462352feeb8bf633deaccfb8aa84f3,2021-05-03,2,ASTRAZENECA -524b2d27a1e7fbc3a1614fa661e2dcad68462352feeb8bf633deaccfb8aa84f3,2021-03-02,1,ASTRAZENECA -02e6295d8f522840f09b5194b3f023799ad6ed3306d9296005787e792224df20,2021-04-04,1,ASTRAZENECA -72ba187b05e705de2dced5824d716a71872dedccf21f0c179bd2d5f2c7c974b1,2021-01-04,2,PFIZER -72ba187b05e705de2dced5824d716a71872dedccf21f0c179bd2d5f2c7c974b1,2021-02-17,1,PFIZER -6aac0cf87a32e631536122c3f2f9a2df215f56f28792a43a8658b0593f2e5255,2021-05-03,2,ASTRAZENECA -6aac0cf87a32e631536122c3f2f9a2df215f56f28792a43a8658b0593f2e5255,2021-04-04,1,ASTRAZENECA -72ba187b05e705de2dced5824d716a71872dedccf21f0c179bd2d5f2c7c974b1,2021-01-04,2,PFIZER -09a1b036b82baba3177d83c27c1f7d0beacaac6de1c5fdcc9680c49f638c5fb9,2021-02-17,1,PFIZER -09a1b036b82baba3177d83c27c1f7d0beacaac6de1c5fdcc9680c49f638c5fb9,2021-03-02,1,ASTRAZENECA -04a8708c3a481ced13845a30de522486895de0592222c29326d9139ec2b9df25,2021-05-03,2,ASTRAZENECA -04a8708c3a481ced13845a30de522486895de0592222c29326d9139ec2b9df25,2021-01-04,2,PFIZER -09a1b036b82baba3177d83c27c1f7d0beacaac6de1c5fdcc9680c49f638c5fb9,2021-04-04,1,ASTRAZENECA -9197e4844abed2fea3569a2acf7b0d584c979c333ab7ae10ba6c339898776f5a,2021-02-17,1,PFIZER -9197e4844abed2fea3569a2acf7b0d584c979c333ab7ae10ba6c339898776f5a,2021-03-02,1,ASTRAZENECA -03a3d955b8799a90f1ff5a39479fde8e618f8ca3282d5b187186f2cf361abd32,2021-03-02,1,ASTRAZENECA -03a3d955b8799a90f1ff5a39479fde8e618f8ca3282d5b187186f2cf361abd32,2021-05-03,2,ASTRAZENECA -9197e4844abed2fea3569a2acf7b0d584c979c333ab7ae10ba6c339898776f5a,2021-01-04,2,PFIZER -b3dfdc6efe322a6feccb0d081e88ffac20b0f28e8495efa76188c8dc3ada6181,2021-02-17,1,PFIZER -b3dfdc6efe322a6feccb0d081e88ffac20b0f28e8495efa76188c8dc3ada6181,2021-04-04,1,ASTRAZENECA -73daa9289ddd08a53ba86f065ddb07bf915aba208bec652e999613d2a8444228,2021-01-04,2,PFIZER -73daa9289ddd08a53ba86f065ddb07bf915aba208bec652e999613d2a8444228,2021-03-02,1,ASTRAZENECA -b3dfdc6efe322a6feccb0d081e88ffac20b0f28e8495efa76188c8dc3ada6181,2021-02-17,1,PFIZER -5f193b350c8aba4883dedf97367ef3080821470661d0a2e1faf420a300cb5ca8,2021-05-03,2,ASTRAZENECA -5f193b350c8aba4883dedf97367ef3080821470661d0a2e1faf420a300cb5ca8,2021-04-04,1,ASTRAZENECA -600b4cdf20cc06a7b5a5cca5f7464296861815519af6d8a14604201b13965ab8,2021-03-02,1,ASTRAZENECA -600b4cdf20cc06a7b5a5cca5f7464296861815519af6d8a14604201b13965ab8,2021-01-04,2,PFIZER -5f193b350c8aba4883dedf97367ef3080821470661d0a2e1faf420a300cb5ca8,2021-05-03,2,ASTRAZENECA -01299ac65733b5a3d774265fbfe8396b8611e5e3321855dbc541cd301e71fe5e,2021-04-04,1,ASTRAZENECA -01299ac65733b5a3d774265fbfe8396b8611e5e3321855dbc541cd301e71fe5e,2021-02-17,1,PFIZER -9b15fed64ef16980f625aeed46ab4cd2c498690551d3a2d1e5254d551d7d6ddf,2021-01-04,2,PFIZER -9b15fed64ef16980f625aeed46ab4cd2c498690551d3a2d1e5254d551d7d6ddf,2021-04-04,1,ASTRAZENECA -01299ac65733b5a3d774265fbfe8396b8611e5e3321855dbc541cd301e71fe5e,2021-05-03,2,ASTRAZENECA -64c212df34c66e6fe9fccbfebc8899c10584cfa1669c42a175d65db073b13bc0,2021-02-17,1,PFIZER -64c212df34c66e6fe9fccbfebc8899c10584cfa1669c42a175d65db073b13bc0,2021-03-02,1,ASTRAZENECA -12e2c8df501501b2bb531e941a737ffa7a2a491e849c5c5841e3b6132291bc35,2021-02-17,1,PFIZER -12e2c8df501501b2bb531e941a737ffa7a2a491e849c5c5841e3b6132291bc35,2021-05-03,2,ASTRAZENECA -64c212df34c66e6fe9fccbfebc8899c10584cfa1669c42a175d65db073b13bc0,2021-03-02,1,ASTRAZENECA -37b73510175057c633ebe4beb0a34917fa2a0696432db43a4eeb2c3ff83a4c3b,2021-01-04,2,PFIZER -37b73510175057c633ebe4beb0a34917fa2a0696432db43a4eeb2c3ff83a4c3b,2021-04-04,1,ASTRAZENECA -392a52e4f77c40bf3321dc2feac356fac2a906a80c961748170af4ce2bce1e6a,2021-05-03,2,ASTRAZENECA -392a52e4f77c40bf3321dc2feac356fac2a906a80c961748170af4ce2bce1e6a,2021-01-04,2,PFIZER -37b73510175057c633ebe4beb0a34917fa2a0696432db43a4eeb2c3ff83a4c3b,2021-02-17,1,PFIZER -b98880883fd8d975260f1807fa46a5156fcc4cc82bf6d657a417d8bb4e42cd55,2021-04-04,1,ASTRAZENECA -b98880883fd8d975260f1807fa46a5156fcc4cc82bf6d657a417d8bb4e42cd55,2021-03-02,1,ASTRAZENECA -15a26c6fa5151c712acc7ee45a1fd525ab85b801f096847c7d5fdf49efeabb4d,2021-02-17,1,PFIZER -15a26c6fa5151c712acc7ee45a1fd525ab85b801f096847c7d5fdf49efeabb4d,2021-04-04,1,ASTRAZENECA -b98880883fd8d975260f1807fa46a5156fcc4cc82bf6d657a417d8bb4e42cd55,2021-03-02,1,ASTRAZENECA -04d19fde0a08b17aca69491e714bea43565384d12a63626e08477662cc03780e,2021-01-04,2,PFIZER -04d19fde0a08b17aca69491e714bea43565384d12a63626e08477662cc03780e,2021-05-03,2,ASTRAZENECA -a934c244755c66aebb0d6f9f5687038ffae8f00b00b28b4e17521016393f38b9,2021-02-17,1,PFIZER -a934c244755c66aebb0d6f9f5687038ffae8f00b00b28b4e17521016393f38b9,2021-01-04,2,PFIZER -04d19fde0a08b17aca69491e714bea43565384d12a63626e08477662cc03780e,2021-05-03,2,ASTRAZENECA -0f78540965a86402578f8188c826c1cb6c7ddcb608ae3a3201e532c7cacb6ce3,2021-04-04,1,ASTRAZENECA -0f78540965a86402578f8188c826c1cb6c7ddcb608ae3a3201e532c7cacb6ce3,2021-03-02,1,ASTRAZENECA -3c1b7053f0edd447b778edbc0ad8359b0fa892d69857d9bd5e6b19007bb3f01e,2021-02-17,1,PFIZER -3c1b7053f0edd447b778edbc0ad8359b0fa892d69857d9bd5e6b19007bb3f01e,2021-03-02,1,ASTRAZENECA -0f78540965a86402578f8188c826c1cb6c7ddcb608ae3a3201e532c7cacb6ce3,2021-01-04,2,PFIZER -6b3c238ebcf1f3c07cf0e556faa82c6b8fe96840ff4b6b7e9962a2d855843a0b,2021-05-03,2,ASTRAZENECA -6b3c238ebcf1f3c07cf0e556faa82c6b8fe96840ff4b6b7e9962a2d855843a0b,2021-04-04,1,ASTRAZENECA -dcaadad1cfce437735b81ab025f776e5857e48558c47f6960e6a5f2595664a85,2021-03-02,1,ASTRAZENECA -dcaadad1cfce437735b81ab025f776e5857e48558c47f6960e6a5f2595664a85,2021-01-04,2,PFIZER -6b3c238ebcf1f3c07cf0e556faa82c6b8fe96840ff4b6b7e9962a2d855843a0b,2021-02-17,1,PFIZER -480f5a496560ae4228bb7977ecf29b2c589d7a7aa6b609534566af8cbc229a9e,2021-05-03,2,ASTRAZENECA -480f5a496560ae4228bb7977ecf29b2c589d7a7aa6b609534566af8cbc229a9e,2021-04-04,1,ASTRAZENECA -f64f410744d9470ffe2d6b9ee6f042cdffcc42a745d2568146e8782ea828ff48,2021-01-04,2,PFIZER -f64f410744d9470ffe2d6b9ee6f042cdffcc42a745d2568146e8782ea828ff48,2021-03-02,1,ASTRAZENECA -480f5a496560ae4228bb7977ecf29b2c589d7a7aa6b609534566af8cbc229a9e,2021-02-17,1,PFIZER -8111eb1556229541d7d2720a51203037e78ee57fb2e407e0da4a805473dab7af,2021-05-03,2,ASTRAZENECA -8111eb1556229541d7d2720a51203037e78ee57fb2e407e0da4a805473dab7af,2021-04-04,1,ASTRAZENECA -52f14fc33ef45dd80ac2626077948f44d8d211d5f24bf9db333c9403968e634a,2021-04-04,1,ASTRAZENECA -52f14fc33ef45dd80ac2626077948f44d8d211d5f24bf9db333c9403968e634a,2021-03-02,1,ASTRAZENECA -8111eb1556229541d7d2720a51203037e78ee57fb2e407e0da4a805473dab7af,2021-05-03,2,ASTRAZENECA -cc6aed2709b80e146bebc151f1cf1dec5e323b58148535a433529155030e3a52,2021-02-17,1,PFIZER -cc6aed2709b80e146bebc151f1cf1dec5e323b58148535a433529155030e3a52,2021-01-04,2,PFIZER -67e0bdb7b6c549d4fa834d0f6848ce6a3a12e07de9cea949ad41932bd5881bc4,2021-02-17,1,PFIZER -67e0bdb7b6c549d4fa834d0f6848ce6a3a12e07de9cea949ad41932bd5881bc4,2021-01-04,2,PFIZER -cc6aed2709b80e146bebc151f1cf1dec5e323b58148535a433529155030e3a52,2021-04-04,1,ASTRAZENECA -814fd2e8e45e9a6d3e1f6ff86867aaf2251ccd07f3eed02708fae286192c29e3,2021-05-03,2,ASTRAZENECA -814fd2e8e45e9a6d3e1f6ff86867aaf2251ccd07f3eed02708fae286192c29e3,2021-03-02,1,ASTRAZENECA -5092c37bcbc9f0fb33cb0f9cab7aa5ae94ed0f1219773c380b143b7c1224d01b,2021-01-04,2,PFIZER -5092c37bcbc9f0fb33cb0f9cab7aa5ae94ed0f1219773c380b143b7c1224d01b,2021-02-17,1,PFIZER -814fd2e8e45e9a6d3e1f6ff86867aaf2251ccd07f3eed02708fae286192c29e3,2021-04-04,1,ASTRAZENECA -2d1007980f49215311f7f1012e84f99b801eb5daeca04dedea3ada41cc45353b,2021-03-02,1,ASTRAZENECA -2d1007980f49215311f7f1012e84f99b801eb5daeca04dedea3ada41cc45353b,2021-05-03,2,ASTRAZENECA -9be3da431e0a833d2b07781de97ebbd0b14c274d16c0597820d9982a5f547cb3,2021-05-03,2,ASTRAZENECA -9be3da431e0a833d2b07781de97ebbd0b14c274d16c0597820d9982a5f547cb3,2021-02-17,1,PFIZER -2d1007980f49215311f7f1012e84f99b801eb5daeca04dedea3ada41cc45353b,2021-01-04,2,PFIZER -ea415bf50eb65ade427d8d80222df4627e28cd9a418f830bfd9b81d4149bb2ab,2021-04-04,1,ASTRAZENECA -ea415bf50eb65ade427d8d80222df4627e28cd9a418f830bfd9b81d4149bb2ab,2021-03-02,1,ASTRAZENECA -0a1f1256f9bac68e806442aa76455bb761af5414855efa23c1b3fd54477c0ba1,2021-04-04,1,ASTRAZENECA -0a1f1256f9bac68e806442aa76455bb761af5414855efa23c1b3fd54477c0ba1,2021-03-02,1,ASTRAZENECA -ea415bf50eb65ade427d8d80222df4627e28cd9a418f830bfd9b81d4149bb2ab,2021-02-17,1,PFIZER -050a010ce24d0896056e9a36a1940738d38f469d644b3682cfcc47569739c525,2021-01-04,2,PFIZER -050a010ce24d0896056e9a36a1940738d38f469d644b3682cfcc47569739c525,2021-05-03,2,ASTRAZENECA -155d1cf609cedded2fbc27a4646de87ce7f7de2913b1e5a1bbf148a6df483e19,2021-02-17,1,PFIZER -155d1cf609cedded2fbc27a4646de87ce7f7de2913b1e5a1bbf148a6df483e19,2021-04-04,1,ASTRAZENECA -050a010ce24d0896056e9a36a1940738d38f469d644b3682cfcc47569739c525,2021-05-03,2,ASTRAZENECA -3538a1ef2e113da64249eea7bd068b585ec7ce5df73b2d1e319d8c9bf47eb314,2021-01-04,2,PFIZER -3538a1ef2e113da64249eea7bd068b585ec7ce5df73b2d1e319d8c9bf47eb314,2021-03-02,1,ASTRAZENECA -2dfe70c43208f52b9ef4ea7e134705283947116491e81fbac05f0aedc25c5956,2021-01-04,2,PFIZER -2dfe70c43208f52b9ef4ea7e134705283947116491e81fbac05f0aedc25c5956,2021-04-04,1,ASTRAZENECA -3538a1ef2e113da64249eea7bd068b585ec7ce5df73b2d1e319d8c9bf47eb314,2021-02-17,1,PFIZER -4a30a219a9d7663fdd35c0a5df49c8d55018f13a0c53e10dd8efe8f7e4cc5d89,2021-05-03,2,ASTRAZENECA -4a30a219a9d7663fdd35c0a5df49c8d55018f13a0c53e10dd8efe8f7e4cc5d89,2021-03-02,1,ASTRAZENECA -75c3e223190bf1a1fa2af808d1dfcdffe33727d57eb0028b5a52ad893480eeb9,2021-02-17,1,PFIZER -75c3e223190bf1a1fa2af808d1dfcdffe33727d57eb0028b5a52ad893480eeb9,2021-04-04,1,ASTRAZENECA -4a30a219a9d7663fdd35c0a5df49c8d55018f13a0c53e10dd8efe8f7e4cc5d89,2021-03-02,1,ASTRAZENECA -48f89b630677c2cbb70e2ba05bf7a3633294e368a45bdc2c7df9d832f9e0c941,2021-05-03,2,ASTRAZENECA -48f89b630677c2cbb70e2ba05bf7a3633294e368a45bdc2c7df9d832f9e0c941,2021-01-04,2,PFIZER -caa1aedb2a6ce96b39b9fde1a49e1ebcb431b6da4586da0aef56df9b78221d60,2021-04-04,1,ASTRAZENECA -caa1aedb2a6ce96b39b9fde1a49e1ebcb431b6da4586da0aef56df9b78221d60,2021-05-03,2,ASTRAZENECA -48f89b630677c2cbb70e2ba05bf7a3633294e368a45bdc2c7df9d832f9e0c941,2021-02-17,1,PFIZER -42f0bec3310ddd8a55e8d62817337ca49c55a898c14ab073d07c16dee24d73d4,2021-01-04,2,PFIZER -42f0bec3310ddd8a55e8d62817337ca49c55a898c14ab073d07c16dee24d73d4,2021-03-02,1,ASTRAZENECA -b3a8e0e1f9ab1bfe3a36f231f676f78bb30a519d2b21e6c530c0eee8ebb4a5d0,2021-04-04,1,ASTRAZENECA -b3a8e0e1f9ab1bfe3a36f231f676f78bb30a519d2b21e6c530c0eee8ebb4a5d0,2021-03-02,1,ASTRAZENECA -42f0bec3310ddd8a55e8d62817337ca49c55a898c14ab073d07c16dee24d73d4,2021-02-17,1,PFIZER -88b54564b232405ab2165996517fece1149259cf1ea262a375db0f66039294d0,2021-05-03,2,ASTRAZENECA -88b54564b232405ab2165996517fece1149259cf1ea262a375db0f66039294d0,2021-01-04,2,PFIZER -de482c7ed5ca67ae135ef25bf3b13194970a2f3902318f1eda3c64af2a2eb344,2021-03-02,1,ASTRAZENECA -de482c7ed5ca67ae135ef25bf3b13194970a2f3902318f1eda3c64af2a2eb344,2021-01-04,2,PFIZER -88b54564b232405ab2165996517fece1149259cf1ea262a375db0f66039294d0,2021-04-04,1,ASTRAZENECA -c6bd343ae0007cdb979de7540f2668fe849d68ff47fa1a650a28f89104f41f1e,2021-02-17,1,PFIZER -c6bd343ae0007cdb979de7540f2668fe849d68ff47fa1a650a28f89104f41f1e,2021-05-03,2,ASTRAZENECA -826e27285307a923759de350de081d6218a04f4cff82b20c5ddaa8c60138c066,2021-05-03,2,ASTRAZENECA -826e27285307a923759de350de081d6218a04f4cff82b20c5ddaa8c60138c066,2021-01-04,2,PFIZER -c6bd343ae0007cdb979de7540f2668fe849d68ff47fa1a650a28f89104f41f1e,2021-02-17,1,PFIZER -98144d79af44407273f26589afc01901b7b296deada61a4740b0d404c5043c53,2021-03-02,1,ASTRAZENECA -98144d79af44407273f26589afc01901b7b296deada61a4740b0d404c5043c53,2021-04-04,1,ASTRAZENECA -064c3e311ef63912b0cc91db9681ce2d301c3e76c447febf8faa303de38cc005,2021-04-04,1,ASTRAZENECA -064c3e311ef63912b0cc91db9681ce2d301c3e76c447febf8faa303de38cc005,2021-03-02,1,ASTRAZENECA -98144d79af44407273f26589afc01901b7b296deada61a4740b0d404c5043c53,2021-01-04,2,PFIZER -9869a8a3a11a33284dc2bcc3d2e6ffd52cad30e2009c11dfe604e74dc21a887e,2021-05-03,2,ASTRAZENECA -9869a8a3a11a33284dc2bcc3d2e6ffd52cad30e2009c11dfe604e74dc21a887e,2021-02-17,1,PFIZER -e73cb135243c08ab2c2adc333b150b9237093315f6b38e3361f07caf2bfb4d6b,2021-01-04,2,PFIZER -e73cb135243c08ab2c2adc333b150b9237093315f6b38e3361f07caf2bfb4d6b,2021-03-02,1,ASTRAZENECA -9869a8a3a11a33284dc2bcc3d2e6ffd52cad30e2009c11dfe604e74dc21a887e,2021-04-04,1,ASTRAZENECA -a42e815c58f3977fe531a80ffd4659121c3b9f876a89869042816c369ed80776,2021-02-17,1,PFIZER -a42e815c58f3977fe531a80ffd4659121c3b9f876a89869042816c369ed80776,2021-05-03,2,ASTRAZENECA -51d089cdaf0c968c94b80671489d22b6f79b1c57de80df880b008e9b37b49788,2021-05-03,2,ASTRAZENECA -51d089cdaf0c968c94b80671489d22b6f79b1c57de80df880b008e9b37b49788,2021-02-17,1,PFIZER -a42e815c58f3977fe531a80ffd4659121c3b9f876a89869042816c369ed80776,2021-01-04,2,PFIZER -e4be97ce765e6cfcd703884cc31db7478fa7befca7cf6dc15420ba20ed718abe,2021-03-02,1,ASTRAZENECA -e4be97ce765e6cfcd703884cc31db7478fa7befca7cf6dc15420ba20ed718abe,2021-04-04,1,ASTRAZENECA -86b700fab5db37977a73700b53a0654b21bdad0896914cc19ad70dee5f5fb3f6,2021-01-04,2,PFIZER -86b700fab5db37977a73700b53a0654b21bdad0896914cc19ad70dee5f5fb3f6,2021-04-04,1,ASTRAZENECA -e4be97ce765e6cfcd703884cc31db7478fa7befca7cf6dc15420ba20ed718abe,2021-05-03,2,ASTRAZENECA -d18b29d80a8bd366b77c952d9775510507c2d006eec917ab2f89ef93acc5452f,2021-03-02,1,ASTRAZENECA -d18b29d80a8bd366b77c952d9775510507c2d006eec917ab2f89ef93acc5452f,2021-02-17,1,PFIZER -227445a988500528d7826c6921d2e3b4a79ccf3a94cc3bcf7b667e3ae4990b36,2021-01-04,2,PFIZER -227445a988500528d7826c6921d2e3b4a79ccf3a94cc3bcf7b667e3ae4990b36,2021-02-17,1,PFIZER -d18b29d80a8bd366b77c952d9775510507c2d006eec917ab2f89ef93acc5452f,2021-05-03,2,ASTRAZENECA -db3defda18fafc0c197740438051c690d98b551a7e449d66390d38fa2db09b77,2021-04-04,1,ASTRAZENECA -db3defda18fafc0c197740438051c690d98b551a7e449d66390d38fa2db09b77,2021-03-02,1,ASTRAZENECA -35bbce4007c5cd57a4c6dcabbdf5b347c9557ec11898111c280a788f8396e2c5,2021-02-17,1,PFIZER -35bbce4007c5cd57a4c6dcabbdf5b347c9557ec11898111c280a788f8396e2c5,2021-05-03,2,ASTRAZENECA -db3defda18fafc0c197740438051c690d98b551a7e449d66390d38fa2db09b77,2021-04-04,1,ASTRAZENECA -ba689abd93c9c6a7d08b5b5c04dd27f6d69755ebe9a87fb969e73dfc11660e38,2021-03-02,1,ASTRAZENECA -ba689abd93c9c6a7d08b5b5c04dd27f6d69755ebe9a87fb969e73dfc11660e38,2021-01-04,2,PFIZER -1158e7e12c5e7362318e5e3c2e1f2f1ab49578ab1d1691e9818a7c3f6b30b528,2021-01-04,2,PFIZER -1158e7e12c5e7362318e5e3c2e1f2f1ab49578ab1d1691e9818a7c3f6b30b528,2021-05-03,2,ASTRAZENECA -ba689abd93c9c6a7d08b5b5c04dd27f6d69755ebe9a87fb969e73dfc11660e38,2021-04-04,1,ASTRAZENECA -a05198938c6ca8cd56289c6dba6bb8aaa68dfe8e0d7a37df2fb76e48eeba4244,2021-02-17,1,PFIZER -a05198938c6ca8cd56289c6dba6bb8aaa68dfe8e0d7a37df2fb76e48eeba4244,2021-03-02,1,ASTRAZENECA -a2075145d3cc47b2b56aeec5e9c78fe7e0055169961b6823629772c96f1f0319,2021-03-02,1,ASTRAZENECA -a2075145d3cc47b2b56aeec5e9c78fe7e0055169961b6823629772c96f1f0319,2021-04-04,1,ASTRAZENECA -a05198938c6ca8cd56289c6dba6bb8aaa68dfe8e0d7a37df2fb76e48eeba4244,2021-05-03,2,ASTRAZENECA -b027feeb60b70f0d34ece10aead660113cf06408da4c6477c7b2606839475de4,2021-01-04,2,PFIZER -b027feeb60b70f0d34ece10aead660113cf06408da4c6477c7b2606839475de4,2021-02-17,1,PFIZER -2c69bc9b34fb0800a44a702e45019c107dfdc8273b9feb62c9615addc7138bde,2021-02-17,1,PFIZER -2c69bc9b34fb0800a44a702e45019c107dfdc8273b9feb62c9615addc7138bde,2021-05-03,2,ASTRAZENECA -b027feeb60b70f0d34ece10aead660113cf06408da4c6477c7b2606839475de4,2021-04-04,1,ASTRAZENECA -0cce0bd361c46fcde41daebc801da75e21320763dc2b1a5a62d9b28e7c3e1d10,2021-01-04,2,PFIZER -0cce0bd361c46fcde41daebc801da75e21320763dc2b1a5a62d9b28e7c3e1d10,2021-03-02,1,ASTRAZENECA -4771bef2c04a34b548b77ea7581cf821152d9dea9c2c85151a07856fe3639314,2021-05-03,2,ASTRAZENECA -4771bef2c04a34b548b77ea7581cf821152d9dea9c2c85151a07856fe3639314,2021-03-02,1,ASTRAZENECA -0cce0bd361c46fcde41daebc801da75e21320763dc2b1a5a62d9b28e7c3e1d10,2021-01-04,2,PFIZER -388c2eafe5afd475492698c0995a2daf157eb3b3be8207391d3a023c97c8c034,2021-02-17,1,PFIZER -388c2eafe5afd475492698c0995a2daf157eb3b3be8207391d3a023c97c8c034,2021-04-04,1,ASTRAZENECA -72933e3b31f0070af6478edc3becf96e1ee59917620e8c509cf0e6b360e29c02,2021-05-03,2,ASTRAZENECA -72933e3b31f0070af6478edc3becf96e1ee59917620e8c509cf0e6b360e29c02,2021-03-02,1,ASTRAZENECA -388c2eafe5afd475492698c0995a2daf157eb3b3be8207391d3a023c97c8c034,2021-01-04,2,PFIZER -8920a14a7f6469b955b114111564cb9736440238d220fc9fd525efdb9a056d3e,2021-02-17,1,PFIZER -8920a14a7f6469b955b114111564cb9736440238d220fc9fd525efdb9a056d3e,2021-04-04,1,ASTRAZENECA -f7c2599681e9284ce1c403459e22b730e997d67d16c45c4f593108e8372029a9,2021-03-02,1,ASTRAZENECA -f7c2599681e9284ce1c403459e22b730e997d67d16c45c4f593108e8372029a9,2021-04-04,1,ASTRAZENECA -8920a14a7f6469b955b114111564cb9736440238d220fc9fd525efdb9a056d3e,2021-02-17,1,PFIZER -5ef6514ed3304cf62b950982541114ac352c52729dbf80747775a9d1a733af93,2021-01-04,2,PFIZER -5ef6514ed3304cf62b950982541114ac352c52729dbf80747775a9d1a733af93,2021-05-03,2,ASTRAZENECA -891d46993a36d78392247c642138cede01d9841daab1d945709755b5194597c4,2021-04-04,1,ASTRAZENECA -891d46993a36d78392247c642138cede01d9841daab1d945709755b5194597c4,2021-03-02,1,ASTRAZENECA -5ef6514ed3304cf62b950982541114ac352c52729dbf80747775a9d1a733af93,2021-01-04,2,PFIZER -5109a4e14cbbfda6b4512fc17ff13814ff9427f7b602694236f2c5be4d9875af,2021-02-17,1,PFIZER -5109a4e14cbbfda6b4512fc17ff13814ff9427f7b602694236f2c5be4d9875af,2021-05-03,2,ASTRAZENECA -d11501b090fb2749f2c49284394dd36fe0ac76eb1a52cb3bba260dbc119ec46e,2021-02-17,1,PFIZER -d11501b090fb2749f2c49284394dd36fe0ac76eb1a52cb3bba260dbc119ec46e,2021-04-04,1,ASTRAZENECA -5109a4e14cbbfda6b4512fc17ff13814ff9427f7b602694236f2c5be4d9875af,2021-01-04,2,PFIZER -d359f8b537f1888bc71fe20b3d79eae6674be7aca9b645b0279c7015f6ff19fd,2021-05-03,2,ASTRAZENECA -d359f8b537f1888bc71fe20b3d79eae6674be7aca9b645b0279c7015f6ff19fd,2021-03-02,1,ASTRAZENECA -5de664ef205f95d4a68b69b148eecb04f110ac95ef77f4e5158ae315a76ddd8a,2021-01-04,2,PFIZER -5de664ef205f95d4a68b69b148eecb04f110ac95ef77f4e5158ae315a76ddd8a,2021-04-04,1,ASTRAZENECA -d359f8b537f1888bc71fe20b3d79eae6674be7aca9b645b0279c7015f6ff19fd,2021-05-03,2,ASTRAZENECA -068814875fcdfb8faf539ef43cf5d109a22b7cfd28770e90b00be8c48bfc722f,2021-03-02,1,ASTRAZENECA -068814875fcdfb8faf539ef43cf5d109a22b7cfd28770e90b00be8c48bfc722f,2021-02-17,1,PFIZER -6fc8f95bc6465849249d974d53eecc56c00ffda0fc3c7024bfa5b8e4d794b072,2021-04-04,1,ASTRAZENECA -6fc8f95bc6465849249d974d53eecc56c00ffda0fc3c7024bfa5b8e4d794b072,2021-01-04,2,PFIZER -068814875fcdfb8faf539ef43cf5d109a22b7cfd28770e90b00be8c48bfc722f,2021-05-03,2,ASTRAZENECA -833cd8c0e698745b16dac196a511327c3b30258a0d9b96710745d28eca932533,2021-03-02,1,ASTRAZENECA -833cd8c0e698745b16dac196a511327c3b30258a0d9b96710745d28eca932533,2021-02-17,1,PFIZER -1f09802c4beac758321ae8a9f94d752b0976c7d54baa6e511bba8a7374107bef,2021-02-17,1,PFIZER -1f09802c4beac758321ae8a9f94d752b0976c7d54baa6e511bba8a7374107bef,2021-04-04,1,ASTRAZENECA -833cd8c0e698745b16dac196a511327c3b30258a0d9b96710745d28eca932533,2021-01-04,2,PFIZER -0d6f9709edaeba4bebf576d6b886b8c7083374f521f5256bf571add42fc7465c,2021-03-02,1,ASTRAZENECA -0d6f9709edaeba4bebf576d6b886b8c7083374f521f5256bf571add42fc7465c,2021-05-03,2,ASTRAZENECA -9d6aa3d89c0171b9c2ccd57e6d41ccec3053d3c3f118386e7f10b89ebaa7b8e4,2021-03-02,1,ASTRAZENECA -9d6aa3d89c0171b9c2ccd57e6d41ccec3053d3c3f118386e7f10b89ebaa7b8e4,2021-04-04,1,ASTRAZENECA -0d6f9709edaeba4bebf576d6b886b8c7083374f521f5256bf571add42fc7465c,2021-05-03,2,ASTRAZENECA -621cb5d0bdea9584dc9f7ede1479e7cca67f8d9778d7e3c8c5cb8aa9eaef47ef,2021-02-17,1,PFIZER -621cb5d0bdea9584dc9f7ede1479e7cca67f8d9778d7e3c8c5cb8aa9eaef47ef,2021-01-04,2,PFIZER -04edd1d7736883194af3ddb232c337e53d17bc93cfd2140c4f4c4e0d966798b1,2021-03-02,1,ASTRAZENECA -04edd1d7736883194af3ddb232c337e53d17bc93cfd2140c4f4c4e0d966798b1,2021-02-17,1,PFIZER -621cb5d0bdea9584dc9f7ede1479e7cca67f8d9778d7e3c8c5cb8aa9eaef47ef,2021-05-03,2,ASTRAZENECA -c7ce483fd1cc5fd498e7e2a09851c65f89a33a6837f66d9fbb36e5e5f70b41a2,2021-04-04,1,ASTRAZENECA -c7ce483fd1cc5fd498e7e2a09851c65f89a33a6837f66d9fbb36e5e5f70b41a2,2021-01-04,2,PFIZER -c57727d64e318e2ea42af2b4c3360999ced134403066d050c980e7c6b70d49e4,2021-01-04,2,PFIZER -c57727d64e318e2ea42af2b4c3360999ced134403066d050c980e7c6b70d49e4,2021-05-03,2,ASTRAZENECA -c7ce483fd1cc5fd498e7e2a09851c65f89a33a6837f66d9fbb36e5e5f70b41a2,2021-02-17,1,PFIZER -8e28c5eb829e92abf7a5a921f42364cbb8b255d7c9861a68a3814a9de95d9d67,2021-03-02,1,ASTRAZENECA -8e28c5eb829e92abf7a5a921f42364cbb8b255d7c9861a68a3814a9de95d9d67,2021-04-04,1,ASTRAZENECA -f292c8c5c2fe9fd30ef1c632e6936edabe42f087e3cb50ceef0324b729383d82,2021-03-02,1,ASTRAZENECA -f292c8c5c2fe9fd30ef1c632e6936edabe42f087e3cb50ceef0324b729383d82,2021-05-03,2,ASTRAZENECA -8e28c5eb829e92abf7a5a921f42364cbb8b255d7c9861a68a3814a9de95d9d67,2021-01-04,2,PFIZER -59b524f8de039389005bce58385cae1d9241abd663e87647727abc8802e85c3b,2021-04-04,1,ASTRAZENECA -59b524f8de039389005bce58385cae1d9241abd663e87647727abc8802e85c3b,2021-02-17,1,PFIZER -f3457dabe1b412ed6374d56fe8fe3b969c761b77dcc80ecc0964b7c7641d219b,2021-04-04,1,ASTRAZENECA -f3457dabe1b412ed6374d56fe8fe3b969c761b77dcc80ecc0964b7c7641d219b,2021-05-03,2,ASTRAZENECA -59b524f8de039389005bce58385cae1d9241abd663e87647727abc8802e85c3b,2021-01-04,2,PFIZER -085bcb597bbd610a7f0f955301d0fe3734b92a7144e87f68e8b5beec1a09b55b,2021-02-17,1,PFIZER -085bcb597bbd610a7f0f955301d0fe3734b92a7144e87f68e8b5beec1a09b55b,2021-03-02,1,ASTRAZENECA -4299da7466df09516d290f7a99c8b7a2fa94766eb94a61c24e1ce8f6ca80af44,2021-03-02,1,ASTRAZENECA -4299da7466df09516d290f7a99c8b7a2fa94766eb94a61c24e1ce8f6ca80af44,2021-04-04,1,ASTRAZENECA -085bcb597bbd610a7f0f955301d0fe3734b92a7144e87f68e8b5beec1a09b55b,2021-02-17,1,PFIZER -fbe697429f16141bc71e3b91f3823641c8dd258dd58bf076241514754954cb8c,2021-05-03,2,ASTRAZENECA -fbe697429f16141bc71e3b91f3823641c8dd258dd58bf076241514754954cb8c,2021-01-04,2,PFIZER -219de1387a6743e583e805aad3bf0ffc69dc2107e6d233d43ee8ab62434729e9,2021-01-04,2,PFIZER -219de1387a6743e583e805aad3bf0ffc69dc2107e6d233d43ee8ab62434729e9,2021-02-17,1,PFIZER -fbe697429f16141bc71e3b91f3823641c8dd258dd58bf076241514754954cb8c,2021-05-03,2,ASTRAZENECA -e2fa8f5b4364b8ef4dd1f26ab47105d908d06ec84d835e3d1aac404a63f1464a,2021-04-04,1,ASTRAZENECA -e2fa8f5b4364b8ef4dd1f26ab47105d908d06ec84d835e3d1aac404a63f1464a,2021-03-02,1,ASTRAZENECA -60f070e3393291d6f836bf0acdca6138eadc4dd1d168ccaf03ab17cf0464f81b,2021-01-04,2,PFIZER -60f070e3393291d6f836bf0acdca6138eadc4dd1d168ccaf03ab17cf0464f81b,2021-05-03,2,ASTRAZENECA -e2fa8f5b4364b8ef4dd1f26ab47105d908d06ec84d835e3d1aac404a63f1464a,2021-04-04,1,ASTRAZENECA -182dc6b90f1c9cd913c39a6b5506f582caba9ddeadafe32f5bdbac25efd705ac,2021-03-02,1,ASTRAZENECA -182dc6b90f1c9cd913c39a6b5506f582caba9ddeadafe32f5bdbac25efd705ac,2021-02-17,1,PFIZER -be6b5b7140b02bff9ad8fa5aaaeca5973791521c5029c9f6b42390f8b87ce2bd,2021-01-04,2,PFIZER -be6b5b7140b02bff9ad8fa5aaaeca5973791521c5029c9f6b42390f8b87ce2bd,2021-04-04,1,ASTRAZENECA -182dc6b90f1c9cd913c39a6b5506f582caba9ddeadafe32f5bdbac25efd705ac,2021-05-03,2,ASTRAZENECA -3b86df3ff95ad2fd72102e34f3a721f2bdc876e12e3bd1434af8ab4cabbd5547,2021-03-02,1,ASTRAZENECA -3b86df3ff95ad2fd72102e34f3a721f2bdc876e12e3bd1434af8ab4cabbd5547,2021-02-17,1,PFIZER diff --git a/carrot/data/test/rules/rules_14June2021.json b/carrot/data/test/rules/rules_14June2021.json deleted file mode 100644 index 51f110e2..00000000 --- a/carrot/data/test/rules/rules_14June2021.json +++ /dev/null @@ -1,300 +0,0 @@ -{ - "metadata": { - "date_created": "2021-06-14T15:27:37.123947", - "dataset": "Test" - }, - "cdm": { - "observation": { - "observation_0": { - "observation_concept_id": { - "source_table": "Demographics.csv", - "source_field": "ethnicity", - "term_mapping": { - "Asian": 35825508 - } - }, - "observation_datetime": { - "source_table": "Demographics.csv", - "source_field": "date_of_birth" - }, - "observation_source_concept_id": { - "source_table": "Demographics.csv", - "source_field": "ethnicity", - "term_mapping": { - "Asian": 35825508 - } - }, - "observation_source_value": { - "source_table": "Demographics.csv", - "source_field": "ethnicity" - }, - "person_id": { - "source_table": "Demographics.csv", - "source_field": "PersonID" - } - }, - "observation_1":{ - "observation_concept_id": { - "source_table": "Demographics.csv", - "source_field": "ethnicity", - "term_mapping": { - "Bangladeshi": 35825531 - } - }, - "observation_datetime": { - "source_table": "Demographics.csv", - "source_field": "date_of_birth" - }, - "observation_source_concept_id": { - "source_table": "Demographics.csv", - "source_field": "ethnicity", - "term_mapping": { - "Bangladeshi": 35825531 - } - }, - "observation_source_value": { - "source_table": "Demographics.csv", - "source_field": "ethnicity" - }, - "person_id": { - "source_table": "Demographics.csv", - "source_field": "PersonID" - } - }, - "observation_2":{ - "observation_concept_id": { - "source_table": "Demographics.csv", - "source_field": "ethnicity", - "term_mapping": { - "Indian": 35826241 - } - }, - "observation_datetime": { - "source_table": "Demographics.csv", - "source_field": "date_of_birth" - }, - "observation_source_concept_id": { - "source_table": "Demographics.csv", - "source_field": "ethnicity", - "term_mapping": { - "Indian": 35826241 - } - }, - "observation_source_value": { - "source_table": "Demographics.csv", - "source_field": "ethnicity" - }, - "person_id": { - "source_table": "Demographics.csv", - "source_field": "PersonID" - } - }, - "observation_3":{ - "observation_concept_id": { - "source_table": "Demographics.csv", - "source_field": "ethnicity", - "term_mapping": { - "White": 35827394 - } - }, - "observation_datetime": { - "source_table": "Demographics.csv", - "source_field": "date_of_birth" - }, - "observation_source_concept_id": { - "source_table": "Demographics.csv", - "source_field": "ethnicity", - "term_mapping": { - "White": 35827394 - } - }, - "observation_source_value": { - "source_table": "Demographics.csv", - "source_field": "ethnicity" - }, - "person_id": { - "source_table": "Demographics.csv", - "source_field": "PersonID" - } - }, - "observation_4":{ - "observation_concept_id": { - "source_table": "Demographics.csv", - "source_field": "ethnicity", - "term_mapping": { - "Black": 35825567 - } - }, - "observation_datetime": { - "source_table": "Demographics.csv", - "source_field": "date_of_birth" - }, - "observation_source_concept_id": { - "source_table": "Demographics.csv", - "source_field": "ethnicity", - "term_mapping": { - "Black": 35825567 - } - }, - "observation_source_value": { - "source_table": "Demographics.csv", - "source_field": "ethnicity" - }, - "person_id": { - "source_table": "Demographics.csv", - "source_field": "PersonID" - } - }, - "observation_5":{ - "observation_concept_id": { - "source_table": "Demographics.csv", - "source_field": "ethnicity", - "term_mapping": { - "White and Asian": 35827395 - } - }, - "observation_datetime": { - "source_table": "Demographics.csv", - "source_field": "date_of_birth" - }, - "observation_source_concept_id": { - "source_table": "Demographics.csv", - "source_field": "ethnicity", - "term_mapping": { - "White and Asian": 35827395 - } - }, - "observation_source_value": { - "source_table": "Demographics.csv", - "source_field": "ethnicity" - }, - "person_id": { - "source_table": "Demographics.csv", - "source_field": "PersonID" - } - } - }, - "condition_occurrence": { - "condition_occurrence_0":{ - "condition_concept_id": { - "source_table": "Symptoms.csv", - "source_field": "symptom1", - "term_mapping": { - "Y": 254761 - } - }, - "condition_end_datetime": { - "source_table": "Symptoms.csv", - "source_field": "visit_date" - }, - "condition_source_concept_id": { - "source_table": "Symptoms.csv", - "source_field": "symptom1", - "term_mapping": { - "Y": 254761 - } - }, - "condition_source_value": { - "source_table": "Symptoms.csv", - "source_field": "symptom1" - }, - "condition_start_datetime": { - "source_table": "Symptoms.csv", - "source_field": "visit_date" - }, - "person_id": { - "source_table": "Symptoms.csv", - "source_field": "PersonID" - } - } - }, - "person": { - "female":{ - "birth_datetime": { - "source_table": "Demographics.csv", - "source_field": "date_of_birth" - }, - "gender_concept_id": { - "source_table": "Demographics.csv", - "source_field": "sex", - "term_mapping": { - "F": 8532 - } - }, - "gender_source_concept_id": { - "source_table": "Demographics.csv", - "source_field": "sex", - "term_mapping": { - "F": 8532 - } - }, - "gender_source_value": { - "source_table": "Demographics.csv", - "source_field": "sex" - }, - "person_id": { - "source_table": "Demographics.csv", - "source_field": "PersonID" - } - }, - "male":{ - "birth_datetime": { - "source_table": "Demographics.csv", - "source_field": "date_of_birth" - }, - "gender_concept_id": { - "source_table": "Demographics.csv", - "source_field": "sex", - "term_mapping": { - "M": 8507 - } - }, - "gender_source_concept_id": { - "source_table": "Demographics.csv", - "source_field": "sex", - "term_mapping": { - "M": 8507 - } - }, - "gender_source_value": { - "source_table": "Demographics.csv", - "source_field": "sex" - }, - "person_id": { - "source_table": "Demographics.csv", - "source_field": "PersonID" - } - } - }, - "measurement": { - "covid_antibody":{ - "value_as_number": { - "source_table": "covid19_antibody.csv", - "source_field": "IgG" - }, - "measurement_source_value": { - "source_table": "covid19_antibody.csv", - "source_field": "IgG" - }, - "measurement_concept_id": { - "source_table": "covid19_antibody.csv", - "source_field": "IgG", - "term_mapping": 37398191 - }, - "measurement_source_concept_id": { - "source_table": "covid19_antibody.csv", - "source_field": "IgG", - "term_mapping": 37398191 - }, - "measurement_datetime": { - "source_table": "covid19_antibody.csv", - "source_field": "date" - }, - "person_id": { - "source_table": "covid19_antibody.csv", - "source_field": "PersonID" - } - } - } - } -} diff --git a/carrot/data/test/scan_report/ScanReport_Testdata.xlsx b/carrot/data/test/scan_report/ScanReport_Testdata.xlsx deleted file mode 100644 index 95e502a0..00000000 Binary files a/carrot/data/test/scan_report/ScanReport_Testdata.xlsx and /dev/null differ diff --git a/carrot/io/__init__.py b/carrot/io/__init__.py deleted file mode 100644 index 3bb8a532..00000000 --- a/carrot/io/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -from .plugins.local import LocalDataCollection -from .plugins.sql import SqlDataCollection -from .plugins.bclink import BCLinkDataCollection -from .common import DataCollection,DataBrick diff --git a/carrot/io/common.py b/carrot/io/common.py deleted file mode 100644 index cf6d9056..00000000 --- a/carrot/io/common.py +++ /dev/null @@ -1,186 +0,0 @@ -import pandas as pd -from carrot.tools.logger import Logger -from types import GeneratorType -import io - -class DataCollection(Logger): - def __init__(self,chunksize=None,nrows=None,**kwargs): - self.logger.info("DataCollection Object Created") - self.__bricks = {} - self.chunksize = chunksize - self.nrows = nrows - - if self.chunksize is not None: - self.logger.info(f"Using a chunksize of '{self.chunksize}' nrows") - - def print(self): - print (self.all()) - - def all(self): - return { - key:self[key] - for key in self.keys() - } - def finalise(self): - pass - - def keys(self): - return self.__bricks.keys() - - def items(self): - return self.__bricks.items() - - def __setitem__(self,key,obj): - self.logger.info(f"Registering {key} [{obj}]") - self.__bricks[key] = obj - - def load_global_ids(self): - return - - def load_indexing(self): - return - - def next(self): - #loop over all loaded files - self.logger.info("Getting next chunk of data") - - used_bricks = [] - for key,brick in self.items(): - if brick.is_finished(): - continue - - if brick.is_init(): - used_bricks.append(brick) - else: - continue - - self.logger.info(f"Getting the next chunk of size '{self.chunksize}' for '{key}'") - brick.get_chunk(self.chunksize) - n = len(brick.get_df()) - self.logger.info(f"--> Got {n} rows") - if n == 0: - brick.set_finished(True) - - #check if all __dataframe objects are empty - #if they are, raise a StopIteration as processing has finished - if all([x.is_finished() for x in used_bricks]): - self.logger.info("All input files for this object have now been used.") - raise StopIteration - - - def get_handler(self,key): - brick = self.__bricks[key] - return brick.get_handler() - - def get_all(self): - self.logger.info(f"Retrieving initial dataframes for the first time") - for b in self.__bricks.values(): - b.get_chunk(self.chunksize) - b.set_init(True) - - def get(self,key): - return self.__bricks[key] - - def __getitem__(self,key): - brick = self.__bricks[key] - if not brick.is_init(): - self.logger.info(f"Retrieving initial dataframe for '{key}' for the first time") - brick.get_chunk(self.chunksize) - brick.set_init(True) - - #if any(not x.is_init() for x in self.__bricks.values()): - # self.get_all() - - df = brick.get_df() - self.logger.debug(f"Got brick {brick}") - return df - - def reset(self): - self.logger.info(f"resetting used bricks") - for key,brick in self.items(): - brick.reset() - -class DataBrick: - def __init__(self,df_handler,name=None): - self.name = name - self.__df_handler = df_handler - self.__df = None - self.__end = False - self.__is_init = False - - def get_handler(self): - return self.__df_handler - - def is_finished(self): - return self.__end - - def set_finished(self,value): - self.__end = value - - def is_init(self): - return self.__is_init - - def set_init(self,value): - self.__is_init = value - - def reset(self): - if isinstance(self.__df_handler,pd.io.parsers.TextFileReader): - options = self.__df_handler.orig_options - if hasattr(self.__df_handler,'f'): - f = self.__df_handler.f - if isinstance(f,io.StringIO): - f.seek(0) - else: - #it's just going to be a string for a file name - pass - elif hasattr(self.__df_handler,'handles'): - f = self.__df_handler.handles.handle - if not f.closed: - f.seek(0) - else: - #if the i/o is closed, get the name of the original file instead - f = f.name - else: - raise NotImplementedError('check your pandas version! It is not supported by the tool - try upgrading') - - del self.__df_handler - #f is an i/o object or a filename (string) - self.__df_handler = pd.io.parsers.TextFileReader(f,**options) - - self.__df = None - self.__end = False - self.__is_init = False - return True - - def get_chunk(self,chunksize): - if self.__end == True: - return - #if the df handler is a TextFileReader, get a dataframe chunk - if isinstance(self.__df_handler,pd.io.parsers.TextFileReader): - try: - #for this file reader, get the next chunk of data - self.__df = self.__df_handler.get_chunk(chunksize) - except StopIteration:#,ValueError): - #otherwise, if at the end of the file reader, return an empty frame - self.__df = pd.DataFrame(columns=self.__df.columns) if self.__df is not None else None - self.__end = True - elif isinstance(self.__df_handler,pd.DataFrame): - #if we're handling non-chunked data - if self.__df is not None: - #return an empty dataframe if we've already loaded this dataframe - self.__df = pd.DataFrame(columns=self.__df.columns) - else: - #otherwise return the dataframe as it's the first time we're getting it - self.__df = self.__df_handler - self.__end = True - elif isinstance(self.__df_handler, GeneratorType): - try: - self.__df = next(self.__df_handler) - except StopIteration: - self.__df = pd.DataFrame(columns=self.__df.columns) if self.__df is not None else None - self.__end = True - else: - raise NotImplementedError(f"{type(self.__df_handler)} not implemented") - - def get_df(self): - return self.__df diff --git a/carrot/io/plugins/__init__.py b/carrot/io/plugins/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/carrot/io/plugins/bclink.py b/carrot/io/plugins/bclink.py deleted file mode 100644 index b0b857f8..00000000 --- a/carrot/io/plugins/bclink.py +++ /dev/null @@ -1,68 +0,0 @@ -from carrot.tools.bclink_helpers import BCLinkHelpers -from .local import LocalDataCollection -from carrot.io.common import DataBrick -import io -import pandas as pd -import time - -class BCLinkDataCollection(LocalDataCollection): - def __init__(self,bclink_settings,**kwargs): - - self.logger.info('setup bclink collection') - self.bclink_helpers = BCLinkHelpers(**bclink_settings) - - super().__init__(**kwargs) - self.job_ids = [] - - def finalise(self): - self.logger.info("finalising, waiting for jobs to finish") - self.logger.info(f"job_ids to wait for: {self.job_ids}") - - #print (self.get_output_folder()) - - running_jobs = self.job_ids - while True: - running_jobs = [j for j in running_jobs if not self.bclink_helpers.check_logs(j)] - if len(running_jobs)==0: - break - self.logger.info(f"Waiting for {running_jobs} to finish") - time.sleep(5) - - self.logger.info(f"done!") - - def retrieve(self): - tables = self.bclink_helpers.get_table_map() - for name in tables: - df = self.bclink_helpers.get_table(name) - b = DataBrick(df,name=name) - self[name] = b - - - def write(self,*args,**kwargs): - f_out = super().write(*args,**kwargs) - destination_table = args[0] - self.load(f_out,destination_table) - - def load(self,f_out,destination_table): - job_id = self.bclink_helpers.load_table(f_out,destination_table) - if job_id: - self.job_ids.append(job_id) - - def load_indexing(self): - indexer = self.bclink_helpers.get_indicies() - if indexer: - self.logger.info(f'retrieved {indexer}') - return indexer - - def load_global_ids(self): - data = self.bclink_helpers.get_global_ids() - if not data: - return - if len(data.splitlines()) == 0: - return - - sep = self.get_separator() - data = io.StringIO(data) - df_ids = pd.read_csv(data, - sep=sep).set_index('TARGET_SUBJECT')['SOURCE_SUBJECT'] - return df_ids.to_dict() diff --git a/carrot/io/plugins/local.py b/carrot/io/plugins/local.py deleted file mode 100644 index 470050ff..00000000 --- a/carrot/io/plugins/local.py +++ /dev/null @@ -1,185 +0,0 @@ -import pandas as pd -from carrot.io.common import DataCollection,DataBrick -import glob -import io -import os -import json -import pandas as pd -from time import gmtime, strftime - -class LocalDataCollection(DataCollection): - def __init__(self,file_map=None,chunksize=None,nrows=None,output_folder=None,sep=',',write_mode='w',write_separate=False,**kwargs): - super().__init__(chunksize=chunksize,nrows=nrows) - - self.__output_folder = output_folder - self.__separator = sep - self.__write_mode = write_mode - self.__write_separate = write_separate - - if file_map is not None: - self._load_input_files(file_map) - - def get_output_folder(self): - return self.__output_folder - - def get_global_ids(self): - if not self.__output_folder: - return - - files = glob.glob(self.__output_folder+os.path.sep+"person_ids.*"+self.get_outfile_extension()) - return files - - def load_global_ids(self): - if self.__write_mode == 'w': - return - - files = self.get_global_ids() - if not files: - return - - self.logger.warning(f"Loading existing person ids from...") - self.logger.warning(f"{files}") - return pd.concat([pd.read_csv(fname,sep=self.__separator).set_index('TARGET_SUBJECT')['SOURCE_SUBJECT'] - for fname in files - ]).to_dict() - - def get_separator(self): - return self.__separator - - def get_outfile_extension(self): - """ - Work out what the extension of the output file for the dataframes should be. - - Given the '_outfile_separator' to be used in `df.to_csv`, - work out the file extension. - - At current, only tab separated and comma separated values (files) are supported - - Returns: - str: outfile extension name - - """ - if self.__separator == ',': - return 'csv' - elif self.__separator == '\t': - return 'tsv' - else: - self.logger.warning(f"Don't know what to do with the extension '{self.__separator}' ") - self.logger.warning("Defaulting to csv") - return 'csv' - - - def load_meta(self,name='.meta'): - f_out = self.__output_folder - fname = f"{f_out}{os.path.sep}{name}.json" - if not os.path.exists(fname): - return - with open(fname,'r') as f: - data = json.load(f) - return data - - def load_indexing(self): - meta = self.load_meta() - if not meta: - return - - indexing = {} - for _,v in meta.items(): - v = v['meta']['total_data_processed'] - for k,n in v.items(): - if k not in indexing: - indexing[k] = 0 - indexing[k] += n - return indexing - - def write_tsv_summary(self,data,name='.summary'): - mode = self.__write_mode - f_out = self.__output_folder - if not os.path.exists(f'{f_out}'): - self.logger.info(f'making output folder {f_out}') - os.makedirs(f'{f_out}') - - fname = f"{f_out}{os.path.sep}{name}.tsv" - #rewrite it - with open(fname,"w") as f: - f.write(data) - f.close() - - def write_meta(self,data,name='.meta'): - if not isinstance(data,dict): - raise NotImplementedError(f"{type(data)} must be of type dict") - - data = {hex(id(data)):data} - - mode = self.__write_mode - f_out = self.__output_folder - if not os.path.exists(f'{f_out}'): - self.logger.info(f'making output folder {f_out}') - os.makedirs(f'{f_out}') - - fname = f"{f_out}{os.path.sep}{name}.json" - if os.path.exists(fname) and mode == 'a': - with open(fname,'r') as f: - existing_data = json.load(f) - data = {**existing_data,**data} - #rewrite it - with open(f"{f_out}{os.path.sep}{name}.json","w") as f: - json.dump(data,f,indent=6) - return - - def write(self,name,df,mode='w'): - - f_out = self.__output_folder - if not os.path.exists(f'{f_out}'): - self.logger.info(f'making output folder {f_out}') - os.makedirs(f'{f_out}') - - if mode == None: - mode = self.__write_mode - - if self.__write_separate: - time = strftime("%Y-%m-%dT%H%M%S", gmtime()) - if 'name' in df.attrs: - name = name + '.' + df.attrs['name'] - name = name + "."+ hex(id(df)) + "." + time - mode = 'w' - - - - file_extension = self.get_outfile_extension() - fname = f'{f_out}{os.path.sep}{name}.{file_extension}' - #force mode to write if the file doesnt exist yet - if not os.path.exists(fname): - mode = 'w' - - header=True - if mode == 'a': - header = False - if mode == 'w': - self.logger.info(f'saving {name} to {fname}') - else: - self.logger.info(f'updating {name} in {fname}') - - for col in df.columns: - if col.endswith("_id"): - df[col] = df[col].astype(float).astype(pd.Int64Dtype()) - - df.set_index(df.columns[0],inplace=True) - self.logger.debug(df.dtypes) - df.to_csv(fname,mode=mode,header=header,index=True,sep=self.__separator) - - self.logger.debug(df.dropna(axis=1,how='all')) - self.logger.info("finished save to file") - return fname - - def _load_input_files(self,file_map): - for name,path in file_map.items(): - df = pd.read_csv(path, - chunksize=self.chunksize, - nrows=self.nrows, - dtype=str) - self[name] = DataBrick(df) - - def load_input_dataframe(self,file_map): - for name,df in file_map.items(): - self[name] = DataBrick(df) diff --git a/carrot/io/plugins/sql.py b/carrot/io/plugins/sql.py deleted file mode 100644 index e2d92b0b..00000000 --- a/carrot/io/plugins/sql.py +++ /dev/null @@ -1,102 +0,0 @@ -from sqlalchemy import create_engine -from sqlalchemy_utils import database_exists, create_database, drop_database -from carrot.io.common import DataCollection,DataBrick -from sqlalchemy import inspect -import pandas as pd - -class SqlDataCollection(DataCollection): - def __init__(self,connection_string,chunksize=None,nrows=None,write_mode='r',drop_existing=False,**kwargs): - super().__init__(chunksize=chunksize) - - #default mode is 'r' aka replace - self.__write_mode = write_mode - - self.engine = create_engine(connection_string) - - if drop_existing and database_exists(self.engine.url): - self.drop_database() - - if not database_exists(self.engine.url): - create_database(self.engine.url) - - self.logger.info(self.engine) - #get the names of existing tables - self.build() - - def drop_database(self): - drop_database(self.engine.url) - - def reset(self): - self.build() - self.__df = None - self.__end = False - return True - - def build(self): - insp = inspect(self.engine) - chunksize = self.chunksize - if chunksize == None: - chunksize = 1e6 - - self.existing_tables = insp.get_table_names() - for table in self.existing_tables: - df_handler = pd.read_sql(table,self.engine,chunksize=chunksize) - b = DataBrick(df_handler,name=table) - - #if table in self.keys(): - # del self[table] - - self[table] = b - - def write(self,name,df,mode='w'): - #set the method of pandas based on the mode supplied - - if mode == None: - mode = self.__write_mode - - if mode == 'w': - #write mode we probably mean r mode, r = replace (rather than read) - mode = 'r' - - if mode == 'a': - if_exists = 'append' - elif mode == 'r': - if_exists = 'replace' - elif mode == 'ww': - if_exists = 'fail' - else: - self.logger.error(f"cant write {name} ") - raise Exception(f"Unknown mode for dumping to sql, mode = '{mode}'") - - #check if the table exists already - table_exists = name in self.existing_tables - - #index the dataframe - pk = df.columns[0] - df.set_index(pk,inplace=True) - self.logger.info(f'updating {name} in {self.engine}') - - #check if the table already exists in the psql database - if table_exists and mode == 'a': - #get the last row - last_row_existing = pd.read_sql(f"select {pk} from {name} " - f"order by {pk} desc limit 1", - self.engine) - - #if there's already a row and the mode is set to append - if len(last_row_existing) > 0: - #get the cell value of the (this will be the id, e.g. condition_occurrence_id) - last_pk_existing = last_row_existing.iloc[0,0] - #get the index integer of this current dataframe - first_pk_new = df.index[0] - #workout and increase the indexing so the indexes are new - index_diff = last_pk_existing - first_pk_new - if index_diff >= 0: - self.logger.info("increasing index as already exists in psql") - df.index += index_diff + 1 - - #dump to sql - df.to_sql(name, self.engine,if_exists=if_exists) - - self.logger.info("finished save to psql") - diff --git a/carrot/tools/__init__.py b/carrot/tools/__init__.py deleted file mode 100644 index 6e64ca41..00000000 --- a/carrot/tools/__init__.py +++ /dev/null @@ -1,106 +0,0 @@ -import carrot -import os -import sys -import json -import glob -import inspect -import time - -from . import extract -from .dag import make_dag,make_report_dag - -from . import bclink_helpers - -from .file_helpers import ( - load_json, - load_json_delta, - load_csv, - load_tsv, - load_sql, - create_csv_store, - create_sql_store, - create_bclink_store, - remove_missing_sources_from_rules, - filter_rules_by_destination_tables, - filter_rules_by_object_names, - get_separator_from_filename, - get_file_map_from_dir, - get_mapped_fields_from_rules, - get_source_tables_from_rules, - get_subfolders, - get_files, - diff_csv -) - -from .rules_helpers import( - get_person_ids, - get_source_field, - get_source_table, - apply_rules, - load_from_file -) - -from . import mappingrules - -from . import omopcdm - -_DEBUG = False - -def set_debug(value): - global _DEBUG - _DEBUG = value - -def get_classes(format=False): - retval = get_classes_from_tool(format=format) - config_folder = os.environ.get('CARROT_CONFIG_FOLDER') - if config_folder is not None: - sys.path.append(config_folder) - files = [x for x in os.listdir(config_folder) if x.endswith(".py") and not x.startswith('__')] - for fname in files: - mname = fname.split(".")[0] - module = __import__(mname,fromlist=[fname]) - path = os.path.join(config_folder,fname) - defined_classes = { - fname: { - 'module':m[1].__module__, - 'path': path, - 'last-modified': time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.path.getmtime(os.path.join(config_folder,fname)))) - } - for m in inspect.getmembers(module, inspect.isclass) - if m[1].__module__ == module.__name__ - } - retval.update(defined_classes) - - return retval - -def get_classes_from_tool(format=format): - from carrot.cdm import classes - _dir = os.path.dirname(classes.__file__) - files = [x for x in os.listdir(_dir) if x.endswith(".py") and not x.startswith('__')] - retval = {} - for fname in files: - path = os.path.join(_dir,fname) - mname = fname.split(".")[0] - mname = '.'.join([classes.__name__, mname]) - if os.path.islink(path): - link = os.readlink(path) - if os.path.isfile(link) == False: - os.unlink(path) - continue - - module = __import__(mname,fromlist=[fname]) - defined_classes = { - fname: { - 'module':m[1].__module__, - 'path': path if not os.path.islink(path) else os.readlink(path), - 'sympath': path, - 'last-modified': time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.path.getmtime(os.path.join(_dir,fname)))) - } - for m in inspect.getmembers(module, inspect.isclass) - if m[1].__module__ == module.__name__ - } - retval.update(defined_classes) - if format: - return json.dumps(retval,indent=6) - else: - return retval diff --git a/carrot/tools/bash_helpers.py b/carrot/tools/bash_helpers.py deleted file mode 100644 index 6143edca..00000000 --- a/carrot/tools/bash_helpers.py +++ /dev/null @@ -1,25 +0,0 @@ -import subprocess -from subprocess import Popen, PIPE -from .logger import Logger - - -class BashHelpers(Logger): - - def __init__(self,dry_run=False): - self.dry_run = dry_run - - def run_bash_cmd(self,cmd): - if isinstance(cmd,str): - cmd = cmd.split(" ") - elif not isinstance(cmd,list): - raise Exception("run_bash_cmd must be passed a bash command as a str or a list") - self.logger.notice(" ".join(cmd)) - if self.dry_run: - return None,None - session = subprocess.Popen(cmd, stdout=PIPE, stderr=PIPE) - stdout, stderr = (x.decode("utf-8") for x in session.communicate()) - - if 'ERROR' in stderr: - self.logger.critical(stderr) - raise Exception("failled executing bash command") - return stdout,stderr diff --git a/carrot/tools/bclink_helpers.py b/carrot/tools/bclink_helpers.py deleted file mode 100644 index 4e59fb7b..00000000 --- a/carrot/tools/bclink_helpers.py +++ /dev/null @@ -1,543 +0,0 @@ -import pandas as pd -import io -import time -import json -import os -import carrot -from carrot.tools.logger import Logger -from .bash_helpers import BashHelpers -from carrot.cdm.objects import get_cdm_tables - - -def get_default_global_id_name(): - return 'person_ids' - -def get_default_tables(): - _dict = {k:k for k in get_cdm_tables().keys()} - _dict[get_default_global_id_name()] = get_default_global_id_name() - return _dict - - -class BCLinkHelpersException(Exception): - pass - -class BCLinkHelpers(BashHelpers,Logger): - - def __init__(self,user='bclink',clean=False,check=True,gui_user='data',database='bclink',dry_run=False,tables=get_default_tables()): - super().__init__(dry_run=dry_run) - - self.report = [] - self.user = user - self.gui_user = gui_user - self.database = database - self.table_map = tables - if self.table_map == None: - raise BCLinkHelpersException("Table map between the dataset id and the OMOP tables must be defined") - - if check: - self.check_tables() - if clean: - self.clean_tables() - if check: - self.print_summary() - - def get_table_map(self): - return self.table_map - - def check_table_exists(self,table): - query = f"SELECT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = '{table}' )" - - cmd=[ - 'bc_sqlselect', - f'--user={self.user}', - f'--query={query}', - self.database - ] - stdout,_ = self.run_bash_cmd(cmd) - if stdout == None: - return True - return bool(int(stdout.splitlines()[1])) - - def check_tables(self): - for table,table_name in self.table_map.items(): - exists = self.check_table_exists(table_name) - if exists: - self.logger.info(f"{table_name} ({table}) already exists --> all good") - else: - self.logger.error(f"{table_name} which is to be used for {table} does not exist!") - #self.create_table(table_name,table) - raise BCLinkHelpersException(f"{table_name} does not exist") - - def create_table(self,table_name,table): - table_upper = table.upper() - table_name_upper = table_name.upper() - cmd = [ - 'dataset_tool', - '--create', - f'--table={table_name}', - f'--setname={table_name_upper}', - f'--user={self.gui_user}', - f'--form={table_upper}', - self.database - ] - stdout,stderr = self.run_bash_cmd(cmd) - if stdout: - self.logger.info(stdout) - - def create_tables(self): - for table,table_name in self.table_map.items(): - exists = self.check_table_exists(table_name) - if exists: - self.logger.info(f"{table_name} ({table}) already exists, not creating") - continue - self.create_table(table_name,table) - - def get_table(self,table): - query = f"SELECT * FROM {table}" - - cmd=[ - 'bc_sqlselect', - f'--user={self.user}', - f'--query={query}', - self.database - ] - stdout,_ = self.run_bash_cmd(cmd) - if stdout == None: - return None - - df = pd.read_csv(io.StringIO(stdout),sep='\t') - df.columns = [x.lower() for x in df.columns] - #df = df.drop('batch',axis=1) - return df - - - def get_bclink_table(self,table): - if table in self.table_map: - return self.table_map[table] - elif table == "global_ids": - return self.global_ids - - raise Exception(f"Request look up ofr table {table} which is unknown") - - - def drop_duplicates(self,table): - fields = self.get_fields(table) - pk = fields[0] - duplicates = self.get_duplicates(table) - if len(duplicates) == 0: - self.logger.info('no duplicates detected') - return duplicates - - duplicates = ','.join([str(x) for x in duplicates]) - - cmd=[ - 'bc_sqlselect', - f'--user={self.user}', - f'--query=DELETE FROM {table} WHERE {pk} IN ({duplicates})', - self.database - ] - stdout,stderr = self.run_bash_cmd(cmd) - return duplicates - - def get_duplicates(self,table): - fields = self.get_fields(table) - pk = fields[0] - batch = fields[-1] - fields = ",".join(fields[1:-1]) - - cmd=[ - 'bc_sqlselect', - f'--user={self.user}', - f'--query=SELECT array_agg({pk}) as duplicates FROM {table} GROUP BY {fields} HAVING COUNT(*)>1', - self.database - ] - stdout,stderr = self.run_bash_cmd(cmd) - if stdout == None: - return [] - duplicates = [ - sorted([int(x) for x in dups[1:-1].split(",")])[1:] - for dups in stdout.splitlines()[1:] - ] - duplicates = sorted(list(set([item for sublist in duplicates for item in sublist]))) - - return duplicates - - def get_pk(self,table): - query = f"SELECT column_name FROM INFORMATION_SCHEMA. COLUMNS WHERE table_name = '{table}' LIMIT 1 " - cmd = [ - 'bc_sqlselect', - f'--user={self.user}', - f'--query={query}', - self.database - ] - - stdout,stdin = self.run_bash_cmd(cmd) - if stdout == None: - return 'person_id' - else: - pk = stdout.splitlines()[1] - self.logger.info(f"got pk {pk}") - return pk - - def get_fields(self,table): - query = f"SELECT * FROM {table} LIMIT 1;" - cmd = [ - 'bc_sqlselect', - f'--user={self.user}', - f'--query={query}', - self.database - ] - - stdout,stdin = self.run_bash_cmd(cmd) - if stdout == None: - return ['person_id','birth_datetime'] - else: - return stdout.splitlines()[0].split("\t") - - def get_last_index(self,table): - pk = self.get_pk(table) - query=f"SELECT {pk} FROM {table} ORDER BY -{pk} LIMIT 1; " - cmd = [ - 'bc_sqlselect', - f'--user={self.user}', - f'--query={query}', - self.database - ] - - - stdout,stderr = self.run_bash_cmd(cmd) - if stdout == None: - return 0 - else: - last_index = int(stdout.splitlines()[1]) - self.logger.debug(f"Last index for {pk} in table {table} = {last_index}") - return last_index - - - def get_indicies(self): - the_dict = {k:v for k,v in self.table_map.items() if not k == get_default_global_id_name()} - reverse = {v:k for k,v in the_dict.items() } - retval = {} - for table in the_dict.values(): - count=['bc_sqlselect',f'--user={self.user}',f'--query=SELECT count(*) FROM {table}',self.database] - - stdout,stdin = self.run_bash_cmd(count) - if stdout == None: - self.get_last_index(table) - else: - counts = int(stdout.splitlines()[1]) - if counts > 0 : - retval[reverse[table]] = self.get_last_index(table) + 1 - - return retval - - def check_logs(self,job_id,table=None,bclink_table=None): - cover = f'/data/var/lib/bcos/download/data/job{job_id}/cover.{job_id}' - if not os.path.exists(cover): - return False - - cmd = f"cat {cover}" - stdout,stderr = self.run_bash_cmd(cmd) - if stdout == None: - return False - - job_id=str(job_id) - - report = { - 'job_id':job_id, - 'table':table, - 'bclink_table':bclink_table - } - - - for msg in stdout.splitlines(): - if 'data row(s) discarded,' in msg: - self.logger.critical(msg) - report['dropped_rows'] = msg - elif 'new row' in msg: - report['new_rows'] = msg - elif '>>> From:' in msg: - report['From'] = msg.split('>>> From:')[1] - elif '>>> To:' in msg: - report['To'] = msg.split('>>> To:')[1] - else: - self.logger.info_v2(msg) - - if report not in self.report: - self.report.append(report) - - - return True - - def clean_table(self,table): - clean = f'datasettool2 delete-all-rows {table} --database={self.database}' - stdout,stderr = self.run_bash_cmd(clean) - - if stdout == None and stderr==None: - return - - for msg in stderr.splitlines(): - self.logger.warning(msg) - - def clean_tables(self,tables=None): - for table in self.table_map.values(): - if tables is not None: - if not table in tables: - continue - - self.logger.info(f"Cleaning table {table}") - self.clean_table(table) - - def get_table_jobs(self,table,head=1): - cmd = f'datasettool2 list-updates --dataset={table} --user={self.gui_user} --database={self.database}' - status,_ = self.run_bash_cmd(cmd) - if status == None: - return - - info = pd.read_csv(io.StringIO(status), - sep='\t', - usecols=['BATCH', - 'UPDDATE', - 'UPD_COMPLETION_DATE', - 'JOB', - 'STATUS', - 'ACTION']) - if head is not None: - info = info.head(head) - return info - - def get_global_ids(self): - name = get_default_global_id_name() - if name not in self.table_map.keys(): - self.logger.warning(f"No table for getting existing person ids ({name}) has been defined") - return None - global_ids = self.table_map[name] - - query=f"SELECT * FROM {global_ids} " - cmd=['bc_sqlselect',f'--user={self.user}',f'--query={query}',self.database] - - stdout,stderr = self.run_bash_cmd(cmd) - #if stdout == None: - # return None - #if len(stdout.splitlines()) == 0: - # return None - - return stdout#io.StringIO(stdout) - - #df_ids = pd.read_csv(io.StringIO(stdout), - # sep='\t').set_index("SOURCE_SUBJECT") - # - # df_ids.to_csv(f_out,sep='\t') - # return f_out - - def check_global_ids(self,output_directory,chunksize=10): - - if not self.global_ids: - return True - - data_file = f'{output_directory}/person.tsv' - if not os.path.exists(data_file): - self.logger.warning(f"{output_directory}/person.tsv file does not exist") - self.logger.warning("skipping global id check") - return True - - data = carrot.tools.load_csv({"ids":f"{output_directory}/global_ids.tsv"}, - sep='\t', - chunksize=100) - - while True: - query=f"select exists(select 1 from {self.global_ids} where TARGET_SUBJECT in ({_list}) )" - cmd=['bc_sqlselect',f'--user={self.user}',f'--query={query}',self.database] - stdout,stderr = self.run_bash_cmd(cmd) - if stdout == None: - exists = False - else: - exists = bool(int(stdout.splitlines()[1])) - - if exists: - #if any target IDs (hashed!) already exist in the table... - #check if the pairing is different - _list = ','.join([f"('{s}','{t}')" for s,t in data["ids"].values]) - self.logger.debug("getting IDs that overlap") - query=f"select SOURCE_SUBJECT,SOURCE_SUBJECT from {self.global_ids} where (SOURCE_SUBJECT,TARGET_SUBJECT) in ({_list}) " - cmd=['bc_sqlselect',f'--user={self.user}',f'--query={query}',self.database] - stdout,stderr = self.run_bash_cmd(cmd) - info = pd.read_csv(io.StringIO(stdout), - sep='\t').set_index("SOURCE_SUBJECT") - self.logger.error(info) - return False - - try: - data.next() - except StopIteration: - break - - return True - - - def load_global_ids(self,output_directory): - - if self.global_ids == None: - return - - data_file = f'{output_directory}{os.path.sep}global_ids.tsv' - if not os.path.exists(data_file): - #raise FileExistsError( - self.logger.error(f"Cannot find global_ids.tsv in output directory: {output_directory}") - return - - cmd = ['dataset_tool', '--load',f'--table={self.global_ids}',f'--user={self.gui_user}', - f'--data_file={data_file}','--support','--bcqueue',self.database] - - stdout,stderr = self.run_bash_cmd(cmd) - if not stdout == None: - for msg in stdout.splitlines(): - self.logger.info(f"submitted job to bclink queue: {msg}") - - table_name = self.global_ids - stats = self.get_table_jobs(table_name) - if stats is None: - #is a dry run, just test this - self.check_logs(0) - else: - job_id = stats.iloc[0]['JOB'] - while True: - stats = self.get_table_jobs(table_name) - self.logger.info(stats) - self.logger.info(f"Getting log for {table_name} id={job_id}") - success = self.check_logs(job_id,'global_ids',table_name) - if success: - break - else: - self.logger.debug(f"Didn't find the log for {table_name} id={job_id} yet, job still running. Trying again in 5 seconds..") - time.sleep(5) - - def load_table(self,f_out,destination_table): - - try: - tablename = self.table_map[destination_table] - except KeyError: - self.logger.error(f"table {destination_table} unknown in {self.table_map.keys()}") - return - - if not os.path.exists(f_out): - self.logger.error(f"Cannot find {f_out} to load to bclink.") - return - - cmd = ['dataset_tool', '--load',f'--table={tablename}',f'--user={self.gui_user}', - f'--data_file={f_out}','--support','--bcqueue',self.database] - - stdout,stderr = self.run_bash_cmd(cmd) - if not stdout == None: - for msg in stdout.splitlines(): - self.logger.info(f"submitted job to bclink queue: {msg}") - - stats = self.get_table_jobs(tablename) - if stats is None: - #is a dry run, just test this - #self.check_logs(0) - pass - else: - job_id = stats.iloc[0]['JOB'] - self.logger.info(f"running job {job_id}") - #self.check_logs(job_id) - return job_id - - def load_tables(self,output_directory,tables_to_process=None): - for table,tablename in self.table_map.items(): - if tables_to_process is not None: - if table not in tables_to_process: - continue - - data_file = f'{output_directory}/{table}.tsv' - if not os.path.exists(data_file): - #raise FileExistsError( - self.logger.error(f"Cannot find {table}.tsv in output directory: {output_directory}") - continue - - cmd = ['dataset_tool', '--load',f'--table={tablename}',f'--user={self.gui_user}', - f'--data_file={data_file}','--support','--bcqueue',self.database] - - stdout,stderr = self.run_bash_cmd(cmd) - if not stdout == None: - for msg in stdout.splitlines(): - self.logger.info(f"submitted job to bclink queue: {msg}") - - - for table,table_name in self.table_map.items(): - if tables_to_process is not None: - if table not in tables_to_process: - continue - self.logger.debug(f"Checking jobs submitted for {table_name}") - stats = self.get_table_jobs(table_name) - if stats is None: - #is a dry run, just test this - self.check_logs(0) - else: - job_id = stats.iloc[0]['JOB'] - while True: - stats = self.get_table_jobs(table_name) - self.logger.info(stats) - self.logger.info(f"Getting log for {table_name} id={job_id}") - success = self.check_logs(job_id,table,table_name) - if success: - break - else: - self.logger.warning(f"Didn't find the log for {table_name} id={job_id} yet, job still running.") - time.sleep(1) - - self.print_summary() - - def print_report(self): - if self.report: - self.logger.info(json.dumps(self.report,indent=6)) - - def print_summary(self): - info = {} - for table,table_name in self.table_map.items(): - if table_name == None: - continue - cmd=['bc_sqlselect',f'--user={self.user}',f'--query=SELECT count(*) FROM {table_name}',self.database] - - stdout,stderr = self.run_bash_cmd(cmd) - if stdout == None: - continue - - count = stdout.splitlines()[1] - info[table] = {'bclink_table':table_name, - 'nrows':count} - - if info: - self.logger.info("======== BCLINK SUMMARY ========") - self.logger.info(json.dumps(info,indent=6)) - - - def remove_table(self,fname): - self.logger.info(f"Called remove_table on {fname}") - table = os.path.splitext(os.path.basename(fname))[0].split('.')[0] - data = carrot.tools.load_csv({table:{'fields':[0],'file':fname}}, - sep='\t', - chunksize=1000) - - - if not table in self.table_map: - raise KeyError(f"{table} doesnt exist in bclink mapping") - - bc_table = self.table_map[table] - - - pk = self.get_pk(bc_table) - self.logger.debug(f"will remove {bc_table} using primary-key={pk}") - - while True: - indices_to_delete = ','.join(data[table].iloc[:,0].values) - self.logger.debug(f"removing {len(indices_to_delete)} indices from {bc_table}") - query=f"DELETE FROM {bc_table} WHERE {pk} IN ({indices_to_delete}) " - cmd=['bc_sqlselect',f'--user={self.user}',f'--query={query}',self.database] - - stdout,stderr = self.run_bash_cmd(cmd) - - try: - data.next() - except StopIteration: - break diff --git a/carrot/tools/dag.py b/carrot/tools/dag.py deleted file mode 100644 index 44ba4ecc..00000000 --- a/carrot/tools/dag.py +++ /dev/null @@ -1,177 +0,0 @@ -from graphviz import Digraph -import json - -colorscheme = 'gnbu9' - -def make_dag_from_objects(object_dict): - _format = 'pdf' - dot = Digraph(strict=True,format=_format) - dot.attr(size='5,5') - - for destination_table,object_list in object_dict.items(): - dot.node(destination_table,shape='box') - for obj in object_list: - dot.node(obj,style='filled', fillcolor='yellow',shape='box') - dot.edge(destination_table,obj,dir='forward') - - dot.render('dag.gv', view=True) - return - -def make_dag(data,output_file='dag.gv',format='pdf',render=False,orientation='RL',show_concepts=False): - _format = format - if render == False: - _format = 'svg' - - dot = Digraph(strict=True,format=_format) - dot.attr(rankdir=orientation)#, size='20,8') - - # #dot.attr(rankdir='RL', size='8,16',compound='true') - - with dot.subgraph(name='cluster_0') as dest, \ - dot.subgraph(name='cluster_1') as inp,\ - dot.subgraph(name='cluster_01') as c: - - #dest.attr(style='dotted',penwidth='4', label='CDM') - #inp.attr(style='filled', fillcolor='lightgrey', penwidth='0', label='Input') - - dest.attr(style='filled', fillcolor='2', colorscheme='blues9', penwidth='0', label='Common Data Model') - inp.attr(style='filled', fillcolor='2', colorscheme='greens9', penwidth='0', label='Source') - if show_concepts: - c.attr(style='filled', fillcolor='1', colorscheme='greens9', penwidth='0', label='Concepts') - - for destination_table_name,destination_tables in data.items(): - dest.node(destination_table_name, - shape='folder',style='filled', - fontcolor='white',colorscheme=colorscheme, - fillcolor='9') - - for ref_name,destination_table in destination_tables.items(): - for destination_field,source in destination_table.items(): - source_field = source['source_field'] - source_table = source['source_table'] - - table_name = f"{destination_table_name}_{destination_field}" - dest.node(table_name, - label=destination_field,style='filled,rounded', colorscheme=colorscheme, - fillcolor='7',shape='box',fontcolor='white') - - dest.edge(destination_table_name,table_name,arrowhead='none') - - source_field_name = f"{source_table}_{source_field}" - inp.node(source_field_name,source_field, - colorscheme=colorscheme, - style='filled,rounded',fillcolor='5',shape='box') - - if 'operations' in source: - operations = source['operations'] - - if 'term_mapping' in source and source['term_mapping'] is not None and show_concepts: - term_mapping = source['term_mapping'] - if isinstance(term_mapping,dict): - concepts = list(term_mapping.values()) - else: - concepts = [term_mapping] - - for concept in concepts: - ref_name = ref_name.rsplit(" ",1)[0] - c.node(str(concept),label=ref_name,style='filled', colorscheme=colorscheme, - fillcolor='black',shape='box',fontcolor='white') - dot.edge(table_name,str(concept),dir='back',color='red',penwidth='2') - dot.edge(str(concept),source_field_name,dir='back',color='red',penwidth='2') - else: - dot.edge(table_name,source_field_name,dir='back',penwidth='2') - - inp.node(source_table,shape='tab',fillcolor='4',colorscheme=colorscheme,style='filled') - inp.edge(source_field_name,source_table,arrowhead='none')#,dir='back',arrowhead='none') - - - #dot.subgraph(destinations) - #dot.subgraph(sources) - - #destinations = dot.subgraph(name='cdm') - #destinations = Digraph('cdm') - #destinations.attr(style='dotted',rank='same',label='process #2') - #dot.subgraph(destinations) - #sources = Digraph('sources') - #sources.attr(style='dotted',rank='same',label='process #1') - - - - if render: - dot.render(output_file, view=True) - return - # - return dot.pipe().decode('utf-8') - -def make_report_dag(data,name='dag',render=False,orientation='RL'): - _format = 'svg' - if render == True: - _format = 'pdf' - - dot = Digraph(strict=True,format=_format) - dot.attr(rankdir=orientation)#, size='20,8') - - colorscheme = 'bupu9' - colorscheme = 'rdbu10' - - for table in data: - - dataset=table['meta']['dataset'] - dot.node(dataset, - style='filled', colorscheme=colorscheme, - fillcolor='10',shape='box',fontcolor='white') - - table_name = table['table'] - - dot.node(table_name, - style='filled', colorscheme=colorscheme, - fillcolor='7',shape='box')#,fontcolor='white') - n = table['meta']['nscanned'] - dot.edge(table_name,dataset,arrowhead='none',label=f"N={n}") - - for field in table['fields']: - field_name = field['field'] - - ref_name = table_name+field_name - dot.node(ref_name,label=field_name, - style='filled,rounded', colorscheme=colorscheme, - fillcolor='6',shape='box')#,fontcolor='white') - dot.edge(ref_name,table_name,arrowhead='none') - - for value in field['values']: - frequency = int(round(value['frequency']*100.,0)) - if frequency < 5: - continue - frequency = f"{frequency} %" - - value_name = value['value'] - ref_name_v = table_name+field_name+value_name - dot.node(ref_name_v,label=value_name, - style='filled,rounded', colorscheme=colorscheme, - fillcolor='5',shape='box')#,fontcolor='white') - dot.edge(ref_name_v,ref_name,label=frequency,arrowhead='none') - - if not 'concepts' in value: - continue - - for concept in value['concepts']: - concept_id = concept['concept_id'] - concept_name = concept['concept_name'] - domain_id = concept['domain_id'] - label = concept_name+"\n"+str(concept_id)+' | '+domain_id - - ref_name_v2 = str(concept_id)+ ref_name_v - dot.node(ref_name_v2,label=label, - style='filled,rounded', colorscheme=colorscheme, - fillcolor='3',shape='box',fontcolor='white') - dot.edge(ref_name_v2,ref_name_v,arrowhead='none') - - #dot.node(domain_id, - # style='filled,rounded', colorscheme=colorscheme, - # fillcolor='2',shape='box',fontcolor='black') - #dot.edge(domain_id,ref_name_v2,arrowhead='none') - - - if render: - dot.render(f'{name}.gv', view=True) - return diff --git a/carrot/tools/extract/__init__.py b/carrot/tools/extract/__init__.py deleted file mode 100644 index 32141437..00000000 --- a/carrot/tools/extract/__init__.py +++ /dev/null @@ -1,118 +0,0 @@ -import json -import pandas as pd -import os -from . import templates -import glob -from carrot.cdm import classes - -def make_class(data, - name=None, - f_inputs=None): - - - structural_mapping = data['cdm'] - - metadata = data['metadata'] - person_ids = None - if 'person_id' in metadata: - person_ids = metadata['person_id'] - person_ids = { k.lower():v.lower() for k,v in person_ids.items() } - - - objects = [] - for destination_table,_map in structural_mapping.items(): - for i,(_,obj) in enumerate(_map.items()): - map_rules = [] - #find structural mapping - - for destination_field,source in sorted(obj.items()): - source_field = source['source_field'] - source_table = source['source_table'] - rule = templates.rule.render(destination_field=destination_field, - source_table=source_table, - source_field=source_field) - map_rules.append(rule) - - - #add a line break - map_rules.append('') - map_rules.append('# --- insert field operations --- ') - - for destination_field,source in sorted(obj.items()): - if 'operations' in source and source['operations'] is not None: - for operation in source['operations']: - rule = templates.operation.render(destination_field=destination_field, - operation=operation) - map_rules.append(rule) - - - #add a line break - map_rules.append('') - map_rules.append('# --- insert term mapping --- ') - #find term mapping - for destination_field,source in sorted(obj.items()): - term_mapping = None - if 'term_mapping' in source: - term_mapping = source['term_mapping'] - - - if term_mapping: - #term map each value - if isinstance(term_mapping,dict): - nindent=4 - term_mapping = json.dumps(term_mapping,indent=nindent).splitlines() - temp = f'self.{destination_field}.series = self.{destination_field}.series.map(' - map_rules.append(temp) - for line in term_mapping: - map_rules.append(f'{" "*nindent}{line}') - map_rules.append(f')') - #force all values to be a single value - else: - temp = f'self.{destination_field}.series = self.tools.make_scalar(self.{destination_field}.series,{term_mapping})' - map_rules.append(temp) - - - - - function_name = f"{destination_table}_{i}" - objects.append(templates.obj.render( - function_name=function_name, - object_name=destination_table, - map_rules=map_rules)) - - - init = templates.init.render(person_ids=person_ids) - source_code = templates.cls.render(name=name, init=init, objects=objects) - - current_dir = os.getcwd() - - fname = os.path.join(current_dir, f"{name}.py") - if os.path.isfile(fname): - print (f"Recreating file {fname}") - else: - print (f"Making new file {fname}") - - with open(fname,'w') as f: - f.write(source_code) - - return fname - -def register_class(fname): - name = os.path.basename(fname) - #register the file within carrot/classes so it can be imported - save_dir = os.path.dirname(os.path.abspath(classes.__file__)) - - config_folder = os.environ.get('CONFIG_CONFIG_FOLDER') - if config_folder is not None: - save_dir = config_folder - fname_dst = os.path.join(save_dir, name) - if fname == fname_dst: - print (f"File is already present in {config_folder}") - return - - fname_dst = os.path.join(save_dir, name) - if os.path.isfile(fname_dst): - os.unlink(fname_dst) - print (f"Registering file, creating a symlink to {fname_dst}") - os.symlink(fname, fname_dst) - diff --git a/carrot/tools/extract/templates.py b/carrot/tools/extract/templates.py deleted file mode 100644 index 317f0dfc..00000000 --- a/carrot/tools/extract/templates.py +++ /dev/null @@ -1,49 +0,0 @@ -from jinja2 import Template - -cls = Template(r'''from carrot.cdm import define_person, define_condition_occurrence, define_visit_occurrence, define_measurement, define_observation, define_drug_exposure -from carrot.cdm import CommonDataModel -import json - -class {{ name }}(CommonDataModel): - {{ init }} - {% for object in objects -%} - {{ object }} - {%- endfor %} - -if __name__ == '__main__': - {{ name }}() - -''') - -init = Template(r''' - def __init__(self,**kwargs): - """ - initialise the inputs and setup indexing - """ - super().__init__(**kwargs) - {% if person_ids %} - #set primary key indexing so tables can be linked - self.set_indexing({{ person_ids }}) - {% endif %} -''') - -''' -{% for ds,pk in person_ids.items() -%} - self.inputs["{{ ds }}"].index = self.inputs["{{ ds }}"]["{{ pk }}"].rename('index') - {% endfor %} -''' - -rule = Template(r'''self.{{ destination_field }}.series = self.inputs["{{ source_table }}"]["{{ source_field }}"]''') -operation = Template(r'''self.{{ destination_field }}.series = self.tools.{{ operation }}(self.{{ destination_field }}.series)''') - -obj = Template(r''' - @define_{{ object_name }} - def {{ function_name }}(self): - """ - Create CDM object for {{ object_name }} - """ - {% for rule in map_rules -%} - {{ rule }} - {% endfor %} -''') - diff --git a/carrot/tools/file_helpers.py b/carrot/tools/file_helpers.py deleted file mode 100644 index 995549b3..00000000 --- a/carrot/tools/file_helpers.py +++ /dev/null @@ -1,333 +0,0 @@ -import os -import glob -import copy -import json -import pandas as pd -from carrot.tools.logger import _Logger as Logger -import carrot.io as io - -class MissingInputFiles(Exception): - pass -class DifferingColumns(Exception): - pass -class DifferingRows(Exception): - pass - - - -def load_json_delta(f_in,original): - logger = Logger("load_json_delta") - - data = load_json(f_in) - - if isinstance(original,str): - original = load_json(original) - - if original == None: - return data - - if original == data: - return data - - logger.info(f"loading a json from '{f_in}' as a delta") - - - original_date = original['metadata']['date_created'] - data_date = data['metadata']['date_created'] - - logger.info(f"Original JSON date: {original_date}") - logger.info(f"New JSON date: {data_date}") - - _data = copy.deepcopy(data) - - for destination_table,rule_set in data['cdm'].items(): - for name,rules in rule_set.items(): - exists_in_original_rules = None - if destination_table in original['cdm']: - if name in original['cdm'][destination_table]: - exists_in_original_rules = original['cdm'][destination_table][name] - - if exists_in_original_rules: - _data['cdm'][destination_table].pop(name) - else: - logger.info(f"Detected a new rule for {name}") - logger.debug(json.dumps(rules,indent=6)) - - if not _data['cdm'][destination_table]: - _data['cdm'].pop(destination_table) - - logger.debug(json.dumps(_data,indent=6)) - return _data - - -def load_json(f_in): - - if os.path.exists(f_in): - data = json.load(open(f_in)) - else: - try: - data = json.loads(f_in) - except Exception as err: - raise FileNotFoundError(f"{f_in} not found. Or cannot parse as json") - - return data - - -def create_csv_store(**kwargs): - return io.LocalDataCollection(**kwargs) - -def create_bclink_store(**kwargs): - return io.BCLinkDataCollection(**kwargs) - -def create_sql_store(**kwargs): - return io.SqlDataCollection(**kwargs) - -def load_sql(**kwargs): - store = create_sql_store(**kwargs) - return store - -def load_csv(_map,chunksize=None, - dtype=str,nrows=None, - lower_col_names=False, - load_path="", - rules=None, - sep=',', - na_values=['']): - - if isinstance(_map,list): - _map = { - os.path.basename(x):x - for x in _map - } - - logger = Logger("carrot.tools.load_csv") - - if isinstance(_map,list) or isinstance(_map,tuple): - _map = { x:x for x in _map} - elif isinstance(_map,str): - _map = { _map:_map } - - if rules is not None: - logger.debug("rules .json file supplied") - if not isinstance(rules,dict): - rules = load_json(rules) - - inputs_from_cli = list(_map.keys()) - - source_map = get_mapped_fields_from_rules(rules) - inputs_from_json = list(source_map.keys()) - - if len(inputs_from_cli) == 0: - raise MissingInputFiles (f"You haven't loaded any input files!") - - logger.debug(f"{len(inputs_from_cli)} input files loaded") - logger.debug(f"{inputs_from_cli}") - - missing_inputs = list(set(inputs_from_json) - set(inputs_from_cli)) - if len(missing_inputs) > 0 : - raise MissingInputFiles (f"Found the following files {missing_inputs} in the json file, that are not in the loaded file list... {inputs_from_cli}") - - #reduce the mapping of inputs, if we dont need them all - _map = { - k: { - 'file':v, - 'fields':source_map[k] - } - for k,v in _map.items() - if k in source_map - } - - - if not nrows is None: - chunksize = nrows if chunksize is None else chunksize - - retval = io.LocalDataCollection(chunksize=chunksize) - - for key,obj in _map.items(): - fields = None - if isinstance(obj,str): - fname = obj - else: - fname = obj['file'] - fields = obj['fields'] - - df = pd.read_csv(load_path+fname, - chunksize=chunksize, - #iterator=True, - nrows=nrows, - sep=sep, - keep_default_na=False, - na_values=na_values, - dtype=dtype, - usecols=fields) - - df.attrs = {'original_file':load_path+fname} - - - if isinstance(df,pd.DataFrame): - #this should be removed - if lower_col_names: - df.columns = df.columns.str.lower() - - retval[key] = io.DataBrick(df,name=key) - - return retval - - -def load_tsv(_map,**kwargs): - kwargs['sep']="\t" - return load_csv(_map,**kwargs) - - -def get_subfolders(input_folder): - return { - os.path.basename(f.path):f.path - for f in os.scandir(input_folder) - if f.is_dir() and not os.path.basename(f.path).startswith('.') - } - -def get_files(path,type='csv'): - return [x.path for x in os.scandir(path) if x.path.endswith(f'.{type}')] - -def get_file_map_from_dir(_dir,ext='.csv'): - if not os.path.isdir(_dir): - _dir = os.path.abspath( - os.path.join( - os.path.dirname(__file__),'..','data',_dir) - ) - - _map = {} - for fname in glob.glob(f"{_dir}{os.path.sep}*{ext}"): - key = os.path.basename(fname) - _map[key] = fname - - return _map - -def remove_missing_sources_from_rules(rules,tables): - logger = Logger("remove_missing_sources_from_rules") - - tables = [os.path.basename(x) for x in tables] - - rules_copy = copy.deepcopy(rules) - - for destination_table,cdm_table in rules['cdm'].items(): - for table_name,sub_table in cdm_table.items(): - first = list(sub_table.keys())[0] - source_table = sub_table[first]['source_table'] - if source_table not in tables: - rules_copy['cdm'][destination_table].pop(table_name) - logger.warning(f"removed {table_name} from rules because it was not loaded") - - if not rules_copy['cdm'][destination_table]: - rules_copy['cdm'].pop(destination_table) - logger.warning(f"removed cdm table '{destination_table}' from rules") - - return rules_copy - -def filter_rules_by_destination_tables(rules,tables): - rules_copy = copy.deepcopy(rules) - - for destination_table,cdm_table in rules['cdm'].items(): - if not destination_table in tables: - rules_copy['cdm'].pop(destination_table) - - return rules_copy - -def filter_rules_by_object_names(rules,names): - rules_copy = copy.deepcopy(rules) - for destination_table,cdm_table in rules['cdm'].items(): - for object_name,rules in cdm_table.items(): - if not object_name in names: - rules_copy['cdm'][destination_table].pop(object_name) - if not rules_copy['cdm'][destination_table]: - rules_copy['cdm'].pop(destination_table) - - return rules_copy - -def get_source_tables_from_rules(rules,table): - sources = [ - x['source_table'] - for dest_table,cdm_obj_set in rules['cdm'].items() - for cdm_obj in cdm_obj_set.values() - for x in cdm_obj.values() - if dest_table == table - ] - return list(set(sources)) - -def get_mapped_fields_from_rules(rules): - #extract a tuple of source tables and source fields - sources = [ - (x['source_table'],x['source_field']) - for cdm_obj_set in rules['cdm'].values() - for cdm_obj in cdm_obj_set.values() - for x in cdm_obj.values() - ] - - source_map = {} - for (table,field) in sources: - if table not in source_map: - source_map[table] = [] - source_map[table].append(field) - - source_map = { - k:list(set(v)) - for k,v in source_map.items() - } - - return source_map - - -def get_separator_from_filename(fname): - _, fileExtension = os.path.splitext(fname) - if fileExtension == '.tsv': - return '\t' - else: - return ',' - - -def diff_csv(file1,file2,separator=None,nrows=None): - logger = Logger("CSV File Diff") - - if separator == None: - sep1 = get_separator_from_filename(file1) - sep2 = get_separator_from_filename(file2) - else: - sep1 = separator - sep2 = separator - - df1 = pd.read_csv(file1,sep=sep1,nrows=nrows) - df2 = pd.read_csv(file2,sep=sep2,nrows=nrows) - - exact_match = df1.equals(df2) - if exact_match: - return - - df = pd.concat([df1,df2]).drop_duplicates(keep=False) - - if len(df) > 0: - logger.error(" ======== Differing Rows ========== ") - logger.error(df) - m = df1.merge(df2, on=df.columns[0], how='outer', suffixes=['', '_'], indicator=True)[['_merge']] - m = m[~m['_merge'].str.contains('both')] - file1 = file1.split('/')[-1] - file2 = file2.split('/')[-1] - - m['_merge'] = m['_merge'].map({'left_only':file1,'right_only':file2}) - m = m.rename(columns={'_merge':'Only Contained Within'}) - m.index.name = 'Row Number' - logger.error(m.reset_index().to_dict(orient='records')) - raise DifferingRows("Something not right with the rows, changes detected.") - - elif len(df1.columns) != len(df2.columns): - - raise DifferingColumns('in df1 but not df2',list(set(df1.columns) - set(df2.columns)),'\n', - 'in df2 but not df1',list(set(df2.columns) - set(df1.columns))) - - else: - logger.error(" ======= Rows are likely in a different order ====== ") - for i in range(len(df1)): - if not (df1.iloc[i] == df2.iloc[i]).any(): - print ('Row',i,'is in a different location') - raise Exception("differences detected") - - diff --git a/carrot/tools/logger.py b/carrot/tools/logger.py deleted file mode 100644 index 6c7b578b..00000000 --- a/carrot/tools/logger.py +++ /dev/null @@ -1,65 +0,0 @@ -import carrot -import logging -DEBUG_LEVELV_NUM = 9 -logging.addLevelName(DEBUG_LEVELV_NUM, "NOTICE") -def notice(self, message, *args, **kws): - self._log(DEBUG_LEVELV_NUM, message, args, **kws) -logging.Logger.notice = notice - - -logging.addLevelName(10, "TEXT") -def spam(self, message, *args, **kws): - self._log(10, message, args, **kws) -logging.Logger.info_v2 = spam - -import coloredlogs -import textwrap -import os -coloredlogs.DEFAULT_FIELD_STYLES['levelname']['color'] = 'white' - -coloredlogs.DEFAULT_LEVEL_STYLES['text'] = {'color': 219} - - -class _Logger(logging.Logger): - def __init__(self,name): - super().__init__(name) - - save_to_file = carrot.params['log_file'] - debug_level = carrot.params['debug_level'] - if debug_level < 0: - debug_level = logging.CRITICAL - elif debug_level == 0: - debug_level = logging.ERROR - elif debug_level == 1: - debug_level = logging.WARNING - elif debug_level == 2: - debug_level = logging.INFO - else: - debug_level = logging.DEBUG - - self.setLevel(debug_level) - format_str = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' - formatter = coloredlogs.ColoredFormatter(format_str) - - ch = logging.StreamHandler() - ch.setFormatter(formatter) - self.addHandler(ch) - - if save_to_file: - self.debug(f"Saving logs to file {save_to_file}") - file_formatter = logging.Formatter(format_str) - _dir = os.path.realpath(os.path.dirname(save_to_file)) - - if not os.path.exists(_dir): - os.makedirs(_dir) - - fh = logging.FileHandler(save_to_file,mode='a') - fh.setFormatter(file_formatter) - fh.setLevel(debug_level) - self.addHandler(fh) - - -class Logger(): - @property - def logger(self): - return _Logger(type(self).__name__) diff --git a/carrot/tools/profiling.py b/carrot/tools/profiling.py deleted file mode 100644 index e4287aed..00000000 --- a/carrot/tools/profiling.py +++ /dev/null @@ -1,79 +0,0 @@ -import os -import time -import threading -import psutil -import pandas as pd -from carrot.tools.logger import Logger - - -class Profiler(Logger): - def __init__(self,name=None,interval=0.1): - - if name == None: - name = self.__class__.__name__ - else: - name = f"{self.__class__.__name__}_{name}" - - - #retrieve the process id for the current run - self.pid = os.getpid() - #create a psutil instance to montior this - self.py = psutil.Process(self.pid) - #set the interval (seconds) of how often to check the cpu and memory - self.interval = interval - self.logger.info(f"tracking {self.pid} every {self.interval} seconds") - #count the number of cpus the computer running this process has - self.cpu_count = psutil.cpu_count() - self.logger.info(f"{self.cpu_count} cpus available") - #initiate a threaded function - #that will run in a separate process and can monitor CPU/memory in the background - self.th = threading.Thread(target=self.track) - - #init some global variables - self.tracking = [] - self.init_time = time.time() - self._stop = False - self._df = None - - def start(self): - #start the thread - self.logger.info("starting profiling") - self.th.start() - - def stop(self): - #stop the thread - self._stop = True - self.th.join() - self.logger.info("finished profiling") - - def get_df(self): - #build a little dataframe for cpu/memory v.s. time, - #if it has not been built already - if self._df is None: - self._df = pd.DataFrame(self.tracking) - return self._df - - def summary(self): - #print the dataframe created for cpu/memory v.s. time - self.logger.info(self.get_df()) - - def track(self): - """ - Main function to profile CPU and memory usage - """ - #while the program has been told to profile the usage - while self._stop == False: - #from the current process, calculate the current memory usage (in GB) - memory = self.py.memory_info()[0]/2.**30 - #also calculate the CPU % in use at this epoch in time - cpu = self.py.cpu_percent() / self.cpu_count - #calcuate the current time - time since the start of the process - current_time = time.time() - self.init_time - #log the data - info = {'time[s]':current_time,'memory[GB]':memory,'cpu[%]':cpu} - self.tracking.append(info) - #sleep the number of seconds requested - time.sleep(self.interval) - - #once finished, call the summary function - self.summary() diff --git a/carrot/tools/rules_helpers.py b/carrot/tools/rules_helpers.py deleted file mode 100644 index f9943a43..00000000 --- a/carrot/tools/rules_helpers.py +++ /dev/null @@ -1,89 +0,0 @@ - -class TableNotFoundError(Exception): - pass -class FieldNotFoundError(Exception): - pass - -def get_person_ids(rules): - return { - subtable['person_id']['source_table']:subtable['person_id']['source_field'] - for table in rules['cdm'].values() - for subtable in table.values() - } - - -def get_source_field(table,name): - if name not in table: - if name.lower() in table: - return table[name.lower()] - else: - raise FieldNotFoundError(f"Cannot find {name} in table {table.name}. Options are {table.columns.tolist()}") - return table[name] - -def get_source_table(inputs,name): - #make a copy of the input data column slice - if name not in inputs.keys(): - short_keys = {key[:31]:key for key in inputs.keys()} - if name in short_keys: - name = short_keys[name] - elif name.lower() in short_keys: - name = short_keys[name.lower()] - else: - raise TableNotFoundError(f"Cannot find {name} in inputs. Options are {inputs.keys()}") - table = inputs[name] - table.name = name - return inputs[name] - - -def load_from_file(this): - df = this.inputs[this.fname].dropna(axis=1) - for colname in df.columns: - this[colname].series = df[colname] - - -def apply_rules(this,rules,inputs=None): - this.logger.info("Called apply_rules") - - if inputs is None: - inputs = this.inputs - - this._meta['source_files'] = {} - for destination_field,rule in rules.items(): - source_table_name = rule['source_table'] - source_field_name = rule['source_field'] - operations = None - if 'operations' in rule: - operations = rule['operations'] - term_mapping = None - if 'term_mapping' in rule: - term_mapping = rule['term_mapping'] - - source_table = get_source_table(inputs,source_table_name) - source_field = get_source_field(source_table,source_field_name) - series = source_field.copy() - - if operations is not None: - for operation in operations: - function = this.tools[operation] - series = function(series) - - if term_mapping is not None: - if isinstance(term_mapping,dict): - # value level mapping - # - term_mapping is a dictionary between values and concepts - # - map values in the input data, based on this map - - #need to make the value a string for mapping - #pandas has a weird behaviour that when the value is an Int - #the resulting series is a float64 - term_mapping = {k:str(v) for k,v in term_mapping.items()} - series = series.map(term_mapping) - else: - # field level mapping. - # - term_mapping is the concept_id - # - set all values in this column to it - series.values[:] = term_mapping - - this[destination_field].series = series - this._meta['source_files'][destination_field] = {'table':source_table_name,'field':source_field_name} - this.logger.info(f"Mapped {destination_field}") diff --git a/carrot_cdm_lite.py b/carrot_cdm_lite.py new file mode 100644 index 00000000..8c9de06a --- /dev/null +++ b/carrot_cdm_lite.py @@ -0,0 +1,3 @@ +from carrotlite.clilite.clilite import carrotlite +if __name__ == '__main__': + carrotlite() diff --git a/carrotlite/__init__.py b/carrotlite/__init__.py new file mode 100644 index 00000000..b7851356 --- /dev/null +++ b/carrotlite/__init__.py @@ -0,0 +1,5 @@ +from ._version import __version__ + +params = { + 'version':__version__, +} diff --git a/carrotlite/_version.py b/carrotlite/_version.py new file mode 100644 index 00000000..11d27f8c --- /dev/null +++ b/carrotlite/_version.py @@ -0,0 +1 @@ +__version__ = '0.1' diff --git a/carrot/cdm/classes/__init__.py b/carrotlite/clilite/__init__.py similarity index 100% rename from carrot/cdm/classes/__init__.py rename to carrotlite/clilite/__init__.py diff --git a/carrotlite/clilite/clilite.py b/carrotlite/clilite/clilite.py new file mode 100644 index 00000000..14fdb2f9 --- /dev/null +++ b/carrotlite/clilite/clilite.py @@ -0,0 +1,20 @@ +from .subcommands.run import run + +import carrotlite as c +import click + +@click.group(invoke_without_command=True) +@click.option("--version","-v",is_flag=True) +@click.pass_context +def carrotlite(ctx,version): + if ctx.invoked_subcommand == None : + if version: + click.echo(c.__version__) + else: + click.echo(ctx.get_help()) + return + +carrotlite.add_command(run, "run") + +if __name__ == "__main__": + carrotlite() diff --git a/carrot/cli/__init__.py b/carrotlite/clilite/subcommands/__init__.py similarity index 100% rename from carrot/cli/__init__.py rename to carrotlite/clilite/subcommands/__init__.py diff --git a/carrotlite/clilite/subcommands/run.py b/carrotlite/clilite/subcommands/run.py new file mode 100644 index 00000000..f64c6a41 --- /dev/null +++ b/carrotlite/clilite/subcommands/run.py @@ -0,0 +1,483 @@ +import csv +import os, time +import datetime +import fnmatch +import sys +import click +import json +import carrotlite +import carrotlite.tools as tools + +@click.group(help="Commands for mapping data to the OMOP CommonDataModel (CDM).") +def run(): + pass + +@click.command() +@click.option("--rules-file", + required=True, + help="json file containing mapping rules") +@click.option("--output-dir", + default=None, + help="define the output directory for OMOP-format tsv files") +@click.option("--write-mode", + default='w', + type=click.Choice(['w','a']), + help="force write-mode on output files") +@click.option("--person-file", + required=True, + help="File containing person_ids in the first column") +@click.option("--omop-ddl-file", + required=True, + help="File containing OHDSI ddl statements for OMOP tables") +@click.option("--omop-config-file", + required=True, + help="File containing additional / override json config for omop outputs") +@click.option("--saved-person-id-file", + default=None, + required=False, + help="Full path to person id file used to save person_id state and share person_ids between data sets") +@click.option("--use-input-person-ids", + required=False, + default='N', + help="Use person ids as input without generating new integers") +@click.option("--last-used-ids-file", + default=None, + required=False, + help="Full path to last used ids file for OMOP tables - format: tablename\tlast_used_id, \nwhere last_used_id must be an integer") +@click.option("--log-file-threshold", + required=False, + default=0, + help="Lower outcount limit for logfile output") +@click.argument("input-dir", + required=False, + nargs=-1) +def mapstream(rules_file, output_dir, write_mode, person_file, omop_ddl_file, omop_config_file, saved_person_id_file, use_input_person_ids, last_used_ids_file, log_file_threshold, input_dir): + """ + Map to output using input streams + """ + print(input_dir) + if os.path.isdir(input_dir[0]) == False: + print("Not a directory, input dir {0}".format(input_dir[0])) + sys.exit(1) + + if os.path.isdir(output_dir) == False: + print("Not a directory, output dir {0}".format(output_dir)) + sys.exit(1) + + if saved_person_id_file == None: + saved_person_id_file = output_dir + "/" + "person_ids.tsv" + if os.path.exists(saved_person_id_file): + os.remove(saved_person_id_file) + + starttime = time.time() + omopcdm = tools.omopcdm.OmopCDM(omop_ddl_file, omop_config_file) + #print(omopcdm.dump_ddl()) + mappingrules = tools.mappingrules.MappingRules(rules_file, omopcdm) + metrics = tools.metrics.Metrics(mappingrules.get_dataset_name(), log_file_threshold) + nowtime = time.time() + + print("--------------------------------------------------------------------------------") + print("Loaded mapping rules from: {0} after {1:.5f} secs".format(rules_file, (nowtime - starttime))) + output_files = mappingrules.get_all_outfile_names() + record_numbers = {} + for output_file in output_files: + record_numbers[output_file] = 1 + + fhd = {} + tgtcolmaps = {} + + try: + # Add in a saved-person-file existence test and reload from it is necessary returning the last used integer + if os.path.isfile(saved_person_id_file): + person_lookup, last_used_integer = load_saved_person_ids(saved_person_id_file) + else: + person_lookup = {} + last_used_integer = 1 + if last_used_ids_file != None: + if os.path.isfile(last_used_ids_file): + record_numbers = load_last_used_ids(last_used_ids_file, record_numbers) + + #fhp = open(person_file, mode="r", encoding="utf-8-sig") + #csvrp = csv.reader(fhp) + person_lookup, rejected_person_count = load_person_ids(person_file, person_lookup, mappingrules, use_input_person_ids, last_used_integer) + fhpout = open(saved_person_id_file, mode="w") + fhpout.write("SOURCE_SUBJECT\tTARGET_SUBJECT\n") + for person_id, person_assigned_id in person_lookup.items(): + fhpout.write("{0}\t{1}\n".format(str(person_id), str(person_assigned_id))) + fhpout.close() + for tgtfile in output_files: + fhd[tgtfile] = open(output_dir + "/" + tgtfile + ".tsv", mode=write_mode) + if write_mode == 'w': + outhdr = omopcdm.get_omop_column_list(tgtfile) + fhd[tgtfile].write("\t".join(outhdr) + "\n") + tgtcolmaps[tgtfile] = omopcdm.get_omop_column_map(tgtfile) + + except IOError as e: + print("I/O - error({0}): {1} -> {2}".format(e.errno, e.strerror, str(e))) + exit() + + print("person_id stats: total loaded {0}, reject count {1}".format(len(person_lookup), rejected_person_count)) + + # TODO get this list of input files from the parsed rules + existing_input_files = fnmatch.filter(os.listdir(input_dir[0]), '*.csv') + rules_input_files = mappingrules.get_all_infile_names() + for infile in existing_input_files: + if infile not in rules_input_files: + msg = "ERROR: no mapping rules found for existing input file - {0}".format(infile) + print(msg) + metrics.add_log_data(msg) + for infile in rules_input_files: + if infile not in existing_input_files: + msg = "ERROR: no data for mapped input file - {0}".format(infile) + print(msg) + metrics.add_log_data(msg) + rejidcounts = {} + rejdatecounts = {} + #src_tgt_counts = {} + print(rules_input_files) + + for srcfilename in rules_input_files: + rejidcounts[srcfilename] = 0 + rejdatecounts[srcfilename] = 0 + + for srcfilename in rules_input_files: + outcounts = {} + rejcounts = {} + rcount = 0 + + try: + fh = open(input_dir[0] + "/" + srcfilename, mode="r", encoding="utf-8-sig") + csvr = csv.reader(fh) + except IOError as e: + print("Unable to open: {0}".format(input_dir[0] + "/" + srcfilename)) + print("I/O error({0}): {1}".format(e.errno, e.strerror)) + continue + + tgtfiles, src_to_tgt = mappingrules.parse_rules_src_to_tgt(srcfilename) + infile_datetime_source, infile_person_id_source = mappingrules.get_infile_date_person_id(srcfilename) + for tgtfile in tgtfiles: + outcounts[tgtfile] = 0 + rejcounts[tgtfile] = 0 + datacolsall = [] + hdrdata = next(csvr) + dflist = mappingrules.get_infile_data_fields(srcfilename) + for colname in hdrdata: + datacolsall.append(colname) + inputcolmap = omopcdm.get_column_map(hdrdata) + pers_id_col = inputcolmap[infile_person_id_source] + datetime_col = inputcolmap[infile_datetime_source] + print("--------------------------------------------------------------------------------") + print("Processing input: {0}".format(srcfilename)) +# print("Processing input: {0}, All input cols = {1}, Data cols = {2}".format(srcfilename, str(datacolsall), str(dflist))) + + for indata in csvr: + #indata = inputline.strip().split(",") + key = srcfilename + "~all~all~all~" + metrics.increment_key_count(key, "input_count") + rcount += 1 + strdate = indata[datetime_col].split(" ")[0] + fulldate = parse_date(strdate) + if fulldate != None: + #fulldate = "{0}-{1:02}-{2:02}".format(dt.year, dt.month, dt.day) + indata[datetime_col] = fulldate + else: + metrics.increment_key_count(key, "invalid_date_fields") + continue + + for tgtfile in tgtfiles: + tgtcolmap = tgtcolmaps[tgtfile] + auto_num_col = omopcdm.get_omop_auto_number_field(tgtfile) + pers_id_col = omopcdm.get_omop_person_id_field(tgtfile) + + datacols = datacolsall + if tgtfile in dflist: + datacols = dflist[tgtfile] + + for datacol in datacols: + built_records, outrecords, metrics = get_target_records(tgtfile, tgtcolmap, src_to_tgt, datacol, indata, inputcolmap, srcfilename, omopcdm, metrics) + if built_records == True: + for outrecord in outrecords: + if auto_num_col != None: + outrecord[tgtcolmap[auto_num_col]] = str(record_numbers[tgtfile]) + record_numbers[tgtfile] += 1 + if (outrecord[tgtcolmap[pers_id_col]]) in person_lookup: + outrecord[tgtcolmap[pers_id_col]] = person_lookup[outrecord[tgtcolmap[pers_id_col]]] + outcounts[tgtfile] += 1 + key = srcfilename + "~all~all~all~" + metrics.increment_key_count(key, "output_count") + key = "all~all~" + tgtfile + "~all~" + metrics.increment_key_count(key, "output_count") + key = srcfilename + "~all~" + tgtfile + "~all~" + metrics.increment_key_count(key, "output_count") + if tgtfile == "person": + key = srcfilename + "~all~" + tgtfile + "~" + outrecord[1] +"~" + metrics.increment_key_count(key, "output_count") + key = srcfilename + "~" + datacol +"~" + tgtfile + "~" + outrecord[1] + "~" + outrecord[2] + metrics.increment_key_count(key, "output_count") + else: + key = srcfilename + "~" + datacol +"~" + tgtfile + "~" + outrecord[2] + "~" + metrics.increment_key_count(key, "output_count") + key = srcfilename + "~all~" + tgtfile + "~" + outrecord[2] + "~" + metrics.increment_key_count(key, "output_count") + key = "all~all~" + tgtfile + "~" + outrecord[2] + "~" + metrics.increment_key_count(key, "output_count") + key = "all~all~all~" + outrecord[2] + "~" + metrics.increment_key_count(key, "output_count") + fhd[tgtfile].write("\t".join(outrecord) + "\n") + else: + key = srcfilename + "~all~" + tgtfile + "~all~" + metrics.increment_key_count(key, "invalid_person_ids") + rejidcounts[srcfilename] += 1 + + fh.close() + + nowtime= time.time() + print("INPUT file data : {0}: input count {1}, time since start {2:.5} secs".format(srcfilename, str(rcount), (nowtime - starttime))) + for outtablename, count in outcounts.items(): + print("TARGET: {0}: output count {1}".format(outtablename, str(count))) + + print("--------------------------------------------------------------------------------") + data_summary = metrics.get_mapstream_summary() + log_report = metrics.get_log_data() + try: + dsfh = open(output_dir + "/summary_mapstream.tsv", mode="w") + dsfh.write(data_summary) + dsfh.close() + logfh = open(output_dir + "/error_report.txt", mode="w") + logfh.write(log_report) + logfh.close() + except IOError as e: + print("I/O error({0}): {1}".format(e.errno, e.strerror)) + print("Unable to write file") + + nowtime = time.time() + print("Elapsed time = {0:.5f} secs".format(nowtime - starttime)) + #profiler.disable() + #stats = pstats.Stats(profiler).sort_stats('ncalls') + #stats.print_stats() + +def get_target_records(tgtfilename, tgtcolmap, rulesmap, srcfield, srcdata, srccolmap, srcfilename, omopcdm, metrics): + build_records = False + tgtrecords = [] + date_col_data = omopcdm.get_omop_datetime_linked_fields(tgtfilename) + date_component_data = omopcdm.get_omop_date_field_components(tgtfilename) + notnull_numeric_fields = omopcdm.get_omop_notnull_numeric_fields(tgtfilename) + + srckey = srcfilename + "~" + srcfield + "~" + tgtfilename + summarykey = srcfilename + "~" + srcfield + "~" + tgtfilename + "~all~" + if valid_value(str(srcdata[srccolmap[srcfield]])): + srcfullkey = srcfilename + "~" + srcfield + "~" + str(srcdata[srccolmap[srcfield]]) + "~" + tgtfilename + dictkeys = [] + if srcfullkey in rulesmap: + build_records = True + dictkeys.append(srcfullkey) + if srckey in rulesmap: + build_records = True + dictkeys.append(srckey) + if build_records == True: + for dictkey in dictkeys: + for out_data_elem in rulesmap[dictkey]: + valid_data_elem = True + tgtarray = ['']*len(tgtcolmap) + for req_integer in notnull_numeric_fields: + tgtarray[tgtcolmap[req_integer]] = "0" + for infield, outfield_list in out_data_elem.items(): + for output_col_data in outfield_list: + if "~" in output_col_data: + outcol, term = output_col_data.split("~") + tgtarray[tgtcolmap[outcol]] = term + else: + tgtarray[tgtcolmap[output_col_data]] = srcdata[srccolmap[infield]] + if output_col_data in date_component_data: + strdate = srcdata[srccolmap[infield]].split(" ")[0] + dt = get_datetime_value(strdate) + if dt != None: + year_field = date_component_data[output_col_data]["year"] + month_field = date_component_data[output_col_data]["month"] + day_field = date_component_data[output_col_data]["day"] + tgtarray[tgtcolmap[year_field]] = str(dt.year) + tgtarray[tgtcolmap[month_field]] = str(dt.month) + tgtarray[tgtcolmap[day_field]] = str(dt.day) + fulldate = "{0}-{1:02}-{2:02}".format(dt.year, dt.month, dt.day) + tgtarray[tgtcolmap[output_col_data]] = fulldate + else: + metrics.increment_key_count(summarykey, "invalid_date_fields") + valid_data_elem = False + elif output_col_data in date_col_data: + fulldate = srcdata[srccolmap[infield]] + tgtarray[tgtcolmap[output_col_data]] = fulldate + tgtarray[tgtcolmap[date_col_data[output_col_data]]] = fulldate + if valid_data_elem == True: + tgtrecords.append(tgtarray) + else: + metrics.increment_key_count(summarykey, "invalid_source_fields") + + + return build_records, tgtrecords, metrics + +def valid_value(item): + """ + Check if an item is non blank (null) + """ + if item.strip() == "": + return(False) + return(True) + +def valid_date_value(item): + """ + Check if a date item is non null and parses as ISO (YYYY-MM-DD), reverse-ISO + or dd/mm/yyyy or mm/dd/yyyy + """ + if item.strip() == "": + return(False) + if not valid_iso_date(item) and not valid_reverse_iso_date(item) and not valid_uk_date(item): + #print("Bad date : {0}".format(item)) + return(False) + return(True) + +def get_datetime_value(item): + """ + Check if a date item is non null and parses as ISO (YYYY-MM-DD), reverse-ISO + or dd/mm/yyyy or mm/dd/yyyy + """ + dt = None + # Does the date parse as an ISO date? + try: + dt = datetime.datetime.strptime(item, "%Y-%m-%d") + except ValueError: + pass + if dt != None: + return(dt) + + # Does the date parse as a reverse ISO date? + try: + dt = datetime.datetime.strptime(item, "%d-%m-%Y") + except ValueError: + pass + + if dt != None: + return(dt) + + # Does the date parse as a UK old-style date? + try: + dt = datetime.datetime.strptime(item, "%d/%m/%Y") + except ValueError: + pass + + if dt != None: + return(dt) + + return None + +def parse_date(item): + """ + Crude hand-coded check on date format + """ + datedata = item.split("-") + if len(datedata) != 3: + datedata = item.split("/") + if len(datedata) != 3: + return None + if len(datedata[2]) == 4: + return("{0}-{1}-{2}".format(datedata[2], datedata[1], datedata[0])) + return("{0}-{1}-{2}".format(datedata[0], datedata[1], datedata[2])) + + +def valid_iso_date(item): + """ + Check if a date item is non null and parses as ISO (YYYY-MM-DD) + """ + try: + datetime.datetime.strptime(item, "%Y-%m-%d") + except ValueError: + return(False) + + return(True) + +def valid_reverse_iso_date(item): + """ + Check if a date item is non null and parses as reverse ISO (DD-MM-YYYY) + """ + try: + datetime.datetime.strptime(item, "%d-%m-%Y") + except ValueError: + return(False) + + return(True) + +def valid_uk_date(item): + """ + Check if a date item is non null and parses as UK format (DD/MM/YYYY) + """ + try: + datetime.datetime.strptime(item, "%d/%m/%Y") + except ValueError: + return(False) + + return(True) + +def load_last_used_ids(last_used_ids_file, last_used_ids): + fh = open(last_used_ids_file, mode="r", encoding="utf-8-sig") + csvr = csv.reader(fh, delimiter="\t") + + for last_ids_data in csvr: + last_used_ids[last_ids_data[0]] = int(last_ids_data[1]) + 1 + + fh.close() + return last_used_ids + +def load_saved_person_ids(person_file): + fh = open(person_file, mode="r", encoding="utf-8-sig") + csvr = csv.reader(fh, delimiter="\t") + last_int = 1 + person_ids = {} + + next(csvr) + for persondata in csvr: + person_ids[persondata[0]] = persondata[1] + last_int += 1 + + fh.close() + return person_ids, last_int + +def load_person_ids(person_file, person_ids, mappingrules, use_input_person_ids, person_number=1, delim=","): + fh = open(person_file, mode="r", encoding="utf-8-sig") + csvr = csv.reader(fh, delimiter=delim) + person_columns = {} + person_col_in_hdr_number = 0 + reject_count = 0 + + personhdr = next(csvr) + print(personhdr) + + # Make a dictionary of column names vs their positions + for col in personhdr: + person_columns[col] = person_col_in_hdr_number + person_col_in_hdr_number += 1 + + birth_datetime_source, person_id_source = mappingrules.get_person_source_field_info("person") + print("Load Person Data {0}, {1}".format(birth_datetime_source, person_id_source)) + person_col = person_columns[person_id_source] + + for persondata in csvr: + if not valid_value(persondata[person_columns[person_id_source]]): + reject_count += 1 + continue + if not valid_date_value(persondata[person_columns[birth_datetime_source]]): + reject_count += 1 + continue + if persondata[person_col] not in person_ids: + if use_input_person_ids == "N": + person_ids[persondata[person_col]] = str(person_number) + person_number += 1 + else: + person_ids[persondata[person_col]] = str(persondata[person_col]) + fh.close() + + return person_ids, reject_count + +@click.group(help="Commands for using python configurations to run the ETL transformation.") +def py(): + pass + +run.add_command(mapstream,"mapstream") diff --git a/carrotlite/tools/__init__.py b/carrotlite/tools/__init__.py new file mode 100644 index 00000000..549982e6 --- /dev/null +++ b/carrotlite/tools/__init__.py @@ -0,0 +1,17 @@ +import carrotlite +import os +import sys +import json +import time + +from .file_helpers import ( + load_json +) + +from .metrics import ( + Metrics +) +from . import mappingrules + +from . import omopcdm + diff --git a/carrotlite/tools/file_helpers.py b/carrotlite/tools/file_helpers.py new file mode 100644 index 00000000..6dcca84b --- /dev/null +++ b/carrotlite/tools/file_helpers.py @@ -0,0 +1,14 @@ +import os +import json + +def load_json(f_in): + if os.path.exists(f_in): + data = json.load(open(f_in)) + else: + try: + data = json.loads(f_in) + except Exception as err: + raise FileNotFoundError(f"{f_in} not found. Or cannot parse as json") + + return data + diff --git a/carrot/tools/mappingrules.py b/carrotlite/tools/mappingrules.py similarity index 93% rename from carrot/tools/mappingrules.py rename to carrotlite/tools/mappingrules.py index 25777f1f..fa21d12e 100644 --- a/carrot/tools/mappingrules.py +++ b/carrotlite/tools/mappingrules.py @@ -1,11 +1,12 @@ import os import json +import carrotlite.tools as tools from .omopcdm import OmopCDM class MappingRules: def __init__(self, rulesfilepath, omopcdm): - self.rules_data = self.load_json(rulesfilepath) + self.rules_data = tools.load_json(rulesfilepath) self.omopcdm = omopcdm self.parsed_rules = {} @@ -13,19 +14,6 @@ def __init__(self, rulesfilepath, omopcdm): self.dataset_name = self.get_dsname_from_rules() - def load_json(self, f_in): - """ - """ - if os.path.exists(f_in): - data = json.load(open(f_in)) - else: - try: - data = json.loads(f_in) - except Exception as err: - raise FileNotFoundError(f"{f_in} not found. Or cannot parse as json") - - return data - def dump_parsed_rules(self): return(json.dumps(self.parsed_rules, indent=2)) diff --git a/carrot/tools/metrics.py b/carrotlite/tools/metrics.py similarity index 98% rename from carrot/tools/metrics.py rename to carrotlite/tools/metrics.py index c770c8a5..94c84260 100644 --- a/carrot/tools/metrics.py +++ b/carrotlite/tools/metrics.py @@ -114,7 +114,6 @@ def get_mapstream_summary(self): if "output_count" in dvalue: output_count = str(dvalue["output_count"]) - #if (int(output_count) >= self.log_threshold) or (tablename == "person"): if (int(output_count) >= self.log_threshold): summary_str += self.dataset_name + "\t" + source + "\t" + fieldname + "\t" + tablename + "\t" + concept_id + "\t" + additional +"\t" + input_count + "\t" + invalid_person_ids + "\t" + invalid_date_fields + "\t" + invalid_source_fields + "\t" + output_count + "\n" diff --git a/carrot/tools/omopcdm.py b/carrotlite/tools/omopcdm.py similarity index 99% rename from carrot/tools/omopcdm.py rename to carrotlite/tools/omopcdm.py index 31794c9a..b25bf56d 100644 --- a/carrot/tools/omopcdm.py +++ b/carrotlite/tools/omopcdm.py @@ -1,4 +1,4 @@ -import carrot.tools as tools +import carrotlite.tools as tools import json import re diff --git a/scripts/README.md b/scripts/README.md deleted file mode 100644 index ffbe1ac9..00000000 --- a/scripts/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# Helper Scripts - -This folder contains scripts showing examples of how you can implement your own script to use the python CommonDataModel to build a model and execute a transformation of a dataset into the OHDSI CDM. - -## etlcdm.py - -The help message for this script displays: -``` -usage: etlcdm.py [-h] --rules RULES --out-dir OUT_DIR --inputs INPUTS [INPUTS ...] [-nc NUMBER_OF_ROWS_PER_CHUNK] - [-np NUMBER_OF_ROWS_TO_PROCESS] [--use-profiler] - -ETL-CDM: transform a dataset into a CommonDataModel. - -optional arguments: - -h, --help show this help message and exit - --rules RULES input .json file - --out-dir OUT_DIR, -o OUT_DIR - name of the output folder - --inputs INPUTS [INPUTS ...], -i INPUTS [INPUTS ...] - input csv files - -nc NUMBER_OF_ROWS_PER_CHUNK, --number-of-rows-per-chunk NUMBER_OF_ROWS_PER_CHUNK - choose to chunk running the data into nrows - -np NUMBER_OF_ROWS_TO_PROCESS, --number-of-rows-to-process NUMBER_OF_ROWS_TO_PROCESS - the total number of rows to process - --use-profiler turn on saving statistics for profiling CPU and memory usage -``` - -For example, to execute this script run: -```bash -etlcdm.py -i .... --rules -o -``` \ No newline at end of file diff --git a/scripts/etlcdm.py b/scripts/etlcdm.py deleted file mode 100644 index e553a4b0..00000000 --- a/scripts/etlcdm.py +++ /dev/null @@ -1,122 +0,0 @@ -#!/usr/bin/env python3 - -import sys -print (sys.version) - -import argparse -import json -import os -from coconnect.cdm import ( - CommonDataModel, - get_cdm_class -) - -from coconnect.cdm import ( - Person, - ConditionOccurrence, - Measurement, - Observation -) - -from coconnect.tools import ( - load_csv, - load_json, - apply_rules -) - - -def main(): - parser = argparse.ArgumentParser(description='ETL-CDM: transform a dataset into a CommonDataModel.') - parser.add_argument('--rules', dest='rules', - required=True, - help='input .json file') - parser.add_argument('--out-dir','-o', dest='out_dir', - required=True, - help='name of the output folder') - parser.add_argument('--inputs','-i', dest='inputs', - required=True, - nargs="+", - help='input csv files') - parser.add_argument("-nc","--number-of-rows-per-chunk", - dest='number_of_rows_per_chunk', - default=None, - type=int, - help="choose to chunk running the data into nrows") - parser.add_argument("-np","--number-of-rows-to-process", - dest='number_of_rows_to_process', - default=None, - type=int, - help="the total number of rows to process") - parser.add_argument("--use-profiler", - dest='use_profiler', - action='store_true', - help="turn on saving statistics for profiling CPU and memory usage") - - #get the CLI arguments - args = parser.parse_args() - - #load the rules json file - config = load_json(args.rules) - - # load the csv inputs, given a map between the name of the .csv file - # and the full path of the file - # by also passing the rules to load_csv, only needed columns (used by rules) - # will be loaded - # pass extra arguments if the user has specified chunking - # or has specified only processing a limited number of rows - inputs = load_csv( - { - os.path.basename(x):x - for x in args.inputs - }, - rules=args.rules, - chunksize=args.number_of_rows_per_chunk, - nrows=args.number_of_rows_to_process - ) - - name = config['metadata']['dataset'] - - #build an object to store the cdm - cdm = CommonDataModel(name=name, - inputs=inputs, - output_folder=args.out_dir, - use_profiler=args.use_profiler) - #CDM needs to also track the number of rows to chunk - # - note: should check if this is still needed/used at all - cdm.set_chunk_size(args.number_of_rows_per_chunk) - - - #loop over the cdm object types defined in the configuration - #e.g person, measurement etc.. - for destination_table,rules_set in config['cdm'].items(): - #loop over each object instance in the rule set - #for example, condition_occurrence may have multiple rulesx - #for multiple condition_ocurrences e.g. Headache, Fever .. - for i,rules in enumerate(rules_set): - #make a new object for the cdm object - #Example: - # destination_table : person - # get_cdm_class returns - # obj : Person() - obj = get_cdm_class(destination_table)() - #set the name of the object - obj.set_name(f"{destination_table}_{i}") - - #call the apply_rules function to setup how to modify the inputs - #based on the rules - obj.rules = rules - #Build a lambda function that will get executed during run time - #and will be able to apply these rules to the inputs that are loaded - #(this is useful when chunk) - obj.define = lambda self : apply_rules(self) - - #register this object with the CDM model, so it can be processed - cdm.add(obj) - - cdm.process() - print ('Finished Producing',cdm.keys()) - -if __name__ == "__main__": - main() - - diff --git a/scripts/example_synthetic.py b/scripts/example_synthetic.py deleted file mode 100644 index 1400ab94..00000000 --- a/scripts/example_synthetic.py +++ /dev/null @@ -1,301 +0,0 @@ -import pandas as pd -import numpy as np -import datetime -import time -import io -import os -import coconnect - -from coconnect.cdm import CommonDataModel -from coconnect.cdm import define_table -from coconnect.cdm.objects.common import DestinationTable, DestinationField - -class Demographics(DestinationTable): - name = 'Demo' - def __init__(self,name=None,**kwargs): - self.ID = DestinationField(dtype="Text50", required=True) - self.Age = DestinationField(dtype="Integer", required=False) - self.Sex = DestinationField(dtype="Text50", required=False ) - super().__init__(self.name,type(self).__name__) - -class Symptoms(DestinationTable): - name = 'Symptoms' - def __init__(self,name=None,**kwargs): - self.ID = DestinationField(dtype="Text50", required=True) - self.date_occurrence = DestinationField(dtype="Timestamp", required=False) - - self.Positive_PCR = DestinationField(dtype="Text50", required=False ) - self.Positive_Lateral_Flow = DestinationField(dtype="Text50", required=False ) - - self.Headache = DestinationField(dtype="Text50", required=False ) - self.Fatigue = DestinationField(dtype="Text50", required=False ) - self.Dizzy = DestinationField(dtype="Text50", required=False ) - self.Cough = DestinationField(dtype="Text50", required=False ) - self.Fever = DestinationField(dtype="Text50", required=False ) - self.Muscle_Pain = DestinationField(dtype="Text50", required=False ) - super().__init__(self.name,type(self).__name__) - -class GP_Records(DestinationTable): - name = 'GP_Records' - def __init__(self,name=None,**kwargs): - self.ID = DestinationField(dtype="Text50", required=True) - self.date_of_visit = DestinationField(dtype="Timestamp", required=False) - self.comorbidity = DestinationField(dtype="Text50", required=False ) - self.comorbidity_value = DestinationField(dtype="Float", required=False ) - super().__init__(self.name,type(self).__name__) - -class Hospital_Visit(DestinationTable): - name = 'Hospital_Visit' - def __init__(self,name=None,**kwargs): - self.ID = DestinationField(dtype="Text50", required=True) - self.admission_date = DestinationField(dtype="Timestamp", required=False) - self.reason = DestinationField(dtype="Text50", required=False ) - super().__init__(self.name,type(self).__name__) - -class Blood_Test(DestinationTable): - name = 'Blood_Test' - def __init__(self,name=None,**kwargs): - self.ID = DestinationField(dtype="Text50", required=True) - self.date_taken = DestinationField(dtype="Timestamp", required=False) - self.location = DestinationField(dtype="Text50", required=False ) - self.quantity = DestinationField(dtype="Float", required=False ) - super().__init__(self.name,type(self).__name__) - -class Vaccinations(DestinationTable): - name = 'Vaccinations' - def __init__(self,name=None,**kwargs): - self.ID = DestinationField(dtype="Text50", required=True) - self.date_of_vaccination = DestinationField(dtype="Timestamp", required=False) - self.type = DestinationField(dtype="Text50", required=False) - self.stage = DestinationField(dtype="Integer", required=False) - super().__init__(self.name,type(self).__name__) - - -class Serology(DestinationTable): - name = 'Serology' - def __init__(self,name=None,**kwargs): - self.ID = DestinationField(dtype="Text50", required=True) - self.Date = DestinationField(dtype="Timestamp", required=True) - self.IgG = DestinationField(dtype="Float", required=False ) - super().__init__(self.name,type(self).__name__) - - -def create_gaus_time_series(mu,sigma,n): - mu = time.mktime(mu.timetuple()) - sigma = (datetime.timedelta(**sigma)).total_seconds() - return pd.Series([datetime.date.fromtimestamp(x) for x in np.random.normal(mu,sigma,n)]) - - -class ExampleCovid19DataSet(CommonDataModel): - def __init__(self,n,chunksize=None): - """ - initialise the inputs and setup indexing - """ - - #initial the model, give an output location and specify we want to save the model into csv files - output_folder = f'./synthetic_data/{n}/' - os.makedirs(output_folder,exist_ok=True) - - #create people indexes that we can use in the different tables - #people = pd.DataFrame((f'pk{ii}' for ii in range(1,n+1)),columns=['pks']) - people = pd.DataFrame((ii for ii in range(1,n+1)),columns=['pks']) - people.to_csv(f"{output_folder}/pks.csv") - self.logger.info("created people ") - self.inputs = coconnect.tools.load_csv([f'{output_folder}/pks.csv'],chunksize=chunksize) - - super().__init__(output_folder=output_folder,format_level=0,outfile_separator=',',use_profiler=True) - - #set the processing order, e.g we want to build demographics table first - #so that the values recorded in other tables can be demographically dependent - self.set_execution_order([ - 'Demographics', - 'GP_Records', - 'Vaccinations', - 'Serology', - 'Symptoms', - 'Hospital_Visit', - 'Blood_Test' - ]) - #process simultaneously - self.process_simult() - self.close() - - @define_table(Demographics) - def demo(self): - """ - Straight foreward demographics - """ - self.ID.series = self.inputs['pks.csv'].reset_index()['pks']#self.cdm.people['pks'] - self.n = len(self.ID.series) - self.Age.series = pd.Series(np.random.normal(60,20,self.n)).astype(int) - self.Age.series = self.Age.series.mask(self.Age.series < 0 , None) - self.Sex.series = pd.Series(np.random.choice(['Male','Female',None],size=self.n,p=[0.55,0.445,0.005])) - - @define_table(Symptoms) - def symptoms(self): - - #30% of people have recorded symptoms - ID = self.cdm.demo.ID.series.sample(frac=0.3) - - #10% of these people have have multiple symptoms recorded - self.ID.series = ID.sample(frac=1.1,replace=True)\ - .sort_values().reset_index(drop=True) - - nsymptoms = len(self.ID.series) - self.date_occurrence.series = create_gaus_time_series(mu=datetime.datetime(2021,1,1), - sigma={'days':365}, - n=nsymptoms) - - self.date_occurrence.series.loc[self.date_occurrence.series.sample(frac=0.005).index] = np.nan - - syms_probs = {'Positive_PCR':1,'Positive_Lateral_Flow':0.99,'Headache':0.8,'Fatigue':0.7,'Dizzy':0.4,'Cough':0.7,'Fever':0.2,'Muscle_Pain':0.1} - for key,p in syms_probs.items(): - series = pd.Series(np.random.choice(['Yes','No'],size=nsymptoms,p=[p,1-p])) - setattr(getattr(self,key),'series',series) - - - @define_table(Serology) - def serology(self): - - def calc_IgG(age,sex,nrisks): - scale = 50*(1 - age/200)*(1.1 if sex=='Female' else 1.0)*(1/nrisks) - return np.random.exponential(scale=scale) - - df_gp = self.cdm.gp.get_df() - df_nrisks = df_gp['comorbidity'].groupby(df_gp.index)\ - .count() - df_nrisks.name ='nrisks' - - df = self.cdm.demo.get_df().join(df_nrisks).reset_index() - df['nrisks'] = df['nrisks'].fillna(1) - df = df[df['Age']>18].sample(frac=0.3) - nstudies = len(df) - - df = df.sample(frac=1.4,replace=True).reset_index() - - df['IgG'] = df.apply(lambda x : calc_IgG(x.Age,x.Sex,x.nrisks),axis=1) - df.sort_values('ID',inplace=True) - - self.IgG.series = df['IgG'] - self.ID.series = df['ID'] - self.Date.series = create_gaus_time_series(mu=datetime.datetime(2021,5,1), - sigma={'days':365}, - n=len(df)) - @define_table(GP_Records) - def gp(self): - - def calc_comoribidites(age): - if pd.isna(age): - return [] - comorbidities = { - 'Mental Health':0.3*(1 + age/90) , - 'Diabetes Type-II':0.15*(1 + age/70) , - 'Heart Condition':0.1*(1 + age/50) , - 'High Blood Pressure':0.07*(1 + age/60), - 'BMI': 1 - } - return [x for x,p in comorbidities.items() if np.all(np.random.uniform() < p) ] - - #90% of people have a GP visit record - df = self.cdm.demo.get_df().sample(frac=0.9).reset_index() - - df['comorbidity'] = df.apply(lambda x: calc_comoribidites(x.Age),axis=1) - df['date_of_observation'] = create_gaus_time_series(mu=datetime.datetime(2010,5,1), - sigma={'days':700}, - n=len(df)) - - df = df.explode('comorbidity').set_index('ID').sort_index() - - self.ID.series = df.index.to_series() - self.comorbidity.series = df['comorbidity'] - self.comorbidity_value.series = df['comorbidity'].apply(lambda x: np.random.exponential(scale=20) - if x == 'BMI' else 1) - self.date_of_visit.series = df['date_of_observation'] - - @define_table(Hospital_Visit) - def hospital(self): - - n = len(self.cdm.demo.ID.series) - - #5% of people have had a hospital visit - #some of those have multiple visists - self.ID.series = self.cdm.demo.ID.series.sample(n)\ - .sample(int(n*1.2),replace=True)\ - .sort_values().reset_index(drop=True) - - n = len(self.ID.series) - self.admission_date.series = create_gaus_time_series(mu=datetime.datetime(2020,5,1), - sigma={'days':300}, - n=n) - - reasons = { - 'Kidney Operation':0.1, - 'Appendix Operation':0.1, - 'Heart Attack':0.2, - 'COVID-19':0.15, - 'Pneumonia':0.15, - 'Cancer':0.3 - } - - self.reason.series = pd.Series(np.random.choice(list(reasons.keys()),size=n,p=list(reasons.values()))) - - @define_table(Blood_Test) - def bloods(self): - #half of the people with hospital visits have blood taken - df_hospital = self.cdm.hospital.get_df().sample(frac=0.5).reset_index() - - self.ID.series = df_hospital['ID'] - self.date_taken.series = pd.to_datetime(df_hospital['admission_date']) \ - + datetime.timedelta(days=np.random.uniform(0,5)) - - n = len(df_hospital) - self.location.series = pd.Series(np.random.choice(['Right Arm','Left Arm','Small Intestine','Abdominal Wall'], - size=n, - p=[0.3,0.3,0.2,0.2])) - self.quantity.series = pd.Series((np.random.exponential(scale=1.5) for _ in range(0,n))) - - @define_table(Vaccinations) - def first_covid_vaccination(self): - - def calc_date_of_vacc(age): - if pd.isna(age): - return np.nan - start_date = datetime.datetime(2021,1,1) - tdelta = datetime.timedelta(days=(300-age*2)+np.random.uniform(0,50)) - - return start_date + tdelta - - #95% of people have had a vaccination - df = self.cdm.demo.get_df().sample(frac=0.9).reset_index() - - self.ID.series = df['ID'] - self.date_of_vaccination.series = df.apply(lambda x : calc_date_of_vacc(x.Age),axis=1) - n = len(self.ID.series) - self.type.series = pd.Series(np.random.choice(['Moderna','AstraZenica','Pfizer'],size=n,p=[0.34,0.33,0.33])) - self.stage.series = pd.Series((0 for _ in range(0,n))) - - @define_table(Vaccinations) - def second_covid_vaccination(self): - - def calc_date_of_vacc(age): - if pd.isna(age): - return np.nan - start_date = datetime.datetime(2021,1,1) - tdelta = datetime.timedelta(days=(300-age*2)+np.random.uniform(0,50)) - - return start_date + tdelta - - #80% of people who had 1st had 2nd - df = self.cdm.first_covid_vaccination.get_df().sample(frac=0.8).reset_index() - - self.ID.series = df['ID'] - self.date_of_vaccination.series = pd.to_datetime(df['date_of_vaccination']) \ - + datetime.timedelta(days=(50+np.random.uniform(0,50))) - n = len(self.ID.series) - self.type.series = pd.Series(np.random.choice(['Moderna','AstraZenica','Pfizer'],size=n,p=[0.34,0.33,0.33])) - self.stage.series = pd.Series((1 for _ in range(0,n))) - - -if __name__ == "__main__": - ExampleCovid19DataSet(n=5000000,chunksize=500000) - #ExampleCovid19DataSet(n=1000,chunksize=100) diff --git a/scripts/mongo.py b/scripts/mongo.py deleted file mode 100644 index a51ed35a..00000000 --- a/scripts/mongo.py +++ /dev/null @@ -1,198 +0,0 @@ -import re -import requests -import inquirer -import json -from dotenv import dotenv_values -from pymongo import MongoClient -from pymongo import TEXT -client = MongoClient('localhost', port=27017) -client.server_info() - -db = client.coconnect - -mapped_concepts = db.mapped_concepts -#print (mapped_concepts.index_information().keys()) -#mapped_concepts.drop_index('source_value_text_source_field_text_source_description_text_concept_name_text') -mapped_concepts.create_index([("source_value",TEXT), ("source_field",TEXT),("domain",TEXT), - ("source_description",TEXT),("concept_name",TEXT), - ("concept_id",TEXT)]) -exit(0) - -def find_concepts(source_value): - concepts = mapped_concepts.aggregate([ - {'$match':{'source_value':source_value}}, - {'$project':{'_id':0,'concept_id':1,'concept_name':1}}, - {'$group':{'_id':{'concept_name':'$concept_name','concept_id':'$concept_id'}}}, - {"$project": {'_id': 0,'concept_id':'$_id.concept_id','concept_name': "$_id.concept_name",}} - ]) - - return list(concepts) - -def search_for_concepts(term): - concepts = mapped_concepts.aggregate([ - {'$match':{ '$text': { '$search': term } }}, - {'$group':{ - '_id':{'concept_name':'$concept_name','concept_id':'$concept_id','domain':'$domain'}, - 'sources':{'$addToSet':{ - 'source_data_partner':'$source_data_partner', - 'source_report':'$source_report', - 'source_table':'$source_table', - 'source_field':'$source_field', - 'source_value':'$source_value', - }} - }}, - {"$project": { - '_id': 0, - 'concept_id':'$_id.concept_id', - 'concept_name':"$_id.concept_name", - 'domain':'$_id.domain', - #'sources':'$sources', - }} - ]) - return list(concepts) - -#print (find_concepts('M')) -print (json.dumps(search_for_concepts('problem'),indent=6)) -exit(0) - -config = dotenv_values(".env") -url = config['CCOM_URL'] -token = config['CCOM_TOKEN'] -headers = { - "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36", - "Content-type": "application/json", - "charset": "utf-8", - "Authorization": f"Token {token}" -} - -def get_field_and_table_name(scan_report_field_id): - response = requests.get( - f"{url}/api/scanreportfieldsfilter/?id={scan_report_field_id}&fields=name,scan_report_table", - headers=headers - ) - res = response.json()[0] - name = res['name'] - - report_id = res['scan_report_table'] - response = requests.get( - f"{url}/api/scanreporttablesfilter/?id={report_id}&fields=name", - headers=headers - ) - res = response.json() - table = res[0]['name'] - - return name,table - - - -def get_values(field_id): - response = requests.get( - f"{url}/api/scanreportvaluesfilter/?scan_report_field={field_id}&fields=id,value,value_description", - headers=headers - ) - return response.json() - -def get_concept(concept_id): - response = requests.get( - f"{url}/api/omop/concepts/{concept_id}", - headers=headers - ) - return response.json() - -def insert_concept_id(value_id,concept_id): - post_data = { - 'concept': int(concept_id), - 'object_id': int(value_id), - 'content_type': 17 - } - response = requests.post( - f"{url}/api/scanreportconcepts/", - data=json.dumps(post_data), - headers=headers - ) - print (response.json()) - -response = requests.get( - f"{url}/api/scanreporttablesfilter/?scan_report=317&fields=id,name", - headers=headers -) -tables = response.json() - -def get_fields(table_id): - response = requests.get( - f"{url}/api/scanreportfieldsfilter/?scan_report_table={table_id}&fields=id,name", - headers=headers - ) - fields = response.json() - return fields - -questions = [ - inquirer.Checkbox('tables', - message=f"Which tables to process?", - choices=tables) - - -] -answers = inquirer.prompt(questions) - -tables = answers['tables'] - -for obj in tables: - table_id = obj['id'] - fields = get_fields(table_id) - - questions = [ - inquirer.Checkbox('fields', - message=f"{obj['name']}: Which fields to process?", - choices=fields) - ] - answers = inquirer.prompt(questions) - fields = answers['fields'] - - for field in fields: - field_id = field['id'] - values = get_values(field_id) - - questions = [ - inquirer.Checkbox('values', - message=f"{field['name']}: Which values to insert concepts for? ", - choices=values) - ] - answers = inquirer.prompt(questions) - values = answers['values'] - - for obj in values: - value = obj['value'] - concepts = find_concepts(value) - - concepts.append("Manually insert") - concepts.append("None of the above") - questions = [ - inquirer.List('concepts', - message=f"For source_value '{value}' .. Use one of these concepts? ", - choices=concepts) - - ] - answers = inquirer.prompt(questions) - - if answers['concepts'] == "None of the above": - continue - elif answers['concepts'] == "Manually insert": - questions = [ - inquirer.Text(name='concept_id', message="Which concept do you want to use?",validate=lambda _, x : int(x)) - ] - answers = inquirer.prompt(questions) - concept_id = answers['concept_id'] - - concept = get_concept(concept_id) - concept_name = concept["concept_name"] - print (json.dumps(concept,indent=6)) - correct = inquirer.confirm(f"Sure you want to add {concept_id} ({concept_name})", default=True) - if not correct: - continue - - else: - concept_id = answers['concepts']['concept_id'] - - value_id = obj['id'] - insert_concept_id(value_id,concept_id) diff --git a/setup.py b/setup.py index 97c5a33f..92ae9969 100644 --- a/setup.py +++ b/setup.py @@ -1,65 +1,37 @@ -import setuptools -import os -import sys +from setuptools import setup, find_packages +import os, sys with open("README.md", "r", encoding="utf-8") as fh: - long_description = fh.read() - print (long_description) + long_description = fh.read() + print (long_description) cwd = os.getcwd() os.system(f'ls {cwd}') - -sys.path.append("carrot/") +sys.path.append("carrotlite/") from _version import __version__ as version - -setuptools.setup( - #name="carrot-cdm-beta", - name="carrot-cdm", - author="CO-CONNECT Collaboration", - version=version, - author_email="pdappleby@gmail.com", - description="Python package for performing mapping of ETL to CDM ", - long_description=long_description, - long_description_content_type="text/markdown", - url="https://github.com/HDRUK/CaRROT-CDM", - entry_points = { - 'console_scripts':[ - 'carrot=carrot.cli.cli:carrot' - ], - }, - packages=setuptools.find_packages(), - extras_require = { - 'airflow':['apache-airflow'], - 'performance':['snakeviz'], - }, - install_requires=[ - "pandas", - "sqlalchemy>=1.4.0", - "sqlalchemy-utils", - "numpy", - "scipy", - "coloredlogs", - "Jinja2", - "graphviz", - "click", - "tabulate", - "psutil", - "pysimplegui", - "requests", - "openpyxl", - "pyyaml", - "python-daemon", - "inquirer", - "python-dotenv", - "co-connect-pseudonymise" +setup( + name='carrot-cdm-lite', + version=version, + author_email="pdappleby@gmail.com", + description="Python package for mapping data partner data to the OMOP CDM", + long_description=long_description, + long_description_content_type="text/markdown", + url="https://github.com/HDRUK/CaRROT-CDM-Lite", + entry_points = { + 'console_scripts':[ + 'carrotlite=carrotlite.clilite.clilite:carrotlite' ], - package_data={'carrot': ['data/config/*', 'data/cdm/*','data/example/*/*','data/test/*/*','data/test/*/*/*']}, - include_package_data=True, - classifiers=[ - "Programming Language :: Python :: 3", - "License :: OSI Approved :: MIT License", - "Operating System :: OS Independent", - ], - python_requires='>=3.6', + }, + packages=find_packages(), + install_requires=[ + "click" + ], + classifiers=[ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + ], + python_requires='>=3.6', ) +