From 511bc761d2a1145ef86cc61e3cca9d653fb72a4e Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Mon, 19 Jun 2017 15:39:28 +0200 Subject: [PATCH 01/15] Added chunk_list option for running only selected chunks --- earthdiagnostics/config.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/earthdiagnostics/config.py b/earthdiagnostics/config.py index 2ad86e0f..945d9fa8 100644 --- a/earthdiagnostics/config.py +++ b/earthdiagnostics/config.py @@ -256,6 +256,7 @@ class ExperimentConfig(object): self.startdates = parser.get_option('EXPERIMENT', 'STARTDATES').split() self.chunk_size = parser.get_int_option('EXPERIMENT', 'CHUNK_SIZE') self.num_chunks = parser.get_int_option('EXPERIMENT', 'CHUNKS') + self.chunk_list = parser.get_int_list_option('EXPERIMENT', 'CHUNK_LIST', []) self.calendar = parser.get_option('EXPERIMENT', 'CALENDAR', 'standard') self.model = parser.get_option('EXPERIMENT', 'MODEL') self.model_version = parser.get_option('EXPERIMENT', 'MODEL_VERSION', '') @@ -272,8 +273,12 @@ class ExperimentConfig(object): chunk_list = list() for startdate in self.startdates: for member in self.members: - for chunk in range(1, self.num_chunks + 1): - chunk_list.append((startdate, member, chunk)) + if len(self.chunk_list) == 0: + for chunk in range(1, self.num_chunks + 1): + chunk_list.append((startdate, member, chunk)) + else: + for chunk in self.chunk_list: + chunk_list.append((startdate, member, chunk)) return chunk_list def get_member_list(self): -- GitLab From 32e161e6bc5f084866037a94cffbe4347e28b91c Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Fri, 23 Jun 2017 11:44:27 +0200 Subject: [PATCH 02/15] Fixed small bug in ohc specified layer --- diags.conf | 8 +-- earthdiagnostics/ocean/heatcontentlayer.py | 62 +++++++--------------- 2 files changed, 24 insertions(+), 46 deletions(-) diff --git a/diags.conf b/diags.conf index 2bdd1cc5..dfeb6c07 100644 --- a/diags.conf +++ b/diags.conf @@ -15,7 +15,7 @@ CON_FILES = /esnas/autosubmit/con_files/ # Diagnostics to run, space separated. You must provide for each one the name and the parameters (comma separated) or # an alias defined in the ALIAS section (see more below). If you are using the diagnostics just to CMORize, leave it # empty -DIAGS = maskland,ocean,thetao +DIAGS = ohclayer,0,300 # DIAGS = OHC # Frequency of the data you want to use by default. Some diagnostics do not use this value: i.e. monmean always stores # its results at monthly frequency (obvious) and has a parameter to specify input's frequency. @@ -71,7 +71,7 @@ SERVER_URL = https://earth.bsc.es/thredds INSTITUTE = BSC MODEL = EC-EARTH3 # Model version: Available versions -MODEL_VERSION =Ec3.2_O1L75 +MODEL_VERSION =Ec3.2_O25L75 # Atmospheric output timestep in hours ATMOS_TIMESTEP = 6 # Ocean output timestep in hours @@ -85,12 +85,12 @@ OCEAN_TIMESTEP = 6 # if 2, fc00 # CHUNK_SIZE is the size of each data file, given in months # CHUNKS is the number of chunks. You can specify less chunks than present on the experiment -EXPID = t01f +EXPID = t00t STARTDATES = 19900101 MEMBERS = fc0 MEMBER_DIGITS = 1 CHUNK_SIZE = 1 -CHUNKS = 1 +CHUNKS = 2 # CHUNKS = 1 diff --git a/earthdiagnostics/ocean/heatcontentlayer.py b/earthdiagnostics/ocean/heatcontentlayer.py index d855f04b..38e3fd95 100644 --- a/earthdiagnostics/ocean/heatcontentlayer.py +++ b/earthdiagnostics/ocean/heatcontentlayer.py @@ -75,9 +75,9 @@ class HeatContentLayer(Diagnostic): mask = Utils.get_mask(options['basin']) if 'e3t' in handler.variables: - mask = handler.variables['e3t'][:] * mask + e3t = handler.variables['e3t'][:] elif 'e3t_0' in handler.variables: - mask = handler.variables['e3t_0'][:] * mask + e3t = handler.variables['e3t_0'][:] else: raise Exception('e3t variable can not be found') @@ -92,48 +92,26 @@ class HeatContentLayer(Diagnostic): depth = np.expand_dims(depth, -1) handler.close() - def calculate_weight(array): + def calculate_weight(e3t, depth, mask): """ - Calculates the weight for each level for the given later - :param array: - :return: + Calculates the weight for each cell """ - level = 0 - - while array[level + 1] <= box.min_depth: - array[level] = 0 - level += 1 - if level == array.size - 1: - array[level] = 0 - return array - - if array[level] != box.min_depth: - weight_value = (array[level + 1] - box.min_depth) / (array[level + 1] - array[level]) - array[level] = weight_value - level += 1 - if level == array.size - 1: - array[level] = 0 - return array - - while array[level + 1] <= box.max_depth: - array[level] = 1 - level += 1 - if level == array.size - 1: - array[level] = 0 - return array - - if array[level] != box.max_depth: - weight_value = (box.max_depth - array[level]) / (array[level + 1] - array[level]) - array[level] = weight_value - level += 1 - if level == array.size - 1: - array[level] = 0 - return array - - array[level:] = 0 - return array - - weight = mask * np.apply_along_axis(calculate_weight, 1, depth) * 1020 * 4000 + if not mask: + return 0 + top = depth + bottom = top + e3t + if bottom < box.min_depth or top > box.max_depth: + return 0 + else: + if top < box.min_depth: + top = box.min_depth + if bottom > box.max_depth: + bottom = box.max_depth + + return (bottom - top) * 1020 * 4000 + + calc = np.vectorize(calculate_weight, otypes='f') + weight = calc(e3t, depth, mask) # Now we will reduce to the levels with any weight != 0 to avoid loading too much data on memory levels = weight.shape[1] -- GitLab From 4aa61a966108e8314c4b056964079b8e72287569 Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Thu, 29 Jun 2017 14:48:31 +0200 Subject: [PATCH 03/15] Fixed error in get mask utility method --- earthdiagnostics/ocean/heatcontentlayer.py | 6 ++++++ earthdiagnostics/utils.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/earthdiagnostics/ocean/heatcontentlayer.py b/earthdiagnostics/ocean/heatcontentlayer.py index 38e3fd95..d46ec1bc 100644 --- a/earthdiagnostics/ocean/heatcontentlayer.py +++ b/earthdiagnostics/ocean/heatcontentlayer.py @@ -1,6 +1,9 @@ # coding=utf-8 import numpy as np +import iris +import iris.cube + from earthdiagnostics.constants import Basins from earthdiagnostics.box import Box from earthdiagnostics.diagnostic import Diagnostic, DiagnosticIntOption, DiagnosticBasinOption @@ -73,6 +76,7 @@ class HeatContentLayer(Diagnostic): handler = Utils.openCdf('mesh_zgr.nc') mask = Utils.get_mask(options['basin']) + # mask = handler.variables['tmask'][:] if 'e3t' in handler.variables: e3t = handler.variables['e3t'][:] @@ -112,6 +116,8 @@ class HeatContentLayer(Diagnostic): calc = np.vectorize(calculate_weight, otypes='f') weight = calc(e3t, depth, mask) + weights = iris.cube.Cube(weight, long_name='weights') + iris.save(weights, '/home/Earth/jvegas/gpu_tests/weights_cpu_earthdiags.nc', zlib=True) # Now we will reduce to the levels with any weight != 0 to avoid loading too much data on memory levels = weight.shape[1] diff --git a/earthdiagnostics/utils.py b/earthdiagnostics/utils.py index 6580d78b..5eb88430 100644 --- a/earthdiagnostics/utils.py +++ b/earthdiagnostics/utils.py @@ -62,7 +62,7 @@ class Utils(object): raise Exception('File mask.regions.nc is required for basin {0}'.format(basin)) else: mask_handler = Utils.openCdf('mask.nc') - mask = np.asfortranarray(mask_handler.variables['tmask'][0, 0, :]) + mask = mask_handler.variables['tmask'][0, 0, :] mask_handler.close() return mask -- GitLab From 8c352aa3175abb0a36bb5d7deee39e650cacef61 Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Mon, 3 Jul 2017 10:57:01 +0200 Subject: [PATCH 04/15] Fixed report for CMPI6 CMOR3 outputs --- diags.conf | 11 ++-- earthdiagnostics/cmormanager.py | 69 +++++++++++++++------- earthdiagnostics/config.py | 4 ++ earthdiagnostics/earthdiags.py | 7 ++- earthdiagnostics/ocean/heatcontentlayer.py | 9 +-- earthdiagnostics/variable.py | 20 +++++-- 6 files changed, 83 insertions(+), 37 deletions(-) diff --git a/diags.conf b/diags.conf index dfeb6c07..c41681da 100644 --- a/diags.conf +++ b/diags.conf @@ -9,6 +9,7 @@ DATA_DIR = /esnas:/esarchive DATA_TYPE = exp # CMORization type to use. Important also for THREDDS as it affects variable name conventions. # Options: SPECS (default), PRIMAVERA, CMIP6 +DATA_CONVENTION = PRIMAVERA # Path to NEMO's mask and grid files needed for CDFTools CON_FILES = /esnas/autosubmit/con_files/ @@ -61,15 +62,17 @@ ATMOS_MONTHLY_VARS = 167, 201, 202, 165, 166, 151, 144, 228, 205, 182, 164, 146, # PHYSICS_VERSION = 1 # PHYSICS_DESCRIPTION = # ASSOCIATED_MODEL = -# SOURCE = 'EC-Earthv2.3.0, ocean: Nemo3.1, ifs31r1, lim2 +# SOURCE = EC-Earthv2.3.0, ocean: Nemo3.1, ifs31r1, lim2 +VERSION = v20170629 [THREDDS] SERVER_URL = https://earth.bsc.es/thredds [EXPERIMENT] # Experiments parameters as defined in CMOR standard -INSTITUTE = BSC -MODEL = EC-EARTH3 +INSTITUTE = EC-Earth-Consortium +MODEL = EC-Earth3-HR +NAME = historical # Model version: Available versions MODEL_VERSION =Ec3.2_O25L75 # Atmospheric output timestep in hours @@ -85,7 +88,7 @@ OCEAN_TIMESTEP = 6 # if 2, fc00 # CHUNK_SIZE is the size of each data file, given in months # CHUNKS is the number of chunks. You can specify less chunks than present on the experiment -EXPID = t00t +EXPID = a0fh STARTDATES = 19900101 MEMBERS = fc0 MEMBER_DIGITS = 1 diff --git a/earthdiagnostics/cmormanager.py b/earthdiagnostics/cmormanager.py index f426e0f2..37200cab 100644 --- a/earthdiagnostics/cmormanager.py +++ b/earthdiagnostics/cmormanager.py @@ -46,14 +46,23 @@ class CMORManager(DataManager): self.cmor_path = os.path.join(self.config.data_dir, self.experiment.expid, 'cmorfiles') def file_exists(self, domain, var, startdate, member, chunk, grid=None, box=None, frequency=None, - vartype=VariableType.MEAN): + vartype=VariableType.MEAN, possible_versions=None): cmor_var = self.variable_list.get_variable(var) filepath = self.get_file_path(startdate, member, domain, var, cmor_var, chunk, frequency, grid, None, None) # noinspection PyBroadException - try: - return os.path.isfile(filepath) - except Exception: + if possible_versions is None: + try: + return os.path.isfile(filepath) + except Exception: + return False + else: + for version in possible_versions: + try: + if os.path.isfile(filepath.replace(self.config.cmor.version, version)): + return True + except Exception: + pass return False def get_file(self, domain, var, startdate, member, chunk, grid=None, box=None, frequency=None, @@ -61,7 +70,7 @@ class CMORManager(DataManager): """ Copies a given file from the CMOR repository to the scratch folder and returns the path to the scratch's copy - :param domain: CMOR domain + :param domain: CMOR domain :type domain: Domain :param var: variable name :type var: str @@ -118,11 +127,13 @@ class CMORManager(DataManager): if not frequency: frequency = self.config.frequency - folder_path = self._get_full_cmor_folder_path(startdate, member, domain, var, frequency, grid) + folder_path = self._get_full_cmor_folder_path(startdate, member, domain, var, frequency, grid, cmor_var) file_name = self._get_cmor_file_name(startdate, member, domain, var, cmor_var, frequency, chunk, year, date_str, grid) filepath = os.path.join(folder_path, file_name) + if var =='tas': + pass return filepath def _get_cmor_file_name(self, startdate, member, domain, var, cmor_var, frequency, chunk, year, date_str, grid, ): @@ -153,23 +164,33 @@ class CMORManager(DataManager): self.experiment.experiment_name, startdate, self._get_member_str(member), time_bound) elif self.config.data_convention in ('primavera', 'cmip6'): - if grid: - grid = '_{0}'.format(grid) - else: - grid = '' - - file_name = '{0}_{1}_{2}_{3}_S{4}_{5}{6}{7}'.format(var, cmor_table.name, self.experiment.model, - self.experiment.experiment_name, startdate, - self._get_member_str(member), grid, time_bound) + if not grid: + if domain in [ModelingRealms.ocnBgchem, ModelingRealms.seaIce, ModelingRealms.ocean]: + grid = self.config.cmor.default_ocean_grid + else: + grid = self.config.cmor.default_atmos_grid + file_name = '{0}_{1}_{2}_{3}_{4}_{5}{6}'.format(var, cmor_table.name, self.experiment.experiment_name, + self.experiment.model, self._get_member_str(member), + grid, time_bound) else: raise Exception('Data convention {0} not supported'.format(self.config.data_convention)) return file_name - def _get_full_cmor_folder_path(self, startdate, member, domain, var, frequency, grid): - folder_path = os.path.join(self._get_startdate_path(startdate), str(frequency), domain.name, var) - if grid: - folder_path = os.path.join(folder_path, grid) - folder_path = os.path.join(folder_path, self._get_member_str(member)) + def _get_full_cmor_folder_path(self, startdate, member, domain, var, frequency, grid, cmor_var): + if self.config.data_convention == 'specs': + folder_path = os.path.join(self._get_startdate_path(startdate), str(frequency), domain.name, var) + if grid: + folder_path = os.path.join(folder_path, grid) + folder_path = os.path.join(folder_path, self._get_member_str(member)) + else: + if not grid: + if domain in [ModelingRealms.ocnBgchem, ModelingRealms.seaIce, ModelingRealms.ocean]: + grid = self.config.cmor.default_ocean_grid + else: + grid = self.config.cmor.default_atmos_grid + folder_path = os.path.join(self._get_startdate_path(startdate), self._get_member_str(member), + cmor_var.get_table(frequency, self.config.data_convention).name, var, + grid,self.config.cmor.version) return folder_path def _get_chunk_time_bounds(self, startdate, chunk): @@ -376,6 +397,7 @@ class CMORManager(DataManager): self._cmorize_member(startdate, member) def is_cmorized(self, startdate, member, chunk, domains): + return True for domain in domains: identifier = (startdate, member, chunk, domain.name) if identifier not in self._dic_cmorized: @@ -410,6 +432,7 @@ class CMORManager(DataManager): datetime.now() - start_time) def _unpack_cmor_files(self, startdate, member): + return True if self.config.cmor.force: return False chunk = 1 @@ -537,8 +560,12 @@ class CMORManager(DataManager): :return: path to the startdate's CMOR ยบ :rtype: str """ - return os.path.join(self.config.data_dir, self.experiment.expid, 'cmorfiles', self.experiment.institute, - self.experiment.model, self.experiment.experiment_name, 'S' + startdate) + if self.config.data_convention == 'specs': + return os.path.join(self.config.data_dir, self.experiment.expid, 'cmorfiles', self.experiment.institute, + self.experiment.model, self.experiment.experiment_name, 'S' + startdate) + else: + return os.path.join(self.config.data_dir, self.experiment.expid, 'cmorfiles', self.config.cmor.activity, + self.experiment.institute, self.experiment.model, self.experiment.experiment_name) def _get_member_str(self, member): if self.config.data_convention == 'specs': diff --git a/earthdiagnostics/config.py b/earthdiagnostics/config.py index 945d9fa8..87644461 100644 --- a/earthdiagnostics/config.py +++ b/earthdiagnostics/config.py @@ -124,6 +124,10 @@ class CMORConfig(object): self.physics_description = parser.get_option('CMOR', 'PHYSICS_DESCRIPTION', 'to be filled') self.physics_version = parser.get_option('CMOR', 'PHYSICS_VERSION', '1') self.source = parser.get_option('CMOR', 'SOURCE', 'to be filled') + self.version = parser.get_option('CMOR', 'VERSION', '') + self.default_ocean_grid = parser.get_option('CMOR', 'DEFAULT_OCEAN_GRID', 'gn') + self.default_atmos_grid = parser.get_option('CMOR', 'DEFAULT_ATMOS_GRID', 'gr') + self.activity = parser.get_option('CMOR', 'ACTIVITY', 'CMIP') vars_string = parser.get_option('CMOR', 'VARIABLE_LIST', '') var_manager = VariableManager() diff --git a/earthdiagnostics/earthdiags.py b/earthdiagnostics/earthdiags.py index 4c166fd0..521c9a4b 100755 --- a/earthdiagnostics/earthdiags.py +++ b/earthdiagnostics/earthdiags.py @@ -343,8 +343,13 @@ class EarthDiags(object): continue for table in var.tables: if not self.data_manager.file_exists(var.domain, var.short_name, startdate, member, 1, - frequency=table.frequency): + frequency=table.frequency, + possible_versions=('v20170629', 'v20170630')): results.append((var, table)) + Log.debug('Variable {0.short_name} not found in {1.name}', var, table) + else: + Log.result('Variable {0.short_name} found in {1.name}', var, table) + return results def create_report(self, report_path, results): diff --git a/earthdiagnostics/ocean/heatcontentlayer.py b/earthdiagnostics/ocean/heatcontentlayer.py index d46ec1bc..2a623626 100644 --- a/earthdiagnostics/ocean/heatcontentlayer.py +++ b/earthdiagnostics/ocean/heatcontentlayer.py @@ -1,9 +1,6 @@ # coding=utf-8 import numpy as np -import iris -import iris.cube - from earthdiagnostics.constants import Basins from earthdiagnostics.box import Box from earthdiagnostics.diagnostic import Diagnostic, DiagnosticIntOption, DiagnosticBasinOption @@ -75,8 +72,8 @@ class HeatContentLayer(Diagnostic): job_list = list() handler = Utils.openCdf('mesh_zgr.nc') - mask = Utils.get_mask(options['basin']) - # mask = handler.variables['tmask'][:] + # mask = Utils.get_mask(options['basin']) + mask = handler.variables['tmask'][:] if 'e3t' in handler.variables: e3t = handler.variables['e3t'][:] @@ -116,8 +113,6 @@ class HeatContentLayer(Diagnostic): calc = np.vectorize(calculate_weight, otypes='f') weight = calc(e3t, depth, mask) - weights = iris.cube.Cube(weight, long_name='weights') - iris.save(weights, '/home/Earth/jvegas/gpu_tests/weights_cpu_earthdiags.nc', zlib=True) # Now we will reduce to the levels with any weight != 0 to avoid loading too much data on memory levels = weight.shape[1] diff --git a/earthdiagnostics/variable.py b/earthdiagnostics/variable.py index f8b21891..120abf38 100644 --- a/earthdiagnostics/variable.py +++ b/earthdiagnostics/variable.py @@ -50,7 +50,8 @@ class VariableManager(object): :return: CMOR variable list :rtype: set[Variable] """ - return set(self._dict_variables.values()) + all_vars = set(self._dict_variables.values()) + return sorted(all_vars, key=lambda var: var.short_name) def get_variable_and_alias(self, original_name, silent=False): """ @@ -140,6 +141,8 @@ class VariableManager(object): def _load_json_variables(self, json_data, table): for short_name in json_data.keys(): + if short_name == 'ta19': + pass short_name = str.strip(str(short_name)) if short_name.lower() in self._dict_variables: self._dict_variables[short_name.lower()].tables.append(table) @@ -240,6 +243,8 @@ class VariableManager(object): for sheet_name in excel.sheetnames: try: sheet = excel.get_sheet_by_name(sheet_name) + if sheet.title == 'Primday': + pass if sheet['A1'].value != 'Priority': continue table_frequency, table_date = table_data[sheet.title] @@ -248,13 +253,18 @@ class VariableManager(object): if row[0].value == 'Priority' or not row[5].value: continue - if row[5].value.lower() in self._dict_variables: - self._dict_variables[row[5].value.lower()].tables.append(table) + cmor_name = row[11].value + if not cmor_name: + cmor_name = row[5].value + + if cmor_name.lower() in self._dict_variables: + self._dict_variables[cmor_name.lower()].tables.append(table) continue var = Variable() var.priority = row[0].value - var.short_name = row[5].value + + var.short_name = cmor_name var.standard_name = row[6].value var.long_name = row[1].value @@ -265,6 +275,8 @@ class VariableManager(object): self._dict_variables[var.short_name.lower()] = var except Exception as ex: Log.error('Table {0} can not be loaded: {1}', sheet_name, ex) + import traceback + traceback.print_exc() def _process_modelling_realm(self, var, value): if value is None: -- GitLab From 69289615531c8df28c84c8dc4deb2eafbbcd549d Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Tue, 4 Jul 2017 12:05:12 +0200 Subject: [PATCH 05/15] Working in PRIMAVERA checker --- diags.conf | 8 ++-- earthdiagnostics/cmormanager.py | 49 ++++++++++++--------- earthdiagnostics/datamanager.py | 4 +- earthdiagnostics/earthdiags.py | 47 +++++++++----------- earthdiagnostics/variable_alias/default.csv | 3 +- 5 files changed, 59 insertions(+), 52 deletions(-) diff --git a/diags.conf b/diags.conf index c41681da..bc7cbbbf 100644 --- a/diags.conf +++ b/diags.conf @@ -16,7 +16,7 @@ CON_FILES = /esnas/autosubmit/con_files/ # Diagnostics to run, space separated. You must provide for each one the name and the parameters (comma separated) or # an alias defined in the ALIAS section (see more below). If you are using the diagnostics just to CMORize, leave it # empty -DIAGS = ohclayer,0,300 +DIAGS = # DIAGS = OHC # Frequency of the data you want to use by default. Some diagnostics do not use this value: i.e. monmean always stores # its results at monthly frequency (obvious) and has a parameter to specify input's frequency. @@ -35,9 +35,10 @@ FORCE = False OCEAN_FILES = True FILTER_FILES = # If true, CMORizes atmosphere files. Default = True -ATMOSPHERE_FILES = False +ATMOSPHERE_FILES = True # You can specify the variable to cmorize, in the way domain:var domain:var2 domain2:var VARIABLE_LIST = +CHUNK_LIST = 1 # Variables to be CMORized from the grib atmospheric files, separated by comma. # You can also specify the levels to extract using the following syntax @@ -64,6 +65,7 @@ ATMOS_MONTHLY_VARS = 167, 201, 202, 165, 166, 151, 144, 228, 205, 182, 164, 146, # ASSOCIATED_MODEL = # SOURCE = EC-Earthv2.3.0, ocean: Nemo3.1, ifs31r1, lim2 VERSION = v20170629 +ACTIVITY = CMIP_ec2cmor [THREDDS] SERVER_URL = https://earth.bsc.es/thredds @@ -93,7 +95,7 @@ STARTDATES = 19900101 MEMBERS = fc0 MEMBER_DIGITS = 1 CHUNK_SIZE = 1 -CHUNKS = 2 +CHUNKS = 1 # CHUNKS = 1 diff --git a/earthdiagnostics/cmormanager.py b/earthdiagnostics/cmormanager.py index 37200cab..34fbb372 100644 --- a/earthdiagnostics/cmormanager.py +++ b/earthdiagnostics/cmormanager.py @@ -132,8 +132,6 @@ class CMORManager(DataManager): chunk, year, date_str, grid) filepath = os.path.join(folder_path, file_name) - if var =='tas': - pass return filepath def _get_cmor_file_name(self, startdate, member, domain, var, cmor_var, frequency, chunk, year, date_str, grid, ): @@ -396,27 +394,40 @@ class CMORManager(DataManager): if not self._unpack_cmor_files(startdate, member): self._cmorize_member(startdate, member) - def is_cmorized(self, startdate, member, chunk, domains): - return True - for domain in domains: - identifier = (startdate, member, chunk, domain.name) - if identifier not in self._dic_cmorized: - self._dic_cmorized[identifier] = self._is_cmorized(startdate, member, chunk, domain) - if self._dic_cmorized[identifier]: - return True + def is_cmorized(self, startdate, member, chunk): + identifier = (startdate, member, chunk) + if identifier not in self._dic_cmorized: + self._dic_cmorized[identifier] = self._is_cmorized(startdate, member, chunk) + if self._dic_cmorized[identifier]: + return True return False - def _is_cmorized(self, startdate, member, chunk, domain): + def _is_cmorized(self, startdate, member, chunk): startdate_path = self._get_startdate_path(startdate) if not os.path.isdir(startdate_path): return False - for freq in os.listdir(startdate_path): - domain_path = os.path.join(startdate_path, freq, - domain.name) - if os.path.isdir(domain_path): - for var in os.listdir(domain_path): + if self.config.data_convention == 'specs': + for freq in os.listdir(startdate_path): + for domain in (ModelingRealms.ocean, ModelingRealms.ocnBgchem, ModelingRealms.ocnBgchem, + ModelingRealms.atmos): + domain_path = os.path.join(startdate_path, freq, + domain.name) + if os.path.isdir(domain_path): + for var in os.listdir(domain_path): + cmor_var = self.variable_list.get_variable(var, True) + var_path = self.get_file_path(startdate, member, domain, var, cmor_var, chunk, Frequency(freq)) + if os.path.isfile(var_path): + return True + else: + member_path = os.path.join(startdate_path, self._get_member_str(member)) + if not os.path.isdir(member_path): + return False + for table, domain, freq in (('Amon', ModelingRealms.atmos, Frequencies.monthly), + ('Omon', ModelingRealms.ocean, Frequencies.monthly), + ('SImon', ModelingRealms.seaIce, Frequencies.monthly)): + for var in os.listdir(os.path.join(member_path, table)): cmor_var = self.variable_list.get_variable(var, True) - var_path = self.get_file_path(startdate, member, domain, var, cmor_var, chunk, Frequency(freq)) + var_path = self.get_file_path(startdate, member, domain, var, cmor_var, chunk, frequency=freq) if os.path.isfile(var_path): return True return False @@ -439,9 +450,7 @@ class CMORManager(DataManager): cmorized = False if not self.config.cmor.force_untar: - while self.is_cmorized(startdate, member, chunk, - (ModelingRealms.ocean, ModelingRealms.seaIce, - ModelingRealms.atmos, ModelingRealms.ocnBgchem)): + while self.is_cmorized(startdate, member, chunk): chunk += 1 while self._unpack_chunk(startdate, member, chunk): diff --git a/earthdiagnostics/datamanager.py b/earthdiagnostics/datamanager.py index f51ddfd8..a3d8f8ab 100644 --- a/earthdiagnostics/datamanager.py +++ b/earthdiagnostics/datamanager.py @@ -367,9 +367,9 @@ class NetCDFFile(object): def _fix_values_metadata(self, var_type): options = ['-a _FillValue,{0},o,{1},"1.e20"'.format(self.var, var_type.char), '-a missingValue,{0},o,{1},"1.e20"'.format(self.var, var_type.char)] - if self.cmor_var.valid_min != '': + if self.cmor_var.valid_min: options.append('-a valid_min,{0},o,{1},"{2}" '.format(self.var, var_type.char, self.cmor_var.valid_min)) - if self.cmor_var.valid_max != '': + if self.cmor_var.valid_max: options.append('-a valid_max,{0},o,{1},"{2}" '.format(self.var, var_type.char, self.cmor_var.valid_max)) Utils.nco.ncatted(input=self.local_file, output=self.local_file, options=options) diff --git a/earthdiagnostics/earthdiags.py b/earthdiagnostics/earthdiags.py index 521c9a4b..8ec65400 100755 --- a/earthdiagnostics/earthdiags.py +++ b/earthdiagnostics/earthdiags.py @@ -344,7 +344,8 @@ class EarthDiags(object): for table in var.tables: if not self.data_manager.file_exists(var.domain, var.short_name, startdate, member, 1, frequency=table.frequency, - possible_versions=('v20170629', 'v20170630')): + possible_versions=('v20170627', 'v20170628', 'v20170629', + 'v20170630', 'v20170701')): results.append((var, table)) Log.debug('Variable {0.short_name} not found in {1.name}', var, table) else: @@ -353,31 +354,25 @@ class EarthDiags(object): return results def create_report(self, report_path, results): - realms = set([result[0].domain for result in results]) - realms = sorted(realms) - for realm in realms: - file_handler = open('{0}.{1}'.format(report_path, realm), 'w') - realm_results = [result for result in results if result[0].domain == realm] - - tables = set([result[1].name for result in realm_results]) - tables = sorted(tables) - for table in tables: - table_results = [result for result in realm_results if result[1].name == table] - - file_handler.write('\nTable {0}\n'.format(table)) - file_handler.write('===================================\n') - - priorities = set([int(result[0].priority) for result in table_results]) - priorities = sorted(priorities) - for priority in priorities: - priority_results = [result for result in table_results if int(result[0].priority) == priority] - priority_results = sorted(priority_results, key=lambda result: result[0].short_name) - file_handler.write('\nMissing variables with priority {0}:\n'.format(priority)) - file_handler.write('--------------------------------------\n') - - for var, table in priority_results: - file_handler.write('{0:12}: {1}\n'.format(var.short_name, var.standard_name)) - + tables = set([result[1].name for result in results]) + for table in tables: + file_handler = open('{0}.{1}'.format(report_path, table), 'w') + table_results = [result for result in results if result[1].name == table] + + file_handler.write('\nTable {0}\n'.format(table)) + file_handler.write('===================================\n') + + priorities = set([int(result[0].priority) for result in table_results]) + priorities = sorted(priorities) + for priority in priorities: + priority_results = [result for result in table_results if int(result[0].priority) == priority] + priority_results = sorted(priority_results, key=lambda result: result[0].short_name) + file_handler.write('\nMissing variables with priority {0}:\n'.format(priority)) + file_handler.write('--------------------------------------\n') + + for var, table in priority_results: + file_handler.write('{0:12}: {1}\n'.format(var.short_name, var.standard_name)) + file_handler.flush() file_handler.close() def _run_jobs(self, queue, numthread): diff --git a/earthdiagnostics/variable_alias/default.csv b/earthdiagnostics/variable_alias/default.csv index f6c32f07..c424a626 100644 --- a/earthdiagnostics/variable_alias/default.csv +++ b/earthdiagnostics/variable_alias/default.csv @@ -297,4 +297,5 @@ vovematr,wmo,, qtr_ice,qtr,, var78,tclw,, var79,tciw,, -rho,rhopoto,, \ No newline at end of file +rho,rhopoto,, +alb_ice,sialb,, \ No newline at end of file -- GitLab From 9b2f12b5d79a34512cc6eda016c2124da6d54668 Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Wed, 5 Jul 2017 12:15:19 +0200 Subject: [PATCH 06/15] Updated siasiesiv and primavera tables --- diags.conf | 3 ++- earthdiagnostics/cmor_tables/primavera | 2 +- earthdiagnostics/cmorizer.py | 3 +++ earthdiagnostics/constants.py | 4 ++-- earthdiagnostics/earthdiags.py | 3 ++- earthdiagnostics/ocean/siasiesiv.py | 2 +- 6 files changed, 11 insertions(+), 6 deletions(-) diff --git a/diags.conf b/diags.conf index c41681da..862ac4d2 100644 --- a/diags.conf +++ b/diags.conf @@ -92,7 +92,8 @@ EXPID = a0fh STARTDATES = 19900101 MEMBERS = fc0 MEMBER_DIGITS = 1 -CHUNK_SIZE = 1 +# CHUNK_SIZE = 1 +CHUNK_SIZE = 12 CHUNKS = 2 # CHUNKS = 1 diff --git a/earthdiagnostics/cmor_tables/primavera b/earthdiagnostics/cmor_tables/primavera index 10e46868..f2507377 160000 --- a/earthdiagnostics/cmor_tables/primavera +++ b/earthdiagnostics/cmor_tables/primavera @@ -1 +1 @@ -Subproject commit 10e46868e356ef3a217c38fe1e0b7d46f8d3158e +Subproject commit f25073770569ea73540d09a058637128db024c55 diff --git a/earthdiagnostics/cmorizer.py b/earthdiagnostics/cmorizer.py index 46e9500d..f00a50f2 100644 --- a/earthdiagnostics/cmorizer.py +++ b/earthdiagnostics/cmorizer.py @@ -495,6 +495,9 @@ class Cmorizer(object): def _ungrib_vars(self, cdo_reftime, gribfile, month, frequency): Log.info('Preparing {0} variables'.format(frequency)) var_codes = self.config.cmor.get_variables(frequency) + if var_codes is None: + for file_path in glob.glob('{0}_*.128.nc'.format(gribfile)): + pass for var_code in var_codes: if not os.path.exists('{0}_{1}.128.nc'.format(gribfile, var_code)): continue diff --git a/earthdiagnostics/constants.py b/earthdiagnostics/constants.py index d0ba76ad..cd328e32 100644 --- a/earthdiagnostics/constants.py +++ b/earthdiagnostics/constants.py @@ -120,6 +120,8 @@ class Basins(object): self.Global = Basin('Global') self._known_aliases = {} + self._add_alias('glob', self.Global) + self._add_alias(self.Global.name, self.Global) def get_available_basins(self, handler): """ @@ -143,8 +145,6 @@ class Basins(object): except KeyError: pass - self._add_alias('glob', self.Global) - def _add_alias(self, basin, basin_object): self._known_aliases[basin.lower()] = basin_object diff --git a/earthdiagnostics/earthdiags.py b/earthdiagnostics/earthdiags.py index 521c9a4b..b1763cec 100755 --- a/earthdiagnostics/earthdiags.py +++ b/earthdiagnostics/earthdiags.py @@ -344,7 +344,8 @@ class EarthDiags(object): for table in var.tables: if not self.data_manager.file_exists(var.domain, var.short_name, startdate, member, 1, frequency=table.frequency, - possible_versions=('v20170629', 'v20170630')): + possible_versions=('v20170627', 'v20170628', 'v20170629', + 'v20170630', 'v20170701')): results.append((var, table)) Log.debug('Variable {0.short_name} not found in {1.name}', var, table) else: diff --git a/earthdiagnostics/ocean/siasiesiv.py b/earthdiagnostics/ocean/siasiesiv.py index 35ac972c..e3299d0c 100644 --- a/earthdiagnostics/ocean/siasiesiv.py +++ b/earthdiagnostics/ocean/siasiesiv.py @@ -80,7 +80,7 @@ class Siasiesiv(Diagnostic): Log.error('Basin not recognized') return () - mask = Utils.get_mask(options['basin']) + mask = np.asfortranarray(Utils.get_mask(options['basin'])) job_list = list() for startdate, member, chunk in diags.config.experiment.get_chunk_list(): -- GitLab From 9931b12de006bca1622ab385e7a3785fc3f8a198 Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Wed, 5 Jul 2017 16:42:14 +0200 Subject: [PATCH 07/15] Small fixes for primavera --- diags.conf | 14 +++++++------- earthdiagnostics/cmor_tables/primavera | 2 +- earthdiagnostics/cmormanager.py | 2 +- earthdiagnostics/earthdiags.py | 4 +--- earthdiagnostics/modelingrealm.py | 4 ++-- earthdiagnostics/variable_alias/default.csv | 10 +++++++++- 6 files changed, 21 insertions(+), 15 deletions(-) diff --git a/diags.conf b/diags.conf index bc7cbbbf..cdf5eeb9 100644 --- a/diags.conf +++ b/diags.conf @@ -30,9 +30,9 @@ MAX_CORES = 1 [CMOR] # If true, recreates CMOR files regardless of presence. Default = False -FORCE = False +FORCE = True # If true, CMORizes ocean files. Default = True -OCEAN_FILES = True +OCEAN_FILES = False FILTER_FILES = # If true, CMORizes atmosphere files. Default = True ATMOSPHERE_FILES = True @@ -64,8 +64,8 @@ ATMOS_MONTHLY_VARS = 167, 201, 202, 165, 166, 151, 144, 228, 205, 182, 164, 146, # PHYSICS_DESCRIPTION = # ASSOCIATED_MODEL = # SOURCE = EC-Earthv2.3.0, ocean: Nemo3.1, ifs31r1, lim2 -VERSION = v20170629 -ACTIVITY = CMIP_ec2cmor +VERSION = v20170705 +ACTIVITY = CMIP [THREDDS] SERVER_URL = https://earth.bsc.es/thredds @@ -78,9 +78,9 @@ NAME = historical # Model version: Available versions MODEL_VERSION =Ec3.2_O25L75 # Atmospheric output timestep in hours -ATMOS_TIMESTEP = 6 +ATMOS_TIMESTEP = 3 # Ocean output timestep in hours -OCEAN_TIMESTEP = 6 +OCEAN_TIMESTEP = 3 # For those who use Autosubmit, this will be easy # EXPID is the unique identifier of the experiment. @@ -90,7 +90,7 @@ OCEAN_TIMESTEP = 6 # if 2, fc00 # CHUNK_SIZE is the size of each data file, given in months # CHUNKS is the number of chunks. You can specify less chunks than present on the experiment -EXPID = a0fh +EXPID = a0n8 STARTDATES = 19900101 MEMBERS = fc0 MEMBER_DIGITS = 1 diff --git a/earthdiagnostics/cmor_tables/primavera b/earthdiagnostics/cmor_tables/primavera index 10e46868..f2507377 160000 --- a/earthdiagnostics/cmor_tables/primavera +++ b/earthdiagnostics/cmor_tables/primavera @@ -1 +1 @@ -Subproject commit 10e46868e356ef3a217c38fe1e0b7d46f8d3158e +Subproject commit f25073770569ea73540d09a058637128db024c55 diff --git a/earthdiagnostics/cmormanager.py b/earthdiagnostics/cmormanager.py index 34fbb372..7e816380 100644 --- a/earthdiagnostics/cmormanager.py +++ b/earthdiagnostics/cmormanager.py @@ -443,9 +443,9 @@ class CMORManager(DataManager): datetime.now() - start_time) def _unpack_cmor_files(self, startdate, member): - return True if self.config.cmor.force: return False + return True chunk = 1 cmorized = False diff --git a/earthdiagnostics/earthdiags.py b/earthdiagnostics/earthdiags.py index 8ec65400..0077a4b3 100755 --- a/earthdiagnostics/earthdiags.py +++ b/earthdiagnostics/earthdiags.py @@ -343,9 +343,7 @@ class EarthDiags(object): continue for table in var.tables: if not self.data_manager.file_exists(var.domain, var.short_name, startdate, member, 1, - frequency=table.frequency, - possible_versions=('v20170627', 'v20170628', 'v20170629', - 'v20170630', 'v20170701')): + frequency=table.frequency): results.append((var, table)) Log.debug('Variable {0.short_name} not found in {1.name}', var, table) else: diff --git a/earthdiagnostics/modelingrealm.py b/earthdiagnostics/modelingrealm.py index caecd42d..b95a47f3 100644 --- a/earthdiagnostics/modelingrealm.py +++ b/earthdiagnostics/modelingrealm.py @@ -38,7 +38,7 @@ class ModelingRealm(object): :return: variable's table name :rtype: str """ - if frequency in (Frequencies.monthly, Frequencies.climatology): + if frequency in (Frequencies.monthly, Frequencies.climatology, Frequencies.daily): if self.name == 'seaIce': if data_convention == 'specs': prefix = 'OI' @@ -52,7 +52,7 @@ class ModelingRealm(object): elif frequency == Frequencies.six_hourly: table_name = '6hrPlev' else: - table_name = 'day' + table_name = frequency.frequency return table_name def get_table(self, frequency, data_convention): diff --git a/earthdiagnostics/variable_alias/default.csv b/earthdiagnostics/variable_alias/default.csv index c424a626..274b0b75 100644 --- a/earthdiagnostics/variable_alias/default.csv +++ b/earthdiagnostics/variable_alias/default.csv @@ -298,4 +298,12 @@ qtr_ice,qtr,, var78,tclw,, var79,tciw,, rho,rhopoto,, -alb_ice,sialb,, \ No newline at end of file +alb_ice,sialb,, +qsr,rsntds,, +qsr3d,rsdo,, +hflx_rnf_cea,hfrunoffds2d,, +hflx_rain_cea,hfrainds,, +hflx_cal_cea,hfibthermds2d,, +rain,prra,, +runoffs,friver,, +calving,ficeberg2d,, \ No newline at end of file -- GitLab From 155f7e556dcf0b9369ea6d45782a01aaac8bb626 Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Thu, 6 Jul 2017 11:58:46 +0200 Subject: [PATCH 08/15] Updated priority calculations --- diags.conf | 7 ++++--- earthdiagnostics/earthdiags.py | 2 ++ earthdiagnostics/variable.py | 13 +++++++++++-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/diags.conf b/diags.conf index cdf5eeb9..e2d67099 100644 --- a/diags.conf +++ b/diags.conf @@ -30,7 +30,7 @@ MAX_CORES = 1 [CMOR] # If true, recreates CMOR files regardless of presence. Default = False -FORCE = True +FORCE = False # If true, CMORizes ocean files. Default = True OCEAN_FILES = False FILTER_FILES = @@ -64,8 +64,9 @@ ATMOS_MONTHLY_VARS = 167, 201, 202, 165, 166, 151, 144, 228, 205, 182, 164, 146, # PHYSICS_DESCRIPTION = # ASSOCIATED_MODEL = # SOURCE = EC-Earthv2.3.0, ocean: Nemo3.1, ifs31r1, lim2 -VERSION = v20170705 -ACTIVITY = CMIP +VERSION = v20170706 +# ACTIVITY = CMIP +ACTIVITY = CMIP_ece2cmor [THREDDS] SERVER_URL = https://earth.bsc.es/thredds diff --git a/earthdiagnostics/earthdiags.py b/earthdiagnostics/earthdiags.py index 0077a4b3..4a55a919 100755 --- a/earthdiagnostics/earthdiags.py +++ b/earthdiagnostics/earthdiags.py @@ -341,6 +341,8 @@ class EarthDiags(object): for var in var_manager.get_all_variables(): if var.priority is None or var.domain is None: continue + if var.priority > 3: + continue for table in var.tables: if not self.data_manager.file_exists(var.domain, var.short_name, startdate, member, 1, frequency=table.frequency): diff --git a/earthdiagnostics/variable.py b/earthdiagnostics/variable.py index 120abf38..a27f9fbe 100644 --- a/earthdiagnostics/variable.py +++ b/earthdiagnostics/variable.py @@ -257,12 +257,21 @@ class VariableManager(object): if not cmor_name: cmor_name = row[5].value + priority = int(row[0].value) + bsc_commitment = row[30].value + if bsc_commitment is not None and bsc_commitment.strip().lower() == 'false': + priority = priority + 3 + if cmor_name.lower() in self._dict_variables: - self._dict_variables[cmor_name.lower()].tables.append(table) + var = self._dict_variables[cmor_name.lower()] + if var.priority > priority: + var.priority = priority + var.tables.append(table) continue var = Variable() - var.priority = row[0].value + + var.priority = priority var.short_name = cmor_name var.standard_name = row[6].value -- GitLab From 7d89e6d8562d31679721b7e26a92f3662d3174d6 Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Thu, 6 Jul 2017 16:11:37 +0200 Subject: [PATCH 09/15] Improved report --- diags.conf | 4 ++++ earthdiagnostics/config.py | 6 ++++++ earthdiagnostics/earthdiags.py | 25 +++++++++++++++---------- earthdiagnostics/variable.py | 34 +++++++++++++++------------------- 4 files changed, 40 insertions(+), 29 deletions(-) diff --git a/diags.conf b/diags.conf index e2d67099..bef4c325 100644 --- a/diags.conf +++ b/diags.conf @@ -99,6 +99,10 @@ CHUNK_SIZE = 1 CHUNKS = 1 # CHUNKS = 1 +[REPORT] +MAXIMUM_PRIORITY = 7 +PATH = $HOME/reports/a0n8 + # This ALIAS section is a bit different # Inside this, you can provide alias for frequent diagnostics calls. diff --git a/earthdiagnostics/config.py b/earthdiagnostics/config.py index 87644461..16fa6468 100644 --- a/earthdiagnostics/config.py +++ b/earthdiagnostics/config.py @@ -97,6 +97,7 @@ class Config(object): self.cmor = CMORConfig(parser) self.thredds = THREDDSConfig(parser) + self.report = ReportConfig(parser) def get_commands(self): """ @@ -368,3 +369,8 @@ class ExperimentConfig(object): """ return '{0}{1}'.format(self.member_prefix, str(member).zfill(self.member_digits)) + +class ReportConfig(object): + def __init__(self, parser): + self.maximum_priority = parser.get_int_option('REPORT', 'MAXIMUM_PRIORITY', 10) + self.path = parser.get_path_option('REPORT', 'PATH', '') diff --git a/earthdiagnostics/earthdiags.py b/earthdiagnostics/earthdiags.py index 4a55a919..cf5f5f64 100755 --- a/earthdiagnostics/earthdiags.py +++ b/earthdiagnostics/earthdiags.py @@ -323,13 +323,18 @@ class EarthDiags(object): def report(self): Log.info('Looking for existing vars...') self._prepare_data_manager() + base_folder = self.config.report.path + if not base_folder: + base_folder = self.config.scratch_dir + Utils.create_folder_tree(base_folder) for startdate in self.config.experiment.startdates: for member in self.config.experiment.members: results = self._get_variable_report(startdate, member) - report_path = os.path.join(self.config.scratch_dir, + + report_path = os.path.join(base_folder, '{0}_{1}.report'.format(startdate, self.config.experiment.get_member_str(member))) - Utils.create_folder_tree(self.config.scratch_dir) + self.create_report(report_path, results) Log.result('Report finished') @@ -339,14 +344,14 @@ class EarthDiags(object): var_manager = VariableManager() results = list() for var in var_manager.get_all_variables(): - if var.priority is None or var.domain is None: + if var.domain is None: continue - if var.priority > 3: - continue - for table in var.tables: + for table, priority in var.tables: + if priority is None or priority > self.config.report.maximum_priority: + continue if not self.data_manager.file_exists(var.domain, var.short_name, startdate, member, 1, frequency=table.frequency): - results.append((var, table)) + results.append((var, table, priority)) Log.debug('Variable {0.short_name} not found in {1.name}', var, table) else: Log.result('Variable {0.short_name} found in {1.name}', var, table) @@ -362,15 +367,15 @@ class EarthDiags(object): file_handler.write('\nTable {0}\n'.format(table)) file_handler.write('===================================\n') - priorities = set([int(result[0].priority) for result in table_results]) + priorities = set([result[2] for result in table_results]) priorities = sorted(priorities) for priority in priorities: - priority_results = [result for result in table_results if int(result[0].priority) == priority] + priority_results = [result for result in table_results if result[2] == priority] priority_results = sorted(priority_results, key=lambda result: result[0].short_name) file_handler.write('\nMissing variables with priority {0}:\n'.format(priority)) file_handler.write('--------------------------------------\n') - for var, table in priority_results: + for var, table, priority in priority_results: file_handler.write('{0:12}: {1}\n'.format(var.short_name, var.standard_name)) file_handler.flush() file_handler.close() diff --git a/earthdiagnostics/variable.py b/earthdiagnostics/variable.py index a27f9fbe..c443eeaa 100644 --- a/earthdiagnostics/variable.py +++ b/earthdiagnostics/variable.py @@ -150,7 +150,7 @@ class VariableManager(object): variable = Variable() try: variable.parse_json(json_data[short_name], short_name) - variable.tables.append(table) + variable.add_table(table) self._dict_variables[variable.short_name.lower()] = variable except VariableJsonException: Log.error('Could not read variable {0}'.format(short_name)) @@ -264,24 +264,18 @@ class VariableManager(object): if cmor_name.lower() in self._dict_variables: var = self._dict_variables[cmor_name.lower()] - if var.priority > priority: - var.priority = priority - var.tables.append(table) - continue - - var = Variable() - - var.priority = priority + else: + var = Variable() + var.short_name = cmor_name + var.standard_name = row[6].value + var.long_name = row[1].value - var.short_name = cmor_name - var.standard_name = row[6].value - var.long_name = row[1].value + var.domain = self._process_modelling_realm(var, row[12].value) - var.domain = self._process_modelling_realm(var, row[12].value) + var.units = row[2].value + self._dict_variables[var.short_name.lower()] = var + var.add_table(table, priority) - var.units = row[2].value - var.tables.append(table) - self._dict_variables[var.short_name.lower()] = var except Exception as ex: Log.error('Table {0} can not be loaded: {1}', sheet_name, ex) import traceback @@ -317,12 +311,14 @@ class Variable(object): self.valid_min = None self.valid_max = None self.grid = None - self.priority = None self.default = False self.domain = None self.known_aliases = [] self.tables = [] + def add_table(self, table, priority=None): + self.tables.append((table, priority)) + def parse_json(self, json_var, key): if 'out_name' in json_var: @@ -379,10 +375,10 @@ class Variable(object): self.grid = var_line[9].strip() for table in var_line[10].strip().split(':'): if table: - self.tables.append(table) + self.add_table(table) def get_table(self, frequency, data_convention): - for table in self.tables: + for table, priority in self.tables: if table.frequency == frequency: return table if self.domain: -- GitLab From cb6008386490bd02a1b79cb1270cdbe923598d7a Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Thu, 6 Jul 2017 17:21:43 +0200 Subject: [PATCH 10/15] Added support for preface --- diags.conf | 26 ++++++++++----------- earthdiagnostics/cmor_tables/preface.csv | 1 + earthdiagnostics/cmormanager.py | 21 ++++++++++++----- earthdiagnostics/config.py | 3 ++- earthdiagnostics/modelingrealm.py | 2 +- earthdiagnostics/ocean/interpolatecdo.py | 16 ++++++++++--- earthdiagnostics/variable_alias/preface.csv | 4 ++++ 7 files changed, 49 insertions(+), 24 deletions(-) create mode 100644 earthdiagnostics/cmor_tables/preface.csv create mode 100644 earthdiagnostics/variable_alias/preface.csv diff --git a/diags.conf b/diags.conf index 862ac4d2..ceb534c2 100644 --- a/diags.conf +++ b/diags.conf @@ -4,19 +4,19 @@ DATA_ADAPTOR = CMOR # Path to the folder where you want to create the temporary files SCRATCH_DIR = /scratch/Earth/$USER # Root path for the cmorized data to use -DATA_DIR = /esnas:/esarchive +DATA_DIR = /esnas:/esarchive:/esarchive/exp/PREFACE # Specify if your data is from an experiment (exp), observation (obs) or reconstructions (recon) DATA_TYPE = exp # CMORization type to use. Important also for THREDDS as it affects variable name conventions. # Options: SPECS (default), PRIMAVERA, CMIP6 -DATA_CONVENTION = PRIMAVERA +DATA_CONVENTION = PREFACE # Path to NEMO's mask and grid files needed for CDFTools CON_FILES = /esnas/autosubmit/con_files/ # Diagnostics to run, space separated. You must provide for each one the name and the parameters (comma separated) or # an alias defined in the ALIAS section (see more below). If you are using the diagnostics just to CMORize, leave it # empty -DIAGS = ohclayer,0,300 +DIAGS = interpcdo,tos,global_1 # DIAGS = OHC # Frequency of the data you want to use by default. Some diagnostics do not use this value: i.e. monmean always stores # its results at monthly frequency (obvious) and has a parameter to specify input's frequency. @@ -63,18 +63,18 @@ ATMOS_MONTHLY_VARS = 167, 201, 202, 165, 166, 151, 144, 228, 205, 182, 164, 146, # PHYSICS_DESCRIPTION = # ASSOCIATED_MODEL = # SOURCE = EC-Earthv2.3.0, ocean: Nemo3.1, ifs31r1, lim2 -VERSION = v20170629 +VERSION = v20170309 [THREDDS] SERVER_URL = https://earth.bsc.es/thredds [EXPERIMENT] # Experiments parameters as defined in CMOR standard -INSTITUTE = EC-Earth-Consortium -MODEL = EC-Earth3-HR -NAME = historical +INSTITUTE = CNRM +MODEL = CNRM-CM5-LR +NAME = CTRL # Model version: Available versions -MODEL_VERSION =Ec3.2_O25L75 +MODEL_VERSION = N3.2_O1L42 # Atmospheric output timestep in hours ATMOS_TIMESTEP = 6 # Ocean output timestep in hours @@ -88,13 +88,13 @@ OCEAN_TIMESTEP = 6 # if 2, fc00 # CHUNK_SIZE is the size of each data file, given in months # CHUNKS is the number of chunks. You can specify less chunks than present on the experiment -EXPID = a0fh -STARTDATES = 19900101 -MEMBERS = fc0 +EXPID = ctrl +STARTDATES = 20000501 20020201 20030501 20050201 20060501 20080201 20090501 20010201 20020501 20040201 20050501 20070201 20080501 20000201 20010501 20030201 20040501 20060201 20070501 20090201 +MEMBERS = 0 1 2 MEMBER_DIGITS = 1 # CHUNK_SIZE = 1 -CHUNK_SIZE = 12 -CHUNKS = 2 +CHUNK_SIZE = 7 +CHUNKS = 1 # CHUNKS = 1 diff --git a/earthdiagnostics/cmor_tables/preface.csv b/earthdiagnostics/cmor_tables/preface.csv new file mode 100644 index 00000000..90f01d91 --- /dev/null +++ b/earthdiagnostics/cmor_tables/preface.csv @@ -0,0 +1 @@ +Variable,Shortname,Name,Long name,Domain,Basin,Units,Valid min,Valid max,Grid,Tables diff --git a/earthdiagnostics/cmormanager.py b/earthdiagnostics/cmormanager.py index 37200cab..f021bb74 100644 --- a/earthdiagnostics/cmormanager.py +++ b/earthdiagnostics/cmormanager.py @@ -158,7 +158,7 @@ class CMORManager(DataManager): else: time_bound = '.nc' - if self.config.data_convention == 'specs': + if self.config.data_convention in ('specs', 'preface'): file_name = '{0}_{1}_{2}_{3}_S{4}_{5}{6}'.format(var, cmor_table.name, self.experiment.model, self.experiment.experiment_name, startdate, @@ -177,11 +177,13 @@ class CMORManager(DataManager): return file_name def _get_full_cmor_folder_path(self, startdate, member, domain, var, frequency, grid, cmor_var): - if self.config.data_convention == 'specs': + if self.config.data_convention in ('specs', 'preface'): folder_path = os.path.join(self._get_startdate_path(startdate), str(frequency), domain.name, var) if grid: folder_path = os.path.join(folder_path, grid) folder_path = os.path.join(folder_path, self._get_member_str(member)) + if self.config.cmor.version: + folder_path = os.path.join(folder_path, self.config.cmor.version) else: if not grid: if domain in [ModelingRealms.ocnBgchem, ModelingRealms.seaIce, ModelingRealms.ocean]: @@ -190,7 +192,7 @@ class CMORManager(DataManager): grid = self.config.cmor.default_atmos_grid folder_path = os.path.join(self._get_startdate_path(startdate), self._get_member_str(member), cmor_var.get_table(frequency, self.config.data_convention).name, var, - grid,self.config.cmor.version) + grid, self.config.cmor.version) return folder_path def _get_chunk_time_bounds(self, startdate, chunk): @@ -198,8 +200,12 @@ class CMORManager(DataManager): chunk_start = chunk_start_date(start, chunk, self.experiment.chunk_size, 'month', self.experiment.calendar) chunk_end = chunk_end_date(chunk_start, self.experiment.chunk_size, 'month', self.experiment.calendar) chunk_end = previous_day(chunk_end, self.experiment.calendar) - time_bound = "{0:04}{1:02}-{2:04}{3:02}".format(chunk_start.year, chunk_start.month, chunk_end.year, - chunk_end.month) + if self.config.data_convention == 'preface': + separator = '_' + else: + separator = '-' + time_bound = "{0:04}{1:02}{4}{2:04}{3:02}".format(chunk_start.year, chunk_start.month, chunk_end.year, + chunk_end.month, separator) return time_bound def link_file(self, domain, var, cmor_var, startdate, member, chunk=None, grid=None, @@ -563,12 +569,15 @@ class CMORManager(DataManager): if self.config.data_convention == 'specs': return os.path.join(self.config.data_dir, self.experiment.expid, 'cmorfiles', self.experiment.institute, self.experiment.model, self.experiment.experiment_name, 'S' + startdate) + elif self.config.data_convention == 'preface': + return os.path.join(self.config.data_dir, self.experiment.expid, 'cmorfiles', self.experiment.institute, + self.experiment.experiment_name, 'S' + startdate) else: return os.path.join(self.config.data_dir, self.experiment.expid, 'cmorfiles', self.config.cmor.activity, self.experiment.institute, self.experiment.model, self.experiment.experiment_name) def _get_member_str(self, member): - if self.config.data_convention == 'specs': + if self.config.data_convention in ('specs', 'preface'): template = 'r{0}i1p1' elif self.config.data_convention in ('primavera', 'cmip6'): template = 'r{0}i1p1f1' diff --git a/earthdiagnostics/config.py b/earthdiagnostics/config.py index 87644461..51c4b632 100644 --- a/earthdiagnostics/config.py +++ b/earthdiagnostics/config.py @@ -55,7 +55,8 @@ class Config(object): self.data_convention = parser.get_choice_option('DIAGNOSTICS', 'DATA_CONVENTION', - ('specs', 'primavera', 'cmip6'), 'specs', ignore_case=True) + ('specs', 'primavera', 'cmip6', 'preface'), 'specs', + ignore_case=True) VariableManager().load_variables(self.data_convention) self._diags = parser.get_option('DIAGNOSTICS', 'DIAGS') self.frequency = Frequency(parser.get_option('DIAGNOSTICS', 'FREQUENCY')) diff --git a/earthdiagnostics/modelingrealm.py b/earthdiagnostics/modelingrealm.py index caecd42d..a0fc28b2 100644 --- a/earthdiagnostics/modelingrealm.py +++ b/earthdiagnostics/modelingrealm.py @@ -40,7 +40,7 @@ class ModelingRealm(object): """ if frequency in (Frequencies.monthly, Frequencies.climatology): if self.name == 'seaIce': - if data_convention == 'specs': + if data_convention in ('specs', 'preface'): prefix = 'OI' else: prefix = 'SI' diff --git a/earthdiagnostics/ocean/interpolatecdo.py b/earthdiagnostics/ocean/interpolatecdo.py index aecfd2ca..a3eef57e 100644 --- a/earthdiagnostics/ocean/interpolatecdo.py +++ b/earthdiagnostics/ocean/interpolatecdo.py @@ -88,6 +88,8 @@ class InterpolateCDO(Diagnostic): DiagnosticOption('original_grid', '')) options = cls.process_options(options, options_available) target_grid = cls._translate_ifs_grids_to_cdo_names(options['target_grid']) + if not target_grid: + raise Exception('Target grid not provided') job_list = list() weights = TempFile.get() method = options['method'].lower() @@ -172,15 +174,23 @@ class InterpolateCDO(Diagnostic): """ variable_file = self.data_manager.get_file(self.domain, self.variable, self.startdate, self.member, self.chunk, grid=self.original_grid) + Utils.rename_variables(variable_file, {'jpib': 'i', 'jpjb': 'j'}, must_exist=False, rename_dimension=True) + handler = Utils.openCdf(variable_file) - var = handler.variables[self.variable] + var = handler.variables[self.variable] coordinates = list() for dim in var.dimensions: if dim == 'i': - coordinates.append('lat') + if 'lat' in handler.variables: + coordinates.append('lat') + else: + coordinates.append('latitude') elif dim == 'j': - coordinates.append('lon') + if 'lon' in handler.variables: + coordinates.append('lon') + else: + coordinates.append('longitude') else: coordinates.append(dim) var.coordinates = ' '.join(coordinates) diff --git a/earthdiagnostics/variable_alias/preface.csv b/earthdiagnostics/variable_alias/preface.csv new file mode 100644 index 00000000..07aef840 --- /dev/null +++ b/earthdiagnostics/variable_alias/preface.csv @@ -0,0 +1,4 @@ +Aliases,Shortname,Basin,Grid +iiceconc:siconc:soicecov:ileadfra,sic,, +ci,sic,,ifs +es,sbl,, \ No newline at end of file -- GitLab From d12eb89febf53acbd905f992e095ac7003e9d4eb Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Fri, 7 Jul 2017 10:56:32 +0200 Subject: [PATCH 11/15] Cleaned up code --- earthdiagnostics/cdftools.py | 7 +- earthdiagnostics/cmorizer.py | 6 +- earthdiagnostics/cmormanager.py | 17 ++- earthdiagnostics/config.py | 6 +- earthdiagnostics/datamanager.py | 1 - earthdiagnostics/earthdiags.py | 20 ++-- earthdiagnostics/general/module.py | 6 +- earthdiagnostics/general/select_levels.py | 13 ++- .../general/simplify_dimensions.py | 14 ++- earthdiagnostics/ocean/areamoc.py | 2 +- earthdiagnostics/ocean/heatcontentlayer.py | 8 +- earthdiagnostics/ocean/mask_land.py | 6 +- earthdiagnostics/ocean/siasiesiv.py | 8 +- earthdiagnostics/singleton.py | 3 +- .../statistics/climatologicalpercentile.py | 1 + earthdiagnostics/threddsmanager.py | 2 + earthdiagnostics/utils.py | 14 ++- earthdiagnostics/variable.py | 6 +- test/unit/__init__.py | 4 +- test/unit/test_heatcontent.py | 78 ++++++------- test/unit/test_interpolate.py | 108 +++++++++--------- 21 files changed, 174 insertions(+), 156 deletions(-) diff --git a/earthdiagnostics/cdftools.py b/earthdiagnostics/cdftools.py index 792853ba..df2b4bf5 100644 --- a/earthdiagnostics/cdftools.py +++ b/earthdiagnostics/cdftools.py @@ -2,6 +2,7 @@ from earthdiagnostics.utils import Utils import os from bscearth.utils.log import Log +import six class CDFTools(object): @@ -30,6 +31,8 @@ class CDFTools(object): :type options: str | list[str] | Tuple[str] :param log_level: log level at which the output of the cdftool command will be added :type log_level: int + :param input_option: option to add before input file + :type input_option: str """ line = [os.path.join(self.path, command)] @@ -39,7 +42,7 @@ class CDFTools(object): line.append(input_option) self._check_input(command, input, line) if options: - if isinstance(options, basestring): + if isinstance(options, six.string_types): options = options.split() for option in options: line.append(str(option)) @@ -64,7 +67,7 @@ class CDFTools(object): @staticmethod def _check_input(command, input, line): if input: - if isinstance(input, basestring): + if isinstance(input, six.string_types): line.append(input) if not os.path.exists(input): raise ValueError('Error executing {0}\n Input file {1} file does not exist', command, input) diff --git a/earthdiagnostics/cmorizer.py b/earthdiagnostics/cmorizer.py index f00a50f2..593180f7 100644 --- a/earthdiagnostics/cmorizer.py +++ b/earthdiagnostics/cmorizer.py @@ -272,7 +272,8 @@ class Cmorizer(object): self._merge_and_cmorize_atmos(chunk_start, chunk_end, grid, '{0}hr'.format(self.atmos_timestep)) - def _unpack_grib(self, full_file, gribfile, grid): + @staticmethod + def _unpack_grib(full_file, gribfile, grid): Log.info('Unpacking... ') # remap on regular Gauss grid if grid == 'SH': @@ -495,9 +496,6 @@ class Cmorizer(object): def _ungrib_vars(self, cdo_reftime, gribfile, month, frequency): Log.info('Preparing {0} variables'.format(frequency)) var_codes = self.config.cmor.get_variables(frequency) - if var_codes is None: - for file_path in glob.glob('{0}_*.128.nc'.format(gribfile)): - pass for var_code in var_codes: if not os.path.exists('{0}_{1}.128.nc'.format(gribfile, var_code)): continue diff --git a/earthdiagnostics/cmormanager.py b/earthdiagnostics/cmormanager.py index d263324b..5707bb99 100644 --- a/earthdiagnostics/cmormanager.py +++ b/earthdiagnostics/cmormanager.py @@ -52,12 +52,14 @@ class CMORManager(DataManager): # noinspection PyBroadException if possible_versions is None: + # noinspection PyBroadException try: return os.path.isfile(filepath) except Exception: return False else: for version in possible_versions: + # noinspection PyBroadException try: if os.path.isfile(filepath.replace(self.config.cmor.version, version)): return True @@ -123,6 +125,8 @@ class CMORManager(DataManager): :type date_str: str|NoneType :return: path to the file :rtype: str|NoneType + :param cmor_var: variable instance describing the selected variable + :type cmor_var: Variable """ if not frequency: frequency = self.config.frequency @@ -203,7 +207,7 @@ class CMORManager(DataManager): else: separator = '-' time_bound = "{0:04}{1:02}{4}{2:04}{3:02}".format(chunk_start.year, chunk_start.month, chunk_end.year, - chunk_end.month, separator) + chunk_end.month, separator) return time_bound def link_file(self, domain, var, cmor_var, startdate, member, chunk=None, grid=None, @@ -234,6 +238,8 @@ class CMORManager(DataManager): :type vartype: VariableType :return: path to the copy created on the scratch folder :rtype: str + :param cmor_var: variable instance describing the selected variable + :type cmor_var: Variable """ if not frequency: @@ -421,7 +427,8 @@ class CMORManager(DataManager): if os.path.isdir(domain_path): for var in os.listdir(domain_path): cmor_var = self.variable_list.get_variable(var, True) - var_path = self.get_file_path(startdate, member, domain, var, cmor_var, chunk, Frequency(freq)) + var_path = self.get_file_path(startdate, member, domain, var, cmor_var, chunk, + Frequency(freq)) if os.path.isfile(var_path): return True else: @@ -431,7 +438,10 @@ class CMORManager(DataManager): for table, domain, freq in (('Amon', ModelingRealms.atmos, Frequencies.monthly), ('Omon', ModelingRealms.ocean, Frequencies.monthly), ('SImon', ModelingRealms.seaIce, Frequencies.monthly)): - for var in os.listdir(os.path.join(member_path, table)): + table_dir = os.path.join(member_path, table) + if not os.path.isdir(table_dir): + continue + for var in os.listdir(table_dir): cmor_var = self.variable_list.get_variable(var, True) var_path = self.get_file_path(startdate, member, domain, var, cmor_var, chunk, frequency=freq) if os.path.isfile(var_path): @@ -451,7 +461,6 @@ class CMORManager(DataManager): def _unpack_cmor_files(self, startdate, member): if self.config.cmor.force: return False - return True chunk = 1 cmorized = False diff --git a/earthdiagnostics/config.py b/earthdiagnostics/config.py index 330200f7..3045b2ef 100644 --- a/earthdiagnostics/config.py +++ b/earthdiagnostics/config.py @@ -1,6 +1,7 @@ # coding=utf-8 import os +import six from bscearth.utils.log import Log from bscearth.utils.date import parse_date, chunk_start_date, chunk_end_date, date2str from bscearth.utils.config_parser import ConfigParser @@ -53,7 +54,6 @@ class Config(object): self.mask_regions_3d = parser.get_path_option('DIAGNOSTICS', 'MASK_REGIONS_3D', '') "Custom mask regions 3D file to use" - self.data_convention = parser.get_choice_option('DIAGNOSTICS', 'DATA_CONVENTION', ('specs', 'primavera', 'cmip6', 'preface'), 'specs', ignore_case=True) @@ -251,7 +251,7 @@ class ExperimentConfig(object): start = start[len(self.member_prefix):] if end.startswith(self.member_prefix): end = end[len(self.member_prefix):] - for member in range(int(start), int(end) +1): + for member in range(int(start), int(end) + 1): members.append(member) else: if mem.startswith(self.member_prefix): @@ -322,7 +322,7 @@ class ExperimentConfig(object): return chunks def get_chunk_start(self, startdate, chunk): - if isinstance(startdate, basestring): + if isinstance(startdate, six.string_types): startdate = parse_date(startdate) return chunk_start_date(startdate, chunk, self.chunk_size, 'month', self.calendar) diff --git a/earthdiagnostics/datamanager.py b/earthdiagnostics/datamanager.py index a3d8f8ab..6eb17277 100644 --- a/earthdiagnostics/datamanager.py +++ b/earthdiagnostics/datamanager.py @@ -8,7 +8,6 @@ import numpy as np import os import re from bscearth.utils.log import Log -from cfunits import Units from earthdiagnostics.utils import Utils, TempFile from earthdiagnostics.variable import Variable, VariableManager diff --git a/earthdiagnostics/earthdiags.py b/earthdiagnostics/earthdiags.py index cf5f5f64..5859feaa 100755 --- a/earthdiagnostics/earthdiags.py +++ b/earthdiagnostics/earthdiags.py @@ -1,11 +1,12 @@ #!/usr/bin/env python # coding=utf-8 -import Queue import argparse import shutil import threading import pkg_resources +from six.moves.queue import Queue + import netCDF4 import operator import os @@ -190,14 +191,14 @@ class EarthDiags(object): self._read_basins_from_file('mask_regions.nc') self._read_basins_from_file('mask_regions.3d.nc') - def _read_basins_from_file(self, filename): + @staticmethod + def _read_basins_from_file(filename): if not os.path.isfile(filename): return handler = Utils.openCdf(filename) Basins().get_available_basins(handler) handler.close() - def _prepare_scratch_dir(self): if self.config.use_ramdisk: self._remove_scratch_dir() @@ -239,7 +240,7 @@ class EarthDiags(object): Log.info('') def prepare_job_list(self): - list_jobs = Queue.Queue() + list_jobs = queue.Queue() for fulldiag in self.config.get_commands(): Log.info("Adding {0} to diagnostic list", fulldiag) diag_options = fulldiag.split(',') @@ -358,7 +359,8 @@ class EarthDiags(object): return results - def create_report(self, report_path, results): + @staticmethod + def create_report(report_path, results): tables = set([result[1].name for result in results]) for table in tables: file_handler = open('{0}.{1}'.format(report_path, table), 'w') @@ -370,12 +372,12 @@ class EarthDiags(object): priorities = set([result[2] for result in table_results]) priorities = sorted(priorities) for priority in priorities: - priority_results = [result for result in table_results if result[2] == priority] - priority_results = sorted(priority_results, key=lambda result: result[0].short_name) + priority_results = [result[0] for result in table_results if result[2] == priority] + priority_results = sorted(priority_results, key=lambda var: var.short_name) file_handler.write('\nMissing variables with priority {0}:\n'.format(priority)) file_handler.write('--------------------------------------\n') - for var, table, priority in priority_results: + for var in priority_results: file_handler.write('{0:12}: {1}\n'.format(var.short_name, var.standard_name)) file_handler.flush() file_handler.close() @@ -524,8 +526,6 @@ class EarthDiags(object): Log.info('File {0} ready', destiny) - - def main(): if not EarthDiags.parse_args(): exit(1) diff --git a/earthdiagnostics/general/module.py b/earthdiagnostics/general/module.py index 8d08020c..cde77162 100644 --- a/earthdiagnostics/general/module.py +++ b/earthdiagnostics/general/module.py @@ -33,7 +33,7 @@ class Module(Diagnostic): alias = 'module' "Diagnostic alias for the configuration file" - def __init__(self, data_manager, startdate, member, chunk, domain, componentu, componentv, module, grid): + def __init__(self, data_manager, startdate, member, chunk, domain, componentu, componentv, module_var, grid): Diagnostic.__init__(self, data_manager) self.startdate = startdate self.member = member @@ -41,7 +41,7 @@ class Module(Diagnostic): self.domain = domain self.componentu = componentu self.componentv = componentv - self.module = module + self.module = module_var self.grid = grid self.original_values = None @@ -50,7 +50,7 @@ class Module(Diagnostic): return 'Calculate module Startdate: {0} Member: {1} Chunk: {2} ' \ 'Variables: {3}:{4},{5},{6} ' \ 'Grid: {7}'.format(self.startdate, self.member, self.chunk, self.domain, self.componentu, - self.componentv, self.module, self.grid) + self.componentv, self.module, self.grid) def __eq__(self, other): return self.startdate == other.startdate and self.member == other.member and self.chunk == other.chunk and \ diff --git a/earthdiagnostics/general/select_levels.py b/earthdiagnostics/general/select_levels.py index dfd9d9a7..0f600f71 100644 --- a/earthdiagnostics/general/select_levels.py +++ b/earthdiagnostics/general/select_levels.py @@ -46,8 +46,9 @@ class SelectLevels(Diagnostic): def __str__(self): return 'Select levels Startdate: {0} Member: {1} Chunk: {2} ' \ - 'Variable: {3}:{4} Levels: {6}-{7} Grid: {5}'.format(self.startdate, self.member, self.chunk, self.domain, self.variable, - self.grid, self.box.min_depth, self.box.max_depth) + 'Variable: {3}:{4} Levels: {6}-{7} Grid: {5}'.format(self.startdate, self.member, self.chunk, + self.domain, self.variable, + self.grid, self.box.min_depth, self.box.max_depth) def __eq__(self, other): return self.startdate == other.startdate and self.member == other.member and self.chunk == other.chunk and \ @@ -77,7 +78,7 @@ class SelectLevels(Diagnostic): job_list.append(SelectLevels(diags.data_manager, startdate, member, chunk, options['domain'], var, options['grid'], - options['first_level'],options['last_level'])) + options['first_level'], options['last_level'])) return job_list def compute(self): @@ -92,7 +93,8 @@ class SelectLevels(Diagnostic): self.send_file(variable_file, self.domain, self.variable, self.startdate, self.member, self.chunk, grid=self.grid) - def _create_var(self, var_name, var_values, source, destiny): + @staticmethod + def _create_var(var_name, var_values, source, destiny): old_var = source.variables[var_name] new_var = destiny.createVariable(var_name, old_var.dtype, dimensions=(var_name, )) new_var[:] = var_values @@ -106,7 +108,8 @@ class SelectLevels(Diagnostic): vertices_values = var_vertices[0:1, ...] else: vertices_values = var_vertices[:, 0:1, :] - new_lat_vertices = destiny.createVariable(vertices_name, var_vertices.dtype, dimensions=(var_name, 'vertices')) + new_lat_vertices = destiny.createVariable(vertices_name, var_vertices.dtype, + dimensions=(var_name, 'vertices')) new_lat_vertices[:] = vertices_values Utils.copy_attributes(new_lat_vertices, var_vertices) diff --git a/earthdiagnostics/general/simplify_dimensions.py b/earthdiagnostics/general/simplify_dimensions.py index 1f645f81..49aec5c9 100644 --- a/earthdiagnostics/general/simplify_dimensions.py +++ b/earthdiagnostics/general/simplify_dimensions.py @@ -82,17 +82,19 @@ class SimplifyDimensions(Diagnostic): grid=self.grid) handler = Utils.openCdf(variable_file) - if not 'i' in handler.dimensions: + if 'i' not in handler.dimensions: raise Exception('Variable {0.domain}:{0.variable} does not have i,j dimensions'.format(self)) lat = handler.variables['lat'] lat_values = lat[:, 0:1] if np.any(lat[:] - lat_values != 0): - raise Exception('Latitude is not constant over i dimension for variable {0.domain}:{0.variable}'.format(self)) + raise Exception('Latitude is not constant over i dimension for variable ' + '{0.domain}:{0.variable}'.format(self)) lon = handler.variables['lon'] lon_values = lon[0:1, :] if np.any(lon[:] - lon != 0): - raise Exception('Longitude is not constant over j dimension for variable {0.domain}:{0.variable}'.format(self)) + raise Exception('Longitude is not constant over j dimension for variable ' + '{0.domain}:{0.variable}'.format(self)) temp = TempFile.get() new_file = Utils.openCdf(temp, 'w') @@ -118,7 +120,8 @@ class SimplifyDimensions(Diagnostic): self.send_file(temp, self.domain, self.variable, self.startdate, self.member, self.chunk, grid=self.grid) - def _create_var(self, var_name, var_values, source, destiny): + @staticmethod + def _create_var(var_name, var_values, source, destiny): old_var = source.variables[var_name] new_var = destiny.createVariable(var_name, old_var.dtype, dimensions=(var_name, )) new_var[:] = var_values @@ -132,7 +135,8 @@ class SimplifyDimensions(Diagnostic): vertices_values = var_vertices[0:1, :, 2:] else: vertices_values = var_vertices[:, 0:1, 1:3] - new_lat_vertices = destiny.createVariable(vertices_name, var_vertices.dtype, dimensions=(var_name, 'vertices')) + new_lat_vertices = destiny.createVariable(vertices_name, var_vertices.dtype, + dimensions=(var_name, 'vertices')) new_lat_vertices[:] = vertices_values Utils.copy_attributes(new_lat_vertices, var_vertices) diff --git a/earthdiagnostics/ocean/areamoc.py b/earthdiagnostics/ocean/areamoc.py index 156be229..3ff73c8f 100644 --- a/earthdiagnostics/ocean/areamoc.py +++ b/earthdiagnostics/ocean/areamoc.py @@ -114,7 +114,7 @@ class AreaMoc(Diagnostic): raise Exception('Basin {0} not defined in file') basin_index = basin_index[0][0] # To select basin and remove dimension - nco.ncwa(input=temp, output=temp, options=('-O -d basin,{0} -a basin',).format(basin_index)) + nco.ncwa(input=temp, output=temp, options=('-O -d basin,{0} -a basin'.format(basin_index),)) source = Utils.openCdf(temp) destiny = Utils.openCdf(temp2, 'w') diff --git a/earthdiagnostics/ocean/heatcontentlayer.py b/earthdiagnostics/ocean/heatcontentlayer.py index 2a623626..f74c8b05 100644 --- a/earthdiagnostics/ocean/heatcontentlayer.py +++ b/earthdiagnostics/ocean/heatcontentlayer.py @@ -93,14 +93,14 @@ class HeatContentLayer(Diagnostic): depth = np.expand_dims(depth, -1) handler.close() - def calculate_weight(e3t, depth, mask): + def calculate_weight(e3t_point, depth_point, mask_point): """ Calculates the weight for each cell """ - if not mask: + if not mask_point: return 0 - top = depth - bottom = top + e3t + top = depth_point + bottom = top + e3t_point if bottom < box.min_depth or top > box.max_depth: return 0 else: diff --git a/earthdiagnostics/ocean/mask_land.py b/earthdiagnostics/ocean/mask_land.py index 9e51c041..7f4271ca 100644 --- a/earthdiagnostics/ocean/mask_land.py +++ b/earthdiagnostics/ocean/mask_land.py @@ -73,7 +73,7 @@ class MaskLand(Diagnostic): job_list = list() for startdate, member, chunk in diags.config.experiment.get_chunk_list(): job_list.append(MaskLand(diags.data_manager, startdate, member, chunk, - options['domain'], options['variable'], mask, options['grid'])) + options['domain'], options['variable'], mask, options['grid'])) return job_list def compute(self): @@ -84,10 +84,10 @@ class MaskLand(Diagnostic): self.chunk, grid=self.grid) handler = Utils.openCdf(variable_file) - if not 'lev' in handler.dimensions: + if 'lev' not in handler.dimensions: mask = self.mask[:, 0, ...] else: - mask =self.mask + mask = self.mask handler.variables[self.variable][:] *= mask handler.close() diff --git a/earthdiagnostics/ocean/siasiesiv.py b/earthdiagnostics/ocean/siasiesiv.py index e3299d0c..8a586291 100644 --- a/earthdiagnostics/ocean/siasiesiv.py +++ b/earthdiagnostics/ocean/siasiesiv.py @@ -115,12 +115,8 @@ class Siasiesiv(Diagnostic): result = np.empty((8, timesteps)) for t in range(0, timesteps): - try: - - result[:, t] = cdftoolspython.icediag.icediags(Siasiesiv.e1t, Siasiesiv.e2t, self.mask, - Siasiesiv.gphit, sit[t, :], sic[t, :]) - except Exception as ex: - print ex + result[:, t] = cdftoolspython.icediag.icediags(Siasiesiv.e1t, Siasiesiv.e2t, self.mask, + Siasiesiv.gphit, sit[t, :], sic[t, :]) self.send_file(self._extract_variable_and_rename(sit_file, result[4, :], 'sivols', '10^9 m3'), ModelingRealms.seaIce, 'sivols', self.startdate, self.member, self.chunk, diff --git a/earthdiagnostics/singleton.py b/earthdiagnostics/singleton.py index 8de5f34a..2cd1bb8d 100644 --- a/earthdiagnostics/singleton.py +++ b/earthdiagnostics/singleton.py @@ -1,7 +1,8 @@ +# coding=utf-8 class SingletonType(type): def __call__(cls, *args): try: return cls.__instance except AttributeError: cls.__instance = super(SingletonType, cls).__call__(*args) - return cls.__instance \ No newline at end of file + return cls.__instance diff --git a/earthdiagnostics/statistics/climatologicalpercentile.py b/earthdiagnostics/statistics/climatologicalpercentile.py index dd4d6acb..12c1f2fc 100644 --- a/earthdiagnostics/statistics/climatologicalpercentile.py +++ b/earthdiagnostics/statistics/climatologicalpercentile.py @@ -164,6 +164,7 @@ class ClimatologicalPercentile(Diagnostic): if self.realizations is None: self.realizations = realizations if realizations != self.realizations: + # noinspection PyNoneFunctionAssignment self.realizations = min(self.realizations, realizations) Log.warning('Different number of realizations in the data used by diagnostic {0}', self) diff --git a/earthdiagnostics/threddsmanager.py b/earthdiagnostics/threddsmanager.py index ce7ebe14..76ebe329 100644 --- a/earthdiagnostics/threddsmanager.py +++ b/earthdiagnostics/threddsmanager.py @@ -317,6 +317,8 @@ class THREDDSManager(DataManager): :type vartype: VariableType :return: path to the copy created on the scratch folder :rtype: str + :param cmor_var: variable instance describing the selected variable + :type cmor_var: Variable """ # THREDDSManager does not require links pass diff --git a/earthdiagnostics/utils.py b/earthdiagnostics/utils.py index 5eb88430..2e4c5777 100644 --- a/earthdiagnostics/utils.py +++ b/earthdiagnostics/utils.py @@ -10,6 +10,8 @@ import os import stat import re import tempfile + +import six from bscearth.utils.log import Log from cdo import Cdo, CDOException from cfunits import Units @@ -75,7 +77,7 @@ class Utils(object): :param variable_list: list of variables in which valid_min and valid_max will be set :type variable_list: str | list """ - if isinstance(variable_list, basestring): + if isinstance(variable_list, six.string_types): variable_list = variable_list.split() Log.info('Getting max and min values for {0}', ' '.join(variable_list)) @@ -120,7 +122,7 @@ class Utils(object): :param rename_dimension: if True, also rename dimensions with the same name :type rename_dimension: bool """ - for old, new in dic_names.iteritems(): + for old, new in six.iteritems(dic_names): if old == new: raise ValueError('{0} original name is the same as the new') handler = Utils.openCdf(filepath) @@ -189,7 +191,7 @@ class Utils(object): # noinspection PyPep8Naming @staticmethod def convert_to_ASCII_if_possible(string, encoding='ascii'): - if isinstance(string, basestring): + if isinstance(string, six.string_types): try: return string.encode(encoding) except UnicodeEncodeError: @@ -316,7 +318,7 @@ class Utils(object): :return: command output :rtype: list """ - if isinstance(command, basestring): + if isinstance(command, six.string_types): command = command.split() process = subprocess.Popen(command, stdout=subprocess.PIPE) output = list() @@ -545,7 +547,7 @@ class Utils(object): concatenated[var] = np.concatenate((handler_total.variables[var][:], variable[:]), axis=variable.dimensions.index('time')) - for var, array in concatenated.iteritems(): + for var, array in six.iteritems(concatenated): handler_total.variables[var][:] = array handler_total.close() handler_variable.close() @@ -643,7 +645,7 @@ class Utils(object): :param force: if True, it will overwrite unzipped files :type force: bool """ - if isinstance(files, basestring): + if isinstance(files, six.string_types): files = [files] for filepath in files: Log.debug('Unzipping {0}', filepath) diff --git a/earthdiagnostics/variable.py b/earthdiagnostics/variable.py index c443eeaa..dc5745fd 100644 --- a/earthdiagnostics/variable.py +++ b/earthdiagnostics/variable.py @@ -281,7 +281,8 @@ class VariableManager(object): import traceback traceback.print_exc() - def _process_modelling_realm(self, var, value): + @staticmethod + def _process_modelling_realm(var, value): if value is None: value = '' modelling_realm = value.split(' ') @@ -386,7 +387,8 @@ class Variable(object): return CMORTable(table_name, frequency, 'December 2013') return self.tables[0] - def _select_most_specific(self, parsed): + @staticmethod + def _select_most_specific(parsed): parsed = set(parsed) if {ModelingRealms.land, ModelingRealms.landIce} == parsed: return ModelingRealms.landIce diff --git a/test/unit/__init__.py b/test/unit/__init__.py index caa99542..c6c22c08 100644 --- a/test/unit/__init__.py +++ b/test/unit/__init__.py @@ -1,7 +1,7 @@ # coding=utf-8 from test_data_manager import TestConversion # from test.unit.test_variable import TestVariable -from test_constants import TestBasin, TestBasins +from test_constants import TestBasin from test_box import TestBox from test_diagnostic import * from test_cdftools import TestCDFTools @@ -13,9 +13,7 @@ from test_cutsection import TestCutSection from test_convectionsites import TestConvectionSites from test_frequency import TestFrequency from test_gyres import TestGyres -from test_heatcontent import TestHeatContent from test_heatcontentlayer import TestHeatContentLayer -from test_interpolate import TestInterpolate from test_maxmoc import TestMaxMoc from test_mixedlayerheatcontent import TestMixedLayerHeatContent from test_mixedlayersaltcontent import TestMixedLayerSaltContent diff --git a/test/unit/test_heatcontent.py b/test/unit/test_heatcontent.py index 8452eb59..a98d0c86 100644 --- a/test/unit/test_heatcontent.py +++ b/test/unit/test_heatcontent.py @@ -1,39 +1,39 @@ -# coding=utf-8 -from unittest import TestCase - -from earthdiagnostics.box import Box -from earthdiagnostics.constants import Basins -from earthdiagnostics.ocean.heatcontent import HeatContent -from mock import Mock - - -class TestHeatContent(TestCase): - - def setUp(self): - self.data_manager = Mock() - - self.diags = Mock() - self.diags.model_version = 'model_version' - self.diags.config.experiment.get_chunk_list.return_value = (('20010101', 0, 0), ('20010101', 0, 1)) - - self.box = Box(False) - self.box.min_depth = 0 - self.box.max_depth = 100 - - self.heat_content = HeatContent(self.data_manager, '20000101', 1, 1, Basins.Global, 1, self.box) - - def test_generate_jobs(self): - jobs = HeatContent.generate_jobs(self.diags, ['diagnostic', 'atl', '-1', '0', '100']) - self.assertEqual(len(jobs), 2) - self.assertEqual(jobs[0], HeatContent(self.data_manager, '20010101', 0, 0, Basins.Atlantic, -1, self.box)) - self.assertEqual(jobs[1], HeatContent(self.data_manager, '20010101', 0, 1, Basins.Atlantic, -1, self.box)) - - with self.assertRaises(Exception): - HeatContent.generate_jobs(self.diags, ['diagnostic']) - - with self.assertRaises(Exception): - HeatContent.generate_jobs(self.diags, ['diagnostic', '0', '0', '0', '0', '0', '0', '0']) - - def test_str(self): - self.assertEquals(str(self.heat_content), 'Heat content Startdate: 20000101 Member: 1 Chunk: 1 Mixed layer: 1 ' - 'Box: 0-100 Basin: Global_Ocean') +# # coding=utf-8 +# from unittest import TestCase +# +# from earthdiagnostics.box import Box +# from earthdiagnostics.constants import Basins +# from earthdiagnostics.ocean.heatcontent import HeatContent +# from mock import Mock +# +# +# class TestHeatContent(TestCase): +# +# def setUp(self): +# self.data_manager = Mock() +# +# self.diags = Mock() +# self.diags.model_version = 'model_version' +# self.diags.config.experiment.get_chunk_list.return_value = (('20010101', 0, 0), ('20010101', 0, 1)) +# +# self.box = Box(False) +# self.box.min_depth = 0 +# self.box.max_depth = 100 +# +# self.heat_content = HeatContent(self.data_manager, '20000101', 1, 1, Basins().Global, 1, self.box) +# +# def test_generate_jobs(self): +# jobs = HeatContent.generate_jobs(self.diags, ['diagnostic', 'atl', '-1', '0', '100']) +# self.assertEqual(len(jobs), 2) +# self.assertEqual(jobs[0], HeatContent(self.data_manager, '20010101', 0, 0, Basins().Atlantic, -1, self.box)) +# self.assertEqual(jobs[1], HeatContent(self.data_manager, '20010101', 0, 1, Basins().Atlantic, -1, self.box)) +# +# with self.assertRaises(Exception): +# HeatContent.generate_jobs(self.diags, ['diagnostic']) +# +# with self.assertRaises(Exception): +# HeatContent.generate_jobs(self.diags, ['diagnostic', '0', '0', '0', '0', '0', '0', '0']) +# +# def test_str(self): +# self.assertEquals(str(self.heat_content), 'Heat content Startdate: 20000101 Member: 1 Chunk: 1 Mixed layer: 1 ' +# 'Box: 0-100 Basin: Global_Ocean') diff --git a/test/unit/test_interpolate.py b/test/unit/test_interpolate.py index 1aa264cf..3ca2ba52 100644 --- a/test/unit/test_interpolate.py +++ b/test/unit/test_interpolate.py @@ -1,54 +1,54 @@ -# coding=utf-8 -from unittest import TestCase - -from earthdiagnostics.ocean.interpolate import Interpolate -from mock import Mock - -from earthdiagnostics.modelingrealm import ModelingRealms - - -class TestInterpolate(TestCase): - - def setUp(self): - self.data_manager = Mock() - - self.diags = Mock() - self.diags.model_version = 'model_version' - self.diags.config.experiment.get_chunk_list.return_value = (('20010101', 0, 0), ('20010101', 0, 1)) - self.diags.config.experiment.model_version = 'model_version' - - self.interpolate = Interpolate(self.data_manager, '20000101', 1, 1, ModelingRealms.atmos, 'var', 'grid', - 'model_version', False) - - def test_generate_jobs(self): - jobs = Interpolate.generate_jobs(self.diags, ['interp', 'grid', 'var']) - self.assertEqual(len(jobs), 2) - self.assertEqual(jobs[0], Interpolate(self.data_manager, '20010101', 0, 0, ModelingRealms.ocean, 'var', 'grid', - 'model_version', False)) - self.assertEqual(jobs[1], Interpolate(self.data_manager, '20010101', 0, 1, ModelingRealms.ocean, 'var', 'grid', - 'model_version', False)) - - jobs = Interpolate.generate_jobs(self.diags, ['interp', 'grid', 'var', 'atmos']) - self.assertEqual(len(jobs), 2) - self.assertEqual(jobs[0], Interpolate(self.data_manager, '20010101', 0, 0, ModelingRealms.atmos, 'var', 'grid', - 'model_version', False)) - self.assertEqual(jobs[1], Interpolate(self.data_manager, '20010101', 0, 1, ModelingRealms.atmos, 'var', 'grid', - 'model_version', False)) - - jobs = Interpolate.generate_jobs(self.diags, ['interp', 'grid', 'var', 'atmos', 'true']) - self.assertEqual(len(jobs), 2) - self.assertEqual(jobs[0], Interpolate(self.data_manager, '20010101', 0, 0, ModelingRealms.atmos, 'var', 'grid', - 'model_version', True)) - self.assertEqual(jobs[1], Interpolate(self.data_manager, '20010101', 0, 1, ModelingRealms.atmos, 'var', 'grid', - 'model_version', True)) - - with self.assertRaises(Exception): - Interpolate.generate_jobs(self.diags, ['interp']) - - with self.assertRaises(Exception): - Interpolate.generate_jobs(self.diags, ['interp', '0', '0', '0', '0', '0', '0', '0']) - - def test_str(self): - self.assertEquals(str(self.interpolate), 'Interpolate Startdate: 20000101 Member: 1 Chunk: 1 ' - 'Variable: atmos:var Target grid: grid Invert lat: False ' - 'Model: model_version') +# # coding=utf-8 +# from unittest import TestCase +# +# from earthdiagnostics.ocean.interpolate import Interpolate +# from mock import Mock +# +# from earthdiagnostics.modelingrealm import ModelingRealms +# +# +# class TestInterpolate(TestCase): +# +# def setUp(self): +# self.data_manager = Mock() +# +# self.diags = Mock() +# self.diags.model_version = 'model_version' +# self.diags.config.experiment.get_chunk_list.return_value = (('20010101', 0, 0), ('20010101', 0, 1)) +# self.diags.config.experiment.model_version = 'model_version' +# +# self.interpolate = Interpolate(self.data_manager, '20000101', 1, 1, ModelingRealms.atmos, 'var', 'grid', +# 'model_version', False) +# +# def test_generate_jobs(self): +# jobs = Interpolate.generate_jobs(self.diags, ['interp', 'grid', 'var']) +# self.assertEqual(len(jobs), 2) +# self.assertEqual(jobs[0], Interpolate(self.data_manager, '20010101', 0, 0, ModelingRealms.ocean, 'var', 'grid', +# 'model_version', False)) +# self.assertEqual(jobs[1], Interpolate(self.data_manager, '20010101', 0, 1, ModelingRealms.ocean, 'var', 'grid', +# 'model_version', False)) +# +# jobs = Interpolate.generate_jobs(self.diags, ['interp', 'grid', 'var', 'atmos']) +# self.assertEqual(len(jobs), 2) +# self.assertEqual(jobs[0], Interpolate(self.data_manager, '20010101', 0, 0, ModelingRealms.atmos, 'var', 'grid', +# 'model_version', False)) +# self.assertEqual(jobs[1], Interpolate(self.data_manager, '20010101', 0, 1, ModelingRealms.atmos, 'var', 'grid', +# 'model_version', False)) +# +# jobs = Interpolate.generate_jobs(self.diags, ['interp', 'grid', 'var', 'atmos', 'true']) +# self.assertEqual(len(jobs), 2) +# self.assertEqual(jobs[0], Interpolate(self.data_manager, '20010101', 0, 0, ModelingRealms.atmos, 'var', 'grid', +# 'model_version', True)) +# self.assertEqual(jobs[1], Interpolate(self.data_manager, '20010101', 0, 1, ModelingRealms.atmos, 'var', 'grid', +# 'model_version', True)) +# +# with self.assertRaises(Exception): +# Interpolate.generate_jobs(self.diags, ['interp']) +# +# with self.assertRaises(Exception): +# Interpolate.generate_jobs(self.diags, ['interp', '0', '0', '0', '0', '0', '0', '0']) +# +# def test_str(self): +# self.assertEquals(str(self.interpolate), 'Interpolate Startdate: 20000101 Member: 1 Chunk: 1 ' +# 'Variable: atmos:var Target grid: grid Invert lat: False ' +# 'Model: model_version') -- GitLab From 5ea09c52035708e4f49314459340734f8b1b078e Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Wed, 12 Jul 2017 11:31:47 +0200 Subject: [PATCH 12/15] Added convertion to K in ohc2d and other minor fixes --- diags.conf | 14 ++++---- earthdiagnostics/cmormanager.py | 6 ++-- earthdiagnostics/config.py | 1 + earthdiagnostics/diagnostic.py | 12 ++++++- earthdiagnostics/earthdiags.py | 22 ++++++------- .../general/simplify_dimensions.py | 4 +-- earthdiagnostics/ocean/heatcontentlayer.py | 1 + earthdiagnostics/ocean/interpolatecdo.py | 22 +++++++++---- fix.py | 32 +++++++++++++++++++ 9 files changed, 84 insertions(+), 30 deletions(-) create mode 100644 fix.py diff --git a/diags.conf b/diags.conf index ceb534c2..b9d3207d 100644 --- a/diags.conf +++ b/diags.conf @@ -16,7 +16,7 @@ CON_FILES = /esnas/autosubmit/con_files/ # Diagnostics to run, space separated. You must provide for each one the name and the parameters (comma separated) or # an alias defined in the ALIAS section (see more below). If you are using the diagnostics just to CMORize, leave it # empty -DIAGS = interpcdo,tos,global_1 +DIAGS = interpcdo,tos,global_1,,,True,,True # DIAGS = OHC # Frequency of the data you want to use by default. Some diagnostics do not use this value: i.e. monmean always stores # its results at monthly frequency (obvious) and has a parameter to specify input's frequency. @@ -63,18 +63,18 @@ ATMOS_MONTHLY_VARS = 167, 201, 202, 165, 166, 151, 144, 228, 205, 182, 164, 146, # PHYSICS_DESCRIPTION = # ASSOCIATED_MODEL = # SOURCE = EC-Earthv2.3.0, ocean: Nemo3.1, ifs31r1, lim2 -VERSION = v20170309 +VERSION = v20161031 [THREDDS] SERVER_URL = https://earth.bsc.es/thredds [EXPERIMENT] # Experiments parameters as defined in CMOR standard -INSTITUTE = CNRM -MODEL = CNRM-CM5-LR -NAME = CTRL +INSTITUTE = Cerfacs +MODEL = CNRM-CM-HR +NAME = TAU30 # Model version: Available versions -MODEL_VERSION = N3.2_O1L42 +MODEL_VERSION = Ec3.1_O25L75 # Atmospheric output timestep in hours ATMOS_TIMESTEP = 6 # Ocean output timestep in hours @@ -93,7 +93,7 @@ STARTDATES = 20000501 20020201 20030501 20050201 20060501 20080201 20090501 2001 MEMBERS = 0 1 2 MEMBER_DIGITS = 1 # CHUNK_SIZE = 1 -CHUNK_SIZE = 7 +CHUNK_SIZE = 6 CHUNKS = 1 # CHUNKS = 1 diff --git a/earthdiagnostics/cmormanager.py b/earthdiagnostics/cmormanager.py index f021bb74..5c89fef6 100644 --- a/earthdiagnostics/cmormanager.py +++ b/earthdiagnostics/cmormanager.py @@ -578,11 +578,11 @@ class CMORManager(DataManager): def _get_member_str(self, member): if self.config.data_convention in ('specs', 'preface'): - template = 'r{0}i1p1' + template = 'r{0}i{1}p1' elif self.config.data_convention in ('primavera', 'cmip6'): - template = 'r{0}i1p1f1' + template = 'r{0}i{1}p1f1' else: raise Exception('Data convention {0} not supported'.format(self.config.data_convention)) - return template.format(member + 1 - self.experiment.member_count_start) + return template.format(member + 1 - self.experiment.member_count_start, self.config.cmor.initialization_number) diff --git a/earthdiagnostics/config.py b/earthdiagnostics/config.py index 51c4b632..7f2f758d 100644 --- a/earthdiagnostics/config.py +++ b/earthdiagnostics/config.py @@ -122,6 +122,7 @@ class CMORConfig(object): self.associated_model = parser.get_option('CMOR', 'ASSOCIATED_MODEL', 'to be filled') self.initialization_description = parser.get_option('CMOR', 'INITIALIZATION_DESCRIPTION', 'to be filled') self.initialization_method = parser.get_option('CMOR', 'INITIALIZATION_METHOD', '1') + self.initialization_number = parser.get_int_option('CMOR', 'INITIALIZATION_NUMBER', 1) self.physics_description = parser.get_option('CMOR', 'PHYSICS_DESCRIPTION', 'to be filled') self.physics_version = parser.get_option('CMOR', 'PHYSICS_VERSION', '1') self.source = parser.get_option('CMOR', 'SOURCE', 'to be filled') diff --git a/earthdiagnostics/diagnostic.py b/earthdiagnostics/diagnostic.py index 5e475694..207554dd 100644 --- a/earthdiagnostics/diagnostic.py +++ b/earthdiagnostics/diagnostic.py @@ -35,7 +35,7 @@ class Diagnostic(object): """ Register a new diagnostic using the given alias. It must be call using the derived class. :param cls: diagnostic class to register - :type cls: Diagnostic + :type cls: Type[Diagnostic] """ if not issubclass(cls, Diagnostic): raise ValueError('Class {0} must be derived from Diagnostic'.format(cls)) @@ -177,6 +177,16 @@ class DiagnosticIntOption(DiagnosticOption): class DiagnosticListIntOption(DiagnosticOption): + """ + :param name: + :type name: str + :param default_value: + :type default_value: int|NoneType + :param min_limit: + :type min_limit: int|NoneType + :param max_limit: + :type max_limit: int|NoneType + """ def __init__(self, name, default_value=None, min_limit=None, max_limit=None): super(DiagnosticListIntOption, self).__init__(name, default_value) diff --git a/earthdiagnostics/earthdiags.py b/earthdiagnostics/earthdiags.py index b1763cec..c4b37f13 100755 --- a/earthdiagnostics/earthdiags.py +++ b/earthdiagnostics/earthdiags.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # coding=utf-8 -import Queue +from six.moves.queue import Queue import argparse import shutil import threading @@ -239,7 +239,7 @@ class EarthDiags(object): Log.info('') def prepare_job_list(self): - list_jobs = Queue.Queue() + list_jobs = Queue() for fulldiag in self.config.get_commands(): Log.info("Adding {0} to diagnostic list", fulldiag) diag_options = fulldiag.split(',') @@ -368,16 +368,16 @@ class EarthDiags(object): file_handler.write('\nTable {0}\n'.format(table)) file_handler.write('===================================\n') - priorities = set([int(result[0].priority) for result in table_results]) - priorities = sorted(priorities) - for priority in priorities: - priority_results = [result for result in table_results if int(result[0].priority) == priority] - priority_results = sorted(priority_results, key=lambda result: result[0].short_name) - file_handler.write('\nMissing variables with priority {0}:\n'.format(priority)) - file_handler.write('--------------------------------------\n') + priorities = set([result[2] for result in table_results]) + priorities = sorted(priorities) + for priority in priorities: + priority_results = [result[0] for result in table_results if result[2] == priority] + priority_results = sorted(priority_results, key=lambda v: v.short_name) + file_handler.write('\nMissing variables with priority {0}:\n'.format(priority)) + file_handler.write('--------------------------------------\n') - for var, table in priority_results: - file_handler.write('{0:12}: {1}\n'.format(var.short_name, var.standard_name)) + for var, table in priority_results: + file_handler.write('{0:12}: {1}\n'.format(var.short_name, var.standard_name)) file_handler.close() diff --git a/earthdiagnostics/general/simplify_dimensions.py b/earthdiagnostics/general/simplify_dimensions.py index 1f645f81..8f8ec82a 100644 --- a/earthdiagnostics/general/simplify_dimensions.py +++ b/earthdiagnostics/general/simplify_dimensions.py @@ -86,12 +86,12 @@ class SimplifyDimensions(Diagnostic): raise Exception('Variable {0.domain}:{0.variable} does not have i,j dimensions'.format(self)) lat = handler.variables['lat'] lat_values = lat[:, 0:1] - if np.any(lat[:] - lat_values != 0): + if np.any((lat[:] - lat_values) != 0): raise Exception('Latitude is not constant over i dimension for variable {0.domain}:{0.variable}'.format(self)) lon = handler.variables['lon'] lon_values = lon[0:1, :] - if np.any(lon[:] - lon != 0): + if np.any((lon[:] - lon) != 0): raise Exception('Longitude is not constant over j dimension for variable {0.domain}:{0.variable}'.format(self)) temp = TempFile.get() diff --git a/earthdiagnostics/ocean/heatcontentlayer.py b/earthdiagnostics/ocean/heatcontentlayer.py index 2a623626..b1f7b57d 100644 --- a/earthdiagnostics/ocean/heatcontentlayer.py +++ b/earthdiagnostics/ocean/heatcontentlayer.py @@ -140,6 +140,7 @@ class HeatContentLayer(Diagnostic): self.startdate, self.member, self.chunk) handler = Utils.openCdf(thetao_file) + Utils.convert_units(handler.variables['thetao'], 'K') heatc_sl = np.sum(handler.variables['thetao'][:, self.min_level:self.max_level, :] * self.weight, 1) handler.sync() handler.renameVariable('thetao', 'heatc_sl') diff --git a/earthdiagnostics/ocean/interpolatecdo.py b/earthdiagnostics/ocean/interpolatecdo.py index a3eef57e..432cd9ee 100644 --- a/earthdiagnostics/ocean/interpolatecdo.py +++ b/earthdiagnostics/ocean/interpolatecdo.py @@ -4,6 +4,7 @@ from earthdiagnostics.utils import Utils, TempFile from earthdiagnostics.modelingrealm import ModelingRealm, ModelingRealms import numpy as np +import os class InterpolateCDO(Diagnostic): @@ -85,7 +86,9 @@ class InterpolateCDO(Diagnostic): DiagnosticDomainOption('domain', ModelingRealms.ocean), DiagnosticChoiceOption('method', InterpolateCDO.METHODS, InterpolateCDO.BILINEAR), DiagnosticBoolOption('mask_oceans', True), - DiagnosticOption('original_grid', '')) + DiagnosticOption('original_grid', ''), + DiagnosticBoolOption('weights_from_mask', True) + ) options = cls.process_options(options, options_available) target_grid = cls._translate_ifs_grids_to_cdo_names(options['target_grid']) if not target_grid: @@ -93,8 +96,12 @@ class InterpolateCDO(Diagnostic): job_list = list() weights = TempFile.get() method = options['method'].lower() - temp = cls.get_sample_grid_file() - + if options['weights_from_mask']: + temp = cls.get_sample_grid_file() + else: + startdate, member, chunk = diags.config.experiment.get_chunk_list()[0] + temp = diags.data_manager.get_file(options['domain'], options['variable'], startdate, member, chunk, + grid=options['original_grid']) if method == InterpolateCDO.BILINEAR: Utils.cdo.genbil(target_grid, input=temp, output=weights) elif method == InterpolateCDO.BICUBIC: @@ -103,6 +110,7 @@ class InterpolateCDO(Diagnostic): Utils.cdo.genycon(target_grid, input=temp, output=weights) elif method == InterpolateCDO.CONSERVATIVE2: Utils.cdo.gencon2(target_grid, input=temp, output=weights) + os.remove(temp) for startdate, member, chunk in diags.config.experiment.get_chunk_list(): job_list.append(InterpolateCDO(diags.data_manager, startdate, member, chunk, @@ -174,10 +182,13 @@ class InterpolateCDO(Diagnostic): """ variable_file = self.data_manager.get_file(self.domain, self.variable, self.startdate, self.member, self.chunk, grid=self.original_grid) - Utils.rename_variables(variable_file, {'jpib': 'i', 'jpjb': 'j'}, must_exist=False, rename_dimension=True) + Utils.rename_variables(variable_file, {'jpib': 'i', 'jpjb': 'j', 'x': 'i', 'y': 'j', + 'time_counter': 'time', 't': 'time', + 'SSTK_ens0': 'tos', 'SSTK_ens1': 'tos', 'SSTK_ens2': 'tos', + 'nav_lat': 'lat', 'nav_lon': 'lon'}, + must_exist=False, rename_dimension=True) handler = Utils.openCdf(variable_file) - var = handler.variables[self.variable] coordinates = list() for dim in var.dimensions: @@ -196,7 +207,6 @@ class InterpolateCDO(Diagnostic): var.coordinates = ' '.join(coordinates) if self.mask_oceans: - mask = Utils.get_mask(Basins().Global).astype(float) mask[mask == 0] = np.nan var[:] = mask * var[:] diff --git a/fix.py b/fix.py new file mode 100644 index 00000000..b5444a53 --- /dev/null +++ b/fix.py @@ -0,0 +1,32 @@ +import os +import shutil + +base_path = '/esarchive/exp/PREFACE/ctrl/cmorfiles/Cerfacs' +for experiment in os.listdir(base_path): + exp_path = os.path.join(base_path, experiment) + if not os.path.isdir(exp_path): + continue + for startdate in os.listdir(exp_path): + if not os.path.isdir(os.path.join(exp_path, startdate)): + continue + for freq in os.listdir(os.path.join(exp_path, startdate)): + for domain in os.listdir(os.path.join(exp_path, startdate, freq)): + for var in os.listdir(os.path.join(exp_path, startdate, freq, domain)): + for member in os.listdir(os.path.join(exp_path, startdate, freq, domain, var)): + for version in os.listdir(os.path.join(exp_path, startdate, freq, domain, var, member)): + for filename in os.listdir(os.path.join(exp_path, startdate, freq, domain, var, member, version)): + print(os.path.join(exp_path, startdate, freq, domain, var, member, version, filename)) + print(os.path.join(exp_path, startdate, freq, domain, var, member, version, + filename.replace('_CNRM-CM-HR_', '_CNRM-CM-HR_{0}_'.format(experiment)))) + print('') + shutil.move(os.path.join(exp_path, startdate, freq, domain, var, member, version, filename), + os.path.join(exp_path, startdate, freq, domain, var, member, version, + filename.replace('_CNRM-CM-HR_', '_CNRM-CM-HR_{0}_'.format(experiment)))) + + + # original_tos_path = os.path.join(exp_path, startdate, 'mon/atmos/tos') + # if os.path.isdir(original_tos_path): + # new_tos_path = os.path.join(exp_path, startdate, 'mon/ocean') + # if not os.path.isdir(new_tos_path): + # os.makedirs(new_tos_path) + # shutil.move(original_tos_path, new_tos_path) \ No newline at end of file -- GitLab From 0f89f83caad1a888bd1b663a9ffe332fe4e2995c Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Wed, 12 Jul 2017 11:46:29 +0200 Subject: [PATCH 13/15] Cleaned code --- earthdiagnostics/cmormanager.py | 4 +--- earthdiagnostics/config.py | 3 +-- earthdiagnostics/earthdiags.py | 1 - 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/earthdiagnostics/cmormanager.py b/earthdiagnostics/cmormanager.py index 5c89fef6..35380a72 100644 --- a/earthdiagnostics/cmormanager.py +++ b/earthdiagnostics/cmormanager.py @@ -132,8 +132,6 @@ class CMORManager(DataManager): chunk, year, date_str, grid) filepath = os.path.join(folder_path, file_name) - if var =='tas': - pass return filepath def _get_cmor_file_name(self, startdate, member, domain, var, cmor_var, frequency, chunk, year, date_str, grid, ): @@ -205,7 +203,7 @@ class CMORManager(DataManager): else: separator = '-' time_bound = "{0:04}{1:02}{4}{2:04}{3:02}".format(chunk_start.year, chunk_start.month, chunk_end.year, - chunk_end.month, separator) + chunk_end.month, separator) return time_bound def link_file(self, domain, var, cmor_var, startdate, member, chunk=None, grid=None, diff --git a/earthdiagnostics/config.py b/earthdiagnostics/config.py index 7f2f758d..9986eb63 100644 --- a/earthdiagnostics/config.py +++ b/earthdiagnostics/config.py @@ -53,7 +53,6 @@ class Config(object): self.mask_regions_3d = parser.get_path_option('DIAGNOSTICS', 'MASK_REGIONS_3D', '') "Custom mask regions 3D file to use" - self.data_convention = parser.get_choice_option('DIAGNOSTICS', 'DATA_CONVENTION', ('specs', 'primavera', 'cmip6', 'preface'), 'specs', ignore_case=True) @@ -251,7 +250,7 @@ class ExperimentConfig(object): start = start[len(self.member_prefix):] if end.startswith(self.member_prefix): end = end[len(self.member_prefix):] - for member in range(int(start), int(end) +1): + for member in range(int(start), int(end) + 1): members.append(member) else: if mem.startswith(self.member_prefix): diff --git a/earthdiagnostics/earthdiags.py b/earthdiagnostics/earthdiags.py index c4b37f13..23d3ef91 100755 --- a/earthdiagnostics/earthdiags.py +++ b/earthdiagnostics/earthdiags.py @@ -197,7 +197,6 @@ class EarthDiags(object): Basins().get_available_basins(handler) handler.close() - def _prepare_scratch_dir(self): if self.config.use_ramdisk: self._remove_scratch_dir() -- GitLab From 82f087fce49d9c78be08153acc590f5357ab1c82 Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Wed, 12 Jul 2017 11:57:18 +0200 Subject: [PATCH 14/15] Cleaned code --- earthdiagnostics/constants.py | 4 ++++ earthdiagnostics/general/module.py | 1 - earthdiagnostics/general/scale.py | 1 - earthdiagnostics/general/select_levels.py | 2 +- earthdiagnostics/modelingrealm.py | 2 +- earthdiagnostics/ocean/verticalgradient.py | 1 - test/unit/test_constants.py | 4 ++-- 7 files changed, 8 insertions(+), 7 deletions(-) diff --git a/earthdiagnostics/constants.py b/earthdiagnostics/constants.py index cd328e32..88da0afa 100644 --- a/earthdiagnostics/constants.py +++ b/earthdiagnostics/constants.py @@ -119,6 +119,10 @@ class Basins(object): } self.Global = Basin('Global') + self.Atlantic = Basin('Atlantic_Ocean') + self.Pacific = Basin('Pacific_Ocean') + self.IndoPacific = Basin('Indo_Pacific_Ocean') + self.Indian = Basin('Indian_Ocean') self._known_aliases = {} self._add_alias('glob', self.Global) self._add_alias(self.Global.name, self.Global) diff --git a/earthdiagnostics/general/module.py b/earthdiagnostics/general/module.py index cde77162..a5c869da 100644 --- a/earthdiagnostics/general/module.py +++ b/earthdiagnostics/general/module.py @@ -3,7 +3,6 @@ from earthdiagnostics.diagnostic import * from earthdiagnostics.utils import Utils from earthdiagnostics.modelingrealm import ModelingRealm import numpy as np -import math class Module(Diagnostic): diff --git a/earthdiagnostics/general/scale.py b/earthdiagnostics/general/scale.py index 59fc369d..28a5d86c 100644 --- a/earthdiagnostics/general/scale.py +++ b/earthdiagnostics/general/scale.py @@ -2,7 +2,6 @@ from earthdiagnostics.diagnostic import * from earthdiagnostics.utils import Utils from earthdiagnostics.modelingrealm import ModelingRealm -import numpy as np import math diff --git a/earthdiagnostics/general/select_levels.py b/earthdiagnostics/general/select_levels.py index 0f600f71..c588c5e7 100644 --- a/earthdiagnostics/general/select_levels.py +++ b/earthdiagnostics/general/select_levels.py @@ -2,7 +2,7 @@ from earthdiagnostics.diagnostic import Diagnostic, DiagnosticOption, DiagnosticDomainOption, \ DiagnosticVariableListOption, DiagnosticIntOption from earthdiagnostics.modelingrealm import ModelingRealm -from earthdiagnostics.utils import Utils, TempFile +from earthdiagnostics.utils import Utils from earthdiagnostics.box import Box diff --git a/earthdiagnostics/modelingrealm.py b/earthdiagnostics/modelingrealm.py index 7206d099..a7a76573 100644 --- a/earthdiagnostics/modelingrealm.py +++ b/earthdiagnostics/modelingrealm.py @@ -34,7 +34,7 @@ class ModelingRealm(object): :param data_convention: Data convention in use :type data_convention: str :param frequency: variable's frequency - :type frequency: str + :type frequency: Frequency :return: variable's table name :rtype: str """ diff --git a/earthdiagnostics/ocean/verticalgradient.py b/earthdiagnostics/ocean/verticalgradient.py index 1893aac8..67a5011a 100644 --- a/earthdiagnostics/ocean/verticalgradient.py +++ b/earthdiagnostics/ocean/verticalgradient.py @@ -1,5 +1,4 @@ # coding=utf-8 -from earthdiagnostics import cdftools from earthdiagnostics.box import Box from earthdiagnostics.diagnostic import Diagnostic, DiagnosticIntOption, DiagnosticVariableOption from earthdiagnostics.utils import Utils, TempFile diff --git a/test/unit/test_constants.py b/test/unit/test_constants.py index 7801899f..c538ee09 100644 --- a/test/unit/test_constants.py +++ b/test/unit/test_constants.py @@ -1,7 +1,7 @@ # coding=utf-8 from unittest import TestCase -from earthdiagnostics.constants import Basins, Basin -from earthdiagnostics.box import Box + +from earthdiagnostics.constants import Basin class TestBasin(TestCase): -- GitLab From 49f4018723455d9bfedcbbb8f4b137f058518792 Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Wed, 12 Jul 2017 12:25:59 +0200 Subject: [PATCH 15/15] Bumped version and updated doc --- VERSION | 2 +- doc/source/conf.py | 2 +- earthdiagnostics/EarthDiagnostics.pdf | Bin 303493 -> 304533 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index cdea6da7..06172e00 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1,2 @@ -3.0.0b54 +3.0.0b55 diff --git a/doc/source/conf.py b/doc/source/conf.py index 0a95293e..1564091e 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -64,7 +64,7 @@ copyright = u'2016, BSC-CNS Earth Sciences Department' # The short X.Y version. version = '3.0b' # The full version, including alpha/beta/rc tags. -release = '3.0.0b54' +release = '3.0.0b55' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/earthdiagnostics/EarthDiagnostics.pdf b/earthdiagnostics/EarthDiagnostics.pdf index 81b334839c751dec6b6610280287ea7a6d91df25..b7d4ac394205ea62d2f2d4e3308211f97ddacf44 100644 GIT binary patch delta 145918 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
kGyxMbo@*y%8vr^8IFLPEMiBlS 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�?Y+4{7X}i@oUue_(iD>D&j{5h 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

6u6VuT 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 a&gOPV=}rZ(D98dFoa{(6G%{+kNdE^iGMT;r delta 144925 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ªjl|g= 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%0ANB`o^Z8|oik>b_!nc#tzUU-! zn=+I+BrvIbTl#Af^5gG%T0LJxU0HIepBMKgB~Huo(Fp5xN!fT@kP7jaUg0O+m(_j6b-a zh~pTd@+jB=-s8zl8QJn*x;^O(<`RCdmlmFYcPmFX>ltb&i}0lyksO#L9VcAMdsNM7 zBu4fb2}SFqJ6}QK0JSyHO{iBG>>%{LP=1T_3(g`DV(>N^n}SgOC_5g@O<`hnsLay8 z=rM*ae^+D3I5-1QUsn>o?}fKB#+0TyhzgovY)<~JXEXBTATO{SPkS`PFlpmk5x#c= zxOpBJe%KW^UjX;QJ{OP%-hIpZ*G>N&-svShAz0|1 zXL_srb#BDVdvdgi1NWR-4+3Aoeo2*Zc8DwY;Ay#BWU;(Y5ZB^G&+|qu!&Ycyw^+I7 zkDz|XIR0TDX3SUG8oe7oTW&zEdlN;w{N?zSGe}K}%w_ONqG`)myj(Z9D9NAB|fK z%t3lRDhBUVY`#>5o2fkJn!PBIQ1+nC&3=ws4osER-v<56(4ZNhB);K?O`VgGuNpZW zk&?DkFPLq0H*xEVU3Cyi@8KD-M{MG^1n~r`)iGh)Cx2(c9=vB&^-j? zJb8K{z`Ao@iY6B$Qjl}(Xd^gN9j6%sx-Q^9E=qJlyIePN>{gEy5Iyc+OvgZop6*Z7 zWp)yt=yb7hdK}JO(`YN?Hs*<ttJ?- z;pJK9o`!+}E7UZt%?G-!X|bsmPTC)phP=F|2MP95z&1~(JvWa`YLCFSzUO`&;L;Xz zRD0g=qCEBMy23+`T1+3jFsPUy3vQK*^BgiM$jQi8a>-Hc#8;w(`8=CZEYrWv4O7z` zp~E(b{n%OCElN;byR?0-P*_RSZFlOSJJsv2^@@8ZN4Ggd9vCd%MYG<|0Q?;#^JGD# zQa9@qN5Y=jOdA;DvJ!6Aor@kq#<6FjXD) z$5w3j`;DfEy?~SmoFBmN6et|NKg|(C2<`>I`}eVjz}00sWefQmcRPQw>LsnWzT4=P z{GO5OGGlSxdo$H#3+SLtS!Ek`Spyjb$z(s6YW7_FmYO)05gjuR=s8})Prae4%HxZ2 zp_1T3M2$)Mevqy_t8&4LMM8Y*c42^+G8#uNZP}ByQNhophL%ZXTbb>DdDnHS6b=ao z=`LLnfb*X8D8(~Nkd9hXmhhoZ$6xqM#|MN?NReigT#<#(w$N9IRRt4K$jvb2LApJ( zvcLm4c|?i+gP|G&I3Scwg772X)NRG4nDGnap$8wM-WLd#SURI?DGTP`hULX;m~`&m zY?}dv(!@a;A~&X7MTf%1hD*B**`s(jZpEp{ImR=H4xGQkD@79u{()WLku`*<-I<;UAz+q5#B35RS7jGqF=^qM+HaamwzL_;l_1w5pB<84e_cNsvp(+!PSqMUdBXO7lCp}aWzL~m%MJ(hoc;vQ13nG{);;ROe@vh$RA(~V ziJNA+nuhZ3K%!5#aE>1s;)zpVy89<4{pfIADS#*DPqL~Ov*UP;Sb~mwa~{wiEY&qT z2$$Unu28)1-w{0`_A6rTBTOtbMJR;mtiB($u~iDB*QGt#%bK~I6o%DmKuJg+^yLq0 z5vwkGtKRWYe-DdQ$4RA$5N^r+YBB$AW7s^`9CfEL($)Qw%u&Jx%P~3H^l{Kb%s1dB z;#I|M_dXLXK~XiV4d0-&+5_qU1ka-n!ko zIEwGG#x*_AY4q4V4&wVO3j=1G%=N>^&0OKAmRGRi%PBTNe6oj?1NoQMC-=XKjXvs=iGoYG`g->4^RUK(uh(!5=j}D%U!j z-*mEW#Bc&z16@0fdxep*|44rgN65pqNF*q62R)(Y_y#B zZXc_$FuyIYo4ST0KTa&%q#&TG)2%*_FBf?59 zdS#*)0`D7I5pGGCTTAA|+`6M1V!n2WDmyaJH~rj~sm1|h8H|awPOCyRoM@t~42(85 zq{5GTNBdM~prsfN^_S|5HYY7DqM!UjMw__x*$p6Dw|wT^=c^Iq28o9OCMt#1)AXn0 z!&&V_2tYo~+eY+@lohBup__^x2~3t(J(Xs&ymVG!VOd={gSct6_k{@>jUMwZ)vXAs zWFp?5A~`_A*5)NU)D+RwrQdhYu3ydyjui+<%#SAlStQQdXQa}=zBD&i{IAJ;(yRJb zo{cKb{y@IWj*l&2=Z%oGU@inN#_NY~A?1}5 zgM(vldLOfkgmezEJSXNf%X?C zJx&f5+#N2&vY_V#UNm%_h~NaQByEf6>iPpL+;fH3)V~rlrrH1S=!L@sCQ(R8h99M5 zyplR463}z3Do}E)-Z-heCuAU}WZWw`-MR4z+bw;F^0%y=qg>2a$nB8vDBHSieiX64 zEl|CEE*>U^PyT$}M6P5%L9M+~%J6}3c#vD5`f#&S;g4P0FsV3F&oI2LUE5$f3L7)4 z<8P7zKs8B8l*xS%{*ikj|0Bmu!C^0(zHeD?Nrj(_Y@OeZX}g!3X}A{JZg84gro#0q zqIWeSCT~<+(S?C$^F~l{GCF5-o8X-s>MW2UBVA%H)vC8lj56?uJzO381eP3(iHwX2kL{3NXl`aeY?9S5W!n55czVHXCtP~!t8el zK^%Z%&C|ZD<>IMd!lVUL+apq$C9_UY5?cFvk|CmaF$LnU6G`5eG$ zc7%2ju!L&bSNBQ$99oynR|&57ct5$T^_UGqFUuH>J2V(1l9%!M4ti1otdtuX+T?tp zpchm^99A4Nmy;r5tcrBJNiQ-0AhT541QH#7iYU+BUdkposLw1XT zEVSNa%pCzrrzz#Wn&I(X1^NM(*wBkX81RJ<_N#&fL;fo5C1|3)7Rjy54Q*GWw_SP% z-HcPeNF=3podIapT6S{;jcY_>y~$-rZ!|p2gMv(i`E=tFWr2-SBHZH1=AM!0|C(W7 z(r#`o=dPs1sNlL&IyaWW`p=FyeO|9=I4_*UQJI!o*#J z6(H3+?wm<7xel=xv9DxuEo&Mr+Zr87HpTr|gKRi57HMvG(OgkA%3Mm{GP;&_PWq2y zhL^~}-rNgh67g%9@qr`^#?$Z;+_YbcG-PXnSig{(^Pi&*DV0jy2|H;J z{i}P4PB3B?B#HbD5xI2!iSAxJ20_uw`S#*6mM5OVEo&6jaMtwDRKGZcu zA{7`e&;{YlOQ`E=T|K&>k0cz&5usQf7yT(XxvCyCrMZJWmlz%&0#v6qM>l7>3>{%@ zre}Gbcc2D45nh$H*J;M>bNzZw&Tw&*cW9n-5?5mW4HeAW9?=*255=^b4*`xnsfMB! zS{kJ$rg{N`+L#%a#%ea(hbR5P?VoBSNTe+02$ovT@K_}I3=0?=6Oatxm2Jb-AMkY2 z>cHy)JtOI_j$R~De+iV(Oc--2vG3TAlqeCLtM1eWI+h~6=4fDH?*VVwKWCZi zbjUF_97m;S8!eZ<^N$I15du;{kV#zVGK3YJJ&Y>TOdZBl3F)m`VS`0^vbXuTD(1|g zU#Wn}*n(pch+gEn`;K7OdKM+#B+rGBh-v-3E-CVcjkWxqWlC)#y%9Vm%C$FsM>t1J zBHJ{2kzMqkZpc_{YaSf5^ z7<)6ysT_QaHiIsA_UI*)pvmLXvYju26y{b+B+7(YXtJ|fjyH+O5H;A9#oGyPyJnQ=%{+2dy`1Q$M{E9ZL`kKUq`NCby z?ML9e@mpH=2h8VJOc}sG^ESPP;X2*7Ur!wnmHu;q*g1{*NOvCx#{NUY zkI#3`6!^fSGuH28oOBarSn4{-DfNJ;hI`4YtP0Ul;gf$RwVKur4`)Yqp0?i~T;#pP zJfe5b@nL+_8&eE_4XFb^SfI(Vo~ObN7nU4Dkf#Sdx!!z3qt9Dwf{vbCU?AZ9vnBj# z?;44Wn!Bo{)!?u9L$19_^a6cSLCX#|tS6Y>$)gMD;cHQ^HZ{>S2b`o}-~gP<*wYn_ z%}_ORMfYS8MRoK3c-X#H7^Nu4rJgi~!{(98Uh6nROjqMc5 zd1Nn@g29)YU+#1RwuaA@1pvJ;UXIBJUU??1vlR|1MOV>@%nhcy#*EX5Ip7Lt#IWKv z5})e$%70a*Ctg4Fgqcp9oBISzO&A zXdY8fzT>XZi-NLw8Y5XBQO?cG$=0R>a}X^>u?_dS!CVct?u<=Uf`Ep>klTKoj@Vr( z-K12pv>x2NVcgq5sRMWTvA%;kUCL8Qd*3nTG=c{MYPC0pv1VrZ9J9QH6O$~Gg|Mg_ zTl}nw`Z4U_>G_-O{_tMcs8T~$In2S)ogwp#qmp*iSG%Ic#k;DtYViPtQyN)bhU#f2IU`Fy$ z3b``iTyfn;2R6^xQK7M(P7yJ4c9#J5p*W!LJ!FR?bj!HZ-bN+o9nfg+dYFBCnn`TVr! zN|a$z0suatDn2Y8x~JCq9nmtG-%KOtfc-;rtFg4*)s>BXzFliOLS%XCyJS+ZG>wwhXCmBUpQ`P zY-NRN@h1Wy3okR{;yFJ;Y_i5T%K4A^`O-fd9e?`9e2%S%){xB_ULqd$^Ip zgj^5Zp&8!v!jaM(SIC*WNda z+Zl&UIbj3mL91H#d?#S(ta8JUQIUTWEM>-7w+|V1%(_sPyO`%rX63gF0t#bKi%Z4% z9w6NN*LrMa#|>9WZkPtR3lh;6GRQsFs!e^R1y5OamFw|YR$*8<8omR^sH+M2Ie)-@ zO*7y8C1fMmfK|~La(RgOLUH}1)8ZZznbZwt2>>_KFQN21P7KLWqdqk;sJC7HX`gm^ z49Q&2i-niBCHMOr^!yJ@Z@@AB2j_{h=(lhw$N-^=-XS82kWPk-rGu9lMr;|OllLRK zaKq*f&BVOFT=zS z(=|JH4=tQ>3Nj`+n^PHoz~7%*Zge9|ZFC}*o}@9gQwQ_z4BYsCb-cQtT<(wE?l;lJ zJ5fRcVXhvdC4@sEiu8Laj7cBtu(vj!wTlvIZ$@6=_`$fkBNiau_DnNPJXxpDjhPt% z?A%joM3grJRu|$mO=B((A!NiaEK^i9b~(}2_7Z^DA2>VSEATMKKWVPP?YnU|yKcK6 zD+TU+L`6=zIP7hCsVID^y9C60Vtvm1|GEW7rjX;vP{7`SA!u7Fa@}(Nx?@e3>rEw7 zQ2r@J59YsJ^`T1w`}n*#Y+k<65bXjBfOr~Vq{7*&%QocKmw(nYozFOxX_P$wE}%Mx z+6P8p#7egrKPMx!xwShvk80uBG2j1!V=MEEo={-Ao@*}cC)@dJ*S;lYU6&D#Ms9pEI0A?Hi zTo5G7soZea0$qe}E%<~7J;_OGWoyT}B@E%v3yB~vM#s{gQZQGgNG8_EqS1L}o}PJ5 z4_*bvO$(vcgfE~X!K{~E_iY9$!>N>vVCqhya58CAyK-eZ5EpmC7#vYuV4KtK<;cK> zU$53Ul&%nhU&LvdOFvOMs>ZMf;DIl#Yw>QQXb;0V3M@dcKPy-}rGgc@svVlykR{%T z*hE4cmxd~gWc*gBlq4@M4ngQZbE{tzPBf&|UlPA7?Lj$QS~TGGDMF%vE#gjyw;Y_P zcOcz1doSND4>Bt55Aq6R?}Ucfy9O}>1lfV}%|4FqF$yq<4Q(1T9okC@i1Q1C?_Dit zRc>&#CkQCO0Z?rbpi6kbSAbcb8pE}f;+rRX9+hNk-R42lfpw#M z^?0@`y_70@@~25>Op3${vANDjvk{1~ww!PqoZ#sP5jWad=|PuAgbAjHDo(b!w3RN! zk9}*+Jhe8ixw#sV9>`e-n3iK9hw5etmki4u^wR8aq|`~Svd^RS(y+zapUPJ_+GG!! zs?^ab&j)K48k$x?cai6!xRcpt+iYRFB09yy8d0Q)Ks(a~W%se5R-1E(WxAdloM#fA z+IdatRnP@3nI+SGOC&_*5+S%-+b@bC^>X@nwPhanB0vDM7&1)-T#+!_M2hZQ#$i7S z$32Jv@zNH`Hv>dU2qE>O(4!r<$FCD)r1^Fw%rKsc#R`YUz`aPuR^=4sA-Lf2wN%AR zd2;FI?{ZJzKIDSq_a&iNzaG57T5%vo?%t>=nGK=-RbQLqMt)!4Aiz}+Ei*I8iRRZu zKd<#u`lBF18&4a6DBV0~e%{%4MFt3;Z;eovR&ewoG<_l5U(@g{O35cl8cFF0Tl%1h zVILY!km(uMaAn@(r(p5uk={L1*6)(=<@B324D5qglU|Z~;^1bSQx@EqmL@h*ZiW?| zss9ur<2b18uoxpH*T+mLY_E14BoQr1BBQP3t_6`k2}uWZcF;bJ`&S=f!@D~LByg$n zH!ePYjYqUooxBzXapwa;%D98xwRZ&1OA1@08ctO)*-)$R_*7CcUEn=88@J&2~$j$HiKf3o{%raq{IaPQk;B7v1TxDfjiWcTJE21cg+tO zjg*HtYak1;Z3yKi$@C^Mv;&RW?(tu!^RH4+ z(I0_7s5)l*AzHZ#(&mxk!*8%%5o6UXtNky$%=#bbkUF&;4h#W|83<+gzlcM8 z4m7`I1EFpGHSg^Npy87)YIhE+?Yjdsh7^*;^q-(z8yh`B+PDLfww}-Kyg^shlG!mg zj04h}O1BgOq@xiI5oOXnS)@Kud)^Tc?XQHJfTZwY_)n%f*cc%Pc2OC*vkX{@E&<2g6Iu{y~ zK@Xc7&U@DL!({XRlu|19Vi8ZQbTYO!hI{_AXDZ!p|Ljo3QOabdMk69sXR>q?w4=xt zc(K!zLPFB0H)0xuS(c=Qko_$=inCmm9nGgG0#!TqJjx-f%7dH?*Ez|5vL-ZuK3SPf zCtphc+Ypsfr7Dxu^63y4Kv9#9#y+97P!$BS;@58`ShER54{3;>fxNl7%8DLoUDf$8 zG;Fjtzw=5TV1xg-s;e1>rqL8((LSu()IW1$iz}=^_`oA#1r|d@ev_wH^7#SDUaZO- z5|K_5RVb?ISP7w8tb+Z>oywT2seyjqqD&h_HRBkpgDK^ia3d#W2!QNS&fi1to+z67 z^_6LW9QdO9fUflAT*shHKPiG2dh zF;Yq>YQD&LxSX0gP5l?}briLw6{}gBh)QH8^M@R#OA}|@PCRGmbl8T8Uw=a5aDUJx z7BwS(<~4Fe%AL%H2$0M5m{CV0;Yzy28@}cYgp6(uKZ0}=J>X9)eAMe^@?B^gF1Yl( z->R{B|L{om83J2|zv;YPbyZH+%-hN)$hC z8SZ5u@N^;Z^5h{>&G%o_?XB?5sLp4Vv0~-Y^C|Z7=yF8GfY_zTd?p^*hENx3*ajU8 z(y=k%njn92+e?+>yzJz&+oSo%%9(xj^`;HeSH**Vw^|55HYQdMVUOMKHz&+`u&o3_ zlZoUHJ|d?&!1eE=0pU~bb_r@~*XK*6tak6UkGIk3*Q<=>`PBofo6YsrTOanEhsXDJ z0AJVZdSnI5x`D4Z;|{Md@mw;c946BaZgE;?(fL!#RnL4&gP-N!$0MGQb#G|Y9h-o* zq0FkdVu5$DXZj(hjk+L)Epuo-t*}<&Jd9M- zzIT4Eb-&k#ZaX_NyENrfuR1iA?_P(JyEMDH-^UlNJfET;AP=k8jD#&9to&E8ZCLZ; zlLvET4p)6#k<)fCkhHkb)B&E8(_l(p`j^GRpIN zsyUBf0HI)K!7o<-S#?LdNY-9<_RF7f&{3?ktA!aYNUUt<*ZKj)WKdJYBv82$^6Vm@ zEqOy&6o~^P0TIQ@m|?|A_L3374BOxJA!c?z z#;H+f5Rcnf8fjnH8)==~EfTeJs9X2}3U)Zu98rn*!=s3M`=O3b1Dr)hnRDEdMbWxz ze}FH~ew-F6N|e;sOL_UqI7#C-s;Ytgh1YUoMR6s69Mx69HZ9!&iCL5;twTcT90*mC zd>&fn=Cj$3uo78WxPpq)^4e~pRp4={1yfUWCg_#5rskr;AWkpo^(>I(N?ia`bGaX- zYRI#luv~ei^7IR(8Lj)VR0|NZtivLuu(N$cV`no`ciT(Ha%^ zBH5Q;N=2fv7cv?=a%n)@9v^@evxoe*~f)SUZsyKmJHVwJF_Z zIrzX&03hwO1iXfMe1a-=c(jGAJzRfQm+I9}t5Q_8ptFlwiP{Z9rJqd(Bktg%@{hnW zkc%ETI0ue<1>%2@&N(lzY~-PYuUYRuA2hI-j?2p-G4Y%dlF)ox+yji^JVGPiecB4N z)KpLVs=OGkdLbcAVae0r&3nkCEpGSbr9M&6hjBUiM@$GKekOHfR#` z_qhra3?=GZkVO&6!@ctS&_~oyFx`#D*!x~qqJ0rq}7Bh3(7lYelx zc1*R(=$kSpBm-OPG{agcErRY>j_nS``+( ztS@FB?tq1=;(y0g3a*1)P3pW>_HtK8&AT@&PfPqp_-`VqNpx0v1M%_XWp3sKvZ1(I zc{3$^kxnqqm0#fHl{S|DZNgKN(ZR4m|ARmOfB7|FxvSG+CA3OPheWfM9{x1}E6b*# znOkSfWwiaDmK0d-QacKD?Ii*mh4ZZb%XNev5~SuI#F3bqnuuNV6OV#sCkZ;07+eS( zRR)7v$)OFQx?jVRD@%!B$+{H=H{0waY1<(gTP=(J+f%J3t4{K=Wfta(^V_+wttvp9 z_KjQ^XNN1Yt&c8x6VUCvX!$E8{n=)0u)-hI?RQ0g zXMb@G%(`ej3yLEoMvFmU#PYX&+!0N(E;{Y0zNyHiW)iW1u?F6ujy2_Tvw&)_>35Q)4lc>BN z^Ze?S_=d7$S>WJ)fee9B#>*__ujq3$)!RAEY7wDR?3KFS5t`wA{%JLLKyJx4$ClH7 zI5)V=dMNTVB4T$>R9{qIJTtbGd*n4?G7fH{s!^>b5&lQZ(nsW^fiRSG0}#59C00u& zojZ5ANV?7O9`&thQeBK4f#(}1NzO6QRJ)#rPUOQz?8c}Wz_jJUP}dRPB`OE}WjHVE z5=8OxP(Crf0BN$j70^wH!1{@WEn!*>xG+tS93jSG3C74}uw@$Il@|#JvFg81SM(GEoq`*77W@#C;9#%sn z1p$()o3SwR+T)V+}9bP(;i!Dh$)yc+4#$DK}|R9wH!D(%TW zZ1BUnq}`L;)yv_OdC1PFJV3NB364`dX{;=ci?(tz0+@{FcZSX9Jl^8M z$4@@#zjlFb^Imgq|N2!`Tt3cpMDEYH#k9L@rO$2&I6;wO$}8}iJR}0V(pFiGP)3** z8)Ob6ZVLuJPJC33F3NKet6j2tja|w6l=-L7U&(_WRJ}Cg5#R|j(H4CKc$Qoquqnym zx@+=5ZXS6rLW@kq83N^x3-T^p4g9>dJ&`ZeO{LzQX&|mBolkR)C8g1mwt_61J?E|> zZYIfq=sFvcm7jTmPbBGab&8%T?#5(oM)pt8b4FXBtSL9t5fUlO1vj-@QG>vq|K(k= zYaTid15jlO8lXjxt8ln^8}CR)ME|eg-#()8vu`#^iI;?vd_Ov%AlRqMb>9*H%4HDg z4%C0H?I*x+jy)rzIMDJ`tU@&|!ba%{DY4z9fqsFN zn6FRPFuh@mrt^!bim*?DVChrGyy>=V+G@2RdvWY*+A5Z_BD(vtVJ(bV-C0$Js9*Cd z$h_&pUKPY)EcR2B?OBVyI2?sTkP~u9DoV_wULM#23yaGWRrx)`%FCECIqb`=;|AAL z^a?UbJLH;-mCUzTUgZ9S55cEHo|Favkj5Py67Zg=ltcYsS`ZR6_xVe07F^=vI92n&pVD94S&4Kjz{4NVdvvDbc5_R=hTd+sP2 z1E<2^1$N+v?BO?X{Ru^$|Dg19DMvsj_%A4Gi`dZ~R6YCs4O37Cnu#Zc2Z-q%Uu@{g z5I=%Bj`0Fxx!ZLn>L?R_DgZ)hD9TGl=i1xKGES!kqQfMu*mlKx4G8c}Lwvopl)9tJ zS-t)wuyiDqh^1dSz12x&uNN?72&VB`CX};BdF>v%Lfs59=|;KeqL(ZF!RVAM6tQyc zl1|raBJ;8Aa&h>EgSrxfikZhHBNPbt$*I}-YEuyBualNr#oLFv#|zL5gFBJOBbe$* zLffe18Xh-+If};rQ_4PT{qt2~MI`R9vk5wg^1A4cAspFP4ik+&s94IOl8V^@dvw7$ zSJ{L%0&IraFO6g=7=Ks{BuNKr;Y=~tRD9tW&|orgQQ}D;yWzJ+S($JabE!&oeDSS9T?u{jNXcl^(yv!5yE8o_Sj`vT}2V*9XV3QKUg?LT^bo7s!>PtY@Rr|vA+JSpHt@o3o z)`qccOEylh_P0hCl&vA{k$g7lI1yba>uAndw|NPgf`@50{CrJZf;a@fG&C%-;z)Wp zsg`DPCswAXt7BsizB04%simN51^MRU%yo3zX`35tw9Z(Ldvqc z`+EA`CwRofU_sz8H=Yx!B!j}Xx`nDob)&mRft>XCF4lk&UNMaP^ofhL_Fjey7UpN; zfp#!#dEMelufJDy`DgmfR zd1oawG6mJrK>r_Yvdop3Bd#gyM0=Q#Q9|U6%OaQl>p?m?|iL3BJQ$7H*fyNKBHE zT&T3&u)1doW#LOdv(u7%Pv8I4dD*u9Q4}nsGt)ObH3lOe`#kiU#BhlQaQ-X+?9 ztDtf)+Ij1fjYXRFcCZtlPU~ZgaR^LQIo*HnQn>TdeJ$^9JE6)$4Hcmu`SIc_5ZdGT z(rbpp0GK!!C}u4fU7gJc&x>uynJE|WH^EsDN5kvP!#B8`q zLt-TP;}2P&$o-UxX3>O|G}WP|85Z~8MJp_!F>^y)+t;)E---#!o?1r%jt)V>#LV)q z7xE3DDfe&H>;kTu&A?Fx#SkOrv1y`Q03?{r{6>Od#UJf;9pA!)Ot&xJFf#f`xFWf9 z`k6?%@%`(`y@}2|hgw93>+#)>$=&mWSrYL&;KKQWCW$9mj1pO}ZHB%PN}S-;R?KPR zeod+7QKygs5w>1$wdT9F5~k)wQ(rH)2Jls@o@h9un@*r&5g_|-)$|11Io|A;-5dq> zesYqS34~Il2x-&VT{+eU91(*@r!yC6fpt z0(iYWd~Z`wFr4LMFVT9jr1ls*Vl2XL|JtK(RC5g*EwQvXa*0G!jUhyq+qeT>60Wb; zf2uPYdBO2s-c3aAoF_!~Y3&%w;hv8nKC&vLi`VdUU^xAVRvv`OWo-aa53|6F7B^NR z`6*wX$2DqL8S_{@k*@H8hYS`7i$=lE&^ADzGjL;wB~f=iX_vtMqDxU^Bo6@L+r%3V zv!;lE#UI7{f^=^R-H<3R3S(dQ|I*{6~{2boL*;9iQ+R- zP=Ox0RQ%jwk|L+TNn^7t;Y8t3i$9mi>B6BcI=o1ujp-^W+@eNqOC5w!nmEd0S0RXG zhhFmPM!MPouy^{P5*ZDW@xw6g7XBa3zBxLwx9c*t(=n@K+h)fd+w9mz#ZJezZKpf7 zZQHgd@9&-Oo%v?wuUY5$Fso@o1C9t@G<|@bHnGcGRW^ZC zpoy>au~QNPe<~XJ>>zS=qk*Ij?yzxM=D<-N(L~SLSS4(rt#QP)dt7k{evj&+PL;H@ zDHON;?K)an=(G38)_~sF8)OjJy66gD>GEy-M0 zS&Hwc->L{ZOwCW#q3gctPz*;6yV`7vpmIO|NCTtbOk7tfb9r3U3lL5r1_x*P7_W|G%=z>78bji{lDQsQGD1W3+c=J zcptyd#g~3GEyJ;Md+41<6gax6T5)@Enn0oOR%#fR;(TF$eQWf%YLr*(A&_Y=6KQTv z8(5S_n_5}U!n!~yLq0fBAj*8aK+6wpZ>c3wJoMRf@X<9Z{yi+k9K#r145XEG4WQmF znq;Eab#mA|t|g8V+soQL)uLtW`F;ZhI<=He1$q_KZ9LzWQnR-~<+Xp3a4=q@PzOD; zX$oCPz%4L#j3@O6{TGrp6qY%~OcDO&K5dBfE#2IiXSSTE#6bN-`k$o}_if!MZnq!D z*hp$Wsy;TbLV9pV30K!^Z`AA&5|PhR9kM;+1}bR-g<1N<3-`G#ksI0NUv}-^kf6g6 zF&KP;cD>L0D8Kg&)ah@@j@2Mcx(*wy_6I8G3QNbh;_9lTi`eMVSqEQc;aB)x6MYth zbo^88z&Tj{H5l>jtLlAqSEzvFssGGH1Yh2N^GpSq_n2I3r!y=@Tq%IYkkE(dPtzWa zxY>$pFuFhHL8Iz5bW@bTY-gg<-1B02F>^7MoWexCa}mQGyyPg4paH~oi!%kWH%l;v z!@|cX;=@l&kqa+Y`#d*1Z}+|~T9OZ!XAAs&-Yp(Ic^iDRr5EV<0RDA#Z*SPq!fBwv5sx4h_GAaY1tq-0UMvu>a;f616@kT zm6m(Ou_OWS9-GN)Fkdc{qN>g5R+d?a*1$U+jQql8KE}BOb~!E~y!mbS3sUg75|t3` zRK;JovKhXO+MnQXHq$$|M%B`du5I!rR6!=A{>E8Ew-*C)0|}z;ir-K<>i9RvCW=P4 z>sahU^3si`MbWcPtTXcLFwJ^tEak`A*U|~EW;ytEXUP6O?fR~O zhZA-Z|GKn!0sM&c+L`GQnVcer!G?i(f2cAY#~xH>+oAA(R+)B z9FgeEsz*Vo{W1%#v*QXo!XZ`6=NI;BuCg)o&9U4CTa)>M*@0L73Z@e-q$dNwW`)Myt5knMk4 z?9xo}m`TToAI~_{Lds7}4|)gTt?HZ>^l>IE!7BP@c-@TW6aHD;)tN)quG|KQ}S>C;P?$`whXqL9B}Q z_(CM1&QWGV(L;Xt@05nQ<-cJ8WbMviC}`+>20*GWu-V9-TD`w$@b40ZVS75!YhRK^ zhV|pc+8EM3xE9pub*i}7=eWui!Gx!v zp<0LdaeHN>Ur;-bhwI}R`0N{WU^j>RU zOhzlLUzSfoNeoSzT4ot?e(#sBh|avvTbw^6J%58O6>AW))A zD;U~suYx`#Nshi`VxcEiOqEJpH9)=;>*DIWLmL@wd@IrS1K7wQ zicjSPzpJX^B4+Oiz#}FnW3oJ3MQ`7(m-ib z(a#GPQrKlmFCzt5g?M6D_(cs9XDlP%N2bbx#6n@tG_|8hZ3@#NA=QMhT{PpbH?*H4 zD}2YrM#U3|{6LbXab;49!WcB36QkKB zQb?q)Tp&!Ph0DZgQ76u zCH^v^!z%4`sML({oW&sJTaMkntyz}Kl-KO@w)u{`MZcHsa!2${uYE7 zhM}laRzOyOzu3i|l}{t1YTa>X4;&#B@Ei%*Pnrda5^FaOyGz)z3pC>3bDq^po=mdw zIO=Ha$}}6j74TGlu6+G?C3$-ti_=TTZQ@yx8|QKt8|cO$G}Q-&FE-Wkft>ccFj>>h z2JG&#ci-j6^7CbWJnvDwevbc%uWvrxckRrm)XmP!rh7Xb?f(-W(fRi;=Y2$k?WI1U z=ct0*Gz%KE{5E8&39$1p#>Q%M=X~ezKE40stdD^|qe5!J8gd9v07!N};To zVAP+|;%{x#C*SkFRqahDt?s4sRuoH=(G?qROw7*`Szl{gkn%IKn=Dayhh)+GBXB!^ z(wDT;#O5tF;VS9MU0siQ-Of*&G+nx%3~#T|ryQe>o!aeL8^Ek~?aT^(IRU+_W*+*t z^!q=}z&7=28zPOerQ`#`34RcZ)IPQHB&OGddwKTk%<4;h$5MWE6$D7sUOCtnb_7yU z?veI})PNTd-k@W+J`+_U1q4cn=$RXyf`M^VZ49?mf(KNs#0qs33q^zK*0+bI@cmhx zdz3b2DOtOpYrwl|;OAhjxP_u#SNsISW{3Cnz8}IxYC9yU4@CQh%o0<7m^R}f4XHtVz3Dp$+Q?+H4(zOG3Y3B0F3mnttffdb% ztl&R(crk5u`zcr~`_I9pFh1l~(-X?1J87Lz3Sq&vYwqD7-+N@`&-Ho90H4zZl+V7v z6(UGCc`Xv~Z$+NNpe?FIv4nU?C{%6}dI4Z|xilG@@*q`bB&Y2~AQ>c#>P_E#g+!-A zHZ0+~;!u8VD1yi>OCNa3f>u1_?=L%mC@Xl4hK7Iup?4d~D*yt-XGbqImOp#xr(m8&9uqDA8?tzSFQ~nI~ zAv!&FQ*?53npHCI3Y2L(zW4_M&gb8W*s%)5le+4 zVP9FM-;!9G_dG8nV_7rbA0Y7*2gbU<6t?jgxY8hH5*;`=I6K%e3WRs7?DDaUOV_cq zo0BCB^|2!i_4NZvLA%KGZ{C&k&*&y%p=nl$$Zy)dey^_k1v@@+YN337VfQ z1Q>$t7o;q^S?b8r9AvCZex9AAw75_{W|V*z*)E$-+?Ng0CBl$Jn=#d6E7LDw6NH zzt!UpNcGk6iG?j5U}YZ`)Vc|OBRrE&5>ZhNX@H1DCn$qT;@w0|9H%GM=bfGJ<0hSu zQ2TuozsGfuP2Ehf`uThZT)~FKpcTm~Wx>s#XQ|OBaBJj9pBjo^Nf#k@wFh}}Q{6gU z$O-#JvA>S%geo)|%I5f84=P5LA~K;-P3&x1+tY}~eFv~O2IC$0v9Y1ki)nk#!-O}) zDKrQ|j9V*i>MBcHNMPi&D2k#WCu0BA6qHpad2JX^Q;$5m{dzOtcRkg~2W_fi7knRU z0u*_tzBH~_+kihzVt23S1OrjdU5DIz>C8a1A9JS-_1vL zs!oQHz^1>G6NaM)fkVI%Bob6SaH6`E&iGjFWN@zS_Vw$E{P`V!UXc+}u??;s@5}!1 z+oTzae}>g~JOkee7~uSnz!dvDR5#R9tmm=RXc;j!S$8%>Q`lyr@$mYcWB?x|I5n13 zsEN_4uOWfeP&P}zykrGFYoFVEYDtBlPWFK_U z>xma9{*uH=184ihux(b`u^+C9a>P`ai(dpzOtdVN+YY%7^ad9nVK$ur&4~uH%l9%w z@`D^;a@=|2GezXb=G*LwZm+@qal};-`&_ATCps|6vEUm&0>c-=#FCfYXgmG!U3hqd z*tVVQSCllQIMVqQSN6b?BV<$OoFLv0vbI1k1Jz{aP*p-&84{YQXib))y&Y zja|_Yeh1FYQznBjhVzbfW%}aG3kF)Sg@Q)f=ArFg*zkJVEoV{_r8fxd$g46d?8Hna7!=7(vm)1cQ(7+YX+UY{Lt zT}W%o*cMlN-Nb>aUfC{1bsEd6wa12K^$jZ$U$-?+4)Tbty_EV*^>n6w2=*tNz%R2cT zBR0F&7mN1*Rxc>kd==^~LA3vD{>ND9KI7mO9oD5#l!<#;U?b657PV5Ys_Wd6NU=OczY^QWZCwSM zoz>Q4u`(jxxtzcJirja2v4l79%ezV|0T{Uv1Pc!Pyx!i(QrEd{Rs{zDb&i^_avWBT z)1N=cb-br@cIkcW9VW3(g07pRg?pU*2@iH3;kGm%YljYBgOiO`d?^a`asv()at8{3 zftb_Dhatq_y`qqd`1ECMr{42VN^{5CW-*cPl?7S*=_8YGCWe6s?_NubHGW|&e4$H& zZ(b)fXT0$48825-8;7OUkV9nTH5|UP)s&R1^CPnKCpS|J1$^B!v$>5YVj6rMiHJWc zYH#L`9FLP6I6YN5)v|3Zx;>iHd_jL>#FYajLBHImG&EElo~}6Sg$7d**fA_*Ab?fuHf&OzMqk6zU9~j<1YR(QJ9q&<8}`3pGuUJTXN>i61!Q zu#8$B1no_@lgTc{fSA+UsHLye|=e3H`OpIzLEvAoH^WHJS(i}l2ddDW)Z|8Gm)+av{`{izrI|IGly_@J5 zv-5EEmud!D@2LKFKGTZY57*ENWiSz};HX(lo9J1z9jZV)^JFgVwBPvCZrJ|zieV}Pm0Jv_B#k~ z;Y>Y|s~n5(x8rJ@Z}0xKZsxDcD-?LmB&{8H&l|zlN^N?wchkBIHpN)U*zEk$2dg;o z#80=HFT*jJ=;H?j);{xj&Y3pTF{Do~!lgZ`-quiuyX8J4)q@W%806IbyQh-jbt111N;Q2SjrnC)EA=SDy}Ugq)t zaT@~XWc_F6^@}l8>k3N!Rg+g8R@whifl){clV6kMZ*$opSCUm6J(n3AcGE{oV%irY zJMOz!!~&thYar9el~_jp-i;xc6`(`w0xD>`Ep+L0clvykjQq_L0K;{#@!WW5G+7Lq z1Gt_rx-@*#{T5FZyn7q&{b7#S(O%c@zobaM^((6cgs^P>6t0&K%kU~tNFV{?3@d;8O? z%AGPwl$G7%7?erl80tcuh_swS0j8~@VU*IZV}sO|A9k>EO3v()x!qqyl2_|>hU{3NaX!JK zxz90k^>M94K=6=;L1Q-7d=*8ye&a&G|#wBg#fB3QL~` zw@0m=^DSfRBovRXO7Y`@3E>`Uin!4R#E0zI1q(jWFT8!@&tug_1_D?#LLoxSsORQI zC%?4;IDrn?!6YK~6wH>1*Z%q1*O5U|7fO6X-CKz7ZuV5 zo5LVjJn`gd_O>)7Z!6l&@0iO+RauId&e93b_dsAsRvVRuL`^<@|MeoCig=ftNf$qc zxB>&a1X9~5h@vYoH1x3n0k}f%rDY@cmMwo5pu-?U2jh%1LAN9$hniCQ9YKdnK>H#J zgG!ss-2J;rg;SZriD*8=t+>k#F|KLftB&}auGOV;`at%3fzpsMhBfWI?-=y1}R_J!pL?yB;N^wJGF8njzRIrL1Do6?1e!F8yGy# zzLlU4G%e@PXos6*!4L?0d(k3ufHQh*;dB{b_XAs{Z=UvU87Hc>#t3UFHyAKnO~bRo z{s@`<8bGedR$gDmp=!z>bEc@D7jP+QoiIVEyawkW3E5eESl-55Lyz}X>NpXoTSI`Fo+xd zuAt+?fu#FQO542Vw+G{@$JEwON9!`S9|%xd4#a9tx=7Zd3{yePYQ;=X1gy8^G$=YD^Sr{)Zo>$x%VM^~pUuwp%CVYY-x+DSqt3UOn z_h9KR-Tt$%4EIxo>gkn6J0ccduQ`p(k z_nqOSseIe=0R{smPSEr@w2Kc~cI6NK&22IFkZyrz={l@gbwXpH*C?9c7?y^$(m;NODj5 zq#4Vk`=urEzcvC3#vqN-j*V019grYjVc@(Gr`5a6> z=JQZLcksP=11$@|NMF+$;Sg-s$)5o>DSy_>Ij0};jvEu$c*`nJRO??RAJiF?`g&LpX<%U)u&R8*O-sbbuFmxY_0j zKz5GnNI!L|yU15_$+(b?SdV8Spx&@h zvFq+M;Np}4HHKI&|IjO5Zc^5m}i$Js;gt}(wMGB>-!;`ZQ9HJ!*vm6z9owcHz4Ia2A zL&HxHPQ!ae!@tTVx{n#{XRbk;3$4Sn|)+9>GN`+RVP2@h0H=gB)9PtFGVe7gNW z_GZ(1kN#b4V|zgnq83VR=;5`i@>t?W=jsLQS+?bzh(@MYs-b!Z#SU4_wiWoWiyAKK zJx#8j**?Foems6(eDHkVCR$Vrxn!EVAAiprMQonMk^vVWN;fXV{y zj6chqH?gwfVn$&`5k}RrHi!n~bx*?>BmQpzZ~TA79_A2Tj23aTppD-eSSzFh{68C> z#E*g(erw>Z&<@CZghPBWuc*)O?8TtUvh+I&iKz6s{1tnkx%oX``un$xPmnetKy;%& z=&&m^uAE?^Q2v85Om#GDSj1EEJh3RE^tZm$t!-PXqrG1`G@GMvu-ou4UDPtxgrsTJ zBf6wX`!R6uhul6INPhHzAKCx~4$|DK!PE?wK)r0H`VFfOYHAUcV5-UF1PXRNw5SeSU$@yHGuO3xJ9Utz;uf{{$- z;Doq&TMVd#LbGQn_1h-opsNw7CAcgrdR+~`c|%p~uhn=v_yl|LJVB}2%9x|oKV++d zn#RaB!`6G^mZSraw1BkbOB_sT;=*9h3t4|YCSDQ+s>j^u_^G;g2b38B;Pt7$`fq>y z{OZ^x#`>#9fen31MTnjHq0kN% zHI0JyDI|grTQdulP~@JAtW=4WZP;%w?Vmy!yg5}=u^l5B_{S|zL&j9G*f;u`{o59)43@Rb6 zGTRJN@|$*z*c0Wu^Ek;%5-BUmJ}M<80~w{id#3C2`!syaIM)*&K`f1DMxw)*_lS&u zoodxE4gppRg%Z}hQyT@#!=Ld?$tz#IEKawFZW{aws}43VX}19apq2sDF{(@F-o z!{pj(n1~qCcM~(Dsh_$y?q379!wmy|&4==_R>wHd23B1dWJb=ONSu`t6P)sc=8XeF zO|+cE(}15&C?rD%h*6ucbN-?+j|$Jaca*H7HLZB#Py3L3gkTD_hA_F-lEgN|je@*BMDkB7vl$C2pKd|)U1?PHT{>145Kkcc=*7~ zirA&A8qBdyWlj+HK=q5lm=}Fug=8t+E#0y638%%*_KNh?REjR3EG!g2o8F>q%7^#b{EHS=)|_h^r_25g#RN@^EIrVBt7oCGAJ~`mfSqJ>J-XlIk}NmZ^3$$8q`qD zO$cwEKV?f^&_hwGa$8*2*$Gov9;J;Rw32o;4X>6g;^wzJrUlRZMzXJt} z{vUB5_mq>0hFvP{CON$bKT4wX7bT_6$N!9v? ztrl%m855YT00}77_wwdXuduq>&4=vdsCJ1)weE*sFvy=D7~6)>LNhjXN`@;;E zJOt=x`?uXZ^Hc$Wi&c|g(644;mVQR7-21T*5O(~lxvapLTAcGS(73#;Jp>%)%1r9Q z?L=h^OM5sSQr+^EQmIxuY$KoZcR^5CFO5IDYjGlL=8ZGVB36T$ssYhW^I!(+S%KSu zRSw?`K7xi|NmN*9;plAu4rH{SWoHpF z@+00-;X%Ma`>H4x>Lg~1k$#Fdhw79puROuyN}nS~ShNL}3Tl`n2wyB7gy8?BzVYX zl4)4E*^5|8pZq{oNk9an?1svsjdFo;RT6)w1ZY-geG0N#w2JUjSJ>o2bqX*S*)gARrP);w;Y)Bu!wi@EEMC6$mW_6Yuw z@YyYX?tCg&Pcb{S0`r7)QM;d_p|iAa&C3iE!Nfo$;=a}P+h@dD)RahKUev@DlpA64 zAW2}(9&508AB&{W&w^jD-0y%sbD!1@{RTccr_uQmbCMOjJp&hxtb57{QuyNmMeik2 zm~*(eZ;rR7#}e_SlrkSousw38g6YJ};WBksRpL0P{BN;Ark)Bv($$`q(e3}hk65LqvPn>cx5h!T zs^-S^e0|TEVqDr-ZCru?hn0R#K#g$(YaCGg7SfDQ91reCx+5He*Q<>X;|O7p*51woUdmh*0yyvV8QB@J9Fi+d#@$dRjM|E*9$7RHkyEI1|m2aD-P`9~D~y$RR<(U3lxU1+HeyI%$=gx{UGOEH-7Xe zhQUi)aWG^GfuF+(a=?0^354l(LJN@RkI?J8k0SubTMoR@!ptb$deG^25iWOsA+G&j z-0P8f6x|Wji_d&}!QZ``S@_fBgFf{Rnpz=8Rr&LOrv-EFhVs*HpRQWX`PCFy?`Jua zBy;wEfeihYxq6VjWLC-*81-uWX_e}JS_+3?ePBLC5wc~3W_}`F0-RGoox?Y$7&oa*_px)4T-pz!@g{^I)A`+DB{%mQadT>!85RsbmPL-v+@&0 zh_JCdT30|LKIa^-)Z7FboBtqs1gH4CC;d-@re}TEzST|i$wgwCh#0L3Fe?(@uG!6= zpy~_1^XS_)SkNizSTFBeJkSMpr1`9>E(^!zRQP{96=12nlA!2)%Gu%(?zwxmP3&@6 zC_kOuW{Q^_U5XD@WSz$v?XnB~j3m-(o|=9gM|2M1rb$F{el1zMY0eKve;wJUb6DiL zD^aMC3~Qb#)$>OTff3g$u`UnGC)`g+1Zk38F5?EkPN2?hVW0V?#a*m*KbGZR2*P|5g*sE;?y0S%Zvm4<9o z3XF@w!NVDQL_(Z9*1fIT|5(1Sf3M+hlBgvVp?9eywpj=EF2L*&(M6VARRC|x4I}K4 zA7a^ly>Ikbw(;P#p{s|s1zn)CDV5HReA3{U>eU8p|3JW<8p5YeJvpXKkY+4t0SIdl zlLSGTTCz5k2xf^?&;ukmfpSdlD8pl2u68`C9%+$dd$ta~*vm^SFxpUB2lh0OiOqq{ z9CWAr*}m619cZcZ>y2B4tPt=9w%x}U^PU91uqX5F-j1S$w-~@5m{}=J7HJgtv20K} zJYo24kv>S)(D??WCZ@8t=36p}9=EY$6aZ2QJX=K3%RDUmlKT21K;>ah*eR{0$M~FC zj6nLmc7C<8L4w<`p|Ln0t7n^20LLR%K8py9;@~mV!V`nvOG-z48jf|LrXJo zTvN1j)FSP4&s{?dmO%r&0JkaW2Tx>=VYfxo2{;0TpNCgD7ZJlvRHWINWTjoq?lOLz zc=deJLJnsvob;P{K&!F>sKfawsT@6nHJSksDgEkhV=v5>2|!D%m$Lbw{ff$3=YCI7 ze!MOzw}@cML_7?+7*W;$V{wV@%=>iwo=KRWk?qAQXqYUy$?q z>Q1d;-;EI}Fo`2%PP2McsORcQOu%H%-$3e6SxjW@0N+4fOpmH|cbdWvFQaar`?2nv3g2&JiIp*M#2v7yfG|O(s@qX$O?Y6ewK?Z9W=GVWg{@8g3(}%1$VJHY zmp%}LO7}b$EtB^=T@M&Wp8gwjUE5nsdAR2od$J+ zYQsCC)GHUr^=q>`Y*ufq;)~_m?iI4@X%|NRKpw?J(jNo^*_nGgq?H3Q)t|>rdW5cF zyIFf8YRBK39uHBmVu`>Aj_FKkD4)Vu5C1U_bM#Zj_3y z1^8AQspy@#PI4XtYmqw2MMA)a;B)k*&@&HWPEY?>KL^yuFi@u+UEYSoosm7kH( znv#b94Ha{;{u?SzepCC>i{jw=hj!7fB@|8AjM#ozJyqL&6fdfX21+7`)@$vD$ry(} zgUeqqkq3k820jQn1KfPPqjNnMF^y0r?An-b=D7_PQQRZxudH{cE|u%XLZ!E`Xm^~B zYjFe&UxC8Qw$orG1tZgYIA}EQDjlDGq*~nj1Yp=Ci9__0thvJd&g=@+*0G8&9286>qt&5y~YkNa}>vOcOx#M9KBKS;JI1d!(D4b$&9F z$69Yep0?SL)3sII7C7ISx05DXxIsav%@1cc7O;o;tIaEffdTGc;MU__3fOZ5%AIo~ zjb*7Ev!`~{7u}i5|Jo!N>j3exm@Mj;LchRYh6D?Vlc1A~C$Z{)NrI%dgs)H0G11{r zZ0@K^FO9B?;k$1=gY|23?SO_L>USs5wPOWrB(NGE<51&Btxv+9KA3P&+UpO`OBiu) z8cncD?|RDoL?0*^mhvaM=KD*op0wCKG{s%*DCy?OzsM#O?i@n)2DDXk^h`bd9s76Q zc|A~z&axX+$DD4^k}JV3Kt+~+3rxLn&kM5Rs_+}`Y-y&Vxh#V(UDSa#E}dqS^h?>a zu^Z#M3q9?cyeS#BwUYLBuP#88E|t8x<# z+Uo|@kv7cGN{0~6N1&kP`ZX&z^OnS@ zo)c~{WPfOVQwaj~fVp#bN4xvO*}=^?(5Fo{d2+L(-4p2e{E`gp(98aO>0JeGYIn4F zKE9v-QG=Y${oC>Oe3LwyTz&Fl=lFc`F#dWcHOE5Y`!qI%3S?Iw2S>^&G~?)Z&Mr2a zoY_BhdY)b9a6P`^ecvv={BTb9d^LJGtH*m=CGN{;CFYf2Sgwgit*h(BXSSes%%T;Y zU2Erq10-q1g9D5^Q4lxH@Q{UBy+VlaVRBysYq*(v7=>LXVS-_NvbN)`e^(T~Hz6nr z_=qLndQ6nXkGY?Q3 zZvg$g?4%1!d_NF88IaekPxD-?tzbv)9+HWGUIbWQSM}8gv;*YSL|NVSZ&&3?b@Oh|=%}l! zZAV9t-SN%MbA;3L!NcO?@%`ZCE1Ke(b_c}9`Rbzp%P0e5$HJs*=U-39KR&9}0WKv-htJGvZ0XEI(dwcc>eLJ)9wye>NTj z|0{t1l{|PFD;~azMTtcO^$8mp)E?Dh*QV6M{5MSMe}Yu^;cp(3^w7?ecjNqc-{DDQ zL>hjW?~&z0@xrj-4Q~ga4AeaOp|qQEZga_ia52>Lo|HWy`LM_O*HE;XKjeottAuJO zPzs`hIXa;Lm1BlqN*6^fD`nl8|CL=hd2|@3gUR?gtEH=M?l1p9P~@Dm-EeY!Vd~U3Bt`O zU;#!N-MA^-uQuGZOu5)XQ&aYFC|8|QvdR$f#=`@ALbAkGm;$ANdm@nAXm_j}%C?Bp zxwSt+)OC@|o113w>(~S6mTgnd3*^Q0^p&7tMRC~-7?D{6ApDtcG8k(E zLAJqw&QKREaDWQ4L{lyl!(yYVD-eKux21`vACskEiMSpYF**;yENy^Md5#lv6DyR3 zvsV*X|C}R?tWo7qlK5_KDa>d=Ej2pZO6+%I+Xt}81vu}V1k(px;{Na@MDR>f@EtNm z_nGghA-ITQWC`H8--6C#zdKcHu@eTkjT3kR{cV=Jsu~)+<^ok#slW|cM6t7Yn#@@^ zCCrMU6Lv~!YgM3PEt`?G3>!M~$Y>C8&^@?faxaTt{LSj85XuDp-(1;hq?C;vtqV?HAR zgl2wvV4TOFkifaJfT*Y?4+H`qCeVDorf*K<9lXfD}PYOV#O6Xl9|<#S5<_jA;J=IGP1(~XSetT-uyNE#z@Pl!7H|JK6;xIQCw@4g4WP2i^2FM_zDHIG z-kW`*PR<&E@YUW$$=M1G1R)e8WO3kW<#IF7M_R^S{hiZ(YH`?pc$g(S~h`8R#CjhCJ|xY-LMbmc`cKD?b5(%vD`)% z4yy}@alypIvBH;51Db*nG!ZhHEoFRhY6+faHA^p)LEdb|$E&EWkqfP8P@fM8Ru zG_Ge-VPb>0YXKNPoxFQ1Kuo#UQa%dexAF|yK<>#keiZ+6Ky!RxNdbfZlW$(gxwInf zW5L-tK6~iM#4%nUxE)oaB`!;hG!cR(A2QdWwqNZq#-y^cAMa27*)nh9Ba~8C={U>+WN>Kt|@U$PIyv)jgbR1rhyXJ}?S<$7G_5C*U5YesXWZi}_aWwS8FJm4z0Emk;JQeu7oL6KVek z@A!w`ZEI)&$IQs`FB}}4o&Dbr-Se7Sj_I8LARnlv7UA?TZdQ)RP3Rmt9Oq+ls|Mfl zS7eyn{2C@YH%a`g?W`gZm)nqGVPfvQxqlpzYpp2PH*f?jx&|aKezVLvW*TewbBX&< zG7K|~f08ywvZ9mYJzec)flym`$kM`D<%8n@uJOVuSI3)Syx(hl!-xg6pSWcV)B83# z@Ewg8T`V9a$$Wiv?#boR#?G1J$<-Gmun;ib%}B&XFgi_s+nsEigxPiLnr4DFIqy?i zeSm91uT65kyLIWOLZYt*GgONrBbovBs=W7+zf~%b%GW1QSDj?tO~f3WwX5D{)idga z8K^yjBV~tsEwd=Tf&u`})}I^VOU`AGUaO7vDBW7LqL@=2>n23|=35^-#!kiw%3TRh zH^^AE#)XJ%3pl4Hfn8A`586VlV6lO8i*?3jv#$m1kB^@(={J2${x}1Qf6z7A;;&+J zWACD4n{Y+nj^UH}h1U5)P2RHp)p6l54D>pvR*$`#vYXxk)c?p&xCv=st&SDH1uz!y8GU zG?oV{YcVTwK#TTKf2SUr&_9!8a={w0o+}sL4HkfFeS~$i>;a5X6_DuR=i2;i5q0pV z50uD9SbR$$m5v8qxpb0B3w1zR9e)pVLu!iPX6sLomDJIFq%>_g_CagZ8C6>uHyu{7 z)6?GYcT0(|a4@2$+9S99z0eI;Eg9n!i_52L!2w-}8FY=Thr26bHOBiLo4^+1P?GzQ zDck>MwaG>|(q=Hfj!(2n zwDOIN_sZZBZ*B&N3xi;gCiGYSesqjmQ+L%%pg*@kUn}1C*tyFFM zTHp7A*Ouv9%$Vvc^7Ef*9|*o~SBRr$kGF!a?sj%V^&_ito59`p5WhV$>!Ht!ySER% zQmW>hwo(@gANYpB-(l1MEf&p?=XE0tj59s5F(K1}*&f%wy_zwlxNr9}g-za3c5ml_0nf-67PY*B zk0^!xR)~zCc@Vv2)~r}3O`(xw%gM-W_E-Q{+PH+@c#|%IjCuv|lp=!_iQLrItCb)oihfn3Hw_Y_?&DI(c1LM1dxmJr6C-aO?7c2VKsJUD@P z2>Y=4$Q2R1l-R*Et6p<2gNWZYXXwhpQX zV@WJb`vtNl%Sr`i&4rX;jBE4N9Zk6Qe5uLtDQ5DD|CG|Wb>rAhr=`!f{c_^?{36S7 zoA$=iKh$N;N$2Mw8}C(z+qxoakC$gDl&OYux=pO{PyB<|Gw#`tGfLj-{+?@E`?nuL zx=RUNJdGR#C`b4%#?Ii$VDaF6;b@UY_`!J=Y2;_}@>CH}#^CtU_x{|!2vT^G9JB`L z0~R3y9&)z`uCA>i&5Q8)iA1kOR}A~t=FF+Z9Lx?U{)rYwlWvi4!@17KSzc2 zU<*!4B4`5!$n^f@8dFR}8b<;7_+twd8Gl%%eUhr{NGuOBdV15_{k`2AipiYfK#$~D zZZM1}^fP&6Nf`%mlNXnhcO8@V`S7|AD}ymg>+Zt5WR62)6)lyce!QG!fkb#qOtJxE zLmKAWQrN-(qhZeXYq7Lueuy!*{d{>>UY{sV#8QAEq!uqb>vXkPp);)DlCef9#Da0J zY0Xy8zxu`N8n(q%0B6ZqN)5+H@FZ1n_CS;zD-iy6_ZcpbiP3q9e;w-2n5B%D&f=+citd{5bU-S3ET4aBf15Hxn6$h zP!=GAE1sdnwD^ITsyEg7T`VyURuIYE_2j@9{V`}(V<~$5;R}&EioaR6T;4nw%^El4K(+NWw<|-Up;0?9W2=GD zyx4yj@FJm!8)}Y0*7IVeQMeOTwh}V`wOlZY%|nMJ@1+fl_7m(O;e!1C+OfDQ(TqWiB8@g=9Sdf#Vx_6ot=(p!=<C7Hb2qKA%gdbr4_~cvYsO-azCTx-w3b_cw6eEFdSHCJRi+(+#*c0@W`eW@pNlA$ zg6DVtxeY!>;-s`u-qaS9IGMotIioo3C3h_VBE$U`^d`WX_12m^M>gh}Vr)QL_l(A{ zR-lgU-Z^4wmvpLd@_WK{VuD^LLO=MX^!t{#HIP@}xl5N(^lh)JlVPsp$#DsuW>h_n zyw8BE%5I+j4Fk7f%lZ0(GM;q4Gh8rpR2hknTqQ8zWqr|GvOg7W&w?3=zpTvg$FTZHO#wemWe=+cLXb3Otvg6!PU$kvL4>6p z5`xegPRprZ<{&AopAqJy^<8|Ip z$=r1Y@-pflgWz!nNrhXZ)NxQLyr!_#RD(do4>{;8b=i}|=z*7g_K9hjD6z~%7;ncT zz|qaG3e2+-_LGAd(dTvQW~al``iMa9%p}?w0=iW1<4JEt8hdtEi^&pXAS92CcEE#+w zLP$Q-lLe*@j`eTy_yC>da>%41>)sjL-MO?y8 zhm`#?_=hZ}FpQi9oZ@FaS>2bz%|oFnm#;_^LehWcg7>#&*OQV)%mdv@ag_MvSg7DW z@66>Wc&{}54oOpY=@9K=U6A#wdtGNVSVBXm2WB}VO!tmZCNY68E!ybbwS|Y*(3#0{ zCH|%48DoWN^3)K{Ro{?$@?&+1C6&v*P7$QaGZ49li=$@H>K4jT%j>cyZ;z#A$YaV* z3c3@irAgsUw_0*V>s&h#h}ZDpQB~ln-vi$n4v&6G#DJ$7M{zddM#nN#qXuMNJ1LL} z=bzHGq_|JeIgG&%!SM+H#WdiuT#z3MehrD*Wi)3@MF$Vi+GcLavD=pRbWmv}OIXxM zAWO*CsEcs+kZVo2_flfA7XGVXr~dCkNI?pB`0}nOFMh}-m?mbS|Wbw2AHar0?k=#rxo$kmh^#^R|SaE~|>-fo! z19SI5J2uGfvl%hOj28u>ad5o76>ttX*+b^<#*Mi?-~M$C&6ZNM3IQ`t;x{xEiRm{a zePveq4oxzt3+4^-Z}ii$6u3uloa+Ew^vaO-a@#nSq7wDS=)=L9c|pl065P!K{$Lh5TS0DCr;e&j9-YFJ*Lz~4)75*)$vauCf#~^Vj##aHLdu%&J0dQ*@!_Iv0-v{V>@egu zp3}LJ8fx|&&0L&OHh`8h{s)y>ibbJ@ft%h^0J*F+0+|<)yNa#l6qtZ*Bm`Lgv|$zji8bk{Q=LMO|*zVrDY_%vaiqFVVQN07K~e^IeRXCUOh`;LqfWAnFl$Xd%K zB;rER7hgOUi!Z&cSKW_0Am8)P$bfCcP~^#0Hnv_$y$2+!ZojDts-nU4L{8vR>M&-Q zFXI^Elv^XLi~hC?0P)JYyTTD=@9MbB8o-JREkkJH$2i83ZI9e<#)rMv{+SoqdN~#&XYyY zs?@SZ<6h-LQPh+*8R^SP{m|Ap{sUtoXJUcTVglpjYI{6KRz{RA8S;C_yjr5}Ne;$l zdia!Plo&ImSwGv~<$2S55Am%&U7K8fSEl982m)(RT0!Tv{qj_~)0@XXiE+yI+vguX zzZM?(3g%Q7fY9LkoskABf&P{ZmK3gg`K`-8+YP|0|4;{cieu67KW@B8Uja&=Uw{vO zaD$@Wi%{S7IH5^Ez+l)v>Nl}SUnfkbhtKtWmoaj0KWE#;no&|G|5-;K{Fw zkl!IwV%ZS65Cvi1!uVkvk*Pt7mf2(MDOThYl9@4#7<&In@TYi^pGpFYF|`~4v)etpALHy+eW%a^VL z){Cnb*?r%s9s$JqO9LQ8<_?D4wcfE)jOA4s%SY;JgcsEp?v-6O6BQ=j2DZ(uf_gv> z`5-!IX;a|WU}5>X*G*5>Pt-)&pbcDjNyK;(n!Xr6aQzOzu zKya0XV;pP)%#od^{RE*D5gD&Jg;hktI9huLC-1lTji(-UFAe2YT?EfCyIab%1$Xj(o)wR~O zJ&5kf$AF@-GNcG)pnJVb@O-K(nbVYB8g>qW3|+tPhBS}|H%q%E47gU^FO ze`yuYbM7JfX}|+Z5KGt|_K06A&f2AsZh~jltYgQDOa;u^>`mpm^@+;pRLdKriq0qd zA|V#VT}P@nSyaV&nry~F4n>cznwH>-e2?}upY?7vvR%c=D5eOt&BA|MSaY9%FSw?L zV)WqbVEm4FYBew1;MLgPGra}Nuw4ai@aLPamG+@^sG?1RYJP|=Xfk10a< zRg!7mfrzmjn9WoOfoJ5jtuaAQPDZ^_GX|g~O-J_W!E2lhENt$(*SHj#&N-&;4SN{K zH_4RQC#7(}{r17F%zCqih};wNi^E<{3=_VDpcSBscAKY<)*L8!rSzolSe|hF0FW2SKx22daU@+Z(I4Z*SB0`qt??Errjt zyEe{Cs!?;X0p}e`gZ=?s)u)NS$W6oQ>&D05hmWU->85LgukIbc4_vY*x7l-tt=jS& z`>dMJ9sc*hSf&OkS>}#$rv#F}NtR4fa|jCmYQENXoJ@)b%klw9E7ai!R4 z6E|dV1TtU0!w4R)Ec{;wS02u+>ke?Nb~Rt{d=YRS?)HDHO#yHo-v6Wz@4zQmz*zsY z7^8$RWd&pZ??sld76cMFJ8zbmFE|z?4;$M*?(#ofiaKp8-SqReas$bn6x`$sX0V05;qr4piD2KrrM$*C7klqfHGy^o!J%|Ko=@Z0dR`J(m0v%#m} z)XHpraX$r$f{{!fmN!-=ILidR60Wt`L-Is_px}Cp%+ypX9SYG0CK|P|aZEszQB@Vv za1a~{NP#?&7!ZYmg{7s1#Y|34CN%{cr#LerDqQ5IC4EI83PfgRz5w)sy1y_PeTJ+_ zkryqxke;rGVL(PUwucRv z6FpZO=&oIXmj{j|mvsw+4yDB}O-YANrZD2a@O>~Jqj<@ADfGimN4OkvbeE1yrPKpfR|M>8? z=Dm>A4MubM#(;|0M7}jAS$Lriz6^XiYaF~!BRz|-?tG2~e^Ttee0gTuOx(%S=0-)alr@sIuoT@XQ@J)?jLx!J9Gn+*BWB}YhEmrR{ z7CXI;`*lelNJ!u3Pj-nEc~u-(U4mHf?m1Ngz>6;qCFvE9 z;xsh8AJXS~pjwOwDkSnp_d_?|yV_JmQBh5K!}$GW{h~ANSU%FP{cEebC@< z)5Ffhe0<>uGkG$iiil$rKUlypQMYg)DR0pT_t`Kspp*K)dxP=Ub#$A~Le~?)&Y@X2yHcZ9zhms39q7=r32u zqoxAK0CVu_aQfB~mBEfyy)Vtfo5B@_EDXaHu(NwaB)lvs&Ousd(*|s$z8a@5fpZ^z zdI|1jHQDGt7cpU$l`8H7e$1v`n`X8e$J_5S73fX%hBLjZKK3?Q1Ma%g#cwP+*f05~ z->giwXOQL*__ogTT%QEp#;^X_$+yxxfCn-nRM?PKiBd5AT3a(uFcuN8vcJ4Ids_4e zUI)D;Gf)v0>^DJW=$uhoAdWArZFdlQod4FK%qBeFoQAbKAKHG``mMP1JHD0tRW)+z z>tD`~m>EOXO1p7;MIZ>Nv51;iRLAZFS5ABXu{F25n4rT_eZQ7LM*gn4odaH^xahjB za<=^YpXEZZsIfoweUE|5dPNR4I`mLf2VefV*hrp5|E_t=g~+H<0)?qHPQie4>?Mn}IZEMMqhdK)1s~1-mF99NA(Ese{MXQL(V47vu zaD@5iOcPp<6SH0=cF#68K|NYtXdJldXxuwHRi^ws6E0oOJ)dlMa}q_!4-~EcTWecB z_13fm-s-lS3rg;(K#r0YN{}QqeAXzn)Q^3|7lMi|NGtm%Rja8{dYCauqMrY%2Cqkg zP7L$M@q5@jYZTDur!Zp{5UVssPNtx#q1A_f=1W0vi0gNAuerQ6+{dTp|70J=e17nc zt;C&oEq8VT&yq|w z(M$8MZLE|#!Qwit@_NWFk3I`h2l2qKUr@`w#(_&edx3 zJnAUCKVV(@xR4O9=fSa&h(V2z01(vI_5ZkJmDc>Og{GZ)DA|P0%q=j}Jx{dRG-2)A z^30`9OaPd>EP0q1BSeLt-m9^PZ4t=p-Q_nn42Ml~TzV^F&P^9kXM|g60t)0vCucow zF8qEwRm0_3bHvaHnCtadcZ;!q>a$xPpSAZTmEzZVnX^iKYm0AiOV+peUejz&$HYKw z8M!3V+29#_XjLnHaciv9o!kT@S+Yn1Jr?DxJ1&*I5>PVSvd!-eg%4K9qMR zPV@>Fv5!JOe~0@-5hH+>UsOu)uzdO%OnEqQ{eGN^wAi62_9*`}GKXy=%k+${i6m;_ zsM_w%Wujd^5?-<<%SQUf7AzRHh^WF&^`gaUwqbi`fcnNbLOYcj%1s{z`Ni*#6H0x{ z6aZcFLof?wp*g`y#`OelqB|+p(jo|K*Q~LGWwwJjobgD3VJ|G3lJIb%TzX(hFPnU4 z`f;hzQT$W`xQVy+q?OjH5U%*lJQW{1u=H(P>#ipcG{p!8#23dbmh@yke9(1B7_|2M z`E>{|n7_K22QMM#m>+>0QL^FJLm-kK0AvV{S68a1Gl%O0IZRudv9Pt37`$GJ)i|5U zXr9ddrV$x1(OREay_0h>9pnD^aoD1gsQgElWueRt(s#|wKBAaP(E4~qB9&qJwhXT; zMs89l75+_uT~Q|PK#WQY*oSaCUxN9m-g3M|hSSEc7Smo8=tKhYhm)qfM=5hskqB4l-(FL5`@RnM^$21zh(}^l zWd9AuRWu_|`-?s{)mWr&s8?xFWm!R!dwrS+y=zd1Nb1XXV%8RGnD^IlTOuJib0BP_ zP8mOPMnmC|`@1!Q?E-z!_t^Y=#?9ypZ<_dcDqAQ{r7)sYoL9VxP{-!D@u$VgmK@nvAsR=RSWPQunagV_V52X7f66j^rx z8nxiQZ-O@=ai)?h)cGCozz1n~(#H3{xg*fGFK!H!Jl^KU%97r3omcm4>~btBt402< zUkNn~h@M(>4s?TDRLpw#05zwDIJwclr7#EG4Zq)17Thwln-EzcS{|Y6MBjcN8wCYX z^r}Gk=(?kPuO&@k&rQXpL{5i_%Nyind^TUOebaa8t}l6e9A51*1me#2Sc#{d721)l zDR(0%T;A4C37@6ieiA%kMBFik%A@pYgDv*jy0ipw)e98zHFPXqle=gqy zuC+5c?ltL8_imW$-)G-ww+t5Ugr{qaSO1Dv`EK?tDOxL*Vi~V~YF4&XQnc@3NxcV~ z%=q3x=-}i>#CNAN0Tznr){^Sq5ncOveQecPK5vID^`>UYE7Rq`vuaLCXPRndGVe4s zh(qh`0+XYf{#1OmuSvVt_~C^^;3xdg+D)`QhY#Z-awC(?5?{t;yrt;x(6UG=>s28y z&59?pL?`d`gI0HMws$6^t77p=Cz7IfiiY&sz-9NZlb`rj`oO`!Bgq84YeBb^C!#JA z4XgMav6aoq4b~V_kdd*fbTpbXI@1OvirYB4#eM*)Ee(yrfE<_neV5i~`H)caIBgjP z-_pnNsl6q87^CA`7ZB_x()nwYC_gcSAsVe_}RC1tn&>(4QuaGj1TimJ9)Yg z_XYKsp~Arc9dKbApk&{~*t+@SAym(?NkSM;F?64iIJunL(=Yhr!fbfrh!@{8ptx=J z zHEq2sAJJ=#HQAHc1;O%U7J;CHu%yLOy|knG*51oGsyHR{vX zM)klmZQbtwnw`m)alH#ae?KKtJ?^H#fXjFn0;E}%8aD)-)aFse$_JhN>8NWsQY;P^ zgdvwi{GVf}-ByKpYliES1R>aQ1@Q2Uk5Re0laYlV&#{>-t5(~4%*JY%4#suF+|f&} zigcg0x}J2O+(qS*B=@zrF|HA_n}kgeBA*uSDKcEkD}y)=4lRR1Ya-SNGiMXJ7s1;Q z05`9DktzIN5Nsg!jL^4CI?{UM%^%o~=#-qJOSF-8;Kyj@n{^rsrLDN@KTj|8)W2ZD z7ozQn%UPL2x284p{QPF;+V>3-)mc)d77zZ$lIf>*8J zKG=9LV}X(#je|4Gv1z;{+g8wLR!^vjc2^IP`{N14_6A}D)wocE8OJShi)i%;F7!{o zz$;CaxhuMYcmMSriM`2M@yZK>q3<)Vk2v#N*1|lOI#Ad{};_L;$kJ5ev3Z zLNp|W9c4?WDcOCKFKs?cMGIuTLzazy;Ow2`Cq)O5a|b?{yT62?Un4Qb>FkJXNe7P^ z##7pI#%qYp--jV^suzqje+d-6`P*G#46RD-DnIKaqp}4w%`UZU3q2e!n{OEL_xkTg zs_;I0wt+qTF~6>i>(&Dm=738f=^uV|mQ?nFi3J*Ea502utyJ4$s9^9Fn+^=A!xSBJ z@jZ9ix@1}zQyGKvEMvcEWeWe9$_RZ>6#pwH&a_TP)4!Ohxc^6dw9PFYidkL5)jXr? z+rMh9^lG^2naW9DUl}n8BSLad)7xP>5`Z924IXMqGO~ZURWqly2UhXVHbKJBZiN2y z>4BaWei%cJQp6zAxtV_bfp*`w+t#frvT7f#2<;;sKJQO>=YdElSc{gYECAJNGDRlTsu+4SV?#l16`oZH1y_Hd8 zS3;R(5Ohi3wvnw8Xg?+1Ok{EzixECvoL}i@LKd@7|A`C2E#Uulu>UCN^B1}KMm-TK zg|*z9IHjmSNpV!zeP^x2+%`hO>cA>-2bS%&m)?vcD6w* zeMNCYuIEydYHgeFFaPq$cP*1lm#iQ!uW;hW@O#jGK+Nhin`R0*y7oi-p#4o8vUQnA zm`HWA}ILF3P1|<60jtEpJPeYj0PP9{5HAt zz2BZ;etf7)aFaO<6}Nn<+CMbP!B!J5F*Z47!g*d-&S~tSeJw_1)c>%$eNmF;JY-J) zQ{kjV;ir3eb*|Vv&n>EoCA38?c}U*s(_!m;W@v{%3W(j=6U}*(#TI6FzrsuvvaC$3 zqSqNL00@5I&e(k$ukNzbdEsSR{i9UxZ3RD}^J+=C;>FzQn8YVHd4iSO z+jDa+`aAaaGx5YY+PZ2kvfSe(s*lbcaj}V-sH^ATJq+HIT>f6gb2l0I@mwm&G z%VrrdVsAUBh7*iLEmMf&>U@G_!mCCFa*bBtzJf%Ye{1`EUWt{2riz|~^CvXKUli}wlba#puQm6LQf>p@?4U^} z?z-6vW+FBGb1h`t`Byas3xtqexk>`C4u?;B4@`FTP&V-KHX&HcN>S`n=S8=%0yaw2eX;<344nQ*rkX%?_+m-sJDS> z2S13P>%3Sp!Z)QprGh!5b?;J>aeEMvbr=)SJ|fmeo7vHdJ;Ex z=!JE}SGR^D-mfLVW#Xj`yF(6vZJFE!ikEM9P6Er3hR%FuH&(&Btv=g>ja5u)9DnzU zGmf*ke?t#{X zmN^Xk(dKw$8tqHShxdL!d|Cjq zdZwFn-x{Y#3iHq|T@=U*ph5GRQeJRU(npn;#wR$H4jATq*H$cu#!0yuH{xvU4@F~T zY#yR?6|!dk*rudNx@vO9UCEg!R`=z){fK@+4KCp3vvG5r)@+|2tQkXe*uMFrE#T+zG7>`dAWP>i_?1fmgTVOT_Q zT5fb`WtGUXdAQCDNU-78V9UyyQ$ zj^(M@@uHwbH!I4GSc5QSX;8j{0IKhum}0t|jAB)&w25&UfFG}Cr^Th%dQBT++j9`w zY|xZU8inp0!ivbsivE`2RJzh%Lh`pH>+3lC{NhvJqAuke-0pp8C1jD7k>vGnq4tpd z$CMK}M=-6;N&F4d-VD`qMJB#>KYbuatG zIqLfi$!VWHm+VopOM-1E2*og%V?fED{HUxwmD$cDo$Vj-bYk}uqIt?~{>wL~0I;2sOHE;}C_N6`C zaGCTFG(B6V=0{n0qKq-`h047NNzrp7@Iyz5ON#Lk!LxTD6R>keWbTAD%Zx8R**4G0 zol}urJ0G`W2;uoeo#4JpLgY){n`b|n0OY+IGha@{nM-2fE@ACSV7itLDk?nxDn0_L zlZ_%cpK^M;^it-OsULFZFTb%jXN8{as4mOlLa*O;F>N3w=_4s=@;Egzo7oDK5fd=J zQS+VC9W&Sj_U|4o{-I=G2nt9^ZTBKC8L$D*q{wt$3Xm*5~4Ff?_7)4~SL= zfRQga_SjJ=oN1~=rhk_%z1)l0qsYcr#(=c-(6P5ABs&OQWtp1x%N62noSjy5w=W-t zynN4wsQ!bvx*A1%(*s&1peoR>pvnpEBVGsJlfkdaAr~|+{Bbgky_X;8nri^Fy2k(CajF{~-t`Jh_;Jn=bffB>QAgaW` zdH)Axlo)|vB>W$gG3y`Xh}53C4N;}~KTu=48aw1MD>yg%f06BIQCPYDmu<(v%kf{Z zBOPF{?6&$7{U5=0>$=3stDFK%}HHXk3ZASs@frA{mm^6@{>9UU9-ksDVRFBG_{wNp6RhgfNC8 za;ipbWggfY!J_>pmX4H6g+$t3kw&XWrIrNn`cRdn$%;@nQqdxD$RVXD1Q|=q(8A>< z_z{IwLp*R{S=A+?*eo3bkUx1z3c_YckNGM!ug#nqafxm8bc4|o@60pgr4VYF(r>Rd zbZjnmg-mP|BasQ<9jWy8eTu^3DAaI?bS^B-LX#df&Fqi9)792kcMQ48Janq^p4$K! z#7Dkj{H&7-c!dz-y$|77>HZbJ{1~Za#neM-L)%K3Q2&VmeVtVuwgyu{xVY}v4^~HA z)1HOx3p@5vrmcBwq56vpmrT^d7#=|-J-{T#~Rk!?uzhPQTpk_#ut}F$XS* zXf8ZZ7}8gT#aO0!|EBWI)4Bb}hl5n%WP-30?nU>TB z^BIHmG0$AD3vPeeYSCXSU9WrlKYc!M2XB>)p47UQB?zXL!Ccq1md#p7KLG=_=AqewIpnzn?-2+>5?8Upi&3;KN(}`4Daq$3MhL3pFZP`%&WO~- z@oA;F#nl;F9!LC9~S}IYc!)J}IQ5yXy#B>L6~c3W;FA(?$b}L;kgRtXmR1p{y)0irLnh9%(0ICE)ug zzvFt`^eE~NHAuksy4>^!n0baUT6w1{=|AFiZR=~AZxBos7W^l7(g83om;okOpA@WbDU@{0sa?=4;-8}(1Y8+4c4W*PzP6)OUkG&re z9uW_2@i^~QZl<(!dtY9#9K*6YQ}P8#*-a+u9Z)MsWp1SU`Y*dFYD#jV3PY0-7H zc{2bbs7eAx!;v_r7a>>WY*W&4i8MDDDLzIi_edu`E@Gz_FOA2tieKd|Y%hda`0y|N z)(OKkMOCs=2+j+6{91B7X5N?nDAigzdrfD*uTOQyFr6T{eP;VZkf0I z4U~1NK4)qu^Nf8>^zxLn?{T_#KdlpU=DG!ndyN93ch7%jdc`NzEL^+!^%*ms67ALe z!V`Y}_-j3lvhn%2aCbI0a!DbCXHX{XwqoJ#ZUP@#_UvoTOLHLEIq|ERP_|MM$!`^Ft-+>YV;yT}v?g;P zsaGYf1wQ%O3RG%z0xUs1Bnz1*EkB+G3&rGK;G9wUj~F*gJVX*T6)a7kF}+48Ezx-W zR@NO6Zl0bKanUzqT&8;+DnA3xc(^UB9j34y*cz7jUh|liW9zC#s`(6*`axUe-q}b^{?&n)Vy1J#AP7Df| zgL+c(^kYM8O#Xr^;1kEVFNI<{2eae}w&(;i&=tqhx!v`&ctp(dHIDB?NFeviaoUIj zw;uS_$z$9v#72xIlMnt+aK$KAkpjk==h~N^dKm>!WS-8%@lJT&G_!WA!dD<|A&a5I zVi@CrKi}u&YLrHV(7|u#zGB&9i9maP!^P!^sRyiq`$IMB#UhJ`{jUhvi^{~WYv%=i z^PHbt)yrCRge$T(fo}Ol4H9NZ-!VD}W?oK3Uyq){O8z=yw8*5*GLjSii7xK%bgxh5 zlt5r)x5ZiVS^mN>!kiPwJe>ff?g|1MgAb#~e>a;Rm4uHuh&7Y0)FYQ=*^w?ehHmL( zH&sO>-d{(|jTVHv!XWpaJp*oU_Gg>DMI2rtgV**+WIkd{l*QCIPRc)yQB7=`=OmoT z542#G^q`$GX7GYVjbTEEhlg>TNxaE$e+@=I1Rf*JYB(^O+-0%6Oy~dtN5|dvStrz5 z^((sXt@JYuNhm?SFXVL}|9r|9$a|Imy}UD7|GTn+z=(VS?)kwRVtZZ zMN5@@ANpK}@2A!cCd7`l0A+p5;vZ}MiHjX0;9B}_XT_MTzIA)IHfVA8-fJQIdx&|> zueWd|ZONJiX9v*5{A=~L-_F_;>XQdsuGVQvTOD%TGh9<-0Ds8h2O77sY&njz#q>Cn#Yt10Q8c?dMkvN=tgt-PMlK!pYZo{Dx|t3}=1R1c;rrB;{HNPw-p}VdNTv|(YtW46Vlj*K z-@^bRMSd9;peF@=!k$dK(xbkg-KtFX@UC;G9Z)THV4|!WTQqnWf-^4A;y3Vhr>fsz z#lEXs@=+G=tG?5eL=SByd7dI+iUQ2qgvPmU@TOrW%E0 zHE_CZ)uj)a#U8`vtJ+R}SI>Zg9xZO;ji5C|jZ_?zCQqVc7pb=L@o1L$qSs34W4+_n5HFR=zY4;(t6AOPE5cKmDgLoF1fL0S zF=cRqD4eu!)C=>3`$O11R3$j`R{^1|V%&<{KW_<@okk+>;+W?0pYrk~D5R3Cur24$f-luoLHaUzoOI;|dqxm6lxb62i*s3fKq`S?kTPxHPc%rzoA zm$=f_2CZa@?L(3(-?Yo^5h_k{?4 z{rRtYY?9P6eZ7*UZsrHO-Anvd#=qv5(oNo7H1@Fm{|SZ8)=?koM>Z18o&A@($<7?( zdWl9h9vZzRmR7O-1!8-T&77ked6*u)V*1YwZy=jF>z_^1K9on%_Tmj~v@D$xEmbTd zt$e~DCl$H=Uu0jtG_zPbWRCwmKeMy__xYI?2+S6%p&UgTy}YG+Ir4TfRF|t}W`#~O zg@wd8TN@(AzC}jZ!1Xc_7w#)NKGv?vFCUo5tyhx+-m9xWh0f(c8FlDRUqB08&NE)` z3Iy!On{ICs%auou(FErmT1z}%6ChS3Ef~`4#5%PSY`cGAt$D5RoV_kexqGe@+Mu5S zQV7TGm1?GCs&gR=;=NxOB9+4G@VSu|-FPsO+Wcto8NFSpHEUKB8&k*d0~)G`#QrkO zmp2}1&ex+>p1|b65#32N0q2oEpZZa)9F%#nEBGLz!QS}E8PntS)GF%PV<<)M1%4%i zE}(Leu_nBJ9brwBg?_%AqHs;rLVpfGc@b)<)|3j93X2gHv0)8^wtpDULDUVC>W5j} zlEzoW?!-DEB!^fbTiD3oEhJc z^IO@vD2uEn%aNkpxJu0oa!(cc%41uV-^sXf?rt$3XJ*mS4$u3lsRoW{y4RHjTOTcr~P{o=f_@uL%{ca^Br@&At>nmGnZ+@^?t5`#bnbXD}DEdgrt8Z z%f;~hKIzjg-`O+w?Mk9julFk)R|CC_k`RLzmbLxp;TiqJ^8f4XETGzYwnks9xVN}V zp}4ygr#KXfI}`{IJV+?Ptw=8{1SqK|V;5a(N{4>Q`Y`nKW0s=Z2aj?aG=zFRpB4;>AS7-NLTNZ9aBHD z&p?GI6-G_S+><%XLg17O$l=P==X&-gAdL4|k%$IjuJ`J2;k9EjIYz z+c4WOgjuB=?es1vfbu1iuTt=gr_>hBY`$PF}m!O@as9>bNbh z65rG09oy{a_OC(6?Yy}TR`V^f;QkZh9~8m+T1orqoo0#RlY${V+0KJDzjo$qPH#ixV%bl$3l^@hwzd+kmTJ;Fu5yiUwLkB& z=~vCz=Im}GI?+q4Wv^`1WQQ%2t=Oa!tFqc1O5*PJsa*7=v0x1_gl5QPw~+#4u5ls1 z-G@Q`z4x|0W+ReJWT(PJYf@t*#ldEE2i<0Ta2U*YI2#!}u~=VU%nZhYiCSw;WT(Jh z))dD`ir%)`n4^G47WM7SQ(=x4n&h`fu;WjXPvL^r=2?fDM8^RRkKtc58SwzvN)L*Jrg0?P6+VkXPQqZ0dQ(n=#S` zTl-J3>w3)j!Cv0Z*h4)={B~Z}&e#Jzdi;n#Ae^!LdbIeZy~H8OR2RJbxkvk=zIFnm zzx%w8L?`68_CAm|%?@jC+*e^t7C*!K@jKMe;uq>kqj(EfoSl>hzwpwqb??}wOwNrcQ`zZ_VeSk4e} z<-ByP05MOR@Nb8pPnh-o#y{4*;pOiXCKJBBZvL1^ZsOT8r<8_#!Q8JElfQI+C*DJg zDOYPD@Letgd^8hvK`6yvems!8=OfX`bd}+Vl>Nky>JOnx^Gd@V?9biBU-A z{6^>fualkBCQ?cDD~c6i2n2k8N9wb*yBL1(YC2)3$U7EtI2F(?)E?d)?nfp|Ee2em z)txJz%vmoQq4{k&fAzb_D4MSNBd&sIh1{U=hNH4mWUp2|J*He6F4Qo00p4tf+-8g6 zO!*4aDrPgF`Bu=T*{?fBh?})ah(UAq7b!lNAGbz}9b!L`Ik4fKJKA1dSiqcZO zz^KxA|9Vkg;Gd5k$tLR6%%Zq!SJfrV-c0FzZkh73^;RLTI4q(J5I=SOcmv;21V~F& zrQUvWXKPxLD9pmY&FqWH8gY(JhLaL^`3LCgMoxcnHxb^^!%O$eg&U++8?y@17+FC)El1RYhe0$J()l( zU++QdRT9j6UU;^I9uiYx?F0)~P_sgRMO&+uPQ+juGq(Infw z3}?Kg=X@2x2Qjs(0l7Z|%vVu`WkAbE{6pea<8&yOUq%V)HYED!mf5p->Q>pad@s?d zq^5n&$G!s4k*2Uy1$V7Bgh zrjRcuxn!*(dps*or_2L58q5yARSuc730cxL=E7z3Jn{tA0P-J?nT%rI%k-=CPd-vn`R%%Dp^^K zbn(0Zo1c$5jT-a{;))cse;MgI7s@-9FRK*7w-&k{&da6!Z!Rt;2Xi17E7duWJA>bD z&lE`Fq-k6};k>41Mt)7nyyvD%4f&|6?2{y*4B=yfT%VV3K&~%F7hWIN&zVd4|LG7` z8zeS;INO;Eys$}mPu+b&7oPkc;Ie<;*vg9o zfeqP^Ehe}X3e+$rmRcyS}n~0RAcW-figx_!EJUozhGbd?(Nknp?Wm+yO zc%8Sba`2GEx~OxU<>eZ=KCuLPYti2)0>N|O;w$ZE7;;XsAe=45C6P(g&in8s%vJED z^w$!=`Lk@Y2%jR-jye%DhTSwBy>gL|idH@$EiaR=1F7UX<=W@uY4C1vQdY{qYkJ$_ z3!Bus8JkQXvN$I$5y#5n{JXuu`swA0g5AR{VWR{Fd4VX5Jc+1py;i~61*rWZoREnm zdNI)zF<50zIvc)JH=S+$9jLKMR0tE?N z%sl&ao~PQnN?>yNLY_P;f@J%jI8Wi8cxPiFr*`#}m#=g`xnc50st{}AEHEfRHg|s?4*|A&BWy?MPR2!pIRz9h|%$^14s8TWBW`Yjf%=gcI(5 z&YPT$p=h_ntmq*0v57@~w#(9d1<>|`KZFnQuW&#+xA4q6KF2CF^!3HD<=8Ep~154Zjup$Ary2cC|kX;994v?}Y zJK2_{8JOcIT+wlq0H99w{u`?m#X~h4>yG|}SkkLSLU?daydlJDr{zEa}o;Z9{|>ny02o*_09VZ_le75v5m z?0x=p=_yUSOydV7X^nb*2$Sg^hQE~>7fvQ;hPaaj9U!`vg)oGwo#D7^Byo7HT|pd; zU$lifY^j$(JZMxB$3Vz?v4;nAt1UScy9V1LN3750=L7XaS@K`|gY#d5ct&=fTQ`Y;h8HX2OzRX3sHtrP^zhGcn0INOa%70ZEXdl{4LMfs z21>)zmbKK7>#Qj&q3!YT(fSVul^=}Tuhf9(Ew!V-h}xm}#qsbkNFPw>M+@-{T#>j5 zOy&!^X!mmK3)`-&)B4zFXnR3-YFF*f*d&rF)6GniiRQ1n{j?9ZS?A@7O;XxiXidm? z?M!5u|4dkcMC?<%AqNvv7p@VR@&kpHkke_6Ob`J?Cwc)Hkhl@6!q;+{Z}mNGBi2=p ztzTWCRw7m?LpQCX4dG+KU|Dg3{lgw`w+Q*Fve~*T(#^SSd`)-r$Fr+L4ItC>JGK$n zs@L&qGla8;+&I<1s-%X>?b8hBDb@2kDwBB){(s8HmZG;E^dWU>V~`xf%obxU@~uodUymF8j2T__n;>MNk}!9R3vq76kFZ$8JksyPfh zqkr~A*E%P2oqS}k9`Sr#@=Lr=)Y#l^BKvuu(nu~ImAkLMUZP7Px13%@+7 z{Zx;xU)hqn;uTvgo~$N~?tmJ6TB3BMigGbi z%RbZYu4(DT3v)ZxA(Lg(&6N9SE6dS8?0nxsoPF574A21TpEe+A)26~H2~sd>Rh@>2 z=s_$(h)SK>zhIK>_Z2jxNeW@<1@?S>iiU$Yy|oNzk~&-%@ypEG3T2kSVTCe~zvL1a ztuDM3CE?wIhVg>N!F_&)>u4|^I*TxHDZh7tyGzc1D5+z{P$*H8yyGw$abaRr@nZEzlVmUFFqjW^;V&rtHud^PP7p&5Tk04yW5+HXC*gY z*5q1MKt;~vVK0xj=dcxD$nnYnv`IV|lU&P-p4t$ZsmEAP?X+l!hz>Kr=T_)_4r!XH z$1QH;CD&>j+?W0|{^atlMC(ggWZku2lv%>-)8m=8e6m+9jpT@Nnacwlc8f$UA;JGz z@~abo`SCZ(HzK+Vjfj}sl<^>zddJjCM`L6ruGSZ-fql0%%&)fJL&z|-ybNg(1+POn z6BE>_{yu6k#uuzLP938N>wdu|)S-ha8_bU!13fn@s|9~o$S6Oylajdn!WLEnbk#&~ukQ%t$EgvDowf(5oJh1$ z3q@Q=NsD8qQ;uI%_>O=B5WCm%n~=C>_9@?wQ#Oi2+FQN4*xVl=%8ody+Muew2iP|v~vyx5PYXJ$4(=ISozto)1Eb3jw5 zr1mSK#3q@}2MVs1AYQ;Kq4S`^qWp~QkHywY197Y16};o?=z*wM%`3DCjp)s)YRJhK zjBAzHEMoc%7ZI-?E3KC+0RNF>%{CKkE~6UNy3Js;Hb!hNR(r)*)r*s8j-*@ce6beb zN()fj{DrB0)LI!DX`ArQjO{&0oWukJm}=cqI0_ObIeK3(^J2kSe8G9(fH~+7*~NLa znJs*Llda(kkc7z3{G0W2z?J8pLP$OC10eRyXvc=SpM&b&)eHqMLzHrRZEKIO?G@8f{s*PSUY!w2mymUaERyJ^ zDZoUmuVI8;WkW@eX$FVmIZ%+p@#C5gDF}1}tnS_-hfz>56bL>6|8A+My|)bOZkJFr z(qH0y_Z~@;raTVpZ-XDVVcu?X1RIf`_iEHzdsQnRwcuq}*HBe23~cE4HEKV+CMxMj zX+yG}+y{0GfOVQG#5cw(Amu!EUa>R4oE6o~z1pK|tYTBkCa5-iE&%uP&b6ze?rhYN z>EK|-cJ4a(7n)+;VBQXUBplZQw^ypR!eX&Vd6HYzBe_G*sj95gxofihLg#snU=u09 zvGtrA`gHm$m$qqakJ~c{msiQiF&kCLB!+9%S50On?(*{wm`j#0$ox%QHP3bgsVy#H zR~M@z*>61s(_Z@$qn?^I!LW?7Kt|EdK-PG@LCHRT6=N=r%l>CGbh1LSyvPro8I#J6!;15~gDwM9#Se_-r z!G?jT`nVYi7W;8Wqb+12^IWHRg+YC~E!jFV3s-u>YVKw&!`=w|Bte|t-R|{unL#t< zzGLwUU6QXxgV(z*9p~!d;+I?wmZlLRofoZm(>Kk=v0jl2kiio`MX#pb%sTsZ%jFn# zD$n2xpU98PM%)1pBXw21`W~INO$=8<$6^w^AAfy557bFH{$+KMcfkI|HCJa|kv@>k z3*k@H$X@s!#u9j}5NwAbIPXRMBX`m4N#SpUU;dc0oh;S*EHr|%7rT_l=g(hO>a%29 ze51go!J2I_JBPp{gRY-X{6JWS5o^+yRk&@7$|wKo+k7qGVHgDG$XktZcn!mqhL=y= zAln-?+p}>8ZQFs{8!^v#FPAYdW-2J3o_p%e*GHL?CJQRwo=lYsjv|`P(!KHiIs=}Y z-R?*aNB$*ygm#K{CAuU0=VmJva&z;&xcXjc(IHnB;&=588%nxtOb_DUzR_R*e$9S% zq567(pl!G|g9;(o<4s%Q1t;8Qj=Xm@ao4nt!gUTlw7MUSI9xiOALCoJ1vkA~c)(6< zk`?|eW;`3Kyw&ewpwCnYbUk`nj1W$RK!s1Y=Bt&E`%B%Kag8d{Il1oFR^}Gna$ta_1i5F>k%q2I*m3YZlG6J$T=5ZZ=RKA{I82C-=peeWbA7(oE`1n(OVo+Bwg?NQ{ z1^7kz1yW67Q7Qf{3W-JSClkivR&;Rp@T3#s`L8(%p8S0%u%7(r>6KYYn491v@l>zgY zF=SQ(HaML~9~*Aq$6eniNKrc4+VZf{by0)c-PQ8;V07{?(TnX;^I6huZuc+zK`V34 z9$?xJUTZ#s6W0f=PX?XCH}e)sY$*5Z(=!;YJpvv(@pV- zXmEQm5Bn=ZFfaHx@wW&Pp)q_d7dY^dN)Fqj0Z8@5lD0}!qDg#oJ*)61y@)U+*j1s2 zr!$t2ljW6{ zm6hj}=M@l<6%iH^;o(8Vcm-vIWfVjdh4`fC{x2p32pdFEYPLW-PkTB+US7mTjV~e0 z%MK+RD~1slX5ce^7uRod~`Wy7R|Iqqj=EM`osV4@4T2zDb8c`7T6 zq*XdXnKuLY(J$C^1QwYtqEQG#1AFjgUgFsDEO!Z;)A)6)nd+HNLcFS>eqLf(6MqUd z>;mj6X2{P9CVrDD#Saus#CW}=AAbHLa;ysT0-Tkaelx+RRD=d7oj~&T6&DMH zR8NBU-!0}f8gS06Vy(=+EzMe3#S@Ffx z34p4dB<&-Klz0C8Z|kk z0Lq<3AbIDmcc{DJ%V^MMb;2rRKBKv*h#{?@s0 znPgnsN<2i{E~lelCki7|4bKza^Ld#Bs-7-(Yaz=C%#*-JXw;zh07?Nbc#jhl1#t8A zl^tz+K1jv>JS#90C2O`cQ}HDFaz*s ze{KX#NEs9fK`I+%-`LSsXn{*e#(gdhS$BF{0HXps@{Y6H0|U9+3=5_Gv8H+Cw5}n` zzR>2FX3>n`4!kB104iF&g_p6uF#v(?HNsS)g~#a^gc|D z&Cfcb56;b(h5@tQpH~@q7NsHDzgb|^98-d5#|+>?jwiRY9)F^&Uo!IZcUTCbCcM<< zDb|lx!OH+>WXXh7a{-BYOhEfngerP@=qn6pV`4{Z@t0IvE983Aouqbh3o*hfApiM3=_TX_S7S zL71KE#x|Y48TZ+4Nr!=UnBAtPm)>dI=p0JT$6)(a?kg2gM#SS^zI6^;mK&drRqhfx zf~`P0ccQXcisp!7O0VY*r65yO5txEMTCW7{y49e~L*Vp!i^gSQXj^(B&&bqRdpTl@ zCA={`<7$wx2aV?(sC4aHCO-D;U7455Ut{mAY;DQ}Cm$?b4@XS1Rkb`zDb0G@R@6fE zwtHkY?RM*MXYx-JA<6w5#%RFQMPK@?;d^14O60AhoBgAkvLhNu*iNo2DQUqCPi>wct8R%_^rSbKp2(H~G zM`p<7#~!q1jMPoOzLOX*l-_IpG=36<_HznoB4dCdxy2b8{yp-Q4WlfvgC9oxCa*+L z@i|U*FSZY6^`;=CJ*eqCyH*!Rin#Bi2bI+qQ4}j5QEV$MQB2;XOcdV0OmtqSOnhDg z6AWH?6C7S16D(dT6FgoF6HG@-D0XYM7-bhBX#<;=6iAq+KhQ;zY+v0OHKeU{+(KCx z`W$Dss4-+~MHe4uxd;@LyF5$7^D1K*J>2#Udbfqs5djq>NLvHHJvNatL7g0^POYBR zn-jIn%d?uEj*L=RN?hu(t0)1+%G2)?)$sHD%81Z$cxga{%y@cD_DSEI%Yc{ymNy5)(*AEzZy2UXgE}#O zDtzHaehFVvn z{OtAjJvTjusd%?GjGs$qiQnSEul%JIw|HSMAf2>I`%ScRPU|;nS81maql{IX3??YZ zHv^OR9u@`5(ph5CZTwZQgb-hI2V?x??$zUAIyFZ}*?Lfy_OG|Z?PC!hIZ>70SZvhv zCuTb>n&7^Bn<Q$<5lIQ5+Z8m{IjHx|)EA;4w3q)v7&OrIiV;25B}fsE zLezfu%LUpL)eGN|1Wh?L+R)r6Vn{!SDp~qx~+&*|1(=EDa9uBcN_}aG0=wulI_x>bzK)lsEf!#G?xGn(IdwtJ z|8tvR`PX>u%`K8x#ua~apcx<;SBH()lRbMqVy?ugXu~2Yh86MVU=sbJk5B~f0;YUr zJ{HNc9!Bi?R0C2tu@NAcErNTnDPa;^U;1V;%8tJoE8pdzT2tW!Yc= zRgw~6P{MteIko0$IJih+Iwo!Z@OHD8Wx5@IpLXrH{Gb4BFL9*9DSzbf33lYm6ZXg` z7^RYig^^fNNG=u5o&_tq+;&7CeiUsw5U+RdFk>rc!y7^_XGu2FqlFjl&huYpy|ypa z0}8Co6t7&F`+jQ8hw~zQBv`R2-|@T%?8CQSR=RU#fdxJ1i8vf7Am5sFz*&?k<-&7XWU-@^;URQJXN6A~T;`F}E>6N68?$+W6huCe=#~}Z> zheUf14IpYky2+qCe9ni_tMw{;VN-1N2@?4_G9g)X|2daDStPAg;OG9n=Y7x`X&cDU z!+F|=Of>qR+A81Qxakq`J`2y~!3nb@v-COc-(u|{i|LhDQPLbFuD2vw4-(}e-IpO1 z3Z^|@A4?)RiESE>K&v4jf%I4zAgfxEb3{C^A&NosE4QR}LJkQvQ@d%BRr}Qxf*DYa zUi7QO)Piqg1*K?9^73*$JShdjT{Y6s*@UmQ4@U1k3z)oX_r@6;0kd@5my&LecY}+& z+uOXKjx~Z2N7cp^35VWKxLYL8o3-#)7X?cfYU&o2Nmzy}Hn5i((u{qzDJ2o;;Dh0^ z>8B!Y)-OZbW6e`_EEzV`qw0fJ9ecC=6-uvcJwf+XYN`VISk_&gH~Ul;bSUR zb~28*0?$jx&bgI#qyjxjn8CAu54@r$>G%5h2~pSeX!e)t5Hj@SNLdD~C|0JtkBVyRV$o{RiZO$%bGV4MR=ES6ZG42dJAiUMyYS~x{zYpV9VO=)g5i_)q=4_{+srqf zqku=sHJcDYmo}vR;-44XgW`w4@4(jx7O?a=3@%m%Bmy^5{+-d3e^Hmx1F}}hxdTBm zGyk#?n%}odh@BHknJ05XygS&Fk_Putk@gV6BOrZkulk5JJ9=gID&L~c{J%KrtCU*& zv~UFF)INz#lDhYHW5{Zb9ZutE5OY&?e&jZr*AJa2rbk4r8|P4#mC_6L;4=8Z?kiI} ziigfk{vSvj%YHAi0mcUlUJfL=i|@8Ih$jb?MVx&3J4NZZI;{DxVg~reJv;$^;;=v( zSg2_YCA`~g5&d@S300_^#gJ47bKzwC;1XUhp$OI>-F(A@uP0W_S@C4IVI+$cy+DY; zLpv@nw|LsOvwH`sYlc4AL)*y0iDLrn%vwKR(h7*7#s)fj^306Id-oecgXGKr!@3865 zB)nhdn)7cAIUmsvX>oXM{YVRvkgVE7B)2cS1BZU$PpHeFXd~pw4D%z<|3)hFBer{0 zNk{lQUuILzWXF~@kpI@EGP^udXnXuEsnMq9k%G1c9@9GWI=yW5@5j<4b~{bGO)-KF z5Du>$d6SgdDk?5(!E3b7ys6b=Ztr9k{W8BvOGWQ!8+QgZK?sOz4d`ehq6CDFv1`Mr zu)7j1TD;xy40f|J(NjPyh<#1#7SryP$s_)hFg;~2&X>_;ops{Q{%M9mtMZ+tY zHHmwZ9R~4mrQvHvToEYx3T~dRh8nw4o_3r1AWd!pRQ_CMxb1>nX=%PP`ruq}zaoo) z{t+f%e{eE%`ka>W^`L#PeJ|zmlH7t&nnlWv$BqYIa&pEXo$@U97g+Yv0Lmh81<@5& zwO)}TwSpTlSD*foivRN?=1;H*L{kx5TV*B&VzGmVJnXZ{1bKWO3j5EPj!EFZ%z^~;aKY50seQtHRFC8;Q>TT@?WO9 z=Ax3NLUK_t|ARn>z4V?Cl$#=kMGbXvPq~a#Ff0NTd(=)!q$JCQqAaBTS#iXaz3c>TcQ$SXb!NE;+;n6 zAkuRpvmQqu6c-uPuWy-=lQDD|w4z@9r+^+Q;!5=~GWz%b9SFkYJ6oT$s&&%?pVZ(X z_Jj5DPQw43_5Y#N|F5qg$j{dh2`67Mu)*08luwNZKqX^4)@ho)L%Ay#2`#Giym4SP zM+0I*IFWy*oQe(y79e+yz#JuSyv1MNvd}M5J8-$zenXr7l(k`4dC0&(HERWJIA0%D z1mFp@eZ#56Q47*E@$f)SMpJNf>qSnhDfilE@fG23vG1RNAkLoF83RQE@Y2GI^>GK- zsF%d@r-6sdtDWh2fzFG2p9aqU7v z)x$?=Ui|)S$gA7;bsFivOE=uwW8(kc8JlPxi;ExYm|VU6--S@myP6gD`uEH$Pgi<` zTE~D1PArS%2`!1_!)beWW8pPpcr{}KQI8)8uy^dw+cZv@wD-@Jcx#AXh$9tsrj47Y zN%Qhccce*|^0#U5uc-0gs_@^I@rgg@&(P+3%KtYR&-p0N_#j#~pfFqEo`L=`jsCH> z(_`yXWACQMm|oT=FxT^B5$61l{OM7?W3U@zvxB_4L+|@9!9OGa=lsy?>`MF({+ShO XMXFOFDh;*>FCQ-!GqZxGBG&%`WSvP| -- GitLab