From 8c0ce32e53c55fdbd2479a498325cbe912730140 Mon Sep 17 00:00:00 2001 From: James Dea <49453187+jimxia7@users.noreply.github.com> Date: Tue, 16 Jun 2026 00:18:36 -0500 Subject: [PATCH 01/22] Changed mask so that _ref = 0 is not included --- src/pystrata/output.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pystrata/output.py b/src/pystrata/output.py index 062c5e8..f265514 100644 --- a/src/pystrata/output.py +++ b/src/pystrata/output.py @@ -681,7 +681,7 @@ def _ln_interp(self, i, ref): _ref = self.refs[:, i] if self.refs.ndim > 1 else self.refs # Only select points with valid entries - mask = np.isfinite(_ref) + mask = np.isfinite(_ref) & (_ref != 0) _ref = _ref[mask] _ln_values = np.log( self.values[mask, i] if self.values.ndim > 1 else self.values[mask] From 8ea74ee944dedc8f4aa2b3d5772d79b00af2bf8b Mon Sep 17 00:00:00 2001 From: James Dea <49453187+jimxia7@users.noreply.github.com> Date: Thu, 9 Jul 2026 10:47:55 -0500 Subject: [PATCH 02/22] Adds capabilities to discretize based on layer specific max freq and wave fraction --- src/pystrata/site.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/pystrata/site.py b/src/pystrata/site.py index 5d286f2..9528d93 100644 --- a/src/pystrata/site.py +++ b/src/pystrata/site.py @@ -2195,6 +2195,47 @@ def auto_discretize( layers.append(self[-1]) return Profile(layers, wt_depth=self.wt_depth) + + def depth_dependent_discretize( + self, + max_freq: npt.ArrayLike, + wave_frac: npt.ArrayLike, + nonlinear_only: bool = True, + ): + + max_freq = np.asarray(max_freq, dtype=float) + wave_frac = np.asarray(wave_frac, dtype=float) + n_layers = len(self) - 1 + + if len(max_freq) != n_layers or len(wave_frac) != n_layers: + raise ValueError( + f"max_freq (len {len(max_freq)}) and wave_frac (len {len(wave_frac)}) " + f"must match the number of layers ({n_layers})" + ) + + layers = [] + for i,layer in enumerate(self[:-1]): + if not nonlinear_only or layer.soil_type.is_nonlinear: + opt_thickness = layer.shear_vel / max_freq[i] * wave_frac[i] + count = max(np.ceil(layer.thickness / opt_thickness).astype(int), 1) + thickness = layer.thickness / count + for _ in range(count): + layers.append( + Layer( + layer.soil_type, + thickness, + layer.shear_vel, + layer.damping_min, + ) + ) + else: + layers.append(layer) + + # Add the halfspace + layers.append(self[-1]) + + return Profile(layers, wt_depth=self.wt_depth) + def pore_pressure(self, depth): """Pore pressure at a given depth in [kN//m²]. From 42192ef4eddd49ef6718f2ded89dce22f0eb9595 Mon Sep 17 00:00:00 2001 From: James Dea <49453187+jimxia7@users.noreply.github.com> Date: Thu, 9 Jul 2026 11:08:12 -0500 Subject: [PATCH 03/22] merged the depth depedent discretization into auto_discretize --- src/pystrata/site.py | 71 ++++++++++++++------------------------------ 1 file changed, 23 insertions(+), 48 deletions(-) diff --git a/src/pystrata/site.py b/src/pystrata/site.py index 9528d93..1b9b034 100644 --- a/src/pystrata/site.py +++ b/src/pystrata/site.py @@ -2152,69 +2152,45 @@ def iter_soil_types(self): def auto_discretize( self, - max_freq: float = 50.0, - wave_frac: float = 0.2, + max_freq: npt.ArrayLike = 50.0, + wave_frac: npt.ArrayLike = 0.2, nonlinear_only: bool = True, ) -> Profile: """Subdivide the layers to capture strain variation. Parameters ---------- - max_freq: float - Maximum frequency of interest [Hz]. - wave_frac: float - Fraction of wavelength required. Typically 1/3 to 1/5. - - max_thick: float *optional* - If provided, layers are limited to be at most that thick. This is applied to - all layers regardless of nonlinearity. + max_freq: array_like + Maximum frequency of interest [Hz]. A scalar is applied to all + layers; an array provides a value for each layer, excluding the + halfspace. + wave_frac: array_like + Fraction of wavelength required. Typically 1/3 to 1/5. A scalar is + applied to all layers; an array provides a value for each layer, + excluding the halfspace. + nonlinear_only: bool + Only subdivide layers with nonlinear soil types. Returns ------- profile: Profile A new profile with modified layer thicknesses """ - layers = [] - for layer in self[:-1]: - if not nonlinear_only or layer.soil_type.is_nonlinear: - opt_thickness = layer.shear_vel / max_freq * wave_frac - count = max(np.ceil(layer.thickness / opt_thickness).astype(int), 1) - thickness = layer.thickness / count - for _ in range(count): - layers.append( - Layer( - layer.soil_type, - thickness, - layer.shear_vel, - layer.damping_min, - ) - ) - else: - layers.append(layer) - # Add the halfspace - layers.append(self[-1]) - - return Profile(layers, wt_depth=self.wt_depth) - - def depth_dependent_discretize( - self, - max_freq: npt.ArrayLike, - wave_frac: npt.ArrayLike, - nonlinear_only: bool = True, - ): - + n_layers = len(self) - 1 max_freq = np.asarray(max_freq, dtype=float) wave_frac = np.asarray(wave_frac, dtype=float) - n_layers = len(self) - 1 - - if len(max_freq) != n_layers or len(wave_frac) != n_layers: + try: + max_freq = np.broadcast_to(max_freq, n_layers) + wave_frac = np.broadcast_to(wave_frac, n_layers) + except ValueError as err: raise ValueError( - f"max_freq (len {len(max_freq)}) and wave_frac (len {len(wave_frac)}) " - f"must match the number of layers ({n_layers})" - ) + f"max_freq (shape {max_freq.shape}) and wave_frac " + f"(shape {wave_frac.shape}) must match the number of " + f"layers ({n_layers})" + ) from err layers = [] - for i,layer in enumerate(self[:-1]): + for i, layer in enumerate(self[:-1]): if not nonlinear_only or layer.soil_type.is_nonlinear: opt_thickness = layer.shear_vel / max_freq[i] * wave_frac[i] count = max(np.ceil(layer.thickness / opt_thickness).astype(int), 1) @@ -2230,12 +2206,11 @@ def depth_dependent_discretize( ) else: layers.append(layer) - + # Add the halfspace layers.append(self[-1]) return Profile(layers, wt_depth=self.wt_depth) - def pore_pressure(self, depth): """Pore pressure at a given depth in [kN//m²]. From c3a0edce722a019f1dbe4156423391b0e64e6ee0 Mon Sep 17 00:00:00 2001 From: James Dea <49453187+jimxia7@users.noreply.github.com> Date: Sun, 19 Jul 2026 18:44:46 -0500 Subject: [PATCH 04/22] Implement damping_min property in site.py Add a property to return small-strain damping. --- src/pystrata/site.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/pystrata/site.py b/src/pystrata/site.py index 1b9b034..3d94d93 100644 --- a/src/pystrata/site.py +++ b/src/pystrata/site.py @@ -602,6 +602,15 @@ def _create_name(self) -> str: fmt = "Darendeli (PI={:.0f}, OCR={:.1f}, σₘ'={:.1f} kN/m²)" return fmt.format(self._plas_index, self._ocr, self._stress_mean) + @property + def damping_min(self) -> float: + """Return the small-strain damping.""" + + if damping_min == None: + return self._calc_damping_min + else: + return damping_min + class MenqSoilType(ModifiedHyperbolicSoilType): """Menq SoilType for gravelly soils. From 592990d2a254dbdc62a1a7e67134c5de61661544 Mon Sep 17 00:00:00 2001 From: James Dea <49453187+jimxia7@users.noreply.github.com> Date: Sun, 19 Jul 2026 18:47:00 -0500 Subject: [PATCH 05/22] Simplify damping_min property implementation Refactor damping_min property to return damping_min directly. --- src/pystrata/site.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/pystrata/site.py b/src/pystrata/site.py index 3d94d93..7d9612a 100644 --- a/src/pystrata/site.py +++ b/src/pystrata/site.py @@ -605,11 +605,7 @@ def _create_name(self) -> str: @property def damping_min(self) -> float: """Return the small-strain damping.""" - - if damping_min == None: - return self._calc_damping_min - else: - return damping_min + return damping_min class MenqSoilType(ModifiedHyperbolicSoilType): From a488dde028a821ac8ef866b3f9a119abf58f32a0 Mon Sep 17 00:00:00 2001 From: jimxia7 Date: Sun, 19 Jul 2026 18:52:01 -0500 Subject: [PATCH 06/22] Change damping_min to _damping_min --- src/pystrata/site.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/pystrata/site.py b/src/pystrata/site.py index 7d9612a..88b48cc 100644 --- a/src/pystrata/site.py +++ b/src/pystrata/site.py @@ -566,7 +566,9 @@ def __init__( self._num_cycles = num_cycles if damping_min is None: - damping_min = self._calc_damping_min() + self._damping_min = self._calc_damping_min() + else: + self_damping_min = damping_min if not name: name = self._create_name() @@ -605,7 +607,7 @@ def _create_name(self) -> str: @property def damping_min(self) -> float: """Return the small-strain damping.""" - return damping_min + return self._damping_min class MenqSoilType(ModifiedHyperbolicSoilType): From f29e69d2b0a4059e52929a37ca089c4fcfa44570 Mon Sep 17 00:00:00 2001 From: James Dea <49453187+jimxia7@users.noreply.github.com> Date: Sun, 19 Jul 2026 18:54:11 -0500 Subject: [PATCH 07/22] Fix assignment of damping_min variable --- src/pystrata/site.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pystrata/site.py b/src/pystrata/site.py index 88b48cc..89078e6 100644 --- a/src/pystrata/site.py +++ b/src/pystrata/site.py @@ -568,7 +568,7 @@ def __init__( if damping_min is None: self._damping_min = self._calc_damping_min() else: - self_damping_min = damping_min + self._damping_min = damping_min if not name: name = self._create_name() From 0bb491038902d170f376bcee0d74c76adbca50d4 Mon Sep 17 00:00:00 2001 From: jimxia7 Date: Mon, 27 Jul 2026 23:39:10 -0500 Subject: [PATCH 08/22] Adding a complete work flow to test --- src/pystrata/output.py | 17 +- tests/WorkFlow.ipynb | 341 ++++++++++++++++++++++++++ tests/data/Meloland_Soil_Profile.xlsx | Bin 0 -> 133629 bytes 3 files changed, 357 insertions(+), 1 deletion(-) create mode 100644 tests/WorkFlow.ipynb create mode 100644 tests/data/Meloland_Soil_Profile.xlsx diff --git a/src/pystrata/output.py b/src/pystrata/output.py index f265514..01ddc60 100644 --- a/src/pystrata/output.py +++ b/src/pystrata/output.py @@ -412,7 +412,7 @@ def _modify_values(self, calc, location, values): class StrainTSOutput(TimeSeriesOutput): def __init__(self, location, in_percent=False): - super().__init__(location) + super().__init__(location) self._in_percent = in_percent assert self.location.wave_field == WaveField.within @@ -502,6 +502,21 @@ def __call__(self, calc, name=None): self._add_values(fas) +class KappaOutput(FourierAmplitudeSpectrumOutput): + + ylabel = "Kappa" + + def __init__(self, freqs, freq_range, location, ko_bandwidth=None): + super().__init__(freqs, location, ko_bandwidth=None) + self._ko_bandwidth = ko_bandwidth + + def __call__(self, calc, name=None): + FourierAmplitudeSpectrumOutput.__call__(self, calc, name) + + kappa = np.polyfit(self.freqs,self._values,1) + + self._add_values(kappa) + class ResponseSpectrumOutput(LocationBasedOutput): _const_ref = True diff --git a/tests/WorkFlow.ipynb b/tests/WorkFlow.ipynb new file mode 100644 index 0000000..c0ac917 --- /dev/null +++ b/tests/WorkFlow.ipynb @@ -0,0 +1,341 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "747dd43b", + "metadata": {}, + "source": [ + "# PyStrata workflow\n", + "\n", + "Import the package directly from this repository's `src` directory." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "ed449b23", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using pystrata from: C:\\Users\\jimxi\\GitHub\\pystrata\\src\\pystrata\\__init__.py\n" + ] + } + ], + "source": [ + "import sys\n", + "from pathlib import Path\n", + "\n", + "# Find the repository root whether Jupyter starts in the root or tests/.\n", + "repo_root = next(\n", + " path for path in (Path.cwd(), *Path.cwd().parents)\n", + " if (path / \"src\" / \"pystrata\").is_dir()\n", + ")\n", + "\n", + "src_path = str(repo_root / \"src\")\n", + "if src_path not in sys.path:\n", + " sys.path.insert(0, src_path)\n", + "\n", + "import pystrata\n", + "from pystrata.output import KappaOutput\n", + "\n", + "print(f\"Using pystrata from: {Path(pystrata.__file__).resolve()}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "4c25fc14", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pyrvt\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "d2cafcc5", + "metadata": {}, + "outputs": [], + "source": [ + "Site_Profile_df = pd.read_excel('data/Meloland_Soil_Profile.xlsx',\n", + " sheet_name = 'Scaled_Dmin_to_Kappa_0.036')\n", + "\n", + "Layers = []\n", + "D_min = []\n", + "Vs = []\n", + "Thickness = []\n", + "Profile_Depth = []\n", + "mrd_strains = np.logspace(-6,0,num=20)\n", + "ModReduc_data = {}\n", + "Damping_data = {}\n", + "max_freqs = Site_Profile_df['Max Freq']\n", + "wave_fracs = Site_Profile_df['Wave Fraction']" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "b32ef6ba", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "for i, (_, row) in enumerate(Site_Profile_df.iterrows()):\n", + "\n", + " soil_type = pystrata.site.DarendeliSoilType(unit_wt = row['Unit Weight (kN/m3)'],\n", + " plas_index=row['PI'],\n", + " ocr=1,\n", + " stress_mean=row['Stress (kPa)'],\n", + " strains = mrd_strains,\n", + " damping_min = row['Scaled_D_min (%)']/100)\n", + " \n", + " ModReduc_data[f\"Layer {i+1}\"] = soil_type.mod_reduc.values\n", + " Damping_data[f\"Layer {i+1}\"] = soil_type.damping.values * 100\n", + " \n", + " Layers.append(pystrata.site.Layer(soil_type,row['Thickness (m)'],row['Velocity (m/s)']))\n", + "\n", + "Layers.append(\n", + " pystrata.site.Layer(\n", + " pystrata.site.SoilType(\n", + " 'Reference Rock',\n", + " 25.9,\n", + " None,\n", + " 0.01\n", + " ),\n", + " 0,\n", + " 3500\n", + " )\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "ec0a55f6", + "metadata": {}, + "outputs": [], + "source": [ + "Site_profile = pystrata.site.Profile(Layers)\n", + "discretized_Site_profile = Site_profile.auto_discretize(max_freq = max_freqs,wave_frac=wave_fracs)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "458b1a12", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# Calculation Loop\n", + "outputs_freqs = np.logspace(np.log10(0.01),np.log10(100),1000)\n", + "RS_freqs = np.logspace(np.log10(0.05),np.log10(100),1000)\n", + "\n", + "output = pystrata.output.OutputCollection(\n", + " [\n", + " pystrata.output.AccelTransferFunctionOutput(\n", + " # Frequency\n", + " outputs_freqs,\n", + " # Location in (denominator),\n", + " pystrata.output.OutputLocation(\"outcrop\", index=-1),\n", + " # Location out (numerator)\n", + " pystrata.output.OutputLocation(\"outcrop\", index=0)\n", + " ),\n", + " pystrata.output.FourierAmplitudeSpectrumOutput(\n", + " outputs_freqs,\n", + " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", + " None #type:ignore\n", + " ),\n", + " pystrata.output.AriasIntensityTSOutput(\n", + " pystrata.output.OutputLocation(\"outcrop\", index=0)\n", + " ),\n", + " pystrata.output.ResponseSpectrumOutput(\n", + " # Frequency\n", + " RS_freqs,\n", + " # Location of the output\n", + " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", + " # Damping\n", + " 0.05,\n", + " ),\n", + " pystrata.output.ResponseSpectrumRatioOutput(\n", + " # Frequency\n", + " RS_freqs,\n", + " # Location of the output\n", + " pystrata.output.OutputLocation(\"outcrop\", index=-1),\n", + " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", + " # Damping\n", + " 0.05,\n", + " ), \n", + " pystrata.output.MaxStrainProfile()\n", + " ] \n", + " )\n", + "\n", + "\n", + "motion = pystrata.motion.TimeSeriesMotion.load_at2_file(\n", + " 'data/NIS090.AT2'\n", + ")\n", + "eql_calc = pystrata.propagation.EquivalentLinearCalculator(strain_limit = 0.5)\n", + "fd_eql_calc = pystrata.propagation.FrequencyDependentEqlCalculator(strain_limit = 0.5,method=\"ko:30\")\n", + "le_calc = pystrata.propagation.LinearElasticCalculator()\n", + "\n", + "\n", + "\n", + "\n", + "p = discretized_Site_profile.copy()\n", + "\n", + "eql_calc(motion, #type:ignore\n", + " p,\n", + " p.location(\"outcrop\", index=-1))\n", + " \n", + "output(eql_calc,\n", + " name = f\"test\",)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "f2deb747", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on AriasIntensityTSOutput in module pystrata.output object:\n", + "\n", + "class AriasIntensityTSOutput(AccelerationTSOutput)\n", + " | AriasIntensityTSOutput(location)\n", + " |\n", + " | Method resolution order:\n", + " | AriasIntensityTSOutput\n", + " | AccelerationTSOutput\n", + " | TimeSeriesOutput\n", + " | LocationBasedOutput\n", + " | Output\n", + " | builtins.object\n", + " |\n", + " | Data and other attributes defined here:\n", + " |\n", + " | ylabel = 'Arias Intensity (m/s)'\n", + " |\n", + " | ----------------------------------------------------------------------\n", + " | Methods inherited from TimeSeriesOutput:\n", + " |\n", + " | __call__(self, calc, name=None)\n", + " | Call self as a function.\n", + " |\n", + " | __init__(self, location)\n", + " | Initialize self. See help(type(self)) for accurate signature.\n", + " |\n", + " | to_dataframe(self)\n", + " |\n", + " | ----------------------------------------------------------------------\n", + " | Readonly properties inherited from TimeSeriesOutput:\n", + " |\n", + " | times\n", + " |\n", + " | ----------------------------------------------------------------------\n", + " | Data and other attributes inherited from TimeSeriesOutput:\n", + " |\n", + " | ref_name = 'time'\n", + " |\n", + " | xlabel = 'Time (sec)'\n", + " |\n", + " | xscale = 'linear'\n", + " |\n", + " | yscale = 'linear'\n", + " |\n", + " | ----------------------------------------------------------------------\n", + " | Readonly properties inherited from LocationBasedOutput:\n", + " |\n", + " | location\n", + " |\n", + " | ----------------------------------------------------------------------\n", + " | Methods inherited from Output:\n", + " |\n", + " | calc_stats(self, as_dataframe=False)\n", + " |\n", + " | iter_results(self)\n", + " |\n", + " | plot(self, ax=None, style='indiv')\n", + " |\n", + " | reset(self)\n", + " |\n", + " | ----------------------------------------------------------------------\n", + " | Readonly properties inherited from Output:\n", + " |\n", + " | names\n", + " |\n", + " | refs\n", + " |\n", + " | values\n", + " |\n", + " | ----------------------------------------------------------------------\n", + " | Data descriptors inherited from Output:\n", + " |\n", + " | __dict__\n", + " | dictionary for instance variables\n", + " |\n", + " | __weakref__\n", + " | list of weak references to the object\n", + " |\n", + " | ----------------------------------------------------------------------\n", + " | Data and other attributes inherited from Output:\n", + " |\n", + " | drawstyle = 'default'\n", + "\n" + ] + } + ], + "source": [ + "help(output[2])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "59014fdf", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1.67946396e-05 3.41295355e-05 5.18492366e-05 ... 2.06568326e+00\n", + " 2.06569761e+00 2.06571290e+00]\n" + ] + } + ], + "source": [ + "print(output[2].values)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tests/data/Meloland_Soil_Profile.xlsx b/tests/data/Meloland_Soil_Profile.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a64946db50e69be370c6ad5001aa12385c8c2318 GIT binary patch literal 133629 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

LRB)fG*Ws)?Y>-_<%QO#y)!L-Cy z`;Y9d3f-?VZ%do7j=8bon*t4B-Nn96R+Vip4sl%!sl4eT`I@lKpnBGTU$36mrCm&F z*ireVUkP^m?j!0IBwnPNMtzm_c(JCW-bREPEK&JJU@JB0ZNS!oy_r{iC-HX-7pkFu zg?f+S>pLZN-&l+2TI@{ymZ`BN^8qx9ey5VD;NH^7>GV_&nydGVpU2C=kg8mb*X)aZ zv2RqiYd9ozF{nHLF8F^I0tVYruTRRlei#net*Np9QhtPX z=*O3@B^eqiimQO`aUk76x`zD$eDLAf2cVPhoB=)X{(Rj4jp^zm zZhHn!V_)D{acr{Xh7=5FB{;2@xIYWEfqae%9Ntpu`j%{2Y@Hq1t%;mLry)=NUfYpnaKdtf+2fQmOmF?k-npSD4vIY6%82$ld1R$9LUt(Eb_1j$t zQBq4MJpzDvvHS1m<^5G>DE_?b{VDh3@iEqpy0Ly|3O?P+M&cBHxQ0Xg6u9$#3bdYy z7U#QCA^m<7FJ-YxuW&#s8$c^mnte3eXDn8MOz~G8q5X)u9t)&^S-SNB$l$hT6^cfz zY!HWvpM{?7l`I0et!+0?!)$^UvG)Y9nA7%6rM=nnp#O(wr~Zd$&HkrnUn~<_1ce8b zDkZdwS%g(s9y$9xgCWf^hSeQVnr|#VNPwvjTOc!ijV_7!px!a!6wAVhBPBs>X`+@; z|6NVHj|2vr#sr>`CH&IHwn_4k$SJr8n)O$D{aGG)`8w#nyyxk-d&6@$~1bau_(8Gd%8=8 z_-1q$W)(*SDnsVDyow~| z4fFH)GaBf+5yd}`3Ii$LRu(HL6p}{$?L zme3muO)PVGXkFt!QYxZ?<>_ht+00B@g0TcCPaOr{EPti^Fx2{){(2T{7|urY491h! z3yan2_!3v^%aIKk5)2-ON0RFM^NE6QuqHYT{b<<`tl<@=fe$R<4~yrYzz;rSNv}ic z8XrrkAOKpFi6@D@L7Iff?{%$d`z#X@l(z{NU!^y_u3JGa-nnAS7N+;gqJ2f1jUanK>0J63VbiMS9n)MKB0(2Z>V~7XK81gxBY;uQj8+D*`fn_fY@Vc4wk?#&H-riw$G9FqW zdc0pRz`|33TANbjy4{emWG+!FrtBzi_PP2l5aPbH;_SUXQ!-4WMGnt+>FiS%2s-$M z+B@*!k}X(0P$z04C5%QxpAp;jb)Zq@(xiYA}<@3^YvXZMr@M|+rAv$`chuy1!Z8e zds^u&hl(Jz7U4O!ppF&VBA-;;L}MPLL=Pe!Uv}0S_*ndOHiVmCHQ5JZkV6yO;Q(_X zX^?M=Nos4T4g{T)Sn!2~9QLh+7HHyk&t{NC02Dk&HAj_Q2haALPL4|w9L}O6=s|SS- ze}F?K1PX>)6~p}=1RwEK)3!2mCB7jK0u$)>SnuaMV`xWy>mtD->6qE-jS$;6qC=%V zBq1a3X1ooKdH;h*CLl5bpU+JUI@zz_0!v2hmPQIYXW7kn_<8vBR+&MdScp4;ODGfz zt~{|15D&d|IHI$4Mr1(&I~8KQ%aGPk~Sr9i3TiimT`=VSQK<)DOr;R0^&~K6leYcV4MB3 zdub`5&fFY;yJogBF) zV8}qaApVdabxYea(hzDX%lyq~O28E#!;G=EdB($khI-rSf&rj(TU%jBDKL5X?Eby9 zP-lBi$HYK8pKMZGj191Md3fOXuFB5YNZ&hwKoxdSFen27TkfSHX5vQ%+M8rRODxQv zGqb{Bs79kkXG6HlNX3aP*t5ZTOp&`&Rn&XM_I{O&-ea6gjwuTAzQ#`R4QiMCP8BA9 zmXixN+?dxdd0fG{^FckVY*;uy+BOddW6)8pd^&LWle`T#oUx;KrUe{Ths@wv1y81S zp$|O7TMCvi8!N@6lo_-`x4sMIkA&zQyGFdSo06#+t%My@A66qRD990T1YN zNijup0ekth+vY;YauPXKk~$?+?`EYszVjlZdIzMUCdJ1T;kbGfdOeasAt?*jN26c* zMi|TY`xAfMS5|`L`Cz=cRzZiYaGaGcE~zawynu>UC@-X|BTo!DEW=8I6QvoS;0Gbq)HXD0z0sOV*7)-Qw9#1Oq&@i z)%l%ila}1!zef&!cbcEAb`b3U9-RQ2q$Gwe$;BBRCipukyq1|Ktsx{5#pM^z&>3Kv ze*~_xfmMC9vU8}Mic>4Lw@ydnnT}gG^fboaHRk1tpI4lN79BAIsc~^Ae13KW`nv$f zcuIb#DDV?o=W!zN-3EU&G20j2Rc5k>5BuZs%E4FffWkIli61x~YIG%C;_rv_yOmfDy#Sz@q|hK*5?a6R{sB0@lG(Ahc9u zEjRNUpJ>%0&5{*^qjHj&JU;6U+>W;Stb1xmAj2r7veACQ+!<&bBzP>xIs%@pKe^q#Xi`pTG_`Vb zfnzS7xteL3VI~?wyy$;dry_EhHUgS7D=S4^Z&;Rf##pFbcv65rh*H>}mml~7pM+C@ zGiKr~T5Q6HQqk)(K2Tf$!zFXBs_#<_0kZ!i8cHhpuMg6NFmqBdMSU}86|sT)P?=o> zGg9Usk~HIz2~Zj5*{|Jdw}}P!bxOSaQOJIFrOn%g2Ku9bVD(Axc*d+=xMTnKN*jS7 z3VddKfO*P_JxbY7a{4yxo9X~5!2PfRfuZzIV=5bjmWvd^v%c%r(5J?2j%)u^B4Os@+>AbNNbuP^zZ?vEea zj@Z+!mfdf!uPHy1i6dF^HQ$_%H-z)^^SRu#&$17W`pg3lSL6TO@^pT(c`~ZaULy`X z?%VUJ#Omq#{ARhPWnp1~7c2mH)LFPkUBlhQXnR17l}Fu;wR^+u`QD)Tg7e+ZS->9m z{nl1G@M@~to6Xz&$4sOnLPJRf-h1nZ!}Zay_UvKc;cVxZ2Mz4(!+gL4$Jz(G8}Ort z*^f$&jvs4U8t*QqZ10W@2^|Q3@ju%2&Y_4Md^GPr(P2-+!mElIf4baTIRIX>Tj!NI@KRAKIMSL*KcVEE_V zd<$lBrPKAz=9S|nB$vu;qpDPYr0QnE26Lh^Df9T}bi#+r!~AaXCw6R)<&~p}`$)Iw zKbuHLS5IMSZu5J+SLx|)cRMu=S4VtHZcjID2Udi~ZI4`a&QCkx-QvBY?G(#=c)cDj zu%Qf1$17)p^WEazJK5{eJU4*yI!4dKDYwEa0-=r+8fXJ z#O*seF8uBsoP5P@6=KU<+oj#IykC&6jD_(u-rvUGJ0JBq3+wCnk}_OPYpvcUR@%FiMe zl4UoS@XeKBSi+^m%-5k!k7p++&GUrZOH_}5PVu8ljew6!lII&L9R2r3eb`$Tm)vg| z8il#6=T8Lr&)uXwrBCJ4X#I^&YTT;7E$}Xb4<0UqdoKT^y_Vu7ymzw@8;! zHHlQ(ekjw>p}jIk9WZ{PzMd}^Mw%b4;3stJNke)hxW-b(Yi63E)TZb>cvL?NU)9lm zy8NSyF<3C&)cny@dGKD(d;Bpq>Qg84Q*HcaA`0+IwS3pX!jI8x?84{At1+MOS)OXO zNsGnu(xk{W$p$IM?OS(scByoCurqmMTMKn|&lzYD4WrdVS)Q=Cjg<8b7IT(3xLfV@ zv++Cl(c@s%I^F~|GZ!~^Eg#Vq?;54;4wu6wD!ZSBXEr(0y_tNxT(-aaRb>gKUyKD2 z;D*W##l#Lp{euQ&aIok$+4Bv8g{rz@UanP?o@UXbQQD*Gsm5k>-ubHK&_O)f@UNp^ z09tOw36V-IeSR%Ix>%^R?U1%Rvpbi3vR}1i2xGn-^=Z%sz@yIss>YUO+KlLPF5F5%8Hv-gzk4! zI5%sSg?mWNVqO%kSy_`i@e%$?_yq{k8ht6T`{lUm z=h2YeWOId`O0HeePxv)<_Gp!LJe%U_Ve77jP*pYgz~SNaj(+&8q=kd;k;HT2DRJVu zB>J)C*hs;Xm1UhU*(%MlS!eeQ@}c=&v1wtE&OtkB@KwBNx7KDjon3{^Z(JjBS*_o4 z`!3P_PE`S1nm@9Bor-I+g**1!=Uc*{^qtsFc)Dm`e-OURm=URljbb#I{W&z zjX%uO>2|IEd=FMzsK@i(?dqyqyOG85MEqpZr{#dIrRDApGk%l$k+S*rR*;F!YP-M8 zx#Kz!yfWm3IYn$;_4jqGfkK{z2D*s~nYjZ$@q~$TE=@uc7gaKO|170D*H~Ddm7~G7 zDVunz!jyBBX)@~N#N*7I2!kh|Cbl^dnJ44YxnXY-Stw%M z`Z!b5JksG@GNkNWSLZC@_GhffF}nDw%+g?4u&ct25|x{ zx;iOPmwk5(;xVVOxQlSF^Yv#Dan}R6y$V;C1pnHL(WPcbBa+{BYS zEB%?2d;Hbb&;h~4ij#t>PTARsuVY^hqBE0cHJyHa9aTa5A|oAJl=QA$#pAk+uWGduOo=GlO@?%9T06NH{LRJBNAd zMjOW%4Lj`A{L zSA2$7((#J?VUDT2#7Lz#hck%fJySozuv1*-RwgRmgn5C{=~=&_FtQF(PG(n5Zf}TI zRdcQw;?A5<4hoIa7%hz$m*7rHUX0b@Y@c|HDWg-h`0V?@<$ZIu+BY=w%JU}pqE92Lk)5IKNA$Vz)X%hNks7L;1z|Au%Xe+Zx=(sFb*${Lr;P?mS!n6oGv?sh; zE>WUaZ{qy1Lq8O^`J_sAdaq7)1Z-(vQg_@8ULZ<dp{S#^Rkav;$!y;m3Pgw>9f zhXi>mPYN&^qT6k>{}@C~C~Ful9BwyNPKv1YE3SRmTu?4LJ1~~TH?@9ccY>{DO3#ah zXTnS8DEq?|CkzZ5P}v%tY&~f7(gVTez*w{=~2PSzQ=t(-d7CRR~9iORt22 zzgI1cfPBDc;^nrQ$%@2I9&cK4P$({~Uy{c{q_=rZ-J|g-v*^95sMeQ4V^n4xmXK+) zxeDElbxUq;^d0()gMox@fzTO}2+{jq6DEsLYhJusCOO}oPFd4qpMK!gU@Fg}86#M0>_}Uj;Ay&)(ISURyQ?T&)Ob%yf$H|lTE1Ic#+nqJ{l^c}{hFc~TuAhXtmNIe9 zZ?h*_3LfFZYNKqJg5!^gvlDM#v)UUC2!Z3|i8qe1e90Vhe%nX%4zpYia>f?cb%3FG z!$d1jMtuV8@zso8`r78f))#>{n?~RGq+YYyI=(ga^}F20WIL5j{FbLRNgIVBtYso@ z3C&Xz?>~v=16J3tJ7?l_)V3(%T(ra8b!)yJZRW+$0k-?T-4IhlFYK6)Fk!};b+5XZ zx*aEvR~XYY>`OAY~=Lrvze1wLBpv>|&`6cz1&5 zY`!xmL%PjMS{Eoe>IQmLCc1(Uhm>%5$X<2 zo=>SHu>^1EqR)H7Xb6rSmUN5gH{WbCq0!oOH+x{k!dyNZ1s1Z#&Sa-1K$$Fqry2dU zsp}XwP2@@)#oswOWajAg!NNW7G*JFD+3+RbakKjm1+V!Jqhm+k%}W z_?rt2@c`#C>xb>-(iS9IgNQDDqq0HBhj#;vKLRBFjJkdn+v4(*>8}w!4Mq&iTkvB% zRU)nw>2od*9A-jq-r~IpV$B|==;OHMoJm*gdgawH!7K*K6zkOuhZL`NY5x}cZ8m3Xl1W}VagH)& zK9m12GC>qf8xP^Ms|2YOZI4&)$&5VU7lJ0}y4eYzHu|n#VPH+72*b%#v8}*>qn! z%4u8N=TXA^=nKI`+WyLM5z*HTCIK1UYQ0p*B<2&7bYI2L`sq1IM)2hQ5|15SZ;_cK zc-B0Au+5VYbUIv3#-Qrs8RP%q)rm?n_rr%i)@#tFeJdj}n=6?lpgj&w#FYFc=CWNI zz*!8$t9=%THV0~{&?s;lI{lbe5>p+2e*P}7QoJlPK#9&yn4{i2A?Qt&&%*PKOG~;{ zXkMiG)?p}oF)+$e!SdTYpJ#`DA1%@VRfj|%@_bS^wd$mItD&Cs0mzFGZq9dPn27#^ zURsz%fGpiCbu?e#2~H^v}} zQo#o(Z?G-_7bUXPMf4K9uMXkB9p~~aH1pJHN#4L4eoc{4N~$DMkW2IMbZO_V|C}|A znPyiPhK$+^G@-T1Kq|x1!H_%5c5wZwU=o>d`VIHaQSJP}Z*@d&%x5*??TUiMjKldvHJCqw2$zc0L#CfVf8QGx3p)~9UQLA;nw8;1u$#%Ox_@NsO zdEuQn<$yEk*-0#B3l(6J!DGd$NJNf>4Or9y0txosxAFWG6lnQTisPD*y>Z;4gv+Of zaGmWtnIIssHGu1h0mPqm1(soCvCJy5&7Joco{pVdVC)>FdNW`!L*~_72<1mE1h8Bi z_pm_*0}ae_Y~G(Jy^1-nK48#NUr$JmkwE%Sb7%iC8DL-U5l?2+EUzFBPD)b%4^;nk z{G?M;hF;27B#N8vRt+m^HK7vA=py%N|4e-|Zm6ch%?SH-S2FJFi_`!zf4qzMUA?!x zZ)kdpq0Rb!-4X;a!6wS81-}&)70ZW1b#q!tX45WWT(H12%Ss|Uj_jsrI}#LLCJL^V zDF=(eo;I2d-pClp8>-M?`9d5ZLKidTMP@ALB_8uC`;WlEiq{vqAEXXb-hu7@(WHrq z-+D3p|1|IwVFT5Z85Oz@z6u)RGiMP6y>6S9a;3pfDQs0N3G_lQ&no_E@#a9u9l(#- zf)VAqewo#+5WySUElTOQ6?_y$Fru4?xk*1zn&6q@RkC|l?AzHzzV1CfIWcwad8rzQ zu3EaP_}F7>Jp4A?2XLc4UEB_A;e#Gx#43^nu$Qk$3^y?ksL*lCfD|J9MQdi$d1uo(}Tse&wHOYE-2djt%vXq6B6r2%Nx`DA3TxK4 zGb3;|wew5x$WNlP?_Xguc4T%hO4W>z8!I%8LTY$}1zD7GGFkz}@1Q}7e`!gCxl=ap zvQ5yo6YxVQQ0TZV zWwUUz9W2gN8PdfkO#)Rz8ih85Q2QSz-6z(JRH?t*qGApI%2ZLKkdW&k>!$MMt(m>ri*8>j$d2L|pdg zc00{$xI~R!zN&Ol@(fd6u#jZF9juCrLGVyCEldi6K#$|-QFP(0$%$2Fubs=xQb7=NG z)GD%&TrtTZK3CF=FYuom;q6f`_L!E0p#Ddav|H6WoZiRIU zry)yLboC%Mr3fVxX}uR`khb8<6Bb{sXjV9LsM>MNDR>}y3yaVqDE3mwGA`DbMD}&U z_yM`$ZL?7R<(1w|UXSBv8IWCNut) z&&6L1KSAvZ!3>}S9hp}`ejMCP`=rWu#T6unI{bh?Pmi13tT%`cT65+zLx-tNixY$Ldp^z z_SHa)GX1D_&PHGGnj&T)$0q}8-sv9wDq2c_+Ec4brRPqc^$iZ{ zC!y%B#PzK>BG@Y9^_ECO{uOA5clFS|1tP=NcWqxPZBf=xUQtbXf2oUErkQdE zVHahzE!)&+Ry2?WCVtm$Dp0yrT;0b(%(q?KXMm!b9zi8Xa-*95oV%Go4SJdgZCn2K z)v(<+=vgE_z{SvTt>VlGd^nXv{a)gO*abu0E9;mDB($6F>!GM*Y@vn9Qb(JDp~4X% z4)h26AI7eFGn9F__XZ+4e%i>Lbh+G8GMOgWGE%zTxi{IVu|Js}1NJ zkpgk#fu6S3;c>Ml0F=lVKqLJ>vY7$b!SSGs|b#z1|_?QqJ1UTGW z2pK~L)`$EUB5^RRfIROu_N&Yq0jZlZQx}?KxyJL zggRvL&$`!fTKHsN_H`CgILP2<$h7IOIxdqJi9zv>Dt;sNlya#ah50MQT4QN<+Pig1 zg*gusVRE^gqJELG#T87Qx9{Ld2O$^~H2D|26TFjObMgTjtakLb9RkL3YfOS8$ec9y zZs1agePYD~TRq(g{nowIRP?nUpfiN3sOZqE2^CszOWy+Y)ak+UDj=hX`lH`(9a9Lx zJa*HceWg>7*Y%akBRcgVLwyM*+*pp5+!JqSF1n%el-w;#@nM{Y7YT}3x#!y$a|Jii zxZ`lJ1!Fmp=N@O`{HnEQ5FO{CH4CzIUeiwzwpsoDm>TLWbp}>|K5e8HzCo0``N!32 z+*=_W`mJ+d41`24$|yz53_7j6**cf45jSOy(%WtW5_00)sH58mLvuIX&M&QYA*son zB)QUZ!O_lKGr@hIstVDOi2Zr=^2Z14JW-;@)V=G(gacv;!N7z8+!qQ;klPN)ne_o2C9 zH~}iN!67Yc0TTe2FwklZ^*v^HW>_WDE=P~sz$=Noh0-YCdtqAODzM~5Ob7&G)^6Vf zm*J(M=N>nSidiv6y&>bb{saE;Gw{wfDT1~PZe1gKV=|R8HeUQR?58%gujRz;h451FNVsrg3s@}o9uI_msj&0kv-T1_| zapDGz)!4Re+iB2P4Vos68>@{QG-~?pD*Y|GU-1F|DG4Z>4Fp~p34l9rNTpG!7ki7Ql_Ko2V zjHqhobYCwi1Wpn@3En+d@7m4dh*PAGhYIf(uA1lIWsjqB$_JNPIY~xc48#d*uxpq;SJ@e3qiW`a&3#1!2Y zwzz{BWiY$nKwN$fh?3@r*^d4VL4~<|ln{Dg7A*+5NZDaeF@qZ9C0BwK8WeJ2P^Z>j z`jOP0KVAK6F-xkvDg3CpTA%K;71UXmXc6E!J{|-L{K`M=Nv71hONZqIFv$_G-J9b$ zwQ7UIj5J{IV<@wo4Wc!ASmtkPa|bnt5{5;Bv?=Q-hHq@>6lc!<=M#EpPMO$6Ih+%A z`t;hdrJFAOMR}AA8)yu~xR)1QJ%bX+dshbWH~tU_quXxY#wIZ@N=SO-OC|BD4bylK zMrA$=T6XJZLm1E?$5&SVsSI^{tMPiOGo}V8bX{`}gH37Jt+3(4;Wg1a#^6>Egj|Nb zIG0I&aM9%NgRhqFYUi!KQ5?|>+btnxAhr`?Piqvaxhk>Li<-;v5FVI~;Yg)&hD`P) zngJx66d>7zh!YG>YK(}G#${VEb?bVX9W^-Y`sBDFY3bO5)stu^b!ks=5tww}*$F^a zeMJa-V$ziAJ`h;pC)`KyET1!nK(}=hdK1?;2|;a=i~&A!IJBx3*P+zpN0B=zKO`=9 zeYM1`RlZwt|H-!e51xK^c}4t|wNnJwb33}1K>;N4Iz*D z;i{4bFL?VdHnU*JZc#!Ds55`{J)DqbxiYT@s!Pm^1!>u$so4is`_XERUhQNF5X?1& zg@%wKhZ~AoRt$qb-u|qNI8KEIj2Tmxs67k|ycVM^BmH8Z3R9hCD-7(RtALO`M0AQQ zv|PeQJbcW>wml^s1fyP7^3a4HqnZC3q2eQ2gnkdmPy>tjH9+uZ8Aj9~HVHwV9)`af zX`KM0Cj>PfNOon=D)c;r7Y@XD@HN|PSQ2~bUuo=9h3H$02Yxqp@5)Vs6dZ2B@@G+0!!+_i1rv@8Njq`}Tfzz05{y-5&7LEMQOzTB75 zRAd8f=&@>$6LAJ4>~2*wgWbpkwV^eka>blY3m+nNRa5E+CfZ<$ZNkPVHro4nfP@Av zC|UHk@I^C?vZb!Met*Q>79e1JrSDmSG;(T!*dBZ#8>>N4aOtt)YQQ)FEy}gK$aU^L zN=H^n%CoKn9Ectre+@rYe;*TtHEZFQ8Fy-i}(Ms8)GAlO`kcKMbPAQ&S# zFP&A^XkIyxw0zIBv$viO+Jw{%P$0MD9=;bn_rH>v^ZJC>?uEBE()m#ofi-_AV(Vh3 z#6<{~kKX@tr94Q{`5->nfMk<9M4ndJy+X^e8+DhMmw&gg-NJ$^0jmVXL^3G=N%Acs zURA{OFEv2?HAKwR)3-M&)DYrtBaRyY9zy~}lb07=121vz03kg*X+@D2ccOsS8XANl z0O~g4=(ah~f5GzM7SAd9h84py`70sLXbV>WT=|zKZ5rKAwEVQvBM{}I(2vSwwZ)d@ zwWh1^=}lx5r3m@B*P7b&X$!*aS8YGX%X=FSow0zNe=}nLu29|FNXc7Y3gmXtk<6hf zh@{w{IW3I}IUzD)DKdFz@^+6|Phn#^H=VX7&(;e4;(6tA4%xKC@1+L_D(+OZwKKy_+iG_ z^Msq?)JvVS#B4e9Og;>Z%tDHg8>e$R1tw4LcZUMJ^fgR>)cuKs3gjBmkj$sZQAsm{ zzj8Lrsl6OPjnlsS3;QeX6w56`H(pDc&#r)D7f#kp00Hw36$P|Ek^hM8(mh>QK}E-1 zOS^tc3ABchH7bN-RFW~2KwIr${wXlDR*A!ePC6G`D2CaX&zyv`osxnL;yE{h?Y5pJ zJv^w15(AYaGk5@aA_3Hw(KtmSZkZ7bimgv9OnHs@NKdNK#EVTRl70n3vrZ66QJjhW z1>d{|4Fb}&9ArdOjg}*M%=fVEn>od+u}G9d44m~xOGlv5?fo5)&0aGuZjnK#VV-7)2sRKIjth_morIMMki5b2cNK8)4L5*N}+5 zha#}qNDwh*Rur3iiIutXkS9`Wtyj@D!*oCsbTU&0n&4P*&~Ro9hxgrEe*Gat;4xz{ zBg`VcQxu2OXOYA}AjteBk4Fjr)3tdwMMlSbDF$ctUJqx-xlUmuhR_E^3xJ~;1(aL% zM`YAE5n>{1ysvO+6z))y(b-P z9lHJe7`<)o^6jVH_u^Hy^|sPhZ&4af5+Tg??T+$8sRD7cq#icLo#J0i2)YUGh@4YOxQ+@ciB@zpChpsja*JA40=Xc;1L zq4!;dj~UoTuppvts%dQtN;<5xGxUV|%^ul5@?JJj<-v&NpN%Y&M(M)DNxE~eWg9YL zssGe%JR(RiZ-2u0AsbPykLB#mOP#2KVDWV&9)d_VqkBRN=6A_$=_k^MV~|jtGB9C& z3B#~k0@4W$QS#0#pRMPxfms!2TT~6V;+u@ zMNt?~95orpEPv{HUDTnB;Ni)?p~ZX?;J=rQmT@sWB~)*nSYpNdX$$-tJw8v@GI}{+zt=5AuZY))K_mdo#|s`>`0>T381@8(<-bQ!mW0@GvbRME?*h$M)Z{tTht) zp#@7M1hUyQhHCI#Ilwx=cJ@(=SA-`~%knnTNov#j-Wb^vl!SpATXU4Sefoj|YED3v_Rn zO-aZDlf{1hQ<@IUzxfv~mikz`(-u2fjvsB~){6?a7VvY9A{MnxT%_mQ-s+mTAzPL4 zd=Z}+NW7~=8ehDDwkZI71)8)-78(CBBf?WRqgnLxX@r_!@2LyZOD&eKU!0S9@tg#% zU0@pMA0lqT)Uqb^VLd}oPRqfIg_r}w|xgaZN|4;bD5wY{&$8g`4f3O?$?b4y)o z&-X|6aC+~_T0p{4WFanMm|y+=nl#8#wl`9(G;%WfGHTzM^zD2R=li+3 z-~h6VvzgYb!>rMfu%M0@NP#@SZT_ps17iX!x!on|_D_QyAO1qW`>$en3>U8gvsKhx z2}EZWh``68`*31h0=U+J%dAw?gcJyHw_?hMZ4UXrp_!H3F?{y%s|Fc^3@&AO#%Agk zQ+#clZjsPue9?};a73X9%_IqQ7$t-OGk)6*4eplnR;J!zFi9>#;+$oHgrj0S2rAn5 zeQDb}i-3*~{qk)0D4H#pK^V#{LLnV<_up{NQNJ7yyNFA9Rp}SOR*l9OrFv0TWuc06 zw$VtLdxqIv5ru?vfj|T$=Z&Xj0))PU98Ab|I~j~_hVrdz@?}AKF10h4JMx?`9Xt;1 zb~XxqoL*v>Fqof0jwY{g%S&O^rs_J@mgY;v|FunKY6$I$v|kF)spbWHXDfij`YRhe zvmq9ieDZlsH$R=z@JXJ)C`7;L-&6RY1m40waf05Z;q9Ckc6{VU{cOi$F`m!zzj~{Q zgKqSu6O&KO(PU3$ATV_&Lg%X?7N74`cRB|Z2+p+2i%25;G5#7*Qn=m; z?M%Z7kZxu)VgeVEHXHh5t=|j$BoH|UwVF)Zh%K9|DKO3&Y-D>*4oZH!WB$Mhb0izP zN9at!jaGj+&JA$WwZtof$~&4cWCXlK2Q|n`4lq0;o>T}hvy^f0+kJRXZa1luzDxWM z1%v2mPtIkHZPoPEFeKXv!!m972kt#`RG;PGB>slTc(JQzEa25kquw5y12}PL5p2K8 zLxPaF^#g2~SaYbr69Q8FZF<>r83;sA{O2wkCNm)qIag!yuK*LS^-+pN8a$f986Kxh zc)p(vj&6SxX*EbUPZt|zniD(C*46#?N^=~(SMHoexBV)Dsd%2h^dv?209?Hun6h;k zFC=lG!89^P-rK8Xx6m4D$B@Dx7@ORi(GG+rcUo2BY`$vYq^}HOcR$lw#`QCpEm;}Q)d@XB z>)ySNQBVoTz$v-|k9-IfP3c1bYgIuI$u~&nOn@a(I!a&L7A|}<{_Pa^aRyxox+V$&)w;Z%J>G$r&6Q$kZgdz;21h>rbAy z*vy3G$TM+#W&V1x-)do_RpIbT84}>@l#~yS)FPzcs$?Pp(K|fGMTr*&5$V!#WeVT8 zlh!dn=kAgHKAk~5L}3z$Wm?R!Ym(m&hLR!6CYJtrYBPN8>9qZ#F%{5)QBF;$D;wEv z9{C%MR@%Es3sRr@nQ*|C@$iT~jR`$Ch7|KveoyI=@GU@eVNM z@w49Xy}p!1H&<;o)(C2wT%KrR^vWZQgcaujYS1LgwK$duT)BmAaY zSlgHoqME5X1&j7N%-52pEJvX+giyrr1WP4>rB(Gs19LZXp2T9PzJM5K}$-IO+v zmIvzo@MlI3Vs|=OSUWmu<&kPg69eN;AeP0OM4^rnNbPzy8t^!^mRiQ&6fIz%4DpeM zZ2V?>yx5g@C;Ec5L)bEr>q|A;H_Qd~froN=zF!AOR99}Y;nGVZHg`oDuEtZrH~1HI zajP{FR0doIC=)A?U7CHL)QjI6g>T{V?(r6kj#)I71JtA70h}H zZ1u_z!$81ntHGwZX`(g4_lMOkG3~&>ST!YCh<2T-^u(?R9ry$rCLQ*tiXV;Xh=5my zSw~D#5@e$7P|9hhH(W~=En*l-jt^z1XLHhEYe9M|jR>Mcm*X-GDi@X}=pD&Jm*_mK zgFocpt$c3ojha^mr0T?55i{Z~&Zh|VAE%cqUW0CL468oz^H&w4{ z>5D@vZY5KM93+i!?>9%%t%>_fDzjRlKdPuDZL~&0zwv5(LEi!u7}+^^P|hAolKdsu zpG%|t<=_N8Yi(3m&Jrt_Ti8xRTA{SUi8JhIudPHRqB4xCljgCnqOApKXe#clh!TZ| zrcb0QXU_P}msp4y+>wD%Sr=C~P<5L54Z0;u9Z|q)-A85BQ?Sxu?mZ7vxl&UxjJ|pa zjlV#W`{6`>1;*z_oaS3lm_STRmFHYCT93Z`p=0 z{UEP}^~&b=b*d@=o~oj{629sFNu zxOO-aFG~9VZ{^h6%9n){dOnoSdTmY+uV#5nA+=Xc2@(L6q2huO8r?|fiT`^v{F(HW zgc_7)T2*KVs(`JFe@2M_yyF!^=sr zJpOF7;qUz5BpQN2Pb%K}+5dX`dau-mbrM3{N8Vi9)4uoDk{q+&@XvJWhha9pv`XGe z#FfI!9O*K5ohb*>;(k5IEwtY@chtXP9ijX6jL_H7vCJr{u*0_1bg!3B5<4$THr--Y zuZa4ZMQr{qZj$RzR~>$;N!rA4&-1=1{UmMa5FJ<4Bg)$?wHXpt`j=YcllqjAhq-ZZ zSNIB6q?KAar#ogXRLZ~mhx3cX&)#;wN_G=>YvBVwULIUEcXO)R=h@u77)U)=Tn4&+ zfjSm*cfV=1toovMG?i^l)>p}o$@rBdk*ZD*j(9FMya_)|IcO*hN#w`dmnigx>v$JW zPpQ?;MOJ2<#!%2C83W&Ge`UeeCVi^XE_=C(Uk~7*-t%kyql^DbIDJY|B$aS>du)me zg+~rM_~l*a@@YuOGRbwp{9zf?ZSjwa$fI*(=`wK}NwUR0j|d?<`lMEKLL>VUCxa#= zyLf|-^7BMT)qS6r)X*zO<|+`2#b1znA59>l>ILUSeCH;l%LXRAady6=#Axq&Hx+#- z>|^FK&yJAvl4Mx!^N93z@Il$Xr(p@US6Q?{)}fqHx5r`3+1u#&vrO_!=fKRsk0H>N zYk=;vxZ4+1^Sk4Bed<=?_9BFX)r^n=t!SASA${uQz~O>`%_7{xQFI9ESJAcXk4s{6 zg5dGzW{nmF$j|?_NBHW|w(uzptDSQjBySg@_x69S3lD7VAVk{P6KT{f( z-4_PeJi-CsW3yg4Z^tywv{7tQK01h%51$>ou)k|EX+EUIFTxKSJ2a^cFKy1Ds> zh}JM&JI?D#M+%vxC}qU%+>VJpRRzEpee(9K2w*u{1m$akm1qVs)GcwD+%pv7^%6I8 z!vMFi0d6sNzK>>%vEeFcX$f_2{3C0vCH@BRAfdT|K|3t zH?J|1`h$9D(Br9Ewe}a1>*M^*W3CQq88v&Rq7T?wDlKAUL`_C@@s_MVWf)ui``VZ- zk6{cflMYELvXNLbe^eF3 zG1l0e&rQK*6_?ou5km8ip}oZ$x#iLh@*fc05Br@=*KoOr%ui;ss~5)vDo?8wzTl3Vs7Y^YGtOw=Wc{Kp+KuDGSWBhImZFmuSZEV5 zP&6MeVvCvi)W?E(cEu_b25aCbsgk2obKravadqG`GFh5p{icDJK8Q z_NTPyi_bvL=T^|+^?}P93WB*UVmD>5`xpeql|b|B(iLg!MLnY)=*h>Uq%l&Z7jPdz zyNKMYBxV&858!a!M19DA!@8D_2G8r!oUqnt0$V)X&DY8->)+j+-#Z+w+s@*{9#vHz z`{hp9{H|>gSKbe6=7SSHbYWO~p?>5+{F^%m`Ceh4{qR|a1l&-tuxo#{80BMMSZ>*r zUqPqy8BBTcLUO3KuJbv*B0$|aAv@+*XY?YwsXvr874q5+R|g_JLM?HEoQR!Wi{OA# zFsupxS>lZ()ap0O)}nGjim-+05lI0TnD&CuPM!`7CmzbUSO4G)Dev>ka$^3R`Wu9( z8?h5p_Vw$8=nR`DBJV0mQH3~M);l4=mNrdOm1t_b%(^5YZ*{DZv~F8okKi1L+r{6@wms%6xX7 zl5;Rrt0oU2cxg}k)(^hL?T;x1fYKUAHL0yp{W7i>r4usu7vlBF)H`lgKID3@sC)9&Z!~z%hi*aHP}i}turNa%F^+&SCHeh`sQ)TG+lk3H$ zGlLQHV;5zFb4oovszUVHsE;=5J3SfKlo=?Mgw;(L`eqgDuEso^h9gkkYMyOFCvSo! zLcCG$2~1C6;o{m_$9LQu>>XcYpMum8q)orR?XroB-RZMzCBc}#@((QA`&nDc&REEn zcXPG}WzLirpDg}*nFa(r-L|5?xc#V$Fnvrcc-}cwE&O|@e?8w}Q~&*$4XMSjN?V2L z@dux4Blc%4I4|#!FW{wGTGu7ok<<>_Td*joLzRUCg0wgPYIQsECr;t=V<<>wM zX8Q12Z%iB462c!#0&x-tWhL{D)XIX<#tsdB7mMJrTMDD@U*`l ztiLAL6SN$qk>ZE35wE=4Whs-+Fz7V4#Y&o1uN{a zi$+BCR3vI&!*{Z#v(U~U@V(0&*W*k_*VZVk!Q+4o$EZ2B96CF?7=t`(@~F$+7VY~6 z+nKKs*i6RV{tZguq9878`fcEqriS~Yre4=Ct(KI%&9qGeKYt?kGkKf;2#+CO4Vm#}1VOx80 zY|pnZ2btt1|GXa_V|#kG0&mA{OsTd@(Vd)@IHw;^Jccere*{FDHZDXK`aS#lchWye zTy?&i%BH=QYNJzOECLjSyelu8VbBmdx;H=GK@6W49wA>i00 zPmj>)9nqgmAV^_RpgM#|DMImr7^L!?j^H{O+!C0mQ(9!I%_$|ZrCLdz#gepA4m1b zh0G3N_WbS}4r`q-Xn9mnGKlb&ROW-PntTAOqMk>6j&pBJJ>|4o2+F}S&#R=<`Sy*V zmJw(Toaa0iaUm?cJ0GLtU3BLOK6r$CWdeU)x{30=h}1Mo5`lt4c+WGvHqUl59>x7pBuDHVC9qCIbDrEQnIb=2 z%=4hXeh{xcB8QxlA9weyn9?03dcALIh(I~&QDIsCB8F7Om^|t89&F6&*pd^{$=jiP z&XWr`%TXDWy8+rw`=j|4K7JXVzpL*fg_N&Lid+=^B7l*cJiX0oJ0S-Uf@8c04(mUL zq6%rQqv~khj<)IdNGkD;*}^kirQ0ODxU6pY)tUi%%vI4Dqa7y!?VzoXVf>3^|CLd} zFQ?UZ_zv7db`HO;8v2Qrbq^Au-Yf9973AnyD$dnaY%i`9bT5c-Bh9L7&U1Su%jSpM zcpkiY*oDmoKfDbHTvqP`k0T(xNnZqb|H_R z0abx@`!!oPqelNwgb_$8beJTi7!vlThU9*RYtawC*p_-qQNC`fe84ROLXR`M){oPG zB9ph;4>Sq>=|;YhbLO0_`i8&SZ3wUJhVhW`ma;$%Ti&bydNECI8x8)651WwXiaE-k zx50nMPJBiJaXL4VI3sv&pl;EY(fbLkxNVX;z#y>Pua!37zt4+L8EpKZf?DBA)PgL5 z(kvxXOqUC6CBN<1grg##x@ZYNI}}SmLb)!x90tgb_YQ~~_E-e4`tK#L$rZQzOJFvC zAvwk;4K(-#GVfSJUuh`R5zXo%tHt!P8+7zj_SBBtGZexVk=*nns)1WsmQjKHVCeXB z#(M!!ry{MJe*ZEq{2hPe?!tr-#=WjTszoiahTkeInc$7xihz<^g+sUrYac1> zT9@vi-C`FsB{7^UPOJ0%+hq--08_`#8SgM~geonbUVj=^{N{v}^h_@UtO))>z%1p()2XOH5po|is1i!ySY5YfWv2B^$a2(J2R!TcDkw}W$+xmZfAn3YAU-i!=H0qiRS&*AE=tD_&bT3;Wn|^MtWMixVHp$EhTEw#UVD+&_zx(*)@llm1zH> z>$}y2<2PmrTd8(NH47uF*%MmqsqM^E^MkS_y=z=8NUE24U~t}|FU!h3y-1s?X`dO6 zg;uij0up%@j&>vV>S1t7qBz%#R%cA(xQ6k5eG>0eD4n}{(%C{-2PfVqDNu3GchIKF z(D5gTf1Yc4l=(!IU`df3x|WhIGEO+GjkNn8WDBxpyl$p3R~!&WMcc|j*zb@E`Sgji zhr;`!xQPjsFVP~l0UH^-BjrqY6C~#+Ffe0ftfe#E&s{%MhMn@JK;&Vqud8;UJ5&B3 zYF3?`fObavwFx88+?nx7S9#Eo#PAPV&N*nX8?UnDoV299r>p*wN|;Z5B4~Zag~3K| zn&uEuGQDi3`5Qz5*1vTN`Nww3*jWA8$cFfI#CvI^d(29TDCMC5*6*MF92DA~nlg7llJP(T&7w|=XF$qQz{S59aOwaz zn$AqasR! z3>g}iDYC>llLX;o7j~jS?)Y0S`bO$19bRtv?~tB;bv2eG*GmHL`>b52)x48e$O}=e zFG4>hAH^DqYJD6ir3(Y}NLq}fcN_`55&H*oqoBgXu;RgN&XA0eRZN+gqH$gW3Sr66B!w~_i53u2P&A__dv*t*0>b40l5`m$v>xcv43z>PVLIqn?o zZ~hG1*I$gJ4Q%4hgDXPBqz9@jK_auTSVzD;g?c7_f4=m0c^9?a-gro{-}+Lct;>s$ zeXmS4W%KF%^9W=h)TOH$T&1_UiQz9ZUc^AzRUz+1cMhbMcR61n#)Q1W?4mz^RHyaa$@=xFzNv)tOggM61H#3UxC2e>_lpbph$^+U02(9%{1G-jT zK(GUjj29KyU|(x-z@n`J*RW=Eh4EX>Utfnk9-D-1H(VLdF*zvL7#!#2ZEM3v>_8nJ zp@&FFA^2s8%CFIGm%wkRYL?RO9Is$`FVX;@E!I?rN^FL43WM>4e2O8GGi#2a8%c_w zGv#zD%I?4F^8R`?qo+8r%s8%IcqPZ76{4tOe)_o5a6)M9RJtw8{&!Yo=% z$j+>&Z2W_p{-VA}oW(OfEz8N=#TePA@Zqs<3M^iq}{rs z-ULN%YN(Z8&7q8^%y|**?J#UgN+)+FlZMv@KGrZqc7BpnTtE^$h4LJaRGwcA)&h1I zam}KK6r!yS>$!y$3_tO?_lyE6s286I`d2}QNX_GsxuGMIC7nt&bn01Y*@fZM;z(_G zre8aZ25@mF@7Td)OlUvhNI1EZ41M>RnVU6Ml%V|-a9kq&F_H6^&F*0C_0VC0r~*Iw zNyI;0_h_d@LXH#O;POUs|C~p;vLpbf7sNz($NaEiMsXoY$~r@XEGwT}M$(Eo<#6Yz zDB&8{BP=83{;5O}K1@CT98LHXXJmn)@SQ~iy)G*J+#jf4Yf z^@K8#LyGjX_?!h010?OEh-O*I86A4cL&43CS7obUoIIF{61D>H(`2J897i(Sxy{C0 zg3st*SrP=GjtD={m{m&S|9SVQ`^-WTSNJ;}I;%86021Z;>o-gw^Ef)F3wUIK%o~`- zrM=R@|A~Vve+t$6i8C1S3X*_&(pW0BYN*RJ=Zg~Di{HPIzD8?Z{!??ZJCV^Ly_VsE zaMcO%ANP^XVVt{lgMaD}EpYNID@!;FEFh<}*Br6oi?VlGktu@)QW|la(inEhQq{3l znpOhCsyId8nF-cJVK;I7V8w0D3FGC7;x?bhxpH6td)&O!bssS_E-wBVMh&E|iLw2p zbQJyRh)Fs^e<6ru$E)ITUhJ_EDr%6Vpyb{^Hh@;p*Q?718| zV7VvL`?uwK8mCZqyf_(jXaITu9wiLQAyD3w&gA~mtSyTE|1+f3!hTnOVT3_oQU#8jJTbO3A=QKA+PZFn^_p&G5x_%U3q(YY>Z2nbRg}rP;|EQo;h%MbKvmu zc8qavhbNfJ;gA^=^vsAE0(|J67|sD8f@{7#cB;=b3bB^}cWVbKGliQjBmVoed4fzq z<{=p<&@(B%LO-a~|#R#(r1h+vJ&D0$0P&{at^kgX05OfkE(OWl0} z4nwe~1A6$O;oeY6qKH9^2J#}{Xo75u?S$W(x_ka?fv@N$yxzG*og1WATEf>Z<_5If zitVg-b6)e>ikABrV9kRB7SJMAR`ogLr8E8@UEu!@pYC>78}lCgM$d$=wNGddsC|Ko zHbB`qOE`M!+QyoM;fU*e%g14yj}? z{&$fisg)744Zt-P@_YP=jiw^Tdj(=`>%s9`pS{<%fBeog4eGhh zJ3LKz&VWGOXfMtxI;ejv&IcG)6RB*4>Ey0u^D*-X_Tz7P@xqFHexjw{M_y;1D0>Rf zn|Sp11C!#NKRk7M_&=t${jY0v$|i%4{~7WBcvv zc23Up&-SrOcoqz%ae@;(@s)f(rZnpfMo*V!DdDvV3KprSfF`F%8dY1a3u-E76 z=K7CEvI;-{yr|j59l_Is-1BTg`aYWiRVLfTsTpXk%5df*^W1O&{fBb5(@PS+wWCAL zckdb_}H2cj9omCg(IpE&4=aVxLBl%+80<<)o>SGZOrCMa%ditG#EG8mty8%5W1Hzro zWnZR8f8*k2!mgM*$fq`4c-(qZnLjZj*q-3jFR4NKbuo9R+hH&Pj(9{_em}O$C!~*j z%)c~-M=zy1n^ z*TC9~A^G;oAOhU-=`VQYqWaZxE_3=qm{UvTwu=>>tcJ5_<$Xiix=5fR&Ncf{~w%J|C9T(+or)stnO1`<3;!mrfTUOveE-_@ zuvuA}3&L7048U6D%@+FL^nBlpuD-EvZrd3v@b{u<4GEt-_c`bSn2@6BPXV9jV=0Pk zQ&g2xc0W+!FAWFfzcvjt?)f3CHy6>qxrkP0wb~}SS;*NC;TQfG$_CaG#Q5x@N~Y(O zLn|df^85gLMino+u_@G6Hj{c$=SSA$rbPr)Z73r-i`ST?jlIS!WsFF;%eXCvXY&`; zUkl23V{uMlO3@|@nr?eL;Lmy!u`{^#WM=)>VLqAy>gX;I;kh>!Xdyfqr%g6Hnp{a^ zFXnOO)Ao7awVinE;zD|PfMYSlyCm+Udh9~Y1#3fhwWs`e{0fW$W(_+3C}%%O%89%I zA?<$8<+Q0b%cy{U>|ktI`MZbVnL^R0v)02>N0pj+Bd*tSGf!*LtTmG0JjphY z*b3*+c{0fd7l0*0{J)+tLW@qVf_awA?2FviF%ADH9N{BzR*&q+(yu2Tl#Lc=(zF4}hA% zmAPT`Re3(~$JO`KfhKwg4q0PYD1yV$az&j~XETS)4O=!sSo+}V{6H+n(GpQH3<(9}MiXKC*hys-Mf#GJZ} zR4Y7&-tTs(462X4cVoh?vk9k|N7oP;rFR05$lQzH$li+aJ13rxK)Y(vY8zK(k&-n} zG!DAJ+~bgQi8dhyBd|Zj3@Rpbj^*4`Q$Drc!@-%(ynw;z5GDykdob+N0g4ttH||{- z>za=PM8I#2c>?}s2-0v)fZ)`1xpb-gUsP@GcphcD$y5Nyl0@qmFfAvOBTH1ES-rd-chN+(f&GLJu_Jl_U7* z%R85G0&&v?QVV!9sFNiGiaRS%`%2=HlG)r(Bjv)Eo@3?C@@^WDO z?O?*DjQ13d@fiM;1rXS=+66EJIP%~;$mKQx(AR%aY|U>1iAIHo&q2L4ZR9=H=E_P+ z*LNDgIedJ$v@XO?h5-e8j>Pa2^_n#QlN5U9z$@uy~l4TBALbXtdicCQFx-WW@9!_rxSy?+6IEL1?X2bD7{({B{$9WWMf&?c(x zrhq<5DShOJM7%!G_y>$OXgXdTdH=?Sh|m->#@({tjcXe+H3Q>68OeX2AkY!fGP>^e z9Y;*|8`m&YgQCxV(&*qW(D=^b_nl{>b%oDxzorrIAfjj1_Y69K1+F$LJJ)6d0v}LG zh)x#Gg3;QeYy+*KJzR~7PSvj}XFs*5nUQl)s?&&$=kJRw3B`8pRiD|*YYHI(Ddf<~ zGx(Z9jvt)73s3GId;x9lYfKPe>Euo zr(=(|&Bp?A&5@+&=NV@!A=za;oI~)fJIc|3BsOs%-FPnqT$_3SWcsyT&-RTGPY4K7 z=7O)#Ja6Zn$Oyc99F13(6O9*6%Q~A?iA9;u$^y>%yJ)m8gEl4{$9Hq!)psNMo{bB@ z919TT>hNC8$9Z9Bo{$e-ng~?A`}T0`AT;kGWxksUL{57<5y&7x-$QAjh_t>wzo`Sx zg^nW!?VN?Q4t1a>M##ICxsA8=>mZw%X;0+sp%#2>g7YiIM|z|9Lf%gEjg*?I;KJB9 z$f5xrT@q6yebe+pU2kUq5bME_RYba@Uq|Q(IT~8^KeD>#4;0HGKB(f=x~-G+ABn4$50K5bbu z^5q4K5$dA*{su8;8xqh?_1b17i56%cUp}EpF@G|Wyz~0~S}g5ei={JT{9Cak^2*_P zE0zj-Y@S7}Nn@`qi+Q5yITw9Y3T21ZlyfZyOI>8`KOtBG2*K1%4IH3SvUf0?^QgZm zFq~22({~S?e4X{k41ub&(#=4_NQ(kHL=TBxI`8)6ZSedC+ySgbOPzmPEBt?JPql!x zb>cRZF~&iGs*c!NCH3;&;8O6V#%}aD^QL)MCFL{# zDD@oVH|$aXP?`;Hx2#P?1F%HIO95ax2CLZLEW+e=ZxMxlN+5r3kRyEtgKiuvmHto` zqW)*t#H*R`O@bc6LOcC~$RIT73*y{9=jDF$0MD@hsfdkvgmKVb`NeW*+XSIQ9r}F@ z>J?Clur4*IqMvqRcq{h@WGNrx0Qv}=D1?-*_w__?Fcr?BIcJrxL+yHsNqK{5Y!WaJ zXkM5RU`cbAZUjTT0;5^)03dzQH0SFtTx^zXnjOM#sZaACQ03o%n$orWT3S1VfznF; zvF6)oo3FphqgzG=Cd_Fx~PfN3Gc z?{1-KT;sonAGpnA!0Qg@TqOR0c9l%1v6vQV)DS1UP1#fN@}vdr@Mo4YqqxLBr4Sx7 zD754wan+bq9ru4Jh`Jt1K`S$JMh&w)Y^Z0pA1tVi*_Sl&x&ep^(?B0{pqnzdWXeKs z4Sh~>VH8$3S43M{L$~*yEXF9#I{ovsfE_^SfH{5WGeXg>(g>ds8o4IomI(;382Bq1 zg1Wh#!(9GJrxxzA)Q+p5E1Ws(#oTCfSOIA=#}{NX8?cqp8XmkJA&$oUZ@`1xvVqrx0Y0?kG%9{cq!clo z1InyOQhebSsX>6LwdQ`vc^Lc5hFk#1;2Xa5J?EDgB!GUPS?cHMTNh@9s=iaRTz%3o zH0GIk*T!lYaiJWrESz7Y#;fw6BKmOS$B~w}A{h}ZWPzesT=>e`2^BJcKE&z-$hlmB z;DJ|H1522AI98&HzFbDQo-yxW+m^jfC{+}vB9VEk7$HSYoM9d_Nqj|7DK*s(=jPWc z73<99gKFyQjBjPqlWNcMfeJHOYDVpkk}{ROYpciJ7>r=VOc>v%rPJ7?&)YopvRrC1 z+F8G1-w~gv{zx=uD)0FE`3})B2W}YYg_yJ{hrN!S5B`D)ST;U6xL%}Ao}4Qc81wDp zrVVS+V&a>gY0R$J_f1#kUN}DDKdCvWORO5luWVtMI^(~P=~ARNki;32NHmGd@7MP* zhfWO{k^s-MvzS&vJwLc1mNf7@Y)ch-=Y%)gkLnh_-5aZq+?22)L<83K{x_TkHW2DR z4L9}@^g&Yx4}T{H?)n5RU?{=559H9-Gm;L}Y6c`WWKI>Z4zRXgx(%g&)C+NJhI&i3 z=PUsK2e4aCorcc2)R=&d=}bG)6goR47!0CKer`&PJi~?P%M$Pb=_q#s0@q99BL`7U z!=dL%8O|W2E=f%Y{NF@Vb!HgoBt_Zy;IBmAggH0 zvQ*dZLUoh(r`yhEHssUzf}C zP|z#*q`T>&V7~bqSwC?8WdgBTF_0k8!506j0{0L7-O^rZX@tR?L(bvc!ca#!g|G0z zf%&37-+k9UNN&BLeZaTkAB@HZm;tZw0GJUC%6%=RHH^XiEAPhjRal!rM-|ps@+)w3 zVmkJatrwSlh5DoKM|B;bJfCpgd(pt2Z9rFCDJ55!@?d!y}nL+g^C zJpiw{*+d9i;Q(h^{2qzpZGxjCpVJud*VXjj2(H5Mws&Xqokh=CPIzvlRjDf>2NkZ% zC~l}UJR;HaM;18VHPm$rM`~Z@jB9FMr7T9eYm`*5|LAJ})D|=~jdRf*lLjk4qwQ^w zPtNIPg3Y+PZu$e3Rr0sMsN6Xj^%l|WCxx6E;8Wz$w58zc39phjrS(l+=|$KR3qTkn zp4oSuWuH*}nSbE4v^BCEPJ+oSsc}0&o4w??+;~quKRB=rD=ax7FgAH6Ct&Y`Z`UO; z#9nq_A#RU2qLh2shzJxn@639j=$NiCobk|5FHSXnVU= zsKJnxoaEzdH$YcHkw08BzrX)WNBgAVRl}7*uA>u|RwpHvnR&v>n8`xIXtfXI{4?Z> zofksFTVJHZ>CSr=nhXJ^(a`bs$}S5nUJ-4-n!eWf3_ae0fFh>qiPLH6IJ2d8P6>rs(MY%ksC-OnYt4~fjVTE4QVrH?JQ@Ob8(tMssRb{#V@@ahzU56|0FpF4lS#%WR>k49q32oy z&G7{mmM)oO`F}Rmil1}Iwleg^Ch&-wvVgs7f_t($`Cy{ z>*RfbOS_SP+VhPDU6D49384c^Su&^Gupy@te#vvk`)Vx=BFC8>s|iwIiU2gKAjQfR z+h8OYSZ@lXNi{xUrzh;~*TEiv&l@kt{_Z)wCiW%12^35VD97!@s~)gXuoP%cQH{#hs&f$9<471sHcD@M3Uv_-{dfPe89Id?n(U+lOIDTM^gOZgQTrc@4~k% zeN;C}QvnRP8h<|Cv)_;Nt(5;h$|xRe*rFRDmTX_>L!9kA_8MXjH^?@3)oZ>oL#~h` zDwPotyA?+_NKp*5&tTOOU7a-;pnb;4a#SBCB+Wh`rMm~p-5p>ubn%t@FLLOEbaYP) zv?UYWibXu=(VtTv(I}L;W*oc(Cqbt}XJ6IFDHJOgYcALDC1b`CeP5OzqX!6+`@P`8tCE!Og&I_}78uxYqU5xq7abB-!*&z14Y`w z+?mJ320LoiFvf0vFD|C4q$f~X%weC+A$Yhsq<4>D-LN8UqIlX+1N*r%kH7}n7>xE` zsKW{et~WV_Z?}I5Dr9%x*SG-Bij6&tr5h##Y61cL3k2WYT#6Gj*qpOd6zC z8e#CzjlSg9kU0M$;bQ=P?-VAX;hb{LA0rg2#T0{m`$#p%eg=%;B896=!Z!aT`4E}{ zJ9iW_C7veFExB~2G4t;NJiE$k-uv3ednZzXj4LUx-+z6k{?opZd-nXa*7`s? zhfU@3Tz|#^^(Vh0Jt6?^c?=7Y;#ye69k`=Nl?$!0%6j|4!5?lcF&QMvRwTCx#3V*lvV?dQe6I26y{UwaZEvd za&=XzzY?*51z6$6ywZSxAinw;Y5KUrFOydlqXy_Hj+EwM5%Z(}T1S$B$lM)muCx9r zJO=Z*IAH)T<9s}UR3vj9^;=`0IzJJBwWPW-&1fa@VX!Q)4<#dwPiz0m_wTSSRW{Sn zj&Roih2ohy_7Z{GLZ8_;8%k!)8y}qq-t<=kJJkcY?MN2SVn&yE!L>xFMUEXFQBu2% z$o4dCp?&(}^QM@^(}s-=d{+1%ok45{Wuku{7xF)kgRVAHgur$+xGeJsc#4MqSqC}} z7zdRKCLL^SFe0%@qXY9sv%*bO6>b!yKA!$+vv_3(oNtkcp0ObobZAbb@eNh1@L1w! zwSn7_#&NzNt)#DbTGZDjL-rZj^Nd#~Ea+ zajxgNp)xLO<;6jd6A(w9ohZq3I4O;P*?Yq3fEQ-mBDoynAdKltPR3OK|JAPKe^$FK zSYme&Io&D7QPCI)hsQr&fwpEJB!P6NW!a%Pe!Je*=%VR+?oXkfawjM~r8zG$&O1IX5-uhX#u;fZZZw?)L5xA9A`f+;kl9<^;GZ9w{9g& z@n<*5{^{m&S<(OLaQ$l4_6f3^q@VVfZlCpZ@g(B!b9cBNhphWba*cH9KU*znlaR@j z=AQXuou*dKFFS-`FoAME(jD`-?5CG@by;egDy_&oSkIG{P@=!0^xu2wk@}-BXFX{r z&` zPe|J)9S-Yk^;fWbh1bo{;_a(a6qCnKmCHxDje2+)KILl8&02QtY{v|GKchNQ?%_WS zF1p*_rwq5hTvTUCD}E>T*o=(sbHI>dRp#`-@=f~7(Xiy)YRKUV!EkHNpAC2A;nvbs z1XWEH#zy43=8D>hTuU0fjC+Zu0Wp`Pp2KD z?w$C75(Jxv*lZS8-O@r!PZ2+6?4snN*s+jrnvn;P&p) z7jmETQIUNmZ}sU(lza4v@#4vURp^QG;>kX3yIt=#FAlKC_-C`BS!rG14lL`=d^~cNR=6RqBxgnvuG4 zQGoIF1AM?Wo8N=|lh4zBb-Sp~{rOS1{i+a!eK*7$v%U4-)0E+YI?Z~p}GzrCfP5P1X_=#!I+h)STg``&Kdux5!qJx)ix z%366mJ9!)~SPWaG@RR5tr4VWJhY&qot?TRi+&-*#r)P=(xN2|v7Ha5y`Z(OYnhC~h zyPZqy3(NBNySiMP4y*U~emYs){?-o;(_i(Gx)FUiJGxR#T)3-e9%%K4oQghP-es-$ zc{~XwUJo|wulhb}zCXXIzOrxkdYD}m@$rGA=$|$}@w3>kh}>;U-@A7`nGMhi@$$F& zUtO+;DN^`7`bhj{HA+1k71hsRU1|A1Kfk*AWvHR$`ugO`JtZJc=7WF9`}MSmG;-YZ zCj%oL*#oCpaQP$ftx5aLr`6B?kHP-2v-;gxp_{k+QKC=BH}(2Y=NPE^?R)d!u&j2^ z$K!QP|4i`OO_Y5*hW*%+*VRd!qW=9|^{D;h8DJG(kGmV##^}*3-^Y_Xf6wb1$Y7Yh zf2&d4BE)=F@Gb?D;&DClj#vY(>IUzx?tF{q-OchUMeaiu_|)t4NwNR-R+Jv{iXOPJ z-@QBiz}1@TQ#nP}!}$p$z5U_#W;0Cx>8d$PG} zHB0%E5PJE9rs%`|baz3$N4;{(V$G-atHUt;1d&I-%SSSX-3WKcuxPjF6ZRx|$|6VU z9edZ~ygs>z@8je0*DZ*-{nI7z@z5)#&i)!B1_x95t=m`m&MSSUb6z-NLcyZZ_ZS=-UlGecW%Ic)rhFPBpc2PZ3z+tGBgLLW{{=PtPp z9tSHPEa&!FyJHIsMMdbhi)10&1vzn>p0J{H=6Sj9eBP*b8f7g}z@Pk=`9b8;R;M7E zK7I_dec<2Mch@cxk0!)}ev63e+1>;0pTaDqTLs5wNFg~xpQ7gLvewy1w`=0|1u}mh zfCmq@?KN9;MfF+dFIe^4O#NfmewA?{KS@Q=wMhxit?lz)YqzGk&lj++tE!)9`V=h> zQBRFtXU5fLrM{mTMQhF(*Sb6vDlq&$tKQxzf6XJmF2pieb+lh`l;@YqTAi3K;qhy~ zz2)ZmWD+vRe(x!@=)-@hXE8>irq!gT6^L4d-7qNPOO$1Wf2~%GMX{gqUGXcAC|gVk zGFo#?cgw+~kS=-V_J_?Y?V&AS;?Yf^K1YE%OC>YWPi8du;@2q*@4$Ik;t+53&r4Bp zZQ1L+`ay&0)@~`jw;UqVEZeGwXV+TI8H%-osZukWXvK}XLkukKL$WNGYppEcD}}JZ z`ae#ase&TC?%{ia#vK+5t|GI3qxp}*F-V6VBBKH#q3HFvhc_(;?jZ-vy0^BSJa zZ3udngC<<()0^_;$vqy@#YVk0y)DuY<1`9DJMV z{YA;eU@u-Q_ZF<%tUeHOkf0Ds$N@&;3G0)Bl`&~N6kISrPn5gX@nw~&_Tn~hs(0dU zD3PTMKKX z<1F*FuteCRBk6UheyDGHow1g}&kJjM%%%hU*ABVT-%d)KcI_VwG$%mBE-%LiYK+et z*5>8wixgsd0&&Nn4WoE5Y? zZXEdQgJw+n6*}C(&ZGM>!4shh)8%V_xX+7H~4M$VPFny6M=5ocgwtJlSnM7TaxZ(D~ury!}%pH$&r3?^WO+Cpxz@yAqIu`=Ygs(a~t?7c<&8VI!%DUxV{r)U8Fr z4zjJV{R|i&dt}dQ58T;rEFnZ9b$k1_k%R!dnoL3s;y@1J=^#h{ZdYd&PwppE|5}ye zXSdMb2CKS_8v}e9Fc56#rr9Q89Wr5*EBS!Q>XDzLVFt< z2R}YUp0C}$6PRfj*+@0I zRg%o9#4!L<2JI38pDx8@numd9z%dM*rCW5#To-}kXIBaJlX2bcteDe%$U!-_##SG# zBJQfBb)&{z$mFI%4T^q)QO-%fs4F9&@rAI81#MQfvNXSCt@G)m`%TfwN&59LR%n@ti5>4R^KTMQTOu(2+*s8lVmB);ckgm%IJbO6%(C?Y@D9B-^v!~ckZ;V% zN3PeDEOhkluhRb_Vwc4iQ`-1_6pYp&7mwWw>psvGo@h1`^M?BBp~WzI|5P+TpW3PX zg5F3A|7YLP8rUU@QQsj92%BNq3UJ0Oj-ip)#qb|j-mI~C%YqrOjY}3C1-EI2 ztMOMC>aBk!^Vdg)KZ z+#;)Cs7*ilJ_UI*jxe%(GvY`1jpC}Qw;});%2D)>CWKsQhY5;+HwwEv5a-gmuwm7A z+wxjJA%J$x@gh)cISC?}wL)tR3{11)B;lx33GFz|+-4CN4=UUZgzJ?thv>RZ1;Lh$ zO8&ZWaDw0QdXc(~QYhh&;!Hi8IP>CWx8GM)Z@G$OX{>vP&Cmp%3eW3Yt&!68UyFp= z1YGz^ZikR*eG|&!RqygPoBQMa`J(99x+1gc+-EgxlheGEI~j6QL$oTW#DX1toY(4k z95QW-ge}2#>bO|%NOFbXuNd~2Z|a9$_KLc^sV#JaUT*Zl_e9v)O}m>n%eeTfom0k* zQ-p!8V*E^bt9+i$EI8hltQ=von>`EsxppgTHyzv3z|<&A_hl zLF(j~ms!SWrL6AVN-ALra^Ka4>7jR(Z~j08hy;=D%DCfiI(`sXtHKyryrFT=o4w?= z4RP*1rtSDn$tyO#(A)}O(FxHT8aNwGIa=PfxX}+u5|HR)V`PH$rAupPs;#6@XB{c- zBLC4qt{VQXarM<%J^|C+mMb|5_HH4EG+Hyyve}SUlYmp zKVT$vHYo`E^u*gPvgd~-n{}9DXmEYFeVOEj-u6nQ?6$2BOfPp_drY+!lGK|Pd_y|8 zsqQ=qvwwFlf9+nwTP{4z*+z$G`~{h$yJ7+^U7EeVZiiK#cIl6I=O4glgc(quA+@|L z2;n|CyAdK;6~vv6Hb~E~u=i2S9)Y_1+cIDN17Af9u`PzzVgYNXFsIE)YlYqP75B`C zk6vxZOLk;pw(KNjGR>h@uTs@CRPB81d?^lNj!`;^R+FsQO?-#u@&bk9INO}gANQW& zVmMxO+&$%ND9>WLd(#$Yl@jjLB(-|V?{>M*1J2Qws%RTkE&XQhqgW)&h7i-O+M%)C zXqeJ$d5oZ8o%L-9wfP$Z6)Hf4v-txD_uCH>(zR@uzNPuvB3bCu936F6J!+G)TZPF3 z8@Jjjho9Tr5JrrymU(n3gqnu2wM%c?@U10MBij_6XJU`K53c!U&*QC<(J69{6 zfc9fwa%-B0A#cSJ;qh4`?p9?!86!Wu0&c@Mw&0>Q z-!ZBgfK)oKfYGe>8rBpuT|zZi#MYaQo!W?mtB^*|;~U+(%((JtT}9tpIEhPG z-@^#8n|(&eTm`%4O{Uw$l?c(yLWY5sm9vWMhb`RZU=Y>}D`!Fj-(!bT zlkA4%IOn!F6vLnw3Ot=vEG5(eCwu#|nJ8QhB8Ik`wV3n-dResbkl}}gFu)mQvs#1O zW(9L{h+4CPT8u;%v(85RkOgqOFKOkX8+kw-7-ytlqP%s?s&v2*!}3}?1DO-U z>-}dG-Wqf2)#4zZXT`o3Ac5720 zUbUXzvaW7stH#Lojp`|hs>&I_)3uCrs@yYYjr=5gH2*nt`nnM_l|j(lp@0V}HzumV zqf)s_wqCdQY9!E7zvQtXh|R-A1$~GVmGQ&L2(){&IZ72U+2SC;4XQ zv5%SI5QA-U&_8`Be7M)97+QOLXP|ZFD?0%3rI@k9p5_tO8{F0sC|K}D)B-|-5yf(K zkgJkN#Q;9zkCWgi9LZ%JighrXx9|c zA_k)|%*R_)nLNt=C0E}Y$(pE>hu^d0=Z$MHcoNOe z0D0w{L}M#EuD9jT?fXNyzIV>_o^=))G+vpbwsNOupolMT1snlJq&R$*zZHqAhv^A&HS z!@8w1F?lBCj-no-?YX@xAkIn~6+@pv+urMcEEqSqwe+iRA*R8)A{ln(3M#vBl|cig ziKy=qe9egOL)N%l8qH=RQFvRfEVb*m?ucjdnOd&^%<+!IKqH0I>pBq-Wd|*80Z}%v zu|R6X?3VUv(BKM}1h1mNkmnEx(c0F3wT4`-{(rX8ga%5RdxZwh#Idk>1n04ErJJ;V zvmx#n&w6};@5FxCQL00?ch)tacEJW9w&yTe2Tly!cG%|MI0>#f=9kMj^+oIaYoD?3 zxw|3X_|q2lI)78EVs&lpCBRKS`st;c_KvG}t(ew^+c39IplKPZc~6)PEKRxj&U-PSGfbUvx@?3MDNLgF`8kr=yrU8z^S?R2#BC};F;F$|Fv34(#a@ZOK7su~MrHft*>UvoR zR{DIM73U#IDrdT@NHx+wS|#8Bta1O?Gb1w4JBDFCjM>lg`w&O@REoJ#Mir_-+vSvNi6q?XCh z5Np+1pimq>mRO)tNy{v4Uw1C~FfjsH1iJ(Rc`pY!NFSwK!}zk>RAiD`miMGMEO#ZJ z+j%3NtG+$EWu=;&3Ay`r8J^*0kq?wKYnI!<3qr^qhLbQr01P3Z+R%gbNMf*03^B`8nfj=6TzV%y=5$x*gO9SEyfVh6* zK+6pi&WzL=ux2Q&5I`-SJSXH(wex`B!p~;t2Q7a2d9`)bc_{W}3R3ISM$%v!;MxXP zU&A{Rw>8h3CE4}&jc!`(fVK@R7zdlvvG)r}2CIjTt(%ocdX-Ct|K%FAxmlj^AW@LY_p}p8q_U7{M$1p5ZTHD*ODO(@6aUCk(TJ_G$jXoK%i#pd4?J9<$It)tdr zi^bS_D$*cJsqcayIw-t9v|Rj57cLK|biW~OTX$_bFAW!eKgN1ii2_xbM(w?$dowX{|;9z5}$_Px;cKQSf}$+n}@9QOCge%T`W%XjPt(t)BOiYxFiVAc{ui zl{R{VFF{z%dba%X2Ay3ge>)(a6FHLdMQHm9_K0Zhcq(9Un@{|`pnm`PE<_VJ@+iIb zp$~-vjde*vnxi0tR0@pNHwjIe#sWQw;z`s7pl*WD&;W=G@Rqusd{w)0%70`81Rh}L z5(vKxaDKQllNd=A&bk{TTXe5wl*xwMVZ|kFZ-@>o?}n~R+mCbu2 zKommO@w4@2=n7UdGFV-OPYkJE&;EJ}JkGLkg`#8KX1}=@?>G*mpmlGqT;JJ&ZV{J; zG>7tF@c=Ph6!ymy7|5kufW{wonyALOo4mzd&`-h3??x!Z3O$;X;fAd@H(ga{trX01 z0z&zlsN+b@zg9>&CmR?+TABsgIbgmb%=mz49QIem!J{qo{w0}R^DKOp@QZ5|-2Fqg z5r$DXrE?^cOpMB~`X$GQB{4{f5+;ZR`dCZ7ctDR2H*k^r8AC* zrwaZenyhVD+8zD#zCrILRc>9@`yrj(QksF=2BjL{&}-|CJ8&C=A|t?8Ws>73+0Kkf zClz~oIAk~2Z`gn8et+F;ygBW9M5U2U%4b59LYq$BjQ^FUnSjQsx--tQu~e0U#rSoo z>@VIY1#tz5p*Y8AoRJ?DJr%-rqRbg*V1W|TE&>&%6L9YK@K9`oq1^ry@H==$jk7tE>mEUO5}id%nVi?26sf0ZA7A$`$G zST_}+@gvqUdH)?k5jZEVi1ltxaVNqUrIWDg#x0Rg3I(Z@hPgNxbC%wpX;ym%W%f0x zR))x0Tp@0$53>v)y?}ORto`Xbp&&NNr7}wQ9DR?t8|s7#TZh{`8k>rcnUPzN;a(zz z{Z3UqinlR=ZdD9~XULohorIw`&lJ5X$h1=BM~yDM0LYtqYfs||L+&dAH=cj{m)E`p zJH>d}nA1rxjFO+LKEjaFdUp5Xan{kVVX4RPUM0FjVGT!&lyP8V2E|l|R*=rQO+z2xV5`l5l%p%_NCl z1y<+}_5ITIwk{a$mWl5@HkIifJX{GLhG~JklS+J5{b8saY-I)UD+2U}*6BA1V~wG1 zL!~)+$jPQOR`J4a;yed=IEYm=CS%RQ+3%viC1zqxbLG1tWmbf#o` zibDZWNphNUHWSd7aSf_Wz41QyVKXO9k7incwVW=FI#FYrB{XD)wy2D}vHjz<8O0=e zls+P<3S7op>z|ssa*o;y1vB)!0J0;0|KRF7x%-20sf-#lPyep{K0c7o_U8#-I(rEo z!iX8E&8Mc)1|EWx=s!+W@&xnR;{u}02=;~enrWu=RvE%>PQa1zLaSBZ=g-nA>d*^~ znHgzBzOdlLh&^jD?4Ec1PBjy1=$rYFXp3k|J5MQzU!$shlww0?5%+F+JirZg;Cunz ziZMibL4HV9`L!)Qj2W#RiGn_Yv2l0($Lh~{qFswq6C&I}fPr=Cwa%s-g&RK*T}c73 zhS&2AL=-Vm4W~iQY;ZReqT`rNp+J*) zu5Nl|G@A{lYGaWaXsV1v|Ghwh&QS54?%|{$DKGAFfN^RJhHkd)9^Cp|CkCPx8EP;y z0->2rbR*&u8)C!y9NnbkScPP`Ss#XFa)`mWFh~H!n^M|(RSX%W(w94k1HUW1&kT(* z*ubYu{QaEIk`lfH|D5a1wF&V1X3Mz}oCaZBg8~&UnHb+agt5ynPH0`?u@;p%-{b{_ z%|;u##_yhFVBpl*@Gi~Pjc7Kz#CoX;YUi7^`PG!fJR%HMVKHUWy`$4p{9)Z{hamnw z{HHadY4FKT8hZ&A2T3Nbc-PEkog!}XjPW#yhPG9M*#a{@rJ;v<7=vzf{IHX;G)E5MV9p@sR1)Qy&^ozNvAf```v#D)jptC6VXWz4l6jZi&N2B&;Me`!!h_tH@pC;N z1%7Ce%j)FSi<19(io0-JyyKeEr~C!z^tK2-`34+UyoXRD{DrC0*!@oS zAX}1rvwX8iX7tIgW{u)sQoZ&}tmcrCCkyW1B83j6W-b{2SE)Rp^s#=CJ&@d?V>|%g zyiS~JRF89j0952Wt0Gh&KJ;A){q9ZhXW+C0rA^`hpg3d#K3gFYf~b>pHJJ^ylD)cD zo?ugi)^Rulm!z9RLwCokX4nu0jY8rlJOy0DFXXv0zE&TfB;|>JBjptEP#Wf|6KCt# zQwp#G?1ZyaA&9xmRVLS2sG2YSjHF*sB)yTiSVEbuz{D5VcSiydR?U^AiKU{hiE$fi zfl!rzGgmOMWPst9U5m>3N40;?Q%Z2EhLsF*0CznC?kY_*^rbe~K&f*I$^JKBrHjtg zs$}`9L!78ktAM*vI;N%`Lfl(x9g4Knw0Uk9tj;Q?cd3Qj3i+YFcwIwUa>z5VB%l@| zs882`f6{&gX>pM{#gH^gAN+0V(=A0ChD;BYNQN?~$aS_p=HM2Z!U$5|Gdjvy5mg43%e%0oX5xMm85-SB`WWiRz|G$svtLPl1M=n$@KC8gUB^DHdsh zrf{mvZY?njiRkizf~FE>fUkB*fN!gu1uThOAyYX9 zo5_Vjimfh`+y};kCh^+hY*U3H2Jtk=C~WVCVI;5;WfYK6NaBc6K7C5@_!IpTR+Gj8 zWHI-;C(pFB7$aE{^ut3TMoS=-_)-jc8FMKHr)nNR0TBp!Q6rqtAmj~OEgp9y*7jf=`JPgDl8hAKCDJ0AysEOgG6J_d56I0I&!Q8HV zR%hC*0VD~wgHveJLuEh3b^ihG1OVJPal&88Sfm{W!6(_!DCJWEI3*-L^~|xi)p8Dj zEklbtz|eD&gWH(9+8R4Ia$3cuJZh(BFXW(!up}8PqYV(Ocox)p7L+-+?34U7YmWOE zHi&KWYCIZHC>hS6AqQpLN-q%EUf$K1CMWzWI%1Ge$uo#Foy58+Vzd<#exg~1_8pNM;(_3oVu1ouLaQGzk=e=f^O4jzmdh3>csifpkTl% z644};jI-6gjtoL8QdwSy8QLPJ{HQ^a&!8qZ&`O?*Tcnv-d;~Kt!3J+E2&6SA0)>O2 z*ahf8io%T42{Te>h6oaziaP!ea@BGGc0d_NnJylBpWbMN!q2H!iv;)uyX!OH7e@Ff zo;a$JhrWRQ*xJ=3k#b~cm{2emHpH3tqIcv~Bs0q{x?G`swH3-HRc zSpGN|w?N6*{;n4@uW=ixWqFB>X0QlDJs%*Ji=3oF&A{T7*HHkm@CB@J$&;%B+=&zh z=@)}-ZL|*X__Qi$54IGCG=#5>{h}wUv616Ol>AuzLP z1Ak^9Y^nqcjSUSnza1RUR^rrKS-z9UP7|DmFq~6fV{H&FJ*Yj1#}p;-em4WP(iNbG zAdIG)#%{-*@q)RD5*=E^-7+`<57lY33IV)q?MNQuFDL~JEQEJ`N3S!s3mDaQP$I>!U^fAf~BYBhfqP)EBqj>8U(I-BT*OyxUSDb4O0DFA6^Vz z5GPbLF}%Ys?sd+@`mWWQpvTLpIgC}3Tp`}`o(R;xXyy?V@eu?+<}6-eVPWOKGwJ$x z%5Km!h0(%snoOJk)AGN<7#H)aJ5>E6s`=Hi0NE3QQP&IrBt2LdjT88^8u3_wZMZS; zdicT$vAd=L)yRPK*MC&&wqk#}_yB_ycoOYNILXzU9gP)j9OBUMjEUT}zVOAmT=lL{ zS;% zKuQFHFWKj&1bL{3GiXI^3xNbWy{O3Tw%$90{%J8}1R5Lcz#iKWhmL>MdbKacCRwm8 zg|TWeF>`)M3UJj65B~FyV&~vF!A|1KQ^<4x;H#zj0&Do75-c1rawp8>N4ek(ER`Ar zxlisHzG&DEp77bqFU7h;^XWfo@Kb6L@QX)oqm0YU2##yG!@JKdPz-ogeg`UUaSxMW zLJj23t0B!KJaougK1-OWR75o-8v>5++)xOb=oMpwhO4kPclTP8N(?Eif>-?DK*+5D z+NxASRmpsHQqMKzN4fC;hk9dvhhbqm<0VJu;6iMUmwL8o-%Q{>A_0}RY1NA00P&?V zvcwEpXU`A(E-LE?z}j2IG~#uZiG?mDOoA9T-D|DTXUltwfaH zvd|%m$*ypGua%y`0iYHCkKpIciZDm58CX2nmO5WRA7^v2NUrS6U;cl^no}#ykn?+O zVov(C|7w9qtCEocK;MFQd4{weVxvf5v*G%j0D)`9DCS=Y=Y@!C$!2>yio92M*qkO&!|;`MgCEa zlrdOh1_#6#{PwA8$>Ae%tWN{MlnI7~5hb%YSCT8xo4@n?eY-<#JqIqQg*qcwl?pzH zX-tNc3LXwk`aKjzTnD*57+KsI%wIh_9uXEB>q+c>qhwWrLkdR07mVpx*|*P|-ZBJ>eiM zlTY$bd*zzY4lExKeQt#o+!X39yY$HBs<}$S=Jh@_6OaXW?BoBfV%k^Q+RIBSHl%Q6 z(;dblZLxJdY0&;V7do(J6%lXy4gSWl^Uej`Z&Z+{**LJjMqYey+Md>I_T-e9X;A!2 zlX8n_xdIwo9%7pm0AUt3jK^L=|S7h|!t7jM=m_3sVA z#D)!Npt)}bAtw#b^`I^@c9l5t8AU_px%PU!!2|)^T3xkWW~G@MGk30lF+gTk@8~os zen|M9iCVowOXVCKB>ZyYbpc$so99DxJid4&&z~a`n_V)bb3DQuPKpo1xHC+WQ5e%G z){Yr@-SZJZ?!fOd;FhTPGNp!$_>qjzfDs-p8UqJZAi=N@EJwI){dKkK51T`Ca8M{Z zvuag|(Yp$!I(ZdnjFpMVge@$(6DlI(7%EodQ$n%OkOr_nsxGr+x8(sZ=~`GQ%50Jm zIKB+4#(F%52x?xk-&($IM%)JyA!BfZW1vuj;@IiV^m4Nd`G5ID9Qm}o!4Bhf7$a51 z-dP1BU?^a$r3(!i<*mJHD2hU$C}PsD6!*}5E=9|pL-dAM*EuxgQV@~v9$6gy9Ps&^0(i4?%wN)`B29UGE$k8YDwyfZX# z{lud%hSh+x?knX3X9dbgS2nd_EE~OQ{4QwsuZC=12jq&q*ODZTsbi5p<#(t~$ZX5f zjfuw$!5k%rJ<7MU3EJu84E{0P)oN%d6$a(KbtRM0!w{{-`O-KK0*rs%aR1*^qriIVxlogxKeG3S>WMzB` zLwg)T+B05Z79Xv?s;mhS-FgtGYX_li*_{ZYq#mYmp#1Ltb5he&!GX0<&4IjU{9*p0 zRv>$wjIHN~^er{CzERTLlaL3P68jgs!sABhEW2(WR-VB&P|bpQtZk-Nrqxi5idjo^US@Ua0DQIDJu(8SPV z`mqd4G8@s&O(Q%!X?R!K+q_Z+zBP=~5rM4UeOsMtkasAtTxP z!M0Ot49VC91t(hHzos|ZX)fyiYW6XVQgK~8N`VaCf?H9aJ|uLY>`hWO;CV$kG#$`4 zpysDv2=%5cn^eSLBGxirRHe%-bIACTD;dT(T!kT-nHegQ*>+&u{limRykcQ?1}UsS z)v8Wp!&AT%sNW;&*8A5zb=a_jaXTERa|^L7lYv@~Q3)LQHRR2U3$FA3!`fR$)e&^t zqPPWj*NwXqAh-s1cXxMp4IYA9g1c*Q4ess^!GjZcO}=x^xZ~dQ^Zn`FwVT>iz1FNH zvzpc5w`L?^Q$j!jIbs{;7|2^_9ySc=_6r0og|q(B2fjfKM|=3xomB*~G+l=@?I7ON z@(NM3lHz=n66WWU5Ey`1atxmD0Y6E}m?uM-qkWJ3S9rEU7j5p3U`jf}xn#qnlIP|T zra#Zs0-k*MnOO7>+AYU0LoJmxp!;Y*_kU0)K#jnT0hC2=y@-@ChCKEFQNkj;T+4$3 zNh7^gvoC8SxtnZ#1*F&Jw9#)dAXPyyO2{Cq*Ha9)nagITk{$=_94-+kISZM#7TQ9A zgvS#y`!>{sM;1l64~8ts>=sDMu)_?siA7`I=`hkzd;fFCHi(~g?I)Oj8oqc^I{jXP z`NvFUM>p+&29C8EYV^1xPFbl&8h~7|2-)kK8x8yI(#YIH-iFo=sz=HsBkLr8egGpVgwEKh$0YqAmKrm5SrVeM3^z`df z(cPTJrgR`y0oXik?QXwt^b$fX(Q_1m_ZMW5U-Jr7MN8cPuT>$MUOM#7g8a!cvJPi( z|A>ce=<_LbXbvD(Nn0#@;HY4r`h=r-w%kNWYK`6J;DC&fK_UiKt;Ag09tFqE%% zRVuw0UfGa*Nw{AHDohz(@O+^s1wQQBD^d zt2FESIi3L~o(a1&-h6LNXHLcOgaIb%zMr4PH$2s@qZP-c9f&nXwft1_gy8f1IwXrN}V>H6mY-UvnHi0|Y1Wj=Z)NqY_h zv=&)Mx;2$~7>!UPCXyuon!BzhQq^Fu!_EHZdThLmbigI0=8w&(P^_r+|zdx-EqJS~HSn*= z9$$ckEyW|-RI0b+Av+HjM#}OIcB1lm<(Bugqii+R`s;|4x{shFaZ>tDc+!UgV;a(C z&;RRsvPH^CvFBzueSiT=qc4XZ7u&ZmFrpr5{sV}G-l+)&F}%`Z`5*6`E-9y|;}PI* z--krle(witR@BIEg@-|`a*Qvs;g^fDE3-Fa6aAZLI4~OZwtC1MV(S8zz!`yovD-I* zUCo#WI8TY;)9!-p4VkRm$mNLLmG;2hT3LQ~&HgpsxQR8w_L^%Ix7-B2;}Y zA}qCLLswBW&@fLm5gGxj>oUSRuBb&->XC{Y?_omDdzhdE+c$@(#YX=NG<>qf3NTqGiLCovfp?(;R^;%1tVo@ydWv+y zd=Ee|)$k6-ddS04g?}fis=_L+F_A>Tepn_Z7j{#NG}Xc?K$w4#whseXmd7_0_o9#P zgp#P82tAPeo!mb^kb}p=38Qa`#uiRPtP%zhcHf;5tz#`KR18-@Kap9n(YJr>sW_=l zWuVXqvetH#3-@i$kPfR+yYT%O$*2m~=b``y(`N?t?Qabu6U9K{fD)HIi@VH_>yC$7 z#Cm-es#ys!Kry}2l0lVOr8kJ-rO_F}#T4brf~)2x@)JE+r!BVdGoaAi1U@Tczfk1L zQmblU?EI-fPztl|^iD&~R{WHp3k!@)Wg&wn*XGm*_}zb9$sVj{gHNKk1HqfNt38RP zw?j|Lkc%yV{Vdg+aZw_`@R7D2JS(#(Cx>JcnQ?sN6+4~7{(ZW+eSe4gmK@c?vL3k; zGTQQ$p{hj7N3^aQy4_RQ=mpn8CFLp}2g2s3L$`B)4dyyGFuRs93#< z52u@_k~ZHnyBO2plme}N8oh+h`n{@$LLpL@ddT>=kKWy*8VM_q36^^Q{$c$ zI*SpwX*@Kgf3sEvW}Qq^lHGDa(+BQxVaZ3N6KYv>LIL=f>(94K(({)JBEz3K8C$eu z*~zs_n=Ds23$Y>4Y`5a(u@ULXXmVQe5MQyFAsZ%!ta+Q@0M1=<44^$Ki1}*qU!~!C z-qoXkCnql zNN*_s+tsk8&wZ9bUiCgxXx(ub|HXcdzBA_*ibwZ>m-{*o`KS50v3XxzzU8EwDMQ|Eo2EEx!Bj<b$i!%XASQTBW)U2Nt>5=G=Cl-}Vmmh+4%|k&=0e*wPuhnnh6>)O$C+qCN`BI`C-rta_{{IQv4e+)`}hut zmkZA6z9Q)Mzrd5m+w%`Rn@^H+yb6YAwhZ4#(8#qbn+(bSjq7NHR3)|X;Wq?X%_3Vd z+*9Mx6u<$D0rspahqo2bBkVu<7~sjpA){&NuuSK7&)-?6xr&2}XQ7IWL|AnRONG8` zcrdp2Ii}Arf3;mL^(zI8|7||ZyuY1FEJ7noR)VEPe!z61A~xCkAc?Q}el(gvA+QpQFfTdKX*g00vmQin z18nU`YAAG>RnK4V3{*5#9S*rju(IXu#h~i&_I)NW>)+y%c9D|G`_?KfIMu z8$0^rA|VQwxO1gW?}5aifR%v`#I<+UG?d=0K}0aRIC0EYrM>nJD{NvMDz{gc0C0*< zT9eD(fs=2oUDNuB;8SN``pS1D0e4@Hkg6o@8eO>8wQ)F~Mx@4H_Rp0aY3ABaBUz?U zLp0~sfpuR?<6rCi+~%noX$@#i%$b+3)N2^%A7CB$Rfbn3`{vmz~6Tb0)&+TGv7o0 zaaI-^@wwAU;kIE%zLJ1T`xoVpJ5{)#Fx4!ONUQstlXf9Te|*4Izbia;cWq73E`zej zWAUEmLO$ZW3$<#W;4!J9+=q$DGGtxv1>eZLj2@t#?cQ;>p(gf#>t@?l>d9)Pn({}@ z@hwK)ELFW(BM*RJ2nTkC0in2}mJ~rhYpBAK*PWnNsom z?1D-Q)%X&d2=D>NHGBYE*l*WH=HB6=G8?R?S0-w`_eTaz<$t>J`z@!Ud1U0r@t*6Y zTy2B)t(#rF7fhFkfKB&A?{hH#pm`Bz3*7Z1< z5`GL7&}1ZB7upaoR?-m|oi@CxQ5h&mg5P+fys4TdMCKaCO3LVX9p|;&A|o?;IEWaM zibd=4@lm4#;x%5vy3wZT<8D6-WJ&3bN6gk2iGD44qy|t2I!Ry3*rbY@Trf>{>M(F6 zB`HUaEqX*n0OAl=w{jM3gM;}K3h*E`nCAcIUg~b|5I|{ zjof?!nbzfc6&q@!T6knJp6qN7xfdH~HPEJ%xn<0@_uvBSdG${dCXB;zs(j8rkwrwX z$unp3AiZ($!^zLqU2OlF4Wc3{WX$*x(m3q&6uWmMv>K=~hr8v7?`el90GVzjrfD zSZ$M2V+yq*v+=Wd#voJ6FS-J9=S{KlKK^0#Kur`{WR+e^Mg536-5@^eYxrS0UuYIF zoC&^=xX4NjJOdhwq`?4iM#zWO?s5_9wLnf-^i4h^JYYuHG6S11OO1#;qsg)iQYR7_ zI>Vd=Q$Lp(7hf^jy!X@gk`mS5nUUc}rwp=uO}PjIb5&#L4*yM`iKi^g=D<`vB#!ZM>hrARu(QB_&9>MVHKWK(Kg&1La;2aY z*_P~4G0zHyfaPn@GUeKKD8gpTF;C22NS2!iiiY8TUF#6dGW2<^0MiMRZ>4?r37w5! zjKgkPH9W9rxmy8t=FeH%&J?+Q(V*T8H(`bfk-S8eyG$jAUx$WP1SZ|@R9-7@vbTdp z#w{0GEl2LClXoep5G{$!{F9QC*TCM48_9Rp{VzM3Z2TOv9HLx^C~6tzC5jR98T!Lr zF%=54!GC|2iHgl)%elc>W+1)zO4&J{gR6DbHeyky4F2>k@NeSUG};T*GX#kB&QpJJ{B#H4 zFndYLA@{+)`zzoIX(tMz5Esb5ZO85@652r`&l_N`^|Tuhg@$yr1w_Rm_5E3|zn=Hz z!FDq&p&?oTbo!RxM`ttJkY}I{ykF2NriiyD?C4#b`<^ga3 zWEA>NN**^R7Xdb7*xxN4rNPiq^*?YB6`Hl(LPlvIgH_bVnU}w_t~$z84aZ2dSx2W> zkOUCSAc|MCD4!M{kR)uFkvgE2Q8aR#T2N?ZLw2kfXw}p+ZI$BL{X(pWA8q&{>W3)1 zEW2q4vRayXNsZ1)=S+QSraDg+{CU_=@A>uXirj)IQ0MtP-;(ewk?=v0Szy@ErTP;!Y zAZn~pyztYy>0%LFia9?H)I!0$96U=qjZVH;7P{Uw;0F&`@`-xH|1B%(R{Yy9;B(Ht zFU{17|Nh?4Poc~dAjEMFjtfJS#J;s$yD$Of>zDm7jlE&@EdWUf;NU23J3b!(MDNQNuN zPA+6EaUDjgyenWm#$vQM7|5)Fi8aN#6F2v@CnG+@RE_K|ZJ)JZY)%JYRRq7F_0BbH zNmvq5kQX&s(usA?*=~IhE*eDOJV?6>p?tsi$iOnZ5u9MvFUv@}No*z|r-3U`F}99ov8g%7{TILk5oLgohCJC#_27+~ch45KoTe2J6^2(fDKapY2SB^Y++VfME{pG>U}>bj}UP+ zzLluhc#jdG=>W}GziUSGT{HdGgoZ;L7)3hOH0TkGkWaVXLnj%iK-L&Zr*Sh6Xr|Sh zLgSF+@WGo>gD+-|AXHSU0kyymQ(c_Q`j$_u?lR{}RsidVW=$R{TSY zjn2pG!`Wiyi_MMB)}XUjAA(%}*Mo0we!j2QH#fzL_YO`k&LrXf{x^?*SG&$$tx6_Z zR~TZdlryDWdAEt-;$!7ke@V6s=y^W$Oz0qsZlaIJB9?9h+?0Z69IF zA6abR2_p3>c_2^3Tr91v+MtEn=Iq*i$6(p%oVjx-T+5R!8D1iQB%r5Tx9n`>j~1hA z6zY8t#rcQ%{i+fD@A7CP0F&fYh;L!Z8%El3!0jypWH`C{?7a)$x?aEfHgGAg_aJKh zxHvoPMD^v&<6z?GTh>ci8se1yIIb0&8frOkf>~c78jW=)>!rR}6S;*(Fp@pAe8 z-1uap>*t9*1UL9A%=3Q#{_t=yUZGlnr1S61ar0r9px^5mPz`M3<@9mUMA<}8?EW!+ z(_irI@OEEeEU3fpCjQ&v;H|KrL7q2(hkGVta z0xu;0TN$~eKG1fxrE{kI@djO+BsugN7Z!*_=w!5$1WNnY#-UQgHv;3y60Ys5tqu5O zrH&gzv4=m}8cV0Ba}C!s+-yR^m;D3z(!cGi%ZXbxVpF-sv|!04K4_I#JZ zeu5wYUyo&EU}R!qHcdM~`{e{<>VO2pK~+*NEkR(iV+Rx8n&eGpZfuZDwSgRRMxx3g z5@(tW?;5E^5$y8xQX+F+4#&!X)nO?Xb3m=V)KV9?I4UPQzI^)oG%eTJpfx|B#&iNx z+QHefQoWkdLH>vUOr^f%?z2zpPyT!hFrGMJ<T_Q}&e&WmqT| zQ`Hlf9a@WT{2kz0PmOrK#j{Y1-ky+k58gu5^fKca5!|FP201;|3_z6~dg6^hWr>>* zyaq1IVwD2w1aOO0;Rm{IjiE6Gr7a|kiy28o&#Hq*?eGhyY4AW8whGI*xe`)H!Vny8 zrv(g58~;n*o(Y0>%+Yj8KkTI1yfAAq5^P*@{$H-|=~VpA#K4-Euf&yIHw z4g8*-J>nrQ<$`>eI%L?%r{$bO?>u4Z@CF{Tl5==A zJDsODePSTBiOZgu^<$?b&TL0KM4$#yBOH6Y1SSN!deGkfX%jW+p(LSk{Z_yz8$x$H zlXECFE4Ru4*&Zvx7E=0Y{r8%%PFC0t`$SO^c<>;tz(*#d9Q^9-{9dg{QyhyiwFjh% z8Pw!w3bgi?CRM}ZP?oqAKXNn6Nk;H%UWu+aG6U%G&OV9sc+6j8GMR*uFve`{GFvEp!hqZf0%x6k*Rkm^`!i3i@3 zUU=N=4W73?gMqJpPLc8O%&h*Z>&EihppOvVss@FGz0|Ca42{rVWQL6VZrSi;;R>nk zNoTrC$Ea>|6m(rbF}1eb9f+s9XgmrGtt5F6T}!CfG(%=kYF3_|gepR1dpg&tH*#&d zsBvT8vwQ2wL?#BC`IGFJET2G08GP1l&B?D#z6#^kjB>7<-mk{wL}@na2%1?m$Qig$ zl_)f>cvQaQRIyxXiJj`TMD0V^Q^hYT3sdM5+TV@GSnr~1`=BcFi~HGiz8lM0M2Fiv zv6HxC+jJ*r@vdmw#aWs#F)fJk3MhmUjjofLe&n?lv$-ww4mH;0C;*S`zqC*f94WNN zXO-E~r&aH5yQdFX@HB{i?hl{Bhr?#s-_iB@>BtS&cV%}JqZ%O2m!n0(_P`EKl$ZcbBFuxz& zwy}xyP>z3~4o{`s&EDY_+s;}$b4dMZ8Wt^6eOcV36Ru7R{0=jS+1g|~;8V=pQB0+S@AQAYz36)!5bGIB*2aI5Fx#f*c zg6QAX!K^}~UVIpdMoA11%^dkx1QB;Kdb|rC=-SU(%?#4&=xoIMHS`}w-Qx+-7v^al zwZ2`#6>gnSWu{nlZ^=L9zUfLRGEe^;>uT(&?crD1m)&HG8c_LMwjN+T%F5`>S^R_d zt0AN2)5KWsBSNK9$Z~JJs-R0g<5nBo@mt=L5*qunmgu)xrp=JK=q>uNvkFw6Tgp{e z(rgkt_us;krZ|<%R?1CUv_4B8F7out-9F`NQ$q;<;bSbqaV>66J5;eLl~E|S=Oa+0 z6FVHyoU@zqWMQRZG3Z>2SLyITkzEO%1QRX#@$gkp5o^B~09_zXw8dG${L%V_fmq4-E%E5(hN&2q zW$Zo}f~^gvLvdW&Nf@>8??SVk3T?VPb*I)Z@s+5n6)NYC4>E}_6p+Jd3EALw=JdE} za%3|!pG|O>eq29~x+A4VlhGo4dF+T=9-Uh~38(BNm4QRXjozoYSFqy7dFA*LQ%Yvy zjw3ux>#B4fz6-Wbv7ZJtD0#;&>5M7-lg2z$n)9 zkCBWpZ4uhbCtG|&hxC48Bam8U%lKy=%55Q6)3#v9%AHv@1Cof}B$H$?)ne2w!8W~E zXu4o@8u%ZoXvSvkveli27^VxiuU?S<#ua;5dGNpKu9IVK$u-<;!JkDRmD$eJRzbTD zAt-G{^lT9D1Pf(sys?NPklROHAPme#@E2a>AV- z2BYH1H32%6%E{7qbNI9|>vC)vLNar+JN-M0;BQW$(fP}mCr3NV+LW}f@G4s16MZ2h z$X=d%A7~8e7{kySY`nmkNF2WxR!EoKdCK0K3Sx4n~qCC-+$Ue@Hah9`aJ&TxJXAw%@6>g5x?#W zahts)LBsdt&V?{V>SOJx7!p-8-YMS>-v!rF1AbG}-3mALb-^jmZSoyeR~P{IjV&fUb( z_*Xh-mE0(|k)Pd)5Hu(kvkHC}vJD9MbUPK^;s@Q^V@bpRai6+4e8>bUWA5D~pJqjH z2diV#U_9ZILMSK`OkE^6L)74pt)OUraczTS2zq#iu6u!W5Oer;`02-w*HyKx@ZEE_ zxigW1>Z#R_*pbF>njUi{#nl0(KKejeP1G#IH4J7FYb|i?9L2{kpQ|Fmd7Q|J2?|o3 zI7PcH-;kz}iQ>9nMXR%CIm<=wPpT1!$g93hJ^BQA&KlTI^H@?XH9|{Ol+Gr0)!(1} zkZ_MdqMAZg?~t+hqS=l`%07Hw3E$C|SZA)k(NMDr{X&p8wTk*w_dK0=zxlSs$Uo(+ zG4X`aMU@icxcB$op+Z#lP*01dc$3X?G+4nZ*;w-Re$>}g(9a3UtYUm9`lC>)vCa+k z02|4nf!*m!mIVuN)0&s|pDeL|tA7oGbC&PkRSVDHi|}F2o21hWTG6+|tO|%v8nI*~;GHpCymY&{H6g z#1z`3zZHySP%A*`_qkZHX@@Al6jg(lR42Q{wfhZTUE`6x?u7qz%E$Frh+R~EV{0P9 zVq#;!CC%sh?$q3_bE&C3 zo+Nw3z1rn!yHrt@Y)=FFqPYJ`8Yon7m1^@X&vj?8_(KQcO%-I4<^)6=q=)iH}AQT$>X z`t*o$>Y;S{XSb+qd|E-N@3ug9b$>`>HK4tnwRoGC%V-O1sAJPkU?8@rNvC0c;nCvx zm;c1*t#LC`wq6lm=ycs`)vv}6eTN!D=yEKAojH`fQA@v1csN7itvF8gQs5$blq3at z6gosH*o&e65dw7ZWGv`rJPlwFC;|mx2BcTPvBl5-mo0_vt&*c}VHH zlr>+{O8gHlP$`j>wPeOhq6A;t!-?(B2AP`|39*o1cYKl__(936;5#_2DdOo5D-;RB zKK&e)@t5JgNMdn$HJv0vMK%tZywm_`2G{(@gT40a|#;4;5&*E!QfX48lhkqP>E15 zGKfYvX}3KdA9N%fOb)UX38n)bi3GEOEJcHPK}Vu&-5w-gq!go|vZWNGp(>>mW1xOY zDaJyLODTRajoehCkqmYRl}HBrgJ`6J!$Bod!EqoO>EKilw7+CNHGFhZ9xZ%XQXW10 zucSOi_>-hOW_X0;*h_}6U!Wt|;2DsmT<{9$NG^B>WGNqf0y>gs8?47%NzN01e@f01 zg2zwE6M^SV$rFRuPRWxP34LQ$u<#d;SN=ouza6kT&V=5t4U|&=mpl01Pfy=ZJB37m zHi}xO=#C7iQ+&q;)G4_W1Nz^8<$wF-|6jkGS^93Dapux$r0INXvpa*t{e^z28RFE;&Z@8=nDq zTkWmC%(u$FgvegY0?l^w41L72GhYun?YItJcD%XHy4o+)&2+-n^|3AVU8}AsfrpU? zv~C7)N-{h;9UFaX4w_=ht~0F9NJazp;|G~fT3Hx=d#&ObtXo(0fp_}OFFDt;o%-D# z=cMQ?A2w#%t*&X<5IC(0PFn2?&b6H|8$`LMx#pa|Sf8Do-6=|1<0$o%7@TzWa!flv z(jm8v=wG7c|`E+(bZRj^m&u70CV*JhVnz6@gcep zU|@YfWRLqFKVa%?CD`%(KC1| zD>(e`VfSQJwYO(mlhg)CyUK+K>0NN9d*}1Ui`Jo$>!&%cEupZAk1|G{SVBU0+v4Ny zv@frW_t>aXVOl{16P5@hC83MULnxyvWJ%xG;PNn7(vKD~)jywMY<~Muz?iDxtB@X- zs@tG>tWkUOAt;{LZS{c$&b)K&L-YqNr7|u(s5ajRq-AYg_O#`%r4$CUMUVYb1LB8t z&<=btmsB4@3LTmZZDXbe7whI;z4$*3#g2wU3z{3jvYKD8J7MmIbE>CJ z?@Xt*8OSp13#reFj;xR^x=_~_yt9+OokU+Q9GYoitf0gZXR=%~PP>1N4{GQCtDC0d z*a_`DICcy5*YXAari=qsW$}TFN~OcH0=Hhy}FSIo@U~#mV8o&H&~|PqFKID;~NIqmlSy zd(A6L0bS3sc|P}rSXzPTf}Z*VW*Yx%-K!%5)t9}l9fL=Vm(FO(i$YHy<+L}FWfTB! z|1ToD&gsA`Nx{Gr!u}^RF##eIR~P1gAOAsPwoN?YqEmPm>~O$R1rqRjwDC>@I2D*y z&=*o=P+Fb9-l}8Mw=7F{^H1#biEJ;MH>#6a%^tLBQE`maEMk-#t^A8+yl!6Q^0@|Y z2kYZczcZbh4eYoTCSn)_1qrxE&*rUf4n`g?x_rH+b92v7V#eo@>T~y#3BLxhgqJdRPpO{T2gmk6kWz()FD7x_Wv#@9f*Dx3M0Z+2@4S?(~yK zDCqC%{F%U)CWaNg$De2p>Z9xKT|Wg(N6*H;?;2XEAgXi3H^HM7tO>p1F%MI6iP;Korojx?xu}SU!4Y56Ktzrc3x{72w%L94|;4FPJ`TF3Nb0 zyvnQ*ar@w_8y|6XBHXoldw1!|%@pU-xw%19bbLQLu+4JL^d;aB>gl}q z%Pqxo`(OW;=D%k+v5lS`8(DraAY`u)1}2iME$Zzm_lX#I0$?#c=Kc{3o_o!w=ww!08%h#73C`32R>Tzv1s)4Px*B_=wQ)n@=oU4q1lcXX9}M4E$gT>zrzXL>2mPVoHrr^#^h<| z@Jd-W-VrmyRYz$?#qVbc{`+=N4!2(Vt(VdZ52Vah2Lam;o7c%)asG?w3K{~B$*5_$ zRSQwI(**9u#lp|A_C9;QM~(glS!Ml4*lhWj2S_aeQ&{|`2wb+&dUxcr_41PdX6=-l%YPFRnbQoVk6kY#b&j-BjUcSR&6K;`Ti?a!TOap-qu&0 zhb@bCDD)Bel_wLMF`k?Ce_@JDkXF~E4w+=fNS6Fp4Si~KUJl!-8`A`9{z}ueSCO=J zT;7u(pxAD5si=FY;Ee4uF|c-xF25?`G$yt>-2B@2&u-b=*W=nN;d9lT6gvm;R7u8H z&_~+{FSoK+eiwfjCL%NhGeY>0Y46XO(@ zv94DA=8k$K@^&~<9MKb%L~blMz-J}-IYj7ZR8~M2J-8W@7QaCd-ue5ci6Oo8R!_x= zM1gU#y=st?$S}UWN_}jINGzoGER{CFLPKAhwTse}=Bmkg?t^`00F@4FS0y`!Ny-Oe zm$3Wa*{Q%EAMLwA!Y0a=Y~_vsE$d8}i*RJ#Z+iO|;$s&}{xRb=qpx-na zLr1u@>5NM zG6s)E&)k;ydvRR^j8pWad=}lH6}2mMi4yQr#m;XL%BrC%W zktid5oe!$?8h5a)B;yw9EfgstmiU6mc>R7Hn|su0d-ov@J;0>_3&b&D7I?|a0>iRp2(4^=odF8}%WG)4eh@ zj%eG33OoJJ;6EcI!@h@l4Lm$bCN2HhyGEkvEX(bv>44m-@(UzaSc4rMDFf%!^1!~% zhx)m0s5HZ0A~5$kEQqW@EN%VF5o*48Vr*BO@z(PNi2e{&Q=k55=^1yiGT{a;2&ReW zh=EyPl2-IGVBCDgik{k3NCJ;_QeTv^h-egp#H?D%JDXXV3UE_Fzy6a3l!JWn0>M}c zsR|xcFh!d2zByuVRY-CZH*-@6l(7WyEPm~(6H%TLYRvCBrB%YmerTb`sDVXc@71#f zb0YBy&5H@mE3Ypqt1(uK+1ToSoRxxmViTp_Z_!|ZDZQz!6cGVyf$q-0&_#Q6+6(pq zL5b!X(KE_Rz>9n`fJ4Y{CBzjH%VO{a+i4Xli2*^C#PW*5Z!HS(sHOyXMuVUTzoQ4D z^z>|yu4e~G0oMsB@+6bx#2V-m?7uCDJRCvl4@q4As)65u>5AX-x=TdM=K9Kr#J+PO zX-Oi9g4@BsN*suBq#J<0eb>+0Eq<`D4L!xY6er}%fxo2?*8^=S>>PXsH$9{S^NRO5 zSpjuYXziC4qPLV#8hDoN6KP&I12hQY38HhWV828x_j}5D;Gyd2)T)J1ukiD zCNNw$Fh$|1uNooM?$B@P3Md6VWSp?;C{UWBzpPn!j>Mwc#OLxtx(Ip#pq0Q3MT6wB zK)iviVQ*L^1bL8_vOG{Ge(`}lja&`eU{n2CB@8Ir=yGtR{_JVAG&DH~`eGM4HX@XA zA-w&i4pVtpL#rstAEQqooz1zvsjQf&elRF1*MjTrLB;KsCgi%5FpyKLM-8+NTK(?D zM-#NVGb6-9s)?+HOE`~h3ah|dqXq$S1V|e(9#oldJ%tmlIQgBSU=m~lJ2-(v zG5KAu*%gWvtXQdG7Sd{w1 zYfwXHvt%?7LlFw<5y+wT(n011$U%$bnh64_*{q0o_e&it0mM<@7+akoY9`3m!5=oM z;BXn>G%p7TQfNmIFx6{FqQH6ayE4WJUVCSJv1X)*R3izhY{owx32nU$L(Hc1BmIn1 zkao3|x(H-Hm=QW6E&dWpW_T?W3I_l38!{@LLjg$vJmL~5Kkza7mEYwv$!lJT)4DL$ zRjKbQ94Uj8?`~L7MIbVU0jyCxsz^u}`!$#4>Dt`^b%j)prQi?4?xalgtjHXJDpfd& zJ+OqMo_rA@G7m5Yv_mW6Ik$*sc^`;e8juYoY!;g@sw%+}r}T-CI}}Ee45_ek2yN{* zbb{ZbjgBHa8rLkJ?&e~n!j_p7pfMqwAiXk+W276G#x%%85ad)$nnuHKd&sQWUc5}P z4XLScp+1t_|;VIzRWO&ptI@0ovfNRkNZl?Y)1J@OU`&}((o=fnh?Ljue}W4|^7`AdvHUaly=UE)iqvkjF|B zL|uB}8|A(P6PhT#|0&GzPE;KSguQA_7l~1XrYN~e3w%u&!nxlOW}<9e2pwq#^rWyS z!}RabxG7N?DfIM$(lodup2$FG66GYxhX|6)Ob99x+%XD2!zJu5N`<&gvES$mLgs>c zB*8G|*z+nX)cY?eScP;e^n)?!)3Fy0JrcQu1Tnrkxd$rbNud5knt{P|N`M$-Ng9I| zM`)NJrR_#VWlpbYgd=#{twe%-=~sdf*kN0M%4Zb3NdA&~Vq&I$pvJAzzeTO{G4Vtc zT3sGH7Q{Cg@%cl59UaoBPB4kf7jJpa?etONP?;N7o~x8^jvH`Tmll7$l5hjVFj8c1 zrD%v>cRZw(!L$P%zG(N&i_S$_{}qr%w2aG@<#%|^+@E@3l15O>Z26m7RBsG-w}*oR zFVY{<9YA?3;%My{qQGGk$)nP;d*rs`(ha!-?P2BOL~0IukJT>9X4{>8**-QO)aq6J zFdxajj6kvj3zB~6fA006B;RM*GJl3b4V8+Fy0QK$fva-qP2v;IlTp;;wJ(&DEBr(?MBHQHlo`c?9s?IOQkgYl3If4t>6b|F!i2ZLd-#(eD+1LdQar<9gkdG~QwRg!G@*Ny_(P!h z=Vhbjc#^`W5|nGk%!o?}gCe2+9<(X%i^zuGrYACre0Vx& z$>8nJ&vPHyjAIeAw28BkBs5mji41NhF^WvxA=?ynPSob6@431E?kpn2PN;Db0(J*y zJazNRj}BR&1O~?9Z;fN;)&sOifvcZQrKmK|)LG*D1NRe%^B2%avPAbxs-cFZ#rQ5Q z>K9&^i*mf-0|b*o;@0r#=E%K%({?6qO8yEILImr6ar879;Isz@UejV(#KMT!6rtN3 zqMHV{5d!6MKLXj!@2HD7l|6SvAC1oxJz|+%M~>c8^Au$ zwNydsBLj7(;uRoAz@wOSH463zleWT8njDA7f$}?;wuBEqNLz&BpAIES3wnA~*^I)G z%xh*a1MHF@x0w4XdhQW12TB3aB1?f#`|)~Xkiua)JK)6{dJ*XlStB!h8T?%i(IVl# zN*ityLgImSgIhiLfnW`xF=_JFtY1Dw9_D_;!c#txy(-?WN)bTMfgMyOB|lkkp3Q1G zCWf|5=xPF{X%q_2xh$I$Ynk0$jTsrq9;E_ppotH4S*ww9DD4_3i^$!xDe4ds_soN8 zE#cRl$ukdHjr!{NE#wTuT2p7tZ$s)YWaK!#m4+Z{s`bE_#nH#%Xz=m}KOtfPMq)tS zu@XNJX0AZS8d#+aKgc2>DttrXriSE7e5UvhE{JTrO7qAtjwX}mz$J3p2rwh(gOy!( zcjIWfIpX&<$CZV_kRjR@bE!)qe4!X1EaDZ`qV|7Me3@ zf&Uyq5siJdFN90J!6X^?!kr2gC8D|R6-vg&^~zI)1`}68QS&Dl)d}uWx9Eh**(S92 zbw<@KvW(0mdcFvEu&goIP#=}t?Gx5c_zb5F3e%B|l5k`Ty6S1Z?WJFBX$gHU6gnhw z{rWK}O=GZ&Y{I6bG1wa#_YLy2nz}sTC2+y8QT4Y@!CSzDVOF$J$)^SNvB2TAp-f`S z_a-Ua0%1hfgd{%ts8^lG1d)odnT4jCveojb2Vh#-2uGS;Iu7UK#(`s{@i3pSK#?iq zL>~6q)0~m1lWUyaC-Rd1jO+;FME$BviKD49PueSH-7#_u*}gq2p$CGQJngu4%q<*8NUQKk%-0j9`qzE<$bPW5dzyY^F0HWUZZdrsk|U7{MR{QRwybCt7ZgK z!e$aXxwx-?ircwlOP&&Ld#PBylHF^nItUIIJjohSxo<@GDLS0{E6SCkbkgrgxM7;5 zsc-H^b8@Nr4X1$5;X}nUf3_bm$gF^*7|&J#bYI^nrmZ>@X*QNbK|hk#o1NXPBiaR{Lx z$MFUXe|)q;Y9?@+;L<;4HeMD@)88RkTZ~fD=p0|GSuN zJIQGkA6lm8qyxwp()_vd0HP{yUiW8I?-f>Cor5Qee|al1g>|7U{X~~ws5{z?1*c?}> zG*R3wUy+zWs>;E5#a#2sfs_p(Y(?%w!l}aDy9}jBI=NY3SYx3v$B>t*OyP@@{i$Fv zkDes#IF!hEf6R~-?}KyB6E)Fu%Qz1Kvy8Is?#WVR_4xz@_8H&G(I6+R5Bk1AwIf2| ztcv>BAy2niu7Djmc9m+xCBa~^QMc~?oJTq*)KagW=FZ9_wz4PCmN4=-NZx};g> zJlE2`yydt|Ek}%N2w8*K^wa5W%FS{~7Az{j@3?F|fAH+xza2!I!Ze+RVgSEs*#*tQ zT^}?hitfy638CHZuQ?_0C;xR`1@SfuWVef1Y#DfDi5+egBnM`bK9Yi{X=1URA^+@E zN=hLu-mP&(O=K%rV7VkRIu1#@9thN~Qcb5Ht=J_W5t_Ca$&OXA14X|+SohSZdvS59$h+a3Oid~Qg^3;X{u_t!yj1zp20io3fz!7UKn z-2w!6cXxLQ?hptr!QFzpI|O%kw?PIu!}FZ)eCMlr@2$H3-Kwdf*WRm_^zOZ3SikAs z(nNRdMJDm67PkoYs+sJROA>Kq+loSxeLJ#A5P5s`y<#hs&1K?0|OU1Dj2kO;idN-ZP<|{ClH}xc+YU!t{Ls~)2 zH{Xi5$_|hY>dbjF#>HqCuu9zLYuKkF@wzS9Mp*g>ok)OcXKU4=oP#dy9Y~m8{?w^g z1}lg$taR!)y@! z6o2PO+{J(eau}k*w>4TWqIQ zZ$hxF$z;%dfM2BkG?BnHi3idbM3C@(k7)}M?W3?v-QT2F-+FeGASYnw^8R_)fvIoT0^w#yjchmzJ||NbJBj$E59Ti8GmB*mCW-_HRO zid2XLzwkD_oJViayO@cRdhe`i&B&e<9naHOAN1?LYs&s!m2%#2qqDLe9PnpQGZimU zcVglKhSZ4zkLOR>Cv=bChm_msKqgucn)g9d9CVnzx(U^>_5Pn5EKvLR7X7GzOmkkU zC26)cwMtd-T<(w00cNIGs>g|OV_Cp$l;sUqq-??aYLL&9Z3i^})$TpmwBCiNO)V5Y z9s&x`r&$T%xFazFX-3>bwjj@>^VaKh2Itl-#ve}z6tXQ2`!%2tg?{w>4nlW!%)l&wp+o@HaGL(06INj`&3 zfK;`#wJ4ib#lvQ0-SJ_{V0F;-#3lMn2-P0CDru@Np0d3{LwDRQCogr36x1EovDE+% zbg}M!26r=K6N@|7v@F`wd7Dgr+xMm8v;^IreqJ-OGB?7PM`Mma(d2Gs>Y+kW#eF-h0;7-W-0OH!r-=&fq5}}sSc!D+CJCzYfqQgC;r|Y(L&i97wU>rAD*M( zn0MpjF9lwkT`k+UR|kU)xN2TE1q``s3!}wt9j|kpC1>yF;b*6FI-vd8|5}o6*{KJ# z5PrPf=d6>?t$o8?h&~;Zc&uk;$=2Z^dL*eBf;fdD7TVcPlNucjoFbqkOcs@CXE_k>nO$R5(3`2z?l@ zGkI-Z`Rwtx`@DGzbZPr}1kkFN7BOuWeOLK1I0=3!OOmVObBzjEhPb@A5otl)n%nDb zDVcNexYWGYyn`!9G;Y_an>u;u-7|Jj&z#1&I?Pw;uQ&pUsz zYR{bhdon6gpMz=OsdRODcz1TTC)*n54mvxLmUEt&v*B}{v6cI#uyv2J749RjEEXX- zzZV_czHnQ`boT%_eZy^U*Z>&DA7o!Rq_JppAU>TK2Rs?q?ahwvuIKdd`%XD5oiWv* z#+`jb6{+?__~$?MWA(C&PYCF4QG)BEOj8OGe><8zqyIny`sj;+@-n*b;Q8#{V6wX!WxSaMm#g9dNOKhWVFCDZ;Gbp5Z|AMMPIznJ zz=^xJ`vll^{?N!lT;WxA!>Gi}_LyUjS6bCy3oV+H%Vb~aX4(7LI(}41u=4OVxih?S ze7~D4eCu9@OfRnXLcf#lkZ~hbjLSJ(cScx@M#XxFoXD)|9N}SGC;6w#-}MN2q#E#a zSUj1mz?_z&zezL|$1=3qkUnfu*D01A(6;I;P*A0C8t~7}p!%1=8eb8r!O4E&)Pi~Y z-TRF&jeKIt(a(_E1Hk>_DeA?zKGoZaYKfo!DJUdh^+&`Vs;+dfXJ)h@>V?u zR7H=yKGnRp=ZXc;wR-te_k|VA)vBr6?`QJE!~4nT5ATK+fkDDR&1qy@_IvQ{BNDWc zZ5$QFF}DB&Ig*wl2-Uc3{qEnzz?{3bXRChPe^&u=`>^y^>Y4o&H(-`G=6x-janYdX zf^)k-3?C8%6OMyqK_6Geq<^r+69l9%T%yThb}l}a@rRA{;63W_C7}5t0|@2211ul(H~?oT&b_&T}>Yl_)nR?c(v1^5CyxYq^zZcPIo?AwSRR{-{_*A853 z8yBA2HSNuc)gF5uNdE2q%7y_2TxN8-_H7ghH zYGbadVMwgyZk>&bIZF+Rc7|@Q-HTJ}<_!l2l$8Yl0JP^_BOMGw2F>b%1=@)>zx-gr zlEqfsnZ?obGbV7yd%Z*8-EdX+_4MH;y#3_QGho@jlee-2cg~wvekuNCqpCT4+GEZ$>#iU0&Z^kmO@JD1Cbm5sB6Ep)>uEM0GOMS)YR(^XzabX^j;Ns8Qtk@0sWCEr5ps+v1aJCl3%shUgYXtApSwC;N(X=?K6Ayzq8=vu@I#4q!vi zWL_$NuE56n*1L0CozR9aU{2%l%x!f~@neV7;N9dcWvjfPvCD-r!yt|^;F6Uz zcKqVuens*9fktSwfj@VRNyvP@y`Q?ziM#sGSU9EJC5pw&M(C;ZYQbeaCksy7=H&YK z$tXn|b${)K)47a=+{H?n$yNHZ(|i_%k4X+bgwegp#nZ9gZC5Kt+KX%Ax~)BuDC%l#W!vV( zoHB}CXk@Y&$H~WmIBmrS_GtqP_2JUk-A5$`U8>Y58fww^sa9HcYwZnG_8M-<-^^4j z_59O7-(wzYaL1#s8aL21_RPlB(oz*WO#*T#5Y-?8l>2YzYWhGY1otRg7eq~(<$k9d zxaemx*UZ(7T_vR(90{zk=;fqE9xW)Dk1Uih(trSjib@N_0+lniT6z8&AcakZyHQ?u z?Z92Jb$$I6;m!J0lINzY+2WDJO*p=0)X_!)x!!odJL9gGhN;9#i;qH#{i+~gxpsI* zStqlavFjS;kyy2+d#tKHm z%jsUqA0Cr5r|L%9{#r&?AA*)xg4dyrYyNIT&wEvof8~O680D49y~+7~@xg0u|ND=I z+Fmoc&jaTmZd|qiL*U=v z^<$ZBh9n+FkdUC0a{C@8*&NRJF0^X*2KTO4b9KZ=1 zct|(+XlD$(R$JER56Fm^Mj2c32K)lacr((WBo9h%OyOG_vLJFHRgKeu1inygFL(3{ zTQ|dsKvcocD=!u7RtA>u#)1Xu$aW}+nFYi%1ed>UG4A;8N&c-pws5P(uDF|Z%S>F& z_=tteUJ~#+m+HO!i+Da3I6OvF!B+dh0ZP;Nev|dyEVtQgRKDseBMRtg?X~Ilt@;Ga zXWgyISn!gJAjYm)K8U~l_FvR96S-Jqb84Z!qs<%pO4PGm_HVpG-RpFQ4vVYCMq@!q zmKs9t2vbq$5Ba~wg6eA=o?Naot>^RsEXMxB03BO>oddnC)FuX&s`U8j?81&nu<|zg z1U3&AW5F(_Avm6DC1WO-xeJQJN813}@Qjdusg;wdX$lj=;0(9*%un6rc4NI8ax|By zP>>R{g%8*5=vEpxZjrzzEN-T-XL!44$fI%1w3e+SH_i&GdH+#zT0QDb>PwT`uW<-p z;0-#57@VMs<<_qd{~Dm`ZIE%EmjWJ>TH>k4qReS|;z~;}3eSH!gTRGRfR1RUAn8lo z-tHB(Q|_C2n2hO$aXcL2C#T?Y%--^^kMLe|4z;@H9;7`8sMFIMUR5${tr!Fj_;s-C zDyM6vB_M_EAjq>^F7YHHlMCsq#eD<#L_B|UB9>}7leKjYyV{#=!M!`nQK~h+uO9ZO z@M~C#25|sMrNtv`m})#v;q{-iftduc=fD zefLj7GK^_xljP;Aq$bF79E7n;Tm1Q6k(rcGGHi>dzBdi3yFnJbuvxf?FwQ-PH-K3P zwB59H;@|uTgCA(Eeoe(r3Wh01M%Gu1{8!sEtoJ)mz%w2F(ik!VI6?`fM+K#q{Y@}JKhc(1EPlsY%yy)Y9yW#cY=}}?*&Q6%IT{t+Uc{X z65QlL4;aO+=?)~?G_NXxQwA5v zu%#%_3vz95#OaeFy#{^o)%f`xjqAw|YPuml=D4xU)+!x6Ku8qG?cK9&7I_1fC4BTU z2iHs!2hRMp8HFX#ztUcRw_bp^Xv7rQigA^C(N!ov+;}=L?6<& z=^QLLG!7jZ`V8(hG%k}A^$QUbHFN}csZ3@FA)2MLzF)lzf+Kj3Fc@e@-|7wm-zJ8q zX` zyfYstr0S-8WZ1wjQ=(>GaA}sJU^kh)@**NPs@D|WTiTfPRs{3p3VtClRot8Y31dH0 zNfX!`TC+g^bkKhKs>dV>hVruqOkuY+i0j3=Tsss@6>*(pa!mw&9VZQ@54_iTq;I?Q zFBzZbzo04%vFkci<=3Z2=blK~pOsXAnpB(_+-Y0uzbyvf-Cmd9mwonWF=wZAQUi!mpzv zS?|F(1t~(=Q%qsmDAW7867_>zMZPEmk_}Kdg>u?5=|g)wK2l022tp>J5FqS_?dbu5 z=wIMkX3?7iZ89W!USP_aBv1l>$Ytp(h$zM}rArzs1w~SDhK7-49qP6jlc}O*tD%vT zO;fP}o#8rgdV}xl&SQ*5T80n9p6{fQ(!m~yD+yebFm<0eMS2WHdV*Ot^W*N3pB8L4L8#(kMS|pMp6I%xp3Rg9EX0u%PCDoV%(0uVY=McGH*6ML8jL6`j~x{f zcrq*nl=QX*sr1AjFKbT(?obCf=n0McBQ52ZYgmccGnDcO#e+L3Fe8y&LKY-bXxH>7 zUO1mnGy=w~#AXqlqrY52MiRH;KyqlvU+XE`;`jGXMWT4*uz}*JDA*7Pt&oP1+=_R3 z)qLw7tC&yX%Z3KkVVD@*N#Q4TCFb&s z6YgI0d1w)YBWwJ6^5ui(T?pvPmKg*MdYqN0C_j>SrYRf1_}F^MG|A3jQlak{B}fM* zJjXQWIzsF~xPT1Gh$#5$Un(ZVZ3+sF805e~${l6WOl4yF$xhr+)nkZpQIH=5wtLUj#Q_GNDZS)H>4yW{V{ zGhm40!IVrxS`l@l^j`vnN&JwLVs&C^3|<;>tThw5!T5Sf2O}-Kg354h;V65N8C3@U zF)|TOQ1X!Ffk6s~*JJaccE#a3!Y%ZIvEGGR7^b)xDufYbU@DZ_S!3#kFij#>1)pW~MCmh$G&gV$CD9g58o~NLC@wrK z0>${0ki_37^t!x`#roW1NOA(%|JO2xe$dgVLl>R+4+@eXM0#EhxS3fKg+GXA*)@K^ z_@g=6SS#2a-3b2jyELW&(iZ}>wU)^k+)28S|a+0h~D1 zG1pQmJ+ATBjwRtHcyXxo9ye;$FV;g2MULatO~T?&5oZVqB6+a~4~5*Te=f*4enm84 zVFkk7v4(WsSmZV0>x^OP-fF%0Nca7+!N@T@4COJl#erN zqIeVgDyR$tWef&(7~W6FQ0)YS6WgB(Zmmw|e#KFK7F3T!kp_xvC6It2L*>;PCmNFA zL%Y&^3kd8>`IDGz_xe^^kH!#nW}V{$Jrpa14!W6pGfY<`poi+?6 zP_dlFw>FFqClV&K&~UGZ2D%s8dtOKg0v#EpI0>HJmNg``_{k=j2rK~K9J$LPk5(b< zv+hn2L^g${Z_CPYeej*E0NY%XCthS7%lsyjFJ4%@R2~BH2yX-o3`M&CijoJ6Ax{|m zKz;8@g#TlrY$QS1B1#C^qv$^InxC~80{utxugt@N$wyk@kk=+^o*q<6`O;DIBvbJ- zDE}f5SSgc5|J3)7EHJ*afM2ly($u&G{++~|&~<${NQwOva&w^U%Zfr}XgiTDO=M6i z_MR5x4J1NHG|aFn9>sW{!_FW4;vnE|$xBKYAwW2y&2+x= z%Mcqnz+un)t4$W?9_a)PNnoiK6(WMM7b*Sln_v=T0SRbJI$ok5jS(!ceP}oCJkI;w zbyU(=eWz2DNQref!%nfRj^e~YMYy36Vu43rHMkOWD6s%(#pPnE$oMLioP(_DRoGB> z!DwY?WoTR})mlD|A_mb2q64XU+NfqBSJB@k^q#2_@Ep@G6ktWlu(M2pUj;EBpW<77 zdqh;%JM(tO4}jGMUPBn5_CUjZommV#>29Jx{VQYfs0C`uI)E`~Dbh*a7$;N`UR1un5om><_&%nG#*qt&`QejfZp zVjsCOs5FJXwI`z-2K|fj-ggDkWn?MNQwp~98hCBaf5t-N*+98uyln|Q&jCrtxXR@f z&>ua412AeyVc-yCEPFOwMiHgR^iWPOkus%!P@>3L^JUuA$o5*^ENz@C{|Id~8Hp~0 zSK@L8l_9kb7kC3ja2703*z4}piGF&!Jcd}y`d#axbCnm;_BXzeXjInapNbVDtV z`u=cccwaTe4*c%uEz?AZq!=5$C1ET~5VsE&MJz?vEb0Uro*sL%ue@Wcj2?k);Nw<& zfj-;#+ZpZ)LXNbo`KKmfgTLqp7fsrQ6ug}@d|SWxzmEG3W(gJR9FYp{0G<)s{oZ$L zoPb1_N01Mr;2!a+1ySR9Dv(R|RBUXlON3OT(9l-)nMK=Vc$TBIFqBL(A$f`G0YnB4 zD~J?CDN3hM?S+3J30438xwF#Pe>G+(>>VGnu1mJ3 z?l25r_D0;U?OGfM$--%f5><1X&3Ar^uw^=mS{JQ5nV$ObR{Tmp3g(NmZB?|`@m+8K zEaRh8JCxyowvmNv?hkSLuA)o>uJlhj1bE9x#N1L+v@76i?I9o&0C~^`D&adBu5*HD zgx9v}gQQN6VVPSZ)vpM+h}Al9u#o*Xhsrm)+tY|g5Ie5JiHab?V9>Ew!eK{!o8wY9 za%w*H69owQ{b>hs%b*97xrQq)u$V0Riy?gaFfq+<$po(ESR#zvDTt^RmZP}j{om(l zAi$vY;bfhf7xJTRkBS!-Hyi34Y7~~7N5rTxfiRE8K|s{Hi3*fx4;EX}4|&(&yVapYGHG_c7g9^(ZR3;ZH6A%fF?HL_DeYRIRyRAk47x zz*wr*d*M)t6&qBMgsgh0z`baFI&IblOSS|t3K|HX5PrZ02`l$dAfU$BdVxRP(Z2dvub}jY1gFdy(jvg68_NU zr%utW4pY-<@2SmfPJGJ~sBWLK`~(6PWYIpMfI*{AhZMx0CXu5-ZY?E$L~fmmTzJla zIE2Z)c#r|hn@=YjpH8$;K#Hit)WU^mK+4%ODDeHs&yWxP6LS0DXW%hSYqCM~t=FJ>w-8i? zMy>2A69_0c;*9EM29KI8QyY;LWxO+6>eVa&F$xcMWMqeij6p}UWqMz)=D~b?bT7}Y z_3}Rp>{+V^3UPW&w-%}}0^CjGorIUFFeY^0NwTzMmz2%fxSQtvOF`o^E6ClHV(>@T z!O^<)v``)V!j0`G!jD{xu)v4ydFEyV+E}k&$IBn`xE)c6= zVQ{Ygn*sA>261UBSY4Jy;*&oh1>6oRkIf4vomI=ps4#p1F((w1yiK4|{0ixRPzd#0 zqeEUr)?fd=gG>yowNT^!_pnoyU*LFAS~cJD(%7rI%%w~lbk%=|h2PfSvfpDq2iWaL zP*Rg&C2Uz&p4vYiUxMDjglB}w6WcYehV=!8>H~n@4E-~YE(sDSK$izP%c4e7=%M$v zlqbY;<`#}r0N#e0dQz(OqM>BbN3ia@Gh`35=ricn3i16G^`%O11dYY*%{OW!*GZ-Y zMr)?XJvW{b1~ipKiXFtPeP6imZ`3BencyJox9rAcTiQT?|7q~f`Q|2eV~h#!-e(gR(4GGi8r{*%@W#_ zksry`eL@(g<00y@QLxV4sz29oGhW^3*hth?PS_iDUr>gWo%s`hMFW}9B)yvS;!ip2 zux9IJzQCu&)k2T8;>U0nz}=qS>&dx)v$y+uyPRNFx`F;8?qoFJ06Hyzg(auEax6Mc z@42s9fpg*D;EI%A?@>xfS0i_GcQ3P90(kG=@G|*!e^v6h@1M3=-FlqsF*!)h1Z4vwraJ)jqGW8Rr-pzZ@Il0=_eG`7CSpY#`c z>;hg9-7dC(D+iuW(>H*7IDK#5xW6?e8>sKE6;>XDcm7+1N6&AWTxTZ_r_HG0#$np4 zPl9$CU+L^o95rsA)>jJyYKL(g9pX{@{9bcNP>1{kg*=YpB;votlM&GUZO1;#G9cw= z2DmppJNpJ?-MRC3R#?Q7GBp%+E!|}X!~?jyKCFGb`L7d(o~|w~x7;giyuVAG3VB<_ z>!3`Y)J!Uo^S?s+q)rjg7yK|EVJiT>3KXd`tSej3;MKSX4%Dqgk z-T}B=T*Il(Vi%40KjmwlCRuI-ytl97{o5S;Gp_bJNzU!W3-4|cdpAx`vzhKD0WbX; z|KSs^j93=m0-mhbZ&1vf>}!lk{Cgd^&X`a!6wbamh*f(MgZPA#)k}XL zf565R3GMpFq5t~#1RIyZ_;@J3w}acBt)min^1gT0?mBKEVNZ*3Znj!m5*P= z>eMa(bA9aL%|-X+s;-@b$w|P&YsnouiCJSaFLD6C5BnvJ$@vX_PrTQ?Q4K7Hm+PH3 zaAS#R?5^S4+CJ$q`$q=!Sz$GRMTfE4MOr8zU&ieGTpv+09Dhy z{~29&4Kl0N)!)~J9QbJV`a$^ij$yh=oV&rlJeT$13N-zg27D>DawHk$$8cCY98NA= z;%&|fet1f}6ioDLXp-W!__?;0u{Q@RfY@^2W`*w6^1*vu|xdcSK@`}iNG&tZ@uTfz8-(Za{u@!j##2( z+vd+FROk0_-;esnDk17?6GP#$P2VNdlLqxO4Y!1AHkrMTrvAwoV%h@ir}Lr6!d&|X zYKdejQ^m_{<}>KUwhq)me0+y;I3&MjZ)XgM;tDBm)p0=0y(*slgcO!4-dH%#l7}*O zz{yG%-YcTBaQQmXgAO$4XFd$zc5m)hI~pk99J^s5h#tMXiYq=W9L0>+-wG=71ql6* z>nC8>l=F9j&M<(3fl-2ff>w$3aB#M9u{1LSt)XDxY-a1i@*m+pD=9F4%AxU-2z{(* zp;y6IXaM_v-e`%%`r_C058%H{fgyGn^*1FB4$Q&9+jbUdZ|23TLM1=e>29~Pe=6gU zjo>@LE?Kp33@_k7(YWGBT}k)LBLTfzOQ$%D#}wC5gCvT%7iUVa+-2)dtVDkaCXA;o z4#TVbs#5`<#O6~zD_Aal8V!7jrc+QC<6prLXAeJr&AnK2XLY?kc{3rX4glSOr zNa3LDm7JS5+|kh6^~9Ie?!iUV-g>K;zGFWEaKx3+I=m2MMjnA9)oqG}EkCw5t>9Ur`urW|q|c-z*ZiZVm?i}A0(%FOvR@iDNRX$SRgm8sKE0kVf&k@>2C!A%Tn-tKXw}$c)Fr`aVez$>ShS<$qX013GO@^??QqtO*Pp4DG*Dz{JSb zM9k92%Kj5l@y*tY*X4@)d4;?DVff@v^J_IXdKBrr%tTdE6)#ncY9GszczrU5# zd_28BzXkZc#)BApKj7QlQg^`n^HPmLSHOFKL6^YCnZf(p*86M!QEtG~T6}K6%gcoK z)5`_$Na+0?DD-jHe%1AMy_aSn7yz8B`FOou(0&IlZTUaHw!ghzkZ$<_j~omHKi<~j z4Z2?6$EUXza9Q*N9;4l^Us(d)cUBy>gt|Mu-p@;}a=X3X&n*h~pFP0+PqtxLV}z~= zw%uSlM!^UNUq{=KXgP23i?D?0$wXWVivrgnyb&tMgie4-x*)#xo4Z zR^TDwjIUV6oN5;P5D)5U*0Af881E5!_FdqV7r({GB)+o?vlssngf%(Wf2E)6S^vK@ z9msIF5~2y=hLEZDU<#ZdS3G~4y}f=Ne|e@h-J_<)=jeu-WD&WOn|a0fY}N?hG0eOo zaCAdV*0j9-zXahso0(Svj&7LA8j;Ut1~26Q7GOBK!6zMr?+9mJ|Jy7*{$B$0q=U$v z&de(gNB93~{#pfjg`T_;zT=yDMd9d%{6CtO$~c_R;%T^fZ5?@9ULx(c5TPKUqXX>Z z0NRp;McCI%tZXZ4K#BLumGtyq)S7v!iJCl4T#>Tj?!@3zk9D)&1L@i4S zL_5>`M8?LXF!TBu1ssAgQ8_J3dPF<3{5rtmR}L=%)Mk(W*l*}r$pzpEcp;)E%F~2IdTuMHJFes^P!nI^20bAXCiR4XGPhyEu|2Vt@5dv zYRX(Jt-ZuzWg4_CH4u?)^39kys>1#@&9vZX zFNxl1TN;e(ocd@li(=|nnjps7=BF}oG=#bToteSWUKLf*+3eNU!lSsNVz9F-s;X*i zO8xuy-=g~Js;rKVmCb(-t_S>|@_&?=0r}Cf$JR6mLM6c6}6AdOUHO)uJ?LURS4{pJJ1u=6+{pBz$y-M>4x{t5JsVekWn;rx?Oxl=x`x zOT&1(iToTYvDvP|YTSCp8Z_eLA@&7yP%q(LTqWn+P$Zk;?6)RoWU(^K5;r~cfh zfy*8RkORJc%3tjhm=Pd-pHKbN+}aTz)ZXu)Qx0sBj9U@%WVf4K-#+^i{sEbNoLmH1 z01kadyuli)Y2Wn)6mhZRr&#%EF!T7+xr>nDAdD|W&|}^2+}a)>9Fn}|wjUJ!7shKr z2pmitPXkLEO7XA$$5R_n6c3lQ3ZUW1o`R2_Z-?XqjmqlkF7w?Jxt(2T+ZRS@h0saf zMe1Oixp1`Nh_UaQp!e%oO^$AKrmWgpEQ(uhBPU^ybe1K!@A{-~-?!^J^D6nr-IRRN zA=GpD($9rAh?{KdSV1!jWs5`c^F1(LvvCBSJGYjbxN&5#A9gNWmzX3f9VC)0e!e%3 zBsSs+{gH@+8UZEi6KDa-PC%0bG-xEA1a+2)lt!OzkXAv4Ak~!s6xZjOsZ7wwY47iX z58Q}>e)Nufj#kg%r-1}lkO4nTZsS=Bse;e8RU+j#K0oPAp!?^g_OlT%3VQ64BTevS z5E2z`gN2qPs@>>Eq(n)-42nXBWqeE+4isZQ?@dOBcB#2yTiEFaYwh0*u;A#SY%vi^P-~&#BgToxjeir) zK^I!a{}CwFFgGj`YGg41E;y~gG9q>iIT^U#%dmPv(@V2@LQQU4$DROQV^u;L)-yDv z1p8W^or5Dv$`?X@-QoUX>^SJoYZ3A5JSNxE-#i^r_;S1R;{IrR>caIJ&1nTcB&ff6 z4q9B^+#&^rc}IZ;{YPfD6A^bT--fi}Ffu>XK8pQ;g4A4cfQgWo#&eGn8W|9R=IkhY zlfF-i4^sA8-{YkLj`aeGr?-3KvyqV>Yx3>|Viw}@ctNo=$9xBkC-F`}qxQ)gqR21?F>&nC>RN%!XRHVctRG`Hq zFo;Qwq`FZ;akOU;I0-jYQm@!hy9=gHW~g1@dTS)HQ+44f+PE2L9X}W%;mh@bIPRso_%~fx zpO4A)*rl$!R91y)%$shJ*T853U)mKq ztgm|{sUz5b6a%Nb=s&~wehvx)IEL@kW5HENiSl$_VKV@py8-gE-B8o>*#%@Za2m}5 z?5iA?w7vNvIi#SdH2b!R`TQ?%|MXcrwyJx9>t6_YsBdT=+vvG3c=5;7sgs|I7aa1)?vmU9g=79 z+8cY!qkhlUrM8$IZR@3NjanQbLq&^cggwUlreNB-B=%iEpPGDcwOdLo%k-~*&A)Gc zBxH_cd#guFMFM^#dHg#)--2(CV8$>k128~RK`(DUnOBZ?h9I>xGS{0?N;|TP#7tet zwO541^#|HFH%Kkw6m<;)_nT*#D)BQe#Ee8YHSK;~H>C{g-PI#4&-1ONU~>eDJpvI# zw0*kM$TocV^vs|5;8^x%lD)~OG?UZiGllE9FMkG95c8(?Yy6_y4%rCm!);}JFkg)*YP>|$ZsLySNCsVvd?Oz$DyJO!tm2w0(64X}66(r@~ zU~pb0DNJ)!$_YSL6z^jv?8zL#n6-)C(*<#v37q1cvP@reTPz2fg8p@RpE{m8*S8d-?($AbsKuPECXq_gN_`|Ey>|V!HGqT zn=&(f$4K{3X`kooL*PbXUquw}lwh3#J6)?>)cn)lmw%4euX>-b1#qSM2RTIos)Z9V z#X)gJ0gA2!wPn!+hqutFN=LCAGy^i1g%ent^7u*l6^tPd6kH*>m~zB&UeuD#TKD18 zRz1T8FQSgJ=+vt60jY20bk>URz$u39h4 zFzck^`m+&pel&Ss`Vep&)Eb%b9a-HZ9w4WLgRPqoS!D}qtYJ@A#}i$fzT7{r<~ca! zxf9U}as|@{A&1^5g?W!z6gYJn2@diYP9<4H7Awr76z>FcpK>dn&q*J{gu?7C--%}> zi786Tw=_;MFxuPk$JTA*6fGp<7HV=REkgDP%wtFB5Kf0DWES+k6m8h&RmzKpxQWs< z2F*mSu6n}v59C#zoY$1T640K3vzVuQt0v-ZlT^?c6;G!=Ls$DLbS?^~JIay?Hj~f= zA*ZAfIHEey^wB=&oaA>zz?_AOE(v>;OMooq+mN{yaEj%~5xCI^54VUIvx(X}^51bh zwDgGn;bm^fBe~{Z7;tWj%qbhob#QVR5=Wz0aM~HVr;!Eitt$Hq_YZ%J+n5#>GG~pd z553GkCw6Kk%72C9{)e{vkRXEtR1LEPc*3@1uY3}iS_vxa<$drLLsZOW_zTkG0j2_h z10zAXYo7o2z)`Fi3D7Soa^Pvj9F*Qm4?{a?UEov89=nR+@KVM((<;*qb5n84E5cHH zN803C_<5d^`F8b$wG4U)8cT#K0ZxPz}m!x4boxn8L&5w8hI< z8=)9lX?K~GMzY9e*SaGTV@JY$onPUP4T=+o*Qv(2`7TB`yhfyz-01`d(O$|OEiFa7 z$$*gw7EM9Pw8TJm%Oa)wnUlBo=@0SsNE?AZtB7dK5|X7;SIX*#k)~~_+AmWU&wsm0 z!*NL|P+g;dWM$#M*-u+0Q)AipDBVUF?FM)mg+dKVg5Wqn`u=}!9bxqpRF~#e7?Uw@N z1qSuXqDjiuZdz~9okCF{NLv-sTca5Chg)$@iep<~gX5g|dgu3e;cNsb*o6}wMiwYA zek@XIAPO&1?$#5hJj3Y{e#0fKS1xIZOmjijJwsmrcWS;Wbx3HhzcEg0c}2^QZu#yh zLM%Z3Wn|ZXH?pmRHiowvGtidP5<$Fe+Mt)8%QpBvbiEgbfEp z4z7oXqCmBte_`TT=t@fqneXWjE$scB7)fnxs@0hIu`7t`2kGwd_&fy;`ffzfLrP!x zOMD|eg_wo!eg^n4UfSPyjwt?3$@TtQ7X*Q?o{P8_@OQpWH?QK^BX{UarG-4AIn$a6 zxM4qr-RfTwit`S@8|*}bXG(Q^6&~SbL<-{=Ld*I+!3=k^waJ;#m-h(4@C)lBa(UtQ ziUfL(7AY@eAoHbGG0oBTIzz4I&o&xw5*eWKO!&uG0i{V%0|IEK0$(NRoWlv7s-&1% zP4N_OcA=^e9IK?XvHuWONtvky+6er+GQMPE{-QlI(up9*CFop3ahozERgGWFvo{)V zRlSfQ!Z|1T{U}yu+|&BcN92#;1yHCJ5@vjRk;(5gk{i1&-Uiav1a7)CV8n8A7J#bi z5l8z00Y;&cJj!p@ezQreLD~r@0&Yr+96jGoTSOD!nn)H9j7XaH0D82}g^Pu^?deh% zEn@Myh&0hU|?Mp1weB*3E@vm2s@&dkL)IWYh*f@l05_$rXOsY76km~VgQIJDCx1)!3 z!a8BFE`Q~4gEw-LPyb)2EfOzR#q9MxIsxH0|D!E#MB^=#&t6p7iWI#aYyy)F0o)^? zZWCOL2qX~ukzFvOoxP@vU139yI;gM$up{6Jl*#kEO4~3K{kuBcs!Yhl?xv9YU?Yho z&=Oy~ArFmim;eY&8XIN7`;bQw{lO(LGVCKJVSz-6U4oG&psgEF<^3qd{Hzn?31h$; z*0=*aF)Wa|a#W%AM|7LHV_Vp&kVnwHE|a;lTEOpmh`h$_xja;|)u0YRj=yfvByMd6 zdKoSf(cmcV>h8i!Kq~T4;QC|G;BuKy;-U>0NYt=&%E(esfd`r0Po-;GSLk%dD;0VPtunHQuDBQIEq6}y7-P*AqB*^O5+ z)mIa$G$6w1&i^W(e3i1*A$s7Wz-$9|CJPM*s8**$eix2IPBIOllQ(Bg3|dbwHvNU6 zH56Mm0u4o&{>xSV^+<->Def|YaeGL02O{_x+p7=q&U5#C4V`8kh5znn%-T@nIz;fo z>aA_0!^E#L7wd`ONJ=Xy(`L@%9vn1r<$3h4=EdUrXCqWtE=nWhcJdtPeUyf$jd%^h z$VrF6B`pM0RVwD5>DyYun#BxRe<|6&BEo%uKa1VmhjB-*A=VtUr*!fnovJ+dC+~s z)W{$@aq{|_*9$DLCScQ%z|xsLQD96kW3ced!GcDRYB44Nk3#VtEvr0SRJnY#7t)b7 z49MgFl(AfvQ#`ys$~0u>{&dyL3&>0q_v352@=b}J*k|O`Cn^I?e6+FIEyZy4sw+QA z9=>ix0B`8O^nVZ3Fy`%XrT-ANwLc$=ivc>O=KDL`ygiWe_1Hs?AuStjHV@Xh4OzUr zDQKAow%_D%Wx~sw!WwHPheAIeFnnK%rSWa{RP%~>9PIBUcI`s2%k2;V zV}Hn9+-4$SBzcEYn1zvY4Y}*i4|EGLOlQs)3QaYoK-`HK?vzqjGW2YSkg-so<=m}w zLJob&_5}Af7PJO^AL{2ML3{YPgQimB+i4h1eGF`CiBW^kOYx2S(>-}vIIe~9$mNa^ zK2BM&b*WoH$hGOCYllGte?JO`ulGzXp{&1xi<>z3m2w^OgpDM6?Q zeucje$@-lvKkI<-rQp#UlqlBG@$;0Y7Mi9g6wW&QVglC4RG=JB?U{lXjxwYXse>ZA zzZ?HO`9e7}{ZEh#1LKQ6l~bvi0ZZ&!(%A*k1!5vSxF^wR zX)?SWMdK2?PiobMU%i}R@3hrhPp;-mc1%G5s+Xf1mx5D$Ok#bjY`HN`lkUFVy=%?d zE(A`yVFNf@QbzPIR5ZPl(i*dTay~x~VG-~PxOMu?N$}?zrvIT@fZF%v^&+VRr!Y~6|c7lSsACeEZ?32&wQ}qvf2z!cWxjqiMC5*aM^k)u>8!sS=rGi z8$zn%1EFvdDcC=i>nTEFT`qz{pDL-m$`x@Kw7`;o&(UfIN&F*3_oX9_*Gg~O zI(Xi!;SZ)YtpJO1Cd-dv&0}&y0Y$9$Hy}6MDU9Mg4r180S4_{_)n@b`CfwQWF&Wf) zP;rMNR7MSFf0JB1I77paLN;Psla?4=|$om5d?o%&?KuLF9N(K;@w)fiR0i zW<&Yxr3^BS`Q4?@Cmt>N;| z*__A)x5?+90b)0|Z)|To&L}FVw_8iEazJo6eJT?hFRgv4bm*ygk428<`>2(zN!Pn` z9&31eT)X7dlHb}cj!|`cKtDD)2>>9z^JjAUv+pVg{u(HMUSrMqbq^J=zA?pyT~Q>j zS?g*M&zC_7mWBG(lT=om;!2+qV{1frWxj*t+!W!HRTj0-_Vh38pGP~71+&BD+drxX z8tbXYLAE4VWE)yf3J$y(7s%aHzjD-n)t-o4*}x9(bP~A4X3CRttPHeyX>84o-T_Ic zzx&40*C&N=V#uk}k3S+voC=ECW3I1rl6>-Q!K@J|3qP*yHo^t^1aR=Wd9JZVI&PWA z^Ggwbf41v071FW1dDJIqF~xW2G&Rd+*0z~pE1Dx5%)LeYX74Nf?TXq9cT~Gd1=V_yMYH@vi})_2CAB&>jYYG_r2$MO9a)sw z0NA}XHoHVmAuf!&WuG-sk*$sH&dzaIEA${nDB47^%H#6Xcqz#SoHy{0{MYBVCpv`}}F$8$;EUNs?U>ji>C9GYxWyDlZbJ7HIn4f)k0Qz9MJrtEj62c z5x$PR4_4iZH!>FYk>6<#M+|mcKDRdQ1(d^ky_MYQwU5itMvMJOy7!!T-e@v3O)gc* z-Sy&Y0>)cxF|Us_1fD{opKGHZ-D3qY4H{oJKsJWN?$C)Uy{`?d^F6B^e^bo8F*qSx8nO_91b{&)fwgOVv=`${lMCs!@- z@$q>Ukg>0WN0fRt!GYGoNPa1MzRj|T$1%a!+H)1r-b}aN9rL>dN5gt+u%7)czR zOr)OKwdA=sgY3`|RcAhaF1Vl<_a>>sAM)vRNvpWVWg@D&mAgH>p$6SUXqDesf0}S#O)@^{PH3DjS}Is<*xFV`-&% z`r{ha$Ir}`n}@hbLT!b}C}mFL0&TY}Ix)%2=2PCRK+hc730fExU-{KA%wlI=D$u6c zBr~aM(aL}P*QDIeum@)HzTS9l99N z`<~x~e$|$Ol>5XrSHOOpnPaKFICq3WPCP4&2&I2jinY?z&q)Cngp^YAE0VN%mmmB+ zHtWl)d^7s5Iq+GV*78-j+1f7m;8)ZH&0?MLT<=ccURU>@)35t7GX(LBfiMUtT6;R- z{wNv5rt@Lz4dd-u1hi%+DYG&!t#5E_gR-WDnid_!@};P&r%R76=5XhG+3OmmH=R_C ztZ#0WLn=}-Ou9{-6a-i9>}as$L5XCP*7ALrY+h?#4-_)-E&|ZW|3MKVb7%z8RGb&z z^f$Zt$#M!8mUcovK}b1;%l1i4etnoBIHtwh3tf2pW+_^os0q3=%^Ah@Dix?t94`|> z%1?(1b@&(RkvSAr2Cre*aO3{@yUJEzc}u3? zm~Q@fff!9zr=};bA8&12I47MKNq>2n#y1Bi~;)&l~R{q3K2`&*&SyLR*AfY}kGuD+~35wx3cA=*FFjF}C=3#03 zNfK(*$SVUkq_^PYtwK_n9IrZx4HAL6zsnu4uoWcuIRB+iVM zizl;IG88ITPV!-LE%if;S|`3LMF)1sR8aW6;LHn`C!$vk%&&}S-?XWQ)wxYqR(y$% z^V2FEe1I-f7k{XRws_3xxNM{jsxM{;*cO1(wF|-mwZE6c%RBn?iBz>0cGAOe_cAZo|@D_;DI45#?#OVA{g6W`PT$Q9IPm@C}*1xkLpmtu-#D(@w9xqKgxK+!$ za}$VsEK-(1jL1_MO$?zKkkgUZT}{6V(LY)>41qeIUc1_-$xAu_H6D-~OWim2qXU+o z^9cad7kizp6{rvR4kC7hqH-VQN}q^_BEwY3AYKs6Abk#OIE+!`ij4qFr2w2m8+xw?0;vk2%bNRH(ML^_Y^iSPl|4np_R=eYaDvX8qcD=Unf&WP~)D{1kH>PCEvEF zhSkgDi;LA|xyFf)awx{}9;-*u6sK9_KV*xdja#b?C~QE*O6Jz~z^a&lK1(J1H&}d3 zU(3W2Jmh-^zGKSyri%(>+??hsL(BCH$*&K{Ye{?f5&Qo_=eBZrJndBCA*;on5`KfM z(fJR;)pPKnE(LPP82%5(A)CysZXGE=BJvyb<&;1hdRy9za#uEiq@Z zC_g=R7;+-T>b$(m?pWd5@+>s6D*W5+=`B@Ndv8$=%hLM^X=`_j=|o@Qg@@YTt@?A1 zQg>W(4m~b!w03mYgz)>!)f8+WoRgH_*($cxj`epfg5*c$pOvvalBQViH%b5zj)jxC zx{K2jtjU&>3+!i);El8^IGpdW4TS&4msdy)rDlGbz|Z*SGMzqeMVfn}EAXNvLhu^H znky004vipkg)&UT9f!)v)Ef)H!$jZ1X{C}84V^}M25#HvbdE3$K-h>;_Ol3+E;mm& zE+%`fESGj68y~LIy06{linhh;dp~NL2w?U^mT(Q-6TO?I^%^4fB12?{VzJfOfy3?0 z_CQbT;QrwYh3kFASLE-x(Rh4PkCb(lb`iO`pOxbcuwnos-X*pwpuVtvz+>M?x#|s@ zLp7C8_PK_M!JdkQq@P%~TH7apY%QOWrAReS^$aOV*>XZFxe2m6?kdIOtl4V0?qUw~ zV4j-mbb1;X5x+4poYO)GOCVW=zvcJJ1?OkSFNwv!c@47t(D!;fBZabqBI3H6<6c?l zv~j4!aOu~3B=OC990mD{@1Mt35fO9E%dPeGpgaj^o^5tXY53y(t_0f&r4cpQ`ijGT zd+qNfX!hjE|5xC}v`dUKwwvOo3ECn&x!QIZp6Ezyh|pFX)Er0SD%5m60kO8Hm2hyh za-8goRpiX)r_H zVtN=^*b{K!+;_;7PeS3Kv#tInbPS)klUl?J{028wZsIqNTrAOhBI5!e5Bbo9Qs*e@ z8G^;eJWnb{t9g_Yhqck5sfIsA$Hd1^tk(>NM&J2fs||${z{(_v*X~TXCxIGnn8Ks7 z$UX5vR65+4DBe+CSw265b1HBP!(I0KkJg)t-LL2MJsu_ItfHyF^S)+lbkk9Ln86Qa z_idZCrS!IQd;jji-9y3x>XIsGg8f}Bih(^${%qYXy;%nq-7T=rHMWn!@6_%a>)pOS zIDr+0l?&8Zdwl+MZyXl2K6D!XbVi^fpuzEnaeVBzg^C!8=CJ}3x}*2Fk@ym?%rG)9 zrTV4o9D{kd`F(gygq@f-n0+^;65@J^1=5#=bDiDKH0Lgy4RLTGSbt>#0M=d;zy=Ts zi?2w>mi#;HN9v0s{I4}b87D_qn4{|>sMizNQ{$g=KwasdfO2hq_C4&+m9eL7(tiM^ zv9su}2KQf0?Uw^_^n)0qus*_PY$iO>!kH0OBfxiGxUA^pKzpTM8hhDZ5zlgmJ z|10#ex%g$mWh2@P!o4@Y2>&hP_`87PGUc*)=mn)K>KEldtVAypE#_jnfBp&_euK6DnE|-Cq^&uBPim|`8@$YJp%hCV5b-aiL x0B&Qw=KteH@^bh;FZ+KFFT=sT2>;hjfVvVswxoYL!O{Svv9+0b1$*WL{1+t~D6{|o literal 0 HcmV?d00001 From 1518ad47faf36a97d9816ea8244cd7fb41555d14 Mon Sep 17 00:00:00 2001 From: James Dea <49453187+jimxia7@users.noreply.github.com> Date: Tue, 28 Jul 2026 18:51:51 -0500 Subject: [PATCH 09/22] Adding capabilities to calculate kappa from motions and output --- src/pystrata/motion.py | 51 +++++++-- src/pystrata/output.py | 50 +++++++-- src/pystrata/tools.py | 33 ++++++ tests/WorkFlow.ipynb | 245 ++++++++++++++++++++++------------------- 4 files changed, 243 insertions(+), 136 deletions(-) diff --git a/src/pystrata/motion.py b/src/pystrata/motion.py index bd0689f..a36add3 100644 --- a/src/pystrata/motion.py +++ b/src/pystrata/motion.py @@ -26,12 +26,16 @@ import numpy as np import pyrvt +import pykooh + +from .tools import _compute_fourier_spectrum # Gravity in m/sec² from scipy.constants import g as GRAVITY _trapezoid = np.trapezoid +DEFAULT_KAPPA_FREQS = np.logspace(np.log10(10), np.log10(30), 100) class WaveField(enum.Enum): outcrop = 0 @@ -145,6 +149,7 @@ def times(self): @property def freqs(self): + """Return the frequencies.""" if self._freqs is None: self._calc_fourier_spectrum() @@ -153,6 +158,7 @@ def freqs(self): @property def fourier_amps(self): + """Return the frequencies.""" if self._fourier_amps is None: self._calc_fourier_spectrum() @@ -226,22 +232,43 @@ def calc_osc_accels(self, osc_freqs, osc_damping=0.05, tf=None): ) return resp - def _calc_fourier_spectrum(self, fa_length=None): + def _calc_fourier_spectrum(self, + freqs = None, + fa_length=None, + ko_bandwidth = None): """Compute the Fourier Amplitude Spectrum of the time series.""" - if fa_length is None: - # Use the next power of 2 for the length - n = 1 - while n < self.accels.size: - n <<= 1 - else: - n = fa_length - - self._fourier_amps = np.fft.rfft(self._accels, n) + self._freqs, self._fourier_amps = _compute_fourier_spectrum( + self._accels, + self.time_step, + freqs = freqs, + fa_length= fa_length, + ko_bandwidth= ko_bandwidth + ) - freq_step = 1.0 / (2 * self._time_step * (n / 2)) - self._freqs = freq_step * np.arange(1 + n / 2) + @property + def kappa(self): + + if self._kappa is None: + self._calc_kappa() + + return self._kappa + + def _calc_kappa(self, + freqs_range = DEFAULT_KAPPA_FREQS, + fa_length=None, + ko_bandwidth = None): + + fas = _compute_fourier_spectrum( + self.time_step, + self.accels, + freqs = freqs_range, + fa_length=fa_length, + ko_bandwidth=ko_bandwidth + ) + self._kappa = -np.polyfit(freqs_range, np.log(fas),1)[0]/np.pi + def _calc_sdof_tf(self, osc_freq, damping=0.05): """Compute the transfer function for a single-degree-of-freedom oscillator. diff --git a/src/pystrata/output.py b/src/pystrata/output.py index 01ddc60..f28efa9 100644 --- a/src/pystrata/output.py +++ b/src/pystrata/output.py @@ -353,7 +353,7 @@ def _get_location(self, calc): """Locate location within the profile.""" return self._location(calc.profile) - + class TimeSeriesOutput(LocationBasedOutput): xlabel = "Time (sec)" xscale = "linear" @@ -500,22 +500,54 @@ def __call__(self, calc, name=None): self.ko_bandwidth, ) - self._add_values(fas) + values = self._modify_values(fas) + + self._add_values(values) + + def _modify_values(self, values): + return values class KappaOutput(FourierAmplitudeSpectrumOutput): ylabel = "Kappa" - def __init__(self, freqs, freq_range, location, ko_bandwidth=None): - super().__init__(freqs, location, ko_bandwidth=None) - self._ko_bandwidth = ko_bandwidth + def __init__(self, freqs_range, location, ko_bandwidth=None): + super().__init__(np.array(['Kappa']), location, ko_bandwidth) + self._freqs_range = freqs_range - def __call__(self, calc, name=None): - FourierAmplitudeSpectrumOutput.__call__(self, calc, name) + @property + def freqs(self): + return self._freqs_range + + + def _modify_values(self, values): + + kappa = -np.polyfit(self.freqs,np.log(values),1)[0]/np.pi + kappa = np.array([kappa]) + + return kappa + +class KappaFittedLineOutput(FourierAmplitudeSpectrumOutput): + + ylabel = "Kappa" + + def __init__(self, freqs_range, location, ko_bandwidth=None): + super().__init__(freqs_range, location, ko_bandwidth) + self._freqs_range = freqs_range + + @property + def freqs(self): + return self._freqs_range + + + def _modify_values(self, values): + + coeffs = np.polyfit(self.freqs,np.log(values),1) + slope, intercept = coeffs - kappa = np.polyfit(self.freqs,self._values,1) + Kappa_Fitted_Line = np.exp(slope*self.freqs+intercept) - self._add_values(kappa) + return Kappa_Fitted_Line class ResponseSpectrumOutput(LocationBasedOutput): diff --git a/src/pystrata/tools.py b/src/pystrata/tools.py index a7bb6c2..ec45dac 100644 --- a/src/pystrata/tools.py +++ b/src/pystrata/tools.py @@ -28,6 +28,7 @@ import numpy.typing as npt import pandas as pd import scipy.constants as C +import pykooh from . import motion, propagation, site @@ -533,3 +534,35 @@ def calc_mean_eff_stress( stress_mean = stress_vert_eff * (1 + 2 * k0) / 3 return stress_mean + +def _compute_fourier_spectrum(time_step, + accels, + freqs = None, + fa_length=None, + ko_bandwidth = None): + """Compute the Fourier Amplitude Spectrum of the time series.""" + + if fa_length is None: + # Use the next power of 2 for the length + n = 1 + while n < accels.size: + n <<= 1 + else: + n = fa_length + + fft_freqs = np.fft.rfftfreq(n, d = time_step) + + if freqs is None: + freqs = fft_freqs + + if ko_bandwidth is None: + FAS = np.interp(freqs, + fft_freqs, + np.fft.rfft(accels, n)) + else: + FAS = pykooh.smooth(freqs, + fft_freqs, + np.fft.rfft(accels, n), + ko_bandwidth) + + return freqs, FAS \ No newline at end of file diff --git a/tests/WorkFlow.ipynb b/tests/WorkFlow.ipynb index c0ac917..6695718 100644 --- a/tests/WorkFlow.ipynb +++ b/tests/WorkFlow.ipynb @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 13, "id": "ed449b23", "metadata": {}, "outputs": [ @@ -20,7 +20,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Using pystrata from: C:\\Users\\jimxi\\GitHub\\pystrata\\src\\pystrata\\__init__.py\n" + "Using pystrata from: /Users/jamesdea/Github/pystrata/src/pystrata/__init__.py\n" ] } ], @@ -46,7 +46,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 14, "id": "4c25fc14", "metadata": {}, "outputs": [], @@ -58,7 +58,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 15, "id": "d2cafcc5", "metadata": {}, "outputs": [], @@ -80,7 +80,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 16, "id": "b32ef6ba", "metadata": {}, "outputs": [], @@ -116,7 +116,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 17, "id": "ec0a55f6", "metadata": {}, "outputs": [], @@ -127,16 +127,19 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 18, "id": "458b1a12", "metadata": {}, "outputs": [], "source": [ - "\n", "# Calculation Loop\n", "outputs_freqs = np.logspace(np.log10(0.01),np.log10(100),1000)\n", "RS_freqs = np.logspace(np.log10(0.05),np.log10(100),1000)\n", "\n", + "Kappa_freqs = outputs_freqs[\n", + " (outputs_freqs >= 10) & (outputs_freqs <= 30)\n", + "]\n", + "\n", "output = pystrata.output.OutputCollection(\n", " [\n", " pystrata.output.AccelTransferFunctionOutput(\n", @@ -150,10 +153,17 @@ " pystrata.output.FourierAmplitudeSpectrumOutput(\n", " outputs_freqs,\n", " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", - " None #type:ignore\n", + " None#type:ignore\n", " ),\n", - " pystrata.output.AriasIntensityTSOutput(\n", - " pystrata.output.OutputLocation(\"outcrop\", index=0)\n", + " pystrata.output.KappaOutput(\n", + " Kappa_freqs,\n", + " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", + " None\n", + " ),\n", + " pystrata.output.KappaFittedLineOutput(\n", + " Kappa_freqs,\n", + " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", + " None\n", " ),\n", " pystrata.output.ResponseSpectrumOutput(\n", " # Frequency\n", @@ -171,8 +181,7 @@ " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", " # Damping\n", " 0.05,\n", - " ), \n", - " pystrata.output.MaxStrainProfile()\n", + " )\n", " ] \n", " )\n", "\n", @@ -181,145 +190,151 @@ " 'data/NIS090.AT2'\n", ")\n", "eql_calc = pystrata.propagation.EquivalentLinearCalculator(strain_limit = 0.5)\n", - "fd_eql_calc = pystrata.propagation.FrequencyDependentEqlCalculator(strain_limit = 0.5,method=\"ko:30\")\n", - "le_calc = pystrata.propagation.LinearElasticCalculator()\n", - "\n", - "\n", - "\n", - "\n", + "le_calc = pystrata.propagation.LinearElasticCalculator()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "8b7b3271", + "metadata": {}, + "outputs": [], + "source": [ "p = discretized_Site_profile.copy()\n", "\n", "eql_calc(motion, #type:ignore\n", " p,\n", - " p.location(\"outcrop\", index=-1))\n", - " \n", + " p.location(\"outcrop\", index=-1))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "aea34d27", + "metadata": {}, + "outputs": [], + "source": [ + "p = discretized_Site_profile.copy()\n", + "le_calc(motion, #type:ignore\n", + " p,\n", + " p.location(\"outcrop\", index=-1))" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "8b9c5bc8", + "metadata": {}, + "outputs": [], + "source": [ "output(eql_calc,\n", - " name = f\"test\",)" + " name = f\"test\",)\n", + "\n", + "output(le_calc,\n", + " name = f\"test 1\",)" ] }, { "cell_type": "code", - "execution_count": 7, - "id": "f2deb747", + "execution_count": 22, + "id": "167c0350", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Help on AriasIntensityTSOutput in module pystrata.output object:\n", - "\n", - "class AriasIntensityTSOutput(AccelerationTSOutput)\n", - " | AriasIntensityTSOutput(location)\n", - " |\n", - " | Method resolution order:\n", - " | AriasIntensityTSOutput\n", - " | AccelerationTSOutput\n", - " | TimeSeriesOutput\n", - " | LocationBasedOutput\n", - " | Output\n", - " | builtins.object\n", - " |\n", - " | Data and other attributes defined here:\n", - " |\n", - " | ylabel = 'Arias Intensity (m/s)'\n", - " |\n", - " | ----------------------------------------------------------------------\n", - " | Methods inherited from TimeSeriesOutput:\n", - " |\n", - " | __call__(self, calc, name=None)\n", - " | Call self as a function.\n", - " |\n", - " | __init__(self, location)\n", - " | Initialize self. See help(type(self)) for accurate signature.\n", - " |\n", - " | to_dataframe(self)\n", - " |\n", - " | ----------------------------------------------------------------------\n", - " | Readonly properties inherited from TimeSeriesOutput:\n", - " |\n", - " | times\n", - " |\n", - " | ----------------------------------------------------------------------\n", - " | Data and other attributes inherited from TimeSeriesOutput:\n", - " |\n", - " | ref_name = 'time'\n", - " |\n", - " | xlabel = 'Time (sec)'\n", - " |\n", - " | xscale = 'linear'\n", - " |\n", - " | yscale = 'linear'\n", - " |\n", - " | ----------------------------------------------------------------------\n", - " | Readonly properties inherited from LocationBasedOutput:\n", - " |\n", - " | location\n", - " |\n", - " | ----------------------------------------------------------------------\n", - " | Methods inherited from Output:\n", - " |\n", - " | calc_stats(self, as_dataframe=False)\n", - " |\n", - " | iter_results(self)\n", - " |\n", - " | plot(self, ax=None, style='indiv')\n", - " |\n", - " | reset(self)\n", - " |\n", - " | ----------------------------------------------------------------------\n", - " | Readonly properties inherited from Output:\n", - " |\n", - " | names\n", - " |\n", - " | refs\n", - " |\n", - " | values\n", - " |\n", - " | ----------------------------------------------------------------------\n", - " | Data descriptors inherited from Output:\n", - " |\n", - " | __dict__\n", - " | dictionary for instance variables\n", - " |\n", - " | __weakref__\n", - " | list of weak references to the object\n", - " |\n", - " | ----------------------------------------------------------------------\n", - " | Data and other attributes inherited from Output:\n", - " |\n", - " | drawstyle = 'default'\n", - "\n" + "None\n" ] } ], "source": [ - "help(output[2])" + "print(output[3].ko_bandwidth)" ] }, { "cell_type": "code", - "execution_count": 9, - "id": "59014fdf", + "execution_count": 23, + "id": "6a8e1200", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[1.67946396e-05 3.41295355e-05 5.18492366e-05 ... 2.06568326e+00\n", - " 2.06569761e+00 2.06571290e+00]\n" + " test test 1\n", + "0.010000 1.416274e-07 1.404928e-07\n", + "0.010093 1.417419e-07 1.405969e-07\n", + "0.010186 1.418576e-07 1.407019e-07\n", + "0.010280 1.419743e-07 1.408079e-07\n", + "0.010376 1.420921e-07 1.409149e-07\n", + "... ... ...\n", + "96.379348 1.759001e-33 2.035411e-07\n", + "97.272032 1.759001e-33 2.035411e-07\n", + "98.172984 1.759001e-33 2.035411e-07\n", + "99.082281 1.759001e-33 2.035411e-07\n", + "100.000000 1.759001e-33 2.035411e-07\n", + "\n", + "[1000 rows x 2 columns]\n" ] } ], "source": [ - "print(output[2].values)" + "Kappa_Fitted_Line_df = output[3].to_dataframe()\n", + "FAS_df = output[1].to_dataframe()\n", + "print(FAS_df)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "46e7091a", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3oAAAHqCAYAAABSqjwSAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAs9VJREFUeJzs3Qd4U1UbB/B/d+mE0payy0ag7L03AoKAKAKyVHAAonwOcIC4UFREAUVRZAiKyFJRpuy996ZsWspqKdCd73nPJWmSptCd0f/veS5Nbm7Tk3tvwn3znvMeJ51OpwMRERERERE5DGdrN4CIiIiIiIhyFgM9IiIiIiIiB8NAj4iIiIiIyMEw0CMiIiIiInIwDPSIiIiIiIgcDAM9IiIiIiIiB8NAj4iIiIiIyMEw0CMiIiIiInIwDPSIiIiIiIgcDAM9InIYTk5OeP/995GfhYaGYuDAgYb769atU/tFfuaFli1bqoVIzJw5U51/Z8+e5Q55CNlHsq9knznKMcvrzx8iMsVAj4iydTFgaRk1alS+2au3bt2Cp6enet1Hjx6FPZg3bx4mTZoEe/HXX3+hRYsWCA4OhpeXF8qWLYunnnoKy5cvt3bTcOTIEfXlAgOZ7JF9KO+ha9eumay/cOECypUrh4CAAOzZswf57TPzn3/+sfjl1d27d9V6awZQ6R0zIrIdrtZuABHZtw8++ABlypQxWVetWjWrtOXevXtwdc3bj7UFCxaoi52QkBDMnTsXH330EWxJ8+bN1X5xd3c3CfQOHTqEV199Fbbuiy++wBtvvKECvdGjR6tA79SpU1i9ejV+++03PProo1YP9MaNG6eymJJNpZxz6dIltGrVCjdu3FDHu3bt2g79mVm6dGn1XnVzczMJ9KZOnZom2JNAT847YcsZdEufP0SUdxjoEVG2dOzYEXXr1rXaXkxJSUFCQoLKqsmSU+Li4tTFibPzgzs+/PLLL+jUqZO6SJMAytYCPWl/Tu6XvJSUlIQPP/wQ7dq1w8qVK9M8fvXqVdgTnU6nzqsCBQpYuyk27/LlyyrIu379OlatWoU6deogP3xm2ut71RE/f4gcAbtuElGu+u+//9CsWTN4e3ujYMGCePzxx9N0cZQxZZayIfquQcbk/rBhw1T2rGrVqvDw8DB04bM0Rk+yAs8++yyKFCmitpXfmTFjhsVxJJIhevfdd1G8eHGVOYqJiXngazt//jw2btyIp59+Wi3h4eHYsmVLmu3kG3f5xv7AgQMqMyXPXb58efzxxx/q8fXr16NBgwYqAKhUqZLKXljaD8eOHVNdFv38/FC4cGGMGDFCBQ6ZGSMjbVm2bBnOnTtn6Dam3/fpjc1Jb5zNDz/8oLrVSbvr16+v9oUl8fHxGDt2rHrNcgxKliyJN998U61/EOkSJsegSZMmFh+XrpzmbZw/fz7efvttlWGVc65r166q+5+57du3q2ygv7+/Oh5yXDZv3pxmOzl/nnvuORQrVky1XTIxL730kvpyQfbXk08+qbaToES/P/X7SfbrY489hhUrVqgLe9lP33///QPHYpmfw/pjf+LECTzzzDOqvUFBQXjvvfdU4CivTd5Tck7Ia/7yyy+RET///DNat26t9qG8ripVquC7775Ls53+NWzatEkdY7lol66zs2fPTrPt4cOH1XPK6yxRooT60kO+iMmsK1euqP0pgbwE+OZBUWbbLs9Rs2ZN1XbZdtGiRSbb6c/7DRs24IUXXlDvLdmf/fv3x82bN022Xbp0KTp37mw4H+T8ly8jkpOTkV3m54V8Lko2Txh385Tt5BwQktXTrzc+b+SzomfPnqrLq7xu2Yd//vlnrh2z9Fj67NB/Hko2XI6zvP/kM3fChAk59tlBRBpm9IgoW6Kjo9OM0QgMDFQ/JWCRb6/lwlAuQqQLz+TJk9WFu4y3yWpXNwkef//9dxXwyd9K73kiIyPRsGFDQ3AoF0f//vuvunCXAMK866JcsEkW7/XXX1cXEg/rbvTrr7+qYEIuJuVCSS76JABt3Lhxmm3lglG2k4BQggO5MJXbsr2048UXX0SfPn3w+eefqws0uYD39fU1eQ4J8uS1jh8/Htu2bcM333yjntfSRXd63nnnHXXMLl68iK+++kqt8/HxQWb99NNP6qJYXqu0/8yZMyqokgtLuRjTk4tGWS+BwpAhQ/DII4/g4MGD6m9L8LJkyZJ0/4ZcyMt+lTF6w4cPV8/9MB9//LE63m+99ZYKFGQsYtu2bbFv3z5DJk3OHzkvJUskF5GSddAHDxKsSkCjzyrJbRmHKW2vXLmyCvwkQJeuc9It7ZVXXlHHQYJLeW1C/1McP34cvXv3Vvtq8ODBKpDPil69eqnn/fTTT1WgLhfksj8kcJR2f/bZZ+pcknO3Xr16qm0PIueffOkhx0a6O8s+fvnll9XxGjp0qMm20lVWzkl53wwYMEB9USJBiOw/eQ4RERGhLtolCyvjzeR9IV8EZDZ7Ke9Z+VvyfBKgyWvJTttPnjyp9p28v6Ttcpzl/SdfDkmm2Jh8RsiXUfJZJcdN/o58IaIPVoQEYfJ+GTlypPop59KYMWPU54m8d7P7mWlMzhk5ByWjOWfOHMN6+RyTtskXDt27d0ePHj3U+urVqxuCN/mMleBJfyzk87Jbt25YuHCh+p2cPGZZIZ9b8kWLtF0+1+Q9Je/ZsLAw9d7M7mcHEd2nIyLKgp9//lknHyGWFr2aNWvqgoODddevXzes279/v87Z2VnXv39/w7oBAwboSpcuneZvjB071uT5hNyX3z98+HCa7eUx+R295557Tle0aFHdtWvXTLZ7+umndf7+/rq7d++q+2vXrlW/W7ZsWcO6jAgLC9P17dvXcP/tt9/WBQYG6hITE022a9GihXr+efPmGdYdO3bM8Fq2bdtmWL9ixQq1Xvav+X7o2rWryfO+/PLLar3sUz3Zj7I/9fSvTX7qde7c2eL+1h/T8PBwk/Xmz5GQkKCOqxzf+Ph4w3Y//PCD2k5er96cOXPUa9y4caPJc06bNk1tu3nzZt2DjBkzRm3n7e2t69ixo+7jjz/W7d69O812+jYWL15cFxMTY1j/+++/q/Vff/21up+SkqKrUKGCrkOHDuq2nhz3MmXK6Nq1a2dYJ+eotH3nzp1p/p7+dxcsWJBm/+rJPpbHli9fbrJe9q/5MU7vHNYf+yFDhhjWJSUl6UqUKKFzcnLSffrpp4b1N2/e1BUoUMDk+KfH0nku+0TeA5Zew4YNGwzrrl69qvPw8ND973//M6x79dVX1Xbbt2832U7eZ5bOKXP61yl/z8/PT7d169Yca/vChQsN66Kjo9VnQq1atdKc93Xq1FHntt6ECRPU+qVLlz7wb7/wwgs6Ly8vXVxcXLY+My2dF0OHDk3zGSiioqLSnCt6bdq0UZ9Nxu2R87Vx48bq3M/pYyZtSY+lzx/95+Hs2bMN6+RzJCQkRPfEE0/k2GcHEel07LpJRNkiXYvkG2fjRd/9SrIo8s2/cSZGvnWWb9KlyEBWSTc76YL1IHLNLN9ed+nSRd2Wb9D1S4cOHdS36uZV/OQb/4x+my3dMOXbZcnW6MlteX7pqmdOvv2XDJ6eZHYkeyDfUku3TT39bcmQmTPPVkiWS2RnX2bFrl27VLZMsiTGWU851tK10LxYjbxGyYYZHwPJQom1a9c+8G9J1zQZ+1irVi21XyUjKZkkKcxhqcqpdLczzoRKdqho0aKGfSTnpGR5JHsq47/07blz5w7atGmjuu9JJkEWyRjI+WNpPJV5l+L0SFdPOd+y6/nnnzfcdnFxUW2S81qybHpyPsl5ZencMWd8nuszTPK+kt+V+8bkvSbdr40zSuZ/R/avZM/12VD9dn379s10Rk/eK3LMcqLt0sVSn8ES+i6Ze/fuVRktY5I1Mi6EIhkzyRgav7+M//bt27fV35Z9Ixle6S6Znc/MnCCFayTLKFkyfftkkXNdzkM59yUrnZPHLCvkGEtXZD35HJF2GJ9T2f3sICJ23SSibJL/nC1dCEuXJ2Gpq5r85y0X7XJxLd2FMsu8Yp0lUVFRqsuddEWSxRLzYh4ZeV7jIizSdumWKl3bhIyFka6V0oVOxvEYk/Ev5sGBBEXG3Rz164T52CBRoUIFk/vSVVS6HeZ1aX/9sTVvj1wky/4wJheWEpDpxxRlpaCKBNCySPc4GVsn3eck+JMgTKqHGhd7MG+T7HMZ36PfR9IefVCfHgkWZAye/L3sVpDNzDn1IKVKlUpznsjrNu/yJ+vlov5hZDyidFvdunWrClLMX79xwG7+t0WhQoVMzlE5J4y/sNDLbFdVeV9JACBfBkmXPeNxmFlpuxx78/ddxYoV1U85J2RcY3rnjj7gNH5/SbdIGccrwZT5GF7zIDOzn5k5QT6L5AsAGcMpS3rvOenWmVPHLCssfR7KOSVfoOXkZwdRfscxekRkdellR9IrcJCRrJu+oIBcNKZ3Ua8f05KZ5xVyISXj8yRQtZRZlAuQ2NhYk7FvkoWxJL31Wi++B8toVim3jkNGyHGQcTcTJ060+Lh5oPsgko2RAEAWCSpnzZqlAj/J5mSmPULGU0mBDkvkuElmJCdYOqeysp8tnSdZPXdOnz6tspeSKZHjIsdAMiqS4ZHxT+bFOLJzjmaWHEsZTyZjtyQDJePjjAO3zLY9J8kXR9I+OQ9ligT5okWCbekZIOPLcvNvZ5S+DTJWM71MsgS/1paRcyonPzuI8isGekSUK2S6ASFFDcxJFyfJROizefJNrlxEpZc5ygr5Fli68MnFsxTjyElSJVOKmcjFnnHhDSFZDukCJt3+jLsm5QT5hts4QyTf3svFUGaL2qQXaMhxEObHwvw46I+ttEffjUokJiaqyqM1atQwrJOL4f3796uL85wMTCUjIoGedBE2ps/YGV84yn7SB/XSHiEX6w86L+T8kW0kY/ggWXlNGd3PuUWKl0ixIanCaJyty05XODknzPd9eu//h5FMrRR8kS9o9FUz9QFzZtuuz3AZHycp5CHM3zfSfilOoidf1sj5JdOnCAk6JVsqVTuNi93IOZ9b0ju/0luvz6jLFyEP+9zLyWOWG3Lrs4MoP+EYPSLKFdLlSTImcjFufEErF85y4aa/eNL/hy7dnoy77cgF1uLFi7P1jfETTzyhxulZuliXrp1Zpe+2KRN5yxgw40UqK0oXMOm+mdP0pdb1pIKp0Fepyyhpu6VuZvogSMap6UmgbN71VYIsCYSmTZumujjqSZdK8+BFxgrJmKDp06en+XtShVWyoumRbnnSPc8SqZ5qqZuZVCCVsUl6Us1PziX9PpLxffI6ZSJ2uZBP77yQLrFSpVACCxmTmF7mQf9lhaUvKtIjAaR80WG8n8W3336LvMymGGdP5HyQipRZJe9nqQS7Y8cOk32Z1fdBv379VMVU6b4p72P5EiErbZeqlcafI9LdUs4R+Wwy7rYp5DzX/x0hlS2lIqX+3LH0t+X8z83jlt75JVMSWFovXV1l+gKpxmr+JYj5515OH7Oclp3PDiLSMKNHRLlGusfJRVKjRo1U0Qj99ArSFct4zicpUiJdn6RogpSrlwt8uciSsTTmBVMyQ0rRyzf9Mg5FAjDpZild8uQ5ZeqHrHTPk2yCBI/SfTC9iYClJPjXX3+tunBaGmOUVZI5kOeWsuQSAEnAKUVFjDNoGSHBjsw3JyXipXy9dFWULIqUrJfiDKNHj1b7RoroyNyCcrFrTLIFUt5fyr9LRk/K10vb5GLbfIyeXLBLVzwp3CLHQsq+S/AoWV1Zr59jzhI5D2T6BmmTvGbpqiUXtpItlWkQJBCTIi3GpM1NmzbFoEGDVGEPCRakq5ocf30A9+OPP6rzUl6vbCfjleSCUtonQZgEd+KTTz5RX0pIdz19eXe5eJYiERKASPETCRgkAJDpDSTgkLm+9HO8Pay4ipyf8lNevwR9+kxTbmvfvr3q7ijHXI6hBLxyMS1tthQcZITMbSZTAMhxkvkd9aX6JWtk/AVOZshngZyHUpBHCqhIAJLZtstniHz27Ny5U82lKZlCOS8sBYYStEn2SAIMyWpJACfnkrznhJyLko2VTKO0TbJM8ppzowurnn6iePl70hVTzjX5vJQMp3yeyftYXqOc9zKeVBb5QkjaLd0e5byX96S8ZvnMkJ4IkiXLyWMmXSv1gaeevM9kypHsyM5nBxHdx9KjRJQV+lLhlkrPG1u9erWuSZMmquy7lE3v0qWL7siRI2m2W7lypa5atWo6d3d3XaVKlXS//PJLutMrSMlxSyyVG4+MjFTblyxZUufm5qZKeEv5cZkKwLwEuJTKfxgp1S7b/vTTT+lus27dOpOS/lJOvGrVqmm2k/LvMtWBpddh/Br1+0H2W8+ePXW+vr66QoUK6YYNG6a7d+9emud82PQKsbGxuj59+ugKFixoKGmvd/r0aV3btm1V+fwiRYqoKSNWrVplcQqBb7/9Vk1JINvWrVtXleCX12o8vYKQkvWfffaZ2geyrbRdStmPGzdOlbtPj0xTMX36dF23bt1UG+V3pYy9lMb//PPPTaZ20L/OX3/9VTd69Gg1/YOcc7J/z507l+a59+7dq+vRo4eucOHC6nnl+Z966indmjVrTLaT35VpFoKCgtR2UsJfjo3x35Y2ynoXFxeT/ZTe8dWX6ZfpP6SUvRxP+dtS2j696RXMS9jLMZYpJ8yld66Z+/PPP3XVq1fXeXp66kJDQ9XxmTFjRpqy+um9BkvH+cCBA2qdPKdMc/Hhhx+q90l2S/UPHz5cPfbiiy9mqe0yZYlsL8evcuXKad7n+s+y9evXq2ks5Pz08fFRU6cYTw0jpKR/w4YN1blVrFgx3ZtvvmmYEsXSFBuZ+cy0NL2CTKUhr1/OP5lOw/jzcMuWLep9JJ+Z5ueNvI/lvJXPO/nck+Px2GOP6f74448cP2aWFnkvPGh6BUvnqKVpdrL62UFEGif5Rx/0ERGR7ZHsp2Q1pFuVpYmVSRs/JeOrJNsmXWiJZAyeZLj+/vvvB+4M6XIsmV3J+jFDRESOhGP0iIiIiIiIHAwDPSIiIiIiIgfDQI+IiIiIiMjBcIweERERERGRg2FGj4iIiIiIyMEw0CMiIiIiInIwnDA9i1JSUnD58mX4+vqqSVOJiIiIiIhyk8yMd/v2bRQrVgzOzg/O2THQyyIJ8kqWLJnVXyciIiIiIsqSCxcuoESJEg/choFeFkkmT7+T/fz8YAsZRplMOSgo6KHRPRHPI+LnEdky/p9GPI/IVqTY2DV2TEyMSjbpY5EHYaCXRfrumhLk2UqgFxcXp9piCych2SeeR8TziGwBP4uI5xHZihQbvcbOyNAx22mtFXTv3h2FChVCz549rd0UIiIiIiKiHJOvA70RI0Zg9uzZ1m4GERERERFRjsrXgV7Lli0z1L+ViIiIiIjIntjtGL0NGzbg888/x+7du3HlyhUsXrwY3bp1M9lm6tSpapuIiAjUqFEDkydPRv369a3WZiIiIiJ7kZycjMTERNjz2Cppv4yvsqWxVWRfUvL4PHJzc4OLi0v+DvTu3Lmjgrdnn30WPXr0SPP4/PnzMXLkSEybNg0NGjTApEmT0KFDBxw/fhzBwcFWaTMRERGRPczTJV+S37p1C/b+OuQiXeYc45zHZE/nUcGCBRESEpLtv2e3gV7Hjh3Vkp6JEydi8ODBGDRokLovAd+yZcswY8YMjBo1KtN/Lz4+Xi3GpU2FHHhZrE3aoD8RiXgekTXx84h4Dtk3CfKio6NVOXkvLy+7DpIkEyMZEiJ7OI/kWv7u3btqOge5LcGeucxc69ttoPcgCQkJqkvn6NGjDesk1dq2bVts3bo1S885fvx4jBs3Ls16ORCSyrU2OejyoSwnBbsnEM8j4ucR2TP+n2bdfX/9+nUUKVIE/v7+sGdyTSSkG5w9B6uUv84jf39/9T6MjIxU982v6yWzmK8DvWvXrql+5fIhZUzuHzt2zHBfAr/9+/erbqAys/yCBQvQqFEji88pQaN0BTWfrFC+7bKVefTk5LOVyRzJPvE8Ip5HZAv4WWQ98uW1dNn08fGBq6tjXCYyo0f2dh7J+0/iGenC6enpafKY+f0HcYx3cBatXr06w9t6eHioxZwEVbYSWEmgZ0vtIfvE84h4HpEt4GeRdcg1hH7f23sWTDIx+tdg76+F8td55Gz0PjS/rs/Mdb5DRgSBgYEqvapPeerJfUt9XYmIiIiIiByJQwZ67u7uqFOnDtasWWPSDUTup9c1k4iIiIiIyFHYbaAXGxuLffv2qUWEh4er2+fPn1f3ZTzd9OnTMWvWLBw9ehQvvfSSGounr8JJRERERI6hZcuWePXVV3P0OQcOHJhmjubc9P7776vueuaL8VCjX3/9VfVaGzp0qMXnkGtfmX5MxnjJ+K5atWqpgoKUP9ntGL1du3ahVatWhvv6QikDBgzAzJkz0atXL1URc8yYMapMcM2aNbF8+fI0BVqIiIiIiGxB1apV09SQCAgIMNz+6aef8Oabb+L777/Hl19+aVKYQ6YQk2D3m2++QYsWLdS0YAcOHMChQ4fy9DWQ7XC2529uZHCk+SJBnt6wYcNw7tw5daJv375dTZxORERERI5DMm/r16/H119/bciCnT17Vj0mQU6nTp1Uhku+7O/Xr5+qZqj3xx9/ICwsDAUKFEDhwoVVRXbpASbZNekVtnTpUsNzrlu3Ltdfi1Q6lXoSxosMSdL3XtuyZYuaD7pixYpYtGiRye/++eefeOqpp/Dcc8+hfPnyKmjs3bs3Pv7441xvN9kmuw30KIvu3gCuHODuIyIiooxN4JyQZJVFP3/Zw0iAJzUYBg8ejCtXrqhFpsCSaSI6dOigenVJTzDp2SWF+SQYErKdBELPPvusGuYjgVyPHj3U33399dfVdo8++qjhORs3bmzVM+bnn39G586d1TxrzzzzjMruGZOgcNu2bSrJQWTXXTcpi37tDVzYBjz/H1CiTur689sAF3egeG3uWiIiIlLuJSajypgVVtkbRz7oAC/3h1+qSuAjWS8vLy+T6upTpkxRQd4nn3xiKIsv3RslCDxx4oSq95CUlKSCu9KlS6vHJbunJ1k+6RWWlxXbDx48qLKPelWqVMGOHTtUUUHptTZ58mS1/umnn8b//vc/leUrU6aMWjd27Fj1WkJDQ1XGT4JfyWb27NmTU2/lU8zoOap7N4EbZ9Jm8yTIEz+2llKk2u3Yq8CMDsD0VtptIiIiIjsn49MkS+fr66uCJ1kqV66sHjt9+rQqWtKmTRsV3D355JOqkMnNmzcz9Tfmzp1reO6MLvrCgZZUqlTJUGxQloULF6r1q1atUl1KJXDTTyXWrl07FbjqFS1aFFu3blXB4ogRI1QQK7UrJCspgSLlP8zoOaovKwNJccDwPUDhctq666dNt7kZrj0WviF13bcNgRH7gd2zgMLlgUqPausT7wGzu2mB4pMzgard8/DFEBERkTUUcHNRmTVr/e3skIyddHWcMGFCmomuJSiS6pUSQMm4t5UrV6ps2TvvvKPqOuizZA/TtWvXTNeAKFasWLqPSWZSxteZk26aN27cUFlGPQneJJgdN26cScauWrVqann55Zfx4osvolmzZmoMo3ERQ8ofGOg5KgnyxOTawPvR2u3oC6bb3DqnBXpH/0xdd/c68H0L4Mb9oPDty4C7N7Bjemo2cOUYBnpERET5gARIGek+aW0SICUnJ5usk6kFJCMmXRnd3NzSfX1NmjRRi1Rqly6cixcvVtXcLT2nOckWypKbrl+/rorC/Pbbb6rAip60rWnTpipIlaydJdL1U0g2kPIfdt3MTyQrZ2xOdyA2Cri013S9PsgTtyO0n1HHUtfduSqjs1O7g17ak2tNJiIiInoYCeYkEyfVNqWqpmS7ZK456YrZp08f7Ny5U3XXXLFihZpTWYIk2V7G70mhFulOKVUsZWquRx55xPCckjE7fvy4es7ExESrHIg5c+aoiqBSHEafrZNFup5KV059URaZM/rDDz/E5s2bVUEWKczSv39/BAUFqfF6lP8w0HNEUljF2PLRWpAXeTjtthMrA9H3+4qXa532cckISjfQfXNNs4WxkcDtSGBCGW1s36GFwLktOf1KiIiIiB5KqmRKV0zJYElgI4GbdJGUMXoS1LVv316NxZN55mQicenq6Ofnhw0bNqhgSYqXvPvuu2puuo4dO6rnlCqeMmaubt266jklgLIGGYfXvXv3NN1PxRNPPKGmVZBAVKaGkOBOxhvK65HHZJ69NWvWqECR8h8nXUZr15KJmJgYVeUpOjpafVBYm3xzdfXqVQQHB8P5g0JZe5KwJ4GDCzK+ffl2wKlVpuv6LgQqtM3a3yfbOo+M+vsT8TwifhblD3FxcYZKjsaTcdsjucSVgiQyN52lIInIVs+jB70PMxOD8EqOUhXIQIDo4pF62zzIE3OfAKa3AW6Ea/f3zgUmlDUt+EJERERERLmKgZ6Dmb314ZNkrk2uYfmBmn0e/gfcUqs9pevSLmDzJO320pe1Ai+zugBxMWm3lYTyhi+AffMe/rxERERERJQhDPQcSFRsAr7/a+NDtzuuK4nQuLnA0B1AQNnUB4rVAipq/dLTlZKUscbsnplasEXv6hHg4m7g5tnUdZf3AP99CCx5CUi4m7HnJiIiIiKiB2Kg50D+O3kT9Z2PPnS7BDWrhhMuuZUCfEJMHyxWM+0vuBuVDW77fsYbFHcLcPNKvT+nhzZR+/fNgbObgct7TSt2yn0iIiIiIso2BnoOxCl8Lb52//ah21Vz0jJqEdFxgKe/6YPGgZnecytSb5eoB/SckbEGfRYKJBpl6RLvz+ESFw3M7AT80BLY/E3q41EPD1JNpCQDK98DThi1j4iIiIiIGOg5ktrRazK0nQ5axaAr0feAItpEmgYyObrJfR/Aw6iij4u76X3x6KdAkxFZa7R+agdx55rlbbZNA76uAVw3mt9PHP8H2PINMO8pKReZtb9PREREROSAmNFzIF5J0Sb3H4v/yOJ2t6EVVBk2by/QdCRQuz/Qb0lqlkyvwUvAy9sAV6Oyrs6ugIdRV07R8CWgTSa6dKZHsnsXdpg1NgJY/pY2rm/vL6aPGY/pu7Iv+3+fiIiIiMhBMNBzIF4ptw23j6SUxiFdaqGVi7pAw+0Uo8Oe5OoFdJ2M5fcewX/HIoGke6lP2PFToGBJwNVoSgXoTAO9zl9qPzM651qDF9N/TLp2/tTONHMXdSz1dvQF0+0TYlNvX9yZsb9PRERERJQPSFUOchA+Eujdn8fR3c0V3/eqA9yf/9xJAjQLLty8h5t3E/DiL7vV/f2t78Js1J5pRk+XYhroGc+9V6MPcGW/VoQl5lLq+j4LtCAupDpwZOnDX8jcnkChMkD7j4Cjf6eujzxiup38HcNjh4E71wHvwg9/fiIiIiIiB8eMnoPQ6XTwR2qGK8XJBR2qplbUdIYOk5O6IVrnhc0lhxjWD5m9Cz9uPGO4v8q5mXYj9P5P4eKWets3xHSMnozh0+v+HfDSZqDyY9p9D3/g/WigYnuganegcDnAp8jDX8yNM8DpNVp1zp3TjdafBs5tBX5qD5zbAtwzCvT2zAIm1wZir5o+V/xtIOrEw/8mERERkRUNHDgQ3bp1s9tjsGTJEpQvXx4uLi549dVXMXPmTBQsWDBP2+Dk5KTakZ6WLVuqtumFhoZi0qT7cz87IAZ6DiIhIQG+TqndLs3zdzE6L3yZ9BRqxf+AKNeiKOKndcc8eTUW/xyMMGz31a4E6N48C/Q3yrw5OQHDdgMvbtYyeMYZPWcX0z8k27Z5D2j5NvD86rQNNS/2IoKrAr5F065PSTS9nxQHrHgbuLAd+Llj2qBOMnyrxmiB4MVd2rqFzwNT62nz9xEREZFDMr+Azwn2HnjltRdeeAE9e/bEhQsX8OGHH6JXr144cSL1y/b3338fNWvWzHRwlpt27tyJIUNSEyCOhoGeg4iPM51svGABrVfusIThuKwLwOjE5w3j85JTUvBpj+oWn+fSrXs4dMM5bQAXWB4IqabdNn6scPm0TyKBYMu3gKCKaR+r0B4o19p0Xe9fgb4LtPn6ilQDyrdL/4VKF009S91A9/+qBYK/9dGKtZxYrq3f8T2QnAgc/AO4dxO4eQ7YPYvVOomIiIiyKTY2FlevXkWHDh1QrFgx+Pr6okCBAggODrbpfRsUFAQvLwtTizkIBnoOIsEs0Avy0TJ2f6c0QuP4KdijSw26/Au4oVXlYHz2RJjJ79QsqaXX158wy5RZ8sJGLetXKDRzDXX3AvotTr0vE7YXKg2EhAGjzmldPyXoczEuAGMkOT71tnHhGHOxkcCFbUb3rwL/vAEsfA5YNVbLCP71CrDtAfMOSmCY3pQPREREZBMk87Z+/Xp8/fXXKjsky9mz2pzBhw4dQqdOneDj44MiRYqgX79+uHYt9f/2P/74A2FhYSooKVy4MNq2bYs7d+6o7NOsWbOwdOlSw3OuW7cuz7NNEoh89tln6v7y5cvRtGlT1R1S2vrYY4/h9OnUAnbymqWdv/32Gxo3bgxPT09Uq1ZN7Rs9eQ2yzbJly1C9enW1TcOGDdV+0rt+/Tp69+6N4sWLqyBI9s+vv/6abjvlOSWwE61btzbsK+Oum3J73Lhx2L9/v2F/yjrpOim6d++u1unvC9n3tWvXVm0sW7as+v2kpCTD4ydPnkTz5s3V41WqVMGqVasyvY9DzbpuSht+/PFH1R557RUqVMCff/5p8juyrzp27JjuOWVLGOg5iMQE06BHxuQZC/ZNDZzcXbTD3qteKZQN8k4T6H2x8gTiEo2mWbCkaHWgbMusNzjsKe1n89eNGu2S2v3TuMiLPhOYHin2MnxP2onfrxxIvX9mLbD759TxfPpiMYcXa0VeTt2fgzApAVg6DNjwObBoCPB5Oa0raEaKyBAREVGekwCvUaNGGDx4MK5cuaKWkiVL4tatWyrDJN0Fd+3apQKlyMhIPPWUdg0i20lA8+yzz+Lo0aMqOOnRo4eqe/D666+r7R599FHDc0rwlFf+++8/tGvXDh9//DHeeusttU4C0JEjR6rXsmbNGjg7O6uAJMVsLuE33ngD//vf/7B37161X7p06aKCN/NtvvzyS0MwKdskJmpDZuLi4lCnTh0VDEpQI10bJZjZscNsCqz7ZL8cP35c3V64cKHFfSXdOKVNVatWNexPWSd/X/z8889qnf7+xo0b0b9/f4wYMQJHjhzB999/rwJD2R9CXrMcK3d3d2zfvh3Tpk0z7KfsGjdunDr2Bw4cUF8SPPPMM7hx44Z6TM4pCWZr1apl8ZyyNay66SAS48yyWy1Hm9ytVaogVhyOVLedJZC6z9cztdCKr2fq6fDDhjPoUqMYygRaGFOXE7p9q02yXqSq5cc9/YDY+2MHX9mnBWQnV1retmwLVVfUROJdYPXYh7fj0i7gu0ba7SEbgLMbgL1zTLeRrqBSTbR4XeDWOSAuGqjU8eHPTURE5CCkcNuPG8Mful214n74cUA9k3XPz9qJQ5diHvq7zzcrg+ebpU4NlVH+/v7qgl8yMCEhqYXopkyZooK8Tz75RGVqxIwZM1QQKGPHpLuhZIgkYChdurR6XLJXepLli4+PN3nOvLB48WIV5EhmSYIhvSeeeMJkO3ktEqRJICSZO71hw4YZtv3uu+9UMPLTTz/hzTffNGwzduxYFUgKyVyWKFFC/V0JWCSTJ4Gu3vDhw7FixQr8/vvvqF+/fpr2yr7Xd9EMCAiwuL9kX0oGzNXV1eRxWS8k82e8XoKtUaNGYcCAAeq+ZPRk3J+8Bmn76tWrcezYMdUu6Soq5DhLpi0nMsS9e/c2POc333yjAtDOnTurc0qCPFmvZ3xOVaxoYdiSFTHQcxCJCVqXxlvwRcHX9wI+Qer+opcb44f1ZzC6U2VUKuKL2dvO4dW2qSehp2tqUtc4VJq46oRaTn/SCS7OZkFUTpBKnvoxf5bEXE69XbAUEFDG9HGZqkGyckN3mM3zZ0HVHsDhRQ9v0w/N039MCsGsG58aBD63Ctg0CWj6KlAy7YceERGRI7kdl4SImLiHble0oNGUTPddv5OQod+Vv5GTJCNj3K3QmHR5bN++Pdq0aaOCO8n8yX0pJlKokFmvogeYO3euKkKSGRKYlSpVyuJjkp36+++/VZdS80Iw0lVxzJgxahvpKqjP5J0/f94k0JMsnp4EVnXr1lUZS2PG20hwVqlSJcM2ycnJKpCRwO7SpUuq4J8EvHk5lk26eG7evNmQwdO3S7KNd+/eVW2V4Eof5Jm/puyoXj21joW3tzf8/PzU+EN9u9auXauCVkvnFAM9yhVJ8doYvXgnd0OQJ2qXKoRp/eqo2yPbV1JBnrNR4OZuHOgZZfr0rt6OQ1F/7duWPBVcBbi4A/AO0rp0Go8F9CsBPLtCq8rpaTTrX7k22rQM5sq1yliglx6ZFH7Z/0wzfXN6AAm3gePLtCkkxOElQIGC6XdpXf+5Nl3EwGVAYIWst4eIiCiPSa+fEL+0QZy5wt7uFtdl5HeNexblBMnYSRZmwoQJaa5xihYtqqYBkHFdW7ZswcqVKzF58mS88847KpAqU8bsC+Z0dO3aFQ0aNMhUu4yDE3PlypVT4+8kSyRtd3NL7Xkl3Ssl8zh9+nT1HBLoSYAngVhO+vzzz1V3WBm7JkGwBDtS0TSn/87Djp1k9STbak7G5OUmN6N9LuTcke68+nbJcdCPmzQ/p2wNM3oOIjlRy+glwfTkNGcc5AnjbF3n6kXx9ZqTJo9P/u8UBjQKRaUQX5yOilXZwUFNQ1E5xGguvdzw6HhtTF2rd7T7Uo1Tr0RdraiLuc5fACdXAf+mdk1QSjdJvV1vMNDpc20c4KTqWlfMB/EOBuo+p1XojDAa8ydBnt6FHUD0BeCPZwEnZ+D1k1oAKlnLq0eBzd8AzUYCaz/Stt/wBdDj+8zsDSIiIquSLpVZ6VYpzLty5gbpPigZH2PSxU7GjEnBDfOLd+OL+CZNmqhFsmUSSEkXRhkLZ+k5zUm20FLGMKsCAwOxaNEiNV2EdKOUrJq0XcbYyTg4CfKaNdPmOt60aZPF59i2bZsqUiKka+ru3btVd07zbfRZxZs3b6puh4888oi6L5m0xx9/XI1NExJQyuNS8CQ70tuf8vrM10sRFnm9Mi+fJdJWmcZBxvXpAyx5Tbmtdu3ahnNKsqW2jsVYHMX9OeeSnTJ30vWur73J64cGoGIRXzQuV9jk8Xnbz6PDpA144rstaPPleszfdQHP/LgduU6CucenAn73v/WSoEmqdcpE7m3GWP6dgLJAfbO5UNy8ta6fesGPaEGe0D+3sXYfAF0np973KqxtX7FD+m39qZ0W5AldilbAZb724YhvGwL75wFT6qZuf3lv2udISZaBlun/DSIiIkqXXHhLJk4qT+q7NQ4dOlQFMX369FFjrKRrnYzpGjRokAosZHvpoihFNaT7owRYUVFRhoBHnlO6f0rAIc+pL1aS22S8mxRjkTFoMlZMgjXpTiqZvh9++AGnTp1Sj0swasnUqVNVsCq/r98HUnDG2AcffKAKukixFRmTJgGmvquoVJrUZzqli6R0TZWCI9kl+zM8PBz79u1T+1O6g+rXS1siIiJUW4UE3bNnz1ZZvcOHD6t2SDXRd999Vz0u1VGlm6SM4ZPulFK8RbKxuW3o0KGqMIscF0vnlK1hoOcgUu6fXDJPXma0r1IEC15shOkDtEBEMneW7D6nvfHEtdgEQwo7T8n8ewP/BgqXS38bCcqK1wGcXYEXNgDDd2tB4jOLgMbDgdr9U7f1sTC3S7FaQK1+pkVdzLOCGSHz953bYvmxa8eBG/cHtG+ZAnxeHhhfEhhfAriwU5vW4fx2IDlnxyoQERE5KikeIl0xJeskBUokcJPujTJGTy7AZfyddEOULohS+EMqVsrYqw0bNqjKihI0SBAhlSj1BT2kiqeMXZMxbvKckunKK1KYRIK5gwcPom/fvuq6SwIdyc5Jd83XXntNdbG05NNPP1VLjRo1VNZPpgeQQM58G6loKdU1JcD666+/VMZNyH6QzJWMW5TMorQlJyaOlwIxUsW0VatWan/qp2yQfS6BpYy5kyyskL8tYxWlS229evXUFBBfffWVoWiOHD8JZu/du6cKxDz//PMm4/lyS7FixdR5kN45ZWucdFa5Yrd/MTExqspTdHS0+qCwtv3rFqHGukE44xKKsu/tz/LzfLHiOKasPfXQ7d56tDJeaF42TVdQm5B4T1u8Ah683cLBwMHfTdeNPAb4FQXevz/2z7OgNr+f0K8zFvQIcOM0kGyh37pM8aAPFM1JVrLZ/4CJVYGYi6bBrJMLcGoV0HEC0CBzA7yzS74BlQHH8m2iLX5gkX3geUQ8h+yXFLuQrIuMUcvtsVC5TS5xJRsmXews1SFwNJLNlOMm0ypItVFLJPCVQEsyZ/o57sj2zqMHvQ8zE4PwSs5BpEgWSE5G3J+LLou8PDL2+58tP4aVR+5Pf2Br3Ao8PMgTkvUz53u/tK9/Se1nGa0fvDJsN9DGaMqGkg2AoduAt69o2UMJCo2lF+SJNR8CP7RMDfI6T9R+nv5PC/LEwT8e/hqIiIiIiCyw/VGElCE6fddNKQaSDd7uDz4lCri54N79ydT/ORiBbWduoO0jRdC0gmmXALsgFTL1BvylTdKu/6ZmwJ/A7plAw6Gp2wSW14qqSNdRmYy9andtvYsrULQG4FsUiLuVwT+uMx2rt2ykVmn06pHUdREHpZyqNn1Ewl1t4vYiVYAeP2TrZRMRERGR48u3gZ7MbC8DOSUVK4v0U5a+2PYqRYp5SPiQzUBPAjlzFYJ9cPJqrLqtD/LEn/u1ue5mbjmLjW+2QsmAvJtfJUc0eRU4tQao2Qco0zxtYRcpzGJJlce1xZzHQ6puufsAbd8HNn2lzQFoTsYQSnVRCSSlIujda9rPkDAtQxl5UFu6TQPObQKOLweqPwWseBuo3ksbf5gPuqYQERFRWlLU5GEjsmTMHUdt5R/5NtCTUrgyAFcmf7xz544a2CpzdUhFI7t0P9BLyWbXzbiktBWDihYsYAj0KhbxwYlI7baxudvPY1THyrArvkWAYTty7vksBXou7qnj91w9gfqDtTn0Zj9uOi5Put6Wbpw6X6B0GT28GIiNAE6ZdZH9rQ9w4l/t9rap2s9zm7XgsdXbqdvFRgFzewJVumrjAY3JJKsSFDIwJCIiInJI+XaMnlRmkiBPSHlX+XbDnr/h0KVoFRp1UsgjG+KMMnaiXZUieLNDJcP9tzs9Ah+PtN8PJCWnZOvvOgTjQK/l21rWTyZ2Nw76RJkWQJGw+7/jr03ILtVEjSeFr/e86WTwxvRBnrlt04CkBODuDS1Tue4T4Mo+YM0H2mTtU+oBN88CCXe0KSFkygfzKR2S4uC9awoQeTiLO4GIiIiIbIHNBnqSbZOZ56WMqVS4WbJkicV5QiRNLdVoGjRogB07dmS6+6aUni1RogTeeOONNKVn7YnOkNHLua6bC19qjG+ergU/z9RJRgN9PPB5z+ppfu/HTeG4FqvNh5JvGQd6Ml/fU7OB4rWBSp21dU1GaD8li9b3d6DXXOC1Q1o3UXOhTYFR54E3TpsGgOkVlSkQAMRHA+e3aHP6/dID2DUjdRuZrP3aCWDpMOCfN4FLu4Drp4DIQ6bPtfNH+O6aDKcF/Tm9AxEREZEds9lAT7pTShAmwZwl8+fPVxNFjh07Fnv27FHbypwbUhpeT0rLSpdM8+XyZW1smZSVlUkWpXzpvHnzcmQySKvJoTF6PeuURLMKgRjzWBXUKV0IBdxd4OGW+pzurs7w8bTc47fuR6tx6upt5FseRiVuPY1uS/EUKfYi3Tb1ZLL2Rx4z3c4S70CgWk/Tda4FTO8HVQIq3w8mJXN3Zm36z3d2I7Dvl9T7UcdMHnaS7qLy88aZtFNPEBEREZHdsNkxejJZpX7CSksmTpyoiqfITPRi2rRpWLZsGWbMmIFRo0apdfv27cvQ3ypSpIgKFDdu3IiePc0uqu+T7p2yGM9hoZ8vShZrS7k/uXaKk0u22uPh6oRZg+ppz3X/eVyNY0edDt7u6XcP/WHDGbzevqLK/OU3Tu4+0JdCSXH308bB6efTK930/gNZODaNX4HT9dOqy6ZTUhyQdE+t1jUaDtw4A127D4Goo3DeO0cr0pIJujMboSvVBE6bvwLuRMHp8p7Ux9Z+DF2pxkDBUkBctNYlNKBM5ttP+Y58dkhXeFv4bCT7xHPI+vve3oe06OlfgyO8Fso/55Hu/vvPUpyRmf9bbTbQe5CEhATs3r0bo0ePNqyTyZ2liubWrVsz9BySvZMxelKURSYclK6iL730Urrbjx8/HuPGjUuzPioqSk1qaG1xd7UCKck6J5OsZk4wrrR57fp1QzBjye+7Lqrlh6cqoXoxH+QnXolO0Ofnrt9JRHJOHofmn8Lbpwx8d9yfbw/A1Yp9oJMumxLj+1ZDoF9puMZok7vHFW8Mz0tbHvq0KSdXwPnIYjglp36JEe9TCi7JcXCNvgjdDy1wq80X8Ns4Di6xEbj29L9I9rs/xyBReudVSor6XJX/pOSzmSizeA5ZT2Jiotr/+qrk9kw+g5LvTz+VHyZMJ8c5j5KSktT78Pr163BzSx1CJW7fvu3Ygd61a9fUDpdMnDG5f+yYaVe09Jw7dw5DhgwxRMzDhw9HWNj9AhkWSFApXUWNM3olS5ZEUFDQQ2elzwtnPe6fBC6uCA4OztHnNi60UrBQAPwLyGmjzffWt0EpVXHT3H/hd9G2poWxZ46sUJDhZuHiZQGvHK7gWrSC4aYuqDKCSptVOR2+Ayln1qsxe+5lWyJF5uG7uB3O/76pHk6p/jScpMvoxV3AxZ1wSroHl7ib2vOFVFdj9pwS78IjVjueOmc3OMfdQsCy51NfV+wxILSqDArVMpVEFsh/TvKfoXw+MtCjrOA5ZD3y5bVcSLq6uqrFEZhfKBPZ+nkk7z35/1NmA5BaJMbM7z/weZBP1a9fP8NdO4WHh4dazMlBsIkLGbnwVmP0tBMjJ7k7O6NyiC9u3ElA+WBfxBtNwVAvNMBioPfbzgsY3yMsf32DZvRanWUy9pw+L/yLpf6p0o3hZP78zp5ApQ6p94vXBJLupj4c1hOo0C516oUvyqc+X4dPAP/i0P3aB05RR7V1KYlpmuC85n1gxWhtqoiXt2ljCIkskPe+zXw+kl3iOWQd8p6Vfa9f7IXMDye1GSZNmmRYJ1/k619DVl7LwIEDVeE+SwUBjUmvsM8//1z1Nrty5QoWL16Mbt26IS+sW7cOrVq1SrP+nXfewUcffaRuX7x4EWXLlkXFihVx6JBZETYZ3r9+veq1JtfFEugXL14cjRs3xvTp0+Hufr9ieD6my+Z5lBX695+l/0cz8/+qXf4PLNUxZXoE8+Ipcj8kJAT5Ug4VY0nPsleaYfOo1qoYi7d76vcDBb3cVEDXp0GpNL9z824iTkbextS1p0yCQ8dl1G/bJRe+9fFNDfRQuknGfidIsn73P5Qka6fnk5p91J6vsar+qevwCWJrvwhdaHNtgndzd64B8bfVeD78/aoas2lweS+QFK9V69zwBXD6AUVhiIiIHMTDCgjmhePHj6sgU7/o61WImTNn4qmnnlK90bZv327ye0eOHMGjjz6KunXrqoD14MGDmDx5sgrw9N0VyX7ZZUZPTr46depgzZo1hm9MpJuH3B82bBjyd6CXvXn00uPi7ASX+wGDs3PqtxmVQ/zQslIwOt1NxDyzzJ5Mt9Dvp+2IjInH5yuOI3x8J7v6djDT3Lxz9/ml26WzG6BL1qZfyAivAKDLJC3jKxPEG5PnkqydFIpxvn/elG2JWJ8q8AoOhpMErlePAhd3AKf+A479Zfr7R/8CDv4BVH9SCwB/aKnNFehbFLh1DnArAPRdCCx5EShRH+j5Uw7tCCIiItPMm2SlZPn666/VOqmoXrp0aZXBevvtt1XBPW9vb7Rv3x5fffWVYUqtP/74Q2WzTp06pWo31KpVC0uXLlUZulmzZqlt9Ncua9euVZnDzBYQzAsybEeqyVvKRv3888/49ttv1XRiP/30k5qSTG/lypUqSTJhwgTDunLlyqngj+yfzQZ6sbGx6k2nJ29YSSkHBASgVKlSarzcgAED1DcQ0g1TUvXyjYq+Cmd+o5OLf5VTypsk7cY3WyH6XiJC/LV+wl4eaQPMa7fjVZCnF37tDsoGOXCBlmo9gAPzgTLNcuf5PXyAJ3/WgnrfTGSu6wy0vL7fIjVvHjqmfribkOAvpJq21B4IfFYaiNeqzaJYbUAqdP7zOiDdVM9t1tYnJ2hBnki8B8zspN2+dR7wLwlU6ggUrQHcDNeyjY4c+BMROQLpuZGYOgwgT8lY8Az8PyHB3YkTJ9QUWh988IFaJ2OEpdulTL313HPPqeDu3r17eOutt1R267///lOZr969e6sgp3v37mpsogSEEhy9/vrrOHr0qMqCSaAk5BrU3khwevfuXVWwUN8lU/aFBL1CgjzZD5LNa968ubWbS/kl0Nu1a5dJn2N9IRQJ7iQF3atXL1XxcsyYMYiIiFD9spcvX56mQEu+oS+1qs/M5LKSAV4wrr3o5pI2wOzzo2n3gFNXYx070HP1APo/uB9/tj3SJeeeq0xzbckI6Q8uAZrMwyeZwGcWAnO6A1f2AXPvT0kS2gy4dhyITafaqEzhsHWyFiRKlrDpSKDtWC0glDF/ORn0SRfSX54AfIoAT/zIgJKIKKskyPvEaOhAXnr7MuD+8N4y/v7+qreXZOSMh/BMmTJFXR9+8sknhqycTMMlxfQkMJSkglQ37NGjh8r+CePCfAUKFFBTa9nDsCDJ1pkXHZRCHpLBe/rpp9WQJwmEZazeggULVBZUPPnkk1ixYgVatGihXmfDhg3Rpk0b9O/f3yaKDVL22OwYPUmNG8/jol8kyNOTbppyIsubUPocG6ei8x1d7o7Ry4yygZY/lF/5bS8OXYpGQhLn1rJLxWpqP0s30rqEdv8ecPdNfVyCRjUmUALSx7WAUHEy/WZYgjyxdQpw8xyw+EXgy0rAjEeBzV8D57cDt688uC0nVwH75pmOETR2fpsWlB76Azi1OuuvmYiI7NaBAwdUsRKZSsvHx0ctlStr/0+dPn1ajauToEaCOwl4pPjIzZtaNercdP78eUN7MrrMnTv3gc8pmUjp+aZfChUqpDKaixYtwjPPPGPYTm5L8KcnAaBkLKVgi2Q2JesngXHVqlVVpo/sm81m9ChrVTdhxUBv/RstcS02AeP/OYoz1+6keTwuMQWPTd6EjtVC8N0zdazSRsqGeoOBqBNA89e1+8GVgdcOAZsmagFa9AXgRrj2WONhQPHawK4ZwBM/AXO6AQmx2hcSkhl08dACvrUfq6keEBupLeeN5sH0CgTCngRK1tcWydLJ5O0ycfuvvbXxhbJ956/UtCImzhnNIbj+M6B8W2b1iIiy2n1SMmvWkM1pfCRj17lzZxXAmNcIKFq0qApyVq1ahS1btqixalKERKpVSvKgTJkyyC3FihXLVOV38bAea9Je8zF68+bNU1U0jRMh+km4JaMpVTj1JMDr16+fWj788EP12LRp0yzOIU32g4Geo8jlYiwZUbqwt1qSUtLJstz376EI3LqbgIJeLNlrVwqVBvr+brpOxucFVtJuS5AXc0m7XbC0Fpw1fVW73+RVLairPxho/xEQeRiY3kob0+hX3PLfu3sN2P6dtujV6AMULqcFeWLPbCDmipZd9Daat1A/ZlBIIHlmHVAubflpIiJ6CAmQMtB90tosVYmUwioLFy5EaGhounOgSQDYpEkTtchwIOnCKdMjyJCh3Ko8KXOklS+fOsVRbpHM3f/+9z9DN029l19+WXVh/fTTTy3+nmQDJRCW2hdk36zfz49yhM4GMnp673R+5KHbXLx5L0/aQnnA//64gEu7tcyyjLfzCTbdRrKA8o1wp8+1sYyS7av7rPaYPjis0AEoVEYbV1cgnQHv++cBWyZrt8u11bqFnloFTK6jdeeUrpxJCVpwp7Zprf3c8k0uvHAiIrIVEsxJJu7s2bO4du2ayloNHTpUdcXs06cPdu7cqbpryng0KdwnAZxsL90UpS6EdKeUbo5S/+GRRx4xPKd0/5SpC+Q5ExPTzi+rzxzqu0waFxCU57QW+ft79uzB888/r8bmGS9SgEYqisr4xO+//x4vvfSSymjK/jl8+LAqWCM/u3TJwboAZBXWjwooRzgZJky3/iGVSdSPffgoto1ug6blA/Fx92rw83RFswqpk2tfvsVAz+ECPX1VNuleaV5YRX0jbNYFp8N4oOj9cX8efkD3acCIfcDrJ4C3woFW7wLGGWq/++V/4m4BBQoBpaQryv3scdxNrSjMxEeAX3oASXHac7b7UHs8fCMQH5u11yfB4+ZvgEMLs/b7RESU66RKpnTFrFKliqq4KUGWdJGUMXoS1Mm0CjIW79VXX1VdHGXSaSk2ItUmO3XqpLoqvvvuu/jyyy8NUyUMHjwYlSpVUhXe5Tk3bzbqLWJEAkXJHsoiJBsotyVDaC2SzZN9oR+TaEwqjF69ehX//POPqlwvgeqLL76oxuVJUZZt27apSeLlNtk3J5101qVMk3K7UuUpOjraJqoSbZ3+Khpd+hnbgnqi4VDbm68sMTlFVeZ86ZfdquumGNg4FO93rYpz1+/A080FRfy0qRrIeuQbUPnwl/l45D/BDEmMAz42GjtQvh3wzB8Z+91bF4B/3gDCemqLueungY0TAb+iQP0XtMxdfDTQaJhWrXPXQ851KQgjc/sl3gGe/hUoWh3YMwcIfkSrEqrv7ilFYe7dTC04Y2z/fGDxEG1c4egLWkaScv48IuI5ZBNkTJdkpGTMl6enff+/LJe4krWSrpIOPY8vOdx5FPeA92FmYhCO0XMUhnjdNj/I9NMvBPmmXiTP3HIWzzQsjbYT16NkQAFseKMVP4jtkZsn4B0M3LmaOpYvowqWBPr8lv7jMh6v29TU+z2+B/b+AjQZoXUPbf0ucHGXVhBGCrPIB7Dxd1cyli+gDHDthFZ9U8b7hW/QHpNsYbORQNnWWjZQgsGnZgNVHk/9/fjbwKr738gmxwMRh4ASLCREREREto+BnsOwj8RsIbMCLBNXHVc/L9y4p8btyfx8ZKfdN/WBnnTdzC0y4bosejLNQ8X2WjfOr2toWTnDtp2A66eAsi21QO/A70DCbS3Ak+qfsmz4XFv0Fg7Wxvi5+wBJd4HTa4FYLQOtyCTxRaoCs7oA3oFAr7naHIMPI5VCL+wACoUCgRW0sbQpSYCLm+lcmBKo8ltnIiIiygEM9ByFPothA2P0HiTA2zTQ++dg6kW0zLHHQM+OAz0JgvQVN/Oapz/QdQqwczrgVRgo2QBo8IL2WNxtYPdMLcgTEvidXmP5eSRrt+j5tOtL1NMKvEjBGQlk9XMBnlgOVO5kuQquTDcRFw2cWKkVg4mP0R6TLqAyplayjbWeAR6fqm0/90ltAvp2HwA1+zLgIyIiomxhoOcgdHaS0TMP9Ixdjo7L07ZQDvK/Xygls103c9Ijj2mLOU9foFQjIHy99kXIo59qQZZk2GR6husntS6alhSppgWGMhn8vKeAs5tMA7CNX2gZRv06CdgOLgDWjQdunjV9Lr8SwL0bqUVrhHRDlcyjbKsPPpcOBQ4vAXr8oGUsiYiIiLKAgZ6DcLKTjF7hBwR6N+7E52lbKBcqb1oro/cwMu5OAr0avYGg+xPEShfMuoNSu1ZKtu78di1bd2kPEBAKvLhJezw2SvspWboTq1KfV37nzFptGgcJ8mRieP0YQMncSaDmVwxo+DJQtYfWxfrWea1AzLZvga1TgL9fSw00Kz+mTRMhU0b81hfov4TFX4iIiChLGOg5DPvI6NUrE4AetYpj0d77c6cZuXHH8vw0ZEeBnruvNvWBrakzCAisqE3ibokEZBXaaYuQoO3OtdTHfYK0LpsSpN2N0uYKrP6UlhFc9xlQpgWwZ5YW5Ll5a/MGStdRS5MMS3EYIYVkjv8D3Dij3S/dFHhqDhB5CJjZGTi/BfhrBNDtO3bjJCIiokyz7fQPZZwho2ebVTeNq29O7GWhhD2AX3ecx2vz9yElxT6CVjIi0xLIVAZSFMUWz0EpmFKmWcazY84ugK/RlBGiqDY/kiJdOVuM0rJ2F7YBS4cBaz7QHms7VqvmaSnIM+ZWAOh6f/J3CRy7fqO1U6aAeHKmVjRm/6/AV1WBac2ARUO0gjKSfUzvMyA5KWOvj4iIiBweAz2HoQVHOhudXiGjFu+9hM2njTIpZB8k2zXyCPD0PDisEnVTb1fsAPgX16Z7kPfc/nlaxU8Z01f3uYw/Z2hTYMDfwLPLtakk9Mq3ATp/qQV7MZeAiAPAgfnAosFadVHpWmoe5P3xLPBlJeDM+hx4sURERGTvGOg5CjvJ6Fky5rEqJvf7/bQD1cauwMaT98dFkX2Qee0ceTLx4rVTb1fooP2s2h3o/EXq+k6fAy6Z7BEvmcZiRtlCPRk/KMHz82uA3vOBpq8Bhctr1TsXDATu3Urddt884PAi4O41YF4vIHxjpl8eERERORYGeg7DtidMN9eyUpD6+UaHSni2aRl4upmeirHxSfhi5QkrtY4IlqdYkAqctfppE73r1Xse6PO7FoyVbpyzu843RMskVnoUaPu+FvRJsZtb57TqnPIFjxSKWfmOtr1fcSDpnlYhVKqKEhGRQ5s5cyYKFiwIe3Xs2DE0bNgQnp6eqFmzJs6ePQsnJyfs27cvz9rQsmVLvPrqq+k+/v7776Nu3dRePQMHDkS3bt1gDxjoOQz7CvS+7Vsb855vgBeal1X3X25ZPs02Ry/HQKfT4eDFaFy+dc8KrSQyItnK/kuBx6ek3S3SlVOCsdxWoKA2fk+qdh77G/i+OfBrL63baEgYMHQHUK6NNoXDP2+kZvrl522jid+JiBzMwy7WsyKjF/QbNmxAly5dUKxYMRWkLFmyJEfb4cjGjh0Lb29vHD9+HGvWrEHJkiVx5coVVKtWTT2+bt06tU9v3bqV68c7o77++msVYNsDBnoON72CfQR6Xu6uaFw+EK4u2ik4pHlZvN2pMha82Aif9ghT6xKSU9B1ymZ0mbIJjT/9D6euxlq51UQ20oW00xfa+D0ZuydTPMi0KlLYxcMH6DEdcC2gTb5+Zp32O8tHaeP3pIsnERHlqDt37qBGjRqYOnUq92wmnT59Gk2bNkXp0qVRuHBhuLi4ICQkBK6utjsxgL+/v91kURnoORz7CPTMebq5YEjzcqgXGoBe9UrCxVl7HQcvRRu2WXM00ootJLIhdQYAI48C3aYBNfsCXaekjvPzLgzU7q/d3jwJOL0W2D5Nu7/yPSDu/nsqPlbr3qn/kkjcugDsnglcPWq6PiOSE4EDCzg+kIjynGTe1q9frzItkv2RRboAikOHDqFTp07w8fFBkSJF0K9fP1y7llr07Y8//kBYWBgKFCigAo22bduqwE26682aNQtLly41PKdklyzp2LEjPvroI3Tv3h3WFhUVpboZSlvi4+NVIPX444+r1y77oF69eli9erXJ74SGhuLDDz9E7969VXatePHiaYJWef3fffedeq2yr8qWLav2nbG33noLFStWhJeXl3r8vffeQ2Ji+lNnyXPu3r0bH3zwgbot+9y466bcbtWqldq2UKFCar0c64cdb2ljesf7zp076N+/v3q8aNGi+PLLL7Od6ZXs4iuvvII333wTAQEBKlCV12JMMpLPP/88goKC4Ofnh9atW2P//v3IbQz0HIWdZfQeRN6wfp5pv8k5d+OuVdpDZJNk+oeavYFu3wK1+po+1miolvGTjN7C57V1kvWTYi0bJwK3I4HprYCf2gFLXtKCtMjDwPTW2tx93zbUpnXY/E3G2iKTvH/XGFj0vDZp/OW9Of96iYjSIRf8jRo1wuDBg1W3P1mkC6BcXHfo0EGN/dq1axeWL1+OyMhIPPXUU+r3ZDsJbp599lkcPXpUBXI9evRQw0Zef/11td2jjz5qeM7GjXN4HHYOu3DhApo1a6a6PUoQ5uHhgdjYWBXoSrfIvXv3qtcj3UzPnz9v8ruff/65ykrKNqNGjcKIESOwatUqk20kcHviiSdUgNK3b188/fTTar/p+fr6qi6NR44cUcdk+vTp+Oqrr9Jtr+zTqlWr4n//+5+6LfvcmBzDhQsXqtvStVO2ked90PGWAKpWrVoWj7d44403VJAoAfzKlSvVMd+zx6ySdRbIlwISJG/fvh0TJkxQwavx/nvyySdx9epV/Pvvvyq4rV27Ntq0aYMbN9KZMimH2G5elDIpxaH2mH8BN9y8a/ot0Lnrd9Jsd/76XRT2cYe3B09lIoNCpYFqTwAHZd69a1oBlzZjgIXPAdu+1cb3XT+lbStz9ckUDlcOAHG3AJ8Q7aesW/Ue4OwKNHrZ8s69ekwrBHNK/+2wE5CSBKfFQ+DUbQEPCJEj2TIF2JqBrolFawB9fjNdN+9p4EoGshfyJVXjYVnqSufu7q4ySZJN0ZsyZYoK8j755BP1JbKYMWOGCgpOnDihgqCkpCQV3EnXQSHZPT3JXElWzPg5bZUEQu3atVOZvEmTJhlerwRvsuhJ5m7x4sX4888/MWxY6r5u0qSJCvCEZOU2b96sgjR5TuNgRbJS+ueRQGby5Mn49ttv1bp3333XJEsogdtvv/2mMl2W6LtoSnZNv4+Ns2/SjVMyZCI4ONiku2R6x1uCPDneejOMjreMofzpp5/wyy+/qCBLH6CVKFEC2VW9enU13lBUqFBBtUWCa9l/mzZtwo4dO1SgJ8G3+OKLL9RYTgnIhwwZgtzCq2OHy+g5RpLWr4BbmnXnrt/FpVv38Mu2cxjUOFRV5mz95Xo8UtQP/45oZpV2EtmsJiO0QE9IAZnQZsCe2UD4ei3Ikwqdzf4HrHgHCN+QWlm07x9a4RnJ5q37BFjxNuBfAqjSNfW5E+8Bq8YCO38EdMmAsxvQ8EWtAumMjnC6fgq+Wz8Fet7vMkpE9i/+NnD78sO3kzlGzckXThn5XfkbOejAgQMqYyOZJnPSpbF9+/bqgl+CO8n8yf2ePXuqboK5SbJpVaqYTi31MN9//73Kolly7949lcnr06ePCvKMSTAr3QiXLVumMl8S2Mr25hk9yZCZ3zd/LkvbGFfHnD9/Pr755hu1b/VBtHRTzCuSaVy7dq0KHM2dPn1ave6EhAQ0aNDAsF4CyUqVKuVIoGdMuoVKYKdvl+wP6RpsTNoj7cpNDPQchJOdVd18mDvxSWnWSeXNL1ccx6K9l1Sw92YH7Y159EoMbsclwtczbXBIlG+FVAOemq19JpRprq3r8AnwU3ugQCFg4F9AQFltkneZbF2qdj7xo1bQRbR4E4iNBHb9pE3U7lcsddJ4Cf52zdBuV34MaPdB6oTv3b8DZj8OryPzoVuUrK0PrAhUeRxw4XuUyG55+AK+xR6+nVeg5XUZ+V35GzlILq47d+6sutLpM1zGF+KSMZKs1JYtW1Q3PslOvfPOO6r7XZkyZZBbJLOU2ekDZLxZeiRLJGML//77b9U1UcbY6UlWTV6jZJDKly+vspQSzErAk5O2bt2qAtFx48apoFmyrJLNy8oYuOwcb+mW+tlnn6V5rGjRojh16n5Pllzg5mb6/5ucbykpKYZ2yd+3NMYzt4u6MNBzFA40Rk80rxiE01F30K5KEfSsUwKv/LoX8Ukp+PeQViL+dlwSomJTP6R2nb2JVpWDrdhiIhskwZV58PfKXm2aBv3k9qUaAK8dSvvZIfc7TtC6cJ5YDvzWFxiyDog6mhrkPTXHNNMnyraErtEwOG2dAqdDRgP1pcuXVAQNLK+NCZRuXBJoemndcjJMxh3GxQCVOjJwJMpL0qUyC90qFfOunLlAuvIlJyebrJNufDLGS7oRml+IG1+QS7dFWcaMGaO6cErXxpEjR1p8zpwg3RUl6Mopzs7OmDNnjsroSfESCSgkmBTSBVOKh+gLxUjQoS9cYmzbtm1p7j/yyCNp1kkhE+P7so+FBMuy7yRQ1jt37ly2X5scA2F+HCwdGxn3pj/elqp2litXTp0HEsiXKlVKrbt586bq1tmiRQvkFmlXRESEapO0LS85Rj8/MuIYgd5bj1bGX8Oa4od+ddChagjKBHqr9fcSU9/Uq46kVuE8EZmz3T2IHLqIiz7I00vvCyIXVy3LF/QIEBsB/NYHWDpce6ze4LRB3n26th/g5qPfIqXVu0CdgYCnP3B5D/B9M22szoSywI9ttOyidAPNqBMrVbYQv/cDJoUBGz4Hbp7LfIVQInI4cgEtF/ASxMg4L8mmDB06VF3ISwC0c+dO1U1uxYoVGDRokAoSZHsZzyWFO6Qr46JFi1TVSn2AI88p3T9l/Js8Z3oVJCV4kgydPksXHh6ubpt3j8xNkp2cO3euGo8nBUkksNCPF5PXJe2RLoSyL/SZJmMSEErmU4Ieqbi5YMECVZDFmKyTMW+yjYxHk3Fn+nF+8nfk9UoWT/azdOGUgDm7JHiUYFyylXJsZF8/6HhLcRMpsGPpePv4+OC5555TWc///vtPVeiUIFgC5dwk2Vbp5iqVOiVzLG2WwFiCYjn3chMDPYfhWBk9mW4hrIS/oatF6cJeabaRLpt6X685iW/WnFSVsogoB0lXqt7zAM+CWrAWcxEoVAZoNy7933FyQnxoG20MYJevgZe2aN1HZSL3E/8C8fffu9dPAuvGZ6wdN8K1qp7C1RO4fQX47yPg6+rAp6WBnzpoxSIkW6iXcBfY/gPw5yvAnO7A1AbA7/2Bc1tSg8PEOODsJm0+Qn5+ENkt6aIowY6MfZMS9hJ0SFZLsltykS/j72QsnkyyLd3l5OJexo/JZOdSlVIKkEgxEelqKOX5hVR1lPFbMl2BPKcEQ5bIxbpktvTZLckGym3JEOYlyRj9+uuvqpKlBHsyRmzixIlqzKFUDJVujdKtUjJM5qTypf51yFQR8nuyrTHplimBnIxHmz17tvpb+rGGXbt2xWuvvaYCPymAI4GMVOnMLumGKn9XCsVI91V9YJne8ZZjlN7x1lcXlfGMsi8kAJM5/OrUqYPcJNey//zzD5o3b66CTjnXpGKpZDwf1CU3R/62jlfGWRITE6P6H0dHR+fpQNP0bP/6GTS4+Re2lnoRjZ5N2zfZ3o3/5yi+33DmodvNH9IQDcqaDnaljJNvxOQ/BqluldvfcJGdkfn4fumhBUOD/gVKmw7Kf+h5JN8gS3EYmauvXCtt/J9kCGUaiMFrUucBtESyfjIVRMRBoHgdoP9S4Ng/WjEYmcohxSi4k7GGXb4BboYDK8dogaklRWtqYxXPbwWS4rR1hUKB6r2AGr2BgNwbn0MPx88i64mLi1MZKRmj5unpCXsml7hSEEQCIPMxepRKsmMSEMmSHtl/kqEznj8uv9BZ4Tx60PswMzEIx+g5WjEWB/0gK2Uho2fJuhNRDPSIcoMEZ4PXahmzkvUy//sS8NV42nSdTAFxaKHWHbTxcO32jTNad8+GLwHOLsCd68DfI7Qgz6uwVmBGsow1JCDrBSQlaJnBs5uBtR9r28kcgXr+JYGafYCCpQDvYG1qiQPzgStGhRBkSgmp9nfzLLD+M2DTV0DXyWnbS0REZEcY6DkMxw70SgdoY/T0c+xF37PcT37J3kuIjUvC4GZlMxwcElEGFauZs7vq0c+A0/8BkQeBxUbzCMncfBL0VeoEbJ0MxEVrU8f0nKFN9WDM1R0oUlVbqnYDlo/Sfte1ANBspBZAuhVI3b5ie6DNWODg/Xn+yrYEgipp3UolS7j7Z+DcZmDxC0DUMaD1GC1IJSIisjMM9ByFYWyJYwZ6lUJSSy7XLV0Inu4uWHbgirrfuFxhNabvv2NXcSU6DnO2ncORKzFY+FJjK7aYiB7KJwh47Cvgj+e0CpyS4ZMqnP99rI0HlEUUCQM6fgaENnnI8wVrwaDMIShZOik8Y4l3YW3eP2Pu3kD1J7U2rP0I2Pilltk7v02bWiIpXiti0/4j7X5mSWZyxw9atdCcDpiJiLLBUhVOcxzpZZ8Y6DkMx87oBfl6YHTHyvhq9QkMbl4WDcsWxuiOd3HqaixaVgpGZEwcGnyyxrD93vM3rdpeIsqgqt2Bih21IEr/+SXTQkhm7vI+oOlrQK1ntG6cGVW0RtZ3v2Tv2owBgioDS4dpY/hMHncFevyQuee8dhKY21PrGrrtO+C5lUBw5ay3kYiIKAMY6DmKfFAt7oUW5TCkeVnDQNgShbzUIoJ8PODm4oTEZJ0hMBRXY+JwPPI2mlUIsmLLieiB3MwKPviGAE/OtO5Oq/6UNpn8qdXafH1SEGbNOK3LZ4u3UieIf5jwDcD8Z7Tup9LjIj4amPck8PwaLQNJZKOYwSGy//dfvg30ZE6UXr16mdyXMrH2Wk3IkMeTcSwOLL1qR87OTvDzdMP1O9ok6oE+WqDX47stuHjzHmY9Wx8tKjLYI6JMKFJFW/SkG+fJFcCGL4Du36XtmimPHf8XuHVe+yyWzyuZGD4lCShRH3h8CjCvl1YR9NfewMC/TccPEtkA/cTid+/eRYECPD+JrEHef8bvx6zKt4GezIuin9hSJl+U0rLt2rWD/XLsMXoZ0bBcYcO4vcTkFFy9HaeCPLHycAQDPSLKnpZvacGcVO1s8YY2rlC6Y/71KhC+HtClnYRYkXF/j3+rZS77/qFNFn9plzZlhJ9ZcRkyVJIuGB8PJw+PfP3/mjVIJ+mCAQ1x9V49IDYAXu4udnsE5MpIBx2S4GS3r4Fs4zxKcfVEkk9Qrk+vIJk8CfJkiiKZ/0/mCsyOfBvoGfvzzz/Rpk0beHunVna03zF6yLc+erwaapYoiI//OYoTkbH4YX3qvHvXYuOt2jYicgAyh1/5dsCpVcCGL4Fq3bVCMnG3UovGVO4EFKutZfMk8JO5+ko2SB1/GFgeeHouMLubNhWELJSG7C37nsHNvoVgOVChD66W7gi4uFu7OURWp3PzArxi82wePQnyQkJCsv08NhvobdiwQc1ev3v3bly5csXiJI1Tp05V20RERKBGjRqYPHky6tevn+m/9fvvv6N///6wZ87JWpdFp8wULHAwhbzd0TEsRAV64sdN4YbHtoffwO24RPh6Zi8FTkT5nIzPk0Bv/zxg31ztSzYJAHtMz/i4vdCmwEtbgAvbcru1ditFp8PtmBj4+vnB2UGLjNky2eNFAQTropFou5eKD5UCHe7E3oG3jzec8/M34ZTt8ygayfAPrQPnPJhuR7prZjeTp2ez7947d+6o4O3ZZ59Fjx490jw+f/58jBw5EtOmTUODBg0wadIkdOjQQY21Cw7WBrjXrFlTzWRvbuXKlShWrJhhdvktW7bgt99+gz0LuKsFNZ4hFZGfFfSy/M3jrbuJ6D9jB+4lJOP19pXQtko6ZdeJiB5EJosv11qb/0/I5O4dJ2hVQzMjqKK2kGUpKbh39Sp85f9zzmNoNXKpac9fH6ekpCDm6lV4BgfnyQU6OaYU/Xnk6Wl355HNBnodO3ZUS3omTpyIwYMHY9CgQeq+BHzLli3DjBkzMGrUKLVOPwbvQZYuXYr27durg/cg8fHxatGTAFF/8GWxtuBX/sOeXf+hTM2WNtEeayngmvYbu0ZlC2PrmevYe17rXjVp9Qm0rszCLJbIuSP9w/PzOUTZ5/Dn0aOfwWnlO9A98jhQs4+2zlFfq5U4/DlEeYLnETnieZSZdthsoPcgCQkJqkvn6NGjDeskwm7bti22bjWb8ygD3TaHDBny0O3Gjx+PcePGpVkfFRWFuLg42MJBL1A8DPfikxB/9Srys3KBBXD6mlaERTQp7aUCPb1jETFYuuMkzt2IQ8+awXB1ZncO4/MoOjpafaDZ27dWZDsc/zzyA9pM1m7m88/b3OL45xDlBZ5H5Ijn0e3btx070Lt27RqSk5NRpIhp9zu5f+zYsQw/jxy0HTt2YOHChQ/dVoJK6SpqnNErWbIkgoKC4OfnB1s4CWWAqLTHFk5Ca1r4UiFciY5Dx282qfsdaoTii7UXDI8npQCvLTmlbrsX8MKLLTI4riYf4HlEPI/IFvCziHgeka1IsbFr7If1QrT7QC+n+Pv7IzIyMkPbenh4qMWcHHBbOOhCTkJbao+1FPT2UMuilxvDxckJZYJ80t121dGreLlVhTxtn63jeUQ8j8gW8LOIeB6RrXCyoWvszLTBLgO9wMBAVY3GPEiT+zlRipQcQ+1ShR66zYGL0Ri96ACCfDzwatuKauJ1IiIiIiJ7Z/2wNAvc3d1Rp04drFmzxiStKvcbNWpk1baRbXrvsSqoU7oQtoxqjZYVUwuxJKfo8OuOC/jmv1PYc/6mVdtIRERERJRTbDajFxsbi1OntHFUIjw8XFXRDAgIQKlSpdR4uQEDBqBu3bpq7jyZXkGmZNBX4SQy9lzTMmoRP/Svi6lrT+LrNannlzh4KRp1QwO444iIiIjI7tlsoLdr1y60atXKcF9fCEWCu5kzZ6JXr16q4uWYMWPUhOkyZ97y5cvTFGghMufu6ozX2lVSmbyrt1OnzBj31xEkJqWgWcUgFPJyR4h/xge7EhERERHZEpsN9Fq2bKnKmD7IsGHD1EKUFUX9PU0CPfHJv8eAf4+hVIAXFr/cGBExcahazJ87mIiIiIjsil2O0SPKCcF+6Wfszt+4i65TNqPzN5vw37GMVWYlIiIiIrIVDPQo3/L1SJvQfrVtBTxSVJsX8dItbdL1Z2fuwpmo2DxvHxERERFRVjHQo3zL0lQKXWsUQ+vKqVU59Z6bteuhXYmJiIiIiGwFAz3KtyzNmFe6sDdqlCiYZn34tTs4Hnk7T9pFRERERJRdDPQo3+pas5j6WTbIG188WQOznq0PF2cnhAZ6m2znc7+L56rDHKtHRERERPbBZqtuEuW2ZhWCsOjlxigb6I2CXu6G9aGFTQO92Pgk9XPtsavoVqs47iYko1KILw8QEREREdksZvQoX6tdqpBJkKefZ89S9849F26h2YS16DBpA6Jux+Ofg1dwOy4xD1tLRERERJQxDPSIHsDDzRmFfUwDQTHy9314ee4eDJ23l/uPiIiIiGwOAz0iC8Z2qaJ+TnyqJn4d3NAkyyc2nrymfm44EcX9R0REREQ2h2P0iCwY1KQMutcqbujWObRlOXy1+qTFfXUtNh6BPh7cj0RERERkM5jRI0qH8di97rVKpLufftl2jvuQiIiIiOw/o3f+/HmcO3cOd+/eRVBQEKpWrQoPD2Y0yHGVDCiQ7mOTVp9EzZIF0bJScJ62iYiIiIgo2xm9s2fP4q233kLp0qVRpkwZtGjRAh07dkTdunXh7++Pdu3aYcGCBUhJScnoUxLZDScnJzXPXufqRQ3rKof4okn5wur29+tPW7F1RERERERZCPReeeUV1KhRA+Hh4fjoo49w5MgRREdHIyEhAREREfjnn3/QtGlTjBkzBtWrV8fOnTsz8rREdqVFxSBM7VMbPw+sh1fbVsCkp2visyeqqykYtp65gRrjVuC9JYes3UwiIiIioox13fT29saZM2dQuLCWvTAWHByM1q1bq2Xs2LFYvnw5Lly4gHr16nH3kkNqVTlYLeKv/ZcN66PvJWHOtnMY17UqnJ2NZ+AjIiIiIrLBQG/8+PEZfsJHH300O+0hsitF/DxRwN0FdxOSDetu3U1AAKtwEhEREZE9Vd28d++eKsKiJ0VZJk2ahBUrVuR024hsXv0yAZgxsB4KuLkY1tX7eDUmrTph1XYRERERUf6W6UDv8ccfx+zZs9XtW7duoUGDBvjyyy/RrVs3fPfdd7nRRiKb1rBsYfw0oK7hfrIOmLTmJKLvJVi1XURERESUf2U60NuzZw+aNWumbv/xxx8oUqSIyupJ8PfNN9/kRhuJbF7j8oEo7J06754Y9PNObD19Hc/8uB1nomKt1jYiIiIiyn8yHehJt01fX191e+XKlejRowecnZ3RsGFDFfAR5VeBZuPy9py/hd7Tt2HTqWv4Zs1Jq7WLiIiIiPKfTAd65cuXx5IlS1RlTRmX1759e7X+6tWr8PPzy402EtkFb4/UcXrm4hJTEBkTh78PXIZOp8vTdhERERFR/pPpQE/mynv99dcRGhqqxuc1atTIkN2rVatWbrSRyC74eLql+1hUbDw6f7MRw+btxT8HI/K0XURERESU/2RoegVjPXv2VJOjX7lyRU2irtemTRt07949p9tHZDd8HpDR233upuH26qOR6Fy9aB61ioiIiIjyowwHeqVKlULXrl3VIpOjh4SEmDxev3793Ggfkd3wds/Y22n7meuq+6aTEydVJyIiIiIrd92cM2cOPDw8MHToUAQGBqJXr16YO3eummKBiKTrZmqg91TdEurnSy3Lpdk1l6PjcO76He4yIiIiIrJ+oNeiRQs1X97JkyexefNm1KxZE5MnT1aZPcnwyaTpZ86cyb2WEtk4H4/UQK9H7RLY8147vNmhksVt3/jjAIuyEBEREZHtFGMRVatWxejRo7Ft2zaEh4ejd+/eWLNmDapVq6aWZcuW5XxLiewo0PPzdEOAt3ua7pn6ezvP3sTHy45i7bFIjFl6CNH3EvO4tURERETkyDJdjMVc0aJFMXjwYLXIHHsy5YJ08STKb7yNAj1/r7QVOH09XPF6h0oY++dhdf/HTeGYs+0c4pNScDziNn4b0pDj9oiIiIjIuoGezJsnS0pKisl6Vt6k/MrVOTV752c0Xq9p+UA1afpzzcpgQONQ/L7rAg5fjlGPSZAntoffwGvz9+HzJ2vAzSVLiXYiIiIioqwHert378aAAQNw9OjRNGOMpJtacnJyZp+SyCGkGL0dvI0qcE7uXQtbz1xHuypF1P0RbSpgyJzdJr8rIeKSfZdRNzQAzzQsnWdtJiIiIiLHlOnUwbPPPouKFStiy5YtqviKjNHTL7ZajEWyjIUKFVJzAGbmMaLMSDb64sPZKLtXyNsdncKKGjJ1LSsFo5BZ1079by7ac5E7nYiIiIjyPtCTYG7ChAlo0KABQkNDUbp0aZPFFo0YMQKzZ8/O9GNEmdGobGH108s9/YnThburMz7uHobC3u6G7p7Bvh4qq7fn/C20m7getT5YiW1nrvMAEBEREVHedN1s06YN9u/fj/Lly8NetGzZEuvWrcv0Y0SZUT7YB6tea45An4cXI5IMX/sqRZCUosOiPZfQuFxhfPj3Eaw5dhUnr8aqbRbuvoiG94NHIiIiIqJczej9+OOPmDFjBsaNG4eFCxfizz//NFkya8OGDejSpQuKFSumxvgtWbIkzTZTp05V2UNPT0+VSdyxY0em/w5RXqhQxFd11cwIVxdneLq5oE+DUggN9MZnPavj3c6PoGIRH/X4gYvRudxaIiIiInJUmc7obd26VU2Y/u+//6Z5LCvFWO7cuYMaNWqosX89evRI8/j8+fMxcuRITJs2TQV5MjF7hw4dcPz4cQQHB6ttZPL2pKSkNL+7cuVKFUAS2QPJBD7frCw6VgtBk8/W4kTkbdxNSIKXUWEXIiIiIqKMyPQV5PDhw/HMM8/gvffeQ5EiWhXB7OjYsaNa0jNx4kQ1R9+gQYPUfQn4ZEJ2ySqOGjVKrdu3bx9yW3x8vFr0YmK08vgyvYT5FBPWIG2QKqi20BbKuuQUnerCqS/Q8sWKY3i3c5U826U8j4jnEdkCfhYRzyOyFSk2do2dmXZkOtC7fv06XnvttRwJ8h4mISFBTecwevRowzpnZ2e0bdtWZRbz0vjx41V3VXNRUVGIi4uDLRz06OhodSLKPiL7Vdwn9fjN2HwOQR46dK8elCd/m+cR8TwiW8DPIuJ5RLYixcausW/fvp17gZ50r1y7di3KlSuH3Hbt2jXVFdQ8qJT7x44dy/DzSGAoBWSkm2iJEiWwYMECNGrU6KGPGZNgU7qQGmf0SpYsiaCgIPj5+cEWTkLpOivtsYWTkLLu7a5BOH49AZtOaVU3P/vvPAr6+6FqMT/4FXBDqQCvXNu9PI+I5xHZAn4WEc8jshUpNnaNLTVLci3Qkzn0JOjZtGkTwsLC4OZmOh/YK6+8AluzevXqLD1mzMPDQy3m5IDbwkEXchLaUnso634eWA9dpmzGsQjtW5vRiw+pn55uzjj2YfpdnXMCzyPieUS2gJ9FxPOIbIWTDV1jZ6YNrlmpuunj44P169erxXwn5GSgFxgYCBcXF0RGRpqsl/shISE59neIbI2bqwv+eaUpuk7ZjEOXtfGgIi4xBfFJyfBwffBcfURERESUv2U6LA0PD093kcnUc5K7uzvq1KmDNWvWmKRP5b6l7pVEjkS+sfl1SEPcn1PdYO6289ZqEhERERHZCavXbY+NjcWpU6cM9yVglCqaAQEBKFWqlBoXN2DAANStWxf169dX0yvIeDp9FU4iR+br6YZGZQtj82ltvJ74dcd5VCnqh3UnojCyXUW4u1q/GwERERER2Xmg98QTT6iA66233jJZP2HCBOzcuVMVM8mMXbt2oVWrVob7+oInEtzNnDkTvXr1UpUtx4wZg4iICDVn3vLly/Ok6ieRLahesqBJoDekeVk8PX2buh3o467m3iMiIiIiMpbpVMCGDRvQqVOnNOtlLjx5LLNatmypypWaLxLk6Q0bNgznzp1T89ht375dTZxOlF8817QMHimaWtl165nUoG/vhVs4HRWLlBSZdY+IiIiIKIuBnnS1lLFz5qT6pn4ScSLKOYE+Hvh3RDMMbByq7i/ac8nw2LIDV9Dmy/UY+fs+9QUJEREREVGWAj2ZUmH+/Plp1v/222+oUqUK9ypRLinil/68KUv2XcavOy5w3xMRERFR1sbovffee2rS9NOnT6N169ZqnVTB/PXXXzM9Po+IMq6IX+o8jlJ/JSnF9PGJq46jd/2SapoTIiIiIsrfMp3R69KlC5YsWaIqZb788sv43//+h4sXL6qJx7t165Y7rSQik4xew7KBeLNDJZO9ci02AX/svsg9RURERERZm16hc+fOaiEi62T0WlUOxrNNQvFUvRIYs/Qw/jkYodaPXnQQxQsWQOPygTw0RERERPlYhjJ6LPJAZH3BRhm9FhUDVRfNQB9PfP10LVQo4qPWJ6XoMHDmToz4bS/uJSRbsbVEREREZPOBXtWqVVWxlYSEhAdud/LkSbz00kv49NNPc6p9RHSfn6cbxjxWBW93qozywb6G/eLm4owJT1Q33E9ISsHSfZfx/p+HVTXOv/Zf5j4kIiIiymcy1HVz8uTJaoJ0GZPXrl071K1bF8WKFYOnpydu3ryJI0eOYNOmTTh8+LCa806CPSLKec82LWNxfc2SBdHukWCsOnrVsG7+rguG6Ri61CjGw0FERESUj2Qo0GvTpg127dqlgjmZWmHu3LlqAvN79+4hMDAQtWrVQv/+/dG3b18UKlQo91tNRCakG+eUvrXx9qKD+PvAFcSbleSMT0qGh6sL9xoRERFRPpGpYixNmzZVCxHZHgnkvnyqJj7uHoamn/2nqnDqDZ69G/vO38Sfw5oiNNDbqu0kIiIiIhucXoGIbJunmwv6NChtsm7DiSjExCWpsXtERERE5PgY6BE5oJdblsMXT9ZAm8rBJuv/OcRAj4iIiCg/YKBH5KBZvZ51SiCshL/J+uMRsdhx5joW772IX7ads1r7iIiIiMgGJ0wnIvtQNkibX89Ynx+3q/n2RMtKQShRyMsKLSMiIiKi3MSMHpEDK2tUeKWAm1Z1Ux/kiZNXY63SLiIiIiKywUDv9OnTePfdd9G7d29cvarN2/Xvv/+qefSIyHaUDfJWAZ67qzOWDG2CYgU9TR6XbpxERERE5HgyHeitX78eYWFh2L59OxYtWoTYWC0jsH//fowdOzY32khEWeTl7orZz9XHL881QKUQX/z7SnNUK+5neHzmlnMIv3aH+5eIiIgovwd6o0aNwkcffYRVq1bB3d3dsL5169bYtm1bTrePiLKpXmgA6pcJULf9vdxU0Ff8fmbvXmIy+kzfhvPX7xq2P3cjDvGJydzvRERERPkp0Dt48CC6d++eZn1wcDCuXbuWU+0iolxS0Msdnz1R3XD/SnQc3lq0H9H3ErHqSCR6zT6Md5eyGzYRERFRvgr0ChYsiCtXrqRZv3fvXhQvXjyn2kVEuahmqUIm97eevoHHJm/E1HWn1f2/9l9G9N1EHgMiIiKi/BLoPf3003jrrbcQEREBJycnpKSkYPPmzXj99dfRv3//3GklEeUoHw/TmVWCfD1w4cY9HLgYre4nJOvw90FOrk5ERESUbwK9Tz75BJUrV0bJkiVVIZYqVaqgefPmaNy4sarESUT2oaCXm/oZ4ueJSb1qGta7uzipn4v3XLJa24iIiIgojwM9KcAyffp0NcXC33//jV9++QXHjh3DnDlz4OKizdNFRLbvq6dqonnFIPz+QiM0KR+Ifg1Lw8UZ0E+zt+vcTewIv2HtZhIRERFRFpj238qEUqVKqYWI7FOrysFq0RvbpQq2nrmGU1dTp1t4Z/FBLH+1OVyctSwfERERETlQoDdy5MgMP+HEiROz0x4ishJXF2f8PLAenpq2BVdiEtS6k1dj8cPGM3ipRTkeFyIiIiJHC/SkoqaxPXv2ICkpCZUqVVL3T5w4obpt1qlTJ3daSUR5onjBApj6REUMW3wKl2/FqXWfLz+GQ5duIep2AmYOqqcmYSciIiIi25ahK7a1a9eaZOx8fX0xa9YsFCqklWi/efMmBg0ahGbNmuVeS4koTxTz98C85xvg6enbEREdp8bsLTsQoR7bHn4DrSqldvckIiIiIgcpxvLll19i/PjxhiBPyO2PPvpIPUZE9q9UgBd+G9wQhe5X5tQ7cOGW1dpERERERLkY6MXExCAqKirNell3+/btzD4dEdmo0EBvLHypMQp7uxvWzdp6Dsn6spxERERE5DiBXvfu3VU3zUWLFuHixYtqWbhwIZ577jn06NEjd1pJRFZRNsgH819oBD9PV8NE66zASUREROSAgd60adPQsWNH9OnTB6VLl1aL3H700Ufx7bff5k4richqygf74Kv7E6pfib6Hzt9sxGOTNyI+KZlHhYiIiMhRAj0vLy8V0F2/fl1V45Tlxo0bap23tzdskWQhZRxhz5490zwWGhqK6tWro2bNmmjVqpVV2kdk61pUDIK7izMSk3U4fDkGhy7FYMGui+zGSUREROQogZ6eBHUSIMliqwGe3ogRIzB79ux0H9+yZQv27dtnUl2UiEzn2CsbZPo+/2LFcfT+YRvuJiRxVxERERHZmExPiCVZLycnp3Qf/++//2BrWrZsiXXr1lm7GUR2zdnofe/t7oJb9xKx4+wNPDdzF2YMrIcC7i5WbR8RERERZSOjJ10ca9SoYViqVKmChIQENYl6WFhYZp8OGzZsQJcuXVCsWDEVQC5ZsiTNNlOnTlVdLD09PdGgQQPs2LEDOUX+ZosWLVCvXj3MnTs3x56XyNF0CgtRPysV8UW/RqUN67eeuY7nZ+9EXCLH7BERERHZbUbvq6++srj+/fffR2xsbKYbcOfOHRUwPvvssxards6fPx8jR45URWAkyJs0aRI6dOiA48ePIzg42BB8JiWl7T62cuVKFUA+yKZNm1C8eHFcuXIFbdu2VcGqdEclIlPPNyuLQt7u6BxWVFXfXHbgCi7cvKce23zqOgbP3oXp/evC042ZPSIiIiK7C/TS88wzz6B+/fr44osvMvV7UsFTlvRMnDgRgwcPVlM6CAn4li1bhhkzZmDUqFFqnYyvyyoJ8kTRokXRqVMnlZm0FOjFx8erxXg+QZGSkqIWa5M26HQ6m2gL2a8HnUfuLk7oXa+k4f5H3aphwM87Dfc3nryGF+bsxrRnasHDlcFefsbPI+I5RLaAn0XkiOdRZtqRY4He1q1bVdfKnCRdQnfv3o3Ro0cb1jk7O6vMm/y97JJsouwsX19flY2U8YVPPfWUxW3Hjx+PcePGWZwoPi4uDtYmryM6OlqdiLKPiHL7PKrkD0x8vDy+WHsel2MS1Lr1J6Lw/M/b0b9uCIoX9ECgtxsPRD7EzyPiOUS2gJ9F5Ijn0e3bt3Mv0DPvXikvWro97tq1C++99x5y0rVr15CcnIwiRYqYrJf7x44dy/DzSGC4f/9+FdiVKFECCxYsQKNGjRAZGammXhDydyRzKGP1LJFgU7qQGmf0SpYsiaCgIPj5+cEWTkIZbyjtsYWTkOxTZs+jbsHBOHYzGT9sCIersxOSUnTYHB6tlirFfPH3sKZ50m6yLfw8Ip5DZAv4WUSOeB5lJrGW6UBPghrjqpvygitVqoQPPvgA7du3hy1avXq1xfVly5ZVAWBGeHh4qMWcvH5bOOhCjosttYfsU2bPo6L+BdTPOqULYt+FaMQnaV0Kjly+jXM37qFMoG1Pv0K5g59HxHOIbAE/i8jRzqPMtCHTgd7MmTORVwIDA+Hi4qIyb8bkfkiIVgGQiKwrxE/7Zkniu6rF/LDn/C3DY6uORGBI83JWbB0RERFR/pTpsFSyYNevX0+z/tatW+qxnOTu7o46depgzZo1JulTuS9dL4nI+oLvB3oR0XGIjNEKFnWtoVW7XXYwAt+vP43Np65ZtY1ERERE+U2mM3pnz55V49nMSUXKS5cuZboBUgTl1KlThvvh4eGqimZAQABKlSqlxsUNGDAAdevWVVU9ZXoFGWunr8JJRNYV4q8FepExcUjW6dTtIc3L4s/9l7H/wi21+Hi4YO977eHmav0uD0RERET5QYYDvT///NNwe8WKFfD39zfcl8BPsmwyqXlmSRGXVq1aGe7rC55IcCfdRHv16qUqW44ZMwYRERFqzrzly5enKdBCRNYR5KONXZVCLMLX01V14axRsqAK8kRsfDJemrsHP/SrA2fn1DG+RERERGTlQK9bt26GwYgShBlzc3NTQd6XX36Z6Qa0bNlSVe58kGHDhqmFiGyPu6szAn3ccS1Wm2JBiq/I58T47mGYt/0c5m4/D3mHrz4aidGLDmJ8jzAGe0RERES2EujpJ+crU6YMdu7cqQqlEBGJIn6ehkAvtLBWZbNKMT981D0MdxKSsHjvZbVu/q4LKsj7uFs1BntEREREuSjTA2ZkDB2DPCIyD/T0Qs2mUxjUpIzJ/V93nMfYPw8/NJNPRERERLmc0fvmm28wZMgQNUGf3H6QV155hceDKB8HemUCvUweq1rMX43bux2XBBmdJ+HdnG3nkKLT4aNu1Uzm5SQiIiKiPAz0vvrqK/Tt21cFenI7PXLBxkCPKP/OpWfcdVPPxdkJjcsVxorDkSrI05Oxe55uLni38yMM9oiIiIisEehJd01Lt4mIRBE/rfKmvhiLuXc7V1HB4N4Lt3A1Jh4RMXFq/U+bwhHs64EXWnBSdSIiIiKrzqNHRGSuyP259Ap5uaGgl3uax0sGeGHc49XUbRmb1+CTNbh6Ox6Fvd3xeM3ihvF67MZJRERElIeBnn5uu4yYOHFidtpDRHaodqlCqFjEB60qBz90WwnmXmpZDuP+OqICQ8kGyjoWZyEiIiLK40Bv7969GXoyfhtPlD/5F3DDytdaZHj7HrVL4LPlx3Aq6g42nryG5hWDkJScIh8icHPJdDFgIiIiIspKoLd27dqMbEZElOHAsE/90pixORyTVp/Akn2XsOpwhJqa4dFqRTG0VXnuSSIiIiJrjdG7cOGC+lmyZMnsPA0R5UMvtiiLudvPYc/5W2oRBy/FqEUqdb7IAi1EREREWZbpPlJJSUl477334O/vj9DQULXI7XfffReJiYlZbwkR5SvBfp7o26C0uu3sBPh4uBge+/TfY3jzj/1WbB0RERFRPsvoDR8+HIsWLcKECRPQqFEjtW7r1q14//33cf36dXz33Xe50U4ickCvtCmPW3cT0L5qERT1L4Bu327G/QKc+H3XRZQN9MGLLTn1AhEREVGuB3rz5s3Db7/9ho4dOxrWVa9eXXXf7N27NwM9IsowmYphYq+ahvt/DWuK79efxl8Hrqj7ny4/Bk83ZwxsUoZ7lYiIiCg3u256eHio7prmypQpA3f3tPNnERFlVLXi/pjcpzYerRpiWPf+X0cwZ9s57kQiIiKi3Az0hg0bhg8//BDx8fGGdXL7448/Vo8REWXX1D61EOiT+sXRe0sO4bt1p5Cccr9fJxERERHlbNdNmVNvzZo1KFGiBGrUqKHW7d+/HwkJCWjTpg169Ohh2FbG8hERZZaLizNmDKiHx6duhj60+2z5cUREx2Hc49Vw8eZdJCSloGyQD3cuERERUU4EegULFsQTTzxhso7TKxBRTqtesiCGty6Pb/47ZVg3b8d5PFm3JPr+uB33EpLx1/CmqBTiy51PRERElN1A7+eff87srxARZcnwNhVwLTZeZfWOXLmN/Rduoff0bbgdl6Qef3vxQSx4oRGcZX4GIiIiIsr6GD0iorzi5uKMT3pUx/ge1TGsVXm1Th/kubs4Y/e5m/h153keECIiIqLsBnoyV97QoUNRpUoVBAYGIiAgwGQhIsoNbSoHo1yQt7rt6+mKxJQUdfuDv45gz/mb3OlERERE2em62a9fP5w6dQrPPfccihQpAicndpkiotwn3TO/6V0L4/48jB1ntcBOPn3ik1Lw/KxdWPxyY5QurAWCRERERPldpgO9jRs3YtOmTYaKm0REeaVqMX/8NqQRRi06gN93XTRU5LxxJwHj/zmGaf3qqPtSkXP4r3tQ1L8A3u9alQeIiIiI8p1Md92sXLky7t27lzutISLKQGbv0x7V8UTtEibrVx6JwNWYOHV7/YkorDgciZlbzuLc9Tvcp0RERJTvZDrQ+/bbb/HOO+9g/fr1arxeTEyMyUJElBfB3oSe1dGtZjHDOplL/dN/j6nbfx+4bFi/7OAVHhAiIiLKd7I0j54EdK1btzZZr9Pp1Hi95OTknGwfEZFFLs5O+OLJGkjWAX/t1wK7RXsvoWNYCFYfiTRst+zAFbzcUqvYSURERJRfZDrQ69u3L9zc3DBv3jwWYyEiq3J1ccZXT9VAYlIKlh+OUOtemLNbZfeCfD3U2L3Dl2MQfu0OygSyUAsRERHlH5kO9A4dOoS9e/eiUqVKudMiIqJMBnuT+9RC52824kRkrAryhHTrPBZxGxtPXsM/B69g6P15+IiIiIjyg0yP0atbty4uXLiQO60hIsrixOp/DWuKTmEhhnWPVS+GLtW1MXwr72f7iIiIiPKLTGf0hg8fjhEjRuCNN95AWFiY6sZprHr16jnZPiKiDPFwc8G3fetgw4koRN2OR42SBVX3TXHocgzuJiTByz3TH3lEREREdinTVz29evVSP5999lnDOinCwmIsRGQLmlcMMtyWMXouUiQqRYd952+hcflAq7aNiIiIyGYDvfDw8NxpCRFRDjoecRt9pm9Dsk4btPf3gSsM9IiIiCjfyPQYvdKlSz9wsUXdu3dHoUKF0LNnzzSPffHFF6hatSqqVauGX375xSrtI6KcV7qwF8JK+Bvu/77rAg5ejOauJiIionwhywNWjhw5gvPnzyMhIcFkfdeuXWFrZEyhdDWdNWuWyfqDBw+qaSJ2796tup62atUKjz32mJorkIjsm6ebC37sXw9Pfb8VBy9FIylFp277eLhibNcqqlgLERERkaPKdKB35swZlSGTIEk/Nk/IbWGLE6a3bNkS69atS7P+6NGjaNSoETw9PdX9GjVqYPny5Xj66aet0EoiymkF3F0w9/kGqPnBSjXtwr3EZLW8+tteFPJyRxOO2SMiIiIH5ZyV7FiZMmVw9epVeHl54fDhw9iwYYOadsFSMPUw8rtdunRBsWLFVLC4ZMmSNNtMnToVoaGhKiBr0KABduzYgZwg3TWlzbdu3cLNmzfV7UuXLuXIcxORbfAr4IYGZQNM1iWlAM/P2oUzUbFWaxcRERGRTQV6W7duxQcffIDAwEA4OzurpWnTphg/fjxeeeWVTDfgzp07KpMmwZwl8+fPx8iRIzF27Fjs2bNHbduhQwcVaOrVrFlTBW3my+XLlx/4t6tUqaLa3Lp1a/To0QMNGzaEi4tLpl8DEdm2puW1SpwerqkfeZLZ++DvI1ZsFREREZENdd2Urpm+vr7qtgR7EkxVqlRJFWI5fvx4phvQsWNHtaRn4sSJGDx4MAYNGqTuT5s2DcuWLcOMGTMwatQotW7fvn3IqhdeeEEt4vnnn0eFChUsbhcfH68WvZiYGPUzJSVFLdYmbZButLbQFrJfjnoe9W9YCu4uTmheMRBv/HEQB+4XZVl3PArHr0SjQhHtM41yhqOeR5R3eA4RzyOyFSk29n9aZtqR6UBPMmX79+9X3TelG+WECRPg7u6OH374AWXLlkVOkkIvUihl9OjRhnWSQWzbtq3KLOYEyQwGBwerIFW6hEogaYlkLMeNG5dmfVRUFOLi4mALBz06OlqdiLKPiHgemepS0VvyePjisVCMWHwSick6nLp2Dx/9dRAdHymMAC9X1CzOgI+fR2QL+H8a8TwiW5FiY9fYt2/fzr1A791331XdLYV04ZQqlc2aNUPhwoVVN8ucdO3aNZVBLFKkiMl6uX/s2LEMP48EhhKcSrtLlCiBBQsWqCIs4vHHH1cHz9vbGz///DNcXS3vEgk2pQupcUavZMmSCAoKgp+fH2zhJJQxjtIeWzgJyT7lh/MoGMCSYSE4GRmLx6ZsxsYz0WqRelKLXmqEGiVYdTe78sN5RLmL5xDxPCJbkWJj/6fpi0jmSqAn4+P0ypcvrwKuGzduqHnq9JU3bc3q1avTfSyjmUEPDw+1mNOPU7QFsv9tqT1kn/LDeeTh7IxqJQpiYONQ/LX/MlxdnBAZE4/x/x7H7y9oXwJR9uSH84hyF88h4nlEtsLJhv5Py0wbcqS1AQEBuRLkyRhAKY4SGRlpsl7uh4SE5PjfI6L85f2uVbH7vXZ4uWV5dX9H+A38e/CKtZtFRERElG3WD0sfQMb+1alTB2vWrDFJn8p9fddLIqLsSEpOwa87zhvuvzp/H85e07qnExEREdkrqwd6sbGxqmqmvnJmeHi4un3+vHbhJePipk+fjlmzZqkJzl966SU11k5fhZOIKDtcXZwx+7n6KBXgpe7HJ6Wg/VcbsPvcDcM28UnJSJEZ14mIiIjsRKbH6OW0Xbt2oVWrVob7+oInAwYMwMyZM9GrVy9V2XLMmDGIiIhQc+YtX748TYEWIqKsCvb1xIIXG6HrlE1qrF5CcgqenLYVc56rD28PNzw/ayfKBHpjwYuNuZOJiIjI8QK9xMRENefce++9p6ZXyAktW7ZU5UofZNiwYWohIsotRfw8sXRoUzzx3RZcunUPksDr99MOeLq54G5CMq7FJuDmnQQU8nbnQSAiIiLH6rrp5uaGhQsX5l5riIisKMRfy+wVL1hA3ZdgT4I8veORGZ+7hoiIiMiuxuh169YNS5YsyZ3WEBFZWbGCBTD/hYYo6p86T42Ph9b54XgEAz0iIiJy0DF6FSpUUBOlb968WVXElInGjb3yyis52T4iojxXopCXmk+v1/dbcf1OAlpXDsKf+6/gGAM9IiIishOZDvR++uknFCxYELt371aLMZlLj4EeETmCkgFe+HVIQ1y+FYeo2HgV6B2PiLF2s4iIiIhyJ9CT6Q+IiPKD0oW91XLi/ti8E5GxaqqFYfP2ooifBz7qFmbtJhIRERHl7Dx6CQkJOH78OJKSkrL6FEREdkGmVnBzcUJsfBJ+3nwWq45E4pdt53GSxVmIiIjIUQK9u3fv4rnnnoOXlxeqVq1qmNh8+PDh+PTTT3OjjUREVuXm4oxyQT7q9pT/ThnWL9l3yYqtIiIiIsrBQG/06NHYv38/1q1bB0/P1Kp0bdu2xfz58zP7dEREdqFyiK/6KVk9vaX7Lj90HlAiIiIiuwj0ZGqFKVOmoGnTpqr4ip5k906fPp3T7SMisgmVQvwMt+uFFoK3uwsu3ryH3eduWrVdRERERDkS6EVFRSE4ODjN+jt37pgEfkREjqRyUS2jJwY0DkWHqiHqNrtvEhERkUMEenXr1sWyZcsM9/XB3Y8//ohGjRrlbOuIiGxE9eL+8HJ3UROpt6tSBN1qFVfr/z5wBXeMunMSERER2eX0Cp988gk6duyII0eOqIqbX3/9tbq9ZcsWrF+/PndaSURkZYV9PLDslWYo4OYCD1cXNC5XGKULe+Hc9buYsSkcw9tUwOVb99RSuagffDwy/fFKREREZL2MnozN27dvnwrywsLCsHLlStWVc+vWrahTp07OtYyIyAanWQjx14pQubo4Y2S7iur2DxvOqCkXOny1AT2nbUXY+yvw+JRNOHVVm3+PiIiIKK9l6SvncuXKYfr06TnfGiIiO9KlejF8v/4MjlyJweDZu9Q6KdJyJyEZ+y9Go/u3W/Bd3zpoWiHQ2k0lIiKifCZDgV5MTAz8/PwMtx9Evx0RkaNzdnbCm49WwsCfd6r7zSsG4ftn6uDm3QQM/3Wvqsj5zE/b1bi+6iX88UaHyigfrM3HR0RERGT1QK9QoUK4cuWK6qJZsGBBi9U1ZS4pWZ+cnJwb7SQiskktKgbhjQ6VcDchCa+0qaDG7xVwL4C5zzfAu0sO4Y/dF3ElOk4tO8Jv4OdB9VGzZEFrN5uIiIgcXIYCvf/++w8BAQHq9tq1a3O7TUREdkO+4Braqnya9Z5uLvjiyRoY26UKjkXcxkfLjmL/hVvoM30bJvSsjs5hRTklDREREVk30GvRooX6KQVYpLLms88+ixIlSuReq4iIHISvpxvqhQaoDN+Lc3Zj06lrGDZvLxZVvoSPu1dDUf8C1m4iERER5feqm66urvj8889VwEdERBkn0y38NLAuXmldHm4uTvjv2FVVwEW6vRMRERFZfXqF1q1bc748IqIskPF7I9tXwr8jmqnJ1w9disG6E1Hcl0RERGT96RVksvRRo0bh4MGDat48b29vk8e7du2ak+0jInI45YN90ad+Kfy4KRzfrT2NVpWCcehSNK7ejlO3LRW8IiIiIsrVQO/ll19WPydOnJjmMVbdJCLKmOeblcWsrWex4+wNjFp4AL/vuoAUHdS4vb4NSnM3EhERUd523UxJSUl34dQKREQZE+LviSdqa0WtftupBXni/T8PY+/5m9yNRERElLeBHhER5YwXWpSDu6uzKs7y4eNV0bFaCBKTdXjplz24FhvP3UxERER513Xzgw8+eODjY8aMyXpriIjykTKB3vjnlWbwcHVGyQAvdK9dAicib+N01B1MXHUCn3QPs3YTiYiIKL8EeosXLza5n5iYiPDwcDX1Qrly5RjoERFlQvlgH5MpGMb3qI6nvt+K33dewJBmZREaaFrwioiIiChXAr29e/emWRcTE4OBAweie/fumX06IiIyUr9MAFpWCsK641GYtPoEJj1di/uHiIiIrDNGz8/PD+PGjcN7772XE09HRJSvvd6+kvq5dP9lHIuIsXZziIiIKD8XY4mOjlYLERFlT7Xi/ugcVhQ6HTBq4UHEJSZzlxIREVHudt385ptvTO7rdDpcuXIFc+bMUZOpExFR9o3qWBkbT0Zh34VbeHvxQXz5ZA1OpE5ERES5F+h99dVXJvednZ0RFBSEAQMGYPTo0bA1Fy5cQL9+/XD16lVVMEa6lz755JPqsVu3bqFt27ZISkpSy4gRIzB48GBrN5mISFXhnNq3Ngb+vBOL9lxC5RBfDGlejnuGiIiIcifQkwqb9kSCu0mTJqFmzZqIiIhAnTp10KlTJ3h7e8PX1xcbNmyAl5cX7ty5g2rVqqFHjx4oXLiwtZtNRIRmFYLwbudHMO6vI/j032MIK14Qjcrx84mIiIhyeYzexYsX1WLLihYtqoI8ERISgsDAQNy4cUPdd3FxUUGeiI+PV91QZSEishUDG4fiidolkKIDhv+6F1dj4qzdJCIiInLEQC8lJUVNmu7v74/SpUurpWDBgvjwww/VY5klGbUuXbqgWLFiavzJkiVL0mwzdepUhIaGwtPTEw0aNMCOHTuQFbt370ZycjJKlixpWCfdN2vUqIESJUrgjTfeUIEgEZGtkM/Fj7pVU103r8XGY9i8vUhKzvxnLREREeUvmQ703nnnHUyZMgWffvqpmlNPlk8++QSTJ0/O0vQK0mVSAi0J5iyZP38+Ro4cibFjx2LPnj1q2w4dOqgxd3qSsZNul+bL5cuXDdtIFq9///744YcfTJ5fgtT9+/erLqnz5s1DZGRkpl8DEVFuKuDugm/71lYTqu84ewOL917iDiciIqIHctJlsq+iZN6mTZuGrl27mqxfunQpXn75ZVy6dClb31wvXrwY3bp1M6yTDF69evVUcCkkaygZueHDh2PUqFEZel7pltmuXTtVaEUKs6RH2t+6dWv07NnT4nPIYjxJvLTj5s2bah5Ba5P9EhUVpQrjSIEcIp5Hjuf7DWfw2fLjKBPojZWvNoOLsxNsET+PiOcQ2QJ+FpEjnkcSgxQqVEhNa/ewGCTTxVgkM1a5cuU062WdfuxbTklISFDdLY2recoOlkqZW7duzdBzSBw7cOBAFcCZB3mSvZMxelKURXaWdCN96aWXLD7P+PHj1aTw5uTAx8XF2cRJKK9BXq8tnIRkn3ge2bb2ZQvgOw8XhF+7g982H0e7SgGwRTyPiOcQ2QJ+FpEjnke3b9/O8LaZDvSk66Rk18zn05N18lhOunbtmhpTV6RIEZP1cv/YsWMZeo7Nmzer7p/Vq1c3jP+TOf/CwsJw7tw5DBkyxFCERbKEst4SCTalC6l5Rk+ie1vJ6ElG1Fa+bSD7xPPI9j3bNBaT1pzCnD1R6N2kEpxtMKvH84h4DpEt4GcROeJ5JDVLci3QmzBhAjp37ozVq1ejUaNGap1k12S+un/++Qe2pmnTpukWialfvz727duXoefx8PBQizk54LZw0IWchLbUHrJPPI9s26AmZfHjprM4ERmL5Uci8Vj1YrBFPI+I5xDZAn4WkaOdR5lpQ6Zb26JFC5w4cQLdu3dXFStlkbnnjh8/jmbNmiEnSQVMmQLBvECK3JepEoiI8ht/Lzc15YJ4648DOHQpGonJKfhpUzjG/XUY9xKSrd1EIiIisgEZzuidOXMGZcqUURGtFGT5+OOPc7dlANzd3dUE52vWrDEUaJHsnNwfNmxYrv99IiJbNLxNeew5fxNbTl/HwJ93ooifBw5fjlGP+Xq6YWS7itZuIhEREVlZhjN6FSpUUIVH9Hr16pUjUxHExsaq7pP6LpQyzYHcPn/+vLov4+KmT5+OWbNm4ejRo6pYikzJMGjQoGz/bSIie+Th6oLv+9XBI0X91Nx6EuQVcHNRj32//jQu3bpn7SYSERGRvQR65rMwyHg8Cbiya9euXahVq5Za9IGd3B4zZowhoPziiy/UfZkvT4LA5cuXpynQQkSUn0jmbtagemhSvjB61CqO9W+2RP0yAYhPSsGE5RkrVkVERESOK9PFWHJay5Yt0wSR5qSbJrtqEhGZCvbzxNznGxruv9e5CrpO3YSl+y5jQONQ1C5ViLuMiIgon8pwRk/G5slivo6IiGxDWAl/PFG7hKELJxEREeVfGc7o6Sce108xIJOEv/jii/D29jbZbtGiRTnfSiIiypBnm5TBH7svYu3xKMTGJ8HHw+odN4iIiMgKMnwFMGDAAJP7zzzzTG60h4iIsuGRor4oE+iN8Gt3sOZoJB6vWZz7k4iIKB/KcKD3888/525LiIgo26RLfeewopiy9hSWHbjCQI+IiCifsv707kRElKM6hRVVP9ed0LpvEhERUf7DQI+IyAG7b5YN9EZCUgqWH4rAd+tOo++P23A6KtbaTSMiIqI8wkCPiMgBu2/qs3pv/rEfny0/hs2nrmPiyhPWbhoRERHlEQZ6REQOqHN1LdBL0QH+BdzU7RWHIxAZE2fllhEREVFeYKBHROSAKof44s1HK+GFFmWx7vWWqBdaCEkpOvy244K1m0ZERER5gIEeEZGDdt98uWV5jO74CAp5u+OZhqXV+nk7ziExOcXazSMiIqJcxpl0iYjygUerhSDQxx2RMfH4bcd5+Hq64cadBPRpUAqebi7Wbh4RERHlMAZ6RET5gIerC3rVK4mpa0/jvaWHDevP37iL97tWtWrbiIiIKOex6yYRUT4h3Tf9PF3h6uyEasX91LqZW85i+5nr1m4aERER5TBm9IiI8omi/gWw7e026raXuytGLTyA33ZewBt/HMCfw5rgWMRtXL0dj07VQuDqwu8BiYiI7BkDPSKifEQCPL13Oj+CDSeiVPfNWh+ugk6nrd/WoBQ+7lZNFXQhIiIi+8SvbImI8ikpyPLpE9Uh8ZwEeYE+Hur2vO3nMWfbOWs3j4iIiLKBGT0ionysecUgLB/RHNJTs1yQD77fcAaf/nsM4/46grKBPmhaIdDaTSQiIqIsYEaPiCifqxTii/LBvqqr5gvNy6JHreJITtHh1fn7cDchydrNIyIioixgoEdERAYS7H3SIwylArxwLTYes7awCycREZE9YqBHREQmZAL1V9pUULe/33Aat+MSuYeIiIjsDAM9IiJKo1vNYigb6I1bdxPx8+az3ENERER2hoEeERGlIfPovdquoro9feMZRN9lVo+IiMieMNAjIiKLHgsrikpFfHE7Lgk/bjrDvURERGRHGOgREZHl/yCcnfBaO22s3oxN4bhxJ4F7ioiIyE4w0CMionR1qBqCqsX8cCchGd+vP809RUREZCcY6BER0QOnW/hfe22s3qytZ3H51j1M+e8kan2wEm0nrsc7iw/in4NXcC8hmXuRiIjIhrhauwFERGTbWlUKRs2SBbHvwi20m7heZffEzbuJOHU1FnO3n4ePhys6hYVgcLOyKBfkbe0mExER5XvM6BERUYazehLkFfJywxdP1sD3/epgUJNQlChUALHxSfh910X0nLaV8+4RERHZAGb0iIjooZqWD8SINhVw826Cmkw90MfDMIbvvc5VsOvcTbz5x36cvX5XBXxdKjKrR0REZE3M6BERUYayeq+1q4gPHq9mCPIM/5E4O6F+mQC80KKcuj9zyzkkpei4V4mIiKyIgR4REeWI7rWKI8DbHZdu3cOG07e4V4mIiKzI4QO9CxcuoGXLlqhSpQqqV6+OBQsWGB47fvw4atasaVgKFCiAJUuWWLW9RET2ytPNBc80LK1u/7on0trNISIiytccfoyeq6srJk2apAK5iIgI1KlTB506dYK3tzcqVaqEffv2qe1iY2MRGhqKdu3aWbvJRER2q1/D0pi27hQOXrmDPedvom5oYWs3iYiIKF9y+Ixe0aJFVZAnQkJCEBgYiBs3bqTZ7s8//0SbNm1UAEhERFkT5OuBx2sWV7dHLTyIiOg47koiIqL8GOht2LABXbp0QbFixdRgf0tdJ6dOnaqybZ6enmjQoAF27NiRpb+1e/duJCcno2TJkmke+/3339GrV68sPS8REaV6pXV5BPm44VTUHTz5/Racu36Hu4eIiCi/BXp37txBjRo1VDBnyfz58zFy5EiMHTsWe/bsUdt26NABV69eNWwjGbtq1aqlWS5fvmzYRrJ4/fv3xw8//JDmb8TExGDLli2qSycREWVP8UIF8P2TlVA6wAsXbtxTc+tduHGXu5WIiCg/jdHr2LGjWtIzceJEDB48GIMGDVL3p02bhmXLlmHGjBkYNWqUWqcfZ5ee+Ph4dOvWTW3fuHHjNI8vXboU7du3VxnDBz2HLMbBoUhJSVGLtUkbdDqdTbSF7BfPI8qp86ionzt+G1wfA2ftxvGI23jzjwP45bl6qucGET+LKC/w/zRyxPMoM+2weqD3IAkJCaq75ejRow3rnJ2d0bZtW2zdujVDzyEHZuDAgWjdujX69etncRvptjlkyJAHPs/48eMxbty4NOujoqIQFxdnEwc9OjpavV7ZR0Q8j8jan0f+/jp8/Ghp9P3lMLaeuY6f1h5F12qBPDCU4XOI/6dRTnwW8TwiRzqPbt++7RiB3rVr19SYuiJFipisl/vHjh3L0HNs3rxZdf+UqRX04//mzJmDsLAwdVsOnIz5W7hw4QOfR4JN6UJqnNGTsX5BQUHw8/ODLZyE8k25tMcWTkKyTzyPKKfPo5AQZ/yvfRI++ecYJm+6hC51y6KIX/q9J4j4WUQ5hf+nkSOeRw/qgWhXgV5OaNq06QNTnP7+/oiMfPh8Tx4eHmoxJwfcFg66kJPQltpD9onnEeX0efRc07JYdjAC+y/cwluLDuGLntURzGCP+FlEeYD/p5GjnUeZaYP1W/sAMhWCi4tLmkBM7stUCUREZPtcnJ0w4YnqcHNxwoYTUWjy2X94bf4+VuMkIiLKRTYd6Lm7u6sJztesWWNYJ9k5ud+oUSOrto2IiDKuUogvZg6qj7qlCyExWYfFey+h3087kJRsG4PbiYiIHI3Vu27Gxsbi1KlThvvh4eGqimZAQABKlSqlxsUNGDAAdevWRf369TFp0iQ1JYO+CicREdmHJuUD1SJdOAfN3InzN+5ixeFIdK5e1NpNIyIicjhWD/R27dqFVq1aGe7rC55IcDdz5kw1iblUthwzZgwiIiLUnHnLly9PU6CFiIjsQ42SBfFMw9L4Zs1JTN94Bp3CQjjtAhERkaMFei1btlTlSh9k2LBhaiEiIsfQr2FpTFt/Gvsu3MKe8zdRp3SAtZtERETkUGx6jB4RETmmIF8PdK9ZXN3+cWO4tZtDRETkcBjoERGRVTzXrIz6ueJwBM5fv8ujQERElIMY6BERkVVULOKLFhWDkKIDBs7cgaX7LiFZ7hAREVG2MdAjIiKreaNDJfgXcMOZqDsY8ds+tPtqPU5dvc0jQkRElE0M9IiIyGqqFffHprda4fX2FVHQSwv4Xp67B3GJyTwqRERE2cBAj4iIrMrX0w3DWlfAqtdaqCItJyJj8dGyIzwqRERE2cBAj4iIbIIEeV8+WUPd/mXbeVWkxdyFG3cRGRNnhdYRERHZF6vPo0dERKTXvGIQhjQvix82nMEbC/bj0KVodKgagrsJyfhhw2msPnoVvh6uWPRyY1Qo4ssdR0RElA4GekREZFNeb18JO8JvqMnUJ/93Si3GbscnYfDsXVg6tCn8vdys1k4iIiJbxq6bRERkU9xdnfHr4Ib4qlcNPFo1BJ5uzmpd7/olsfClxihRqADOXr+LYb/uQVJyirWbS0REZJOY0SMiIptTwN0F3WuVUIu+Aqenm4v6+UO/unjiuy3YePIaPlp2FGO7VIGTk5OVW0xERGRbmNEjIiKbJgGePsgTVYr5YeJTWtGWmVvOYuyfh5HCidaJiIhMMNAjIiK70zGsKD7qVg2SyJu99Rz+t2A/EtmNk4iIyICBHhER2aVnGpbGpF414ershMV7L+HV3/ZBp9NZu1lEREQ2gYEeERHZrcdrFscP/evA3cUZyw5ewU+bwq3dJCIiIpvAQI+IiOxa68pF8F6XKur2p/8ew57zN63dJCIiIqtjoEdERHbvmQal8Fj1okhK0WH4vL24dTfB2k0iIiKyKgZ6RERk92R6hfE9whBa2AuXbt1Dj++2YNr60+o2ERFRfsRAj4iIHIKvpxum9q0NX09XnIm6o7pxNvn0PwyduwfR9xKt3TwiIqI8xUCPiIgcRtVi/tjwRit80j0MDcsGqOkXpEhLl8mbcOhStLWbR0RElGcY6BERkUMp5O2OPg1K4bchjfDn0KYoUagAzt+4q7pzLtpz0drNIyIiyhMM9IiIyGGFlfDH38Obok3lYCQkpeD1Bfux/kSUtZtFRESU6xjoERGRQyvo5Y7p/eviyTolkKIDhs3bg1NXY63dLCIiolzFQI+IiByes7MTPupeDfVCC+F2XBKen7WTUzAQEZFDY6BHRET5goerC6Y9U0eN2Tt7/S6enLYV87afR2x8krWbRkRElOMY6BERUb5R2McDPw2oBz9PV5y8Gou3Fx9E/Y9Xq6kYUqRfJxERkYNgoEdERPlKpRBfrHujFd7p9AjKBnnjbkKymlz9i5XHrd00IiKiHMNAj4iI8p0Ab3cMbl4Wa0a2wPgeYWrdt+tOq66cREREjoCBHhER5VtOTk7oXb8UXm1bQd1/b+khrD1+1drNIiIiyjYGekRElO+NaFMBPeuUQHKKDsPm7sGFG3fz/T4hIiL7xkCPiIjyPcnsfdI9DHVLF8KdhGS8/+dh6HQszkJERPbL4QO9W7duoW7duqhZsyaqVauG6dOnmzzevXt3FCpUCD179rRaG4mIyPrcXZ3x6RNhcHNxwppjV7HicIS1m0RERJRlDh/o+fr6YsOGDdi3bx+2b9+OTz75BNevXzc8PmLECMyePduqbSQiIttQPtgXLzQvp26//+cRzrFHRER2y+EDPRcXF3h5eanb8fHxqiuOcXecli1bqmCQiIhIDGtdHqUCvBARE4eJK09wpxARkV2yeqAn2bYuXbqgWLFiaozEkiVL0mwzdepUhIaGwtPTEw0aNMCOHTsy3X2zRo0aKFGiBN544w0EBgbm4CsgIiJH4unmgg+7VVO3Z24Jx7frTiEpOcXazSIiIrKvQO/OnTsqCJNgzpL58+dj5MiRGDt2LPbs2aO27dChA65eTS1/rR9/Z75cvnxZPV6wYEHs378f4eHhmDdvHiIjI/Ps9RERkf1pUTFITbuQogMmLD+OJ77bgpORt63dLCIiogxzhZV17NhRLemZOHEiBg8ejEGDBqn706ZNw7JlyzBjxgyMGjVKrZPxdxlRpEgRFShu3Lgx08VXpNunLHoxMTHqZ0pKilqsTdogXVJtoS1kv3geEc+jVB89XgW1S/njg7+PYv/FaHT+ZiN+HdwAtUoV4onCzyKyA/w/jRzxPMpMO6we6D1IQkICdu/ejdGjRxvWOTs7o23btti6dWuGnkOydzJGT8bhRUdHq66iL730UqbbMn78eIwbNy7N+qioKMTFxcEWDrq8PjkRZR8R8Twifh5lX7MS7pj7zCMY+2849l6KxbdrjuPjzmV5cuUy/p9GPI/IVqTY2DX27du3HSPQu3btGpKTk1UmzpjcP3bsWIae49y5cxgyZIihCMvw4cMRFhZmeFyCRunWKV1IZQzfggUL0KhRozTPI8GmdCE1zuiVLFkSQUFB8PPzgy2chDLGUdpjCych2SeeR8TzKK3gYGBcN190nboFG8Oj4elbCH4F3Hiy8LOIbBz/TyNHPI+kZolDBHo5oX79+g/s2rl69eoMPY+Hh4dazMkBt4WDLuQktKX2kH3ieUQ8j9IKK1EQFYv44ERkLJYfjsTT9UvxROFnEdkB/p9GjnYeZaYN1m/tA0h1TJkewbx4itwPCQmxWruIiCj//SffvVYJdXvR3kvWbg4REZF9B3ru7u6oU6cO1qxZY5I+lfuWulcSERHllm61ZBogYEf4DVy4cZc7moiIbJrVA73Y2FjVtVLfvVKmQJDb58+fV/dlXNz06dMxa9YsHD16VBVSkfF0+iqcREREeaGofwE0KltY3V66j1k9IiKybVYfo7dr1y60atXKcF9f8GTAgAGYOXMmevXqpSpbjhkzBhEREWrOvOXLl6cp0EJERJTbutcqji2nr6vum0NblVddOomIiGyR1QO9li1bqmqYDzJs2DC1EBERWVPHsKJ4b+khnIm6g582hSMxWYfLt+6hajE/9KhdAu6uVu8oQ0REZBuBHhERkb3w8XBF+yoh+HP/ZXy07KjJY1PWnsIrbSqgR63icHVhwEdERNbFQI+IiCgTXmpZDievxsLL3QWlArwQ4O2uAr+LN+/hzT8O4MeNZ/DzoPooXrAA9ysREVkNAz0iIqJMeKSoH/4d0cxk3evtK+GXbefw3frTaq69J7/bgrmDG6JMoDf3LRERWQX7lhAREWVTAXcXDG5eFsteaYqyQd64HB2HJ6dtxbGIGO5bIiKyCmb0iIiIcnAKht9faIR+P+3A0Ssx6D51C4J8PZCcohUde7lVOfRtUJr7m4iIch0zekT0//buAziq6u3j+LMhIQFSISYhQqSIBCnShBdEUUGKDENRVEREQBkE/oCOiGVAR+mIOoACNtCh8yogmReVoYrSe4mAihBKyB8hJHQk953nzOzObkg3sDeX72dm2Xaze3M5c3N/9znnXADFKDo0WOa/9D/SMCFSLl27LkfPXJTj6ZfMbVRSsqRlXmZ7AwBuOip6AAAUs4iyQbKof3PZc/ycZFmWlHK55J3v98nOlHSZvPKQjOpcl20OALipqOgBAHATlApwSf3KkdIwIUruqxwpb7ZPNK/P25wif/73PNscAHBTEfQAALgFmlarIK0SY8x4vQ9+OsA2BwDcVAQ9AABukdfbJYrLJfJ/e1Jlx9GzbHcAwE3DGD0AAG6RmnFh8kTDSvK/247Jf+btkJqxYWz7HFhiyZUrVyU4+Ki4xMU2QpHQjlBc7ahuTLAMaRcjJQ1BDwCAW+jVx+6RpN0n5NjZS+YGALC3EFd5KYkIegAA3ELxkWXku5cfkL3Hz7Hdc5FlZUlmZqaEhYVJgItRJiga2hGKqx1FBFyVkoigBwDALXZvfLi5IWdZWVmSlpYmMTExEhBA0EPR0I5QnO2oJGLvCQAAAAAOQ9ADAAAAAIch6AEAAACAwxD0AAAAAMBhCHoAAAAA4DAEPQAAAABwGIIeAAAAADgMQQ8AAAAAHIagBwAAAAAOQ9ADAAAAAIch6AEAAACAwxD0AAAAAMBhCHoAAAAA4DAEPQAAAABwGIIeAAAAADhMoL9XoKSyLMvcZ2RkiB1kZWVJZmamhISESEAA+R20I7A/QsnF3zTQjmAXWTY7xnZnD3cWyQtBr4j0P1xVrly5qB8BAAAAAEXKIhEREXku47IKEgeRY7o/ceKEhIWFicvlskW619CZkpIi4eHh/l4dlFC0I9COYAfsi0A7gl1k2OwYW6Obhrz4+Ph8K4xU9IpIN2ylSpXEbrQB2qERomSjHYF2BDtgXwTaEewi3EbH2PlV8tz839EUAAAAAFCsCHoAAAAA4DAEPYcIDg6Wd955x9wDtCP4E/sj0IZgB+yLcLu3IyZjAQAAAACHoaIHAAAAAA5D0AMAAAAAhyHoAQAAAIDDEPQc4pNPPpEqVapISEiING3aVDZv3uzvVYJNjR07Vu6//34JCwuTmJgY6dy5sxw4cMBnmcuXL8vAgQOlQoUKEhoaKk888YScOnXKb+sM+xs3bpy4XC4ZOnSo5zXaEfJz/Phxee6558y+pkyZMlK3bl3ZunWrz4WBR44cKRUrVjTvt27dWg4dOsSGhcf169dlxIgRUrVqVdNGqlevLu+//75pO7Qj5GbdunXSsWNHc9Fx/du1ZMkSn/cLsu85c+aM9OjRw1xbLzIyUvr27Svnz58XOyHoOcCCBQvk1VdfNTMCbd++Xe677z5p27atpKWl+XvVYENr1641IW7jxo2yYsUKuXbtmrRp00YuXLjgWeaVV16RZcuWyaJFi8zyJ06ckK5du/p1vWFfW7ZskRkzZki9evV8XqcdIS9nz56VBx54QIKCgmT58uWyf/9+mTRpkkRFRXmWmTBhgkyePFmmT58umzZtknLlypm/b3oSAVDjx4+XadOmydSpUyU5Odk813YzZcoU2hFypcc8eryshZKcFGTfoyFv37595lgqKSnJhMd+/fqJrVgo8Zo0aWINHDjQ8/z69etWfHy8NXbsWL+uF0qGtLQ0Pe1prV271jxPT0+3goKCrEWLFnmWSU5ONsts2LDBj2sKO8rMzLRq1KhhrVixwmrZsqU1ZMgQ8zrtCPkZPny41aJFi1zfz8rKsuLi4qyJEyd6XtN2FRwcbM2bN48NDKNDhw5Wnz59fLZG165drR49etCOUCB6fLN48eJC7Xv2799vfm7Lli2eZZYvX265XC7r+PHjll1Q0Svhrl69Ktu2bTMlZbeAgADzfMOGDX5dN5QM586dM/fly5c399qetMrn3aYSExMlISGBNoUbaHW4Q4cOPu2FdoSC+P7776Vx48bSrVs30428QYMG8vnnn3veP3z4sKSmpvq0rYiICDM8gb9vcGvevLmsXLlSDh48aJ7v2rVL1q9fL+3bt6cdoUgKsu/Re+2uqfswN11ej8G1AmgXgf5eAfw7p0+fNv3TY2NjfV7X57/99hubF3nKysoyY6q0+1SdOnXMa7pzK126tNmBZW9T+h7gNn/+fNNdXLtuZkc7Qn7+/PNP0+VOhx689dZbph0NHjzY7H969erl2d/k9PeNfRHc3njjDcnIyDAnJEuVKmWOiUaPHm261bn3RbQjFEZB2oze6wkqb4GBgeakuZ32TwQ94Davxuzdu9ec/QQKIyUlRYYMGWLGJugkUEBRTjTp2fAxY8aY51rR0/2RjonRoAcUxMKFC2XOnDkyd+5cqV27tuzcudOcwNRJNmhHuN3RdbOEi46ONmewss+IqM/j4uL8tl6wv0GDBpnBw6tXr5ZKlSp5Xtd2o12C09PTfZanTcGbdvHVCZ8aNmxozmLqTSfu0cHr+ljPfNKOkBedze7ee+/1ea1WrVpy9OhRz77Ive9hX4TcDBs2zFT1nnnmGTNra8+ePc1EUDrDNO0IRVGQfY/eZ5/08J9//jEzcdrp+JugV8JpF5dGjRqZ/uneZ0n1ebNmzfy6brAnHXesIW/x4sWyatUqMyW1N21POgued5vSyy/owRdtCm6tWrWSPXv2mLPn7ptWZ7S7lPsx7Qh50S7j2S/touOs7rrrLvNY9016wOS9L9Iuejr+hX0R3C5evGjGRXnTE+B6LEQ7QlEUZN+j93pCXE96uukxlbY7HctnG/6eDQb/3vz5881MQLNmzTKzAPXr18+KjIy0UlNT2by4wcsvv2xFRERYa9assU6ePOm5Xbx40bNM//79rYSEBGvVqlXW1q1brWbNmpkbkBfvWTdpR8jP5s2brcDAQGv06NHWoUOHrDlz5lhly5a1Zs+e7Vlm3Lhx5u/Z0qVLrd27d1udOnWyqlatal26dIkNDKNXr17WnXfeaSUlJVmHDx+2vvvuOys6Otp6/fXXaUfIc8boHTt2mJvGoQ8//NA8PnLkSIH3Pe3atbMaNGhgbdq0yVq/fr2Zgbp79+6WnRD0HGLKlCnmwLx06dLmcgsbN2709yrBpnSHltNt5syZnmV0RzZgwAArKirKHHh16dLFhEGgMEGPdoT8LFu2zKpTp445WZmYmGh99tlnPu/rNOcjRoywYmNjzTKtWrWyDhw4wIaFR0ZGhtnv6DFQSEiIVa1aNevtt9+2rly5QjtCrlavXp3jsZCeOCjovufvv/82wS40NNQKDw+3evfubQKknbj0H39XFQEAAAAAxYcxegAAAADgMAQ9AAAAAHAYgh4AAAAAOAxBDwAAAAAchqAHAAAAAA5D0AMAAAAAhyHoAQAAAIDDEPQAAAAAwGEIegAAONTVq1fl7rvvll9//bVYP/eHH36Q+vXrS1ZWVrF+LgCg+BD0AAAlwgsvvCAul+uG2++//+7vVbOt6dOnS9WqVaV58+ae13SbLVmyJMft27lz5wJ9brt27SQoKEjmzJlTrOsLACg+BD0AQImhAePkyZM+Nw0yOVWybneWZcnUqVOlb9++N+XzNRhOnjz5pnw2AODfI+gBAEqM4OBgiYuL87mVKlVKHn74YRk0aJAMHTpUoqOjpW3btmb5vXv3Svv27SU0NFRiY2OlZ8+ecvr0ac/nXbhwQZ5//nnzfsWKFWXSpEnms/Rz8qqARUZGyqxZszzPU1JS5KmnnjKvly9fXjp16iR//fXXDdWyDz74wHxPhQoVZODAgXLt2jXPMleuXJHhw4dL5cqVze+pXS6//PJLE9j0sf6st507d+ZZ0dy2bZv88ccf0qFDh0JvZ133nKqnum3cOnbsKFu3bjXfAQCwH4IeAMARvv76ayldurT88ssvpstienq6PProo9KgQQMTSHRc2alTp0wgcxs2bJisXbtWli5dKj/99JOsWbNGtm/fXqjv1bCmwTIsLEx+/vln8/0aHLX66F1ZXL16tQlFeq/rqkHROyxq4Jw3b56pkiUnJ8uMGTPM52jA6tOnj8ycOdPne/X5Qw89ZEJgTnRd7rnnHrNehaVh07tqumPHDhNO9fvcEhISTHjW7wEA2E+gv1cAAICCSkpKMuHHTat1ixYtMo9r1KghEyZM8Lw3atQoE/LGjBnjee2rr74yIebgwYMSHx9vKmazZ8+WVq1amfc1gFWqVKlQ/yELFiwwk5J88cUXJpS5Q5hW9zQ4tmnTxrwWFRVlulJqBTIxMdFU2lauXCkvvfSSWZ+FCxfKihUrpHXr1mb5atWq+VQER44cKZs3b5YmTZqYcDl37twbqnzejhw5Yn7HnHTv3t2shzetKLqrf/qeVkvV5cuXTTWyWbNm8u677/r8jH6+fg8AwH4IegCAEuORRx6RadOmeZ6XK1fO87hRo0Y+y+7atctUz7yDoZtW1i5dumQqbk2bNvW8rt0ua9asWah10u/R7pPZK2cakLy7NdauXdsnXGkXzj179ni6Yep7LVu2zPE7NFBpCNOgqkFv2bJlJph169Yt1/XS3y8kJCTH9z766CNPoHTTbqPXr1+/YVmtJmZmZpoQGhDg2xGoTJkycvHixVzXAQDgPwQ9AECJocEut66K3qFPnT9/3owjGz9+/A3Lasgq6GydWqXTcXLevMfW6fdoyMxpBso77rjD81hnqcz+ue7LE2hgys+LL75oxhhqSNOK4dNPPy1ly5bNdXkdq+gOktlptS77dtSgqt1dvWlV9McffzSVxJy6gJ45c8bndwQA2AdBDwDgSA0bNpRvv/1WqlSpIoGBN/65q169uglfmzZtMuPN1NmzZ003Su/KmgYZHafmdujQIZ8qln6Pdt+MiYmR8PDwIq1r3bp1TejT8YLZK21ujz/+uAmzWtHU8Ybr1q3L8zO126ouqyHV3aW0MHTbvffee7J8+XKzrbJzVyz1ewAA9sNkLAAAR9JZLbXipOPRtmzZYkKJVqd69+5tuihql0699IBOyLJq1SozQ6eOhcvePVEndNGxdTohiU7q0r9/f5/qXI8ePUz1TGfa1IlJDh8+bMbmDR48WI4dO1agddUw2qtXL9NNUmf4dH+Gjttz066dun5vvvmmGY+oY+by6+aq1cZ9+/YVetvpttDJYbQ7p3Y5TU1NNTfdnm4bN240s4Pmtx4AAP8g6AEAHEnHtekMmBrqdEIUrZrpZRN0khR3mJs4caI8+OCDpounVtJatGhxw1g/veSCTuCiyz377LPy2muv+XSZ1MdaXdOqYNeuXaVWrVomQGrFqzAVPq2+PfnkkzJgwAAzWYtO0qKXf/Cmn6vjCjWs5kdnyezSpUuRLmqugVarltp1U7u5um/6+7npDKEacvPqPgoA8B+XlX3gAQAAtzG9Vlz9+vXl448/FrvRiqHOEKrX7dNLG+Rn9+7d8thjj5lqZk6T0hSVXotQJ63RQJjTBesBAP5HRQ8AAJvTGTa1G6he3kBn2ixIyFP16tUzk9FoV9DipBdU//TTTwl5AGBjTMYCAIDNaTdJ7baplcZvvvmmUD+r4/qKW+PGjc0NAGBfdN0EAAAAAIeh6yYAAAAAOAxBDwAAAAAchqAHAAAAAA5D0AMAAAAAhyHoAQAAAIDDEPQAAAAAwGEIegAAAADgMAQ9AAAAAHAYgh4AAAAAiLP8P42468WGjqY+AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "fig, ax = plt.subplots(figsize=(9, 5))\n", + "\n", + "# Use the same color for each run in both DataFrames.\n", + "for color, column in zip(plt.rcParams[\"axes.prop_cycle\"].by_key()[\"color\"], FAS_df.columns):\n", + " ax.plot(FAS_df.index, FAS_df[column], color=color, label=f\"{column} — FAS\")\n", + " ax.plot(\n", + " Kappa_Fitted_Line_df.index,\n", + " Kappa_Fitted_Line_df[column],\n", + " color=color,\n", + " linestyle=\"--\",\n", + " linewidth=2,\n", + " label=f\"{column} — kappa fitted line\",\n", + " )\n", + "\n", + "ax.set(\n", + " xlabel=\"Frequency (Hz)\",\n", + " ylabel=\"Fourier amplitude (cm/s)\",\n", + " title=\"Fourier Amplitude Spectrum and Kappa Fitted Line\",\n", + " yscale=\"log\",\n", + ")\n", + "ax.grid(True, which=\"both\", alpha=0.3)\n", + "ax.legend()\n", + "fig.tight_layout()\n", + "plt.show()" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "3.12.13", "language": "python", "name": "python3" }, @@ -333,7 +348,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.10" + "version": "3.12.13" } }, "nbformat": 4, From 3f859f5c74c189da335079c10c71186cab54440f Mon Sep 17 00:00:00 2001 From: James Dea <49453187+jimxia7@users.noreply.github.com> Date: Tue, 28 Jul 2026 19:03:14 -0500 Subject: [PATCH 10/22] Fixing bugs from last commit --- src/pystrata/motion.py | 43 ++++++++++++++++++++++++++++++++++++------ src/pystrata/tools.py | 32 ------------------------------- tests/WorkFlow.ipynb | 38 ++++++++++++++++++++++++------------- 3 files changed, 62 insertions(+), 51 deletions(-) diff --git a/src/pystrata/motion.py b/src/pystrata/motion.py index a36add3..273216b 100644 --- a/src/pystrata/motion.py +++ b/src/pystrata/motion.py @@ -28,8 +28,6 @@ import pyrvt import pykooh -from .tools import _compute_fourier_spectrum - # Gravity in m/sec² from scipy.constants import g as GRAVITY @@ -37,6 +35,38 @@ DEFAULT_KAPPA_FREQS = np.logspace(np.log10(10), np.log10(30), 100) +def _compute_fourier_spectrum(time_step, + accels, + freqs = None, + fa_length=None, + ko_bandwidth = None): + """Compute the Fourier Amplitude Spectrum of the time series.""" + + if fa_length is None: + # Use the next power of 2 for the length + n = 1 + while n < accels.size: + n <<= 1 + else: + n = fa_length + + fft_freqs = np.fft.rfftfreq(n, d = time_step) + + if freqs is None: + freqs = fft_freqs + + if ko_bandwidth is None: + FAS = np.interp(freqs, + fft_freqs, + np.fft.rfft(accels, n)) + else: + FAS = pykooh.smooth(freqs, + fft_freqs, + np.fft.rfft(accels, n), + ko_bandwidth) + + return freqs, FAS + class WaveField(enum.Enum): outcrop = 0 within = 1 @@ -124,6 +154,7 @@ def __init__( self._description = description self._time_step = time_step self._accels = np.asarray(accels) + self._kappa = None self._calc_fourier_spectrum(fa_length) @@ -239,8 +270,8 @@ def _calc_fourier_spectrum(self, """Compute the Fourier Amplitude Spectrum of the time series.""" self._freqs, self._fourier_amps = _compute_fourier_spectrum( - self._accels, self.time_step, + self._accels, freqs = freqs, fa_length= fa_length, ko_bandwidth= ko_bandwidth @@ -248,7 +279,7 @@ def _calc_fourier_spectrum(self, @property def kappa(self): - + if self._kappa is None: self._calc_kappa() @@ -259,7 +290,7 @@ def _calc_kappa(self, fa_length=None, ko_bandwidth = None): - fas = _compute_fourier_spectrum( + _,fas = _compute_fourier_spectrum( self.time_step, self.accels, freqs = freqs_range, @@ -267,7 +298,7 @@ def _calc_kappa(self, ko_bandwidth=ko_bandwidth ) - self._kappa = -np.polyfit(freqs_range, np.log(fas),1)[0]/np.pi + self._kappa = -np.polyfit(freqs_range, np.log(abs(fas)),1)[0]/np.pi def _calc_sdof_tf(self, osc_freq, damping=0.05): """Compute the transfer function for a single-degree-of-freedom oscillator. diff --git a/src/pystrata/tools.py b/src/pystrata/tools.py index ec45dac..bd1b732 100644 --- a/src/pystrata/tools.py +++ b/src/pystrata/tools.py @@ -534,35 +534,3 @@ def calc_mean_eff_stress( stress_mean = stress_vert_eff * (1 + 2 * k0) / 3 return stress_mean - -def _compute_fourier_spectrum(time_step, - accels, - freqs = None, - fa_length=None, - ko_bandwidth = None): - """Compute the Fourier Amplitude Spectrum of the time series.""" - - if fa_length is None: - # Use the next power of 2 for the length - n = 1 - while n < accels.size: - n <<= 1 - else: - n = fa_length - - fft_freqs = np.fft.rfftfreq(n, d = time_step) - - if freqs is None: - freqs = fft_freqs - - if ko_bandwidth is None: - FAS = np.interp(freqs, - fft_freqs, - np.fft.rfft(accels, n)) - else: - FAS = pykooh.smooth(freqs, - fft_freqs, - np.fft.rfft(accels, n), - ko_bandwidth) - - return freqs, FAS \ No newline at end of file diff --git a/tests/WorkFlow.ipynb b/tests/WorkFlow.ipynb index 6695718..c9a9771 100644 --- a/tests/WorkFlow.ipynb +++ b/tests/WorkFlow.ipynb @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 1, "id": "ed449b23", "metadata": {}, "outputs": [ @@ -46,7 +46,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 2, "id": "4c25fc14", "metadata": {}, "outputs": [], @@ -58,7 +58,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 3, "id": "d2cafcc5", "metadata": {}, "outputs": [], @@ -80,7 +80,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 4, "id": "b32ef6ba", "metadata": {}, "outputs": [], @@ -116,7 +116,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 5, "id": "ec0a55f6", "metadata": {}, "outputs": [], @@ -127,10 +127,18 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 6, "id": "458b1a12", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.07579164697965307\n" + ] + } + ], "source": [ "# Calculation Loop\n", "outputs_freqs = np.logspace(np.log10(0.01),np.log10(100),1000)\n", @@ -189,13 +197,17 @@ "motion = pystrata.motion.TimeSeriesMotion.load_at2_file(\n", " 'data/NIS090.AT2'\n", ")\n", + "\n", + "print(motion.kappa)\n", + "\n", + "\n", "eql_calc = pystrata.propagation.EquivalentLinearCalculator(strain_limit = 0.5)\n", "le_calc = pystrata.propagation.LinearElasticCalculator()" ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 7, "id": "8b7b3271", "metadata": {}, "outputs": [], @@ -209,7 +221,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 8, "id": "aea34d27", "metadata": {}, "outputs": [], @@ -222,7 +234,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 9, "id": "8b9c5bc8", "metadata": {}, "outputs": [], @@ -236,7 +248,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 10, "id": "167c0350", "metadata": {}, "outputs": [ @@ -254,7 +266,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 11, "id": "6a8e1200", "metadata": {}, "outputs": [ @@ -287,7 +299,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 12, "id": "46e7091a", "metadata": {}, "outputs": [ From 282b075ce2a18ef7758f2d98341d789a7b7e39fc Mon Sep 17 00:00:00 2001 From: jimxia7 Date: Wed, 29 Jul 2026 16:43:37 -0500 Subject: [PATCH 11/22] Adding kappa corrected output --- src/pystrata/motion.py | 3 +- src/pystrata/output.py | 81 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 79 insertions(+), 5 deletions(-) diff --git a/src/pystrata/motion.py b/src/pystrata/motion.py index 273216b..1f29ecf 100644 --- a/src/pystrata/motion.py +++ b/src/pystrata/motion.py @@ -127,7 +127,7 @@ class TimeSeriesMotion(Motion): """Time-series motion for time series based site response analysis.""" def __init__( - self, filename: str, description: str, time_step: float, accels, fa_length=None + self, filename: str, description: str, time_step: float, accels ): """Initialize the class from specified acceleration values. @@ -156,7 +156,6 @@ def __init__( self._accels = np.asarray(accels) self._kappa = None - self._calc_fourier_spectrum(fa_length) @property def accels(self): diff --git a/src/pystrata/output.py b/src/pystrata/output.py index f28efa9..9e562a5 100644 --- a/src/pystrata/output.py +++ b/src/pystrata/output.py @@ -549,6 +549,33 @@ def _modify_values(self, values): return Kappa_Fitted_Line +class KappaCorrectFourierAmplitudeSpectrumOutput(FourierAmplitudeSpectrumOutput): + + def __init__(self, freqs, freqs_range_for_kappa,kappa_target, location, ko_bandwidth=None): + super().__init__(freqs, location, ko_bandwidth) + self._freqs_range = freqs_range_for_kappa + self._kappa_target = kappa_target + self._ko_bandwidth = ko_bandwidth + + @property + def freqs_range(self): + return self._freqs_range + + @property + def kappa_target(self): + return self._kappa_target + + def _modify_values(self, values): + + values_for_kappa = np.interp(self.freqs_range,self.freqs,values) + + kappa = -np.polyfit(self.freqs_range,np.log(values_for_kappa),1)[0]/np.pi + + delta_kappa = self.kappa_target - kappa + kappa_corrected_values = np.exp(-np.pi*delta_kappa*self.freqs)*values + + return kappa_corrected_values + class ResponseSpectrumOutput(LocationBasedOutput): _const_ref = True @@ -556,7 +583,7 @@ class ResponseSpectrumOutput(LocationBasedOutput): ref_name = "freq" - def __init__(self, freqs, location, osc_damping): + def __init__(self, freqs, location, osc_damping = 0.05): super().__init__(freqs, location) self._osc_damping = osc_damping @@ -580,9 +607,47 @@ def __call__(self, calc, name=None): Output.__call__(self, calc, name) loc = self._get_location(calc) tf = calc.calc_accel_tf(calc.loc_input, loc) + tf = self._modify_tf(calc,tf) ars = calc.motion.calc_osc_accels(self.freqs, self.osc_damping, tf) self._add_values(ars) + def _modify_tf(self,calc,values): + return values + +class KappaCorrectedResponseSpectrumOutput(ResponseSpectrumOutput): + + def __init__(self, freqs, freqs_range_for_kappa, kappa_target, location, osc_damping = 0.05,ko_bandwidth = None): + super().__init__(freqs, location, osc_damping) + self._freqs_range = freqs_range_for_kappa + self._kappa_target = kappa_target + self._ko_bandwidth = ko_bandwidth + + @property + def freqs_range(self): + return self._freqs_range + + @property + def kappa_target(self): + return self._kappa_target + + @property + def ko_bandwidth(self): + return self._ko_bandwidth + + def _modify_tf(self,calc,values): + + values_for_kappa = np.interp(self.freqs_range,self.freqs,values) + + fas = np.abs(values_for_kappa* + calc.motion._calc_fourier_spectrum(freqs = self.freqs_range, + ko_bandwidth = self.ko_bandwidth)) + + kappa = -np.polyfit(self.freqs_range,np.log(fas),1)[0]/np.pi + + delta_kappa = self.kappa_target - kappa + kappa_corrected_values = np.exp(-np.pi*delta_kappa*self.freqs)*values + + return kappa_corrected_values class RatioBasedOutput(Output): _const_ref = True @@ -615,7 +680,12 @@ class AccelTransferFunctionOutput(RatioBasedOutput): ref_name = "freq" def __init__( - self, refs, location_in, location_out, ko_bandwidth=None, absolute=True + self, + refs, + location_in, + location_out, + ko_bandwidth=None, + absolute=True ): super().__init__(refs, location_in, location_out) self._ko_bandwidth = ko_bandwidth @@ -636,12 +706,17 @@ def __call__(self, calc, name=None): else: tf = pykooh.smooth(self.freqs, calc.motion.freqs, tf, self._ko_bandwidth) - self._add_values(tf) + values = self._modify_values(tf) + + self._add_values(values) @property def freqs(self): return self._refs + def _modify_values(self,values): + return values + class ResponseSpectrumRatioOutput(RatioBasedOutput): xlabel = "Frequency (Hz)" From 350e16da13339bf763c8a886510539158248a6ed Mon Sep 17 00:00:00 2001 From: jimxia7 Date: Wed, 29 Jul 2026 16:55:46 -0500 Subject: [PATCH 12/22] continuation from last commit --- src/pystrata/output.py | 102 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 96 insertions(+), 6 deletions(-) diff --git a/src/pystrata/output.py b/src/pystrata/output.py index 9e562a5..2eb1480 100644 --- a/src/pystrata/output.py +++ b/src/pystrata/output.py @@ -706,27 +706,79 @@ def __call__(self, calc, name=None): else: tf = pykooh.smooth(self.freqs, calc.motion.freqs, tf, self._ko_bandwidth) - values = self._modify_values(tf) + values = self._modify_tf(calc, tf) self._add_values(values) @property def freqs(self): return self._refs - - def _modify_values(self,values): + + @property + def ko_bandwidth(self): + return self._ko_bandwidth + + def _modify_tf(self, calc, values): return values +class KappaCorrectedAccelTransferFunctionOutput(AccelTransferFunctionOutput): + + def __init__( + self, + refs, + freqs_range_for_kappa, + kappa_target, + location_in, + location_out, + ko_bandwidth=None, + absolute=True + ): + super().__init__(refs, + location_in, + location_out, + ko_bandwidth, + absolute) + self._freqs_range = freqs_range_for_kappa + self._kappa_target = kappa_target + + @property + def freqs_range(self): + return self._freqs_range + + @property + def kappa_target(self): + return self._kappa_target + + def _modify_tf(self, calc, values): + + values_for_kappa = np.interp(self.freqs_range,self.freqs,values) + + fas = np.abs(values_for_kappa* + calc.motion._calc_fourier_spectrum(freqs = self.freqs_range, + ko_bandwidth = self.ko_bandwidth)) + + kappa = -np.polyfit(self.freqs_range,np.log(fas),1)[0]/np.pi + + delta_kappa = self.kappa_target - kappa + kappa_corrected_values = np.exp(-np.pi*delta_kappa*self.freqs)*values + + return kappa_corrected_values + class ResponseSpectrumRatioOutput(RatioBasedOutput): xlabel = "Frequency (Hz)" ref_name = "freq" - def __init__(self, freqs, location_in, location_out, osc_damping): + def __init__(self, freqs, location_in, location_out, osc_damping, ko_bandwidth = None): super().__init__(freqs, location_in, location_out) self._osc_damping = osc_damping + self._ko_bandwidth = ko_bandwidth + @property + def ko_bandwidth(self): + return self._ko_bandwidth + @property def freqs(self): return self._refs @@ -746,15 +798,53 @@ def ylabel(self): def __call__(self, calc, name=None): Output.__call__(self, calc, name) loc_in, loc_out = self._get_locations(calc) + + in_tf = calc.calc_accel_tf(calc.loc_input, loc_in) in_ars = calc.motion.calc_osc_accels( - self.freqs, self.osc_damping, calc.calc_accel_tf(calc.loc_input, loc_in) + self.freqs, self.osc_damping, in_tf ) + + out_tf = calc.calc_accel_tf(calc.loc_input, loc_out) + out_tf = self._modify_tf(calc,out_tf) out_ars = calc.motion.calc_osc_accels( - self.freqs, self.osc_damping, calc.calc_accel_tf(calc.loc_input, loc_out) + self.freqs, self.osc_damping, out_tf ) ratio = out_ars / in_ars self._add_values(ratio) + def _modify_tf(self,calc,values): + return values + +class KappaCorrectedResponseSpectrumRatioOutput(ResponseSpectrumRatioOutput): + + def __init__(self, freqs, freqs_range_for_kappa, kappa_target, location_in, location_out, osc_damping, ko_bandwidth = None): + super().__init__(freqs, location_in, location_out, osc_damping) + self._freqs_range = freqs_range_for_kappa + self._kappa_target = kappa_target + + @property + def freqs_range(self): + return self._freqs_range + + @property + def kappa_target(self): + return self._kappa_target + + def _modify_tf(self, calc, values): + + values_for_kappa = np.interp(self.freqs_range,self.freqs,values) + + fas = np.abs(values_for_kappa* + calc.motion._calc_fourier_spectrum(freqs = self.freqs_range, + ko_bandwidth = self.ko_bandwidth)) + + kappa = -np.polyfit(self.freqs_range,np.log(fas),1)[0]/np.pi + + delta_kappa = self.kappa_target - kappa + kappa_corrected_values = np.exp(-np.pi*delta_kappa*self.freqs)*values + + return kappa_corrected_values + class ProfileBasedOutput(Output): ylabel = "Depth (m)" From 3bd0f7fae62d863b96031eea209a9af8de000c81 Mon Sep 17 00:00:00 2001 From: James Dea <49453187+jimxia7@users.noreply.github.com> Date: Fri, 31 Jul 2026 09:42:38 -0500 Subject: [PATCH 13/22] Fixing bugs and trying to figure out adding kappa_correct metho into existing output --- src/pystrata/motion.py | 7 ++- src/pystrata/output.py | 70 ++++++++++++++++++------- tests/WorkFlow.ipynb | 113 +++++++++++++---------------------------- 3 files changed, 90 insertions(+), 100 deletions(-) diff --git a/src/pystrata/motion.py b/src/pystrata/motion.py index 1f29ecf..8e8204b 100644 --- a/src/pystrata/motion.py +++ b/src/pystrata/motion.py @@ -77,7 +77,7 @@ class Motion: def __init__(self, freqs=None): object.__init__(self) - self._freqs = np.array([] if freqs is None else freqs) + self._freqs = None if freqs is None else np.array(freqs) self._pga = None self._pgv = None self._arias_intensity = None @@ -155,7 +155,7 @@ def __init__( self._time_step = time_step self._accels = np.asarray(accels) self._kappa = None - + self._fourier_amps = None @property def accels(self): @@ -188,7 +188,6 @@ def freqs(self): @property def fourier_amps(self): - """Return the frequencies.""" if self._fourier_amps is None: self._calc_fourier_spectrum() @@ -264,7 +263,7 @@ def calc_osc_accels(self, osc_freqs, osc_damping=0.05, tf=None): def _calc_fourier_spectrum(self, freqs = None, - fa_length=None, + fa_length = None, ko_bandwidth = None): """Compute the Fourier Amplitude Spectrum of the time series.""" diff --git a/src/pystrata/output.py b/src/pystrata/output.py index 2eb1480..b42ad2c 100644 --- a/src/pystrata/output.py +++ b/src/pystrata/output.py @@ -34,7 +34,7 @@ import pykooh -from .motion import GRAVITY, TimeSeriesMotion, WaveField +from .motion import GRAVITY, TimeSeriesMotion, WaveField, _compute_fourier_spectrum def plot_amplification_evolv( @@ -207,9 +207,19 @@ def values(self): def names(self): return self._names - def reset(self): + def reset_all(self): + self._values = None + self._names = [] + if not self._const_ref: + self._refs = np.array([]) + + def reset_values(self): self._values = None + + def reset_name(self): self._names = [] + + def reset_refs(self): if not self._const_ref: self._refs = np.array([]) @@ -311,7 +321,6 @@ def plot(self, ax=None, style="indiv"): return ax - class OutputLocation: def __init__(self, wave_field, depth=None, index=None): self._depth = depth @@ -507,6 +516,20 @@ def __call__(self, calc, name=None): def _modify_values(self, values): return values + def kappa_correction(self,freqs_range_for_kappa,kappa_target,name = None): + values = self.values if self.values.ndim == 1 else self.values[:, -1] + values_for_kappa = np.interp(freqs_range_for_kappa, self.freqs, values) + + kappa = -np.polyfit(freqs_range_for_kappa,np.log(values_for_kappa),1)[0]/np.pi + + delta_kappa = kappa_target - kappa + kappa_corrected_values = np.exp(-np.pi*delta_kappa*self.freqs)*self.values + + self.reset_values() + + self._add_values(kappa_corrected_values) + self._names.append(name) + class KappaOutput(FourierAmplitudeSpectrumOutput): ylabel = "Kappa" @@ -638,15 +661,18 @@ def _modify_tf(self,calc,values): values_for_kappa = np.interp(self.freqs_range,self.freqs,values) - fas = np.abs(values_for_kappa* - calc.motion._calc_fourier_spectrum(freqs = self.freqs_range, - ko_bandwidth = self.ko_bandwidth)) - + _, fas = _compute_fourier_spectrum( + calc.motion.time_step, + calc.motion._accels, + freqs=self.freqs_range, + ko_bandwidth=self.ko_bandwidth) + fas = np.abs(values_for_kappa * fas) + kappa = -np.polyfit(self.freqs_range,np.log(fas),1)[0]/np.pi delta_kappa = self.kappa_target - kappa kappa_corrected_values = np.exp(-np.pi*delta_kappa*self.freqs)*values - + return kappa_corrected_values class RatioBasedOutput(Output): @@ -753,15 +779,18 @@ def _modify_tf(self, calc, values): values_for_kappa = np.interp(self.freqs_range,self.freqs,values) - fas = np.abs(values_for_kappa* - calc.motion._calc_fourier_spectrum(freqs = self.freqs_range, - ko_bandwidth = self.ko_bandwidth)) - + _, fas = _compute_fourier_spectrum( + calc.motion.time_step, + calc.motion._accels, + freqs=self.freqs_range, + ko_bandwidth=self.ko_bandwidth) + fas = np.abs(values_for_kappa * fas) + kappa = -np.polyfit(self.freqs_range,np.log(fas),1)[0]/np.pi delta_kappa = self.kappa_target - kappa kappa_corrected_values = np.exp(-np.pi*delta_kappa*self.freqs)*values - + return kappa_corrected_values @@ -834,17 +863,20 @@ def _modify_tf(self, calc, values): values_for_kappa = np.interp(self.freqs_range,self.freqs,values) - fas = np.abs(values_for_kappa* - calc.motion._calc_fourier_spectrum(freqs = self.freqs_range, - ko_bandwidth = self.ko_bandwidth)) - + _, fas = _compute_fourier_spectrum( + calc.motion.time_step, + calc.motion._accels, + freqs=self.freqs_range, + ko_bandwidth=self.ko_bandwidth) + fas = np.abs(values_for_kappa * fas) + kappa = -np.polyfit(self.freqs_range,np.log(fas),1)[0]/np.pi delta_kappa = self.kappa_target - kappa kappa_corrected_values = np.exp(-np.pi*delta_kappa*self.freqs)*values - + return kappa_corrected_values - + class ProfileBasedOutput(Output): ylabel = "Depth (m)" diff --git a/tests/WorkFlow.ipynb b/tests/WorkFlow.ipynb index c9a9771..b5da866 100644 --- a/tests/WorkFlow.ipynb +++ b/tests/WorkFlow.ipynb @@ -141,8 +141,8 @@ ], "source": [ "# Calculation Loop\n", - "outputs_freqs = np.logspace(np.log10(0.01),np.log10(100),1000)\n", - "RS_freqs = np.logspace(np.log10(0.05),np.log10(100),1000)\n", + "outputs_freqs = np.logspace(np.log10(0.01),np.log10(50),1000)\n", + "RS_freqs = np.logspace(np.log10(0.05),np.log10(50),1000)\n", "\n", "Kappa_freqs = outputs_freqs[\n", " (outputs_freqs >= 10) & (outputs_freqs <= 30)\n", @@ -150,46 +150,12 @@ "\n", "output = pystrata.output.OutputCollection(\n", " [\n", - " pystrata.output.AccelTransferFunctionOutput(\n", - " # Frequency\n", - " outputs_freqs,\n", - " # Location in (denominator),\n", - " pystrata.output.OutputLocation(\"outcrop\", index=-1),\n", - " # Location out (numerator)\n", - " pystrata.output.OutputLocation(\"outcrop\", index=0)\n", - " ),\n", + "\n", " pystrata.output.FourierAmplitudeSpectrumOutput(\n", " outputs_freqs,\n", " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", " None#type:ignore\n", " ),\n", - " pystrata.output.KappaOutput(\n", - " Kappa_freqs,\n", - " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", - " None\n", - " ),\n", - " pystrata.output.KappaFittedLineOutput(\n", - " Kappa_freqs,\n", - " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", - " None\n", - " ),\n", - " pystrata.output.ResponseSpectrumOutput(\n", - " # Frequency\n", - " RS_freqs,\n", - " # Location of the output\n", - " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", - " # Damping\n", - " 0.05,\n", - " ),\n", - " pystrata.output.ResponseSpectrumRatioOutput(\n", - " # Frequency\n", - " RS_freqs,\n", - " # Location of the output\n", - " pystrata.output.OutputLocation(\"outcrop\", index=-1),\n", - " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", - " # Damping\n", - " 0.05,\n", - " )\n", " ] \n", " )\n", "\n", @@ -249,63 +215,48 @@ { "cell_type": "code", "execution_count": 10, - "id": "167c0350", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "None\n" - ] - } - ], - "source": [ - "print(output[3].ko_bandwidth)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, "id": "6a8e1200", "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - " test test 1\n", - "0.010000 1.416274e-07 1.404928e-07\n", - "0.010093 1.417419e-07 1.405969e-07\n", - "0.010186 1.418576e-07 1.407019e-07\n", - "0.010280 1.419743e-07 1.408079e-07\n", - "0.010376 1.420921e-07 1.409149e-07\n", - "... ... ...\n", - "96.379348 1.759001e-33 2.035411e-07\n", - "97.272032 1.759001e-33 2.035411e-07\n", - "98.172984 1.759001e-33 2.035411e-07\n", - "99.082281 1.759001e-33 2.035411e-07\n", - "100.000000 1.759001e-33 2.035411e-07\n", - "\n", - "[1000 rows x 2 columns]\n" + "ename": "ValueError", + "evalue": "operands could not be broadcast together with shapes (1000,) (1000,2) ", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mValueError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[10]\u001b[39m\u001b[32m, line 2\u001b[39m\n\u001b[32m 1\u001b[39m FAS_df = output[\u001b[32m0\u001b[39m].to_dataframe()\n\u001b[32m----> \u001b[39m\u001b[32m2\u001b[39m Kappa_corrected_df = output[\u001b[32m0\u001b[39m].kappa_correction(Kappa_freqs,\u001b[32m0.039\u001b[39m).to_dataframe()\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Github/pystrata/src/pystrata/output.py:526\u001b[39m, in \u001b[36mFourierAmplitudeSpectrumOutput.kappa_correction\u001b[39m\u001b[34m(self, freqs_range_for_kappa, kappa_target, name)\u001b[39m\n\u001b[32m 523\u001b[39m kappa = -np.polyfit(freqs_range_for_kappa,np.log(values_for_kappa),\u001b[32m1\u001b[39m)[\u001b[32m0\u001b[39m]/np.pi\n\u001b[32m 525\u001b[39m delta_kappa = kappa_target - kappa\n\u001b[32m--> \u001b[39m\u001b[32m526\u001b[39m kappa_corrected_values = \u001b[30;43mnp\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mexp\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m-\u001b[39;49m\u001b[30;43mnp\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mpi\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mdelta_kappa\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mfreqs\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mvalues\u001b[39;49m\n\u001b[32m 528\u001b[39m \u001b[38;5;28mself\u001b[39m.reset_values()\n\u001b[32m 530\u001b[39m \u001b[38;5;28mself\u001b[39m._add_values(kappa_corrected_values)\n", + "\u001b[31mValueError\u001b[39m: operands could not be broadcast together with shapes (1000,) (1000,2) " ] } ], "source": [ - "Kappa_Fitted_Line_df = output[3].to_dataframe()\n", - "FAS_df = output[1].to_dataframe()\n", - "print(FAS_df)" + "\n", + "FAS_df = output[0].to_dataframe()\n", + "Kappa_corrected_df = output[0].kappa_correction(Kappa_freqs,0.039).to_dataframe()" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "46e7091a", "metadata": {}, "outputs": [ + { + "ename": "NameError", + "evalue": "name 'Kappa_Fitted_Line_df' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mNameError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[11]\u001b[39m\u001b[32m, line 9\u001b[39m\n\u001b[32m 5\u001b[39m \u001b[38;5;66;03m# Use the same color for each run in both DataFrames.\u001b[39;00m\n\u001b[32m 6\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m color, column \u001b[38;5;28;01min\u001b[39;00m zip(plt.rcParams[\u001b[33m\"axes.prop_cycle\"\u001b[39m].by_key()[\u001b[33m\"color\"\u001b[39m], FAS_df.columns):\n\u001b[32m 7\u001b[39m ax.plot(FAS_df.index, FAS_df[column], color=color, label=f\"{column} — FAS\")\n\u001b[32m 8\u001b[39m ax.plot(\n\u001b[32m----> \u001b[39m\u001b[32m9\u001b[39m Kappa_Fitted_Line_df.index,\n\u001b[32m 10\u001b[39m Kappa_Fitted_Line_df[column],\n\u001b[32m 11\u001b[39m color=color,\n\u001b[32m 12\u001b[39m linestyle=\u001b[33m\"--\"\u001b[39m,\n", + "\u001b[31mNameError\u001b[39m: name 'Kappa_Fitted_Line_df' is not defined" + ] + }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3oAAAHqCAYAAABSqjwSAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAs9VJREFUeJzs3Qd4U1UbB/B/d+mE0payy0ag7L03AoKAKAKyVHAAonwOcIC4UFREAUVRZAiKyFJRpuy996ZsWspqKdCd73nPJWmSptCd0f/veS5Nbm7Tk3tvwn3znvMeJ51OpwMRERERERE5DGdrN4CIiIiIiIhyFgM9IiIiIiIiB8NAj4iIiIiIyMEw0CMiIiIiInIwDPSIiIiIiIgcDAM9IiIiIiIiB8NAj4iIiIiIyMEw0CMiIiIiInIwDPSIiIiIiIgcDAM9InIYTk5OeP/995GfhYaGYuDAgYb769atU/tFfuaFli1bqoVIzJw5U51/Z8+e5Q55CNlHsq9knznKMcvrzx8iMsVAj4iydTFgaRk1alS+2au3bt2Cp6enet1Hjx6FPZg3bx4mTZoEe/HXX3+hRYsWCA4OhpeXF8qWLYunnnoKy5cvt3bTcOTIEfXlAgOZ7JF9KO+ha9eumay/cOECypUrh4CAAOzZswf57TPzn3/+sfjl1d27d9V6awZQ6R0zIrIdrtZuABHZtw8++ABlypQxWVetWjWrtOXevXtwdc3bj7UFCxaoi52QkBDMnTsXH330EWxJ8+bN1X5xd3c3CfQOHTqEV199Fbbuiy++wBtvvKECvdGjR6tA79SpU1i9ejV+++03PProo1YP9MaNG6eymJJNpZxz6dIltGrVCjdu3FDHu3bt2g79mVm6dGn1XnVzczMJ9KZOnZom2JNAT847YcsZdEufP0SUdxjoEVG2dOzYEXXr1rXaXkxJSUFCQoLKqsmSU+Li4tTFibPzgzs+/PLLL+jUqZO6SJMAytYCPWl/Tu6XvJSUlIQPP/wQ7dq1w8qVK9M8fvXqVdgTnU6nzqsCBQpYuyk27/LlyyrIu379OlatWoU6deogP3xm2ut71RE/f4gcAbtuElGu+u+//9CsWTN4e3ujYMGCePzxx9N0cZQxZZayIfquQcbk/rBhw1T2rGrVqvDw8DB04bM0Rk+yAs8++yyKFCmitpXfmTFjhsVxJJIhevfdd1G8eHGVOYqJiXngazt//jw2btyIp59+Wi3h4eHYsmVLmu3kG3f5xv7AgQMqMyXPXb58efzxxx/q8fXr16NBgwYqAKhUqZLKXljaD8eOHVNdFv38/FC4cGGMGDFCBQ6ZGSMjbVm2bBnOnTtn6Dam3/fpjc1Jb5zNDz/8oLrVSbvr16+v9oUl8fHxGDt2rHrNcgxKliyJN998U61/EOkSJsegSZMmFh+XrpzmbZw/fz7efvttlWGVc65r166q+5+57du3q2ygv7+/Oh5yXDZv3pxmOzl/nnvuORQrVky1XTIxL730kvpyQfbXk08+qbaToES/P/X7SfbrY489hhUrVqgLe9lP33///QPHYpmfw/pjf+LECTzzzDOqvUFBQXjvvfdU4CivTd5Tck7Ia/7yyy+RET///DNat26t9qG8ripVquC7775Ls53+NWzatEkdY7lol66zs2fPTrPt4cOH1XPK6yxRooT60kO+iMmsK1euqP0pgbwE+OZBUWbbLs9Rs2ZN1XbZdtGiRSbb6c/7DRs24IUXXlDvLdmf/fv3x82bN022Xbp0KTp37mw4H+T8ly8jkpOTkV3m54V8Lko2Txh385Tt5BwQktXTrzc+b+SzomfPnqrLq7xu2Yd//vlnrh2z9Fj67NB/Hko2XI6zvP/kM3fChAk59tlBRBpm9IgoW6Kjo9OM0QgMDFQ/JWCRb6/lwlAuQqQLz+TJk9WFu4y3yWpXNwkef//9dxXwyd9K73kiIyPRsGFDQ3AoF0f//vuvunCXAMK866JcsEkW7/XXX1cXEg/rbvTrr7+qYEIuJuVCSS76JABt3Lhxmm3lglG2k4BQggO5MJXbsr2048UXX0SfPn3w+eefqws0uYD39fU1eQ4J8uS1jh8/Htu2bcM333yjntfSRXd63nnnHXXMLl68iK+++kqt8/HxQWb99NNP6qJYXqu0/8yZMyqokgtLuRjTk4tGWS+BwpAhQ/DII4/g4MGD6m9L8LJkyZJ0/4ZcyMt+lTF6w4cPV8/9MB9//LE63m+99ZYKFGQsYtu2bbFv3z5DJk3OHzkvJUskF5GSddAHDxKsSkCjzyrJbRmHKW2vXLmyCvwkQJeuc9It7ZVXXlHHQYJLeW1C/1McP34cvXv3Vvtq8ODBKpDPil69eqnn/fTTT1WgLhfksj8kcJR2f/bZZ+pcknO3Xr16qm0PIueffOkhx0a6O8s+fvnll9XxGjp0qMm20lVWzkl53wwYMEB9USJBiOw/eQ4RERGhLtolCyvjzeR9IV8EZDZ7Ke9Z+VvyfBKgyWvJTttPnjyp9p28v6Ttcpzl/SdfDkmm2Jh8RsiXUfJZJcdN/o58IaIPVoQEYfJ+GTlypPop59KYMWPU54m8d7P7mWlMzhk5ByWjOWfOHMN6+RyTtskXDt27d0ePHj3U+urVqxuCN/mMleBJfyzk87Jbt25YuHCh+p2cPGZZIZ9b8kWLtF0+1+Q9Je/ZsLAw9d7M7mcHEd2nIyLKgp9//lknHyGWFr2aNWvqgoODddevXzes279/v87Z2VnXv39/w7oBAwboSpcuneZvjB071uT5hNyX3z98+HCa7eUx+R295557Tle0aFHdtWvXTLZ7+umndf7+/rq7d++q+2vXrlW/W7ZsWcO6jAgLC9P17dvXcP/tt9/WBQYG6hITE022a9GihXr+efPmGdYdO3bM8Fq2bdtmWL9ixQq1Xvav+X7o2rWryfO+/PLLar3sUz3Zj7I/9fSvTX7qde7c2eL+1h/T8PBwk/Xmz5GQkKCOqxzf+Ph4w3Y//PCD2k5er96cOXPUa9y4caPJc06bNk1tu3nzZt2DjBkzRm3n7e2t69ixo+7jjz/W7d69O812+jYWL15cFxMTY1j/+++/q/Vff/21up+SkqKrUKGCrkOHDuq2nhz3MmXK6Nq1a2dYJ+eotH3nzp1p/p7+dxcsWJBm/+rJPpbHli9fbrJe9q/5MU7vHNYf+yFDhhjWJSUl6UqUKKFzcnLSffrpp4b1N2/e1BUoUMDk+KfH0nku+0TeA5Zew4YNGwzrrl69qvPw8ND973//M6x79dVX1Xbbt2832U7eZ5bOKXP61yl/z8/PT7d169Yca/vChQsN66Kjo9VnQq1atdKc93Xq1FHntt6ECRPU+qVLlz7wb7/wwgs6Ly8vXVxcXLY+My2dF0OHDk3zGSiioqLSnCt6bdq0UZ9Nxu2R87Vx48bq3M/pYyZtSY+lzx/95+Hs2bMN6+RzJCQkRPfEE0/k2GcHEel07LpJRNkiXYvkG2fjRd/9SrIo8s2/cSZGvnWWb9KlyEBWSTc76YL1IHLNLN9ed+nSRd2Wb9D1S4cOHdS36uZV/OQb/4x+my3dMOXbZcnW6MlteX7pqmdOvv2XDJ6eZHYkeyDfUku3TT39bcmQmTPPVkiWS2RnX2bFrl27VLZMsiTGWU851tK10LxYjbxGyYYZHwPJQom1a9c+8G9J1zQZ+1irVi21XyUjKZkkKcxhqcqpdLczzoRKdqho0aKGfSTnpGR5JHsq47/07blz5w7atGmjuu9JJkEWyRjI+WNpPJV5l+L0SFdPOd+y6/nnnzfcdnFxUW2S81qybHpyPsl5ZencMWd8nuszTPK+kt+V+8bkvSbdr40zSuZ/R/avZM/12VD9dn379s10Rk/eK3LMcqLt0sVSn8ES+i6Ze/fuVRktY5I1Mi6EIhkzyRgav7+M//bt27fV35Z9Ixle6S6Znc/MnCCFayTLKFkyfftkkXNdzkM59yUrnZPHLCvkGEtXZD35HJF2GJ9T2f3sICJ23SSibJL/nC1dCEuXJ2Gpq5r85y0X7XJxLd2FMsu8Yp0lUVFRqsuddEWSxRLzYh4ZeV7jIizSdumWKl3bhIyFka6V0oVOxvEYk/Ev5sGBBEXG3Rz164T52CBRoUIFk/vSVVS6HeZ1aX/9sTVvj1wky/4wJheWEpDpxxRlpaCKBNCySPc4GVsn3eck+JMgTKqHGhd7MG+T7HMZ36PfR9IefVCfHgkWZAye/L3sVpDNzDn1IKVKlUpznsjrNu/yJ+vlov5hZDyidFvdunWrClLMX79xwG7+t0WhQoVMzlE5J4y/sNDLbFdVeV9JACBfBkmXPeNxmFlpuxx78/ddxYoV1U85J2RcY3rnjj7gNH5/SbdIGccrwZT5GF7zIDOzn5k5QT6L5AsAGcMpS3rvOenWmVPHLCssfR7KOSVfoOXkZwdRfscxekRkdellR9IrcJCRrJu+oIBcNKZ3Ua8f05KZ5xVyISXj8yRQtZRZlAuQ2NhYk7FvkoWxJL31Wi++B8toVim3jkNGyHGQcTcTJ060+Lh5oPsgko2RAEAWCSpnzZqlAj/J5mSmPULGU0mBDkvkuElmJCdYOqeysp8tnSdZPXdOnz6tspeSKZHjIsdAMiqS4ZHxT+bFOLJzjmaWHEsZTyZjtyQDJePjjAO3zLY9J8kXR9I+OQ9ligT5okWCbekZIOPLcvNvZ5S+DTJWM71MsgS/1paRcyonPzuI8isGekSUK2S6ASFFDcxJFyfJROizefJNrlxEpZc5ygr5Fli68MnFsxTjyElSJVOKmcjFnnHhDSFZDukCJt3+jLsm5QT5hts4QyTf3svFUGaL2qQXaMhxEObHwvw46I+ttEffjUokJiaqyqM1atQwrJOL4f3796uL85wMTCUjIoGedBE2ps/YGV84yn7SB/XSHiEX6w86L+T8kW0kY/ggWXlNGd3PuUWKl0ixIanCaJyty05XODknzPd9eu//h5FMrRR8kS9o9FUz9QFzZtuuz3AZHycp5CHM3zfSfilOoidf1sj5JdOnCAk6JVsqVTuNi93IOZ9b0ju/0luvz6jLFyEP+9zLyWOWG3Lrs4MoP+EYPSLKFdLlSTImcjFufEErF85y4aa/eNL/hy7dnoy77cgF1uLFi7P1jfETTzyhxulZuliXrp1Zpe+2KRN5yxgw40UqK0oXMOm+mdP0pdb1pIKp0Fepyyhpu6VuZvogSMap6UmgbN71VYIsCYSmTZumujjqSZdK8+BFxgrJmKDp06en+XtShVWyoumRbnnSPc8SqZ5qqZuZVCCVsUl6Us1PziX9PpLxffI6ZSJ2uZBP77yQLrFSpVACCxmTmF7mQf9lhaUvKtIjAaR80WG8n8W3336LvMymGGdP5HyQipRZJe9nqQS7Y8cOk32Z1fdBv379VMVU6b4p72P5EiErbZeqlcafI9LdUs4R+Wwy7rYp5DzX/x0hlS2lIqX+3LH0t+X8z83jlt75JVMSWFovXV1l+gKpxmr+JYj5515OH7Oclp3PDiLSMKNHRLlGusfJRVKjRo1U0Qj99ArSFct4zicpUiJdn6RogpSrlwt8uciSsTTmBVMyQ0rRyzf9Mg5FAjDpZild8uQ5ZeqHrHTPk2yCBI/SfTC9iYClJPjXX3+tunBaGmOUVZI5kOeWsuQSAEnAKUVFjDNoGSHBjsw3JyXipXy9dFWULIqUrJfiDKNHj1b7RoroyNyCcrFrTLIFUt5fyr9LRk/K10vb5GLbfIyeXLBLVzwp3CLHQsq+S/AoWV1Zr59jzhI5D2T6BmmTvGbpqiUXtpItlWkQJBCTIi3GpM1NmzbFoEGDVGEPCRakq5ocf30A9+OPP6rzUl6vbCfjleSCUtonQZgEd+KTTz5RX0pIdz19eXe5eJYiERKASPETCRgkAJDpDSTgkLm+9HO8Pay4ipyf8lNevwR9+kxTbmvfvr3q7ijHXI6hBLxyMS1tthQcZITMbSZTAMhxkvkd9aX6JWtk/AVOZshngZyHUpBHCqhIAJLZtstniHz27Ny5U82lKZlCOS8sBYYStEn2SAIMyWpJACfnkrznhJyLko2VTKO0TbJM8ppzowurnn6iePl70hVTzjX5vJQMp3yeyftYXqOc9zKeVBb5QkjaLd0e5byX96S8ZvnMkJ4IkiXLyWMmXSv1gaeevM9kypHsyM5nBxHdx9KjRJQV+lLhlkrPG1u9erWuSZMmquy7lE3v0qWL7siRI2m2W7lypa5atWo6d3d3XaVKlXS//PJLutMrSMlxSyyVG4+MjFTblyxZUufm5qZKeEv5cZkKwLwEuJTKfxgp1S7b/vTTT+lus27dOpOS/lJOvGrVqmm2k/LvMtWBpddh/Br1+0H2W8+ePXW+vr66QoUK6YYNG6a7d+9emud82PQKsbGxuj59+ugKFixoKGmvd/r0aV3btm1V+fwiRYqoKSNWrVplcQqBb7/9Vk1JINvWrVtXleCX12o8vYKQkvWfffaZ2geyrbRdStmPGzdOlbtPj0xTMX36dF23bt1UG+V3pYy9lMb//PPPTaZ20L/OX3/9VTd69Gg1/YOcc7J/z507l+a59+7dq+vRo4eucOHC6nnl+Z966indmjVrTLaT35VpFoKCgtR2UsJfjo3x35Y2ynoXFxeT/ZTe8dWX6ZfpP6SUvRxP+dtS2j696RXMS9jLMZYpJ8yld66Z+/PPP3XVq1fXeXp66kJDQ9XxmTFjRpqy+um9BkvH+cCBA2qdPKdMc/Hhhx+q90l2S/UPHz5cPfbiiy9mqe0yZYlsL8evcuXKad7n+s+y9evXq2ks5Pz08fFRU6cYTw0jpKR/w4YN1blVrFgx3ZtvvmmYEsXSFBuZ+cy0NL2CTKUhr1/OP5lOw/jzcMuWLep9JJ+Z5ueNvI/lvJXPO/nck+Px2GOP6f74448cP2aWFnkvPGh6BUvnqKVpdrL62UFEGif5Rx/0ERGR7ZHsp2Q1pFuVpYmVSRs/JeOrJNsmXWiJZAyeZLj+/vvvB+4M6XIsmV3J+jFDRESOhGP0iIiIiIiIHAwDPSIiIiIiIgfDQI+IiIiIiMjBcIweERERERGRg2FGj4iIiIiIyMEw0CMiIiIiInIwnDA9i1JSUnD58mX4+vqqSVOJiIiIiIhyk8yMd/v2bRQrVgzOzg/O2THQyyIJ8kqWLJnVXyciIiIiIsqSCxcuoESJEg/choFeFkkmT7+T/fz8YAsZRplMOSgo6KHRPRHPI+LnEdky/p9GPI/IVqTY2DV2TEyMSjbpY5EHYaCXRfrumhLk2UqgFxcXp9piCych2SeeR8TziGwBP4uI5xHZihQbvcbOyNAx22mtFXTv3h2FChVCz549rd0UIiIiIiKiHJOvA70RI0Zg9uzZ1m4GERERERFRjsrXgV7Lli0z1L+ViIiIiIjIntjtGL0NGzbg888/x+7du3HlyhUsXrwY3bp1M9lm6tSpapuIiAjUqFEDkydPRv369a3WZiIiIiJ7kZycjMTERNjz2Cppv4yvsqWxVWRfUvL4PHJzc4OLi0v+DvTu3Lmjgrdnn30WPXr0SPP4/PnzMXLkSEybNg0NGjTApEmT0KFDBxw/fhzBwcFWaTMRERGRPczTJV+S37p1C/b+OuQiXeYc45zHZE/nUcGCBRESEpLtv2e3gV7Hjh3Vkp6JEydi8ODBGDRokLovAd+yZcswY8YMjBo1KtN/Lz4+Xi3GpU2FHHhZrE3aoD8RiXgekTXx84h4Dtk3CfKio6NVOXkvLy+7DpIkEyMZEiJ7OI/kWv7u3btqOge5LcGeucxc69ttoPcgCQkJqkvn6NGjDesk1dq2bVts3bo1S885fvx4jBs3Ls16ORCSyrU2OejyoSwnBbsnEM8j4ucR2TP+n2bdfX/9+nUUKVIE/v7+sGdyTSSkG5w9B6uUv84jf39/9T6MjIxU982v6yWzmK8DvWvXrql+5fIhZUzuHzt2zHBfAr/9+/erbqAys/yCBQvQqFEji88pQaN0BTWfrFC+7bKVefTk5LOVyRzJPvE8Ip5HZAv4WWQ98uW1dNn08fGBq6tjXCYyo0f2dh7J+0/iGenC6enpafKY+f0HcYx3cBatXr06w9t6eHioxZwEVbYSWEmgZ0vtIfvE84h4HpEt4GeRdcg1hH7f23sWTDIx+tdg76+F8td55Gz0PjS/rs/Mdb5DRgSBgYEqvapPeerJfUt9XYmIiIiIiByJQwZ67u7uqFOnDtasWWPSDUTup9c1k4iIiIiIyFHYbaAXGxuLffv2qUWEh4er2+fPn1f3ZTzd9OnTMWvWLBw9ehQvvfSSGounr8JJRERERI6hZcuWePXVV3P0OQcOHJhmjubc9P7776vueuaL8VCjX3/9VfVaGzp0qMXnkGtfmX5MxnjJ+K5atWqpgoKUP9ntGL1du3ahVatWhvv6QikDBgzAzJkz0atXL1URc8yYMapMcM2aNbF8+fI0BVqIiIiIiGxB1apV09SQCAgIMNz+6aef8Oabb+L777/Hl19+aVKYQ6YQk2D3m2++QYsWLdS0YAcOHMChQ4fy9DWQ7XC2529uZHCk+SJBnt6wYcNw7tw5daJv375dTZxORERERI5DMm/r16/H119/bciCnT17Vj0mQU6nTp1Uhku+7O/Xr5+qZqj3xx9/ICwsDAUKFEDhwoVVRXbpASbZNekVtnTpUsNzrlu3Ltdfi1Q6lXoSxosMSdL3XtuyZYuaD7pixYpYtGiRye/++eefeOqpp/Dcc8+hfPnyKmjs3bs3Pv7441xvN9kmuw30KIvu3gCuHODuIyIiooxN4JyQZJVFP3/Zw0iAJzUYBg8ejCtXrqhFpsCSaSI6dOigenVJTzDp2SWF+SQYErKdBELPPvusGuYjgVyPHj3U33399dfVdo8++qjhORs3bmzVM+bnn39G586d1TxrzzzzjMruGZOgcNu2bSrJQWTXXTcpi37tDVzYBjz/H1CiTur689sAF3egeG3uWiIiIlLuJSajypgVVtkbRz7oAC/3h1+qSuAjWS8vLy+T6upTpkxRQd4nn3xiKIsv3RslCDxx4oSq95CUlKSCu9KlS6vHJbunJ1k+6RWWlxXbDx48qLKPelWqVMGOHTtUUUHptTZ58mS1/umnn8b//vc/leUrU6aMWjd27Fj1WkJDQ1XGT4JfyWb27NmTU2/lU8zoOap7N4EbZ9Jm8yTIEz+2llKk2u3Yq8CMDsD0VtptIiIiIjsn49MkS+fr66uCJ1kqV66sHjt9+rQqWtKmTRsV3D355JOqkMnNmzcz9Tfmzp1reO6MLvrCgZZUqlTJUGxQloULF6r1q1atUl1KJXDTTyXWrl07FbjqFS1aFFu3blXB4ogRI1QQK7UrJCspgSLlP8zoOaovKwNJccDwPUDhctq666dNt7kZrj0WviF13bcNgRH7gd2zgMLlgUqPausT7wGzu2mB4pMzgard8/DFEBERkTUUcHNRmTVr/e3skIyddHWcMGFCmomuJSiS6pUSQMm4t5UrV6ps2TvvvKPqOuizZA/TtWvXTNeAKFasWLqPSWZSxteZk26aN27cUFlGPQneJJgdN26cScauWrVqann55Zfx4osvolmzZmoMo3ERQ8ofGOg5KgnyxOTawPvR2u3oC6bb3DqnBXpH/0xdd/c68H0L4Mb9oPDty4C7N7Bjemo2cOUYBnpERET5gARIGek+aW0SICUnJ5usk6kFJCMmXRnd3NzSfX1NmjRRi1Rqly6cixcvVtXcLT2nOckWypKbrl+/rorC/Pbbb6rAip60rWnTpipIlaydJdL1U0g2kPIfdt3MTyQrZ2xOdyA2Cri013S9PsgTtyO0n1HHUtfduSqjs1O7g17ak2tNJiIiInoYCeYkEyfVNqWqpmS7ZK456YrZp08f7Ny5U3XXXLFihZpTWYIk2V7G70mhFulOKVUsZWquRx55xPCckjE7fvy4es7ExESrHIg5c+aoiqBSHEafrZNFup5KV059URaZM/rDDz/E5s2bVUEWKczSv39/BAUFqfF6lP8w0HNEUljF2PLRWpAXeTjtthMrA9H3+4qXa532cckISjfQfXNNs4WxkcDtSGBCGW1s36GFwLktOf1KiIiIiB5KqmRKV0zJYElgI4GbdJGUMXoS1LVv316NxZN55mQicenq6Ofnhw0bNqhgSYqXvPvuu2puuo4dO6rnlCqeMmaubt266jklgLIGGYfXvXv3NN1PxRNPPKGmVZBAVKaGkOBOxhvK65HHZJ69NWvWqECR8h8nXUZr15KJmJgYVeUpOjpafVBYm3xzdfXqVQQHB8P5g0JZe5KwJ4GDCzK+ffl2wKlVpuv6LgQqtM3a3yfbOo+M+vsT8TwifhblD3FxcYZKjsaTcdsjucSVgiQyN52lIInIVs+jB70PMxOD8EqOUhXIQIDo4pF62zzIE3OfAKa3AW6Ea/f3zgUmlDUt+EJERERERLmKgZ6Dmb314ZNkrk2uYfmBmn0e/gfcUqs9pevSLmDzJO320pe1Ai+zugBxMWm3lYTyhi+AffMe/rxERERERJQhDPQcSFRsAr7/a+NDtzuuK4nQuLnA0B1AQNnUB4rVAipq/dLTlZKUscbsnplasEXv6hHg4m7g5tnUdZf3AP99CCx5CUi4m7HnJiIiIiKiB2Kg50D+O3kT9Z2PPnS7BDWrhhMuuZUCfEJMHyxWM+0vuBuVDW77fsYbFHcLcPNKvT+nhzZR+/fNgbObgct7TSt2yn0iIiIiIso2BnoOxCl8Lb52//ah21Vz0jJqEdFxgKe/6YPGgZnecytSb5eoB/SckbEGfRYKJBpl6RLvz+ESFw3M7AT80BLY/E3q41EPD1JNpCQDK98DThi1j4iIiIiIGOg5ktrRazK0nQ5axaAr0feAItpEmgYyObrJfR/Aw6iij4u76X3x6KdAkxFZa7R+agdx55rlbbZNA76uAVw3mt9PHP8H2PINMO8pKReZtb9PREREROSAmNFzIF5J0Sb3H4v/yOJ2t6EVVBk2by/QdCRQuz/Qb0lqlkyvwUvAy9sAV6Oyrs6ugIdRV07R8CWgTSa6dKZHsnsXdpg1NgJY/pY2rm/vL6aPGY/pu7Iv+3+fiIiIiMhBMNBzIF4ptw23j6SUxiFdaqGVi7pAw+0Uo8Oe5OoFdJ2M5fcewX/HIoGke6lP2PFToGBJwNVoSgXoTAO9zl9qPzM651qDF9N/TLp2/tTONHMXdSz1dvQF0+0TYlNvX9yZsb9PRERERJQPSFUOchA+Eujdn8fR3c0V3/eqA9yf/9xJAjQLLty8h5t3E/DiL7vV/f2t78Js1J5pRk+XYhroGc+9V6MPcGW/VoQl5lLq+j4LtCAupDpwZOnDX8jcnkChMkD7j4Cjf6eujzxiup38HcNjh4E71wHvwg9/fiIiIiIiB8eMnoPQ6XTwR2qGK8XJBR2qplbUdIYOk5O6IVrnhc0lhxjWD5m9Cz9uPGO4v8q5mXYj9P5P4eKWets3xHSMnozh0+v+HfDSZqDyY9p9D3/g/WigYnuganegcDnAp8jDX8yNM8DpNVp1zp3TjdafBs5tBX5qD5zbAtwzCvT2zAIm1wZir5o+V/xtIOrEw/8mERERkRUNHDgQ3bp1s9tjsGTJEpQvXx4uLi549dVXMXPmTBQsWDBP2+Dk5KTakZ6WLVuqtumFhoZi0qT7cz87IAZ6DiIhIQG+TqndLs3zdzE6L3yZ9BRqxf+AKNeiKOKndcc8eTUW/xyMMGz31a4E6N48C/Q3yrw5OQHDdgMvbtYyeMYZPWcX0z8k27Z5D2j5NvD86rQNNS/2IoKrAr5F065PSTS9nxQHrHgbuLAd+Llj2qBOMnyrxmiB4MVd2rqFzwNT62nz9xEREZFDMr+Azwn2HnjltRdeeAE9e/bEhQsX8OGHH6JXr144cSL1y/b3338fNWvWzHRwlpt27tyJIUNSEyCOhoGeg4iPM51svGABrVfusIThuKwLwOjE5w3j85JTUvBpj+oWn+fSrXs4dMM5bQAXWB4IqabdNn6scPm0TyKBYMu3gKCKaR+r0B4o19p0Xe9fgb4LtPn6ilQDyrdL/4VKF009S91A9/+qBYK/9dGKtZxYrq3f8T2QnAgc/AO4dxO4eQ7YPYvVOomIiIiyKTY2FlevXkWHDh1QrFgx+Pr6okCBAggODrbpfRsUFAQvLwtTizkIBnoOIsEs0Avy0TJ2f6c0QuP4KdijSw26/Au4oVXlYHz2RJjJ79QsqaXX158wy5RZ8sJGLetXKDRzDXX3AvotTr0vE7YXKg2EhAGjzmldPyXoczEuAGMkOT71tnHhGHOxkcCFbUb3rwL/vAEsfA5YNVbLCP71CrDtAfMOSmCY3pQPREREZBMk87Z+/Xp8/fXXKjsky9mz2pzBhw4dQqdOneDj44MiRYqgX79+uHYt9f/2P/74A2FhYSooKVy4MNq2bYs7d+6o7NOsWbOwdOlSw3OuW7cuz7NNEoh89tln6v7y5cvRtGlT1R1S2vrYY4/h9OnUAnbymqWdv/32Gxo3bgxPT09Uq1ZN7Rs9eQ2yzbJly1C9enW1TcOGDdV+0rt+/Tp69+6N4sWLqyBI9s+vv/6abjvlOSWwE61btzbsK+Oum3J73Lhx2L9/v2F/yjrpOim6d++u1unvC9n3tWvXVm0sW7as+v2kpCTD4ydPnkTz5s3V41WqVMGqVasyvY9DzbpuSht+/PFH1R557RUqVMCff/5p8juyrzp27JjuOWVLGOg5iMQE06BHxuQZC/ZNDZzcXbTD3qteKZQN8k4T6H2x8gTiEo2mWbCkaHWgbMusNzjsKe1n89eNGu2S2v3TuMiLPhOYHin2MnxP2onfrxxIvX9mLbD759TxfPpiMYcXa0VeTt2fgzApAVg6DNjwObBoCPB5Oa0raEaKyBAREVGekwCvUaNGGDx4MK5cuaKWkiVL4tatWyrDJN0Fd+3apQKlyMhIPPWUdg0i20lA8+yzz+Lo0aMqOOnRo4eqe/D666+r7R599FHDc0rwlFf+++8/tGvXDh9//DHeeusttU4C0JEjR6rXsmbNGjg7O6uAJMVsLuE33ngD//vf/7B37161X7p06aKCN/NtvvzyS0MwKdskJmpDZuLi4lCnTh0VDEpQI10bJZjZscNsCqz7ZL8cP35c3V64cKHFfSXdOKVNVatWNexPWSd/X/z8889qnf7+xo0b0b9/f4wYMQJHjhzB999/rwJD2R9CXrMcK3d3d2zfvh3Tpk0z7KfsGjdunDr2Bw4cUF8SPPPMM7hx44Z6TM4pCWZr1apl8ZyyNay66SAS48yyWy1Hm9ytVaogVhyOVLedJZC6z9cztdCKr2fq6fDDhjPoUqMYygRaGFOXE7p9q02yXqSq5cc9/YDY+2MHX9mnBWQnV1retmwLVVfUROJdYPXYh7fj0i7gu0ba7SEbgLMbgL1zTLeRrqBSTbR4XeDWOSAuGqjU8eHPTURE5CCkcNuPG8Mful214n74cUA9k3XPz9qJQ5diHvq7zzcrg+ebpU4NlVH+/v7qgl8yMCEhqYXopkyZooK8Tz75RGVqxIwZM1QQKGPHpLuhZIgkYChdurR6XLJXepLli4+PN3nOvLB48WIV5EhmSYIhvSeeeMJkO3ktEqRJICSZO71hw4YZtv3uu+9UMPLTTz/hzTffNGwzduxYFUgKyVyWKFFC/V0JWCSTJ4Gu3vDhw7FixQr8/vvvqF+/fpr2yr7Xd9EMCAiwuL9kX0oGzNXV1eRxWS8k82e8XoKtUaNGYcCAAeq+ZPRk3J+8Bmn76tWrcezYMdUu6Soq5DhLpi0nMsS9e/c2POc333yjAtDOnTurc0qCPFmvZ3xOVaxoYdiSFTHQcxCJCVqXxlvwRcHX9wI+Qer+opcb44f1ZzC6U2VUKuKL2dvO4dW2qSehp2tqUtc4VJq46oRaTn/SCS7OZkFUTpBKnvoxf5bEXE69XbAUEFDG9HGZqkGyckN3mM3zZ0HVHsDhRQ9v0w/N039MCsGsG58aBD63Ctg0CWj6KlAy7YceERGRI7kdl4SImLiHble0oNGUTPddv5OQod+Vv5GTJCNj3K3QmHR5bN++Pdq0aaOCO8n8yX0pJlKokFmvogeYO3euKkKSGRKYlSpVyuJjkp36+++/VZdS80Iw0lVxzJgxahvpKqjP5J0/f94k0JMsnp4EVnXr1lUZS2PG20hwVqlSJcM2ycnJKpCRwO7SpUuq4J8EvHk5lk26eG7evNmQwdO3S7KNd+/eVW2V4Eof5Jm/puyoXj21joW3tzf8/PzU+EN9u9auXauCVkvnFAM9yhVJ8doYvXgnd0OQJ2qXKoRp/eqo2yPbV1JBnrNR4OZuHOgZZfr0rt6OQ1F/7duWPBVcBbi4A/AO0rp0Go8F9CsBPLtCq8rpaTTrX7k22rQM5sq1yliglx6ZFH7Z/0wzfXN6AAm3gePLtCkkxOElQIGC6XdpXf+5Nl3EwGVAYIWst4eIiCiPSa+fEL+0QZy5wt7uFtdl5HeNexblBMnYSRZmwoQJaa5xihYtqqYBkHFdW7ZswcqVKzF58mS88847KpAqU8bsC+Z0dO3aFQ0aNMhUu4yDE3PlypVT4+8kSyRtd3NL7Xkl3Ssl8zh9+nT1HBLoSYAngVhO+vzzz1V3WBm7JkGwBDtS0TSn/87Djp1k9STbak7G5OUmN6N9LuTcke68+nbJcdCPmzQ/p2wNM3oOIjlRy+glwfTkNGcc5AnjbF3n6kXx9ZqTJo9P/u8UBjQKRaUQX5yOilXZwUFNQ1E5xGguvdzw6HhtTF2rd7T7Uo1Tr0RdraiLuc5fACdXAf+mdk1QSjdJvV1vMNDpc20c4KTqWlfMB/EOBuo+p1XojDAa8ydBnt6FHUD0BeCPZwEnZ+D1k1oAKlnLq0eBzd8AzUYCaz/Stt/wBdDj+8zsDSIiIquSLpVZ6VYpzLty5gbpPigZH2PSxU7GjEnBDfOLd+OL+CZNmqhFsmUSSEkXRhkLZ+k5zUm20FLGMKsCAwOxaNEiNV2EdKOUrJq0XcbYyTg4CfKaNdPmOt60aZPF59i2bZsqUiKka+ru3btVd07zbfRZxZs3b6puh4888oi6L5m0xx9/XI1NExJQyuNS8CQ70tuf8vrM10sRFnm9Mi+fJdJWmcZBxvXpAyx5Tbmtdu3ahnNKsqW2jsVYHMX9OeeSnTJ30vWur73J64cGoGIRXzQuV9jk8Xnbz6PDpA144rstaPPleszfdQHP/LgduU6CucenAn73v/WSoEmqdcpE7m3GWP6dgLJAfbO5UNy8ta6fesGPaEGe0D+3sXYfAF0np973KqxtX7FD+m39qZ0W5AldilbAZb724YhvGwL75wFT6qZuf3lv2udISZaBlun/DSIiIkqXXHhLJk4qT+q7NQ4dOlQFMX369FFjrKRrnYzpGjRokAosZHvpoihFNaT7owRYUVFRhoBHnlO6f0rAIc+pL1aS22S8mxRjkTFoMlZMgjXpTiqZvh9++AGnTp1Sj0swasnUqVNVsCq/r98HUnDG2AcffKAKukixFRmTJgGmvquoVJrUZzqli6R0TZWCI9kl+zM8PBz79u1T+1O6g+rXS1siIiJUW4UE3bNnz1ZZvcOHD6t2SDXRd999Vz0u1VGlm6SM4ZPulFK8RbKxuW3o0KGqMIscF0vnlK1hoOcgUu6fXDJPXma0r1IEC15shOkDtEBEMneW7D6nvfHEtdgEQwo7T8n8ewP/BgqXS38bCcqK1wGcXYEXNgDDd2tB4jOLgMbDgdr9U7f1sTC3S7FaQK1+pkVdzLOCGSHz953bYvmxa8eBG/cHtG+ZAnxeHhhfEhhfAriwU5vW4fx2IDlnxyoQERE5KikeIl0xJeskBUokcJPujTJGTy7AZfyddEOULohS+EMqVsrYqw0bNqjKihI0SBAhlSj1BT2kiqeMXZMxbvKckunKK1KYRIK5gwcPom/fvuq6SwIdyc5Jd83XXntNdbG05NNPP1VLjRo1VNZPpgeQQM58G6loKdU1JcD666+/VMZNyH6QzJWMW5TMorQlJyaOlwIxUsW0VatWan/qp2yQfS6BpYy5kyyskL8tYxWlS229evXUFBBfffWVoWiOHD8JZu/du6cKxDz//PMm4/lyS7FixdR5kN45ZWucdFa5Yrd/MTExqspTdHS0+qCwtv3rFqHGukE44xKKsu/tz/LzfLHiOKasPfXQ7d56tDJeaF42TVdQm5B4T1u8Ah683cLBwMHfTdeNPAb4FQXevz/2z7OgNr+f0K8zFvQIcOM0kGyh37pM8aAPFM1JVrLZ/4CJVYGYi6bBrJMLcGoV0HEC0CBzA7yzS74BlQHH8m2iLX5gkX3geUQ8h+yXFLuQrIuMUcvtsVC5TS5xJRsmXews1SFwNJLNlOMm0ypItVFLJPCVQEsyZ/o57sj2zqMHvQ8zE4PwSs5BpEgWSE5G3J+LLou8PDL2+58tP4aVR+5Pf2Br3Ao8PMgTkvUz53u/tK9/Se1nGa0fvDJsN9DGaMqGkg2AoduAt69o2UMJCo2lF+SJNR8CP7RMDfI6T9R+nv5PC/LEwT8e/hqIiIiIiCyw/VGElCE6fddNKQaSDd7uDz4lCri54N79ydT/ORiBbWduoO0jRdC0gmmXALsgFTL1BvylTdKu/6ZmwJ/A7plAw6Gp2wSW14qqSNdRmYy9andtvYsrULQG4FsUiLuVwT+uMx2rt2ykVmn06pHUdREHpZyqNn1Ewl1t4vYiVYAeP2TrZRMRERGR48u3gZ7MbC8DOSUVK4v0U5a+2PYqRYp5SPiQzUBPAjlzFYJ9cPJqrLqtD/LEn/u1ue5mbjmLjW+2QsmAvJtfJUc0eRU4tQao2Qco0zxtYRcpzGJJlce1xZzHQ6puufsAbd8HNn2lzQFoTsYQSnVRCSSlIujda9rPkDAtQxl5UFu6TQPObQKOLweqPwWseBuo3ksbf5gPuqYQERFRWlLU5GEjsmTMHUdt5R/5NtCTUrgyAFcmf7xz544a2CpzdUhFI7t0P9BLyWbXzbiktBWDihYsYAj0KhbxwYlI7baxudvPY1THyrArvkWAYTty7vksBXou7qnj91w9gfqDtTn0Zj9uOi5Put6Wbpw6X6B0GT28GIiNAE6ZdZH9rQ9w4l/t9rap2s9zm7XgsdXbqdvFRgFzewJVumrjAY3JJKsSFDIwJCIiInJI+XaMnlRmkiBPSHlX+XbDnr/h0KVoFRp1UsgjG+KMMnaiXZUieLNDJcP9tzs9Ah+PtN8PJCWnZOvvOgTjQK/l21rWTyZ2Nw76RJkWQJGw+7/jr03ILtVEjSeFr/e86WTwxvRBnrlt04CkBODuDS1Tue4T4Mo+YM0H2mTtU+oBN88CCXe0KSFkygfzKR2S4uC9awoQeTiLO4GIiIiIbIHNBnqSbZOZ56WMqVS4WbJkicV5QiRNLdVoGjRogB07dmS6+6aUni1RogTeeOONNKVn7YnOkNHLua6bC19qjG+ergU/z9RJRgN9PPB5z+ppfu/HTeG4FqvNh5JvGQd6Ml/fU7OB4rWBSp21dU1GaD8li9b3d6DXXOC1Q1o3UXOhTYFR54E3TpsGgOkVlSkQAMRHA+e3aHP6/dID2DUjdRuZrP3aCWDpMOCfN4FLu4Drp4DIQ6bPtfNH+O6aDKcF/Tm9AxEREZEds9lAT7pTShAmwZwl8+fPVxNFjh07Fnv27FHbypwbUhpeT0rLSpdM8+XyZW1smZSVlUkWpXzpvHnzcmQySKvJoTF6PeuURLMKgRjzWBXUKV0IBdxd4OGW+pzurs7w8bTc47fuR6tx6upt5FseRiVuPY1uS/EUKfYi3Tb1ZLL2Rx4z3c4S70CgWk/Tda4FTO8HVQIq3w8mJXN3Zm36z3d2I7Dvl9T7UcdMHnaS7qLy88aZtFNPEBEREZHdsNkxejJZpX7CSksmTpyoiqfITPRi2rRpWLZsGWbMmIFRo0apdfv27cvQ3ypSpIgKFDdu3IiePc0uqu+T7p2yGM9hoZ8vShZrS7k/uXaKk0u22uPh6oRZg+ppz3X/eVyNY0edDt7u6XcP/WHDGbzevqLK/OU3Tu4+0JdCSXH308bB6efTK930/gNZODaNX4HT9dOqy6ZTUhyQdE+t1jUaDtw4A127D4Goo3DeO0cr0pIJujMboSvVBE6bvwLuRMHp8p7Ux9Z+DF2pxkDBUkBctNYlNKBM5ttP+Y58dkhXeFv4bCT7xHPI+vve3oe06OlfgyO8Fso/55Hu/vvPUpyRmf9bbTbQe5CEhATs3r0bo0ePNqyTyZ2liubWrVsz9BySvZMxelKURSYclK6iL730Urrbjx8/HuPGjUuzPioqSk1qaG1xd7UCKck6J5OsZk4wrrR57fp1QzBjye+7Lqrlh6cqoXoxH+QnXolO0Ofnrt9JRHJOHofmn8Lbpwx8d9yfbw/A1Yp9oJMumxLj+1ZDoF9puMZok7vHFW8Mz0tbHvq0KSdXwPnIYjglp36JEe9TCi7JcXCNvgjdDy1wq80X8Ns4Di6xEbj29L9I9rs/xyBReudVSor6XJX/pOSzmSizeA5ZT2Jiotr/+qrk9kw+g5LvTz+VHyZMJ8c5j5KSktT78Pr163BzSx1CJW7fvu3Ygd61a9fUDpdMnDG5f+yYaVe09Jw7dw5DhgwxRMzDhw9HWNj9AhkWSFApXUWNM3olS5ZEUFDQQ2elzwtnPe6fBC6uCA4OztHnNi60UrBQAPwLyGmjzffWt0EpVXHT3H/hd9G2poWxZ46sUJDhZuHiZQGvHK7gWrSC4aYuqDKCSptVOR2+Ayln1qsxe+5lWyJF5uG7uB3O/76pHk6p/jScpMvoxV3AxZ1wSroHl7ib2vOFVFdj9pwS78IjVjueOmc3OMfdQsCy51NfV+wxILSqDArVMpVEFsh/TvKfoXw+MtCjrOA5ZD3y5bVcSLq6uqrFEZhfKBPZ+nkk7z35/1NmA5BaJMbM7z/weZBP1a9fP8NdO4WHh4dazMlBsIkLGbnwVmP0tBMjJ7k7O6NyiC9u3ElA+WBfxBtNwVAvNMBioPfbzgsY3yMsf32DZvRanWUy9pw+L/yLpf6p0o3hZP78zp5ApQ6p94vXBJLupj4c1hOo0C516oUvyqc+X4dPAP/i0P3aB05RR7V1KYlpmuC85n1gxWhtqoiXt2ljCIkskPe+zXw+kl3iOWQd8p6Vfa9f7IXMDye1GSZNmmRYJ1/k619DVl7LwIEDVeE+SwUBjUmvsM8//1z1Nrty5QoWL16Mbt26IS+sW7cOrVq1SrP+nXfewUcffaRuX7x4EWXLlkXFihVx6JBZETYZ3r9+veq1JtfFEugXL14cjRs3xvTp0+Hufr9ieD6my+Z5lBX695+l/0cz8/+qXf4PLNUxZXoE8+Ipcj8kJAT5Ug4VY0nPsleaYfOo1qoYi7d76vcDBb3cVEDXp0GpNL9z824iTkbextS1p0yCQ8dl1G/bJRe+9fFNDfRQuknGfidIsn73P5Qka6fnk5p91J6vsar+qevwCWJrvwhdaHNtgndzd64B8bfVeD78/aoas2lweS+QFK9V69zwBXD6AUVhiIiIHMTDCgjmhePHj6sgU7/o61WImTNn4qmnnlK90bZv327ye0eOHMGjjz6KunXrqoD14MGDmDx5sgrw9N0VyX7ZZUZPTr46depgzZo1hm9MpJuH3B82bBjyd6CXvXn00uPi7ASX+wGDs3PqtxmVQ/zQslIwOt1NxDyzzJ5Mt9Dvp+2IjInH5yuOI3x8J7v6djDT3Lxz9/ml26WzG6BL1qZfyAivAKDLJC3jKxPEG5PnkqydFIpxvn/elG2JWJ8q8AoOhpMErlePAhd3AKf+A479Zfr7R/8CDv4BVH9SCwB/aKnNFehbFLh1DnArAPRdCCx5EShRH+j5Uw7tCCIiItPMm2SlZPn666/VOqmoXrp0aZXBevvtt1XBPW9vb7Rv3x5fffWVYUqtP/74Q2WzTp06pWo31KpVC0uXLlUZulmzZqlt9Ncua9euVZnDzBYQzAsybEeqyVvKRv3888/49ttv1XRiP/30k5qSTG/lypUqSTJhwgTDunLlyqngj+yfzQZ6sbGx6k2nJ29YSSkHBASgVKlSarzcgAED1DcQ0g1TUvXyjYq+Cmd+o5OLf5VTypsk7cY3WyH6XiJC/LV+wl4eaQPMa7fjVZCnF37tDsoGOXCBlmo9gAPzgTLNcuf5PXyAJ3/WgnrfTGSu6wy0vL7fIjVvHjqmfribkOAvpJq21B4IfFYaiNeqzaJYbUAqdP7zOiDdVM9t1tYnJ2hBnki8B8zspN2+dR7wLwlU6ggUrQHcDNeyjY4c+BMROQLpuZGYOgwgT8lY8Az8PyHB3YkTJ9QUWh988IFaJ2OEpdulTL313HPPqeDu3r17eOutt1R267///lOZr969e6sgp3v37mpsogSEEhy9/vrrOHr0qMqCSaAk5BrU3khwevfuXVWwUN8lU/aFBL1CgjzZD5LNa968ubWbS/kl0Nu1a5dJn2N9IRQJ7iQF3atXL1XxcsyYMYiIiFD9spcvX56mQEu+oS+1qs/M5LKSAV4wrr3o5pI2wOzzo2n3gFNXYx070HP1APo/uB9/tj3SJeeeq0xzbckI6Q8uAZrMwyeZwGcWAnO6A1f2AXPvT0kS2gy4dhyITafaqEzhsHWyFiRKlrDpSKDtWC0glDF/ORn0SRfSX54AfIoAT/zIgJKIKKskyPvEaOhAXnr7MuD+8N4y/v7+qreXZOSMh/BMmTJFXR9+8sknhqycTMMlxfQkMJSkglQ37NGjh8r+CePCfAUKFFBTa9nDsCDJ1pkXHZRCHpLBe/rpp9WQJwmEZazeggULVBZUPPnkk1ixYgVatGihXmfDhg3Rpk0b9O/f3yaKDVL22OwYPUmNG8/jol8kyNOTbppyIsubUPocG6ei8x1d7o7Ry4yygZY/lF/5bS8OXYpGQhLn1rJLxWpqP0s30rqEdv8ecPdNfVyCRjUmUALSx7WAUHEy/WZYgjyxdQpw8xyw+EXgy0rAjEeBzV8D57cDt688uC0nVwH75pmOETR2fpsWlB76Azi1OuuvmYiI7NaBAwdUsRKZSsvHx0ctlStr/0+dPn1ajauToEaCOwl4pPjIzZtaNercdP78eUN7MrrMnTv3gc8pmUjp+aZfChUqpDKaixYtwjPPPGPYTm5L8KcnAaBkLKVgi2Q2JesngXHVqlVVpo/sm81m9ChrVTdhxUBv/RstcS02AeP/OYoz1+6keTwuMQWPTd6EjtVC8N0zdazSRsqGeoOBqBNA89e1+8GVgdcOAZsmagFa9AXgRrj2WONhQPHawK4ZwBM/AXO6AQmx2hcSkhl08dACvrUfq6keEBupLeeN5sH0CgTCngRK1tcWydLJ5O0ycfuvvbXxhbJ956/UtCImzhnNIbj+M6B8W2b1iIiy2n1SMmvWkM1pfCRj17lzZxXAmNcIKFq0qApyVq1ahS1btqixalKERKpVSvKgTJkyyC3FihXLVOV38bAea9Je8zF68+bNU1U0jRMh+km4JaMpVTj1JMDr16+fWj788EP12LRp0yzOIU32g4Geo8jlYiwZUbqwt1qSUtLJstz376EI3LqbgIJeLNlrVwqVBvr+brpOxucFVtJuS5AXc0m7XbC0Fpw1fVW73+RVLairPxho/xEQeRiY3kob0+hX3PLfu3sN2P6dtujV6AMULqcFeWLPbCDmipZd9Daat1A/ZlBIIHlmHVAubflpIiJ6CAmQMtB90tosVYmUwioLFy5EaGhounOgSQDYpEkTtchwIOnCKdMjyJCh3Ko8KXOklS+fOsVRbpHM3f/+9z9DN029l19+WXVh/fTTTy3+nmQDJRCW2hdk36zfz49yhM4GMnp673R+5KHbXLx5L0/aQnnA//64gEu7tcyyjLfzCTbdRrKA8o1wp8+1sYyS7av7rPaYPjis0AEoVEYbV1cgnQHv++cBWyZrt8u11bqFnloFTK6jdeeUrpxJCVpwp7Zprf3c8k0uvHAiIrIVEsxJJu7s2bO4du2ayloNHTpUdcXs06cPdu7cqbpryng0KdwnAZxsL90UpS6EdKeUbo5S/+GRRx4xPKd0/5SpC+Q5ExPTzi+rzxzqu0waFxCU57QW+ft79uzB888/r8bmGS9SgEYqisr4xO+//x4vvfSSymjK/jl8+LAqWCM/u3TJwboAZBXWjwooRzgZJky3/iGVSdSPffgoto1ug6blA/Fx92rw83RFswqpk2tfvsVAz+ECPX1VNuleaV5YRX0jbNYFp8N4oOj9cX8efkD3acCIfcDrJ4C3woFW7wLGGWq/++V/4m4BBQoBpaQryv3scdxNrSjMxEeAX3oASXHac7b7UHs8fCMQH5u11yfB4+ZvgEMLs/b7RESU66RKpnTFrFKliqq4KUGWdJGUMXoS1Mm0CjIW79VXX1VdHGXSaSk2ItUmO3XqpLoqvvvuu/jyyy8NUyUMHjwYlSpVUhXe5Tk3bzbqLWJEAkXJHsoiJBsotyVDaC2SzZN9oR+TaEwqjF69ehX//POPqlwvgeqLL76oxuVJUZZt27apSeLlNtk3J5101qVMk3K7UuUpOjraJqoSbZ3+Khpd+hnbgnqi4VDbm68sMTlFVeZ86ZfdquumGNg4FO93rYpz1+/A080FRfy0qRrIeuQbUPnwl/l45D/BDEmMAz42GjtQvh3wzB8Z+91bF4B/3gDCemqLueungY0TAb+iQP0XtMxdfDTQaJhWrXPXQ851KQgjc/sl3gGe/hUoWh3YMwcIfkSrEqrv7ilFYe7dTC04Y2z/fGDxEG1c4egLWkaScv48IuI5ZBNkTJdkpGTMl6enff+/LJe4krWSrpIOPY8vOdx5FPeA92FmYhCO0XMUhnjdNj/I9NMvBPmmXiTP3HIWzzQsjbYT16NkQAFseKMVP4jtkZsn4B0M3LmaOpYvowqWBPr8lv7jMh6v29TU+z2+B/b+AjQZoXUPbf0ucHGXVhBGCrPIB7Dxd1cyli+gDHDthFZ9U8b7hW/QHpNsYbORQNnWWjZQgsGnZgNVHk/9/fjbwKr738gmxwMRh4ASLCREREREto+BnsOwj8RsIbMCLBNXHVc/L9y4p8btyfx8ZKfdN/WBnnTdzC0y4bosejLNQ8X2WjfOr2toWTnDtp2A66eAsi21QO/A70DCbS3Ak+qfsmz4XFv0Fg7Wxvi5+wBJd4HTa4FYLQOtyCTxRaoCs7oA3oFAr7naHIMPI5VCL+wACoUCgRW0sbQpSYCLm+lcmBKo8ltnIiIiygEM9ByFPothA2P0HiTA2zTQ++dg6kW0zLHHQM+OAz0JgvQVN/Oapz/QdQqwczrgVRgo2QBo8IL2WNxtYPdMLcgTEvidXmP5eSRrt+j5tOtL1NMKvEjBGQlk9XMBnlgOVO5kuQquTDcRFw2cWKkVg4mP0R6TLqAyplayjbWeAR6fqm0/90ltAvp2HwA1+zLgIyIiomxhoOcgdHaS0TMP9Ixdjo7L07ZQDvK/Xygls103c9Ijj2mLOU9foFQjIHy99kXIo59qQZZk2GR6husntS6alhSppgWGMhn8vKeAs5tMA7CNX2gZRv06CdgOLgDWjQdunjV9Lr8SwL0bqUVrhHRDlcyjbKsPPpcOBQ4vAXr8oGUsiYiIiLKAgZ6DcLKTjF7hBwR6N+7E52lbKBcqb1oro/cwMu5OAr0avYGg+xPEShfMuoNSu1ZKtu78di1bd2kPEBAKvLhJezw2SvspWboTq1KfV37nzFptGgcJ8mRieP0YQMncSaDmVwxo+DJQtYfWxfrWea1AzLZvga1TgL9fSw00Kz+mTRMhU0b81hfov4TFX4iIiChLGOg5DPvI6NUrE4AetYpj0d77c6cZuXHH8vw0ZEeBnruvNvWBrakzCAisqE3ibokEZBXaaYuQoO3OtdTHfYK0LpsSpN2N0uYKrP6UlhFc9xlQpgWwZ5YW5Ll5a/MGStdRS5MMS3EYIYVkjv8D3Dij3S/dFHhqDhB5CJjZGTi/BfhrBNDtO3bjJCIiokyz7fQPZZwho2ebVTeNq29O7GWhhD2AX3ecx2vz9yElxT6CVjIi0xLIVAZSFMUWz0EpmFKmWcazY84ugK/RlBGiqDY/kiJdOVuM0rJ2F7YBS4cBaz7QHms7VqvmaSnIM+ZWAOh6f/J3CRy7fqO1U6aAeHKmVjRm/6/AV1WBac2ARUO0gjKSfUzvMyA5KWOvj4iIiBweAz2HoQVHOhudXiGjFu+9hM2njTIpZB8k2zXyCPD0PDisEnVTb1fsAPgX16Z7kPfc/nlaxU8Z01f3uYw/Z2hTYMDfwLPLtakk9Mq3ATp/qQV7MZeAiAPAgfnAosFadVHpWmoe5P3xLPBlJeDM+hx4sURERGTvGOg5CjvJ6Fky5rEqJvf7/bQD1cauwMaT98dFkX2Qee0ceTLx4rVTb1fooP2s2h3o/EXq+k6fAy6Z7BEvmcZiRtlCPRk/KMHz82uA3vOBpq8Bhctr1TsXDATu3Urddt884PAi4O41YF4vIHxjpl8eERERORYGeg7DtidMN9eyUpD6+UaHSni2aRl4upmeirHxSfhi5QkrtY4IlqdYkAqctfppE73r1Xse6PO7FoyVbpyzu843RMskVnoUaPu+FvRJsZtb57TqnPIFjxSKWfmOtr1fcSDpnlYhVKqKEhGRQ5s5cyYKFiwIe3Xs2DE0bNgQnp6eqFmzJs6ePQsnJyfs27cvz9rQsmVLvPrqq+k+/v7776Nu3dRePQMHDkS3bt1gDxjoOQz7CvS+7Vsb855vgBeal1X3X25ZPs02Ry/HQKfT4eDFaFy+dc8KrSQyItnK/kuBx6ek3S3SlVOCsdxWoKA2fk+qdh77G/i+OfBrL63baEgYMHQHUK6NNoXDP2+kZvrl522jid+JiBzMwy7WsyKjF/QbNmxAly5dUKxYMRWkLFmyJEfb4cjGjh0Lb29vHD9+HGvWrEHJkiVx5coVVKtWTT2+bt06tU9v3bqV68c7o77++msVYNsDBnoON72CfQR6Xu6uaFw+EK4u2ik4pHlZvN2pMha82Aif9ghT6xKSU9B1ymZ0mbIJjT/9D6euxlq51UQ20oW00xfa+D0ZuydTPMi0KlLYxcMH6DEdcC2gTb5+Zp32O8tHaeP3pIsnERHlqDt37qBGjRqYOnUq92wmnT59Gk2bNkXp0qVRuHBhuLi4ICQkBK6utjsxgL+/v91kURnoORz7CPTMebq5YEjzcqgXGoBe9UrCxVl7HQcvRRu2WXM00ootJLIhdQYAI48C3aYBNfsCXaekjvPzLgzU7q/d3jwJOL0W2D5Nu7/yPSDu/nsqPlbr3qn/kkjcugDsnglcPWq6PiOSE4EDCzg+kIjynGTe1q9frzItkv2RRboAikOHDqFTp07w8fFBkSJF0K9fP1y7llr07Y8//kBYWBgKFCigAo22bduqwE26682aNQtLly41PKdklyzp2LEjPvroI3Tv3h3WFhUVpboZSlvi4+NVIPX444+r1y77oF69eli9erXJ74SGhuLDDz9E7969VXatePHiaYJWef3fffedeq2yr8qWLav2nbG33noLFStWhJeXl3r8vffeQ2Ji+lNnyXPu3r0bH3zwgbot+9y466bcbtWqldq2UKFCar0c64cdb2ljesf7zp076N+/v3q8aNGi+PLLL7Od6ZXs4iuvvII333wTAQEBKlCV12JMMpLPP/88goKC4Ofnh9atW2P//v3IbQz0HIWdZfQeRN6wfp5pv8k5d+OuVdpDZJNk+oeavYFu3wK1+po+1miolvGTjN7C57V1kvWTYi0bJwK3I4HprYCf2gFLXtKCtMjDwPTW2tx93zbUpnXY/E3G2iKTvH/XGFj0vDZp/OW9Of96iYjSIRf8jRo1wuDBg1W3P1mkC6BcXHfo0EGN/dq1axeWL1+OyMhIPPXUU+r3ZDsJbp599lkcPXpUBXI9evRQw0Zef/11td2jjz5qeM7GjXN4HHYOu3DhApo1a6a6PUoQ5uHhgdjYWBXoSrfIvXv3qtcj3UzPnz9v8ruff/65ykrKNqNGjcKIESOwatUqk20kcHviiSdUgNK3b188/fTTar/p+fr6qi6NR44cUcdk+vTp+Oqrr9Jtr+zTqlWr4n//+5+6LfvcmBzDhQsXqtvStVO2ked90PGWAKpWrVoWj7d44403VJAoAfzKlSvVMd+zx6ySdRbIlwISJG/fvh0TJkxQwavx/nvyySdx9epV/Pvvvyq4rV27Ntq0aYMbN9KZMimH2G5elDIpxaH2mH8BN9y8a/ot0Lnrd9Jsd/76XRT2cYe3B09lIoNCpYFqTwAHZd69a1oBlzZjgIXPAdu+1cb3XT+lbStz9ckUDlcOAHG3AJ8Q7aesW/Ue4OwKNHrZ8s69ekwrBHNK/+2wE5CSBKfFQ+DUbQEPCJEj2TIF2JqBrolFawB9fjNdN+9p4EoGshfyJVXjYVnqSufu7q4ySZJN0ZsyZYoK8j755BP1JbKYMWOGCgpOnDihgqCkpCQV3EnXQSHZPT3JXElWzPg5bZUEQu3atVOZvEmTJhlerwRvsuhJ5m7x4sX4888/MWxY6r5u0qSJCvCEZOU2b96sgjR5TuNgRbJS+ueRQGby5Mn49ttv1bp3333XJEsogdtvv/2mMl2W6LtoSnZNv4+Ns2/SjVMyZCI4ONiku2R6x1uCPDneejOMjreMofzpp5/wyy+/qCBLH6CVKFEC2VW9enU13lBUqFBBtUWCa9l/mzZtwo4dO1SgJ8G3+OKLL9RYTgnIhwwZgtzCq2OHy+g5RpLWr4BbmnXnrt/FpVv38Mu2cxjUOFRV5mz95Xo8UtQP/45oZpV2EtmsJiO0QE9IAZnQZsCe2UD4ei3Ikwqdzf4HrHgHCN+QWlm07x9a4RnJ5q37BFjxNuBfAqjSNfW5E+8Bq8YCO38EdMmAsxvQ8EWtAumMjnC6fgq+Wz8Fet7vMkpE9i/+NnD78sO3kzlGzckXThn5XfkbOejAgQMqYyOZJnPSpbF9+/bqgl+CO8n8yf2ePXuqboK5SbJpVaqYTi31MN9//73Kolly7949lcnr06ePCvKMSTAr3QiXLVumMl8S2Mr25hk9yZCZ3zd/LkvbGFfHnD9/Pr755hu1b/VBtHRTzCuSaVy7dq0KHM2dPn1ave6EhAQ0aNDAsF4CyUqVKuVIoGdMuoVKYKdvl+wP6RpsTNoj7cpNDPQchJOdVd18mDvxSWnWSeXNL1ccx6K9l1Sw92YH7Y159EoMbsclwtczbXBIlG+FVAOemq19JpRprq3r8AnwU3ugQCFg4F9AQFltkneZbF2qdj7xo1bQRbR4E4iNBHb9pE3U7lcsddJ4Cf52zdBuV34MaPdB6oTv3b8DZj8OryPzoVuUrK0PrAhUeRxw4XuUyG55+AK+xR6+nVeg5XUZ+V35GzlILq47d+6sutLpM1zGF+KSMZKs1JYtW1Q3PslOvfPOO6r7XZkyZZBbJLOU2ekDZLxZeiRLJGML//77b9U1UcbY6UlWTV6jZJDKly+vspQSzErAk5O2bt2qAtFx48apoFmyrJLNy8oYuOwcb+mW+tlnn6V5rGjRojh16n5Pllzg5mb6/5ucbykpKYZ2yd+3NMYzt4u6MNBzFA40Rk80rxiE01F30K5KEfSsUwKv/LoX8Ukp+PeQViL+dlwSomJTP6R2nb2JVpWDrdhiIhskwZV58PfKXm2aBv3k9qUaAK8dSvvZIfc7TtC6cJ5YDvzWFxiyDog6mhrkPTXHNNMnyraErtEwOG2dAqdDRgP1pcuXVAQNLK+NCZRuXBJoemndcjJMxh3GxQCVOjJwJMpL0qUyC90qFfOunLlAuvIlJyebrJNufDLGS7oRml+IG1+QS7dFWcaMGaO6cErXxpEjR1p8zpwg3RUl6Mopzs7OmDNnjsroSfESCSgkmBTSBVOKh+gLxUjQoS9cYmzbtm1p7j/yyCNp1kkhE+P7so+FBMuy7yRQ1jt37ly2X5scA2F+HCwdGxn3pj/elqp2litXTp0HEsiXKlVKrbt586bq1tmiRQvkFmlXRESEapO0LS85Rj8/MuIYgd5bj1bGX8Oa4od+ddChagjKBHqr9fcSU9/Uq46kVuE8EZmz3T2IHLqIiz7I00vvCyIXVy3LF/QIEBsB/NYHWDpce6ze4LRB3n26th/g5qPfIqXVu0CdgYCnP3B5D/B9M22szoSywI9ttOyidAPNqBMrVbYQv/cDJoUBGz4Hbp7LfIVQInI4cgEtF/ASxMg4L8mmDB06VF3ISwC0c+dO1U1uxYoVGDRokAoSZHsZzyWFO6Qr46JFi1TVSn2AI88p3T9l/Js8Z3oVJCV4kgydPksXHh6ubpt3j8xNkp2cO3euGo8nBUkksNCPF5PXJe2RLoSyL/SZJmMSEErmU4Ieqbi5YMECVZDFmKyTMW+yjYxHk3Fn+nF+8nfk9UoWT/azdOGUgDm7JHiUYFyylXJsZF8/6HhLcRMpsGPpePv4+OC5555TWc///vtPVeiUIFgC5dwk2Vbp5iqVOiVzLG2WwFiCYjn3chMDPYfhWBk9mW4hrIS/oatF6cJeabaRLpt6X685iW/WnFSVsogoB0lXqt7zAM+CWrAWcxEoVAZoNy7933FyQnxoG20MYJevgZe2aN1HZSL3E/8C8fffu9dPAuvGZ6wdN8K1qp7C1RO4fQX47yPg6+rAp6WBnzpoxSIkW6iXcBfY/gPw5yvAnO7A1AbA7/2Bc1tSg8PEOODsJm0+Qn5+ENkt6aIowY6MfZMS9hJ0SFZLsltykS/j72QsnkyyLd3l5OJexo/JZOdSlVIKkEgxEelqKOX5hVR1lPFbMl2BPKcEQ5bIxbpktvTZLckGym3JEOYlyRj9+uuvqpKlBHsyRmzixIlqzKFUDJVujdKtUjJM5qTypf51yFQR8nuyrTHplimBnIxHmz17tvpb+rGGXbt2xWuvvaYCPymAI4GMVOnMLumGKn9XCsVI91V9YJne8ZZjlN7x1lcXlfGMsi8kAJM5/OrUqYPcJNey//zzD5o3b66CTjnXpGKpZDwf1CU3R/62jlfGWRITE6P6H0dHR+fpQNP0bP/6GTS4+Re2lnoRjZ5N2zfZ3o3/5yi+33DmodvNH9IQDcqaDnaljJNvxOQ/BqluldvfcJGdkfn4fumhBUOD/gVKmw7Kf+h5JN8gS3EYmauvXCtt/J9kCGUaiMFrUucBtESyfjIVRMRBoHgdoP9S4Ng/WjEYmcohxSi4k7GGXb4BboYDK8dogaklRWtqYxXPbwWS4rR1hUKB6r2AGr2BgNwbn0MPx88i64mLi1MZKRmj5unpCXsml7hSEEQCIPMxepRKsmMSEMmSHtl/kqEznj8uv9BZ4Tx60PswMzEIx+g5WjEWB/0gK2Uho2fJuhNRDPSIcoMEZ4PXahmzkvUy//sS8NV42nSdTAFxaKHWHbTxcO32jTNad8+GLwHOLsCd68DfI7Qgz6uwVmBGsow1JCDrBSQlaJnBs5uBtR9r28kcgXr+JYGafYCCpQDvYG1qiQPzgStGhRBkSgmp9nfzLLD+M2DTV0DXyWnbS0REZEcY6DkMxw70SgdoY/T0c+xF37PcT37J3kuIjUvC4GZlMxwcElEGFauZs7vq0c+A0/8BkQeBxUbzCMncfBL0VeoEbJ0MxEVrU8f0nKFN9WDM1R0oUlVbqnYDlo/Sfte1ANBspBZAuhVI3b5ie6DNWODg/Xn+yrYEgipp3UolS7j7Z+DcZmDxC0DUMaD1GC1IJSIisjMM9ByFYWyJYwZ6lUJSSy7XLV0Inu4uWHbgirrfuFxhNabvv2NXcSU6DnO2ncORKzFY+FJjK7aYiB7KJwh47Cvgj+e0CpyS4ZMqnP99rI0HlEUUCQM6fgaENnnI8wVrwaDMIShZOik8Y4l3YW3eP2Pu3kD1J7U2rP0I2Pilltk7v02bWiIpXiti0/4j7X5mSWZyxw9atdCcDpiJiLLBUhVOcxzpZZ8Y6DkMx87oBfl6YHTHyvhq9QkMbl4WDcsWxuiOd3HqaixaVgpGZEwcGnyyxrD93vM3rdpeIsqgqt2Bih21IEr/+SXTQkhm7vI+oOlrQK1ntG6cGVW0RtZ3v2Tv2owBgioDS4dpY/hMHncFevyQuee8dhKY21PrGrrtO+C5lUBw5ay3kYiIKAMY6DmKfFAt7oUW5TCkeVnDQNgShbzUIoJ8PODm4oTEZJ0hMBRXY+JwPPI2mlUIsmLLieiB3MwKPviGAE/OtO5Oq/6UNpn8qdXafH1SEGbNOK3LZ4u3UieIf5jwDcD8Z7Tup9LjIj4amPck8PwaLQNJZKOYwSGy//dfvg30ZE6UXr16mdyXMrH2Wk3IkMeTcSwOLL1qR87OTvDzdMP1O9ok6oE+WqDX47stuHjzHmY9Wx8tKjLYI6JMKFJFW/SkG+fJFcCGL4Du36XtmimPHf8XuHVe+yyWzyuZGD4lCShRH3h8CjCvl1YR9NfewMC/TccPEtkA/cTid+/eRYECPD+JrEHef8bvx6zKt4GezIuin9hSJl+U0rLt2rWD/XLsMXoZ0bBcYcO4vcTkFFy9HaeCPLHycAQDPSLKnpZvacGcVO1s8YY2rlC6Y/71KhC+HtClnYRYkXF/j3+rZS77/qFNFn9plzZlhJ9ZcRkyVJIuGB8PJw+PfP3/mjVIJ+mCAQ1x9V49IDYAXu4udnsE5MpIBx2S4GS3r4Fs4zxKcfVEkk9Qrk+vIJk8CfJkiiKZ/0/mCsyOfBvoGfvzzz/Rpk0beHunVna03zF6yLc+erwaapYoiI//OYoTkbH4YX3qvHvXYuOt2jYicgAyh1/5dsCpVcCGL4Fq3bVCMnG3UovGVO4EFKutZfMk8JO5+ko2SB1/GFgeeHouMLubNhWELJSG7C37nsHNvoVgOVChD66W7gi4uFu7OURWp3PzArxi82wePQnyQkJCsv08NhvobdiwQc1ev3v3bly5csXiJI1Tp05V20RERKBGjRqYPHky6tevn+m/9fvvv6N///6wZ87JWpdFp8wULHAwhbzd0TEsRAV64sdN4YbHtoffwO24RPh6Zi8FTkT5nIzPk0Bv/zxg31ztSzYJAHtMz/i4vdCmwEtbgAvbcru1ditFp8PtmBj4+vnB2UGLjNky2eNFAQTropFou5eKD5UCHe7E3oG3jzec8/M34ZTt8ygayfAPrQPnPJhuR7prZjeTp2ez7947d+6o4O3ZZ59Fjx490jw+f/58jBw5EtOmTUODBg0wadIkdOjQQY21Cw7WBrjXrFlTzWRvbuXKlShWrJhhdvktW7bgt99+gz0LuKsFNZ4hFZGfFfSy/M3jrbuJ6D9jB+4lJOP19pXQtko6ZdeJiB5EJosv11qb/0/I5O4dJ2hVQzMjqKK2kGUpKbh39Sp85f9zzmNoNXKpac9fH6ekpCDm6lV4BgfnyQU6OaYU/Xnk6Wl355HNBnodO3ZUS3omTpyIwYMHY9CgQeq+BHzLli3DjBkzMGrUKLVOPwbvQZYuXYr27durg/cg8fHxatGTAFF/8GWxtuBX/sOeXf+hTM2WNtEeayngmvYbu0ZlC2PrmevYe17rXjVp9Qm0rszCLJbIuSP9w/PzOUTZ5/Dn0aOfwWnlO9A98jhQs4+2zlFfq5U4/DlEeYLnETnieZSZdthsoPcgCQkJqkvn6NGjDeskwm7bti22bjWb8ygD3TaHDBny0O3Gjx+PcePGpVkfFRWFuLg42MJBL1A8DPfikxB/9Srys3KBBXD6mlaERTQp7aUCPb1jETFYuuMkzt2IQ8+awXB1ZncO4/MoOjpafaDZ27dWZDsc/zzyA9pM1m7m88/b3OL45xDlBZ5H5Ijn0e3btx070Lt27RqSk5NRpIhp9zu5f+zYsQw/jxy0HTt2YOHChQ/dVoJK6SpqnNErWbIkgoKC4OfnB1s4CWWAqLTHFk5Ca1r4UiFciY5Dx282qfsdaoTii7UXDI8npQCvLTmlbrsX8MKLLTI4riYf4HlEPI/IFvCziHgeka1IsbFr7If1QrT7QC+n+Pv7IzIyMkPbenh4qMWcHHBbOOhCTkJbao+1FPT2UMuilxvDxckJZYJ80t121dGreLlVhTxtn63jeUQ8j8gW8LOIeB6RrXCyoWvszLTBLgO9wMBAVY3GPEiT+zlRipQcQ+1ShR66zYGL0Ri96ACCfDzwatuKauJ1IiIiIiJ7Z/2wNAvc3d1Rp04drFmzxiStKvcbNWpk1baRbXrvsSqoU7oQtoxqjZYVUwuxJKfo8OuOC/jmv1PYc/6mVdtIRERERJRTbDajFxsbi1OntHFUIjw8XFXRDAgIQKlSpdR4uQEDBqBu3bpq7jyZXkGmZNBX4SQy9lzTMmoRP/Svi6lrT+LrNannlzh4KRp1QwO444iIiIjI7tlsoLdr1y60atXKcF9fCEWCu5kzZ6JXr16q4uWYMWPUhOkyZ97y5cvTFGghMufu6ozX2lVSmbyrt1OnzBj31xEkJqWgWcUgFPJyR4h/xge7EhERERHZEpsN9Fq2bKnKmD7IsGHD1EKUFUX9PU0CPfHJv8eAf4+hVIAXFr/cGBExcahazJ87mIiIiIjsil2O0SPKCcF+6Wfszt+4i65TNqPzN5vw37GMVWYlIiIiIrIVDPQo3/L1SJvQfrVtBTxSVJsX8dItbdL1Z2fuwpmo2DxvHxERERFRVjHQo3zL0lQKXWsUQ+vKqVU59Z6bteuhXYmJiIiIiGwFAz3KtyzNmFe6sDdqlCiYZn34tTs4Hnk7T9pFRERERJRdDPQo3+pas5j6WTbIG188WQOznq0PF2cnhAZ6m2znc7+L56rDHKtHRERERPbBZqtuEuW2ZhWCsOjlxigb6I2CXu6G9aGFTQO92Pgk9XPtsavoVqs47iYko1KILw8QEREREdksZvQoX6tdqpBJkKefZ89S9849F26h2YS16DBpA6Jux+Ofg1dwOy4xD1tLRERERJQxDPSIHsDDzRmFfUwDQTHy9314ee4eDJ23l/uPiIiIiGwOAz0iC8Z2qaJ+TnyqJn4d3NAkyyc2nrymfm44EcX9R0REREQ2h2P0iCwY1KQMutcqbujWObRlOXy1+qTFfXUtNh6BPh7cj0RERERkM5jRI0qH8di97rVKpLufftl2jvuQiIiIiOw/o3f+/HmcO3cOd+/eRVBQEKpWrQoPD2Y0yHGVDCiQ7mOTVp9EzZIF0bJScJ62iYiIiIgo2xm9s2fP4q233kLp0qVRpkwZtGjRAh07dkTdunXh7++Pdu3aYcGCBUhJScnoUxLZDScnJzXPXufqRQ3rKof4okn5wur29+tPW7F1RERERERZCPReeeUV1KhRA+Hh4fjoo49w5MgRREdHIyEhAREREfjnn3/QtGlTjBkzBtWrV8fOnTsz8rREdqVFxSBM7VMbPw+sh1fbVsCkp2visyeqqykYtp65gRrjVuC9JYes3UwiIiIioox13fT29saZM2dQuLCWvTAWHByM1q1bq2Xs2LFYvnw5Lly4gHr16nH3kkNqVTlYLeKv/ZcN66PvJWHOtnMY17UqnJ2NZ+AjIiIiIrLBQG/8+PEZfsJHH300O+0hsitF/DxRwN0FdxOSDetu3U1AAKtwEhEREZE9Vd28d++eKsKiJ0VZJk2ahBUrVuR024hsXv0yAZgxsB4KuLkY1tX7eDUmrTph1XYRERERUf6W6UDv8ccfx+zZs9XtW7duoUGDBvjyyy/RrVs3fPfdd7nRRiKb1rBsYfw0oK7hfrIOmLTmJKLvJVi1XURERESUf2U60NuzZw+aNWumbv/xxx8oUqSIyupJ8PfNN9/kRhuJbF7j8oEo7J06754Y9PNObD19Hc/8uB1nomKt1jYiIiIiyn8yHehJt01fX191e+XKlejRowecnZ3RsGFDFfAR5VeBZuPy9py/hd7Tt2HTqWv4Zs1Jq7WLiIiIiPKfTAd65cuXx5IlS1RlTRmX1759e7X+6tWr8PPzy402EtkFb4/UcXrm4hJTEBkTh78PXIZOp8vTdhERERFR/pPpQE/mynv99dcRGhqqxuc1atTIkN2rVatWbrSRyC74eLql+1hUbDw6f7MRw+btxT8HI/K0XURERESU/2RoegVjPXv2VJOjX7lyRU2irtemTRt07949p9tHZDd8HpDR233upuH26qOR6Fy9aB61ioiIiIjyowwHeqVKlULXrl3VIpOjh4SEmDxev3793Ggfkd3wds/Y22n7meuq+6aTEydVJyIiIiIrd92cM2cOPDw8MHToUAQGBqJXr16YO3eummKBiKTrZmqg91TdEurnSy3Lpdk1l6PjcO76He4yIiIiIrJ+oNeiRQs1X97JkyexefNm1KxZE5MnT1aZPcnwyaTpZ86cyb2WEtk4H4/UQK9H7RLY8147vNmhksVt3/jjAIuyEBEREZHtFGMRVatWxejRo7Ft2zaEh4ejd+/eWLNmDapVq6aWZcuW5XxLiewo0PPzdEOAt3ua7pn6ezvP3sTHy45i7bFIjFl6CNH3EvO4tURERETkyDJdjMVc0aJFMXjwYLXIHHsy5YJ08STKb7yNAj1/r7QVOH09XPF6h0oY++dhdf/HTeGYs+0c4pNScDziNn4b0pDj9oiIiIjIuoGezJsnS0pKisl6Vt6k/MrVOTV752c0Xq9p+UA1afpzzcpgQONQ/L7rAg5fjlGPSZAntoffwGvz9+HzJ2vAzSVLiXYiIiIioqwHert378aAAQNw9OjRNGOMpJtacnJyZp+SyCGkGL0dvI0qcE7uXQtbz1xHuypF1P0RbSpgyJzdJr8rIeKSfZdRNzQAzzQsnWdtJiIiIiLHlOnUwbPPPouKFStiy5YtqviKjNHTL7ZajEWyjIUKFVJzAGbmMaLMSDb64sPZKLtXyNsdncKKGjJ1LSsFo5BZ1079by7ac5E7nYiIiIjyPtCTYG7ChAlo0KABQkNDUbp0aZPFFo0YMQKzZ8/O9GNEmdGobGH108s9/YnThburMz7uHobC3u6G7p7Bvh4qq7fn/C20m7getT5YiW1nrvMAEBEREVHedN1s06YN9u/fj/Lly8NetGzZEuvWrcv0Y0SZUT7YB6tea45An4cXI5IMX/sqRZCUosOiPZfQuFxhfPj3Eaw5dhUnr8aqbRbuvoiG94NHIiIiIqJczej9+OOPmDFjBsaNG4eFCxfizz//NFkya8OGDejSpQuKFSumxvgtWbIkzTZTp05V2UNPT0+VSdyxY0em/w5RXqhQxFd11cwIVxdneLq5oE+DUggN9MZnPavj3c6PoGIRH/X4gYvRudxaIiIiInJUmc7obd26VU2Y/u+//6Z5LCvFWO7cuYMaNWqosX89evRI8/j8+fMxcuRITJs2TQV5MjF7hw4dcPz4cQQHB6ttZPL2pKSkNL+7cuVKFUAS2QPJBD7frCw6VgtBk8/W4kTkbdxNSIKXUWEXIiIiIqKMyPQV5PDhw/HMM8/gvffeQ5EiWhXB7OjYsaNa0jNx4kQ1R9+gQYPUfQn4ZEJ2ySqOGjVKrdu3bx9yW3x8vFr0YmK08vgyvYT5FBPWIG2QKqi20BbKuuQUnerCqS/Q8sWKY3i3c5U826U8j4jnEdkCfhYRzyOyFSk2do2dmXZkOtC7fv06XnvttRwJ8h4mISFBTecwevRowzpnZ2e0bdtWZRbz0vjx41V3VXNRUVGIi4uDLRz06OhodSLKPiL7Vdwn9fjN2HwOQR46dK8elCd/m+cR8TwiW8DPIuJ5RLYixcausW/fvp17gZ50r1y7di3KlSuH3Hbt2jXVFdQ8qJT7x44dy/DzSGAoBWSkm2iJEiWwYMECNGrU6KGPGZNgU7qQGmf0SpYsiaCgIPj5+cEWTkLpOivtsYWTkLLu7a5BOH49AZtOaVU3P/vvPAr6+6FqMT/4FXBDqQCvXNu9PI+I5xHZAn4WEc8jshUpNnaNLTVLci3Qkzn0JOjZtGkTwsLC4OZmOh/YK6+8AluzevXqLD1mzMPDQy3m5IDbwkEXchLaUnso634eWA9dpmzGsQjtW5vRiw+pn55uzjj2YfpdnXMCzyPieUS2gJ9FxPOIbIWTDV1jZ6YNrlmpuunj44P169erxXwn5GSgFxgYCBcXF0RGRpqsl/shISE59neIbI2bqwv+eaUpuk7ZjEOXtfGgIi4xBfFJyfBwffBcfURERESUv2U6LA0PD093kcnUc5K7uzvq1KmDNWvWmKRP5b6l7pVEjkS+sfl1SEPcn1PdYO6289ZqEhERERHZCavXbY+NjcWpU6cM9yVglCqaAQEBKFWqlBoXN2DAANStWxf169dX0yvIeDp9FU4iR+br6YZGZQtj82ltvJ74dcd5VCnqh3UnojCyXUW4u1q/GwERERER2Xmg98QTT6iA66233jJZP2HCBOzcuVMVM8mMXbt2oVWrVob7+oInEtzNnDkTvXr1UpUtx4wZg4iICDVn3vLly/Ok6ieRLahesqBJoDekeVk8PX2buh3o467m3iMiIiIiMpbpVMCGDRvQqVOnNOtlLjx5LLNatmypypWaLxLk6Q0bNgznzp1T89ht375dTZxOlF8817QMHimaWtl165nUoG/vhVs4HRWLlBSZdY+IiIiIKIuBnnS1lLFz5qT6pn4ScSLKOYE+Hvh3RDMMbByq7i/ac8nw2LIDV9Dmy/UY+fs+9QUJEREREVGWAj2ZUmH+/Plp1v/222+oUqUK9ypRLinil/68KUv2XcavOy5w3xMRERFR1sbovffee2rS9NOnT6N169ZqnVTB/PXXXzM9Po+IMq6IX+o8jlJ/JSnF9PGJq46jd/2SapoTIiIiIsrfMp3R69KlC5YsWaIqZb788sv43//+h4sXL6qJx7t165Y7rSQik4xew7KBeLNDJZO9ci02AX/svsg9RURERERZm16hc+fOaiEi62T0WlUOxrNNQvFUvRIYs/Qw/jkYodaPXnQQxQsWQOPygTw0RERERPlYhjJ6LPJAZH3BRhm9FhUDVRfNQB9PfP10LVQo4qPWJ6XoMHDmToz4bS/uJSRbsbVEREREZPOBXtWqVVWxlYSEhAdud/LkSbz00kv49NNPc6p9RHSfn6cbxjxWBW93qozywb6G/eLm4owJT1Q33E9ISsHSfZfx/p+HVTXOv/Zf5j4kIiIiymcy1HVz8uTJaoJ0GZPXrl071K1bF8WKFYOnpydu3ryJI0eOYNOmTTh8+LCa806CPSLKec82LWNxfc2SBdHukWCsOnrVsG7+rguG6Ri61CjGw0FERESUj2Qo0GvTpg127dqlgjmZWmHu3LlqAvN79+4hMDAQtWrVQv/+/dG3b18UKlQo91tNRCakG+eUvrXx9qKD+PvAFcSbleSMT0qGh6sL9xoRERFRPpGpYixNmzZVCxHZHgnkvnyqJj7uHoamn/2nqnDqDZ69G/vO38Sfw5oiNNDbqu0kIiIiIhucXoGIbJunmwv6NChtsm7DiSjExCWpsXtERERE5PgY6BE5oJdblsMXT9ZAm8rBJuv/OcRAj4iIiCg/YKBH5KBZvZ51SiCshL/J+uMRsdhx5joW772IX7ads1r7iIiIiMgGJ0wnIvtQNkibX89Ynx+3q/n2RMtKQShRyMsKLSMiIiKi3MSMHpEDK2tUeKWAm1Z1Ux/kiZNXY63SLiIiIiKywUDv9OnTePfdd9G7d29cvarN2/Xvv/+qefSIyHaUDfJWAZ67qzOWDG2CYgU9TR6XbpxERERE5HgyHeitX78eYWFh2L59OxYtWoTYWC0jsH//fowdOzY32khEWeTl7orZz9XHL881QKUQX/z7SnNUK+5neHzmlnMIv3aH+5eIiIgovwd6o0aNwkcffYRVq1bB3d3dsL5169bYtm1bTrePiLKpXmgA6pcJULf9vdxU0Ff8fmbvXmIy+kzfhvPX7xq2P3cjDvGJydzvRERERPkp0Dt48CC6d++eZn1wcDCuXbuWU+0iolxS0Msdnz1R3XD/SnQc3lq0H9H3ErHqSCR6zT6Md5eyGzYRERFRvgr0ChYsiCtXrqRZv3fvXhQvXjyn2kVEuahmqUIm97eevoHHJm/E1HWn1f2/9l9G9N1EHgMiIiKi/BLoPf3003jrrbcQEREBJycnpKSkYPPmzXj99dfRv3//3GklEeUoHw/TmVWCfD1w4cY9HLgYre4nJOvw90FOrk5ERESUbwK9Tz75BJUrV0bJkiVVIZYqVaqgefPmaNy4sarESUT2oaCXm/oZ4ueJSb1qGta7uzipn4v3XLJa24iIiIgojwM9KcAyffp0NcXC33//jV9++QXHjh3DnDlz4OKizdNFRLbvq6dqonnFIPz+QiM0KR+Ifg1Lw8UZ0E+zt+vcTewIv2HtZhIRERFRFpj238qEUqVKqYWI7FOrysFq0RvbpQq2nrmGU1dTp1t4Z/FBLH+1OVyctSwfERERETlQoDdy5MgMP+HEiROz0x4ishJXF2f8PLAenpq2BVdiEtS6k1dj8cPGM3ipRTkeFyIiIiJHC/SkoqaxPXv2ICkpCZUqVVL3T5w4obpt1qlTJ3daSUR5onjBApj6REUMW3wKl2/FqXWfLz+GQ5duIep2AmYOqqcmYSciIiIi25ahK7a1a9eaZOx8fX0xa9YsFCqklWi/efMmBg0ahGbNmuVeS4koTxTz98C85xvg6enbEREdp8bsLTsQoR7bHn4DrSqldvckIiIiIgcpxvLll19i/PjxhiBPyO2PPvpIPUZE9q9UgBd+G9wQhe5X5tQ7cOGW1dpERERERLkY6MXExCAqKirNell3+/btzD4dEdmo0EBvLHypMQp7uxvWzdp6Dsn6spxERERE5DiBXvfu3VU3zUWLFuHixYtqWbhwIZ577jn06NEjd1pJRFZRNsgH819oBD9PV8NE66zASUREROSAgd60adPQsWNH9OnTB6VLl1aL3H700Ufx7bff5k4richqygf74Kv7E6pfib6Hzt9sxGOTNyI+KZlHhYiIiMhRAj0vLy8V0F2/fl1V45Tlxo0bap23tzdskWQhZRxhz5490zwWGhqK6tWro2bNmmjVqpVV2kdk61pUDIK7izMSk3U4fDkGhy7FYMGui+zGSUREROQogZ6eBHUSIMliqwGe3ogRIzB79ux0H9+yZQv27dtnUl2UiEzn2CsbZPo+/2LFcfT+YRvuJiRxVxERERHZmExPiCVZLycnp3Qf/++//2BrWrZsiXXr1lm7GUR2zdnofe/t7oJb9xKx4+wNPDdzF2YMrIcC7i5WbR8RERERZSOjJ10ca9SoYViqVKmChIQENYl6WFhYZp8OGzZsQJcuXVCsWDEVQC5ZsiTNNlOnTlVdLD09PdGgQQPs2LEDOUX+ZosWLVCvXj3MnTs3x56XyNF0CgtRPysV8UW/RqUN67eeuY7nZ+9EXCLH7BERERHZbUbvq6++srj+/fffR2xsbKYbcOfOHRUwPvvssxards6fPx8jR45URWAkyJs0aRI6dOiA48ePIzg42BB8JiWl7T62cuVKFUA+yKZNm1C8eHFcuXIFbdu2VcGqdEclIlPPNyuLQt7u6BxWVFXfXHbgCi7cvKce23zqOgbP3oXp/evC042ZPSIiIiK7C/TS88wzz6B+/fr44osvMvV7UsFTlvRMnDgRgwcPVlM6CAn4li1bhhkzZmDUqFFqnYyvyyoJ8kTRokXRqVMnlZm0FOjFx8erxXg+QZGSkqIWa5M26HQ6m2gL2a8HnUfuLk7oXa+k4f5H3aphwM87Dfc3nryGF+bsxrRnasHDlcFefsbPI+I5RLaAn0XkiOdRZtqRY4He1q1bVdfKnCRdQnfv3o3Ro0cb1jk7O6vMm/y97JJsouwsX19flY2U8YVPPfWUxW3Hjx+PcePGWZwoPi4uDtYmryM6OlqdiLKPiHL7PKrkD0x8vDy+WHsel2MS1Lr1J6Lw/M/b0b9uCIoX9ECgtxsPRD7EzyPiOUS2gJ9F5Ijn0e3bt3Mv0DPvXikvWro97tq1C++99x5y0rVr15CcnIwiRYqYrJf7x44dy/DzSGC4f/9+FdiVKFECCxYsQKNGjRAZGammXhDydyRzKGP1LJFgU7qQGmf0SpYsiaCgIPj5+cEWTkIZbyjtsYWTkOxTZs+jbsHBOHYzGT9sCIersxOSUnTYHB6tlirFfPH3sKZ50m6yLfw8Ip5DZAv4WUSOeB5lJrGW6UBPghrjqpvygitVqoQPPvgA7du3hy1avXq1xfVly5ZVAWBGeHh4qMWcvH5bOOhCjosttYfsU2bPo6L+BdTPOqULYt+FaMQnaV0Kjly+jXM37qFMoG1Pv0K5g59HxHOIbAE/i8jRzqPMtCHTgd7MmTORVwIDA+Hi4qIyb8bkfkiIVgGQiKwrxE/7Zkniu6rF/LDn/C3DY6uORGBI83JWbB0RERFR/pTpsFSyYNevX0+z/tatW+qxnOTu7o46depgzZo1JulTuS9dL4nI+oLvB3oR0XGIjNEKFnWtoVW7XXYwAt+vP43Np65ZtY1ERERE+U2mM3pnz55V49nMSUXKS5cuZboBUgTl1KlThvvh4eGqimZAQABKlSqlxsUNGDAAdevWVVU9ZXoFGWunr8JJRNYV4q8FepExcUjW6dTtIc3L4s/9l7H/wi21+Hi4YO977eHmav0uD0RERET5QYYDvT///NNwe8WKFfD39zfcl8BPsmwyqXlmSRGXVq1aGe7rC55IcCfdRHv16qUqW44ZMwYRERFqzrzly5enKdBCRNYR5KONXZVCLMLX01V14axRsqAK8kRsfDJemrsHP/SrA2fn1DG+RERERGTlQK9bt26GwYgShBlzc3NTQd6XX36Z6Qa0bNlSVe58kGHDhqmFiGyPu6szAn3ccS1Wm2JBiq/I58T47mGYt/0c5m4/D3mHrz4aidGLDmJ8jzAGe0RERES2EujpJ+crU6YMdu7cqQqlEBGJIn6ehkAvtLBWZbNKMT981D0MdxKSsHjvZbVu/q4LKsj7uFs1BntEREREuSjTA2ZkDB2DPCIyD/T0Qs2mUxjUpIzJ/V93nMfYPw8/NJNPRERERLmc0fvmm28wZMgQNUGf3H6QV155hceDKB8HemUCvUweq1rMX43bux2XBBmdJ+HdnG3nkKLT4aNu1Uzm5SQiIiKiPAz0vvrqK/Tt21cFenI7PXLBxkCPKP/OpWfcdVPPxdkJjcsVxorDkSrI05Oxe55uLni38yMM9oiIiIisEehJd01Lt4mIRBE/rfKmvhiLuXc7V1HB4N4Lt3A1Jh4RMXFq/U+bwhHs64EXWnBSdSIiIiKrzqNHRGSuyP259Ap5uaGgl3uax0sGeGHc49XUbRmb1+CTNbh6Ox6Fvd3xeM3ihvF67MZJRERElIeBnn5uu4yYOHFidtpDRHaodqlCqFjEB60qBz90WwnmXmpZDuP+OqICQ8kGyjoWZyEiIiLK40Bv7969GXoyfhtPlD/5F3DDytdaZHj7HrVL4LPlx3Aq6g42nryG5hWDkJScIh8icHPJdDFgIiIiIspKoLd27dqMbEZElOHAsE/90pixORyTVp/Akn2XsOpwhJqa4dFqRTG0VXnuSSIiIiJrjdG7cOGC+lmyZMnsPA0R5UMvtiiLudvPYc/5W2oRBy/FqEUqdb7IAi1EREREWZbpPlJJSUl477334O/vj9DQULXI7XfffReJiYlZbwkR5SvBfp7o26C0uu3sBPh4uBge+/TfY3jzj/1WbB0RERFRPsvoDR8+HIsWLcKECRPQqFEjtW7r1q14//33cf36dXz33Xe50U4ickCvtCmPW3cT0L5qERT1L4Bu327G/QKc+H3XRZQN9MGLLTn1AhEREVGuB3rz5s3Db7/9ho4dOxrWVa9eXXXf7N27NwM9IsowmYphYq+ahvt/DWuK79efxl8Hrqj7ny4/Bk83ZwxsUoZ7lYiIiCg3u256eHio7prmypQpA3f3tPNnERFlVLXi/pjcpzYerRpiWPf+X0cwZ9s57kQiIiKi3Az0hg0bhg8//BDx8fGGdXL7448/Vo8REWXX1D61EOiT+sXRe0sO4bt1p5Cccr9fJxERERHlbNdNmVNvzZo1KFGiBGrUqKHW7d+/HwkJCWjTpg169Ohh2FbG8hERZZaLizNmDKiHx6duhj60+2z5cUREx2Hc49Vw8eZdJCSloGyQD3cuERERUU4EegULFsQTTzxhso7TKxBRTqtesiCGty6Pb/47ZVg3b8d5PFm3JPr+uB33EpLx1/CmqBTiy51PRERElN1A7+eff87srxARZcnwNhVwLTZeZfWOXLmN/Rduoff0bbgdl6Qef3vxQSx4oRGcZX4GIiIiIsr6GD0iorzi5uKMT3pUx/ge1TGsVXm1Th/kubs4Y/e5m/h153keECIiIqLsBnoyV97QoUNRpUoVBAYGIiAgwGQhIsoNbSoHo1yQt7rt6+mKxJQUdfuDv45gz/mb3OlERERE2em62a9fP5w6dQrPPfccihQpAicndpkiotwn3TO/6V0L4/48jB1ntcBOPn3ik1Lw/KxdWPxyY5QurAWCRERERPldpgO9jRs3YtOmTYaKm0REeaVqMX/8NqQRRi06gN93XTRU5LxxJwHj/zmGaf3qqPtSkXP4r3tQ1L8A3u9alQeIiIiI8p1Md92sXLky7t27lzutISLKQGbv0x7V8UTtEibrVx6JwNWYOHV7/YkorDgciZlbzuLc9Tvcp0RERJTvZDrQ+/bbb/HOO+9g/fr1arxeTEyMyUJElBfB3oSe1dGtZjHDOplL/dN/j6nbfx+4bFi/7OAVHhAiIiLKd7I0j54EdK1btzZZr9Pp1Hi95OTknGwfEZFFLs5O+OLJGkjWAX/t1wK7RXsvoWNYCFYfiTRst+zAFbzcUqvYSURERJRfZDrQ69u3L9zc3DBv3jwWYyEiq3J1ccZXT9VAYlIKlh+OUOtemLNbZfeCfD3U2L3Dl2MQfu0OygSyUAsRERHlH5kO9A4dOoS9e/eiUqVKudMiIqJMBnuT+9RC52824kRkrAryhHTrPBZxGxtPXsM/B69g6P15+IiIiIjyg0yP0atbty4uXLiQO60hIsrixOp/DWuKTmEhhnWPVS+GLtW1MXwr72f7iIiIiPKLTGf0hg8fjhEjRuCNN95AWFiY6sZprHr16jnZPiKiDPFwc8G3fetgw4koRN2OR42SBVX3TXHocgzuJiTByz3TH3lEREREdinTVz29evVSP5999lnDOinCwmIsRGQLmlcMMtyWMXouUiQqRYd952+hcflAq7aNiIiIyGYDvfDw8NxpCRFRDjoecRt9pm9Dsk4btPf3gSsM9IiIiCjfyPQYvdKlSz9wsUXdu3dHoUKF0LNnzzSPffHFF6hatSqqVauGX375xSrtI6KcV7qwF8JK+Bvu/77rAg5ejOauJiIionwhywNWjhw5gvPnzyMhIcFkfdeuXWFrZEyhdDWdNWuWyfqDBw+qaSJ2796tup62atUKjz32mJorkIjsm6ebC37sXw9Pfb8VBy9FIylFp277eLhibNcqqlgLERERkaPKdKB35swZlSGTIEk/Nk/IbWGLE6a3bNkS69atS7P+6NGjaNSoETw9PdX9GjVqYPny5Xj66aet0EoiymkF3F0w9/kGqPnBSjXtwr3EZLW8+tteFPJyRxOO2SMiIiIH5ZyV7FiZMmVw9epVeHl54fDhw9iwYYOadsFSMPUw8rtdunRBsWLFVLC4ZMmSNNtMnToVoaGhKiBr0KABduzYgZwg3TWlzbdu3cLNmzfV7UuXLuXIcxORbfAr4IYGZQNM1iWlAM/P2oUzUbFWaxcRERGRTQV6W7duxQcffIDAwEA4OzurpWnTphg/fjxeeeWVTDfgzp07KpMmwZwl8+fPx8iRIzF27Fjs2bNHbduhQwcVaOrVrFlTBW3my+XLlx/4t6tUqaLa3Lp1a/To0QMNGzaEi4tLpl8DEdm2puW1SpwerqkfeZLZ++DvI1ZsFREREZENdd2Urpm+vr7qtgR7EkxVqlRJFWI5fvx4phvQsWNHtaRn4sSJGDx4MAYNGqTuT5s2DcuWLcOMGTMwatQotW7fvn3IqhdeeEEt4vnnn0eFChUsbhcfH68WvZiYGPUzJSVFLdYmbZButLbQFrJfjnoe9W9YCu4uTmheMRBv/HEQB+4XZVl3PArHr0SjQhHtM41yhqOeR5R3eA4RzyOyFSk29n9aZtqR6UBPMmX79+9X3TelG+WECRPg7u6OH374AWXLlkVOkkIvUihl9OjRhnWSQWzbtq3KLOYEyQwGBwerIFW6hEogaYlkLMeNG5dmfVRUFOLi4mALBz06OlqdiLKPiHgemepS0VvyePjisVCMWHwSick6nLp2Dx/9dRAdHymMAC9X1CzOgI+fR2QL+H8a8TwiW5FiY9fYt2/fzr1A791331XdLYV04ZQqlc2aNUPhwoVVN8ucdO3aNZVBLFKkiMl6uX/s2LEMP48EhhKcSrtLlCiBBQsWqCIs4vHHH1cHz9vbGz///DNcXS3vEgk2pQupcUavZMmSCAoKgp+fH2zhJJQxjtIeWzgJyT7lh/MoGMCSYSE4GRmLx6ZsxsYz0WqRelKLXmqEGiVYdTe78sN5RLmL5xDxPCJbkWJj/6fpi0jmSqAn4+P0ypcvrwKuGzduqHnq9JU3bc3q1avTfSyjmUEPDw+1mNOPU7QFsv9tqT1kn/LDeeTh7IxqJQpiYONQ/LX/MlxdnBAZE4/x/x7H7y9oXwJR9uSH84hyF88h4nlEtsLJhv5Py0wbcqS1AQEBuRLkyRhAKY4SGRlpsl7uh4SE5PjfI6L85f2uVbH7vXZ4uWV5dX9H+A38e/CKtZtFRERElG3WD0sfQMb+1alTB2vWrDFJn8p9fddLIqLsSEpOwa87zhvuvzp/H85e07qnExEREdkrqwd6sbGxqmqmvnJmeHi4un3+vHbhJePipk+fjlmzZqkJzl966SU11k5fhZOIKDtcXZwx+7n6KBXgpe7HJ6Wg/VcbsPvcDcM28UnJSJEZ14mIiIjsRKbH6OW0Xbt2oVWrVob7+oInAwYMwMyZM9GrVy9V2XLMmDGIiIhQc+YtX748TYEWIqKsCvb1xIIXG6HrlE1qrF5CcgqenLYVc56rD28PNzw/ayfKBHpjwYuNuZOJiIjI8QK9xMRENefce++9p6ZXyAktW7ZU5UofZNiwYWohIsotRfw8sXRoUzzx3RZcunUPksDr99MOeLq54G5CMq7FJuDmnQQU8nbnQSAiIiLH6rrp5uaGhQsX5l5riIisKMRfy+wVL1hA3ZdgT4I8veORGZ+7hoiIiMiuxuh169YNS5YsyZ3WEBFZWbGCBTD/hYYo6p86T42Ph9b54XgEAz0iIiJy0DF6FSpUUBOlb968WVXElInGjb3yyis52T4iojxXopCXmk+v1/dbcf1OAlpXDsKf+6/gGAM9IiIishOZDvR++uknFCxYELt371aLMZlLj4EeETmCkgFe+HVIQ1y+FYeo2HgV6B2PiLF2s4iIiIhyJ9CT6Q+IiPKD0oW91XLi/ti8E5GxaqqFYfP2ooifBz7qFmbtJhIRERHl7Dx6CQkJOH78OJKSkrL6FEREdkGmVnBzcUJsfBJ+3nwWq45E4pdt53GSxVmIiIjIUQK9u3fv4rnnnoOXlxeqVq1qmNh8+PDh+PTTT3OjjUREVuXm4oxyQT7q9pT/ThnWL9l3yYqtIiIiIsrBQG/06NHYv38/1q1bB0/P1Kp0bdu2xfz58zP7dEREdqFyiK/6KVk9vaX7Lj90HlAiIiIiuwj0ZGqFKVOmoGnTpqr4ip5k906fPp3T7SMisgmVQvwMt+uFFoK3uwsu3ryH3eduWrVdRERERDkS6EVFRSE4ODjN+jt37pgEfkREjqRyUS2jJwY0DkWHqiHqNrtvEhERkUMEenXr1sWyZcsM9/XB3Y8//ohGjRrlbOuIiGxE9eL+8HJ3UROpt6tSBN1qFVfr/z5wBXeMunMSERER2eX0Cp988gk6duyII0eOqIqbX3/9tbq9ZcsWrF+/PndaSURkZYV9PLDslWYo4OYCD1cXNC5XGKULe+Hc9buYsSkcw9tUwOVb99RSuagffDwy/fFKREREZL2MnozN27dvnwrywsLCsHLlStWVc+vWrahTp07OtYyIyAanWQjx14pQubo4Y2S7iur2DxvOqCkXOny1AT2nbUXY+yvw+JRNOHVVm3+PiIiIKK9l6SvncuXKYfr06TnfGiIiO9KlejF8v/4MjlyJweDZu9Q6KdJyJyEZ+y9Go/u3W/Bd3zpoWiHQ2k0lIiKifCZDgV5MTAz8/PwMtx9Evx0RkaNzdnbCm49WwsCfd6r7zSsG4ftn6uDm3QQM/3Wvqsj5zE/b1bi+6iX88UaHyigfrM3HR0RERGT1QK9QoUK4cuWK6qJZsGBBi9U1ZS4pWZ+cnJwb7SQiskktKgbhjQ6VcDchCa+0qaDG7xVwL4C5zzfAu0sO4Y/dF3ElOk4tO8Jv4OdB9VGzZEFrN5uIiIgcXIYCvf/++w8BAQHq9tq1a3O7TUREdkO+4Braqnya9Z5uLvjiyRoY26UKjkXcxkfLjmL/hVvoM30bJvSsjs5hRTklDREREVk30GvRooX6KQVYpLLms88+ixIlSuReq4iIHISvpxvqhQaoDN+Lc3Zj06lrGDZvLxZVvoSPu1dDUf8C1m4iERER5feqm66urvj8889VwEdERBkn0y38NLAuXmldHm4uTvjv2FVVwEW6vRMRERFZfXqF1q1bc748IqIskPF7I9tXwr8jmqnJ1w9disG6E1Hcl0RERGT96RVksvRRo0bh4MGDat48b29vk8e7du2ak+0jInI45YN90ad+Kfy4KRzfrT2NVpWCcehSNK7ejlO3LRW8IiIiIsrVQO/ll19WPydOnJjmMVbdJCLKmOeblcWsrWex4+wNjFp4AL/vuoAUHdS4vb4NSnM3EhERUd523UxJSUl34dQKREQZE+LviSdqa0WtftupBXni/T8PY+/5m9yNRERElLeBHhER5YwXWpSDu6uzKs7y4eNV0bFaCBKTdXjplz24FhvP3UxERER513Xzgw8+eODjY8aMyXpriIjykTKB3vjnlWbwcHVGyQAvdK9dAicib+N01B1MXHUCn3QPs3YTiYiIKL8EeosXLza5n5iYiPDwcDX1Qrly5RjoERFlQvlgH5MpGMb3qI6nvt+K33dewJBmZREaaFrwioiIiChXAr29e/emWRcTE4OBAweie/fumX06IiIyUr9MAFpWCsK641GYtPoEJj1di/uHiIiIrDNGz8/PD+PGjcN7772XE09HRJSvvd6+kvq5dP9lHIuIsXZziIiIKD8XY4mOjlYLERFlT7Xi/ugcVhQ6HTBq4UHEJSZzlxIREVHudt385ptvTO7rdDpcuXIFc+bMUZOpExFR9o3qWBkbT0Zh34VbeHvxQXz5ZA1OpE5ERES5F+h99dVXJvednZ0RFBSEAQMGYPTo0bA1Fy5cQL9+/XD16lVVMEa6lz755JPqsVu3bqFt27ZISkpSy4gRIzB48GBrN5mISFXhnNq3Ngb+vBOL9lxC5RBfDGlejnuGiIiIcifQkwqb9kSCu0mTJqFmzZqIiIhAnTp10KlTJ3h7e8PX1xcbNmyAl5cX7ty5g2rVqqFHjx4oXLiwtZtNRIRmFYLwbudHMO6vI/j032MIK14Qjcrx84mIiIhyeYzexYsX1WLLihYtqoI8ERISgsDAQNy4cUPdd3FxUUGeiI+PV91QZSEishUDG4fiidolkKIDhv+6F1dj4qzdJCIiInLEQC8lJUVNmu7v74/SpUurpWDBgvjwww/VY5klGbUuXbqgWLFiavzJkiVL0mwzdepUhIaGwtPTEw0aNMCOHTuQFbt370ZycjJKlixpWCfdN2vUqIESJUrgjTfeUIEgEZGtkM/Fj7pVU103r8XGY9i8vUhKzvxnLREREeUvmQ703nnnHUyZMgWffvqpmlNPlk8++QSTJ0/O0vQK0mVSAi0J5iyZP38+Ro4cibFjx2LPnj1q2w4dOqgxd3qSsZNul+bL5cuXDdtIFq9///744YcfTJ5fgtT9+/erLqnz5s1DZGRkpl8DEVFuKuDugm/71lYTqu84ewOL917iDiciIqIHctJlsq+iZN6mTZuGrl27mqxfunQpXn75ZVy6dClb31wvXrwY3bp1M6yTDF69evVUcCkkaygZueHDh2PUqFEZel7pltmuXTtVaEUKs6RH2t+6dWv07NnT4nPIYjxJvLTj5s2bah5Ba5P9EhUVpQrjSIEcIp5Hjuf7DWfw2fLjKBPojZWvNoOLsxNsET+PiOcQ2QJ+FpEjnkcSgxQqVEhNa/ewGCTTxVgkM1a5cuU062WdfuxbTklISFDdLY2recoOlkqZW7duzdBzSBw7cOBAFcCZB3mSvZMxelKURXaWdCN96aWXLD7P+PHj1aTw5uTAx8XF2cRJKK9BXq8tnIRkn3ge2bb2ZQvgOw8XhF+7g982H0e7SgGwRTyPiOcQ2QJ+FpEjnke3b9/O8LaZDvSk66Rk18zn05N18lhOunbtmhpTV6RIEZP1cv/YsWMZeo7Nmzer7p/Vq1c3jP+TOf/CwsJw7tw5DBkyxFCERbKEst4SCTalC6l5Rk+ie1vJ6ElG1Fa+bSD7xPPI9j3bNBaT1pzCnD1R6N2kEpxtMKvH84h4DpEt4GcROeJ5JDVLci3QmzBhAjp37ozVq1ejUaNGap1k12S+un/++Qe2pmnTpukWialfvz727duXoefx8PBQizk54LZw0IWchLbUHrJPPI9s26AmZfHjprM4ERmL5Uci8Vj1YrBFPI+I5xDZAn4WkaOdR5lpQ6Zb26JFC5w4cQLdu3dXFStlkbnnjh8/jmbNmiEnSQVMmQLBvECK3JepEoiI8ht/Lzc15YJ4648DOHQpGonJKfhpUzjG/XUY9xKSrd1EIiIisgEZzuidOXMGZcqUURGtFGT5+OOPc7dlANzd3dUE52vWrDEUaJHsnNwfNmxYrv99IiJbNLxNeew5fxNbTl/HwJ93ooifBw5fjlGP+Xq6YWS7itZuIhEREVlZhjN6FSpUUIVH9Hr16pUjUxHExsaq7pP6LpQyzYHcPn/+vLov4+KmT5+OWbNm4ejRo6pYikzJMGjQoGz/bSIie+Th6oLv+9XBI0X91Nx6EuQVcHNRj32//jQu3bpn7SYSERGRvQR65rMwyHg8Cbiya9euXahVq5Za9IGd3B4zZowhoPziiy/UfZkvT4LA5cuXpynQQkSUn0jmbtagemhSvjB61CqO9W+2RP0yAYhPSsGE5RkrVkVERESOK9PFWHJay5Yt0wSR5qSbJrtqEhGZCvbzxNznGxruv9e5CrpO3YSl+y5jQONQ1C5ViLuMiIgon8pwRk/G5slivo6IiGxDWAl/PFG7hKELJxEREeVfGc7o6Sce108xIJOEv/jii/D29jbZbtGiRTnfSiIiypBnm5TBH7svYu3xKMTGJ8HHw+odN4iIiMgKMnwFMGDAAJP7zzzzTG60h4iIsuGRor4oE+iN8Gt3sOZoJB6vWZz7k4iIKB/KcKD3888/525LiIgo26RLfeewopiy9hSWHbjCQI+IiCifsv707kRElKM6hRVVP9ed0LpvEhERUf7DQI+IyAG7b5YN9EZCUgqWH4rAd+tOo++P23A6KtbaTSMiIqI8wkCPiMgBu2/qs3pv/rEfny0/hs2nrmPiyhPWbhoRERHlEQZ6REQOqHN1LdBL0QH+BdzU7RWHIxAZE2fllhEREVFeYKBHROSAKof44s1HK+GFFmWx7vWWqBdaCEkpOvy244K1m0ZERER5gIEeEZGDdt98uWV5jO74CAp5u+OZhqXV+nk7ziExOcXazSMiIqJcxpl0iYjygUerhSDQxx2RMfH4bcd5+Hq64cadBPRpUAqebi7Wbh4RERHlMAZ6RET5gIerC3rVK4mpa0/jvaWHDevP37iL97tWtWrbiIiIKOex6yYRUT4h3Tf9PF3h6uyEasX91LqZW85i+5nr1m4aERER5TBm9IiI8omi/gWw7e026raXuytGLTyA33ZewBt/HMCfw5rgWMRtXL0dj07VQuDqwu8BiYiI7BkDPSKifEQCPL13Oj+CDSeiVPfNWh+ugk6nrd/WoBQ+7lZNFXQhIiIi+8SvbImI8ikpyPLpE9Uh8ZwEeYE+Hur2vO3nMWfbOWs3j4iIiLKBGT0ionysecUgLB/RHNJTs1yQD77fcAaf/nsM4/46grKBPmhaIdDaTSQiIqIsYEaPiCifqxTii/LBvqqr5gvNy6JHreJITtHh1fn7cDchydrNIyIioixgoEdERAYS7H3SIwylArxwLTYes7awCycREZE9YqBHREQmZAL1V9pUULe/33Aat+MSuYeIiIjsDAM9IiJKo1vNYigb6I1bdxPx8+az3ENERER2hoEeERGlIfPovdquoro9feMZRN9lVo+IiMieMNAjIiKLHgsrikpFfHE7Lgk/bjrDvURERGRHGOgREZHl/yCcnfBaO22s3oxN4bhxJ4F7ioiIyE4w0CMionR1qBqCqsX8cCchGd+vP809RUREZCcY6BER0QOnW/hfe22s3qytZ3H51j1M+e8kan2wEm0nrsc7iw/in4NXcC8hmXuRiIjIhrhauwFERGTbWlUKRs2SBbHvwi20m7heZffEzbuJOHU1FnO3n4ePhys6hYVgcLOyKBfkbe0mExER5XvM6BERUYazehLkFfJywxdP1sD3/epgUJNQlChUALHxSfh910X0nLaV8+4RERHZAGb0iIjooZqWD8SINhVw826Cmkw90MfDMIbvvc5VsOvcTbz5x36cvX5XBXxdKjKrR0REZE3M6BERUYayeq+1q4gPHq9mCPIM/5E4O6F+mQC80KKcuj9zyzkkpei4V4mIiKyIgR4REeWI7rWKI8DbHZdu3cOG07e4V4mIiKzI4QO9CxcuoGXLlqhSpQqqV6+OBQsWGB47fvw4atasaVgKFCiAJUuWWLW9RET2ytPNBc80LK1u/7on0trNISIiytccfoyeq6srJk2apAK5iIgI1KlTB506dYK3tzcqVaqEffv2qe1iY2MRGhqKdu3aWbvJRER2q1/D0pi27hQOXrmDPedvom5oYWs3iYiIKF9y+Ixe0aJFVZAnQkJCEBgYiBs3bqTZ7s8//0SbNm1UAEhERFkT5OuBx2sWV7dHLTyIiOg47koiIqL8GOht2LABXbp0QbFixdRgf0tdJ6dOnaqybZ6enmjQoAF27NiRpb+1e/duJCcno2TJkmke+/3339GrV68sPS8REaV6pXV5BPm44VTUHTz5/Racu36Hu4eIiCi/BXp37txBjRo1VDBnyfz58zFy5EiMHTsWe/bsUdt26NABV69eNWwjGbtq1aqlWS5fvmzYRrJ4/fv3xw8//JDmb8TExGDLli2qSycREWVP8UIF8P2TlVA6wAsXbtxTc+tduHGXu5WIiCg/jdHr2LGjWtIzceJEDB48GIMGDVL3p02bhmXLlmHGjBkYNWqUWqcfZ5ee+Ph4dOvWTW3fuHHjNI8vXboU7du3VxnDBz2HLMbBoUhJSVGLtUkbdDqdTbSF7BfPI8qp86ionzt+G1wfA2ftxvGI23jzjwP45bl6qucGET+LKC/w/zRyxPMoM+2weqD3IAkJCaq75ejRow3rnJ2d0bZtW2zdujVDzyEHZuDAgWjdujX69etncRvptjlkyJAHPs/48eMxbty4NOujoqIQFxdnEwc9OjpavV7ZR0Q8j8jan0f+/jp8/Ghp9P3lMLaeuY6f1h5F12qBPDCU4XOI/6dRTnwW8TwiRzqPbt++7RiB3rVr19SYuiJFipisl/vHjh3L0HNs3rxZdf+UqRX04//mzJmDsLAwdVsOnIz5W7hw4QOfR4JN6UJqnNGTsX5BQUHw8/ODLZyE8k25tMcWTkKyTzyPKKfPo5AQZ/yvfRI++ecYJm+6hC51y6KIX/q9J4j4WUQ5hf+nkSOeRw/qgWhXgV5OaNq06QNTnP7+/oiMfPh8Tx4eHmoxJwfcFg66kJPQltpD9onnEeX0efRc07JYdjAC+y/cwluLDuGLntURzGCP+FlEeYD/p5GjnUeZaYP1W/sAMhWCi4tLmkBM7stUCUREZPtcnJ0w4YnqcHNxwoYTUWjy2X94bf4+VuMkIiLKRTYd6Lm7u6sJztesWWNYJ9k5ud+oUSOrto2IiDKuUogvZg6qj7qlCyExWYfFey+h3087kJRsG4PbiYiIHI3Vu27Gxsbi1KlThvvh4eGqimZAQABKlSqlxsUNGDAAdevWRf369TFp0iQ1JYO+CicREdmHJuUD1SJdOAfN3InzN+5ixeFIdK5e1NpNIyIicjhWD/R27dqFVq1aGe7rC55IcDdz5kw1iblUthwzZgwiIiLUnHnLly9PU6CFiIjsQ42SBfFMw9L4Zs1JTN94Bp3CQjjtAhERkaMFei1btlTlSh9k2LBhaiEiIsfQr2FpTFt/Gvsu3MKe8zdRp3SAtZtERETkUGx6jB4RETmmIF8PdK9ZXN3+cWO4tZtDRETkcBjoERGRVTzXrIz6ueJwBM5fv8ujQERElIMY6BERkVVULOKLFhWDkKIDBs7cgaX7LiFZ7hAREVG2MdAjIiKreaNDJfgXcMOZqDsY8ds+tPtqPU5dvc0jQkRElE0M9IiIyGqqFffHprda4fX2FVHQSwv4Xp67B3GJyTwqRERE2cBAj4iIrMrX0w3DWlfAqtdaqCItJyJj8dGyIzwqRERE2cBAj4iIbIIEeV8+WUPd/mXbeVWkxdyFG3cRGRNnhdYRERHZF6vPo0dERKTXvGIQhjQvix82nMEbC/bj0KVodKgagrsJyfhhw2msPnoVvh6uWPRyY1Qo4ssdR0RElA4GekREZFNeb18JO8JvqMnUJ/93Si3GbscnYfDsXVg6tCn8vdys1k4iIiJbxq6bRERkU9xdnfHr4Ib4qlcNPFo1BJ5uzmpd7/olsfClxihRqADOXr+LYb/uQVJyirWbS0REZJOY0SMiIptTwN0F3WuVUIu+Aqenm4v6+UO/unjiuy3YePIaPlp2FGO7VIGTk5OVW0xERGRbmNEjIiKbJgGePsgTVYr5YeJTWtGWmVvOYuyfh5HCidaJiIhMMNAjIiK70zGsKD7qVg2SyJu99Rz+t2A/EtmNk4iIyICBHhER2aVnGpbGpF414ershMV7L+HV3/ZBp9NZu1lEREQ2gYEeERHZrcdrFscP/evA3cUZyw5ewU+bwq3dJCIiIpvAQI+IiOxa68pF8F6XKur2p/8ew57zN63dJCIiIqtjoEdERHbvmQal8Fj1okhK0WH4vL24dTfB2k0iIiKyKgZ6RERk92R6hfE9whBa2AuXbt1Dj++2YNr60+o2ERFRfsRAj4iIHIKvpxum9q0NX09XnIm6o7pxNvn0PwyduwfR9xKt3TwiIqI8xUCPiIgcRtVi/tjwRit80j0MDcsGqOkXpEhLl8mbcOhStLWbR0RElGcY6BERkUMp5O2OPg1K4bchjfDn0KYoUagAzt+4q7pzLtpz0drNIyIiyhMM9IiIyGGFlfDH38Obok3lYCQkpeD1Bfux/kSUtZtFRESU6xjoERGRQyvo5Y7p/eviyTolkKIDhs3bg1NXY63dLCIiolzFQI+IiByes7MTPupeDfVCC+F2XBKen7WTUzAQEZFDY6BHRET5goerC6Y9U0eN2Tt7/S6enLYV87afR2x8krWbRkRElOMY6BERUb5R2McDPw2oBz9PV5y8Gou3Fx9E/Y9Xq6kYUqRfJxERkYNgoEdERPlKpRBfrHujFd7p9AjKBnnjbkKymlz9i5XHrd00IiKiHMNAj4iI8p0Ab3cMbl4Wa0a2wPgeYWrdt+tOq66cREREjoCBHhER5VtOTk7oXb8UXm1bQd1/b+khrD1+1drNIiIiyjYGekRElO+NaFMBPeuUQHKKDsPm7sGFG3fz/T4hIiL7xkCPiIjyPcnsfdI9DHVLF8KdhGS8/+dh6HQszkJERPbL4QO9W7duoW7duqhZsyaqVauG6dOnmzzevXt3FCpUCD179rRaG4mIyPrcXZ3x6RNhcHNxwppjV7HicIS1m0RERJRlDh/o+fr6YsOGDdi3bx+2b9+OTz75BNevXzc8PmLECMyePduqbSQiIttQPtgXLzQvp26//+cRzrFHRER2y+EDPRcXF3h5eanb8fHxqiuOcXecli1bqmCQiIhIDGtdHqUCvBARE4eJK09wpxARkV2yeqAn2bYuXbqgWLFiaozEkiVL0mwzdepUhIaGwtPTEw0aNMCOHTsy3X2zRo0aKFGiBN544w0EBgbm4CsgIiJH4unmgg+7VVO3Z24Jx7frTiEpOcXazSIiIrKvQO/OnTsqCJNgzpL58+dj5MiRGDt2LPbs2aO27dChA65eTS1/rR9/Z75cvnxZPV6wYEHs378f4eHhmDdvHiIjI/Ps9RERkf1pUTFITbuQogMmLD+OJ77bgpORt63dLCIiogxzhZV17NhRLemZOHEiBg8ejEGDBqn706ZNw7JlyzBjxgyMGjVKrZPxdxlRpEgRFShu3Lgx08VXpNunLHoxMTHqZ0pKilqsTdogXVJtoS1kv3geEc+jVB89XgW1S/njg7+PYv/FaHT+ZiN+HdwAtUoV4onCzyKyA/w/jRzxPMpMO6we6D1IQkICdu/ejdGjRxvWOTs7o23btti6dWuGnkOydzJGT8bhRUdHq66iL730UqbbMn78eIwbNy7N+qioKMTFxcEWDrq8PjkRZR8R8Twifh5lX7MS7pj7zCMY+2849l6KxbdrjuPjzmV5cuUy/p9GPI/IVqTY2DX27du3HSPQu3btGpKTk1UmzpjcP3bsWIae49y5cxgyZIihCMvw4cMRFhZmeFyCRunWKV1IZQzfggUL0KhRozTPI8GmdCE1zuiVLFkSQUFB8PPzgy2chDLGUdpjCych2SeeR8TzKK3gYGBcN190nboFG8Oj4elbCH4F3Hiy8LOIbBz/TyNHPI+kZolDBHo5oX79+g/s2rl69eoMPY+Hh4dazMkBt4WDLuQktKX2kH3ieUQ8j9IKK1EQFYv44ERkLJYfjsTT9UvxROFnEdkB/p9GjnYeZaYN1m/tA0h1TJkewbx4itwPCQmxWruIiCj//SffvVYJdXvR3kvWbg4REZF9B3ru7u6oU6cO1qxZY5I+lfuWulcSERHllm61ZBogYEf4DVy4cZc7moiIbJrVA73Y2FjVtVLfvVKmQJDb58+fV/dlXNz06dMxa9YsHD16VBVSkfF0+iqcREREeaGofwE0KltY3V66j1k9IiKybVYfo7dr1y60atXKcF9f8GTAgAGYOXMmevXqpSpbjhkzBhEREWrOvOXLl6cp0EJERJTbutcqji2nr6vum0NblVddOomIiGyR1QO9li1bqmqYDzJs2DC1EBERWVPHsKJ4b+khnIm6g582hSMxWYfLt+6hajE/9KhdAu6uVu8oQ0REZBuBHhERkb3w8XBF+yoh+HP/ZXy07KjJY1PWnsIrbSqgR63icHVhwEdERNbFQI+IiCgTXmpZDievxsLL3QWlArwQ4O2uAr+LN+/hzT8O4MeNZ/DzoPooXrAA9ysREVkNAz0iIqJMeKSoH/4d0cxk3evtK+GXbefw3frTaq69J7/bgrmDG6JMoDf3LRERWQX7lhAREWVTAXcXDG5eFsteaYqyQd64HB2HJ6dtxbGIGO5bIiKyCmb0iIiIcnAKht9faIR+P+3A0Ssx6D51C4J8PZCcohUde7lVOfRtUJr7m4iIch0zekT0//buAziq6u3j+LMhIQFSISYhQqSIBCnShBdEUUGKDENRVEREQBkE/oCOiGVAR+mIOoACNtCh8yogmReVoYrSe4mAihBKyB8hJHQk953nzOzObkg3sDeX72dm2Xaze3M5c3N/9znnXADFKDo0WOa/9D/SMCFSLl27LkfPXJTj6ZfMbVRSsqRlXmZ7AwBuOip6AAAUs4iyQbKof3PZc/ycZFmWlHK55J3v98nOlHSZvPKQjOpcl20OALipqOgBAHATlApwSf3KkdIwIUruqxwpb7ZPNK/P25wif/73PNscAHBTEfQAALgFmlarIK0SY8x4vQ9+OsA2BwDcVAQ9AABukdfbJYrLJfJ/e1Jlx9GzbHcAwE3DGD0AAG6RmnFh8kTDSvK/247Jf+btkJqxYWz7HFhiyZUrVyU4+Ki4xMU2QpHQjlBc7ahuTLAMaRcjJQ1BDwCAW+jVx+6RpN0n5NjZS+YGALC3EFd5KYkIegAA3ELxkWXku5cfkL3Hz7Hdc5FlZUlmZqaEhYVJgItRJiga2hGKqx1FBFyVkoigBwDALXZvfLi5IWdZWVmSlpYmMTExEhBA0EPR0I5QnO2oJGLvCQAAAAAOQ9ADAAAAAIch6AEAAACAwxD0AAAAAMBhCHoAAAAA4DAEPQAAAABwGIIeAAAAADgMQQ8AAAAAHIagBwAAAAAOQ9ADAAAAAIch6AEAAACAwxD0AAAAAMBhCHoAAAAA4DAEPQAAAABwGIIeAAAAADhMoL9XoKSyLMvcZ2RkiB1kZWVJZmamhISESEAA+R20I7A/QsnF3zTQjmAXWTY7xnZnD3cWyQtBr4j0P1xVrly5qB8BAAAAAEXKIhEREXku47IKEgeRY7o/ceKEhIWFicvlskW619CZkpIi4eHh/l4dlFC0I9COYAfsi0A7gl1k2OwYW6Obhrz4+Ph8K4xU9IpIN2ylSpXEbrQB2qERomSjHYF2BDtgXwTaEewi3EbH2PlV8tz839EUAAAAAFCsCHoAAAAA4DAEPYcIDg6Wd955x9wDtCP4E/sj0IZgB+yLcLu3IyZjAQAAAACHoaIHAAAAAA5D0AMAAAAAhyHoAQAAAIDDEPQc4pNPPpEqVapISEiING3aVDZv3uzvVYJNjR07Vu6//34JCwuTmJgY6dy5sxw4cMBnmcuXL8vAgQOlQoUKEhoaKk888YScOnXKb+sM+xs3bpy4XC4ZOnSo5zXaEfJz/Phxee6558y+pkyZMlK3bl3ZunWrz4WBR44cKRUrVjTvt27dWg4dOsSGhcf169dlxIgRUrVqVdNGqlevLu+//75pO7Qj5GbdunXSsWNHc9Fx/du1ZMkSn/cLsu85c+aM9OjRw1xbLzIyUvr27Svnz58XOyHoOcCCBQvk1VdfNTMCbd++Xe677z5p27atpKWl+XvVYENr1641IW7jxo2yYsUKuXbtmrRp00YuXLjgWeaVV16RZcuWyaJFi8zyJ06ckK5du/p1vWFfW7ZskRkzZki9evV8XqcdIS9nz56VBx54QIKCgmT58uWyf/9+mTRpkkRFRXmWmTBhgkyePFmmT58umzZtknLlypm/b3oSAVDjx4+XadOmydSpUyU5Odk813YzZcoU2hFypcc8eryshZKcFGTfoyFv37595lgqKSnJhMd+/fqJrVgo8Zo0aWINHDjQ8/z69etWfHy8NXbsWL+uF0qGtLQ0Pe1prV271jxPT0+3goKCrEWLFnmWSU5ONsts2LDBj2sKO8rMzLRq1KhhrVixwmrZsqU1ZMgQ8zrtCPkZPny41aJFi1zfz8rKsuLi4qyJEyd6XtN2FRwcbM2bN48NDKNDhw5Wnz59fLZG165drR49etCOUCB6fLN48eJC7Xv2799vfm7Lli2eZZYvX265XC7r+PHjll1Q0Svhrl69Ktu2bTMlZbeAgADzfMOGDX5dN5QM586dM/fly5c399qetMrn3aYSExMlISGBNoUbaHW4Q4cOPu2FdoSC+P7776Vx48bSrVs30428QYMG8vnnn3veP3z4sKSmpvq0rYiICDM8gb9vcGvevLmsXLlSDh48aJ7v2rVL1q9fL+3bt6cdoUgKsu/Re+2uqfswN11ej8G1AmgXgf5eAfw7p0+fNv3TY2NjfV7X57/99hubF3nKysoyY6q0+1SdOnXMa7pzK126tNmBZW9T+h7gNn/+fNNdXLtuZkc7Qn7+/PNP0+VOhx689dZbph0NHjzY7H969erl2d/k9PeNfRHc3njjDcnIyDAnJEuVKmWOiUaPHm261bn3RbQjFEZB2oze6wkqb4GBgeakuZ32TwQ94Davxuzdu9ec/QQKIyUlRYYMGWLGJugkUEBRTjTp2fAxY8aY51rR0/2RjonRoAcUxMKFC2XOnDkyd+5cqV27tuzcudOcwNRJNmhHuN3RdbOEi46ONmewss+IqM/j4uL8tl6wv0GDBpnBw6tXr5ZKlSp5Xtd2o12C09PTfZanTcGbdvHVCZ8aNmxozmLqTSfu0cHr+ljPfNKOkBedze7ee+/1ea1WrVpy9OhRz77Ive9hX4TcDBs2zFT1nnnmGTNra8+ePc1EUDrDNO0IRVGQfY/eZ5/08J9//jEzcdrp+JugV8JpF5dGjRqZ/uneZ0n1ebNmzfy6brAnHXesIW/x4sWyatUqMyW1N21POgued5vSyy/owRdtCm6tWrWSPXv2mLPn7ptWZ7S7lPsx7Qh50S7j2S/touOs7rrrLvNY9016wOS9L9Iuejr+hX0R3C5evGjGRXnTE+B6LEQ7QlEUZN+j93pCXE96uukxlbY7HctnG/6eDQb/3vz5881MQLNmzTKzAPXr18+KjIy0UlNT2by4wcsvv2xFRERYa9assU6ePOm5Xbx40bNM//79rYSEBGvVqlXW1q1brWbNmpkbkBfvWTdpR8jP5s2brcDAQGv06NHWoUOHrDlz5lhly5a1Zs+e7Vlm3Lhx5u/Z0qVLrd27d1udOnWyqlatal26dIkNDKNXr17WnXfeaSUlJVmHDx+2vvvuOys6Otp6/fXXaUfIc8boHTt2mJvGoQ8//NA8PnLkSIH3Pe3atbMaNGhgbdq0yVq/fr2Zgbp79+6WnRD0HGLKlCnmwLx06dLmcgsbN2709yrBpnSHltNt5syZnmV0RzZgwAArKirKHHh16dLFhEGgMEGPdoT8LFu2zKpTp445WZmYmGh99tlnPu/rNOcjRoywYmNjzTKtWrWyDhw4wIaFR0ZGhtnv6DFQSEiIVa1aNevtt9+2rly5QjtCrlavXp3jsZCeOCjovufvv/82wS40NNQKDw+3evfubQKknbj0H39XFQEAAAAAxYcxegAAAADgMAQ9AAAAAHAYgh4AAAAAOAxBDwAAAAAchqAHAAAAAA5D0AMAAAAAhyHoAQAAAIDDEPQAAAAAwGEIegAAONTVq1fl7rvvll9//bVYP/eHH36Q+vXrS1ZWVrF+LgCg+BD0AAAlwgsvvCAul+uG2++//+7vVbOt6dOnS9WqVaV58+ae13SbLVmyJMft27lz5wJ9brt27SQoKEjmzJlTrOsLACg+BD0AQImhAePkyZM+Nw0yOVWybneWZcnUqVOlb9++N+XzNRhOnjz5pnw2AODfI+gBAEqM4OBgiYuL87mVKlVKHn74YRk0aJAMHTpUoqOjpW3btmb5vXv3Svv27SU0NFRiY2OlZ8+ecvr0ac/nXbhwQZ5//nnzfsWKFWXSpEnms/Rz8qqARUZGyqxZszzPU1JS5KmnnjKvly9fXjp16iR//fXXDdWyDz74wHxPhQoVZODAgXLt2jXPMleuXJHhw4dL5cqVze+pXS6//PJLE9j0sf6st507d+ZZ0dy2bZv88ccf0qFDh0JvZ133nKqnum3cOnbsKFu3bjXfAQCwH4IeAMARvv76ayldurT88ssvpstienq6PProo9KgQQMTSHRc2alTp0wgcxs2bJisXbtWli5dKj/99JOsWbNGtm/fXqjv1bCmwTIsLEx+/vln8/0aHLX66F1ZXL16tQlFeq/rqkHROyxq4Jw3b56pkiUnJ8uMGTPM52jA6tOnj8ycOdPne/X5Qw89ZEJgTnRd7rnnHrNehaVh07tqumPHDhNO9fvcEhISTHjW7wEA2E+gv1cAAICCSkpKMuHHTat1ixYtMo9r1KghEyZM8Lw3atQoE/LGjBnjee2rr74yIebgwYMSHx9vKmazZ8+WVq1amfc1gFWqVKlQ/yELFiwwk5J88cUXJpS5Q5hW9zQ4tmnTxrwWFRVlulJqBTIxMdFU2lauXCkvvfSSWZ+FCxfKihUrpHXr1mb5atWq+VQER44cKZs3b5YmTZqYcDl37twbqnzejhw5Yn7HnHTv3t2shzetKLqrf/qeVkvV5cuXTTWyWbNm8u677/r8jH6+fg8AwH4IegCAEuORRx6RadOmeZ6XK1fO87hRo0Y+y+7atctUz7yDoZtW1i5dumQqbk2bNvW8rt0ua9asWah10u/R7pPZK2cakLy7NdauXdsnXGkXzj179ni6Yep7LVu2zPE7NFBpCNOgqkFv2bJlJph169Yt1/XS3y8kJCTH9z766CNPoHTTbqPXr1+/YVmtJmZmZpoQGhDg2xGoTJkycvHixVzXAQDgPwQ9AECJocEut66K3qFPnT9/3owjGz9+/A3Lasgq6GydWqXTcXLevMfW6fdoyMxpBso77rjD81hnqcz+ue7LE2hgys+LL75oxhhqSNOK4dNPPy1ly5bNdXkdq+gOktlptS77dtSgqt1dvWlV9McffzSVxJy6gJ45c8bndwQA2AdBDwDgSA0bNpRvv/1WqlSpIoGBN/65q169uglfmzZtMuPN1NmzZ003Su/KmgYZHafmdujQIZ8qln6Pdt+MiYmR8PDwIq1r3bp1TejT8YLZK21ujz/+uAmzWtHU8Ybr1q3L8zO126ouqyHV3aW0MHTbvffee7J8+XKzrbJzVyz1ewAA9sNkLAAAR9JZLbXipOPRtmzZYkKJVqd69+5tuihql0699IBOyLJq1SozQ6eOhcvePVEndNGxdTohiU7q0r9/f5/qXI8ePUz1TGfa1IlJDh8+bMbmDR48WI4dO1agddUw2qtXL9NNUmf4dH+Gjttz066dun5vvvmmGY+oY+by6+aq1cZ9+/YVetvpttDJYbQ7p3Y5TU1NNTfdnm4bN240s4Pmtx4AAP8g6AEAHEnHtekMmBrqdEIUrZrpZRN0khR3mJs4caI8+OCDpounVtJatGhxw1g/veSCTuCiyz377LPy2muv+XSZ1MdaXdOqYNeuXaVWrVomQGrFqzAVPq2+PfnkkzJgwAAzWYtO0qKXf/Cmn6vjCjWs5kdnyezSpUuRLmqugVarltp1U7u5um/6+7npDKEacvPqPgoA8B+XlX3gAQAAtzG9Vlz9+vXl448/FrvRiqHOEKrX7dNLG+Rn9+7d8thjj5lqZk6T0hSVXotQJ63RQJjTBesBAP5HRQ8AAJvTGTa1G6he3kBn2ixIyFP16tUzk9FoV9DipBdU//TTTwl5AGBjTMYCAIDNaTdJ7baplcZvvvmmUD+r4/qKW+PGjc0NAGBfdN0EAAAAAIeh6yYAAAAAOAxBDwAAAAAchqAHAAAAAA5D0AMAAAAAhyHoAQAAAIDDEPQAAAAAwGEIegAAAADgMAQ9AAAAAHAYgh4AAAAAiLP8P42468WGjqY+AAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAu0AAAGsCAYAAABpUpkzAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAALkFJREFUeJzt3QuYXHWZJ/63L+luQm7EQAIhELmJGSSRhIQ4i4wSzcyyjjjOTmTdSZ7IsDuDuGjW/c9Eh0Rg3DCCbBzNQxyUcVbHIcOs6OpgFDKgi0ajiayIgMCKCZfcxNxDOunu/3NOUp2q7upOne7q6uquz+d5yq46daq6qJNuv/X2+3tPXUdHR0cAAABVq36wXwAAANA7oR0AAKqc0A4AAFVOaAcAgContAMAQJUT2gEAoMoJ7QAAUOUaYwhob2+Pl156KUaPHh11dXWD/XIAAKDfktMl7d27N84444yor68f+qE9CexTpkwZ7JcBAABlt2XLljjzzDOHfmhPKuy5/6AxY8YM9ssBAIB+27NnT1qYzmXdIR/acy0xSWAX2gEAGE5Kaf+2EBUAAKqc0A4AAFVOaAcAgContAMAQJUT2gEAoMoJ7QAAUOWEdgAAqHJCOwAAVDmhHQAAqpzQDgAAVU5oBwCAKie0AwBAlRPaAQCgygnt/bD74OF4effB8h0NAAAoQmjvh+k3fzvmrvjX2LnvUH+eBgAAeiW0l8ETL+0px9MAAEBRQnsZdHR0lONpAACgKKEdAACqnNBeBursAAAMJKEdAACqnNAOAABVTmgHAIAqJ7QDAECVE9rLwUpUAAAGkNAOAABVTmgvgw6ldgAABpDQDgAAVU5oBwCAKie0AwBAlRPay6DD9BgAAAaQ0A4AAFVOaAcAgContJeB9hgAAAaS0A4AAFVOaAcAgContJeB4TEAAFRdaF+1alVMnTo1WlpaYs6cObFhw4Ye9/3CF74QdXV1BZfkccNJ3WC/AAAAhrXMoX3NmjWxZMmSWL58eWzatCmmT58e8+fPj+3bt/f4mDFjxsTLL7/cefnVr34Vw4lKOwAAVRXa77zzzrjuuuti8eLFMW3atFi9enWMHDky7rnnnh4fk1TXJ02a1HmZOHFir9/j0KFDsWfPnoILAADUqkyhvbW1NTZu3Bjz5s07/gT19ent9evX9/i4ffv2xdlnnx1TpkyJd77znfHEE0/0+n1WrFgRY8eO7bwkjwMAgFqVKbTv3Lkz2traulXKk9tbt24t+pjXve51aRX+a1/7WnzpS1+K9vb2eNOb3hQvvPBCj99n6dKlsXv37s7Lli1bsrxMAAAYVhoH+hvMnTs3veQkgf31r399fPazn41bb7216GOam5vTy1BhISoAAFVTaZ8wYUI0NDTEtm3bCrYnt5Ne9VKMGDEi3vjGN8azzz4bw4WFqAAAVE1ob2pqipkzZ8a6des6tyXtLsnt/Gp6b5L2mscffzxOP/307K8WAABqUOb2mGTc46JFi2LWrFkxe/bsWLlyZezfvz+dJpNYuHBhTJ48OV1Mmrjlllvisssui/POOy927doVt99+ezry8U/+5E/K/18DAADDUObQvmDBgtixY0csW7YsXXw6Y8aMWLt2befi1M2bN6cTZXJ+85vfpCMik31POeWUtFL//e9/Px0XCQAAnFhdR0dH1bdkJ3Pak9GPySSZ5ERN1WLqX/xL+vXuhbPibdN6nz0PAAB9zbiZT64EAABUltAOAABVTmgHAIAqJ7T30RBYCgAAwDAhtAMAQJUT2vtIoR0AgEoR2gEAoMoJ7X2kox0AgEoR2gEAoMoJ7QAAUOWE9j4y8hEAgEoR2gEAoMoJ7X1kISoAAJUitAMAQJUT2vvIyZUAAKgUoR0AAKqc0A4AAFVOaO+jDktRAQCoEKEdAACqnNDeRxaiAgBQKUI7AABUOaEdAACqnNAOAABVTmgHAIAqJ7T3kYWoAABUitAOAABVTmjvIydXAgCgUoR2AACockJ7GXRocAcAYAAJ7X0kpwMAUClCexnU1dWV42kAAKAoob2POvr6QAAAyEhoBwCAKie095HFpwAAVIrQDgAAVU5oLwNVdwAABpLQ3kcWogIAUClCOwAAVDmhvY+cXAkAgEoR2gEAoMoJ7X2lqR0AgAoR2sugrq6uHE8DAABFCe1lYOQjAAADSWjvow79MQAAVIjQDgAAVU5o7yMjHwEAqBShHQAAqpzQ3kcmPgIAUClCOwAAVDmhHQAAqpzQXobZ7P/pixvNagcAYMAI7WXy4q6D5XoqAAAoILSXaSGqEZAAAAwUoR0AAIZjaF+1alVMnTo1WlpaYs6cObFhw4aSHnfvvfdGXV1dXH311THUda2s19UN1isBAGC4yxza16xZE0uWLInly5fHpk2bYvr06TF//vzYvn17r497/vnn48Mf/nBcfvnlMRwlH0YAAKAqQvudd94Z1113XSxevDimTZsWq1evjpEjR8Y999zT42Pa2trive99b9x8881xzjnnxFDX3t4RP395z2C/DAAAakSm0N7a2hobN26MefPmHX+C+vr09vr163t83C233BKnnXZaXHvttSV9n0OHDsWePXsKLtXkru88F4vuKWwJUmcHAKAqQvvOnTvTqvnEiRMLtie3t27dWvQxjz76aHz+85+Pu+++u+Tvs2LFihg7dmznZcqUKVFN7nrkuW7bdMcAADAkp8fs3bs3/viP/zgN7BMmTCj5cUuXLo3du3d3XrZs2RLVpKFeXR0AgMppzLJzErwbGhpi27ZtBduT25MmTeq2/3PPPZcuQH3HO97Rua29vf3oN25sjKeffjrOPffcbo9rbm5OL9WqsUhor9MgAwBANVTam5qaYubMmbFu3bqCEJ7cnjt3brf9L7zwwnj88cfjscce67z8/u//frzlLW9Jr1db20t/Ku3aYwAAqIpKeyIZ97ho0aKYNWtWzJ49O1auXBn79+9Pp8kkFi5cGJMnT0770pM57hdddFHB48eNG5d+7bp9KNEeAwBAVYf2BQsWxI4dO2LZsmXp4tMZM2bE2rVrOxenbt68OZ0oM5zVFymr63IHAGCg1HV0dD23Z/VJRj4mU2SSRaljxowZ7JcTb/7Ew7H5lQMF2374kStj4piWQXtNAAAMLVky7vAuiVewPab6P/oAADBUCe19edP0wgAAUEFCex80FunZ7wildgAABobQ3pc3TXsMAAAVJLT3QYN3DQCAChI/yzTyUXMMAAADRWgvV2g3PgYAgAEitPdBo/ExAABUkNDelzfNQlQAACpIaO+DhiLtMQAAMFCE9jKdERUAAAaK0N4HxQrt1qECADBQhPY+qCs68tHQRwAABobQXiYq7QAADBShHQAAqpzQXiaaYwAAGChCex8UO/upM6ICADBQhHYAAKhyQnuZaI8BAGCgCO1lYnoMAAADRWgHAIAqJ7SXjQYZAAAGhtBeJtpjAAAYKEJ7HwjoAABUktBeJppjAAAYKEJ7mai+AwAwUIR2AACockJ7H3QUaYYptg0AAMpBaC8T7TEAAAwUoR0AAKqc0F6mqrpKOwAAA0VoLxM97QAADBShHQAAqpzQXibaYwAAGChCOwAAVDmhvUI6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", "text/plain": [ "
" ] @@ -342,6 +293,14 @@ "fig.tight_layout()\n", "plt.show()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "75b74a67", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { From 478504bf0d6b0f9113a53b68e2078d280ee5aa81 Mon Sep 17 00:00:00 2001 From: jimxia7 Date: Fri, 31 Jul 2026 11:03:54 -0500 Subject: [PATCH 14/22] testing --- src/pystrata/output.py | 18 ++-- tests/WorkFlow.ipynb | 187 ++++++++++++++++++----------------------- 2 files changed, 91 insertions(+), 114 deletions(-) diff --git a/src/pystrata/output.py b/src/pystrata/output.py index b42ad2c..a1a4a7f 100644 --- a/src/pystrata/output.py +++ b/src/pystrata/output.py @@ -516,19 +516,19 @@ def __call__(self, calc, name=None): def _modify_values(self, values): return values - def kappa_correction(self,freqs_range_for_kappa,kappa_target,name = None): - values = self.values if self.values.ndim == 1 else self.values[:, -1] - values_for_kappa = np.interp(freqs_range_for_kappa, self.freqs, values) + # def kappa_correction(self,freqs_range_for_kappa,kappa_target,name = None): + # values = self.values if self.values.ndim == 1 else self.values[:, -1] + # values_for_kappa = np.interp(freqs_range_for_kappa, self.freqs, values) - kappa = -np.polyfit(freqs_range_for_kappa,np.log(values_for_kappa),1)[0]/np.pi + # kappa = -np.polyfit(freqs_range_for_kappa,np.log(values_for_kappa),1)[0]/np.pi - delta_kappa = kappa_target - kappa - kappa_corrected_values = np.exp(-np.pi*delta_kappa*self.freqs)*self.values + # delta_kappa = kappa_target - kappa + # kappa_corrected_values = np.exp(-np.pi*delta_kappa*self.freqs)*self.values - self.reset_values() + # self.reset_values() - self._add_values(kappa_corrected_values) - self._names.append(name) + # self._add_values(kappa_corrected_values) + # self._names.append(name) class KappaOutput(FourierAmplitudeSpectrumOutput): diff --git a/tests/WorkFlow.ipynb b/tests/WorkFlow.ipynb index b5da866..06ff8f5 100644 --- a/tests/WorkFlow.ipynb +++ b/tests/WorkFlow.ipynb @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 51, "id": "ed449b23", "metadata": {}, "outputs": [ @@ -20,7 +20,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Using pystrata from: /Users/jamesdea/Github/pystrata/src/pystrata/__init__.py\n" + "Using pystrata from: C:\\Users\\jimxi\\GitHub\\pystrata\\src\\pystrata\\__init__.py\n" ] } ], @@ -40,13 +40,14 @@ "\n", "import pystrata\n", "from pystrata.output import KappaOutput\n", + "import pykooh\n", "\n", "print(f\"Using pystrata from: {Path(pystrata.__file__).resolve()}\")" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 52, "id": "4c25fc14", "metadata": {}, "outputs": [], @@ -58,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 53, "id": "d2cafcc5", "metadata": {}, "outputs": [], @@ -80,7 +81,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 54, "id": "b32ef6ba", "metadata": {}, "outputs": [], @@ -116,7 +117,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 55, "id": "ec0a55f6", "metadata": {}, "outputs": [], @@ -127,18 +128,45 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 56, + "id": "b1ea7a24", + "metadata": {}, + "outputs": [], + "source": [ + "def calc_kappa(freq,\n", + " FAS,\n", + " freq_range_for_kappa,\n", + " ko_bandwidth = None,\n", + " show_fit = False):\n", + " \n", + " if ko_bandwidth is not None:\n", + " FAS_for_kappa = pykooh.smooth(\n", + " freq_range_for_kappa,\n", + " freq,\n", + " FAS,\n", + " bw = ko_bandwidth\n", + " )\n", + " else:\n", + " FAS_for_kappa = np.interp(freq_range_for_kappa,freq,FAS)\n", + "\n", + " coeffs = np.polyfit(freq_range_for_kappa,np.log(FAS_for_kappa),1)\n", + " slope, intercept = coeffs\n", + " kappa = -slope / np.pi\n", + "\n", + " fit_line = np.exp(slope * freq_range_for_kappa + intercept)\n", + "\n", + " if show_fit:\n", + " return fit_line\n", + " else:\n", + " return kappa" + ] + }, + { + "cell_type": "code", + "execution_count": 57, "id": "458b1a12", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.07579164697965307\n" - ] - } - ], + "outputs": [], "source": [ "# Calculation Loop\n", "outputs_freqs = np.logspace(np.log10(0.01),np.log10(50),1000)\n", @@ -150,12 +178,16 @@ "\n", "output = pystrata.output.OutputCollection(\n", " [\n", - "\n", " pystrata.output.FourierAmplitudeSpectrumOutput(\n", " outputs_freqs,\n", " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", - " None#type:ignore\n", + " None\n", " ),\n", + " pystrata.output.KappaOutput(\n", + " Kappa_freqs,\n", + " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", + " None\n", + " )\n", " ] \n", " )\n", "\n", @@ -164,16 +196,12 @@ " 'data/NIS090.AT2'\n", ")\n", "\n", - "print(motion.kappa)\n", - "\n", - "\n", - "eql_calc = pystrata.propagation.EquivalentLinearCalculator(strain_limit = 0.5)\n", - "le_calc = pystrata.propagation.LinearElasticCalculator()" + "eql_calc = pystrata.propagation.EquivalentLinearCalculator(strain_limit = 0.5)" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 58, "id": "8b7b3271", "metadata": {}, "outputs": [], @@ -187,125 +215,74 @@ }, { "cell_type": "code", - "execution_count": 8, - "id": "aea34d27", + "execution_count": 59, + "id": "8b9c5bc8", "metadata": {}, "outputs": [], "source": [ - "p = discretized_Site_profile.copy()\n", - "le_calc(motion, #type:ignore\n", - " p,\n", - " p.location(\"outcrop\", index=-1))" + "output(eql_calc,\n", + " name = f\"test\",)" ] }, { "cell_type": "code", - "execution_count": 9, - "id": "8b9c5bc8", + "execution_count": 60, + "id": "6a8e1200", "metadata": {}, "outputs": [], "source": [ - "output(eql_calc,\n", - " name = f\"test\",)\n", + "FAS_df = output[0].to_dataframe()\n", "\n", - "output(le_calc,\n", - " name = f\"test 1\",)" + "FAS = FAS_df.iloc[:,0].values\n", + "freq = FAS_df.index.to_numpy()" ] }, { "cell_type": "code", - "execution_count": 10, - "id": "6a8e1200", + "execution_count": 61, + "id": "75b74a67", "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "operands could not be broadcast together with shapes (1000,) (1000,2) ", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mValueError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[10]\u001b[39m\u001b[32m, line 2\u001b[39m\n\u001b[32m 1\u001b[39m FAS_df = output[\u001b[32m0\u001b[39m].to_dataframe()\n\u001b[32m----> \u001b[39m\u001b[32m2\u001b[39m Kappa_corrected_df = output[\u001b[32m0\u001b[39m].kappa_correction(Kappa_freqs,\u001b[32m0.039\u001b[39m).to_dataframe()\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/Github/pystrata/src/pystrata/output.py:526\u001b[39m, in \u001b[36mFourierAmplitudeSpectrumOutput.kappa_correction\u001b[39m\u001b[34m(self, freqs_range_for_kappa, kappa_target, name)\u001b[39m\n\u001b[32m 523\u001b[39m kappa = -np.polyfit(freqs_range_for_kappa,np.log(values_for_kappa),\u001b[32m1\u001b[39m)[\u001b[32m0\u001b[39m]/np.pi\n\u001b[32m 525\u001b[39m delta_kappa = kappa_target - kappa\n\u001b[32m--> \u001b[39m\u001b[32m526\u001b[39m kappa_corrected_values = \u001b[30;43mnp\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mexp\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m-\u001b[39;49m\u001b[30;43mnp\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mpi\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mdelta_kappa\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mfreqs\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mvalues\u001b[39;49m\n\u001b[32m 528\u001b[39m \u001b[38;5;28mself\u001b[39m.reset_values()\n\u001b[32m 530\u001b[39m \u001b[38;5;28mself\u001b[39m._add_values(kappa_corrected_values)\n", - "\u001b[31mValueError\u001b[39m: operands could not be broadcast together with shapes (1000,) (1000,2) " - ] - } - ], + "outputs": [], "source": [ - "\n", - "FAS_df = output[0].to_dataframe()\n", - "Kappa_corrected_df = output[0].kappa_correction(Kappa_freqs,0.039).to_dataframe()" + "kappa_verify = calc_kappa(freq,FAS,Kappa_freqs,None)\n", + "kappa = output[1].values" ] }, { "cell_type": "code", - "execution_count": null, - "id": "46e7091a", + "execution_count": 62, + "id": "0b92875b", "metadata": {}, "outputs": [ { - "ename": "NameError", - "evalue": "name 'Kappa_Fitted_Line_df' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mNameError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[11]\u001b[39m\u001b[32m, line 9\u001b[39m\n\u001b[32m 5\u001b[39m \u001b[38;5;66;03m# Use the same color for each run in both DataFrames.\u001b[39;00m\n\u001b[32m 6\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m color, column \u001b[38;5;28;01min\u001b[39;00m zip(plt.rcParams[\u001b[33m\"axes.prop_cycle\"\u001b[39m].by_key()[\u001b[33m\"color\"\u001b[39m], FAS_df.columns):\n\u001b[32m 7\u001b[39m ax.plot(FAS_df.index, FAS_df[column], color=color, label=f\"{column} — FAS\")\n\u001b[32m 8\u001b[39m ax.plot(\n\u001b[32m----> \u001b[39m\u001b[32m9\u001b[39m Kappa_Fitted_Line_df.index,\n\u001b[32m 10\u001b[39m Kappa_Fitted_Line_df[column],\n\u001b[32m 11\u001b[39m color=color,\n\u001b[32m 12\u001b[39m linestyle=\u001b[33m\"--\"\u001b[39m,\n", - "\u001b[31mNameError\u001b[39m: name 'Kappa_Fitted_Line_df' is not defined" + "name": "stdout", + "output_type": "stream", + "text": [ + "0.48825322811228866\n", + "[0.48825323]\n" ] - }, - { - "data": { - "image/png": "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/vzYvn17r497/vnn48Mf/nBcfvnlMRwlH0YAAKAqQvudd94Z1113XSxevDimTZsWq1evjpEjR8Y999zT42Pa2trive99b9x8881xzjnnxFDX3t4RP395z2C/DAAAakSm0N7a2hobN26MefPmHX+C+vr09vr163t83C233BKnnXZaXHvttSV9n0OHDsWePXsKLtXkru88F4vuKWwJUmcHAKAqQvvOnTvTqvnEiRMLtie3t27dWvQxjz76aHz+85+Pu+++u+Tvs2LFihg7dmznZcqUKVFN7nrkuW7bdMcAADAkp8fs3bs3/viP/zgN7BMmTCj5cUuXLo3du3d3XrZs2RLVpKFeXR0AgMppzLJzErwbGhpi27ZtBduT25MmTeq2/3PPPZcuQH3HO97Rua29vf3oN25sjKeffjrOPffcbo9rbm5OL9WqsUhor9MgAwBANVTam5qaYubMmbFu3bqCEJ7cnjt3brf9L7zwwnj88cfjscce67z8/u//frzlLW9Jr1db20t/Ku3aYwAAqIpKeyIZ97ho0aKYNWtWzJ49O1auXBn79+9Pp8kkFi5cGJMnT0770pM57hdddFHB48eNG5d+7bp9KNEeAwBAVYf2BQsWxI4dO2LZsmXp4tMZM2bE2rVrOxenbt68OZ0oM5zVFymr63IHAGCg1HV0dD23Z/VJRj4mU2SSRaljxowZ7JcTb/7Ew7H5lQMF2374kStj4piWQXtNAAAMLVky7vAuiVewPab6P/oAADBUCe19edP0wgAAUEFCex80FunZ7wildgAABobQ3pc3TXsMAAAVJLT3QYN3DQCAChI/yzTyUXMMAAADRWgvV2g3PgYAgAEitPdBo/ExAABUkNDelzfNQlQAACpIaO+DhiLtMQAAMFCE9jKdERUAAAaK0N4HxQrt1qECADBQhPY+qCs68tHQRwAABobQXiYq7QAADBShHQAAqpzQXiaaYwAAGChCex8UO/upM6ICADBQhHYAAKhyQnuZaI8BAGCgCO1lYnoMAAADRWgHAIAqJ7SXjQYZAAAGhtBeJtpjAAAYKEJ7HwjoAABUktBeJppjAAAYKEJ7mai+AwAwUIR2AACockJ7H3QUaYYptg0AAMpBaC8T7TEAAAwUoR0AAKqc0F6mqrpKOwAAA0VoLxM97QAADBShHQAAqpzQXibaYwAAGChCOwAAVDmhvUI6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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ - "import matplotlib.pyplot as plt\n", - "\n", - "fig, ax = plt.subplots(figsize=(9, 5))\n", - "\n", - "# Use the same color for each run in both DataFrames.\n", - "for color, column in zip(plt.rcParams[\"axes.prop_cycle\"].by_key()[\"color\"], FAS_df.columns):\n", - " ax.plot(FAS_df.index, FAS_df[column], color=color, label=f\"{column} — FAS\")\n", - " ax.plot(\n", - " Kappa_Fitted_Line_df.index,\n", - " Kappa_Fitted_Line_df[column],\n", - " color=color,\n", - " linestyle=\"--\",\n", - " linewidth=2,\n", - " label=f\"{column} — kappa fitted line\",\n", - " )\n", - "\n", - "ax.set(\n", - " xlabel=\"Frequency (Hz)\",\n", - " ylabel=\"Fourier amplitude (cm/s)\",\n", - " title=\"Fourier Amplitude Spectrum and Kappa Fitted Line\",\n", - " yscale=\"log\",\n", - ")\n", - "ax.grid(True, which=\"both\", alpha=0.3)\n", - "ax.legend()\n", - "fig.tight_layout()\n", - "plt.show()" + "print(kappa_verify)\n", + "print(kappa)" ] }, { "cell_type": "code", "execution_count": null, - "id": "75b74a67", + "id": "a4b4c224", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "kappa_verify = calc_kappa(freq,FAS,Kappa_freqs,None)\n", + "kappa = output[1].values" + ] } ], "metadata": { "kernelspec": { - "display_name": "3.12.13", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -319,7 +296,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.13" + "version": "3.12.10" } }, "nbformat": 4, From 858dbf5da1dc05b50b3050476af5ede355364d3a Mon Sep 17 00:00:00 2001 From: jimxia7 Date: Fri, 31 Jul 2026 17:33:18 -0500 Subject: [PATCH 15/22] Fixing bugs --- tests/WorkFlow.ipynb | 351 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 334 insertions(+), 17 deletions(-) diff --git a/tests/WorkFlow.ipynb b/tests/WorkFlow.ipynb index 06ff8f5..3021b1d 100644 --- a/tests/WorkFlow.ipynb +++ b/tests/WorkFlow.ipynb @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 1, "id": "ed449b23", "metadata": {}, "outputs": [ @@ -20,7 +20,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Using pystrata from: C:\\Users\\jimxi\\GitHub\\pystrata\\src\\pystrata\\__init__.py\n" + "Using pystrata from: D:\\Github\\pystrata\\src\\pystrata\\__init__.py\n" ] } ], @@ -47,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 2, "id": "4c25fc14", "metadata": {}, "outputs": [], @@ -59,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 3, "id": "d2cafcc5", "metadata": {}, "outputs": [], @@ -81,7 +81,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": null, "id": "b32ef6ba", "metadata": {}, "outputs": [], @@ -96,9 +96,6 @@ " strains = mrd_strains,\n", " damping_min = row['Scaled_D_min (%)']/100)\n", " \n", - " ModReduc_data[f\"Layer {i+1}\"] = soil_type.mod_reduc.values\n", - " Damping_data[f\"Layer {i+1}\"] = soil_type.damping.values * 100\n", - " \n", " Layers.append(pystrata.site.Layer(soil_type,row['Thickness (m)'],row['Velocity (m/s)']))\n", "\n", "Layers.append(\n", @@ -117,7 +114,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 5, "id": "ec0a55f6", "metadata": {}, "outputs": [], @@ -128,7 +125,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 6, "id": "b1ea7a24", "metadata": {}, "outputs": [], @@ -163,7 +160,21 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 7, + "id": "b1a0e9b1", + "metadata": {}, + "outputs": [], + "source": [ + "def Kappa_Correction(freq,FAS,Delta_kappa):\n", + "\n", + " FAS_adj = np.exp(-np.pi*Delta_kappa*freq)*FAS\n", + " \n", + " return FAS_adj" + ] + }, + { + "cell_type": "code", + "execution_count": 8, "id": "458b1a12", "metadata": {}, "outputs": [], @@ -187,6 +198,13 @@ " Kappa_freqs,\n", " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", " None\n", + " ),\n", + " pystrata.output.KappaCorrectFourierAmplitudeSpectrumOutput(\n", + " outputs_freqs,\n", + " Kappa_freqs,\n", + " 0.039,\n", + " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", + " None\n", " )\n", " ] \n", " )\n", @@ -201,7 +219,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 9, "id": "8b7b3271", "metadata": {}, "outputs": [], @@ -215,7 +233,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 10, "id": "8b9c5bc8", "metadata": {}, "outputs": [], @@ -226,7 +244,7 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 11, "id": "6a8e1200", "metadata": {}, "outputs": [], @@ -239,7 +257,7 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 12, "id": "75b74a67", "metadata": {}, "outputs": [], @@ -250,7 +268,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 13, "id": "0b92875b", "metadata": {}, "outputs": [ @@ -270,7 +288,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "a4b4c224", "metadata": {}, "outputs": [], @@ -278,6 +296,305 @@ "kappa_verify = calc_kappa(freq,FAS,Kappa_freqs,None)\n", "kappa = output[1].values" ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "944573b5", + "metadata": {}, + "outputs": [], + "source": [ + "delta_kappa = kappa - 0.039" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "24443c4c", + "metadata": {}, + "outputs": [], + "source": [ + "fas_kappa_verify = Kappa_Correction(freq,FAS,delta_kappa)\n", + "\n", + "fas_kappa = output[2].values\n", + "\n", + "error = fas_kappa - fas_kappa_verify" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e82af486", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "6c3fba52", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[3.99790670e-09 4.03515526e-09 4.07277467e-09 4.11076900e-09\n", + " 4.14914236e-09 4.18789894e-09 4.22704295e-09 4.26657866e-09\n", + " 4.30651041e-09 4.34684256e-09 4.38757957e-09 4.42872592e-09\n", + " 4.47028615e-09 4.51226487e-09 4.55466674e-09 4.59749648e-09\n", + " 4.64075888e-09 4.68445876e-09 4.72860103e-09 4.77319066e-09\n", + " 4.81823266e-09 4.86373213e-09 4.90969421e-09 4.95612414e-09\n", + " 5.00302718e-09 5.05040870e-09 5.09827411e-09 5.14662890e-09\n", + " 5.19547864e-09 5.24482894e-09 5.29468553e-09 5.34505417e-09\n", + " 5.39594071e-09 5.44735108e-09 5.49929128e-09 5.55176739e-09\n", + " 5.60478558e-09 5.65835207e-09 5.71247318e-09 5.76715533e-09\n", + " 5.82240499e-09 5.87822873e-09 5.93463321e-09 5.99162516e-09\n", + " 6.04921143e-09 6.10739892e-09 6.16619465e-09 6.22560572e-09\n", + " 6.28563933e-09 6.34630276e-09 6.40760341e-09 6.46954875e-09\n", + " 6.53214638e-09 6.59540397e-09 6.65932931e-09 6.72393030e-09\n", + " 6.78921492e-09 6.85519127e-09 6.92186757e-09 6.98925214e-09\n", + " 7.05735340e-09 7.12617989e-09 7.19574028e-09 7.26604334e-09\n", + " 7.33709796e-09 7.40891315e-09 7.48149805e-09 7.55486190e-09\n", + " 7.62901411e-09 7.70396417e-09 7.77972172e-09 7.85629653e-09\n", + " 7.93369850e-09 8.01193767e-09 8.09102422e-09 8.17096846e-09\n", + " 8.25178083e-09 8.33347194e-09 8.41605253e-09 8.49953349e-09\n", + " 8.58392585e-09 8.66924082e-09 8.75548973e-09 8.84268408e-09\n", + " 8.93083555e-09 9.01995594e-09 9.11005725e-09 9.20115164e-09\n", + " 9.29325141e-09 9.38636907e-09 9.48051727e-09 9.57570887e-09\n", + " 9.67195689e-09 9.76927453e-09 9.86767519e-09 9.96717243e-09\n", + " 1.00677800e-08 1.01695119e-08 1.02723823e-08 1.03764056e-08\n", + " 1.04815962e-08 1.05879690e-08 1.06955389e-08 1.08043211e-08\n", + " 1.09143311e-08 3.37459732e-08 1.08858451e-07 1.85901370e-07\n", + " 2.64913421e-07 3.45934004e-07 4.29003245e-07 5.14162012e-07\n", + " 6.01451922e-07 6.90915357e-07 7.82595481e-07 8.76536247e-07\n", + " 9.72782417e-07 1.07137957e-06 1.17237414e-06 1.27581337e-06\n", + " 1.38174542e-06 1.49021929e-06 1.60128490e-06 1.71499308e-06\n", + " 1.83139558e-06 1.95054509e-06 2.07249529e-06 2.19730081e-06\n", + " 2.32501729e-06 2.45570139e-06 2.58941079e-06 2.72620422e-06\n", + " 2.86614149e-06 3.00928350e-06 3.15569225e-06 3.30543085e-06\n", + " 3.45856360e-06 3.61515593e-06 3.77527447e-06 3.93898706e-06\n", + " 4.10636278e-06 4.27747194e-06 4.45238616e-06 4.63117831e-06\n", + " 4.81392262e-06 5.00069464e-06 5.19157131e-06 5.38663093e-06\n", + " 5.58595325e-06 5.78961944e-06 5.99771214e-06 6.21031549e-06\n", + " 6.42751514e-06 6.64939828e-06 6.87605370e-06 7.10757177e-06\n", + " 7.34404448e-06 7.58556551e-06 7.83223020e-06 8.08413562e-06\n", + " 8.34138059e-06 8.60406569e-06 8.87229333e-06 9.14616775e-06\n", + " 9.42579508e-06 9.71128335e-06 1.00027425e-05 1.03002845e-05\n", + " 1.06040234e-05 1.09140750e-05 1.12305575e-05 1.15535912e-05\n", + " 1.18832982e-05 1.22198033e-05 1.25632333e-05 1.29137170e-05\n", + " 1.32713860e-05 1.36363740e-05 1.40088171e-05 1.43888539e-05\n", + " 1.47766254e-05 1.51722751e-05 1.55759493e-05 1.59877967e-05\n", + " 1.64079686e-05 1.68366193e-05 1.73492647e-05 2.82367993e-05\n", + " 3.94025432e-05 5.08520717e-05 6.25910633e-05 7.46253011e-05\n", + " 8.69606754e-05 9.96031849e-05 1.12558939e-04 1.25834161e-04\n", + " 1.39435186e-04 1.53368470e-04 1.67640584e-04 1.82258221e-04\n", + " 1.97228200e-04 2.12557461e-04 2.28253076e-04 2.44322242e-04\n", + " 2.60772293e-04 2.77610695e-04 2.94845051e-04 3.12483105e-04\n", + " 3.30532741e-04 3.49001990e-04 3.67899028e-04 3.87232182e-04\n", + " 4.07009930e-04 4.27240908e-04 4.47933906e-04 4.69097880e-04\n", + " 4.90741944e-04 5.12875384e-04 5.35507651e-04 5.58648372e-04\n", + " 5.82307348e-04 6.06494561e-04 6.31220172e-04 6.56494531e-04\n", + " 6.82328173e-04 7.08731829e-04 7.35716423e-04 7.63293079e-04\n", + " 7.91473124e-04 8.20268091e-04 8.49689724e-04 8.79749978e-04\n", + " 9.10461030e-04 9.41835275e-04 1.03239106e-03 1.19774229e-03\n", + " 1.36721115e-03 1.54087974e-03 1.71883172e-03 1.90115226e-03\n", + " 2.08792816e-03 2.27924777e-03 2.47520114e-03 2.67587993e-03\n", + " 2.88137753e-03 3.09178906e-03 3.30721139e-03 3.52774317e-03\n", + " 3.75348492e-03 3.98453896e-03 4.22100954e-03 4.46300283e-03\n", + " 4.71062695e-03 4.96399204e-03 5.22321024e-03 5.48839580e-03\n", + " 5.75966505e-03 6.03713647e-03 6.32093075e-03 6.61117078e-03\n", + " 6.90798173e-03 7.21149108e-03 7.52182865e-03 7.83912667e-03\n", + " 8.16351979e-03 8.49514516e-03 8.83414246e-03 9.18065392e-03\n", + " 9.64234842e-03 1.01598597e-02 1.06893361e-02 1.12310117e-02\n", + " 1.17851248e-02 1.23519184e-02 1.29316397e-02 1.35245407e-02\n", + " 1.41308779e-02 1.47509128e-02 1.53849115e-02 1.60331452e-02\n", + " 1.66958900e-02 1.73734272e-02 1.80660434e-02 1.87740304e-02\n", + " 1.94976853e-02 2.02373111e-02 2.09932159e-02 2.17657139e-02\n", + " 2.25551251e-02 2.33617752e-02 2.41859962e-02 2.50281262e-02\n", + " 2.58885094e-02 2.67674966e-02 2.77898036e-02 2.89447706e-02\n", + " 3.01255798e-02 3.13327338e-02 3.25667444e-02 3.38281330e-02\n", + " 3.51174308e-02 3.64351791e-02 3.77819289e-02 3.91582420e-02\n", + " 4.05646903e-02 4.20018566e-02 4.34703346e-02 4.49707292e-02\n", + " 4.65036565e-02 4.80697440e-02 4.96696314e-02 5.13039700e-02\n", + " 5.29734234e-02 5.46786678e-02 5.64203920e-02 5.81468862e-02\n", + " 5.96059628e-02 6.10943668e-02 6.26126498e-02 6.41613738e-02\n", + " 6.57411113e-02 6.73524454e-02 6.89959702e-02 7.06722910e-02\n", + " 7.23820241e-02 7.41257977e-02 7.59042516e-02 7.77180375e-02\n", + " 7.95678195e-02 8.14542742e-02 8.33780908e-02 8.53399713e-02\n", + " 8.73406314e-02 8.93152620e-02 9.04189604e-02 9.15381812e-02\n", + " 9.26731698e-02 9.38241754e-02 9.49914520e-02 9.61752577e-02\n", + " 9.73758554e-02 9.85935125e-02 9.98285011e-02 1.01081098e-01\n", + " 1.02351586e-01 1.03640250e-01 1.04947384e-01 1.06273284e-01\n", + " 1.07618253e-01 1.09271805e-01 1.11381560e-01 1.13530300e-01\n", + " 1.15718747e-01 1.17947633e-01 1.20217706e-01 1.22529727e-01\n", + " 1.24884471e-01 1.27282731e-01 1.29725311e-01 1.32213035e-01\n", + " 1.34746738e-01 1.37327275e-01 1.39955515e-01 1.42150173e-01\n", + " 1.44043309e-01 1.45964997e-01 1.47915714e-01 1.49895952e-01\n", + " 1.51906208e-01 1.53946990e-01 1.56018815e-01 1.58122210e-01\n", + " 1.60257712e-01 1.62425868e-01 1.64627236e-01 1.65564039e-01\n", + " 1.62167018e-01 1.58655215e-01 1.55026051e-01 1.51276895e-01\n", + " 1.47405061e-01 1.43407806e-01 1.39282327e-01 1.35025765e-01\n", + " 1.30635199e-01 1.26107646e-01 1.21273050e-01 1.13310041e-01\n", + " 1.05116882e-01 9.66885296e-02 8.80198319e-02 7.91055279e-02\n", + " 6.99402446e-02 6.05184940e-02 5.08346710e-02 4.08830504e-02\n", + " 3.06577842e-02 4.23447675e-02 5.83716887e-02 7.48212582e-02\n", + " 9.17026342e-02 1.09025173e-01 1.26798432e-01 1.45032178e-01\n", + " 1.63736389e-01 1.82921259e-01 1.98085470e-01 2.08253410e-01\n", + " 2.18664993e-01 2.29325415e-01 2.40239987e-01 2.51414136e-01\n", + " 2.62853408e-01 2.74563471e-01 2.86550120e-01 2.89609204e-01\n", + " 2.89876259e-01 2.90106022e-01 2.90297411e-01 2.90449316e-01\n", + " 2.90560603e-01 2.90630109e-01 2.90656641e-01 2.94842717e-01\n", + " 3.01149934e-01 3.07583864e-01 3.14147120e-01 3.20842376e-01\n", + " 3.27672364e-01 3.34639880e-01 3.43088452e-01 3.63287340e-01\n", + " 3.83988673e-01 4.05203686e-01 4.26943879e-01 4.49221022e-01\n", + " 4.72047163e-01 4.95434635e-01 4.95918634e-01 4.96202369e-01\n", + " 4.96415983e-01 4.96557395e-01 4.96624471e-01 4.96615022e-01\n", + " 4.91339051e-01 4.72964250e-01 4.53997331e-01 4.34423824e-01\n", + " 4.14228897e-01 3.93397347e-01 3.71913587e-01 3.35561124e-01\n", + " 2.97340322e-01 2.57985647e-01 2.17469455e-01 1.75763396e-01\n", + " 1.32838394e-01 1.73440221e-01 2.21437450e-01 2.70775600e-01\n", + " 3.21487363e-01 3.73606281e-01 4.33749624e-01 5.20765619e-01\n", + " 6.10213366e-01 7.02152896e-01 7.96645830e-01 8.93755431e-01\n", + " 8.49604224e-01 7.56121595e-01 6.59780993e-01 5.60509223e-01\n", + " 4.58231088e-01 4.31443893e-01 4.71942601e-01 5.13558028e-01\n", + " 5.56318468e-01 6.00253000e-01 6.40421093e-01 6.77503648e-01\n", + " 7.15577751e-01 7.54668680e-01 7.94802426e-01 7.48683357e-01\n", + " 6.72928297e-01 5.94772848e-01 5.14152252e-01 4.35383125e-01\n", + " 3.77705641e-01 3.18206386e-01 2.56835619e-01 1.93542121e-01\n", + " 1.84822237e-01 1.96799083e-01 2.09110495e-01 2.21765479e-01\n", + " 2.37367410e-01 2.56423502e-01 2.76027536e-01 2.96194571e-01\n", + " 3.16134991e-01 3.35130418e-01 3.54663535e-01 3.74749254e-01\n", + " 4.11493414e-01 4.76658316e-01 5.43812793e-01 6.13013918e-01\n", + " 6.43794704e-01 6.38677074e-01 6.33274264e-01 6.27576986e-01\n", + " 5.46248227e-01 4.43550192e-01 3.37409581e-01 2.39666804e-01\n", + " 1.88740433e-01 1.36095541e-01 8.16794978e-02 6.33482376e-02\n", + " 6.14178681e-02 5.94106563e-02 8.27117399e-02 1.68893365e-01\n", + " 2.57958522e-01 3.49997720e-01 3.87973808e-01 4.26545422e-01\n", + " 4.66354405e-01 4.43617905e-01 4.01226166e-01 3.57275726e-01\n", + " 3.63592379e-01 3.98761520e-01 4.35082634e-01 4.00612963e-01\n", + " 3.16198768e-01 2.28706924e-01 2.59394588e-01 3.63241216e-01\n", + " 4.70754588e-01 5.13344076e-01 5.32163554e-01 5.51548983e-01\n", + " 5.23833814e-01 4.90094216e-01 4.72214450e-01 5.53959187e-01\n", + " 6.38629904e-01 6.40293581e-01 5.35710495e-01 4.27026721e-01\n", + " 4.54101485e-01 5.14192030e-01 5.76021667e-01 6.38648441e-01\n", + " 7.03546475e-01 5.99717011e-01 4.22437807e-01 2.70317959e-01\n", + " 2.12673224e-01 1.52671486e-01 1.85079467e-01 2.38837995e-01\n", + " 2.32398643e-01 1.50525890e-01 9.36545008e-02 2.18959304e-01\n", + " 3.49389205e-01 6.25859326e-01 9.37465972e-01 1.26996200e+00\n", + " 1.62110476e+00 1.88526290e+00 2.02365305e+00 2.14333199e+00\n", + " 2.20415215e+00 2.23886153e+00 2.13020349e+00 2.01998161e+00\n", + " 1.94487921e+00 1.86215503e+00 1.70473397e+00 1.54653445e+00\n", + " 1.53122400e+00 1.52100963e+00 1.59149677e+00 1.61845880e+00\n", + " 1.34256982e+00 1.04817320e+00 7.21839995e-01 5.35446476e-01\n", + " 6.34876327e-01 7.66582164e-01 9.32350701e-01 9.06122109e-01\n", + " 7.84242719e-01 6.34931692e-01 4.96834082e-01 4.97947745e-01\n", + " 4.96266632e-01 4.90108888e-01 4.61058578e-01 4.19546719e-01\n", + " 5.17119868e-01 5.64907864e-01 4.98529488e-01 4.71469788e-01\n", + " 4.63675224e-01 4.68062932e-01 4.64316805e-01 4.50897509e-01\n", + " 5.31485971e-01 5.98567460e-01 6.14074310e-01 5.49984487e-01\n", + " 4.63916891e-01 3.74575674e-01 2.73523865e-01 1.92501880e-01\n", + " 1.64074530e-01 1.50490138e-01 2.43304051e-01 4.81253825e-01\n", + " 6.83671829e-01 8.71032555e-01 1.02751395e+00 1.10564444e+00\n", + " 1.13885521e+00 1.26339610e+00 1.46812437e+00 1.49930391e+00\n", + " 1.38213241e+00 1.24832543e+00 1.15202866e+00 1.13503282e+00\n", + " 1.14858520e+00 1.12516353e+00 1.06639740e+00 9.96552917e-01\n", + " 9.82592705e-01 8.70016283e-01 6.45571813e-01 4.26084927e-01\n", + " 4.31959539e-01 7.48349667e-01 6.95562329e-01 4.58219817e-01\n", + " 2.65636753e-01 1.11738016e-01 6.07797129e-02 1.01267580e-01\n", + " 1.22065549e-01 9.69451505e-02 2.65694179e-01 5.44680533e-01\n", + " 7.07702915e-01 7.55100455e-01 5.62123183e-01 3.29720871e-01\n", + " 7.74963036e-02 1.65601981e-01 1.09949611e-01 2.48227123e-01\n", + " 4.71604498e-01 4.25322304e-01 3.30138384e-01 5.21836584e-01\n", + " 5.07207006e-01 3.55821310e-01 3.08202620e-01 3.66817224e-01\n", + " 4.36731573e-01 5.29299970e-01 6.21379514e-01 4.81166176e-01\n", + " 2.69422356e-01 2.47994310e-01 2.95644326e-01 9.78884987e-02\n", + " 4.49559123e-01 8.38764796e-01 9.48939475e-01 9.45702145e-01\n", + " 1.02523325e+00 1.01714644e+00 1.04986350e+00 1.24383351e+00\n", + " 9.30403200e-01 7.26993304e-01 7.09880802e-01 4.17183732e-01\n", + " 5.00390586e-01 7.29295700e-01 9.29470395e-01 7.38987273e-01\n", + " 3.54841119e-01 1.04174050e-01 1.27553279e-01 3.38046314e-01\n", + " 4.55613604e-01 3.04080160e-01 5.28958809e-01 5.26368073e-01\n", + " 9.90308091e-01 6.18761711e-01 9.49998816e-01 8.25623609e-01\n", + " 3.39380647e-01 1.51461946e-01 4.70455986e-01 5.54498357e-01\n", + " 5.18025917e-01 5.20518115e-01 6.55262046e-01 5.20816187e-01\n", + " 4.21157053e-01 1.15869854e-01 2.62948455e-01 4.40284867e-01\n", + " 4.66379193e-01 6.36742103e-01 3.25043766e-01 4.05992638e-01\n", + " 3.46185598e-01 2.90744979e-01 1.60848819e-01 1.94641580e-01\n", + " 1.97936815e-01 1.69436825e-01 2.89134008e-01 1.97335369e-01\n", + " 1.56843579e-01 1.93211110e-01 6.79056527e-01 5.43106296e-01\n", + " 6.14916465e-01 5.68455096e-01 2.81133163e-01 2.67864068e-01\n", + " 3.85464473e-01 3.24310033e-01 3.37225647e-01 3.32265039e-01\n", + " 5.17685390e-01 4.92476627e-01 2.64627435e-01 1.25703949e-01\n", + " 7.44912279e-02 2.51412772e-01 2.93641677e-01 9.79886681e-02\n", + " 1.05407414e-01 2.01438999e-01 1.27777008e-01 1.65460938e-01\n", + " 3.05283869e-01 3.55323254e-01 5.07031807e-01 3.94853063e-01\n", + " 1.79876148e-01 1.39015811e-01 1.18098920e-01 1.13783577e-01\n", + " 1.24539019e-01 1.13438294e-01 1.20954665e-01 1.29696737e-01\n", + " 1.88586794e-01 2.40533051e-01 1.82605033e-01 4.87087211e-02\n", + " 7.95826924e-02 9.38928011e-02 2.09622369e-01 1.32258365e-01\n", + " 2.25459491e-01 1.89260877e-01 2.08924137e-01 6.05034599e-02\n", + " 8.21592750e-02 1.54049776e-02 1.91605664e-02 6.31015480e-02\n", + " 1.89624382e-01 1.90887602e-01 1.41508037e-01 1.05489981e-01\n", + " 1.00819527e-01 9.15599939e-02 2.12725562e-01 4.37658954e-01\n", + " 2.43632375e-01 9.17656027e-02 1.73750442e-01 2.64675141e-01\n", + " 1.99608167e-01 7.23112803e-02 9.63896974e-02 1.94386107e-01\n", + " 5.60726470e-02 7.43635964e-02 6.69518703e-02 3.38051047e-02\n", + " 1.01355944e-01 2.25859848e-01 1.83127886e-01 1.10357828e-01\n", + " 1.17467042e-01 7.39272606e-02 1.17208506e-01 1.63961487e-01\n", + " 1.00932558e-01 7.91351778e-02 5.47292715e-02 1.99757862e-01\n", + " 1.49370832e-01 4.39752758e-02 7.49679646e-02 1.49788539e-01\n", + " 1.16105173e-01 5.61932211e-02 9.69556696e-02 1.27699329e-01\n", + " 1.45123432e-01 1.74568832e-01 1.23718486e-01 6.43081711e-02\n", + " 1.03565261e-01 1.78884293e-01 1.38258540e-01 1.40698651e-01\n", + " 1.04966940e-01 8.42981032e-02 4.72891098e-02 1.65184543e-01\n", + " 6.09962995e-02 7.03369253e-02 2.17102433e-01 1.17513258e-01\n", + " 1.65265463e-01 8.88903547e-02 8.28240134e-02 4.81704079e-02\n", + " 7.23436363e-02 7.13169589e-02 1.30375670e-01 6.58954379e-02\n", + " 4.12068720e-02 7.39626020e-02 1.47753655e-01 2.64872917e-02\n", + " 5.79398281e-02 2.02868241e-01 6.41706825e-02 3.60885719e-02\n", + " 1.28726608e-01 1.27063324e-01 9.07894556e-02 1.76148919e-01\n", + " 1.37577360e-01 8.69484186e-02 1.00196599e-01 7.21575597e-02\n", + " 1.29576551e-01 4.75091352e-02 3.99290182e-02 8.56377755e-02\n", + " 4.06802028e-02 1.30272969e-01 2.69973342e-02 4.56887073e-02\n", + " 1.00197940e-01 3.47159019e-02 8.26831040e-02 6.72008043e-02\n", + " 6.31191721e-02 3.61395022e-02 4.04118490e-02 6.12924599e-02\n", + " 5.80313360e-02 5.95686506e-02 9.77927979e-02 5.85413866e-02\n", + " 7.53369925e-02 2.50583165e-02 7.51854194e-02 8.26362913e-02\n", + " 6.12558346e-03 3.20480474e-02 4.44764970e-02 2.59943259e-02\n", + " 9.96139155e-02 4.50144790e-02 3.04350651e-02 4.09930550e-02\n", + " 1.06463214e-02 6.30323387e-02 9.42170275e-03 3.56974089e-02\n", + " 1.24036894e-02 2.72303190e-02 1.37031028e-02 1.26523876e-02\n", + " 1.82899276e-02 3.45122005e-02 2.53886998e-02 3.33264016e-02\n", + " 8.17054388e-03 2.75092630e-02 2.42662167e-02 1.85963529e-02\n", + " 8.56331813e-03 1.75160024e-02 1.84164137e-02 2.43706538e-02\n", + " 2.58973492e-02 1.78312846e-02 1.25440396e-02 3.34606353e-02\n", + " 9.57169586e-03 1.94505878e-02 1.64972575e-02 1.38601511e-02\n", + " 2.66122295e-02 1.81662393e-02 1.20641270e-02 4.65548378e-02\n", + " 1.23528752e-02 1.97690722e-02 2.39088456e-02 1.27172822e-02\n", + " 2.11570435e-02 8.79463840e-03 1.60858020e-02 2.47683889e-02\n", + " 1.30864022e-02 7.38670113e-03 1.96208988e-02 2.07790606e-02\n", + " 2.04146991e-02 1.74755765e-02 1.79294981e-02 1.52550178e-02\n", + " 1.49027285e-02 1.89159545e-02 4.28789121e-02 1.81489022e-02\n", + " 1.01894659e-02 1.14321976e-02 3.34697638e-02 2.40377359e-02\n", + " 1.82320418e-02 2.05726931e-02 2.12861199e-02 1.96629477e-02\n", + " 1.70707304e-02 1.34671745e-02 2.94769661e-02 6.55846446e-03\n", + " 4.86114385e-03 1.44770645e-02 6.97875809e-03 1.34063793e-02\n", + " 9.10095627e-03 8.24283409e-03 8.38992123e-03 1.18006696e-02\n", + " 1.18517937e-02 6.43309526e-03 8.43222559e-03 5.53668568e-03\n", + " 1.60726360e-02 3.99633404e-03 6.27168264e-04 1.14769230e-02\n", + " 4.96780642e-03 9.80584190e-03 5.59458282e-03 9.92656692e-03\n", + " 1.24627327e-02 1.06464486e-02 5.19971753e-03 8.21401931e-03\n", + " 1.16540774e-02 4.87052243e-03 1.16187116e-02 4.67851930e-03\n", + " 9.78216854e-03 1.51340680e-02 9.26001893e-03 8.43337707e-03\n", + " 6.32519793e-03 1.89787231e-02 5.68562615e-03 6.67807202e-03\n", + " 9.81830821e-03 1.14572884e-02 1.18917073e-02 7.81250380e-03]\n" + ] + } + ], + "source": [ + "print(error)" + ] } ], "metadata": { From 1ca016dc9067b8525d7b029f86d2fc6ab7ec8213 Mon Sep 17 00:00:00 2001 From: jimxia7 Date: Sat, 1 Aug 2026 18:47:01 -0500 Subject: [PATCH 16/22] Fixing kappa correction --- src/pystrata/output.py | 2 +- tests/WorkFlow.ipynb | 304 ++++++----------------------------------- 2 files changed, 45 insertions(+), 261 deletions(-) diff --git a/src/pystrata/output.py b/src/pystrata/output.py index a1a4a7f..4c23311 100644 --- a/src/pystrata/output.py +++ b/src/pystrata/output.py @@ -594,7 +594,7 @@ def _modify_values(self, values): kappa = -np.polyfit(self.freqs_range,np.log(values_for_kappa),1)[0]/np.pi - delta_kappa = self.kappa_target - kappa + delta_kappa = kappa - self.kappa_target kappa_corrected_values = np.exp(-np.pi*delta_kappa*self.freqs)*values return kappa_corrected_values diff --git a/tests/WorkFlow.ipynb b/tests/WorkFlow.ipynb index 3021b1d..18b85df 100644 --- a/tests/WorkFlow.ipynb +++ b/tests/WorkFlow.ipynb @@ -20,7 +20,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Using pystrata from: D:\\Github\\pystrata\\src\\pystrata\\__init__.py\n" + "Using pystrata from: C:\\Users\\jimxi\\GitHub\\pystrata\\src\\pystrata\\__init__.py\n" ] } ], @@ -81,7 +81,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "b32ef6ba", "metadata": {}, "outputs": [], @@ -321,14 +321,6 @@ "error = fas_kappa - fas_kappa_verify" ] }, - { - "cell_type": "code", - "execution_count": null, - "id": "e82af486", - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": 17, @@ -339,256 +331,48 @@ "name": "stdout", "output_type": "stream", "text": [ - "[3.99790670e-09 4.03515526e-09 4.07277467e-09 4.11076900e-09\n", - " 4.14914236e-09 4.18789894e-09 4.22704295e-09 4.26657866e-09\n", - " 4.30651041e-09 4.34684256e-09 4.38757957e-09 4.42872592e-09\n", - " 4.47028615e-09 4.51226487e-09 4.55466674e-09 4.59749648e-09\n", - " 4.64075888e-09 4.68445876e-09 4.72860103e-09 4.77319066e-09\n", - " 4.81823266e-09 4.86373213e-09 4.90969421e-09 4.95612414e-09\n", - " 5.00302718e-09 5.05040870e-09 5.09827411e-09 5.14662890e-09\n", - " 5.19547864e-09 5.24482894e-09 5.29468553e-09 5.34505417e-09\n", - " 5.39594071e-09 5.44735108e-09 5.49929128e-09 5.55176739e-09\n", - " 5.60478558e-09 5.65835207e-09 5.71247318e-09 5.76715533e-09\n", - " 5.82240499e-09 5.87822873e-09 5.93463321e-09 5.99162516e-09\n", - " 6.04921143e-09 6.10739892e-09 6.16619465e-09 6.22560572e-09\n", - " 6.28563933e-09 6.34630276e-09 6.40760341e-09 6.46954875e-09\n", - " 6.53214638e-09 6.59540397e-09 6.65932931e-09 6.72393030e-09\n", - " 6.78921492e-09 6.85519127e-09 6.92186757e-09 6.98925214e-09\n", - " 7.05735340e-09 7.12617989e-09 7.19574028e-09 7.26604334e-09\n", - " 7.33709796e-09 7.40891315e-09 7.48149805e-09 7.55486190e-09\n", - " 7.62901411e-09 7.70396417e-09 7.77972172e-09 7.85629653e-09\n", - " 7.93369850e-09 8.01193767e-09 8.09102422e-09 8.17096846e-09\n", - " 8.25178083e-09 8.33347194e-09 8.41605253e-09 8.49953349e-09\n", - " 8.58392585e-09 8.66924082e-09 8.75548973e-09 8.84268408e-09\n", - " 8.93083555e-09 9.01995594e-09 9.11005725e-09 9.20115164e-09\n", - " 9.29325141e-09 9.38636907e-09 9.48051727e-09 9.57570887e-09\n", - " 9.67195689e-09 9.76927453e-09 9.86767519e-09 9.96717243e-09\n", - " 1.00677800e-08 1.01695119e-08 1.02723823e-08 1.03764056e-08\n", - " 1.04815962e-08 1.05879690e-08 1.06955389e-08 1.08043211e-08\n", - " 1.09143311e-08 3.37459732e-08 1.08858451e-07 1.85901370e-07\n", - " 2.64913421e-07 3.45934004e-07 4.29003245e-07 5.14162012e-07\n", - " 6.01451922e-07 6.90915357e-07 7.82595481e-07 8.76536247e-07\n", - " 9.72782417e-07 1.07137957e-06 1.17237414e-06 1.27581337e-06\n", - " 1.38174542e-06 1.49021929e-06 1.60128490e-06 1.71499308e-06\n", - " 1.83139558e-06 1.95054509e-06 2.07249529e-06 2.19730081e-06\n", - " 2.32501729e-06 2.45570139e-06 2.58941079e-06 2.72620422e-06\n", - " 2.86614149e-06 3.00928350e-06 3.15569225e-06 3.30543085e-06\n", - " 3.45856360e-06 3.61515593e-06 3.77527447e-06 3.93898706e-06\n", - " 4.10636278e-06 4.27747194e-06 4.45238616e-06 4.63117831e-06\n", - " 4.81392262e-06 5.00069464e-06 5.19157131e-06 5.38663093e-06\n", - " 5.58595325e-06 5.78961944e-06 5.99771214e-06 6.21031549e-06\n", - " 6.42751514e-06 6.64939828e-06 6.87605370e-06 7.10757177e-06\n", - " 7.34404448e-06 7.58556551e-06 7.83223020e-06 8.08413562e-06\n", - " 8.34138059e-06 8.60406569e-06 8.87229333e-06 9.14616775e-06\n", - " 9.42579508e-06 9.71128335e-06 1.00027425e-05 1.03002845e-05\n", - " 1.06040234e-05 1.09140750e-05 1.12305575e-05 1.15535912e-05\n", - " 1.18832982e-05 1.22198033e-05 1.25632333e-05 1.29137170e-05\n", - " 1.32713860e-05 1.36363740e-05 1.40088171e-05 1.43888539e-05\n", - " 1.47766254e-05 1.51722751e-05 1.55759493e-05 1.59877967e-05\n", - " 1.64079686e-05 1.68366193e-05 1.73492647e-05 2.82367993e-05\n", - " 3.94025432e-05 5.08520717e-05 6.25910633e-05 7.46253011e-05\n", - " 8.69606754e-05 9.96031849e-05 1.12558939e-04 1.25834161e-04\n", - " 1.39435186e-04 1.53368470e-04 1.67640584e-04 1.82258221e-04\n", - " 1.97228200e-04 2.12557461e-04 2.28253076e-04 2.44322242e-04\n", - " 2.60772293e-04 2.77610695e-04 2.94845051e-04 3.12483105e-04\n", - " 3.30532741e-04 3.49001990e-04 3.67899028e-04 3.87232182e-04\n", - " 4.07009930e-04 4.27240908e-04 4.47933906e-04 4.69097880e-04\n", - " 4.90741944e-04 5.12875384e-04 5.35507651e-04 5.58648372e-04\n", - " 5.82307348e-04 6.06494561e-04 6.31220172e-04 6.56494531e-04\n", - " 6.82328173e-04 7.08731829e-04 7.35716423e-04 7.63293079e-04\n", - " 7.91473124e-04 8.20268091e-04 8.49689724e-04 8.79749978e-04\n", - " 9.10461030e-04 9.41835275e-04 1.03239106e-03 1.19774229e-03\n", - " 1.36721115e-03 1.54087974e-03 1.71883172e-03 1.90115226e-03\n", - " 2.08792816e-03 2.27924777e-03 2.47520114e-03 2.67587993e-03\n", - " 2.88137753e-03 3.09178906e-03 3.30721139e-03 3.52774317e-03\n", - " 3.75348492e-03 3.98453896e-03 4.22100954e-03 4.46300283e-03\n", - " 4.71062695e-03 4.96399204e-03 5.22321024e-03 5.48839580e-03\n", - " 5.75966505e-03 6.03713647e-03 6.32093075e-03 6.61117078e-03\n", - " 6.90798173e-03 7.21149108e-03 7.52182865e-03 7.83912667e-03\n", - " 8.16351979e-03 8.49514516e-03 8.83414246e-03 9.18065392e-03\n", - " 9.64234842e-03 1.01598597e-02 1.06893361e-02 1.12310117e-02\n", - " 1.17851248e-02 1.23519184e-02 1.29316397e-02 1.35245407e-02\n", - " 1.41308779e-02 1.47509128e-02 1.53849115e-02 1.60331452e-02\n", - " 1.66958900e-02 1.73734272e-02 1.80660434e-02 1.87740304e-02\n", - " 1.94976853e-02 2.02373111e-02 2.09932159e-02 2.17657139e-02\n", - " 2.25551251e-02 2.33617752e-02 2.41859962e-02 2.50281262e-02\n", - " 2.58885094e-02 2.67674966e-02 2.77898036e-02 2.89447706e-02\n", - " 3.01255798e-02 3.13327338e-02 3.25667444e-02 3.38281330e-02\n", - " 3.51174308e-02 3.64351791e-02 3.77819289e-02 3.91582420e-02\n", - " 4.05646903e-02 4.20018566e-02 4.34703346e-02 4.49707292e-02\n", - " 4.65036565e-02 4.80697440e-02 4.96696314e-02 5.13039700e-02\n", - " 5.29734234e-02 5.46786678e-02 5.64203920e-02 5.81468862e-02\n", - " 5.96059628e-02 6.10943668e-02 6.26126498e-02 6.41613738e-02\n", - " 6.57411113e-02 6.73524454e-02 6.89959702e-02 7.06722910e-02\n", - " 7.23820241e-02 7.41257977e-02 7.59042516e-02 7.77180375e-02\n", - " 7.95678195e-02 8.14542742e-02 8.33780908e-02 8.53399713e-02\n", - " 8.73406314e-02 8.93152620e-02 9.04189604e-02 9.15381812e-02\n", - " 9.26731698e-02 9.38241754e-02 9.49914520e-02 9.61752577e-02\n", - " 9.73758554e-02 9.85935125e-02 9.98285011e-02 1.01081098e-01\n", - " 1.02351586e-01 1.03640250e-01 1.04947384e-01 1.06273284e-01\n", - " 1.07618253e-01 1.09271805e-01 1.11381560e-01 1.13530300e-01\n", - " 1.15718747e-01 1.17947633e-01 1.20217706e-01 1.22529727e-01\n", - " 1.24884471e-01 1.27282731e-01 1.29725311e-01 1.32213035e-01\n", - " 1.34746738e-01 1.37327275e-01 1.39955515e-01 1.42150173e-01\n", - " 1.44043309e-01 1.45964997e-01 1.47915714e-01 1.49895952e-01\n", - " 1.51906208e-01 1.53946990e-01 1.56018815e-01 1.58122210e-01\n", - " 1.60257712e-01 1.62425868e-01 1.64627236e-01 1.65564039e-01\n", - " 1.62167018e-01 1.58655215e-01 1.55026051e-01 1.51276895e-01\n", - " 1.47405061e-01 1.43407806e-01 1.39282327e-01 1.35025765e-01\n", - " 1.30635199e-01 1.26107646e-01 1.21273050e-01 1.13310041e-01\n", - " 1.05116882e-01 9.66885296e-02 8.80198319e-02 7.91055279e-02\n", - " 6.99402446e-02 6.05184940e-02 5.08346710e-02 4.08830504e-02\n", - " 3.06577842e-02 4.23447675e-02 5.83716887e-02 7.48212582e-02\n", - " 9.17026342e-02 1.09025173e-01 1.26798432e-01 1.45032178e-01\n", - " 1.63736389e-01 1.82921259e-01 1.98085470e-01 2.08253410e-01\n", - " 2.18664993e-01 2.29325415e-01 2.40239987e-01 2.51414136e-01\n", - " 2.62853408e-01 2.74563471e-01 2.86550120e-01 2.89609204e-01\n", - " 2.89876259e-01 2.90106022e-01 2.90297411e-01 2.90449316e-01\n", - " 2.90560603e-01 2.90630109e-01 2.90656641e-01 2.94842717e-01\n", - " 3.01149934e-01 3.07583864e-01 3.14147120e-01 3.20842376e-01\n", - " 3.27672364e-01 3.34639880e-01 3.43088452e-01 3.63287340e-01\n", - " 3.83988673e-01 4.05203686e-01 4.26943879e-01 4.49221022e-01\n", - " 4.72047163e-01 4.95434635e-01 4.95918634e-01 4.96202369e-01\n", - " 4.96415983e-01 4.96557395e-01 4.96624471e-01 4.96615022e-01\n", - " 4.91339051e-01 4.72964250e-01 4.53997331e-01 4.34423824e-01\n", - " 4.14228897e-01 3.93397347e-01 3.71913587e-01 3.35561124e-01\n", - " 2.97340322e-01 2.57985647e-01 2.17469455e-01 1.75763396e-01\n", - " 1.32838394e-01 1.73440221e-01 2.21437450e-01 2.70775600e-01\n", - " 3.21487363e-01 3.73606281e-01 4.33749624e-01 5.20765619e-01\n", - " 6.10213366e-01 7.02152896e-01 7.96645830e-01 8.93755431e-01\n", - " 8.49604224e-01 7.56121595e-01 6.59780993e-01 5.60509223e-01\n", - " 4.58231088e-01 4.31443893e-01 4.71942601e-01 5.13558028e-01\n", - " 5.56318468e-01 6.00253000e-01 6.40421093e-01 6.77503648e-01\n", - " 7.15577751e-01 7.54668680e-01 7.94802426e-01 7.48683357e-01\n", - " 6.72928297e-01 5.94772848e-01 5.14152252e-01 4.35383125e-01\n", - " 3.77705641e-01 3.18206386e-01 2.56835619e-01 1.93542121e-01\n", - " 1.84822237e-01 1.96799083e-01 2.09110495e-01 2.21765479e-01\n", - " 2.37367410e-01 2.56423502e-01 2.76027536e-01 2.96194571e-01\n", - " 3.16134991e-01 3.35130418e-01 3.54663535e-01 3.74749254e-01\n", - " 4.11493414e-01 4.76658316e-01 5.43812793e-01 6.13013918e-01\n", - " 6.43794704e-01 6.38677074e-01 6.33274264e-01 6.27576986e-01\n", - " 5.46248227e-01 4.43550192e-01 3.37409581e-01 2.39666804e-01\n", - " 1.88740433e-01 1.36095541e-01 8.16794978e-02 6.33482376e-02\n", - " 6.14178681e-02 5.94106563e-02 8.27117399e-02 1.68893365e-01\n", - " 2.57958522e-01 3.49997720e-01 3.87973808e-01 4.26545422e-01\n", - " 4.66354405e-01 4.43617905e-01 4.01226166e-01 3.57275726e-01\n", - " 3.63592379e-01 3.98761520e-01 4.35082634e-01 4.00612963e-01\n", - " 3.16198768e-01 2.28706924e-01 2.59394588e-01 3.63241216e-01\n", - " 4.70754588e-01 5.13344076e-01 5.32163554e-01 5.51548983e-01\n", - " 5.23833814e-01 4.90094216e-01 4.72214450e-01 5.53959187e-01\n", - " 6.38629904e-01 6.40293581e-01 5.35710495e-01 4.27026721e-01\n", - " 4.54101485e-01 5.14192030e-01 5.76021667e-01 6.38648441e-01\n", - " 7.03546475e-01 5.99717011e-01 4.22437807e-01 2.70317959e-01\n", - " 2.12673224e-01 1.52671486e-01 1.85079467e-01 2.38837995e-01\n", - " 2.32398643e-01 1.50525890e-01 9.36545008e-02 2.18959304e-01\n", - " 3.49389205e-01 6.25859326e-01 9.37465972e-01 1.26996200e+00\n", - " 1.62110476e+00 1.88526290e+00 2.02365305e+00 2.14333199e+00\n", - " 2.20415215e+00 2.23886153e+00 2.13020349e+00 2.01998161e+00\n", - " 1.94487921e+00 1.86215503e+00 1.70473397e+00 1.54653445e+00\n", - " 1.53122400e+00 1.52100963e+00 1.59149677e+00 1.61845880e+00\n", - " 1.34256982e+00 1.04817320e+00 7.21839995e-01 5.35446476e-01\n", - " 6.34876327e-01 7.66582164e-01 9.32350701e-01 9.06122109e-01\n", - " 7.84242719e-01 6.34931692e-01 4.96834082e-01 4.97947745e-01\n", - " 4.96266632e-01 4.90108888e-01 4.61058578e-01 4.19546719e-01\n", - " 5.17119868e-01 5.64907864e-01 4.98529488e-01 4.71469788e-01\n", - " 4.63675224e-01 4.68062932e-01 4.64316805e-01 4.50897509e-01\n", - " 5.31485971e-01 5.98567460e-01 6.14074310e-01 5.49984487e-01\n", - " 4.63916891e-01 3.74575674e-01 2.73523865e-01 1.92501880e-01\n", - " 1.64074530e-01 1.50490138e-01 2.43304051e-01 4.81253825e-01\n", - " 6.83671829e-01 8.71032555e-01 1.02751395e+00 1.10564444e+00\n", - " 1.13885521e+00 1.26339610e+00 1.46812437e+00 1.49930391e+00\n", - " 1.38213241e+00 1.24832543e+00 1.15202866e+00 1.13503282e+00\n", - " 1.14858520e+00 1.12516353e+00 1.06639740e+00 9.96552917e-01\n", - " 9.82592705e-01 8.70016283e-01 6.45571813e-01 4.26084927e-01\n", - " 4.31959539e-01 7.48349667e-01 6.95562329e-01 4.58219817e-01\n", - " 2.65636753e-01 1.11738016e-01 6.07797129e-02 1.01267580e-01\n", - " 1.22065549e-01 9.69451505e-02 2.65694179e-01 5.44680533e-01\n", - " 7.07702915e-01 7.55100455e-01 5.62123183e-01 3.29720871e-01\n", - " 7.74963036e-02 1.65601981e-01 1.09949611e-01 2.48227123e-01\n", - " 4.71604498e-01 4.25322304e-01 3.30138384e-01 5.21836584e-01\n", - " 5.07207006e-01 3.55821310e-01 3.08202620e-01 3.66817224e-01\n", - " 4.36731573e-01 5.29299970e-01 6.21379514e-01 4.81166176e-01\n", - " 2.69422356e-01 2.47994310e-01 2.95644326e-01 9.78884987e-02\n", - " 4.49559123e-01 8.38764796e-01 9.48939475e-01 9.45702145e-01\n", - " 1.02523325e+00 1.01714644e+00 1.04986350e+00 1.24383351e+00\n", - " 9.30403200e-01 7.26993304e-01 7.09880802e-01 4.17183732e-01\n", - " 5.00390586e-01 7.29295700e-01 9.29470395e-01 7.38987273e-01\n", - " 3.54841119e-01 1.04174050e-01 1.27553279e-01 3.38046314e-01\n", - " 4.55613604e-01 3.04080160e-01 5.28958809e-01 5.26368073e-01\n", - " 9.90308091e-01 6.18761711e-01 9.49998816e-01 8.25623609e-01\n", - " 3.39380647e-01 1.51461946e-01 4.70455986e-01 5.54498357e-01\n", - " 5.18025917e-01 5.20518115e-01 6.55262046e-01 5.20816187e-01\n", - " 4.21157053e-01 1.15869854e-01 2.62948455e-01 4.40284867e-01\n", - " 4.66379193e-01 6.36742103e-01 3.25043766e-01 4.05992638e-01\n", - " 3.46185598e-01 2.90744979e-01 1.60848819e-01 1.94641580e-01\n", - " 1.97936815e-01 1.69436825e-01 2.89134008e-01 1.97335369e-01\n", - " 1.56843579e-01 1.93211110e-01 6.79056527e-01 5.43106296e-01\n", - " 6.14916465e-01 5.68455096e-01 2.81133163e-01 2.67864068e-01\n", - " 3.85464473e-01 3.24310033e-01 3.37225647e-01 3.32265039e-01\n", - " 5.17685390e-01 4.92476627e-01 2.64627435e-01 1.25703949e-01\n", - " 7.44912279e-02 2.51412772e-01 2.93641677e-01 9.79886681e-02\n", - " 1.05407414e-01 2.01438999e-01 1.27777008e-01 1.65460938e-01\n", - " 3.05283869e-01 3.55323254e-01 5.07031807e-01 3.94853063e-01\n", - " 1.79876148e-01 1.39015811e-01 1.18098920e-01 1.13783577e-01\n", - " 1.24539019e-01 1.13438294e-01 1.20954665e-01 1.29696737e-01\n", - " 1.88586794e-01 2.40533051e-01 1.82605033e-01 4.87087211e-02\n", - " 7.95826924e-02 9.38928011e-02 2.09622369e-01 1.32258365e-01\n", - " 2.25459491e-01 1.89260877e-01 2.08924137e-01 6.05034599e-02\n", - " 8.21592750e-02 1.54049776e-02 1.91605664e-02 6.31015480e-02\n", - " 1.89624382e-01 1.90887602e-01 1.41508037e-01 1.05489981e-01\n", - " 1.00819527e-01 9.15599939e-02 2.12725562e-01 4.37658954e-01\n", - " 2.43632375e-01 9.17656027e-02 1.73750442e-01 2.64675141e-01\n", - " 1.99608167e-01 7.23112803e-02 9.63896974e-02 1.94386107e-01\n", - " 5.60726470e-02 7.43635964e-02 6.69518703e-02 3.38051047e-02\n", - " 1.01355944e-01 2.25859848e-01 1.83127886e-01 1.10357828e-01\n", - " 1.17467042e-01 7.39272606e-02 1.17208506e-01 1.63961487e-01\n", - " 1.00932558e-01 7.91351778e-02 5.47292715e-02 1.99757862e-01\n", - " 1.49370832e-01 4.39752758e-02 7.49679646e-02 1.49788539e-01\n", - " 1.16105173e-01 5.61932211e-02 9.69556696e-02 1.27699329e-01\n", - " 1.45123432e-01 1.74568832e-01 1.23718486e-01 6.43081711e-02\n", - " 1.03565261e-01 1.78884293e-01 1.38258540e-01 1.40698651e-01\n", - " 1.04966940e-01 8.42981032e-02 4.72891098e-02 1.65184543e-01\n", - " 6.09962995e-02 7.03369253e-02 2.17102433e-01 1.17513258e-01\n", - " 1.65265463e-01 8.88903547e-02 8.28240134e-02 4.81704079e-02\n", - " 7.23436363e-02 7.13169589e-02 1.30375670e-01 6.58954379e-02\n", - " 4.12068720e-02 7.39626020e-02 1.47753655e-01 2.64872917e-02\n", - " 5.79398281e-02 2.02868241e-01 6.41706825e-02 3.60885719e-02\n", - " 1.28726608e-01 1.27063324e-01 9.07894556e-02 1.76148919e-01\n", - " 1.37577360e-01 8.69484186e-02 1.00196599e-01 7.21575597e-02\n", - " 1.29576551e-01 4.75091352e-02 3.99290182e-02 8.56377755e-02\n", - " 4.06802028e-02 1.30272969e-01 2.69973342e-02 4.56887073e-02\n", - " 1.00197940e-01 3.47159019e-02 8.26831040e-02 6.72008043e-02\n", - " 6.31191721e-02 3.61395022e-02 4.04118490e-02 6.12924599e-02\n", - " 5.80313360e-02 5.95686506e-02 9.77927979e-02 5.85413866e-02\n", - " 7.53369925e-02 2.50583165e-02 7.51854194e-02 8.26362913e-02\n", - " 6.12558346e-03 3.20480474e-02 4.44764970e-02 2.59943259e-02\n", - " 9.96139155e-02 4.50144790e-02 3.04350651e-02 4.09930550e-02\n", - " 1.06463214e-02 6.30323387e-02 9.42170275e-03 3.56974089e-02\n", - " 1.24036894e-02 2.72303190e-02 1.37031028e-02 1.26523876e-02\n", - " 1.82899276e-02 3.45122005e-02 2.53886998e-02 3.33264016e-02\n", - " 8.17054388e-03 2.75092630e-02 2.42662167e-02 1.85963529e-02\n", - " 8.56331813e-03 1.75160024e-02 1.84164137e-02 2.43706538e-02\n", - " 2.58973492e-02 1.78312846e-02 1.25440396e-02 3.34606353e-02\n", - " 9.57169586e-03 1.94505878e-02 1.64972575e-02 1.38601511e-02\n", - " 2.66122295e-02 1.81662393e-02 1.20641270e-02 4.65548378e-02\n", - " 1.23528752e-02 1.97690722e-02 2.39088456e-02 1.27172822e-02\n", - " 2.11570435e-02 8.79463840e-03 1.60858020e-02 2.47683889e-02\n", - " 1.30864022e-02 7.38670113e-03 1.96208988e-02 2.07790606e-02\n", - " 2.04146991e-02 1.74755765e-02 1.79294981e-02 1.52550178e-02\n", - " 1.49027285e-02 1.89159545e-02 4.28789121e-02 1.81489022e-02\n", - " 1.01894659e-02 1.14321976e-02 3.34697638e-02 2.40377359e-02\n", - " 1.82320418e-02 2.05726931e-02 2.12861199e-02 1.96629477e-02\n", - " 1.70707304e-02 1.34671745e-02 2.94769661e-02 6.55846446e-03\n", - " 4.86114385e-03 1.44770645e-02 6.97875809e-03 1.34063793e-02\n", - " 9.10095627e-03 8.24283409e-03 8.38992123e-03 1.18006696e-02\n", - " 1.18517937e-02 6.43309526e-03 8.43222559e-03 5.53668568e-03\n", - " 1.60726360e-02 3.99633404e-03 6.27168264e-04 1.14769230e-02\n", - " 4.96780642e-03 9.80584190e-03 5.59458282e-03 9.92656692e-03\n", - " 1.24627327e-02 1.06464486e-02 5.19971753e-03 8.21401931e-03\n", - " 1.16540774e-02 4.87052243e-03 1.16187116e-02 4.67851930e-03\n", - " 9.78216854e-03 1.51340680e-02 9.26001893e-03 8.43337707e-03\n", - " 6.32519793e-03 1.89787231e-02 5.68562615e-03 6.67807202e-03\n", - " 9.81830821e-03 1.14572884e-02 1.18917073e-02 7.81250380e-03]\n" + "[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n" ] } ], From 27eec0e59a433c3a8e2d5b00b2f1bb76203c6ceb Mon Sep 17 00:00:00 2001 From: jimxia7 Date: Sun, 2 Aug 2026 01:26:37 -0500 Subject: [PATCH 17/22] Testing kappa corrected out --- src/pystrata/motion.py | 34 +--- src/pystrata/output.py | 259 +++++++++++++++++------- tests/WorkFlow.ipynb | 436 +++++++++++++++++++++++++++++++++++++---- 3 files changed, 590 insertions(+), 139 deletions(-) diff --git a/src/pystrata/motion.py b/src/pystrata/motion.py index 8e8204b..794fdd7 100644 --- a/src/pystrata/motion.py +++ b/src/pystrata/motion.py @@ -30,42 +30,10 @@ # Gravity in m/sec² from scipy.constants import g as GRAVITY +from .kappa import DEFAULT_KAPPA_FREQS, _compute_fourier_spectrum _trapezoid = np.trapezoid -DEFAULT_KAPPA_FREQS = np.logspace(np.log10(10), np.log10(30), 100) - -def _compute_fourier_spectrum(time_step, - accels, - freqs = None, - fa_length=None, - ko_bandwidth = None): - """Compute the Fourier Amplitude Spectrum of the time series.""" - - if fa_length is None: - # Use the next power of 2 for the length - n = 1 - while n < accels.size: - n <<= 1 - else: - n = fa_length - - fft_freqs = np.fft.rfftfreq(n, d = time_step) - - if freqs is None: - freqs = fft_freqs - - if ko_bandwidth is None: - FAS = np.interp(freqs, - fft_freqs, - np.fft.rfft(accels, n)) - else: - FAS = pykooh.smooth(freqs, - fft_freqs, - np.fft.rfft(accels, n), - ko_bandwidth) - - return freqs, FAS class WaveField(enum.Enum): outcrop = 0 diff --git a/src/pystrata/output.py b/src/pystrata/output.py index 4c23311..4f01c3b 100644 --- a/src/pystrata/output.py +++ b/src/pystrata/output.py @@ -516,88 +516,197 @@ def __call__(self, calc, name=None): def _modify_values(self, values): return values - # def kappa_correction(self,freqs_range_for_kappa,kappa_target,name = None): - # values = self.values if self.values.ndim == 1 else self.values[:, -1] - # values_for_kappa = np.interp(freqs_range_for_kappa, self.freqs, values) +class FourierComplexSpectrumOutput(LocationBasedOutput): + _const_ref = True + xlabel = "Frequency (Hz)" + ylabel = "Fourier Ampl. (cm/s)" + + ref_name = "freq" + # Make None the default, so that the default will be not applying smoothing. + # This is to make calling this output "cleaner". + def __init__(self, freqs, location): + super().__init__(freqs, location) + + @property + def freqs(self): + return self._refs + + def __call__(self, calc, name=None): + Output.__call__(self, calc, name) + self._refs = calc.motion.freqs + loc = self._get_location(calc) + tf = calc.calc_accel_tf(calc.loc_input, loc) - # kappa = -np.polyfit(freqs_range_for_kappa,np.log(values_for_kappa),1)[0]/np.pi + # Only return the absolute value + fcs = tf * calc.motion.fourier_amps - # delta_kappa = kappa_target - kappa - # kappa_corrected_values = np.exp(-np.pi*delta_kappa*self.freqs)*self.values + values = self._modify_values(fcs) - # self.reset_values() + self._add_values(values) - # self._add_values(kappa_corrected_values) - # self._names.append(name) + def _modify_values(self, values): + return values -class KappaOutput(FourierAmplitudeSpectrumOutput): +def _fit_kappa(freqs, amps): + """Fit kappa to the log of the Fourier amplitudes. - ylabel = "Kappa" + Parameters + ---------- + freqs : array_like + frequencies (Hz) over which the fit is performed + amps : array_like + Fourier amplitudes at *freqs*. Complex amplitudes are reduced to their + magnitude prior to the fit. - def __init__(self, freqs_range, location, ko_bandwidth=None): - super().__init__(np.array(['Kappa']), location, ko_bandwidth) - self._freqs_range = freqs_range + Returns + ------- + kappa : float + fit kappa (sec) + intercept : float + intercept of the fit in log-space + """ + slope, intercept = np.polyfit(freqs, np.log(np.abs(amps)), 1) + + return -slope / np.pi, intercept + + +class KappaCorrectionMixin(Output): + """Parameters and math shared by the kappa corrected outputs. + + The mixin is listed *before* the output that it modifies -- that is, + ``class Foo(KappaCorrectionMixin, BarOutput)`` -- so that its initializer + and correction hooks take precedence in the method resolution order. The + two kappa arguments are inserted after the references and the remaining + arguments are passed through to the output. :class:`Output` is only a base + so that the attributes provided by that output are resolvable; the mixin is + not used on its own. + """ + + # Provided by the output that the mixin is combined with + freqs: np.ndarray + ko_bandwidth: float | None + + def __init__(self, refs, freqs_range_for_kappa, kappa_target, *args, **kwargs): + super().__init__(refs, *args, **kwargs) + self._freqs_range = freqs_range_for_kappa + self._kappa_target = kappa_target @property - def freqs(self): + def freqs_range(self): + """Frequencies (Hz) over which kappa is fit.""" return self._freqs_range + @property + def kappa_target(self): + """Target kappa (sec) of the corrected output.""" + return self._kappa_target + + def _calc_correction(self, freqs, amps): + """Factor that shifts the fit kappa onto the target kappa. + + Parameters + ---------- + freqs : array_like + frequencies (Hz) at which the correction is computed + amps : array_like + Fourier amplitudes at :attr:`freqs_range` used for the kappa fit + """ + kappa, _ = _fit_kappa(self.freqs_range, amps) + delta_kappa = kappa - self.kappa_target + + return np.exp(-np.pi * delta_kappa * freqs) + + +class SpectrumKappaCorrectionMixin(KappaCorrectionMixin): + """Kappa correction of outputs whose values are a Fourier spectrum.""" def _modify_values(self, values): + amps = np.interp(self.freqs_range, self.freqs, values) - kappa = -np.polyfit(self.freqs,np.log(values),1)[0]/np.pi - kappa = np.array([kappa]) + return self._calc_correction(self.freqs, amps) * values - return kappa -class KappaFittedLineOutput(FourierAmplitudeSpectrumOutput): +class TransferFuncKappaCorrectionMixin(KappaCorrectionMixin): + """Kappa correction of outputs computed from an acceleration transfer function. + + Kappa is fit to the Fourier amplitudes of the output motion -- the transfer + function scaled by the Fourier amplitudes of the input motion -- and the + correction is applied to the transfer function. + """ + + def _modify_tf(self, calc, values): + freqs = self._tf_freqs(calc) + tf = np.interp(self.freqs_range, freqs, values) + amps = np.abs(tf * self._calc_input_amps(calc)) + + return self._calc_correction(freqs, amps) * values + + def _tf_freqs(self, calc): + """Frequencies (Hz) at which the transfer function is provided.""" + return calc.motion.freqs + + def _calc_input_amps(self, calc): + """Fourier amplitudes of the input motion at :attr:`freqs_range`.""" + if not hasattr(calc.motion, "time_step"): + return np.interp( + self.freqs_range, calc.motion.freqs, calc.motion.fourier_amps + ) + + _, amps = _compute_fourier_spectrum( + calc.motion.time_step, + calc.motion._accels, + freqs=self.freqs_range, + ko_bandwidth=self.ko_bandwidth, + ) + + return amps + + +class KappaOutput(FourierAmplitudeSpectrumOutput): ylabel = "Kappa" def __init__(self, freqs_range, location, ko_bandwidth=None): - super().__init__(freqs_range, location, ko_bandwidth) + super().__init__(np.array(['Kappa']), location, ko_bandwidth) self._freqs_range = freqs_range @property def freqs(self): return self._freqs_range - def _modify_values(self, values): + kappa, _ = _fit_kappa(self.freqs, values) - coeffs = np.polyfit(self.freqs,np.log(values),1) - slope, intercept = coeffs + return np.array([kappa]) - Kappa_Fitted_Line = np.exp(slope*self.freqs+intercept) +class KappaFittedLineOutput(FourierAmplitudeSpectrumOutput): - return Kappa_Fitted_Line + ylabel = "Kappa" -class KappaCorrectFourierAmplitudeSpectrumOutput(FourierAmplitudeSpectrumOutput): + def __init__(self, freqs_range, location, ko_bandwidth=None): + super().__init__(freqs_range, location, ko_bandwidth) - def __init__(self, freqs, freqs_range_for_kappa,kappa_target, location, ko_bandwidth=None): - super().__init__(freqs, location, ko_bandwidth) - self._freqs_range = freqs_range_for_kappa - self._kappa_target = kappa_target - self._ko_bandwidth = ko_bandwidth + def _modify_values(self, values): + kappa, intercept = _fit_kappa(self.freqs, values) - @property - def freqs_range(self): - return self._freqs_range + return np.exp(-np.pi * kappa * self.freqs + intercept) - @property - def kappa_target(self): - return self._kappa_target - - def _modify_values(self, values): +class KappaCorrectFourierAmplitudeSpectrumOutput( + SpectrumKappaCorrectionMixin, FourierAmplitudeSpectrumOutput +): + """Kappa corrected Fourier amplitude spectrum. - values_for_kappa = np.interp(self.freqs_range,self.freqs,values) + Created with ``(freqs, freqs_range_for_kappa, kappa_target, location, + ko_bandwidth=None)``. + """ - kappa = -np.polyfit(self.freqs_range,np.log(values_for_kappa),1)[0]/np.pi +class KappaCorrectFourierComplexSpectrumOutput( + SpectrumKappaCorrectionMixin, FourierComplexSpectrumOutput +): + """Kappa corrected complex Fourier spectrum. - delta_kappa = kappa - self.kappa_target - kappa_corrected_values = np.exp(-np.pi*delta_kappa*self.freqs)*values - - return kappa_corrected_values + Created with ``(freqs, freqs_range_for_kappa, kappa_target, location)``. + """ class ResponseSpectrumOutput(LocationBasedOutput): @@ -659,19 +768,23 @@ def ko_bandwidth(self): def _modify_tf(self,calc,values): - values_for_kappa = np.interp(self.freqs_range,self.freqs,values) + values_for_kappa = np.interp(self.freqs_range,calc.motion.freqs,values) + + if not hasattr(calc.motion, "time_step"): + fas = np.interp(self.freqs_range,calc.motion.freqs,calc.motion.fourier_amps) + else: + _, fas = _compute_fourier_spectrum( + calc.motion.time_step, + calc.motion._accels, + freqs=self.freqs_range, + ko_bandwidth=self.ko_bandwidth) - _, fas = _compute_fourier_spectrum( - calc.motion.time_step, - calc.motion._accels, - freqs=self.freqs_range, - ko_bandwidth=self.ko_bandwidth) fas = np.abs(values_for_kappa * fas) kappa = -np.polyfit(self.freqs_range,np.log(fas),1)[0]/np.pi - delta_kappa = self.kappa_target - kappa - kappa_corrected_values = np.exp(-np.pi*delta_kappa*self.freqs)*values + delta_kappa = kappa - self.kappa_target + kappa_corrected_values = np.exp(-np.pi*delta_kappa*calc.motion.freqs)*values return kappa_corrected_values @@ -777,19 +890,23 @@ def kappa_target(self): def _modify_tf(self, calc, values): - values_for_kappa = np.interp(self.freqs_range,self.freqs,values) + values_for_kappa = np.interp(self.freqs_range,calc.motion.freqs,values) + + if not hasattr(calc.motion, "time_step"): + fas = np.interp(self.freqs_range,calc.motion.freqs,calc.motion.fourier_amps) + else: + _, fas = _compute_fourier_spectrum( + calc.motion.time_step, + calc.motion._accels, + freqs=self.freqs_range, + ko_bandwidth=self.ko_bandwidth) - _, fas = _compute_fourier_spectrum( - calc.motion.time_step, - calc.motion._accels, - freqs=self.freqs_range, - ko_bandwidth=self.ko_bandwidth) fas = np.abs(values_for_kappa * fas) kappa = -np.polyfit(self.freqs_range,np.log(fas),1)[0]/np.pi - delta_kappa = self.kappa_target - kappa - kappa_corrected_values = np.exp(-np.pi*delta_kappa*self.freqs)*values + delta_kappa = kappa - self.kappa_target + kappa_corrected_values = np.exp(-np.pi*delta_kappa*calc.motion.freqs)*values return kappa_corrected_values @@ -861,19 +978,23 @@ def kappa_target(self): def _modify_tf(self, calc, values): - values_for_kappa = np.interp(self.freqs_range,self.freqs,values) + values_for_kappa = np.interp(self.freqs_range,calc.motion.freqs,values) + + if not hasattr(calc.motion, "time_step"): + fas = np.interp(self.freqs_range,calc.motion.freqs,calc.motion.fourier_amps) + else: + _, fas = _compute_fourier_spectrum( + calc.motion.time_step, + calc.motion._accels, + freqs=self.freqs_range, + ko_bandwidth=self.ko_bandwidth) - _, fas = _compute_fourier_spectrum( - calc.motion.time_step, - calc.motion._accels, - freqs=self.freqs_range, - ko_bandwidth=self.ko_bandwidth) fas = np.abs(values_for_kappa * fas) kappa = -np.polyfit(self.freqs_range,np.log(fas),1)[0]/np.pi - delta_kappa = self.kappa_target - kappa - kappa_corrected_values = np.exp(-np.pi*delta_kappa*self.freqs)*values + delta_kappa = kappa - self.kappa_target + kappa_corrected_values = np.exp(-np.pi*delta_kappa*calc.motion.freqs)*values return kappa_corrected_values diff --git a/tests/WorkFlow.ipynb b/tests/WorkFlow.ipynb index 18b85df..95f060c 100644 --- a/tests/WorkFlow.ipynb +++ b/tests/WorkFlow.ipynb @@ -174,26 +174,29 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "458b1a12", "metadata": {}, "outputs": [], "source": [ "# Calculation Loop\n", - "outputs_freqs = np.logspace(np.log10(0.01),np.log10(50),1000)\n", - "RS_freqs = np.logspace(np.log10(0.05),np.log10(50),1000)\n", + "outputs_freqs = np.logspace(np.log10(0.05),np.log10(50),1000)\n", "\n", "Kappa_freqs = outputs_freqs[\n", " (outputs_freqs >= 10) & (outputs_freqs <= 30)\n", "]\n", "\n", "output = pystrata.output.OutputCollection(\n", - " [\n", + " [ \n", " pystrata.output.FourierAmplitudeSpectrumOutput(\n", " outputs_freqs,\n", " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", " None\n", " ),\n", + " pystrata.output.FourierComplexSpectrumOutput(\n", + " outputs_freqs,\n", + " pystrata.output.OutputLocation(\"outcrop\", index=0)\n", + " ),\n", " pystrata.output.KappaOutput(\n", " Kappa_freqs,\n", " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", @@ -205,14 +208,36 @@ " 0.039,\n", " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", " None\n", - " )\n", + " ),\n", + " pystrata.output.KappaCorrectedResponseSpectrumOutput(\n", + " outputs_freqs,\n", + " Kappa_freqs,\n", + " 0.039,\n", + " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", + " osc_damping=0.05\n", + " ),\n", + " pystrata.output.KappaCorrectFourierComplexSpectrumOutput(\n", + " outputs_freqs,\n", + " Kappa_freqs,\n", + " 0.039,\n", + " pystrata.output.OutputLocation(\"outcrop\", index=0)\n", + " ),\n", " ] \n", " )\n", "\n", "\n", - "motion = pystrata.motion.TimeSeriesMotion.load_at2_file(\n", - " 'data/NIS090.AT2'\n", - ")\n", + "\n", + "# motion = pyrvt.motions.StaffordEtAl22Motion(\n", + "# mag= 7,\n", + "# dist_rup = 10,\n", + "# mechanism = \"U\",\n", + "# method = \"continuous\",\n", + "# delta_ztor = 0,\n", + "# freqs=np.logspace(np.log10(0.01),np.log10(100),1000),\n", + "# disable_site_amp = True\n", + "# )\n", + "\n", + "motion = pystrata.motion.TimeSeriesMotion.load_at2_file('data/NIS090.AT2')\n", "\n", "eql_calc = pystrata.propagation.EquivalentLinearCalculator(strain_limit = 0.5)" ] @@ -263,7 +288,7 @@ "outputs": [], "source": [ "kappa_verify = calc_kappa(freq,FAS,Kappa_freqs,None)\n", - "kappa = output[1].values" + "kappa = output[2].values" ] }, { @@ -276,8 +301,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "0.48825322811228866\n", - "[0.48825323]\n" + "0.4879532879856861\n", + "[0.48795329]\n" ] } ], @@ -289,17 +314,6 @@ { "cell_type": "code", "execution_count": 14, - "id": "a4b4c224", - "metadata": {}, - "outputs": [], - "source": [ - "kappa_verify = calc_kappa(freq,FAS,Kappa_freqs,None)\n", - "kappa = output[1].values" - ] - }, - { - "cell_type": "code", - "execution_count": 15, "id": "944573b5", "metadata": {}, "outputs": [], @@ -309,23 +323,9 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "id": "24443c4c", "metadata": {}, - "outputs": [], - "source": [ - "fas_kappa_verify = Kappa_Correction(freq,FAS,delta_kappa)\n", - "\n", - "fas_kappa = output[2].values\n", - "\n", - "error = fas_kappa - fas_kappa_verify" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "6c3fba52", - "metadata": {}, "outputs": [ { "name": "stdout", @@ -377,8 +377,370 @@ } ], "source": [ + "fas_kappa_verify = Kappa_Correction(freq,FAS,delta_kappa)\n", + "\n", + "fas_kappa = output[3].values\n", + "\n", + "error = fas_kappa - fas_kappa_verify\n", + "print(error)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "57676084", + "metadata": {}, + "outputs": [], + "source": [ + "fcs_kappa = output[5].values" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "1e165a7c", + "metadata": {}, + "outputs": [], + "source": [ + "accel_kappa_verify = np.fft.irfft(\n", + " fcs_kappa / motion.time_step, n=len(motion.accels))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "dc382421", + "metadata": {}, + "outputs": [], + "source": [ + "motion_kappa_verify = pystrata.motion.TimeSeriesMotion(\n", + " '',\n", + " '',\n", + " time_step = motion.time_step,\n", + " accels = accel_kappa_verify\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "4c93dcec", + "metadata": {}, + "outputs": [], + "source": [ + "RS_kappa_verify = motion_kappa_verify.calc_osc_accels(freq,0.05)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "8d44c65b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[-1.27262915e-05 -1.29319119e-05 -1.31409698e-05 -1.33532535e-05\n", + " -1.35687162e-05 -1.37874192e-05 -1.40094829e-05 -1.42350551e-05\n", + " -1.44642925e-05 -1.46772442e-05 -1.48650434e-05 -1.50549899e-05\n", + " -1.52672123e-05 -1.55147782e-05 -1.57668528e-05 -1.60235721e-05\n", + " -1.62850722e-05 -1.65514898e-05 -1.68229629e-05 -1.70996316e-05\n", + " -1.73816383e-05 -1.76691282e-05 -1.79622495e-05 -1.82611533e-05\n", + " -1.85515334e-05 -1.87738171e-05 -1.89974829e-05 -1.93181818e-05\n", + " -1.96454138e-05 -1.99793393e-05 -2.03201153e-05 -2.06678927e-05\n", + " -2.10228121e-05 -2.13849981e-05 -2.17545512e-05 -2.19729079e-05\n", + " -2.22789626e-05 -2.26673566e-05 -2.30629582e-05 -2.34654802e-05\n", + " -2.38744445e-05 -2.42617142e-05 -2.44394599e-05 -2.48579384e-05\n", + " -2.52770795e-05 -2.56936639e-05 -2.61032667e-05 -2.63035595e-05\n", + " -2.65723262e-05 -2.69146814e-05 -2.31550297e-05 -2.35690367e-05\n", + " -2.40267306e-05 -2.42701108e-05 -2.46088136e-05 -2.47505193e-05\n", + " -2.49697299e-05 -2.97286658e-05 -3.02082839e-05 -3.11245085e-05\n", + " -3.18153603e-05 -3.25754594e-05 -3.33851747e-05 -3.42303260e-05\n", + " -3.51019430e-05 -3.59315362e-05 -3.65388402e-05 -3.74647774e-05\n", + " -3.84111918e-05 -3.91996097e-05 -3.99637616e-05 -4.09781759e-05\n", + " -4.19389084e-05 -4.26550562e-05 -4.37641386e-05 -4.45581365e-05\n", + " -4.56234827e-05 -4.68614729e-05 -4.76329796e-05 -4.89777336e-05\n", + " -4.98304338e-05 -5.09302221e-05 -5.22594165e-05 -5.32590760e-05\n", + " -5.43071693e-05 -5.54397119e-05 -5.66340726e-05 -5.77536048e-05\n", + " -5.89808085e-05 -5.33594786e-05 -5.56352594e-05 -5.82571792e-05\n", + " -6.06790086e-05 -6.28610021e-05 -6.53097255e-05 -6.68419875e-05\n", + " -6.82688887e-05 -6.81243639e-05 -6.76221363e-05 -6.68327879e-05\n", + " -6.59797725e-05 -6.45712699e-05 -6.36847399e-05 -6.35554223e-05\n", + " -6.35379885e-05 -6.37248809e-05 -6.41707408e-05 -6.56776743e-05\n", + " -6.66755812e-05 -6.79559763e-05 -6.95205683e-05 -7.13744196e-05\n", + " -7.35280520e-05 -7.59990300e-05 -7.88133960e-05 -8.11252936e-05\n", + " -8.47329585e-05 -8.79028489e-05 -9.15911483e-05 -9.58893849e-05\n", + " -1.00906050e-04 -1.05690908e-04 -1.11356889e-04 -1.16819687e-04\n", + " -1.23162685e-04 -1.28709118e-04 -1.33950565e-04 -1.37039039e-04\n", + " -1.39129510e-04 -1.38992616e-04 -1.36577838e-04 -1.33241415e-04\n", + " -1.29236565e-04 -1.25073047e-04 -1.21363458e-04 -1.19202010e-04\n", + " -1.19010349e-04 -1.18522137e-04 -1.20264762e-04 -1.22982975e-04\n", + " -1.26525697e-04 -1.29987079e-04 -1.34322710e-04 -1.39873960e-04\n", + " -1.46756814e-04 -1.53150681e-04 -1.61071201e-04 -1.68605328e-04\n", + " -1.77931090e-04 -1.86972738e-04 -1.95641938e-04 -2.03773752e-04\n", + " -2.11113197e-04 -2.15754730e-04 -2.18876962e-04 -2.22598780e-04\n", + " -2.35448243e-04 -2.45147810e-04 -2.49611434e-04 -2.50942665e-04\n", + " -2.52049440e-04 -2.50507975e-04 -2.48925495e-04 -2.48473558e-04\n", + " -2.47729918e-04 -2.49575980e-04 -2.52313178e-04 -2.56553470e-04\n", + " -2.64808908e-04 -2.73206778e-04 -2.84535483e-04 -2.96656061e-04\n", + " -3.12636722e-04 -3.31216149e-04 -3.51034426e-04 -3.72231190e-04\n", + " -3.91267040e-04 -4.05063993e-04 -4.16669313e-04 -4.22761607e-04\n", + " -4.23674755e-04 -4.17631696e-04 -4.10928831e-04 -4.05401035e-04\n", + " -4.02806021e-04 -3.99648705e-04 -4.00081244e-04 -4.01548415e-04\n", + " -4.08611331e-04 -4.19156544e-04 -4.28395222e-04 -4.42169513e-04\n", + " -4.60913130e-04 -4.77811349e-04 -4.94026474e-04 -5.05311890e-04\n", + " -5.16366110e-04 -5.24422285e-04 -5.23911974e-04 -5.17975093e-04\n", + " -5.11626177e-04 -5.01399040e-04 -4.93778974e-04 -4.90814669e-04\n", + " -4.88544139e-04 -4.88619262e-04 -4.92735705e-04 -5.02016087e-04\n", + " -5.14253642e-04 -5.26961964e-04 -5.44706032e-04 -5.59399721e-04\n", + " -6.01573695e-04 -6.24742746e-04 -6.41656976e-04 -6.45825111e-04\n", + " -6.46656784e-04 -6.44279265e-04 -6.38324569e-04 -6.30286788e-04\n", + " -6.32178683e-04 -6.26875714e-04 -6.33470223e-04 -6.43233449e-04\n", + " -6.53587578e-04 -6.67835367e-04 -6.78934714e-04 -6.93113082e-04\n", + " -7.00005499e-04 -7.01568499e-04 -6.93917963e-04 -6.77206406e-04\n", + " -6.58512293e-04 -6.31158496e-04 -6.07773510e-04 -5.92711853e-04\n", + " -5.78470102e-04 -5.66932253e-04 -5.59027585e-04 -5.45344824e-04\n", + " -5.43529498e-04 -5.31167663e-04 -5.10922152e-04 -5.62084537e-04\n", + " -5.89839311e-04 -6.22622649e-04 -6.45009803e-04 -6.65162016e-04\n", + " -6.81542681e-04 -6.93596957e-04 -7.01402464e-04 -7.19311744e-04\n", + " -7.20172122e-04 -7.32588184e-04 -7.37775262e-04 -7.42098915e-04\n", + " -7.53341347e-04 -7.69389029e-04 -7.86847130e-04 -8.01615858e-04\n", + " -8.27403837e-04 -8.58681563e-04 -8.79098956e-04 -9.01870697e-04\n", + " -9.23491568e-04 -9.30660629e-04 -9.48492977e-04 -9.40738455e-04\n", + " -9.41869512e-04 -9.35223660e-04 -9.42201082e-04 -9.50499139e-04\n", + " -9.65344311e-04 -9.90529504e-04 -1.00910717e-03 -1.03825217e-03\n", + " -1.07504503e-03 -1.10093673e-03 -1.13027582e-03 -1.13783560e-03\n", + " -1.13996438e-03 -1.14589924e-03 -1.15286928e-03 -1.17261941e-03\n", + " -1.19851950e-03 -1.22339120e-03 -1.25712991e-03 -1.27426560e-03\n", + " -1.31492428e-03 -1.50868595e-03 -1.55546972e-03 -1.60222547e-03\n", + " -1.66036305e-03 -1.70088162e-03 -1.73478564e-03 -1.76934864e-03\n", + " -1.80311209e-03 -1.83287202e-03 -1.85530357e-03 -1.86897031e-03\n", + " -1.90421863e-03 -1.91981187e-03 -1.92411127e-03 -1.93982984e-03\n", + " -1.98059990e-03 -1.99545556e-03 -1.99901076e-03 -1.99156465e-03\n", + " -1.97438136e-03 -1.94541119e-03 -1.91089523e-03 -2.01662905e-03\n", + " -2.07257004e-03 -2.09061267e-03 -2.14831250e-03 -2.17916006e-03\n", + " -2.18816619e-03 -2.20590609e-03 -2.22639983e-03 -2.23668218e-03\n", + " -2.25018019e-03 -2.29600433e-03 -2.28956271e-03 -2.33024138e-03\n", + " -2.33056222e-03 -2.31480558e-03 -2.34949828e-03 -2.32273500e-03\n", + " -2.35612213e-03 -2.34997572e-03 -2.37051118e-03 -2.35366880e-03\n", + " -2.39060971e-03 -2.36663025e-03 -2.39670738e-03 -2.35956463e-03\n", + " -2.37512479e-03 -2.32925007e-03 -2.26611718e-03 -2.26309944e-03\n", + " -2.28167537e-03 -2.30929303e-03 -2.34937073e-03 -2.34833165e-03\n", + " -2.34298151e-03 -2.33712072e-03 -2.26640818e-03 -2.24204628e-03\n", + " -2.23508800e-03 -2.24844303e-03 -2.41065037e-03 -2.47864925e-03\n", + " -2.56136719e-03 -2.66110750e-03 -2.74410005e-03 -2.74465461e-03\n", + " -2.80186846e-03 -2.84231249e-03 -2.86866957e-03 -2.88536310e-03\n", + " -2.89571428e-03 -2.89959511e-03 -2.89341044e-03 -2.90972869e-03\n", + " -2.92556263e-03 -2.86933827e-03 -2.79640684e-03 -2.72373815e-03\n", + " -2.69265381e-03 -2.57467468e-03 -2.52805512e-03 -2.46746993e-03\n", + " -2.38137404e-03 -2.28489065e-03 -2.21865015e-03 -2.14321809e-03\n", + " -2.05286457e-03 -1.96204063e-03 -1.91248213e-03 -1.87481837e-03\n", + " -1.83783759e-03 -1.84574397e-03 -1.80444423e-03 -1.78025398e-03\n", + " -1.77814554e-03 -1.74286320e-03 -1.72216339e-03 -1.72121268e-03\n", + " -1.68439380e-03 -1.64730186e-03 -1.70411876e-03 -1.68178735e-03\n", + " -1.71551175e-03 -1.69277224e-03 -1.66307754e-03 -1.68766068e-03\n", + " -1.65281957e-03 -1.64972555e-03 -1.63467188e-03 -1.59113805e-03\n", + " -1.59837588e-03 -1.57225659e-03 -1.55054755e-03 -1.55571170e-03\n", + " -1.52073421e-03 -1.52097402e-03 -1.53199123e-03 -1.49069122e-03\n", + " -1.50082989e-03 -1.46233717e-03 -1.46624345e-03 -1.47016780e-03\n", + " -1.42830941e-03 -1.43208273e-03 -1.39595153e-03 -1.38416033e-03\n", + " -1.64075490e-03 -1.65698947e-03 -1.67165991e-03 -1.68358089e-03\n", + " -1.69201854e-03 -1.69702863e-03 -1.69942862e-03 -1.70049391e-03\n", + " -1.74097701e-03 -1.78110579e-03 -1.78717554e-03 -1.79521853e-03\n", + " -1.80484926e-03 -1.81572229e-03 -1.82752337e-03 -1.80201044e-03\n", + " -1.77073354e-03 -1.78022692e-03 -1.78460633e-03 -1.63390977e-03\n", + " -1.74589230e-03 -1.79892741e-03 -1.83477844e-03 -1.89713077e-03\n", + " -2.00505997e-03 -2.03720090e-03 -2.06521715e-03 -2.08770013e-03\n", + " -2.13215176e-03 -2.22905888e-03 -2.23108543e-03 -2.22184768e-03\n", + " -2.20234926e-03 -2.17189198e-03 -2.25210045e-03 -2.19846429e-03\n", + " -2.13052669e-03 -2.15301523e-03 -2.07020912e-03 -2.06109525e-03\n", + " -1.95186246e-03 -1.92957407e-03 -1.89701116e-03 -1.85841336e-03\n", + " -1.81853010e-03 -1.78274041e-03 -1.80248471e-03 -1.85634844e-03\n", + " -1.87449518e-03 -1.91995569e-03 -1.99598724e-03 -2.10460499e-03\n", + " -2.24642258e-03 -2.40423884e-03 -2.47451368e-03 -2.60848855e-03\n", + " -2.79045224e-03 -2.88548450e-03 -2.98533577e-03 -3.08703949e-03\n", + " -3.18712873e-03 -3.28170516e-03 -3.36648870e-03 -3.43689493e-03\n", + " -3.42149507e-03 -3.30947261e-03 -3.31719228e-03 -3.29555036e-03\n", + " -3.24187490e-03 -3.15464791e-03 -3.03361669e-03 -2.87982950e-03\n", + " -2.69562233e-03 -2.75124093e-03 -2.95136646e-03 -2.84100166e-03\n", + " -2.71925597e-03 -2.76300696e-03 -2.63362803e-03 -2.48135734e-03\n", + " -2.42138759e-03 -2.32058845e-03 -2.14845134e-03 -1.77159235e-03\n", + " -1.83804305e-03 -1.74819981e-03 -1.80451111e-03 -1.69424192e-03\n", + " -1.57619728e-03 -1.56322819e-03 -1.60602953e-03 -1.56559341e-03\n", + " -1.59563664e-03 -1.54426684e-03 -1.56213779e-03 -1.50210845e-03\n", + " -1.57407586e-03 -1.46639103e-03 -1.48114971e-03 -1.49419906e-03\n", + " -1.47801205e-03 -1.40317990e-03 -1.41744428e-03 -1.43195599e-03\n", + " -1.44703382e-03 -1.38403576e-03 -1.37010280e-03 -1.38969853e-03\n", + " -1.40983030e-03 -1.37134385e-03 -1.34387512e-03 -1.36648549e-03\n", + " -1.38840288e-03 -1.31862226e-03 -1.32655243e-03 -1.34734996e-03\n", + " -1.32644128e-03 -1.28369631e-03 -1.30140432e-03 -1.31658955e-03\n", + " -1.23410366e-03 -1.24795562e-03 -1.25929391e-03 -1.23643761e-03\n", + " -1.18745550e-03 -1.19579523e-03 -1.20223598e-03 -1.17725901e-03\n", + " -1.12950433e-03 -1.13474240e-03 -1.13868816e-03 -1.14143564e-03\n", + " -1.07786054e-03 -1.07206021e-03 -1.07457979e-03 -1.07584051e-03\n", + " -1.05452188e-03 -1.00869170e-03 -1.00884564e-03 -1.00734757e-03\n", + " -1.00411889e-03 -9.80454742e-04 -9.36172006e-04 -9.30712505e-04\n", + " -9.23557194e-04 -9.14870297e-04 -9.04872310e-04 -8.93830625e-04\n", + " -8.82046930e-04 -8.69840292e-04 -8.57527945e-04 -8.45408137e-04\n", + " -8.33746712e-04 -8.22765758e-04 -8.12634244e-04 -8.03463252e-04\n", + " -7.95306730e-04 -7.88165783e-04 -7.81995219e-04 -7.76712269e-04\n", + " -7.72206837e-04 -7.68352023e-04 -7.65014150e-04 -7.62061458e-04\n", + " -7.59370263e-04 -7.56828390e-04 -7.54336769e-04 -7.51809973e-04\n", + " -7.49176151e-04 -7.46376610e-04 -7.43365330e-04 -7.40109096e-04\n", + " -7.36589003e-04 -7.32803064e-04 -7.28768661e-04 -7.24524068e-04\n", + " -7.20128984e-04 -7.19870107e-04 -7.24144419e-04 -7.29506207e-04\n", + " -7.35784834e-04 -7.33248332e-04 -7.30557503e-04 -7.28465995e-04\n", + " -7.27001295e-04 -7.26158475e-04 -7.25901376e-04 -7.26166802e-04\n", + " -7.26871150e-04 -7.27918649e-04 -7.29210320e-04 -7.30652637e-04\n", + " -7.32164649e-04 -7.33682400e-04 -7.35160066e-04 -7.36567944e-04\n", + " -7.37887999e-04 -7.39108146e-04 -7.40216788e-04 -7.41199048e-04\n", + " -7.42035679e-04 -7.42704732e-04 -7.43185369e-04 -7.43462669e-04\n", + " -7.43532128e-04 -7.43402673e-04 -7.43097478e-04 -7.41596478e-04\n", + " -7.39003068e-04 -7.36841571e-04 -7.35062786e-04 -7.33587700e-04\n", + " -7.32317768e-04 -7.31147306e-04 -7.29976477e-04 -7.28723176e-04\n", + " -7.27332016e-04 -7.25778996e-04 -7.24071169e-04 -7.22241538e-04\n", + " -7.20340401e-04 -7.18425071e-04 -7.16550144e-04 -7.14760129e-04\n", + " -7.13085477e-04 -7.11542101e-04 -7.10133657e-04 -7.08855341e-04\n", + " -7.07697872e-04 -7.06650590e-04 -7.05703127e-04 -7.04845669e-04\n", + " -7.04068274e-04 -7.03359927e-04 -7.02707983e-04 -7.02098353e-04\n", + " -7.01516429e-04 -7.00948449e-04 -7.00382863e-04 -6.99811258e-04\n", + " -6.99228604e-04 -6.98632829e-04 -6.98023905e-04 -6.97402812e-04\n", + " -6.96882801e-04 -6.96808392e-04 -6.96744739e-04 -6.96690893e-04\n", + " -6.96645880e-04 -6.96608691e-04 -6.96578310e-04 -6.96553752e-04\n", + " -6.96534055e-04 -6.96518239e-04 -6.96505279e-04 -6.96494110e-04\n", + " -6.96483692e-04 -6.96473129e-04 -6.96461793e-04 -6.96449405e-04\n", + " -6.96436049e-04 -6.96422099e-04 -6.96408092e-04 -6.96394579e-04\n", + " -6.96382015e-04 -6.96370694e-04 -6.96360750e-04 -6.96352195e-04\n", + " -6.96344972e-04 -6.96338995e-04 -6.96334180e-04 -6.96330453e-04\n", + " -6.96327752e-04 -6.96326032e-04 -6.96325268e-04 -6.96325454e-04\n", + " -6.96326602e-04 -6.96328732e-04 -6.96331855e-04 -6.96335959e-04\n", + " -6.96341010e-04 -6.96346953e-04 -6.96353730e-04 -6.96361295e-04\n", + " -6.96369615e-04 -6.96378676e-04 -6.96388470e-04 -6.96398989e-04\n", + " -6.96410217e-04 -6.96422126e-04 -6.96434678e-04 -6.96447829e-04\n", + " -6.96461533e-04 -6.96475748e-04 -6.96490435e-04 -6.96505562e-04\n", + " -6.96521098e-04 -6.96537018e-04 -6.96553296e-04 -6.96569913e-04\n", + " -6.96586849e-04 -6.96604089e-04 -6.96621623e-04 -6.96639440e-04\n", + " -6.96657529e-04 -6.96675881e-04 -6.96694484e-04 -6.96713327e-04\n", + " -6.96732399e-04 -6.96751688e-04 -6.96771185e-04 -6.96790879e-04\n", + " -6.96810763e-04 -6.96830827e-04 -6.96851063e-04 -6.96871461e-04\n", + " -6.96892013e-04 -6.96912710e-04 -6.96933543e-04 -6.96954504e-04\n", + " -6.96975587e-04 -6.96996783e-04 -6.97018086e-04 -6.97039489e-04\n", + " -6.97060987e-04 -6.97082572e-04 -6.97104239e-04 -6.97125981e-04\n", + " -6.97147794e-04 -6.97169670e-04 -6.97191606e-04 -6.97213596e-04\n", + " -6.97235635e-04 -6.97257719e-04 -6.97279843e-04 -6.97302003e-04\n", + " -6.97324195e-04 -6.97346414e-04 -6.97368656e-04 -6.97390918e-04\n", + " -6.97413195e-04 -6.97435485e-04 -6.97457784e-04 -6.97480087e-04\n", + " -6.97502393e-04 -6.97524698e-04 -6.97546998e-04 -6.97569291e-04\n", + " -6.97591574e-04 -6.97613844e-04 -6.97636098e-04 -6.97658335e-04\n", + " -6.97680551e-04 -6.97702743e-04 -6.97724911e-04 -6.97747051e-04\n", + " -6.97769161e-04 -6.97791239e-04 -6.97813283e-04 -6.97835291e-04\n", + " -6.97857261e-04 -6.97879192e-04 -6.97901081e-04 -6.97922927e-04\n", + " -6.97944728e-04 -6.97966483e-04 -6.97988190e-04 -6.98009847e-04\n", + " -6.98031453e-04 -6.98053007e-04 -6.98074508e-04 -6.98095953e-04\n", + " -6.98117342e-04 -6.98138674e-04 -6.98159947e-04 -6.98181160e-04\n", + " -6.98202312e-04 -6.98223403e-04 -6.98244431e-04 -6.98265395e-04\n", + " -6.98286294e-04 -6.98307127e-04 -6.98327894e-04 -6.98348593e-04\n", + " -6.98369225e-04 -6.98389787e-04 -6.98410280e-04 -6.98430702e-04\n", + " -6.98451053e-04 -6.98471333e-04 -6.98491540e-04 -6.98511674e-04\n", + " -6.98531735e-04 -6.98551721e-04 -6.98571633e-04 -6.98591470e-04\n", + " -6.98611232e-04 -6.98630917e-04 -6.98650526e-04 -6.98670058e-04\n", + " -6.98689513e-04 -6.98708890e-04 -6.98728189e-04 -6.98747410e-04\n", + " -6.98766552e-04 -6.98785615e-04 -6.98804599e-04 -6.98823504e-04\n", + " -6.98842329e-04 -6.98861073e-04 -6.98879738e-04 -6.98898323e-04\n", + " -6.98916826e-04 -6.98935249e-04 -6.98953591e-04 -6.98971853e-04\n", + " -6.98990033e-04 -6.99008131e-04 -6.99026149e-04 -6.99044084e-04\n", + " -6.99061939e-04 -6.99079711e-04 -6.99097402e-04 -6.99115012e-04\n", + " -6.99132539e-04 -6.99149985e-04 -6.99167349e-04 -6.99184631e-04\n", + " -6.99201831e-04 -6.99218949e-04 -6.99235986e-04 -6.99252941e-04\n", + " -6.99269814e-04 -6.99286606e-04 -6.99303316e-04 -6.99319944e-04\n", + " -6.99336491e-04 -6.99352956e-04 -6.99369341e-04 -6.99385644e-04\n", + " -6.99401865e-04 -6.99418006e-04 -6.99434066e-04 -6.99450045e-04\n", + " -6.99465944e-04 -6.99481762e-04 -6.99497500e-04 -6.99513157e-04\n", + " -6.99528734e-04 -6.99544231e-04 -6.99559649e-04 -6.99574987e-04\n", + " -6.99590245e-04 -6.99605424e-04 -6.99620525e-04 -6.99635546e-04\n", + " -6.99650488e-04 -6.99665352e-04 -6.99680137e-04 -6.99694845e-04\n", + " -6.99709474e-04 -6.99724026e-04 -6.99738500e-04 -6.99752896e-04\n", + " -6.99767216e-04 -6.99781459e-04 -6.99795625e-04 -6.99809715e-04\n", + " -6.99823728e-04 -6.99837665e-04 -6.99851527e-04 -6.99865313e-04\n", + " -6.99879024e-04 -6.99892660e-04 -6.99906221e-04 -6.99919708e-04\n", + " -6.99933120e-04 -6.99946458e-04 -6.99959723e-04 -6.99972914e-04\n", + " -6.99986031e-04 -6.99999076e-04 -7.00012048e-04 -7.00024947e-04\n", + " -7.00037775e-04 -7.00050530e-04 -7.00063213e-04 -7.00075825e-04\n", + " -7.00088366e-04 -7.00100837e-04 -7.00113236e-04 -7.00125565e-04\n", + " -7.00137824e-04 -7.00150014e-04 -7.00162133e-04 -7.00174184e-04\n", + " -7.00186166e-04 -7.00198079e-04 -7.00209923e-04 -7.00221700e-04\n", + " -7.00233408e-04 -7.00245049e-04 -7.00256623e-04 -7.00268130e-04\n", + " -7.00279571e-04 -7.00290944e-04 -7.00302252e-04 -7.00313494e-04\n", + " -7.00324670e-04 -7.00335782e-04 -7.00346828e-04 -7.00357809e-04\n", + " -7.00368726e-04 -7.00379579e-04 -7.00390369e-04 -7.00401094e-04\n", + " -7.00411757e-04 -7.00422356e-04 -7.00432893e-04 -7.00443368e-04\n", + " -7.00453780e-04 -7.00464131e-04 -7.00474420e-04 -7.00484648e-04\n", + " -7.00494815e-04 -7.00504922e-04 -7.00514968e-04 -7.00524954e-04\n", + " -7.00534880e-04 -7.00544747e-04 -7.00554555e-04 -7.00564303e-04\n", + " -7.00573994e-04 -7.00583625e-04 -7.00593199e-04 -7.00602715e-04\n", + " -7.00612174e-04 -7.00621575e-04 -7.00630920e-04 -7.00640208e-04\n", + " -7.00649439e-04 -7.00658615e-04 -7.00667734e-04 -7.00676799e-04\n", + " -7.00685808e-04 -7.00694762e-04 -7.00703662e-04 -7.00712507e-04\n", + " -7.00721298e-04 -7.00730035e-04 -7.00738719e-04 -7.00747350e-04\n", + " -7.00755927e-04 -7.00764452e-04 -7.00772925e-04 -7.00781345e-04\n", + " -7.00789714e-04 -7.00798031e-04 -7.00806296e-04 -7.00814511e-04\n", + " -7.00822675e-04 -7.00830788e-04 -7.00838851e-04 -7.00846864e-04\n", + " -7.00854828e-04 -7.00862742e-04 -7.00870606e-04 -7.00878422e-04\n", + " -7.00886190e-04 -7.00893909e-04 -7.00901580e-04 -7.00909203e-04\n", + " -7.00916778e-04 -7.00924306e-04 -7.00931787e-04 -7.00939221e-04\n", + " -7.00939414e-04 -7.00915584e-04 -7.00891967e-04 -7.00868563e-04\n", + " -7.00845369e-04 -7.00822383e-04 -7.00799602e-04 -7.00777025e-04]\n" + ] + } + ], + "source": [ + "RS_kappa = output[4].values\n", + "\n", + "\n", + "error = RS_kappa -RS_kappa_verify\n", + "\n", "print(error)" ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "dbb1008c", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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rLD+V3mJDWlrTGFRX7omkh/ylStXVnviRYIgqTGS2qCmOnz4sPpRlYBKftjlR6qgoABnnHGGagLauHGjCrLOPvts1dRR1fPPP48+ffpgw4YN6sfxlltuqRawCQlszjvvPGzevBkzZ85UgdOOHTsqt8uPr/RZklou+TGVH2b5wW+MBE+DBg1StQNVyd8zZsxQ7+VHePz48ejfvz/WrVunfuDT0tJUPqr64IMP1PVdsWIF5s2bV+tccq3lB/iOO+5Q76V27qKLLsL8+fOrpZO/zz///HqnvpD53yTYqYtcP5lIVq6NHKOuz/bJJ5+ovEuAbAkopalO8iTXzhryWSXg+/vvv1VQdP311+OCCy5QTVlyHydNmqSCIqm9EkePHlVlQYJhuYcS2Eqt1pNPPqm2y3mHDx+Oa665RuVDXpK/miSQvPDCC9V1kxrMRx99VJUNufdVSXAkn13yJ3mTl3zGqiQoq28uPYf5dxZ6qkNubq6M2qSWdTEajVpqaqpa2kr22fdEf017JEL744MnrEpvzbmsSddQGnu36ZUr8+zIc9l7LFv3c1W5amx7U69dcXGxtn37drWs5pGI+l//d371tE+2qT/te2dUT/tMUt3pbDRr1izN19dXCw0N1QIDA9X3jY+Pj/bll19WpikvL9cuu+wyta1NmzbaOeeco7366qv1fi/VNH/+fC0yMlLbuXOnlpiYqN14442NXufk5GR1Dov27dtrp512mlZWVqaZTCa1bvr06drpp59emUbyd91111X+LemGDBlSbV1Nzz33nDZw4MBqx61J1sv2OXPmaJ06dapcv2vXLnVOue+y/fHHH9cmT55cbd9Dhw6pNPLZxZgxY7T+/fvXOoek+eabbyr/7tu3r/bII49U/r1mzRp1n44dO6b+TktL0/z8/LQ///yz3s82depU7corr6y2bsmSJepc3377bbX1L774YuVnk8+7detWlW7Hjh3V9svOztasJZ915MiRlX9XVFSocnbppZdWrpPPA0BbuXKl+vv+++/XunXrVu1ezJ07VwsLC6ssM3LcW265pdq5Fi9erI6TlZWl/p45c6Y2adKkamnuuusurWfPntXK1CWXXFJ5f+X4sbGx2htvvFFtv9tuu00bO3Zs5d+W9JY81vf/vlyrhn6/q2KNkJtkpmxGx4p9KNd80XncZe7KBhG5mdTQbNq0CWvW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jervIrKzs7F79+5qNTPyQy/9ZCz27NlTrRZEzvP5558jNjYWERERduW1d+/eKiiS/ko1a2oszjjjDBXsSY2Y9HdatmxZg8eUvlGSVoI4CbpsJdfu8ccfxy+//KKuVU2WGi85DxHZjp2licip5KksqbGYMWMG1q5dq360pXbjiiuuUE1A0mQmj5ZLh+nFixerJ8zk6a6azT/S4VoeQ5cOw9Lp+rrrrqtWu3PxxRer2hd5Ukw6DqekpKhO1zfffDOOHDliVV4lWJs1a5ZqhpIn1CzH+OKLLyrTSNOZ5O++++5Dly5dMHz48EabEaW2atu2bTZfO7kW0nlbmsukSe/48ePqJdfTYvXq1erptsbyQUR1YyBERE4l/WrkCS4JeiZPnqxqXeSxeHnE3RLsPPfccxg1apRqQpOamJEjR9bqaySP1MtTVJJu5syZuPPOO6s1Scl7qZ2RWqVzzz0XPXr0UAGW1JjYUkMktTfnn38+brjhBnTv3h3XXHONery/Kjmu9GuSYK4x8pTXtGnT7Br0UAI+qfWSpjFpRrS85PNZyBNuEgQ21DxHRPUzSI/pBrYTEbmFjJUj00e89NJLursDUuM0YcIENW6RPLremH/++QeTJk1StWF1dRq3l4zFJJ3KJWCqa0BLImoca4SIiKwkT4hJM9ujjz6qnhSzJggSffr0UZ3FpanNkWTAxddff51BEFETsLM0EZGVpBlKmsWkpurDDz+06bpJvyJHGzRokHoRkf3YNEZERERei01jRERE5LUYCBEREZHXYiBEREREXouBEBEREXktBkJERETktRgIERERkddiIERERERei4EQEREReS0GQkRERARv9f/SRH91WcqR/gAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.plot(freq, RS_kappa, label=\"RS_kappa (output[3])\")\n", + "ax.plot(freq, RS_kappa_verify, \"--\", label=\"RS_kappa_verify (rvt_motion)\")\n", + "\n", + "ax.set(\n", + " xlabel=\"Frequency (Hz)\",\n", + " xscale=\"log\",\n", + " ylabel=\"5%-Damped Spectral Accel. (g)\",\n", + " yscale=\"log\",\n", + ")\n", + "\n", + "ax.legend()\n", + "\n", + "ax.grid(True, which=\"both\", alpha=0.3)\n", + "\n", + "plt.show()" + ] } ], "metadata": { From 2a0e0e8249316cc65c6fcb6855ac77d507343dba Mon Sep 17 00:00:00 2001 From: James Dea <49453187+jimxia7@users.noreply.github.com> Date: Sun, 2 Aug 2026 17:02:02 -0500 Subject: [PATCH 18/22] Comment out kappa module import in motion.py Comment out import statement for kappa module --- src/pystrata/motion.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pystrata/motion.py b/src/pystrata/motion.py index 794fdd7..e36b587 100644 --- a/src/pystrata/motion.py +++ b/src/pystrata/motion.py @@ -30,7 +30,7 @@ # Gravity in m/sec² from scipy.constants import g as GRAVITY -from .kappa import DEFAULT_KAPPA_FREQS, _compute_fourier_spectrum +# from .kappa import DEFAULT_KAPPA_FREQS, _compute_fourier_spectrum _trapezoid = np.trapezoid From e6ef229bf889f091201e782b6bd3d75c2ac7d811 Mon Sep 17 00:00:00 2001 From: James Dea <49453187+jimxia7@users.noreply.github.com> Date: Sun, 2 Aug 2026 17:11:04 -0500 Subject: [PATCH 19/22] putting _compute_fourier_spectrum back --- src/pystrata/motion.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/pystrata/motion.py b/src/pystrata/motion.py index e36b587..3596936 100644 --- a/src/pystrata/motion.py +++ b/src/pystrata/motion.py @@ -34,6 +34,39 @@ _trapezoid = np.trapezoid +DEFAULT_KAPPA_FREQS = np.logspace(np.log10(10), np.log10(30), 100) + +def _compute_fourier_spectrum(time_step, + accels, + freqs = None, + fa_length=None, + ko_bandwidth = None): + """Compute the Fourier Amplitude Spectrum of the time series.""" + + if fa_length is None: + # Use the next power of 2 for the length + n = 1 + while n < accels.size: + n <<= 1 + else: + n = fa_length + + fft_freqs = np.fft.rfftfreq(n, d = time_step) + + if freqs is None: + freqs = fft_freqs + + if ko_bandwidth is None: + FAS = np.interp(freqs, + fft_freqs, + np.fft.rfft(accels, n)) + else: + FAS = pykooh.smooth(freqs, + fft_freqs, + np.fft.rfft(accels, n), + ko_bandwidth) + + return freqs, FAS class WaveField(enum.Enum): outcrop = 0 From 18af9dcd6febbe1278beb32c16690e4d5415145c Mon Sep 17 00:00:00 2001 From: jimxia7 Date: Sun, 2 Aug 2026 19:38:36 -0500 Subject: [PATCH 20/22] change load_at2 program --- src/pystrata/motion.py | 85 +++++++++++++++++++++++++++++++++++++++++- tests/motion_test.py | 52 ++++++++++++++++++++++++++ 2 files changed, 135 insertions(+), 2 deletions(-) diff --git a/src/pystrata/motion.py b/src/pystrata/motion.py index 794fdd7..d5fd0e6 100644 --- a/src/pystrata/motion.py +++ b/src/pystrata/motion.py @@ -23,6 +23,7 @@ import enum import re +import warnings import numpy as np import pyrvt @@ -34,6 +35,72 @@ _trapezoid = np.trapezoid +# Integers and floats, including values without a leading digit (e.g., ".0100") +# and Fortran style exponents (e.g., "1.0D-2"). +_RE_NUMBER = re.compile(r"[+-]?(?:\d+\.?\d*|\.\d+)(?:[eEdD][+-]?\d+)?") + + +def _to_float(text): + """Convert a string to a float, permitting a Fortran style exponent.""" + return float(text.replace("D", "E").replace("d", "e")) + + +def _parse_at2_header(line): + """Parse the point count and time step from the header of an AT2 file. + + Both of the PEER NGA layouts are supported:: + + 4096 0.0100 NPTS, DT + NPTS= 5346, DT= .0100 SEC, + + as are variations that reverse the order of the two values, or that omit + the commas separating them. + + Parameters + ---------- + line: str + Fourth line of an AT2 file. + + Returns + ------- + npts: int + Number of points in the time series. + time_step: float + Time step of the time series [sec]. + """ + # Values that follow their label -- e.g., "NPTS= 5346" or "DT .0100". Each + # value is located by its own label, so their order does not matter. + found = {} + for key in ("NPTS", "DT"): + m = re.search( + r"\b" + key + r"\b\s*[=:]?\s*(" + _RE_NUMBER.pattern + ")", + line, + re.IGNORECASE, + ) + if m: + found[key] = _to_float(m.group(1)) + + if len(found) < 2: + # Values that precede their labels -- e.g., "4096 0.0100 NPTS, DT". + values = [_to_float(v) for v in _RE_NUMBER.findall(line)] + if len(values) < 2: + raise ValueError(f"Unable to parse NPTS and DT from AT2 header: {line!r}") + + values = values[:2] + upper = line.upper() + pos = {key: upper.find(key) for key in ("NPTS", "DT")} + if all(p >= 0 for p in pos.values()): + # Pair the values with the labels by order of appearance. + keys = sorted(pos, key=lambda key: pos[key]) + else: + # Unlabeled, so rely on magnitude: the time step is the smaller of + # the two. + keys = ["DT", "NPTS"] if values[0] < values[1] else ["NPTS", "DT"] + + found = dict(zip(keys, values)) + + return int(found["NPTS"]), found["DT"] + class WaveField(enum.Enum): outcrop = 0 @@ -294,6 +361,15 @@ def _calc_sdof_tf(self, osc_freq, damping=0.05): def load_at2_file(cls, filename, scale=1.0): """Read an AT2 formatted time series. + The fourth line of the file provides the number of points and the time + step. Both of the PEER NGA layouts are read:: + + 4096 0.0100 NPTS, DT + NPTS= 5346, DT= .0100 SEC, + + as are variations that reverse the order of the two values, or that + omit the commas separating them. + Parameters ---------- filename: str @@ -305,11 +381,16 @@ def load_at2_file(cls, filename, scale=1.0): next(fp) description = next(fp).strip() next(fp) - parts = next(fp).split() - time_step = float(parts[1]) + npts, time_step = _parse_at2_header(next(fp)) accels = np.array([float(part) for line in fp for part in line.split()]) + if accels.size != npts: + warnings.warn( + f"AT2 file '{filename}' specifies NPTS={npts}, but {accels.size} " + "accelerations were read." + ) + accels *= scale return cls(filename, description, time_step, accels) diff --git a/tests/motion_test.py b/tests/motion_test.py index d45ea14..5e5d75c 100644 --- a/tests/motion_test.py +++ b/tests/motion_test.py @@ -35,6 +35,58 @@ def test_ts_load_at2_file(tsm): assert_allclose(tsm.accels[-1], 0.496963e-04) +@pytest.mark.parametrize( + "line", + [ + # Values preceding their labels + " 4096 0.0100 NPTS, DT", + " 0.0100 4096 DT, NPTS", + " 4096 0.0100 NPTS DT", + # Values following their labels + "NPTS= 4096, DT= .0100 SEC,", + "DT= .0100 SEC, NPTS= 4096,", + "NPTS= 4096 DT= .0100 SEC", + "NPTS 4096 DT .0100", + # Unlabeled + " 4096 0.0100", + ], +) +def test_parse_at2_header(line): + """Test parsing of the NPTS and DT header line variations.""" + npts, time_step = motion._parse_at2_header(line) + assert_equal(npts, 4096) + assert_allclose(time_step, 0.01) + + +def test_parse_at2_header_invalid(): + """Test that an unparsable header line is reported.""" + with pytest.raises(ValueError): + motion._parse_at2_header("NPTS, DT") + + +@pytest.mark.parametrize( + "header", + [" 8 0.0100 NPTS, DT", "NPTS= 8, DT= .0100 SEC,"], +) +def test_ts_load_at2_file_headers(tmp_path, header): + """Test loading of an AT2 file using each header layout.""" + accels = [0.1, -0.2, 0.3, -0.4, 0.5, -0.6, 0.7, -0.8] + fpath = tmp_path / "test.AT2" + fpath.write_text( + "PEER NGA STRONG MOTION DATABASE RECORD\n" + "Imperial Valley-02, 5/19/1940, El Centro Array #9, 270\n" + "ACCELERATION TIME SERIES IN UNITS OF G\n" + f"{header}\n" + " ".join(f"{a:.6E}" for a in accels) + "\n" + ) + + tsm = motion.TimeSeriesMotion.load_at2_file(fpath) + assert_equal( + tsm.description, "Imperial Valley-02, 5/19/1940, El Centro Array #9, 270" + ) + assert_allclose(tsm.time_step, 0.01) + assert_allclose(tsm.accels, accels) + + def test_ts_times(tsm): """Test times.""" assert_allclose( From dd4b6344c304347f462514ecdf9abf0d91de711b Mon Sep 17 00:00:00 2001 From: jimxia7 Date: Fri, 7 Aug 2026 01:52:55 -0500 Subject: [PATCH 21/22] Resolving Albert's comment --- examples/example-18.ipynb | 346 ++++++++++++ src/pystrata/motion.py | 37 +- src/pystrata/site.py | 2 +- src/pystrata/tools.py | 4 +- tests/WorkFlow.ipynb | 767 -------------------------- tests/data/Meloland_Soil_Profile.xlsx | Bin 133629 -> 0 bytes 6 files changed, 386 insertions(+), 770 deletions(-) create mode 100644 examples/example-18.ipynb delete mode 100644 tests/WorkFlow.ipynb delete mode 100644 tests/data/Meloland_Soil_Profile.xlsx diff --git a/examples/example-18.ipynb b/examples/example-18.ipynb new file mode 100644 index 0000000..0d4ecba --- /dev/null +++ b/examples/example-18.ipynb @@ -0,0 +1,346 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "747dd43b", + "metadata": {}, + "source": [ + "# Example 17: Kappa Correction for EQL\n", + "\n", + "This example demonstrates how to perform kappa correction with:\n", + "1. Time Series Input\n", + "2. RVT Input" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "id": "ed449b23", + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "import pystrata\n", + "\n", + "%matplotlib inline\n", + "plt.rcParams[\"figure.dpi\"] = 120" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "id": "4c25fc14", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pyrvt\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "98feb6d1", + "metadata": {}, + "source": [ + "## Create site profile\n", + "\n", + "Create a simple soil profile with a single soil layer with nonlinear properties defined by the Darendeli nonlinear model." + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "id": "23753223", + "metadata": {}, + "outputs": [], + "source": [ + "profile = pystrata.site.Profile(\n", + " [\n", + " pystrata.site.Layer(\n", + " pystrata.site.DarendeliSoilType(\n", + " 18.0, plas_index=30, ocr=1, stress_mean=200\n", + " ),\n", + " 30,\n", + " 400,\n", + " ),\n", + " pystrata.site.Layer(pystrata.site.SoilType(\"Rock\", 24.0, None, 0.01), 0, 1200),\n", + " ]\n", + ").auto_discretize()" + ] + }, + { + "cell_type": "markdown", + "id": "9f252724", + "metadata": {}, + "source": [ + "## Create the site response calculator" + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "id": "0caff2e7", + "metadata": {}, + "outputs": [], + "source": [ + "calc = pystrata.propagation.EquivalentLinearCalculator(strain_ratio=0.65)" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "id": "458b1a12", + "metadata": {}, + "outputs": [], + "source": [ + "freqs = np.logspace(-1, 2, num=500)\n", + "\n", + "Kappa_freqs = freqs[\n", + " (freqs >= 10) & (freqs <= 30)\n", + "]\n", + "\n", + "outputs = pystrata.output.OutputCollection(\n", + " [ \n", + " pystrata.output.FourierAmplitudeSpectrumOutput(\n", + " freqs,\n", + " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", + " None\n", + " ),\n", + " pystrata.output.ResponseSpectrumOutput(\n", + " freqs,\n", + " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", + " ),\n", + " pystrata.output.KappaOutput(\n", + " Kappa_freqs,\n", + " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", + " None\n", + " ),\n", + " pystrata.output.KappaFittedLineOutput(\n", + " Kappa_freqs,\n", + " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", + " None\n", + " ),\n", + " pystrata.output.KappaCorrectFourierAmplitudeSpectrumOutput(\n", + " freqs,\n", + " Kappa_freqs,\n", + " 0.039,\n", + " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", + " None\n", + " ),\n", + " pystrata.output.KappaCorrectedResponseSpectrumOutput(\n", + " freqs,\n", + " Kappa_freqs,\n", + " 0.039,\n", + " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", + " osc_damping=0.05\n", + " ),\n", + " ] \n", + " )\n", + "\n", + "\n", + "motion = pystrata.motion.TimeSeriesMotion.load_at2_file('data/NIS090.AT2')\n", + "\n", + "eql_calc = pystrata.propagation.EquivalentLinearCalculator(strain_limit = 0.5)" + ] + }, + { + "cell_type": "markdown", + "id": "a623d9d8", + "metadata": {}, + "source": [ + "## 1. Time Series Input" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "id": "f768148f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "np.float64(1.508247)" + ] + }, + "execution_count": 117, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ts = pystrata.motion.TimeSeriesMotion.load_at2_file(\"data/NIS090.AT2\", scale=3)\n", + "ts.pga" + ] + }, + { + "cell_type": "markdown", + "id": "a3cc4f44", + "metadata": {}, + "source": [ + "## 2. RVT Input" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "id": "eba68c40", + "metadata": {}, + "outputs": [], + "source": [ + "rvt = pystrata.motion.SourceTheoryRvtMotion(6.0, 30, \"wna\")\n", + "rvt.calc_fourier_amps()" + ] + }, + { + "cell_type": "code", + "execution_count": 119, + "id": "9dce76dc", + "metadata": {}, + "outputs": [], + "source": [ + "input_motions = [ts,rvt]" + ] + }, + { + "cell_type": "markdown", + "id": "4fe9c0d9", + "metadata": {}, + "source": [ + "## Perform the calculation" + ] + }, + { + "cell_type": "markdown", + "id": "e3be13f1", + "metadata": {}, + "source": [ + "Compute the response of the site, and store the state within the calculation object. Nothing is provided." + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "id": "8b7b3271", + "metadata": {}, + "outputs": [], + "source": [ + "for i,m in enumerate(input_motions):\n", + "\n", + " if i == 0:\n", + " name = 'Time Series'\n", + " else:\n", + " name = 'RVT'\n", + "\n", + " calc(m, #type:ignore\n", + " profile,\n", + " profile.location(\"outcrop\", index=-1))\n", + " \n", + " outputs(calc,\n", + " name = name)" + ] + }, + { + "cell_type": "markdown", + "id": "4005a31f", + "metadata": {}, + "source": [ + "## Plot Output" + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "id": "9a532777", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "ax.plot(freqs, outputs[0].values[:, 0], label=\"FAS\")\n", + "ax.plot(Kappa_freqs, outputs[3].values[:, 0], label=f\"Kappa fitted line (kappa = {outputs[2].values[0, 0]:.3f})\")\n", + "\n", + "ax.set_yscale('log')\n", + "ax.set_xlim(0, 35)\n", + "ax.set_ylim(1e-6,3e0)\n", + "ax.set_xlabel('Frequency (Hz)')\n", + "ax.set_ylabel('FAS (g-sec)')\n", + "ax.grid(which=\"major\", linewidth=0.5, alpha=0.6)\n", + "ax.grid(which=\"minor\", linewidth=0.3, alpha=0.3)\n", + "ax.set_title('Time Series')\n", + "ax.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "id": "9521fcf0", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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IT25m4+sdVzQAFjbGAQTERERGblGlYpjxztt0D891zYiLhlvrvDDxxsuIkYHjTUuP4jEoIUn5GMGhsXJfd6lnLBiVDOMbVdFp/V/84vpEEREREQmoJidNWa+Uh/ta5TCJxsvISohBatP38f2i4/Qp1EFDGpaCbXKu2j0MUOiEjDj32tYfzYIKpWyz83RBu92rIYhzT1low9DxSCYiIiIyIT0qFdezgy/t+Y8Tt55iujEFCw/HigvDSq64VXfSuhRvxwcbQsXBqalqWSzi10BwVh46Dbi0jvXWVta4PUWXninYzW4OtrA0DEIJiIiIjIx5d0csOqN5th95bEsT3boRqicqT1/P0Jepm0LwMsNyqNvowqoWNwRxZ1sc521TUlNw+WHUTh1Jwyn7jyVFzHLnFmnmmXwSXcfeJcqBmPBIJiIiIjIBFlaWqBL7bLycv9pHNaeuY81p+8jJDpR5gmvPHlPXtRc7K1Rspgd3J1s5aVEMVsEhcfDLzA8Y7Y3u5rlXPDZSzXRqmpJGBsGwUREREQmrqK7Iz7oXEOmKuy7GoJVp+7hwHVldlhNzO6Ky+0nudfmreDmILvV+aZfKpd0MshFb/nBIJiIiIjIjEqqda5dVl4eRsTj3L0IPI1NRFhsEp7GJsmvosub2BYXF3ubjIBXXDyKK2XYTAGDYCIiIiIzzRsu7+YAc2W4dSuIiIiIiLSEQTARERERmR0GwURERERkdhgEExEREZHZYRBMRERERGaHQTARERERmR0GwURERERkdhgEExEREZHZYRBMRERERGaHQTARERERmR0GwURERERkdhgEExEREZHZYRBMRERERGaHQTARERERmR0GwURERERkdhgEExEREZHZYRBMRERERGaHQTARERERmR0GwURERERkdhgEExEREZHZYRBMRERERGaHQTARERERmR0GwURERERkdhgEExEREZHZYRBMRERERGaHQTARERERmR0Gwc9x/PhxWFpa4uuvv9bNM0JEREREWscgOA9paWl477330LRpU+0/E0RERESkM9a6eyjjs3DhQjRr1gyRkZH6PhQiIiIiMpeZ4JiYGHz55Zfo2rUr3N3dYWFhgaVLl+Z428TERHz00UcoX748HBwcZPC6e/fuQj92WFgYfvrpJ0ydOrUIvwERERERGSKDDoKfPHmCadOm4cqVK6hfv36etx0+fDhmzZqFIUOGYM6cObCyskL37t1x5MiRQj32p59+infffRdubm6FPHoiIiIiMlQGHQSXK1cOjx49QmBgIGbMmJHr7U6dOoXVq1fj22+/lbcbM2YM9u3bB09PT0yaNCnLbVu3bi1nlHO6fPbZZ/I2586dw+nTp/HGG29o/XckIiIiIt0z6JxgOzs7lC1b9rm3W79+vZz5FcGvmr29PUaNGoVPPvkE9+/fR8WKFeX+/MwMHzx4ENeuXUOFChXk9yIn2NraGrdu3cKSJUuK9DsRERERkf4ZdBCcX2Lmtnr16nBxccmy39fXV349f/58RhCcHyKYHjRoUMb377zzDipXroyPP/44158JCQlBaGholn0BAQHy682bN/P92PR8t2/fRmpqKodKgzimmscx5ZgaA56nHFNDp46hxNovTTOJIFikTIjUiezU+x4+fFig+3N0dJQXNbHQrlixYnnmB8+fPz/XRXS9e/cu0OMTERER0X8uXbqERo0aQZNMIgiOj4+XqRPZiZQI9fVFkVtFiszGjRuHV155Jcs+MQM9dOhQrF27FrVq1SrSMdB/7wjFm4q///4bVatW5bBoAMdU8zimHFNjwPOUY2oMxKfqAwYMkJ/4a5pJBMFipjanafKEhISM67WtdOnS8pITEQDXrl1b68dgTkQAzDHlmBo6nqccU2PA85Rjagyyp7yafHWIglaRyE69T9QOJiIiIiIyqSC4QYMGuH79OqKiorLsP3nyZMb1REREREQmFQT3799fVgsQbY7VRHqEKGcmOscVpDIEEREREZk+g88Jnjt3LiIiIjIqPGzduhVBQUFye8KECXB1dZWBrliUNnnyZFmqTOQ3LVu2DHfv3sWiRYv0duylSpWSbZ/FV+KYGiqepxxTY8DzlGNqDHieGteYWqhUKhUMmJeXl+wYl5M7d+7I69WL4D7//HOsWLEC4eHhqFevHr766it06dJFx0dMRERERIbO4INgIiIiIiJNM4mcYCIiIiKigmAQTERERERmh0EwEREREZkdBsFEREREZHYYBGuBqFH80UcfyU51omWzKOG2e/dubTyUWThw4AAsLCxyvJw4cULfh2fwYmJiZHmZrl27wt3dXY7b0qVLc7ztlStX5O2KFSsmb/vaa68hNDRU58dsKmM6fPjwHM9bHx8fvRy3ITt9+jTGjx8v26E7OTmhUqVKGDBg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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "ax.plot(freqs, outputs[0].values[:, 1], label=\"FAS\")\n", + "ax.plot(Kappa_freqs, outputs[3].values[:, 1], label=f\"Kappa fitted line (kappa = {outputs[2].values[0, 1]:.3f})\")\n", + "\n", + "ax.set_yscale('log')\n", + "ax.set_xlim(0, 35)\n", + "ax.set_ylim(1e-4,1e-1)\n", + "ax.set_xlabel('Frequency (Hz)')\n", + "ax.set_ylabel('FAS (g-sec)')\n", + "ax.grid(which=\"major\", linewidth=0.5, alpha=0.6)\n", + "ax.grid(which=\"minor\", linewidth=0.3, alpha=0.3)\n", + "ax.set_title('RVT')\n", + "ax.legend()\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/src/pystrata/motion.py b/src/pystrata/motion.py index dac26db..94cdc8a 100644 --- a/src/pystrata/motion.py +++ b/src/pystrata/motion.py @@ -31,7 +31,6 @@ # Gravity in m/sec² from scipy.constants import g as GRAVITY -# from .kappa import DEFAULT_KAPPA_FREQS, _compute_fourier_spectrum _trapezoid = np.trapezoid @@ -39,6 +38,42 @@ # and Fortran style exponents (e.g., "1.0D-2"). _RE_NUMBER = re.compile(r"[+-]?(?:\d+\.?\d*|\.\d+)(?:[eEdD][+-]?\d+)?") +# Default frequency range for calculation kappa: [10,30] +DEFAULT_KAPPA_FREQS = np.logspace(np.log10(10), np.log10(30), 100) + +def _compute_fourier_spectrum(time_step, + accels, + freqs = None, + fa_length=None, + ko_bandwidth = None): + """Compute the Fourier Amplitude Spectrum of the time series.""" + + if fa_length is None: + # Use the next power of 2 for the length + n = 1 + while n < accels.size: + n <<= 1 + else: + n = fa_length + + fft_freqs = np.fft.rfftfreq(n, d = time_step) + + if freqs is None: + freqs = fft_freqs + + if ko_bandwidth is None: + FAS = np.interp(freqs, + fft_freqs, + np.fft.rfft(accels, n)) + else: + FAS = pykooh.smooth(freqs, + fft_freqs, + np.fft.rfft(accels, n), + ko_bandwidth) + + return freqs, FAS + + def _to_float(text): """Convert a string to a float, permitting a Fortran style exponent.""" diff --git a/src/pystrata/site.py b/src/pystrata/site.py index 89078e6..aa24c15 100644 --- a/src/pystrata/site.py +++ b/src/pystrata/site.py @@ -573,7 +573,7 @@ def __init__( if not name: name = self._create_name() - super().__init__(name, unit_wt, damping_min, strains) + super().__init__(name, unit_wt, self._damping_min, strains) def _calc_damping_min(self): """Minimum damping [decimal]""" diff --git a/src/pystrata/tools.py b/src/pystrata/tools.py index bd1b732..d2a8bac 100644 --- a/src/pystrata/tools.py +++ b/src/pystrata/tools.py @@ -30,7 +30,7 @@ import scipy.constants as C import pykooh -from . import motion, propagation, site +from . import motion, propagation, site, output def to_str(s): @@ -534,3 +534,5 @@ def calc_mean_eff_stress( stress_mean = stress_vert_eff * (1 + 2 * k0) / 3 return stress_mean + +def \ No newline at end of file diff --git a/tests/WorkFlow.ipynb b/tests/WorkFlow.ipynb deleted file mode 100644 index 95f060c..0000000 --- a/tests/WorkFlow.ipynb +++ /dev/null @@ -1,767 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "747dd43b", - "metadata": {}, - "source": [ - "# PyStrata workflow\n", - "\n", - "Import the package directly from this repository's `src` directory." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "ed449b23", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using pystrata from: C:\\Users\\jimxi\\GitHub\\pystrata\\src\\pystrata\\__init__.py\n" - ] - } - ], - "source": [ - "import sys\n", - "from pathlib import Path\n", - "\n", - "# Find the repository root whether Jupyter starts in the root or tests/.\n", - "repo_root = next(\n", - " path for path in (Path.cwd(), *Path.cwd().parents)\n", - " if (path / \"src\" / \"pystrata\").is_dir()\n", - ")\n", - "\n", - "src_path = str(repo_root / \"src\")\n", - "if src_path not in sys.path:\n", - " sys.path.insert(0, src_path)\n", - "\n", - "import pystrata\n", - "from pystrata.output import KappaOutput\n", - "import pykooh\n", - "\n", - "print(f\"Using pystrata from: {Path(pystrata.__file__).resolve()}\")" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "4c25fc14", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import pyrvt\n", - "import pandas as pd" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "d2cafcc5", - "metadata": {}, - "outputs": [], - "source": [ - "Site_Profile_df = pd.read_excel('data/Meloland_Soil_Profile.xlsx',\n", - " sheet_name = 'Scaled_Dmin_to_Kappa_0.036')\n", - "\n", - "Layers = []\n", - "D_min = []\n", - "Vs = []\n", - "Thickness = []\n", - "Profile_Depth = []\n", - "mrd_strains = np.logspace(-6,0,num=20)\n", - "ModReduc_data = {}\n", - "Damping_data = {}\n", - "max_freqs = Site_Profile_df['Max Freq']\n", - "wave_fracs = Site_Profile_df['Wave Fraction']" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "b32ef6ba", - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "for i, (_, row) in enumerate(Site_Profile_df.iterrows()):\n", - "\n", - " soil_type = pystrata.site.DarendeliSoilType(unit_wt = row['Unit Weight (kN/m3)'],\n", - " plas_index=row['PI'],\n", - " ocr=1,\n", - " stress_mean=row['Stress (kPa)'],\n", - " strains = mrd_strains,\n", - " damping_min = row['Scaled_D_min (%)']/100)\n", - " \n", - " Layers.append(pystrata.site.Layer(soil_type,row['Thickness (m)'],row['Velocity (m/s)']))\n", - "\n", - "Layers.append(\n", - " pystrata.site.Layer(\n", - " pystrata.site.SoilType(\n", - " 'Reference Rock',\n", - " 25.9,\n", - " None,\n", - " 0.01\n", - " ),\n", - " 0,\n", - " 3500\n", - " )\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "ec0a55f6", - "metadata": {}, - "outputs": [], - "source": [ - "Site_profile = pystrata.site.Profile(Layers)\n", - "discretized_Site_profile = Site_profile.auto_discretize(max_freq = max_freqs,wave_frac=wave_fracs)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "b1ea7a24", - "metadata": {}, - "outputs": [], - "source": [ - "def calc_kappa(freq,\n", - " FAS,\n", - " freq_range_for_kappa,\n", - " ko_bandwidth = None,\n", - " show_fit = False):\n", - " \n", - " if ko_bandwidth is not None:\n", - " FAS_for_kappa = pykooh.smooth(\n", - " freq_range_for_kappa,\n", - " freq,\n", - " FAS,\n", - " bw = ko_bandwidth\n", - " )\n", - " else:\n", - " FAS_for_kappa = np.interp(freq_range_for_kappa,freq,FAS)\n", - "\n", - " coeffs = np.polyfit(freq_range_for_kappa,np.log(FAS_for_kappa),1)\n", - " slope, intercept = coeffs\n", - " kappa = -slope / np.pi\n", - "\n", - " fit_line = np.exp(slope * freq_range_for_kappa + intercept)\n", - "\n", - " if show_fit:\n", - " return fit_line\n", - " else:\n", - " return kappa" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "b1a0e9b1", - "metadata": {}, - "outputs": [], - "source": [ - "def Kappa_Correction(freq,FAS,Delta_kappa):\n", - "\n", - " FAS_adj = np.exp(-np.pi*Delta_kappa*freq)*FAS\n", - " \n", - " return FAS_adj" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "458b1a12", - "metadata": {}, - "outputs": [], - "source": [ - "# Calculation Loop\n", - "outputs_freqs = np.logspace(np.log10(0.05),np.log10(50),1000)\n", - "\n", - "Kappa_freqs = outputs_freqs[\n", - " (outputs_freqs >= 10) & (outputs_freqs <= 30)\n", - "]\n", - "\n", - "output = pystrata.output.OutputCollection(\n", - " [ \n", - " pystrata.output.FourierAmplitudeSpectrumOutput(\n", - " outputs_freqs,\n", - " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", - " None\n", - " ),\n", - " pystrata.output.FourierComplexSpectrumOutput(\n", - " outputs_freqs,\n", - " pystrata.output.OutputLocation(\"outcrop\", index=0)\n", - " ),\n", - " pystrata.output.KappaOutput(\n", - " Kappa_freqs,\n", - " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", - " None\n", - " ),\n", - " pystrata.output.KappaCorrectFourierAmplitudeSpectrumOutput(\n", - " outputs_freqs,\n", - " Kappa_freqs,\n", - " 0.039,\n", - " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", - " None\n", - " ),\n", - " pystrata.output.KappaCorrectedResponseSpectrumOutput(\n", - " outputs_freqs,\n", - " Kappa_freqs,\n", - " 0.039,\n", - " pystrata.output.OutputLocation(\"outcrop\", index=0),\n", - " osc_damping=0.05\n", - " ),\n", - " pystrata.output.KappaCorrectFourierComplexSpectrumOutput(\n", - " outputs_freqs,\n", - " Kappa_freqs,\n", - " 0.039,\n", - " pystrata.output.OutputLocation(\"outcrop\", index=0)\n", - " ),\n", - " ] \n", - " )\n", - "\n", - "\n", - "\n", - "# motion = pyrvt.motions.StaffordEtAl22Motion(\n", - "# mag= 7,\n", - "# dist_rup = 10,\n", - "# mechanism = \"U\",\n", - "# method = \"continuous\",\n", - "# delta_ztor = 0,\n", - "# freqs=np.logspace(np.log10(0.01),np.log10(100),1000),\n", - "# disable_site_amp = True\n", - "# )\n", - "\n", - "motion = pystrata.motion.TimeSeriesMotion.load_at2_file('data/NIS090.AT2')\n", - "\n", - "eql_calc = pystrata.propagation.EquivalentLinearCalculator(strain_limit = 0.5)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "8b7b3271", - "metadata": {}, - "outputs": [], - "source": [ - "p = discretized_Site_profile.copy()\n", - "\n", - "eql_calc(motion, #type:ignore\n", - " p,\n", - " p.location(\"outcrop\", index=-1))" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "8b9c5bc8", - "metadata": {}, - "outputs": [], - "source": [ - "output(eql_calc,\n", - " name = f\"test\",)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "6a8e1200", - "metadata": {}, - "outputs": [], - "source": [ - "FAS_df = output[0].to_dataframe()\n", - "\n", - "FAS = FAS_df.iloc[:,0].values\n", - "freq = FAS_df.index.to_numpy()" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "75b74a67", - "metadata": {}, - "outputs": [], - "source": [ - "kappa_verify = calc_kappa(freq,FAS,Kappa_freqs,None)\n", - "kappa = output[2].values" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "0b92875b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.4879532879856861\n", - "[0.48795329]\n" - ] - } - ], - "source": [ - "print(kappa_verify)\n", - "print(kappa)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "944573b5", - "metadata": {}, - "outputs": [], - "source": [ - "delta_kappa = kappa - 0.039" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "24443c4c", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n" - ] - } - ], - "source": [ - "fas_kappa_verify = Kappa_Correction(freq,FAS,delta_kappa)\n", - "\n", - "fas_kappa = output[3].values\n", - "\n", - "error = fas_kappa - fas_kappa_verify\n", - "print(error)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "57676084", - "metadata": {}, - "outputs": [], - "source": [ - "fcs_kappa = output[5].values" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "1e165a7c", - "metadata": {}, - "outputs": [], - "source": [ - "accel_kappa_verify = np.fft.irfft(\n", - " fcs_kappa / motion.time_step, n=len(motion.accels))" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "dc382421", - "metadata": {}, - "outputs": [], - "source": [ - "motion_kappa_verify = pystrata.motion.TimeSeriesMotion(\n", - " '',\n", - " '',\n", - " time_step = motion.time_step,\n", - " accels = accel_kappa_verify\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "4c93dcec", - "metadata": {}, - "outputs": [], - "source": [ - "RS_kappa_verify = motion_kappa_verify.calc_osc_accels(freq,0.05)" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "8d44c65b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[-1.27262915e-05 -1.29319119e-05 -1.31409698e-05 -1.33532535e-05\n", - " -1.35687162e-05 -1.37874192e-05 -1.40094829e-05 -1.42350551e-05\n", - " -1.44642925e-05 -1.46772442e-05 -1.48650434e-05 -1.50549899e-05\n", - " -1.52672123e-05 -1.55147782e-05 -1.57668528e-05 -1.60235721e-05\n", - " -1.62850722e-05 -1.65514898e-05 -1.68229629e-05 -1.70996316e-05\n", - " -1.73816383e-05 -1.76691282e-05 -1.79622495e-05 -1.82611533e-05\n", - " -1.85515334e-05 -1.87738171e-05 -1.89974829e-05 -1.93181818e-05\n", - " -1.96454138e-05 -1.99793393e-05 -2.03201153e-05 -2.06678927e-05\n", - " -2.10228121e-05 -2.13849981e-05 -2.17545512e-05 -2.19729079e-05\n", - " -2.22789626e-05 -2.26673566e-05 -2.30629582e-05 -2.34654802e-05\n", - " -2.38744445e-05 -2.42617142e-05 -2.44394599e-05 -2.48579384e-05\n", - " -2.52770795e-05 -2.56936639e-05 -2.61032667e-05 -2.63035595e-05\n", - " -2.65723262e-05 -2.69146814e-05 -2.31550297e-05 -2.35690367e-05\n", - " -2.40267306e-05 -2.42701108e-05 -2.46088136e-05 -2.47505193e-05\n", - " -2.49697299e-05 -2.97286658e-05 -3.02082839e-05 -3.11245085e-05\n", - " -3.18153603e-05 -3.25754594e-05 -3.33851747e-05 -3.42303260e-05\n", - " -3.51019430e-05 -3.59315362e-05 -3.65388402e-05 -3.74647774e-05\n", - " -3.84111918e-05 -3.91996097e-05 -3.99637616e-05 -4.09781759e-05\n", - " -4.19389084e-05 -4.26550562e-05 -4.37641386e-05 -4.45581365e-05\n", - " -4.56234827e-05 -4.68614729e-05 -4.76329796e-05 -4.89777336e-05\n", - " -4.98304338e-05 -5.09302221e-05 -5.22594165e-05 -5.32590760e-05\n", - " -5.43071693e-05 -5.54397119e-05 -5.66340726e-05 -5.77536048e-05\n", - " -5.89808085e-05 -5.33594786e-05 -5.56352594e-05 -5.82571792e-05\n", - " -6.06790086e-05 -6.28610021e-05 -6.53097255e-05 -6.68419875e-05\n", - " -6.82688887e-05 -6.81243639e-05 -6.76221363e-05 -6.68327879e-05\n", - " -6.59797725e-05 -6.45712699e-05 -6.36847399e-05 -6.35554223e-05\n", - " -6.35379885e-05 -6.37248809e-05 -6.41707408e-05 -6.56776743e-05\n", - " -6.66755812e-05 -6.79559763e-05 -6.95205683e-05 -7.13744196e-05\n", - " -7.35280520e-05 -7.59990300e-05 -7.88133960e-05 -8.11252936e-05\n", - " -8.47329585e-05 -8.79028489e-05 -9.15911483e-05 -9.58893849e-05\n", - " -1.00906050e-04 -1.05690908e-04 -1.11356889e-04 -1.16819687e-04\n", - " -1.23162685e-04 -1.28709118e-04 -1.33950565e-04 -1.37039039e-04\n", - " -1.39129510e-04 -1.38992616e-04 -1.36577838e-04 -1.33241415e-04\n", - " -1.29236565e-04 -1.25073047e-04 -1.21363458e-04 -1.19202010e-04\n", - " -1.19010349e-04 -1.18522137e-04 -1.20264762e-04 -1.22982975e-04\n", - " -1.26525697e-04 -1.29987079e-04 -1.34322710e-04 -1.39873960e-04\n", - " -1.46756814e-04 -1.53150681e-04 -1.61071201e-04 -1.68605328e-04\n", - " -1.77931090e-04 -1.86972738e-04 -1.95641938e-04 -2.03773752e-04\n", - " -2.11113197e-04 -2.15754730e-04 -2.18876962e-04 -2.22598780e-04\n", - " -2.35448243e-04 -2.45147810e-04 -2.49611434e-04 -2.50942665e-04\n", - " -2.52049440e-04 -2.50507975e-04 -2.48925495e-04 -2.48473558e-04\n", - " -2.47729918e-04 -2.49575980e-04 -2.52313178e-04 -2.56553470e-04\n", - " -2.64808908e-04 -2.73206778e-04 -2.84535483e-04 -2.96656061e-04\n", - " -3.12636722e-04 -3.31216149e-04 -3.51034426e-04 -3.72231190e-04\n", - " -3.91267040e-04 -4.05063993e-04 -4.16669313e-04 -4.22761607e-04\n", - " -4.23674755e-04 -4.17631696e-04 -4.10928831e-04 -4.05401035e-04\n", - " -4.02806021e-04 -3.99648705e-04 -4.00081244e-04 -4.01548415e-04\n", - " -4.08611331e-04 -4.19156544e-04 -4.28395222e-04 -4.42169513e-04\n", - " -4.60913130e-04 -4.77811349e-04 -4.94026474e-04 -5.05311890e-04\n", - " -5.16366110e-04 -5.24422285e-04 -5.23911974e-04 -5.17975093e-04\n", - " -5.11626177e-04 -5.01399040e-04 -4.93778974e-04 -4.90814669e-04\n", - " -4.88544139e-04 -4.88619262e-04 -4.92735705e-04 -5.02016087e-04\n", - " -5.14253642e-04 -5.26961964e-04 -5.44706032e-04 -5.59399721e-04\n", - " -6.01573695e-04 -6.24742746e-04 -6.41656976e-04 -6.45825111e-04\n", - " -6.46656784e-04 -6.44279265e-04 -6.38324569e-04 -6.30286788e-04\n", - " -6.32178683e-04 -6.26875714e-04 -6.33470223e-04 -6.43233449e-04\n", - " -6.53587578e-04 -6.67835367e-04 -6.78934714e-04 -6.93113082e-04\n", - " -7.00005499e-04 -7.01568499e-04 -6.93917963e-04 -6.77206406e-04\n", - " -6.58512293e-04 -6.31158496e-04 -6.07773510e-04 -5.92711853e-04\n", - " -5.78470102e-04 -5.66932253e-04 -5.59027585e-04 -5.45344824e-04\n", - " -5.43529498e-04 -5.31167663e-04 -5.10922152e-04 -5.62084537e-04\n", - " -5.89839311e-04 -6.22622649e-04 -6.45009803e-04 -6.65162016e-04\n", - " -6.81542681e-04 -6.93596957e-04 -7.01402464e-04 -7.19311744e-04\n", - " -7.20172122e-04 -7.32588184e-04 -7.37775262e-04 -7.42098915e-04\n", - " -7.53341347e-04 -7.69389029e-04 -7.86847130e-04 -8.01615858e-04\n", - " -8.27403837e-04 -8.58681563e-04 -8.79098956e-04 -9.01870697e-04\n", - " -9.23491568e-04 -9.30660629e-04 -9.48492977e-04 -9.40738455e-04\n", - " -9.41869512e-04 -9.35223660e-04 -9.42201082e-04 -9.50499139e-04\n", - " -9.65344311e-04 -9.90529504e-04 -1.00910717e-03 -1.03825217e-03\n", - " -1.07504503e-03 -1.10093673e-03 -1.13027582e-03 -1.13783560e-03\n", - " -1.13996438e-03 -1.14589924e-03 -1.15286928e-03 -1.17261941e-03\n", - " -1.19851950e-03 -1.22339120e-03 -1.25712991e-03 -1.27426560e-03\n", - " -1.31492428e-03 -1.50868595e-03 -1.55546972e-03 -1.60222547e-03\n", - " -1.66036305e-03 -1.70088162e-03 -1.73478564e-03 -1.76934864e-03\n", - " -1.80311209e-03 -1.83287202e-03 -1.85530357e-03 -1.86897031e-03\n", - " -1.90421863e-03 -1.91981187e-03 -1.92411127e-03 -1.93982984e-03\n", - " -1.98059990e-03 -1.99545556e-03 -1.99901076e-03 -1.99156465e-03\n", - " -1.97438136e-03 -1.94541119e-03 -1.91089523e-03 -2.01662905e-03\n", - " -2.07257004e-03 -2.09061267e-03 -2.14831250e-03 -2.17916006e-03\n", - " -2.18816619e-03 -2.20590609e-03 -2.22639983e-03 -2.23668218e-03\n", - " -2.25018019e-03 -2.29600433e-03 -2.28956271e-03 -2.33024138e-03\n", - " -2.33056222e-03 -2.31480558e-03 -2.34949828e-03 -2.32273500e-03\n", - " -2.35612213e-03 -2.34997572e-03 -2.37051118e-03 -2.35366880e-03\n", - " -2.39060971e-03 -2.36663025e-03 -2.39670738e-03 -2.35956463e-03\n", - " -2.37512479e-03 -2.32925007e-03 -2.26611718e-03 -2.26309944e-03\n", - " -2.28167537e-03 -2.30929303e-03 -2.34937073e-03 -2.34833165e-03\n", - " -2.34298151e-03 -2.33712072e-03 -2.26640818e-03 -2.24204628e-03\n", - " -2.23508800e-03 -2.24844303e-03 -2.41065037e-03 -2.47864925e-03\n", - " -2.56136719e-03 -2.66110750e-03 -2.74410005e-03 -2.74465461e-03\n", - " -2.80186846e-03 -2.84231249e-03 -2.86866957e-03 -2.88536310e-03\n", - " -2.89571428e-03 -2.89959511e-03 -2.89341044e-03 -2.90972869e-03\n", - " -2.92556263e-03 -2.86933827e-03 -2.79640684e-03 -2.72373815e-03\n", - " -2.69265381e-03 -2.57467468e-03 -2.52805512e-03 -2.46746993e-03\n", - " -2.38137404e-03 -2.28489065e-03 -2.21865015e-03 -2.14321809e-03\n", - " -2.05286457e-03 -1.96204063e-03 -1.91248213e-03 -1.87481837e-03\n", - " -1.83783759e-03 -1.84574397e-03 -1.80444423e-03 -1.78025398e-03\n", - " -1.77814554e-03 -1.74286320e-03 -1.72216339e-03 -1.72121268e-03\n", - " -1.68439380e-03 -1.64730186e-03 -1.70411876e-03 -1.68178735e-03\n", - " -1.71551175e-03 -1.69277224e-03 -1.66307754e-03 -1.68766068e-03\n", - " -1.65281957e-03 -1.64972555e-03 -1.63467188e-03 -1.59113805e-03\n", - " -1.59837588e-03 -1.57225659e-03 -1.55054755e-03 -1.55571170e-03\n", - " -1.52073421e-03 -1.52097402e-03 -1.53199123e-03 -1.49069122e-03\n", - " -1.50082989e-03 -1.46233717e-03 -1.46624345e-03 -1.47016780e-03\n", - " -1.42830941e-03 -1.43208273e-03 -1.39595153e-03 -1.38416033e-03\n", - " -1.64075490e-03 -1.65698947e-03 -1.67165991e-03 -1.68358089e-03\n", - " -1.69201854e-03 -1.69702863e-03 -1.69942862e-03 -1.70049391e-03\n", - " -1.74097701e-03 -1.78110579e-03 -1.78717554e-03 -1.79521853e-03\n", - " -1.80484926e-03 -1.81572229e-03 -1.82752337e-03 -1.80201044e-03\n", - " -1.77073354e-03 -1.78022692e-03 -1.78460633e-03 -1.63390977e-03\n", - " -1.74589230e-03 -1.79892741e-03 -1.83477844e-03 -1.89713077e-03\n", - " -2.00505997e-03 -2.03720090e-03 -2.06521715e-03 -2.08770013e-03\n", - " -2.13215176e-03 -2.22905888e-03 -2.23108543e-03 -2.22184768e-03\n", - " -2.20234926e-03 -2.17189198e-03 -2.25210045e-03 -2.19846429e-03\n", - " -2.13052669e-03 -2.15301523e-03 -2.07020912e-03 -2.06109525e-03\n", - " -1.95186246e-03 -1.92957407e-03 -1.89701116e-03 -1.85841336e-03\n", - " -1.81853010e-03 -1.78274041e-03 -1.80248471e-03 -1.85634844e-03\n", - " -1.87449518e-03 -1.91995569e-03 -1.99598724e-03 -2.10460499e-03\n", - " -2.24642258e-03 -2.40423884e-03 -2.47451368e-03 -2.60848855e-03\n", - " -2.79045224e-03 -2.88548450e-03 -2.98533577e-03 -3.08703949e-03\n", - " -3.18712873e-03 -3.28170516e-03 -3.36648870e-03 -3.43689493e-03\n", - " -3.42149507e-03 -3.30947261e-03 -3.31719228e-03 -3.29555036e-03\n", - " -3.24187490e-03 -3.15464791e-03 -3.03361669e-03 -2.87982950e-03\n", - " -2.69562233e-03 -2.75124093e-03 -2.95136646e-03 -2.84100166e-03\n", - " -2.71925597e-03 -2.76300696e-03 -2.63362803e-03 -2.48135734e-03\n", - " -2.42138759e-03 -2.32058845e-03 -2.14845134e-03 -1.77159235e-03\n", - " -1.83804305e-03 -1.74819981e-03 -1.80451111e-03 -1.69424192e-03\n", - " -1.57619728e-03 -1.56322819e-03 -1.60602953e-03 -1.56559341e-03\n", - " -1.59563664e-03 -1.54426684e-03 -1.56213779e-03 -1.50210845e-03\n", - " -1.57407586e-03 -1.46639103e-03 -1.48114971e-03 -1.49419906e-03\n", - " -1.47801205e-03 -1.40317990e-03 -1.41744428e-03 -1.43195599e-03\n", - " -1.44703382e-03 -1.38403576e-03 -1.37010280e-03 -1.38969853e-03\n", - " -1.40983030e-03 -1.37134385e-03 -1.34387512e-03 -1.36648549e-03\n", - " -1.38840288e-03 -1.31862226e-03 -1.32655243e-03 -1.34734996e-03\n", - " -1.32644128e-03 -1.28369631e-03 -1.30140432e-03 -1.31658955e-03\n", - " -1.23410366e-03 -1.24795562e-03 -1.25929391e-03 -1.23643761e-03\n", - " -1.18745550e-03 -1.19579523e-03 -1.20223598e-03 -1.17725901e-03\n", - " -1.12950433e-03 -1.13474240e-03 -1.13868816e-03 -1.14143564e-03\n", - " -1.07786054e-03 -1.07206021e-03 -1.07457979e-03 -1.07584051e-03\n", - " -1.05452188e-03 -1.00869170e-03 -1.00884564e-03 -1.00734757e-03\n", - " -1.00411889e-03 -9.80454742e-04 -9.36172006e-04 -9.30712505e-04\n", - " -9.23557194e-04 -9.14870297e-04 -9.04872310e-04 -8.93830625e-04\n", - " -8.82046930e-04 -8.69840292e-04 -8.57527945e-04 -8.45408137e-04\n", - " -8.33746712e-04 -8.22765758e-04 -8.12634244e-04 -8.03463252e-04\n", - " -7.95306730e-04 -7.88165783e-04 -7.81995219e-04 -7.76712269e-04\n", - " -7.72206837e-04 -7.68352023e-04 -7.65014150e-04 -7.62061458e-04\n", - " -7.59370263e-04 -7.56828390e-04 -7.54336769e-04 -7.51809973e-04\n", - " -7.49176151e-04 -7.46376610e-04 -7.43365330e-04 -7.40109096e-04\n", - " -7.36589003e-04 -7.32803064e-04 -7.28768661e-04 -7.24524068e-04\n", - " -7.20128984e-04 -7.19870107e-04 -7.24144419e-04 -7.29506207e-04\n", - " -7.35784834e-04 -7.33248332e-04 -7.30557503e-04 -7.28465995e-04\n", - " -7.27001295e-04 -7.26158475e-04 -7.25901376e-04 -7.26166802e-04\n", - " -7.26871150e-04 -7.27918649e-04 -7.29210320e-04 -7.30652637e-04\n", - " -7.32164649e-04 -7.33682400e-04 -7.35160066e-04 -7.36567944e-04\n", - " -7.37887999e-04 -7.39108146e-04 -7.40216788e-04 -7.41199048e-04\n", - " -7.42035679e-04 -7.42704732e-04 -7.43185369e-04 -7.43462669e-04\n", - " -7.43532128e-04 -7.43402673e-04 -7.43097478e-04 -7.41596478e-04\n", - " -7.39003068e-04 -7.36841571e-04 -7.35062786e-04 -7.33587700e-04\n", - " -7.32317768e-04 -7.31147306e-04 -7.29976477e-04 -7.28723176e-04\n", - " -7.27332016e-04 -7.25778996e-04 -7.24071169e-04 -7.22241538e-04\n", - " -7.20340401e-04 -7.18425071e-04 -7.16550144e-04 -7.14760129e-04\n", - " -7.13085477e-04 -7.11542101e-04 -7.10133657e-04 -7.08855341e-04\n", - " -7.07697872e-04 -7.06650590e-04 -7.05703127e-04 -7.04845669e-04\n", - " -7.04068274e-04 -7.03359927e-04 -7.02707983e-04 -7.02098353e-04\n", - " -7.01516429e-04 -7.00948449e-04 -7.00382863e-04 -6.99811258e-04\n", - " -6.99228604e-04 -6.98632829e-04 -6.98023905e-04 -6.97402812e-04\n", - " -6.96882801e-04 -6.96808392e-04 -6.96744739e-04 -6.96690893e-04\n", - " -6.96645880e-04 -6.96608691e-04 -6.96578310e-04 -6.96553752e-04\n", - " -6.96534055e-04 -6.96518239e-04 -6.96505279e-04 -6.96494110e-04\n", - " -6.96483692e-04 -6.96473129e-04 -6.96461793e-04 -6.96449405e-04\n", - " -6.96436049e-04 -6.96422099e-04 -6.96408092e-04 -6.96394579e-04\n", - " -6.96382015e-04 -6.96370694e-04 -6.96360750e-04 -6.96352195e-04\n", - " -6.96344972e-04 -6.96338995e-04 -6.96334180e-04 -6.96330453e-04\n", - " -6.96327752e-04 -6.96326032e-04 -6.96325268e-04 -6.96325454e-04\n", - " -6.96326602e-04 -6.96328732e-04 -6.96331855e-04 -6.96335959e-04\n", - " -6.96341010e-04 -6.96346953e-04 -6.96353730e-04 -6.96361295e-04\n", - " -6.96369615e-04 -6.96378676e-04 -6.96388470e-04 -6.96398989e-04\n", - " -6.96410217e-04 -6.96422126e-04 -6.96434678e-04 -6.96447829e-04\n", - " -6.96461533e-04 -6.96475748e-04 -6.96490435e-04 -6.96505562e-04\n", - " -6.96521098e-04 -6.96537018e-04 -6.96553296e-04 -6.96569913e-04\n", - " -6.96586849e-04 -6.96604089e-04 -6.96621623e-04 -6.96639440e-04\n", - " -6.96657529e-04 -6.96675881e-04 -6.96694484e-04 -6.96713327e-04\n", - " -6.96732399e-04 -6.96751688e-04 -6.96771185e-04 -6.96790879e-04\n", - " -6.96810763e-04 -6.96830827e-04 -6.96851063e-04 -6.96871461e-04\n", - " -6.96892013e-04 -6.96912710e-04 -6.96933543e-04 -6.96954504e-04\n", - " -6.96975587e-04 -6.96996783e-04 -6.97018086e-04 -6.97039489e-04\n", - " -6.97060987e-04 -6.97082572e-04 -6.97104239e-04 -6.97125981e-04\n", - " -6.97147794e-04 -6.97169670e-04 -6.97191606e-04 -6.97213596e-04\n", - " -6.97235635e-04 -6.97257719e-04 -6.97279843e-04 -6.97302003e-04\n", - " -6.97324195e-04 -6.97346414e-04 -6.97368656e-04 -6.97390918e-04\n", - " -6.97413195e-04 -6.97435485e-04 -6.97457784e-04 -6.97480087e-04\n", - " -6.97502393e-04 -6.97524698e-04 -6.97546998e-04 -6.97569291e-04\n", - " -6.97591574e-04 -6.97613844e-04 -6.97636098e-04 -6.97658335e-04\n", - " -6.97680551e-04 -6.97702743e-04 -6.97724911e-04 -6.97747051e-04\n", - " -6.97769161e-04 -6.97791239e-04 -6.97813283e-04 -6.97835291e-04\n", - " -6.97857261e-04 -6.97879192e-04 -6.97901081e-04 -6.97922927e-04\n", - " -6.97944728e-04 -6.97966483e-04 -6.97988190e-04 -6.98009847e-04\n", - " -6.98031453e-04 -6.98053007e-04 -6.98074508e-04 -6.98095953e-04\n", - " -6.98117342e-04 -6.98138674e-04 -6.98159947e-04 -6.98181160e-04\n", - " -6.98202312e-04 -6.98223403e-04 -6.98244431e-04 -6.98265395e-04\n", - " -6.98286294e-04 -6.98307127e-04 -6.98327894e-04 -6.98348593e-04\n", - " -6.98369225e-04 -6.98389787e-04 -6.98410280e-04 -6.98430702e-04\n", - " -6.98451053e-04 -6.98471333e-04 -6.98491540e-04 -6.98511674e-04\n", - " -6.98531735e-04 -6.98551721e-04 -6.98571633e-04 -6.98591470e-04\n", - " -6.98611232e-04 -6.98630917e-04 -6.98650526e-04 -6.98670058e-04\n", - " -6.98689513e-04 -6.98708890e-04 -6.98728189e-04 -6.98747410e-04\n", - " -6.98766552e-04 -6.98785615e-04 -6.98804599e-04 -6.98823504e-04\n", - " -6.98842329e-04 -6.98861073e-04 -6.98879738e-04 -6.98898323e-04\n", - " -6.98916826e-04 -6.98935249e-04 -6.98953591e-04 -6.98971853e-04\n", - " -6.98990033e-04 -6.99008131e-04 -6.99026149e-04 -6.99044084e-04\n", - " -6.99061939e-04 -6.99079711e-04 -6.99097402e-04 -6.99115012e-04\n", - " -6.99132539e-04 -6.99149985e-04 -6.99167349e-04 -6.99184631e-04\n", - " -6.99201831e-04 -6.99218949e-04 -6.99235986e-04 -6.99252941e-04\n", - " -6.99269814e-04 -6.99286606e-04 -6.99303316e-04 -6.99319944e-04\n", - " -6.99336491e-04 -6.99352956e-04 -6.99369341e-04 -6.99385644e-04\n", - " -6.99401865e-04 -6.99418006e-04 -6.99434066e-04 -6.99450045e-04\n", - " -6.99465944e-04 -6.99481762e-04 -6.99497500e-04 -6.99513157e-04\n", - " -6.99528734e-04 -6.99544231e-04 -6.99559649e-04 -6.99574987e-04\n", - " -6.99590245e-04 -6.99605424e-04 -6.99620525e-04 -6.99635546e-04\n", - " -6.99650488e-04 -6.99665352e-04 -6.99680137e-04 -6.99694845e-04\n", - " -6.99709474e-04 -6.99724026e-04 -6.99738500e-04 -6.99752896e-04\n", - " -6.99767216e-04 -6.99781459e-04 -6.99795625e-04 -6.99809715e-04\n", - " -6.99823728e-04 -6.99837665e-04 -6.99851527e-04 -6.99865313e-04\n", - " -6.99879024e-04 -6.99892660e-04 -6.99906221e-04 -6.99919708e-04\n", - " -6.99933120e-04 -6.99946458e-04 -6.99959723e-04 -6.99972914e-04\n", - " -6.99986031e-04 -6.99999076e-04 -7.00012048e-04 -7.00024947e-04\n", - " -7.00037775e-04 -7.00050530e-04 -7.00063213e-04 -7.00075825e-04\n", - " -7.00088366e-04 -7.00100837e-04 -7.00113236e-04 -7.00125565e-04\n", - " -7.00137824e-04 -7.00150014e-04 -7.00162133e-04 -7.00174184e-04\n", - " -7.00186166e-04 -7.00198079e-04 -7.00209923e-04 -7.00221700e-04\n", - " -7.00233408e-04 -7.00245049e-04 -7.00256623e-04 -7.00268130e-04\n", - " -7.00279571e-04 -7.00290944e-04 -7.00302252e-04 -7.00313494e-04\n", - " -7.00324670e-04 -7.00335782e-04 -7.00346828e-04 -7.00357809e-04\n", - " -7.00368726e-04 -7.00379579e-04 -7.00390369e-04 -7.00401094e-04\n", - " -7.00411757e-04 -7.00422356e-04 -7.00432893e-04 -7.00443368e-04\n", - " -7.00453780e-04 -7.00464131e-04 -7.00474420e-04 -7.00484648e-04\n", - " -7.00494815e-04 -7.00504922e-04 -7.00514968e-04 -7.00524954e-04\n", - " -7.00534880e-04 -7.00544747e-04 -7.00554555e-04 -7.00564303e-04\n", - " -7.00573994e-04 -7.00583625e-04 -7.00593199e-04 -7.00602715e-04\n", - " -7.00612174e-04 -7.00621575e-04 -7.00630920e-04 -7.00640208e-04\n", - " -7.00649439e-04 -7.00658615e-04 -7.00667734e-04 -7.00676799e-04\n", - " -7.00685808e-04 -7.00694762e-04 -7.00703662e-04 -7.00712507e-04\n", - " -7.00721298e-04 -7.00730035e-04 -7.00738719e-04 -7.00747350e-04\n", - " -7.00755927e-04 -7.00764452e-04 -7.00772925e-04 -7.00781345e-04\n", - " -7.00789714e-04 -7.00798031e-04 -7.00806296e-04 -7.00814511e-04\n", - " -7.00822675e-04 -7.00830788e-04 -7.00838851e-04 -7.00846864e-04\n", - " -7.00854828e-04 -7.00862742e-04 -7.00870606e-04 -7.00878422e-04\n", - " -7.00886190e-04 -7.00893909e-04 -7.00901580e-04 -7.00909203e-04\n", - " -7.00916778e-04 -7.00924306e-04 -7.00931787e-04 -7.00939221e-04\n", - " -7.00939414e-04 -7.00915584e-04 -7.00891967e-04 -7.00868563e-04\n", - " -7.00845369e-04 -7.00822383e-04 -7.00799602e-04 -7.00777025e-04]\n" - ] - } - ], - "source": [ - "RS_kappa = output[4].values\n", - "\n", - "\n", - "error = RS_kappa -RS_kappa_verify\n", - "\n", - "print(error)" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "dbb1008c", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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rLD+V3mJDWlrTGFRX7omkh/ylStXVnviRYIgqTGS2qCmOnz4sPpRlYBKftjlR6qgoABnnHGGagLauHGjCrLOPvts1dRR1fPPP48+ffpgw4YN6sfxlltuqRawCQlszjvvPGzevBkzZ85UgdOOHTsqt8uPr/RZklou+TGVH2b5wW+MBE+DBg1StQNVyd8zZsxQ7+VHePz48ejfvz/WrVunfuDT0tJUPqr64IMP1PVdsWIF5s2bV+tccq3lB/iOO+5Q76V27qKLLsL8+fOrpZO/zz///HqnvpD53yTYqYtcP5lIVq6NHKOuz/bJJ5+ovEuAbAkopalO8iTXzhryWSXg+/vvv1VQdP311+OCCy5QTVlyHydNmqSCIqm9EkePHlVlQYJhuYcS2Eqt1pNPPqm2y3mHDx+Oa665RuVDXpK/miSQvPDCC9V1kxrMRx99VJUNufdVSXAkn13yJ3mTl3zGqiQoq28uPYf5dxZ6qkNubq6M2qSWdTEajVpqaqpa2kr22fdEf017JEL744MnrEpvzbmsSddQGnu36ZUr8+zIc9l7LFv3c1W5amx7U69dcXGxtn37drWs5pGI+l//d371tE+2qT/te2dUT/tMUt3pbDRr1izN19dXCw0N1QIDA9X3jY+Pj/bll19WpikvL9cuu+wyta1NmzbaOeeco7366qv1fi/VNH/+fC0yMlLbuXOnlpiYqN14442NXufk5GR1Dov27dtrp512mlZWVqaZTCa1bvr06drpp59emUbyd91111X+LemGDBlSbV1Nzz33nDZw4MBqx61J1sv2OXPmaJ06dapcv2vXLnVOue+y/fHHH9cmT55cbd9Dhw6pNPLZxZgxY7T+/fvXOoek+eabbyr/7tu3r/bII49U/r1mzRp1n44dO6b+TktL0/z8/LQ///yz3s82depU7corr6y2bsmSJepc3377bbX1L774YuVnk8+7detWlW7Hjh3V9svOztasJZ915MiRlX9XVFSocnbppZdWrpPPA0BbuXKl+vv+++/XunXrVu1ezJ07VwsLC6ssM3LcW265pdq5Fi9erI6TlZWl/p45c6Y2adKkamnuuusurWfPntXK1CWXXFJ5f+X4sbGx2htvvFFtv9tuu00bO3Zs5d+W9JY81vf/vlyrhn6/q2KNkJtkpmxGx4p9KNd80XncZe7KBhG5mdTQbNq0CWvW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jervIrKzs7F79+5qNTPyQy/9ZCz27NlTrRZEzvP5558jNjYWERERduW1d+/eKiiS/ko1a2oszjjjDBXsSY2Y9HdatmxZg8eUvlGSVoI4CbpsJdfu8ccfxy+//KKuVU2WGi85DxHZjp2licip5KksqbGYMWMG1q5dq360pXbjiiuuUE1A0mQmj5ZLh+nFixerJ8zk6a6azT/S4VoeQ5cOw9Lp+rrrrqtWu3PxxRer2hd5Ukw6DqekpKhO1zfffDOOHDliVV4lWJs1a5ZqhpIn1CzH+OKLLyrTSNOZ5O++++5Dly5dMHz48EabEaW2atu2bTZfO7kW0nlbmsukSe/48ePqJdfTYvXq1erptsbyQUR1YyBERE4l/WrkCS4JeiZPnqxqXeSxeHnE3RLsPPfccxg1apRqQpOamJEjR9bqaySP1MtTVJJu5syZuPPOO6s1Scl7qZ2RWqVzzz0XPXr0UAGW1JjYUkMktTfnn38+brjhBnTv3h3XXHONery/Kjmu9GuSYK4x8pTXtGnT7Br0UAI+qfWSpjFpRrS85PNZyBNuEgQ21DxHRPUzSI/pBrYTEbmFjJUj00e89NJLursDUuM0YcIENW6RPLremH/++QeTJk1StWF1dRq3l4zFJJ3KJWCqa0BLImoca4SIiKwkT4hJM9ujjz6qnhSzJggSffr0UZ3FpanNkWTAxddff51BEFETsLM0EZGVpBlKmsWkpurDDz+06bpJvyJHGzRokHoRkf3YNEZERERei01jRERE5LUYCBEREZHXYiBEREREXouBEBEREXktBkJERETktRgIERERkddiIERERERei4EQEREReS0GQkRERARv9f/SRH91WcqR/gAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "ax.plot(freq, RS_kappa, label=\"RS_kappa (output[3])\")\n", - "ax.plot(freq, RS_kappa_verify, \"--\", label=\"RS_kappa_verify (rvt_motion)\")\n", - "\n", - "ax.set(\n", - " xlabel=\"Frequency (Hz)\",\n", - " xscale=\"log\",\n", - " ylabel=\"5%-Damped Spectral Accel. (g)\",\n", - " yscale=\"log\",\n", - ")\n", - "\n", - "ax.legend()\n", - "\n", - "ax.grid(True, which=\"both\", alpha=0.3)\n", - "\n", - "plt.show()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.10" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/tests/data/Meloland_Soil_Profile.xlsx b/tests/data/Meloland_Soil_Profile.xlsx deleted file mode 100644 index a64946db50e69be370c6ad5001aa12385c8c2318..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133629 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

LRB)fG*Ws)?Y>-_<%QO#y)!L-Cy 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 From f37ff77d2b54f4b5a345764b241bb476ac635ef8 Mon Sep 17 00:00:00 2001 From: James Dea <49453187+jimxia7@users.noreply.github.com> Date: Sun, 9 Aug 2026 16:10:31 -0500 Subject: [PATCH 22/22] Fixing a bug --- src/pystrata/tools.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/pystrata/tools.py b/src/pystrata/tools.py index d2a8bac..c70aa46 100644 --- a/src/pystrata/tools.py +++ b/src/pystrata/tools.py @@ -534,5 +534,3 @@ def calc_mean_eff_stress( stress_mean = stress_vert_eff * (1 + 2 * k0) / 3 return stress_mean - -def \ No newline at end of file