From 1fab6da6c5f22c2d80a950197cae2f986e0b408d Mon Sep 17 00:00:00 2001 From: Sarah Lawrie Date: Tue, 21 Mar 2017 16:27:31 +1100 Subject: [PATCH 01/68] README.rst --- README.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index e02981d0a..e83128502 100644 --- a/README.rst +++ b/README.rst @@ -9,7 +9,10 @@ PyRate - a Python tool for RAte and Time-series Estimation PyRate is a Python tool for estimating the average rate (velocity) and incremental time-series of surface movement for every pixel in a stack of images generated by interferometric processing of Synthetic Aperture -Radar (InSAR) data. PyRate is a partial Python translation of +Radar (InSAR) data. It has been designed to use GAMMA or ROI_PAC format geocoded unwrapped interferograms. + + +PyRate is a partial Python translation of `Pirate `_, a Matlab tool developed by the University of Leeds and the Guangdong University of Technology. From bcd8443d815db0965695464685c36fa7043ad75b Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Mon, 20 Mar 2017 17:58:34 +1100 Subject: [PATCH 02/68] refactored pyaps and timeseries --- pyrate/pyaps.py | 422 +++++++++++++++++++++++++++++++++++ pyrate/scripts/run_pyrate.py | 2 +- pyrate/timeseries.py | 48 ++-- tests/test_aps.py | 24 +- 4 files changed, 461 insertions(+), 35 deletions(-) create mode 100644 pyrate/pyaps.py diff --git a/pyrate/pyaps.py b/pyrate/pyaps.py new file mode 100644 index 000000000..c09020ea1 --- /dev/null +++ b/pyrate/pyaps.py @@ -0,0 +1,422 @@ +# This Python module is part of the PyRate software package. +# +# Copyright 2017 Geoscience Australia +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" +This Python module implements atmospheric corrections derived +from external weather model data. The algorithms are based on +those implemented in the 'PyAPS' package developed by Caltech +""" +from __future__ import print_function +import logging +import os +import re +import glob2 +import numpy as np +from joblib import Parallel, delayed +from osgeo import gdalconst, gdal +import PyAPS as pa + +from pyrate import config as cf +from pyrate import ifgconstants as ifc +from pyrate import prepifg +from pyrate import gamma +from operator import itemgetter + +log = logging.getLogger(__name__) + +PYRATEPATH = os.environ['PYRATEPATH'] +ECMWF_DIR = os.path.join(PYRATEPATH, 'ECMWF') +ECMWF_PRE = 'ERA-Int_' +ECMWF_EXT = '_12.grib' # TODO: build dynamically with closest available grib +APS_STATUS = 'REMOVED' +GEOTIFF = 'GEOTIFF' +ECMWF = 'ECMWF' +GAMMA_PTN = re.compile(r'\d{8}') +ROIPAC_PTN = re.compile(r'\d{6}') + + +def remove_aps_delay(input_ifgs, params, process_indices=None): + + def get_incidence_map(): + if params[cf.APS_ELEVATION_MAP] is not None: + f, e = os.path.basename(params[cf.APS_ELEVATION_MAP]).split( + '.') + else: + f, e = os.path.basename(params[cf.APS_INCIDENCE_MAP]).split( + '.') + multilooked = os.path.join( + params[cf.OUT_DIR], + f + '_' + e + + '_{looks}rlks_{crop}cr.tif'.format( + looks=params[cf.IFG_LKSX], + crop=params[ + cf.IFG_CROP_OPT])) + assert os.path.exists(multilooked), \ + 'cropped and multilooked incidence map file not found. ' \ + 'Use apsmethod=1, Or run prepifg with gamma processor' + ds = gdal.Open(multilooked, gdalconst.GA_ReadOnly) + if params[cf.APS_INCIDENCE_MAP] is not None: + incidence_map = ds.ReadAsArray() + else: + incidence_map = 90 - ds.ReadAsArray() + ds = None # close file + return incidence_map + + if process_indices is not None: + ifgs = [itemgetter(p)(input_ifgs) for p in process_indices] + [ifg.close() for i, ifg in enumerate(input_ifgs) + if i not in process_indices] + else: + ifgs = input_ifgs + + lat, lon, nx, ny, dem, mlooked_dem = read_dem(params) + dem_header = (lon, lat, nx, ny) + + incidence_angle = None + + if params[cf.APS_METHOD] == 1: + incidence_map = np.ones_like(dem) # dummy + elif params[cf.APS_METHOD] == 2: + incidence_map = get_incidence_map() + else: + raise APSException('PyAPS method must be 1 or 2') + + list_of_dates_for_grb_download = [] + + parallel = params[cf.PARALLEL] + data_paths = [i.data_path for i in ifgs] + + if parallel: + aps_delay = Parallel(n_jobs=params[cf.PROCESSES], verbose=50)( + delayed(parallel_aps)(d, dem, dem_header, + incidence_angle, + incidence_map, list_of_dates_for_grb_download, + mlooked_dem, params) + for d in data_paths) + else: + aps_delay = [] + for d in data_paths: # demo for only one ifg + aps_delay.append(parallel_aps(d, dem, dem_header, incidence_angle, + incidence_map, + list_of_dates_for_grb_download, + mlooked_dem, params)) + + for i, ifg in enumerate(ifgs): + ifg.phase_data -= aps_delay[i] # remove delay + # add to ifg.meta_data + ifg.meta_data[ifc.PYRATE_APS_ERROR] = APS_STATUS + # write meta_data to file + ifg.dataset.SetMetadataItem(ifc.PYRATE_APS_ERROR, APS_STATUS) + ifg.write_modified_phase() + # ifg.close() # close ifg files, required for gdal dataset to close files + + return ifgs + + +def parallel_aps(data_path, dem, dem_header, incidence_angle, incidence_map, + list_of_dates_for_grb_download, mlooked_dem, params): + if params[cf.PROCESSOR] == 1: # gamma + date_pair = [i for i in GAMMA_PTN.findall(os.path.basename(data_path))] + elif params[cf.PROCESSOR] == 0: # roipac + # adding 20 to dates here, so dates before 2000 won't work + # TODO: fix pre 2000 dates + date_pair = ['20' + i for i in + ROIPAC_PTN.findall(os.path.basename(data_path))] + else: + raise AttributeError('processor needs to be gamma(1) or roipac(0)') + list_of_dates_for_grb_download += date_pair + first_grb = os.path.join(ECMWF_DIR, + ECMWF_PRE + date_pair[0] + ECMWF_EXT) + second_grb = os.path.join(ECMWF_DIR, + ECMWF_PRE + date_pair[1] + ECMWF_EXT) + # download .grb file if does not exist + if not (os.path.exists(first_grb) and os.path.exists(second_grb)): + # download weather files at 12:00 UTC (other options 00:00, 06:00, 18:00) + pa.ecmwf_download(date_pair, '12', 'ECMWF') + + # rdr_correction(date_pair) + # TODO: lat lon correction when lat and lon files are available + # aps1.getgeodelay(phs1, inc=23.0, wvl=0.056, + # lat=os.path.join(PYAPS_EXAMPLES, 'lat.flt'), + # lon=os.path.join(PYAPS_EXAMPLES, 'lon.flt')) + # aps2.getgeodelay(phs2, inc=23.0, wvl=0.056, + # lat=os.path.join(PYAPS_EXAMPLES, 'lat.flt'), + # lon=os.path.join(PYAPS_EXAMPLES, 'lon.flt')) + # LLphs = phs2-phs1 + # print dem_header, mlooked_dem + if params[cf.APS_METHOD] == 1: + # no need to calculate incidence angle for all ifgs, they are the same + if incidence_angle is None: + incidence_angle = get_incidence_angle(date_pair, params) + aps_delay = geo_correction(date_pair, dem_header, dem, incidence_angle) + elif params[cf.APS_METHOD] == 2: + # no need to calculate incidence map for all ifgs, they are the same + aps_delay = geo_correction(date_pair, dem_header, dem, incidence_map) + else: + raise APSException('APS method must be 1 or 2') + return aps_delay + + +def rdr_correction(date_pair): + """ using rdr coordinates to remove APS """ + raise NotImplementedError("This has not been implemented yet for PyRate") + # aps1 = pa.PyAPS_rdr( + # os.path.join(ECMWF_DIR, ECMWF_PRE + date_pair[0] + ECMWF_EXT), + # SML_TEST_DEM_ROIPAC, grib='ECMWF', verb=True, + # demfmt='HGT', demtype=np.int16) + # aps2 = pa.PyAPS_rdr( + # os.path.join(ECMWF_DIR, ECMWF_PRE + date_pair[1] + ECMWF_EXT), + # SML_TEST_DEM_ROIPAC, grib='ECMWF', verb=True, + # demfmt='HGT', demtype=np.int16) + # phs1 = np.zeros((aps1.ny, aps1.nx)) + # phs2 = np.zeros((aps2.ny, aps2.nx)) + # print 'Without Lat Lon files' + # # using random incidence angle + # aps1.getdelay(phs1, inc=23.0) + # aps2.getdelay(phs2, inc=23.0) + # aps_delay = phs2 - phs1 # delay in meters as we don't provide wavelength + # return aps_delay + + +def geo_correction(date_pair, dem_header, dem, incidence_angle_or_map): + + """ using geo coordinates to remove APS """ + + aps1 = pa.PyAPSPyRateGeo( + os.path.join(ECMWF_DIR, ECMWF_PRE + date_pair[0] + ECMWF_EXT), + dem_header=dem_header, dem=dem, grib=ECMWF, verb=True) + aps2 = pa.PyAPSPyRateGeo( + os.path.join(ECMWF_DIR, ECMWF_PRE + date_pair[1] + ECMWF_EXT), + dem_header=dem_header, dem=dem, grib=ECMWF, verb=True) + phs1 = np.zeros((aps1.ny, aps1.nx)) + phs2 = np.zeros((aps2.ny, aps2.nx)) + print('Without Lat Lon files') + aps1.getdelay_pyrate(phs1, dem, inc=incidence_angle_or_map) + aps2.getdelay_pyrate(phs2, dem, inc=incidence_angle_or_map) + aps_delay = phs2 - phs1 # delay in meters as we don't provide wavelength + return aps_delay + + +def remove_aps_delay_original(ifgs, params): + list_of_dates_for_grb_download = [] + + incidence_angle = None + incidence_map = None + for ifg in ifgs: # demo for only one ifg + if params[cf.PROCESSOR] == 1: # gamma + PTN = re.compile(r'\d{8}') + date_pair = [i for i in PTN.findall(os.path.basename(ifg.data_path))] + elif params[cf.PROCESSOR] == 0: # roipac + # adding 20 to dates here, so dates before 2000 won't work + # TODO: fix pre 2000 dates + PTN = re.compile(r'\d{6}') + date_pair = ['20' + i for i in + PTN.findall(os.path.basename(ifg.data_path))] + else: + raise AttributeError('processor needs to be gamma(1) or roipac(0)') + + list_of_dates_for_grb_download += date_pair + + first_grb = os.path.join(ECMWF_DIR, + ECMWF_PRE + date_pair[0] + ECMWF_EXT) + second_grb = os.path.join(ECMWF_DIR, + ECMWF_PRE + date_pair[1] + ECMWF_EXT) + + # download .grb file if does not exist + if not (os.path.exists(first_grb) and os.path.exists(second_grb)): + # download weather files at 12:00 UTC (other options 00:00, 06:00, 18:00) + pa.ecmwf_download(date_pair, '12', 'ECMWF') + + def get_incidence_map(): + """ + :param incidence_map: + :param params: + :param inc_or_ele: 1 when incidence map, 0 when elevation map + :return: + """ + if params[cf.APS_ELEVATION_MAP] is not None: + f, e = os.path.basename(params[cf.APS_ELEVATION_MAP]).split( + '.') + else: + f, e = os.path.basename(params[cf.APS_INCIDENCE_MAP]).split( + '.') + multilooked = os.path.join( + params[cf.OUT_DIR], + f + '_' + e + + '_{looks}rlks_{crop}cr.tif'.format( + looks=params[cf.IFG_LKSX], + crop=params[ + cf.IFG_CROP_OPT])) + assert os.path.exists(multilooked), \ + 'cropped and multilooked incidence map file not found. ' \ + 'Use apsmethod=1, Or run prepifg with gamma processor' + ds = gdal.Open(multilooked, gdalconst.GA_ReadOnly) + if params[cf.APS_INCIDENCE_MAP] is not None: + incidence_map = ds.ReadAsArray() + else: + incidence_map = 90 - ds.ReadAsArray() + ds = None # close file + return incidence_map + + if params[cf.APS_METHOD] == 1: + # no need to calculate incidence angle for all ifgs, they are the same + if incidence_angle is None: + incidence_angle = get_incidence_angle(date_pair, params) + aps_delay = geo_correction(date_pair, params, incidence_angle) + elif params[cf.APS_METHOD] == 2: + # no need to calculate incidence map for all ifgs, they are the same + if incidence_map is None: + if params[cf.APS_INCIDENCE_MAP] is not None: + incidence_map = get_incidence_map() + else: # elevation map was provided + assert params[cf.APS_ELEVATION_MAP] is not None + incidence_map = get_incidence_map() + aps_delay = geo_correction_original(date_pair, params, + incidence_map) + else: + raise APSException('APS method must be 1 or 2') + + + ifg.phase_data -= aps_delay # remove delay + # add it to the meta_data dict + ifg.meta_data[ifc.PYRATE_APS_ERROR] = APS_STATUS + # write meta_data to file + ifg.dataset.SetMetadataItem(ifc.PYRATE_APS_ERROR, APS_STATUS) + + ifg.write_modified_phase() + + +def geo_correction_original(date_pair, params, incidence_angle_or_map): + + dem_file = params[cf.DEM_FILE] + geotif_dem = os.path.join( + params[cf.OUT_DIR], os.path.basename(dem_file).split('.')[0] + '.tif') + + mlooked_dem = prepifg.mlooked_path(geotif_dem, + looks=params[cf.IFG_LKSX], + crop_out=params[cf.IFG_CROP_OPT]) + # make sure mlooked dem exist + if not os.path.exists(mlooked_dem): + raise prepifg.PreprocessError('mlooked dem was not found.' + 'Please run prepifg.') + + dem_header = gamma.parse_dem_header(params[cf.DEM_HEADER_FILE]) + lat, lon, nx, ny = return_pyaps_lat_lon(dem_header) + + + """ using geo coordinates to remove APS """ + + aps1 = pa.PyAPS_geo( + os.path.join(ECMWF_DIR, ECMWF_PRE + date_pair[0] + ECMWF_EXT), + mlooked_dem, grib=ECMWF, verb=True, + demfmt=GEOTIFF, demtype=np.float32, dem_header=(lon, lat, nx, ny)) + aps2 = pa.PyAPS_geo( + os.path.join(ECMWF_DIR, ECMWF_PRE + date_pair[1] + ECMWF_EXT), + mlooked_dem, grib=ECMWF, verb=True, + demfmt=GEOTIFF, demtype=np.float32, dem_header=(lon, lat, nx, ny)) + phs1 = np.zeros((aps1.ny, aps1.nx)) + phs2 = np.zeros((aps2.ny, aps2.nx)) + print('Without Lat Lon files') + aps1.getdelay(phs1, inc=incidence_angle_or_map) + aps2.getdelay(phs2, inc=incidence_angle_or_map) + aps_delay = phs2 - phs1 # delay in meters as we don't provide wavelength + return aps_delay + + +def read_dem(params): + dem_file = params[cf.DEM_FILE] + geotif_dem = os.path.join( + params[cf.OUT_DIR], os.path.basename(dem_file).split('.')[0] + '.tif') + mlooked_dem = prepifg.mlooked_path(geotif_dem, + looks=params[cf.IFG_LKSX], + crop_out=params[cf.IFG_CROP_OPT]) + # make sure mlooked dem exist + if not os.path.exists(mlooked_dem): + raise prepifg.PreprocessError('mlooked dem was not found.' + 'Please run prepifg.') + dem_header = gamma.parse_dem_header(params[cf.DEM_HEADER_FILE]) + lat, lon, nx, ny = return_pyaps_lat_lon(dem_header) + + ds = gdal.Open(mlooked_dem, gdalconst.GA_ReadOnly) + dem = ds.ReadAsArray() + ds = None + return lat, lon, nx, ny, dem, mlooked_dem + + +def get_incidence_angle(date_pair, params): + # incidence angle exists in unw header files, not in dem + SLC_DIR = params[cf.SLC_DIR] if params[cf.SLC_DIR] else \ + params[cf.OBS_DIR] + header_path = glob2.glob(os.path.join( + SLC_DIR, '**/*%s*slc.par' % date_pair[0]))[0] + header = gamma.parse_epoch_header(header_path) + incidence_angle = header[ifc.INCIDENCE_ANGLE] + return incidence_angle + + +def return_pyaps_lat_lon(dem_header): + nx, ny = dem_header[ifc.PYRATE_NCOLS], dem_header[ifc.PYRATE_NROWS] + lat = np.zeros((2, 1)) + lon = np.zeros((2, 1)) + lat[1] = dem_header[ifc.PYRATE_LAT] + lon[0] = dem_header[ifc.PYRATE_LONG] + if lon[0] < 0: + lon[0] += 360.0 + dx = np.float(dem_header[ifc.PYRATE_X_STEP]) + dy = np.float(dem_header[ifc.PYRATE_Y_STEP]) + lat[0] = lat[1] + dy * ny + lon[1] = lon[0] + dx * nx + return lat, lon, nx, ny + + +class APSException(Exception): + """ + generic exception class for APS correction + """ + pass + + +def check_aps_ifgs(ifgs): + flags = [i.dataset.GetMetadataItem(ifc.PYRATE_APS_ERROR) for i in ifgs] + count = sum([f == APS_STATUS for f in flags]) + if (count < len(flags)) and (count > 0): + log.debug('Detected mix of corrected and uncorrected ' + 'APS delay in ifgs') + + for i, flag in zip(ifgs, flags): + if flag: + msg = '%s: prior APS delay correction detected' + else: + msg = '%s: no APS delay correction detected' + logging.debug(msg % i.data_path) + raise APSException('Mixed APS removal status in ifg list') + + +def aps_delay_required(ifgs, params): + log.info('Removing APS delay') + + if not params[cf.APS_CORRECTION]: + log.info('APS delay removal not required') + return False + + # perform some general error/sanity checks + flags = [i.dataset.GetMetadataItem(ifc.PYRATE_APS_ERROR) for i in ifgs] + + if all(flags): + log.info('Skipped APS delay removal, ifgs are already aps corrected') + return False + else: + check_aps_ifgs(ifgs) + return True diff --git a/pyrate/scripts/run_pyrate.py b/pyrate/scripts/run_pyrate.py index cd775d295..0db459f73 100644 --- a/pyrate/scripts/run_pyrate.py +++ b/pyrate/scripts/run_pyrate.py @@ -43,7 +43,7 @@ if PyAPS_INSTALLED: # pragma: no cover # from pyrate import aps - from pyrate.aps import check_aps_ifgs, aps_delay_required + from pyrate.pyaps import check_aps_ifgs, aps_delay_required MASTER_PROCESS = 0 log = logging.getLogger(__name__) diff --git a/pyrate/timeseries.py b/pyrate/timeseries.py index 4710f07ff..43b13213e 100644 --- a/pyrate/timeseries.py +++ b/pyrate/timeseries.py @@ -49,25 +49,7 @@ def time_series_setup(ifgs, mst, params): # Time Series parameters tsmethod = params[cf.TIME_SERIES_METHOD] - if tsmethod == 1 and params[cf.TIME_SERIES_SM_ORDER] is None: - missing_option_error(cf.TIME_SERIES_SM_ORDER) - else: - smorder = params[cf.TIME_SERIES_SM_ORDER] - - if tsmethod == 1 and params[cf.TIME_SERIES_SM_FACTOR] is None: - missing_option_error(cf.TIME_SERIES_SM_FACTOR) - else: - smfactor = np.power(10, params[cf.TIME_SERIES_SM_FACTOR]) - - if params[cf.TIME_SERIES_PTHRESH] is None: - missing_option_error(cf.TIME_SERIES_PTHRESH) - else: - pthresh = params[cf.TIME_SERIES_PTHRESH] - - if pthresh < 0.0 or pthresh > 1000: - raise ValueError( - "minimum number of coherent observations for a pixel" - " TIME_SERIES_PTHRESH setting must be >= 0.0 and <= 1000") + pthresh, smfactor, smorder = _validate_params(params, tsmethod) epochlist = get_epochs(ifgs)[0] nrows = ifgs[0].nrows @@ -100,6 +82,27 @@ def time_series_setup(ifgs, mst, params): mst, ncols, nrows, nvelpar, parallel, span, tsvel_matrix +def _validate_params(params, tsmethod): + if tsmethod == 1 and params[cf.TIME_SERIES_SM_ORDER] is None: + missing_option_error(cf.TIME_SERIES_SM_ORDER) + else: + smorder = params[cf.TIME_SERIES_SM_ORDER] + if tsmethod == 1 and params[cf.TIME_SERIES_SM_FACTOR] is None: + missing_option_error(cf.TIME_SERIES_SM_FACTOR) + else: + smfactor = np.power(10, params[cf.TIME_SERIES_SM_FACTOR]) + + if params[cf.TIME_SERIES_PTHRESH] is None: + missing_option_error(cf.TIME_SERIES_PTHRESH) + else: + pthresh = params[cf.TIME_SERIES_PTHRESH] + if pthresh < 0.0 or pthresh > 1000: + raise ValueError( + "minimum number of coherent observations for a pixel" + " TIME_SERIES_PTHRESH setting must be >= 0.0 and <= 1000") + return pthresh, smfactor, smorder + + def time_series(ifgs, params, vcmt, mst=None): """ Returns time series data from the given interferograms. @@ -215,8 +218,8 @@ def time_series_by_pixel(row, col, b0_mat, sm_factor, sm_order, ifg_data, mst, velflag = np.ones(nvelpar) if method == 1: # Use Laplacian smoothing method - tsvel = _solve_ts_lap(nvelpar, velflag, ifgv, b_mat, - sm_order, sm_factor, sel, vcmt) + tsvel = solve_ts_lap(nvelpar, velflag, ifgv, b_mat, + sm_order, sm_factor, sel, vcmt) elif method == 2: # Use SVD method tsvel = solve_ts_svd(nvelpar, velflag, ifgv, b_mat) @@ -239,7 +242,7 @@ def solve_ts_svd(nvelpar, velflag, ifgv, b_mat): return tsvel -def _solve_ts_lap(nvelpar, velflag, ifgv, mat_b, smorder, smfactor, sel, vcmt): +def solve_ts_lap(nvelpar, velflag, ifgv, mat_b, smorder, smfactor, sel, vcmt): """ Solve the linear least squares system using the Finite Difference method using a Laplacian Smoothing operator. @@ -348,6 +351,7 @@ def missing_option_error(option): msg = "Missing '%s' option in config file" % option raise ConfigException(msg) + class TimeSeriesError(Exception): """ Generic exception for time series errors. diff --git a/tests/test_aps.py b/tests/test_aps.py index 04d9f6f3a..086bfe7ef 100644 --- a/tests/test_aps.py +++ b/tests/test_aps.py @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. """ -This Python module contains tests for the aps.py PyRate module. +This Python module contains tests for the pyaps.py PyRate module. """ import copy import glob @@ -34,7 +34,7 @@ from pyrate.scripts import run_pyrate, run_prepifg from tests import common if PyAPS_INSTALLED: - from pyrate import aps + from pyrate import pyaps @unittest.skipUnless(PyAPS_INSTALLED, 'PyAPS must be available for this test') @@ -95,8 +95,8 @@ def setUpClass(cls): dest_paths_m2 = run_pyrate.get_dest_paths( base_unw_paths, crop, cls.params_method2, xlks) cls.ifgs_method2 = common.small_data_setup(datafiles=dest_paths_m2) - aps.remove_aps_delay(cls.ifgs, cls.params) - aps.remove_aps_delay(cls.ifgs_method2, cls.params_method2) + pyaps.remove_aps_delay(cls.ifgs, cls.params) + pyaps.remove_aps_delay(cls.ifgs_method2, cls.params_method2) @classmethod def tearDownClass(cls): @@ -113,7 +113,7 @@ def test_metadata_was_copied(self): md = i.meta_data i.close() self.assertIn(ifc.PYRATE_APS_ERROR, md.keys()) - self.assertIn(aps.APS_STATUS, md.values()) + self.assertIn(pyaps.APS_STATUS, md.values()) def test_meta_data_was_written(self): for i in self.ifgs: @@ -201,8 +201,8 @@ def setUpClass(cls): dest_paths_orig = run_pyrate.get_dest_paths( base_unw_paths, crop, cls.params_original, xlks) cls.ifgs_orig = common.small_data_setup(datafiles=dest_paths_orig) - aps.remove_aps_delay(cls.ifgs, cls.params) - aps.remove_aps_delay_original(cls.ifgs_orig, cls.params_original) + pyaps.remove_aps_delay(cls.ifgs, cls.params) + pyaps.remove_aps_delay_original(cls.ifgs_orig, cls.params_original) @classmethod def tearDownClass(cls): @@ -219,7 +219,7 @@ def test_metadata_was_copied(self): md = i.meta_data i.close() self.assertIn(ifc.PYRATE_APS_ERROR, md.keys()) - self.assertIn(aps.APS_STATUS, md.values()) + self.assertIn(pyaps.APS_STATUS, md.values()) def test_meta_data_was_written(self): for i in self.ifgs: @@ -323,9 +323,9 @@ def setUpClass(cls): cls.ifgs_ele_par = common.small_data_setup(datafiles=dest_paths_ele_par) - aps.remove_aps_delay(cls.ifgs_inc, cls.params_inc) - aps.remove_aps_delay(cls.ifgs_ele, cls.params_ele) - aps.remove_aps_delay(cls.ifgs_ele_par, cls.params_ele_par) + pyaps.remove_aps_delay(cls.ifgs_inc, cls.params_inc) + pyaps.remove_aps_delay(cls.ifgs_ele, cls.params_ele) + pyaps.remove_aps_delay(cls.ifgs_ele_par, cls.params_ele_par) @classmethod def tearDownClass(cls): @@ -438,7 +438,7 @@ def test_metadata_was_copied(self): md_s = j.meta_data self.assertIn(ifc.PYRATE_APS_ERROR, md_s.keys()) self.assertIn(ifc.PYRATE_APS_ERROR, md.keys()) - self.assertIn(aps.APS_STATUS, md.values()) + self.assertIn(pyaps.APS_STATUS, md.values()) def test_meta_data_was_written(self): for i in self.ifgs_mpi: From 14347fe9f69fe2b7ebe5dc52330542a1f42dce40 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Tue, 21 Mar 2017 08:33:48 +1100 Subject: [PATCH 03/68] read in config variables for atmfit --- configs/pyrate_gamma.conf | 13 +++++++++++++ pyrate/config.py | 17 +++++++++++++---- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/configs/pyrate_gamma.conf b/configs/pyrate_gamma.conf index 18ffe42c8..ff8e507c5 100644 --- a/configs/pyrate_gamma.conf +++ b/configs/pyrate_gamma.conf @@ -100,6 +100,19 @@ refest: 1 ##incidencemap: tests/test_data/small_test/gamma_obs/20060619_utm.inc ##elevationmap: tests/test_data/small_test/gamma_obs/20060619_utm.lv_theta +# spatio-temporal filter +# atmospheric delay errors fitting parameters +# atmfitmethod = 1: interferogram by interferogram; atmfitmethod = 2, epoch by epoch +# atmfitlooksx/y: multi-look processing for atm correction +# atmrefest: remove reference phase +atmfit: 1 +atmfitmethod: 2 +## atmfitlksx: 1 +## atmfitlksy: 1 +## atmrefest: 1 NOT IMPLEMENTED +## atmmaskflag: 0 NOT IMPLEMENTED + + #------------------------------------ # Time Series Calculation # tscal: YES = 1, NO = 0 diff --git a/pyrate/config.py b/pyrate/config.py index db07e6671..a083e72b0 100644 --- a/pyrate/config.py +++ b/pyrate/config.py @@ -139,6 +139,12 @@ #: REAL; Maximum allowable standard error for pixels in linear rate inversion. LR_MAXSIG = 'maxsig' +# spatio-temporal filter +# atmospheric delay errors fitting parameters +# atmfitmethod = 1: interferogram by interferogram; atmfitmethod = 2, epoch by epoch +ATM_FIT = 'atmfit' +ATM_FIT_METHOD = 'atmfitmethod' + # Time series parameters #: BOOL (1/0); Do Time series calculation TIME_SERIES_CAL = 'tscal' @@ -230,17 +236,20 @@ def method_conv(meth): ORBITAL_FIT_LOOKS_X: (int, NO_MULTILOOKING), ORBITAL_FIT_LOOKS_Y: (int, NO_MULTILOOKING), - LR_NSIG : (int, 3), + LR_NSIG: (int, 3), # pixel thresh based on nepochs? not every project may have 20 epochs - LR_PTHRESH : (int, 20), - LR_MAXSIG : (int, 2), + LR_PTHRESH: (int, 20), + LR_MAXSIG: (int, 2), + + ATM_FIT: (int, 0), + ATM_FIT_METHOD: (int, 2), TIME_SERIES_CAL: (int, 0), # pixel thresh based on nepochs? not every project may have 20 epochs TIME_SERIES_PTHRESH: (int, 20), TIME_SERIES_SM_FACTOR: (float, None), TIME_SERIES_SM_ORDER: (int, None), - TIME_SERIES_METHOD: (int, 2), # Default to SVD method + TIME_SERIES_METHOD: (int, 2), # Default to SVD method PARALLEL: (int, 0), PROCESSES: (int, 8), From f7ef4084f318afc0a500633455bc7c62ab945a32 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Tue, 21 Mar 2017 11:38:13 +1100 Subject: [PATCH 04/68] refactoring for spatio temporal filter integration --- configs/pyrate_gamma.conf | 15 +++++++++------ pyrate/config.py | 6 +++++- pyrate/scripts/main.py | 3 ++- pyrate/scripts/run_pyrate.py | 25 ++++++++++--------------- pyrate/timeseries.py | 10 +++++----- 5 files changed, 31 insertions(+), 28 deletions(-) diff --git a/configs/pyrate_gamma.conf b/configs/pyrate_gamma.conf index ff8e507c5..a82ddad63 100644 --- a/configs/pyrate_gamma.conf +++ b/configs/pyrate_gamma.conf @@ -101,16 +101,19 @@ refest: 1 ##elevationmap: tests/test_data/small_test/gamma_obs/20060619_utm.lv_theta # spatio-temporal filter +# apsest: (1: APS estimation; 0: not) +apsest: 0 + # atmospheric delay errors fitting parameters # atmfitmethod = 1: interferogram by interferogram; atmfitmethod = 2, epoch by epoch # atmfitlooksx/y: multi-look processing for atm correction # atmrefest: remove reference phase -atmfit: 1 -atmfitmethod: 2 -## atmfitlksx: 1 -## atmfitlksy: 1 -## atmrefest: 1 NOT IMPLEMENTED -## atmmaskflag: 0 NOT IMPLEMENTED +# atmfit: 1 NOT IMPLEMENTED +# atmfitmethod: 2 NOT IMPLEMENTED +# atmfitlksx: 1 NOT IMPLEMENTED +# atmfitlksy: 1 NOT IMPLEMENTED +# atmrefest: 1 NOT IMPLEMENTED +# atmmaskflag: 0 NOT IMPLEMENTED #------------------------------------ diff --git a/pyrate/config.py b/pyrate/config.py index a083e72b0..733e35efb 100644 --- a/pyrate/config.py +++ b/pyrate/config.py @@ -139,12 +139,14 @@ #: REAL; Maximum allowable standard error for pixels in linear rate inversion. LR_MAXSIG = 'maxsig' -# spatio-temporal filter # atmospheric delay errors fitting parameters # atmfitmethod = 1: interferogram by interferogram; atmfitmethod = 2, epoch by epoch ATM_FIT = 'atmfit' ATM_FIT_METHOD = 'atmfitmethod' +# spatio-temporal filter +APSEST = 'apsest' + # Time series parameters #: BOOL (1/0); Do Time series calculation TIME_SERIES_CAL = 'tscal' @@ -244,6 +246,8 @@ def method_conv(meth): ATM_FIT: (int, 0), ATM_FIT_METHOD: (int, 2), + APSEST: (int, 0), + TIME_SERIES_CAL: (int, 0), # pixel thresh based on nepochs? not every project may have 20 epochs TIME_SERIES_PTHRESH: (int, 20), diff --git a/pyrate/scripts/main.py b/pyrate/scripts/main.py index 44cb5e7ab..0a8e4f137 100644 --- a/pyrate/scripts/main.py +++ b/pyrate/scripts/main.py @@ -73,7 +73,8 @@ def linrate(config_file, rows, cols): Main PyRate workflow including time series and linear rate computation """ config_file = abspath(config_file) - run_pyrate.main(config_file, rows, cols) + _, dest_paths, pars = cf.get_ifg_paths(config_file) + run_pyrate.process_ifgs(sorted(dest_paths), pars, rows, cols) @cli.command() diff --git a/pyrate/scripts/run_pyrate.py b/pyrate/scripts/run_pyrate.py index 0db459f73..d7759539e 100644 --- a/pyrate/scripts/run_pyrate.py +++ b/pyrate/scripts/run_pyrate.py @@ -26,7 +26,6 @@ from pyrate import algorithm from pyrate import config as cf -from pyrate.config import ConfigException from pyrate import ifgconstants as ifc from pyrate import linrate from pyrate import mpiops @@ -37,12 +36,13 @@ from pyrate import shared from pyrate import timeseries from pyrate import vcm as vcm_module +from pyrate.aps import spatio_temporal_filter from pyrate.compat import PyAPS_INSTALLED +from pyrate.config import ConfigException from pyrate.shared import Ifg, create_tiles, \ PrereadIfg, prepare_ifg, save_numpy_phase, get_projection_info if PyAPS_INSTALLED: # pragma: no cover - # from pyrate import aps from pyrate.pyaps import check_aps_ifgs, aps_delay_required MASTER_PROCESS = 0 @@ -453,7 +453,7 @@ def process_ifgs(ifg_paths, params, rows, cols): cols: int number of cols to break each ifg into """ - if mpiops.size > 1: + if mpiops.size > 1: # turn of multiprocessing during mpi jobs params[cf.PARALLEL] = False tiles = mpiops.run_once(get_tiles, ifg_paths[0], rows, cols) @@ -463,7 +463,6 @@ def process_ifgs(ifg_paths, params, rows, cols): mst_calc(ifg_paths, params, tiles, preread_ifgs) - # Estimate reference pixel location refpx, refpy = ref_pixel_calc(ifg_paths, params) # remove APS delay here, and write aps delay removed ifgs to disc @@ -476,19 +475,18 @@ def process_ifgs(ifg_paths, params, rows, cols): if params[cf.APS_CORRECTION]: check_aps_ifgs(ifg_paths) - # Estimate and remove orbit errors orb_fit_calc(ifg_paths, params, preread_ifgs) - # calc and remove reference phase ref_phase_estimation(ifg_paths, params, refpx, refpy) + # spatio-temporal aps filter + spatio_temporal_filter(ifg_paths, params, tiles, preread_ifgs) + maxvar, vcmt = maxvar_vcm_calc(ifg_paths, params, preread_ifgs) save_numpy_phase(ifg_paths, tiles, params) - if params[cf.TIME_SERIES_CAL]: - timeseries_calc(ifg_paths, params, vcmt, tiles, preread_ifgs) + timeseries_calc(ifg_paths, params, vcmt, tiles, preread_ifgs) - # Calculate linear rate map linrate_calc(ifg_paths, params, vcmt, tiles, preread_ifgs) log.info('PyRate workflow completed') @@ -643,6 +641,9 @@ def timeseries_calc(ifg_paths, params, vcmt, tiles, preread_ifgs): dict containing ifg characteristics for efficient computing """ + if not params[cf.TIME_SERIES_CAL]: + log.info('Time series calculation not required.') + return process_tiles = mpiops.array_split(tiles) log.info('Calculating time series') output_dir = params[cf.TMPDIR] @@ -658,9 +659,3 @@ def timeseries_calc(ifg_paths, params, vcmt, tiles, preread_ifgs): np.save(file=os.path.join(output_dir, 'tscuml_{}.npy'.format(t.index)), arr=tscum) mpiops.comm.barrier() - - -def main(config_file, rows, cols): # pragma: no cover - """ linear rate and timeseries execution starts here """ - _, dest_paths, pars = cf.get_ifg_paths(config_file) - process_ifgs(sorted(dest_paths), pars, rows, cols) diff --git a/pyrate/timeseries.py b/pyrate/timeseries.py index 43b13213e..b2cd33ba1 100644 --- a/pyrate/timeseries.py +++ b/pyrate/timeseries.py @@ -103,7 +103,7 @@ def _validate_params(params, tsmethod): return pthresh, smfactor, smorder -def time_series(ifgs, params, vcmt, mst=None): +def time_series(ifgs, params, vcmt=None, mst=None): """ Returns time series data from the given interferograms. @@ -144,7 +144,7 @@ def time_series(ifgs, params, vcmt, mst=None): res = np.array(Parallel(n_jobs=params[cf.PROCESSES], verbose=50)( delayed(time_series_by_pixel)(i, j, b0_mat, sm_factor, sm_order, ifg_data, mst, nvelpar, p_thresh, - vcmt, ts_method, interp) + interp, vcmt, ts_method) for (i, j) in itertools.product(range(nrows), range(ncols)))) tsvel_matrix = np.reshape(res, newshape=(nrows, ncols, res.shape[1])) else: @@ -152,7 +152,7 @@ def time_series(ifgs, params, vcmt, mst=None): for col in range(ncols): tsvel_matrix[row, col] = time_series_by_pixel( row, col, b0_mat, sm_factor, sm_order, ifg_data, mst, - nvelpar, p_thresh, vcmt, ts_method, interp) + nvelpar, p_thresh, interp, vcmt, ts_method) tsvel_matrix = where(tsvel_matrix == 0, nan, tsvel_matrix) # SB: do the span multiplication as a numpy linalg operation, MUCH faster @@ -173,7 +173,7 @@ def time_series_by_rows(row, b0_mat, sm_factor, sm_order, ifg_data, mst, ncols, for col in range(ncols): tsvel[col, :] = time_series_by_pixel( row, col, b0_mat, sm_factor, sm_order, ifg_data, mst, nvelpar, - p_thresh, vcmt, ts_method, interp) + p_thresh, interp, vcmt, ts_method) return tsvel @@ -190,7 +190,7 @@ def remove_rank_def_rows(b_mat, nvelpar, ifgv, sel): def time_series_by_pixel(row, col, b0_mat, sm_factor, sm_order, ifg_data, mst, - nvelpar, p_thresh, vcmt, method, interp): + nvelpar, p_thresh, interp, vcmt, method): """ time series computation for each pixel """ # check pixel for non-redundant ifgs sel = np.nonzero(mst[:, row, col])[0] # trues in mst are chosen From 7099f1197568e15665c574aafa3679116269ff38 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Tue, 21 Mar 2017 14:39:27 +1100 Subject: [PATCH 05/68] write output files once --- pyrate/scripts/postprocessing.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pyrate/scripts/postprocessing.py b/pyrate/scripts/postprocessing.py index ea226a7d3..9d0b2a00f 100644 --- a/pyrate/scripts/postprocessing.py +++ b/pyrate/scripts/postprocessing.py @@ -152,7 +152,7 @@ def postprocess_timeseries(rows, cols, params): 'tscuml' + "_" + str(epochlist.dates[i + 1]) + ".tif") md[ifc.DATA_TYPE] = ifc.CUML - shared.write_output_geotiff(md, gt, wkt, tscum_g, dest, np.nan) + shared.write_output_geotiff(md, gt, wkt, tscum_g, dest, np.nan) else: tsincr_g = np.empty(shape=ifgs[0].shape, dtype=np.float32) i %= no_ts_tifs @@ -170,7 +170,7 @@ def postprocess_timeseries(rows, cols, params): 'tsincr' + "_" + str( epochlist.dates[i + 1]) + ".tif") md[ifc.DATA_TYPE] = ifc.INCR - shared.write_output_geotiff(md, gt, wkt, tsincr_g, dest, - np.nan) + shared.write_output_geotiff(md, gt, wkt, tsincr_g, dest, + np.nan) log.info('process {} finished writing {} ts (incr/cuml) tifs of ' 'total {}'.format(mpiops.rank, len(process_tifs), no_ts_tifs * 2)) From 1d13c625907c81ed673c0669dec92fe85802baf6 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Tue, 21 Mar 2017 14:48:09 +1100 Subject: [PATCH 06/68] some more writes performed once during ts output --- pyrate/scripts/postprocessing.py | 34 +++++++++++++++----------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/pyrate/scripts/postprocessing.py b/pyrate/scripts/postprocessing.py index 9d0b2a00f..d4ea45cb6 100644 --- a/pyrate/scripts/postprocessing.py +++ b/pyrate/scripts/postprocessing.py @@ -142,16 +142,16 @@ def postprocess_timeseries(rows, cols, params): tscum_file = os.path.join(output_dir, 'tscuml_{}.npy'.format(n)) tscum = np.load(file=tscum_file) - - md[ifc.EPOCH_DATE] = epochlist.dates[i + 1] - # sequence position; first time slice is #0 - md['SEQUENCE_POSITION'] = i+1 tscum_g[t.top_left_y:t.bottom_right_y, t.top_left_x:t.bottom_right_x] = tscum[:, :, i] - dest = os.path.join(params[cf.OUT_DIR], - 'tscuml' + "_" + - str(epochlist.dates[i + 1]) + ".tif") - md[ifc.DATA_TYPE] = ifc.CUML + + md[ifc.EPOCH_DATE] = epochlist.dates[i + 1] + # sequence position; first time slice is #0 + md['SEQUENCE_POSITION'] = i+1 + dest = os.path.join(params[cf.OUT_DIR], + 'tscuml' + "_" + + str(epochlist.dates[i + 1]) + ".tif") + md[ifc.DATA_TYPE] = ifc.CUML shared.write_output_geotiff(md, gt, wkt, tscum_g, dest, np.nan) else: tsincr_g = np.empty(shape=ifgs[0].shape, dtype=np.float32) @@ -160,17 +160,15 @@ def postprocess_timeseries(rows, cols, params): tsincr_file = os.path.join(output_dir, 'tsincr_{}.npy'.format(n)) tsincr = np.load(file=tsincr_file) - - md[ifc.EPOCH_DATE] = epochlist.dates[i + 1] - # sequence position; first time slice is #0 - md['SEQUENCE_POSITION'] = i+1 tsincr_g[t.top_left_y:t.bottom_right_y, t.top_left_x:t.bottom_right_x] = tsincr[:, :, i] - dest = os.path.join(params[cf.OUT_DIR], - 'tsincr' + "_" + str( - epochlist.dates[i + 1]) + ".tif") - md[ifc.DATA_TYPE] = ifc.INCR - shared.write_output_geotiff(md, gt, wkt, tsincr_g, dest, - np.nan) + md[ifc.EPOCH_DATE] = epochlist.dates[i + 1] + # sequence position; first time slice is #0 + md['SEQUENCE_POSITION'] = i+1 + dest = os.path.join(params[cf.OUT_DIR], + 'tsincr' + "_" + str( + epochlist.dates[i + 1]) + ".tif") + md[ifc.DATA_TYPE] = ifc.INCR + shared.write_output_geotiff(md, gt, wkt, tsincr_g, dest, np.nan) log.info('process {} finished writing {} ts (incr/cuml) tifs of ' 'total {}'.format(mpiops.rank, len(process_tifs), no_ts_tifs * 2)) From 18b77bca285013cfed4bd34728d2e2243efb7e47 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Tue, 21 Mar 2017 14:57:05 +1100 Subject: [PATCH 07/68] more refactoring and reuse --- pyrate/scripts/postprocessing.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/pyrate/scripts/postprocessing.py b/pyrate/scripts/postprocessing.py index d4ea45cb6..9bbf62b24 100644 --- a/pyrate/scripts/postprocessing.py +++ b/pyrate/scripts/postprocessing.py @@ -139,12 +139,7 @@ def postprocess_timeseries(rows, cols, params): tscum_g = np.empty(shape=ifgs[0].shape, dtype=np.float32) if i < no_ts_tifs: for n, t in enumerate(tiles): - tscum_file = os.path.join(output_dir, - 'tscuml_{}.npy'.format(n)) - tscum = np.load(file=tscum_file) - tscum_g[t.top_left_y:t.bottom_right_y, - t.top_left_x:t.bottom_right_x] = tscum[:, :, i] - + _assemble_tiles(i, n, t, tscum_g, output_dir, 'tscuml') md[ifc.EPOCH_DATE] = epochlist.dates[i + 1] # sequence position; first time slice is #0 md['SEQUENCE_POSITION'] = i+1 @@ -157,11 +152,7 @@ def postprocess_timeseries(rows, cols, params): tsincr_g = np.empty(shape=ifgs[0].shape, dtype=np.float32) i %= no_ts_tifs for n, t in enumerate(tiles): - tsincr_file = os.path.join(output_dir, - 'tsincr_{}.npy'.format(n)) - tsincr = np.load(file=tsincr_file) - tsincr_g[t.top_left_y:t.bottom_right_y, - t.top_left_x:t.bottom_right_x] = tsincr[:, :, i] + _assemble_tiles(i, n, t, tsincr_g, output_dir, 'tsincr') md[ifc.EPOCH_DATE] = epochlist.dates[i + 1] # sequence position; first time slice is #0 md['SEQUENCE_POSITION'] = i+1 @@ -172,3 +163,11 @@ def postprocess_timeseries(rows, cols, params): shared.write_output_geotiff(md, gt, wkt, tsincr_g, dest, np.nan) log.info('process {} finished writing {} ts (incr/cuml) tifs of ' 'total {}'.format(mpiops.rank, len(process_tifs), no_ts_tifs * 2)) + + +def _assemble_tiles(i, n, tile, tsincr_g, output_dir, outtype): + tsincr_file = os.path.join(output_dir, + '{}_{}.npy'.format(outtype, n)) + tsincr = np.load(file=tsincr_file) + tsincr_g[tile.top_left_y:tile.bottom_right_y, + tile.top_left_x:tile.bottom_right_x] = tsincr[:, :, i] From 6aab9f45e4072bcf81c82e5a953039a3412eb3dd Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Tue, 21 Mar 2017 15:02:02 +1100 Subject: [PATCH 08/68] added high pass temporal filter parameters to configs --- configs/pyrate_gamma.conf | 20 ++++++++++++++++++-- pyrate/config.py | 13 +++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/configs/pyrate_gamma.conf b/configs/pyrate_gamma.conf index a82ddad63..6613fa63e 100644 --- a/configs/pyrate_gamma.conf +++ b/configs/pyrate_gamma.conf @@ -101,8 +101,25 @@ refest: 1 ##elevationmap: tests/test_data/small_test/gamma_obs/20060619_utm.lv_theta # spatio-temporal filter +#------------------------------------ # apsest: (1: APS estimation; 0: not) -apsest: 0 +apsest: 1 + +# spatially correlated noise low-pass filter parameters +# slpfmethod: filter method (1: butterworth; 2: gaussian) +# slpfcutoff: cutoff d0 for both butterworth and gaussian filters in the same unit with pixel size +# slpforder: order n for butterworth filter (default 1) +slpfmethod: 1 +slpfcutoff: 0 +slpforder: 1 + +# temporal high-pass filter parameters +# thpfcutoff: cutoff t0 for gaussian filter in year; +# thpfpthr: valid pixel threshold; +thpfmethod: 1 +thpfcutoff: 0.25 +thpfpthr: 1 + # atmospheric delay errors fitting parameters # atmfitmethod = 1: interferogram by interferogram; atmfitmethod = 2, epoch by epoch @@ -137,4 +154,3 @@ ts_pthr: 10 nsig: 3 pthr: 5 maxsig: 2 - diff --git a/pyrate/config.py b/pyrate/config.py index 733e35efb..20550df90 100644 --- a/pyrate/config.py +++ b/pyrate/config.py @@ -147,6 +147,16 @@ # spatio-temporal filter APSEST = 'apsest' +# temporal high-pass filter parameters +THPF_METHOD = 'thpfmethod' +THPF_CUTOFF = 'thpfcutoff' +THPF_PTHR = 'thpfpthr' + +# spatially correlated noise low-pass filter parameters +SLPF_METHOD = 'slpfmethod' +SLPF_CUTOFF = 'slpfcutoff' +SLPF_ORDER = 'slpforder' + # Time series parameters #: BOOL (1/0); Do Time series calculation TIME_SERIES_CAL = 'tscal' @@ -247,6 +257,9 @@ def method_conv(meth): ATM_FIT_METHOD: (int, 2), APSEST: (int, 0), + THPF_METHOD: (int, 1), + THPF_CUTOFF: (float, 0.0), + THPF_PTHR: (int, 1), TIME_SERIES_CAL: (int, 0), # pixel thresh based on nepochs? not every project may have 20 epochs From 8db70fd69d2abb99fec5cb84ee46286bd586e9a3 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Tue, 21 Mar 2017 18:30:37 +1100 Subject: [PATCH 09/68] temporal low pass filter implemented --- configs/pyrate_gamma.conf | 14 +- pyrate/aps.py | 489 +++++-------------------------- pyrate/config.py | 16 +- pyrate/scripts/postprocessing.py | 9 +- pyrate/scripts/run_pyrate.py | 3 +- pyrate/shared.py | 3 +- pyrate/vcm.py | 44 +-- 7 files changed, 120 insertions(+), 458 deletions(-) diff --git a/configs/pyrate_gamma.conf b/configs/pyrate_gamma.conf index 6613fa63e..64b854df8 100644 --- a/configs/pyrate_gamma.conf +++ b/configs/pyrate_gamma.conf @@ -113,12 +113,14 @@ slpfmethod: 1 slpfcutoff: 0 slpforder: 1 -# temporal high-pass filter parameters -# thpfcutoff: cutoff t0 for gaussian filter in year; -# thpfpthr: valid pixel threshold; -thpfmethod: 1 -thpfcutoff: 0.25 -thpfpthr: 1 +# temporal low-pass filter parameters +# tlpfcutoff: cutoff t0 for gaussian filter in year; +# tlpfpthr: valid pixel threshold; +# note: pirate config file terminology is confusing. They actually want a low +# pass filter, but somehow uses t'h'pf* instead +tlpfmethod: 1 +tlpfcutoff: 0.25 +tlpfpthr: 1 # atmospheric delay errors fitting parameters diff --git a/pyrate/aps.py b/pyrate/aps.py index c09020ea1..8ea1b13c1 100644 --- a/pyrate/aps.py +++ b/pyrate/aps.py @@ -1,422 +1,81 @@ -# This Python module is part of the PyRate software package. -# -# Copyright 2017 Geoscience Australia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -""" -This Python module implements atmospheric corrections derived -from external weather model data. The algorithms are based on -those implemented in the 'PyAPS' package developed by Caltech -""" -from __future__ import print_function -import logging import os -import re -import glob2 +import logging +from copy import deepcopy import numpy as np -from joblib import Parallel, delayed -from osgeo import gdalconst, gdal -import PyAPS as pa - +from numpy import isnan +from pyrate.timeseries import time_series from pyrate import config as cf -from pyrate import ifgconstants as ifc -from pyrate import prepifg -from pyrate import gamma -from operator import itemgetter +from pyrate import mpiops +from pyrate import shared +from pyrate.algorithm import get_epochs +from pyrate.scripts.postprocessing import assemble_tiles log = logging.getLogger(__name__) -PYRATEPATH = os.environ['PYRATEPATH'] -ECMWF_DIR = os.path.join(PYRATEPATH, 'ECMWF') -ECMWF_PRE = 'ERA-Int_' -ECMWF_EXT = '_12.grib' # TODO: build dynamically with closest available grib -APS_STATUS = 'REMOVED' -GEOTIFF = 'GEOTIFF' -ECMWF = 'ECMWF' -GAMMA_PTN = re.compile(r'\d{8}') -ROIPAC_PTN = re.compile(r'\d{6}') - - -def remove_aps_delay(input_ifgs, params, process_indices=None): - - def get_incidence_map(): - if params[cf.APS_ELEVATION_MAP] is not None: - f, e = os.path.basename(params[cf.APS_ELEVATION_MAP]).split( - '.') - else: - f, e = os.path.basename(params[cf.APS_INCIDENCE_MAP]).split( - '.') - multilooked = os.path.join( - params[cf.OUT_DIR], - f + '_' + e + - '_{looks}rlks_{crop}cr.tif'.format( - looks=params[cf.IFG_LKSX], - crop=params[ - cf.IFG_CROP_OPT])) - assert os.path.exists(multilooked), \ - 'cropped and multilooked incidence map file not found. ' \ - 'Use apsmethod=1, Or run prepifg with gamma processor' - ds = gdal.Open(multilooked, gdalconst.GA_ReadOnly) - if params[cf.APS_INCIDENCE_MAP] is not None: - incidence_map = ds.ReadAsArray() - else: - incidence_map = 90 - ds.ReadAsArray() - ds = None # close file - return incidence_map - - if process_indices is not None: - ifgs = [itemgetter(p)(input_ifgs) for p in process_indices] - [ifg.close() for i, ifg in enumerate(input_ifgs) - if i not in process_indices] - else: - ifgs = input_ifgs - - lat, lon, nx, ny, dem, mlooked_dem = read_dem(params) - dem_header = (lon, lat, nx, ny) - - incidence_angle = None - - if params[cf.APS_METHOD] == 1: - incidence_map = np.ones_like(dem) # dummy - elif params[cf.APS_METHOD] == 2: - incidence_map = get_incidence_map() - else: - raise APSException('PyAPS method must be 1 or 2') - - list_of_dates_for_grb_download = [] - - parallel = params[cf.PARALLEL] - data_paths = [i.data_path for i in ifgs] - - if parallel: - aps_delay = Parallel(n_jobs=params[cf.PROCESSES], verbose=50)( - delayed(parallel_aps)(d, dem, dem_header, - incidence_angle, - incidence_map, list_of_dates_for_grb_download, - mlooked_dem, params) - for d in data_paths) - else: - aps_delay = [] - for d in data_paths: # demo for only one ifg - aps_delay.append(parallel_aps(d, dem, dem_header, incidence_angle, - incidence_map, - list_of_dates_for_grb_download, - mlooked_dem, params)) - - for i, ifg in enumerate(ifgs): - ifg.phase_data -= aps_delay[i] # remove delay - # add to ifg.meta_data - ifg.meta_data[ifc.PYRATE_APS_ERROR] = APS_STATUS - # write meta_data to file - ifg.dataset.SetMetadataItem(ifc.PYRATE_APS_ERROR, APS_STATUS) - ifg.write_modified_phase() - # ifg.close() # close ifg files, required for gdal dataset to close files - - return ifgs - - -def parallel_aps(data_path, dem, dem_header, incidence_angle, incidence_map, - list_of_dates_for_grb_download, mlooked_dem, params): - if params[cf.PROCESSOR] == 1: # gamma - date_pair = [i for i in GAMMA_PTN.findall(os.path.basename(data_path))] - elif params[cf.PROCESSOR] == 0: # roipac - # adding 20 to dates here, so dates before 2000 won't work - # TODO: fix pre 2000 dates - date_pair = ['20' + i for i in - ROIPAC_PTN.findall(os.path.basename(data_path))] - else: - raise AttributeError('processor needs to be gamma(1) or roipac(0)') - list_of_dates_for_grb_download += date_pair - first_grb = os.path.join(ECMWF_DIR, - ECMWF_PRE + date_pair[0] + ECMWF_EXT) - second_grb = os.path.join(ECMWF_DIR, - ECMWF_PRE + date_pair[1] + ECMWF_EXT) - # download .grb file if does not exist - if not (os.path.exists(first_grb) and os.path.exists(second_grb)): - # download weather files at 12:00 UTC (other options 00:00, 06:00, 18:00) - pa.ecmwf_download(date_pair, '12', 'ECMWF') - - # rdr_correction(date_pair) - # TODO: lat lon correction when lat and lon files are available - # aps1.getgeodelay(phs1, inc=23.0, wvl=0.056, - # lat=os.path.join(PYAPS_EXAMPLES, 'lat.flt'), - # lon=os.path.join(PYAPS_EXAMPLES, 'lon.flt')) - # aps2.getgeodelay(phs2, inc=23.0, wvl=0.056, - # lat=os.path.join(PYAPS_EXAMPLES, 'lat.flt'), - # lon=os.path.join(PYAPS_EXAMPLES, 'lon.flt')) - # LLphs = phs2-phs1 - # print dem_header, mlooked_dem - if params[cf.APS_METHOD] == 1: - # no need to calculate incidence angle for all ifgs, they are the same - if incidence_angle is None: - incidence_angle = get_incidence_angle(date_pair, params) - aps_delay = geo_correction(date_pair, dem_header, dem, incidence_angle) - elif params[cf.APS_METHOD] == 2: - # no need to calculate incidence map for all ifgs, they are the same - aps_delay = geo_correction(date_pair, dem_header, dem, incidence_map) - else: - raise APSException('APS method must be 1 or 2') - return aps_delay - - -def rdr_correction(date_pair): - """ using rdr coordinates to remove APS """ - raise NotImplementedError("This has not been implemented yet for PyRate") - # aps1 = pa.PyAPS_rdr( - # os.path.join(ECMWF_DIR, ECMWF_PRE + date_pair[0] + ECMWF_EXT), - # SML_TEST_DEM_ROIPAC, grib='ECMWF', verb=True, - # demfmt='HGT', demtype=np.int16) - # aps2 = pa.PyAPS_rdr( - # os.path.join(ECMWF_DIR, ECMWF_PRE + date_pair[1] + ECMWF_EXT), - # SML_TEST_DEM_ROIPAC, grib='ECMWF', verb=True, - # demfmt='HGT', demtype=np.int16) - # phs1 = np.zeros((aps1.ny, aps1.nx)) - # phs2 = np.zeros((aps2.ny, aps2.nx)) - # print 'Without Lat Lon files' - # # using random incidence angle - # aps1.getdelay(phs1, inc=23.0) - # aps2.getdelay(phs2, inc=23.0) - # aps_delay = phs2 - phs1 # delay in meters as we don't provide wavelength - # return aps_delay - - -def geo_correction(date_pair, dem_header, dem, incidence_angle_or_map): - - """ using geo coordinates to remove APS """ - - aps1 = pa.PyAPSPyRateGeo( - os.path.join(ECMWF_DIR, ECMWF_PRE + date_pair[0] + ECMWF_EXT), - dem_header=dem_header, dem=dem, grib=ECMWF, verb=True) - aps2 = pa.PyAPSPyRateGeo( - os.path.join(ECMWF_DIR, ECMWF_PRE + date_pair[1] + ECMWF_EXT), - dem_header=dem_header, dem=dem, grib=ECMWF, verb=True) - phs1 = np.zeros((aps1.ny, aps1.nx)) - phs2 = np.zeros((aps2.ny, aps2.nx)) - print('Without Lat Lon files') - aps1.getdelay_pyrate(phs1, dem, inc=incidence_angle_or_map) - aps2.getdelay_pyrate(phs2, dem, inc=incidence_angle_or_map) - aps_delay = phs2 - phs1 # delay in meters as we don't provide wavelength - return aps_delay - - -def remove_aps_delay_original(ifgs, params): - list_of_dates_for_grb_download = [] - - incidence_angle = None - incidence_map = None - for ifg in ifgs: # demo for only one ifg - if params[cf.PROCESSOR] == 1: # gamma - PTN = re.compile(r'\d{8}') - date_pair = [i for i in PTN.findall(os.path.basename(ifg.data_path))] - elif params[cf.PROCESSOR] == 0: # roipac - # adding 20 to dates here, so dates before 2000 won't work - # TODO: fix pre 2000 dates - PTN = re.compile(r'\d{6}') - date_pair = ['20' + i for i in - PTN.findall(os.path.basename(ifg.data_path))] - else: - raise AttributeError('processor needs to be gamma(1) or roipac(0)') - - list_of_dates_for_grb_download += date_pair - - first_grb = os.path.join(ECMWF_DIR, - ECMWF_PRE + date_pair[0] + ECMWF_EXT) - second_grb = os.path.join(ECMWF_DIR, - ECMWF_PRE + date_pair[1] + ECMWF_EXT) - - # download .grb file if does not exist - if not (os.path.exists(first_grb) and os.path.exists(second_grb)): - # download weather files at 12:00 UTC (other options 00:00, 06:00, 18:00) - pa.ecmwf_download(date_pair, '12', 'ECMWF') - - def get_incidence_map(): - """ - :param incidence_map: - :param params: - :param inc_or_ele: 1 when incidence map, 0 when elevation map - :return: - """ - if params[cf.APS_ELEVATION_MAP] is not None: - f, e = os.path.basename(params[cf.APS_ELEVATION_MAP]).split( - '.') - else: - f, e = os.path.basename(params[cf.APS_INCIDENCE_MAP]).split( - '.') - multilooked = os.path.join( - params[cf.OUT_DIR], - f + '_' + e + - '_{looks}rlks_{crop}cr.tif'.format( - looks=params[cf.IFG_LKSX], - crop=params[ - cf.IFG_CROP_OPT])) - assert os.path.exists(multilooked), \ - 'cropped and multilooked incidence map file not found. ' \ - 'Use apsmethod=1, Or run prepifg with gamma processor' - ds = gdal.Open(multilooked, gdalconst.GA_ReadOnly) - if params[cf.APS_INCIDENCE_MAP] is not None: - incidence_map = ds.ReadAsArray() - else: - incidence_map = 90 - ds.ReadAsArray() - ds = None # close file - return incidence_map - - if params[cf.APS_METHOD] == 1: - # no need to calculate incidence angle for all ifgs, they are the same - if incidence_angle is None: - incidence_angle = get_incidence_angle(date_pair, params) - aps_delay = geo_correction(date_pair, params, incidence_angle) - elif params[cf.APS_METHOD] == 2: - # no need to calculate incidence map for all ifgs, they are the same - if incidence_map is None: - if params[cf.APS_INCIDENCE_MAP] is not None: - incidence_map = get_incidence_map() - else: # elevation map was provided - assert params[cf.APS_ELEVATION_MAP] is not None - incidence_map = get_incidence_map() - aps_delay = geo_correction_original(date_pair, params, - incidence_map) - else: - raise APSException('APS method must be 1 or 2') - - - ifg.phase_data -= aps_delay # remove delay - # add it to the meta_data dict - ifg.meta_data[ifc.PYRATE_APS_ERROR] = APS_STATUS - # write meta_data to file - ifg.dataset.SetMetadataItem(ifc.PYRATE_APS_ERROR, APS_STATUS) - - ifg.write_modified_phase() - - -def geo_correction_original(date_pair, params, incidence_angle_or_map): - - dem_file = params[cf.DEM_FILE] - geotif_dem = os.path.join( - params[cf.OUT_DIR], os.path.basename(dem_file).split('.')[0] + '.tif') - - mlooked_dem = prepifg.mlooked_path(geotif_dem, - looks=params[cf.IFG_LKSX], - crop_out=params[cf.IFG_CROP_OPT]) - # make sure mlooked dem exist - if not os.path.exists(mlooked_dem): - raise prepifg.PreprocessError('mlooked dem was not found.' - 'Please run prepifg.') - - dem_header = gamma.parse_dem_header(params[cf.DEM_HEADER_FILE]) - lat, lon, nx, ny = return_pyaps_lat_lon(dem_header) - - - """ using geo coordinates to remove APS """ - - aps1 = pa.PyAPS_geo( - os.path.join(ECMWF_DIR, ECMWF_PRE + date_pair[0] + ECMWF_EXT), - mlooked_dem, grib=ECMWF, verb=True, - demfmt=GEOTIFF, demtype=np.float32, dem_header=(lon, lat, nx, ny)) - aps2 = pa.PyAPS_geo( - os.path.join(ECMWF_DIR, ECMWF_PRE + date_pair[1] + ECMWF_EXT), - mlooked_dem, grib=ECMWF, verb=True, - demfmt=GEOTIFF, demtype=np.float32, dem_header=(lon, lat, nx, ny)) - phs1 = np.zeros((aps1.ny, aps1.nx)) - phs2 = np.zeros((aps2.ny, aps2.nx)) - print('Without Lat Lon files') - aps1.getdelay(phs1, inc=incidence_angle_or_map) - aps2.getdelay(phs2, inc=incidence_angle_or_map) - aps_delay = phs2 - phs1 # delay in meters as we don't provide wavelength - return aps_delay - - -def read_dem(params): - dem_file = params[cf.DEM_FILE] - geotif_dem = os.path.join( - params[cf.OUT_DIR], os.path.basename(dem_file).split('.')[0] + '.tif') - mlooked_dem = prepifg.mlooked_path(geotif_dem, - looks=params[cf.IFG_LKSX], - crop_out=params[cf.IFG_CROP_OPT]) - # make sure mlooked dem exist - if not os.path.exists(mlooked_dem): - raise prepifg.PreprocessError('mlooked dem was not found.' - 'Please run prepifg.') - dem_header = gamma.parse_dem_header(params[cf.DEM_HEADER_FILE]) - lat, lon, nx, ny = return_pyaps_lat_lon(dem_header) - - ds = gdal.Open(mlooked_dem, gdalconst.GA_ReadOnly) - dem = ds.ReadAsArray() - ds = None - return lat, lon, nx, ny, dem, mlooked_dem - - -def get_incidence_angle(date_pair, params): - # incidence angle exists in unw header files, not in dem - SLC_DIR = params[cf.SLC_DIR] if params[cf.SLC_DIR] else \ - params[cf.OBS_DIR] - header_path = glob2.glob(os.path.join( - SLC_DIR, '**/*%s*slc.par' % date_pair[0]))[0] - header = gamma.parse_epoch_header(header_path) - incidence_angle = header[ifc.INCIDENCE_ANGLE] - return incidence_angle - - -def return_pyaps_lat_lon(dem_header): - nx, ny = dem_header[ifc.PYRATE_NCOLS], dem_header[ifc.PYRATE_NROWS] - lat = np.zeros((2, 1)) - lon = np.zeros((2, 1)) - lat[1] = dem_header[ifc.PYRATE_LAT] - lon[0] = dem_header[ifc.PYRATE_LONG] - if lon[0] < 0: - lon[0] += 360.0 - dx = np.float(dem_header[ifc.PYRATE_X_STEP]) - dy = np.float(dem_header[ifc.PYRATE_Y_STEP]) - lat[0] = lat[1] + dy * ny - lon[1] = lon[0] + dx * nx - return lat, lon, nx, ny - - -class APSException(Exception): - """ - generic exception class for APS correction - """ - pass - - -def check_aps_ifgs(ifgs): - flags = [i.dataset.GetMetadataItem(ifc.PYRATE_APS_ERROR) for i in ifgs] - count = sum([f == APS_STATUS for f in flags]) - if (count < len(flags)) and (count > 0): - log.debug('Detected mix of corrected and uncorrected ' - 'APS delay in ifgs') - - for i, flag in zip(ifgs, flags): - if flag: - msg = '%s: prior APS delay correction detected' - else: - msg = '%s: no APS delay correction detected' - logging.debug(msg % i.data_path) - raise APSException('Mixed APS removal status in ifg list') - - -def aps_delay_required(ifgs, params): - log.info('Removing APS delay') - - if not params[cf.APS_CORRECTION]: - log.info('APS delay removal not required') - return False - - # perform some general error/sanity checks - flags = [i.dataset.GetMetadataItem(ifc.PYRATE_APS_ERROR) for i in ifgs] - if all(flags): - log.info('Skipped APS delay removal, ifgs are already aps corrected') - return False - else: - check_aps_ifgs(ifgs) - return True +def spatio_temporal_filter(ifg_paths, params, tiles, preread_ifgs): + log.info('Calculating time series for spatio-temporal filter application') + if not params[cf.APSEST]: + log.info('APS correction not required.') + return + temporal_low_pass_filter(ifg_paths, params, tiles, preread_ifgs) + + +def temporal_low_pass_filter(ifg_paths, params, tiles, preread_ifgs): + log.info('Applying the temporal filter') + # copy params temporarily + new_params = deepcopy(params) + new_params[cf.TIME_SERIES_METHOD] = 2 # use SVD method + + epochlist = mpiops.run_once(get_epochs, preread_ifgs)[0] + process_tiles = mpiops.array_split(tiles) + + output_dir = params[cf.TMPDIR] + for t in process_tiles: + log.info('Calculating time series for tile {}'.format(t.index)) + ifg_parts = [shared.IfgPart(p, t, preread_ifgs) for p in ifg_paths] + mst_tile = np.load(os.path.join(output_dir, + 'mst_mat_{}.npy'.format(t.index))) + # don't save this time_series calc, this is done as part of aps filter + tsincr = time_series(ifg_parts, new_params, vcmt=None, mst=mst_tile)[0] + np.save(file=os.path.join(output_dir, 'tsincr_aps_{}.npy'.format( + t.index)), arr=tsincr) + + # need to assemble tsincr from all processes + shape = preread_ifgs[ifg_paths[0]].shape + (tsincr.shape[2], ) + tsincr_g = np.empty(shape=shape, dtype=np.float32) + + for i in range(tsincr.shape[2]): + for n, t in enumerate(tiles): + assemble_tiles(i, n, t, tsincr_g[:, :, i], params[cf.TMPDIR], + 'tsincr_aps') + + ts_hp = tsincr_g - tlpfilter(tsincr_g, epochlist, params) + log.info('Finished applying temporal low pass filter') + + +def tlpfilter(tsincr, epochlist, params): + """temporal low pass filter""" + nanmat = ~isnan(tsincr) + tsfilt_incr = np.empty_like(tsincr, dtype=np.float32) * np.nan + intv = np.diff(epochlist.spans) # time interval for the neighboring epoch + span = epochlist.spans[: tsincr.shape[2]] + intv/2 # accumulated time + rows, cols = tsincr.shape[:2] + + for i in range(rows): + for j in range(cols): + sel = np.nonzero(nanmat[i, j, :])[0] # don't select if nan + m = len(sel) + if m >= params[cf.TLPF_PTHR]: + for k in range(m): + yr = span[sel] - span[sel[k]] + if params[cf.TLPF_METHOD] == 1: # gaussian filter + wgt = np.exp(-(yr/params[cf.TLPF_CUTOFF]) ** 2/2) + elif params[cf.TLPF_METHOD] == 2: # triangular filter + wgt = params[cf.TLPF_CUTOFF] - abs(yr) + wgt[wgt < 0] = 0 + else: # mean filter + wgt = np.ones(m) + wgt /= np.sum(wgt) + tsfilt_incr[i, j, sel[k]] = np.sum(tsincr[i, j, sel] * wgt) + return tsfilt_incr diff --git a/pyrate/config.py b/pyrate/config.py index 20550df90..937dc1b08 100644 --- a/pyrate/config.py +++ b/pyrate/config.py @@ -147,10 +147,10 @@ # spatio-temporal filter APSEST = 'apsest' -# temporal high-pass filter parameters -THPF_METHOD = 'thpfmethod' -THPF_CUTOFF = 'thpfcutoff' -THPF_PTHR = 'thpfpthr' +# temporal low-pass filter parameters +TLPF_METHOD = 'tlpfmethod' +TLPF_CUTOFF = 'tlpfcutoff' +TLPF_PTHR = 'tlpfpthr' # spatially correlated noise low-pass filter parameters SLPF_METHOD = 'slpfmethod' @@ -240,7 +240,7 @@ def method_conv(meth): REFNY: (int, 50), REF_CHIP_SIZE: (int, 21), REF_MIN_FRAC: (float, 0.8), - REF_EST_METHOD: (int, 1), # default to average of whole image + REF_EST_METHOD: (int, 1), # default to average of whole image ORBITAL_FIT: (int, 0), ORBITAL_FIT_METHOD: (method_conv, NETWORK_METHOD), @@ -257,9 +257,9 @@ def method_conv(meth): ATM_FIT_METHOD: (int, 2), APSEST: (int, 0), - THPF_METHOD: (int, 1), - THPF_CUTOFF: (float, 0.0), - THPF_PTHR: (int, 1), + TLPF_METHOD: (int, 1), + TLPF_CUTOFF: (float, 0.0), + TLPF_PTHR: (int, 1), TIME_SERIES_CAL: (int, 0), # pixel thresh based on nepochs? not every project may have 20 epochs diff --git a/pyrate/scripts/postprocessing.py b/pyrate/scripts/postprocessing.py index 9bbf62b24..993594eba 100644 --- a/pyrate/scripts/postprocessing.py +++ b/pyrate/scripts/postprocessing.py @@ -139,7 +139,7 @@ def postprocess_timeseries(rows, cols, params): tscum_g = np.empty(shape=ifgs[0].shape, dtype=np.float32) if i < no_ts_tifs: for n, t in enumerate(tiles): - _assemble_tiles(i, n, t, tscum_g, output_dir, 'tscuml') + assemble_tiles(i, n, t, tscum_g, output_dir, 'tscuml') md[ifc.EPOCH_DATE] = epochlist.dates[i + 1] # sequence position; first time slice is #0 md['SEQUENCE_POSITION'] = i+1 @@ -152,7 +152,7 @@ def postprocess_timeseries(rows, cols, params): tsincr_g = np.empty(shape=ifgs[0].shape, dtype=np.float32) i %= no_ts_tifs for n, t in enumerate(tiles): - _assemble_tiles(i, n, t, tsincr_g, output_dir, 'tsincr') + assemble_tiles(i, n, t, tsincr_g, output_dir, 'tsincr') md[ifc.EPOCH_DATE] = epochlist.dates[i + 1] # sequence position; first time slice is #0 md['SEQUENCE_POSITION'] = i+1 @@ -165,9 +165,10 @@ def postprocess_timeseries(rows, cols, params): 'total {}'.format(mpiops.rank, len(process_tifs), no_ts_tifs * 2)) -def _assemble_tiles(i, n, tile, tsincr_g, output_dir, outtype): +def assemble_tiles(i, n, tile, tsincr_g, output_dir, outtype): + """ A reusable time series assembling function""" tsincr_file = os.path.join(output_dir, '{}_{}.npy'.format(outtype, n)) tsincr = np.load(file=tsincr_file) tsincr_g[tile.top_left_y:tile.bottom_right_y, - tile.top_left_x:tile.bottom_right_x] = tsincr[:, :, i] + tile.top_left_x:tile.bottom_right_x] = tsincr[:, :, i] diff --git a/pyrate/scripts/run_pyrate.py b/pyrate/scripts/run_pyrate.py index d7759539e..ba7da6d99 100644 --- a/pyrate/scripts/run_pyrate.py +++ b/pyrate/scripts/run_pyrate.py @@ -483,6 +483,8 @@ def process_ifgs(ifg_paths, params, rows, cols): spatio_temporal_filter(ifg_paths, params, tiles, preread_ifgs) maxvar, vcmt = maxvar_vcm_calc(ifg_paths, params, preread_ifgs) + + # save phase data tiles as numpy array for timeseries and linrate calc save_numpy_phase(ifg_paths, tiles, params) timeseries_calc(ifg_paths, params, vcmt, tiles, preread_ifgs) @@ -561,7 +563,6 @@ def maxvar_vcm_calc(ifg_paths, params, preread_ifgs): for n, i in enumerate(prcs_ifgs): log.info('Calculating maxvar for {} of process ifgs {} of ' 'total {}'.format(n+1, len(prcs_ifgs), len(ifg_paths))) - # TODO: cvd calculation is still pretty slow - revisit process_maxvar.append(vcm_module.cvd(i, params)[0]) if mpiops.rank == MASTER_PROCESS: maxvar = np.empty(len(ifg_paths), dtype=np.float64) diff --git a/pyrate/shared.py b/pyrate/shared.py index 2f756d323..47fb16d6f 100644 --- a/pyrate/shared.py +++ b/pyrate/shared.py @@ -448,7 +448,6 @@ def __init__(self, ifg_or_path, tile, ifg_dict=None): self.r_end = self.tile.bottom_right_y self.c_start = self.tile.top_left_x self.c_end = self.tile.bottom_right_x - # TODO: fix this if cond if ifg_dict is not None: # should be used with MPI ifg = ifg_dict[ifg_or_path] self.nan_fraction = ifg.nan_fraction @@ -590,7 +589,7 @@ class EpochList(object): def __init__(self, dates=None, repeat=None, spans=None): self.dates = dates # list of unique dates from all the ifgs self.repeat = repeat - self.spans = spans # time span from earliest ifg + self.spans = spans # time span from earliest ifg def __str__(self): return "EpochList: %s" % str(self.dates) diff --git a/pyrate/vcm.py b/pyrate/vcm.py index 5de1993e4..a25fc0180 100644 --- a/pyrate/vcm.py +++ b/pyrate/vcm.py @@ -69,8 +69,7 @@ def cvd(ifg_path, params, calc_alpha=False): :param calc_alpha: bool whether you calculate alpha. """ - # pylint: disable=invalid-name - # pylint: disable=too-many-locals + if isinstance(ifg_path, str): # used during MPI ifg = shared.Ifg(ifg_path) ifg.open() @@ -81,60 +80,65 @@ def cvd(ifg_path, params, calc_alpha=False): shared.nan_and_mm_convert(ifg, params) # calculate 2D auto-correlation of image using the # spectral method (Wiener-Khinchin theorem) - if ifg.nan_converted: # saves heaps of time with no-nan conversion + if ifg.nan_converted: # if nancoverted earlier, convert nans back to 0's phase = where(isnan(ifg.phase_data), 0, ifg.phase_data) else: phase = ifg.phase_data + + maxvar, alpha = _cvd(phase, ifg, calc_alpha) + + if isinstance(ifg_path, str): + ifg.close() + + return maxvar, alpha + + +def _cvd(phase, ifg, calc_alpha): + # pylint: disable=invalid-name + # pylint: disable=too-many-locals + # distance division factor of 1000 converts to km and is needed to match # Matlab code output distfact = 1000 nrows, ncols = phase.shape fft_phase = fft2(phase) - pspec = real(fft_phase)**2 + imag(fft_phase)**2 + pspec = real(fft_phase) ** 2 + imag(fft_phase) ** 2 autocorr_grid = ifft2(pspec) nzc = np.sum(np.sum(phase != 0)) autocorr_grid = fftshift(real(autocorr_grid)) / nzc - # pixel distances from pixel at zero lag (image centre). xx, yy = meshgrid(range(ncols), range(nrows)) - # r_dist is distance from the center # doing np.divide and np.sqrt will improve performance as it keeps # calculations in the numpy land - r_dist = np.divide(np.sqrt(((xx-ifg.x_centre) * ifg.x_size)**2 + - ((yy-ifg.y_centre) * ifg.y_size)**2), distfact) - + r_dist = np.divide(np.sqrt(((xx - ifg.x_centre) * ifg.x_size) ** 2 + + ((yy - ifg.y_centre) * ifg.y_size) ** 2), + distfact) r_dist = reshape(r_dist, ifg.num_cells) acg = reshape(autocorr_grid, ifg.num_cells) - # Symmetry in image; keep only unique points # tmp = unique_points(zip(acg, r_dist)) # Sudipta: Is this faster than keeping only the 1st half as in Matlab? # Sudipta: Unlikely, as unique_point is a search/comparison, # whereas keeping 1st half is just numpy indexing. # If it is not faster, why was this done differently here? - - r_dist = r_dist[:int(ceil(ifg.num_cells/2.0)) + ifg.nrows] + r_dist = r_dist[:int(ceil(ifg.num_cells / 2.0)) + ifg.nrows] acg = acg[:len(r_dist)] - # Alternative method to remove duplicate cells (from Matlab Pirate code) # r_dist = r_dist[:ceil(len(r_dist)/2)+nlines] # Reason for '+nlines' term unknown - # eg. array([x for x in set([(1,1), (2,2), (1,1)])]) # the above shortens r_dist by some number of cells - # bin width for collecting data bin_width = max(ifg.x_size, ifg.y_size) * 2 / distfact - # pick the smallest axis to determine circle search radius # print 'ifg.X_CENTRE, ifg.Y_CENTRE=', ifg.x_centre, ifg.y_centre # print 'ifg.X_SIZE, ifg.Y_SIZE', ifg.x_size, ifg.y_size if (ifg.x_centre * ifg.x_size) < (ifg.y_centre * ifg.y_size): maxdist = ifg.x_centre * ifg.x_size / distfact else: - maxdist = ifg.y_centre * ifg.y_size/ distfact + maxdist = ifg.y_centre * ifg.y_size / distfact # filter out data where the of lag distance is greater than maxdist # r_dist = array([e for e in rorig if e <= maxdist]) # @@ -143,10 +147,6 @@ def cvd(ifg_path, params, calc_alpha=False): indices_to_keep = r_dist < maxdist r_dist = r_dist[indices_to_keep] acg = acg[indices_to_keep] - - if isinstance(ifg_path, str): - ifg.close() - if calc_alpha: # classify values of r_dist according to bin number rbin = ceil(r_dist / bin_width).astype(int) @@ -162,7 +162,7 @@ def cvd(ifg_path, params, calc_alpha=False): # calculate best fit function maxvar*exp(-alpha*r_dist) alphaguess = 2 / (maxbin * bin_width) - alpha = fmin(pendiffexp, x0=alphaguess, args=(cvdav,), disp=0, + alpha = fmin(pendiffexp, x0=alphaguess, args=(cvdav,), disp=False, xtol=1e-6, ftol=1e-6) print("1st guess alpha", alphaguess, 'converged alpha:', alpha) # maximum variance usually at the zero lag: max(acg[:len(r_dist)]) From 6c6017391ff5f14d3a9a86a0df60bdd31e3a2652 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Tue, 21 Mar 2017 21:28:33 +1100 Subject: [PATCH 10/68] refactored to fix py27 imports --- pyrate/scripts/postprocessing.py | 6 +++--- pyrate/scripts/run_pyrate.py | 32 ++++---------------------------- pyrate/shared.py | 25 +++++++++++++++++++++++++ tests/test_mpi.py | 4 ++-- tests/test_pyrate.py | 3 ++- 5 files changed, 36 insertions(+), 34 deletions(-) diff --git a/pyrate/scripts/postprocessing.py b/pyrate/scripts/postprocessing.py index 993594eba..301174062 100644 --- a/pyrate/scripts/postprocessing.py +++ b/pyrate/scripts/postprocessing.py @@ -24,10 +24,10 @@ import numpy as np from osgeo import gdal +import pyrate.shared from pyrate import config as cf from pyrate import ifgconstants as ifc from pyrate import shared -from pyrate.scripts import run_pyrate from pyrate import mpiops from pyrate.shared import PrereadIfg gdal.SetCacheMax(64) @@ -59,7 +59,7 @@ def postprocess_linrate(rows, cols, params): # load previously saved prepread_ifgs dict preread_ifgs_file = join(params[cf.TMPDIR], 'preread_ifgs.pk') ifgs = cp.load(open(preread_ifgs_file, 'rb')) - tiles = run_pyrate.get_tiles(dest_tifs[0], rows, cols) + tiles = pyrate.shared.get_tiles(dest_tifs[0], rows, cols) # linrate aggregation if mpiops.size >= 3: @@ -117,7 +117,7 @@ def postprocess_timeseries(rows, cols, params): epochlist = ifgs['epochlist'] ifgs = [v for v in ifgs.values() if isinstance(v, PrereadIfg)] - tiles = run_pyrate.get_tiles(dest_tifs[0], rows, cols) + tiles = pyrate.shared.get_tiles(dest_tifs[0], rows, cols) # load the first tsincr file to determine the number of time series tifs tsincr_file = os.path.join(output_dir, 'tsincr_0.npy') diff --git a/pyrate/scripts/run_pyrate.py b/pyrate/scripts/run_pyrate.py index ba7da6d99..accc154dc 100644 --- a/pyrate/scripts/run_pyrate.py +++ b/pyrate/scripts/run_pyrate.py @@ -20,8 +20,9 @@ import logging import os -from os.path import join import pickle as cp +from os.path import join + import numpy as np from pyrate import algorithm @@ -39,8 +40,8 @@ from pyrate.aps import spatio_temporal_filter from pyrate.compat import PyAPS_INSTALLED from pyrate.config import ConfigException -from pyrate.shared import Ifg, create_tiles, \ - PrereadIfg, prepare_ifg, save_numpy_phase, get_projection_info +from pyrate.shared import Ifg, PrereadIfg, prepare_ifg, save_numpy_phase, \ + get_projection_info, get_tiles if PyAPS_INSTALLED: # pragma: no cover from pyrate.pyaps import check_aps_ifgs, aps_delay_required @@ -49,31 +50,6 @@ log = logging.getLogger(__name__) -def get_tiles(ifg_path, rows, cols): - """ - Break up the ifgs into tiles based on user supplied rows and cols - - Parameters - ---------- - ifg_path: str - list of destination tifs - rows: int - number of rows to break each ifg into - cols: int - number of cols to break each ifg into - - Returns - ------- - tiles: list - list of shared.Tile instances - """ - ifg = Ifg(ifg_path) - ifg.open(readonly=True) - tiles = create_tiles(ifg.shape, nrows=rows, ncols=cols) - ifg.close() - return tiles - - def _join_dicts(dicts): """ Parameters diff --git a/pyrate/shared.py b/pyrate/shared.py index 47fb16d6f..6350c34f2 100644 --- a/pyrate/shared.py +++ b/pyrate/shared.py @@ -1069,3 +1069,28 @@ def output_tiff_filename(inpath, outpath): """ fname, ext = os.path.basename(inpath).split('.') return os.path.join(outpath, fname + '_' + ext + '.tif') + + +def get_tiles(ifg_path, rows, cols): + """ + Break up the ifgs into tiles based on user supplied rows and cols + + Parameters + ---------- + ifg_path: str + list of destination tifs + rows: int + number of rows to break each ifg into + cols: int + number of cols to break each ifg into + + Returns + ------- + tiles: list + list of shared.Tile instances + """ + ifg = Ifg(ifg_path) + ifg.open(readonly=True) + tiles = create_tiles(ifg.shape, nrows=rows, ncols=cols) + ifg.close() + return tiles \ No newline at end of file diff --git a/tests/test_mpi.py b/tests/test_mpi.py index 3e2026c2d..a47b23b20 100644 --- a/tests/test_mpi.py +++ b/tests/test_mpi.py @@ -175,7 +175,7 @@ def test_vcm_matlab_vs_mpi(mpisync, tempdir, get_config): mpiops.comm.barrier() - tiles = run_pyrate.get_tiles(dest_paths[0], rows=1, cols=1) + tiles = pyrate.shared.get_tiles(dest_paths[0], rows=1, cols=1) preread_ifgs = run_pyrate.create_ifg_dict(dest_paths, params=params_dict, tiles=tiles) @@ -252,7 +252,7 @@ def test_timeseries_linrate_mpi(mpisync, tempdir, modify_config, (refpx, refpy), maxvar, vcmt = run_pyrate.process_ifgs( ifg_paths=dest_paths, params=params, rows=row_splits, cols=col_splits) - tiles = mpiops.run_once(run_pyrate.get_tiles, dest_paths[0], + tiles = mpiops.run_once(pyrate.shared.get_tiles, dest_paths[0], rows=row_splits, cols=col_splits) postprocessing.postprocess_linrate(row_splits, col_splits, params) postprocessing.postprocess_timeseries(row_splits, col_splits, params) diff --git a/tests/test_pyrate.py b/tests/test_pyrate.py index 83272e9ea..94b1afdca 100644 --- a/tests/test_pyrate.py +++ b/tests/test_pyrate.py @@ -26,6 +26,7 @@ from os.path import join import numpy as np +import pyrate.shared from pyrate import config as cf from pyrate import shared, config, prepifg from pyrate.scripts import run_pyrate, run_prepifg @@ -212,7 +213,7 @@ def setUpClass(cls): cls.dest_paths = cf.get_dest_paths( base_unw_paths, crop, params, xlks) run_prepifg.gamma_prepifg(base_unw_paths, params) - tiles = run_pyrate.get_tiles(cls.dest_paths[0], 3, 3) + tiles = pyrate.shared.get_tiles(cls.dest_paths[0], 3, 3) ifgs = common.small_data_setup() cls.refpixel_p, cls.maxvar_p, cls.vcmt_p = \ run_pyrate.process_ifgs(cls.dest_paths, params, 3, 3) From 70e39597e50c174c50ff0182dc512c56d7062c24 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Wed, 22 Mar 2017 12:06:37 +1100 Subject: [PATCH 11/68] removed import from test suite --- pyrate/orbital.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pyrate/orbital.py b/pyrate/orbital.py index 3f34ebb2c..44b280fca 100644 --- a/pyrate/orbital.py +++ b/pyrate/orbital.py @@ -241,11 +241,10 @@ def network_correction(ifgs, degree, offset, params, m_ifgs=None, else: dm = get_design_matrix(ifgs[0], degree, offset=False) - # TODO: remove this import from tests suite - from tests.common import MockIfg + # from tests.common import MockIfg for i in ifgs: # open if not Ifg instance - if not (isinstance(i, Ifg) or isinstance(i, MockIfg)): # pragma: no cover + if isinstance(i, str): # pragma: no cover # are paths i = Ifg(i) i.open(readonly=False) From 69217771db82862eabebceb4e73a7389cf4a1226 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Wed, 22 Mar 2017 16:11:44 +1100 Subject: [PATCH 12/68] added configs dict to log --- pyrate/scripts/main.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pyrate/scripts/main.py b/pyrate/scripts/main.py index 0a8e4f137..85820f967 100644 --- a/pyrate/scripts/main.py +++ b/pyrate/scripts/main.py @@ -21,6 +21,7 @@ from os.path import abspath import logging import click +import json from pyrate import pyratelog as pylog from pyrate import config as cf from pyrate.scripts import run_prepifg, run_pyrate, postprocessing @@ -56,6 +57,8 @@ def prepifg(config_file): """ config_file = abspath(config_file) params = cf.get_config_params(config_file) + log.info('This job was run with the following parameters:') + log.info(json.dumps(params, indent=4, sort_keys=True)) if params[cf.LUIGI]: run_prepifg.main() else: @@ -73,8 +76,10 @@ def linrate(config_file, rows, cols): Main PyRate workflow including time series and linear rate computation """ config_file = abspath(config_file) - _, dest_paths, pars = cf.get_ifg_paths(config_file) - run_pyrate.process_ifgs(sorted(dest_paths), pars, rows, cols) + _, dest_paths, params = cf.get_ifg_paths(config_file) + log.info('This job was run with the following parameters:') + log.info(json.dumps(params, indent=4, sort_keys=True)) + run_pyrate.process_ifgs(sorted(dest_paths), params, rows, cols) @cli.command() From 10a323e3adbefbeb21e7007d8758ffc916faa4d4 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Wed, 22 Mar 2017 17:43:27 +1100 Subject: [PATCH 13/68] temporal filter matches with part of the image --- .gitignore | 8 +- pyrate/aps.py | 19 +- tests/test_aps.py | 495 +----------------- .../small_test/conf/pyrate_gamma_test.conf | 25 + tests/test_pyaps.py | 472 +++++++++++++++++ 5 files changed, 543 insertions(+), 476 deletions(-) create mode 100644 tests/test_pyaps.py diff --git a/.gitignore b/.gitignore index bfe43e3ad..c151857fd 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,10 @@ tests/test_data/ PyAPS/ .cache/ # .coverage tmp files -.coverage.* \ No newline at end of file +.coverage.* +.vscode/ +dist/ +*.egg-info/ +.installed.cfg +*.egg +*__pycache__/ diff --git a/pyrate/aps.py b/pyrate/aps.py index 8ea1b13c1..4c72b3731 100644 --- a/pyrate/aps.py +++ b/pyrate/aps.py @@ -42,18 +42,25 @@ def temporal_low_pass_filter(ifg_paths, params, tiles, preread_ifgs): t.index)), arr=tsincr) # need to assemble tsincr from all processes - shape = preread_ifgs[ifg_paths[0]].shape + (tsincr.shape[2], ) - tsincr_g = np.empty(shape=shape, dtype=np.float32) + tsincr_g = mpiops.run_once(_assemble_tsincr, ifg_paths, params, + preread_ifgs, tiles, tsincr.shape[2]) + tsfilt_incr = mpiops.run_once(tlpfilter, tsincr_g, epochlist, params) + ts_hp = tsincr_g - tsfilt_incr + log.info('Finished applying temporal low pass filter') + return ts_hp + - for i in range(tsincr.shape[2]): +def _assemble_tsincr(ifg_paths, params, preread_ifgs, tiles, nvelpar): + shape = preread_ifgs[ifg_paths[0]].shape + (nvelpar,) + tsincr_g = np.empty(shape=shape, dtype=np.float32) + for i in range(nvelpar): for n, t in enumerate(tiles): assemble_tiles(i, n, t, tsincr_g[:, :, i], params[cf.TMPDIR], 'tsincr_aps') - - ts_hp = tsincr_g - tlpfilter(tsincr_g, epochlist, params) - log.info('Finished applying temporal low pass filter') + return tsincr_g +# TODO: use tiles here and distribute amongst processes def tlpfilter(tsincr, epochlist, params): """temporal low pass filter""" nanmat = ~isnan(tsincr) diff --git a/tests/test_aps.py b/tests/test_aps.py index 086bfe7ef..7d04af616 100644 --- a/tests/test_aps.py +++ b/tests/test_aps.py @@ -1,472 +1,29 @@ -# This Python module is part of the PyRate software package. -# -# Copyright 2017 Geoscience Australia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -""" -This Python module contains tests for the pyaps.py PyRate module. -""" -import copy -import glob import os -import re -import shutil -import subprocess -import tempfile -import unittest -import pytest -import gdal +import pickle +import scipy.io as sio import numpy as np - +from pyrate.algorithm import get_epochs +from pyrate.aps import tlpfilter from pyrate import config as cf -from pyrate import ifgconstants as ifc -from pyrate.compat import PyAPS_INSTALLED -from pyrate.scripts import run_pyrate, run_prepifg -from tests import common -if PyAPS_INSTALLED: - from pyrate import pyaps - - -@unittest.skipUnless(PyAPS_INSTALLED, 'PyAPS must be available for this test') -@pytest.mark.skipif(not PyAPS_INSTALLED, - reason='PyAPS must be available for this test') -class TestMethod1VsMethod2AndMetaData(unittest.TestCase): - - @classmethod - def setUpClass(cls): - cls.tif_dir = tempfile.mkdtemp() - cls.tif_dir_method2 = tempfile.mkdtemp() - cls.test_conf = common.TEST_CONF_ROIPAC - - # change the required params - cls.params = cf.get_config_params(cls.test_conf) - cls.params[cf.OBS_DIR] = common.SML_TEST_GAMMA - cls.params[cf.PROCESSOR] = 1 # gamma - file_list = cf.parse_namelist(os.path.join(common.SML_TEST_GAMMA, - 'ifms_17')) - cls.params[cf.IFG_FILE_LIST] = tempfile.mktemp(dir=cls.tif_dir) - # write a short filelist with only 3 gamma unws - with open(cls.params[cf.IFG_FILE_LIST], 'w') as fp: - for f in file_list[:2]: - fp.write(os.path.join(common.SML_TEST_GAMMA, f) + '\n') - cls.params[cf.OUT_DIR] = cls.tif_dir - cls.params[cf.PARALLEL] = True - cls.params[cf.REF_EST_METHOD] = 1 - cls.params[cf.DEM_FILE] = common.SML_TEST_DEM_GAMMA - cls.params[cf.APS_INCIDENCE_MAP] = common.SML_TEST_INCIDENCE - # base_unw_paths need to be geotiffed and multilooked by run_prepifg - base_unw_paths = run_pyrate.original_ifg_paths( - cls.params[cf.IFG_FILE_LIST]) - # add dem - base_unw_paths.append(common.SML_TEST_DEM_GAMMA) - # add incidence - base_unw_paths.append(common.SML_TEST_INCIDENCE) - - xlks, ylks, crop = run_pyrate.transform_params(cls.params) - - import copy - cls.params_method2 = copy.copy(cls.params) - cls.params_method2[cf.OUT_DIR] = cls.tif_dir_method2 - cls.params_method2[cf.APS_METHOD] = 2 - - # dest_paths are tifs that have been geotif converted and multilooked - run_prepifg.gamma_prepifg(base_unw_paths, cls.params) - run_prepifg.gamma_prepifg(base_unw_paths, cls.params_method2) - - # removed incidence as we don't want it in ifgs list - base_unw_paths.pop() - # removed dem as we don't want it in ifgs list - base_unw_paths.pop() - - dest_paths = run_pyrate.get_dest_paths( - base_unw_paths, crop, cls.params, xlks) - cls.ifgs = common.small_data_setup(datafiles=dest_paths) - - dest_paths_m2 = run_pyrate.get_dest_paths( - base_unw_paths, crop, cls.params_method2, xlks) - cls.ifgs_method2 = common.small_data_setup(datafiles=dest_paths_m2) - pyaps.remove_aps_delay(cls.ifgs, cls.params) - pyaps.remove_aps_delay(cls.ifgs_method2, cls.params_method2) - - @classmethod - def tearDownClass(cls): - for i in cls.ifgs: - i.close() - for i in cls.ifgs_method2: - i.close() - - shutil.rmtree(cls.tif_dir) - shutil.rmtree(cls.tif_dir_method2) - - def test_metadata_was_copied(self): - for i in self.ifgs: - md = i.meta_data - i.close() - self.assertIn(ifc.PYRATE_APS_ERROR, md.keys()) - self.assertIn(pyaps.APS_STATUS, md.values()) - - def test_meta_data_was_written(self): - for i in self.ifgs: - md = i.meta_data - i.close() - ds = gdal.Open(i.data_path) - md_w = ds.GetMetadata() - self.assertDictEqual(md, md_w) - ds = None - - def test_dem_tifs_present(self): - # geotiffed dem - os.path.exists(os.path.join(self.params[cf.OUT_DIR], - os.path.splitext(common.SML_TEST_DEM_GAMMA)[0] - + '.tif')) - - # multilooked dem - os.path.exists(os.path.join(self.params[cf.OUT_DIR], - os.path.splitext(common.SML_TEST_DEM_GAMMA)[0] - + '_{looks}rlks_{crop}cr.tif'.format( - looks=self.params[cf.IFG_LKSX], - crop=self.params[cf.IFG_CROP_OPT]))) - - def test_method1_method2_equal_with_uniform_incidence_map(self): - for i, j in zip(self.ifgs, self.ifgs_method2): - np.testing.assert_array_almost_equal(i.phase_data, j.phase_data, - decimal=4) - - -@unittest.skipUnless(PyAPS_INSTALLED, 'PyAPS must be available for this test') -@pytest.mark.skipif(not PyAPS_INSTALLED, - reason='PyAPS must be available for this test') -class TestOriginalVsEfficientAps(unittest.TestCase): - - @classmethod - def setUpClass(cls): - cls.tif_dir = tempfile.mkdtemp() - cls.tif_dir_original = tempfile.mkdtemp() - cls.test_conf = common.TEST_CONF_ROIPAC - - # change the required params - cls.params = cf.get_config_params(cls.test_conf) - cls.params[cf.OBS_DIR] = common.SML_TEST_GAMMA - cls.params[cf.PROCESSOR] = 1 # gamma - file_list = cf.parse_namelist(os.path.join(common.SML_TEST_GAMMA, - 'ifms_17')) - cls.params[cf.IFG_FILE_LIST] = tempfile.mktemp(dir=cls.tif_dir) - # write a short filelist with only 3 gamma unws - with open(cls.params[cf.IFG_FILE_LIST], 'w') as fp: - for f in file_list[:2]: - fp.write(os.path.join(common.SML_TEST_GAMMA, f) + '\n') - cls.params[cf.OUT_DIR] = cls.tif_dir - cls.params[cf.PARALLEL] = True - cls.params[cf.REF_EST_METHOD] = 2 - cls.params[cf.DEM_FILE] = common.SML_TEST_DEM_GAMMA - cls.params[cf.APS_INCIDENCE_MAP] = common.SML_TEST_INCIDENCE - # base_unw_paths need to be geotiffed and multilooked by run_prepifg - base_unw_paths = run_pyrate.original_ifg_paths( - cls.params[cf.IFG_FILE_LIST]) - # add dem - base_unw_paths.append(common.SML_TEST_DEM_GAMMA) - # add incidence - base_unw_paths.append(common.SML_TEST_INCIDENCE) - - xlks, ylks, crop = run_pyrate.transform_params(cls.params) - - import copy - cls.params_original = copy.copy(cls.params) - cls.params_original[cf.OUT_DIR] = cls.tif_dir_original - cls.params_original[cf.APS_METHOD] = 2 - - # dest_paths are tifs that have been geotif converted and multilooked - run_prepifg.gamma_prepifg(base_unw_paths, cls.params) - run_prepifg.gamma_prepifg(base_unw_paths, cls.params_original) - - # removed incidence as we don't want it in ifgs list - base_unw_paths.pop() - # removed dem as we don't want it in ifgs list - base_unw_paths.pop() - - dest_paths = run_pyrate.get_dest_paths( - base_unw_paths, crop, cls.params, xlks) - cls.ifgs = common.small_data_setup(datafiles=dest_paths) - - dest_paths_orig = run_pyrate.get_dest_paths( - base_unw_paths, crop, cls.params_original, xlks) - cls.ifgs_orig = common.small_data_setup(datafiles=dest_paths_orig) - pyaps.remove_aps_delay(cls.ifgs, cls.params) - pyaps.remove_aps_delay_original(cls.ifgs_orig, cls.params_original) - - @classmethod - def tearDownClass(cls): - for i in cls.ifgs: - i.close() - for i in cls.ifgs_orig: - i.close() - - shutil.rmtree(cls.tif_dir) - shutil.rmtree(cls.tif_dir_original) - - def test_metadata_was_copied(self): - for i in self.ifgs: - md = i.meta_data - i.close() - self.assertIn(ifc.PYRATE_APS_ERROR, md.keys()) - self.assertIn(pyaps.APS_STATUS, md.values()) - - def test_meta_data_was_written(self): - for i in self.ifgs: - i.close() - md = i.meta_data - ds = gdal.Open(i.data_path) - md_w = ds.GetMetadata() - self.assertDictEqual(md, md_w) - ds = None - - - def test_dem_tifs_present(self): - # geotiffed dem - os.path.exists(os.path.join(self.params[cf.OUT_DIR], - os.path.splitext(common.SML_TEST_DEM_GAMMA)[0] - + '.tif')) - - # multilooked dem - os.path.exists(os.path.join(self.params[cf.OUT_DIR], - os.path.splitext(common.SML_TEST_DEM_GAMMA)[0] - + '_{looks}rlks_{crop}cr.tif'.format( - looks=self.params[cf.IFG_LKSX], - crop=self.params[cf.IFG_CROP_OPT]))) - - def test_method1_method2_equal_with_uniform_incidence_map(self): - for i, j in zip(self.ifgs, self.ifgs_orig): - np.testing.assert_array_almost_equal(i.phase_data, j.phase_data, - decimal=4) - - -@unittest.skipUnless(PyAPS_INSTALLED, 'PyAPS must be available for this test') -@pytest.mark.skipif(not PyAPS_INSTALLED, - reason='PyAPS must be available for this test') -class TestAPSIncidenceVsElevationVsParallel(unittest.TestCase): - """ - This class tests APS method when incidence map is provided vs elevation map - """ - - @classmethod - def setUpClass(cls): - cls.tif_dir_inc = tempfile.mkdtemp() - cls.tif_dir_ele = tempfile.mkdtemp() - cls.tif_dir_ele_par = tempfile.mkdtemp() - cls.test_conf = common.TEST_CONF_ROIPAC - - # change the required params - cls.params_inc = cf.get_config_params(cls.test_conf) - cls.params_inc[cf.OBS_DIR] = common.SML_TEST_GAMMA - cls.params_inc[cf.PROCESSOR] = 1 # gamma - file_list = cf.parse_namelist(os.path.join(common.SML_TEST_GAMMA, - 'ifms_17')) - # config file - cls.params_inc[cf.IFG_FILE_LIST] = tempfile.mktemp(dir=cls.tif_dir_inc) - - # write a short filelist with only 3 gamma unws - with open(cls.params_inc[cf.IFG_FILE_LIST], 'w') as fp: - for f in file_list[:2]: - fp.write(os.path.join(common.SML_TEST_GAMMA, f) + '\n') - - cls.params_inc[cf.OUT_DIR] = cls.tif_dir_inc - cls.params_inc[cf.PARALLEL] = 0 - cls.params_inc[cf.REF_EST_METHOD] = 1 - cls.params_inc[cf.APS_METHOD] = 2 - cls.params_inc[cf.DEM_FILE] = common.SML_TEST_DEM_GAMMA - cls.params_inc[cf.APS_INCIDENCE_MAP] = common.SML_TEST_INCIDENCE - run_prepifg.main(cls.params_inc) - - # now create the config for the elevation_map case - cls.params_ele = copy.copy(cls.params_inc) - cls.params_ele[cf.OUT_DIR] = cls.tif_dir_ele - cls.params_ele[cf.APS_METHOD] = 2 - cls.params_ele[cf.APS_INCIDENCE_MAP] = None - cls.params_ele[cf.APS_INCIDENCE_EXT] = None - cls.params_ele[cf.APS_ELEVATION_MAP] = common.SML_TEST_ELEVATION - cls.params_ele[cf.APS_ELEVATION_EXT] = 'lv_theta' - run_prepifg.main(cls.params_ele) - - ptn = re.compile(r'\d{8}') - dest_paths_inc = [f for f in - glob.glob(os.path.join(cls.tif_dir_inc, '*.tif')) - if ("cr" in f) and ("rlks" in f) and - (len(re.findall(ptn, os.path.basename(f))) == 2)] - cls.ifgs_inc = common.small_data_setup(datafiles=dest_paths_inc) - - dest_paths_ele = [f for f in - glob.glob(os.path.join(cls.tif_dir_ele, '*.tif')) - if "cr" in f and "rlks" in f and - (len(re.findall(ptn, os.path.basename(f))) == 2)] - - cls.ifgs_ele = common.small_data_setup(datafiles=dest_paths_ele) - - # now create the config for the elevation map parallel case - cls.params_ele_par = copy.copy(cls.params_ele) - cls.params_ele_par[cf.OUT_DIR] = cls.tif_dir_ele_par - cls.params_ele_par[cf.PARALLEL] = True - run_prepifg.main(cls.params_ele_par) - dest_paths_ele_par = \ - [f for f in glob.glob(os.path.join(cls.tif_dir_ele_par, '*.tif')) - if "cr" in f and "rlks" in f and - (len(re.findall(ptn, os.path.basename(f))) == 2)] - - cls.ifgs_ele_par = common.small_data_setup(datafiles=dest_paths_ele_par) - - pyaps.remove_aps_delay(cls.ifgs_inc, cls.params_inc) - pyaps.remove_aps_delay(cls.ifgs_ele, cls.params_ele) - pyaps.remove_aps_delay(cls.ifgs_ele_par, cls.params_ele_par) - - @classmethod - def tearDownClass(cls): - for i in cls.ifgs_ele: - i.close() - for i in cls.ifgs_ele_par: - i.close() - for i in cls.ifgs_inc: - i.close() - - shutil.rmtree(cls.tif_dir_inc) - shutil.rmtree(cls.tif_dir_ele) - shutil.rmtree(cls.tif_dir_ele_par) - - def test_inc_vs_ele_equal_with_uniform_incidence_map(self): - for i, j in zip(self.ifgs_inc, self.ifgs_ele): - np.testing.assert_array_almost_equal(i.phase_data, j.phase_data, - decimal=4) - - def test_inc_serial_vs_parallel(self): - for i, j in zip(self.ifgs_ele_par, self.ifgs_ele): - np.testing.assert_array_almost_equal(i.phase_data, j.phase_data, - decimal=4) - - -@unittest.skipUnless(PyAPS_INSTALLED, 'PyAPS must be available for this test') -class MPITests(unittest.TestCase): - # TODO: add tests for looks > 1 - @classmethod - def setUpClass(cls): - cls.tif_dir_serial = tempfile.mkdtemp() - cls.tif_dir_mpi = tempfile.mkdtemp() - cls.test_conf = common.TEST_CONF_ROIPAC - - # change the required params - cls.params = cf.get_config_params(cls.test_conf) - cls.params[cf.OBS_DIR] = common.SML_TEST_GAMMA - cls.params[cf.PROCESSOR] = 1 # gamma - file_list = cf.parse_namelist(os.path.join(common.SML_TEST_GAMMA, - 'ifms_17')) - cls.params[cf.IFG_FILE_LIST] = tempfile.mktemp(dir=cls.tif_dir_serial) - # write a short filelist with only 3 gamma unws - with open(cls.params[cf.IFG_FILE_LIST], 'w') as fp: - for f in file_list[:2]: - fp.write(os.path.join(common.SML_TEST_GAMMA, f) + '\n') - cls.params[cf.OUT_DIR] = cls.tif_dir_serial - cls.params[cf.PARALLEL] = 0 - cls.params[cf.REF_EST_METHOD] = 2 - cls.params[cf.IFG_LKSX] = 1 - cls.params[cf.IFG_LKSY] = 1 - cls.params[cf.DEM_FILE] = common.SML_TEST_DEM_GAMMA - cls.params[cf.APS_INCIDENCE_MAP] = common.SML_TEST_INCIDENCE - # base_unw_paths need to be geotiffed and multilooked by run_prepifg - base_unw_paths = run_pyrate.original_ifg_paths( - cls.params[cf.IFG_FILE_LIST]) - # add dem - base_unw_paths.append(common.SML_TEST_DEM_GAMMA) - # add incidence - base_unw_paths.append(common.SML_TEST_INCIDENCE) - - xlks, ylks, crop = run_pyrate.transform_params(cls.params) - - cls.params_mpi = copy.copy(cls.params) - cls.params_mpi[cf.OUT_DIR] = cls.tif_dir_mpi - - # dest_paths are tifs that have been geotif converted and multilooked - run_prepifg.gamma_prepifg(base_unw_paths, cls.params) - run_prepifg.gamma_prepifg(base_unw_paths, cls.params_mpi) - - # removed incidence as we don't want it in ifgs list - base_unw_paths.pop() - # removed dem as we don't want it in ifgs list - base_unw_paths.pop() - - dest_paths = run_pyrate.get_dest_paths( - base_unw_paths, crop, cls.params, xlks) - dest_paths_mpi = run_pyrate.get_dest_paths( - base_unw_paths, crop, cls.params_mpi, xlks) - run_pyrate.process_ifgs(dest_paths, cls.params) - cls.ifgs_serial = common.small_data_setup(datafiles=dest_paths) - cls.conf_mpi = tempfile.mktemp('.conf', dir=cls.tif_dir_mpi) - cf.write_config_file(cls.params_mpi, cls.conf_mpi) - str = 'mpirun -np 4 python pyrate/nci/run_pyrate_pypar.py ' + \ - cls.conf_mpi - cmd = str.split() - subprocess.check_call(cmd) - str = 'mpirun -np 4 python pyrate/nci/run_pyrate_pypar_2.py ' + \ - cls.conf_mpi - cmd = str.split() - subprocess.check_call(cmd) - str = 'mpirun -np 4 python pyrate/nci/run_pyrate_pypar_3.py ' + \ - cls.conf_mpi - cmd = str.split() - subprocess.check_call(cmd) - cls.ifgs_mpi = common.small_data_setup(datafiles=dest_paths_mpi) - - @classmethod - def tearDownClass(cls): - for i in cls.ifgs_serial: - i.close() - for i in cls.ifgs_mpi: - i.close() - - shutil.rmtree(cls.tif_dir_serial) - shutil.rmtree(cls.tif_dir_mpi) - - def test_metadata_was_copied(self): - for j, i in zip(self.ifgs_serial, self.ifgs_mpi): - md = i.meta_data - md_s = j.meta_data - self.assertIn(ifc.PYRATE_APS_ERROR, md_s.keys()) - self.assertIn(ifc.PYRATE_APS_ERROR, md.keys()) - self.assertIn(pyaps.APS_STATUS, md.values()) - - def test_meta_data_was_written(self): - for i in self.ifgs_mpi: - md = i.meta_data - ds = gdal.Open(i.data_path) - md_w = ds.GetMetadata() - self.assertDictEqual(md, md_w) - self.assertIn(ifc.PYRATE_APS_ERROR, md_w.keys()) - ds = None - - def test_dem_tifs_present(self): - # geotiffed dem - os.path.exists(os.path.join(self.params_mpi[cf.OUT_DIR], - os.path.splitext(common.SML_TEST_DEM_GAMMA)[0] - + '.tif')) - - # multilooked dem - os.path.exists(os.path.join(self.params_mpi[cf.OUT_DIR], - os.path.splitext(common.SML_TEST_DEM_GAMMA)[0] - + '_{looks}rlks_{crop}cr.tif'.format( - looks=self.params_mpi[cf.IFG_LKSX], - crop=self.params_mpi[cf.IFG_CROP_OPT]))) - - def test_serial_vs_mpi_equal(self): - for i, j in zip(self.ifgs_serial, self.ifgs_mpi): - np.testing.assert_array_almost_equal(i.phase_data, j.phase_data, - decimal=4) - - -if __name__ == '__main__': - unittest.main() +from tests.common import SML_TEST_DIR, TEST_CONF_GAMMA + +# tsincr matrix from matlab using svd timeseries method +tsincr_svd = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', + 'tsincr_svd.mat')) +# prepread ifgs pickle file +ifgs_pk = os.path.join(SML_TEST_DIR, 'matlab_aps', 'preread_ifgs.pk') +ifgs_pk = pickle.load(open(ifgs_pk, 'rb')) + +# tlp filter output from matlab +ts_hp = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', + 'ts_hp.mat')) + + +def test_tlpfilter_matlab(): + epochlist = get_epochs(ifgs_pk)[0] + params = cf.get_config_params(os.path.join(TEST_CONF_GAMMA)) + tsincr = tsincr_svd['tsincr'] + tsfilt_incr = tlpfilter(tsincr, epochlist, params) + # TODO: why don't the entire matrices match? + np.testing.assert_almost_equal(ts_hp['ts_hp'][:30, :47, :], + tsfilt_incr[:30, :47, :], decimal=4) diff --git a/tests/test_data/small_test/conf/pyrate_gamma_test.conf b/tests/test_data/small_test/conf/pyrate_gamma_test.conf index fe1b6295d..15b595c72 100644 --- a/tests/test_data/small_test/conf/pyrate_gamma_test.conf +++ b/tests/test_data/small_test/conf/pyrate_gamma_test.conf @@ -100,6 +100,31 @@ apsmethod: 2 incidencemap: tests/test_data/small_test/gamma_obs/20060619_utm.inc elevationmap: tests/test_data/small_test/gamma_obs/20060619_utm.lv_theta + +# spatio-temporal filter +#------------------------------------ +# apsest: (1: APS estimation; 0: not) +apsest: 1 + +# spatially correlated noise low-pass filter parameters +# slpfmethod: filter method (1: butterworth; 2: gaussian) +# slpfcutoff: cutoff d0 for both butterworth and gaussian filters in the same unit with pixel size +# slpforder: order n for butterworth filter (default 1) +slpfmethod: 1 +slpfcutoff: 0 +slpforder: 1 + + +# temporal low-pass filter parameters +# tlpfcutoff: cutoff t0 for gaussian filter in year; +# tlpfpthr: valid pixel threshold; +# note: pirate config file terminology is confusing. They actually want a low +# pass filter, but somehow uses t'h'pf* instead +tlpfmethod: 1 +tlpfcutoff: 0.25 +tlpfpthr: 1 + + #------------------------------------ # Time Series Calculation # tscal: YES = 1, NO = 0 diff --git a/tests/test_pyaps.py b/tests/test_pyaps.py new file mode 100644 index 000000000..086bfe7ef --- /dev/null +++ b/tests/test_pyaps.py @@ -0,0 +1,472 @@ +# This Python module is part of the PyRate software package. +# +# Copyright 2017 Geoscience Australia +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" +This Python module contains tests for the pyaps.py PyRate module. +""" +import copy +import glob +import os +import re +import shutil +import subprocess +import tempfile +import unittest +import pytest +import gdal +import numpy as np + +from pyrate import config as cf +from pyrate import ifgconstants as ifc +from pyrate.compat import PyAPS_INSTALLED +from pyrate.scripts import run_pyrate, run_prepifg +from tests import common +if PyAPS_INSTALLED: + from pyrate import pyaps + + +@unittest.skipUnless(PyAPS_INSTALLED, 'PyAPS must be available for this test') +@pytest.mark.skipif(not PyAPS_INSTALLED, + reason='PyAPS must be available for this test') +class TestMethod1VsMethod2AndMetaData(unittest.TestCase): + + @classmethod + def setUpClass(cls): + cls.tif_dir = tempfile.mkdtemp() + cls.tif_dir_method2 = tempfile.mkdtemp() + cls.test_conf = common.TEST_CONF_ROIPAC + + # change the required params + cls.params = cf.get_config_params(cls.test_conf) + cls.params[cf.OBS_DIR] = common.SML_TEST_GAMMA + cls.params[cf.PROCESSOR] = 1 # gamma + file_list = cf.parse_namelist(os.path.join(common.SML_TEST_GAMMA, + 'ifms_17')) + cls.params[cf.IFG_FILE_LIST] = tempfile.mktemp(dir=cls.tif_dir) + # write a short filelist with only 3 gamma unws + with open(cls.params[cf.IFG_FILE_LIST], 'w') as fp: + for f in file_list[:2]: + fp.write(os.path.join(common.SML_TEST_GAMMA, f) + '\n') + cls.params[cf.OUT_DIR] = cls.tif_dir + cls.params[cf.PARALLEL] = True + cls.params[cf.REF_EST_METHOD] = 1 + cls.params[cf.DEM_FILE] = common.SML_TEST_DEM_GAMMA + cls.params[cf.APS_INCIDENCE_MAP] = common.SML_TEST_INCIDENCE + # base_unw_paths need to be geotiffed and multilooked by run_prepifg + base_unw_paths = run_pyrate.original_ifg_paths( + cls.params[cf.IFG_FILE_LIST]) + # add dem + base_unw_paths.append(common.SML_TEST_DEM_GAMMA) + # add incidence + base_unw_paths.append(common.SML_TEST_INCIDENCE) + + xlks, ylks, crop = run_pyrate.transform_params(cls.params) + + import copy + cls.params_method2 = copy.copy(cls.params) + cls.params_method2[cf.OUT_DIR] = cls.tif_dir_method2 + cls.params_method2[cf.APS_METHOD] = 2 + + # dest_paths are tifs that have been geotif converted and multilooked + run_prepifg.gamma_prepifg(base_unw_paths, cls.params) + run_prepifg.gamma_prepifg(base_unw_paths, cls.params_method2) + + # removed incidence as we don't want it in ifgs list + base_unw_paths.pop() + # removed dem as we don't want it in ifgs list + base_unw_paths.pop() + + dest_paths = run_pyrate.get_dest_paths( + base_unw_paths, crop, cls.params, xlks) + cls.ifgs = common.small_data_setup(datafiles=dest_paths) + + dest_paths_m2 = run_pyrate.get_dest_paths( + base_unw_paths, crop, cls.params_method2, xlks) + cls.ifgs_method2 = common.small_data_setup(datafiles=dest_paths_m2) + pyaps.remove_aps_delay(cls.ifgs, cls.params) + pyaps.remove_aps_delay(cls.ifgs_method2, cls.params_method2) + + @classmethod + def tearDownClass(cls): + for i in cls.ifgs: + i.close() + for i in cls.ifgs_method2: + i.close() + + shutil.rmtree(cls.tif_dir) + shutil.rmtree(cls.tif_dir_method2) + + def test_metadata_was_copied(self): + for i in self.ifgs: + md = i.meta_data + i.close() + self.assertIn(ifc.PYRATE_APS_ERROR, md.keys()) + self.assertIn(pyaps.APS_STATUS, md.values()) + + def test_meta_data_was_written(self): + for i in self.ifgs: + md = i.meta_data + i.close() + ds = gdal.Open(i.data_path) + md_w = ds.GetMetadata() + self.assertDictEqual(md, md_w) + ds = None + + def test_dem_tifs_present(self): + # geotiffed dem + os.path.exists(os.path.join(self.params[cf.OUT_DIR], + os.path.splitext(common.SML_TEST_DEM_GAMMA)[0] + + '.tif')) + + # multilooked dem + os.path.exists(os.path.join(self.params[cf.OUT_DIR], + os.path.splitext(common.SML_TEST_DEM_GAMMA)[0] + + '_{looks}rlks_{crop}cr.tif'.format( + looks=self.params[cf.IFG_LKSX], + crop=self.params[cf.IFG_CROP_OPT]))) + + def test_method1_method2_equal_with_uniform_incidence_map(self): + for i, j in zip(self.ifgs, self.ifgs_method2): + np.testing.assert_array_almost_equal(i.phase_data, j.phase_data, + decimal=4) + + +@unittest.skipUnless(PyAPS_INSTALLED, 'PyAPS must be available for this test') +@pytest.mark.skipif(not PyAPS_INSTALLED, + reason='PyAPS must be available for this test') +class TestOriginalVsEfficientAps(unittest.TestCase): + + @classmethod + def setUpClass(cls): + cls.tif_dir = tempfile.mkdtemp() + cls.tif_dir_original = tempfile.mkdtemp() + cls.test_conf = common.TEST_CONF_ROIPAC + + # change the required params + cls.params = cf.get_config_params(cls.test_conf) + cls.params[cf.OBS_DIR] = common.SML_TEST_GAMMA + cls.params[cf.PROCESSOR] = 1 # gamma + file_list = cf.parse_namelist(os.path.join(common.SML_TEST_GAMMA, + 'ifms_17')) + cls.params[cf.IFG_FILE_LIST] = tempfile.mktemp(dir=cls.tif_dir) + # write a short filelist with only 3 gamma unws + with open(cls.params[cf.IFG_FILE_LIST], 'w') as fp: + for f in file_list[:2]: + fp.write(os.path.join(common.SML_TEST_GAMMA, f) + '\n') + cls.params[cf.OUT_DIR] = cls.tif_dir + cls.params[cf.PARALLEL] = True + cls.params[cf.REF_EST_METHOD] = 2 + cls.params[cf.DEM_FILE] = common.SML_TEST_DEM_GAMMA + cls.params[cf.APS_INCIDENCE_MAP] = common.SML_TEST_INCIDENCE + # base_unw_paths need to be geotiffed and multilooked by run_prepifg + base_unw_paths = run_pyrate.original_ifg_paths( + cls.params[cf.IFG_FILE_LIST]) + # add dem + base_unw_paths.append(common.SML_TEST_DEM_GAMMA) + # add incidence + base_unw_paths.append(common.SML_TEST_INCIDENCE) + + xlks, ylks, crop = run_pyrate.transform_params(cls.params) + + import copy + cls.params_original = copy.copy(cls.params) + cls.params_original[cf.OUT_DIR] = cls.tif_dir_original + cls.params_original[cf.APS_METHOD] = 2 + + # dest_paths are tifs that have been geotif converted and multilooked + run_prepifg.gamma_prepifg(base_unw_paths, cls.params) + run_prepifg.gamma_prepifg(base_unw_paths, cls.params_original) + + # removed incidence as we don't want it in ifgs list + base_unw_paths.pop() + # removed dem as we don't want it in ifgs list + base_unw_paths.pop() + + dest_paths = run_pyrate.get_dest_paths( + base_unw_paths, crop, cls.params, xlks) + cls.ifgs = common.small_data_setup(datafiles=dest_paths) + + dest_paths_orig = run_pyrate.get_dest_paths( + base_unw_paths, crop, cls.params_original, xlks) + cls.ifgs_orig = common.small_data_setup(datafiles=dest_paths_orig) + pyaps.remove_aps_delay(cls.ifgs, cls.params) + pyaps.remove_aps_delay_original(cls.ifgs_orig, cls.params_original) + + @classmethod + def tearDownClass(cls): + for i in cls.ifgs: + i.close() + for i in cls.ifgs_orig: + i.close() + + shutil.rmtree(cls.tif_dir) + shutil.rmtree(cls.tif_dir_original) + + def test_metadata_was_copied(self): + for i in self.ifgs: + md = i.meta_data + i.close() + self.assertIn(ifc.PYRATE_APS_ERROR, md.keys()) + self.assertIn(pyaps.APS_STATUS, md.values()) + + def test_meta_data_was_written(self): + for i in self.ifgs: + i.close() + md = i.meta_data + ds = gdal.Open(i.data_path) + md_w = ds.GetMetadata() + self.assertDictEqual(md, md_w) + ds = None + + + def test_dem_tifs_present(self): + # geotiffed dem + os.path.exists(os.path.join(self.params[cf.OUT_DIR], + os.path.splitext(common.SML_TEST_DEM_GAMMA)[0] + + '.tif')) + + # multilooked dem + os.path.exists(os.path.join(self.params[cf.OUT_DIR], + os.path.splitext(common.SML_TEST_DEM_GAMMA)[0] + + '_{looks}rlks_{crop}cr.tif'.format( + looks=self.params[cf.IFG_LKSX], + crop=self.params[cf.IFG_CROP_OPT]))) + + def test_method1_method2_equal_with_uniform_incidence_map(self): + for i, j in zip(self.ifgs, self.ifgs_orig): + np.testing.assert_array_almost_equal(i.phase_data, j.phase_data, + decimal=4) + + +@unittest.skipUnless(PyAPS_INSTALLED, 'PyAPS must be available for this test') +@pytest.mark.skipif(not PyAPS_INSTALLED, + reason='PyAPS must be available for this test') +class TestAPSIncidenceVsElevationVsParallel(unittest.TestCase): + """ + This class tests APS method when incidence map is provided vs elevation map + """ + + @classmethod + def setUpClass(cls): + cls.tif_dir_inc = tempfile.mkdtemp() + cls.tif_dir_ele = tempfile.mkdtemp() + cls.tif_dir_ele_par = tempfile.mkdtemp() + cls.test_conf = common.TEST_CONF_ROIPAC + + # change the required params + cls.params_inc = cf.get_config_params(cls.test_conf) + cls.params_inc[cf.OBS_DIR] = common.SML_TEST_GAMMA + cls.params_inc[cf.PROCESSOR] = 1 # gamma + file_list = cf.parse_namelist(os.path.join(common.SML_TEST_GAMMA, + 'ifms_17')) + # config file + cls.params_inc[cf.IFG_FILE_LIST] = tempfile.mktemp(dir=cls.tif_dir_inc) + + # write a short filelist with only 3 gamma unws + with open(cls.params_inc[cf.IFG_FILE_LIST], 'w') as fp: + for f in file_list[:2]: + fp.write(os.path.join(common.SML_TEST_GAMMA, f) + '\n') + + cls.params_inc[cf.OUT_DIR] = cls.tif_dir_inc + cls.params_inc[cf.PARALLEL] = 0 + cls.params_inc[cf.REF_EST_METHOD] = 1 + cls.params_inc[cf.APS_METHOD] = 2 + cls.params_inc[cf.DEM_FILE] = common.SML_TEST_DEM_GAMMA + cls.params_inc[cf.APS_INCIDENCE_MAP] = common.SML_TEST_INCIDENCE + run_prepifg.main(cls.params_inc) + + # now create the config for the elevation_map case + cls.params_ele = copy.copy(cls.params_inc) + cls.params_ele[cf.OUT_DIR] = cls.tif_dir_ele + cls.params_ele[cf.APS_METHOD] = 2 + cls.params_ele[cf.APS_INCIDENCE_MAP] = None + cls.params_ele[cf.APS_INCIDENCE_EXT] = None + cls.params_ele[cf.APS_ELEVATION_MAP] = common.SML_TEST_ELEVATION + cls.params_ele[cf.APS_ELEVATION_EXT] = 'lv_theta' + run_prepifg.main(cls.params_ele) + + ptn = re.compile(r'\d{8}') + dest_paths_inc = [f for f in + glob.glob(os.path.join(cls.tif_dir_inc, '*.tif')) + if ("cr" in f) and ("rlks" in f) and + (len(re.findall(ptn, os.path.basename(f))) == 2)] + cls.ifgs_inc = common.small_data_setup(datafiles=dest_paths_inc) + + dest_paths_ele = [f for f in + glob.glob(os.path.join(cls.tif_dir_ele, '*.tif')) + if "cr" in f and "rlks" in f and + (len(re.findall(ptn, os.path.basename(f))) == 2)] + + cls.ifgs_ele = common.small_data_setup(datafiles=dest_paths_ele) + + # now create the config for the elevation map parallel case + cls.params_ele_par = copy.copy(cls.params_ele) + cls.params_ele_par[cf.OUT_DIR] = cls.tif_dir_ele_par + cls.params_ele_par[cf.PARALLEL] = True + run_prepifg.main(cls.params_ele_par) + dest_paths_ele_par = \ + [f for f in glob.glob(os.path.join(cls.tif_dir_ele_par, '*.tif')) + if "cr" in f and "rlks" in f and + (len(re.findall(ptn, os.path.basename(f))) == 2)] + + cls.ifgs_ele_par = common.small_data_setup(datafiles=dest_paths_ele_par) + + pyaps.remove_aps_delay(cls.ifgs_inc, cls.params_inc) + pyaps.remove_aps_delay(cls.ifgs_ele, cls.params_ele) + pyaps.remove_aps_delay(cls.ifgs_ele_par, cls.params_ele_par) + + @classmethod + def tearDownClass(cls): + for i in cls.ifgs_ele: + i.close() + for i in cls.ifgs_ele_par: + i.close() + for i in cls.ifgs_inc: + i.close() + + shutil.rmtree(cls.tif_dir_inc) + shutil.rmtree(cls.tif_dir_ele) + shutil.rmtree(cls.tif_dir_ele_par) + + def test_inc_vs_ele_equal_with_uniform_incidence_map(self): + for i, j in zip(self.ifgs_inc, self.ifgs_ele): + np.testing.assert_array_almost_equal(i.phase_data, j.phase_data, + decimal=4) + + def test_inc_serial_vs_parallel(self): + for i, j in zip(self.ifgs_ele_par, self.ifgs_ele): + np.testing.assert_array_almost_equal(i.phase_data, j.phase_data, + decimal=4) + + +@unittest.skipUnless(PyAPS_INSTALLED, 'PyAPS must be available for this test') +class MPITests(unittest.TestCase): + # TODO: add tests for looks > 1 + @classmethod + def setUpClass(cls): + cls.tif_dir_serial = tempfile.mkdtemp() + cls.tif_dir_mpi = tempfile.mkdtemp() + cls.test_conf = common.TEST_CONF_ROIPAC + + # change the required params + cls.params = cf.get_config_params(cls.test_conf) + cls.params[cf.OBS_DIR] = common.SML_TEST_GAMMA + cls.params[cf.PROCESSOR] = 1 # gamma + file_list = cf.parse_namelist(os.path.join(common.SML_TEST_GAMMA, + 'ifms_17')) + cls.params[cf.IFG_FILE_LIST] = tempfile.mktemp(dir=cls.tif_dir_serial) + # write a short filelist with only 3 gamma unws + with open(cls.params[cf.IFG_FILE_LIST], 'w') as fp: + for f in file_list[:2]: + fp.write(os.path.join(common.SML_TEST_GAMMA, f) + '\n') + cls.params[cf.OUT_DIR] = cls.tif_dir_serial + cls.params[cf.PARALLEL] = 0 + cls.params[cf.REF_EST_METHOD] = 2 + cls.params[cf.IFG_LKSX] = 1 + cls.params[cf.IFG_LKSY] = 1 + cls.params[cf.DEM_FILE] = common.SML_TEST_DEM_GAMMA + cls.params[cf.APS_INCIDENCE_MAP] = common.SML_TEST_INCIDENCE + # base_unw_paths need to be geotiffed and multilooked by run_prepifg + base_unw_paths = run_pyrate.original_ifg_paths( + cls.params[cf.IFG_FILE_LIST]) + # add dem + base_unw_paths.append(common.SML_TEST_DEM_GAMMA) + # add incidence + base_unw_paths.append(common.SML_TEST_INCIDENCE) + + xlks, ylks, crop = run_pyrate.transform_params(cls.params) + + cls.params_mpi = copy.copy(cls.params) + cls.params_mpi[cf.OUT_DIR] = cls.tif_dir_mpi + + # dest_paths are tifs that have been geotif converted and multilooked + run_prepifg.gamma_prepifg(base_unw_paths, cls.params) + run_prepifg.gamma_prepifg(base_unw_paths, cls.params_mpi) + + # removed incidence as we don't want it in ifgs list + base_unw_paths.pop() + # removed dem as we don't want it in ifgs list + base_unw_paths.pop() + + dest_paths = run_pyrate.get_dest_paths( + base_unw_paths, crop, cls.params, xlks) + dest_paths_mpi = run_pyrate.get_dest_paths( + base_unw_paths, crop, cls.params_mpi, xlks) + run_pyrate.process_ifgs(dest_paths, cls.params) + cls.ifgs_serial = common.small_data_setup(datafiles=dest_paths) + cls.conf_mpi = tempfile.mktemp('.conf', dir=cls.tif_dir_mpi) + cf.write_config_file(cls.params_mpi, cls.conf_mpi) + str = 'mpirun -np 4 python pyrate/nci/run_pyrate_pypar.py ' + \ + cls.conf_mpi + cmd = str.split() + subprocess.check_call(cmd) + str = 'mpirun -np 4 python pyrate/nci/run_pyrate_pypar_2.py ' + \ + cls.conf_mpi + cmd = str.split() + subprocess.check_call(cmd) + str = 'mpirun -np 4 python pyrate/nci/run_pyrate_pypar_3.py ' + \ + cls.conf_mpi + cmd = str.split() + subprocess.check_call(cmd) + cls.ifgs_mpi = common.small_data_setup(datafiles=dest_paths_mpi) + + @classmethod + def tearDownClass(cls): + for i in cls.ifgs_serial: + i.close() + for i in cls.ifgs_mpi: + i.close() + + shutil.rmtree(cls.tif_dir_serial) + shutil.rmtree(cls.tif_dir_mpi) + + def test_metadata_was_copied(self): + for j, i in zip(self.ifgs_serial, self.ifgs_mpi): + md = i.meta_data + md_s = j.meta_data + self.assertIn(ifc.PYRATE_APS_ERROR, md_s.keys()) + self.assertIn(ifc.PYRATE_APS_ERROR, md.keys()) + self.assertIn(pyaps.APS_STATUS, md.values()) + + def test_meta_data_was_written(self): + for i in self.ifgs_mpi: + md = i.meta_data + ds = gdal.Open(i.data_path) + md_w = ds.GetMetadata() + self.assertDictEqual(md, md_w) + self.assertIn(ifc.PYRATE_APS_ERROR, md_w.keys()) + ds = None + + def test_dem_tifs_present(self): + # geotiffed dem + os.path.exists(os.path.join(self.params_mpi[cf.OUT_DIR], + os.path.splitext(common.SML_TEST_DEM_GAMMA)[0] + + '.tif')) + + # multilooked dem + os.path.exists(os.path.join(self.params_mpi[cf.OUT_DIR], + os.path.splitext(common.SML_TEST_DEM_GAMMA)[0] + + '_{looks}rlks_{crop}cr.tif'.format( + looks=self.params_mpi[cf.IFG_LKSX], + crop=self.params_mpi[cf.IFG_CROP_OPT]))) + + def test_serial_vs_mpi_equal(self): + for i, j in zip(self.ifgs_serial, self.ifgs_mpi): + np.testing.assert_array_almost_equal(i.phase_data, j.phase_data, + decimal=4) + + +if __name__ == '__main__': + unittest.main() From 08e4aaef5111f275888f61b931f792581d4516e9 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Thu, 23 Mar 2017 08:51:59 +1100 Subject: [PATCH 14/68] temporal low pass filter matches matlab --- tests/test_aps.py | 9 ++++----- .../small_test/conf/pyrate_gamma_test.conf | 2 +- .../small_test/matlab_aps/preread_ifgs.pk | Bin 0 -> 17950 bytes .../test_data/small_test/matlab_aps/ts_hp.mat | Bin 0 -> 162632 bytes .../small_test/matlab_aps/tsincr_svd.mat | Bin 0 -> 162632 bytes 5 files changed, 5 insertions(+), 6 deletions(-) create mode 100644 tests/test_data/small_test/matlab_aps/preread_ifgs.pk create mode 100644 tests/test_data/small_test/matlab_aps/ts_hp.mat create mode 100644 tests/test_data/small_test/matlab_aps/tsincr_svd.mat diff --git a/tests/test_aps.py b/tests/test_aps.py index 7d04af616..7d0d9fefd 100644 --- a/tests/test_aps.py +++ b/tests/test_aps.py @@ -15,8 +15,7 @@ ifgs_pk = pickle.load(open(ifgs_pk, 'rb')) # tlp filter output from matlab -ts_hp = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', - 'ts_hp.mat')) +ts_hp = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', 'ts_hp.mat')) def test_tlpfilter_matlab(): @@ -24,6 +23,6 @@ def test_tlpfilter_matlab(): params = cf.get_config_params(os.path.join(TEST_CONF_GAMMA)) tsincr = tsincr_svd['tsincr'] tsfilt_incr = tlpfilter(tsincr, epochlist, params) - # TODO: why don't the entire matrices match? - np.testing.assert_almost_equal(ts_hp['ts_hp'][:30, :47, :], - tsfilt_incr[:30, :47, :], decimal=4) + tsfilt_incr_matlab = ts_hp['ts_hp'] + np.testing.assert_almost_equal(tsfilt_incr_matlab, + tsfilt_incr, decimal=4) diff --git a/tests/test_data/small_test/conf/pyrate_gamma_test.conf b/tests/test_data/small_test/conf/pyrate_gamma_test.conf index 15b595c72..768ece1e2 100644 --- a/tests/test_data/small_test/conf/pyrate_gamma_test.conf +++ b/tests/test_data/small_test/conf/pyrate_gamma_test.conf @@ -122,7 +122,7 @@ slpforder: 1 # pass filter, but somehow uses t'h'pf* instead tlpfmethod: 1 tlpfcutoff: 0.25 -tlpfpthr: 1 +tlpfpthr: 5 #------------------------------------ diff --git a/tests/test_data/small_test/matlab_aps/preread_ifgs.pk b/tests/test_data/small_test/matlab_aps/preread_ifgs.pk new file mode 100644 index 0000000000000000000000000000000000000000..f912e9baf03c19450051994d2dde0abbc3c84feb GIT binary patch literal 17950 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

NE+qK%cM(jSz>Bwg8*D_gaJJ*6weaZY9B3YW(` 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 z

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�X5S5uzt4qDBWFR=2MO?MVjc`h zzXF18R-x)VJ8qJ9UN|(=U0>g@jCM43(~mP$*Nbw@)TQf(XnTc*y3mE$dT_(@`odd2 z($eavKEXYej&HsHq6eoM9oGZ1Ez&O<@?PDtMO-yY`?&hFY3Rz{sg`S4=?1PI1wC9V z`#sb9yRQA0dh?I+x!-Ryw&7imYqBrJCru{erh1Y1yix@2gb=LT!NmTf2VvK%b@9Gv zhn`b-g86|{zIGwU1aLo;FG zx#l?3V=pGa~ukz9gwq4T7-B@h-_M6TldxrP)^vegzc?R!b=`>Mp@A%+Y( z=P#ze;?ISa<1=W_)=}h2x0S@6v?RqioA9lsMDqzs7Ftc(J(|o~{)AWSQSi@2WEyKJ z>ggA<`{dN}Xc}!@SW7|ip(LBsCF^koGV|0Tf#sEa-OlNnTZsSOH6^39GLtfqIQFX& z!z_REltY=P7-#5+I_6dGF*F}4^Swif$s3i`qymXbE0jEQM42^*l4s^6B)Vo)*39RI znIjvBu-}v%Z2ONk;Rtin$=x$**R!8wReG;P&?H+FV@~T{8WOv&uv|`(HkOd*aL)Tz zr_m;#=aQml9Z@*U5PRP%&*Bxe=jqZK@82Wq(QCqS3FHYZhif;LwMBw?|GgpR`+}?y zt>pQe{-XXyryO%YS(oRMHIeH??(fLn=@WSkOd*TsbeXrDlsstx?_udpV(MolOa5@m z`0C2^%|x>P7iHc*r9_wcPLZ#eA)FqDFn2lS#z9J)z2_877bxj*T#2dkmAKHwkWIr0 zH_xGzEqqqg&K&Qk&Q5WZn-{$?koQuQ$7v zYgg&u(WCV+-#uFTULr@<%_L6DSLV=)`D5V5QCnZB+u{BY4l%6@_n0g895SnP=`(0QX0W zd+*3|QU)!$-y_U+fMn~YBu6w?(px)akhc=H^Q~vL``z|X{`+(9Nk5cl3=_Jk_Wq9t%vWPltrb#ti9&JhF z=&N+4vj0{-W{007*QJtP5l5KH*VSzuS@A1K9*riS3eIq}2w$mJI$jZa{Q|T}z`my~C3squa4nkK~ z!p<$o%Cb?3Jr|W&9il|#QA$qzXvpjQaX%BkUUSN-ADl9-q9LpShPbfAkOj+A)B{Bx zGxF-FW-bz~&M7P7aFEApa$PRhVY`1Y@9+87Je2I1MvDq5WN#EjR(qBa=V10RtZ!r2 zl51roB^TdHo-H4fV^dlk-kWREv#M!(k7B%ktDV*@3@zGuXyH*vd!*#oa>!t1eN6#sbozgSL1GEcdJ3>r1eVN-KgZZgUalEP>Hpb41q^u z<&mpw$DjPoxVfxv-u{+v4>0%cQNefPDW!EAEiOteYrl88uJTN@ecdR9XRu<&wS-UE z*D+4{^M^HUBPE}|MD|UG$#o!(%r=WC`N(Rr5A8^nPX`kB!^pGS2Et-|-7Tk+x%o5& zIg4q1ti0Bhi|I;B8)@CEp|*$Z0}QG}B5aAL zN(?MZ*!B1sCAP&X(TwAUe_@hKGLx&>d%ECXMw>St z8Yz$VQNVz6I>p{j%jUm0P50d7Stf@LI<<++n)yh^rvF1O`8PS)llQT{ouuGy(Ioe+ zqo8n;#4q6_&sQY#_G_g}6eK~7m6h|EaxMLZ>_vK!BQdka!x{92$@%o|vSqYxA5VG> z@0glfgRJm%hR)v&M0gp{*|vk3a1vY{b6^gis+c;p6k4ZqpndcWkfJFMDyvEMiu@cP zk;MBcWN%rO{dx%5cef!~mz3BYqvVVfWxe{Y>~Fge2C&^f7g|i+K-SS0d_Qesg?lxd zNZDz~syl4r=>R2rd{XA(rwY%er{r>vDL6}Jo$RrKydJv<*S{j^#koh`OBCewl7biJ z)AH^sN;$;$+@prF@&!R)y?XdJ+5G;hn>$E+=}nI7GuXbH6Vq)ZCI^wIn4M%xLy1qX z;>0L#LtZU!$UAl=+Jq~)^P`eg83Qa2WnDr4< z+Ef^W$9tipSZR#TQ5?e9L74-SIPL?9 z4av$nG@OFYpCxO`c#@UhD|2KBnZ+Kl4Ll%+UiMdes`8QS*|w4X!OuRa6huubgr-ME z_`8f6EFkk+f09mqb{pG~UY3tUy^bV{KUSh~f14cH-4Jbt8{*ecL#)Yb$mJ^y+1?GT z8MOdU8X(h^2kcZ0^otgJK%*syGS3XFXHiJLr@(8P8;X#8nA*E6o_|{g9Y6A5z?H1L zd-^Gusi(m+@hVsYHiNG02Ii>zU>&_`*kc*@sMQn|w1;HT(PVY0NA~%(C@9}4lE3EE z$#3##*}@=KDM{ADmLy&kSHeO5;{F099@nzT7OX>s(vvv3gPRgslQlhwa16)Uu5-yO z%lG(s2FahfSdR|>#h%R1?61d9CM%jTNv^#7Gc`a4c-iD}cMx`W1D6~ldAk$2*7ENj z8AoQPC(04Ff=$t5t_~uE@8NA#5KBe_cH9a$XayusaR8Rv%vfs? zh%*k*AHzU4NntLwI0og+iPqUmVD8R>=W8Ioc5jMNZ8Kq1)fBMjIRtv;4v=o&4eL=g zaP1kzHdl@@3&-5hkz}SEB6BVGCcN=wTdK>~_=S?E=h4`16IotmNap>f`#78Uu#CDWk?w(E ze>)M()~f)w&jG7I7Aa*J2FOGR83P z3Xt_{80JFe&kkvF6-yz#gJnJTsUb`M4`20<^6^^DahT;4HS!8s9b1x_^uf?YS^ujP z)p9z|dRx7VyYO{ANnTa#V>+}oq%K3`yd6URtOe3^q zBT-?k63@yR!qEvVK3ik==lKe4Yk@dk5#*eG%KSAw$=>&soPL7rN8`yd2mH(U{f{#G zSD(8w-XzDap49=&tp<%35sR>=X_6vcF|}xb%sFeLZ#XGk2{&r_ty+P|FwHwS7%I z+08N}c5$rlmF(1aTY{M_6wIXVVC8HJu9UH$bL9bXGgPHi+fMc$@5!FyG3l>|$nH1s zeH z&Oms)M7<_Irkwf>JeQ_`zWNqqo=*^M%Zj?b1$I3Tf(C5_`-0pUwm2AFm)qm+QU-dK zuZ^CiIo3b_242r&xUT69vPD-zR{m^6)yt{vEAncO`e}7gHOBA--E|7jL&w~?w7p6z zlBQp*OlYN~f3P8njR*Ur5n#0$0_LwBLDaiy$W0?yr)DeJ(m}}~Y?Ct>)1PpVRhj)- z*apVS|BM0u(|h&>aco-`$?Mv5vUC;_nJOyLl=GfT#SPIr*|78ZW^+m_i0Z|9V@dRk ze**T>Zy~v~Ks=QV&F5KhSmEsW`gJ}u0|m-KPxaDm47!^EQ@duuaCbMn5axjk7Ujj{jTO5tCQ3h8>S+NJCP<;!hy}*?`3dAo9z#q$5xHs&hWpUmS6Nca^eaia|D=H)oqI=5jJI%yfVey(T9c-NXtq>Y=e$S^nMvlT zQlO9LM2|_$F}iCDG(T5D`>{8ilbL`M%Ru-%z?1|h*bnvwtF;fvx(5u)5&A#)jP1di z^_;|rS!^47AtiMq==mD}x6K3d(mZet;avA{ORzRA0Ke~PP@Zn4OtyH;UL(~NYZ z&tx9TqF;~oWKJ-x_PSI=%dIy_CouPscI_Yj&%e?iNAOfW2iJh)PM+h{C&qB`ToAL` z6~lf(fc2&)h_f5ODtQsiQ`aH&W-j!4nj2qxXGDGCJA}6=jNunJw>sy6fkr`;zBj;H zVFOI`B~x(hn03a9qkZ9ZY&n#jo1^2a2S%;tIG2NcmDmL`s}FcJUIDHaYa!~zPp}U; z2d)J_{^d36Rb@zbcmOi@9nN)^03R-clua%WOILxJoX9&yCxgiC1?ExK-Pga6m?cTP z_GWw=r-I*cpX4;wsWMB*9)E<)!9doiUgWxPkb*OX^K)dbpls@2^!3j&GUF?g%&DCs zvbQ0gtTv>7H_ju*7-sbX5R|k4PHS;CvKL@~*jpQDDlW+vzy+JKuz$*gK`Y9mV|HHDKF7d*#R92^ zg52!@`|3|@U)&?|%OB4d{q1_Kx8DqN&PQ;xzYDVSSHns$z?Cr>k~bd%vs5q86$+Ep z>y07GTsO?|%Sd`$HN@D-hG;&8IkT698vI{$j{JS{E4K%Ffadl`)>*27itzHZi}mAw09iiB_I}iE(ECX@7YYdl^e7F0qL_&uk)ox?x{j0rcf2 zAim@?Wa0uIg3t!6t-Ha#g=Yb`SqIkbm03vy4~vn{i-G=KAKg+L#>D6q8q1Ks}@o26xPW!SxDY%1A$qdR+>WJxlQUQ1?IN z&3}{2-(Fqa8AGJM15p7lK)WI!xR(YTcLc&G7RCIdrlUT2fy5;~^BekFiMlPAKhGK` zlYhoZk8g2u^hU!hR}f@$Geb1x`?}l}M9fL2@T?Xm`<^zKmjRi0%PG4wHsq>(hUm83 zDUL-c^x010beLhSWWR_*;^eGALl!$?Sk)MZ$Lz3K8$8(e)di8i54d`F0L?zpvpPXa z!zG((g1YwOc1HV47q!UAq;nr#y~@wtz!jx+9Y>w z$#46WHDad{KLg3!9m6?E0_QKfmOMDgDZ=C8M4tdddWO^yVc~{(;EREsGJ|!h4`0g? z-i5UpM8Q3P)e=DmaQ@wO9heu=14ek0sGPk(yS;`S z(NW30tcx$1pDWYL5FLgoad4oLai?rDI>`_j*dFhFH^lv>AcqYGdz10tc+5O|_5_~M zu^+52@gOg-56Z9=f;%%GIHrXmBRg^4+sj{U%Ew$mb z(|?r3zx!N9KIJoVQ%UG_%-f$bWE(rrD`7cQsS09R6L38l0Z|4ofAP2ka^NcPN?poW zpc7z~oFIF*1Cibz?7c>ToaTy`%lK*o0y}@e%27rpBUy_ zZxCyHfw;~-p(f|H5v4%(V|$tsZHUcpmy zLg0#B&YL|d@~kZ0Yuz>X|1Z1xgPhJzRpNLbWfqH6R=eEb*r35RXfb#eNQ0HUIiB5n z%Fp%#IBL0L;DL0Qk~JF!neK=+(x5%@ESO{2*5V%-vfNnqtg{6fxxc>xQhwd)cQ{*JkImuzO}!^t+u6qYKqTvvmMQc^AUun)%T@ zTO9pVQItFGbG+p^Y-d}@eh35{1bfID)}b_DEv^pM^&TMSv5wUS5C{7?&81@q-&N&W zWrUI)8ZZ~fK5oSYL*$xch&uc`Q9+<3Pe&kl9)T;Q3kbKN zAhJ0?X6Oq+oz8)${|e9z*MRJ?AA(zy#|OP5{@1cGo33QpkN=Bp%2I6%GY~=6bZ4Bw z+=535knW9a;%+ZxZ!@0f04EwE_#1>5Y=H}U*GI3O)zDS{0f@q$kmI-~TGx((eRd*v z+IMr#y$f{ddtjD$2Quj%=*U)JR&NN&6{oTf&kXXE2bfkC#&;8l;~$x}nj~5tQJi5p z#p4-H8FRrYBG_lW+Hc4+?2m4A1TlXE=smL_d0RNh5^DgzMKQ0y+~RQ7%@w5}IA8~u zH`5`u+6cn^uwfqF0iK^4qZzXj!&m;bxAzZr@*lW{s63EV=3rU zD7ajBVtkYaY%;%1_l-#&TiSR_H6q{_K-z%r6l?KFs_lB9U(hy5Zu}tQHZoqlrh{hnB zw`U($4y>nzKy)eYw9@6_Sg{}U^+VwKJQoJNYKeMdTTB_oGoSv0JpTMWk6W41%*@Ys z_65+BIPYq;0L1hrhKze-$hURD>}j%(WDald6lJd3&vj&%lF5Zh%;;iRN4Ejqk}S{H zhU?}+u->l$>wa;-zI<(|HzBI*7BJuR1uJ+pV}H$aeOiM|zmNZJiec7G2eL>fkZ~Oi zv9P4FH&{o>Pq;4UGD+0;;xpwp)bD2=M88%xS^G5eC9`XbADo+AUS|^?m2C1J$I*Ag zK@?(4c)kpn6{Z?;&v?#DS{riWQkw|sXcNOGvwvc~Xj(3G+-rxG9<@O;qVRvVv8C)6 z4!?!yZdoz;*gLKbB}3Fn=HJ>!f@fqjcwUPDv2ds%UzFgyWr@w2)3cv%afosG((>6Vb)uj#j z_%w6-8MrPpi*X?H7dfsNBI%sCsL zys@(6W}Ccu%_(a(bIOQ1h8e{*oT5)S&gJHOCYMtb&97w2LnRh0Rrn3-}{BCQiD$bM97$^(nJWXb+oc>PDWw361TU zW80j?CVi6GKD!u>T@r`!4!GcQThZ|=$BsTehKQN=cR8etkAtY2@1dh#Hw>CO`tR=t z<;;dSG#ds--3NP_?Tkyef|+#+So7F7-+yis)9Wd@z8(9XIGbPF_ATHLphpR5dmO#kep2j?Yuyql7hzd6MU zZzXGYX8D|Qiix#&Unu|IW8qHW{ac*8c-Cq4?@d;&6uzGMPIJj7B|N7Zm_8@^bu5ln zYFQ9NVpta|#p$l~8E>ZJ`kg<^GM#}XnD_saPPv}!CjE-*VQM{y`u#y48vD9J-)tLlJ<&WlfqPoG zW;%ee&}pupMyyw|2;1M?-E6Z{mHhN2PUhzx37_pwX+EhVBhr$6U}=&wK#4(RmGt9Y zlVd&#pXAihg=cD4?)M}-OZx}aGr_#Y@jrJi!`{}Hq;CO3_;?%U&mBtC^l{4O<+(=N zg>_N?{HKqbV95Lv!M=fOh#vjGt5O8Wms~G>nNG{XsW$2GFwC?*WSU+iwsGAvB^OzN z+|N-gMaiJeN|fGZliS?br*tu72F{npuVen^lpzW*F8s{+IcAwtUU+SY9GqKy-Kvml z$Cev%?;PiE$$7yl$XwR#FE%r40J&V5Nu1)G=~@~RRZc1y*+PkNx0s85%AfOd&vMWv z22E7vw}o7D_f_VE#$-LnPx5+yra9$%OYxe*BgDvEC@zDm|HA&y;j`#92k=DKl`hk`0oSd>Twxej1tjiL%yI z+-z|Ut)C|S)IJ4~3N>?M|w_53NBVao~K zQpnmhhJ-xMGX5X=nCZBeE(6yuzxD>JQviqwTMSX{f?*b~PL9wBvTWT+EL>od%^8QJ z;pgeu!e8!Bu!#zxhASaE$9;e1A>P}>!90ez)4`DSI9K@b(vW9g7-Gm8L&Pn#N!uZ1 zW~@n8=DZ}lcRR%-Qo=o$%+du&I<7dy&C!M^{Yja9Pb>K_kCN3ZD!GVr)M&QngCmqo z7plywWl0*GpC!4I7CFhx#IkI%Uzxk|l2v6S1;vI?P_=brsRVLWdc^$LJMJmCOfr(6 zXAQ2!lxA)%!yRQFWxp2qU73CAbA9b4iMdrZ23)4#v3tq-RFK5gWj2{U!fF0igv5fi z+#8o)iLC*Kd4h3{s}$z#Yv7W=`>U^b`())v;Sv%m9$pKHs;law_$7wHJ@RoMK~UzTKS zQg|!tTvH{ge|O5oBbB_nRf#&kDEW@-`;Xtm$xI!U7`a?YT&%3HpN!dilU^Unb*CQ8 zZF7!x?>+Zv%~V#}aD_7p6F!RI9aHA4mJhLQ5nRha6^3B;xzrjl#FmGacvyiOFI5}Z$nh|H00))PMOp8J1*ef zgDmVP_*o2^Z4-@OImNwf?AuOrPu4V>73o8c#uf#6%qG2|Gxuonb==~(y?h$`l zO+Le_97rOvwo_i^o)XV@$`$p5q@N<$JV=QF3zRs*dR6`iq2m-`$t9nXWBhdr=2?8M%3sLw;TWZu&nf6tMr~i0!hLX) zxF4>%l51uuDGnYMzB`oND9AHn7>_jv64?e4zR68;4A&ygf3b;1c4e(BNpdpFQG^;| zKrX{Pf5EWcG5^&!ADFjmGLP4i>)RfjKSUey+zZ1R{KOCkS(cMiY+~~!r+ht}vHl0X z_A55aJY$%j+_)ccw;{hbHRK?7n{2#>WA`VgXuMa6^W{0mI~^yGaZ7R-*E;keF>GO+ zRk<*^3N&H=B{_z!P}ZQs%Dl+jY1Qk>T2B`+9ThlpPOPuHU!^ z=`(rB`=k^1Q*hNs++QTMxjL;*ZJb?;7gGDVO6k|r3TkmXgEq@B#_(a;9GK1gU1{d3 z+H&mYSa7bTGCy#f>`;N2XIE0qcgn_N4Ks-`+Pfp%gT9jcWjSuNN-*@p;$W>V#`Tc7 z%#~IIaY+C-f-zUM%CM5MabNK!L-PD9G5w)a1ZCoQHO?m7S{v4dt%lX=7IXH;m~&_U zWxB_S;`^PVTNbvZlXYYnlkH`_O*~)AHJ&a0@>6Bjsg1G1(ZVL&xegk{xTxD#C0adD z7}bRN#?MN|+*BfcInLkQ3{5c<+^>>$P3x{bp809Nq}*D@zamd&KP?B_*O^!f=H2J| z(MJ*??00wypk5`leP0%h*GlM=b@{Zt(oV9fu2T9*dJrAr;$)@fT#s*Rh+`Q!ri3V& zWu=n$4?2b8guiT7O0nPK-sS})qMMLjGm50EyCLc-BdEw}FrPASal9K?U1l4WXAdwl z4&e8KL57qzM9yGkeOStvYnl?bsxen?vOXPR-g$yy<;uW4P0S0j&C0cpow85?)`K_v zJo4MbsO5&)x&&a}Ow1W*6B z-+Dr>*7r#SekI-K44K})k|@k_9~xqq5zH4%EydR#Ysd;G_?eb>vYa@V$;|dJx{m0x zj^ao<>{oldz|@qcgP zFP6p|!nTm}iq?F#`G;Y)=RB-;WsqmT8p2WCU+#%k=DOSLM@B32;2uMq_U8KaFc94b zgN$knSiLLv&4qxd%$&u?Q=I=X*1X(aiRkA}k^6ux<>5XO)fRDoe+kx!B%5er8TQw) zWY5F6CT(FI)vdY?Uux)}0p+z=nOR$z-jm<@oZ3|*i+1$O!t;J}YDcc@8Vf!r@!JV9 z=kF#*ZEAwA_#6QhZ zqR}$`{I*k;9>UzrUG~{thCH^`5Q*6has3cq`(c|ohhwBi9;dj@_GB2$hq4?WFEOkR z`M77@#@Kuy>ksp;wGTLDaJ;g9Wj-Kntil&_0LQf9Jby6+XZU|ud+)HOvaWA9QEAqo zpdhG;6%;jC5R{y?qo`m71qEy3SU^Q#)DdixSiu@p6f7fHK}CZV)SR_q1uIxaum&qw z$%qPL`}WN9&3rTWJ}TJTXbuC-Jkx|96gK7kr_hZ7k#LJ|CNn|^dG;*Ly zs-y0b8$2I&*dgk;2+bx$rq8$KqaS#TY#71&m`WsV8`+PJN=z>UH*_vV|HX!L~JCb~R zijqW*m*;q9U7QO_o>k}l6@GsI=!xp1EqUEqjpvsy{?d$JRZ@Zf?fyLPEW0PFW#Ooa z=D6IZKX9zIMU-9`!0XfdqTXe@t-ECHEKz!XI^Scr zsU(JQQF_zHBpEN~b(0^TpS}{pX}$zxhS_#GDc&P zTo+98B|8LW9VMoDtrqD)kWkV&kz;Yj`*RGuAiKiPTsz}U>L&F?>AYzs`JualvQJNr zwHPQ`<@~xvI0(u;-f*hOm4z!ghPU%0$oSZftyK84of-XDK#w-8$>^ahII;|K_2*z` zq&Ewx;+ipIJo&u%f>8DP1#I2cnd3P#pz_DZ5MlLVp;`x)JkFL?i1pa2%xbK*#er$B zUxUOaAE87u04&LyK(VwfNKPi3(#DCLv$RQ6bSf4DQxot>G{=xnR*Q-{KjOWqH7Kah zZR}FioJxI8VBE7ysQn>Nw6Aj->z6O0I@(6`*L&h$pF2M0_4=yCBI}YR#;&Uc>PrWq zB-kqKs^s^~z25#h!%994Tzg_6;ufwSZqU2>s>N68pFU5o!3mp?u?w9%vew#BHp`-u0=1`E=Ncu22%RNU_-VTx{rqIAnP zk$jbq*ljhhAy%1k=2}sHp#kKy&jbC~*&ulrFBCkQ0hNWTV5ZEMr9R39r>1S$mb>lP z*^4%8Kn#bG`}Sv%M;V*%CS}gNfA8-pW%ko-S!yhw=gs{YZ1(b4QYn^f zW-BMvU^dQe*pu9DEN}BeDDAx%4C-T`+*bhXwlnXQ^%j_5FBmlfXnDMJzcv-qhu=nh z;C5uS=8KLQbS^Q8h1yG%r7+VNndobAH0|${MJ-cSDGLauFlLlCWs$ivKn~ zg&cDhzRQT7&(@;)*pKKCy9_-?AH{-|W6(IaJFl@Ku%LBcG%n-)`(l+T_2O2fb)&#A zI1VKDT)><>TkxJR3Z8sx$x@OdSxn|&{! zDhD=7@4$+8+=akYIV);yf*SignElpG;N9jdczwrpO0TwH18Uc2yQccGfE5bnS?dFM zg9aQTPeP!07nHxMAU*1hpc9QMU5x`OT@#Mssntb{ojeE2oAMro!TFS=vq8Y_&c0l{P>o9oIC@eTV45{lNQ8DR?U??6BMt^%qZ^khcrx%-ay^4gQo%f(o zPy+Mo)QBBj$=GW@eqc z4O3B*fuf~$Beaa<^iplEtR@TDc7-Lq8~HF*&;S3d}m_m;zvcW$gQ zKLKp+aXr*mqgm;S;jF^D6&qN~m(70^#iA_ZSg^eg5*ufM@A!?N%_H8|Yo|&abpfhI zmV$dfH+H494ab(-v7q`z;9F<}-#R96+=8I#-3}3Caz*?N0W zSBn-4eHLKq`Ybe-_C$GGo`3(}HFQ^(Mei?uPmY$xG`?3bv4|6BmW!Cy@q<{-^_u_q zzP~=Erk_B+t%Vr$Wgljg>i7&}AeK+NjfR>DsHnM9)SpHZ$D)gtx?6co-CmT44^%NW zbHU_>wnJoF{^``2}Iieg!L8{t^5=Td=bI+{cPz!}r(i z#*#9-uzNi_v!@%lUYEl=leXyxv9jP7NQ>Shq;I?^_$@gDDZ!sWR<{iNmcNBux6aJ> zd^SX$)PXW>4CuU0t3s-e0Oc$PkbMn;zz>VS{A-0^d6g)t$8HyN@=sz)$Tm!szeH*^ z6}8oG{dp$ocWfz**tM9RW(1J4p+3ET*MY*nT}O|MBsBBBM7f6#1h!xFXFPw4Q%ul4 zjK6jgtK5vJT#|w`Y?oNPc`sU<@}AG8N1|M_jN|ie^^nN4{%n7oK)+NIH6{D_Y~rz? zv%FKK-Kzx-9?L+n;h_+CF9YIQZimZh_RQJUgY~{3Wk+Wyn7gz)dzBr;@~=%~OBx5V z8k$b*$e>0{9lICwUAC!0Ye@Kgc?mqXn;=p=6Z9J!3d|-@%)PJ(lN;C(t@aSL z$G(Z)zMNxu=`&8hzK*WcbR+ps&wpPpx9Z60)ca19bXUW%(sdzX&R&j#Joab5*RRbj zEE#(h<3?wodKz-hHN*5VBQT?UC29_}z!Kk;qPk;{An|OjvfA44p4S(lyi;8$KVA(i z9d-)k;fWAY>o^qE%mUZ$&q1Gk4&vsOK%H@ISk`QN<}$P%8!&_C>oFm$aM5h`g$-j% zx&pgby$y@}dwEH z(46`J|%tYlA9W(;@($&321Zku$h=f=fs@r_}u z+^#KK?4)G+zK=|4x!1+qt?%ISD@SI!UQn(3B4x8@E7+ zX)zJ}+)sk*oIFVCrh=+a9kAS=1ohiVAV1v@)TXZB+A#qVvfe{sk0u~%GZ|xBenrLE z@u)6M6s>joqtd$;ork4lGfe%r{Wz3+IwrsGL*eeFD6O?YoD#N(c8v?5im$FT;GR3J z>{O2&c7H;QfKu#XC(Z2{cj# zhct$y@Ts8F9fasg81R#@Y0^w6?ZvgZ_I3s7-4-UrEe{B(#RYH~ z_u72B4w$wB7+Zc1NgH`xElKdxPxlkF6C)toV;rQ)EPw7HHz#_Larhxj-{p!f>9D_;!S(R?rZ%k}#i-anGva}QxRZGT{=0=U=L;l6*1PfBicmRYnN zn(PYax`2!MJbDEftHL4t`W_g6t}c`P>Iw4j^@84Ru%K({C+Z)rS9x63LB`S?$bK^) z((0WRxWF;!`mXzPZ~g6hrH3r|>6Ij=gQ7nGq*uTZ+xA*Bg=q!ww zvW}%4I>@S`jzM6X-C#)OJ-ed|O!D9qF(e5Z{DwA4SO*)!*Xt+wUDcr!lF2wDR6(%-`15|0y=VeSP2ucM7c|p}cLMF=+HH%-L6l zfitU9g409vZFmoJ`s~JdhlQA(-jHjR1PkS7T7c2r4`Qk*p!mp7;OCGHH#vu=DDN2* zUET+E&T>4I*D`Vc0B3R>(;AICI>A(~)f&7doDEb2u~`+-Jl{vNBdz{R&rVwQS*5u5 zL68|8!N#o}TeWioGv)ST1+`*8{d^{0vwcw0Zkt&2U^m9veh0pN6F@O(8U&TE$J6DD-cy|MB(z=`r9)BYHKq z5xowmNqI5%Flu2TPFPTbLRcv#)W3tNr!vuU%pWt;522!3npl3VE*LK?1cmTY(6s6Y z;V+D^HN7sY^R^z_i4r#NbSGBP*o$>tTbJ@z8!`Au6EMG#v7^3f7BFcM+jL|pYgIFn zeILp9>W>FRX}yjr-*G%pp%5J18AeZR$!Mrqh`hH8D{@?EUf^JAm8GKn zbK8<%b*>fhm$?0Jo;#rjIhS;#u#rvaOA|YCu&KbT-VT&8wh}!i-@w40n=yU;6R~`6 z7|Mfz4UVDJ|Gh&aY4v)MCZU?n6TPag@D$ z0Fj~(D{VT0+3Xw5cCMStZp{j1-jVYd8_K^gEE&kXoA8-?D4JJAatz~@-{bPv_ikMn zgYxin!PrI#;rmX4^+G!+pUY!(^anogS_9UZy?_6ighpvliI=awNyM`3-z?WKH@u0vt_LOw~ zIvP91qIUjrG3^qc8MInqGAFhW96ybLO4%03y}1muSDwKBgVmV4Lj{z#Z^DWVby@k6 z@nAhO5@H7j;mw{6Sip#GEOl@Ua~|ZuN*zbBofn*0^wZhQFKPy}@R@jeu`N{YdIaH( z-~3x_{&=tI1>Txwz}6>aLuHfs>bXl zxA9AC2g(v%D8-I@dCX}@A>A)yK-=nnt|iYad01&!hkyL7zdp7cKZ&N!h@h#L8&lY; zMszNr6RAc8lDn=6MNNB*F7oBbc^|5Bqc^H|E#xzSp@Ol83JRyrg7UnM5IfupN}RU~ zF2Vc3cuv9`>fPbE&qR}YeHWo*!eGdFe;4*2YRxid_hnBHwq{3q&tU@=xwE6~v@G%X zV+gi!MP2@2VO1gT$Ndj$-&~`gm{Gn9f;$cXbDy6$w$@3oWK;NxW&3}#IE(u5h--+fdA7pKM@R?8E zae6gP&=nS{%+(r#WL$kA;@1`EaBDSWJ~{^pdv}8N{T?iNk}0^pd;*!lb=j^<-ptac z9UFhO8ymVTk>y-y%o6+BGReiyf^M=-CH-Za>hh>Lf4jbajTJe!fHJR55Z~(+7%%q$ zTK0DDgKJ;%tztf`|c@FrBUR&%aKJ-`2Os>F^WQJ0t&;t7?TMgD>6y)GDA09W886>BGNZ)-Gpq zb*|)n#kH6n%Il1~{jngoBc@;2EgCK~L6)Qxz0>DodhNx0wl>~Wd36&?K0i=-l-z}a zJ!&vy*rBHV8X>%28|GTup82i`U|H^cSlTIXHsNk8n-sT_g)U%RGoEYko^QxXJKcrm zF6;hweg7JtoRmBmxTFCejXY&f8jNDPdsl@0*)|kYZ65BjuTEbQIA{E~^%vY;eE*Xt zsf)@n<>fmJYu?EI8qWnK5fI>gQuz zi}Ms(-=5)mM13&Hr6G3Z-pHfRhfu3SLA1EopWfRxq25_F$))I5EczuIW4Dh)$1_nV z{V^GtQ#2ObP@?8_q8Ph)1!~@}5Yt>Xis7%pLa z{ch|?%se){+d>vFVG_%4Hj!n|TKhl7;$LI)+vhhgRcEhOPiL>|o@P^>yED)E2f;6$ z=c845Dv!SJkzK1NYQO(1mekpgl?i)Mwo!vQYhPkQ+BadU z13A}q>@ih&V_Q(i4-(3+Ho=l(FT@ys1*W%IfHXcBi(xUx-sPch&E;6O^ci|I%Et0u zk(e5>6U&36QE~dMXdMuRlBiWe`IcH(IwuJWPwvBlPz};y4^-=8M14qI!RwfYl1SdrDjizlPN1@d1|yQL zq3`*Jzx7yA;WwPmZKY`0=!of$efYXkq9WbEapH3XX6z=EjBO4(Z^hBhjCqt*Zw{@> z9mDgxnv(O~D0gus<|JQ5mwpFOvS}ttdJMZq8BkPQHo0GuL2#&}Iy|4XFM+j`ux0QKEb2m$q%M=y7fZ$Xd1rM>jRn4j0i< zeS=`XRtJ^5m!6+;3slP+Ft6sz+1;{TOxNr`=T!dF+WGCZ1U@ITkKYcOD6SJV%t4T@ zn`iPa8;xmhwp4cKBF@`ai=2F8Xr_Bj%C5=lkbciW_G=@MeHVy{%14;E`z!`6IE?wV zPou;29Vmb7$#dHip`;N%15b%T?eyb9sWt_)`DMbzo(svVYYg?SF`nE<^(B?rpDGqK zp!g5h&|~CD%>8IYefD0AwJ~61bAAs`YKj``d%@sP9p#>-f@GnIa|^a{e8qN?rNb#f zce@|NC+vmPZxyhzts9HnVPI~Q&yGy{zr+7p-%Q3*DmOq`za*}$SZT_R^g;9RpTr2= z9lUadQ?sJ4^FBJq(+s(VrBmLaX5>)R9lkF_4NriynoGpkJ~3!Nz8pjHROq{6DO$^d zQUB(?SaR1WYK}F-^wlA#h$<6uI0ivy(-Sz7ft!-ZySbm*2`Lq;nZY z?I^;c?T^txCi0oj9*p?@Aj;C3qUX#NoYQ<-CAn+hybK>fGHkX=eNidK*m{E`rLQSs z>vAYw^9=ImaBbbsGg$LpTmOIGTe0`gu<7D|@uTu{Q=#OE5`1i05`pBT1Irq_}T~g_nnOT_HzG^5J`G z*dkHg_MFIi))k0&zhPM?mF~MZG5tezP~I8}Nl_!9PC+mwyC`Ya9S^ekwGBn4xKe8E z3QWkokL}OYrM%p4SQcc)#M_&&w8?(Vf3%lt+-X3vZH1_Bu|_4?>Z+2)#i(?KMJC5f zlR>}lorygjD5$re1K))`S?NhVYtnrqJKI72AH~S&PEGY@)35AU_cQF9YA;iF@50LF ze1M{nS>WA$9%z?V2lmZNC`ro`m65|xm)K7%-@~yNlDuvbotH}5{K_fmY)4c02@|ed z8cLx<)!eYQQq-IGs64hlK-sogsI}cCDi*C4&6Df}iMT=3+}j|i2VNF*t?rvNn>LC@ zF$qV<4yDjXyuUiEHf=rPNiF*+D2IK+`7_YGZtEjRZ~xVdz?ESZe|YE9of9p1}xI$3dHPK1jbIbKvDJ_zt&yMc9_8R2tSCj+kLQb z>L_$vHW0&mY(#DQ6twQ~#Kf0d@#Ys7Iv3KGEW37!3F9we?X0f-t)W^m_&sae;yi11^c-6ix0Y>L(~H$v)qv?H z&VhvK8zAYV8Q2#sSZ8ot^T}?4jZ3EuQh@;S9 zZE5S`PLzDhgT7?TDLvMaUO#C?<7d^Q%2998Wpyc*g%n`!x&kcjScnk;H zOmS21WACySy`tP;IMR{X&z!F<^pWN!|2Nw>o30LCS>jg@d7O?q&*mC}9Gme$f^^VMq?>~UFs-D=gEmm7%PVOY z?`sSgJ&Up?s%h(JFM2(vIr)1!QNG~}o^_Xz-}etOr3UvUe9O=5XK!H1ah;&K;*2|2 zHKmHsoQk#BEvbO{LxYD2ETDrkdrftC zFQ_kD{cHlaa0 zi_V%q~nuN{;VS~$7X_h<`gvSs?E8t`GVRbOia7Ckn=E3`|Af3o6I+lqjzjy zv`$rGq3?F|h&X^j?q)1l6oJKuuV7NF2Cr1NqujNh(P?`>I-=`D*2OO9s0%{b+yN*# zE&A)`REOi&cF@|C-89*nMBQ7hr(4a2QS|4!wCh=WdUduFo!b{cv$*#~VA&T`C_jne zA)8P?eIDAkGN9%e$M`2*Hx->u#O%Jk(AsY<I<#%$dlj zvK%}s#;}2tXR(KC53s)dk287uMeIS(Gi;jkaN4eG6JG>6rQ}_kfAwo$?whaejmwy|(cAL^lsIcC{mA@&weZzJrOcGBEw!LosIW zM%?>+6`fwWn))>|P`}!X$hqYd+F7j)J=xok#y@XCsx~btqT6e9cy|m7%4(rJg6n=# zP!CouRE!zng=eqW&~@2i((OHL%2i&66f>W9J#NkvIbUED*Zyf%{UAFxwJtNX@@Cfd z6Mm0_c6cP4^~uEQTbHv>({k9@>JI9^uAPN%*0YX#ce2~+18hqDjjZm=H7vi+E;eh0 zH%std%=L7)h?=40f^wWI#BEpyMTa;hu;*K$u)P~d>y1*$FRn$)(2ZhR?}4cNG8O~7 z?!+SXYBV33gH<;cp-a=#7_;>@R`vdZQDH{(_8yOl8pF|C!t2-EEg08pBUfRLM#m}x zZm6?}4vkw%oorXoxkK}*>#>2f*rye(`s_$8Yc!*{BaO*nz())@8i}zNr=y|gJS6o% zu2(Wt;M$=k*Z!Ar??n?aNu+3hfxvP102Zes$oaJc^AwB0aCR^2@=F+-rC0vBMk?yI zXa2Rev-5-3vDMk@*tL%**_!L;nJwGOz$dQZ#YYS z&-H`4%o5c$3Q_vBEm+*I2%fbvK^CP4{mv9VPpt-uha4}ua3|_NTr+8U91&&igV5r_ zb8W#7Xy`ElrB`}lRrQ~-s58&~>Qm@_cpN6xZjQ#L{ZVT!6fMi%iFsQx(RNvyXoO z+S6?z$zBS1SsbV1zee>Nw_F+bJ($0Y5Y#Q_2+ zvbHZ~7X~4l(GK$$9Y6*5dPA$(who!Vs>a%}kVl`vyT?KBmHxdxbymc%Ds3{e z^D(e-J6Ex1!7Evc%_=tAP0vamj%I}uhq9ngjOD&|W3}ySu_xm=Mo51f(qJ_x#tnk} zR!hMC*iw)-iiMczK439&F2a%>Cf%z9(PLdIdMsFqn&QWz!hbl%NZk1OuPZukb4GQy zj_5t&J9Lc?y+A13AH-ZkW_4NMAOnN^q zlA_yBq49J2lj@WQ^)B%xUF;UjueJnJlX+jwne)C&stbzA0wlPX!lc*)=K7N!5{mD_ zJUQ>Rd#!@t;r6IK8IE~J_n_|VB~yOAvrxIY9J1XCAXfVK`HSPHNVayQfi>Qbr$&|SK*f$v)~d4wyIE&T|d(;kDlHOILxO;^dE-4@8) zRxtNFB_`d|fTFZ6C@$_1%>@$#{iGWvEj|~^r!+)ao;%X5dZK<$HeVkkDv$W0b}Wfz zXfMhGc8k)ZHY&@oN`XCe6m%68f^M)*rOO*EXdJ%@!AmE?*+Z4Yh0BG41Jb!MHjWa!c+(*@PhG%U(iy7aioitj|K= z5NL8a&*=KodR% z@O;;t&Sf!quuVd_wLZv`3VBZ`4`TWV;F^CEPTi=+Mh&dTXl6s^RM3Ilt1V--t2Jj?KRd8l zLLK%cvOgQn*UpQ#i7eUcM;7L`fUTeE&OB$Afy{6M#&b-JbX+Qgd>#ZY&Yf9>q94<> zy`jp=jH40UpPc+h3l?RTXx#4v+JGv-+`ESuQ!517jWH#KtU2Gnj}qP zOnU8S6KiP|wXMrVeQc46h3*w(KRN>GY#{wZiQrf`4veyipy(O~Babemti#P{{R}xt zJ~`3rR`!%O|0`zfxQyogU4?>M{V=j@8){IUZBjc1Kyn9-DQgdE6HoZ*6)+EbN;}LyWLo9+l!F->=KOL z&OKuewqmkuHCxh=&nC9aW0zC4tfgfhOIgM-^-Z5b=9{HZXA9T=O}hqZOIC}r9X+A4 zUp;1D=D{Y|`qQdKUgY#sQ_9R(hq}r=ywiMG3{iw(u!Z-5Tz80(9StbIoQ#&)S4HXc zrY1>QW0mfJUL_r+Rk4YjlkBVO5&LN%$ks0g$D7=1aYA!Qd7KQTb{imS<3X5pAcFi` zI#XcXD;yVo8so$6W8{r=WLthlm%b|?ZNx!A8Z+6H-Hdw{?&9a4`Fn(^UG3QXleJm) zu~{tl*bj{L%m=Nrm2>TDnF>v|kon6NC|sukt0WRKf2e>O@8oR!=vFMgK_9kwoHOfs z*Opyr%l)HMIR?B}0ITiQnYH}EhlL!Rz`AH=u)0rIGhJ>U7BHkP(*@s$oUgT6_@*Lo zY&4tmy$bvTtMu?>{2F%T9_LwvZ^p>kKVjmtl~~quEf)3Ji3UXqM!w#RNuGez z$2`Xnd(Ls4w##3FEyVH-Em7aIo5+&e35unA1eX;F;5b->LVpIOk1s>onsTAUb|R?H z4T7$Xe5p=OOG>$a5UrXyD66xJ^KjRRGTlOSow5yrj_d}uCJxB22^i<{vl-9L|Ma08 z*$k=<@c&`Wd#0SBcOfk+5iFsnp~&Vg+{5Y|k6D*F6j`Bc*-Ma4vjX+1&GO?4;H=t- z1>Wh-j?`_+$|asmUp<1!o{eHh8}NGKhikBZzm%oa&w~)_6mYE33$yz~qxw=?vBuZQ zOcAhL%SMm`G0fX=hHFD^ zL+Ph4qOwO5&bwryRQ}*(arMJkx@j>6p5BMWkyp{9$7*zN{DOHUtI?9VOwcMfisF= z-?C(vD8c@yNnFo42OR&(`L|`7Qgj@VgWBt-v9J$frF(5MJUD~8IU>eSd5#{%oO3(R zmh#qrLF-pH8ZfXUNk1w{VQNcFHUy9%wm%sf&!gO9v&r%$lA`+0r>uE;(qzVxV$vj% zyckFZRSybq=kx9$Z!%>!B8sX_fm=&Z_v9o$pPs@H|8X39z`1Wrs;P8C)(LX^=A4h) z3mhFH!Slj$t}T3<^ONhFXs;ubm;?+~DX3^{TZ&gK!kE@A!T0HBC=BY!q?WM1om>Cy z-ndaED9Q%{8#x#hriq|C8wQfLT;p*>O;LS9CPwXz`vcIO=B8Q(Bv?rq%JtO=FAb)zFQJm~ZB zu9UluYdn??rMzFpP{sotc^;3YpwM`VmrbV1)kCOsX$)1R2T z|CpHVz6rH`e#1>fqea58_?EX2Ig`)6D-zhHr9&K2^73y9_8Pk zKye?VDL6ld%5z6hdea}sb>KuQJ{QO-&0T0!xCgyH+=0~Bd5_QcXAJV;_4T1CTr+(! z=T(mB&V6VEvg-g2;dNQ2+iOsaw?Ym-9|ihUfJ|8h(j(EQyjyCy7uW$&VagL^>rX)b zcb=@QO)qxm`eL^7*nb}%c~^IypDX!{ZK9BtzDiI}JSIq3bARc3u7NO<&q<5?M9Vr` z44$jSg77qyK3k44n;T-vj68HGFGF3Q11MiufRcu5uyR)>ng>*1tlMsMDBgsIQ;Dei zx&*VOOEF~71CBkf$L|q0N;=$>{7O8jN;8Et$Nk8+qCb_`MNwYw$z+%uMtR=jDBd`U ziu1=)?5ALIUZJAmB7t%myHixD6=f?9aL}(72rCdcoW)ph*wrJAMp1+kGl~QA7Wa zYlwP36D)I@aE-pFLVAENBneZ1#Rq`?XoVoJtj)EGNu_Pj6SWt5pgvK7mfa08Y60hT zTz-uOiItd^Z$RCIrlM}!I?eP_h3=2*K?Tjc zsPuh9%5di%DswJkn!*uv-NQs_j?XEbsZ7vry9hzu^MG;vcgGMv=HXVKy`SaH6u~zj zu=5!nlb=93f4jgA))R7V?}Mf|olW4LN&dX|Qgy8l`+9lzKgNeONrd#rI#3);0GIDL zXYv=WQ*Pm$<_$Nw?}orRXi|Z}1W`XYS9DYX1~<^5aw4Ma;BB7kPoZUU5a;Jl;aXg+ zh3rT1n4`IZ5&cRqc5D@<+;E{F?)gk7mSOg%d^9^f!`$gs%(-Ak5j8pQb4G8H?)ITu zt^LWd&veR}ID?-vrjx_8nN+$rh6>wFqx2sqag1em(sh>8&i7oO;`JLecfEk}>wwzk z0Vur*rt}dP1&>|F!DGWgP|lRF{Gr~=7jV|-!~l0h?ZIRw5jf&PbcT+jF@B+2(cNr$Ci;T~r) zt}iMr;TlYB&ZsPjheY{1DJovLqaudaeb+eW#rp?TpInP+wN9e7S~2RJu3>t(3BBJ| zanH8Hyyv(WtD5lDJRS8+@J2asQ78Qeu8IDe@OkZF?Q1cbY@8Zr@Y( z#&W$D%^OCP2_gk3OYAfm{y%u%dj|kR!eZlePNU-V*5c{eG!g;;- zdYYOgEDUF(ZYmh{?a2Ai-YjYIZO+Ml>91+z1+#d4_ggM6@6d>)et7`zeY!AL+bp&v z?kAS}YU!Ub3is~7A`fz(lfx30FjmU)gReuS(;oD!%v-kD>`i`8}=p#b~#~ex22Gs8T2|ddQ%j9Wj*6&2$h?A%n_M;_m zE85pPi_*1K=-btSR$XaEdK+Kz9?UT#n|hIEb~l>YsS|n2w501cjxt*eqvFnE$>kci zS$orzhPXj=_4$yT!!j+H>5902tKh03L343K+6+2^}H4;LLQ#IfO3w6k>_pCDsa4>=3(-I|q2c5__MIf2Hl7ZrW3h<`l`7EB()cJ&Kpp$x@e8H4-seW)85 z*7#HJ?>Gj&z>b*fE$;V{i1hH4s6Xi^O2-ZsECtiSG5Hoa)_uWyAgx*4><%n!e0{d` z!9pfK7RX$>J_PlP#w;Zm;jeM|o2`YqEf^BS-dnkS$BN z>%`g*;5r3ywv7GEJ%vn_9LHk?&h0~kD>uf>FUgK+dHt_gcp#qpFkgX0<;-tprnf#4AoBY|IHRC9hwT}6HCBy zVmT&&sOKc-;(<74P3S0tmxj0hpUc_@{<8$(O>E~4I1n`vgf zwKQ{JKZ=TK&G&LU3Vy`#8P7sdF54(d*KSs+>*ffC?ZMoudI&g9wg(yG_>s$f!LQS4 z?nmdyb%!_pv!}YUC;380h`vwIEK*y334g}jdcR)_bj zKC3jvZd{Y+4A&5wC+O0q3pBL9pzG=_Sk^T|ecxw-ZtpUFrloKH$%j*bFAL&YE8daq znJf1ia&oE3lW*N`xQ%RlIipXvNKd(dP-vYHws>GOW(MZlUMLl%jc=02Geizq_dN@E-OD3W^bryOzcl-T! z{wMLdf?R{f&yPv&tJwRk9a)mMJ4?Fq2`ruuAtsXRb|0ArlsO(8WV~k(y&h=NK|!Ke zB1lHQ;F@lkCjIf=qB?4nSQx=E<8{}dw%2X+ILPZ(Z(EXF;`$%251{XI;^&}rOd46l zd!6NIEaY?9b-v_#TTMB((&Z?(y%I#4%=YC zTYmrFQh@#=@5jGwh2gRF|MqwODQ+2w0nC!qoyA0Xvl7RSOqGS8PKS zoC_qMXGa+x4T&~h!tBGDC@rf+#1s@`XiCC(DGS&4WSGm*YKd@n*oX`JlUHFOE2bm zuLDyV+OwU<CO;DG`wrRJ}73tT^E7U znhO%`Hqbwa1xZV;)49XuZ*ht`)t_aZ3SdEr9a(AH=1f0P3 zgsR@Z!;lr%F}C_^jD1;$($-X?NI#yhp7HZ>*&JGFSwtSmqsX;Z*ME%5A8S6(+>Tt! zx{>vkFJ-oyM}8dhuldrCD){+Hab_er)NDl-r8AW-P?2|so@oBERkSGeLi+U{AghxG z*$+4t@5dJqQ+6L*bW)~XYJ`xBCn3L5$MbO)h#9yBJaaxm`44=q&-Xp`>JGm@vLQZ9 zg51KWg%3;E=*2G2Zp(b1*I-E>UxRkSZAh})&FhN@ldWW&M{vX!f zJf5ny`yY2Q6e2>Q6jDfvM&#^uohCF=6s4k3n$Sd1XhJC(sZ5okkvk!ry_Pg+5~b3h zNP`BYnM!`w{d~Xo{d?~3^L*~l_xb%ke|YU$>)})_M=$xlWNf#hDMH^fgA5 zSR$k81Avk`Sp98$T-9yKbpz0%p+hJnGMHQ@MpM#9Cki}kO;KwW(^;+$rO@R(`f{J7 zT7M$xSgEOFFQX$VX)4_P& z0nYo4fIy8a;OE&03J3N}2X*vfW0NMba$^T}VNM@5(pbte$}E`6`zEN0JPFy$&w|V~ z71B;@1mhO&ePq^=V@do4x1PK{_41*pa8;M<#>Vr!bRD|g*uu4(J0LZrVePJGe7}>9 zBEegCJg?FY=DEUPJ0w2*Tl zCUqkNyB`=3ScVLuF+l8%>`S0noR}(ve>a2TbuPek#)5)q^$#4#frlQsJe`grnMX z7QB~aL#TC?^N256qvWH3w7BC5!6fm7;QG=A+>%fH&h3G?;DRJGH#6i`d^{_iDHdEx@B-KzYc4fPEOyYBEJaZo7%*tKdndS3Y zEJHGml^-!m_+wh{)BnH5%|FK}Kr(<<_z$7Q{v%0$KwGly za~b12lTkZp8u#YtQ?jY)paZCY#8; z+T*eIqljs3zhU6QtJu^o76aF5ps}vn|5$unpSw}~(2*3?djN&c`hYckD=$8QUgRk89OhX3-BQd-h{g(OIB92aH+RrC5{dM+CHnubKihcx5 zpK8IztO&~0$3ghYj^MNY8s8hbi3-(oZ=p82;jwsC{+-N+y35>GW={MYvL| zSY*Pvone^js*ZH1 zptywB5Lc8zX3Tjgy?zH&cm3c##M{YBe~3Lp2&!6Z3b@u;=gFXD z!uL*=`9l7**-W8fG#hI)k#%jhW2#&WHPzq;xOqK*`}4kmOy?TZ%-#+rmvRJ&&Elcd z{gN2oHBMBJn256O)>u;*jco2B{7}L$z$yZ5-bbMJ{cRja6om?>tfX;MdVp-xSAnJv z{@eJ(ZGVpCrLE|ET#r2UbgBHXB}q0JQ2a9^%6c@Is+6R3c$E=ViK-M>REL%iZ=iPW zdyWrzhbEd)RaAdXq2bkMc2m{yO(Cy&x~%az+SP(uMoknt{n96KEWi1raHy z!8X~3d*7Nsmcv>2;Dit* zZtJlMxCGe`?t;&*@6cRT4zhXS;FG{}i@XRqjT1#lpau6Osdmgtv_y-6aaf_7jmF|0 zq&1v#;4uuD-fXNr)g2WcbN=E$u6GrbDh+ot#I%El{%wpRlB%%$qx@giZ=W~4sCKeI zRsOw5|L9K)Fw>!mS|j&6S`y^s5lA8YUz0g6o>zAUngc_uF!Kj+zb%)g|EC>7m zxuo*^e@{P36B^Jr=>cYR)Fi(d_c1%@H%zrj3_tKwG+9=T_?qEjs>LUv zw)CAK)6fCq6g7yrG#VODo`jIY2f*aABgE&}LFs&sHM|uLmNU{Jbt2E-heZmh7n1~& zHVJ~?XudS>)MqsX61G^+h^+fXY3Fkk>dXYNxDBTD_I2O2?31?H)+Z zpg|}4whSn$337OZ^gYUdkYa7?m~n(MtCOmV9$n) zVQE@J*()0hX3)Wad8Ded&nlf54eG#}R&`)n$I8H%*HC0#VubMHo}$98Hja}1_lqPJ zeI1QgoDn7Nm*kSrl~V47&U*=4kgeo3=1IG-w!jBdkH%u^r*f|U`vYB`zrg0*%}9Cb zr0vs*Wagd7CQwa`;4`E|P(7&%Sg3hsq0mk$x(NZXogC|n-oO_-K)}w&=DM~&;w24b@*7x7G+9x zVy*T9tQU`<=e3ilP#c5A?g3cyUT zzP|YaJCY`Z+jt8sK}nSOVUfauQv#inh>~egx7o1&}GIgtkAiPwUZv8%fWhVZup7@hlY{%++pN5!Gi3gw5d7Xn?PBmgQ&*9oHiDWAcN#tbbn%3ay8nEsq4})ZecPOFVV%~CvybJ zrVoy3dpYLv%`5KX*eVnk)CtDt)wrg1AIKJbK~^sVAK4&?&^#wdvNNQz=cNKgZx`5* zQG)NG?Sjw11W~r?sYu>&VuVJbJmTduX<+I@ zzwXR-br0sY^9Q&r+yN4esoWPKTZk}j=Ie94XtHtz_pN9U6>^>yDTwJsGK+o~Klvc0 z&fbPDH*@fctQBQ4YsxST zRM}@F-Dn*}mW4y9=cyrlf3ucMq!TInxieJ^awjiUTdK{;z=-svT+2TIoePrCWbSUP z-TP7`M@`ZA(p!#yQ-g2^uH}1no?vX)5jemALfRxl?HV753jhdzr44C)w+gbDg#u+LLinx_LE(~`JkGp5$I!IMC2>Yl*M1&sSG#ds^UZeJT)j*h*)t|DEHU^c8f&_zmWk|8p$BZ^8tl7ZMlc_MXrU# zMY)vs32fvCp~AZ#*9EKP9%}MJg}fzVt!l2Q5WdwxI>(PGsLf)f!$z>hnq%0U+~KUa z3Rt{KU*=tE#OVAT?n`_Zil6L+e9IUJ?6(ub7jm44Pgy~#`v#GkQ-$)83J?)iD9EPP z3pL?gF}vU(R%|Om8I@wiwCcd;VfjugVID08V1MejBw_xoL_VrWmY zzcH9>f-ER?ydi~HN=U!gOANl;g?ye*Bo~=8-H5azpVDr$D5VSKpH`-t`j;s4&BCmk z>ri3wEM!mGV&E%fl!bFo9F=qYTHXlZ7oG~TLk^r5k^q4fdqFjX=VtFFK&qiB6koLl zcB3t@D^}oJ&bdFis@(H;nGkVplT_iCkr*B{RgeT1$-nGb&b(evXTfXdFu%dB?D{1c zb1t{%HCJnyatW=yxuw}85++V0ozF%fefYyzSJHiw~xugKi(5v zfoqg$&&H=+7M_?i-Pn?_C=kt`Y4mZd^7TK;eE!d-2S)4p3E-yBfnBTYD_P{XvOQ8bqX=W z?JOE|ZeF;+*FUERqOs2o(IhxeFp0k**skadGVCE3U*_0B#f@

25wTydhj|HfW#r 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 VXr6u!LcKMS=%plG82GRG@fQaB21)<` literal 0 HcmV?d00001 From 994f6bfdbc60bf28b9821bffa304ef07520fc040 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Thu, 23 Mar 2017 11:35:05 +1100 Subject: [PATCH 15/68] fixed py2 aps test --- .gitignore | 2 +- pyrate/compat.py | 5 + tests/test_aps.py | 5 +- .../small_test/matlab_aps/preread_ifgs_py2.pk | 1917 +++++++++++++++++ 4 files changed, 1926 insertions(+), 3 deletions(-) create mode 100644 tests/test_data/small_test/matlab_aps/preread_ifgs_py2.pk diff --git a/.gitignore b/.gitignore index c151857fd..82eef4cf9 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,7 @@ out .tox/ build/ docs/_build/ -tests/test_data/ +#tests/test_data/ PyAPS/ .cache/ # .coverage tmp files diff --git a/pyrate/compat.py b/pyrate/compat.py index c44956853..e1905ac1e 100644 --- a/pyrate/compat.py +++ b/pyrate/compat.py @@ -33,6 +33,11 @@ except ImportError: PyAPS_INSTALLED = False +if PY3: + import pickle +else: + import cPickle as pickle + class PyAPSException(Exception): """ diff --git a/tests/test_aps.py b/tests/test_aps.py index 7d0d9fefd..0eaae696d 100644 --- a/tests/test_aps.py +++ b/tests/test_aps.py @@ -1,17 +1,18 @@ import os -import pickle import scipy.io as sio import numpy as np from pyrate.algorithm import get_epochs from pyrate.aps import tlpfilter from pyrate import config as cf +from pyrate.compat import pickle, PY3 from tests.common import SML_TEST_DIR, TEST_CONF_GAMMA # tsincr matrix from matlab using svd timeseries method tsincr_svd = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', 'tsincr_svd.mat')) # prepread ifgs pickle file -ifgs_pk = os.path.join(SML_TEST_DIR, 'matlab_aps', 'preread_ifgs.pk') +preread_pk = 'preread_ifgs.pk' if PY3 else 'preread_ifgs_py2.pk' +ifgs_pk = os.path.join(SML_TEST_DIR, 'matlab_aps', preread_pk) ifgs_pk = pickle.load(open(ifgs_pk, 'rb')) # tlp filter output from matlab diff --git a/tests/test_data/small_test/matlab_aps/preread_ifgs_py2.pk b/tests/test_data/small_test/matlab_aps/preread_ifgs_py2.pk new file mode 100644 index 000000000..0665af395 --- /dev/null +++ b/tests/test_data/small_test/matlab_aps/preread_ifgs_py2.pk @@ -0,0 +1,1917 @@ +(dp0 +S'gt' +p1 +(F150.91 +F0.001666666 +F0.0 +F-34.17 +F0.0 +F-0.001666666 +tp2 +scnumpy.core.multiarray +scalar +p3 +(cnumpy +dtype +p4 +(S'S43' +p5 +I0 +I1 +tp6 +Rp7 +(I3 +S'|' +p8 +NNNI43 +I1 +I0 +tp9 +bS'out/20061211-20070709_utm_unw_2rlks_2cr.tif' +p10 +tp11 +Rp12 +(ipyrate.shared +PrereadIfg +p13 +(dp14 +S'slave' +p15 +cdatetime +date +p16 +(S'\x07\xd7\x07\t' +p17 +tp18 +Rp19 +sS'ncols' +p20 +I23 +sS'nan_fraction' +p21 +g3 +(g4 +(S'f8' +p22 +I0 +I1 +tp23 +Rp24 +(I3 +S'<' +p25 +NNNI-1 +I-1 +I0 +tp26 +bS"I+\x93' :\xbf?" +p27 +tp28 +Rp29 +sS'time_span' +p30 +F0.5749486652977412 +sS'nrows' +p31 +I36 +sS'shape' +p32 +(I36 +I23 +tp33 +sS'master' +p34 +g16 +(S'\x07\xd6\x0c\x0b' +p35 +tp36 +Rp37 +sS'path' +p38 +g12 +sS'metadata' +p39 +(dp40 +S'INSAR_PROCESSOR' +p41 +S'GAMMA' +p42 +sS'DATA_TYPE' +p43 +S'MULTILOOKED_IFG' +p44 +sS'WAVELENGTH_METRES' +p45 +S'0.0562356424008' +p46 +sS'TIME_SPAN_YEAR' +p47 +S'0.574948665298' +p48 +sS'MASTER_TIME' +p49 +S'23:18:53' +p50 +sS'MASTER_DATE' +p51 +S'2006-12-11' +p52 +sS'SLAVE_TIME' +p53 +S'19:01:43' +p54 +sS'NAN_STATUS' +p55 +S'CONVERTED' +p56 +sS'INCIDENCE_DEGREES' +p57 +S'22.9671' +p58 +sS'SLAVE_DATE' +p59 +S'2007-07-09' +p60 +sS'AREA_OR_POINT' +p61 +S'Area' +p62 +sS'DATA_UNITS' +p63 +S'MILLIMETRES' +p64 +ssbsg3 +(g4 +(S'S43' +p65 +I0 +I1 +tp66 +Rp67 +(I3 +S'|' +p68 +NNNI43 +I1 +I0 +tp69 +bS'out/20070219-20070604_utm_unw_2rlks_2cr.tif' +p70 +tp71 +Rp72 +(ipyrate.shared +PrereadIfg +p73 +(dp74 +g15 +g16 +(S'\x07\xd7\x06\x04' +p75 +tp76 +Rp77 +sg20 +I23 +sg21 +g3 +(g24 +S'\x81\xe8|u\x8f\xb4\xc2?' +p78 +tp79 +Rp80 +sg30 +F0.2874743326488706 +sg31 +I36 +sg32 +(I36 +I23 +tp81 +sg34 +g16 +(S'\x07\xd7\x02\x13' +p82 +tp83 +Rp84 +sg38 +g72 +sg39 +(dp85 +S'INSAR_PROCESSOR' +p86 +S'GAMMA' +p87 +sS'DATA_TYPE' +p88 +S'MULTILOOKED_IFG' +p89 +sS'WAVELENGTH_METRES' +p90 +S'0.0562356424008' +p91 +sS'TIME_SPAN_YEAR' +p92 +S'0.287474332649' +p93 +sS'MASTER_TIME' +p94 +S'01:18:03' +p95 +sS'MASTER_DATE' +p96 +S'2007-02-19' +p97 +sS'SLAVE_TIME' +p98 +S'09:31:13' +p99 +sg55 +g56 +sS'INCIDENCE_DEGREES' +p100 +S'22.9671' +p101 +sS'SLAVE_DATE' +p102 +S'2007-06-04' +p103 +sS'AREA_OR_POINT' +p104 +S'Area' +p105 +sS'DATA_UNITS' +p106 +g64 +ssbsg3 +(g4 +(S'S43' +p107 +I0 +I1 +tp108 +Rp109 +(I3 +S'|' +p110 +NNNI43 +I1 +I0 +tp111 +bS'out/20061002-20070430_utm_unw_2rlks_2cr.tif' +p112 +tp113 +Rp114 +(ipyrate.shared +PrereadIfg +p115 +(dp116 +g15 +g16 +(S'\x07\xd7\x04\x1e' +p117 +tp118 +Rp119 +sg20 +I23 +sg21 +g3 +(g24 +S'\xe7\xab{\xa4\x95\xc9\xb3?' +p120 +tp121 +Rp122 +sg30 +F0.5749486652977412 +sg31 +I36 +sg32 +(I36 +I23 +tp123 +sg34 +g16 +(S'\x07\xd6\n\x02' +p124 +tp125 +Rp126 +sg38 +g114 +sg39 +(dp127 +S'INSAR_PROCESSOR' +p128 +S'GAMMA' +p129 +sS'DATA_TYPE' +p130 +S'MULTILOOKED_IFG' +p131 +sS'WAVELENGTH_METRES' +p132 +S'0.0562356424008' +p133 +sS'TIME_SPAN_YEAR' +p134 +S'0.574948665298' +p135 +sS'MASTER_TIME' +p136 +S'13:05:19' +p137 +sS'MASTER_DATE' +p138 +S'2006-10-02' +p139 +sS'SLAVE_TIME' +p140 +S'05:32:13' +p141 +sg55 +g56 +sS'INCIDENCE_DEGREES' +p142 +S'22.9671' +p143 +sS'SLAVE_DATE' +p144 +S'2007-04-30' +p145 +sS'AREA_OR_POINT' +p146 +S'Area' +p147 +sS'DATA_UNITS' +p148 +g64 +ssbsg3 +(g4 +(S'S43' +p149 +I0 +I1 +tp150 +Rp151 +(I3 +S'|' +p152 +NNNI43 +I1 +I0 +tp153 +bS'out/20070604-20070709_utm_unw_2rlks_2cr.tif' +p154 +tp155 +Rp156 +(ipyrate.shared +PrereadIfg +p157 +(dp158 +g15 +g16 +(S'\x07\xd7\x07\t' +p159 +tp160 +Rp161 +sg20 +I23 +sg21 +g3 +(g24 +S'\xcc\xb5\x03s\xed\xc0\xbc?' +p162 +tp163 +Rp164 +sg30 +F0.09582477754962354 +sg31 +I36 +sg32 +(I36 +I23 +tp165 +sg34 +g16 +(S'\x07\xd7\x06\x04' +p166 +tp167 +Rp168 +sg38 +g156 +sg39 +(dp169 +S'INSAR_PROCESSOR' +p170 +S'GAMMA' +p171 +sS'DATA_TYPE' +p172 +S'MULTILOOKED_IFG' +p173 +sS'WAVELENGTH_METRES' +p174 +S'0.0562356424008' +p175 +sS'TIME_SPAN_YEAR' +p176 +S'0.0958247775496' +p177 +sS'MASTER_TIME' +p178 +S'09:31:13' +p179 +sS'MASTER_DATE' +p180 +S'2007-06-04' +p181 +sS'SLAVE_TIME' +p182 +S'19:01:43' +p183 +sg55 +g56 +sS'INCIDENCE_DEGREES' +p184 +S'22.9671' +p185 +sS'SLAVE_DATE' +p186 +S'2007-07-09' +p187 +sS'AREA_OR_POINT' +p188 +S'Area' +p189 +sS'DATA_UNITS' +p190 +g64 +ssbsg3 +(g4 +(S'S43' +p191 +I0 +I1 +tp192 +Rp193 +(I3 +S'|' +p194 +NNNI43 +I1 +I0 +tp195 +bS'out/20060828-20061211_utm_unw_2rlks_2cr.tif' +p196 +tp197 +Rp198 +(ipyrate.shared +PrereadIfg +p199 +(dp200 +g15 +g16 +(S'\x07\xd6\x0c\x0b' +p201 +tp202 +Rp203 +sg20 +I23 +sg21 +g3 +(g24 +S'];0\xd7\x0e\xcc\xc5?' +p204 +tp205 +Rp206 +sg30 +F0.2874743326488706 +sg31 +I36 +sg32 +(I36 +I23 +tp207 +sg34 +g16 +(S'\x07\xd6\x08\x1c' +p208 +tp209 +Rp210 +sg38 +g198 +sg39 +(dp211 +S'INSAR_PROCESSOR' +p212 +S'GAMMA' +p213 +sS'DATA_TYPE' +p214 +S'MULTILOOKED_IFG' +p215 +sS'WAVELENGTH_METRES' +p216 +S'0.0562356424008' +p217 +sS'TIME_SPAN_YEAR' +p218 +S'0.287474332649' +p219 +sS'MASTER_TIME' +p220 +S'12:18:09' +p221 +sS'MASTER_DATE' +p222 +S'2006-08-28' +p223 +sS'SLAVE_TIME' +p224 +S'23:18:53' +p225 +sg55 +g56 +sS'INCIDENCE_DEGREES' +p226 +S'22.9671' +p227 +sS'SLAVE_DATE' +p228 +S'2006-12-11' +p229 +sS'AREA_OR_POINT' +p230 +S'Area' +p231 +sS'DATA_UNITS' +p232 +g64 +ssbsg3 +(g4 +(S'S43' +p233 +I0 +I1 +tp234 +Rp235 +(I3 +S'|' +p236 +NNNI43 +I1 +I0 +tp237 +bS'out/20070326-20070917_utm_unw_2rlks_2cr.tif' +p238 +tp239 +Rp240 +(ipyrate.shared +PrereadIfg +p241 +(dp242 +g15 +g16 +(S'\x07\xd7\t\x11' +p243 +tp244 +Rp245 +sg20 +I23 +sg21 +g3 +(g24 +S'\xa0Q\xe2g\x94\xf8\xa9?' +p246 +tp247 +Rp248 +sg30 +F0.4791238877481177 +sg31 +I36 +sg32 +(I36 +I23 +tp249 +sg34 +g16 +(S'\x07\xd7\x03\x1a' +p250 +tp251 +Rp252 +sg38 +g240 +sg39 +(dp253 +S'INSAR_PROCESSOR' +p254 +S'GAMMA' +p255 +sS'DATA_TYPE' +p256 +S'MULTILOOKED_IFG' +p257 +sS'WAVELENGTH_METRES' +p258 +S'0.0562356424008' +p259 +sS'TIME_SPAN_YEAR' +p260 +S'0.479123887748' +p261 +sS'MASTER_TIME' +p262 +S'02:32:13' +p263 +sS'MASTER_DATE' +p264 +S'2007-03-26' +p265 +sS'SLAVE_TIME' +p266 +S'12:41:25' +p267 +sg55 +g56 +sS'INCIDENCE_DEGREES' +p268 +S'22.9671' +p269 +sS'SLAVE_DATE' +p270 +S'2007-09-17' +p271 +sS'AREA_OR_POINT' +p272 +S'Area' +p273 +sS'DATA_UNITS' +p274 +g64 +ssbsg3 +(g4 +(S'S43' +p275 +I0 +I1 +tp276 +Rp277 +(I3 +S'|' +p278 +NNNI43 +I1 +I0 +tp279 +bS'out/20070219-20070430_utm_unw_2rlks_2cr.tif' +p280 +tp281 +Rp282 +(ipyrate.shared +PrereadIfg +p283 +(dp284 +g15 +g16 +(S'\x07\xd7\x04\x1e' +p285 +tp286 +Rp287 +sg20 +I23 +sg21 +g3 +(g24 +S')\xf13J\xfc\x8c\xa2?' +p288 +tp289 +Rp290 +sg30 +F0.19164955509924708 +sg31 +I36 +sg32 +(I36 +I23 +tp291 +sg34 +g16 +(S'\x07\xd7\x02\x13' +p292 +tp293 +Rp294 +sg38 +g282 +sg39 +(dp295 +S'INSAR_PROCESSOR' +p296 +S'GAMMA' +p297 +sS'DATA_TYPE' +p298 +S'MULTILOOKED_IFG' +p299 +sS'WAVELENGTH_METRES' +p300 +S'0.0562356424008' +p301 +sS'TIME_SPAN_YEAR' +p302 +S'0.191649555099' +p303 +sS'MASTER_TIME' +p304 +S'01:18:03' +p305 +sS'MASTER_DATE' +p306 +S'2007-02-19' +p307 +sS'SLAVE_TIME' +p308 +S'05:32:13' +p309 +sg55 +g56 +sS'INCIDENCE_DEGREES' +p310 +S'22.9671' +p311 +sS'SLAVE_DATE' +p312 +S'2007-04-30' +p313 +sS'AREA_OR_POINT' +p314 +S'Area' +p315 +sS'DATA_UNITS' +p316 +g64 +ssbsg3 +(g4 +(S'S43' +p317 +I0 +I1 +tp318 +Rp319 +(I3 +S'|' +p320 +NNNI43 +I1 +I0 +tp321 +bS'out/20061002-20070219_utm_unw_2rlks_2cr.tif' +p322 +tp323 +Rp324 +(ipyrate.shared +PrereadIfg +p325 +(dp326 +g15 +g16 +(S'\x07\xd7\x02\x13' +p327 +tp328 +Rp329 +sg20 +I23 +sg21 +g3 +(g24 +S'\x0e\xfb\xbb\x18T\x84\xcb?' +p330 +tp331 +Rp332 +sg30 +F0.38329911019849416 +sg31 +I36 +sg32 +(I36 +I23 +tp333 +sg34 +g16 +(S'\x07\xd6\n\x02' +p334 +tp335 +Rp336 +sg38 +g324 +sg39 +(dp337 +S'INSAR_PROCESSOR' +p338 +S'GAMMA' +p339 +sS'DATA_TYPE' +p340 +S'MULTILOOKED_IFG' +p341 +sS'WAVELENGTH_METRES' +p342 +S'0.0562356424008' +p343 +sS'TIME_SPAN_YEAR' +p344 +S'0.383299110198' +p345 +sS'MASTER_TIME' +p346 +S'13:05:19' +p347 +sS'MASTER_DATE' +p348 +S'2006-10-02' +p349 +sS'SLAVE_TIME' +p350 +S'01:18:03' +p351 +sg55 +g56 +sS'INCIDENCE_DEGREES' +p352 +S'22.9671' +p353 +sS'SLAVE_DATE' +p354 +S'2007-02-19' +p355 +sS'AREA_OR_POINT' +p356 +S'Area' +p357 +sS'DATA_UNITS' +p358 +g64 +ssbsg3 +(g4 +(S'S43' +p359 +I0 +I1 +tp360 +Rp361 +(I3 +S'|' +p362 +NNNI43 +I1 +I0 +tp363 +bS'out/20061106-20070115_utm_unw_2rlks_2cr.tif' +p364 +tp365 +Rp366 +(ipyrate.shared +PrereadIfg +p367 +(dp368 +g15 +g16 +(S'\x07\xd7\x01\x0f' +p369 +tp370 +Rp371 +sg20 +I23 +sg21 +g3 +(g24 +S'\x88\xceW\xf7H+\xb3?' +p372 +tp373 +Rp374 +sg30 +F0.19164955509924708 +sg31 +I36 +sg32 +(I36 +I23 +tp375 +sg34 +g16 +(S'\x07\xd6\x0b\x06' +p376 +tp377 +Rp378 +sg38 +g366 +sg39 +(dp379 +S'INSAR_PROCESSOR' +p380 +S'GAMMA' +p381 +sS'DATA_TYPE' +p382 +S'MULTILOOKED_IFG' +p383 +sS'WAVELENGTH_METRES' +p384 +S'0.0562356424008' +p385 +sS'TIME_SPAN_YEAR' +p386 +S'0.191649555099' +p387 +sS'MASTER_TIME' +p388 +S'22:58:23' +p389 +sS'MASTER_DATE' +p390 +S'2006-11-06' +p391 +sS'SLAVE_TIME' +p392 +S'21:48:23' +p393 +sg55 +g56 +sS'INCIDENCE_DEGREES' +p394 +S'22.9671' +p395 +sS'SLAVE_DATE' +p396 +S'2007-01-15' +p397 +sS'AREA_OR_POINT' +p398 +S'Area' +p399 +sS'DATA_UNITS' +p400 +g64 +ssbsS'md' +p401 +(dp402 +S'SLAVE_TIME' +p403 +S'13:05:19' +p404 +sS'INSAR_PROCESSOR' +p405 +S'GAMMA' +p406 +sS'DATA_TYPE' +p407 +S'MULTILOOKED_IFG' +p408 +sS'WAVELENGTH_METRES' +p409 +S'0.0562356424008' +p410 +sS'TIME_SPAN_YEAR' +p411 +S'0.287474332649' +p412 +sS'MASTER_TIME' +p413 +S'08:28:59' +p414 +sS'MASTER_DATE' +p415 +S'2006-06-19' +p416 +sS'AREA_OR_POINT' +p417 +S'Area' +p418 +sS'INCIDENCE_DEGREES' +p419 +S'22.9671' +p420 +sS'SLAVE_DATE' +p421 +S'2006-10-02' +p422 +sS'DATA_UNITS' +p423 +S'RADIANS' +p424 +ssg3 +(g4 +(S'S43' +p425 +I0 +I1 +tp426 +Rp427 +(I3 +S'|' +p428 +NNNI43 +I1 +I0 +tp429 +bS'out/20061106-20070326_utm_unw_2rlks_2cr.tif' +p430 +tp431 +Rp432 +(ipyrate.shared +PrereadIfg +p433 +(dp434 +g15 +g16 +(S'\x07\xd7\x03\x1a' +p435 +tp436 +Rp437 +sg20 +I23 +sg21 +g3 +(g24 +S'\xe7\xab{\xa4\x95\xc9s?' +p438 +tp439 +Rp440 +sg30 +F0.38329911019849416 +sg31 +I36 +sg32 +(I36 +I23 +tp441 +sg34 +g16 +(S'\x07\xd6\x0b\x06' +p442 +tp443 +Rp444 +sg38 +g432 +sg39 +(dp445 +S'INSAR_PROCESSOR' +p446 +S'GAMMA' +p447 +sS'DATA_TYPE' +p448 +S'MULTILOOKED_IFG' +p449 +sS'WAVELENGTH_METRES' +p450 +S'0.0562356424008' +p451 +sS'TIME_SPAN_YEAR' +p452 +S'0.383299110198' +p453 +sS'MASTER_TIME' +p454 +S'22:58:23' +p455 +sS'MASTER_DATE' +p456 +S'2006-11-06' +p457 +sS'SLAVE_TIME' +p458 +S'02:32:13' +p459 +sg55 +g56 +sS'INCIDENCE_DEGREES' +p460 +S'22.9671' +p461 +sS'SLAVE_DATE' +p462 +S'2007-03-26' +p463 +sS'AREA_OR_POINT' +p464 +S'Area' +p465 +sS'DATA_UNITS' +p466 +g64 +ssbsS'epochlist' +p467 +ccopy_reg +_reconstructor +p468 +(cpyrate.shared +EpochList +p469 +c__builtin__ +object +p470 +Ntp471 +Rp472 +(dp473 +S'dates' +p474 +cnumpy.core.multiarray +_reconstruct +p475 +(cnumpy +ndarray +p476 +(I0 +tp477 +S'b' +p478 +tp479 +Rp480 +(I1 +(I13 +tp481 +g4 +(S'O8' +p482 +I0 +I1 +tp483 +Rp484 +(I3 +S'|' +p485 +NNNI-1 +I-1 +I63 +tp486 +bI00 +(lp487 +g16 +(S'\x07\xd6\x06\x13' +p488 +tp489 +Rp490 +ag210 +ag16 +(S'\x07\xd6\n\x02' +p491 +tp492 +Rp493 +ag378 +ag37 +ag371 +ag84 +ag437 +ag119 +ag77 +ag16 +(S'\x07\xd7\x07\t' +p494 +tp495 +Rp496 +ag16 +(S'\x07\xd7\x08\r' +p497 +tp498 +Rp499 +ag245 +atp500 +bsS'repeat' +p501 +g475 +(g476 +(I0 +tp502 +g478 +tp503 +Rp504 +(I1 +(I13 +tp505 +g4 +(S'i8' +p506 +I0 +I1 +tp507 +Rp508 +(I3 +S'<' +p509 +NNNI-1 +I-1 +I0 +tp510 +bI00 +S'\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00' +p511 +tp512 +bsS'spans' +p513 +(lp514 +F0.0 +aF0.19164955509924708 +aF0.2874743326488706 +aF0.38329911019849416 +aF0.4791238877481177 +aF0.5749486652977412 +aF0.6707734428473648 +aF0.7665982203969883 +aF0.8624229979466119 +aF0.9582477754962354 +aF1.054072553045859 +aF1.1498973305954825 +aF1.2457221081451062 +asbsg3 +(g4 +(S'S43' +p515 +I0 +I1 +tp516 +Rp517 +(I3 +S'|' +p518 +NNNI43 +I1 +I0 +tp519 +bS'out/20061211-20070813_utm_unw_2rlks_2cr.tif' +p520 +tp521 +Rp522 +(ipyrate.shared +PrereadIfg +p523 +(dp524 +g15 +g499 +sg20 +I23 +sg21 +g3 +(g24 +S'0\xd7\x0e\xcc\xb5\x03\xc3?' +p525 +tp526 +Rp527 +sg30 +F0.6707734428473648 +sg31 +I36 +sg32 +(I36 +I23 +tp528 +sg34 +g16 +(S'\x07\xd6\x0c\x0b' +p529 +tp530 +Rp531 +sg38 +g522 +sg39 +(dp532 +S'INSAR_PROCESSOR' +p533 +S'GAMMA' +p534 +sS'DATA_TYPE' +p535 +S'MULTILOOKED_IFG' +p536 +sS'WAVELENGTH_METRES' +p537 +S'0.0562356424008' +p538 +sS'TIME_SPAN_YEAR' +p539 +S'0.670773442847' +p540 +sS'MASTER_TIME' +p541 +S'23:18:53' +p542 +sS'MASTER_DATE' +p543 +S'2006-12-11' +p544 +sS'SLAVE_TIME' +p545 +S'16:23:43' +p546 +sg55 +g56 +sS'INCIDENCE_DEGREES' +p547 +S'22.9671' +p548 +sS'SLAVE_DATE' +p549 +S'2007-08-13' +p550 +sS'AREA_OR_POINT' +p551 +S'Area' +p552 +sS'DATA_UNITS' +p553 +g64 +ssbsg3 +(g4 +(S'S43' +p554 +I0 +I1 +tp555 +Rp556 +(I3 +S'|' +p557 +NNNI43 +I1 +I0 +tp558 +bS'out/20070430-20070604_utm_unw_2rlks_2cr.tif' +p559 +tp560 +Rp561 +(ipyrate.shared +PrereadIfg +p562 +(dp563 +g15 +g16 +(S'\x07\xd7\x06\x04' +p564 +tp565 +Rp566 +sg20 +I23 +sg21 +g3 +(g24 +S'\xdb\x81\xb9v`\xae}?' +p567 +tp568 +Rp569 +sg30 +F0.09582477754962354 +sg31 +I36 +sg32 +(I36 +I23 +tp570 +sg34 +g16 +(S'\x07\xd7\x04\x1e' +p571 +tp572 +Rp573 +sg38 +g561 +sg39 +(dp574 +S'INSAR_PROCESSOR' +p575 +S'GAMMA' +p576 +sS'DATA_TYPE' +p577 +S'MULTILOOKED_IFG' +p578 +sS'WAVELENGTH_METRES' +p579 +S'0.0562356424008' +p580 +sS'TIME_SPAN_YEAR' +p581 +S'0.0958247775496' +p582 +sS'MASTER_TIME' +p583 +S'05:32:13' +p584 +sS'MASTER_DATE' +p585 +S'2007-04-30' +p586 +sS'SLAVE_TIME' +p587 +S'09:31:13' +p588 +sg55 +g56 +sS'INCIDENCE_DEGREES' +p589 +S'22.9671' +p590 +sS'SLAVE_DATE' +p591 +S'2007-06-04' +p592 +sS'AREA_OR_POINT' +p593 +S'Area' +p594 +sS'DATA_UNITS' +p595 +g64 +ssbsg3 +(g4 +(S'S43' +p596 +I0 +I1 +tp597 +Rp598 +(I3 +S'|' +p599 +NNNI43 +I1 +I0 +tp600 +bS'out/20070115-20070917_utm_unw_2rlks_2cr.tif' +p601 +tp602 +Rp603 +(ipyrate.shared +PrereadIfg +p604 +(dp605 +g15 +g16 +(S'\x07\xd7\t\x11' +p606 +tp607 +Rp608 +sg20 +I23 +sg21 +g3 +(g24 +S'UUUUUU\xc5?' +p609 +tp610 +Rp611 +sg30 +F0.6707734428473648 +sg31 +I36 +sg32 +(I36 +I23 +tp612 +sg34 +g16 +(S'\x07\xd7\x01\x0f' +p613 +tp614 +Rp615 +sg38 +g603 +sg39 +(dp616 +S'INSAR_PROCESSOR' +p617 +S'GAMMA' +p618 +sS'DATA_TYPE' +p619 +S'MULTILOOKED_IFG' +p620 +sS'WAVELENGTH_METRES' +p621 +S'0.0562356424008' +p622 +sS'TIME_SPAN_YEAR' +p623 +S'0.670773442847' +p624 +sS'MASTER_TIME' +p625 +S'21:48:23' +p626 +sS'MASTER_DATE' +p627 +S'2007-01-15' +p628 +sS'SLAVE_TIME' +p629 +S'12:41:25' +p630 +sg55 +g56 +sS'INCIDENCE_DEGREES' +p631 +S'22.9671' +p632 +sS'SLAVE_DATE' +p633 +S'2007-09-17' +p634 +sS'AREA_OR_POINT' +p635 +S'Area' +p636 +sS'DATA_UNITS' +p637 +g64 +ssbsg3 +(g4 +(S'S43' +p638 +I0 +I1 +tp639 +Rp640 +(I3 +S'|' +p641 +NNNI43 +I1 +I0 +tp642 +bS'out/20070709-20070813_utm_unw_2rlks_2cr.tif' +p643 +tp644 +Rp645 +(ipyrate.shared +PrereadIfg +p646 +(dp647 +g15 +g16 +(S'\x07\xd7\x08\r' +p648 +tp649 +Rp650 +sg20 +I23 +sg21 +g3 +(g24 +S'\x00\x00\x00\x00\x00\x00\x00\x00' +p651 +tp652 +Rp653 +sg30 +F0.09582477754962354 +sg31 +I36 +sg32 +(I36 +I23 +tp654 +sg34 +g496 +sg38 +g645 +sg39 +(dp655 +S'INSAR_PROCESSOR' +p656 +S'GAMMA' +p657 +sS'DATA_TYPE' +p658 +S'MULTILOOKED_IFG' +p659 +sS'WAVELENGTH_METRES' +p660 +S'0.0562356424008' +p661 +sS'TIME_SPAN_YEAR' +p662 +S'0.0958247775496' +p663 +sS'MASTER_TIME' +p664 +S'19:01:43' +p665 +sS'MASTER_DATE' +p666 +S'2007-07-09' +p667 +sS'SLAVE_TIME' +p668 +S'16:23:43' +p669 +sg55 +g56 +sS'INCIDENCE_DEGREES' +p670 +S'22.9671' +p671 +sS'SLAVE_DATE' +p672 +S'2007-08-13' +p673 +sS'AREA_OR_POINT' +p674 +S'Area' +p675 +sS'DATA_UNITS' +p676 +g64 +ssbsg3 +(g4 +(S'S43' +p677 +I0 +I1 +tp678 +Rp679 +(I3 +S'|' +p680 +NNNI43 +I1 +I0 +tp681 +bS'out/20060619-20061002_utm_unw_2rlks_2cr.tif' +p682 +tp683 +Rp684 +(ipyrate.shared +PrereadIfg +p685 +(dp686 +g15 +g493 +sg20 +I23 +sg21 +g3 +(g24 +S'\xdb\x81\xb9v`\xae\x9d?' +p687 +tp688 +Rp689 +sg30 +F0.2874743326488706 +sg31 +I36 +sg32 +(I36 +I23 +tp690 +sg34 +g490 +sg38 +g684 +sg39 +(dp691 +S'INSAR_PROCESSOR' +p692 +S'GAMMA' +p693 +sS'DATA_TYPE' +p694 +S'MULTILOOKED_IFG' +p695 +sS'WAVELENGTH_METRES' +p696 +S'0.0562356424008' +p697 +sS'TIME_SPAN_YEAR' +p698 +S'0.287474332649' +p699 +sS'MASTER_TIME' +p700 +S'08:28:59' +p701 +sS'MASTER_DATE' +p702 +S'2006-06-19' +p703 +sS'SLAVE_TIME' +p704 +S'13:05:19' +p705 +sg55 +g56 +sS'INCIDENCE_DEGREES' +p706 +S'22.9671' +p707 +sS'SLAVE_DATE' +p708 +S'2006-10-02' +p709 +sS'AREA_OR_POINT' +p710 +S'Area' +p711 +sS'DATA_UNITS' +p712 +g64 +ssbsg3 +(g4 +(S'S43' +p713 +I0 +I1 +tp714 +Rp715 +(I3 +S'|' +p716 +NNNI43 +I1 +I0 +tp717 +bS'out/20061106-20061211_utm_unw_2rlks_2cr.tif' +p718 +tp719 +Rp720 +(ipyrate.shared +PrereadIfg +p721 +(dp722 +g15 +g16 +(S'\x07\xd6\x0c\x0b' +p723 +tp724 +Rp725 +sg20 +I23 +sg21 +g3 +(g24 +S'\xf6w1\xa8\x08\xb7\xb4?' +p726 +tp727 +Rp728 +sg30 +F0.09582477754962354 +sg31 +I36 +sg32 +(I36 +I23 +tp729 +sg34 +g16 +(S'\x07\xd6\x0b\x06' +p730 +tp731 +Rp732 +sg38 +g720 +sg39 +(dp733 +S'INSAR_PROCESSOR' +p734 +S'GAMMA' +p735 +sS'DATA_TYPE' +p736 +S'MULTILOOKED_IFG' +p737 +sS'WAVELENGTH_METRES' +p738 +S'0.0562356424008' +p739 +sS'TIME_SPAN_YEAR' +p740 +S'0.0958247775496' +p741 +sS'MASTER_TIME' +p742 +S'22:58:23' +p743 +sS'MASTER_DATE' +p744 +S'2006-11-06' +p745 +sS'SLAVE_TIME' +p746 +S'23:18:53' +p747 +sg55 +g56 +sS'INCIDENCE_DEGREES' +p748 +S'22.9671' +p749 +sS'SLAVE_DATE' +p750 +S'2006-12-11' +p751 +sS'AREA_OR_POINT' +p752 +S'Area' +p753 +sS'DATA_UNITS' +p754 +g64 +ssbsS'wkt' +p755 +S'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4326"]]' +p756 +sg3 +(g4 +(S'S43' +p757 +I0 +I1 +tp758 +Rp759 +(I3 +S'|' +p760 +NNNI43 +I1 +I0 +tp761 +bS'out/20070115-20070326_utm_unw_2rlks_2cr.tif' +p762 +tp763 +Rp764 +(ipyrate.shared +PrereadIfg +p765 +(dp766 +g15 +g16 +(S'\x07\xd7\x03\x1a' +p767 +tp768 +Rp769 +sg20 +I23 +sg21 +g3 +(g24 +S'\xf9\x19%~F\x89\xbf?' +p770 +tp771 +Rp772 +sg30 +F0.19164955509924708 +sg31 +I36 +sg32 +(I36 +I23 +tp773 +sg34 +g16 +(S'\x07\xd7\x01\x0f' +p774 +tp775 +Rp776 +sg38 +g764 +sg39 +(dp777 +S'INSAR_PROCESSOR' +p778 +S'GAMMA' +p779 +sS'DATA_TYPE' +p780 +S'MULTILOOKED_IFG' +p781 +sS'WAVELENGTH_METRES' +p782 +S'0.0562356424008' +p783 +sS'TIME_SPAN_YEAR' +p784 +S'0.191649555099' +p785 +sS'MASTER_TIME' +p786 +S'21:48:23' +p787 +sS'MASTER_DATE' +p788 +S'2007-01-15' +p789 +sS'SLAVE_TIME' +p790 +S'02:32:13' +p791 +sg55 +g56 +sS'INCIDENCE_DEGREES' +p792 +S'22.9671' +p793 +sS'SLAVE_DATE' +p794 +S'2007-03-26' +p795 +sS'AREA_OR_POINT' +p796 +S'Area' +p797 +sS'DATA_UNITS' +p798 +g64 +ssbs. \ No newline at end of file From 1280693c27282a7f1af596862401bca66e19788d Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Thu, 23 Mar 2017 12:42:15 +1100 Subject: [PATCH 16/68] temporal low pass filter triangular method tested and some optimisation --- pyrate/aps.py | 14 ++++++++------ tests/test_aps.py | 14 ++++++++++++++ .../small_test/matlab_aps/ts_hp_m2.mat | Bin 0 -> 162632 bytes 3 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 tests/test_data/small_test/matlab_aps/ts_hp_m2.mat diff --git a/pyrate/aps.py b/pyrate/aps.py index 4c72b3731..2d80a2618 100644 --- a/pyrate/aps.py +++ b/pyrate/aps.py @@ -68,18 +68,20 @@ def tlpfilter(tsincr, epochlist, params): intv = np.diff(epochlist.spans) # time interval for the neighboring epoch span = epochlist.spans[: tsincr.shape[2]] + intv/2 # accumulated time rows, cols = tsincr.shape[:2] - + cutoff = params[cf.TLPF_CUTOFF] + method = params[cf.TLPF_METHOD] + threshold = params[cf.TLPF_PTHR] for i in range(rows): for j in range(cols): sel = np.nonzero(nanmat[i, j, :])[0] # don't select if nan m = len(sel) - if m >= params[cf.TLPF_PTHR]: + if m >= threshold: for k in range(m): yr = span[sel] - span[sel[k]] - if params[cf.TLPF_METHOD] == 1: # gaussian filter - wgt = np.exp(-(yr/params[cf.TLPF_CUTOFF]) ** 2/2) - elif params[cf.TLPF_METHOD] == 2: # triangular filter - wgt = params[cf.TLPF_CUTOFF] - abs(yr) + if method == 1: # gaussian filter + wgt = np.exp(-(yr/cutoff) ** 2/2) + elif method == 2: # triangular filter + wgt = cutoff - abs(yr) wgt[wgt < 0] = 0 else: # mean filter wgt = np.ones(m) diff --git a/tests/test_aps.py b/tests/test_aps.py index 0eaae696d..897be58e5 100644 --- a/tests/test_aps.py +++ b/tests/test_aps.py @@ -17,6 +17,9 @@ # tlp filter output from matlab ts_hp = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', 'ts_hp.mat')) +ts_hp_m2 = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', + 'ts_hp_m2.mat')) + def test_tlpfilter_matlab(): @@ -27,3 +30,14 @@ def test_tlpfilter_matlab(): tsfilt_incr_matlab = ts_hp['ts_hp'] np.testing.assert_almost_equal(tsfilt_incr_matlab, tsfilt_incr, decimal=4) + + +def test_tlpfilter_triangular_method_matlab(): + epochlist = get_epochs(ifgs_pk)[0] + params = cf.get_config_params(os.path.join(TEST_CONF_GAMMA)) + params[cf.TLPF_METHOD] = 2 + tsincr = tsincr_svd['tsincr'] + tsfilt_incr = tlpfilter(tsincr, epochlist, params) + tsfilt_incr_matlab = ts_hp_m2['ts_hp'] + np.testing.assert_almost_equal(tsfilt_incr_matlab, + tsfilt_incr, decimal=4) diff --git a/tests/test_data/small_test/matlab_aps/ts_hp_m2.mat b/tests/test_data/small_test/matlab_aps/ts_hp_m2.mat new file mode 100644 index 0000000000000000000000000000000000000000..caf42863b45312881a5666c06a08cd0a2934a4a7 GIT binary patch literal 162632 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

{+o8ZN>}dL{{43{gxeAK~LgY)p!ia z%0v<0oA_|ceH_wkM5(`BXz}hdHYJZ>e4ns)@BfWe_9K|JzaPzac3|woC%9n6U7?TT z8crt{vE|!oT-ACAcN})dk%xS|x?wsdUaF=|rzTMB;*rgc69I;HgMQ3a7@F4rx1ztn zo9p8IDZUfa5kP%z1%N*%j!{pW{GlBZA81|+V;cTXoBcXDn zY1U^3zh7c_H8s4Ru_Hre^+yabX50kye33-u6`q+3Y%^y7Zk6X#BZCV%zyQ82EXXP>3oY!MgG{WN&NON68ywzV{rAzCwLO~3ha;6z!Zl& zpqiEeM^8t<^amcGG)*65`+kx12iase#fJP&`NA}|UuE{LC}m1cj3dqy&B@k?1BAah zhD3izB7LtekjBO^QgF%FII^4a0K}OjqQF;@rZXzaceT-Utb!g++fL06Yu|V-L-rvLGkX`{c zv6s-MHv)OT4xs8>7ff`t!tJklsHeCDKd6|Y!bW2>TcC|8y3%MdT1X9<UqK=G1#D991ztM5?a|FD_MKd7qD@7im~_j5Mj-=Cnz_ez+{_s>)1_eUx6-87{6 z@*BqBz@OK!*XbU(>8C@<`2WBq-yB3@{*rGhDJ15H9x41=&U~MIk;&N7#%yjiBKz)# zkg9vvNy_BML~ZvAa?7xRIP|eXT%JNqe{Uo0FJwuo;c|wT%&^%TrcmeWhv>+^H)*PL zKb=>igq2^+(EXJwT15SatV9e}-b_QshJ1YYybOEQ@8c5j$LRd38e_E{VPy`7Veusx z7JUVWO3$I0+7VQ~x*qMK4bZq(5tXaP;SQH!YP~`@Yvm_`c^||vGh7sdJUVEoMhp$? zlVh_XnW$tg2CEKXpRu_SI#-Y9Z!%TqCrU2jo6B49hn-gQQ?}ajcT3ywtEE@+kNsx& zjmC@ky0vrpiOo~_@tFAcAQ-x?I zrg{zuF%2gnUS&k(=_}%=)lY(~Kad^qjYR%rA-OXrlqk9B65pO!#^+^B!Q1 zMmbtbUB`?C7f_B1M)e~OIRC~R6fyciLmEry!%1P(^p!iUbakbj;}6h25rIAHLH8 zFaF;7uKds#JN||7gl{uEpTA&W3O_#a8>nqS=P9S{UV~-VSRCAN9gE(^V*(d|aXx%xl%-MXdjT!$HK5^}7qcOkCoyqFCz-@c?o7_# zQl9UDyXC28)+{x=9>bLB`Vc9pA(Az=4lL_ZVZqEcSoU@zzt>Wi?_au-pP9Uw@Ah;z ze<1Y`-@QJFUl(wMU;D<7UlI2&KUI4jKYIHTey@`nUwfV?UoY(eG&M$n_=szeTiWc&n z53b>N{o}*;$~nT1yL^)WxFn2UI&_NPbod0{P{W^}x5k|xnr6ut@z>&eY#z_opY{ZX z!lHrSr4I{KuaZQ|0A}RFD^>%|X!y*9bnfbUHt2`t($M>_89(#2q@g>U%ocj$rU#xU zEiXgKqc|7x_li0(ci@=7x1V_fGc;Khl`m}0!u7OvAdU7;culkHq|s-<5IvGM;bEPV z*n1!mC8p)0mL|pj;pkigsp`HiPLgYKix8ryBq2mOYc3%kiIPYqrKFTDLR5+nQHUZ5 zl@LiPlsIedN-60kC4^Mcg`(0;>c8LjgD=jfv)OCSIp!F@x%%ln6v=psHa)Fq|6d#a zobwC|ZSUbG@oTtX%V}(S6N73EcBqm0g{7Gov!TlOf+~?Jl6_hh0=61}A!iPvy(VCD zSP$yr)gW%6Dtwtg8Il}bVgJ2&2nnbJ=_#LJlbH(T{48kA;w7|*+e*WhN7L8M33Qo9 z65V*}5H)Owr>mw#QknGiG_H0&-I_FwKD#AFwT?altIosFxy2m58(kqud+rNRX1g$I z{RpOh`-5 zT4(uN3Y%uX63V`@Ve2-gvakgY*gsnl+~}c)S7R3N`STrk{6jJZNao@0(dFpmbpyo$ z?jv9m230p>aoSTnxb!}Hjc2H5Qiv0R^{hPxE%~^10Yc&2z0a#K-bd(m|XH0QuD;<=$|_Ddy);^_1A|+eBDWN zP2#D8S2BIRK9w5iAEvVk5~-NuKH9c;BaJd&Kt&Y{X>Pj|T|VwH4Bbxy&wBz`7tu)4 zubL2>BcH6@G)06C;`eJb_+Z`Smg|BUy80w$qZfgjK}0fb8}UE4j2Le-C(9;FkzKzk z1a6^bf}zsFYeTv&!mGhAgf+bPK3_kcMH6H{J-)L!Gc@r|qYXCg^~Vji`*G*R42%mZ z#ALM!+&iB`*YrCm;&2~57Trh1rFCf8UWFp*d6@e&8m&K@V{}C^v-y@IDBt#*NRIUe zadH&Q6D~lfZw&<63L!_V5^^<4pkjYM1oJgvS8D~Vd-5103w}dMg9>e0Jd*~cEu^Q6 zHqqigQM7nWB9+KZq0eWh((bBcS~ceY6?5K04_dCJH(%RR;~9E1NNyy(h<9LOYBGFZ zOW;&QH}Q@SB}pz{1m)>Tf~^MG0?R`Kf~MFRWRv15GWA;o5&VfF>Au^E&#gtIdx<`2 zm-;Mdewr$fU-RBN?8By-+VC);{Ou3IL4J;_T)m&Uj=07Q1VhZ{%Xl2_6`+oq4^sKP zSid|8OG~rxh+83=Pq>H;H?Cr5v=Ac=8Lk^$g|B9n;N~|+(e={?L|G*i`7)IyjY%aB ze+a;$;s_WW;h^uGIJ9@Y+;WgkJ4_d+Tqs_<>ebh@o> z9#!-9p+>7iXvTqPnw4^Z`nVsY>Y0i3q$hs{?cPhdH34)mbs>#QoJosC$I{e|eGr*h z4iCNdfqa4q_<6q}cB_+!=LKt$)2=~WeWnnNx&=fsGK`4rI7q~5Q_00khluv92+}-h z5mB43MUwQN3M@kX1SSVetjqUG3BNqa7rs)GVYOpjnaZ4L&yB8!mN zATW%RgbnKZAW*RytXtp1^p)b&)KQMACCSsj-g0zvnKTVKDoMXZNmH8#3iM)(7Ilr8 zL07+;OM}*VP`e?2I`MZ1EqB;Uzn_Vs65WwB{Mk+#aB(x0d*n?|y>g`8t;Te9j|z3; zenRcSTQF)|I&?%XgImSp_;>gb@!6b8d>#CWNZxYdWVDS;zn4JT2D6AraXyjrJws{> zGsw!=C{p#=iNJO_GWf1Q(Am{v{qWM+8t(~-LY0RD!eS9K*70X2OVvHgGJdu&t)}sO zo@6$LocBaE>mXE%j6tmnhwxIx5$t`IiQ^Y%W0Q6+o;sU@-KED-ZP{TQ+#8AAbDS~c zr6`I|m1OeUa!I+JGuS^m1I8{LpjSJJ9!XTCUUE7#+kO&tUN(`A7|(kkohQ(?@47Ve z*Hmi#*^Iicn@dHPE~Hqtg5nK7D!xB}j?4|9u9oYl(j9LqXj?>me$1sE87B0SK#PV) zOVO4^?;ux`LC=5bP-Wu>DRxug;j%#zSyfItuO^dCmHS9wX&lKKPA8}KpC#Rr6(rU3 z3JD&6o)mmeCrMFT$Z*_bQvSF`;4jl;o%v^^(Ax8yFz?zZ767wZ+QLw#*PhGF*EX;< zQ~3J!n>lt~b;k`KwqaXgEaLfOw5mwQ?zZFjI{E}wjXr^%37L3s_YrKzMD(-Ug|&VQ zQ7lXe4QVX1E)*xeRmxDM77qi)ypJaK4-7q4rn9;x(HnD&sBE7JZ67wF61~Q>bA$

fo^<%YVtPGfJ{^*zw3e9C%pqOc^-hsC1&yF% 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%0D`!#jBq&#(eupWqwUzHz=@kU}qZ-o}S`- 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

uogC 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%0De|<#u0VX(EE)v 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 literal 0 HcmV?d00001 From cf35395ce6c07204d0e8904330d348a8f55bc306 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Tue, 28 Mar 2017 16:28:05 +1100 Subject: [PATCH 24/68] [aps, slpfilter] docstrings --- pyrate/aps/spatial.py | 36 +++++++++++++++++++++++++++++++++--- pyrate/vcm.py | 8 ++++---- tests/test_aps.py | 5 ++++- 3 files changed, 41 insertions(+), 8 deletions(-) diff --git a/pyrate/aps/spatial.py b/pyrate/aps/spatial.py index 0c859cc06..314f85ac9 100644 --- a/pyrate/aps/spatial.py +++ b/pyrate/aps/spatial.py @@ -8,6 +8,22 @@ def spatial_low_pass_filter(ts_hp, ifg, params): + """ + Parameters + ---------- + ts_hp: ndarray + time series from previous temporal low pass filter output of + shape (ifg.shape, n_epochs) + ifg: shared.Ifg instance + params: dict + params dict + + Returns + ------- + ts_hp: ndarray + spatio-temporal filtered time series output of + shape (ifg.shape, n_epochs) + """ log.info('Applying spatial low pass filter') for i in range(ts_hp.shape[2]): ts_hp[:, :, i] = slpfilter(ts_hp[:, :, i], ifg, params) @@ -17,6 +33,20 @@ def spatial_low_pass_filter(ts_hp, ifg, params): def slpfilter(phase, ifg, params): + """ + Parameters + ---------- + phase: ndarray + time series for one epoch + ifg: shared.Ifg class instance + params: dict + paramters dict + + Returns + ------- + out: ndarray + spatially filtered output time series same size as ifgs + """ if np.all(np.isnan(phase)): # return for nan matrix return phase cutoff = params[cf.SLPF_CUTOFF] @@ -38,9 +68,9 @@ def _slp_filter(phase, cutoff, rows, cols, x_size, y_size, params): # calculate distance distfact = 1.0e3 # to convert into meters [xx, yy] = np.meshgrid(range(cols), range(rows)) - xx = (xx - cx) * x_size + xx = (xx - cx) * x_size # these are in meters as x_size in meters yy = (yy - cy) * y_size - dist = np.sqrt(xx ** 2 + yy ** 2)/distfact + dist = np.sqrt(xx ** 2 + yy ** 2)/distfact # km if params[cf.SLPF_METHOD] == 1: # butterworth low pass filter H = 1. / (1 + ((dist / cutoff) ** (2 * params[cf.SLPF_ORDER]))) @@ -49,4 +79,4 @@ def _slp_filter(phase, cutoff, rows, cols, x_size, y_size, params): outf = imf * H out = np.real(ifft2(ifftshift(outf))) out[np.isnan(phase)] = np.nan - return out + return out # out is units of phase, i.e. mm diff --git a/pyrate/vcm.py b/pyrate/vcm.py index b9093f4e2..f52e5a232 100644 --- a/pyrate/vcm.py +++ b/pyrate/vcm.py @@ -136,7 +136,7 @@ def cvd_from_phase(phase, ifg, calc_alpha): # calculations in the numpy land r_dist = np.divide(np.sqrt(((xx - ifg.x_centre) * ifg.x_size) ** 2 + ((yy - ifg.y_centre) * ifg.y_size) ** 2), - distfact) + distfact) # km r_dist = reshape(r_dist, ifg.num_cells) acg = reshape(autocorr_grid, ifg.num_cells) # Symmetry in image; keep only unique points @@ -153,7 +153,7 @@ def cvd_from_phase(phase, ifg, calc_alpha): # eg. array([x for x in set([(1,1), (2,2), (1,1)])]) # the above shortens r_dist by some number of cells # bin width for collecting data - bin_width = max(ifg.x_size, ifg.y_size) * 2 / distfact + bin_width = max(ifg.x_size, ifg.y_size) * 2 / distfact # km # pick the smallest axis to determine circle search radius # print 'ifg.X_CENTRE, ifg.Y_CENTRE=', ifg.x_centre, ifg.y_centre # print 'ifg.X_SIZE, ifg.Y_SIZE', ifg.x_size, ifg.y_size @@ -169,7 +169,7 @@ def cvd_from_phase(phase, ifg, calc_alpha): indices_to_keep = r_dist < maxdist acg = acg[indices_to_keep] if calc_alpha: - r_dist = r_dist[indices_to_keep] + r_dist = r_dist[indices_to_keep] # km # classify values of r_dist according to bin number rbin = ceil(r_dist / bin_width).astype(int) maxbin = max(rbin) # consistent with Matlab code @@ -189,7 +189,7 @@ def cvd_from_phase(phase, ifg, calc_alpha): log.info("1st guess alpha {}, converged " "alpha: {}".format(alphaguess, alpha)) # maximum variance usually at the zero lag: max(acg[:len(r_dist)]) - return np.max(acg), alpha[0] + return np.max(acg), alpha[0] # alpha unit 1/km else: return np.max(acg), None diff --git a/tests/test_aps.py b/tests/test_aps.py index 5ba04cf2e..5a2f3c183 100644 --- a/tests/test_aps.py +++ b/tests/test_aps.py @@ -60,9 +60,12 @@ def test_tlpfilter_matlab(tlpfilter_method): def test_slpfilter_matlab(slpfilter_method): + # TODO: write tests for alpha = 0 special case when alpha (1/cutoff) is + # computed + params[cf.TLPF_METHOD] = slpfilter_method ifgs = small_data_setup() - xpsize = 76.834133036409 + xpsize = 76.834133036409 # copied from matlab since pyrate's don't match ypsize = 92.426722191659 ts_aps = np.zeros_like(ts_aps_m1) rows, cols = ifgs[0].shape From ce11ef0cd31653b6ac0eb1f3b0e55a91b121a3d6 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Tue, 28 Mar 2017 17:01:57 +1100 Subject: [PATCH 25/68] [aps, slpfilter] accumulation test --- pyrate/aps/spatial.py | 3 ++- tests/test_aps.py | 35 +++++++++++++++++++++++++++++------ 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/pyrate/aps/spatial.py b/pyrate/aps/spatial.py index 314f85ac9..3def30ec4 100644 --- a/pyrate/aps/spatial.py +++ b/pyrate/aps/spatial.py @@ -63,7 +63,6 @@ def _slp_filter(phase, cutoff, rows, cols, x_size, y_size, params): cx = np.floor(cols/2) cy = np.floor(rows/2) # fft for the input image - phase[np.isnan(phase)] = 0 imf = fftshift(fft2(phase)) # calculate distance distfact = 1.0e3 # to convert into meters @@ -73,8 +72,10 @@ def _slp_filter(phase, cutoff, rows, cols, x_size, y_size, params): dist = np.sqrt(xx ** 2 + yy ** 2)/distfact # km if params[cf.SLPF_METHOD] == 1: # butterworth low pass filter + print('should print butterworth') H = 1. / (1 + ((dist / cutoff) ** (2 * params[cf.SLPF_ORDER]))) else: # Gaussian low pass filter + print('should print gaussian') H = np.exp(-(dist ** 2) / (2 * cutoff ** 2)) outf = imf * H out = np.real(ifft2(ifftshift(outf))) diff --git a/tests/test_aps.py b/tests/test_aps.py index 5a2f3c183..e3d31d0a9 100644 --- a/tests/test_aps.py +++ b/tests/test_aps.py @@ -2,10 +2,11 @@ import scipy.io as sio import numpy as np import pytest +from collections import namedtuple from pyrate.algorithm import get_epochs from pyrate.aps.temporal import tlpfilter -from pyrate.aps.spatial import _slp_filter +from pyrate.aps.spatial import _slp_filter, spatial_low_pass_filter from pyrate import config as cf from pyrate.compat import pickle, PY3 from tests.common import SML_TEST_DIR, TEST_CONF_GAMMA, small_data_setup @@ -53,21 +54,27 @@ def test_tlpfilter_matlab(tlpfilter_method): params[cf.TLPF_METHOD] = 3 ts_hp_before_slpfilter = tsincr - tlpfilter(tsincr, epochlist, params) + +# convert nan's into zeros +ts_hp_before_slpfilter[np.isnan(ts_hp_before_slpfilter)] = 0 + ts_aps_m1 = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', 'ts_aps.mat'))['ts_aps'] ts_aps_m2 = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', 'ts_aps_m2.mat'))['ts_aps'] +xpsize = 76.834133036409 # copied from matlab since pyrate's don't match +ypsize = 92.426722191659 + def test_slpfilter_matlab(slpfilter_method): # TODO: write tests for alpha = 0 special case when alpha (1/cutoff) is # computed - params[cf.TLPF_METHOD] = slpfilter_method + params[cf.SLPF_METHOD] = slpfilter_method ifgs = small_data_setup() - xpsize = 76.834133036409 # copied from matlab since pyrate's don't match - ypsize = 92.426722191659 - ts_aps = np.zeros_like(ts_aps_m1) + ts_aps_m = ts_aps_m1 if slpfilter_method == 1 else ts_aps_m2 + ts_aps = np.zeros_like(ts_aps_m) rows, cols = ifgs[0].shape for i in range(ts_aps.shape[2]): ts_aps[:, :, i] = _slp_filter(cutoff=params[cf.SLPF_CUTOFF], @@ -76,4 +83,20 @@ def test_slpfilter_matlab(slpfilter_method): params=params, phase=ts_hp_before_slpfilter[:, :, i]) - np.testing.assert_array_almost_equal(ts_aps, ts_aps_m1, decimal=4) + np.testing.assert_array_almost_equal(ts_aps, ts_aps_m, decimal=4) + + +def test_slpfilter_accumulated(slpfilter_method): + import copy + ts_aps_before = copy.copy(ts_hp_before_slpfilter) + params[cf.SLPF_METHOD] = slpfilter_method + ifgs = small_data_setup() + ts_aps_m = ts_aps_m1 if slpfilter_method == 1 else ts_aps_m2 + Ifg = namedtuple('Ifg', 'x_size, y_size, shape') + ifg = Ifg(x_size=xpsize, y_size=ypsize, shape=ifgs[0].shape) + ts_aps = spatial_low_pass_filter(ts_aps_before, + ifg, params=params) + + for i in ifgs: + i.close() + np.testing.assert_array_almost_equal(ts_aps, ts_aps_m, decimal=4) From 1b65aff4c9c6a9c308b92697aa774b85023b0e18 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Wed, 29 Mar 2017 09:47:19 +1100 Subject: [PATCH 26/68] [aps, cvd, slpfilter] changes in cvd for reuse in slpfilter --- pyrate/aps/spatial.py | 2 +- pyrate/vcm.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pyrate/aps/spatial.py b/pyrate/aps/spatial.py index 3def30ec4..deee5c23e 100644 --- a/pyrate/aps/spatial.py +++ b/pyrate/aps/spatial.py @@ -25,6 +25,7 @@ def spatial_low_pass_filter(ts_hp, ifg, params): shape (ifg.shape, n_epochs) """ log.info('Applying spatial low pass filter') + ts_hp[np.isnan(ts_hp)] = 0 # need it here for cvd and fft for i in range(ts_hp.shape[2]): ts_hp[:, :, i] = slpfilter(ts_hp[:, :, i], ifg, params) @@ -50,7 +51,6 @@ def slpfilter(phase, ifg, params): if np.all(np.isnan(phase)): # return for nan matrix return phase cutoff = params[cf.SLPF_CUTOFF] - phase[np.isnan(phase)] = 0 # need it here for cvd calc if cutoff == 0: maxvar, alpha = cvd_from_phase(phase, ifg, calc_alpha=True) cutoff = 1.0/alpha diff --git a/pyrate/vcm.py b/pyrate/vcm.py index f52e5a232..173d6e9c2 100644 --- a/pyrate/vcm.py +++ b/pyrate/vcm.py @@ -137,15 +137,15 @@ def cvd_from_phase(phase, ifg, calc_alpha): r_dist = np.divide(np.sqrt(((xx - ifg.x_centre) * ifg.x_size) ** 2 + ((yy - ifg.y_centre) * ifg.y_size) ** 2), distfact) # km - r_dist = reshape(r_dist, ifg.num_cells) - acg = reshape(autocorr_grid, ifg.num_cells) + r_dist = reshape(r_dist, phase.size) + acg = reshape(autocorr_grid, phase.size) # Symmetry in image; keep only unique points # tmp = unique_points(zip(acg, r_dist)) # Sudipta: Is this faster than keeping only the 1st half as in Matlab? # Sudipta: Unlikely, as unique_point is a search/comparison, # whereas keeping 1st half is just numpy indexing. # If it is not faster, why was this done differently here? - r_dist = r_dist[:int(ceil(ifg.num_cells / 2.0)) + ifg.nrows] + r_dist = r_dist[:int(ceil(phase.size / 2.0)) + nrows] acg = acg[:len(r_dist)] # Alternative method to remove duplicate cells (from Matlab Pirate code) # r_dist = r_dist[:ceil(len(r_dist)/2)+nlines] From 7e72ba5c60a9240c8d98e1dbd7840eca38f057a2 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Wed, 29 Mar 2017 10:36:53 +1100 Subject: [PATCH 27/68] [vcm] same maxdist as in matlab and refactoring for memory efficiency --- pyrate/vcm.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/pyrate/vcm.py b/pyrate/vcm.py index 173d6e9c2..71769a2b9 100644 --- a/pyrate/vcm.py +++ b/pyrate/vcm.py @@ -124,11 +124,7 @@ def cvd_from_phase(phase, ifg, calc_alpha): distfact = 1000 nrows, ncols = phase.shape - fft_phase = fft2(phase) - pspec = real(fft_phase) ** 2 + imag(fft_phase) ** 2 - autocorr_grid = ifft2(pspec) - nzc = np.sum(np.sum(phase != 0)) - autocorr_grid = fftshift(real(autocorr_grid)) / nzc + autocorr_grid = _get_autogrid(phase) # pixel distances from pixel at zero lag (image centre). xx, yy = meshgrid(range(ncols), range(nrows)) # r_dist is distance from the center @@ -158,9 +154,9 @@ def cvd_from_phase(phase, ifg, calc_alpha): # print 'ifg.X_CENTRE, ifg.Y_CENTRE=', ifg.x_centre, ifg.y_centre # print 'ifg.X_SIZE, ifg.Y_SIZE', ifg.x_size, ifg.y_size if (ifg.x_centre * ifg.x_size) < (ifg.y_centre * ifg.y_size): - maxdist = ifg.x_centre * ifg.x_size / distfact + maxdist = (ifg.x_centre+1) * ifg.x_size / distfact else: - maxdist = ifg.y_centre * ifg.y_size / distfact + maxdist = (ifg.y_centre+1) * ifg.y_size / distfact # filter out data where the of lag distance is greater than maxdist # r_dist = array([e for e in rorig if e <= maxdist]) # @@ -194,6 +190,15 @@ def cvd_from_phase(phase, ifg, calc_alpha): return np.max(acg), None +def _get_autogrid(phase): + fft_phase = fft2(phase) + pspec = real(fft_phase) ** 2 + imag(fft_phase) ** 2 + autocorr_grid = ifft2(pspec) + nzc = np.sum(np.sum(phase != 0)) + autocorr_grid = fftshift(real(autocorr_grid)) / nzc + return autocorr_grid + + def get_vcmt(ifgs, maxvar): """ Returns the temporal variance/covariance matrix. From dbb8484b036ce759a7801298e1860e0a3223118d Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Wed, 29 Mar 2017 10:52:08 +1100 Subject: [PATCH 28/68] [vcm] consistent maxbin during alpha calc --- pyrate/vcm.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pyrate/vcm.py b/pyrate/vcm.py index 71769a2b9..103aa6057 100644 --- a/pyrate/vcm.py +++ b/pyrate/vcm.py @@ -148,8 +148,7 @@ def cvd_from_phase(phase, ifg, calc_alpha): # Reason for '+nlines' term unknown # eg. array([x for x in set([(1,1), (2,2), (1,1)])]) # the above shortens r_dist by some number of cells - # bin width for collecting data - bin_width = max(ifg.x_size, ifg.y_size) * 2 / distfact # km + # pick the smallest axis to determine circle search radius # print 'ifg.X_CENTRE, ifg.Y_CENTRE=', ifg.x_centre, ifg.y_centre # print 'ifg.X_SIZE, ifg.Y_SIZE', ifg.x_size, ifg.y_size @@ -165,10 +164,12 @@ def cvd_from_phase(phase, ifg, calc_alpha): indices_to_keep = r_dist < maxdist acg = acg[indices_to_keep] if calc_alpha: + # bin width for collecting data + bin_width = max(ifg.x_size, ifg.y_size) * 2 / distfact # km r_dist = r_dist[indices_to_keep] # km # classify values of r_dist according to bin number rbin = ceil(r_dist / bin_width).astype(int) - maxbin = max(rbin) # consistent with Matlab code + maxbin = max(rbin) - 1 # consistent with Matlab code cvdav = zeros(shape=(2, maxbin)) From 73b3f2ea81db59f51eae1d8de1bfc42330588765 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Wed, 29 Mar 2017 12:03:02 +1100 Subject: [PATCH 29/68] [cvd] now alpha mataches matlab exactly every step --- pyrate/vcm.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/pyrate/vcm.py b/pyrate/vcm.py index 103aa6057..eb1c66a90 100644 --- a/pyrate/vcm.py +++ b/pyrate/vcm.py @@ -133,8 +133,8 @@ def cvd_from_phase(phase, ifg, calc_alpha): r_dist = np.divide(np.sqrt(((xx - ifg.x_centre) * ifg.x_size) ** 2 + ((yy - ifg.y_centre) * ifg.y_size) ** 2), distfact) # km - r_dist = reshape(r_dist, phase.size) - acg = reshape(autocorr_grid, phase.size) + r_dist = reshape(r_dist, phase.size, order='F') + acg = reshape(autocorr_grid, phase.size, order='F') # Symmetry in image; keep only unique points # tmp = unique_points(zip(acg, r_dist)) # Sudipta: Is this faster than keeping only the 1st half as in Matlab? @@ -150,8 +150,6 @@ def cvd_from_phase(phase, ifg, calc_alpha): # the above shortens r_dist by some number of cells # pick the smallest axis to determine circle search radius - # print 'ifg.X_CENTRE, ifg.Y_CENTRE=', ifg.x_centre, ifg.y_centre - # print 'ifg.X_SIZE, ifg.Y_SIZE', ifg.x_size, ifg.y_size if (ifg.x_centre * ifg.x_size) < (ifg.y_centre * ifg.y_size): maxdist = (ifg.x_centre+1) * ifg.x_size / distfact else: @@ -163,6 +161,7 @@ def cvd_from_phase(phase, ifg, calc_alpha): # acg = array([e for e in rorig if e <= maxdist]) indices_to_keep = r_dist < maxdist acg = acg[indices_to_keep] + if calc_alpha: # bin width for collecting data bin_width = max(ifg.x_size, ifg.y_size) * 2 / distfact # km @@ -171,14 +170,13 @@ def cvd_from_phase(phase, ifg, calc_alpha): rbin = ceil(r_dist / bin_width).astype(int) maxbin = max(rbin) - 1 # consistent with Matlab code - cvdav = zeros(shape=(2, maxbin)) + cvdav = zeros(shape=(2, maxbin + 1)) # the following stays in numpy land # distance instead of bin number - cvdav[0, :] = np.multiply(range(maxbin), bin_width) + cvdav[0, :] = np.multiply(range(maxbin + 1), bin_width) # mean variance for the bins - cvdav[1, :] = [mean(acg[rbin == b]) for b in range(maxbin)] - + cvdav[1, :] = [mean(acg[rbin == b]) for b in range(maxbin + 1)] # calculate best fit function maxvar*exp(-alpha*r_dist) alphaguess = 2 / (maxbin * bin_width) alpha = fmin(pendiffexp, x0=alphaguess, args=(cvdav,), disp=False, From 57e6b9757d4708c24d87b016f5c9f0748bf3f29b Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Wed, 29 Mar 2017 12:04:55 +1100 Subject: [PATCH 30/68] [aps, slpfilter] tests for auto-cutoff freq (using cvd alpha) --- tests/test_aps.py | 27 +++++++++++++++--- .../matlab_aps/ts_aps_auto_cutoff.mat | Bin 0 -> 162632 bytes 2 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 tests/test_data/small_test/matlab_aps/ts_aps_auto_cutoff.mat diff --git a/tests/test_aps.py b/tests/test_aps.py index e3d31d0a9..e4694f347 100644 --- a/tests/test_aps.py +++ b/tests/test_aps.py @@ -1,8 +1,9 @@ import os +import copy +from collections import namedtuple import scipy.io as sio import numpy as np import pytest -from collections import namedtuple from pyrate.algorithm import get_epochs from pyrate.aps.temporal import tlpfilter @@ -62,7 +63,8 @@ def test_tlpfilter_matlab(tlpfilter_method): 'ts_aps.mat'))['ts_aps'] ts_aps_m2 = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', 'ts_aps_m2.mat'))['ts_aps'] - +ts_aps_m_auto = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', + 'ts_aps_auto_cutoff.mat'))['ts_aps'] xpsize = 76.834133036409 # copied from matlab since pyrate's don't match ypsize = 92.426722191659 @@ -82,12 +84,12 @@ def test_slpfilter_matlab(slpfilter_method): x_size=xpsize, y_size=ypsize, params=params, phase=ts_hp_before_slpfilter[:, :, i]) - + for i in ifgs: + i.close() np.testing.assert_array_almost_equal(ts_aps, ts_aps_m, decimal=4) def test_slpfilter_accumulated(slpfilter_method): - import copy ts_aps_before = copy.copy(ts_hp_before_slpfilter) params[cf.SLPF_METHOD] = slpfilter_method ifgs = small_data_setup() @@ -100,3 +102,20 @@ def test_slpfilter_accumulated(slpfilter_method): for i in ifgs: i.close() np.testing.assert_array_almost_equal(ts_aps, ts_aps_m, decimal=4) + + +def test_slpfilter_auto_cutoff(slpfilter_method=2): + ts_aps_before = copy.copy(ts_hp_before_slpfilter) + params[cf.SLPF_METHOD] = slpfilter_method + params[cf.SLPF_CUTOFF] = 0 + ifgs = small_data_setup() + Ifg = namedtuple('Ifg', 'x_centre, y_centre, x_size, y_size, shape') + ifg = Ifg(x_size=xpsize, y_size=ypsize, shape=ifgs[0].shape, + x_centre=ifgs[0].x_centre, y_centre=ifgs[0].y_centre) + + ts_aps = spatial_low_pass_filter(ts_aps_before, + ifg, params=params) + + for i in ifgs: + i.close() + np.testing.assert_array_almost_equal(ts_aps, ts_aps_m_auto, decimal=4) diff --git a/tests/test_data/small_test/matlab_aps/ts_aps_auto_cutoff.mat b/tests/test_data/small_test/matlab_aps/ts_aps_auto_cutoff.mat new file mode 100644 index 0000000000000000000000000000000000000000..0781924206039989773b9f52707eb169072de7e9 GIT binary patch literal 162632 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

Z`p&ApXs>oMmDy) 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

wd>Y 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 Date: Wed, 29 Mar 2017 13:57:57 +1100 Subject: [PATCH 31/68] [vcm] compute r_dist once --- pyrate/aps/__init__.py | 27 ++++++++++++++++- pyrate/aps/spatial.py | 13 ++++---- pyrate/scripts/run_pyrate.py | 10 ++++++- pyrate/vcm.py | 57 +++++++++++++++++++++++------------- 4 files changed, 78 insertions(+), 29 deletions(-) diff --git a/pyrate/aps/__init__.py b/pyrate/aps/__init__.py index 1451d24b6..35012a16e 100644 --- a/pyrate/aps/__init__.py +++ b/pyrate/aps/__init__.py @@ -38,6 +38,27 @@ def spatio_temporal_filter(ifg_paths, params, tiles, preread_ifgs): def calc_svd_time_series(ifg_paths, params, preread_ifgs, tiles): + """ + Time series inversion with no smoothing (svd method) + This is the matlab tsinvnosm.m equivalent. + + Parameters + ---------- + ifg_paths: list + list of ifg paths + params: dict + parameters dict + preread_ifgs: dict + prepread ifgs dict + tiles: list + list of shared.Tile class instances + + Returns + ------- + tsincr_g: ndarray + non smooth (svd method) time series of shape (ifg.shape, nvels) + + """ log.info('Calculating time series without smoothing for ' 'spatio-temporal filter') # copy params temporarily @@ -70,4 +91,8 @@ def _assemble_tsincr(ifg_paths, params, preread_ifgs, tiles, nvelpar): for n, t in enumerate(tiles): assemble_tiles(i, n, t, tsincr_g[:, :, i], params[cf.TMPDIR], 'tsincr_aps') - return tsincr_g \ No newline at end of file + return tsincr_g + + +def ts_to_ifgs(ts, params): + pass diff --git a/pyrate/aps/spatial.py b/pyrate/aps/spatial.py index deee5c23e..5524bec69 100644 --- a/pyrate/aps/spatial.py +++ b/pyrate/aps/spatial.py @@ -2,7 +2,7 @@ import numpy as np from scipy.fftpack import fft2, ifft2, fftshift, ifftshift from pyrate import config as cf -from pyrate.vcm import cvd_from_phase +from pyrate.vcm import cvd_from_phase, RDist log = logging.getLogger(__name__) @@ -26,14 +26,15 @@ def spatial_low_pass_filter(ts_hp, ifg, params): """ log.info('Applying spatial low pass filter') ts_hp[np.isnan(ts_hp)] = 0 # need it here for cvd and fft + r_dist = RDist(ifg)() for i in range(ts_hp.shape[2]): - ts_hp[:, :, i] = slpfilter(ts_hp[:, :, i], ifg, params) + ts_hp[:, :, i] = slpfilter(ts_hp[:, :, i], ifg, r_dist, params) log.info('Finished applying spatial low pass filter') return ts_hp -def slpfilter(phase, ifg, params): +def slpfilter(phase, ifg, r_dist, params): """ Parameters ---------- @@ -51,8 +52,10 @@ def slpfilter(phase, ifg, params): if np.all(np.isnan(phase)): # return for nan matrix return phase cutoff = params[cf.SLPF_CUTOFF] + + if cutoff == 0: - maxvar, alpha = cvd_from_phase(phase, ifg, calc_alpha=True) + maxvar, alpha = cvd_from_phase(phase, ifg, r_dist, calc_alpha=True) cutoff = 1.0/alpha rows, cols = ifg.shape return _slp_filter(phase, cutoff, rows, cols, @@ -72,10 +75,8 @@ def _slp_filter(phase, cutoff, rows, cols, x_size, y_size, params): dist = np.sqrt(xx ** 2 + yy ** 2)/distfact # km if params[cf.SLPF_METHOD] == 1: # butterworth low pass filter - print('should print butterworth') H = 1. / (1 + ((dist / cutoff) ** (2 * params[cf.SLPF_ORDER]))) else: # Gaussian low pass filter - print('should print gaussian') H = np.exp(-(dist ** 2) / (2 * cutoff ** 2)) outf = imf * H out = np.real(ifft2(ifftshift(outf))) diff --git a/pyrate/scripts/run_pyrate.py b/pyrate/scripts/run_pyrate.py index accc154dc..7b269ff5f 100644 --- a/pyrate/scripts/run_pyrate.py +++ b/pyrate/scripts/run_pyrate.py @@ -534,12 +534,13 @@ def maxvar_vcm_calc(ifg_paths, params, preread_ifgs): """ log.info('Calculating maxvar and vcm') process_indices = mpiops.array_split(range(len(ifg_paths))) + r_dist = mpiops.run_once(_get_r_dist, ifg_paths[0]) prcs_ifgs = mpiops.array_split(ifg_paths) process_maxvar = [] for n, i in enumerate(prcs_ifgs): log.info('Calculating maxvar for {} of process ifgs {} of ' 'total {}'.format(n+1, len(prcs_ifgs), len(ifg_paths))) - process_maxvar.append(vcm_module.cvd(i, params)[0]) + process_maxvar.append(vcm_module.cvd(i, r_dist, params)[0]) if mpiops.rank == MASTER_PROCESS: maxvar = np.empty(len(ifg_paths), dtype=np.float64) maxvar[process_indices] = process_maxvar @@ -559,6 +560,13 @@ def maxvar_vcm_calc(ifg_paths, params, preread_ifgs): return maxvar, vcmt +def _get_r_dist(ifg_path): + ifg = Ifg(ifg_path) + r_dist = vcm_module.RDist(ifg)() + ifg.close() + return r_dist + + def phase_sum(ifg_paths, params): """ save phase data and phs_sum used in the reference phase estimation diff --git a/pyrate/vcm.py b/pyrate/vcm.py index eb1c66a90..8115ba5ce 100644 --- a/pyrate/vcm.py +++ b/pyrate/vcm.py @@ -32,6 +32,9 @@ from pyrate.shared import PrereadIfg from pyrate.algorithm import master_slave_ids +# distance division factor of 1000 converts to km and is needed to match +# Matlab code output +DISTFACT = 1000 log = logging.getLogger(__name__) @@ -61,7 +64,7 @@ def unique_points(points): # pragma: no cover return vstack([array(u) for u in set(points)]) -def cvd(ifg_path, params, calc_alpha=False): +def cvd(ifg_path, params, r_dist, calc_alpha=False): """ Calculate average covariance versus distance (autocorrelation) and its best fitting exponential function @@ -89,7 +92,7 @@ def cvd(ifg_path, params, calc_alpha=False): else: phase = ifg.phase_data - maxvar, alpha = cvd_from_phase(phase, ifg, calc_alpha) + maxvar, alpha = cvd_from_phase(phase, ifg, r_dist, calc_alpha) if isinstance(ifg_path, str): ifg.close() @@ -97,7 +100,7 @@ def cvd(ifg_path, params, calc_alpha=False): return maxvar, alpha -def cvd_from_phase(phase, ifg, calc_alpha): +def cvd_from_phase(phase, ifg, r_dist, calc_alpha): """ A convenience class reused in many places to compute cvd from phase data and a ifg class @@ -119,21 +122,7 @@ def cvd_from_phase(phase, ifg, calc_alpha): # pylint: disable=invalid-name # pylint: disable=too-many-locals - # distance division factor of 1000 converts to km and is needed to match - # Matlab code output - distfact = 1000 - - nrows, ncols = phase.shape autocorr_grid = _get_autogrid(phase) - # pixel distances from pixel at zero lag (image centre). - xx, yy = meshgrid(range(ncols), range(nrows)) - # r_dist is distance from the center - # doing np.divide and np.sqrt will improve performance as it keeps - # calculations in the numpy land - r_dist = np.divide(np.sqrt(((xx - ifg.x_centre) * ifg.x_size) ** 2 + - ((yy - ifg.y_centre) * ifg.y_size) ** 2), - distfact) # km - r_dist = reshape(r_dist, phase.size, order='F') acg = reshape(autocorr_grid, phase.size, order='F') # Symmetry in image; keep only unique points # tmp = unique_points(zip(acg, r_dist)) @@ -141,7 +130,7 @@ def cvd_from_phase(phase, ifg, calc_alpha): # Sudipta: Unlikely, as unique_point is a search/comparison, # whereas keeping 1st half is just numpy indexing. # If it is not faster, why was this done differently here? - r_dist = r_dist[:int(ceil(phase.size / 2.0)) + nrows] + # r_dist = r_dist[:int(ceil(phase.size / 2.0)) + nrows] acg = acg[:len(r_dist)] # Alternative method to remove duplicate cells (from Matlab Pirate code) # r_dist = r_dist[:ceil(len(r_dist)/2)+nlines] @@ -151,9 +140,9 @@ def cvd_from_phase(phase, ifg, calc_alpha): # pick the smallest axis to determine circle search radius if (ifg.x_centre * ifg.x_size) < (ifg.y_centre * ifg.y_size): - maxdist = (ifg.x_centre+1) * ifg.x_size / distfact + maxdist = (ifg.x_centre+1) * ifg.x_size / DISTFACT else: - maxdist = (ifg.y_centre+1) * ifg.y_size / distfact + maxdist = (ifg.y_centre+1) * ifg.y_size / DISTFACT # filter out data where the of lag distance is greater than maxdist # r_dist = array([e for e in rorig if e <= maxdist]) # @@ -164,7 +153,7 @@ def cvd_from_phase(phase, ifg, calc_alpha): if calc_alpha: # bin width for collecting data - bin_width = max(ifg.x_size, ifg.y_size) * 2 / distfact # km + bin_width = max(ifg.x_size, ifg.y_size) * 2 / DISTFACT # km r_dist = r_dist[indices_to_keep] # km # classify values of r_dist according to bin number rbin = ceil(r_dist / bin_width).astype(int) @@ -189,6 +178,32 @@ def cvd_from_phase(phase, ifg, calc_alpha): return np.max(acg), None +class RDist: + def __init__(self, ifg): + self.r_dist = None + self.ifg = ifg + self.nrows, self.ncols = ifg.shape + + def __call__(self): + + if self.r_dist is None: + size = self.nrows * self.ncols + # pixel distances from pixel at zero lag (image centre). + xx, yy = meshgrid(range(self.ncols), range(self.nrows)) + # r_dist is distance from the center + # doing np.divide and np.sqrt will improve performance as it keeps + # calculations in the numpy land + self.r_dist = np.divide(np.sqrt(((xx - self.ifg.x_centre) * + self.ifg.x_size) ** 2 + + ((yy - self.ifg.y_centre) * + self.ifg.y_size) ** 2), + DISTFACT) # km + self.r_dist = reshape(self.r_dist, size, order='F') + self.r_dist = self.r_dist[:int(ceil(size / 2.0)) + self.nrows] + + return self.r_dist + + def _get_autogrid(phase): fft_phase = fft2(phase) pspec = real(fft_phase) ** 2 + imag(fft_phase) ** 2 From 5c7cfc7637d7961aa784eed968fa1187e8c11791 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Wed, 29 Mar 2017 14:30:38 +1100 Subject: [PATCH 32/68] [vcm] tests pass again --- pyrate/scripts/run_pyrate.py | 3 ++- pyrate/vcm.py | 3 +-- tests/test_aps.py | 9 +++++++-- tests/test_linrate.py | 4 ++-- tests/test_mpi.py | 5 +++-- tests/test_pyrate.py | 1 - tests/test_timeseries.py | 11 ++++++----- tests/test_vcm.py | 12 ++++++------ 8 files changed, 27 insertions(+), 21 deletions(-) diff --git a/pyrate/scripts/run_pyrate.py b/pyrate/scripts/run_pyrate.py index 7b269ff5f..65ab459e8 100644 --- a/pyrate/scripts/run_pyrate.py +++ b/pyrate/scripts/run_pyrate.py @@ -540,7 +540,7 @@ def maxvar_vcm_calc(ifg_paths, params, preread_ifgs): for n, i in enumerate(prcs_ifgs): log.info('Calculating maxvar for {} of process ifgs {} of ' 'total {}'.format(n+1, len(prcs_ifgs), len(ifg_paths))) - process_maxvar.append(vcm_module.cvd(i, r_dist, params)[0]) + process_maxvar.append(vcm_module.cvd(i, params, r_dist)[0]) if mpiops.rank == MASTER_PROCESS: maxvar = np.empty(len(ifg_paths), dtype=np.float64) maxvar[process_indices] = process_maxvar @@ -562,6 +562,7 @@ def maxvar_vcm_calc(ifg_paths, params, preread_ifgs): def _get_r_dist(ifg_path): ifg = Ifg(ifg_path) + ifg.open() r_dist = vcm_module.RDist(ifg)() ifg.close() return r_dist diff --git a/pyrate/vcm.py b/pyrate/vcm.py index 8115ba5ce..039bc7b28 100644 --- a/pyrate/vcm.py +++ b/pyrate/vcm.py @@ -82,8 +82,7 @@ def cvd(ifg_path, params, r_dist, calc_alpha=False): ifg.open() else: ifg = ifg_path - # assert isinstance(ifg_path, shared.Ifg) - # ifg = ifg_path + shared.nan_and_mm_convert(ifg, params) # calculate 2D auto-correlation of image using the # spectral method (Wiener-Khinchin theorem) diff --git a/tests/test_aps.py b/tests/test_aps.py index e4694f347..2ed980310 100644 --- a/tests/test_aps.py +++ b/tests/test_aps.py @@ -94,8 +94,9 @@ def test_slpfilter_accumulated(slpfilter_method): params[cf.SLPF_METHOD] = slpfilter_method ifgs = small_data_setup() ts_aps_m = ts_aps_m1 if slpfilter_method == 1 else ts_aps_m2 - Ifg = namedtuple('Ifg', 'x_size, y_size, shape') - ifg = Ifg(x_size=xpsize, y_size=ypsize, shape=ifgs[0].shape) + Ifg = namedtuple('Ifg', 'x_centre, y_centre, x_size, y_size, shape') + ifg = Ifg(x_size=xpsize, y_size=ypsize, shape=ifgs[0].shape, + x_centre=ifgs[0].x_centre, y_centre=ifgs[0].y_centre) ts_aps = spatial_low_pass_filter(ts_aps_before, ifg, params=params) @@ -119,3 +120,7 @@ def test_slpfilter_auto_cutoff(slpfilter_method=2): for i in ifgs: i.close() np.testing.assert_array_almost_equal(ts_aps, ts_aps_m_auto, decimal=4) + + +def test_calc_svd_time_series(): + pass \ No newline at end of file diff --git a/tests/test_linrate.py b/tests/test_linrate.py index 03eaf4337..feb2588b0 100644 --- a/tests/test_linrate.py +++ b/tests/test_linrate.py @@ -112,8 +112,8 @@ def setUpClass(cls): ifgs = prepare_ifgs_without_phase(dest_paths, params) _, ifgs = rpe.estimate_ref_phase(ifgs, params, refx, refy) - - maxvar = [vcm_module.cvd(i, params)[0] for i in ifgs] + r_dist = vcm_module.RDist(ifgs[0])() + maxvar = [vcm_module.cvd(i, params, r_dist)[0] for i in ifgs] vcmt = vcm_module.get_vcmt(ifgs, maxvar) # Calculate linear rate map diff --git a/tests/test_mpi.py b/tests/test_mpi.py index a47b23b20..9c10a1ea1 100644 --- a/tests/test_mpi.py +++ b/tests/test_mpi.py @@ -50,7 +50,7 @@ os.environ['TRAVIS_PYTHON_VERSION'] == '3.5') else False GDAL_VERSION = check_output(["gdal-config", "--version"]).decode( encoding="utf-8").split('\n')[0] -MPITEST = TRAVIS and GDAL_VERSION == '2.0.0' +MPITEST = TRAVIS and GDAL_VERSION == '2.1.0' @pytest.fixture() @@ -284,7 +284,8 @@ def test_timeseries_linrate_mpi(mpisync, tempdir, modify_config, ifgs = common.prepare_ifgs_without_phase(dest_paths, params_old) rpe.estimate_ref_phase(ifgs, params_old, refx, refy) ifgs = shared.pre_prepare_ifgs(dest_paths, params_old) - maxvar_s = [vcm.cvd(i, params_old)[0] for i in ifgs] + r_dist = vcm.RDist(ifgs[0])() + maxvar_s = [vcm.cvd(i, params_old, r_dist)[0] for i in ifgs] vcmt_s = vcm.get_vcmt(ifgs, maxvar) tsincr, tscum, _ = tests.common.compute_time_series( ifgs, mst_grid, params, vcmt) diff --git a/tests/test_pyrate.py b/tests/test_pyrate.py index 94b1afdca..67dbe1474 100644 --- a/tests/test_pyrate.py +++ b/tests/test_pyrate.py @@ -18,7 +18,6 @@ """ import glob -#import logging import os import shutil import tempfile diff --git a/tests/test_timeseries.py b/tests/test_timeseries.py index ea8e9ce01..c3c13f2ee 100644 --- a/tests/test_timeseries.py +++ b/tests/test_timeseries.py @@ -79,7 +79,8 @@ def setUpClass(cls): cls.ifgs = common.small_data_setup() cls.params = default_params() cls.mstmat = mst.mst_boolean_array(cls.ifgs) - cls.maxvar = [vcm.cvd(i, cls.params)[0] for i in cls.ifgs] + r_dist = vcm.RDist(cls.ifgs[0])() + cls.maxvar = [vcm.cvd(i, cls.params, r_dist)[0] for i in cls.ifgs] cls.vcmt = vcm.get_vcmt(cls.ifgs, cls.maxvar) # def test_time_series(self): @@ -155,8 +156,8 @@ def setUpClass(cls): pyrate.orbital.remove_orbital_error(ifgs, params) ifgs = common.prepare_ifgs_without_phase(dest_paths, params) _, ifgs = rpe.estimate_ref_phase(ifgs, params, refx, refy) - - maxvar = [vcm.cvd(i, params)[0] for i in ifgs] + r_dist = vcm.RDist(ifgs[0])() + maxvar = [vcm.cvd(i, params, r_dist)[0] for i in ifgs] vcmt = vcm.get_vcmt(ifgs, maxvar) params[cf.TIME_SERIES_METHOD] = 1 @@ -267,9 +268,9 @@ def setUpClass(cls): ifgs = common.prepare_ifgs_without_phase(dest_paths, params) _, ifgs = rpe.estimate_ref_phase(ifgs, params, refx, refy) - + r_dist = vcm.RDist(ifgs[0])() # Calculate interferogram noise - maxvar = [vcm.cvd(i, params)[0] for i in ifgs] + maxvar = [vcm.cvd(i, params, r_dist)[0] for i in ifgs] vcmt = vcm.get_vcmt(ifgs, maxvar) params[cf.TIME_SERIES_METHOD] = 2 diff --git a/tests/test_vcm.py b/tests/test_vcm.py index 416898fff..f09161fb3 100644 --- a/tests/test_vcm.py +++ b/tests/test_vcm.py @@ -29,7 +29,7 @@ from pyrate import ref_phs_est as rpe from pyrate import shared from pyrate.scripts import run_pyrate, run_prepifg -from pyrate.vcm import cvd, get_vcmt +from pyrate.vcm import cvd, get_vcmt, RDist import pyrate.orbital from tests.common import small5_mock_ifgs, small5_ifgs, TEST_CONF_ROIPAC from tests.common import small_data_setup, prepare_ifgs_without_phase @@ -44,17 +44,17 @@ def setUp(self): params[cf.NO_DATA_VALUE] = 0 params[cf.NAN_CONVERSION] = True self.params = params + self.r_dist = RDist(self.ifgs[0])() def test_covariance_basic(self): ifgs = small5_ifgs() - for i in ifgs: i.open() if bool((i.phase_data == 0).all()) is True: raise Exception("All zero") - maxvar, alpha = cvd(i, self.params, calc_alpha=True) + maxvar, alpha = cvd(i, self.params, self.r_dist, calc_alpha=True) self.assertTrue(maxvar is not None) self.assertTrue(alpha is not None) print("maxvar: %s, alpha: %s" % (maxvar, alpha)) @@ -77,7 +77,7 @@ def test_covariance_17ifgs(self): if bool((i.phase_data == 0).all()) is True: raise Exception("All zero") - maxvar, alpha = cvd(i, self.params, calc_alpha=True) + maxvar, alpha = cvd(i, self.params, self.r_dist, calc_alpha=True) self.assertTrue(maxvar is not None) self.assertTrue(alpha is not None) @@ -196,9 +196,9 @@ def setUpClass(cls): pyrate.orbital.remove_orbital_error(ifgs, params) ifgs = prepare_ifgs_without_phase(dest_paths, params) _, ifgs = rpe.estimate_ref_phase(ifgs, params, refx, refy) - + r_dist = RDist(ifgs[0])() # Calculate interferogram noise - cls.maxvar = [cvd(i, params)[0] for i in ifgs] + cls.maxvar = [cvd(i, params, r_dist)[0] for i in ifgs] cls.vcmt = get_vcmt(ifgs, cls.maxvar) @classmethod From e7521bade1ccbd262c98c6d60d578e474065bace Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Wed, 29 Mar 2017 14:49:32 +1100 Subject: [PATCH 33/68] fix for case when a process gets no tile --- pyrate/aps/__init__.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pyrate/aps/__init__.py b/pyrate/aps/__init__.py index 35012a16e..5d49e8bea 100644 --- a/pyrate/aps/__init__.py +++ b/pyrate/aps/__init__.py @@ -67,6 +67,8 @@ def calc_svd_time_series(ifg_paths, params, preread_ifgs, tiles): process_tiles = mpiops.array_split(tiles) output_dir = params[cf.TMPDIR] + + nvels = None for t in process_tiles: log.info('Calculating time series for tile {}'.format(t.index)) ifg_parts = [shared.IfgPart(p, t, preread_ifgs) for p in ifg_paths] @@ -76,10 +78,12 @@ def calc_svd_time_series(ifg_paths, params, preread_ifgs, tiles): tsincr = time_series(ifg_parts, new_params, vcmt=None, mst=mst_tile)[0] np.save(file=os.path.join(output_dir, 'tsincr_aps_{}.npy'.format( t.index)), arr=tsincr) + nvels = tsincr.shape[2] + nvels = mpiops.comm.bcast(nvels, root=0) # need to assemble tsincr from all processes tsincr_g = mpiops.run_once(_assemble_tsincr, ifg_paths, params, - preread_ifgs, tiles, tsincr.shape[2]) + preread_ifgs, tiles, nvels) log.info('Finished calculating time series for spatio-temporal filter') return tsincr_g From acb164998687e2609925fdde0329ab84e5fc55c1 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Wed, 29 Mar 2017 18:00:25 +1100 Subject: [PATCH 34/68] [aps] ts2ifgs implemented TODO: Test ts2ifgs --- pyrate/aps/__init__.py | 39 +++++++++++++++++++++++++++++++++------ pyrate/ifgconstants.py | 2 ++ pyrate/mst.py | 2 +- pyrate/pyaps.py | 12 ++++++------ tests/test_pyaps.py | 10 +++++----- 5 files changed, 47 insertions(+), 18 deletions(-) diff --git a/pyrate/aps/__init__.py b/pyrate/aps/__init__.py index 5d49e8bea..c1aa5b510 100644 --- a/pyrate/aps/__init__.py +++ b/pyrate/aps/__init__.py @@ -10,6 +10,7 @@ from pyrate.aps.temporal import tlpfilter from pyrate.scripts.postprocessing import assemble_tiles from pyrate.shared import Ifg +from pyrate import ifgconstants as ifc from pyrate.timeseries import time_series log = logging.getLogger(__name__) @@ -28,13 +29,11 @@ def spatio_temporal_filter(ifg_paths, params, tiles, preread_ifgs): ts_lp = tsincr - tsfilt_incr ifg = Ifg(ifg_paths[0]) # just grab any for parameters in slpfilter ifg.open() - - ts_aps = spatial_low_pass_filter(ts_lp, ifg, params) + ts_aps = mpiops.run_once(spatial_low_pass_filter, ts_lp, ifg, params) ifg.close() tsincr -= ts_aps - # need ts2ifgs equivalent here - # save ifgs + mpiops.run_once(ts_to_ifgs, tsincr, preread_ifgs) def calc_svd_time_series(ifg_paths, params, preread_ifgs, tiles): @@ -98,5 +97,33 @@ def _assemble_tsincr(ifg_paths, params, preread_ifgs, tiles, nvelpar): return tsincr_g -def ts_to_ifgs(ts, params): - pass +def ts_to_ifgs(ts, preread_ifgs): + + log.info('Converting time series to ifgs') + from pyrate.algorithm import master_slave_ids, get_all_epochs, get_epochs + + from collections import OrderedDict + + ifgs = list(OrderedDict(sorted(preread_ifgs.items())).values()) + epochlist, n = get_epochs(ifgs) + index_master, index_slave = n[:len(ifgs)], n[len(ifgs):] + for i in range(len(ifgs)): + phase = np.sum(ts[:, :, index_master[i]: index_slave[i]-1], axis=2) + _save_aps_corrected_phase(ifgs[i].path, phase) + + +def _save_aps_corrected_phase(ifg_path, phase): + """ + Convenceince function to update metadata and save latest phase after + orbital fit correction + Parameters + ---------- + ifg: Ifg class instance + """ + + ifg = Ifg(ifg_path) + ifg.open(readonly=False) + # set aps tags after aps error correction + ifg.dataset.SetMetadataItem(ifc.PYRATE_APS_ERROR, ifc.APS_REMOVED) + ifg.write_modified_phase(data=phase) + ifg.close() diff --git a/pyrate/ifgconstants.py b/pyrate/ifgconstants.py index f139c8c18..7d9fab03c 100644 --- a/pyrate/ifgconstants.py +++ b/pyrate/ifgconstants.py @@ -35,6 +35,7 @@ PYRATE_WAVELENGTH_METRES = 'WAVELENGTH_METRES' PYRATE_INCIDENCE_DEGREES = 'INCIDENCE_DEGREES' PYRATE_INSAR_PROCESSOR = 'INSAR_PROCESSOR' +PYRATE_WEATHER_ERROR = 'WEATHER_ERROR' PYRATE_APS_ERROR = 'APS_ERROR' MULTILOOKED = 'MULTILOOKED_IFG' ORIG = 'ORIGINAL_IFG' @@ -49,6 +50,7 @@ LINSAMP = 'LINEAR_RATE_SAMPLES' PYRATE_ORBITAL_ERROR = 'ORBITAL_ERROR' ORB_REMOVED = 'REMOVED' +APS_REMOVED = 'REMOVED' REF_PHASE = 'REFERENCE_PHASE' REF_PHASE_REMOVED = 'REMOVED' NAN_STATUS = 'NAN_STATUS' diff --git a/pyrate/mst.py b/pyrate/mst.py index 34fbf3c50..2ed5b5690 100644 --- a/pyrate/mst.py +++ b/pyrate/mst.py @@ -54,7 +54,7 @@ def mst_from_ifgs(ifgs): ifg_sub = [ifg_date_index_lookup(ifgs, d) for d in edges] mst_ifgs = [i for k, i in enumerate(ifgs) if k in ifg_sub] return mst.edges(), nx.is_tree(mst), \ - nx.number_connected_components(mst), mst_ifgs + nx.number_connected_components(mst), mst_ifgs def mst_parallel(ifgs, params): diff --git a/pyrate/pyaps.py b/pyrate/pyaps.py index c09020ea1..76bc7055b 100644 --- a/pyrate/pyaps.py +++ b/pyrate/pyaps.py @@ -116,9 +116,9 @@ def get_incidence_map(): for i, ifg in enumerate(ifgs): ifg.phase_data -= aps_delay[i] # remove delay # add to ifg.meta_data - ifg.meta_data[ifc.PYRATE_APS_ERROR] = APS_STATUS + ifg.meta_data[ifc.PYRATE_WEATHER_ERROR] = APS_STATUS # write meta_data to file - ifg.dataset.SetMetadataItem(ifc.PYRATE_APS_ERROR, APS_STATUS) + ifg.dataset.SetMetadataItem(ifc.PYRATE_WEATHER_ERROR, APS_STATUS) ifg.write_modified_phase() # ifg.close() # close ifg files, required for gdal dataset to close files @@ -291,9 +291,9 @@ def get_incidence_map(): ifg.phase_data -= aps_delay # remove delay # add it to the meta_data dict - ifg.meta_data[ifc.PYRATE_APS_ERROR] = APS_STATUS + ifg.meta_data[ifc.PYRATE_WEATHER_ERROR] = APS_STATUS # write meta_data to file - ifg.dataset.SetMetadataItem(ifc.PYRATE_APS_ERROR, APS_STATUS) + ifg.dataset.SetMetadataItem(ifc.PYRATE_WEATHER_ERROR, APS_STATUS) ifg.write_modified_phase() @@ -389,7 +389,7 @@ class APSException(Exception): def check_aps_ifgs(ifgs): - flags = [i.dataset.GetMetadataItem(ifc.PYRATE_APS_ERROR) for i in ifgs] + flags = [i.dataset.GetMetadataItem(ifc.PYRATE_WEATHER_ERROR) for i in ifgs] count = sum([f == APS_STATUS for f in flags]) if (count < len(flags)) and (count > 0): log.debug('Detected mix of corrected and uncorrected ' @@ -412,7 +412,7 @@ def aps_delay_required(ifgs, params): return False # perform some general error/sanity checks - flags = [i.dataset.GetMetadataItem(ifc.PYRATE_APS_ERROR) for i in ifgs] + flags = [i.dataset.GetMetadataItem(ifc.PYRATE_WEATHER_ERROR) for i in ifgs] if all(flags): log.info('Skipped APS delay removal, ifgs are already aps corrected') diff --git a/tests/test_pyaps.py b/tests/test_pyaps.py index 086bfe7ef..ef72ba598 100644 --- a/tests/test_pyaps.py +++ b/tests/test_pyaps.py @@ -112,7 +112,7 @@ def test_metadata_was_copied(self): for i in self.ifgs: md = i.meta_data i.close() - self.assertIn(ifc.PYRATE_APS_ERROR, md.keys()) + self.assertIn(ifc.PYRATE_WEATHER_ERROR, md.keys()) self.assertIn(pyaps.APS_STATUS, md.values()) def test_meta_data_was_written(self): @@ -218,7 +218,7 @@ def test_metadata_was_copied(self): for i in self.ifgs: md = i.meta_data i.close() - self.assertIn(ifc.PYRATE_APS_ERROR, md.keys()) + self.assertIn(ifc.PYRATE_WEATHER_ERROR, md.keys()) self.assertIn(pyaps.APS_STATUS, md.values()) def test_meta_data_was_written(self): @@ -436,8 +436,8 @@ def test_metadata_was_copied(self): for j, i in zip(self.ifgs_serial, self.ifgs_mpi): md = i.meta_data md_s = j.meta_data - self.assertIn(ifc.PYRATE_APS_ERROR, md_s.keys()) - self.assertIn(ifc.PYRATE_APS_ERROR, md.keys()) + self.assertIn(ifc.PYRATE_WEATHER_ERROR, md_s.keys()) + self.assertIn(ifc.PYRATE_WEATHER_ERROR, md.keys()) self.assertIn(pyaps.APS_STATUS, md.values()) def test_meta_data_was_written(self): @@ -446,7 +446,7 @@ def test_meta_data_was_written(self): ds = gdal.Open(i.data_path) md_w = ds.GetMetadata() self.assertDictEqual(md, md_w) - self.assertIn(ifc.PYRATE_APS_ERROR, md_w.keys()) + self.assertIn(ifc.PYRATE_WEATHER_ERROR, md_w.keys()) ds = None def test_dem_tifs_present(self): From 5c0e16118adc0f0cc7951665ecf6709cdcb493cd Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Thu, 30 Mar 2017 09:36:09 +1100 Subject: [PATCH 35/68] passes run pyrate tests again --- pyrate/aps/__init__.py | 34 +++++++++++++------ .../small_test/conf/pyrate_gamma_test.conf | 2 +- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/pyrate/aps/__init__.py b/pyrate/aps/__init__.py index c1aa5b510..44fdcb87d 100644 --- a/pyrate/aps/__init__.py +++ b/pyrate/aps/__init__.py @@ -2,8 +2,10 @@ import os from copy import deepcopy +from collections import OrderedDict import numpy as np + from pyrate import config as cf, mpiops, shared from pyrate.algorithm import get_epochs from pyrate.aps.spatial import spatial_low_pass_filter @@ -87,10 +89,10 @@ def calc_svd_time_series(ifg_paths, params, preread_ifgs, tiles): return tsincr_g -def _assemble_tsincr(ifg_paths, params, preread_ifgs, tiles, nvelpar): - shape = preread_ifgs[ifg_paths[0]].shape + (nvelpar,) +def _assemble_tsincr(ifg_paths, params, preread_ifgs, tiles, nvels): + shape = preread_ifgs[ifg_paths[0]].shape + (nvels,) tsincr_g = np.empty(shape=shape, dtype=np.float32) - for i in range(nvelpar): + for i in range(nvels): for n, t in enumerate(tiles): assemble_tiles(i, n, t, tsincr_g[:, :, i], params[cf.TMPDIR], 'tsincr_aps') @@ -98,27 +100,39 @@ def _assemble_tsincr(ifg_paths, params, preread_ifgs, tiles, nvelpar): def ts_to_ifgs(ts, preread_ifgs): - + """ + Function that takes a time series and converts into ifg phase data + Parameters + ---------- + ts: ndarray + time series nd array (ifg.shape, nvels) + preread_ifgs: dict + dict with ifg basic informations + + Saves ifgs on disc after conversion. + """ log.info('Converting time series to ifgs') - from pyrate.algorithm import master_slave_ids, get_all_epochs, get_epochs - - from collections import OrderedDict ifgs = list(OrderedDict(sorted(preread_ifgs.items())).values()) epochlist, n = get_epochs(ifgs) index_master, index_slave = n[:len(ifgs)], n[len(ifgs):] + print(type(ifgs)) for i in range(len(ifgs)): phase = np.sum(ts[:, :, index_master[i]: index_slave[i]-1], axis=2) + print(i, np.sum(np.isnan(phase))) _save_aps_corrected_phase(ifgs[i].path, phase) def _save_aps_corrected_phase(ifg_path, phase): """ - Convenceince function to update metadata and save latest phase after - orbital fit correction + Update metadata and save latest phase after + spatio-temporal filter (aps) correction Parameters ---------- - ifg: Ifg class instance + ifg_path: str + path to ifg + phase: ndarray + ndarray corresponding to ifg phase data of shape ifg.shape """ ifg = Ifg(ifg_path) diff --git a/tests/test_data/small_test/conf/pyrate_gamma_test.conf b/tests/test_data/small_test/conf/pyrate_gamma_test.conf index 8bf84c0a6..b82f7d397 100644 --- a/tests/test_data/small_test/conf/pyrate_gamma_test.conf +++ b/tests/test_data/small_test/conf/pyrate_gamma_test.conf @@ -104,7 +104,7 @@ elevationmap: tests/test_data/small_test/gamma_obs/20060619_utm.lv_theta # spatio-temporal filter #------------------------------------ # apsest: (1: APS estimation; 0: not) -apsest: 1 +apsest: 0 # spatially correlated noise low-pass filter parameters # slpfmethod: filter method (1: butterworth; 2: gaussian) From 1e730606fd0b0f69353345387ec39ddf104b3984 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Thu, 30 Mar 2017 11:14:34 +1100 Subject: [PATCH 36/68] docstrings, refactoring vcm, and other minor changes --- pyrate/aps/__init__.py | 19 +++++++++++++++++-- pyrate/aps/spatial.py | 2 +- pyrate/{vcm.py => covariance.py} | 0 pyrate/scripts/run_pyrate.py | 2 +- tests/{test_vcm.py => test_covariance.py} | 4 ++-- tests/test_linrate.py | 2 +- tests/test_mpi.py | 10 +++++----- tests/test_timeseries.py | 21 +++++++++++---------- 8 files changed, 38 insertions(+), 22 deletions(-) rename pyrate/{vcm.py => covariance.py} (100%) rename tests/{test_vcm.py => test_covariance.py} (98%) diff --git a/pyrate/aps/__init__.py b/pyrate/aps/__init__.py index 44fdcb87d..efef416d3 100644 --- a/pyrate/aps/__init__.py +++ b/pyrate/aps/__init__.py @@ -19,6 +19,23 @@ def spatio_temporal_filter(ifg_paths, params, tiles, preread_ifgs): + """ + Applies spatio-temportal (aps) filter and save the interferograms. + + A first step is to compute the time series using the non-smooth SVD method. + This is followed by temporal and spatial filters respectively. + + Parameters + ---------- + ifg_paths: list + list of ifg paths + params: dict + parameters dict + tiles: list + list of shared.Tile class instances + preread_ifgs: dict + dictionary of {ifgpath:shared.PrereadIfg class instances} + """ if not params[cf.APSEST]: log.info('APS correction not required.') return @@ -116,10 +133,8 @@ def ts_to_ifgs(ts, preread_ifgs): ifgs = list(OrderedDict(sorted(preread_ifgs.items())).values()) epochlist, n = get_epochs(ifgs) index_master, index_slave = n[:len(ifgs)], n[len(ifgs):] - print(type(ifgs)) for i in range(len(ifgs)): phase = np.sum(ts[:, :, index_master[i]: index_slave[i]-1], axis=2) - print(i, np.sum(np.isnan(phase))) _save_aps_corrected_phase(ifgs[i].path, phase) diff --git a/pyrate/aps/spatial.py b/pyrate/aps/spatial.py index 5524bec69..ee6a0f381 100644 --- a/pyrate/aps/spatial.py +++ b/pyrate/aps/spatial.py @@ -2,7 +2,7 @@ import numpy as np from scipy.fftpack import fft2, ifft2, fftshift, ifftshift from pyrate import config as cf -from pyrate.vcm import cvd_from_phase, RDist +from pyrate.covariance import cvd_from_phase, RDist log = logging.getLogger(__name__) diff --git a/pyrate/vcm.py b/pyrate/covariance.py similarity index 100% rename from pyrate/vcm.py rename to pyrate/covariance.py diff --git a/pyrate/scripts/run_pyrate.py b/pyrate/scripts/run_pyrate.py index 65ab459e8..55391ca09 100644 --- a/pyrate/scripts/run_pyrate.py +++ b/pyrate/scripts/run_pyrate.py @@ -36,7 +36,7 @@ from pyrate import refpixel from pyrate import shared from pyrate import timeseries -from pyrate import vcm as vcm_module +from pyrate import covariance as vcm_module from pyrate.aps import spatio_temporal_filter from pyrate.compat import PyAPS_INSTALLED from pyrate.config import ConfigException diff --git a/tests/test_vcm.py b/tests/test_covariance.py similarity index 98% rename from tests/test_vcm.py rename to tests/test_covariance.py index f09161fb3..a7cac8160 100644 --- a/tests/test_vcm.py +++ b/tests/test_covariance.py @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. """ -This Python module contains tests for the vcm.py PyRate module. +This Python module contains tests for the covariance.py PyRate module. """ import os import shutil @@ -29,7 +29,7 @@ from pyrate import ref_phs_est as rpe from pyrate import shared from pyrate.scripts import run_pyrate, run_prepifg -from pyrate.vcm import cvd, get_vcmt, RDist +from pyrate.covariance import cvd, get_vcmt, RDist import pyrate.orbital from tests.common import small5_mock_ifgs, small5_ifgs, TEST_CONF_ROIPAC from tests.common import small_data_setup, prepare_ifgs_without_phase diff --git a/tests/test_linrate.py b/tests/test_linrate.py index feb2588b0..d073d4c41 100644 --- a/tests/test_linrate.py +++ b/tests/test_linrate.py @@ -32,7 +32,7 @@ from pyrate import config as cf from pyrate import ref_phs_est as rpe from pyrate import shared -from pyrate import vcm as vcm_module +from pyrate import covariance as vcm_module from pyrate.linrate import linear_rate from pyrate.scripts import run_pyrate, run_prepifg from tests.common import SML_TEST_DIR, prepare_ifgs_without_phase diff --git a/tests/test_mpi.py b/tests/test_mpi.py index 9c10a1ea1..264b00907 100644 --- a/tests/test_mpi.py +++ b/tests/test_mpi.py @@ -34,13 +34,13 @@ import tests.common from pyrate import ref_phs_est as rpe from pyrate import shared -from pyrate import vcm +from pyrate import covariance from pyrate import refpixel from pyrate.scripts import run_pyrate, run_prepifg, postprocessing from tests.common import small_data_setup, reconstruct_mst, \ reconstruct_linrate, SML_TEST_DEM_HDR_GAMMA from tests import common -from tests.test_vcm import matlab_maxvar +from tests.test_covariance import matlab_maxvar from pyrate import config as cf from pyrate import mpiops from pyrate import algorithm @@ -284,9 +284,9 @@ def test_timeseries_linrate_mpi(mpisync, tempdir, modify_config, ifgs = common.prepare_ifgs_without_phase(dest_paths, params_old) rpe.estimate_ref_phase(ifgs, params_old, refx, refy) ifgs = shared.pre_prepare_ifgs(dest_paths, params_old) - r_dist = vcm.RDist(ifgs[0])() - maxvar_s = [vcm.cvd(i, params_old, r_dist)[0] for i in ifgs] - vcmt_s = vcm.get_vcmt(ifgs, maxvar) + r_dist = covariance.RDist(ifgs[0])() + maxvar_s = [covariance.cvd(i, params_old, r_dist)[0] for i in ifgs] + vcmt_s = covariance.get_vcmt(ifgs, maxvar) tsincr, tscum, _ = tests.common.compute_time_series( ifgs, mst_grid, params, vcmt) rate, error, samples = tests.common.calculate_linear_rate( diff --git a/tests/test_timeseries.py b/tests/test_timeseries.py index c3c13f2ee..a776b67b3 100644 --- a/tests/test_timeseries.py +++ b/tests/test_timeseries.py @@ -33,7 +33,7 @@ from pyrate import mst from pyrate import ref_phs_est as rpe from pyrate import shared -from pyrate import vcm +from pyrate import covariance from pyrate.scripts import run_pyrate, run_prepifg from pyrate.timeseries import time_series @@ -79,9 +79,10 @@ def setUpClass(cls): cls.ifgs = common.small_data_setup() cls.params = default_params() cls.mstmat = mst.mst_boolean_array(cls.ifgs) - r_dist = vcm.RDist(cls.ifgs[0])() - cls.maxvar = [vcm.cvd(i, cls.params, r_dist)[0] for i in cls.ifgs] - cls.vcmt = vcm.get_vcmt(cls.ifgs, cls.maxvar) + r_dist = covariance.RDist(cls.ifgs[0])() + cls.maxvar = [covariance.cvd(i, cls.params, r_dist)[0] + for i in cls.ifgs] + cls.vcmt = covariance.get_vcmt(cls.ifgs, cls.maxvar) # def test_time_series(self): # Sudipta: @@ -156,9 +157,9 @@ def setUpClass(cls): pyrate.orbital.remove_orbital_error(ifgs, params) ifgs = common.prepare_ifgs_without_phase(dest_paths, params) _, ifgs = rpe.estimate_ref_phase(ifgs, params, refx, refy) - r_dist = vcm.RDist(ifgs[0])() - maxvar = [vcm.cvd(i, params, r_dist)[0] for i in ifgs] - vcmt = vcm.get_vcmt(ifgs, maxvar) + r_dist = covariance.RDist(ifgs[0])() + maxvar = [covariance.cvd(i, params, r_dist)[0] for i in ifgs] + vcmt = covariance.get_vcmt(ifgs, maxvar) params[cf.TIME_SERIES_METHOD] = 1 params[cf.PARALLEL] = 0 @@ -268,10 +269,10 @@ def setUpClass(cls): ifgs = common.prepare_ifgs_without_phase(dest_paths, params) _, ifgs = rpe.estimate_ref_phase(ifgs, params, refx, refy) - r_dist = vcm.RDist(ifgs[0])() + r_dist = covariance.RDist(ifgs[0])() # Calculate interferogram noise - maxvar = [vcm.cvd(i, params, r_dist)[0] for i in ifgs] - vcmt = vcm.get_vcmt(ifgs, maxvar) + maxvar = [covariance.cvd(i, params, r_dist)[0] for i in ifgs] + vcmt = covariance.get_vcmt(ifgs, maxvar) params[cf.TIME_SERIES_METHOD] = 2 params[cf.PARALLEL] = 1 From 7be60d58fa3d31596c582599b01c783ebf3adf8a Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Thu, 30 Mar 2017 11:31:29 +1100 Subject: [PATCH 37/68] fixed covariance test --- tests/test_covariance.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/test_covariance.py b/tests/test_covariance.py index a7cac8160..0b87b827d 100644 --- a/tests/test_covariance.py +++ b/tests/test_covariance.py @@ -186,6 +186,8 @@ def setUpClass(cls): cls.temp_out_dir = tempfile.mkdtemp() sys.argv = ['run_prepifg.py', TEST_CONF_ROIPAC] params[cf.OUT_DIR] = cls.temp_out_dir + params[cf.TMPDIR] = os.path.join(cls.temp_out_dir, cf.TMPDIR) + shared.mkdir_p(params[cf.TMPDIR]) params[cf.REF_EST_METHOD] = 2 run_prepifg.main(params) xlks, ylks, crop = cf.transform_params(params) From 79c6988bcdd6d2466dc3e051fa0795c07367db7d Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Thu, 30 Mar 2017 16:13:44 +1100 Subject: [PATCH 38/68] [aps] integration test fails --- pyrate/aps/__init__.py | 41 +++++++++++++++++++++--------------- pyrate/aps/temporal.py | 1 + pyrate/mst.py | 8 +++---- pyrate/scripts/run_pyrate.py | 9 ++++---- tests/test_aps.py | 40 +++++++++++++++++++++++++++++++++-- 5 files changed, 72 insertions(+), 27 deletions(-) diff --git a/pyrate/aps/__init__.py b/pyrate/aps/__init__.py index efef416d3..c7a9b9abe 100644 --- a/pyrate/aps/__init__.py +++ b/pyrate/aps/__init__.py @@ -1,11 +1,9 @@ import logging import os from copy import deepcopy - from collections import OrderedDict import numpy as np - from pyrate import config as cf, mpiops, shared from pyrate.algorithm import get_epochs from pyrate.aps.spatial import spatial_low_pass_filter @@ -18,7 +16,24 @@ log = logging.getLogger(__name__) -def spatio_temporal_filter(ifg_paths, params, tiles, preread_ifgs): +def wrap_spatio_temporal_filter(ifg_paths, params, tiles, preread_ifgs): + """ + Just a wrapper for spatio-tempotal-filter so it can be tested. + See docstring for spatio_temporal_filter. + Required due to matlab and python using different mst implementations + """ + if not params[cf.APSEST]: + log.info('APS correction not required.') + return + tsincr = calc_svd_time_series(ifg_paths, params, preread_ifgs, tiles) + + ifg = Ifg(ifg_paths[0]) # just grab any for parameters in slpfilter + ifg.open() + spatio_temporal_filter(tsincr, ifg, params, preread_ifgs) + ifg.close() + + +def spatio_temporal_filter(tsincr, ifg, params, preread_ifgs): """ Applies spatio-temportal (aps) filter and save the interferograms. @@ -27,7 +42,9 @@ def spatio_temporal_filter(ifg_paths, params, tiles, preread_ifgs): Parameters ---------- - ifg_paths: list + tsincr: ndarray + time series array of size (ifg.shape, nvels) + ifg: shated.Ifg instance list of ifg paths params: dict parameters dict @@ -36,22 +53,11 @@ def spatio_temporal_filter(ifg_paths, params, tiles, preread_ifgs): preread_ifgs: dict dictionary of {ifgpath:shared.PrereadIfg class instances} """ - if not params[cf.APSEST]: - log.info('APS correction not required.') - return - - tsincr = calc_svd_time_series(ifg_paths, params, preread_ifgs, tiles) - epochlist = mpiops.run_once(get_epochs, preread_ifgs)[0] tsfilt_incr = mpiops.run_once(tlpfilter, tsincr, epochlist, params) - ts_lp = tsincr - tsfilt_incr - ifg = Ifg(ifg_paths[0]) # just grab any for parameters in slpfilter - ifg.open() ts_aps = mpiops.run_once(spatial_low_pass_filter, ts_lp, ifg, params) - ifg.close() tsincr -= ts_aps - mpiops.run_once(ts_to_ifgs, tsincr, preread_ifgs) @@ -129,7 +135,6 @@ def ts_to_ifgs(ts, preread_ifgs): Saves ifgs on disc after conversion. """ log.info('Converting time series to ifgs') - ifgs = list(OrderedDict(sorted(preread_ifgs.items())).values()) epochlist, n = get_epochs(ifgs) index_master, index_slave = n[:len(ifgs)], n[len(ifgs):] @@ -152,7 +157,9 @@ def _save_aps_corrected_phase(ifg_path, phase): ifg = Ifg(ifg_path) ifg.open(readonly=False) + ifg.phase_data[~np.isnan(ifg.phase_data)] = \ + phase[~np.isnan(ifg.phase_data)] # set aps tags after aps error correction ifg.dataset.SetMetadataItem(ifc.PYRATE_APS_ERROR, ifc.APS_REMOVED) - ifg.write_modified_phase(data=phase) + ifg.write_modified_phase() ifg.close() diff --git a/pyrate/aps/temporal.py b/pyrate/aps/temporal.py index 6c74600f9..76a2edde1 100644 --- a/pyrate/aps/temporal.py +++ b/pyrate/aps/temporal.py @@ -11,6 +11,7 @@ def tlpfilter(tsincr, epochlist, params): log.info('Applying temporal low pass filter') """temporal low pass filter""" + print(type(tsincr)) nanmat = ~isnan(tsincr) tsfilt_incr = np.empty_like(tsincr, dtype=np.float32) * np.nan intv = np.diff(epochlist.spans) # time interval for the neighboring epoch diff --git a/pyrate/mst.py b/pyrate/mst.py index 2ed5b5690..02a08ac38 100644 --- a/pyrate/mst.py +++ b/pyrate/mst.py @@ -64,7 +64,7 @@ def mst_parallel(ifgs, params): :param params: :return: """ - print('Calculating mst using tiles') + log.info('Calculating mst using tiles') ncpus = params[cf.PROCESSES] no_ifgs = len(ifgs) no_y, no_x = ifgs[0].phase_data.shape @@ -78,8 +78,8 @@ def mst_parallel(ifgs, params): result = empty(shape=(no_ifgs, no_y, no_x), dtype=np.bool) if params[cf.PARALLEL]: - print('Calculating mst using {} tiles in parallel using {} ' \ - 'processes'.format(no_tiles, ncpus)) + log.info('Calculating mst using {} tiles in parallel using {} ' \ + 'processes'.format(no_tiles, ncpus)) t_msts = Parallel(n_jobs=params[cf.PROCESSES], verbose=50)( delayed(mst_multiprocessing)(t, ifg_paths) for t in tiles) @@ -87,7 +87,7 @@ def mst_parallel(ifgs, params): result[:, tile.top_left_y:tile.bottom_right_y, tile.top_left_x: tile.bottom_right_x] = t_msts[k] else: - print('Calculating mst using {} tiles in serial'.format(no_tiles)) + log.info('Calculating mst using {} tiles in serial'.format(no_tiles)) for k, tile in enumerate(tiles): result[:, tile.top_left_y:tile.bottom_right_y, tile.top_left_x: tile.bottom_right_x] = \ diff --git a/pyrate/scripts/run_pyrate.py b/pyrate/scripts/run_pyrate.py index 55391ca09..a1d8f8adb 100644 --- a/pyrate/scripts/run_pyrate.py +++ b/pyrate/scripts/run_pyrate.py @@ -22,7 +22,7 @@ import os import pickle as cp from os.path import join - +from collections import OrderedDict import numpy as np from pyrate import algorithm @@ -37,7 +37,7 @@ from pyrate import shared from pyrate import timeseries from pyrate import covariance as vcm_module -from pyrate.aps import spatio_temporal_filter +from pyrate.aps import wrap_spatio_temporal_filter from pyrate.compat import PyAPS_INSTALLED from pyrate.config import ConfigException from pyrate.shared import Ifg, PrereadIfg, prepare_ifg, save_numpy_phase, \ @@ -118,7 +118,8 @@ def create_ifg_dict(dest_tifs, params, tiles): cp.dump(ifgs_dict, open(preread_ifgs_file, 'wb')) mpiops.comm.barrier() - preread_ifgs = cp.load(open(preread_ifgs_file, 'rb')) + preread_ifgs = OrderedDict(sorted(cp.load(open(preread_ifgs_file, + 'rb')).items())) log.info('finish converting phase_data to numpy ' 'in process {}'.format(mpiops.rank)) return preread_ifgs @@ -456,7 +457,7 @@ def process_ifgs(ifg_paths, params, rows, cols): ref_phase_estimation(ifg_paths, params, refpx, refpy) # spatio-temporal aps filter - spatio_temporal_filter(ifg_paths, params, tiles, preread_ifgs) + wrap_spatio_temporal_filter(ifg_paths, params, tiles, preread_ifgs) maxvar, vcmt = maxvar_vcm_calc(ifg_paths, params, preread_ifgs) diff --git a/tests/test_aps.py b/tests/test_aps.py index 2ed980310..a5b3b7e29 100644 --- a/tests/test_aps.py +++ b/tests/test_aps.py @@ -10,6 +10,7 @@ from pyrate.aps.spatial import _slp_filter, spatial_low_pass_filter from pyrate import config as cf from pyrate.compat import pickle, PY3 +from pyrate.aps import spatio_temporal_filter from tests.common import SML_TEST_DIR, TEST_CONF_GAMMA, small_data_setup # tsincr matrix from matlab using svd timeseries method @@ -122,5 +123,40 @@ def test_slpfilter_auto_cutoff(slpfilter_method=2): np.testing.assert_array_almost_equal(ts_aps, ts_aps_m_auto, decimal=4) -def test_calc_svd_time_series(): - pass \ No newline at end of file +def test_spatio_temporal_filter(): + import tempfile + from pyrate import shared + from os.path import basename, join + from collections import OrderedDict + ifg_out = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', + 'ifg_spatio_temp_out.mat'))['ifg'] + + tsincr = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', + 'tsincr_svd.mat'))['tsincr'] + print(ifg_out.shape) + params[cf.OUT_DIR] = tempfile.mkdtemp() + params[cf.TMPDIR] = shared.mkdir_p(join(params[cf.OUT_DIR], + cf.TMPDIR)) + ifgs = small_data_setup() + _ = [ifgs_pk.pop(k) for k in ['gt', 'epochlist', 'md', 'wkt']] + preread_ifgs = {join(params[cf.OUT_DIR], basename(k)): v + for k, v in ifgs_pk.items()} + preread_ifgs = OrderedDict(sorted(preread_ifgs.items())) + from pyrate.scripts import run_prepifg + run_prepifg.main(params) + for k, v in preread_ifgs.items(): + v.path = join(params[cf.OUT_DIR], basename(k)) + preread_ifgs[k] = v + spatio_temporal_filter(tsincr, ifgs[0], params, preread_ifgs) + for i in ifgs: + i.close() + + from osgeo import gdal + from pyrate import ifgconstants as ifc + for (p, v), i in zip(preread_ifgs.items(), range(ifg_out.shape[2])): + ds = gdal.Open(p) + metadata = ds.GetMetadata() + assert ifc.PYRATE_APS_ERROR in metadata + assert metadata[ifc.PYRATE_APS_ERROR] == ifc.APS_REMOVED + arr = ds.GetRasterBand(1).ReadAsArray() + np.testing.assert_array_almost_equal(arr, ifg_out[:, :, i]) From e4e6d23b3ecdcb224686c41cab84fb9f9072d565 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Thu, 30 Mar 2017 17:07:33 +1100 Subject: [PATCH 39/68] [aps] integration tests pass --- configs/pyrate_gamma.conf | 18 +++++++++--------- pyrate/aps/__init__.py | 4 ++-- pyrate/aps/temporal.py | 1 - tests/test_aps.py | 26 ++++++++++++++++++-------- 4 files changed, 29 insertions(+), 20 deletions(-) diff --git a/configs/pyrate_gamma.conf b/configs/pyrate_gamma.conf index 64b854df8..d70bca841 100644 --- a/configs/pyrate_gamma.conf +++ b/configs/pyrate_gamma.conf @@ -48,9 +48,9 @@ processes: 8 # ifglksx/y: multi-look/subsampling factor in east and north direction respectively # ifgxfirst,ifgyfirst: x,y of top-left corner # ifgxlast,ifgylast: x,y of bottom-right corner -ifgcropopt: 2 -ifglksx: 2 -ifglksy: 2 +ifgcropopt: 1 +ifglksx: 1 +ifglksy: 1 ifgxfirst: 150.92 ifgxlast: 150.94 ifgyfirst: -34.18 @@ -62,8 +62,8 @@ ifgylast: -34.22 # refnx/y: number of search grid points in x/y direction # refchipsize: chip size of the data window at each search grid point # refminfrac: minimum fraction of valid (non-NaN) pixels in the data window -refx: -1 -refy: -1 +refx: 0 +refy: 0 refnx: 5 refny: 5 refchipsize: 5 @@ -76,7 +76,7 @@ refminfrac: 0.8 # orbfitdegrees: Degree of polynomial surface to fit (1 = planar; 2 = quadratic; 3 = part-cubic) # orbfitlksx/y: additional multi-look factor for orbital correction orbfit: 1 -orbfitmethod: 2 +orbfitmethod: 1 orbfitdegrees: 1 orbfitlksx: 1 orbfitlksy: 1 @@ -109,7 +109,7 @@ apsest: 1 # slpfmethod: filter method (1: butterworth; 2: gaussian) # slpfcutoff: cutoff d0 for both butterworth and gaussian filters in the same unit with pixel size # slpforder: order n for butterworth filter (default 1) -slpfmethod: 1 +slpfmethod: 2 slpfcutoff: 0 slpforder: 1 @@ -118,7 +118,7 @@ slpforder: 1 # tlpfpthr: valid pixel threshold; # note: pirate config file terminology is confusing. They actually want a low # pass filter, but somehow uses t'h'pf* instead -tlpfmethod: 1 +tlpfmethod: 3 tlpfcutoff: 0.25 tlpfpthr: 1 @@ -143,7 +143,7 @@ tlpfpthr: 1 # smfactor: smoothing factor for Laplacian smoothing # ts_pthr: valid observations threshold for time series inversion tscal: 1 -tsmethod: 1 +tsmethod: 2 smorder: 2 smfactor: -0.25 ts_pthr: 10 diff --git a/pyrate/aps/__init__.py b/pyrate/aps/__init__.py index c7a9b9abe..fd2a5ac88 100644 --- a/pyrate/aps/__init__.py +++ b/pyrate/aps/__init__.py @@ -58,6 +58,7 @@ def spatio_temporal_filter(tsincr, ifg, params, preread_ifgs): ts_lp = tsincr - tsfilt_incr ts_aps = mpiops.run_once(spatial_low_pass_filter, ts_lp, ifg, params) tsincr -= ts_aps + mpiops.run_once(ts_to_ifgs, tsincr, preread_ifgs) @@ -139,7 +140,7 @@ def ts_to_ifgs(ts, preread_ifgs): epochlist, n = get_epochs(ifgs) index_master, index_slave = n[:len(ifgs)], n[len(ifgs):] for i in range(len(ifgs)): - phase = np.sum(ts[:, :, index_master[i]: index_slave[i]-1], axis=2) + phase = np.sum(ts[:, :, index_master[i]: index_slave[i]], axis=2) _save_aps_corrected_phase(ifgs[i].path, phase) @@ -154,7 +155,6 @@ def _save_aps_corrected_phase(ifg_path, phase): phase: ndarray ndarray corresponding to ifg phase data of shape ifg.shape """ - ifg = Ifg(ifg_path) ifg.open(readonly=False) ifg.phase_data[~np.isnan(ifg.phase_data)] = \ diff --git a/pyrate/aps/temporal.py b/pyrate/aps/temporal.py index 76a2edde1..6c74600f9 100644 --- a/pyrate/aps/temporal.py +++ b/pyrate/aps/temporal.py @@ -11,7 +11,6 @@ def tlpfilter(tsincr, epochlist, params): log.info('Applying temporal low pass filter') """temporal low pass filter""" - print(type(tsincr)) nanmat = ~isnan(tsincr) tsfilt_incr = np.empty_like(tsincr, dtype=np.float32) * np.nan intv = np.diff(epochlist.spans) # time interval for the neighboring epoch diff --git a/tests/test_aps.py b/tests/test_aps.py index a5b3b7e29..d3c2b495c 100644 --- a/tests/test_aps.py +++ b/tests/test_aps.py @@ -128,35 +128,45 @@ def test_spatio_temporal_filter(): from pyrate import shared from os.path import basename, join from collections import OrderedDict + from pyrate.scripts import run_prepifg + from osgeo import gdal + from pyrate import ifgconstants as ifc ifg_out = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', 'ifg_spatio_temp_out.mat'))['ifg'] tsincr = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', 'tsincr_svd.mat'))['tsincr'] - print(ifg_out.shape) + params = cf.get_config_params(os.path.join(TEST_CONF_GAMMA)) params[cf.OUT_DIR] = tempfile.mkdtemp() - params[cf.TMPDIR] = shared.mkdir_p(join(params[cf.OUT_DIR], - cf.TMPDIR)) + params[cf.TMPDIR] = join(params[cf.OUT_DIR], cf.TMPDIR) + shared.mkdir_p(params[cf.TMPDIR]) + params[cf.SLPF_METHOD] = 2 + params[cf.SLPF_CUTOFF] = 0 + params[cf.SLPF_ORDER] = 1 + params[cf.TLPF_METHOD] = 3 + params[cf.TLPF_CUTOFF] = 0.25 + params[cf.TLPF_PTHR] = 5 ifgs = small_data_setup() _ = [ifgs_pk.pop(k) for k in ['gt', 'epochlist', 'md', 'wkt']] preread_ifgs = {join(params[cf.OUT_DIR], basename(k)): v for k, v in ifgs_pk.items()} preread_ifgs = OrderedDict(sorted(preread_ifgs.items())) - from pyrate.scripts import run_prepifg + run_prepifg.main(params) for k, v in preread_ifgs.items(): v.path = join(params[cf.OUT_DIR], basename(k)) preread_ifgs[k] = v - spatio_temporal_filter(tsincr, ifgs[0], params, preread_ifgs) + ifg = ifgs[0] + ifg.x_size = xpsize + ifg.y_size = ypsize + spatio_temporal_filter(tsincr, ifg, params, preread_ifgs) for i in ifgs: i.close() - from osgeo import gdal - from pyrate import ifgconstants as ifc for (p, v), i in zip(preread_ifgs.items(), range(ifg_out.shape[2])): ds = gdal.Open(p) metadata = ds.GetMetadata() assert ifc.PYRATE_APS_ERROR in metadata assert metadata[ifc.PYRATE_APS_ERROR] == ifc.APS_REMOVED arr = ds.GetRasterBand(1).ReadAsArray() - np.testing.assert_array_almost_equal(arr, ifg_out[:, :, i]) + np.testing.assert_array_almost_equal(arr, ifg_out[:, :, i], decimal=3) From af980c61e9c4c758e8fd18bdfe389a140886350b Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Thu, 6 Apr 2017 08:10:21 +1000 Subject: [PATCH 40/68] add pickles for aps test --- .../matlab_aps/ifg_spatio_temp_out.mat | Bin 0 -> 230304 bytes .../small_test/matlab_aps/preread_ifgs_py2.pk | 2490 ++++++++--------- 2 files changed, 1245 insertions(+), 1245 deletions(-) create mode 100644 tests/test_data/small_test/matlab_aps/ifg_spatio_temp_out.mat diff --git a/tests/test_data/small_test/matlab_aps/ifg_spatio_temp_out.mat b/tests/test_data/small_test/matlab_aps/ifg_spatio_temp_out.mat new file mode 100644 index 0000000000000000000000000000000000000000..0d022ade1e03022151abf498105bc0341f02a4c8 GIT binary patch literal 230304 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

fT+Yi`wDx;7-N{pzhRwf3m-c?3rS4D2 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 Uo5yN15C}ef`{)e@l%F5f##bEm^SnRWOMsbozee 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%0AZ~%?If~WY$uFSCP_X+#$i@isADsHE& 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 PFm4i?*D3eYTg<-!W#ZsU literal 0 HcmV?d00001 From f02bc2ac2322925db7b62dafdf9206cbcc77ef7e Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Thu, 23 Mar 2017 14:33:03 +1100 Subject: [PATCH 17/68] [aps, tltfilter] efficiency improved by skipping a lot of if statements --- pyrate/aps.py | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/pyrate/aps.py b/pyrate/aps.py index 2d80a2618..083c66bda 100644 --- a/pyrate/aps.py +++ b/pyrate/aps.py @@ -71,6 +71,32 @@ def tlpfilter(tsincr, epochlist, params): cutoff = params[cf.TLPF_CUTOFF] method = params[cf.TLPF_METHOD] threshold = params[cf.TLPF_PTHR] + if method == 1: # gaussian filter + func = gauss + elif method == 2: + func = triangle + else: + func = mean_filter + + _tlpfilter(cols, cutoff, nanmat, rows, span, threshold, tsfilt_incr, + tsincr, func) + return tsfilt_incr + + +gauss = lambda m, yr, cutoff: np.exp(-(yr / cutoff) ** 2 / 2) + + +def triangle(m, yr, cutoff): + wgt = cutoff - abs(yr) + wgt[wgt < 0] = 0 + return wgt + + +mean_filter = lambda m, yr, cutoff: np.ones(m) + + +def _tlpfilter(cols, cutoff, nanmat, rows, span, threshold, tsfilt_incr, + tsincr, func): for i in range(rows): for j in range(cols): sel = np.nonzero(nanmat[i, j, :])[0] # don't select if nan @@ -78,13 +104,6 @@ def tlpfilter(tsincr, epochlist, params): if m >= threshold: for k in range(m): yr = span[sel] - span[sel[k]] - if method == 1: # gaussian filter - wgt = np.exp(-(yr/cutoff) ** 2/2) - elif method == 2: # triangular filter - wgt = cutoff - abs(yr) - wgt[wgt < 0] = 0 - else: # mean filter - wgt = np.ones(m) + wgt = func(m, yr, cutoff) wgt /= np.sum(wgt) tsfilt_incr[i, j, sel[k]] = np.sum(tsincr[i, j, sel] * wgt) - return tsfilt_incr From a66fbc1d359b80a7772a81dc2609efe0d2478633 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Thu, 23 Mar 2017 14:33:37 +1100 Subject: [PATCH 18/68] [aps, tltfilter] mean filter tested vs matlab --- tests/test_aps.py | 13 +++++++++++++ .../small_test/matlab_aps/ts_hp_m3.mat | Bin 0 -> 162632 bytes 2 files changed, 13 insertions(+) create mode 100644 tests/test_data/small_test/matlab_aps/ts_hp_m3.mat diff --git a/tests/test_aps.py b/tests/test_aps.py index 897be58e5..d9f0ec625 100644 --- a/tests/test_aps.py +++ b/tests/test_aps.py @@ -19,6 +19,8 @@ ts_hp = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', 'ts_hp.mat')) ts_hp_m2 = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', 'ts_hp_m2.mat')) +ts_hp_m3 = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', + 'ts_hp_m3.mat')) @@ -41,3 +43,14 @@ def test_tlpfilter_triangular_method_matlab(): tsfilt_incr_matlab = ts_hp_m2['ts_hp'] np.testing.assert_almost_equal(tsfilt_incr_matlab, tsfilt_incr, decimal=4) + + +def test_tlpfilter_mean_matlab(): + epochlist = get_epochs(ifgs_pk)[0] + params = cf.get_config_params(os.path.join(TEST_CONF_GAMMA)) + params[cf.TLPF_METHOD] = 3 + tsincr = tsincr_svd['tsincr'] + tsfilt_incr = tlpfilter(tsincr, epochlist, params) + tsfilt_incr_matlab = ts_hp_m3['ts_hp'] + np.testing.assert_almost_equal(tsfilt_incr_matlab, + tsfilt_incr, decimal=4) \ No newline at end of file diff --git a/tests/test_data/small_test/matlab_aps/ts_hp_m3.mat b/tests/test_data/small_test/matlab_aps/ts_hp_m3.mat new file mode 100644 index 0000000000000000000000000000000000000000..317d0adf33a3e11a45d1318ef9f6905c935c2e90 GIT binary patch literal 162632 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 literal 0 HcmV?d00001 From 8f5b33bdd86081dcd549ff4c7ed606c7e138f874 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Thu, 23 Mar 2017 14:45:14 +1100 Subject: [PATCH 19/68] [aps, tltfilter] improved tests --- tests/test_aps.py | 34 +++++++++++----------------------- 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/tests/test_aps.py b/tests/test_aps.py index d9f0ec625..3525ee5a1 100644 --- a/tests/test_aps.py +++ b/tests/test_aps.py @@ -1,6 +1,8 @@ import os import scipy.io as sio import numpy as np +import pytest + from pyrate.algorithm import get_epochs from pyrate.aps import tlpfilter from pyrate import config as cf @@ -23,34 +25,20 @@ 'ts_hp_m3.mat')) - -def test_tlpfilter_matlab(): - epochlist = get_epochs(ifgs_pk)[0] - params = cf.get_config_params(os.path.join(TEST_CONF_GAMMA)) - tsincr = tsincr_svd['tsincr'] - tsfilt_incr = tlpfilter(tsincr, epochlist, params) - tsfilt_incr_matlab = ts_hp['ts_hp'] - np.testing.assert_almost_equal(tsfilt_incr_matlab, - tsfilt_incr, decimal=4) +@pytest.fixture(params=[1, 2, 3]) +def tlpfilter_method(request): + return request.param -def test_tlpfilter_triangular_method_matlab(): +def test_tlpfilter_matlab(tlpfilter_method): epochlist = get_epochs(ifgs_pk)[0] params = cf.get_config_params(os.path.join(TEST_CONF_GAMMA)) - params[cf.TLPF_METHOD] = 2 + params[cf.TLPF_METHOD] = tlpfilter_method + ts = ts_hp if tlpfilter_method == 1 \ + else ts_hp_m2 if tlpfilter_method == 2 \ + else ts_hp_m3 tsincr = tsincr_svd['tsincr'] tsfilt_incr = tlpfilter(tsincr, epochlist, params) - tsfilt_incr_matlab = ts_hp_m2['ts_hp'] + tsfilt_incr_matlab = ts['ts_hp'] np.testing.assert_almost_equal(tsfilt_incr_matlab, tsfilt_incr, decimal=4) - - -def test_tlpfilter_mean_matlab(): - epochlist = get_epochs(ifgs_pk)[0] - params = cf.get_config_params(os.path.join(TEST_CONF_GAMMA)) - params[cf.TLPF_METHOD] = 3 - tsincr = tsincr_svd['tsincr'] - tsfilt_incr = tlpfilter(tsincr, epochlist, params) - tsfilt_incr_matlab = ts_hp_m3['ts_hp'] - np.testing.assert_almost_equal(tsfilt_incr_matlab, - tsfilt_incr, decimal=4) \ No newline at end of file From 21ed92b98b5bcd5ce32346c6c17b78144bdb039c Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Fri, 24 Mar 2017 11:25:59 +1100 Subject: [PATCH 20/68] [aps] started writing slpfilter, and refactoring --- pyrate/aps.py | 109 ----------------------------------------- pyrate/aps/__init__.py | 71 +++++++++++++++++++++++++++ pyrate/aps/spatial.py | 13 +++++ pyrate/aps/temporal.py | 56 +++++++++++++++++++++ pyrate/config.py | 4 ++ pyrate/vcm.py | 32 ++++++++++-- tests/test_aps.py | 2 +- 7 files changed, 172 insertions(+), 115 deletions(-) delete mode 100644 pyrate/aps.py create mode 100644 pyrate/aps/__init__.py create mode 100644 pyrate/aps/spatial.py create mode 100644 pyrate/aps/temporal.py diff --git a/pyrate/aps.py b/pyrate/aps.py deleted file mode 100644 index 083c66bda..000000000 --- a/pyrate/aps.py +++ /dev/null @@ -1,109 +0,0 @@ -import os -import logging -from copy import deepcopy -import numpy as np -from numpy import isnan -from pyrate.timeseries import time_series -from pyrate import config as cf -from pyrate import mpiops -from pyrate import shared -from pyrate.algorithm import get_epochs -from pyrate.scripts.postprocessing import assemble_tiles - -log = logging.getLogger(__name__) - - -def spatio_temporal_filter(ifg_paths, params, tiles, preread_ifgs): - log.info('Calculating time series for spatio-temporal filter application') - if not params[cf.APSEST]: - log.info('APS correction not required.') - return - temporal_low_pass_filter(ifg_paths, params, tiles, preread_ifgs) - - -def temporal_low_pass_filter(ifg_paths, params, tiles, preread_ifgs): - log.info('Applying the temporal filter') - # copy params temporarily - new_params = deepcopy(params) - new_params[cf.TIME_SERIES_METHOD] = 2 # use SVD method - - epochlist = mpiops.run_once(get_epochs, preread_ifgs)[0] - process_tiles = mpiops.array_split(tiles) - - output_dir = params[cf.TMPDIR] - for t in process_tiles: - log.info('Calculating time series for tile {}'.format(t.index)) - ifg_parts = [shared.IfgPart(p, t, preread_ifgs) for p in ifg_paths] - mst_tile = np.load(os.path.join(output_dir, - 'mst_mat_{}.npy'.format(t.index))) - # don't save this time_series calc, this is done as part of aps filter - tsincr = time_series(ifg_parts, new_params, vcmt=None, mst=mst_tile)[0] - np.save(file=os.path.join(output_dir, 'tsincr_aps_{}.npy'.format( - t.index)), arr=tsincr) - - # need to assemble tsincr from all processes - tsincr_g = mpiops.run_once(_assemble_tsincr, ifg_paths, params, - preread_ifgs, tiles, tsincr.shape[2]) - tsfilt_incr = mpiops.run_once(tlpfilter, tsincr_g, epochlist, params) - ts_hp = tsincr_g - tsfilt_incr - log.info('Finished applying temporal low pass filter') - return ts_hp - - -def _assemble_tsincr(ifg_paths, params, preread_ifgs, tiles, nvelpar): - shape = preread_ifgs[ifg_paths[0]].shape + (nvelpar,) - tsincr_g = np.empty(shape=shape, dtype=np.float32) - for i in range(nvelpar): - for n, t in enumerate(tiles): - assemble_tiles(i, n, t, tsincr_g[:, :, i], params[cf.TMPDIR], - 'tsincr_aps') - return tsincr_g - - -# TODO: use tiles here and distribute amongst processes -def tlpfilter(tsincr, epochlist, params): - """temporal low pass filter""" - nanmat = ~isnan(tsincr) - tsfilt_incr = np.empty_like(tsincr, dtype=np.float32) * np.nan - intv = np.diff(epochlist.spans) # time interval for the neighboring epoch - span = epochlist.spans[: tsincr.shape[2]] + intv/2 # accumulated time - rows, cols = tsincr.shape[:2] - cutoff = params[cf.TLPF_CUTOFF] - method = params[cf.TLPF_METHOD] - threshold = params[cf.TLPF_PTHR] - if method == 1: # gaussian filter - func = gauss - elif method == 2: - func = triangle - else: - func = mean_filter - - _tlpfilter(cols, cutoff, nanmat, rows, span, threshold, tsfilt_incr, - tsincr, func) - return tsfilt_incr - - -gauss = lambda m, yr, cutoff: np.exp(-(yr / cutoff) ** 2 / 2) - - -def triangle(m, yr, cutoff): - wgt = cutoff - abs(yr) - wgt[wgt < 0] = 0 - return wgt - - -mean_filter = lambda m, yr, cutoff: np.ones(m) - - -def _tlpfilter(cols, cutoff, nanmat, rows, span, threshold, tsfilt_incr, - tsincr, func): - for i in range(rows): - for j in range(cols): - sel = np.nonzero(nanmat[i, j, :])[0] # don't select if nan - m = len(sel) - if m >= threshold: - for k in range(m): - yr = span[sel] - span[sel[k]] - wgt = func(m, yr, cutoff) - wgt /= np.sum(wgt) - tsfilt_incr[i, j, sel[k]] = np.sum(tsincr[i, j, sel] * wgt) diff --git a/pyrate/aps/__init__.py b/pyrate/aps/__init__.py new file mode 100644 index 000000000..04df85c9a --- /dev/null +++ b/pyrate/aps/__init__.py @@ -0,0 +1,71 @@ +import logging +import os +from copy import deepcopy + +import numpy as np + +from pyrate import config as cf, mpiops, shared +from pyrate.algorithm import get_epochs +from pyrate.aps.spatial import slpfilter +from pyrate.aps.temporal import tlpfilter +from pyrate.scripts.postprocessing import assemble_tiles +from pyrate.shared import Ifg +from pyrate.timeseries import time_series + +log = logging.getLogger(__name__) + + +def spatio_temporal_filter(ifg_paths, params, tiles, preread_ifgs): + log.info('Calculating time series for spatio-temporal filter application') + if not params[cf.APSEST]: + log.info('APS correction not required.') + return + + tsincr = calc_svd_time_series(ifg_paths, params, preread_ifgs, tiles) + + epochlist = mpiops.run_once(get_epochs, preread_ifgs)[0] + tsfilt_incr = mpiops.run_once(tlpfilter, tsincr, epochlist, params) + + ts_lp = tsincr - tsfilt_incr + ifg = Ifg(ifg_paths[0]) + ifg.open() + + # ts_aps = slpfilter() + ifg.close() + # return tsincr - ts_aps + + +def calc_svd_time_series(ifg_paths, params, preread_ifgs, tiles): + log.info('Calculating time series without smoothing for ' + 'spatio-temporal filter') + # copy params temporarily + new_params = deepcopy(params) + new_params[cf.TIME_SERIES_METHOD] = 2 # use SVD method + + process_tiles = mpiops.array_split(tiles) + output_dir = params[cf.TMPDIR] + for t in process_tiles: + log.info('Calculating time series for tile {}'.format(t.index)) + ifg_parts = [shared.IfgPart(p, t, preread_ifgs) for p in ifg_paths] + mst_tile = np.load(os.path.join(output_dir, + 'mst_mat_{}.npy'.format(t.index))) + # don't save this time_series calc, this is done as part of aps filter + tsincr = time_series(ifg_parts, new_params, vcmt=None, mst=mst_tile)[0] + np.save(file=os.path.join(output_dir, 'tsincr_aps_{}.npy'.format( + t.index)), arr=tsincr) + + # need to assemble tsincr from all processes + tsincr_g = mpiops.run_once(_assemble_tsincr, ifg_paths, params, + preread_ifgs, tiles, tsincr.shape[2]) + log.info('Finished calculating time series for spatio-temporal filter') + return tsincr_g + + +def _assemble_tsincr(ifg_paths, params, preread_ifgs, tiles, nvelpar): + shape = preread_ifgs[ifg_paths[0]].shape + (nvelpar,) + tsincr_g = np.empty(shape=shape, dtype=np.float32) + for i in range(nvelpar): + for n, t in enumerate(tiles): + assemble_tiles(i, n, t, tsincr_g[:, :, i], params[cf.TMPDIR], + 'tsincr_aps') + return tsincr_g \ No newline at end of file diff --git a/pyrate/aps/spatial.py b/pyrate/aps/spatial.py new file mode 100644 index 000000000..14857e862 --- /dev/null +++ b/pyrate/aps/spatial.py @@ -0,0 +1,13 @@ +import numpy as np +from pyrate import config as cf +from pyrate.vcm import cvd_from_phase + + +def slpfilter(ts_hp, params, shape): + + if np.sum(np.isnan(ts_hp)) == 0: # if there is no nans in the data + return ts_hp + + if params[cf.SLPF_CUTOFF] == 0: + maxvar, alpha = cvd_from_phase(ts_hp, ifg, calc_alpha=True) + diff --git a/pyrate/aps/temporal.py b/pyrate/aps/temporal.py new file mode 100644 index 000000000..835f3a163 --- /dev/null +++ b/pyrate/aps/temporal.py @@ -0,0 +1,56 @@ +import logging +import numpy as np +from numpy import isnan +from pyrate import config as cf + +log = logging.getLogger(__name__) + + +# TODO: use tiles here and distribute amongst processes +def tlpfilter(tsincr, epochlist, params): + """temporal low pass filter""" + nanmat = ~isnan(tsincr) + tsfilt_incr = np.empty_like(tsincr, dtype=np.float32) * np.nan + intv = np.diff(epochlist.spans) # time interval for the neighboring epoch + span = epochlist.spans[: tsincr.shape[2]] + intv/2 # accumulated time + rows, cols = tsincr.shape[:2] + cutoff = params[cf.TLPF_CUTOFF] + method = params[cf.TLPF_METHOD] + threshold = params[cf.TLPF_PTHR] + if method == 1: # gaussian filter + func = gauss + elif method == 2: # triangular filter + func = triangle + else: + func = mean_filter + + _tlpfilter(cols, cutoff, nanmat, rows, span, threshold, tsfilt_incr, + tsincr, func) + log.info('Finished applying temporal low pass filter') + return tsfilt_incr + + +gauss = lambda m, yr, cutoff: np.exp(-(yr / cutoff) ** 2 / 2) + + +def triangle(m, yr, cutoff): + wgt = cutoff - abs(yr) + wgt[wgt < 0] = 0 + return wgt + + +mean_filter = lambda m, yr, cutoff: np.ones(m) + + +def _tlpfilter(cols, cutoff, nanmat, rows, span, threshold, tsfilt_incr, + tsincr, func): + for i in range(rows): + for j in range(cols): + sel = np.nonzero(nanmat[i, j, :])[0] # don't select if nan + m = len(sel) + if m >= threshold: + for k in range(m): + yr = span[sel] - span[sel[k]] + wgt = func(m, yr, cutoff) + wgt /= np.sum(wgt) + tsfilt_incr[i, j, sel[k]] = np.sum(tsincr[i, j, sel] * wgt) diff --git a/pyrate/config.py b/pyrate/config.py index 937dc1b08..a12b1ee68 100644 --- a/pyrate/config.py +++ b/pyrate/config.py @@ -261,6 +261,10 @@ def method_conv(meth): TLPF_CUTOFF: (float, 0.0), TLPF_PTHR: (int, 1), + SLPF_METHOD: (int, 1), + SLPF_CUTOFF: (float, 0.0), + SLPF_ORDER: (int, 1), + TIME_SERIES_CAL: (int, 0), # pixel thresh based on nepochs? not every project may have 20 epochs TIME_SERIES_PTHRESH: (int, 20), diff --git a/pyrate/vcm.py b/pyrate/vcm.py index a25fc0180..d1b1bd77a 100644 --- a/pyrate/vcm.py +++ b/pyrate/vcm.py @@ -20,6 +20,7 @@ the Matlab Pirate package. """ from __future__ import print_function +import logging from numpy import array, where, isnan, real, imag, sqrt, meshgrid from numpy import zeros, vstack, ceil, mean, exp, reshape from numpy.linalg import norm @@ -32,6 +33,9 @@ from pyrate.algorithm import master_slave_ids +log = logging.getLogger(__name__) + + def pendiffexp(alphamod, cvdav): """ Fits an exponential model to data. @@ -48,7 +52,7 @@ def pendiffexp(alphamod, cvdav): # this is not used any more -def unique_points(points): +def unique_points(points): # pragma: no cover """ Returns unique points from a list of coordinates. @@ -85,7 +89,7 @@ def cvd(ifg_path, params, calc_alpha=False): else: phase = ifg.phase_data - maxvar, alpha = _cvd(phase, ifg, calc_alpha) + maxvar, alpha = cvd_from_phase(phase, ifg, calc_alpha) if isinstance(ifg_path, str): ifg.close() @@ -93,7 +97,25 @@ def cvd(ifg_path, params, calc_alpha=False): return maxvar, alpha -def _cvd(phase, ifg, calc_alpha): +def cvd_from_phase(phase, ifg, calc_alpha): + """ + A convenience class reused in many places to compute cvd from phase data + and a ifg class + Parameters + ---------- + phase: ndarray + phase data corresping to the ifg + ifg: shared.Ifg class instance + calc_alpha: bool, optional + whether alpha is required + + Return + ------ + maxvar: float + maxvar + alpha: + alpha + """ # pylint: disable=invalid-name # pylint: disable=too-many-locals @@ -145,9 +167,9 @@ def _cvd(phase, ifg, calc_alpha): # MG: prefers to use all the data # acg = array([e for e in rorig if e <= maxdist]) indices_to_keep = r_dist < maxdist - r_dist = r_dist[indices_to_keep] acg = acg[indices_to_keep] if calc_alpha: + r_dist = r_dist[indices_to_keep] # classify values of r_dist according to bin number rbin = ceil(r_dist / bin_width).astype(int) maxbin = max(rbin) # consistent with Matlab code @@ -164,7 +186,7 @@ def _cvd(phase, ifg, calc_alpha): alphaguess = 2 / (maxbin * bin_width) alpha = fmin(pendiffexp, x0=alphaguess, args=(cvdav,), disp=False, xtol=1e-6, ftol=1e-6) - print("1st guess alpha", alphaguess, 'converged alpha:', alpha) + log.info("1st guess alpha", alphaguess, 'converged alpha:', alpha) # maximum variance usually at the zero lag: max(acg[:len(r_dist)]) return np.max(acg), alpha[0] else: diff --git a/tests/test_aps.py b/tests/test_aps.py index 3525ee5a1..ebc0fc214 100644 --- a/tests/test_aps.py +++ b/tests/test_aps.py @@ -4,7 +4,7 @@ import pytest from pyrate.algorithm import get_epochs -from pyrate.aps import tlpfilter +from pyrate.aps.temporal import tlpfilter from pyrate import config as cf from pyrate.compat import pickle, PY3 from tests.common import SML_TEST_DIR, TEST_CONF_GAMMA From 564316b864575f743c08ce7d6757000fa4f400f7 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Fri, 24 Mar 2017 13:32:24 +1100 Subject: [PATCH 21/68] [aps, slpfilter] more work done on slpfilter --- pyrate/aps/__init__.py | 12 ++++++----- pyrate/aps/spatial.py | 49 ++++++++++++++++++++++++++++++++++++++---- pyrate/aps/temporal.py | 2 ++ pyrate/vcm.py | 3 ++- 4 files changed, 56 insertions(+), 10 deletions(-) diff --git a/pyrate/aps/__init__.py b/pyrate/aps/__init__.py index 04df85c9a..1451d24b6 100644 --- a/pyrate/aps/__init__.py +++ b/pyrate/aps/__init__.py @@ -6,7 +6,7 @@ from pyrate import config as cf, mpiops, shared from pyrate.algorithm import get_epochs -from pyrate.aps.spatial import slpfilter +from pyrate.aps.spatial import spatial_low_pass_filter from pyrate.aps.temporal import tlpfilter from pyrate.scripts.postprocessing import assemble_tiles from pyrate.shared import Ifg @@ -16,7 +16,6 @@ def spatio_temporal_filter(ifg_paths, params, tiles, preread_ifgs): - log.info('Calculating time series for spatio-temporal filter application') if not params[cf.APSEST]: log.info('APS correction not required.') return @@ -27,12 +26,15 @@ def spatio_temporal_filter(ifg_paths, params, tiles, preread_ifgs): tsfilt_incr = mpiops.run_once(tlpfilter, tsincr, epochlist, params) ts_lp = tsincr - tsfilt_incr - ifg = Ifg(ifg_paths[0]) + ifg = Ifg(ifg_paths[0]) # just grab any for parameters in slpfilter ifg.open() - # ts_aps = slpfilter() + ts_aps = spatial_low_pass_filter(ts_lp, ifg, params) ifg.close() - # return tsincr - ts_aps + tsincr -= ts_aps + + # need ts2ifgs equivalent here + # save ifgs def calc_svd_time_series(ifg_paths, params, preread_ifgs, tiles): diff --git a/pyrate/aps/spatial.py b/pyrate/aps/spatial.py index 14857e862..f51b91a13 100644 --- a/pyrate/aps/spatial.py +++ b/pyrate/aps/spatial.py @@ -1,13 +1,54 @@ +import logging import numpy as np +from scipy.fftpack import fft2, ifft2, fftshift, ifftshift from pyrate import config as cf from pyrate.vcm import cvd_from_phase +log = logging.getLogger(__name__) -def slpfilter(ts_hp, params, shape): - if np.sum(np.isnan(ts_hp)) == 0: # if there is no nans in the data - return ts_hp +def spatial_low_pass_filter(ts_hp, ifg, params): + log.info('Applying spatial low pass filter') + for i in range(ts_hp.shape[2]): + ts_hp[:, :, i] = slpfilter(ts_hp[:, :, i], ifg, params) + + log.info('Finished applying spatial low pass filter') + return ts_hp + + +def slpfilter(phase, ifg, params): + if np.sum(np.isnan(ifg)) == 0: # if there are no nans in the data + return ifg if params[cf.SLPF_CUTOFF] == 0: - maxvar, alpha = cvd_from_phase(ts_hp, ifg, calc_alpha=True) + maxvar, alpha = cvd_from_phase(phase, ifg, calc_alpha=True) + + # find the center of the imag + rows, cols = ifg.shape + cx = ifg.x_centre + cy = ifg.y_centre + + # fft for the input image + phase[np.isnan(phase)] = 0 + imf = fftshift(fft2(phase)) + + # calculate distance + distfact = 1000.0 # to convert into km + [xx, yy] = np.meshgrid(range(cols), range(rows)) + xx = (xx - cx) * ifg.x_size + yy = (yy-cy) * ifg.y_size + dist = np.divide(np.sqrt(((xx - ifg.x_centre) * ifg.x_size) ** 2 + + ((yy - ifg.y_centre) * ifg.y_size) ** 2), + distfact) + + cutoff = params[cf.SLPF_CUTOFF] + if params[cf.SLPF_METHOD] == 1: # butterworth low pass filter + H = 1./(1+((dist / cutoff) ** (2*params[cf.SLPF_ORDER]))) + else: # Gaussian lowpass filter + H = np.exp(-(dist ** 2)/(2 * cutoff**2)) + + outf = imf * H + out = np.real(ifft2(ifftshift(outf))) + out[np.isnan(ifg)] = np.nan + return out diff --git a/pyrate/aps/temporal.py b/pyrate/aps/temporal.py index 835f3a163..6c74600f9 100644 --- a/pyrate/aps/temporal.py +++ b/pyrate/aps/temporal.py @@ -8,6 +8,8 @@ # TODO: use tiles here and distribute amongst processes def tlpfilter(tsincr, epochlist, params): + log.info('Applying temporal low pass filter') + """temporal low pass filter""" nanmat = ~isnan(tsincr) tsfilt_incr = np.empty_like(tsincr, dtype=np.float32) * np.nan diff --git a/pyrate/vcm.py b/pyrate/vcm.py index d1b1bd77a..b9093f4e2 100644 --- a/pyrate/vcm.py +++ b/pyrate/vcm.py @@ -186,7 +186,8 @@ def cvd_from_phase(phase, ifg, calc_alpha): alphaguess = 2 / (maxbin * bin_width) alpha = fmin(pendiffexp, x0=alphaguess, args=(cvdav,), disp=False, xtol=1e-6, ftol=1e-6) - log.info("1st guess alpha", alphaguess, 'converged alpha:', alpha) + log.info("1st guess alpha {}, converged " + "alpha: {}".format(alphaguess, alpha)) # maximum variance usually at the zero lag: max(acg[:len(r_dist)]) return np.max(acg), alpha[0] else: From cb0304f8b7d9ecb9f2ecd79e455bfd9c6f039606 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Fri, 24 Mar 2017 13:37:17 +1100 Subject: [PATCH 22/68] [aps, slpfilter] use alpha to determine cutoff --- pyrate/aps/spatial.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pyrate/aps/spatial.py b/pyrate/aps/spatial.py index f51b91a13..9ac42d786 100644 --- a/pyrate/aps/spatial.py +++ b/pyrate/aps/spatial.py @@ -17,11 +17,12 @@ def spatial_low_pass_filter(ts_hp, ifg, params): def slpfilter(phase, ifg, params): - if np.sum(np.isnan(ifg)) == 0: # if there are no nans in the data + if np.sum(np.isnan(phase)) == 0: # if there are no nans in the data return ifg - - if params[cf.SLPF_CUTOFF] == 0: + cutoff = params[cf.SLPF_CUTOFF] + if cutoff == 0: maxvar, alpha = cvd_from_phase(phase, ifg, calc_alpha=True) + cutoff = 1/alpha # find the center of the imag rows, cols = ifg.shape @@ -38,10 +39,9 @@ def slpfilter(phase, ifg, params): xx = (xx - cx) * ifg.x_size yy = (yy-cy) * ifg.y_size dist = np.divide(np.sqrt(((xx - ifg.x_centre) * ifg.x_size) ** 2 + - ((yy - ifg.y_centre) * ifg.y_size) ** 2), + ((yy - ifg.y_centre) * ifg.y_size) ** 2), distfact) - cutoff = params[cf.SLPF_CUTOFF] if params[cf.SLPF_METHOD] == 1: # butterworth low pass filter H = 1./(1+((dist / cutoff) ** (2*params[cf.SLPF_ORDER]))) else: # Gaussian lowpass filter @@ -49,6 +49,6 @@ def slpfilter(phase, ifg, params): outf = imf * H out = np.real(ifft2(ifftshift(outf))) - out[np.isnan(ifg)] = np.nan + out[np.isnan(phase)] = np.nan return out From e5bc001314dfde9f46860829ddd866a7925cce33 Mon Sep 17 00:00:00 2001 From: Sudipta Basak Date: Tue, 28 Mar 2017 15:27:07 +1100 Subject: [PATCH 23/68] [aps, slpfilter] tests for butterworth and gaussian filters --- pyrate/aps/spatial.py | 36 ++++++++--------- tests/test_aps.py | 38 ++++++++++++++++-- .../small_test/conf/pyrate_gamma_test.conf | 2 +- .../small_test/matlab_aps/ts_aps.mat | Bin 0 -> 162632 bytes .../small_test/matlab_aps/ts_aps_m2.mat | Bin 0 -> 162632 bytes 5 files changed, 53 insertions(+), 23 deletions(-) create mode 100644 tests/test_data/small_test/matlab_aps/ts_aps.mat create mode 100644 tests/test_data/small_test/matlab_aps/ts_aps_m2.mat diff --git a/pyrate/aps/spatial.py b/pyrate/aps/spatial.py index 9ac42d786..0c859cc06 100644 --- a/pyrate/aps/spatial.py +++ b/pyrate/aps/spatial.py @@ -17,38 +17,36 @@ def spatial_low_pass_filter(ts_hp, ifg, params): def slpfilter(phase, ifg, params): - if np.sum(np.isnan(phase)) == 0: # if there are no nans in the data - return ifg + if np.all(np.isnan(phase)): # return for nan matrix + return phase cutoff = params[cf.SLPF_CUTOFF] + phase[np.isnan(phase)] = 0 # need it here for cvd calc if cutoff == 0: maxvar, alpha = cvd_from_phase(phase, ifg, calc_alpha=True) - cutoff = 1/alpha - - # find the center of the imag + cutoff = 1.0/alpha rows, cols = ifg.shape - cx = ifg.x_centre - cy = ifg.y_centre + return _slp_filter(phase, cutoff, rows, cols, + ifg.x_size, ifg.y_size, params) + +def _slp_filter(phase, cutoff, rows, cols, x_size, y_size, params): + cx = np.floor(cols/2) + cy = np.floor(rows/2) # fft for the input image phase[np.isnan(phase)] = 0 imf = fftshift(fft2(phase)) - # calculate distance - distfact = 1000.0 # to convert into km + distfact = 1.0e3 # to convert into meters [xx, yy] = np.meshgrid(range(cols), range(rows)) - xx = (xx - cx) * ifg.x_size - yy = (yy-cy) * ifg.y_size - dist = np.divide(np.sqrt(((xx - ifg.x_centre) * ifg.x_size) ** 2 + - ((yy - ifg.y_centre) * ifg.y_size) ** 2), - distfact) + xx = (xx - cx) * x_size + yy = (yy - cy) * y_size + dist = np.sqrt(xx ** 2 + yy ** 2)/distfact if params[cf.SLPF_METHOD] == 1: # butterworth low pass filter - H = 1./(1+((dist / cutoff) ** (2*params[cf.SLPF_ORDER]))) - else: # Gaussian lowpass filter - H = np.exp(-(dist ** 2)/(2 * cutoff**2)) - + H = 1. / (1 + ((dist / cutoff) ** (2 * params[cf.SLPF_ORDER]))) + else: # Gaussian low pass filter + H = np.exp(-(dist ** 2) / (2 * cutoff ** 2)) outf = imf * H out = np.real(ifft2(ifftshift(outf))) out[np.isnan(phase)] = np.nan - return out diff --git a/tests/test_aps.py b/tests/test_aps.py index ebc0fc214..5ba04cf2e 100644 --- a/tests/test_aps.py +++ b/tests/test_aps.py @@ -5,9 +5,10 @@ from pyrate.algorithm import get_epochs from pyrate.aps.temporal import tlpfilter +from pyrate.aps.spatial import _slp_filter from pyrate import config as cf from pyrate.compat import pickle, PY3 -from tests.common import SML_TEST_DIR, TEST_CONF_GAMMA +from tests.common import SML_TEST_DIR, TEST_CONF_GAMMA, small_data_setup # tsincr matrix from matlab using svd timeseries method tsincr_svd = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', @@ -23,6 +24,8 @@ 'ts_hp_m2.mat')) ts_hp_m3 = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', 'ts_hp_m3.mat')) +epochlist = get_epochs(ifgs_pk)[0] +params = cf.get_config_params(os.path.join(TEST_CONF_GAMMA)) @pytest.fixture(params=[1, 2, 3]) @@ -30,9 +33,12 @@ def tlpfilter_method(request): return request.param +@pytest.fixture(params=[1, 2]) +def slpfilter_method(request): + return request.param + + def test_tlpfilter_matlab(tlpfilter_method): - epochlist = get_epochs(ifgs_pk)[0] - params = cf.get_config_params(os.path.join(TEST_CONF_GAMMA)) params[cf.TLPF_METHOD] = tlpfilter_method ts = ts_hp if tlpfilter_method == 1 \ else ts_hp_m2 if tlpfilter_method == 2 \ @@ -42,3 +48,29 @@ def test_tlpfilter_matlab(tlpfilter_method): tsfilt_incr_matlab = ts['ts_hp'] np.testing.assert_almost_equal(tsfilt_incr_matlab, tsfilt_incr, decimal=4) + +tsincr = tsincr_svd['tsincr'] + +params[cf.TLPF_METHOD] = 3 +ts_hp_before_slpfilter = tsincr - tlpfilter(tsincr, epochlist, params) +ts_aps_m1 = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', + 'ts_aps.mat'))['ts_aps'] +ts_aps_m2 = sio.loadmat(os.path.join(SML_TEST_DIR, 'matlab_aps', + 'ts_aps_m2.mat'))['ts_aps'] + + +def test_slpfilter_matlab(slpfilter_method): + params[cf.TLPF_METHOD] = slpfilter_method + ifgs = small_data_setup() + xpsize = 76.834133036409 + ypsize = 92.426722191659 + ts_aps = np.zeros_like(ts_aps_m1) + rows, cols = ifgs[0].shape + for i in range(ts_aps.shape[2]): + ts_aps[:, :, i] = _slp_filter(cutoff=params[cf.SLPF_CUTOFF], + rows=rows, cols=cols, + x_size=xpsize, y_size=ypsize, + params=params, + phase=ts_hp_before_slpfilter[:, :, i]) + + np.testing.assert_array_almost_equal(ts_aps, ts_aps_m1, decimal=4) diff --git a/tests/test_data/small_test/conf/pyrate_gamma_test.conf b/tests/test_data/small_test/conf/pyrate_gamma_test.conf index 768ece1e2..8bf84c0a6 100644 --- a/tests/test_data/small_test/conf/pyrate_gamma_test.conf +++ b/tests/test_data/small_test/conf/pyrate_gamma_test.conf @@ -111,7 +111,7 @@ apsest: 1 # slpfcutoff: cutoff d0 for both butterworth and gaussian filters in the same unit with pixel size # slpforder: order n for butterworth filter (default 1) slpfmethod: 1 -slpfcutoff: 0 +slpfcutoff: 0.25 slpforder: 1 diff --git a/tests/test_data/small_test/matlab_aps/ts_aps.mat b/tests/test_data/small_test/matlab_aps/ts_aps.mat new file mode 100644 index 0000000000000000000000000000000000000000..460b88012dc2e83437d6bf2dca118f985b5b4d28 GIT binary patch literal 162632 zcma%ie=t^E)HWfCq)16bq6i_B+-L7wzmyb7lpYC5L`jGwga}DUNfAm>2}$HWYaJma z4$VwswWzJc003wynt zUOpbWYPLSE0Xz5l`z}?pv|hj2!qiw-ZMnaPYkortKg z{hwz8_Pe4pUD zYLlm-KWEcHnFaJj_fqOh?CHq+O_X{bpp`?%Xu!iXYAJV?uC2RBdE(_%y}62(6;)I7 z12t6s(Os(lw2tbZZ=#8ZJE`ia4ywMghB}61QeIaG)t1{xziR7Ig&YaGc6K4LGF(YM zXAdyl%K!5Gi&ucvjR#;6B8p#<6j9!bhryPI(7_=KttPP8W!8#f{cUJa_yC&=%CWL7 z8;@>2j=#o-U?tsxrUC1bGq=S0K#JMR7NP!w1z2w~A8+Pr;^Q=RJgzkzoz_TV)`mBr z5nc{u>VXixqJsFVg$nfsRH^ovnu-wZk@a1p&$X+j%YHc+GZoiw?74~?_gO#?TF)8~$R!Nx__R4HEUxZ{_k%=R93U|$|KXYI@G2^xl{@C;wAVSG)2 z85GEn<|pPP-_DmzHa|)7{uGh=^v6Ugbd=cdo=y++&7paZmeNC3*7WpJ2YSBMh3Yl> zQSa6$x^qzy^?iSe{>?j2Q@SqE7adn<)`n85s&bziTX9rtXBK_=z@J9GG^ShCC267V z5D9L1L0TLt$hE8chj&o=_bOJA%CLmun9&Ih7us8P*mRKLcu_1rdvvI-T z&~>OKWsW|P>e#Sd0u_%u1>NRc=s33qK1X!0=PO&;PvfPbpDut$1ty?jI1^T{Yh#Bs zwy^zMo9;-@T*EjvG%)3cN+e6$meeF2C6mVrh@43)S!5|r1AG;zrno*`e%zd{ZL^>* zX=|wdc6+L%=}d2Vc+up?2kDZMSi1Io3dJoM)NWxG{UCdW{X=0Oj`$KY<9|q)lOFkMUc_`7Xb3uw&SJWU#u)R)xunmvlCk`&#QxGugmXT6*tt3Z zO=50ix9d}Mix@zs_F?q6_Z}Nwx1ws%UHq};CYnkWVD0$J_~YyqR8PHxV{MtJp_qma zBmv`e!Z2E9Cu(=B!}GFw*tlZ?X2v~(*ImMRx&gMAz1u*0|BL_ z(0n`uhQ@2b&W>`nQuetZ>w_p`F}IY-QfZ{UqMLQ)s-& zY#L>yK_?%bPg@0xsPqqpn$EJOPfobgtS1NQapf2)c_D`Csf5yz{Z3T0nnzEroJmjY z8zNRFkBIc^v!q#INgQvDBmQUe80VYw7~Z=(ysXL`M$1~4n9g58lt;yg#N$I%c6x!3 zRZ#q6cuWDpqtb@Izw!-84_GPff>GYl-1S!kL{kP1G0PVA@PJAxE$30o?+%E~P#9x$?Q6ECF;%9i@s1l#+XJYY&2yE)K!961yxO(F|2u+BEGJysZ z8LtA#S2yAKmvN{%Nd@~i&OzOQ1-R-TEp*lU4&~o3L+lH8FrFt1AKXr|u4)#7o?{Cc zg~|0y*9lc3X1<-MuSh3~&NU?K_?&t>6<3 zmfnYzk4}Q?rw!m4xegXBNrje2FCns269+!+#nz44m{su*_Y4iA?r#}RZv8B7T=6_E zW0@}Z>D7ELBUqh#l&HkXu9(Ud6-aY_N}}8$nJ#n^sldBO&R|j9K@>Z^42wTZ#L7Q; zAbnjN!jyGb-T3cp=5RjjTPB4xL>8WDeO<^hxV2`u;)zzjGS8qxer9)rQ~r| z-}Jbku340EPQ1iej7%W;|E?kaQAwmO{0u3#Y$lg(N>YjU>a;=3g066Lp`9o9(}HaW zX#KN5s$>#Gm8S$y=kZ>&Bha3PmK)O~=ZUmR5=lefHe&cQlJTsoVND+fL*>DG*d`@~ zV?-TiMlZnffmxUo^%-p5--g%ml@JmC9O~+%uwkbmu2&5~hk3aeZeNWN58h%-vlJ(z zrp(ox*5O1J8FTJajX9IYdYp}fCKq>DiF;)t!~ISDg@2#5wb)Fw}3Y!39F ze8z@0`msg2QG)8_jXbM=Vi_~J*9_x0mvGD7NWwh}^7@|?qI&HKdG0ik&OBg16>$^w zmGYtzzTUJ<-;-tu$DR_tG^x^?zC$;9+QgFTx6P&vUtbemygQNj@Qr7P|P8o8(c7*f3Pq{s9W?X!Q0k`_p98UAcR4(I%D0lzJEA$Znt}Q-?wdcd| z^mAJbxj7BfQ!jwXp4Y5|*DjXlZ4D*H51@a~4BRkb4%(~}N1c|3khk|dNQv(QdmCeT zY9|UwA%$$#VKX*EPEQbHeT%36$c3pgy2<>I`;W;~Qzh3&3`lU!VUqClCh#so;$R&FiqIm+x$$pZ&K{i_h*f@V*00))wMQtqC+x>l|qqyU9pz z8)8HMAUMHX^v~Ih7wnJV*3pxw{v{FPMt7p9=6q~X{R=;i4a4$D+ zJe_e5pIZ&#Urz-tU~E38rDo2py}O1>F}30jt+wEvHkxn>raGL(6=lvVZvwX`a zS(Z5{C`m(<+Fds6XdqkW^jT2ga{i9;z(Zc+m^H(5Ju{p zClB-LiOz`$G-;YP)m&&s?cMmae`G1$Hft$8v2i&aTxU(SWj9eXsdd!!gei?*txP{Z zeoCB+G>GzdQRtli9UlI)MY$_U*sXLO-_@6)iRMMD>pFrzo|)tHUDMIPYZ@|!dN`Wl zg1?KBkXDvpx>qL-lJT6zMh(tW&XgNjzKr7?U&kqbSw zzw7~U@#evj9n#>DT`Sy&hgqxHlB{mzSk<*>`*=-`a?H-Q?M&>o(@b_3$E>LM$e0z4 zGO%5f*fHBl#*6c$TC9t-yp^Em;^e4o^HiE_GL>HbBu_(nr_;1O%5=WbEIPGeI^BA5 z3KjcLoGModi08us#@^`&xHhR`&8~3d&A5TC_K$IG>SOfPxP{sO#v}W5E!wVHh;-2+ z{ARlW!;VCw&d~z=tk;U4;4eBjPv?HQ8gVV_EI8So<=l_RHQW>DHJtdT<=md|rQA0M z9j@o?6wWH~3no0NMb-NkadapKf2-PJqmCL{UHJ)Gvx=eiMi_MO_5=x?ePD4o3Id~2 zV4HR(gw_UtfH8s07h*7S<0flgy_L;qt{0g0YnzpM74e)^=P;HNJs73YWCpKZXEKr> zFi|Z%j5BWr3GUP;&%fA^1`e;aY9&t=^CFcFJC?L+k~YtWdgWAmgju*$B02J--LGqD2Y8TKHh zLJmCrxL4m_F4Hs{+{m4(&u@)Rkf`yraKQp;nKVg-!)(kD#) z>-S8f&L8Gm^F$ICLy4a@pE!=V5{rwmq;c{E5;nPlXb)8r|9O?W&Js*d*m@XY#c$otReK+{|N7Y z%f+oOhcJHrX6%=B$J1vM@bafpbh7`9lM>~)*}La(4b!za$D`_;Md562kGd+i(Q^jZ z^m`(g-6O&cIt*i=+6TORv=)0)a!_(sEXFv1VC+W|R27%U#q|oNILR{XB8X6w1?bfOs@b71XD=d z4<*uQp zT{a2oN+%(6V@bvvH{#zgiF8+P;uQowW-X@#LW%Vku)Ii7`M;w$JM{*d{nv(t`vx#a zbpVqGn(*cC0?aE-z?knx(CK;-*3K_PrMf!o+wuY9gmI^6l|1+E%@nR7O`3DH8^>86 z`Gm^5o?&LxJ=jfwc;B;J>A&MosPa(-O6Rhh9 zSWKS=uYKl%#3Ey`S;&B0umfnmHv?UtRyLyki=g47G2>_XjS1LcLX6v-Nb2mpBua3A ztQZ$UMobTo%GN+4cKiUb^9mz_G10{DU^D3q_(o!^Cem(sdFpXPkv?5Cjo$qzOAo;x zB672dgy$onKd%vICYdBmUPJPh3ioGF9BZf?21?%tVa~ri+~XO6X=XXN@h69mesp5% zo!1zY-+@UQ)%f-AC9Ewg4FIi5I6rE_{kiC z_DQS3>75Rgl&Qe|p{cMuUJ34W&Vk0Il2H3HlpVI~;3Y*(Ceqi_iH24anVHl@zSg`T zJvnVeGVLJ|{N_kT>1}d)O)06JbdzXwR}r^qQgn&rY+7M&NP|mxv^vUysyrUy= z>6esg-W5q|^QxZ=H`bHng$2a(r3-2OuE_+u5?C4Z1+rr;G0Y$i|M_zX3(o-_N_vFT z+n%Fe^i#C5t;QYGuA*GZX-q3Pj-K02;I(h3(XXut{Y>i7<9-i{E&hUE8(!mV>js?h z{5r-)onKh@>Y3A(r)2rAi{$J2DMab3D70+ufUzfwkvSQT8(-(3jWl9vc{8q` z{{#hkPf(8B#i`ntu{ZD}`mKz>YIkq^{dpV4mUtlf5r==@T|#MBz{@`M=+MIAga?;U zGdUJpU%8Ps6`868O#J8=S7_gi^c*IzP&w#Oe|hyPSrCDG87%6#+6= zeIV$q6J*6$gH7);c*?ARFth+i;ThgJYlL@MWC2m1TSy)@jHl7MX7tisU%I3)ftD4f zQkBPPRD>L-@1`808!v36dfQCsoSAAge(O}~sxX;$Ptu}u78uc6N<2yvR#4NnWwh&# zA@x`~hi-3>r%_A9={L{UB=W>{($KVwbcZFf#(oXZZn_w`rXY0vl8SWybu8Uci(|*` zW8cO)VXU}|q2)!`ppc9Wx%*Mq#||qj2nM?4jEaxP|iMw##X%Ea+ z-H4B*mm)t)9lPdE!a0XW;Il>-$Qjl{&9z(b`|M>{#+`$~t!a=Wngl-9$KYXQ3|OQc zfwggA@N!=Or=*WQVwYO~4j0xt7KFUPg>;fq+lcFuB*3i(ZNa|pDj+)LW zqRMcC_HMaOV~Q@)i^ZwbATow_UffO9XRf1B#fG%#UsYj#zJ(^XSWw>si>Q0fe40_A zL`~%+X`tj!Vp!5g`b;=dDH};tzrJKL4%@I!c4=@;N(GZfeQ_AmP;~P(lrrPcpLvM= zVRh*J{SKPcm7YV277bdvd;`BnrUIu8F>tw; zsF5Uzl#<6P7YWXbCvuYwiPnuM-X19x$jP_>GovK%Y~E^=TN#D=v6*OQRE&XAb@=pm z6V9xChz)rhmVPcp6V(FTc>D~u1sp|{&=8b)5QxbZyD>Oy1ttY+;K49iG@LAg(qBJ7 zNA**PAazi3unfjDFF_%D8m81GLP$t71ZakXnIIGbmxsg3g)y-7UJ}SSorBrFMR2R3 z7Mf#U!RO7RP_}6p6tDaX^lUme7#CrUdPbZDnnW@^9!+@ zRX|+#9wGSGgNQV)BCXTkFs%m00_jl`NX@ch08~9*GPdsKHI*)GOi!nH- z9(ymf0A4_qz@+EXUmy6G)UO@BQ6Zr1UHk>l5hvlO(xH7LF z#^fKs(90WOaP}OG?mP|>Igvu0V;`(m*a?=Vu8=+A26d@E@NQu^)SWpFW=nHm?eQw` zJkSN<6U6b>kTQmPYvGMuO4v8+9Z1dC4KB8)crDrCMDy7YIpl3hm36$Ra%m!+y!IkZ zf?ITT$32?p_>w;1f2G0PFcq6LKZLz!kB z2hv&^OlmeQBDYhdN!0N?=B-+{pxS5=1od14qhJv{enSVJeAHmw6PjzvpkhY`WNO5K7x9IeZ#RQ4XAR3+EJ3@%3hEv>z>u#Gn7bVX2i^0ab+ZcU zjC(8+fj>FM`9v}4y#YMC#>*Z2QJwch-s-2*@9z{@{W_vr}rJ^GqTC|6Q0KZqtf zDNv=}GE#YQ7cqFGOjseVi1!d$8qiy!r)QR8=XcKVJg`2*NN-k^bI3;Ny^pjUJerro}TlZE-Z$BGpwTdjm| zTL(ezVGaBfdI1>mSlD@b7pxpy50mu>cnzC?>sJ$)98Q7%+YY+p_rv+(lh7Sp0;x@% z&>ty@Ga~1s?*(i8wR$Uh6>h=~K7(=+5?E!k54I-$;1xM#5RZ#OPF-$49ldaxYP`5g zV|G>1%%TU>BU`oym9=Ui6Z>&Hc@`%?eTocU*i0zq_6b(e**gY z?g4sXSb=)}E++bGwvy)bF-DPx_V}!tN$vz=C~XG8XiWU$#JMz zehQ=3T}CmdyEwS{B?fOAL}lGS=%OUTEy?+by=8rv^{oMwXI(?N!zXbhB?$NRufcPL z>iBn^D0(S80{x=}u-q;Yl6`&QJbyhH{$2uU4;O&SfF=Zk7R-6D5bSPS!gSX_5Luon z#G>~gI(rO098<#{yVa;S#T%pF?MIaWA$B;q4PP|Q#MKH;z`PP8Et}sHrPtWP>p%gw0&YKk)AD0x;yN7U)$fZ*Lsh^)OGJ6+ea1K@2$X*B5xt~jmG$u z$C0s5L*DK@6l=YM&u4X@ztwkqx^^7LDob+Lvn4s(J0e`f{_xCVV~GjZ^sKeDqd za4c~aDjNI+t*ejV(#5NAMvw&Yw)-Hgz!rXGn1TOU9f&_M2cGVl4e7pW&^t668a*^1 zu68Gs*yOY3=L%zxIPs_;h)z8ZFSBlH? z_wAg(kJ|8&#!V`rd0Q;0bnp;yuiHjiZ!o-A&*@-u_XK#lb%TANiZG5?V$FkHDD^WE zjZBl!rSuG19nHgf@7t&=j4xU`Z*iHk2&eRUBDZ}0WNxB@EEg~;#=TzIgT*gzpqphF zemHH6>rcvI`t<>*eOL!(cQ3&c;dvcA!%z6%8z4s99P;+*g7Gp<$Pv>7&jKO8-);o_ zwWctPYXr;|c(u+zT(?fmCb%{o2mI>DMAtcau==y~dARz|lrw9+JjFgE*+=erxr@{d``^DFA6 z^GByloVc(MrPXfZ*s2FYeX0|w!zau-CBkWblHxucnZyNTNpS-`-!OA^HO7uh zK)nJJoaodKCobNF*h5#ra$Y*DofQp(kzU|D-WGU?JWyPy52!v5bfvXG-^38Q->-r? zrC|7#l?X;js!$o_#`>>W&$_m>f{nHfhVDCto(gBsvF;oupFN9fNwQG43BuNeJakX{ z4pN^z;Q7@R>^nOFlc4<%vHg)w%4c$<{O&|5)nY?`PfDVJ&9`aM+zwi>;R_vz5aIt2 zlj2XwoW!qbn8Lu+imn)rB97~Od1mqRV9%BU@Kzs(+KGnf-Mvky z;YOjC!3h)<>T$jbH_)&X&?TrD^B=s%x4l2`(ED**#+~t8=|V})a+f%F$#@utXcLAv zoI}SW8&PrlFJRoF!A2_#T74p*Qz`&Fi*|q`yAcXzu7Ioui=jD54;-g!L)J|#aGqiS z2^;yKniUPc&#pk$DH)z(TrTrA-U0^NbdcGdj5@z=p|yJrHvf5mj$(~ydi5TDFu#pI z+|FTdMg$6k>&Yfr1E17<2KT@-V0C>0d{uAZWnFM2nMXxw@cvCSY+o`R-d{+|K3CC) zxsB9*PZ#xceM<|Cx@p3y8tU(Np0Z0^>9-3nN&9k!Xj_b9B^^EC$>e8H-7pJtms+BX zoG)(sehee?&th}@b^IiH7rmdgVfx|^7}Y(7mhuz16|z&gN~5V2x-X|B>ANjlsm>E*Ijv}}7Y zm3KT&S4=%aI~L~9u;=;o{+?XgFP%oe3BstOJfD`@3W!bhUB>P1MA&%h0+{de$fMKdaSzQF>MQQYe~foqjg;EblIaxtGZxUJzToTsNW zmnHa!5)7cs!bE(R$KXiaN3e*#0L6a`z^3H}=vZF@U&AwyGA9wjW<>$dFa#V`{h?W9 zFGy?eg}g_eP zvp6_8gPXl&DtEm?itAfDf+dSzpxq1(RfXT}KXer5EfIQSyoW&E&>D0W9p!0ed64`K zFNw{(xzts2Ep1)wOxxFZQ0qS))Hv6h{;u_;ol7>+j0i27pzcowb^i#M4@W@cLOZCN zOhE$=Bm8W%8Oxi(P`5b+uP0qbmvMk;YELlh;(PSg6Xiw|Wx1_Kl{mk`xtz*LUC#5$ zd@e6Xkt^sP!RuwU80IC!$~#wJti^b=P8x^sTIvW9NlpZ?S6d3i>1@Ku_cQ*k*^Gw98S66 z-3<3Oa0xdmyNLU=Z~^zbdNyZdJ(U|3h;cdfZ}CY<9r~WUh;u9>(eAf7%GG~|;Mw8e zIQ}a8DE$$`Mw}v{CIci=Pk}yan@^qk7g4=+gl-Wb^x7R=TH^PIY3Oe!=Qz$8}hgqT&a+WJ;%$?wD%!KuI*R1`rv$W3S)KvR_z?bgqJfov1oJd>_S^kztoPq ze8P?km9^vMRakLKY8G6^CKE2*V;*5h5I${%%v zA*FOU`@ItK!keLC{YTjNb1I^-89LYPz}`K_@N!TtYLwr>jgCx12G08J1}?|MhFhJoijzIRluH>}z&QxNqfkMS8w{MxomCRX#wjA4LV6E+ZbFQi zmn{rTN3fiAz_Mosn3XXRZQ>q-pZ^}{x7oyM|C1^752%rlyYop(qbjjAYho&;{;irf zLl&wfEkG*90|uQB!I`c|a4tIzT;qK(oh*mRvdd6HX)lK7AIHkEJe(>D=$`l-b8i2K z3n$2MWn(kATUS-Mtv_YC*Y01@;6^o`s62&**S6s)zgZYFvl}cXeufyYamb-Gu6m(_ zrpDTMOiv5>cT`ZnP8=&AkAb(V5=QRgqv<~(XuCca`^jzWyj_Fb?QXQ{5#uzPrgNd~ z3%JnVi@DDUX57l0#hhfKF=vsf&mEA|w$&Bm=s&Df!AjC!B}WKtaxt-KNQ5F`E)gVJv@rt$BSis zCRDQ(j(Mz)({r}#Srgmv`T;AaRLV-MdCp!_*bS@iwn1{dDn?aWVUB@6zTKXPxlArz zJHcY$+ZSj*^dG7eOLN-7Js(ve&JB5YVaq8YM`|01>Olr5ulos9#P7g>#%p+KER9Am z9bMFPvBqXKhMg7eJzI+P*(R7OX(Z%X7h_z84Q5q_;l-QhaJAP}tQagtdzE@DxA};< zMdF;3@f2?RlbPIpI~6YW<1B7$`YcX+x)R6VI+c5VY9gl#yhVk2fb|u0f0m3f$%j$yr85@hm}1X12{e0O2H8)7An2wJ^tg<%GdeD_ zN!#lM37#1OL#3uWhK}b14Q?Wg=?7P)sQDe1gA)1 zkJW6{UZjOMXn>Ba1r9&8#ffWHp|6)QI`%C@F%1(GYhHm0ww{>I#o@7vRFrvk8rP3p zLiM{G8lHZRk;Q}PAjIa&o=)Jn`7+%3Mj3A9h6$YF^l==s=@%vp{lJZn$1vpMIIiXC zIIjP~D4Kovh}LcGcz&Q78>6n`K+-APxH1x-y!{80+ZN%ccVd{YT?S9Tc*3nFX~^oW zXBVf>XGPso7~iToMz!OMFrCU~qK@=2Z-2>>iC1 zTMr~_$l?8+3(;xqTC|VegR0d@=s7x{VzhJ7$2kbHILv4J68bVz% z@KP_@FYd&G@&97WRu)Afu3_P=O!R7t$01u^jMZC?9)(JnWAO?`o}@yD`&{ssJ;sXu zmn8Uhcrhcds!H;nt|j+BM-km4mSnnskm-fXh_jPD`QW#kw1jLRBH2RE;PZUOQG5v- z)u9K!MiRhWr5e=zMgV%0@!J)bKtbO5f+KY-sR`{E~C8+7VlfMVa3F^#8!XXSKpX#Yw) zd)-}#k%JLt9K|~Elh{8i8{OMWFvp_~B`cnwxy))Ye61{xfaw{Dj!s9UWcnJO#aYM1cJd}AQhuzjqP*NWb9~QT;s>YIxj6jm4 zu2@05twPCGBtP{Ap-+=ZdXyrm zE!)nkyn2tVl-dN*VmClk-VVr?D89O0T0Gw{Obn=$C$cpi67twj0!r?_HeAJ#4H#_pFbD7Obu>s)_e4A(V+ywp8N z7j1?5&~7NtdIyqg2S7$w470xpv1`hF6mT1H*2x6)JXL}j`44cd?gL~#14>>mK#kgD zeDpaGtHbQ^_brNULaaObMH4lyPQy|DDCjN*=-#v+EJF)eYZNd$*PbMmL7&JKh1qoU z)l!Cvn8fiQyJe8PGIqHGFZ2t0?|t&;4{M%MRj(e?BW>ws(%cvgmV*R6N!Uq z`>{RW6$dTtQM1er2gB{qd%zmg+buEo+j8_Qvq0Y^d~{!?ix@Bwt7Y0CVJHVOuS9`B z{0Q_ejDn7TB0!@m5R8hVp=#Y(pnEDno$H4e$#c=v#|yi4PGYiD7Ph;e$Na`*+^2aE zeT{7}@ZNmnU7dnk2)g%rBrSY(l*W=os*;mT_neNS z{|FU*X4UFN36kvROQpBzu4>rT>a?@Zd~b&ES2r6 zp{ya$vm36^&`GiM9a%>st2F5DHKNo{AIaE>{iJi@w$} z=PhgWF>*lb!hf(jW(S^zJ=j?mfR;As2lhV!yZ#$+X>|bv&5MKSPSZg*uKTw2wv{A)UoEMKk);EZO{i71 zElv0IpkXGVRDEd-buo^m-Qf{5yD5ZjvyY(GehD-+;0(15xI*pTm(%S1wRFp;W||-I zjJlM)qGH#(Xn=nsbz5FcWfW3rV%uT*dAu7Pox74=(wjrIg#K`kiX3v{-Yg<_^@bp5 zoIUX0Rm1*a5$xVO6ZhB%&+KkXv>)e=T7AK2?;L?6Mt>oU}N(1P~$n$lZs`gCHLL4z6ah#6F3TgStQ)cDEMihFtY+4&Q{){;o6Tul;y*@b&@1*5 zMpPAI_UB?;{}ZtNT@4mpeTW8K%~;#{2t{r_!IHZ#Fv{&S%A0(}?o}OVCR2>K{1iUb zI)-}hgK?{`11`KV8@(sL1rzJ*kav3n_(xx4ZauCf@y>Ge?PoLk{Qe%=d-gmHOs=Mk z-fP;B@QZey{YiK3?xTYT8fkJ@F?BD_q_vW9G@^MAom#nz>df|_=4Q^+?3gv(X3Nm< zV}^9wg?V)L2W4u|H-R?KdPnAUlo4i9B(WDfVX96=u$Sr{vO4k)*w)LX>{|PBHp8}? zeIP0a1x99&Ua|vv7sP?jiStktTMAZR>%pg_8~mq^Lho%^T-G}mga0nWt(VrIs;w9P zaF0YK*I1l;H3lQqlF&~r2TfDT@b%vs9P(-w>R7GV;3m{Zd7rVQUV`&jJ&`+qaRf(# zAL2m5RkXQq7SDDi;Y`CYl%Dwy8a`Nz8T)6T?J^O3_wpoI%vWKh$1fJ18EwRKo*|Wr z2&J0O3n_27i|+Fi;Tt52@eLpSM%AW>P`^Um`gViE=|I(f&TbbpBFjQ+_Ez>>nA}qH~t5 zJ~Nk&i-aSNt~S8sFQtS$`d_dPegnE{1yGPK0oE_7 zn4C*>qmJguZ4ISbSE*=2FV!{_=a&u0@uM>p_?Pxg;?pise#`IA)a-K?)t=o( zSI%ms_gmX2SMiuy&Z?tn3b(0C!zDT`E}3fo45HsG*3hR5rqNi32ZZ%GLX=u`NO{UL z#%5;(7 zkFP@GCFRKYUqR)TOuW7>3C|vhz|y_m=-Fn0euhd&|BQmKP>0D}RSC8AC6E;K9MZcd z;J5YCI80kXM9~C9)Xm5~G@*x{U!wh&yJ%aIIDcj048FodO@8B=xqO99!R4FLVwm=sZANpzxO`l#Dm7(?)9MOMri0ChvLZs*WGPpca;9PTs z9WI*z?L#h5DlE3ue^&>F=YB&=h=Qs}3pVav^uT=QY$0_n_{KoTBCcUQDmCLBVSt6aY&5mNz z6#8h(74r6`ENQr*%}9%fGHwqSk)qw{Ixhv^`RQ94HiHVhfm zy2F%(IPhA{yx8uPzwA7X)et(60F`Si!Fs{~{HmRal8YD&JLiU1R~7mblY2msNz}IgBu={X`jS-HX8k_au0R8{{)mIRlNyt*pGQ*S7t{2}4C-{aoti$Fz|U^h z;1@1i!Y`h0$uHE~z)#+7&$kxX@YT<);>%y)^R-W!^D}Hs_&aO0`Cq%H@~{8;LgV`c zv^D$$)!DwDJ{u=VrOt$r&RvC7wPMr2`RF(>*1E@2xVnOftu7?-w1X&{2{q@Xid1HD z2l?c3f;`eUCandPOz^fdyrP#YSlRyf?6xs;IJD&`lzq4b1!i9%CPxjwny<$E?EzS} z?l>lX&Bftfq31uM3SYmkMsM31l$5JMIb+1KlnP9JaScE9pFwN8LnwW24f^`1p~m8G zLa#v@WQ2-CaMBlE+@ZC^Un+;>N#~Qs*jQ3zqfXHCDw797pga~s^7BQhlb^8Gb#E?} zR)0=sHBaEH{iDI(bKi`wTd|I>SnbS@uJPcH`t0CW-*)DkT5jT-pRndP=`ZI$DKX;9 zl4*QuJ3w>tD=FI|{PQYvTDqW_SneuieDxQCWcFDQsS5&u*ksoDuQ8dJewHZxzD5*n zZ<5BGLXsSkNJ7%rlYrThB%>{!QB3?}-Z0;W6_8$5cGMV3UI?|alO+&;{43~LPDB^k zMJVWZ!L>J{aQBrAv<|$AP3y`r=4>UJpRU9$T6gfok~=tj>K5)_eidJ|WuWKvNUW5x zL7!%2Z2jC0MMJxxlRuMfZPz9u-z!LMv?%SDnnAz(m`V%o_mHpaO3A3!JrZ(IobozM zX!X*ARKKQ}O1>BF6P`Ff&s>>5YGKM(l3dUK{MC)WcE&#bu>XF(qN6WAA2*f1vhoWp6;#o5kpx;$U`8dGT2k=uBBpAJGwk!Y1RCGnp!NL|Uf`h< z0d@hP%250lp+a{gpf+f zP*URC>xklNAeB-{>Pl%sRFd5DhkrfKIp02O@4eRh{@%41ctaD@^^v(d7_bnnV1a(w zIb!@%4kjJ4;rk~6(D!5;WZhW+y3N|)H+mcl-<}2y<5z&{xnp2iQqKE>UxKrX7)`U$ zq}l4$bdu;&`b2sQ^%F+WCyyhkNkKSG+!0LEe0=FWg@5QwRdZ^tI)S#&9EQWecVQ(- zhO$pfAXRga)aA*OI`J-{+7MwcnmejOvn)w}*j*C(pp9fKC?NJ54-oGJXR_8$od~pA z1-}kO32BVLG}NhM`fzbW}BX!kiB& zF@Hx#;=WB07PYJb{ifsKe&+&woO%&f*(E{rv`tXt?*I#yJAsjY2&BZFhLOoa=so`q z>~2fbE7SF;n%{gn5bHxjJ3?t}=|LK#d5Ai;MbW(@yXe~u0rc^UWptUffZkP}NENS& z(SXzcLcUTGM7q0z!EG@ZxZ*<;i$ewJn~n=Eh-;E?i8%6B&_q0Ly(XJ4r;+58jU@et z1u1+cPOQh42%HYg5$I<;w07J*O8DdONnw%eSK$Q-L#DpjhpD9%MIs!f9PGGBk272q~qDMgp)%%g_3{d&XKO^&qSKwpt5BR}Xqq!CZZoU6mC7_GGj{kN z5mXSHfUz%UpmVSbZVe5=`%@3$59xSpDL;lGQpa(k&j~CNCgb3`llX)82{`OOj@oMv zqt@u17_KkCg#FiVDk@>)Q*dKC3@P@oZ?#Hrfuc6e`731h}zfrA;v z@Y)H21KVNvj46CwJVNe#E+LT@_mTLc+li!1EE#gnBEM>H zk?7?Q$nb<5(z|sNQ8m;fa{W&QBC7s^TJvQ#y6P{hoHGvzZAzaBmz`5%$`==~bd4x> zJS~q+R(!~IewD|DJ-S%xH5)4eU9kMsdW<&?!$OZpG)>=!`qTGflEp6cyty5N&+Wjh z7d!Bs;TG(zTZu*U0N*YWN54cV=3Rb+xc^xPfs!|1aK9*ZZqTOPSEkUgacb25`v`na zeF+kW?n6{XBfQ()3EQTOq7pYIQxE$E)IY|D4nN#TYYeth_t8OAII@N2r3BIf+f6j~ zk}tLM^`yx!9H`=A1A2DCC_35cIauqIK>knyWdB|TV}4BmHN&4|Yf>?ZnHf&jU))2I zuJCS6tpc*e`v#f3^(OKBkV16HN;3J3D$%vRDj0AbEhu{KT$Q!iS196MBaEn#WxpCM zS?TtTtheO^iz~X$ULSqOM%JogW{@G4b^}^yE<=>wfMGvFuv>IDMw1Y9_1u8f&sSpU z$7SfZU^&(@PgMG~0L!i!U|>W)GbsyUf#z)j_l0BOpTJ`vKD8NQZ;hsgiqmLa$Sk^3 zVhXjmIGQe!{Rxw5-oq8>fyy2!I{uF~HCP37NYaaj*ay(-qMN9{wKp}BSxQYNxKgcK z4m3R8oT~L0(C!%%X_o1D+IC?C$`>_(=etW_(t8YCI)mVe)I6B4rvgJc&&k`+EV6#= zW>S7Vi9EhpL7KKbBZ}AlBN5UKB+2>|sjXT<{2RnbQPmdShwok)=(b*HS^e5{`w?b3G}2U&Q6A&MANG+nz2gT+EHEn`2%+>geSEE=_+??SJl zH7IW2iE)cuvG=JXPO=i<+Y=LUx7>d$`Cv5D(0f#sr+k@In>s=H#`BP+`3Y*W$5A&= z6FTkKEE-Z^Kns_u(cCf_DtA(f{<$%RYJ2I>$MvSP{W_(xDQmQK}{p!MSY5H;x|e>doW=I2#l{p~bFy@`Yj-UBhiS%77 zB-pc-#J_VULoZ{9ly3AyxXMMXx+mqp1fqsrU9NR5!wuHeax$?HefN=mPp|xgDM6VoAYW zkIuiKK%;N|0CCk;n4x|fOk_)-c3BR5>`el_x6&`T7&O5ZE$lQ1p_PI5|17s z*6yGoM|h09%+DZOT#CuzkUJz@>Ne5pPa`I097%!6F@c=%Q(^jxEi7Sg z7IWKhmAyM&$?!SHzTUXY$`3ta(-hvbFlPxo`dAzLnLEDFi^O5m6R5Q)1Akr1!g1^r z8c$BZZ-mz?Yp&*fXtuaA$plaOOvanTvY39gjG4tX3kT$ViG7GROk5TN3HFts-O>xU z^TyKDCOv95+LU%aF{YCrOrcA&wQ1%OO*&3Pn+`71rC6TESaqDcUzlk}u z*{My1=90AQZ#$H|XYl9lIdBt8g!gg#pnkI->~~oR_M2zIiY`qs)0Bav(cef>XA_xG zbc2|P@%z;6RO0&b1WEBZNkUZ5ljgOIm`uJ#!lTZR@|mlN--irAEFKnW+}g>UOS)M~ zrUri7Yly8TdZ_YA3&&V1($LF)Fi^oyzlHCBHL?stno;(QWFJqQEaub%M!EbqHost;X>%3wK190J=uk}~^8Bz#^K z>Hl?!40>de(Y)u=Jp4GZ_~!%(Xhf?MK5;oV*IVP_ARY8;kjCorZ)`ZRhKU*;V(FR=RW*UY(dO2?+DjKp`v=z9f0U5LmlCB;>!N>ngKoyHk!P;+g5%~(p(cawfXY{xfnIQ$WE-#-QYG$B~w z6>!iw3vOeQVZrSf__KN&NEVLjw|wKV93i^ zXre8P_8MKx$uvI8|Q|Ekff-xKIC)u0YPRcPl2S*m9wLI1T8p#e+2LB;!f zP&ls;c3Y=_4@5!VoVAdqy#R&`XTZf2b+~d|3i8~(61O+aB<_3_u^&@N;y0ZoE6$~p zp4(}}{oHA?za)o*+$|)weYc3`nfqkHl~xkCoFktn9wc2iq6G)r=P>bIjqIqmCffdT z#Xi?PSj+1tqSP+nRo8MneYOq{PkD^884pqSO*MwUDL}g~DHs}h2>T26;6t$>UcVfK zIYArHdA$~jGzi)2!j;T7^s8{_Xpm5A^`ojzk6N1z>w5+15qn7b$|q!gtr~Pj&jSag zU=Rcx2SGy~h<8@Pl3A}|KT6OB3pJWDa}piD(tv*2YDCpk4XF;9NNXpLr=2k>v`}{p zRZRK|I~yC|gLf`$F^Yklqux-fVGV5=IuPJ30~6%F657|ue=|3T(uQ+HwK$bv-!Y<_ zd6XO*h$qJPQb_d8ToRLXgY+JLOe%&4$Ws|P=ou>kTC-|Nw7D*sJ4cocXm+w}6&v)H zjzqD2S(sZ{ir0C0om0a-EUbKl6}MY(%htE}Mdt$!55Gkp^M|TA+0al?3^65jP}%YYg2#@b6Q)d}IATKm-Dc7mG8Xiir8zA>ZbExzO`%+> zHVrzXLhBCqfUlSku9>ESZB`Ie=h%T>(L{K2P7>B0c|#HLiMB0RfE${FkU{zm!sX)IQ#S7mE*Lr{K0mk85WkT{V%GJIx;NPaVfBAq4B zZ59qvZi!GSo(0kBm%wvH6*NwG0%NKM!P;1r246R#aLk+<5i7cBj5RGCHHRv?n$lEm zB8@#Ujt-xZrGCAw;Msf;a<9jL+%*sA8b1{hHp#+D@3*8q@D^E}mO*-|qKW^1>xgrj z3wd_kfeb4f@^aCEO zxQE7qaFe=ZVZ_qFeeGewvjhS_`37@Dd}G-3w?c4VWzVU&~5{8TG~rU$w^YJ z`%38lUJFa^#-M)E4Gb)LgQiFR;^Zwd-1UWHxPz}0x!UcDoVW$AF<+&?g4(8VKLduB7sHju2$Sa2gUi@PSbMJnCY%kB7Cv!6Ni(5diRUIJ1^ zrIEDEGQqFy#r&Sk-w(BNv2D?PRQ3FXZIZt+^x-gWw3OgXsWkU}sw^kmC&O8;mFJva zkLEJ($Z$2P5?r|PAohlR#;)ZrQ4tubcO;|N9RYr++0N1rPOHL>6{Oes5&8C63En!- zhD2pwc&rf%09ml8z64q>aL^>)1dF8FpyI+u7%>y2D#?m;(m7pP@sBz6-t9p5m%35s zEDySa?-grLokR6bY0$N~gHSU24wOJP?Cy*LxgZa?Bb){kqDDgme|NOEC?^xLkC7+y zmXPkrO2j1RilAFZOrY->Qx!WDBuu?|Q8>Z$sBqwWwM}$?5GnZ}0(s|WL*#Y`P@H83 zgHuOAaaAJe@}DBy`spd_TIh-?kttX`x*SzC?_;b*GiKmJ^l*BD>3jaeJfB`(OmmM{&)2M7iBxe`9*idsH^8MAfJ$yx1*^?;lKLs_GjA88ydAc)ch@ zR+)j0wKseyJ`B3&vmr$E8ss~0P<5~g!gl=!=R1Euc9jGjY#K{DE>JL+JPIveeFDmlb8hBQlo%(Igsij zSBO_hG;!QIhj?o>3kHt0+ax=>3bVq#3axtnVMgV*nQ8GL>l5u}&U4S%#M=BJl8sJ~ zmAMiAeDsANSzDl8@}M|9fg~Sjt12+K#tuF*K$mJ>S9AIR-fc?aIg_XOc|!(n-II@X z7b~!FZzF~_bm5{=KTv$<56sc*!vNQ>X!D9^3hF+=74!n$&-O;e?iMEfa8THNuU!yg zUBLGqrJyrm4%`n31Qp#R7&(0zY!_66P6wtgp^2e4_J8or1u5~Tf| z4*#Ay3~)9TrluytgxxXl%hMO4W=(@ZgJ;A(Vk#Lp5+}rpLu|?CPi)-36H(g39v!oN zQU2XNls8GoIRU&^LcIYkA|Bx!o%@&=BFM$|V2MdhaV1fA$xN<;->N$_67lRCFV9Ffo zK6?=jto5SzZ}`&aUu))Gnd}ZQm2*0KjHPk+hBF`G%U@F=X=om!PC+g zboK4wy`&+0uHnD2wI4|OfpU_p7Da|O$dZO}Ayv-nSFv|TrO|Z9F5WX9jkR(FD`x1k zY4u~lbZG_vy9-ru&EPHbF9eI;fC>7!aQENCu)t?A%#l<)ChHNKSA|&Nt)cMLZi0n z(EvLun%3w-yZZg8&$!)Gr{^FQ_c%;%C`8e(&o|Mk*)B9V-;}QTphPbviqN9wVTd^@ zN)ONZ4);bkfN#ZRaC1+Cx|V}rue~1fw>dz@Bokg!J02YMq+m$l3z3_LWZ-oUc~Lk8 zY?YJ2r}rs*E*wqYtl-b)Qf5>y(S$DBtxJQA6=~M)KT!7YIjmSz2Ag6MApN&9xT=37 z_bJ_Yrg$bsQ($PeR(2gl)>lP=VL2l)5iPCu)i9YYj0~ zQ5}2KB+-}yX0^S^`e=t(XpH*&D{%xj>(M5w5v z5|tCzqvFcebmhQe`s1!Y9bUMXUUfS}=TA98)Bia{%R6>coB1m#idoU{5e?peCriKI zm8Rsi0&Pi_p;wRfg4WCzaM-62!fb``)g=oyTE&7{a5w}%2!$`RBA`X}2*d&sNI=Egj1+_4Iq_WNSMO+TFcjrTxbT#OTP9I(gH9KW2J zf~`_&_`_2YZw@?SWh;0cu+kL4NVp}5xRFWHf4(GlbtPf<&B-vKZv{wAJO=I^S3r64 zLwIl72d;bN=$_jX>6Hg_Xr$X>D(||HTD}RVCuSX_?*0d9zTAGgENcs`t8}Ne=9YAx zk~S?%P^5OhM$=y9G1POCJl*6ZMMFl5(yfX=p>R$oq!rb|*zk)Gb0r@noeE+2Y$enO zK8IYL5r{34r7P?v(3$a5scSf;F~>aU!$dFIGuM@>*8z2TZbDNO#?go`gW&p417w^y z3uRSdd~Fhdkd21VM+$k?^+`d27iD%!9L3GJ(Ppc$b)6sLsIxS)fS_U@-xxS1xc=AU8Mnwom* zQS0Kd^x`cEI_B&sdM8qvM$G2>L-jIraFQbZ7OF@;^EIS5^f!dQ?|}2Op2L%o7qGhW z8)!Dk^5;rrD!o{ZN)+i*H<1~%xyG8le&;}aV;rbNoCQ6rG?9AUlcO6HdcmUZUobdw z4#daDfTdt1bcI^L{u5*2z4QYDo2`gq#9Co=%ONJ0`G7S%d(E_t*RjX``K)ek9QzoU z%zT!eW>qT=u$$73EKkLNz1*(NOm4guia00>G0s7V{f>h23uE{><7xu8W66`xMdZSW zBtL0zfD->`klmZZvvU}yx1tai$&Ny1YO`{UYjE;-^UR;@0yi=r>rE1jbE??_ojVR4A;?E6}>5S7#)ZTLha$mHAcyTRU zKXU;tEQ|%OMXNwIn!?VEsgPqM5ArEB6xl19Lik78e&VB(CIE4mb<|!`!m@6 zCGo7kJ)OZ&E}J?loz*ABGR34owsxi$TOaGpw(2XhTptxC;_|5~*{;u~=yI_jcC!R= z4V_2U8eSx_Zll1@#R{(U27>TOBJA_I1cPO~?oF>7rgciw;Q}4HWz1|U$X`UO-#OFT zw+pD2jTJo+Jdwux%g{~zzra}Z2dw@hLZ2J+`=5sh)te$lO`gioMg_2*CG4c=wCkdD#pN%+Nk4(D z{|cezc0O1P9|4cQK0M!PHh6bT1i=xW%^356Y~7haJjYxVB$l=cA&gWG4k91Jl88_6kV5eE_7+r^B?5H$Xr-KuSW4 z`dt`HgSvERkNY$l@@^`9*r!QX4an2JL`k~3Via|MC`0SIN73?EBD7`F2v`J2P+hUn z^m*!NsyrY=XPy?LD;^F&#*YtR-q;Q%Jd>yWN()4;dJ04^~ib$*x7AY(i%6Xp_>emDdyEnhDa+I7S$O|$j*?V$H+x7RP$#pz<&9j3U z(P1EL%Y|vDYe6~nKiFX@K|8F~=;2-+sxwE2p5xDv$J57BM^2G81&^hd9Y)iwmnEtG zJaHPdY!pB5k*5*Sqv?XJ($qt25NtNT0*}al!RA911kJbx-L6GYXi@}Ye_aB>@Ofw& zp9`B7pMfm?+_8WDNwCY0hq&PwurCgSk4DQNrcn>-R=1L^&-{t~&C7ylYf)j%VHsxk zd=K+}d7Evx)x(0X4zVw8-`Lfuy{uYH6!-Q>;r&(e7>P=F^^O`2PaKb~f0eMMdo;F% z@%6iPkTouO&+L9)V&2!nm|1}p%i6q{9ld&(?e9uwb9n#B`PaTo@-MD3FIk*Bd`*TQ=%U1%MhPnJcP3&i6L zSmM%5cC@aEXQlNrvRnkOmrLN`_3}94q=qTCrl5X>75dO6SSB5W0>gtiDj*(Pt&idQ zu)~-bvm4FzR^pDt*{FY=;-+^q@XWqx*fQ1#mkm!vm-M-q;I$A%|C^6$j}1`qTQA>Z zJiySvUMT0svq^O#$;VMI35zv?*eSa}HsTV*eC6vyY%f^8`3vPQ#i(ewINen*O7EZj z1OET~g!`v{fUDX7yb$SyQ0_Bm&+dYk|Gox2kH=u+AOum5EWSq>0q(^VN@Y~w@gz~O z5&TC!8r&wLJ9BtO@F~(zmPJfP&XZ}Pm83dwh^YLS1s>tSDj@KSc-Hc&gn=#sdCx4%h#2b7jK*zX5oNbbdYwS123l*c)#iaEPGxJO4`?8=F78SvGNEct9ZiTB_-(A zxIvsI9wkopYly;+$wZ-TG;uezB<*`cNz~v`(#-K3-OC3_+{#x(X^|py1!}^MAXQLI zm4FLZ>WQ7NFM0gbPhb$WTe$z$C>9zXz+|6YWyf)leXiES35w3>vwbsGE{{grh6J9= zn2vG>a&eVr4&Qe?jd2l)DDwL-9`%jDt49uC9Pe2z_>_)!&K2OYg*UNp>K%-n`T*OO zH=|s~T}+a=h<|p6egsQ4CZ7%Pu*Z>&(EcP$E3 zBXR4=gP4KXvo;I0?be!v{Dw9Q-*o3R2sppmmiD zSZ(AzfP7Eb+VmR{_STXo=}9D}%9OZ>Jr^vgt`>M5X|h@QpjB8ie*?2f;8^`{F?{*M z7zB zE<370mq=((+dbpx*cI|Lf7=lFYCnPZzE>cwBmr9Q?1pIRRq*BTESNeZ1s$IoNx4lu zv2M&F@Agb1*)2tt{Yw_HZpUW~3nt@xg)O+}>?y2S!snq(XQ}BZ0c=T^ILW`C5yv|@bTI;XGKgF~8T!0^J zc(EH>z2=4BS#%kBStJF64yItiE#@^AL6BW@5VQ{`!W)(ia`D%p%VrPMWyFD9*co{I zqZpQ5u7vLWRbX?G!TD+-I2kf1*S*gBtj>W@cmm904?-vZKQ>L}dpNGk;7^$j>@1Lj z`hHc&9WxnrPcejWFBym|Y9O*Bv7~c;j3C4%g015Hlj4dl7;S}{&GuOFkgcc70$BkGpkKvq<(}==!kF8kw$p?p< zmhw7-#aJHVf_`%yQ2MkbUQ*{XR0cKiy4YxxT`G+Q?Pho(aT_L!ree#;S+u{Gj7EJs zc(0xbnq9cdChQ%>lFbeX8t<*-bGeF1nHisxb9)S!EH?&^2@cRFxd!&userhZAy`=u zD3EZ2qJ^GdzQ_->HMhf;i~~>>dIVmE#zTel5s;0H2DSc!P;=@8%%7ADAr)Z|RXiWI z{4j$pi!DL!!Xo%3?FK_S3n7`a0+H>y;9dQfyq$iOsMb!n_2gzeTcoalrY*~H#_Bj! z_)v%iu}v86-HX@ui*rJ2Np5(e2)97@8)k~W#E2<(aY+6e7GgfmN;!kCW}Uza?jXLr z7K}x4EAhO9BbIHjK+}nnu>7JTw#AP^$Nl}R+2|P?tp1M;JXA%$Ko7L|lz;b0BY$73_HF4ANV8zY+hQ+h5y4=(DNtb=E{!Z#D`7tMf@`vxcDV>S?B4I|Ut9 z?L?RVa&gAvdJKKljbfX{Igvsc?rVhrlUkg^OaJU5ui@fb zIXL8yfEAavqf_$&^!3)oz{5OS^xX}XaOxCWxhRSylm@cjT_>2m***58UInWnT`@vE z2Gip+vAi@DyMAs)e+x_eYR_jrc`IV6(jVq`wTY?TTE`0V{Dc*I&k53RI1;o>C1tA; ziDI{qh}eH7S-a&Ra-J?U-{td(X4t`>0A~>YkALQ2XULi928Ah0Kzw8sn3*qw`$uiS zuW>T$OjC!JH{&7xuq?P(sX|uFM2Olx7JmH_0cie2uD+Lr{PwY+A@hMmujh5Q>wXH0 zl>1oxt+lwn=NvAHeuSRa2C(dh3^&75nd|$g!ad%hz_qtaa*A*MVnl2|CXfG&_YZYp z-rhE>t*A$D<;!@YKNe@4amBaNs#p|W!HC8qFme;<%PxZz znr2|}Kmkfl_LDo)+eqTJM&giig=F*=k??(`Bq;78(TL9?1DR)umH&N`$Fm2j>2p$% zKyRL|lxy+zvf%N2oRzFr>zrolxSA zTvOnxD&;skaVajwWf1-O`Ha}eXC zud-ty2?yGP)wGIq!OD2E+p`Z4e3mqNo;f`lh_GL#AcQ(d2x^u z#gtfL=6sOYy0r+BEv7PC6>;2@zYiN0*5Msxajt_?=iD<)IP1?=+@`IR+tChOX`nTi z)nv}a4o&0do5ozje0@&-yABr|uf%l*eM0syAG^*iK!Z&;n9aB0stNszNO1ct;_msD zv~@lv+p(`6&}xY) ze?R+={qj7=+{XYb5T7kG`KH%9x`moz&MY=mVY={ zaOW1-?<$6F(;S$*DG`+V!$4xO6U;DB2cL1>BLCbgz7BBWadZ z^`!1&70$Y89dTo_Alk6iM#Jcm&@<=)<6MnV_U>_PyZ0Q|E?3|_1{-qm^R2nwpaooQ z!eTD#(=smSmM8c5(h^Q;{~~T=tUc%S#+ut1ZN>$2+FX=)FB*Afpj{`=%n6famFpvk zrk5noF|Y;`x*8luuLHN0JPVzu!y>!e#Ol2U*OIXA51I%y!1wL=7NwD_XQNjy*;q{k!FyT-nXh>#4)0rY@ z3S&@t>OMr~H$jf>177b{3yIq*p=d!d4BBMEgTseFw`esSPcwtu%~D{ZT0v@KmXd<+ zM+NTR4+>*j)mXtd1J-G2#6sFlS!}B>t82KydOxe8NZ2MU99w|Bf!!!2qskfk^Laaq z9XR`753cd#8g9$$O`LL9Ag7P61KFi*UB&3YZLML8ezE)GV+C7jp&3|0X1fS8D|IGo09|_37-| zq5}5mIGye!qIK~Bsr@k(T8{+4 zm)2yk9k>Wb`)Ktx%-Y0*bBtz3H_OK%)S1Z=Zl)uoZ+dbD`|* zCBh0$9LnMh(X^LxfvZCo8ow&`FkbJbCN)e7_;pNd&LQ$#&Mg1fYJ zGPhUCnmg$1!WG>0<{C>jb9i7E_jUO`E_l{nu6lC_r{}kh%awNLtnXQHI``zb&V6Or z+hc|=K6?nY@_v)^DuFPQpYQ7?38AXv9z=hshn=2RAzYXUS5tgI#Bn;P74t0l);!Xt z`azI>;80cW!5U$`%UJf~rU}a~B1~_OD@*O)%98fQGYk2BOkF*YNy>Hz$pnG;D`jJlksWKj(Rt z7N2jiS%wqS*W>088;%Qc=e{mj$LY-2&Z&zGW;+-rj+Tb%5Dkqpbos)d|59c}FpS!^?>+-7d&La%P&+|F#^)aY_<_4YYj^UG0OwBuRy=J%S4`RmDw+b$5llD|jZ z6M{!mHH6n)gZtOgz*g56{7uwgr%xg2``a$)joKo-@O_W4v~Z5lX{Ca2_|vs2wO0A6 zj+0V0DeQ~QRpa#n-H{stFqI)rC+*0HW-RekzC}z5|BxqX|G?YR;ZPBf2HKg$Ad=7b zAgUT5IiLx;wm*W$IgcRxS2Nh_w1BnUE2z8N4za6R!DOT!L|RKgqca|UEjI%`$cof{ z>tH%@u_!Y84SHm#aG!VSaSzT+;r+zK0(ZY_aw~YheQK zZ{0Gy3o17hfYKKRZ=-~un^VHqhZHcn@DB`a>?Ycqb;-xh+d{QzM_JgZDE8~}B9^|8 zuPfQj!a9#IVb9>Xs`P33HU_&72*k}l2*hp8$f5;%Nk;7zqTt<4cD87OoyP{~RX)b& zd=-FlPc>+~Z-j&ETcFzUIjFvT0v*>HA$R6|Xv+E*;93JnFKqy$G1YLz?FwAaIsu`F zRzb4lFQWf*Rn__XI`~v757oZ^!T6I#+??eCE=7JWcjt)-cjAf;*V8(lyJ@S%=?kZF zYm+J0e9Dt^@n6T)_HN`N3;ehSxuu-bkONokWyJ-CnsOH2lej0VHMu2&<2i#ZBiMd7 z2kUPBX1bO=g0?s%hjv1}Qh{5H`ECv%jVC z7(0EK<*5pp)}&aLfi|ok`ZFo9^8}Oaasc*ICAb&1*^~OvtY|l(? z(!gBK>fQqGZOk&xYl9D0zS);x`J!I<+sIF2iSGK$-qI*400e#dr; zpJ+3u8Os`v;~9P?lgB<+9nE?`sLmo-{UZjnElxoCxj4|f7tQaZ>)=W71n{9d$$`YRB~h8K4CpZrl+Nve!qsOW;>!(a%&Q02NB1DorxyAZyf-g_T0Y0<_*i9VczKl+)!GTl&GXsr{JCh=eiD6SpP~G{FnU(QPfp2rhvzpozzAqiuN zqhJvcibNAP%M(QRa1P0`eodN-m0?E>h13u0;L7Kt(7q}Y8U_o%eMvEFjky4_s_D?b z>j1o+-~pl{GvHg>82EAL2Z=awl{g3e6`0(d%(0rr|aa&b4RpRtmShuDTmHNt$cRDqevE^<1tjyM`ff!()B z;Nqjov-Bn4bAKJtm>W)p%u59gX(hs*ND1bi^Fi2|J5Z&2_PxOKtUrl}Jw~#=mk^E3 zPssT_%|u%A9Vz@P4iXkJz{T|vQ>7;7 zwMm8>2>XIs=jyRCRlh;5-+9P=DE~C%-1GcsPk8x_)n=NJ~jQs zJ6s8({q^~o8J}l+Z8{`B9VXe|Dv8O#ZDi<+5s5ggMg~@Bl4Rt23Yuxea>;k{<(4J{ z9x;U$2}iifJb6yta%jD@6hspjL;q$1ZLV4{yj=t)XLgem5fMl)8xQ5PG~n2YiQu8H z&1>6K!8?i9Xg+<*dtEP*l-p}aU_^~zC_qaXVrtDY4K6afZzA}1j}@M`+lQC-Cjyf6kvDWrjOTQ)RlWkf{i2@)@1%&H1Bv`&HJ^cYZ@;SI0+E#TsM z71+AvGm#CtNeYdUNd9R=3>QA*w3Y7&%eHwi*}wlXkKQaok~8=-T-qmeXXi}pC^47s zr(cM720CDY-x_>p)ghiukcyX@{WFafAFrs z<=-oDXGamvR!qbOcoUYpBEZA3)3ErDiC8B<4v($BfoejRqiX$hCV%T*;c3ZS?%QTX za&6~kGIiYA-*Fi&zo~R&^myh#WyH&Tt2=)eFOyGzg@NQ}}F1fK2yRAyX-CIv%+uHx|-s^SPX3{GhHT(f@Z+VON&Thpqb&v5my~kLd z_snQ7>cHmLU*e2iE%@5~8XT=ugtdHPu(Q=F%s882m&!@J7hn|aU6O$kEjec2u}NIB z%X{w7(b**Vs6W|hdX@zDye9viRD+J4i^0+C07Tu%gh2BWxb~F;Yt6?{@aF^Hw=PQ; z-ZrE^0~ga6Z6CT*Z8H_Sy`ARwZl}p|8~OEU6@7Ym2|c`U0c~tiqkCU|g-=W^NH55T z5jGOK&6Y#2hymE=NF7$9R7s2>g?H6b+(Mlhv5n>n}DDx@~ppLE?kL7t;$BqvH0l8hXoZ0CNUq9-6@q!{d?s=(0cF68qw zDh>5vIIldBHaeTq#A8dT4C6x!Zw1hzsBJXq=4Kjj!kf0uSxhw~E$JIm9XeT7j3#g4 z^_;>BP;~7G#I~;n(f7t6@>d3)|7j;fJooFqdki`4XiNH7S)$%j&F%5r!mV8VL->4! zlu-Lbq+q9|1EW<|$Molzq2&Xo(66DHII{RCj+|A2lQuoa&$kZY$^daT@URm5@%T(u zd80X-Zn}UK`)$T{@L7EQU)!qXR#?adiP_hTdRDpG_oeLFDUyAR3^X2R#ji(v0a zK%eMrCX*Xl2h7 zs`z^xl~r$r-m$A-yEGNrY6GC-Cb1LbXvGA z_12w5e?FF>qYdvs(SpEQkv!m?(ZJ1c0-ZlIph@pH--}Giqn;$9m$Q(_x;1hV5*@-S zX)R{x@gwHg69wcnHH&8+yskbYdyW%7GKCbjE+Os;k2npJH_VhTZ;?-#FP16D$L@z) z@Y$c^S^c1CY^#bf8~MP3J^kF0U7TUYPJ3+1>Si0Ug;Kn)R$r67Tt0>US5A}7T&u=T zZ=b+Q@^h_~L*4ijFWJudd>k)MTZkhUUO_{n&*!Kv@2kM7CXf6ss3B{9{U*Juw4wgH zJs6z|fD1bD@ZZXOkUDe?QU>cG&aVfWFaLq_3NloJ;k#VgG-!kPENZAbpT>qd(&1Yk zv^T?_ir(HtMb59Ghkw}7u|@iHi=i}4$$SHI11Z!i6~aGdanK&M7KBgd!I+x@Bm}pU z44Yiymo}G#OfcbmCY@&-_t~R0E3(k&)GJ8V>oMB<;}H_Mo`wGUsF1d~KggOndLWiC z2ZE1GhD)LKWaPsj7g4hojTp+~8(x7}!S^KoyYW1}z5f!9KYA5ssqoAJw=3B4^L4Bv zcb}grKI7Nj*BIWv#Ta$q#<&JPBXAvS?asrO!Z+f-E5~6GwQo$l?0PbMp_T}f28msR zG6aatgUWIb*n0i|917w&9BVH^$;w(tWjY|&b`+LZOrTHrj{2OZdUTN29HuQsG+W=9 ziYa>WcX5B(t-Y1Pfz4EB>1x_{h@l6*YEnV^81x)zf=8;?;7(aSY`K>Jb#9ws%_keE z>7EL8)!&I<(iJiqVoOx*`fqyPvPVt2naFf)1yY?TfkTh_@QkrV_*PH~IC zNbCsQuucG{d;8&bh$~ozPlhs&>!h=%fy>@F9(l)~MjtAlAoVZfa9yc7ZY(v#P5&;$ z!n-_&>vuG+T9LzhxXxlX$0A%>myNT1lX3d{gZS`CCyWDrA(Kg#D6+GfQ&h?U!#@8AQ(*hftr4-SnOLc6#BQ54|6@h{pY=LzkG0r>ak0fkJsb7@1v%B?tb2 z^&N?jeK81boNxfWr&^%*ag_Azxk_TrW1f%bFAOW2gNjPuA%n*&aOG10URPR)@=JCQ z_I&`{TUHKft_^Uf`~etTssis1XQ6x~1-PdHFuF*e?`(TbbgNI2=5PMQ+D4QZi7XSe zzyuVLb_iMf-$OYAYWUk)2V58LgD<)HU~|4Rw(z1UcE2?dPh0aCsb5%#!b<-W${(Ce z+Qx;F>U}#%=+bK>u6T%C)ldg&>;NIx!XW*AHWSZ~+Yd#Wci~N}DD_++OYh8=q!tRlp*Hm`^i8RU)UB6c=b99_KM(*1Coz!ZpaI?c zev_*9JQB9Ifm7a-%-qXciqhF)6tUzBvf;C5ml9O)R0Sy<`LG^^8U`WF87COWdI>J# z;(6}5631mHk0)+xe{*a8jU?WMcZlsaQP|_42Or+91jp@$jwC#KXtuBqBvdQ5zQr4eNDOf`5Oc&6K zpYy1`yE*+kb2g3Xk*B44U*Y+w7I+lP!S!4|^GMR*)&9d^Id3D>_$-5h2Ueh)pbdWi zslr^Iy%T!r68NjXhJB}HX{M)=lh&{_W{m1tU{>xb}AQWYRJhg&>#jfais2i8R-prN%HDc0L)f`nn^O$7?gwT z)OMZ=Ek+x6s8OHQhSbmr)7t!%^zhh5YGb^QdR>X5F0ILQ{EJj-?Uqbm{~Jp;;N7%$ zwl8JHSJ0Tf%jl-<%cxE1BKpre{;aJth04uSqS?>JQ|-zRpy%EQW&s?8@!o;Lhvi_W zbp!hAYr(Di1!T=02Gb~6n!Im16)l=i7hHFss>%*DAPQ4gHw)UMrcWimPo#ySU!h{h zJ=k4Y1To{{pj3h9ZG2V+VLl-{C6|zo%n>f%i{^g91L0a{w`2)@% z%%21=P9e2tHjs}?MTn2ZOJQHPEz|U$EYlO<%g8SBs_qlSae_{9()n=?30;*+La&SR z-VrCb8G8(zw%mYV_AL}%mZ1H-mq6|dzcw2zp#tA^6tY68|FI*qDDoIJluMDmnYpBoqWpwlxOVd|bQqhDt)WvNUZF)DErkt0irBR|Z z#r7|lJr<*{v=yl2oar>wLXRH2JBO~bv8JM~i)rYO)wC&*U+)||Y4cA! z&q(BHZpeFxaJmVmhckgI-vgO59l%jf37l?Jk)4y4lE%pwxwm_#b6GjboU_;%=OpJq z&N#-AbFs$>-j_>mj-4b`o{{9_Lv=FnLa#a{@BuTXaEtlX5{rDE?nLE?LBJ`Y;Mh(^ zuc%p2x7wI6VLc@Myd4CVCxerEC1h`T2~HDvzs1Wb)aSMZt=O@W_7sND!Uu8GwCX4| z2}z)j4#(1_l?SL)Y7kA7Sx5ViyHoXOcRJU91$|=UL~D=O^ZbG(RNZPR)oNHmTRR0* zq2840cNtI{X+v84!;D%Lvs7)4J}`f5ei` zZP2DZQA$)LZ4~T%>p|sq0oa{92v+mm;A(;{DEjr2(r0NTI9imS%|{9aOK(~yc1Cbg z+oll%jg6$zU^i*Xupku*k2$H>d`|Joajt6ae>W6;#L)r$%}6=(Ac}m?cUwH2fD3J< zaOa|NICAw6vT3YEm^!1B+T+~w^xI@q*$mWu!olKbK3x8D3p%%d0mTw!Dk3zetr?#5 z#>o)sv3EbUJr+*&_&uz*dMlOq?n_0IJn4olZZ!RsE9G|cK8z7tYH`hureAcWncbdr z={7Gq;^VO6tPB9&-arSe@E8Q2lG^e0@Ri{v4RXMV$c#hmH#*lG=G;SRW z#Ol8`A0HX#`Y9x1|7~(CZW0u1a)HjIBONjo2|qOv{9=uTa>7r}r7tgCQE!YN{0NRQn7eetefe!Ud?B6AkTQHc+3a2+z%1NX>z8GW^qs%W%~| zwH5^^=2abPIo5!(!vE!Yf04+qeJA>KQC4eH;fq4Z*D!E%B6#qiEfyf6%mCV-y$@ zBd~eMe|P2OVC$3w*gJX;9$gWkV;`r`8i57fDzTVmrSf;NBsUrnxrRP}=|e;2deg$Q zD`<FJj%sj}`G3ZmXrP1S?OY%VK#a4`jHw(buoU2TV{uWv$4N*)+aIsow+7>e>F;mxITq7}G^z{-8r z<{N^MP^}BCd#8+RPRzm!JZ57-q$YkUoQSnvs^XC)2H3B{7I)lUi#=<0;gE5BN67nl zy#3)Z9CkDdThIFkn;Ey`#aUgrE%O~#bl|f9^aI|tst239x8f<8cX8K)OZX~H$JPS} z@ldTVcF#lj%yJoQ(W{I4>nQO!zZn$mDqw5aFr+kSQr2Sut0TCfBUbZ*42mhQrh&v@U0b1+_+8G&8%k78e$6TGjg06Rqg zi%rJLan+)mIClxf{XzG!-pFGdE-A@p$S1Jj(n{=D=p=Se#ALQwLY=MZQeg$+vaG6L z6i*R-g|B_Mhf~C_;nXGkd`@yVzO_{b7o8*m z{&VnPF-<$Ll^%YPj@z6KDS2u@se>I<#_`$Gd6Iiy= z!YPh*9rWm(T*p1X0s6}y;K;ULN5*!7kbK40mB9x2t4t)HS`LBW0KS}j8T z@>S@W`8xD$jWJEEFsC0TTG3CPi1zXO(E_QZRBzdGD&Fo+^>jSx=ThE3r?!}e7+TOd z(`Qf@UYAeW!S~L7cneQ>e^A)jhtQu$A#=f1DE{XR&o{~fpGhg8Ymf}g#1nApMggQ= z%Z8`@0btN95AxzGh`WCtbGZK~>J@v1w34P_m8Z_Q)L{>{-;{)tXXoMMfB(f#4pm~q z_v97;_P2OGwR_k!%j((34O+96d?prN%d(X>`tXhQ)ws?j4muKOD~pTjbXRr(roP(C6+Fm#OA4~vQ|}-+5VZ+*d#GMR+w+amOCzE zE9*9}{ly`y?Bql2qCHV8JNYo{dNYK*-@S&F7_esX1P!*RYXs+o14gG~@THBKSa**< z(w$~ZZhe~sE7f9QC079fR;@6-<2wX|NKsYsiL`dEDm^W)L3=c2P{&y_X|~iX8mD4N zO@Gd!QMKB%p<9jG&5@%jQ$~4DVKW%%UjTK#2=Ls@=g$<4`PXzvahwiA`z+y3=~_74 zz7-56`M^lO3*S4o2_l%CP`7p)xR0)eHzC%rXlx>w&8Q*z4bnuT>?>m+_8+?IJQe$y zY{tH;GWk63RV=)H9~(Sx#g2ULWX*&>ICG8+>%LuyUG$k}fDQ7jE33)u2dC+5Z<-+fgN<6_x&#R=?_qw(ygk|?%==Tg_-abzQ!X0WH9e#Zk+*D<(6 z<4;P4I8F5`8txy@tjSF$yYFj5-ak>0_uyZEt@j`~x(hUden8_?acXlwhE`U~(@o+^ zbjl`WI$=bKw(`%;P*IMW{1&5oJHEnSsh99=90yKXS#Ut!8)jUa4(c9KaQl`R$dsx; z`4$0Bf!hOhvl2mbNgN#HJD{YvKnQ%k4MP6e1|~cYVWrb@kjt3|Sx;o)Wzc;YQ(XkW5ts zrIubYs$N5$51%6)6#}9d^Hh*Ex*Cc6Xhme_be#3a8)uw9iv3$N@xb15I3`kv12P-% zrHU48;QAbY`tt_EAyL-+XD-~5I}6LRE`!0M3Ro#u1-7%Qz}>3?{wuf)wlV*}^qxe} z>hgu^Kf3VgV>cO6D&XfUhxu;92ofVmB#jCGkbsXbNKoxF(i&bx3MUp3`Sy5n?xZz& zo}$mGM~I<=<(cT4UOW1+PZA$LHW~LG(8D3S=i+h;JG^!M8f@ye8RLChu=?0~9Q)G) z563UZrt$XpUZok1uAPh}Vt=ECuk|Rr=o~sc?g$cpy##e8{ADgTMKd~;3W8p6;9@^_ za{4t!q({Mr1Xdj)^_%vQ&X(mQe6|Y7crwhLJz+qm&W|Eudn!rZvLO;bOBqb6d2Q(l z1G0=OmbJdy9 zcxO5o8A$`)|AJIDrjx2y(j@G2BxiCfl{@$*iR*dc!^wGF=YA_Pgw0JN2N&HSW%I5R z^$ll;uUkA(TPQ``bmuWr2R9;p-MgqJa~#gRtd2cY4Dl-|E9`#T6`P{1*wiutzgQlN z*R77l!RI1z;rvkSW4!@i_~?LpqIiv1avUCwu0}cI_8^@~QDn1mRA6#^4Hs}#l&Ca2 z@%OAGQh4$zF==>2vaCLl@O-|DI`;)B=KajUWeZ6#zRSH^-N_aCTa&-FCrJ9sT9V|` zPPX3rOceNx!cr9(5ZkN-vwy0ChrSkEp!%Tp*a#v&-Xk{NRitS{2~pI{A*Blvh|!;L z5*T%ebUr&kij!PO)oCeGn_tGk#{{895oW3aw-H5LJlJd_*KSJtncqPsq-*Pl%c7BT}_0m=swqC90=1NS$aS z7qfaR=VPYL*?be{EK72#6OLLie(x!hGF=hHl*~gh>RM=LunLkLF+&pHe9q1)4n#1?e!f`6b3vq7i3VbJI3yv_0z$PD$V6WZ0PcA18s|ohvhH_u*Jm`S$M9;=up$d4H zNGH-gpN*Qe#gXFo^_+-)FxeXWfMAdTolpb7sVt;=xWR(`>mcOudeC0K3e^3rz%Wb# ze4@*VT(u`L-e*Cy*hr#v^)zwWf0l^aoFMmNQc3Q`SYq>c6LFVZO4glTK+LYsCKbQ6 zh$Xqfg@~Qz%$~(?&Z;h)*^)Y8uz(X7oy=nb=Y3~nx6eeu{SHXO*AE3ZA3$Q>=}7F& zH8hgej6#~NXFN#nJ=FF8MRloEpl6d>qHL-IW#!yxW9zHGc(L z7n<|lEZ&R$c^ppjvs~ZfT5k09XRf04JLf!E$mP6W&($5fA+!nFBPe~popE0K zlqniN9o6z4#;r63g*p6->|Rx)h6fM%zP86`oyslbck*AP>Ys%6rmaJtR~n%1vp*S~ zJ!y=h|1ClA5@RMzLkrzjDMThq`jJMzh`wbwZOj_0y3WM1gOa$e@-CY8SQ|mkGtTMre`Ks(5jN>tLtm)}NVRQ& zrpCRHRk$D22Bs0JBr4z}}DV$aA?%Wa`R1Vmy{i<`xH&d+p0e|AFbG zIHZkp{OZSfUM;Jxvp*q}^)=!Wtim|iJ$E_xP2^JJtURV(y-0YQ)4)u#_1pJ?)PqY@^Y;gOR9d_Aaz@?j{ueY%v=B zsfnb1bun7?vCL@xDnVasiO}=4x-cyI7_;4M1Mj=Kg;G@HvECkQtbKI@zPI`iUM(Jv zec#37wYO(Zm?L!ivYXpESBePFPbR9{W)nfI8_CMw zMGn}95%tPY(k8W$Y*J!L+J)()s$q=lsjuY%$7OH_ciC{I2?vES5tjuq4&Kb({4^%& z+y8UQW=u@(a)E4?m(Vreo-_XsxSwibq(Xj(%W*o!)xLNq@Vu{&B=7%&zE2rI;iWTh z;8aI^Fw!3ftlfk6S|7wypB=)bP6x5UmHqgl~Dr1uaa zne&y1WbX@3FTRVb_MJw?kTWUo4k8Cm#F9*!NZz-^5a(Z>gd3Vbs(!r|25xR=B1R9P z+>v|eO&QM>T4;br=Q`lnYHzGKwgo3#-;GBnMBtb;QTUBt6uz`26#I4gU>{Ki|5TL1 z0ttUq!HN+>*>|LFzBSZGg}|1bJk#)f9^XG&0*>p-!8@V?zK4~8*_l!}XmuIV($0gf zehwIw?*MMeJm^yy57ra!le8Zv$ZwnVGmy<{RSVz$a(Ei`J7U zx{M=D@4GpX!4WQN`UH|$V?y>GUq%j>`VqO&-J~Qtj`vn%km~js)ulfTL3l- zv&VZxq_F2iJJiYO6W1dnWYe!ju&Xu{+|-gmB{>@gt@Gh}c0N36%LUHvINZH@49vcz zKw<1rDEJ)#quU)o`-v*N8Q)8)W?v=iyyHpm{S}11(Iaoa$Pn|@W89FVIJvM^n`DKo zBp%-vliv;noLqGY=PFUh9d;PuYVCE1N{cgDZW&B2ltdAA-xQ)dc!q=;Q-bT?kjxNX z_emE6lkY!>{^yq@G4LL_A4Ev(yBZRFu$feBdQWuihlrZXXVO0Kf;{cMO@_6F<;AaY+1XY;s@%u3hMg1XJ`#*8JbZR?QZ$?H=gMN`Rl6QlP~&8IsP$fB}D}uUY5| zV%;9V@$7_bX;(;oun_VcRlss*4{3f=PV`SE5vAa@B(=bl6lf}u+Ers*$d5j*uKxqq z+4PMozWAHl-tvkQPJGTCjQqqEYDyDJ6&<2fXiNHI*ONZ=JtXmX6gifc#?S%`+Q(2Fa85VInm+Lh55a6OFW15@UXw*bbDD zy68$$Hh7=-{2=7E%W0zRyosoa*K>jwQOxMsHAsBqKNJ`B8&!^*g=4f_aORoq_*Z)j zE|W>bLnX=B&+#ZORosaEu1>&?&rDI(d3*Bejwq~5WWh2m2p$eZ@tqaXaBapukXhml zHC_Vf(U}QF$0tJCm?&u686<5yF+x)OCeh0|fsWx%h z*K0XJ=50>=;XN*3V*_VY+r)+G%9FvYSwt~mDW6LXA!)CUkOjKQ#OquN39U;fi)R$@ zUFkQ7*VQ&+`(%{Z|B?Z>LrM_ap#tvvR6#;t8GdHTfx>$UXm9^ZOu7e1XCt3;O}|Mr zw`7w&+7ZMRA16+!*N8#TJtA@j`15N%nJc+~1gk_^4``X7tdseu$owS|OOwHhlXY=u zxE;P%yAd~_P;75}02@i~#HGcHaIOAZBw=xdiE)Y`ovawtIL?QH)U}}XCm2Q+ZH8~J zR)W=B3%J1Y?{EAElKcERF|SJ|PdBV47EhNDt7oRf@~bKt+9FCM8#=gvoEk36=`xpJ zSjauEJI#5EpW$M?E_3=B!1XVD!G(8!=bG*o+EiDz~f@cjeeNs){%>R$1 zUo0a_d#@4G;oD^U{x*^={exWoEe#)nlwtWPHJ~0EpxCSdhvg^3#jgqw?<@*iV>`%J zm#f6fVGr@q&>(x$esVtt7m@B8*<^SLkZG50k$dCv$e4&WaV(m^SbtlO>Q#m4&hK8N zq4yV^8J&oq-k626XEIo#%^s`iEXEmk`29Uw12;_1M-^qU)nzV6i0ha4#O|;r9OM>4 z&J72MpYVO)X) z7cx(kb9<-H70od~O5DM7rL zB1kU%MWj{%sWlHI@-5L^rFWTNEM7zqKc$MRpT3oN^4&iT@#jfGl`knS+{qbLzTkb< zAxP>#HPRXyLY>1@KdPe&HNhbxr#}O;nazW$07mVqL1jgu+C5K;Ykk9>_NUzHhqBW(C zE2=0K^wy3rJ&)bcUe7#qIlmDpCVfPEL%$$A^DWBo>qOlpU8ry32UPfH2=z@HKzm=_ zMj$+a~^$@n@s?0t&pd1VtR*`1{G_+w60@dy*??u+K; zMI%A_KBWH53w8Z#iApZWq3`;&%(wNCjIy{UGkWT%!0+Zbq0bAsVwE5pT;iC3H{|9;*HolnwhDCyjz^Z^WlZ6J2~2+A7N)83wxIN-wa~d^ z8K>A=%Ux1XBbJZc$s>zIQhL9f)O59yUDgAnziW_mYri4=!}VmslZ#}!Y#eF#v?CY7 z#}h}m#hGghxdZ0!ImrQeq8L7dyv{WuT8qs|<4YaVe4&i%X_aKAKQQI}HCbqE`bG4o zJ`veTEZaIy_^<5WU%_kGOs%1oK}pmeSdbvwbq7x^WjXyl)<3 z=_1C+Mh{tM#Hn+mCN*56g(^{9xtvTz@dVF0OFr>?pDcTaq|4nWiB~wXE&n`8DGn!6 zU(|?CQwFE#|4((X)NH1zErfygjZAI(e8#WhyTCKyzMyCBKLVroC$0M@CNV?D-H^z@ zbyPR!EefmcMX?=s(4UJLNY&O6O-Zd`8mc-4#m)Bx5#igIG5=JiTWl4RGGPZ3KeK}= z->ZPEUuq+)GY@$-+M=-;t5N6aU8vCHC{jL|gPt5nM>cQ$QBTHP)Fax=B-F?Y-DC;3 zb4NY*=2beEqdz7zQd}uW*&D(bc)nrGWnME)#|Y!MIFM1yP_ycsa7GyOLU^Hl+@Y*Ec4 zK_1yevp#_=|LDcfY$f^6hCP=PdqogqQpLo7)j*C9ZBQZSibk7Vk+ZK2Qp_<#O{c|> zxoiProT!cTH~-6fA;!?&T4mfGu7D%NKBA|d=TU~jN|a~U%*eiXV5SeaGg&KdGD_$# zQycJ&8M^d^2_5>&{7oH)27gPV+{8)9Cr}5ivoS|PQ%9r|w-ybZ2|#9^Ca5AOi|KJ0 z&l%N!<81si$n`Em@~-7JR~j)#5G-rJ9F!?w4thl}f(`*wyFi`^(OoKN-e$)c3BPb| z5vn97U6b@5bRbX0Z6S{T&rL~3k~KjYBv3bvtdR`m&qZFu;9pPj{AU1h{}@HgL-I)| zKQnW;KSClaw-VvX#bl=24B~P3DW__u%k^Cx6e!Mm#zfjNh?#r@nXWEGGJL;O&u}ry zO*n%JgHECTiARu$gf;RJk4AL|n$VUk6&e-=FT6gg<@>y<#s`S4y zpW2$4bNkvDQ-fZnV(uqqTFYlXGcd%+ejj0+d&Z$j7v)f!jyh5!v(TEG3sIZhN+dFU z3lhdUAQ3%9lySX7VD;`Im-lWw5p)l50}BI$8DD|~0}V5)jc(i&>P7Q2o3kUF;tyFO z#_tuL{rtH&T9xD@CnEYWh6EqGLArLoB!2E)#6I*L(Q4<DPnY=s1ei=tTr&Lz%gL&?Y44<*pz%CX7eEEH5JILted}OS>J~0aKzA_`hBFJi;Gzxg8g0>5_k+$9#OqEQbs66d_3`_}&9qJJRwy zo_zRtk*HbUAjS!oN$ulw(mO4l!0Th=pk*2POFxpCb7W!Bcts#t%JBD<3cUHO0CJTI z(6Cz`7W|cfdqrQ#(?zYMQSg!!o;gcwTsD!|rfFn!d=>X>`&6N=WfoJIrHnlHtw5bJ zY3Q;}H8SgciEOTYMyDtKKyU61qYYgHNbQXn9xthlt!6L6Y2!Vy&m=z_oVg7@U9}l| zymiGTt%kTPRvcIO-bb%nvQSadIu!8O6h*91LyvArBe4Q;6d5jony1L3;NvQ2^tcw< z?rDZb6K&DbC{HA27>tNpG|Ea!MNuE~k%n41%KUW;eV$Q*;_fd;Y^V%V*)xeWnkJE5 z=PnXAFGA${UX#5I`|Z4EVF z7J){N9eAqRf$26|-gCSVB!hIJd_WeofBYrxq5qK@sXe5pT$RjU6U9B9{ZODVp_g%6 zZiB-1C!pWE{zFk&?P%c6FmjnAir>!>$BCiiaKTP~-l?RB)Ar26!b%?;7_$$HNF2n4 zmm_e{d-Tf@^p_oJM^D$~xhTSZOPi_){BIXiP@7<*JDD)P zR>*yw3;HlS5FPf6LWP5=D5EVOnc81QX>2u8Q+j~zZGDc6cXcE7R2_=)jz)^7-wPyi z_mijd+Q^Gd;$U+^5xR_Kz_9#6_|)qKPlk3vv1~BJWq5$~7M?Az%^b`%O(A810Pg9m zhFr8AIydYF#jM?6Wwj5IKSsdt<4~}9=na?G&V$rUS)kJ?`6L!e##hLamN`cb$W zY(y3HrEEv%@dcE7q!}%5`iknB#^L#064)SI95;L$Lq!jNpvApX_;9{4-^0BUdya0w z9*=k6-@k&f+UR=xWTPFv_(Kyfe%ytQm}H@1-7P3b#sO9FikDo19&-Pqiz;TCpc}Oe z>bvcZ>|#QYU~3Zca{mVnZn}=z#G6q6=^hk3_!A|jOJMaTSv);vB0j6CjPvFWAh)M! z=*|4^)+J_ViH4gz3~inRdiSiMSg;tX@&cd&#e>EDERbo=hKI7La62#-a((wfaPU?T z+qMS+wj@HQeI~f?$bjoPX&_mW4p$4a0Cdvf#hgg+sa*n!Jz`L>;3^rZ^(8dq4X05y zL%8xBFiEQxp}x`M=K+NCU_G zvczqkPB`V^ax59Jgl9+2$M#D#aZ~Fjw4CpL3r@C2md{PlK%gGd)z?8Aa%Z9XCl)9- zV=4MnzXf%aB%lSJg{UMF`18pdBxyJv$2DtWb*p)J>VPfI>vh2yGdytpZx7rwxQyo& z=;Cwnb!g|KY{pwXi>OST48u0sd%3U+>o@1<-Y4VPlbzlu{y z1GkpTXm(>7o3+q&zgSdcT#obwuTXM`C@z>i0o(RX#1XF*@FKp??EbuWs9|ms3cvaW zH3mrG{$+e8$7fx<`i>r6tuPf2cFN$Iue=_!E*qUqnu+W}$Dv>sQDpK}3O)TW8SR-c z2ZePz^Br&@=-Z9s$Z^V56r^5AE47VK@79G1u-b~d2tJ)QiR2v3^ua1J->kK$|J{Nw3W<$Md zI&_8|gOoW(!FyXASm~s~SXCi>b}a>)wO64#z8IJ>zK?t6N%(sz8l)Duz@02L*t7R2 zx!0h^uhFYGn5oN@^(Y|Wlif(s;{pm=S&#D5`q5~KB$n5jgyYsu#af&uKHjc~Mf`v9 zokDHM*X$Wue&8eO^A^V*eNs3v;x7vR`5G0^tVR{xk!Z1A9}}2&NnlhtkBR9iU_=&l zF&bMYA>S(u5+4XcTw*$M9jZWQMqVMEgVH!#*ATaD=R2NU<8VoSA-0vR#(SqV@jq+B zVco5mmOjKf{Wo#Cc_DVMJdDeBSYoG?hsdq;B7(1jjv`gYO^K z#>#Uh;PUig#KnH%`&hrBkq%MpZ!;b%hV~=HT~|?(1-~b2q%g8ej&kDRZ@H=Nnp{e* zD&zO&0kd=a3{-c>8?}Et#%rnNyr-fQeNdFc{o75jvaAOl2;?=4#zNe^gu|O&J;jk# zz1YKa7=K#)6Q`#Q;6SlXykONmjF()*-p7vNMrm(sQ#OfbtDHl+E6bR`GlcUqm`Z9s zFCgpY1`q?61X8!{B559JA@Q%qL+f#U$k^uuk>_^6g+x9(-5v+hXCh&7%OnTYSCjCFxH0z1 zV6kkv0}eD~aB0D8teUBbEgvXh&m09ja8D8co+OLQ9N(kcP1$H&#V`{ZWye{j8hv)j(w9R#fk?=vX*&c*h#JzdzwDM@%Ght_+cUTGC6{O54&M8e=V%{ z_cu}vZ$?{Bl%cHpIHa@71Su@6WQN6N35TQR5$%jC#QFC(-q$b*c8Sk|K0^!0uC;)4 z{~55R%QQ`hTm|3*L4NY5A`#GE6b4X>@*Y>UWFF8ut$S*F43a zrd8t&^YZc5l}E7W)a_X5&l((QVuwvd^sxI_1t5u&)6?`|%eJr^4) z3h<^qF4(nw8y>4m!~vb>u;Zc{Y?Jj0r|~)MxMV5zO`|-!{j)L~_*Ip)YgJ~au9j!- zwM(<|pT*eIbQtTUbntAe+qn3`Wz6{IV{JAKTc}0jHKH5w6h~W}lQA2o6{%tqqff|( zoI)!Z1LRb>nTdHnB^0|_bNnwqf8y~`o7iX7@VxJ@ z;Wgj!v}pLdw^IJK93wk-4)b80Smj_-fyI-O6y7=6a$b_v4W3nI6fe&+gttHb9xq~} zEU~=dPORtWk(OEA#57eLvWPT9_e#Kot_b)FekDhrejp>&!vy@MfXO;7u(g~GtG%Z~ zhNu|0cz+{DBYTMF-+p2sB?gZ2GXZ0@VEu}P;IncqNWAogfL(`S^S~jn^gaP*yJO(N zq)TAydl!l#-awcASBMGv0}T-({OxsO{1gpIz9z@+fsSc>CwFDO!Z62?*rCWb0SUg$ zfgez6+5*34J_O6cQZRd*1x?~-Ap(LyCfWn!Ojdv|ca9bRPZ=aHi$c-ER`Q~zl-vwS zA^s94$-(KXNN(w0p5u-6ye|K=N{zA@W`6%cCi}B~rSJ7*i-g^V7W$S8E7OhlGLi!o zOw`+3Oj4yAld^HY1=r5ab3MM3*{&>-RDF#otS%)Twk(Oe*iM?3iG%##SrAMN zp;65Q%oMm@56KxSZ~-wA@o?;TE}u=VE=2C-hvEIGqb2OU_gh z&HW=JFG3C$MQOl*_Z*PAuL8@*r67Bb5Cr`GPGZs|!6Z^0B7Yk|f9_H!P;r0+?j8c! z5wPghX?T=>7M_=;fZ(yKpnaIa%JCMEe*T5)Hy?(~fWKg}N|@iQBE}#1A;lN&l;f)# z$n!(8r1@bRCHSHHIX2J7VbFfZ^~Wu#fcYJ{;L)E14@npl-17jd6986+HQ@M&I0zgZ zC9!2+Nma}T5|DbIRIExM`&$>2s5P0qFH3AJe0ysvjkX3cj>_H4j&MbK;j#d&+k29N zKpYJ-E}@2l?X=QPgcE<{(RYP1uAY#^LX8P}ZRvBGbmTI1q?g9u2q5QC?~WI}X;cv=n+ffXa9zH}12@|y|^PtOA58hy|jv;ZA# zXE5UO57G_M@Z}Z9i=BD_HfUajANME}O1_3Af!$Ct|0^iG`vI4B{pMJ`0({#(LH@T$ z5x!QoDF4)`Am8%APp;Xt5A5!JfN--q@MyaQAafBe-iij39fu&-VIBBXaNozKDUiGG zJ;}5$<-F_}WZ%V9QgSDmcwGr1OUq?Q?1u!4TC=;1{d9e5xpp&c6%M2`S4Pv*S_zc* zE|#WpEch)KbXcMH$%)rm*Qtg=On4p5<;|($IC4D0x35S(|^6M$YH+O=3P6OBjQ7 z~?T?{t?VGK0#O0XBd0i z2eJXZP?OUGzau_?yXqTAtg8h>-3r((dL1(ErNG^UNU#**I$W-81aU1s?2A|D2#DWF zr291@+`OH*p-4!>PySJNoHp@Z?|KWXd`+zvCRG$qlPmSS2 zh&iMjumrKqj^M&Ez{SkYfXANm#j_+_{=JQdwF3-H?-%Bd$W(Q@8Va=lBYj&Dia?jK~+*W(InwWTB?^r*KU15l{y9SM!gbVIWia9E0&^M=W5(C z;EHy_KByQLgaKR*Q1s7ZE-%!9rI{l*cy1C~utA#reMOcHbdcti;9KO1RJodRQUd6-u;5=?~G-60yP z|B?1fvM_K?ADYcpaGpaic+?sK9cRvh@%jrO{yhnPPB{ygGfu%D)hO_+JOzKPW8l;! zj(u1e2VQsLz*Qg`Vx<0shTUFJeQ7xu2kF2>iv*M_^pN6f_ldi835nLbN@iqdl6Ci! z$d9I2;u*7_WN%d>M-%7sRJL7YwimCaJtb+h`*k&)|8;;WYAE2hMneoYT!ER<>oJCU zVZP~M{M#3bL2Kf%?ocMC@k%i-Y7i^RCb3RF)7a?_nrv?Ym%rYv&)PQ4Va;Ewv8fhZ zUw+qQw*9ma+i-XcFNyYIu0}Ho8&%-YgNq2CkE7Bdj`!m&fOA%)QTDF_wdhz;-`t;jnya3=~Plz&ZU0@cVEao)+%~|974+ zG}Rf>PB}o{`c)uN#fP#6V~Dt^3B{XbLH7GElJoEld8YV?ILWZ2O0j~Bx!fdirkTX5 zCV_+waC~(A1LSd-6VV=;LW>vNVW=^92EErOqnBYGmab;d|M6=)<1Ws2c__2Zs(NhKi^c4A8%tI(%ZeSIPS{{v z$okIEVMmjc*lXt{Sl@NOF~zV0t30xorRSuirkbo&X35OE*NAz10&xpYCN{p;N&AyKMExKo z6UmQAXm<@c8gYXd|2j_;6@rQ00RtjC=MXP=|9Pe@&y6-Hlv3T~ak^!>1}@U&q3-Op zcxb^6R5b{}KC`pf6M6}QMz3Rw2I4!zW)zPd!lRmU?7kIRY)|$=_K>?JJCeDYEi`su zhul}Qk`FCe-zH=Bn$RpRk1WXsPWpy{Q)+QfYX(L+{EG#aYw%w~9b9I^&AtWesM(AR z8XD(ML+WQx7vrr=W8)8tr0F6gZ~93R6?LDK*!(89)+@u*O_p80L>yKY zkx?Zit!L|r&HSKq+)7>Y4d8_?$PXG}^KVsmO_*cNAXwjgRg8>MW) zHchi(3)H!uLQPv%Xti+_9#Ydpt#T2JN^YaB z<7HI0GMSdixKoo{&PN;=$>_voTC~g?<2^lgkTk~>62Xo)3J*+fn?djbeGqsm3yU^BBLh1^xP5CS$*8j?yg4pJkkij)|EVRPf(J-UK@Uk# zc}_N;W=QSDN|H3`0hymsO)R(>ep+D>(JZ`3l;U@gu_9sO|7{*G(BnR{#W{}RuD8_C zNCx+B)Wd;imWc6NaE@0n)~Y1n3CSz?qP`TRDjslu=POjU>A{pB0k(GjcPywBW$kt3 z*y^I0tUrG?EAGPa1cqj_7q+Xg*D591RKY>)DXv0S!9*-*+KTQ+4Dg+|1jbhXM{DZp zsDBSjB}MMirUzH3p;H9Sdt*a=?Zhe6uVCENqj|Nm4#eP620176gzT&7BU8l1;pAl{ z$S9r-RWS?UZxz6d7t0|sYZ+KgUI1q5vS9S@S7JN!HG%&gkZ-3bDHnT4sqCkb6%0^8`sE*$LGj~tKmd>`WEtcr2%=YJi#lj%H%1I)>@3KB~%*u9b?j+rqMK) zFj}cnPMPjOT5(Gj2dxaSUvC}S2OPvVQPH^TVlvu|XJb-$A=+k^q3l1^C_nEF>M6Fs zzAP@c?DG>k_x=TOML~XPrU1Vx{SRcF{te}NKOjE03vx^9!1H4{e6h*{kt-<>pdSy4 zBQcQu@-%!@ON7PWufQO=3N_YQuvse&-n@#1EjNyV!fQv++p+-4bfuvBUK1$_;xw!? zn}{e9w~tcB=^f3!Uqfr#%jiC}EGmHURP0a~mEs?yb1{le zzLrSw?S9%EaG&Y9*uz^-3P@jp826nR!xxi{Tt{yJeDXOB%g?34!nQmZ`*0f!*E|CI z`zeqVlMiX%Z-eF03Ro{u$#EXaApZ9)j>%RI;#C!3D^~`$?QgNy^lO|}|53-kYNq&jy(JFcU5=}NtV21UtysZz z|J)wm%H?%8qMgz@9On8MONA{lux~N`p!2xi>{)2CZ90mM%cA`oaRd(`bX5~Xxn06| zLPim}EG#ZxrG#z=yJ>RZJ{lyi!iWpaA_v!HlUVuBB&Ayppwj?ET2_FelRG@CI|^E^ z(eU(-7gP=fK{a>wNSbm6-cCLX*-i9>m~* z0Q}t&fH5ftvHRaW=sC*=<%~UXU+YGcv0a7I6K43y))-}P>fyGf8YuUl3MxHS#z&vj zarsRnZccB3HouJUK!_}^rbx$qHdD_@o=p8AmRBm|L&Rl@2#^jU>?#7rV#<&|V*xY@ zu7rXt1Mqpe44mHCL*Nk?@SgC59_Rfav>+H>%npO~b0VSLH3rgd#)IJMB-qh>5l&9d zguUM`fmC!FJg>h1Zh04=%svB79Ls~&$Rh9?y9@mz6`=L@4#%h|gtdFKV9(04;O2T5 z`lD9D3kh|Q$dux8_!ESaPKe%rt4PYnw-xhWN70x?f9Q!MEzCb|hL`--;GqjUFl%uD zy2^#2%*rVI{U8F@p9sbBGbga2<`8;r^2Uj5M=bTR!p1xctQ9js?L~8OJEMm0ZqLMf zJ{tHc+yFhs33jVFV6pO2oYOrSd7f2Nwt6SWBD%ksPE!}fwH`CkKSm#oM**{(H)H;- zLul$7fo4-VHsJACock^s%k082ZR@{S^V1XIt%os~DT=QJzhq9+9=(NCw$x z(wtXF=6`A>iU%mkU-O>G_X~nly#j3U(guSZWB6@IK*8J&#Kv5~k?SmZ%K83n)Pv#O z+)x<19>VeJL!jR%lFP!MhB4_x@a5K+`S%QteR~a(?vz5qz-%dr1|`to_Oqqm#1E;>#wDH-t0cCDqiuim5mcHgLAwj6pG7^1=t zM@$h2z*5~9oU<_zmtzt>&Wgua)kv(_avb}g@5I&o4H)>t0mEX~V7!7Y3a_(9>Fw6I znOT8WZPvK@%QDpa>xAdjj$q=SP?VYEg971zmO82^fBPeC?De2_L!k^>EwLCsc#c;X zC`0rw{X^t4lSudwr^OhsB;U5547kYvzhpK*$wFAo$xDsb>_Bs`D|Aosh7Q96a7j7< zq#6UE_{VWD(m4qNOCw>$+tYC1{&`S;d>ID5T>+WYeAwK317=Jsf_TeP$meEONy;31 zftv|xd}d)hbK;o`V7DnQ$~MAy#scjH)?>{AS8N@0z)kAL=wGXX-I2YNtxKj+kC#w^nID*xs|k$a z+j0xfgG0R1+70BHcO3C7WJy2$Ok`?hxSo?aFlb@|p`tvH-(U^0lJ?N}#tpE^4?-;h zpyypMyqz8jq2Iz`U(hMgGm3-F{0s2qPA0r&u0myOA%yR{4SOC|z|n|m5G#KMF8{uS znCq`##+F9t9IbFmC zJvU*^!+)_{<21I7CSthQ1zax1bxcSF;N~W0Y)v=EYxC#gh=3aE_A21_sZ%iXt~kCL z5y3Wl5qzdT3C9Y=a5mRB6K%?|a}R4^VD&8Q_ZG$UQ!R98`VH!ND3n$;t)wbjW>eAS zA~av=5OZmb6HjHKE=k!RNNo1z5arOPYwKPUeESYzd?pRYI=Y0|@JX4i8mY;Dm7} z#6IYRHqQ?5%xZ=7zc0b8i3N#`S0R);BTaPdgapPEy615^+t(l>o8VsI;i-g zO$OMQ=z({>oy179cwF7Ztu3nr%v!?bnVxRJl)S}Qyk$B*&=A2`nO?fG;R%&cyiG0d z=TnDIGXTb5AD}nMh8VzX^_bu z=F6*h%u&UMjOYC%i=&!Th|79HN?{+_6q`(x__ZWGO$2_oO$TQSj(PNr(*O@S!}4d_ z!By=543R4@K~>XL5ZqV>ZgcO0ZS^y#6KR3WjE~@L z+6!~?KSQE$Ck$r4hP?Jiu)MSs#y($!M0rljYw-fH>r0^c<8LCnb3f7tgNl*`F*c_o2k zlpnvHs%34YMHXwQ<&ou7dZ`BupYBKnq_)!Llly3opdYovf2h2GHMQO~hYp5KrsMF2 z$&O27j1Dd0GRj*jhZh?00;9x<_n8)6cZ~>nmbsL~Mun3@F_f4_{~*!U(?B!E5Hi-- z!*YKw(7CV|YIX-eAU_P&K0F0c+NUAfAr6l2PJklo6kwXNAxfLwHVk)13zz~Bb$Ax_M}icUU-lesBEW=Q#Vlg*~_TtaRVy-L6HVs{>!*2 zy?C z;fWk|9B80N&(6eW64rRMbO#>X5suCa&g0r z_RtM#(~?S0OiH9jzMrP;`6sFS;UHT5=>&Dm3ZpH#7wCV*IaGfhHwA0uGRld|Xzk(I zv_4vb>T7i~v150cpsTTrpU7$^<-uU3qxaNGi-b8AvUf5pj&4zA`WS1s0|l@MF^0Mm_TZ7U1LBt);qG67z&tnsQt!h+!X*a! zf)ZiQ)61Z`t^fwV-2y>gImEtVxUL8U4X=k#@aPFFintF-Q;Q&Y?FDG%X3$pqH6bwI z9_*^WWvT>E<3hd@~YR>+{$qbQ#+WE}}zfG#eXlg@u%MytLf4b{n_@$*Az zhP?}Y_;~>h-zZCKwR#y*Ps%*loy>gE@?%_1E@BEBrI zi3FFH<_SmT}2g#e{y{!t}pC z$w)f*F&H>hIk^6<`Jk{XZz!vt*FRm0ywcgm`CC%Sr6Vs%&Y(EBpVEgfhq(8B{Whqt z+6T&O0=cs`$Ecrm5+p~%pnY}}%zqoraiY&bgY*SZDNlm%4`)I9<5_qWnFvYG*c~}K?Djcw?#s|k|AHhz?NL(4janRz5kt|sd#fYHH`m39U_IX)MN@~ zsVkts7BSr3)=CTS-lWHh&d`FFUUZ_%l-Avrqxm(x%y1eq$j@NBBTg|XK>>{C&HYT8 z_Yvk~a3m9cFoX#bGGTOFGAlg)*z@dKKJZ3G^@)4pKjg);C}M6@KnA`x5swT>*v|4}$9$7q{z7(4X_%vlPR0 zrbIF0hoczN%!f>k^(!Xu;$5cDb{AtA6=E?=Z}IATWJzqv0^;`EhBV6s63d{gq_yHT z87lchO!mlusfP;Jlcx?vA7*jB0&QsF>4V&(xiGv^1+=eCg&D&VU~Ml9A-zJdD@O)S zo6Q8EEDHWMtGLPJlA;KQQX=v%Y^x8GTWwuXEh@m-7C zzj@KLUA(aW83I9{H}vup z@6IJbXVw$73z1|fG@Hy%FC>-u*GOm1HFDJO9?49+Pc+`%CZ?~`iQ?rjBGB{?ajD!y zx_wR)ud_EvadjOr;e7YwJr$&C;VII8p7Vf@c<`cnt}|up|E0NGtLVA-9%||Qhc-Y7n=JdIW5wMlzN(&|xm!_d%4}1UzCqr-w4x zf0UT0RehBhxPUP|X~%Tm>#MYUhD$AfyIY99Bo_V#-4>?)p*;Ux(LDbEbspaGy=Nz< z%?v9QGQ)1^jO=$OihU6%Xb{9W>cdPzT~>y4u6 zgH}Zvs}aYPuJ&XSyw@_0!14EVv$$RW0a~DHNFRNSrjeFO^mNl%nx1fq?h89kH);4& zQL>YY|La4?B@a?R|C6-e^ei2nnMJkk70`+D0=mgHj}G2Ur}HP`>9gK&n)~(?)xsod zz4Ip3di#)S&1#^v&nZ1B6+|6tZZo1b2YFFJDx{%Tn@Fz}B#N$CJVlcs3-8V26+Htn z%sDwdI`VH2Js*%opZPqdpG|(yYiFim$Fe1;e|-lEoQ}iCXL9hyuF1sgFy&klU6CNLF_p&!MVQn={ zSbdfH7oVpSGF#~SAW^EK^PEYzbc2y?uVR|B`k9lZYMhR^o)$*OQ3L7Av^+PB%gUuu zv2Ur=tRkPDZp$w6x;0q~(;rKj%JO@R zuk>%mbjkucblsEs4xOZn+|sB+TqRYp`b0%HNTa}eL$0fS3)XIn#_L-$ux;=be&uwS zQ{Abk;Twl7=BH5pRwQRTECg2(hDv0WJFNn>l@m0vWhxP zDWvUY(NsKi4Gm3LOm%G(Y3cDhOv;(ljN-?ojN_zJOy<_-Ox`VNx~X~tbxI<%o$K6K z-g}C!mCL72nYC21v5$&aNaDy+6+GO;vFRQzMbiUov9r}1ovsJq?e-Ix*?%0fOOIjH ztz%fOdJwZlci`$LhjDN1NqjCEjWNNe&|38Xj(aV^EEuLk4awAKd=Aa;?OkHznV3ZF=wd2aoz0ZS0h51Tf~hrnTUmRf)j|h`c!R}%c;i#Nc>a@TGHYetGl845 znKSOwsFJ}k`mC{nb}aizb=J;6;|)vE!DlUcFWZ4CPC+;hF}VL%GG?C1#yaI|sJ5*D z@l^qu)ZIkOX}2)Qtprzx6=T!YTWBs-h9M(GIHT_phH=k+!Xi8L=FWcgj|OP&uQJ-{ ze4a*BhtNfJd#LDBZyGSNi{|(oqYX``X!w^jYS~yyqq1Mqwf+K_DK-7F^4=}`DNDlz>GRcVc-cJ)d0&*B_vBXp0Zj=iRp7ssgb26^rry#V_c ztwZO#0eIq00!E4FV&czBm|A}pvrEFT`afU%cGD3DqL(4R%ou(8r{Rc92eofVptfat zH1IJp?JePq_bxBS#rYZL{^SIS&R+)U8fpa3P?#o@5e zE3%UFZ=QqG7N%Ql>1b>W#Do#P6ekYEM-#8?d#LDqOhFV;mpL-p@@Slt?i zh2c(E`*tq=4iHCf=cF^dtLf@+T|a?ib|UPv7D<-bD92hwPGiS=rm@l;^6YE=6t=uXkUde=h0fa< zbi?!5qq`f;ig=iGKm}{tg)p?ciw3`{qtWXgP;1$0I`QBMwXScbYA$_LKTsG=Y~-;y zRU6f&FU63UbzIlrF7y+K#QvldG>A#S`0{YH4&IJScF#xK|Af$sV@}oD-=W8fBWTCk zYNjEpftQdPM~1?ml2FZVG9>q%_$Z4&_=p?`o?isr-#tOnJP;gya@}X|{2~9sPVmn7 z2Rs{>fz(TBNWn9t^z&OL->saca2gtFug2ov0mu_Phu<}?pu&t>Snq)NS@b!sc5KCc z7dggEU_UDA4&$QP<0yAPkX;@x&h8+x?8v8SYlWq zK{NClcR-5_ZV%je9Cxfag;j-#xZ-&_E=Ws4=Y~+!Pg{q(lVngWk2`nV_Mq8k_33!s z1;+2-UEYL#1S#J0l8kKrLt^wL;M!JsuvOyx{;wB8hxsP(bPEF+`FK!@jE9RBr{GZ8 zF|fS96};USLvZp4$>6eTJ7#X929pQqYDWXi-Rq7ogd=g>^dja&+{7ME(ob!CjDJ79 z!oijfyz%@q_7r`?Hn&miuK9(AZw1(aQgQaxb6M8UQ<1ezQf3cXsIaQvl~~y*SvG#Z zC>s*pi_!~gaNC+}{1h0Dxx#LEbc#7DTWjI=L3z~rCW)$hxo$=!8C-i^8GDTMu;3aW zPru)cWsw2+bVV%2yiCUmu{>^8UxIU#@1QJu3ln*H_+frLz6;oa?lGG9IjWM5@8MCS zw0I^#%ZwM7u1U<)!-&I|LgE|!fQa1xK(?P3fV`(u;nNj;5cb~)rpjRut&|92vy;Kf zI37$SL!eOpA7~cRfxO!+2{O6Bd%ZuJwzW+{$EO74`}QJsok7trS?E%Eo9pMkk5PHg z@mp*Q77u?!ot^1>Ct5^M5D zmX%PQ#F{h>VC3#PJaO#?!re2t$!<3WWv|BWoJAPbI2Ut1YN7rf9ki`mfKLPX9B<7P z+tvo5uul?>9L_`0m3Ps3buDHqalODC+uHefGg`fUjvNjP$N0Gzx;q974{yS<-kI3o z^n_kAv!^QUJD7ytYKy_pL|${^JD!c27%Aj?60eO{Nsm)Id8a!K3a6}sZwec#^ZC=+Wm==(b`druYV+jSTlr@VbJH3S58J zDi-71o}*5GE9YnE!SOjm=<(ku$8aAVm{!@g#sVK>6AD_zB%u-^Pyq?ak z%u!^;xiwc!MA?DNK5Wc+hE*-s(Odm2>Lwk-faopwCEgCRwppR=@ny)$+2V_;O(-UM z5F>Y;LebwB(PZ&$4EvAWn(G ze3A87e@_L!$T!m2DQD^YcZX;BkMWcpyE2Q&Qm4A0%$hS2(4Qp@?nx9?v9HgER8 z#OY`-I)4@(l*Gd3k0+q|gad>fSB4a+yQI%0f*1Q=FlD&sr)&&3#^65uq!5Fa!Kqwt z)m03CatCA2)S!uZ6BfVzh-KMBsBv)|i^*U7J1oH3Gs0}Wuozn)E6F+?lx2SkPGesj zRAlF!lV?>$r?8y?LTqPN4|;Mep;GliG(B?xyZ1$*gUT_KU%VSt_&c!T+)kVjJBUBS zBd}>a6}uM}pt%KuQFSjd&AJzdl!Vx{F>y9sM2eN=NwEX-#Myb%1z7REUQ|eGL`mIp z{BSo7cSjyWi9g)BtWiMuCqvXV_a(J&xkZ=Ui=v-hb*Q(u6H~r2mZ#x-kaTfO*dAAH zPNQ-Hef9wC!IMyCc@kn<{9t{J6|{jgd=OJ+ zN8+6O2{_(-1w;DoV)Ff3EE;`_D+LEI>Yp+6{_`6Tz59d8dj(mK|Ag7@QG6o3ioXRuW)8~^6q!50m+To$nn2kJlJ;KeVf@%Rf?+Vpb$L<3lpF^;c5 zgsq4WXP+&RWaS=6v0e+MSRD;9RNIx0xh!jWM1sAmAjJL_ z`G&0RJB*$A7(a6SBC*$ToQKv2>&h%}QLqZ~U4K&F?RTl>#}jlXlH8qH)Y_M30| zEKi2>a>=G!f)Mdg7u1f~fThA_XglNq?U&tPdpH4$21$s$UqlXT36PZIf=m71{zLaX zLK?Vmoc7#Tz#WJ55Z*0A%hs*9DL)wXxqUP-Uw#X0UIs$g}B_CD{PV zv1LF1z^KF?WQW_(WAQVrIZ=eV;&J%dbQ_Aqn&QE-sraqv6>SR*rT%XQnc7AA<^nwr zct__iA`NO>cCVwF$W@5J-$ss=dv_U(iLZnG++;&PcQsskX$mPZO7P%k7a7^WdHm+M zl8*SF782u9+Zf;#ni+*zK(^*njFjoh?URZHFLO(ot_cX@pr=!h|Jk&HO zM&rJF=sEBZi&WoWhR0WK?-pba%8IkWbEH_w1Zj5iJQ;Smf;4-tN`gIkL!6CUDaO7` z<@WRoe>kR(2wUVL#?H7Z#Lk!cilL+LQS|ORRNUKxF5%;7woZyIIikpFmvfB6;%V&2 zYH3#PhzR@b)+i2@^+p4dz8)_V0D5XswB(PW@D1Ydqbj^_FqD z=EytL#yNY&6NvK?BscUs$)ukmVE0-F_o%8$sKkErf zaOpr7(Jk&Fwmb5P_`Lljs8fSju4>?kJBje(!%Ue+BjPkXbuUeOa+j_u6T@_c#Td}N z8P^vEV8^jD`2O%^e7Cd=$IfxQ&#@kC`Z133K_YDNU2*moNV1)4rmz*?Wm(aCa%`#l zRCeZS88#2Hc}zO?{UONtLbbWf;@xk0pqjA+x~E!0cin1$Ry%OjTLsot)}Xa| zIXEv_0l?(|=iF3-2JWmV@KOhsR4Tx(U@;h~5`c~qT)u9_6H>2`MQ-ogLgZC4c%Ii9 z7}ss*=^@AWbpQKlSR8GMC5w-sKTX0WhZ3yse}tqsAj^)Q5oa|AMA_Ex$!zIVIrhS^ zBHJ{1I=e4^8rwBnhCM>WSl%lER+5aOuH9!eefA33V-z|!azjY^2~m5H3Zac{{?~lhhV~x)9mEA&))Fm^08ZBiRfxr5@7^C z#3W#ZS4^I*oJ%ye{9~bUb1D_c&7q5?NMZhaYkaDH6kARuW9-`^Y%hI);Y%B^;dLvH zj(o)UcVAI6@dtjY8pfcsA(VVQiZRBM*tOhqb0}&W$1zf1=f9C-`^4ngA9B;!z&Ir~ zWVSNZwatc_FC}{VN0Ci`sqg(kTY<9Q-N8@jRYDhlB&b$Ugmu^5Yr*XD@F95mx zOc=X-7G@+JgKxQZ@b^5I1=JCN`THt~terWrJnYDLjh&~0!$Xuw)I|L&PMG&D5{LI@ z;=4b$P))T4hhDd#cI8JLi|oXGbKl}X(0fc?IfR2<+?ha;{SCNjS`|t>D8QU>js@Mn7nR-`VT{9j z`j_j`z2r2TxBvRTM6{@nDC_7!@;4XQY!C!b9b-UCJrTMkFM$2WMELwY4j#_OwCjb| z^iL4^qK5(3P-TB1t@gBx9=mahL&_xqC zZD#qvKKz*)kLogc7=BymXvVd=-_T%z5L=ZriA~WHXYX=r zZ_{;AcBZ-r+utI{CanC8124bhr$wK!;A9&f3aiB*_qa3l&vZ;F3`M1BYf$};H0}w> zq2t#&8LhwNya;{_X<7D>r0mv&{k?0!bZ!v%OPqz``c!al%mk6)D^PMQ3pU-(fc6EK zq2_uH4E1u)#PvcjnsEygW{FTh}RARLY%kXb!OSl19@+Nj2B zZCgkKN80F!-&{=8S&McT4xr+uQy6;d0{V7lVs*+DG!49gnmrT?H#A}T_(!z(^%)Mu5-mj1bg~P^B!FL6B(O~#;IS%d_rGV~JwJ@XqCB&w+fY!#3FqAL|{Hb#Mrr*l^U0byHVh8m3 z(bb0hs^s~6E44ZNvOP2T0^4Nxl2e5Fj`80)4_GHS&8+8gre(k$OMx#5$02TPIlKy! zfE2-8V(Rpn=a+Gwk)3mts+_K&nOi5}?G`=k$zO*`8~xGKJOXn?lJH1XK4N7h!pjF( z`KcOR&axoeRfnm0 zOEBj@t*=bJs85O{QV8>^fe1wl!wxzFB&HjKpqV}NneByC)d)D_c@Ac{Wx)CDe9*AI z2_oxmLFCQ~xDomg!iDPKP)GypyZ0LEHCkc9tCM4H3_`(CL4M;c3I4zOT71c`2K+-+ zX8gQiE57iE4PRGrIp59Ef`44hkk3xl~TC%)%f=rx{gMve|xlG2}2l1x! zr&!MCdpcY2KYv)o_il9JrytqKA3EvGw=lQoS1w$}&n+?Lk9uqJJ7eYfTTDdw74Nz^ z9|sGYyR+anmpwl2$$2#=`GOtCk$N$12=Ya$pm1Igq+82L&twl06qn4a&q`+s;2)}) zS4G578oCEg<9tumhAd>(mY7fM8VSBT)f1`^{c06lw@L22I- zkj`^~cHcv=YeO`=&Pj$Zi?iYOnj%>Fr~wA&z5d~=?EHuC|Hg%H8*a}}`w09VGXuWWf*Jff zJ(Ktn!QBwNtpbXkT!gi5QPARW7=pifL&akc5MRkLZN%4t)&g_T+o=L-fj`LhB}K%# za5FJlSI=|VDpz@$3R12ofno=x`#D~2jgu@E9Z|#Jwc5CTmIhWFl*hozUo@<;p2nXp zqoJNfRM@kCZvIt7>pU1La;cC$8;hmIj1!%2D@Yv|8!-CpO^cX?cX@U)^T^7AV6wjK z3NiD3MTRHDxeVD{$eX(gG{^VAri=*KQ+y7L)H5LLNIs-rECoZEYIrvI3aajWg!sH+ zu%p8KhYzLredbF1u{&D)cM0?OL7z?e69Ja|iN@9ZwAW62m)RTnif5ep#&6c}Czccb zA`@M{ezF|D)Z`b`{ZkK*t8YN|?ep-*JsiF)Jp#XH?E#~aJ)pDT5IAQ0f~$}Vd=Uj$ zIiUrY?oNhS-wx8fyogkJo+OSwGsyUCN#2)J1S+tv4 z3Nduw!UXCCVRZ9`C>k6XLm9Co>K0f|Ee)U3_Kru?()B8>7e7G3mtzmaJYZ^-`zs%O zUdD6ptLAM#BSS3ydXNawYb1Sh59#Wi#`R2?L-;FaI6Al&?31~yvvU&o)aO7D;XM8e zpF!a94`2~L3~Eg#(3yr~^>txfNdrPDg(!(q5t5Rgvz8E{NVAe6 zDWz02Nrf_pkf|sMDMLykp0l=)QqdnN8dQ=}N*X0^@A=@X>vEj4_Zsf|cefgy2iNXs zp_VuSSK|Vp%Qg^l{su#ZOa!C~`X1M3hd|=M7Pwoo1Rk6*1j)ThaB%1!ZYJF0*6oPn zEahf%(Q!#4n`07UL!C*yzF!n?f1#2e9@ojc%>2xsNPEQxoqocr@{PRNo<@On|CH}u z`-V3j*~3rVKbX8W4Wq``-+Y5q4c~s?3~y+Dm~ToE^vjAJV&CCm;`$?<<=WdGENGfk zDEj+h8dqd{gzGoE!Wk@Y;pXKJ2R(NK7^A-qnyv&v=%y67(3KDM0k>go!(%X>+zFDu zd*NAx1il<1jq8%m@+Mi=#0m*|B5~1A(TydexuPpyMb%TUideRpsAcB#@(srO$|nx8 z6}e42BQnpF7LA=8D~^i={{F1pyuyslyv=QAe&Q1`f7s~@|4(KJf)hCH!ez1Z z6t_cYK`VSpXoSqi!ux;csemzPg{tALAogwsZ^`@cvqcOM%df(@ajEeBNFdmt9mE{b zfVz|4IK2@$+(990C1G(g_erUQJ2M{ph~Nmf(ckVisI zQBTbW?@;mMYvigIPwnqF(e&-(DdbNYC!yERSst4JU%mCfJaPdveOUxGzO!JJ(h%6u z62_TK6^lau94OQ1`Ybl|iRZ1J%9H9e8(KHsiQM1Y)4N-nY4y-k%JT3VU7XRVqoB5f!EW0xP;5IK z?@m>~%zLA8msrS)ERjREZ6opXEd{LcAA|A_$D-B1SUmc9EYAHg27PQ4@vDJ6T51nN zmrH$+w)_pKJb4Hqm1SUGTmb79m%y8Zdmx|v8oFaTpmJ0VtPuXOLHRncdQT`<`}&;N zI5|z=M8D;g{|y$hy9QH~m%!b=P{6w?&*fKp&lM%VoDB&rYvJXpT@d>t0H!L1!^E-2 zA?U~&&^8+jhM{SkM_;Vy(}aF;M#DAUeEMW+`CkAf4b7p(xFYh4zajYL@6gmYA8Bjv zNcMT9CVQ~kn5lj>V}raFvCyd&%*xP&y^fyB(!R(s#mPeU;a0(y>qqgOalM?X zz!53)s|BO=gHToYn=@vpVQQ%cX0&NyLhn?(yiON&2OD8%&^+vIn2$Ll7vQx?3$VV& z1YM+!FtJSsd)KL>y}$*E;YXn7&O!KWRzDoP^A|oJ9Evn<3~mk_hmOBxv7@9HnjDMa zK&UWJoo@=iy9E6#BQC$l=sJzT%M&-<)`a()c!UpXFsOM%J0-- zHkw%-&|^iJ)@;DQm6_%4X0i(VS+eFKroY~osrqeZnvILt-NebPNWGV&oD!&C{;!aS zy@U(bbpYFxtFU9%cWB$Hh~g3r)PALdJrV}kDQ$}PyBDFl!wO8E?u=38E@<<|1(Sa{ zqy4%y*l=?xUa&wMVqu6aAEx32J9Vs_uY~(8N1^)!d3-NB3RSAc;|13#Xx1?c(_1xh zQ>qlI=QKgKQ!(T%JP-8;PePlmKfGzMgPIvLL7h#6n7Sz-d2<1@ChdV6g2y`ZtuNHP zaf6y8i@+#F4Nkmi;s%P%IFHj)#rp&fL#eUAU$9+DN8d(K(ZMYGZCpqpeT>S-yr6kT zk}Rf7h1D#c&xUk6F?VY}R=O*MWjcnj`M)BW(wvjbp+U$%|KY_{=UTIfk*e&C))1t04J0iku<7i0+$P)=X{QY_ZX<_wx0YbzMi-R3x(7Y+7~WkNh=s3@ zVdC#Y=;XN@j}3Q6m7^tJ+}7AAyGM&q{=QOiaLrFJa9)@>{B zjF&y``!pL%zl_6Y>try-QWBRh>VT;NH|XVqG!XQAU?bWJO^HHol4v8CN$vylg&uG& z4dL2%MUdZpm(%gL;#^%##g{3KKNd8SG~yPKQ$VZf%ds|X zFWRs5!F4B{Fs{QKFQ?B&y-|~}@x^d-i2elIk}Ba^ekL5h9t|29#~?M$2i}a|0Mb?Z z(6aC;r@3b+_j1T6-o^V4pYUY{C7<3)r5TA7GWj|g2{UKe8!zZ{`$u7Z^Mmd$_(wak zrC3s*0(*IBGK<4Gtkz{I^LN?Gu1z_{*gzQbe;&=YKs<}DPGDL~;@MI62v)sdKZ{kc zVTUB-nTu)?<=X`E&Y$Gqbw&o{nRmldw=wuRN%#)3ZG?^97UbpxpiVU z1eZ|FIURp@pT>%UFs$8t7<*=IMa|Z=Sb1bAst>Y4smJCx;9!9&A(ohV!yGGgEpWQB zBW`)Xl!kPor{f8r*a~;ot46E1ziy8(*j1R4`A+&Jh(Xc6vRG1DDYzq zpug!3Co^t}D1Af$?_{M**1LC5$mS&4F!&bf$ULE(iQi~}!BCbda5;QFjb|qL6IqYH z7CWOqgDKe>345G{>_*%&mi5z(Egip~`SHh@wR9xoznx+lj}q7(=Om`!kid-cqnYH+ zK&HBP9rG)k!XysXl7f>C1wAt0j{Wn58*A^wv)Q9CxpO|cEOo_k*+Cer5s%4tFQ9UB zKJNHZj9+z1P+lnye`Kd(@BJwBRS7^!+lGn}tFg+~8oeiqP#~4!mbSTgA#^_03g4A` zrw9+0nxW^<#TfTs2{JRpRez^oYODe-t(CxxBk#d(%nRse0<-GDE6A{|gX(GLVR_*m z$X~1uO+URki&gV^34IkhV0eUrK3<@d3DqQV_yYycm16C^W0--QCUbI{#pc~HVeVrV zviqy8nb-NHEP3B5RusCCiO=j{iQb1;SauMTvkPN$OrlxG`P0nZBZXa&JHsrp64~pU z(JY<|WS7r7v!_dDvK5!#QGT)qNuaOTd5ICowej%aloCeC+hXKNKP<_N$4C3KQQM~& zwbCkZn?w!zZm7iam)FrTDjicqG5F8+7~WsB8GBrXjN2_Hs4;FP{(7o~Bgam|$;}-&X(42=@;Y5sZKDzEq*zstGMkt_lXb4+SisyR%(!F? zvpcepIT>wXe-G_ozK8a(`=bu9A4bQR$&g^S(kOymF^FM*rBAbAW0F|tuViL$Jca#B zPGCC9k*t2)0j4f*&*Bs&Fx8F_1k&?EqMvwBXzK2y&G25Mxsl6CT`Kc zg=H0Y(P`6vI0pa2O=>mhnq7?gTQ8#Y=TmrJd<-r7Hlem~$CbUBg}L&RF?yvM{@x_? z)SvZG@p)rUZunJ+hwvjCQR16C|8^@Z~oo4gz$Fq$S;+goc zkaTtD6srpkVNqJ!nNz8ViQf)k8C)ch)iOT6cNBzH7sA-YQJ5iGf)A^MFst<(svf?H z#$mO%XU0>EjCzR@2Y zMZBFwOgzdymLF$}WrLa2tPrN_9m**48+mf?DmRVRhB$w8sa zt2~tP7ekm_)=`#SxSq|k)fJvi2Ze?$rCP5p(T4J4;9vF==_KYQ>PiPSiR35gliA;PNZY=su(pKSLfG)F+^j zFpn@mr9uvOZgRwHo+~lK(F`Bw3eU||5@kitz_+FZrb(s2tFd8l#&-|Y{BQzgfpgd6 z!@>9BIRX=YI{eHV3)hy1arL7gimDc9@@q#9A|GWBYB9>Bkcp3Je77X~cW44j|1yVp zU2$NAS=(6C$|Fqo&k2^-6Ux?RMKHA(pp}<&8wzFp0;6G!I=+$Kh%T9t=(jZs zAGB9s_SdI)M)@O_{QHG#8~Siy>u0QTe2&A7YLFRR#T6FG0&DaH*6!Vo8_HG*_ugW( zt6hk3??gB~8!;ni2^z0-#TdISIOf`N^vcsk`D?P6ocj)Prt;vkAq{x76YxWbK| zkf|~q#*G*Yc@{zzt$Z6d#IA&sYa7q~5TBUu{@tC2Jwr(*dL6yLnLwpiiA>771V8IY z=C*Je)77zH(w{dlo!`D}j!O{RaXOUUZH{CCc~R{3qm%5i5Y(=_ESR|(9AOz2+gOId zDz>M|hFMBjvwkT%)){NVayv{|U$qMR9o|M=+c%R&ev9bA_(*V+l*AkjGyD<~fJPI} zV4`FJR{Xk)1LI%ezOb)oJ?1YO>i474_ikMAwH2dg-od{PSFyqI4E}x*irt3$P%2~# zT5R5cvSXcaMcPViUbPDCeVlQ6uqW+o0Po&|`x6;SUi4@I= z30mLKieFN!{KEt$x;=-jzU{yg8n!Wq|M{_7^N+J;Q5ZYt8^P@2!r0ko$63FkA6uZm zg+**$%xqrkG5>8EY*3jxTXA+W8?ki~Q*0c?K5y)zk$>W;L-7pnJjoKy-0Xq-!E>7<`qO)uNuliP-&thIYQ>rk7?{H|Isn;q*}Z>kr&R=A&~Pe01!Fn}3oUArVHio1fTvVQVQrId$}g6Q%IuHvL3#3ppIL&>pJvJ z9F3p4EYVBV8yEf##d?)^^wBwo;Sss$|F{fQKQy95_-j1y?iIREeuDb;_wi>0!`PrA zwA!DA&E1J;8G91DPK2P#!{fMfQ84BhMB^sQ6dd7l5pOKb!H|{=tXm(8<_%tWCI!&J zUls4a?1#$e`!K{k1Cr+l!a(*C= z&_#4E>Nus}x`m=U$}++cHY8# z>fKmd%{sP6#)fG$&Sd^aN3g@T^;G}xJT0k6p%_t`P=m+OiP@W|Q&G$(NXKzzvkpV= z#AcY7GzK-rB6N7|gzaCw@UZ%R)cSn{{ojS)-1qUAc1n9?qDOM3;hKH+=-w9F6h^CZl-#QsCLaPae(=8 zUSD5^%meI6c1$pR?aij$TkEKORWCh!Gn~Dir_B1}r?C_E#_aM@GnRE{F{@s*g!Sp$ zvBQzptabcCwrRv%h9@(6k2oqh_JA)i7MUq7kyM<$%v+KWM!=4?-_U!2*Hz-ZOh8H}mZ!k#?!Q zxNm#}KPFn1`~<;$_?ckpl@K(2akb=G`F8l1^al+~vAKUM#&#V? zg<~n`pIe0fyQ{EL_Ad5#SK{C8W%x|}I_`JBgwEP&Xf*f?R*pK4nl@K(bo^D!oqHAc z^|?Y!T#=-^OxP*RRLI*nn?_DW3p znfQ4YylHGM*K}Os-vQEX|dBD5fvyUvx*5zUnk* zHhKiS^m2q}0$a%==+!(vVvEd~jka5Z7ZacBqzPmn`dTQ$@{L)3Fx zipIfvaGb{}d?a6hFaEoYFQ+}g4Lcs-jzM=(NW#OYv!!Tdori4~E@61h6>PC9LKprz z#+T$G^G`=x)j0gb2VvKrEof4`5ce&bh>B5zu=`#m?92}V-#~!Xg`?p>VF#DvaFXlE z{~(I`6IW(ex>3mH%;B?*22s7c5h(}mqf6GO$;s*p_1>)@!|Tm7(E5%_KK4-Eltv=9yYA@9#uT^P?bxn1FkLeFz2#z%4ozQl66 zU!HR6Zt7rJ>;UV9nq&Cj42ZNU5;#FTka{(^TGT+y?0YbXuZOxDFTi2Vcc=`OM&-&$ zSkoiIgk5fUU}_jf3umtBKp9Ge+(qeIb!aA0hkC-9ec0{}niZF${Dd-0Ff2v$o+2DP zF&|gG$iVxj67a|45R9|ljVa6RQB{8$n(9cQOlt$AXr)57&U$dE)`ZpjdO52#*__t| zHBRPuh}c=kPuJ^h=e2_0^Ku45NFsV1r8&-}obL7HelL(NC!~-;*A>;rd9L#XN$$jo^G7(Vq8yb(7Cr@q_oxHYAJJBgt>{FWzlh8((^=o0r}pN6L@%X!*poBs1n9eQ6A& zF8x6A-F$!~=eW@5b!PN8N{#wW-t)>Y1dZ|4pQ7~Rja=8fi6E=K8uon%g^^OpP-J;p z$e{^?2Pt9DxH}Fye{ z+=`5}%_w-Pp1`OYLB$IT_#u18@E(^}iG0e6xZP_Pfwo2>C~A~L#F$6Wf9NIH2fT*6 z;wSKCa~-5TuLH?~MmW0iF4*t80IQY@-}|y%(Au#cn%q{xqvNZSt^r{KaIK~q+=hclZxl8^iN zlz$U5gW@8#&~3Lfbi)58WgfjwnW<-J?Ga~kuK34ynkMmP>Kph4Q}*y)S?Bns`%n3@ zs^OHGphRJd#?h_;L5s1koWa@6Jfn zjZ?(dDT?@XwG1kjN}^KlKk)Pa2Jf0{;f$A{ITE;VN;JQ5a?%2h~sVK&$qVz#ABVoWrX4;uzqg|82+AyQi?apb(X6@1TQZJ*K^SfN^JU zV{CLWe)7pdrDrLqrxuPyFTGH=7jYm}=-Dej!h$(vAbIs9G*wy%8jZVLsBM%u%}s_p zc5bEG;*(@DaE6SPuF)I0*YsPVk9@wrA&tLRss5Y`#dUq=eZB?ok-and?lH54EYzdC z{!PJu+kKl4vcAh}zR%}fJa+J>qpOEzzo+BpX_L^;V>CAKLs8!I7c|Vi3pQaFU`TZ+OuxGWOy{lyG_w|10haLY zxh?D#ydmCC_kk*lf?s`?pknHM_$v1cjt(f{isdFKdD;zAvLdnQ`W0Lt!{bDYJBTBy zaNVR*R7<~t1z*nKvmFum!GAA)UuJ_NZYpDg>3?w5Itb*e$3l$&U%X%9 ze#);aqx=K!$Xl3&ORDx$u$dGy9zTYioHdTsnGa!#WsEW=ZlLMknt9jtro4CkJ@KCS zLUHMG!EaocFK)9+63gfYiGK_vEm)AVkdu?R&nZ5Z2k1gL@iYib9ux>?$p`QpITm*Z z>Y}%Y2n(w$&}x=B_6d3!->m5ejm2(afn;Kuk>@YP{4 zD7>)*=>}Wy4PFPHzkH$8Gzy0Emta$lQ2%fH4Li-pBXgUNb}wAfT_zkKUdqIjAvbZ) z9Wk04m*H|O#O#2Jn9y?yBf<`0#5f0GW~PB1d%8gM=QLyuQvwh9P*L*RQr=xxL_>C+ zqHFV;scHB~Ry9hKam~6+>8L()ZZ~Agi{`MHW*s(=GmMqCs~16{tP;2(F$Vg!So~s4&3>-Cyj*w*SRorBx2* zsNcj*{4IQ=T8tX6FXR9IoyAy{P&{Vhil)g%XfsC^2VT@eS4Ir@ZqJht9@#6-xxNVLjo3zkmjSOn){eU+*58z+t6_})W8uknX zfyHKT2wJiUY@axRPTP9W*4rjz#2f>=bFmQnFc(}dJciP81&j$1;Y_WaXc`oa{_G-J zSl+=f)89q_c2K~D=_UR`pn3GG4p%Aj>+qKFqPk1SZ2Z+=1&~k6QFF2j=I->zx;ZEDSzR*D z{FI3&J{4j>O*x)fS&4Z!D=}f7P?s1KW0vkEEaDO{Dk%`JesdOdpMa%PXJJN%I$j$u zkDJa7!kS+~cE!bKAXQQaUgz#Wk8>p)dvQn5dxiTfe|yvvte=b*0Pv?8(B{OCf2I3l8y5*WwsXM znfl#_lsHL-48Pyx2KYdzjv(*}>Vc&jWl$qo4X^z%z-nb1l)AGSZQdNiu9|2}w@X9o zFITYhUkQ$0T!n*_>rsAm3p#9khJETy=%!YS=7v13O3%Xzqciw=UIf;p39~zueK<#Q zJ=Rw(#F!jCT%|S<)vha|TcQl^qoL>)FNJPeBXF9^Xe>+7z;)*H@OZ}>G_^W``IFA! zfl)WGrnd%f%zlg|%O4}_e~5CYDls6f7$2B;v!fGZ^GFjbj zHRivef$V%f^IGPT;F*2~F#H~!gg&9! zsGLxYKekq*>ZSiM#N#=tpMHlmeIK!KUni<=dVv*=4fw&K5?`iW!;tA&_{{%2_Mb^Z z*_s5@vIs)W3ENS!(g_`xFF~0+#7!TK(KOHy4|^J6ew+xaN|xelwiQFlgE9I0S^PY! z5baeeaMSoYEIrqZm1T`+`T9PZKB++I8%22iTL!x9h{o@gz8HGi9_Njkj-$f{VVeGR zn7P*iT<3R)iZmo?SW+Y@4{D^A%HizXglSA_??RR^ZUy^pyPmb)bYYsaHnM~7R{Ys9YT<$V7Et!U%zXqZA zqwDZP(4s`CXmA}ZuX*$5hpBW8qp3ZANIYAKUAwQ#`i^mer`U?kn`^_=#7o%M!H(<` z+OewaFK}lu_gv$H{D>WrFR+)~P_W%`EtU|@09cURJfDc|q zp~KQte6k`JBectL;N5-v)X|CpdmKw_exl>Zzxe3S9|Zn8_Q`$}b_Q+Oez6IA*3{$u zgL95qN9i%U$BtLv{|sJUl$7X z;yku?mln%b6L!aeX%r`+B+j?A1J9araF-Hx^(NynZq7{XF*d_Kl{Kh3VHc)$1mf|4 zC>+(Af(Kl)anFbwn031f3pX|6xYqZm>h=o<-u}S>iQl+lbT2ymdXM(=+wje>X1uVi z9-EicW9OnD4nv#_@@s~?Fpv2Vwfd z!H`3j78tDR;RANxBs=vJ-8v`D+_sHp#o3dY@28pUr-L#3IvN<1TC!yQMXW)Z zW2W7@tbFY_=K1pzS?e69c99})rJ@HDwR2&`&(Ba-p@8cXwXyf52%GFzq2y#QlubN_ z5>{b2sQr|%bW6dc37Ke7bR9!Wt5NOWQ_Sn@#NksuVUXWPjF)|nS;=n@ezoE;xyN|J z_&?Nds7KkB2bl5h4qA+_#rA}!SQFchEAl(hwY~#~TzG^3tX`pwc^h^Vy+C!vXXrG& z8B6EY<8S*~tZAr5=_D~)bJsC^ewZNx@^GV}cWRbT+eP+?*|-|arY)fdM>LSF++P#=slFDeW3Btu;A%nsAGx#EXO zyV1t>5Vph|L-jMqQSnDO<|QTI)|M=^)hI#jMK$R7;UQ*tG@;~?rx>B~6z|79#`eG_ zR1RxG*Q`doQS}gGXH?;{)JmN5=pk0JFz+IJ=*Y{=ryDRFHe7kFH%}DX7Xb+ zYI=Ys+beLGO)+NvxPr4@reRrnG}gEs6@IT1uHG>loug&3XLv2Rt?&hzdzGA*{b0Uy z*+|l#;zJJv-i~^ekYUj^lKI(bvK?f|uB|p@E22cK!jxmNK?_;xSUUz6RtxzkE=rHEM;f5z{eX;{ippn&0(&P>U0^ho<4;TT`5d@J_(QQ7y7EZ zwkVpg3Z-tYK^KYD_;1BZlrmU@$8T;yP0wTa}b*LrW zZLSZS(7W|9+HYyX?#mBws+eK%b20YURpYSe$7r?rCE7c_!s;zAgfr_2mJhGTmy>JI z%aPD-TQQ3;-;wD`tYPZ6SF^MwYna^j^{gp=GwXc1lQmTP z2+zldX?kpDE<0DVZNmAiDK(bq2Gx?RFdHmN)#LS|-f};`xI;#G2K3)}3}ZBhVN|Ai8Mg5;dBh0JPkJ)7-4dR9lBm|!)s@cp!v8{cwuffS{x|F;oGZm zM@21qJQe1APij&1Vs$yJaV$m;7IFek!bX_Z@=>9047-u80VT|IoXH z%$1YL=k5b?J1xN~YgO3f_eLzk*^c#eyRgY4cClppeJrbJKXVH>$ZSoIGX16?7O^UX zIc*GO()WXz#oYiFE%IhlFRx%3^9@ShPx+AE2uJR=)> zW*1^fK{2}b-ozIrH!RuLzZ$vheQw zWQ-JgsF7m>F!z#|@XoEqkY>Os(ORh2HXNn5Hv)}L2I7{2QgRokU}C~)SLpIJYLiKR zc{ueq5$!hmK|Pv^OzQRwW~#Y}X^nDW9{>5WOD4w!uy7cQZ;4SGL5v8EH~~rYgF08cDSuzzEWDu-{&Va7{*Xv(0H=5Gv_UYz0XHmC3rUH z7z8C0!Ge{qz}R>I@7h3E}4N>!!j|>YwoD?`Xf@ExnUXB|i3;;~H)8fe?=ON#hK& ztW0I$BhE1onKTv^c!tdxlfX*8o@8v=apu2i2TK(!1pfqnkISi>R6Q#|(8TLe=uhIM zf)|Tj{ZlyitKU@#Pn#19!CiF-a6({jikK~Nw;`wCrvPTXZji7s9HItJLHnh6uv0h(*B)Gl+!KwUG*SW+ zqE*pR(h!RmnxQJU1p8Ijp!q0g%t%;|)#gs9{bn^P{alH|G*_baq7}FzbQxycutg8W zg_vq>j7Iia_)SQI(UfR|rXN|*H`EX6dqL2SjsXL!POb~9I0@ZCuJ-zTPW9jgaaGt= z-b3v*Uo)UgUF}OL*(Z#&-LKKnwAYkkD#I>I=&*Uh_f@;hg?;_7pD9cZVUG6EEL!h0 z%jisEhkhipqrJ(@={X2;bQ%+=`KgF_j4w;!jq{kgoh%a{ z51@&EkOJHd$e~$8pYPk#@7r!%d8xhjagqp5_`} zp5-2lDBzU&25wNwU?Ce$3w&;`g*o*{K%^25-VD;zsO&&{Gl=))zY&){5S%$3k{V3Lz z_Kxc0t_sxYz3a-%i z{b$KAFN#)F1yb|l-2_1bOX-^tWsa7id4Gwou$;k18Wo6K_m*(#{^OzktPNa_^?|k0 z{va{K8x)qVgvddbP~5WtoVvq7;o(J){dfba?(m>}U5GLYy$MayS>UtxBge9DIaSpd2IEU++ zw3#zjDi?XZ3l)50hxs@mk19sXhEguaka`7AFOR&TPtU*6C*M9A_v|OhocK%;(eKIO z%X9KfsHgIgcc}G1IqlwGL@Ag@ceZ8HxpgV@V^SoAMC_rz`9M+^2a`q7US8E#VS(d9 zXU_Y-JnoowEGIQ}B&TibCr;j{$UASVFHc*wkc)ZokTY376k>0V1v_~mhitAa^ql#` zH3eMa94{zw2bLF$&wRSWvnC7Dn0||jpS6>V*C1BEQJz&9tFn@_>a03`JPTYQ%c>vs z)8t#PX}MpWz!eq?eD7>(eG*K^_b(&gYy&byb*ew{o)40r!>jh0a#Nk8V8y^%sJk8k zFRW9+r|kk9T9g7>Le9~LR0qgN{=?C~3nCrAOT5WRq`NBx^ zbo)(K>%UPk-%W7}?@6PiowBOlkhR5Y(ot!n=vmK5uf2he%T-aIK_1y%j3NvDwdAv8 zEE)fo%PVYG;6q1vhRgS}JMjq)t*d`$zpJhO@WZMzVqsS=LiI zl#SN;OKK*aq_d-*v^LzLmA5j;w>N-#=2%j9xhlyh_VC^1seI7)3xWbPl#6&d3!MBT z!2A;rZ??S>GPFK}#4v&6qT2@@dpbZ_EQXbvf}wDZypXGLb-~P8L+I+{K*Ie6BsKdH z9enYgo;3cZcfJGEGUG2P?d~UB|3B(oJD6><8^(N2jbJ;^3}?2>hq8f(60CdOXKK3f zA4xp9LSe=y=s}(}xxJSYdZtRger6)?qv|w1b-LH&R=}3~CrQ zh^#vQ@DUC}scqO8Dw?fD2Zl`{+X!8<7-~)PBKA`8$P_YuPjq70Q(70>LFv=GNk{Sv z^=WmH)7F=QH~%566O~cHlWaO#7DpNGJ`~Y6n=;P~rK)Ew{AzZN*FZTw`D(l9hxjF@ z-m?WROt}V`V+9ZSOj%6$Esx*djzfzND!6*ZD0GEi(Dp?PPa^k0)keV&`ZtyLwO%LG zF6pGZ`VJZFY$xZoU*xoS5ZjVJgq`yo&h+-nv5MzoS$4cSa}u)u)M_=E!hUtOHf0Rk zaby^qIqeJmE51uB&I@Os%@N^mu%pIVQ>p&%7<#u&fy!5@l5xfgdj0GqEuDOg{$9F9 zFZ+_{iQ^HfH}#=_;2=t|458&q!|2ISKbm8;n+iAiQOEgkdNMkle#+h;1$Uw$g5_FW zv5anb6;bB-%haKfOxA~w)4;OL)V;-w9Ons{6ni`QsSsR~|kHC7-D3fG)!aICGq{MFeYcRuay3BEz3G1*mV};8XGOhFT zn4I1;rn!17v+*Cy*o7Cg<3kBqIi%3pmB9jcb3dJt^Pyfde>!_EfHYiU$*j4U@`t>q zqn_O)m(WO1M>HqtI=zUyObH&@6u&i_>i3-5Mj2)v)J?{{_ef15myYx%((4aVbigQ@LIY#TyfThv9yv!=3(6_? zMF;gZ{h-yM9rUC9AxYf4Lrs;X)GGLN-5c{sq<4!H1U}4wpTI)v%pkY(=jg6bcltYT zBk%tiQOL&s@g7Z?yrZQJ9~U=TT(o@@XQvs*yA$fElr=1wVXRS1*ceBDtqN9kin%iV)S(|2AM*MC#_~Z^VnzPnws2im72LimIav2_F4)d+h7-b`GiPQTXivNd<3bBT z>d!4OajXRIi4S1-peNvYxdV)j{e-61gYops5!mro0pr!j<3fKm3~mr~glrtvrH{b) zj(6ZTwgA#MxY=lPC+IIY0mLns!@ASBRj^haEUq0L~jL4w%)}my#rZ# zOBg%i8_7(Tg|e)1g2!ylTDIlADKmek&MHKb?1thK;S9*9&iygel75U#{{@h7a1`BH zoj~T3Pg9piEWH?;Oh0~HqEWLkn%f;FyD87Vny?Uq9}4=1^u`q!Cp+zW@hEKY<2%m))pAd zBwSCiwFQZc=Mve~tEq)<20ve`( znngu1#WdXaI=zYzc>a$PX(GlD|1y|T-}})%$6b`;y^Y*{?4Z_jhbUGnlA6w?k(a_%ja-8%`dt9chlhYh>cL16bX+6W{$z74!+9| z#(+C=I6GGf>jtZ$^k6mQxe1seql$*Y4*F}xB&=4Ng6qt*QGS6Iu1Z$Nk)y_=i_ni9 z6}-gJpZ-C9K^<(ei-Van$3fAk1?8(5xUInS<2=|wvlGnj zdK@#|lg0);&0w*e>CAOXGV7ZW$>h=wGWn|2toODtGx#%}$=(yk=JQ= zjhOl(8mLL;6McB~feM$^k?Q+Gn%I&;awkK{`tM%SlHNddlk5eaqZNG*TtsPZwzPWg zGOBf0ML7xUNL3lx}?Q>>fe7(M)htkKt>+~_pNB{o}orxn>T^Gd_qEv(uLMS4M1|^=m zkB~x0or zqo%UaV~vZKTaOcw#eX$oddjmX(u19MPj}F08yoDIJa5- zC)cGs2mWmcgz(U0p)da5*=6k?r@MEa)xC75UE5Uo;VbI%T2}Lpjzu@)( zUN?I#KHZy*jf-Dn)@5~)>b4>S;|(-KKZbT+NT&?d^JMhAg2cnBseExc6^tvOpnK_b zt}B+ZrGhB(t22eP%%Z4vJzCSJPC;x8wd9YY9f3;Z(5^v|-;BxGZyIH-)1fg-r0CnO zd+6d)gs~Qf@zfQ6wEQv;4=L72&9!o>0`;Ah(*PiI`FjR+CKQm>+(mB@i$Bree5&Rr; zomk{@d-iq|W8Rxh*@?dz%zUzt2R3{H%>D{!ug?RA-c0yuBY0Qy_Cj3jEP;7e#d)kR z5a(5@;IJF&b?GUvaohJFG7fEesHTk?3(=?OI}ranW|OdtCGQ<3Bugd~dCiQ@I?koHtqbX}CeY{` z>J-=T69Yuo(QRus-cJh0Hua?#J=O@l?hHk}u!p>yVUEC+Si>8|e;0pzyQk)XR~U!w zogB`e1VP2#kSTa4cLZg^v&$85>Od=0R`fw`za%U6QesM1Ca^-YnQT#%75m+=fQgly zn45(Y^Z7TQrMO!%m(hl-BV3VfSA7XaH_w5(Zy0obS_xgz3&A{o7IXv;2gj5oPHt|Y z_-xuROjD0T@1J*YlI{>1*s4h%56>dqs3nw}9YCWG#*o?C6I5~}pDGi|s6P5K4bv_m z+sS81_GLN+?>$V9-X9=OZVQD*dQiOLQnJZ%roDAb$i;I7ZNDjaRxYlgNRLfaqPLCO zC$6Dg5oS~uJ&IcOU!y|775p*z7+Q|{xH+#hMtu&gqRL`jC`}|y_ z`mK%A?$QK_4Xa_DwV(}tFA#W<2>lB8AUA_S`?4HdgPPAs* z9p^KvCVO`D$^s^_%bE>0nZ=&j>9U*-fiYrp6HY{jLC#BUuv7lZ1;^dsTwWgM#@zlb z`uNb1@82{5m+eYIk0A#N}Dx+!3-Xl~u zE`_REj!;ja@Xh^kcqCGLo0eZWddv z-6N9t?#Hn+qd-=)81BxF2dzC9AQ~E=_}LSfefKNOeKCY7-5SNj=f<(_ar#0wcsl!9 z&auwFwoF}rKC@VC$F_u6v$PC>&vnp*N&Hi1nkBzrbJRsBvtIz=hJ{@FIBjkqXpqRr zLW|#?{6GHLV4rAhGGQjBNA>gg>mZ+# z6fKUfljI(_U*Pst8-i!&R=_z~Fih_%Xit9(PIo@T7%5qHcG_t6{h}5VHrmW|#ti1s zBw}t$Y?-;HJ!_7)XYxVwn4I8Ce%3vMZ62q`-prS0-kTnS@r^jxF>w&|rLGlK3H?za z!S#G^*CY%Oc5Tu*m(V(;8}ILtq($w@^!Jx8{m*_9?b@VA8uxW*(9?0$RyvMUg=gk$ zZ9)V2b7_avax&fUAI)DAPLd9Z^zqh*mONGL*4{JTD@Oo~bRC(>7CFU%+v?A@_xxnmstJiUs@pVyIl$1|`|=K+{K(-Az(tn?GqWH7!FXbz(Xz z*RWtc?Q@xf(tP&y`~qg-ZO7I=VN4Fq*fCiHc6P>CW?%jfjy|~}@y#SICsCds z_T&|RVwn|6E=WKb5Tm1@6POK=q1(-4X?dJ0wpJh6=1&Cu#b& zVJJ2JRwRp9ZAuw7lO`H2qOQdMXl!sit^aa@1}0>Y51&QwJd<9SpQNQB$7sgz1oAo_ zPq~3fg#0PG)samO2H8|%c9Qhcg?DXM7^OFQ(nc+F8W=Z**3^E);^-^L9gfE>eG9Pb zv^4IOJIous(y|SSS3iQ)xs7ArJoMRSIlpN)1tZy2!_)aypoegCPfBpv+HEGaTGaCFYJ4Kq~ z!uiM7$D)_?4h%}Vh`L!%aAfaa^s^g9{tL7zbp9l&?VL!%kEzq%J;UjT=1=tA_6n_1 zdN88+9sZmlLCRMJuJJrw+V94ZR)#mJ$wt$Wt~AOVo=YKi1+@S2d2(nwPjeLW=-A{_ zWDQ2*r{ZuOW5ku>DZ>N4oS6Y)jm41C4Mol*!;V7X4$H8(5 z+U7~2`<7#Thg7yWI%_7^2rszXxig^hid}0c^%az z*JH3^Bfk6DhC0r#uzWz0-tST+-H@4NI&B%r?hGX_pJP-ebB0D9ETTa-FH!Z<3M#WM zr|$G3x?f*J^NouLz7$ZOOfD7Zo}^(uiF6}PnBk`QQ2z*PQhFkM4}{);6KWUn+4@ar zqBIiYg3j^buax)%#d=YFY$Io0JqO~phJs&bB@}+R2FqI?!hM-{@UUhuo6E~HMO_Ux zq{x7Yw5PL1em0X;v|vu7EZCks=FG=oCUcoRg*A`RWySlH*%V>7I^%pd{0ut}x7Is> zcS8vG=Ykub^F<29rY;!beiYw{uA<-X7r4TqAFHRoM~zt>nDV9xy_a6W@|q%C$`{PCW<74R2x=gw}w2<<9%V~3NHM#sH z5@PtIV_QRk%P-TOnZ?BQBRw zGQxLD%6N(9iM+bVPvp4iCfB!9$Y`|0Lul9qP(AYy^56-49NGirFFt_kYYEmYGeY2} zs4)*ueU>(Q8tV?8&GH`4VRbNv*@v020zF}_NYi7V)YO=Ct_;&r>4MHdMey%@Fa%W$ z2BVLhWt3w(k8=To!VaSR&=NGXe29haukdz9I~t!s9BW&M<%=>NZ$8bTGV6 zXcpydKE+?XXoO~af-%ZD2gCQ=MDx>casPt1*i=}LQZIAy+XBIdvN-}}{dQvAi7oiF zZVNWH>_mq{k+`%^U>DClkByJ6qf&1_x_K&-Rm3cE^;<`ud=u#H#zG1oMI`lKBfWgt zL?ImwBsYy{MMNd(E-0dv3$tjRa6j5NHG)3<=SR0C7L(}6Z0dVFj!J+2Lbpek@vFjS z{Fox}B2G7ojivtMig(CE*OKi}Hu?(eDib)P-oGGj;XfGmdk`xP_yR{mzJUEH3ARZ| zj=9LHFr`%!SlM?I=09}~%UA`1{|DIPRtwgoFoTKh^;xjC3VZD&#Y$4|LhSVf@QqLd zP5Vh)(0&hIvQHUB3w^Nh#}WMKP>Omx@1tY$3)C6fgoFQg4lle*ME#I`sH*6Totu{9 zd~(Ii>Sg%n$$GT^vj_XD4x>cwSsd^Y&LRAW67`DY_umXkIqpeuvxRSWUp{TuK>8Hd zM6ZWmC+)#?Wb^b2<#iQPk7_QB@K2@tIZ^cc0f{Nge19|^#M#X7q$ykaK%b4bR%6*mWLV@+fuA#Q9<+bW zg@haXIF~+MzB6hN%G$f&KzR&4YCVnVg1)`7yAfZnxPkY|FJMHdke!L%i{C!4!9*oz zEby6!eh#)m&yXWB6%Vwj*@>@zCE%6Db7*YQjP>nbud|d8De_Hk#l(H-n3L^- z;hwj7yO@ijt@dMK?dedkcgz8aYY3&E-atvdGIMsF#5VU%67oW7EJ1w)bNn=zxoJu= z*Y07g*J?Byu}YKe5qy0qn+(~kF;iG_2FW-ye|s7|pB197`X%)HScDh&Y@Dc>gx=0!=(WuUo#re? zrvPizL{s8cz2|D>X#~~>xc8`>-rS3b%><31#8J|j0Jf|30|PR-T3j^X^h(L zh|kLF`2ja|kw=6)=+8R@O@<91fgfOHrL4eh7{~JZO@s`mIlDD$Ivev;hiN<=#g?Q> zvj8D`c>JmG|2{vIt$sg(nU)Fjx{)Hw8KlS_1de1nCuP`=4Zk4yzh~fftO4?aPeQzm zGc*dlbatOydCSu}IPKXs^naU>_Th&Op7;L+Cyu1iK2? zpk3)A+!Z$$J*-72c^a@kz#fejdtsMlDEg%y$J%XI1P=5o{M|T;Y<`&vd@eUq&Dck0 z$EQ%%KoJ$c5L0AM9a(I-N@v5W2?m!6b3+!b2sliC%7V$|wJT{Rn$jcFQKXvk3hRWv zIi(}huxFJ!Z)_FGrDY2_*{n*Kh~MFD@n|Nqcrvs15iy_7^I1gVe5M;IVse7d*>saK z3)v&ZGIL(l=TLjR15E3$gWB#QIK1W%1YdCi$Kek- zE5{D=+Q%>W&Ko{>zVbAVtQX@gVRxeY>N!3zeU1KiyHWbjT@2e^hk8kuu{h==-cX9d zWRpN_mRf~@Ig3#Ke|9LbZ$9SeFGl&T>o8@*0Sw`oWjb|92q z4N0Z1B?VNy;R+d!sT0~`>&dW(XxNELy6j&_)v=j$-ztIX@`LGT>M~L-nnhKER4GvY zCq~3w6#4>ZlZVFb+#;M z{ZwZ3Z3HXJ_yS|bKL$0)YeJ@}64aMo0+;$isJM{_S%MDqQT_-hMr?v`n{gn$RNyQZ zJ{Md04n?)x-6(ae9M^ii!rZ4)RC{hDRbL!Mx{>nqG*^~7lz-#P|MjBW-FuiV@NxzX zEx-wvQc+zg29=vaaN6!o==gLsPV8QZzE@UZnXrhHd%PQe3%^6UbqRw{^y9zX`jmFq zgEnoABXhGelrXJ=j6V~--q1jwgzq~14=L})WtugjkZ%9)G|gI@M8&oT=-)CQD!FJw z&n9S5@R9GB6IqBq>}R88ovc_VRRvZ~Oo90MT~H)spiXQtU=_mqlIP&SHXd8d%r%@? z-!vQcIMIk@1pWh4r(0kvTLfLsN8#h9aB!B|3e9IcA#sH*gn%xDtG(coMH4vp;B|b% z6FnR~A`VY{s7Ht25`@<@DD>QPx_ul-&(@mcJAgX+XOQKuiS#mHG(CDXgv_eGqRF%_ ztR35ej-^7M*RFGDG;jjBU5Pm8dbH5J5{_z*_o9qwD?YN_h8L~k(Oy)9Umg1}$jpE; zpRA))>qNSLx`0}KRFi&P9evwcPZcL>spMugy}xsb{?_J`chM=T^-84T3xdz`^;$X= zX+>KOkE1ZRcUWMai2-v}vB*Y=Q?_-6rhq~Sz5H6>Lyu&dtA(?6`D|u($Axl)Q=EaH0=Z#Nt9AZbS=HjxJJI`>Z##8Qsj+F>Y7$ewy9_6{Pq;8ofAcmM+MLg z9~WBk!jzU|jG!rgt!OYY3>}4hd;R1p?!9z4tZi?EjJf|{^}Er`By18}@nII*n{Lhg zZqH)@GIN>Nj~VPiqZ%vezYlHW;=%p5F(l4w=A>Uu5bcn*s~&uRp$|PS|G*PQL#cWF zIGXZdHrIJQ%BX91KJ7P6r(YjqY47cA z^gzhu2$}=c{ZgWw1zl+K_AojcN}$KY>mt>rX@Iq7z_Gm-War2;)k_mti{=bwV`#;! ze>pIx$%`0GozD~o2`tiXhSoI!MKtNwi_3Fy~x7Lto$I(vJ1nq;cjHwJE01 zQON|_GB<|Ag4XV08B6wp$F|1Gha%@MA|b9xN54)d8NErgFhP@kA5f)Z0!uLA!gxBm z!I+jS+0e>_wY0w@k__*qQSYGh)Ud6J%4_O`GpL^Ijv!?nt)x4D3yH!qY4_4Y^x({P zDjTtcM(UbUnUF8lyn7oJ{bSHH_9wqru2q!mVF*e_$6>u$8)SA#u_adH*fa}cretEl z)Z+vO?nh^~CEJxr%P(SG*DToEy(-MFJ00{jzjO6!*J@ztZGQbbq5s9X);}Ko;>SI=~heyQkq^E$@*;~xePb@6JbxWBkZWs zQ^*&^tRTzZfuw95P0F8BD0|Nt>fTjMQPYG#`V^udZ86oP~YBCc3>mf@X##kz;x$wd}Y++bS>9^Iu{bZj1D8hM3k0 zF5CXWmq;nQh@RdqBDct5YJ78%el%PlNY1C{rDrMiT^{{#&Y{ixar*II;NXRYQS-gs zq-DLIjAljCzir0|Yfn+cgIp4Sxj=g=OX($lne6XeCbf!-q#vC_9*M`u=Sn1LTdgPY z8FMeMSSRqz8_QA_y}`ex`$f41!v{Q9v(-&5(2@Nb{;r%Ygz)skCzJq-%1qsrw( zE)mrW`GrTR|1#^8(}TG#Le@ z(;&N3l)X5YR4$zpbc=Je#if9*Za+`bHw(ycQ$BrDI74n$DYV}qg6ugT3UjulxsKYx z&hRsu^yi_+vxV3<{u)0fLP->N`UTgzXc;sXp91#qI#`c-1GBD5Fr{Ka%X_WJ)+LT( z4)gU{Pl73Xw0RcGUo?~T^$D!)%POq#^H1R4Wr4D?8uxII8kP({hQ5Pu;*@jWu{(Ms zZM>;Xv43aMeTfBB+viTsmTPHq%zuJDu#enIqG|V!WZJP$*!NN~>8gpT`YKU=G*Rto zo+`9zC|atLd?%Ds%M0P}zNnPg$6``ZE2NyC#k4Ytr$%A!u9$y=3U^*7Q=fX;C_FFq z8`b1$QAyh;my_bwVzTSbr?E3~>9d`nqeh;fm4}Z|$mB>8S^ALbZALA<8l*gZ0Bx3E z!5WQCSZ{Zi&z~A!ZO>}Bcf1X3vr2}pTmr)*eb6d1gn8>J2w9rZY~)5^wr(0HWYYE6 z#}_8d*uk8!ehYT%p&3iGoWweBDXnQ}XgtBpzNsV*6s+u2(@5 zKU4{5<16G)S4E|NtLT~J6-o)J6z(OL$gKA~O`dvz-er_i`OSJNU)4fot6NCl{5pjy zG*IIRq?f&wwAuL*nU|cWmg$1V{9g*~{SrrO#_c2hwAHlTc`nV*8Bbr9|Hd8vs*njj zxVW${yjHNu)_aMDU#X%{CZ>WxM0P1iNxN$3@Q`v+Gd)ix^7%xD#njO&rvB1;dau(!k!iIA zZq;=5!6nK$dVw0&<&s6yNwRuzglf9Osfzhh(P$g`wo!*xCk`fql6qVz_#iD`N})$X zir9Et7U!~i5{!)80Xv0ZPWNI1bYJQRhZmz*=%7jL<7IPJzsi=~Pg}s2B+X}uQ-m2y z*PfYHEfRA3OIf~XISbBqV?o9atOaH;^Lxsyrtv8hb9=${>mDwhsiTqUDV#Fmf#3s` zqD8OA(TdcWlyl6EZVX>c+J-LFpK4D6vYpITgdOBzQ}Pr1ZZ~8dX_%%bP4V9*aD8LQ z;piz!(kY_asa2GFgr{$S6j4?~x}jBM_4*P$_;;SFeF`XRR51zNg|z-1PtkK~NVTPm zS}zn(dtw&dY&cGtXAaZp8-jNuQt(81x>4rcne@U-iCm?g3A1e$TI$F_ zV#jArcjOWw(~|_7H&sCUkjD@-@DCmi6|zR225jJrh}m6qW)~_wncJ}S%=*xJCUDy_kp=C=ir^x9l>gG@k4w&0 zV5^{8d!@-!%THk+HD?Y54cL&u+j+EE4ydepIyL_?B;x^n`gC>*l|L7e{YY0*xU`Xi zBq9XeE|r!HqP8E~G_%aGptE9|d6%;$V zn6~QWlKGtDv@R;1N;^WSC)H12`7fcFQ!S`0ZagXLNYU)t8~A;C0y=r>Otk2LzvP;AHa0p=P$3j_! z;X!7d7%lkOqFHlU3^P3+%c^5y*iE^E%>7IlV<)$>o|S9ZkGKWwn273<8dvsXgV zggv5<=Rff)yI13mjC359(10Ji-{ah*q113|ENN8h(DRsyG^kgbZr7?&f`@Q#U#Lv^ z!?h^=_jFR1T0)LbgQ$3YByEh3CsnT`+NF|0HpR!tV`ef{KR80~iW5mr$fR|N6G-7` z0*#z{h;HwVp?2ZDEB?8YRE^itN)3B@@Om<(n2(^e$X>K`zJkSj4r8*_LX@$Q#Sr;; z-frS#QJzdK7pSWR%j-q3Wc6mqyqOAdJVN)6UbwJQmL+XgXMKjIOljN#HYUPT$YcjG z@wG4((GXF`L#!EV+LQGt>SK z59b(zyYq;e6;nI;+}Gw<(y|TLNT%ZR52d&qTk!SDUi>Izpnl#PPEpDVq^>4MuTM*o z%)nsUKW-QqHjSl`6HKVBdl9{x>q{kbchE%HP&%y|PJTxZ&5Phgdr(e1HXWWGU?c9^x|POyP zJBv44;K;k^$6F3G#@wIIuF9{5M^hM8whfN9_rSey6+)MrbuE?$Yvcxk{+ag6yr zUc%Zp_^^suI~Z3L%5M8cu#|6+EMiI|GrxL(>D}MQ>NgaocS{4bIX{wkh!ut zqs834JHRz(4;O&ZytPOU6>pj1#s?09PPGvRaXOS|Zb>=5j#RtFmGbYnQHj&B?4fyN zCnb2F&RbCOrCId6cRKmqF(!p;`gB55lZuo^QS^?#=%aTR6DQ`PwAVI#I(`;fn*N~ ztg6GqXvI1iGCv_jE;&-9j6>)@|Dlw6b|{HGhR|%OfB4j*55vCPz?exF@b=v}{Nd?~ z+CS!^mZ>o|JkZ6AFKU=`QXbQF@9=)(6!@O!e??W%VlH5>DnPOqWGzU6_Mw-d%C8M< z&b@{3of1rPU(^?YM3EE9|-T3njKmk@dh3;oK2=xrhJ2aM>65U||F5 z*QBEMzeRX<-8)_!=*E}djjVC#Tg3V8yvH>>9tEK~YS5WH4IGpgfXi@qNc_GG601BR zRJ;{@TMj|DOb!gPtpJVB2xsr!fU0$Gp=p>jGaDGi9^0v~c0ud@mMzV09C-ulAKm~D z{R;TfkqK}A#=ykj-LUf*6SN@#M zdO5B|Vuz@^TvVezm=o#B&g4GaE#SznjWaJh&b15+5`k7I4@vT<^i#-6J_*C}=SNYo zEem}u^3gTrJf?3xk5A_oVcFcv7*=hIX%$N__|_J5wv5Ilr-aV&*eHDTECR#1Fig!0 z#X!T2*x@$|A8CK#`=cfRy-A0JKwFHJ8o(rKhrqI-?4OZtyK*r)P+#l&XTx5F= z_hY3im#=qGRJHbC&8a0F;ve>Z#fjx^qOMP8xV4Y9pv>0_!q4hMpV=F(ZGhu)d=kZ9 zEB5kZv>W*Lsz1EnO=V2hoQN7POi)~8jy-M+8|T|#=b>ai*f*WmUR}y3e80l`7ZmbU z%S(8dHEq1di?2L348{)WZ+wScHSfE4DPQK%Cbl>t&1bYL^Eh~U&E1FNxs*L~xU|^A zA{;cBZ+o4_hv)s^XCKl*_uZEG_~l$w+-ZnGlfLqOn^y8&i$97a*Z<|ZN3VjUNtw{D zb{pKMe1@t+gPCsXAa<+y1H@+D7dp$TA#l=Zu-_r{+5Q&*Rbo%@>skcs8Nj_4Q(*SX z(co(SmNU^i!*y5babq+OSz5j%ap{)@{O8{>{2Bu<-l0cc+%Y?n({j>)*O3k|!_N*h zZKpwr^G8l$!T~P$vOG5sYbWX`9xC4Zxl`=Fcm{8@YzyC`7te=RALk9uoZ$8TQxr*W zTq|n6H&@hQVj%KY9!05B|Lui(2-_&}VZ7iUys;*wBM`A!ZI% z37H>>VG5k-I!&QhJPs;nTm^&3SCFeAA+TN~nI;WDe9#Mcx3UQ?Jt+h;mlNQkc^Jkk z#6#7!NRU4i1X4rX;OiO_NRIi-mDR*^`1y(D$WL?l9Jx%s{?Sd|f6-I^OGgE-U2o1m zD0wCdZ~7m%QJ+Eo>@aA07z(#d=ELuPWjJwp2z1W*$?Z+O&p9d-a1vwIbNRVLxaPf4 zA~V0&mcDgqmd&XLxE`lyu7lss>BX!Ny5lXl=B1-J5A9}=@7)Yh$9u78ps8P^_fd|s z)EUZY`?QEk;=YNDY8<(U3E^C7MgX^0>945OOjoSEtAsZczJZ_QqOf^=F8WTqfD%q( z-1DyirzDl*;mL8B47r+&c}2gQB6N!5L<1$U*m&1kP-lhUL*SJ9xXdH~8!& z?|EJKcf4~e@}4&P_~;xZv5m?tj&^x~g>oKz`CA0$bt!PGXD{Uc*$t;Ygu#4+&EPbA zzHlBZLeHH0TuQ8vN7@(76-^J}oC;dG{=3&Ws{`5G$7Mp+Rnmy_Sb9qoe!AImAY+WU zYrUtq%G*W!wS0v*W2ukWap0LO1>Z^$8=H z>n|0StT&cfKN0v04}_iE>F+Qy>MfW_zJj+dFTv;HGnjI}9V}NDL&S=`(DO+Z+?K|2 z?FNlCxvLNIDmU7BHm8@r;or!Iz240S-Ln&0PM^R<`wa%q>w6)TZ-6m}?t^PILI2ZY z7@AuEj=xU97d2t0ml6!q9Ont0R$4If@?g-u_>{}@zR9VlJm8`s7>XJrKJ!N|W%2Ht9*X6X+C{Qix47-+ouIKH z7Xsck0P66dRC@s$)C!3) z{iH$ErF2Z35VD2$JXy(W9+kx05BhlPl?csmEx_O>3k9#iLg6l8hskCPJMT=#x=3x5 z%22|om*j;rM*%JW8;|}f96tWK0pBl+#fC4Zu*s|#1HG=`g@0wp)Y5RfCe4b$dFAB*JGKA zssg9~J#;Fc2IFhf;O9dRPH~hO-{I8D2W~S!y`Fh!ve62|D%G*AhUZ=8$n*H7Qk2o# zz+Di&e=!gVZW7VZH7f+#_WMK5;x%9@+(+u4EC;8(o8aB{4bbT61hOXMA>sTFF0ZAC zOFL%Ewfi2m^zWaXuvQF_ECQiVOZ+)>lG76uK6*vde)}n8-JcjN{ z;4Q7|#PwrcMbY}n+}9j=uzaiuW;3-QAW#$T+H1nl9XgPvV+0m&L{N5lF}RWqR2)(V z+f(laA7T}!nc~SgzInr!7X!}ZU_nSOMocTf4dMCNH0UfIK5+&MFQsA5 zyzO}7xg6@L+^q?is|eQ|G9bUR7f!j2U{e=pGlS&mOy-{r+iUB}w7+_??5pe8{h;-1 zqPjN=`L&$QoIa0L$W37N)?YwM;7FIf7Ciq|Peok;RlK%^rI0lZ$KGp4u`vBGvWu%x zK2!!9Lss(nlZS}Yf+H+7hUjpXUygD?pRaHRzix4EA38YI@h>=~jt?AelYsjls2 zAuN9Xe&)Sx4_gwlgY|#k$TT-N3p^M@cH@`?8_+L=<)yQr{%~?m}aUZSEbM4Lo z*JFAWXIE0k{h8RpeVlZI(>A!q?KxP=Nk1><9QtCoG2<_ZlsBmG-zMGVeb1QUgWz3= zUZ-(>a6Q^Bdx=&%29x^UTeI63-n6GfMN%h-+vQpQ<7vz) zb1{pw*~Gd-LfOrbXm)6247*f&kQuHBXW4Z-*rKP)Sa72$JES>;JvdSdjp8{_Z=%QD zI26h|zL7>VRYRPAPy_1|AM$<^t$DLquA)gJj&R9A?VMd!Gv{!%hI{T>$~k;E%LTv4 z;5^JzIiHb7xYj-Kocp;LuEsf9;ABQ|b+R$s$_H^=)Q~jpfv+`}U-Dk`>X?ey>Pav! z+xd<6;O5|?X}hscF9Y*0655S@fuZt}G$C>n?UNZtgDS>T)#ULceM5sT7pc$+fg@1z z^Cu2(ZAUH53wYCC(1tgdphV#R_>m3g_^f3`d~HM>ukIAh>phUSYaD&DKBk@q!u#22}p+aKqTW{wl=={z4VP z;d<)?lR|fGlRSSGnVU`x|1uo?#X#fbL76x;5b*o|E#iYI;R(D$#op+wp8z3 zA#VO)%V+(q<3RjI}$#{1BF(<{DX(qPMwqenQ8-4&eOexaAzeH!Q37s7ST>f$O+ za*!OI0xNv)gXJzc7R(#4DrY<9BIUy*n|HBsSHswjJ5kJNbu4>*HHKwRjbw#q1DIX8 zEt9bx!#Wq;gB`~XLh{BzLSI*+$an8NUUq#fFPFcX_jq$e{B@Ed_pF=eT1Jf%de>J% z;=5?Dxp)91>s;aOCPSDxcql|q?&K8wE^!CtlekACw{R;L&gE82(&Wat{u5c*wTRje zofP$1trI15KNf$nbLNd5YWdjo(O9BkjT=w8sKs{ImWzT0T-m-;0%^C342#@@yvr3inj4h~=Q@ z%AnZF4lYax0Ljj5urBTbr(>hpyLb_EpS_GlUiV>k3j)Nnw_TdR>~Z2mGo6yRhle%mRQTx zO_&UC_iTe&p_@5OyAsTe3SnAUESTmlgTY4)K+{(WYIARLwtg90Yg7RD=&cDC;P_Q! zx$~H)PpjY3YMpycn#@M=vcORO*6JEwM_LKn&Mn5Z_d`);STZ)H=iv#NE4cRdO-v|# zh975tM~PoU$ZC@U?OLErSDO?`I!K-t-j*Rrn~%7CGLQdc12E3}C~vd1mow2!fgsQK(=$guw$7iGhRo*5yJud#MG?f)f1j&g$phQV8Gp3sbI?+87qmJ`v^X^O~1 z)*jvuu7cmc`aogH8|bzBAFQwGgqB%vL4$@e;{$q3t;dErTwKLql^@Hy705h3ZDK3F zda>I{3t9L?b0+GT%-oxVF2VE(tXf5%MFfpu>A9akRkc`PSnh%)UnW8LpGHpmwl$Y5 z(=W>Spvv`_`EZ&Im$?U0M$p(811`r9Y}G$NCs@gTc2Un3}zcJm-(c*GC!}iEbhf- z=32Fh?fAQj^*7FCe%887{pL`1yY(GtU%vy%W@0#%R|rzyPJ`*86ex^24012yp|2zY z9yD!$yX$OWiS-QFe9i<6?;3&sc@8|kdVtKNNKg?nuVtGHL7=rk^|*_ml$;LFPaFXE zE=OUu8VTV~i@Bg=FV1`HHIbZ7X-%5tRk63tFLBqTNj!MO@WG?S{MYz?e!zYfHa+q{ z-|3-vRA4dCq|^BNTp`+gsKOt*i1VYa;=qL_e7(FGYb;vu{gpa2xK)ag%Z?+vxdDx8 zWKjL$d2v@|9+x?90j#-L2ub4aP|!MxCFiLL{8laY_RK`49AV1pd@Y%>!aQcO$(0$z ztY)=JtJ#=A%Weq`K+Y=7GIpLsjI|3$8O@P>U8L;caC3qfE41cmSp)VvH-ueJ& zWDam0u_rj+cFq^d}L@{#%K!r~QX;eJwiAw8J&2Q}KeKK1!W2#La;- zaYaBNb_yBZ-?Raj`1@kpnk`rnwgdOO?Zw1t;ix%063<43;zWV)>VD4^Z#^@|QyQbu zJogH3YV=g>G}Dcn)T;m^HP(a3{wye-eGc_&MzN+mU3SWT0_!^^^kYvO&&;Rmu_~F# z?DY+O=J;cr&^0dHdj@@nj}tn;q#MDl@EmA+90lL#aG?WZGuU;nfFA?S(3|fB@`v3Z z$Iq=?KS8re%Yd_SCm~De1cYrl4^BR%g3r4Mj;=Td@rzQy6ZgSpbcKKJ zMiA-nh0{x!#0fp*eA^Fc{Jm!xCQ3(RfyFVrm!63eg`NH(s}#IHJQm$H9l$Y@_F&PN zedsqP7&okm#~g`mSk>Z&?`;6<9cE$Ts5uyr1-O6oeAF7f00%0~@S>wCuATdfU;l;Y zbN6rKqla%3_n#imHSYh!6@BrBngwUT7;b}Wt^_NQR%eBi3|Y~v$t=oGk3BWgV|M+M zSZsnW^NkX+Ww}3K`;rH+|JoH;J~ju!KO_j1EPEiXXEn%?u>49Hpp)>7PGrLUs6+5f*v%-Js)Nyy z7EboF7iXpuCNjD=n%}dyo&WvP5_e6D!tE_Nh&zgf&Yde*=}qjL?UYWw;yA&Ml|5JHF~BoTXzDMV6AB8rMsijEXr5JCwdisVuVU8IsO%9?X4 zA}J*$m2_85B$ae=de{H`v_JW>>^;|*WBkVRSYlwR2VNhD<#DOUaagq(?R|!Dalt5Z z)btyst?WR#-B5vc`j4rYgYfepQVle!@j^U%l!0`wH_5Rv6IE@uV@JKF|lOV zE7X~7p(4YWiLBZ~ldZGUVEg|a$I1h`Y2EG&s@g9}_4m2Vv6!m}DWOLpJo`JCe|16m z$P(<_@CudW#*kolo?E+c3Q^fSm8=VyLY4+hCW5fZ@*?mj7Dabp%8^sJU{(_Py!YhYH~tr|YZA_5y&+r>A`Lh&~nw{?{8P@tr6;~H7v@COxP^aEw#jH1y(*W=IGr;ZcM zU3W9&XE=UE-3%I9lFjv zfRhF)nEHJ!PB%Pdcd5b7X}YFkWDZ-y^+ z%}T{}HdVM@t_v~qGoBvTi*IJ$#@j7{D3tZC^TjjCdMpq|5PS8p~?zdhG@d$5_&mDiONa;Ydh#L69Ny% zfn?BW==paLmWdjp?WQ>V&hM~x@BDxgOGcB3!xKoFyb?JzdjdH)G@2C9&saOV6;GE` zqvVcU{28+whoqNaTDTEz_85ztdpG>#F2aIse4pX%7N}A81nY>Ua4$QQ?|~eJ%k6Do z;4F{N8s_1>qCL2=yc|b(KYO|8OAN+N?8;_XS#}gxtlEX6uNYv-nxn8oIhi|uTY@Q; zMzetj7uaw4hs;f;huK~H%eD^8=8-BLr z9qzM*OTU>4yObvjWp+slRRbO}!#&Z=^tmOoY!+up3OA@maT+zbwU~D2{N&6&-mBda zc0rKzc?pcSI0KpqL-6{K8u}laiE^8lV_shZnr5BEG^KVFRR6@5HSp zGikq(kiwz1_gk!N8pi5#zp;7ZXOtoBX!YY9 znwRfEy=hA5-em%(-ahA;NIAVJ`JPH?inA?$=CD~e_pw3a3byJ^6ASbD%p}f_6H2_& z65cMHDwOju682{Edzi9XLMb~Lp%Ksd%GRo4od*Og^wtPHUBk~F4ORKM)ce}PA6kN> zj&6aMqYFga9frn}w;}D24A$!j5X*zGt|JlKzvW{3>ngmu^C2GV`GMsVq{&UDL>dk$ zk!zR6ke&B>u}%9j`pfUdZck4P>mc}hpAjBCIRTv(4uD6xr+~Oa5*c zM-umrCN(?^d8hY%#IRCa6&itZg@{Gh$D-ZTVrXrb0n3;&uFUElt%zO3T>s5tcaGMw z;I;3V+Iaph`F)JgFIYyH86+hPU-^rL+B|0}qE}dnS27ce9He8n@1gvHBPZee#n$)K zDCk=@7qs^$L3wB`94q|^Iv2DsNzNTpUhn05F2z{&u?Bt5KR~~sPxySyXyScGku>IN zkvq%uh(d!liM_;orL;fd$gB#qhzdv3Ql5F2Z-uFHrdT&q6ZIEMV)eHUsNb0jw)-`p zIlQm7HR>P@6wznO6Jl76N+Bz4u4V>&ZK85Nh20+})7IngH9VyJ)ZGy)P)}ZH!bhMm#5zC$0v2kA??h6=2Y*J*2i8b%8 zdT2;I0!+!B$7ZBE#+Y}IPa-crijtsPE!aPthhAop=$RggVk{KXUM@$|+qNjDpn)u4 z2(r?6hMmYX@clAW>u(lErIWtXQ?WDHUxiI9WMMi}QMP4XC+li8L>FVLQyVHQoj}Zv z=n-M!bdqObPF8KQAoU(INkQf`!r$zPgXef+>OYEPj2S==_jZgiJ%{smr(pQgrT8*g z1ZxJv1n)jxp_aM^?Bf~_7Mvc!JbYtWYtmlk|160~c}B4=*_CY8BxI_JN=))s39ZV% z$PH!`2{c+4!m!CH7&`kFG#<*K*CKQN|Luowex{;XD$lIRZNtEWgXm!}n%v`oQ3ENH z$QZ|I#Ns1=pPFq)Iy!8K=V1$C^pxiWDJv884}bZ-A@BRLeaw5sIHN>a+Y(}(rUpu`fhNYAoSI2EMI>aZ~huX z28HHCtipk~*)AZhlii56^&%p@*_nt3*^>SgW8ykx60wjOM@rrQL+_n$(5$Q$e?(?t z{LkgsqNae?yHi0qc>|}pq=J5m6K9KzHQCS=1Lk&a2D=kv%M6$B%-&Kb=IJY7zu!(| zUyjw#^6jU%>-XLWBosqI7pkCT$|qR4M;${i@IA~MTQK%PHrkD<#mM9rcq!lyW^R`u zfu*WMOJ@oxJ7Y%do)99M??U=M&nF)z&n1=5t%$H-DtV`%OmupsNlw&wa;#B>Bq%D9 zFEfTPe)4@3T)m9uUyq?^!hSqIDj03mUD3M095cpip=$jEl$Mr6i)-UBzBCw(c}~|V zZ&Bj!Xh{AnUP!VWeM$DEwWL-gi0tSLBo_0%Nqe^g(eyJVy(cutp~*6&u3!MwT$|DF z$_Z3h9gRg^JWsG_7`|y9fOi^=f(pL|uE{i5--Q>*=+WE+;V1k zas?aNWy+2XRZ+X$$y`rcry$X25ttP5Zh$+NpnX^z`9>3x_H}ru=OAtyyn=c)o%pBe zCoUBkPdpcC5%qJ^NO-dq5n1U>-cMgjetz{LmPeP6VY_+ccjRocFW88fB;RD4~ueasV+obQjA5z$5FoS3^qODus7=^ znhi*ie_t4oj57=Q+;R{xE#FGKy0#P3vnLaX+=)hSY^PF5 z+RSb2LbkDZ1(Voi#)_KrsqFK1?&$Ye+eF7Jg7&{}1u1{cAnxmF*jOfo74z&d?aLlK z^{E`cUB8WID?VdWwG8?8REw0Cn360bd!AXhjKsY4BkpVc$T4#-viRZxa`ga`7O&Z4 z%h)+&+iODBm)VgxQ5#}eGn3SM7!$D?1G1??n>df2K+bE5@a~TR9DLb}mBpX&>J$-T z;vz$WL*>ckf3%4A3o|0m%_nDT*ORu-k;IjYB8~625r6F<@=0?!@%jwpcfw@i&O7fE zH@(D-VK>nh%JEJAUbMG!MfpM%487U`;*CeaxhoNT#_xiJd%j@s(i*ZIF9`Z-)VLRK zX49MRPt(#PKWXS~eYSMal5IAWXRY>i^xc--H2tXoeY*YwcQ2rhQqg6I({UB{-AU z61;Q!;{y$aHYCBrmIR&#QfKB&B0jp3ws#9i&IMZ{am|>RjGjUam32tj zb$wDTW=8&In-kMWbF$^g9Mbo~natX|oK*d{kwnIZ6IGW@M7hM1SY-1&qMfG1&S@g4 zQ5Z(;v-LQ2?s2@}l!UpvR$zb16jV-p0RodKaC5pPP*|@n_%r8#Kp*}U=t+MSWV`qY z9>&&l?Gw}Kg3E2R+F_X9Qy9mLTPCy9cc(DpAxS3vTb5lu^@a9Ke?cXq9@2EN+jK=` zIbEM&L31r83ygnd!2Q{h=(=wn=KPb0vM(zz-m4SWmq-wg)7nIT91_!49%N*X7bzNE zO0FmI=fiGCB9UlA#x9;s)-SRogHNr=*hTytXQ6abchJ2w5>A{Jb-gl#^ykh%6a@LAazEV{;xWzXXAeouIY zyS6=(=>c}Yb{gxf5NG{I^62`%Ib5BSI7o{W13HRf8=nzz=-!8Gbg%Ngt*X;E53>dIG;E#}Kf{3lQH8{NsxLoVd+1m5wtm}h#ebRt*v=aQcN*2H&` z5rIw0WJFq&{Jh_WQKyShHe(~6TB(8ZYIh;=<0=^VV_o}HXAjjo@r5q9X29~^&Sekv z=P};^3$|#yHs8OQ%nV{|Se4Z}wm&_Qt(uX^nnSbM&5jI~_&ka2{wJP^?FwV|Tn@9{ zl*TlkrZZdROrF`4!4^g)vhnlRGO2G?tmZzSH{yF@!y>z=*}@;3dg&B_aX=*e*{g`x z_<5VwvIf+g_6vKHl}KH$3DIw~Cp&h#lJW=c#Nzi#^1f&d5$j(~s=jy=qf3iP``*Q5 z__+^JlL#im9$_S@K9n3Pvm{%TkTx6^|i{oO>~-hr>svndsKM6gMpygYn-ELa)|ofqVEJuB+=LwenJ8nf{BI zXhIYdG^R0o$-}Jq{XtgzC7pfTb%<4+JI=~HFEWQKH&{?=3-2bs$9^y3`yStFSk~6_ ztbf8u)?L}jwh`X*8FQDlc{MZTj9bi#a*T~R%ig5${PiV!S$)+yw&V6f=8!X+X_=}s zndMKYa^`C8zK$r)mfee$HjOy6PlE677?FoB=9B6Vt4OrmMv|~CgaoPtlZyI{#G+^& zG5fNLgbUUXPq$4ZS2U7HT-;5qh)OxRCmvPGo$LBZ(KAOX7c9 z6O%dh}2&um~Jqwg{)t4?MU`H@|g{mu3faiQ>&q|mN&v~ctW zQQ>CoA8gHjzE}4AJu`YOBUGL-Rv0}bC3HV4DU{hfTBv<}l+eQ92djoxEU@G@+pNLY z`q^ddKc2b%4C7hEHeRE2=_D`MN_5&>gMUrLNT2mI-q}5$s7v{gifJ2(t8WOo z%zsbZ7ln|G+&?77dMoKUw~LI@+(T;K>?M(!d&%Q1yGdNh1`;-B33;J0mz?*tBB#X7 ziLua_jJl{tGL1EeqMJMkZRY)-5q-EKx)t|DUBXXI{LE)<2D*u@Lx-PZQLx+**p#na z+uBCDGe?f?yJE$vbJjBjl>;pIdddlCXM* zw(yI)uCPK+N2n#3B)pKQB7E|T_gheTVT+-j&@fnE`0bq`zt?3fWHKhgN9xmrrqa5? zTNjjsk7tY)27l^j8z(6ln{5L3p- z@q8wIJYN|L3ZF!2xzBCtEjNz6(x1tD($=#}E7F;n?HT4{e2ZoMeZgG+4zUH7B!zeU zl!U2{I>Nwv#zOnXnZkZ!D`CCOY+?L0Ghy0d6XD}PW8rU}>MfOKE$m)Mgkm4&3w_O( z2nS~_6YBLW6(-Db6?$$(;XNH=VV#Du(A+>osQvaK8y{W7Y&>09#HT#!Z|ej0{Qj7| z-4&Dy7AGU#xP^yRc_ydo3{q}3k$CEh5s4KaajD}&RB0CC)2HWfnGRn+niS!N)(kYf zvlH9IHuHD7D74Mq#LxDvP}i~>wmHayyYy==&_A2{?f*r|``OI0EQG0k&0@`77umC` z57-_3uT0@I&u?F=D%?!;g!^vr{hk6_VXm^HF#KOfVPEoGp>;k8yDe>nTE;d)mg*oJ z$XhJTGhHQ2Ik{2T`jX$X_uDFTaoa2urmYqF?^!IYV>5-b8svq2+i(Qu^)G~8-3 zE6ZQS_R=h-+k2TA?|;S~uN4v6B*_WaD`^UMOqeEoF=Q>QE^!ow$;}t;karRey|WX_ zRHAU*Um|pfw-vI=g+fP}HNugBEy67iqlKL!dxVEgV}-8O;X<#^enO`&wnF0?MWN!M zPIf-!AnTTy$`Ug+(+l2Hpn2;!EHmAXK0hyG-RU8W4xT`gk86=vI)=n8+JrQFn~~Ri z%^Vgyi!_;8k$#@l^~DlM6Mw~M_!r3KLTe(m)|9L`u1mZ-Cy<2D?-)^5hbaegFxYMn zo_`#McCFhmp>HoP?a0T5fD%l}&BC4Cp_ppogO^%d(A&cj3vwpndDA{nGOd8}^7#-F zwZ?XHt2vF>cY>A|NU=_pg)Fr!k$GsG;(d#)Y{Yqp&H5xQ+-IdG{Pu0Cu=}2cFhtB+ zxY@x{n0U@asQzi1Fob7y`_9!6o{pR@)V@W8{#Ncn*?K>rZ&;wPBf(#o^~qCMcpHUc z3$=wojz5_}$r<+A)Q9;V>!)oGWNFnjZ7_y65PH`d%`y`(%IYHe_Ozi(a1Sah`-Y`W ze^IPnoVe(WAzq2&cuxHU-e0Onx=&3cEiRhm96xX0YCVNC%S|A#2Cj?7xVHUhaWNZ@%{qo2{W*BQE)L%8C*`HD;;RhLDy z&t|FM%v=ZE*@`Y7_Bh6mdByp%`X+uR`^TH*F7xH@x*M5mTNDeHN@kmrGgz<4LFVh3 z#`^aqvCF=D*fyIew!SW$WjJqTJ)1VOaN`YZ@$R+EZs!`NQn{K*NUmW!HmqciBNj8Y zGy#)KHe}m=D6udxan@7zk-k=cKwoWbpvTtM)9{UqDjd8-Gi%GKj_YAsaWH|l9NtQ& zr}eF3#sSVSYgx>3*lKGg1CKWZVhn9A!}(}szYsa*XC*Or~f$;Rt(0n5ME z#zzQiV`FaC{t-9lvi`fsEv%hLAEx`!eS-(-g`*ef)!7fIL8Bh~+Y7Azt1D|C;Mv0} zek^NG2rF(1XJxN;vs-3+`13fP$pt5}$;Eq_=e&3p@H>jRpNwP~@_X2VktDwUOksZ~ zC$luCy=;YDH2>}hWc}*SEMmV2dn&ELYKP_7x6Se_e!T)aZ>`Es&Cq52!!uYH|2(2r zx-!3^C9Le`LPlQBW!L*=vL;C#CL=zc)h_=-jdkBpJN3tO)|Cg;6`N_@07q}joTb@4 z`P6noCY9NEfL=Y5Or6X3Q@^!obX)Zy+Mkq5ZPp*BEy|~<$oMi^V46d>O2yJ1Q#bl* z$y6FqI+})Ge8nYhf6Ya94RTN4jG+y7dX!99NQ;YO>6f-5nt1;X{bM|eEjVk#Dr9^Z z^WDO>Xe6>P6Em6E>|8#-k*`8yE+3M|w*rnwe?E3f&=4PA0 zEGMNgmE-%^)d#!S^cDWBQpJJ&HrHVrAN;0AMXu9c^>peV8cb`e*3kI;Xj)L4M~Cm; zplxUVr8bcYY_qy4yYLTTFCNTg9*2NkRkmOa(Ykz2Vmxb{FhYHzdg#9LE^7AZ32iBR zKx-y8(LV+?v}th#oqwc^o?cZ-d*2k(PM>0``LUb^a#ghO#5EdD>!?~#1Fa9Krvqhm zG%n*3ZJAk0lhZTl{pnFOG|Zby?RBAj;?8vacdbSLjIGI~q7i zfpspnWAb&Y*je##cCt90v5(2@s#XST$jV~9yALsiABWg;KL2F-Fo&%%J;vOx7O{=K zg{(3*kNLhk%-rQuSV`+HCL6SzDIc1_vi}>!f*h_;sr+SBJ^CaU7Wl-*-zZj~pOYAA|KPx z^2b!|-wvAG@{DSKd_#+G_tCPNF8cQrrAHqfqY^oXXoi0V_28MtVal1b^yeXZ`a}sm z?N~<(5B1Z?F%wzbPHWa!wv4sJt!HM#+t`J9(M)bx96Na=p5?S8GQKg(%uElkP3f7; zwD<@M%*|(Zd-B=H>Ri??nZcUw#<#fQO7)CrQDVg;39kGbr~czQ2GNV{)-qS|s|Y}+&m=2{}g7C-w%!=3)6 z=l^!o*2&MP`g=Z;v;I9*{5e3wTE0{1hXYi`w1>w3eo4zjpVM6NCp6aJ2{jaXO-r)} z==Y&tbii&D+m;~CP*j4c=1VfWxpGX(e-bmlCeM=me^5!Ahcw>1g?4&3(27gdRCxP1 z^;mL*K6-wfx+-6z+Lzwap}Gld_~8_G-^z{!6F$T3;Kx+|`ZK4wYgzl~0H!`Gfcg5b zW4`A$u`i3ln7+|YCVefI4VlHW$;V=uS!gKp_{W2_r|GfK*NwDfxeF~^m_J9?!Vdbm zd{C=@3JIUaV)w2|IAww+#^lQ3tkeCVx8ww9rc40KYxip#%`~ZDR2;QVIYEnMu2TD# zHz>!S#Tt3Hc<%T;8a3w$bx?fEJIlUOc14s0Doe6aP7*9nZiI5;Uum5EXWDtSkEX*{ z`ZHaGJxd?MJm1K(!{Qoj)jmV!5MaVo?&>keqtlqYB(NPTX0SR`U~96)m@*rpzu!Ee zgG(<^`)dcNd(RG9vSv5kk&sK}&Nk42Ya*=lge*JYIhExtv0@@m2$K`BX8}UO%o64> zwYxK!-(?e)8EnMjcN($pE2gu8N2W}tb0)Li$9u%SX)v{IV(i_HOZ0N7F|Dsowr%lQ z2C+2_U}!o9uQW`@KgtVG&)5$Ip98S#oi}nlb8*ok4Kx__6f{T0fcwFF0{zHqwUtc| zIb}Ih+8(ouzSGF3;^(Sq&&j(~TIM}n^XxY*y)VVCPmyQoXO-ES6nXY|K#C2TiZJi7 zL$qzjAZ=gto0=L)vY{37?A2Ngwk67tjVzkYaHS0sjWK05F~)3jjtP7GQlAB9@pB2& zQOr<+r{GvOQMvv@w9IlTwI3rvU+6V)UJvKe@W`WlzUc|os2QL~9LBN7rD`l&T$_dG zX|vKrlh~`J6IjIrF=orZW4--Wx)@S8G$Rz$8vCa-JYq z(GtXRilNM=9|9vZv0K^+%^X57Mkf((Y9Bz+hBRE1l8m)0;;_2iAH7_ya7V#djAb_< zJZ1;DO&m0JntGg-iOJssj)#6oFv$VJ+*_%3yM|Czpu z6=gCd5^PP37<(-JgKm8InD(ryplxL_RAIFVP1@JWxp!%BA~0gx68b`5=ji|ouBAYY z#%1WKc?T_l<1lmDRMbQV^n4bG=F*8ccmE+=a{d^8oLq+ArOGkWqZm_*kKmt<{pc+j zid`37P;goYi`NW-__HE-QLPN|Yh}3aiu0+SCjYJ}X`_W-LDR9RYpHoG!^8k2RgV3x%eOw`_( zovcx3Q?E&|>Pye5!hYUEsE|e5)i%?hZUHqEQ>29juejc>I<9?>3>^|IqoY?Gp}GYZ z=y%_Tv|Hmf&6xX^UWk1{d)({kNYYX2Vm6n?#l~`JF@XZJCzGHyVmrK?dIqk~c>&Kn zq;L)YJ^3VKfpvf8<3qX%|89)nS>*fhnsyEv6_ldp@pC9QbO{~iUB~m+I85A9gOw}K zV$!$*oE?>nhIO0q#TN%$^rKBK=~pV8#UYxat9v-$bzmwd67ou*ptuJT{;7j*s~^xS zqJ%mTrl=6T07GU3pzGZosPbVij((AWxFQcF8_LniqZ+$y7}i(c!jIGL@bjxy#MKYb z;(7~utzoFL>ns}7=b+(>SUk3CDOS%l!1y~K!SquQxVqcgrhb@8U80I;^1MzOb$t|T zd!fXx*Xpoqmv!0S@4T;`lVT4K^il81yVPU%McQwFf|^c0PQOT&QJ0)5Iz8(KZ8UsD z$69`-3C@zNsz-*|xs764^E&9z<8$==yo1y(Vherhynx1;n9yiNHR>oTOF#Y{OEbLW zXzx!As`}f6YH#j&$O; z^yetHybCpKpYY7vW~}*o2@78y#l$DOuu;JYQ$r@=wi)g4ZjLLY-TG9ksIZ30o~xl7 zC;Usx`Ez(aUx%>U>dfe#0*hHPis{NerzvkQQVcynqu%;b@8w91zs#mrtqBd!@TL_s zjwW5tr528SohSN)_J_Qr2FqJ%@7)R-FgJ}3eF&!h>zwGZWz(pQstTP{GnVccmZ0Hn zW2iP$rmeST&}Vh*6D4LDs+97P?* z3~?cy-?`i4#b{cRBK4hXPVIjA(e8i@T5nfEjYLmVyS0a@#J`@@_(&bsJZK|WI+y1) zbO^y*P6nHISfaj^AKEUC!SP)PpK1iC0g-kE5(WN<+$&~e$>xfjZRH7`JHVkOlz(L zlZ!P1A^pJV6-UybwH3Tm;65Gs+eIVYn&{^KT*|VR(bWZGsBuaZ=M=Jjj=JS&!HaA9 zf*ouA+U7=8%_-V5gR2V>az}g>sN~(b)Iv3cO8-otMOiUa3RckJUTf-9tx4M_jG;y0 zgPcxl7iZDl&KWOx!ljw_a^oyVQ?1w9)V_E=t@XJpYr?!pr-+tBB zwATRETrUNU)<1v;jnF4@8HU)!@H^re_|MyXbemR=vSZF;$cig?c5f|8mNGu8B*fZ& ziYfe@K6+&hrmVS&(f6)n+KrniReu-t&$T1t^HPiC+OThNBSt9kzp=}?=<+ZD19k?W z@gl@(%W>FFGNAlNiNNNb8`t)DJgs`?K;OS!Ko{sJ(}F#|oY=YNw(S#62w2uE(x$HiRRnsb{t&l_L4Gr`lSkCr=qroWzYCzsOK)z&o6O^a6e zNYaigA2{hrEu7Tr8cv?Oz_m`Q<}?@G;6@}~aC5XIsMeP$v@Fz}dS}d{T{+Wf{me() z(|-|-|8{X z@D_H+-Nf-u*HQoB1>9M38a-Z}L~pw@7+QD)QY=kHtiv94sJ!wW%XFJ{1Qr; zm0;5MOw8(v#*LawdGDhRvj3jLCYxkPS)vVEoyP=8e>-iT9-SoUt7;bbx;VgwS#h9d znFco}9D+}chhSuTDh!>E0K=L^Ao@Ta`hLw4MAA)M^jj%9T;WVT zTT_Kq@>C+epHnxx#SJ_>#i{vZbKeS6IPUm@q4T9b?TD4BSCpqs%d3x-^eCj)I z9o2d7Lw_!xN=M$0qP5rBxYwT_}9&5fwZ(#A0Dv%!81LhxRfS18-f!&~rKt%5O zbytgp-0LxwoUwB~_cWt{%Ue{-X^zh4N&+G|FEsX9$C8G~uH(wa)O+R`_# zJ6*hc{nX}x>y=$&YJGF_1R1kOL;Pp$o{B?;xd zaxgRd1oniT#g?o8JCiS>Q2QcI&pgMgZcgE2(_(abe*_=DPsjM|PmZ`-YU(l%uGVcU>(du*dGX4(2r%CnX3 ztGDgY9V2M3(iW6I(G=h=GePsLl>*UuqriEz9lVlGg2CHWVEg_hXjI7J5;GHAx?%zT z+^_)^yY`^P;|w&OnU58ZiZQOG6t8=gVZehDd{$k65}k+9w=oT^uOwq0mxLODJoCxx z0P2lo;}ZK4R1P|Wo_tNX(~8( zoCVK#9_DRW6W9osBOk#UpC3@6%{!qir=Y0vR7^}UMB_0tu=LYRTtla!|IYFFG^`7X z{;Pq@4aY$}AQddMwnNlaKN!ec21SkT&|NVP^m~n8XO=_(*}hP{EO@$j$HXj*at?*!*!*|=1^936wl1~y=!=u!;#utm`!O_Wg@ zh0}+hg8FSCSlL~KuEkX#`iKKDqfT%e`yaft5Jwf=ari}ZBK~yO$Mzfx95As#nbR{+ zZ=w{oA9xGD*WU%1`9d%btpWXo)$qIXJPZgcU~zXbT>qR2O*wnvPuy0}4RL~ZD@4EH&NWNa>a9m>Ullx&>3I30UOC8Ay1R@83XjNcbT zVA91{T(&z2MXwx2mk@pt$hsV(ZBFpD;!%t*PQ_K9!|{EqI~M!R#+Wyg(bho*&nkR@ zLfw1N-&+M2&5uKS$ziAn$%6M2a^asRCqX)cgDCH-kTts&>Y4K78)6&f5mI%$fuWAP%c;Jr@{iHVE9G_X^Z;Kr#LXfEg*Jz18j*~4@Z-Nz^iy2$iyswbt}{%cr?PD&^$kJ+v2 zc)ws0dY@Lu=GT+ZVo)31ZWy4!3M1a9Jrx6L^iVHV6Qxy^uzs=(UXB;R@2&4ZV>Iuw z3cU)4B#S||Fc}PfY=E(~^WglWslYVHfz1*{cq8fx&%=}W{C7EjKW_%Nz;Cehm>eD+ zt&dF)Y%$%%1OKQ5qpo!vX3tE)MIl+35qSi^Wgf+Ht6bC!I*hIw8K@b)9}O1q`;EnM z_zU)+$)hA}GReTmfh@Er%D^Rjb}7bXJ&rgypf&1Yqq#Kp9sU>27dOE#g9;cCKMW(K zdmwXQ16?I7)^D)cugfz2C)16i@)J*EWIU*CaMvOgjDl>*MG zGD4XyJN#MXh1Y)t~4_r=P!x8b2qem8cn5vnT5VvbuMtT%0hU%O92oJI!7it+5K zIVnbly^GY@SoEU-UE7rTBa zV2rE;x~=^enj=~v>}4hR%t?ZRcZ(pDYJtmXd03G(8!TRjK(6RfNE^8cHme3eU?_|7 z9aB(HW`ia*i&6RUI<#_&LaklsdF~Q$MDZ+Q~|zG}A)*@MG%+cBd#0F%GFVu`L5PTHuC z7c7+URjnB6+PnkJ(G0%TX2Tl$4N$9Q0oAM3K~;Y$wC{9+JfA%v{^=C>r?i83iwKTU zP(l5)>F5#afH~SL&@Vd_?ZWt7CZ!}aKaq++ap@>;myTMPhUc61;_0sSDE-_D56@RXwSYcQH>-p8mB-*uRU%mK4uqrwE-=z; z1sxwv;Ml`yV87Y~);aLOKU09JHS<8{%~EK59R#y?Ccqo1BVauL93)J?4Tghn!87JJ z*x5_tw$YaOB0m6MPu_zOZK>#VA_D_frtzHC6zn%i;`f;MVCa`H%=2A^YWEhPW{efa z-kXAN!)5VxYah6T-Q@Xm1+eAYPSAeu48e8=z&4M9UQZc_+9QC#H?h!p`V?r(K7uj> z5j1L4!5w=|u~X9tYksf5j+L8n$MZ-OT!};VRS76MIT1zg@SnbW@dMA4`w_n%^IDS8 zHF-aV2Pa|Lq9mN9o5VZPd8Xc*W!SGc4F^J`P~GP#B)&TjM+y!?SV%Zrm0bp>oe1Qf zp9OvMEFhuI1_Ix?!0Y@q5R$$F#+q$~-1uD}xqLsk|C0~3%g=yGz*TrCT@TLBnxJa) z9r*p}Ih_5eigv%|qtCYx9PW?Bs?`bjtYZ(#&WXd|TXERK@3@MkZb73-Ytc<)DVlc? zH0U$Nr*#UbFsmQ<_A`k29s$L3p-}O~9*pizhC$U`g2&zK1!hxf1f$=o!TOf-4ldIA8f*8nJsv^cL#R+ z?8Y_jktn`cN%EFxC)y0UqQ6eXtdlk5z_*vV(-e?_%Xr`-F+O;RMQ^U9GHu_6Ya5at|JEf z&&LXzCFta~91ZhVqCv?j%*$JW>ZQ(TwM!pw`b*&E&FxTk?-cAjzaQ$atOYMSN09TF z3G1>I^xYhw<=P5x_KN~N|2Sy%i-4BCFbEhG0{5Qpfj3&Y;N?&OW1nAwly6nA zH1;CceYghi3!7kP-%GG`5ywIEiMXnD3fgTk!Vb1s>!wKWNY*D;p z8lF9+iZOe{QAFnT#%)G?w$A6xmmc<@$h9I3X(s!LNbfBP8R=gep zZKyO;g68R}V0?ZCByYBdOMMF<>)iq{k(dU44WbZOs0f#35Z=rWgTmE^!LF_x`l8Rk z1->ru{#^m~ug*YlK_!I$sewfP?yrCH9ek}8!K5@2VnRpg?W7ar&j>bTmDH9%Rj4nc?dKGi54h54|Zc>0yG{nN<-)H=`Ec8&5T+&O1B}gwXM*E!Xzv+Vf2*d0MtX0Gk2pY~kGe-Ame$8vP+vZ?f2kUd>x z=}b2-pGCJD$We{ZI7S z)1uv=`Fs^#j5?o0$pXhy}O)j*u%oE=H3t zXws#XGwA)Z##GsC4h=tIPV3)k(00SW+&Z@!u0+$1lXwtOYiab=HmoZ{;5xZYu!H*} z5ZNgOZuw&1)b>$OKZXHO-iFjVj}Mw+C@0yBAzn|C%qTGc|x!nvPIi zr2+2Ws|BY%%LvkZX4JAP_FQF94ks5{#q9{V&gqx%pQ0zY4#z`Wmt-cF9eR{|INyS+ z_AR|$)$Jwtp887AaEJf>g_%IzBrA9|+6nk&AV}2rfG>ZRLv_b0Xf@mfXch~9wbEdB zRUr&sJP$FRH^JVZ9mKwN!^W3ypkwlX(?!lQM~YTQJJRGQ$uyxTpRRwuomTg$ zQMt$)T=Ro^E^Hsq6*yr`fA6rP+6^mc_xC885}HAycH~e4%QPCx&*9>>&!f@9+SKU1 zC=Kqd=Sm_raW!fyt~;5#2tvb82>Q!~f?W6Gf>60)!L|*f;MlS$;Qzt|er~gc>@)MB zKEMas&9=ig^HiuAcO04uE`dkbEm*YsAtdQNhnu}!u%h4zSV-Oh8?Q^SO7#e&Z`lPq zEoXtpe@%k-Nnkfv|{jHj^? za+HaTqc?{{sBv-!CtX~@MSGQU+B0f7<=Y=PV<#mVzRj3QeV9w@lQzpD-WJz7u0BvPqyQ2;ejT|fke?{jr&NPH!iPg6+iPQzKc>LP>B#3i)r}d2-5X2S@5tBYu;ay#6K6&E4-V zDQ#uWmacGfE|u5)SX$W-$~xqxu_rTzlz4Jqf*6(uWZ->K!a z{?kI**SUn2>|aY6;r;ZpOBk&zj;HSFX;iD`Azg3SK*du>=s?I{nrQcps;_!SBb%G4 z9eqtF%SP$)i{kiKMiy^QDxlEAndq*(5GNL!Aet}6Irp`(P*;v)fb`R(g+)}_Ifk}e z*-Jy#adQTXGPY>p0ajkyl$9=D&gNXUW^I)^N*zk}m=CNE;0^uL!i(=vCPO}}h;`*5 za!n$NY*fi2&T*6sFRmlsceIga{cf^-)q4^k*+HDI)sq)(h=UuS-W1hIgv}9ucxzgT|+*0cTS@vhTKWn}zkqzS30lC61c0R++R)-B~4`WYr zdiT+dlL53RJcQoYIZwxSgwxnx(Nu8$EoyD?kap+P(cfY3>5KytTsB7v?X^^~dx{2n zZdb?Uk&4LNmB!t|vbeirCf-Y%i|MipFnrtq%lwz4dZj(?nY|TzBkZxs7x4Otx!B$~ z6*E#ssl$~@n*8zx9gp;)wc8D8U91dE1UXuw{|{9?%5fY#OWDqgKTD-`sCnwKb3Dh; zPrTj=?*AP1Cg#T1$;8GIQt+^W*cHAdnTz@fb`264;V+~qtd~4`)_N_CFgvF8devoro=vX;|I*)2Nb?2BwI zYPfA3J#gn3Wx6iYZL3qMb7n5hc*D(dZS$!hc|^BbJ*LZAI4_~|5S{u}1UtE$NyfI> z*dC{kF%70TPuv`@Ml8nhngytkZiEsIE3y8MEw*;7$Hei~sF7{MF^)ImqcJz!D(Z@C znFD%Nnc?}rS}5BmgI5#2P>q9C^j7sP>R}a3Gg5cZIOwU&Y!Q z+$-{qvg3)Wbn`-Yn-CA>AaW}qlU)5?O~RZy$k@V9WQOGki8mZ2>a$14QSMr~S~U{G zJNX3jqe)ScI~gx9ApMLeG5+4f>kWwKbviELWqe;^-u%3xRBMed>m8cI8qBR@FXZ>K zYU&EKw`M8b@3xE1`V&H1|4XA2YJA!(Sx0qtzn}&0UeJltFR8)pw^aJ?C+fo&!2gD2 zFvV3F2TZh3*>DLK?XyAEtsC)m%x2X8umfjl>_w@|-souQgOM-2a4>2&dTevSw`318 zEneuDaS(^NYvg@lEjIo##51L;7?mM{s<}OMzkfNc{+Uh<2P3HJwIg)P$a=aqiOcBD zYho*&?_w)PAC%}c`S5nq5xzwr!-|a3PucNr~j|nc$_(DC2!(e0YT#cg!!y)t7Ew5XKHF zA*=IZoK|&4~)9Vwr@fsisLGy}mn{dd!NT zqm~C~e2pnxBqd76?H{qxW<0jJ>XW(Yxp7`+lLNWc7)4eXJ|s>z8cE9P_k-HQE0ePT7yIIc$mdZ&@Zhr%R}ea=OZ0(gf?3d|ka zAD2!)e2L5bK4%M4C)u~AQ|OTCKNSA8r2Y%`P~*r@swa7y4%R-V-N#;2=3Ot?l~!)3WXDPq!jb<~)uhgBwK*fz@!$G`uFJzSg3+MR9a~?oz>!FGY>^Pg@qunSbgr5vYd)aS zxhZt0C7K3`o}n`78|YO!pW2iv)8==*tV!dqQj_UPyrK7|60PaYkd;I;Yjc^Zdz z@#M1w%*UTjXZKqsu`7mOvZiY9+5Uk+HgvuOwdU#2wBB{pR`)oqJa~orR6d}wLJibG zs)rhMe5Vm{qWH~97XLm|#=ej_C@Z%Z1+Hzt=Aa|^a$6X(NwMhuHVIWH)37=v3tfKQ z!y=A#H?X|`nQ4W%X=VW$am(=p%9nH{Du=GiS}g527MyfApxDupIgImgHlUHSGNAt1GZ4Nl{Mff!NYF%*fzuaY|i&~*1t`W21YZqcgs<# zEpVOso-3g-ADXGxy-#%D<{z5%Sqwchr{KLvRs8T>A3gW4!RWRFsOuJnwR;oLV_pW< z9(#a}*NZu>Bt_{Ph#Crfls|zOCeETl&qGX>&&A*^Y1r=>&#gHZP~z}m+?%u(x6IH+ zjXYrtd-jrM4LzXt#@8t~VW#SWVbr(ApGvgur)?dMRC&yrT5=3Wx2$*U$2u9dC{dLc zbmkTB#sWPedU*@6=-Ef~dQOlDV?Q#hYA;b;xQ^_ZzJPq6p-hfe%99xrQ;BuT6v9+U zlEP(@q}6VS7bbR{7yY8hJk(2>mED-j8tQTTJd;ms?B^!7v+N3sfrmN9b|{)3fj~Yw{(j&`b_eS&NG?YF;_U7+0ZwaTSj5eu4=f%dtruF;VRi8ra>#Ga9$i&Lb98=WwjFNBgnb zd<_PP>)^J1qG;~(lDhA?N43hYQI`vmRDDMTH8l;R6U~9NYVH|Y_If`pids)AdsS&X zEn+j?i?S8(^UWi^oa5c!`J8v-_#`jugE;wMCPXT92f0~R6YuTRBA)0!)jWYqpLt$t zVx(VAlIYBlAjfxz6CI~MUT@3=o@?X8a!v1e*0xKS8a-8`+v?=0>rW*r&G7-;y^`4# zw<6f@o9?mE0fID3b}6+MJxgV0<B!lb>DnBX%NR~XL3VM#96XAdYZ z>WFg2e)wX24DPK-$Hel7Xuh@#JJviwUw#$p9I8Z2h-i)ko$6_MYa=SHGKS9OyG^9^7kQ zr8Ddm^)a^G z2tA|Baa_U{e}8d7{;kvKzN&fK;PhnjabGO~9bxdcn$P)O{sr-&V2+o610sU+!P%%5A{DwoQ2#5WdH;sd z8bM}-v=C!IRft*DCB)QD5n`HO2r}#T3Nw$ti!s(d5{zAt7~^(EgjsYB!Lm09i-X`7Ue|am^oY+PG{Y!_rys}yOS6Ux0 zkIu#FSm|YmUezmcC$UEFh?S`CvKZ~%HE~|S6fAQ5Msx4iQInory8lW7%@>HEEdu9h zvEU_oZ`CcDrb=m2>RTE=`GUp@G}6KQkLhUNEy}()L65&)PRn)*P=ocqSufjHtWJkF zyY6ggX+aso<9(AL;`%|PprM?&MNX1AK^ovq*Ms1mQ!skw3WR*kgl8FixDnU_fww=v zX!{uF@(^H>?sJ_|7hy*KtPs;=EyO6d3o<>IIX{=LAY*V^glYaQ!pN$La9w9%rtqf# zlmC7UmaqemVE3AvNk4{s$4oGt7X^(Y-e7)-2m8-Sf$-G_q{nnVadk2)Wy-jB%7O>f zFX|gjr}F4<^B>fGW{z!ZH{j1Rn^0%E6>2OqK;9a4^xiLz6IMc)`t2>L}aHN}SZ zZ(Ky{H;uEI9}-x@gM(&rDowocwh)fF{DwqsRs_|%X3%uvabu>6E`4}b01WXlXVg!Ymi5Ei5 zmL%@y90V9v{s-)_`2?K-ZJ_s;;|6Wcg!SRv9LfC{FvnMbqtq0ba4sS9Le~=QCw%kZ zFM2f9C6|88`AqL>OQFMy+1Rtl1o!-7jkPD&VXz?=zkRBQb)s76G@^`V??lmV#}Mt@ z+e#G;s%W8W2{j4Kqf$q+=!ae^pO`i;6~bkP*C zC$x87Ce@#Rfo9dNp=P~Y{?5|gys}B0ROKXaPPA_%Qc4SW9qTz)L;wW(BysM@hp^G@ z2^>Gv4Bac=K5G%Fq*jOlZ4qXzs|cg?TbNlbEX?ev6J*ve7hv}8`3oNK z8-gb$K;L*06#IX{Bb8B*j~;;h%vT^1_ZTD|WWw#{7*M+53%;_}@ZWI-XnKl7^p6!; zof~I|RY2KGb5LvJQoM9%16mqw!CPi_ zc(rL6Hj2!{?~$`HdcP7{j!AJ{g+Y2I%VU+`b-DpeZ@-1z@B87<(lMB&FT}VX6=OV!1aoA&BqKOok}=yX%1rz> z33j|ua9chI>P>x6GQSsgpZx&&dIQjB-3tZ#+Ckg;IaJ$~K;`*#NY9Ce`glM17_bhy zOJ_lbT|X)8i6R!~fAeOocwDNpayFG7yh`2gy`np>2%@BpB${yjq|ee?n77;l3yk-n zcZv^QdUF6x!giul@d~Vbq=!27N_hGk*Tw1V=DdatbmxO6D*w8lJ_{B@HPN}~AZLoH zK+x6E3{7elWAo~{D6cmaTbTFszC#L))v%^CGJetG%zw^8 zjNjZbVEPB4y7V)o1%H6tu|7DX$8k6<`rzo*PUyP)5( zhCNX8@iDCL-;0wR!{*ehWjJ+I9nY^9#^Y6Qs0)Wg0#S-i^ zwZVVjDW=a|hB;g-&1{d9 zV8#N4nXJ4Cu+3vet?3Ac@M>(9+jDqH-RhRI}7zw>Fdja!$Er~jhvo2TQp zlN-1_u``bPxS*E9cGM|ei*+ZLVhq=P+qnHFz2R_|+U{ITb@t_y4va|6T^|T$g1| z-I>C)j7c&#GDH~W%O7Z7{tJ{}j{`4o99)CPz=6tczYPjn zkudz>1hk}Y1=|%|$F5ErqLzq3$eSv%=;=kG9j;AmgAedVmMvi)xoFVj$4OMXYk)dj zmBg?CRdlMFi*;=#XtR77=B=EAg6|~p$gvS>X3$2H8lO?~L*>-_Zw2+XdqF$yjnNao zrz1=^!A&2IqIvcygq6PN8|aPvw=QV=!V32t*T&Dzg82JW4)rRVPoGWmf7CQSpSYyo zCO$s>M1NQj)XSHG^&(d&SQG+LT;|!qHV=ZDE1<3D6_ogYgbV*0gGJ#2Ou@h6%n`jQ zO#X2>X4b_ijNhaLQ}{-RiSzjZZ?BAi@w+j|F!~9thkk&c=vUbJvj@aqHiOwnIT%0Y za<4|5>nk`C9`>IFM@0{i3ttO6cj>_fu3u-V`;r9QO(aE48;R}09&V7=&cvJ`tJ`7XE!ggBIUPIHDKBgwlWz@Xm8C6@}OY^NI zapqAiOi^BkqD}5-d^-SjB17;`S_q0RJd6452RZMNJ^JoifHPS!lvBv3RnO*A@1g+n z#F?u})BFcS>iZX>qN50H|1JU3!CjzR5CWO&5+TR*0q9CTf!}jqfqH*Ge1>l@x$ZZp z`G_zHWm3#_{F}@*8yj90Y>{UqMNK6j}wxAWw7zWaHk$3fGq~ zwx$v+rSf4+Ck1TeV>n((5ac}g58_l-Luj@x{PvOpGt<{Zyf1-t)NUlY?!S5dVM@F& zya3kX@>=>g>K;|d9;H_E#4z1Z7}pwqp_%tz(*%vDv`DIy)(YlRQ{(&8KH?E=_Nk`Z z2H#VgyW&_Gq>V;v*Wn?}187%$3ccjc<0ke3-rIW)JGisZj=HT_pRokxKFeZBV;N1} z2DDQ$-%QhS6)A9hNV-OT5e*qN__>*Y-RFHEGCcxTuSx;UoP5}Mt{g5rZ-k1lcVIW? z6C}<54h8cCn1g>s8JD?|%v(zd##c;~Ir8Q=`=6YDQi#bJ6=mj5iZS9EA`A|XL&mQ6Q0wvRd z*>CuOH&MT=)YkS5J4Yg}Nk03W}rk*^iWyQc&N*BD%{ln>N>{)B7*( z(30j{I;zO0;@Pcq)4$_1rF1Iy?V*oJAMCKf`6R~i!cf*J67MaD#GkqsFwOHUD*Eol zpd1U#^PPsdT4l7eM3bsb+rYDpI7S$=cG9_X7PP6^Lc-Wdh!Kj0fz!$0b}kEU6c<2T zZ4vBEqfp>b1Koz5aKr5zIG6tgl|dn9Bu0c0_Y`7Ee~dxNlP(B7`4X)6H-Y=F*YNpf zKWwb{3Tw{{K!g(&JhCDng9 z-&vIrQP#i2)2k{jl}h-^>NYshAIopkzL7SXImGqBmr8J~q_5QL#Y>vw|ClOE7t;MZ za;ehyT>97W5$%e4LJx_&rF)!y(*|2b)DAE}`N9pj{U^svcy<{pKV8FL|Hk9(6&xoa z{1SKOcNQCCoH6OOA#Mr$O`}yVQjKS8+5F*X z{o{=q8lPD~qvuu7(xcC)>+@C`5VvVWlN?6mx{Vt8EG_I|JchTb}8H^Q#EL;qAk9LE0$a(nv zA|AF?r$c>Q9_+pOfa411!bZm;_kT@z&1#{B^Gb6ubi z(g=LrTG;>VDR?wK0iEp>0w=N{Ql0Dg&OHU;uA5=Eoi$`gnt_|hB8Z98fHG@&XuB!| zp`jm${ylLX|Uj1F4!j&!k`V;Y2xVjawWso*GvPAd571ABNogBYDgG8@A%=;QHLeskQsm+HeIQiEUownMcWsNO%5;JW2 zqK^jiHF39|D*lpCK+RmvU3E+jH|Qziq0?&I^D>W{vjAo#?nGg)KpeZ4jfM*muaYNd z%CAC)$K}{O>k-|39*!}kHUiDH1CU|( z3K&-emq(nt>~b>b8{C!wV@uUbgDyVwltKn zKS;ucCNkiXN=hV-kxTB&$Psrhp7{DqwlLe5`UbaAFU^@Kr)GtpZFk|N_5b05`2S&w zwG$ft+Ju@NHkk9p47FY@!Ox*fF)C&WMoc%u&QI3Z@p3y(IG;evRZ;j|xfHYR)}qOh zMjVf6#087$(Cz+XZ0gNHsooguJ#hfnaybG4;Xkx@UljGfnalRpw(~UnqR988KH|7= zCd7dibX0r6qmD3e+aC+=0*PG4I0N?A7lFM=4XihB2b;BhP_*n5SYG=C;{iR8n$!Xr z0em>{?;WrZi3i)B2nZ}Y4$<$nz#hWmvgvwI*ghLp*Qr6r>e-+z@rL*~^(pOi}h?G)#g1ax0e3#)*))8IyA4W3=KeP<= zLxB?~utnuCPFU>YX4`IPd(a7Eqqkw8p(CoLaonaghmhHS29;aG@$Qynw7FGidV(4k9-zE*JT|NPVv&d?ZhEDF@^+7@;3|7M9HPwTwEgBKhFvBS z8ttSA;kWQ;W;bLNyo1aq%^<(7 z9CYNe;fQk_9E`sRCj^2)S$G%tZQ+5Aj}F|-RslQpsj#qQDx@^dfbC=RK<3>-I98$y z1=3Qm^&y`mKk_7x+QrF@iCCUP(_CKW^Y3i)$^}S4;4KQuHsk7hPw*EO0Ec==qPgRHSzVbz6BDf!{)kFKtJimMAoLN| zoNPen_D=k}s26MGyRoFD6-#WYac_J+rms#!*_+(V{Pk|sP$V4ZR|yrk+1;G;LG*%T zFPkV}%gcRcOB$T+k&t7eFz>AyRQm4*t&p=IAaw;Icie?>u76o7RtHw=ngLoHpxXEe zq|yf78!gYm5&FB?Ur$JELRF3bNS*#W~ixbLcajG=;O;s0!bz@<8X6I$(N})LOcoMGB&fuP* zBCM5fz@D33IP1a(+_SF_FMVz2&P!@g+2A4m(!a&A>%%d!^B`(IT#a(EbFl8lN2*jE zMGveVV^0)sLFerbC4lw+E7c3cM3F(9d!E zX1&M;i_;wc^709oh~Er#il!iVLK94Q@?cae2+8_`#QV`(61nmvNj}_6>Xh2a0@aV? z?}ESNqoFKRKAQ!Vrs5Ewmq&h2)gejGu9xc9nA7<)(rD{}Pc+YBI;uQaiXkgE;b+f% zsJP-JerZ38+B1W3C@L6D{LZ0fL@+lK55#L{0x9r%fW}qlu<+sqOqvskOZHvG zDw2XnJqvN!(|Rnp*n_uLe8O$r19+gQ6BXyyqr6%Pe#=b7+{>4+C-^XG|5$?}RvIWc zI6%WZ!l~8(pFJX%!8>~1n}l{gBD(ATkbmOmLhQxOVCUu!eQL2Vo}LYj?i7-=%R$+; z6!Ly$0?+<3R23iP_Cp&W%4`YrTvCTERWh)|`VVotJwPT0+KB9w7i8TvVzl~|_t zFQ#kk!6t+KxV`xpz7h(+8jT=qlnBMJKcSeg=^Wmj8pNHqo<-B#01P>L7VBmPVS4j9 zY%PjF@f+7Mc=>&f+24S#Lwd2?Xb3x2f5yzZF08kCfwdMaZklojEk-ZnP@E5zr`h1u zuGy%K@9Ck=VCw0S&UWM%@>~s^NW$TCVy`+*rg8frn}ltU1wkO9mH__Bd5~;Q!NQt_ z9b2;CQb#n5?D7S#@-3ihX$qBdG-2;a&aLJl3|DPNiPF1%GH&^fL>s>$<34Sq|LJR@ z(e;XS$hMIB@&?j4Qbok$i^=o{DJ1xVGubue5^vV(>uguBJ009wM|Un&!XlmJ=r6kk ztxfjglD_|N^#)hmo8f^={Ep#P+p`#Bz&XUb!Z3Lt46T&IaP7MgoP9PB`4j#aXc34F z7lJT{Tcb@nEb-YD9^2W(}u3NlX*$H;MJqK1gH(=Ql&i`jZ z!6vi>wjWJ}9Wr51cKSasv9#vC`3=A{UJYh&U0_*XG0|(AStPR#br|YsEG_c3=KXN1Enh>ECtu zJ8mB;Y&(Na?@yww_FmLebHl2b1GwBa00S0qjyUlMOq_EGJr-X=1?zCEOFxI~>_C)w za}F2BU%-tbk?0;9kFJOEFn+imV+VS0_2ehKmGKb=UUlK#+D6=C!NRyYuJx<#hu()QWI|UDaXbO_tB## z2~FfLU}^eZ6fR$m4O(KDYImC^NGzavUFD_n8~*U}=3XLNVVqOMbPjmTu!VxjQ^4C1 z3*tc;pwRpPj@aeEXDf~g`qdvi4V|I0%nGg=Ea5zI`fw&w5AIhjgos!(IBL3{>%X|e zf<1xYyqxRW4W)oaLM|9iO@+e~;UKMX7`E5gf_I}9R2qLFIU7PqSjPdLX`mq0*v#c9 z1Z6SN%@9+)>@aKfer%o}fPz(FIOS&~`tUB|dF~8nYyBnE`V@t}DwmNSjzBrPaD2Qp z41e2k&ze^_x}J+3u>1->Rd1kiq7+7l6QRl^5ZG2bNRFBgzFlP`ca9GE@0Sj1$?T!8 zXV+2hp(!YG)({(FHlVSr4v*b?gQWc04SV#1*+g4Tupus ziKW9J`$(Gk^i7_Ll9gnNUXOuiP&0IyKLncxaj<>eG4Pk<0mF5ZB68x0rFa1^`)3QA zt{6)byNBtc8V$UZZ-wj&SF8*6MOttk=U7E!Nm(q;aKC~Fysx2cSUk$iPrwoP1dP;4 zzyhV~c%(KFW3AKBIqe>9tS-jL8P8B|K@Sf4e#Es)1~E=$2qV2eqVk_^48Hgp3oqB; z*Q-T1VR#$;dM{#`ju*PEx8U|!)9}c`dKw$zN>jXySmQbs60J~7e%dL3=QRsR_dW)i z3fI7g^IruPmO)h$1(oS!cxV zeQ*G8eR{=ZZYy!HD;E<>63`EV@yyV6+zJbDV*XF6I2u9Y#9G)Q!|S|>*n1@U>0FqV zxf`}5gh8Zc3e+5a1lw*^K#*bujBxLH%Q^R9qj45cksL_sc?j;pPhst71FVHQ=t*vZ zdT;I=O`e;VIVy2khS|*ay>l2VS5@Y~dl_c(;{*&7&NE#@;d|01c9eWO|-`2n)@n_IKqXDeqJHfi{JIA=5gu>~= zu;jxhu*w|;gSz&L&&EZ2~JdXSOO<2%A*aYSu-oxGpA0hDF094fu!u{{VkPz`3E-jH@hOOlp z{c;6n%Wf&gaEl1z(k;wnR!J~R2Nalq#@USeMr|hM!yM*tt1>f`Db9#T_JiBLGT8ay zHrMqJgKmr6@N9sSZJ)GX|ocMr9?v(ami^Ia}4!TRG*adK)mp7|@n-@i|u z&wH-KuWM1{TQyDL3kHbt6Z?K*SzI659jWKs?hjDQGZw4d596lo7Ff-nhB2Pav?kyr z&Dk5xF^2?+Pi_M#a{^eR916+4889QN9JZ`%2erq;u<`P5SZ~j{V5-F!(e5cs(FPTU zUp1Q%ul$Eenmd=VnDY-~DK(u54Nze0EtMGeRyF3_xDGQx<};(_x{Savbw+EIEaR|k z7*;Q?1TA0ACG|T3-j;YldyEZy{-Oa2mc7L6z(q2A|29`UtD%7Uu{^Lubv^y=LYw9JiQa8jH}S%P$pVih9h&{8Sly(;0(=i z>Smll>tGvo5AR@$%w2if*)^myZ6)+_+>K`43=ps{hmqZHAlz^idSCs450)a#noLQ? z>a!dZ@$W1q(_fF#n`^`v6)t7`LzXfPoR@F(ln$fYrpsuAEo4MFZ{9@bV#Ymr0b}$- zleuwKkx{-r0m5saL+{nQP$v=1xkFDwi>@PlKe!0&gD1(zmLwvTAx5sc$+1bd=TgC) zSE!{=6Rn>wj>?|1QU2;;d|S8*({dd#-@y}o&-q~(3BqR1tLHOu5j*6s;Mr?8(ce55 zKdfk zpU``R>c5K<>iu(EEB|)_-|$yxyx3Z>|r%?;K&-rHg^>hQ?-Ke ze{RO)U0uu+-qU6FR8MD`#U+?n;XzpP^(jnAy9;L&qadft8&t!r!8UIe81#0Kz< zzFp-!728#8*?R>#VfM?_V-7998ZhF7->@RhCz@QdPqpsdmd6q(tCYQ9A% z7k>jwXZxY>+2t6$;v3Cdf1J7srIlJI$`IprTaq*qK;C+#k)o0}g!n2zq>v4qR|*Ba zunb7+DubNRW>9?J1$B0x!PWm8?9UTqg2d&S*FUwGM~=qK(RRWFzqVu?Jgga~id78K zl}ynhbEZJlm=Tz+#{{;|V*V?WW8PQ^Fv@Q4KrxgLDpOOSYU+6~TI&iUW!xE3wKVkq zDJK(_?xdnJljrnf1v}KNOvj6M)865$G{GyM+U|Q!nb|$`=i+gSD&iPEXDTl3Rzbb; z85kTh3*#t=SgV^}xEs9RB z#t4bK=wfgYH(5DxPV|}RnR}o5FREsh8)V3>6}QQ6`7+`t-9WmIeIlK`k|6t^HcWn7 z14-MD!#RO#u&wC<1TB6B5}V&Z@}5u7Y&`})N`)EK=~KCUf+nM5XviG$TFw;4GmP{% z3&vA>CDWT?&a~<*VZyZZnX?9(%se|~W`C>%(|TzH^mjJF@rw_*Gn8nMzq=o-mo5W~ zC>d~eZzqGJ@kF%8kch;G@)U*Vvc>W8wC%n#op>HbhpevC#2H+^{7Wgly0(Vu%QaI$ zoi;k7yMx*rbT!{K5q8bEjtRd{;>XpNDCH=Q8s1z7!ZW56&$|$>fF|N5C|Gt9QkR+G{>1RXCe%kYP)}!%3M{Zrfv#zd#?basM`g5Cd%QbMLN{2KL@s% ztH5;nAJSfzL`>`biS#cc@-{V_C(wMythVMp8$EkD%_=%W|F=Gh8qK^$+A#NWq z|01$KQgF$sd+4ciA19NtutDf1y2x_9tPFSb3g;qjOK0Ftk!~9A8bZ$&WUyIb)jS&> zcm6xbCo4*R5Ti*I&~8}*rO{hK{_!c$jgN%W2X4c>gktbeXyQ0*1Mqn&mv62YWiG6i zX1rNBM&4i=W1XnR$VqB4Av<+BZ=)X5Z=%O6Kc&r7Oqs>B?UrXuEQOdQhX-J-=DH(s*{^7I zaz9<<-$!e1H&YFnGTQU$0X-p*NxM7}>BP|px~0pTnkC!OIJXV7+5QBraY^8Mc+Y9f zJvqFfv<~M*AIHsCBJkIYD>$rv1+6qLpm(tqyc& zgFjp2bcttr(Si&wyG}wwTZmSL6f8Sx0IF3EPueMHzzyl8i-%46|NwD)aRBG^T2r8nY->oly>*!&q*f!*rF+WL!5+WA^hT8Pi>3 zFcH@VU4nd&FTMpHUxHxZjuVX3n}f2U0t`4@B;CDEyuRTltn2?a(m%s7wEKT0RD$ED zM>_wcoRce9AMrLeZaNgu4Pw&@!M2W>&Pd z#D}_OJ)nYC0_ay}f@OQRV@8?}&g$XjuCEVagoq1f9hsYjY|d@0LFXDKj;%ce0Nhn1OB&S7YGT7gj>mS%!w zg_zIh2S8Y%9)iBy2j3M}prG{-IIgmSce{1CS)mwQIe3M9D~{vInO3tl*@vm_;aqCt z-$X@RzR`xw;&@9&36)Q4qP~p|iYL#;EAdL$?vCztCLT%r9lk5SR- ztEsv%&;cDsTB>}9%5&Mx^9H)et~JK4e^+744GUbKZh{#~b8s(D7*oP3s8O6h&GlBM zQsbfQcc|VgH*(p{5 zRQN&>ok;AWM zh+zcnPC7!5d+wsUvpr~$_-#5qw}X0YlfzhvQ($)E98?_*g|74*z4L#Q6!ZHN}831r#vZ@ijYte zB7`JF5<Sm8;*rdpU1)a7(+Pm-IUi3^T2$i zJ>=GJhW0>fXqdSa-0PQu(es6{ZtiUOnl}c{826LJ;7qbvc?>a}vO*-cgYT5Ly`>wR z)G^I!CKk+Cg~1b7f#&I`?=T= zOutWw^_QqKMI#;dp>-Tfd~d{N)=g$FPMWeCO{Og8tO*M?oWv?x4B5vi`t0?-(Jae* zB-?gehN-3gLWB6%cq98RcKl7oxf71#gamUe+T26UJoeIQ=W30&)HO>=1=ozDObp_R5Hz*1iKa6ay%qOAi zIqx_?8;*KR1byeJkegx(*6;M8UrrmY^F6lfx>?}z$QInLE(iUmi=fGxK;puApt@i- zD7`a-#py<1R$>6f_6Fd7%MfA{Cc&hjiSYQWKKP8)0ArKk5bM%N;^#$^71esAPv^2l z=nW$(IC!19hyA82Rv2)-{zCllWjp?n^~3t_q1c`ggYTAJ#oBTC7^F~vi3jVk_el$C zf9*tvv%Pp_;t)E};Vk600<-w4#^knZGpn2WELnCU`Wsk%?w}u3o+qFCEaqj2~C1TwzCP^co)$ zQ1g={Nt*JU!lj^B?FQQhHbKfqM_9OaAyfog!yg4lNVDGzgJ}mL+VUi1Up)f4o&SPf zm=~yCKLkZe>%j2kd=TxM32N#l&=hYB>MJc_O^rDi)=mfQ;)&oDt_g9LVldn0F0pL& zCRJZ=3f6Sp5EVW-Mh}SBQmJS~+>Mg??Yn^zBxoHK}4!z9_^L0NYBlnQg&roqCkbr?t*u;krFZ1(EOOk`}v`fr)B z%a&%$?wAQXRXvd%R5W0T>qaxBg^J97q!`mqdX2hK6wfQfV(O_a_^42wvppi|G;w0N zTQZicDw2cU`>kNY@tsh*`UDJ0_=Ci=!(bWW0a=0Wuy>v(yjtN4CDCUf=*QKC2wU8=Ho+gN5?!t)(gpE!ASPTlCn}r{meI3C2u1 z)P%_tn6d(EQ?@;1GTX+_rsQ6I*6>!7g|3%p1Hpr6o7jR64iw`))oARVxf%TqYGCw( z^VIOmO-tRp%j8d)3PgXf1AG2lL};9Wp^hkMyb%cpkDP*#wZ7mXe-bLz2SRYlS&*4> z0apKt1-+gGP@ZuWY;3PWS#LC)ToeMjmOhY>yc4{YH$nTQKxnH7fPy|hh~Ib!Iwov^ zKaz`~d+S7qjgo|A-;m6%-ApjuU(mOwLX=E>XsjU56t0{fBe}p)D94yVWzbdk+b?U6~gANG^2DehlfbV>Y8$yTu4LYjZ!oi)%#tv_f<|cL7~?ZN<7w zO>A{IPd9J4W2ty4fn-cm0T&Gia9->S$A^m zM*;8$_d?pEW$@TwD*Tf;CW)E$Rc+>O%-L*C!PKDhTb^b&!3|e zSN5VPCIlayyM!|~XQ5(HF-~&4$M5$e3^RU(1BoB8;P6j0sFh&KtL2!gmnv&{Kbn1B zF_t~vXTX9#j%Q1fCa_5-Ca@F744CUhJyxHg#Txdgu&~j?S*~U;%HMv91t$yf;<{*b ztl5rDJj-xS{CTQ=)x*-a>;id~FAuxL`MrJO14H?d(7Ek0gjrmHfR_o7%4br#I-!uC z;tPX=p5XF!2bApI2{N<)gQ4;&!h^Fnxq@F6` zSU$k_8Ix9_f1(eby%f$hF_%%w`X(mXiqL3IH8z}hj-@X;@TlT`XMr&Yc8bG_z1K;Br3UxDPZT|vzMXD* z&Z*1W)v(PRFuL0v^+QgfLtqRV+N5L5_(Cj-tiTf&9wYv4#k9lSD0O@gAIz3yo^c~s z;T8qfU!%nSojQ_b?;6EUL~63=`=eP<*=Ux1S(EL$rN*2r71_saygr0J&Rlqjx~1i4 z&1VZ4fBle+Hb;N1%MKWlqNm4>CMlDik|;AnFgV}@@$U{n{-M+G_TO_5_T?;Sz4n9c zbKPKB(E{Lf4M^%U0>=x6aP)-RE?2@=$O^1!Q;YfH?Px%GWN2Haibkjlr;QA)i0I$%oUov%xjv z4ulI4wAw{rkx>LT7jmFpISqE3$AQbkGkjlj1SDRqf^Xj@!^|1K$MNnY@uS{!tD5!i~XQ%^JLCbIs@lt~c(Cg}oE6 zf$@VPNER~Kzly=1rw5X4n~_*&>X`#bZT{QDI07M_&sqUaeB$*)8AV1+wczw z@s)t=b6?2p$IZkwua*ohts-GN-Kax7jn?W4spTUT0E-o0^_c| z$HJ~2R4@37^#?v;<@isy!s;8EJo?LZ=+f-(aIVftRADmPMzK>$n#}X0CfoRA6!VKx zVzT@@RwUMk#idQS&9)Rb=_R2=vLF6zvqA4+ikKHwKy??|(*13xMgCvS1oBf9i1&Wp zt8R)TRoioj`lp*Dc?IVt#oZv{dvl4=mtrzCwvxQt(?U#+^pnEz3eY}dJOtKQL9&uN z3?2>zHMQ%oX)lGJODn;ssuE0m%i!y;La2?-gx7Nu;QO;M@XYgpsKhm}Ow|;2^860v ztqH`dxKChs+Fz7wbDRoKzoc!0I_PoT4z+(B!2a?O9GPdsT&JWshWoTUD7% zzY4oppuh^MhqGf=gIH$z7ENbVp|wE{F6fHFIQMLw+XYaBxhE=Ang1P(tc3^7M>pu z{=4UcOX?1=Uw0Nd^m0I1vI4gMt$}q~55X_wK1>fNfkB>kGV@IWtl+s#sw)q{ez_H} zSJw!dvwKL1Fp{`7HVGofg^T+7Pf&Ado^PwKkL??mW0>GLJ{xl$kBv{ls^ix&w5tdU zBmTp#sAdc(?ZToN0~pQE=60>&?A!MdOw=#WKAclzo1QDO)^-K(RKCYBIEdGysUet^<%a7#reM_gzx2Yw zE7Yl6m3kH^md<)qCfGm1n0!jyP7a?tLsaaNNMms}>1Zw`(<-ZpR^AH|zv3(Ld?E#> zf2o7t4pSH@VFyp#_QRT?^H3On8>D=z!Q80<@)k5e>amC1pHv2I%kv=n{ACD`JPQWR zo)DOC2bDYYAxw>XQs4}UE_@`I`XN-b;+8knO=_l(gY>ZW>v9yjpFp)8T*vk%8Jo`E z!~yIB!EvC$=!)~=g4AGCr{O3Lxv2rOc zh}A$LEu;IF&8F_}q)O)$OY^+0J!JffM4}j1!uiUN$cCtPqNvtOnl}uQ1s9~@)kYNv zbsYm!M@|NggMgPV>i~G4Hr_oJqPCYo(P-`$scQk_j26i4X@Do?4`Ae$BIv=ZAckS^ zZpVJe+O`n9szF~%dw?ISpS81o|A|A>sqixZ5&A38AEH$WRTrF1C)6T z+~b7#Ad_kb@?q=2%g_t{xgQGnECpu!J%s76UP0FU4v3il76R!DsQ6L`@hf>2+@EVu zcs2sGw7sFu%?={H^}x;MBT@CeM9ws6lDd;eOH;m?(@iJy=!W^yC^cseYW?euO30sg z)ywFbbPM-++~Z8KrzqC;7IWmkW3V*eWt&JcXG3Xb7AnK6i=bB5o$>@+ctsKmL-RJ9MGy;Y^T8TL{AZ$Y2UHn=~py=-Hy$II&4k8g?UBi z@M!8%To@sR{XW4|O}V4AXw)K-u>1j8yI2XPKAi?R`VNrVyA}LByg)tUI4mgfhu^18 z!M&BiaJVB3W_U)!!Ng1Oc?W-Q#^*um!V38C@-tYlL3l1DChVK>2R3_sgR(Ji!Ts_h zuxc!YErK-Ae-H*YlJ>&7Mgqy|%3%12Ymuy1kopTlmOC!1(PyS9Tx0W{etfHs8H2WX zBHI(cVc7q)M_rz`a9U9r8bm+Ddncb`ndEEii)hDlyW8+x@(a$Ge1giZ6=?6BgW5{b zxLGy;!;gBQ`JaDqMgAd-l0AiqvKP^Hcn*gCEyvt%FR**oCp;$JjbH!1La)VD7{2`` zdTb8Cq>DBtA~ zqyjF2lS?9uTymA~7p{Z;uY5@9WS~>>5R&Cv;Qv`p7dZdntC5Uw^`zm#>_l;)`L^#c zaQ-!H==%@$%ie;Af_S)J$ustztb|^BeJIg>L997ra9fj=K*C3Y`fs{Or!9R)6aHvo z%wkJ?Ben@|8u{brDN$%VDFw|QWTU%X5z0Cs_b)Q6lP*E$-s@;_GztCcqR{Y7Fj{2z zpy{J+c(~9BbI04Gudh9xXkCqg*LR_Te-IXsB>d!(i*>`R&`!MtcTawWGQN*c>B$|e z@=3%n#p4*JXNkpy-)L>{PHL9gVevrZMz$QNC6V>Y;2$spGP+m8xh!vZJ1iJJ&*A;N zYBKDw$byJP`7leY1pX*jz^i$6AXeN0BX_?8+lKFOPeD%D-=iqpHCIVUrYQ*T6w3%B zo5h9o_C0WpK8Mq57(}d2hY;QmhhKIF9fz6Fv_uSo`(sG+x<`V}vk@YXN4x2Vc@=cS zs1Z0;XoiVGIA!c)+@L=Rdm79zcIG^s@X#K$LfsK+0&w?>SS-193&m%ZW6j?Rto%`e zAJQ^8?=}K;?s=e2vShe6Jb^V^ zBT(Ng9jh{L;`$xe@n~rRmiUEW+wiSuEMtO-r&?*n2M0RXKhILueLd-ddXn+43dD^z zhXM_rrQ#m|2~(qCS?*Ohy)y^8hVDS-N}h+DRtq0qH-gdeR;c>(9-^y%z|l2QLV1yj zu)bVN_~n?6@b4`h;jJ55!Uy&$Li`~moZi?28C##g7VX>MF!2)j4d*kIjwSH)getVw z7V(TaJ(8a-CbCZ=G*9LVJ*x46I@)PswBlTxy4(?cbzSkLuN!8sTZ_v^+hXI2Y1pfy z%UN(r_-~#hzO)~t9mDt@)A}3z-9A9e*9^l0HgYIX(7=29C!pe!S?D9h|8B;5lw12R zX6gr_@t%tqWuAr8XdWgW%EH~5iJUck27jO4jXSr`=05Jv^h${<)fE$2tj=3a_FVms zh+UF}W4otq`q)M)iV{FXyBE;95DJ+ujv-7+S_y zfxf{A2#H7|x2H*w&56rJO>XPyG}nCExA+U)YNLjd{OpJdw?g;MC1`%%9#;lgV`|+@ ztl6)Ny_~~S94?M4LcUW~{m-;*;}_~_K0tpuNuu*6WvpK^7M+S`;L!z3&~EP*TxN3& zZ>I*Mn|UPayh^~fcbWLTw+I)+7hzY`O)TdgP}8V$82;oR^t?3_t=GMxI#Ym7us0O2 zaYso1)>_g$N)9*`0L*`_gw;}qVQ)wnNR3K_){EES%$Gt?GeC$lxesY}H83vb3Any& zg}sk^ATNNk82jXfGZt$I^*?C~GvvkybDcD~_EuTAC0a@tfAS0bj(Y@&J$Z0Q;Q}0J z{|D;E&4$q1gXD*H6bbEW6cpY%B5G7wLnRL0pq;+$RMA=%9iHgp?}V9XASOg_Z!6px zKO4Ig#-r2ykyu|Mg$F8sQJsz7Xjsm zm$33|9%e9#T`CM4gDSBywHn0?tN4EQE*{V*;JTZuxaH?r6m#2z6Yq@SzG4yWkJY0; z57-M*B@YsP&st)0S^=`0r$G2;M}X`9!iA6!P#Sg-hJIXusLboIQ}q^#pdNSE{{(BjoKG=6A+sxDH+e#eQp_xv18 zo5h)L#xrnSi2>el9*OUM4M(-3;@JO93?K7a&f~BW8oBAA`_)-^@a{@%TY3~z|g#OdJ(RSJgOt|+3EwmbO;fViG>-}x)2v0%VO`*7Z#3ppwVT7u0 zAJe|IbEsazP0M;qClVCFeMJp&&~G*cCVh2;Nyqm=_rm}{*D$Cx;2zmwi7@JGD%5Vv zf@PvSaOf%l<%S2KJiiHqtOqt2N(kSrR}i|9k-~B|QYiISQD`|{T3CAE7Z_BugL(3Q zknEQQQc-6)ug?vg{E99 z@#OGav=5z!#v5ng$8-ZUt5?T?WlCuLOCC>u=GurIns`vz2(v(d$0F9_(XNvyeJ~#D zV~hEG|0M>j{DBFr5^QLKH1oM5#Y~g_qTl_`IBw1>ELE?;J^e)}eueYN8$(h2zpYr4 zYl;~g+i8TnGmT&PqQuP3g6w-$N$Au|`3NnZozGcr?0<|8%~@+Dky(#@rzxTcx1*q7hVVwFW`vI_S3E1u=^b!eP6UV6ik5 zVjUs?tYaW|aRS74r$JTf|IeN8fnm{0@OSPC4m!EwNdiO zG}OJj02@XuL#2IA7}~N5EAHB%iR1#Dz(0+rZ5E)V!BWnIUXQUMd(c$hkNb_o@$snC z|D83>VJ#@{Jji{0ifq`LQEXI-Dr-P__C{8MEpX|<)vLHiKm9&>2j^nMh&U{H=Zk4Z z4tQ>zChtkgX~XfU)NSs7W#}z8o^xGJIszminQIhkJS`x5l_PX3Z-k)&zL&Xv7+gOD zfT%7MM0w}o(5o1*;vU7>X&Lair5IFW9zn8k2YAK(gvyoTLWNu0BXR!^OyD|Y{}r7O z$l1bcHkX2x{uLPX4uXN|b&x(Z89WaCCLg9Ik(y)Q1v#hBh^G1Y)6tbLsnQWuOf#5* zVhxM1*vJLzzwW?sG6&FO@FYoxPYg`ogNB@mk$v9}iwe*2x#C5{%8NK-_hmFO z%thOR8q9m%i>n)Dn2ePwi(Wm7L9`0{Rwv7j$_`^$@n2B6pb2$oIX1Uv;Z3bbyr;U4 z`)|$hkD3Jb=f~5uanD4nHSz>olKn~A>3TA&R~oby7=YZ+Jje`N2GQYe@ZEPO7}e~9 z%pFIe)i(efZiIlw+i-ZgAR6xKC4ttJZ0NppAF5xzf}yf+u)yyxJmdVLtgnAzZ)YET zfBGJVhBrdSm@=rFaSf)g3Io?jK6B)mxBYWRK-;4NQrT)s@a()&)j=UmY(V;x*L7iP zGjQ~e6=-~W50*sw;p#J?81W|(6@JHH`|fBQ$cey(&o1DEiI*{Vb2i4d+`^gqH?glO z7yn-lXl~YsyVnlli&QxlE2hd+bXD2FGexHIQih!{5@(xVd`6ii&oQnQF>8J*9#|L5 zJ+>~mUey41e&_tKNLT85=w@k2+-M?pIhH6ny&|3N3Y=AH1ob~Hpf$}7db-y_>HN*0 zGi(RM+wFsakw;-RoP^JfK`?*uS@@|C4e2A(KyM*}%g`&B`=TF8GsT4yvN_wyd6>}X z;2-b`?S&`#ZP3^J5HjxHg74BXumt|)JR?i6EtZGqC`#Hc+mf))6_)xRr0L<1i?qY} zJDu>+nD?ZsaG|0%3Rj1sWPB`clTXFNQ?oGt>`nYMEeFk?-$uC$_i;#A$LnA|xBu@x z`rB2YqHh(70-ErO|5wahEY0-Xl$fi%G7H+Qz!IKIvxVoySZ8oI_s%w8cU}=XFS~@F z4jjkY(bm{{R~C~!GwJmqIqKfHR8afWnas}0BgejcA;)!z#XOmg4h@EQw^uJzUD?tF4d{KLBoa62f5f;ld(* z4rvhyVN=R)s5{dQ1NqM(e3b~St|xHD?os$uF&~W1@fpWOB&#chM9ieZ((U4qX!Yp` z+8o$J&D$rUMeb@Wa6W-I9U|~e{S`FXnuC!ON>I>NfsF~Z_@JN})5SVbY1$_=Z~KH* z>>c{La;?Xq7by0s1AosOz_770%)d^NZ8@RDqAtj@(!Aj;U*a!bnf?K#FV~_>VJ;db zN1^oTy(m7OpYzwc>7fm$Xr|IN(X&TPP{q9%Lj8v%K7Saf7-@lC!(>nmnFom~3qeE8 z4s=#Kfclx05WQM2hO`fQ0{gpm~a?g)`h^k^@$LaQ3A`1S|RM-02uX42$gP2 z3ojYS2%So#gi^=EgjR>X!ip^~K>u7B%)NdE%BK6nV3!>@g^U8v%nB00^N_Raqy)1y z`$heEXXv^2AL-?PjM3nM3!2phpxyU4)O&CP<$o8WdRsYq{!@b+)<46lbzL~&!cX+O zBF2ur8OENw4Pygaf1%X-9~l2+2(8>?Sin0)mcWA{48E(dhkgodax&lTL=NK4^0(Nt z>jA2+%fu@u&tiSUCLF9ZLJ7;))Fs7>F1RlgZ84N3>RlJe(5+^&cY!Qay6Qvw&goDZ zE&#JkYpC+EfixdmfY>DfI(CqjWDi?pS3nf^RKHBx17E8HLGD95*k8E=sui!mSnMb4 z8Z9ZDEiNN8$(9k8Zyhci^NusTU3(#^`z4f~E9W!CRFF?Q1>46uf{vRyi2W)fvWX7F zEa3$9V9IyszW_6^{c z-L1IB{Vtj-q~X0$q3FVRrp;dyuFd*P={ma*1AC4QeP1J=}ItYGYPg| zu>f6PYgp243u{!DfRm>!_^e(8>E;U|aIGyYG+G89)^qlxst3GO@CUVjW1+ON2u`eO zg`Zn~!DP;ht==pnEPca$M5l)fyEQrg)A=hXSG2$@^Se;?AeGk&r@=Yg3C^w7gz9QW zCcRuj@-~JEyjMz#l)7ipbNQw8z$I<$bzP4}c4ts#LmKM&6k$XsLx?TsKJjvlwyj2& z@h{PTT_4KMkYsK*WZBKxN=)P0NLJ&m#&+x+#Uh(Vu|KY(n8jf=wuJA%e(^m=-(5+j zs?&#knlCZD<}TjAbc9uB(aysi^_I^>zmr3B-_a=AoOE3jcJ`UTsrn4rJFl5ET~mfn z3S5(F0kGX>G1$DYhmdpj@M+f)I2UUJrvn#(%f-cDG071+x!2Bf`7TiJ;`8K*u@KL9 z6q~odfv8WvL8@6wD6wON&~x7i;jZJug@uV?!pz5CKrFWj(yYqBy)zYpWBA-Hz!?nh z>cC*(10toeig=c66j+56iqu>WQF&~jN_X{9dc7;ISP_i%d5Kt?coVhul%TgQ!^cu( zC>ikph3lIzvf(Q_yc@>SWo21zv=ZBONR`=+8pXWcsxe`@D%*Aty%Z+7Ed@`3Jsb_jpDc=p!A%PHc zJRbBF?!cDKZQwoQFKBB@3x~X9g<7L!g@@^I;rco;;XqIiEd0_8d#>FDEK7sObA#cr z<7#mJF&g?C?~_6e8x@GEqRocEjiEj4%O(^s|BlW+uh6*r9&Ty8fgR3K`01%9w$;uXhBPk8HC#l;GiMrb5+}cOSuED^Ok|XiUU{}EQO;J9idXn1uAy$ z#a4Dn@EQP~4%XnV$N{|$- z2dQ)WV3~6eNX@+j_^<>*KfZxk$9_X`rj&35pFPL=$p}|&l@gBIHUz!jKSQZyGc@{g zf5`kRkg&)Xx`*aMI&_fIGFwtLE2m^n>IB+Xm`0`K2Wi;aiFnk@36<`jKH>k5A#$YZpzdi6h+#liXg==NERsdGQ)0bUs=gVnx8JiBNb zop%1XWo-2v(n!*YRX``{=#d4*{n{{TwGnvhO@oN8dC;061nF{Xn6_mJc&IqS_Dm<3 z{(1vEc(ES}0)wD|YY=B!m%?uKR}kCZ58~>>go#vAcs)i^s4h87XuIMk48^?%t<#U8 z)#eTq{*wT8D-S~GWmEXTYxW2C%!q%SyvWmI3;i?ZF|FFIj+Wi?ao?XkX#X$-OTHvv z@0%M~<5PmQ+*>AA*?`fPUSm_%M;tufj|)U%Y|xf_UiZqekCjTy&{dUr^o(Nvs%bFs z7wSymof=#DSB1e;MOM9H1lxLM7;D(_9eWGjpyc9*=p}O-GrBIJ)q~@lQ)GpU-pHWy z-7NZns?s%@5`w~oKn8=akvC4AWN_68csEWRe7@*_%yR=sI%*7w3RB?SuG!FP1h61( zA^5MghoqOzV6tv6jQ{r(1dP4}KFP&kv-TNez5E1nS_9Bc2jMiIYs7BsgVIv&hm3B4 z{Q39cYvm0HoqZm9(G6Z-;rjZ8Jd?SpL~#1XOVP;bF|>5^59;#46tnuc7RNq->%(I( zEGYxEy>8>d=Xdev?}r#)_ZmZXX4AGS>SDX_Rn|~W{|4J5|lMq z323q@-!zy!*Zh2RAIb7RDKM=d85aLdjIHtif`yA;;Ga*GXtXyEXSc-S-e*U!cd-!f zOq1rJ#FuGr#enEo$4WsG_r~7XpGFj?wvgEu#9*U@0z`jQ1?^5PP@b*_JM|}kd94ZT z37Q2#i!32!i!}_*S_#HZ?oj^wB#h9z2;PqQpgyS*P87C4+O7^z`r8RMgY9r-%S$kD ze++nB!R+27*s!adSRYUzmU5w@!E|5xso^<2;Gv1e)CQ#jkD$|( z2%hDXiXq|!Sa-J!+eOv5O!_IlQftF7KWqI`(49ye|N1#J z4^PJL%kr>Mr;M|sAEF!InQnjDhPMB7WATy!loB7tCOS&9!yDz9OpFSX+N#c$uNuwH zB#&X%V|7?a)fm=)O`Ew&X|j4=JD*UKV>TKROt0x1u26r4ool%Nvpokt?u_LbJHD8H z$sW%bXrNO{C6%ajqKc9GMbdE>1j@?=BxhMLQERwPV)Xwbolo0I6N_kbGnT2L=f2^S6aJ_uL?6+;Q-n837&R6+!-+7I^rXfJf#6=#g0i zdcSu<>dh1Id<@reHeH6@Z!>||XTi@8>2UlP*UNs1=04eI&Ii8;t$X4i&pZMC?8}6u zVVMy7@+#=HB*2itMYt^=2?k$6IJ4vgBj9#lWn03$zT zNc$iI%M!)GqUAR^_(u$qFARg1X2Zd%SrPJw6kywTDJb0ciHuaLBin;+kzUIPBA0WB zJoY<9;tgWRW`}gLO!hYMj;J8&lj}(Ai6=Q!8c zYW*R~oz29$@CC_u@QHXd{31(=Bw$mADts6<0lH^Qhh<6@(9$v&s;Z`g;Zjqm+iw6% zB{U(SPJwG{rNAd%3WlzXfYlomKxnTDerL7en5+h9IY@zvTNU|v;tc5+V?!cFD3O(W zng!nMo51GcD*?>!5Db2nB0j!jNx0E`l5e?-WUdb<%PR9of7lzM<|Pf2S`5Ka`=s8TE(hTL2jZn9%4zdRCK@r~({Hy(AZ#Nu}f)BHPeSDn0*_f*<@$_16XHm;vVL7VxHZ8hqMo1k!DKP(DHv zjub1vfRZF+2aAIh*Og2y76-lTVK8VR264@U#MkKq@!Emp$nF3#yhDsc{@Y@auM;IQ z7q*JLr%F)wd*4MX1{y^MRym^Pxh^8ld#~?AZagI@*VG`|la7=8i;S4$x09crM}e8~ zOqi6j6g*6KKv{YKsJC5!1%oM&zU3yYNw~xNwsPn;sD|{QXAr&fIgDdZAvU-UW?#4q zfv0XmZq-egEs+PWPEk-Ecnod7-$2&7_fV?T0ZT5vfV`P?knxmjKP|37?|6Rp#cqcK zL-S$u2yJLd_(h_1o{;??^2tA=uao}7T(Z0BKQi65hos5L!3iZz*etCDPW*Zd@mZ<+ z)1SnA!)MY~@R9t1Dd?q<7zmb+#z2r&pClc>gM_%pEA%7afxvp+C`8lsqpdFM| z>R@d^-^&EhTk1(v#-)NPuDnN&tuCkSQ<37%Y`Qn{I5i7VqCM)xr5O|72;^6vChyNj z5q1C9jEgW^0uxQQ9N8*ZRXBo_%v?ie&WhRDy)ByScLlHYlZ$Qaxs1G0>Sd*zddRdJ-L@F*#4wI*9yWJvL^ zMvIg$Vl>DlgbuB_M+=*JX~A}NEPp)?r!Sp}VaF`d;rJ|UX_Cjhb^p znQY6A1J8^w2zNLDKSKy)td)nPd+J~p?*!Vh=V9u}n_#2Pvx+uSP@7l+En>Maq#6%K z3SJ;uFdf|OzmUj`e@Vs@4?*8gQ&FVjb&-9~ps2ZDh1v&Dk*oRXlE|TC0kn4rKINAS z+6}e}x^~6hNv<&$8S34(=vtg7FugyTsCF+QFIzo{vF&l9y}^@ce|9A5Eu%?pVz$6N zWy2hsvgIQ4aZHqUe;R#}aGoBRSVLn@571Rzir85)3E%BogtgZ0n0@OAX4!2;-HY>a z?Ew{>>t8^Z>Z#MMr*x>z*hPY@F`J3*t70Pab&xpk9t|s}O@%XRLWtb7m}~S`LS5iy zfLoqm_Ra_FvQI#lqAvtmc|lF^Iw;fqF&i5wS}h%UCNQ$5`SG^R3(KKNTrXVI@z;HbfQhI3J7(ni!2 zgmUiI4Lp4%7w25@L$CeD*wb;3ijO-_%MP9t<$ZW3==TXAN%#LF*e(g9618Dgpz+EUdU74Wx_24;{<#>mz!LV=OyRj@#&Bl+B<{PK&Ci;Jpf}1M z%J1;L@BAu|Jh28c-Il`w&AH&ZZ5TXrNg{jtI1l~5Owqa-7wA5IKaH1b_E9O<7XChGG|F3r`{5Hwu~ z6dXGfDac7YCFm)06m$h{v*b{@QseVtqOgRd()>MQqU`raMCwW}L@C?tsN>}fy3N0v z9y>AyBQM+GzXhj}Nfu$Lb|v19Ov9WP8}R$#5oo#U7G?Lx(Tefa^Bf1XN$JN(^5l9g zaoN*D)_DFRSxP;`M8BJ0)es4NEe`>)8h~5I!j=>I5Pf7U9IerUtY1nnSw$WSD^y?| z_j*j&t_S*S$8z>F=hgbpf&GrtA@isK%(az)#QCMfveKFq-#ursy{%2Zd>koyVBBR_!N<&|8r5Heyhl%c#-I3rm^4#%@KIcGA%WG zDo+QMeQEDd5uJejl$nmjs(5=$5&Gh3?HD}s{46%zU4{kw6}gAu4mHeKPLEmoi&n^b z3+jF6lGvaC5}p`Imb|z`f~F;r7^`#=TJax$&pV0V=s)De3mI4(rwCgslwjv(Nzn3r zOFF7wk>vY>ME{^H^cpHc8RuOGK2ztKDlHi8CJ#r~zb9NT&N(!;BsN+_pl@nS^NL<50gi8snVKm zME4GV5?xa;q5GXYX!P0`+IC7rTYcZt> z1-`V=dOZ!#T1mI-ucg^zchPm#{8`ksrr(yGh+0r@_yfcSRglAXB)Bs0F29IW_8Ok0PDeP2Hj9^@SGkEKLn{&k}C?IP(NxrbCl zz7^EjZV|QK^rPh_{q*$QIoSQe3%hPyLj9UD>|OK*&rR;blFPrbI^ZXouIWY@oi?ZO&62i;uGXeT{PK=+|S@wPdb%8liK$mN%pP>B;mnX;{3*p6yJOx z@cgqHuxL z=S|~9zBJ7H6wN<)mQKBRftF?`QS>gQ*(YjfqemSL%X&cd^h;=ibq;lryh$A{OV_Pe1kFCCB>L|G5;yh&@ov6F+&#)knbiMPbmrky zu5TNr$e2VaM5UrZrATbn^U$!BG;YnQG$&LVc5V4Zk_J&oVP{Njq7fx)-Iqd1DwPtF zC}Rjo1J(C@|2Z7T`opr;^S}v{G$7Sx??YzazpZ ztFf3WU3H*1XAzt?97pDvG4s;azPlb8|MtmA`>LH&wM9SYDIX+urhRj=wP=>U93s0PC#b0< zn%v|wDC1HU9bM8)`R(PjWXK(w`7KGfvg1i(QXGY3B+!7FX`~)2{8(#2p;t3${H!>- zHu)GO|F@jtm-MERyVf$FkH>AlSOrMDD*lmt*`_7?t7QS{WfhZwl?L>Bh9LHeA%uTZ{T49)*`g$&gSsiXcqm2K#S$>jzJ zTx1L5^1q;8xEKa*Gf`bW5`J|m2pH2$XN!v{{(CwFcqLGX>lyNhK1tz=PKfqNFnt|- zmRx->&ky&!fZtrBl(KC<@9rL>qe+kzAZ1l}s5%kA@y4m#-ga==$LZdnB%v?`B}%KqvIR zCc3nnHlr}?D6VHF2_J0%u3vkP?7x3tlh`M}*r1k^@k}u%@n{F4wO(NS^E)t`pN#CD z^Jp4+7HdL7VA#uBILl_iX5J{gexnYWVI#AhMzm`?%WUW zazBjtGY~r-L||4}8gg#rikWOF;!{N5a^7dW7|@R4hu*@dj?mlU0%|v$Lh5@zAYeOY zw781g<`OiYaKxm(B0oK8B5FkrOHN4z(|^`cK+`?itC~ZGCtuUWGoR_tgDR-?FhHl` zAK1NVK1zNGN7tvtNIJ9tjaO$t-e(GG|1ieTuPO+RZ=vYCQu5eRK-$aik>v7S((ji? zny(&_UquBK=cq#Qlwgb%sp4*l0zCV7)9tV?AyG$9IO$^{X$QnDOl?xJ-OFGzU3duYxpNh zp7om=VuoSV2@^yfFvtEVYnW`F0MnRGDpT-GpM~a!EZfX zv?VAbPxl+S&H74K2l^voykNPVS%MHxKjG3khqdDp(HWkINq1tfV|ElQPDdht>RDV9 zeDidP`1xiG`fQEDPStSSI}nXZ+bFaN4~*K<)tJ9#8a9TEN2lvhbO!2RV1I3VTRH%t zF8Vk%*aQx}#tF`~G1mUA2Lp))9=WN)L@={<_7i>(48e0PQ*l1oAvts!zKvi|er^uk z6@tm!tdA9^3{cuv5BYnQ@pgqA)Sfrc^5aDm+xD0aJZzvBb_$4FppJ_={bBq}2bh4uoI@=xT4O-QVB)q&@?3HW}-_c1CJM9M%VIq@tye>)nXqUdE+>uC;MT- zrd>FCW+Sep{eKr@Axb^}#Fs-BP<|#lQhT&u?WiRDe{$fG9`d~XoBYBQ5$4es>xu^8 zl#>pw4^qSabWOPC4FuOVL}kJlRM?M&)gJ-2}TX>+XKIT1hlmbC*uMv9Jjm4|~S>n{4323V{MuXG{9rJae`9uS2x)kAD(M$Bqr%HryKKzS| zqc32;Z3>DKZy?|x5WVg`JTvd(xforxSEOU}(Im{T4#EOePuSg@g_q7_;r>etvESt2 z;9f@y)SuDOb2${0n@*~KT_NZEG%~!FPM3D&QNgu$WR}|p7kx~TCBF_CiQBRI^-4^6 z`X|c7nRM--K8C8PqcF5LG^@JkylV-?UbsPC9}}s<{t{h(n@)+#@6f5`*<>W1$E99G zg@<2Irb%z?uhPa!y8(C-s)O*oI!KTj3Rj8+hTdO_N&Iho3pj$LoG9Eqorac2Qe-th zgh_n~o^+IR=&$F9k+zkfPcoAD)WOP&T*> z_3RqdGksvUWcTk$il2|0Z~U}knXcKW>(9i+Fg+t7^ATb)>~ z*8y$2kC@P2gUa@D7=A8>cP5Y>6pxwXe4(|^5#cVPE3e-R33p3qR@F5swv3=*gZ!x{ z+MP!1SWTynt)v|J4HOo#kE(wMQCj&0vQNvWLgzN>)u|2NH5Q24!V&&!9AYcwF{*b6 zMrt^_=IROgV=3MuKpAYJ9CQdZCc4Ps8y16XqauYd6leqs~x!o z%%`GZ?v$nxLDL5%P(hEe~6pj(4J21TUFCq_lLP6aU&pP{J^2I8Oh`T}Adr#43Yfp;zm`yWx zPa;!?QB)o>lHT5)K$Ctp zs6F%78^N64oR-Kr#oPL98YIcw8Z1c+>XdfaB~tVu!QBk=#Y}C%5t%L+8I8pd0b|H4 zYmqHnPE!n9Pkz9o8zFfg9Y!D4kAz$LKd{}Bh`{eM9H09{{LK|; z(GxDhV~seq@gq)%y!uMd4x|QsfyCx3_Ih+6O05=_*Pp>rO&m>W88FBdJ^u83{M0N& zcGlp~h^}WplFCdfkv#UAin=|7t2puTLboavRF+a3lN3Q`B9aM4fNLDSp); zD*1Ink}PH{2Hst4=s;Z_yLU7fcucXo`-^{%-^4eE@8dhKdU5+-tNF%$^Y{t_318GQ znwRt#bNlU+c;InMZcLN-VqBYP+!|Y#@&t+FBSlvH%$!wNJ2FGv2@JKx61A=?wv$$^lX+HfTJl#k?H-s-{tZ{j zaO*!5Q+ZEjm~l+fWU-a`6z8xts+}y;M4Mk)KAJBYIhi}(oXqX-j1irE6RtVKgeNzQ z;w4?*q%ZX;`S)%#I zVRW>{Lvcd}dY9(lhGsrg8}ng#;{n=_i5}Xr$EaWU0`&vS;5oM(2A^KSbl_tg|CECX z8*iiIZYILTYo~Wz#y+jHka}&yd2zPM53CUW>|oMdzKm*vSCH|W#Z>Rass8j(vizr6 z))stRW^ej9TPNkT#9x)O2MqYFGzxOErFJ9E9Yw^{nGUgX!( zLdE-rVsCE~*tm?u%l!k9XC^0dSx@Om;CULmcMFYJU`iVsT4XIA=VaZU#ZuG%n52A- zD$_RiV*z@P83p#`((;MiK6(~U4gHJzhAifhZ|8BX)(Jd(LMz+%#f>Q@&6kEgh^1NQ z^s%~W6S`gsf0b4&=DkTq-jeH>QIP>lkK0hbDMio2d#E=p#LmB;!+vTh)F+pSzCaP; z^F>GGd6OU7~A^xT&cwP8z{p=TQVpOFHuadhI6SEsn+Cx3q8jXn>PZ4g7OXcUFWI1Re|&6n3?H*3Ju|@gZpwf^A`4N%74rx zRF&x+QlgayQ)w#cVU6x0c(nUKz5XQTTSj8?z(iDACu4f}6|8xa0mE1s{8e(XHz^Mh zZ*makn}vE1oEOLjE<_xsUjD*KX1@(4aWZI+%*_D2{ zzT-3P$b3W|Q?HZu^f=lxG>n|j9VN|$2Pms`0|noiO<4uwDA~0SC0_Y08xeS#md@^l z8Ra&JS+E=Bi4m9?lY~9aSD|SquANV=qpl$yIn^g%W4#lZA#<_d#8|YZ_fYrq|3seE zo+3*R%konCNYvcgB{TFFvhKKO7WJi!$?a6)nQ{I3#YLKY-2o*YIPVK{XsBlSXA9Ys zK!4Weo}Qih;VkKU;^iE~dd%?Iz|siqDGe9Tbha zjkejD7*TQ))q;^GuYD0uzs8}_>Ac`Q{44x@p=eX|gR;kJv|N zGQ)WfLxj#&6<(h&^z`*Na_HSjQPaAq{<%D+zvzSY8~ULnWC&ar3!lB<2~7%HkJA77 zVMzCBINgm$-My>0sF8!AU4p?qqzJu5Z=q*FDmI)C!OsIb@x1>W(K{Oj&Ba}0D}RYj zeV5RpG&h;U^gkqqV^mp*niF#x=)=zUiD%K`{BUPchtG*JQ?;j zr;=m3GLLcRB!6ER%y#OC@0ap&Ho3x|S^h7YRlLt;{nor@TQ}CQPOaChXmSo4@jH$= zj+w;*Bnq-YO3wrnVi*iZ%tEIA1{@x<7b*k%p;Hlr#L*Fg0WR1geG_pa`68O%UBFSN zc<9x}LEStKlgG#7VB$sS9Zp4%Ng8U_rr@k@JdB43AL#P+(77}PbC^Cx+ZmzF%M6xr z5||Ehg7;ZhXqfsT&+rs>nnj2-Ulcm-MZ?820ZBpEVYR0K#StZF99;&!{0%y4-oavD z4T>$QkZk`7E2rnfyY3p6EQ*7rb|~Hk9fZaYM?6_>fZJbx(sX)C2b1F{Z`CStuz4-h ze|X+@-S#h%2@@@tO`!vu6tIPbh6S^FqZC$HQotUi)H1uDpP0MpJJxtj%FG*%v6XQp zlJ4!Qv@!kxbadLU6IKx6wVH1QaaeL4+b|&t04#V(^+ORj%LrmE?)D33h zwTt1}mm!;eTg(9RMQ-B>TK{?+HBVk`O(AirN|63if!R8^30LP7ee9J3h0(>z(&Vy@c1e66>6)o zXXRp4y_}7s%jRJEoTZ4-UkZubTy%)v<@H*GYx5m2_NEyk{uz!6y-}!68IKX$tq>jT zgvfR`oDfddh>#Sx9L|A5YB7{zDv{k>i-dU}p_?S0{Vkec==cHNL8Yiset=TdY-l{b z0>6{7!eJ7O@k2zv_raf7Z=okR#|;$o_Z8Zmx}7Y(457T?wX%wUBw2TLiIiWRCAoN9 zk&Urj$eafrV>N%ouv7yZx|!!&R9&DVgi#2 zUE~+_!Sg;JX-dK;DvMCW+)WxdqSzlF#GGk=@My%gPKMn@D@cdfBX;dH^dw9}zceT0 z+;_p#Q3p_-e+JbP(=qGXL*zM$uDfd$_O7WxP@ngRaeW8X(d9@qEJnP`J!p7e#YxR* z+)zJ)g4r98e99KNPc;!>Qa~<0y=c@u1u_~JEbASeDV^}k&$i+7W!o|5cH1`Z3zBd? zoQ14Ez=F@mFdOY`CZF|~)mfA?*N2TvdE0MR6RysS+z0ZN9|v;d6$AKC3soLsTFa&! zzRbdw&t`ad-&QUEi_}6%k2HI^Qr=2mI_eiFG7cx{a8xw$3+a?p_?VWiuc4h^s%W@I z5lu@@B9%Ikg{bkS^p10MRP2D{!(P!|wa?W1qbh7xj>3(4OXTL-AUA-++R7GIq6?pp z;|w$D7PMYEj2nypg-_jW9C-f_qdpX)K2Z3uPdtI=<|5?T7C^VZm>12tfnbvhc)lV; z&^^g_P+94`w~uf@_2seS2J)Rt4SB-sk=!ZXn3uU2^WkU2eY?$X z*4waWIq|G9HjlNKH?rPe75Tuk1Nf~$hFrd7ESF80%0s1A{K~V*yt->F zugx{!6`vHjcW4cBJe$WV5{|JkTddjq8Sf;Ue<`q?nG)8TvY7?!_GEt7XRw(4WfEJ5 zC$@Rc6*ji-tt5&Y8zsSij1hcS1D5wKSW@yuPv%i=M8`*klk?L;G1L7-syF3uKU)zi z8`ZJQq91+^9)OOuBatHZ0p-0`!LRrrD$j<&h6#pqOsbd*U4_@_R4i4w0L#h+s16#yo$aHSbiP!F68S z@z}-I{KP;Dp8d_3+c@;&dVRWCT6sAOiMhm_JOWvj=1!I{J&IYq&Slm&YuO^JR+i^p z#uQ6rtg7?^>)vvlmHhH&>kfvpl)AI*OTtdp&5cAJDqPa$UM)3#Gk}!ZkI>wbINGff zL*GkNsB}sWnWjFXGE~#fp9+|DT^A{)lOY|u5Z?do6ik*QsN}(zb2UVGGKDu=?ABxY zZN&LIW~krSL?Jx~$d@yjuA@5BKY5xxb-T;v@2F!Ao+{jWg#lmEX~Gp1M{$kcgLzPt z0*}b4V?Q4ivZc=HY?(m}yI>#6wBCfX!7q|nso6a?_GuL>+TP7}boA$|KbvshxmH|V z(Uu=*vEqAn|G|5_I3G2_nr|)~!}r(d@bB|`@!(C*So$;>vv`xm;+5X9=xfT{_pBjb zf53!iS&rgEHI2Cc>><2!dtYu-_mvgpy=P}fy<&FDGTGADGpzjl78a~;$h>|BO6-}k ztakKC@vM1FR;zqRrgP-GEbG=VG9A8-{B8fGF5`#vYTY+7)6s(2q|qq5Z-d<_GochU z15<8r*!MHTKT7Ht^5Zhiv%4dkIIuSx>KM)RkG^HCt$nypKwrLclPYiN)ZtU^j^GB~ zqLVz`gnPRT;?Dhg@j&e|)|r{cUg(A}EvLU(!L2>4uHq=0suIuUyMv{=yk@C2^(-(* zLCk#gxaBY5vS8!6ZSy#OG;<1fa-7cJxBSTqMQ<)6VIu$Nq|4Rk|7O=3-?27c&)&{g z=1=}Nim$n4FMK0QcwzS{u6J%FA2DDtKe2cQAM)0eoAeCfgN(Gf=SyWCxwVJ6O{-^# zuFsfWP!>y(#<6PY3Fbf1gSGuLht-aqBxaSpm|Vd|N!YGRY3;W>88U`a&4Wec{q-1~ zIhaCMf@M@VR5*ejNJ-r~o-zinpemoivb?kl*@~bPxUQ1 zerZh)Yuc*FyLxBN_+}JBtAA*Y!mB3Y<&DK+CH5fBf0Ckgw>W6Fm?0Ze1oeNcT_Xr zMyf;kHdkG4JVk>a43_8D2X?UT_%5au){855%k%u|PUfKB#N>TnvYJLP{V>54%}QsE z!?T&et6b()SjdJx$!8aJ(wLLOb=FcNWj#u-+4??mJSC_Y5=PF&`&zuUKOq QH@!c%tm)04eC=lc2N6I?R{#J2 literal 0 HcmV?d00001 diff --git a/tests/test_data/small_test/matlab_aps/ts_aps_m2.mat b/tests/test_data/small_test/matlab_aps/ts_aps_m2.mat new file mode 100644 index 0000000000000000000000000000000000000000..5c0e6f47645a9102f9b58bbf7b1748e3024ec9f3 GIT binary patch literal 162632 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