diff --git a/CL_pipeline.png b/CL_pipeline.png new file mode 100644 index 000000000..3f8f6227c Binary files /dev/null and b/CL_pipeline.png differ diff --git a/examples/cosmodc2/1deg2-in2p3.sub b/examples/cosmodc2/1deg2-in2p3.sub new file mode 100644 index 000000000..a104d767c --- /dev/null +++ b/examples/cosmodc2/1deg2-in2p3.sub @@ -0,0 +1,9 @@ +#!/usr/bin/bash +#SBATCH --time=01:00:00 +#SBATCH --partition=hpc +#SBATCH --ntasks=1 +#SBATCH --cpus-per-task=1 +#SBATCH --mem=128000 + +source /pbs/throng/lsst/users/jzuntz/txpipe-environments/setup-txpipe +ceci examples/cosmodc2/pipeline-1deg2-CL-in2p3.yml diff --git a/examples/cosmodc2/1deg2-nersc.sub b/examples/cosmodc2/1deg2-nersc.sub new file mode 100644 index 000000000..3ed6809a4 --- /dev/null +++ b/examples/cosmodc2/1deg2-nersc.sub @@ -0,0 +1,10 @@ +#!/bin/bash +#SBATCH -A m1727 +#SBATCH -C cpu +#SBATCH --qos=debug +#SBATCH --time=00:30:00 +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=32 + +source $CFS/lsst/groups/WL/users/zuntz/setup-txpipe +tx ceci examples/cosmodc2/pipeline-1deg2-CL-nersc.yml diff --git a/examples/cosmodc2/20deg2-in2p3.sub b/examples/cosmodc2/20deg2-in2p3.sub index 717d168cd..e628081c4 100644 --- a/examples/cosmodc2/20deg2-in2p3.sub +++ b/examples/cosmodc2/20deg2-in2p3.sub @@ -6,4 +6,4 @@ #SBATCH --mem=128000 source /pbs/throng/lsst/users/jzuntz/txpipe-environments/setup-txpipe -ceci examples/cosmodc2/pipeline-20deg2-clmm.yml +ceci examples/cosmodc2/pipeline-20deg2-CL-in2p3.yml diff --git a/examples/cosmodc2/20deg2-nersc.sub b/examples/cosmodc2/20deg2-nersc.sub index d2cabb3f3..50a4d2d56 100644 --- a/examples/cosmodc2/20deg2-nersc.sub +++ b/examples/cosmodc2/20deg2-nersc.sub @@ -7,5 +7,4 @@ #SBATCH --ntasks-per-node=32 source $CFS/lsst/groups/WL/users/zuntz/setup-txpipe - -tx ceci examples/cosmodc2/pipeline-20deg2-clmm-nersc.yml +tx ceci examples/cosmodc2/pipeline-20deg2-CL-nersc.yml diff --git a/examples/cosmodc2/config-20deg2-clmm.yml b/examples/cosmodc2/config-1deg2-CL.yml similarity index 81% rename from examples/cosmodc2/config-20deg2-clmm.yml rename to examples/cosmodc2/config-1deg2-CL.yml index 0322e132d..91a4e7a4f 100644 --- a/examples/cosmodc2/config-20deg2-clmm.yml +++ b/examples/cosmodc2/config-1deg2-CL.yml @@ -63,7 +63,25 @@ BPZ_lite: mag_i: 28.62 mag_z: 27.98 +CLClusterBinningRedshiftRichness: + zedge : [0.1, 0.4, 0.6, 0.8] + richedge : [5., 10., 20.,25.] CLClusterShearCatalogs: max_radius: 5.0 # Mpc delta_z: 0.2 # redshift buffer + +CLClusterEnsembleProfiles: + #radial bin definition + r_min : 0.2 #in Mpc + r_max : 5.0 #in Mpc + #type of profile + delta_sigma_profile : True + shear_profile : False + magnification_profile : False + #stacking step or not + stack_profile : True + + + + diff --git a/examples/cosmodc2/config-20deg2-CL.yml b/examples/cosmodc2/config-20deg2-CL.yml new file mode 100644 index 000000000..9fdd92ea9 --- /dev/null +++ b/examples/cosmodc2/config-20deg2-CL.yml @@ -0,0 +1,88 @@ +TXSourceSelectorMetadetect: + input_pz: False + bands: riz #used for selection + T_cut: 0.5 + s2n_cut: 10.0 + max_rows: 1000 + delta_gamma: 0.02 + source_zbin_edges: [0.1, 3.0] + chunk_rows: 100000 + true_z: False + shear_prefix: '' + +Inform_BPZ_lite: + aliases: + input: spectroscopic_catalog + model: photoz_model + zmin: 0.0 + zmax: 3.0 + nzbins: 301 + columns_file: ./data/bpz_riz.columns + data_path: ./data/example/rail-bpz-inputs + spectra_file: CWWSB4.list + prior_band: i + ref_band: i + # Not sure about this + prior_file: hdfn_gen + p_min: 0.005 + gauss_kernel: 0.0 + mag_err_min: 0.005 + inform_options: {'save_train': False, 'load_model': False, 'modelfile': 'BPZpriormodel.out'} + madau_reddening: no + bands: riz + zp_errors: [0.01, 0.01, 0.01] + hdf5_groupname: photometry + + + +BPZ_lite: + aliases: + model: photoz_model + input: shear_catalog + output: source_photoz_pdfs + zmin: 0.0 + zmax: 3.0 + dz: 0.01 + nzbins: 301 + data_path: ./data/example/rail-bpz-inputs + bands: [mag_r, mag_i, mag_z] + err_bands: [mag_err_r, mag_err_i, mag_err_z] + hdf5_groupname: shear/00 + nondetect_val: .inf + columns_file: ./data/bpz_riz.columns + spectra_file: CWWSB4.list + ref_band: mag_i + prior_file: hdfn_gen + p_min: 0.005 + gauss_kernel: 0.0 + zp_errors: [0.01, 0.01, 0.01] + mag_err_min: 0.005 + madau_reddening: false + mag_limits: + mag_r: 29.06 + mag_i: 28.62 + mag_z: 27.98 + +CLClusterBinningRedshiftRichness: + zedge : [0.1, 0.4, 0.6, 0.8] + richedge : [5., 10., 20.,25.] + +CLClusterShearCatalogs: + max_radius: 5.0 # Mpc + delta_z: 0.2 # redshift buffer + +CLClusterEnsembleProfiles: + #radial bin definition + r_min : 0.2 #in Mpc + r_max : 5.0 #in Mpc + #type of profile + delta_sigma_profile : True + shear_profile : False + magnification_profile : False + #stacking step or not + stack_profile : True + + + + + diff --git a/examples/cosmodc2/pipeline-1deg2-CL-in2p3.yml b/examples/cosmodc2/pipeline-1deg2-CL-in2p3.yml new file mode 100644 index 000000000..cd9bccbc2 --- /dev/null +++ b/examples/cosmodc2/pipeline-1deg2-CL-in2p3.yml @@ -0,0 +1,57 @@ +#this step depends on where you run +#for CCin2p3 +site: + name: cc-parallel + mpi_command: "mpirun -n" + +#for NERSC +#site: +# name: cori-batch +# image: ghcr.io/lsstdesc/txpipe-dev + + +#all the following steps should not depend on where you run +launcher: + name: mini + interval: 3.0 + +modules: > + txpipe + rail.estimation.algos.bpz_lite + +python_paths: [] + +stages: +# - name: TXSourceSelectorMetadetect +# nprocess: 1 +# - name: Inform_BPZ_lite +# nprocess: 1 +# - name: BPZ_lite +# nprocess: 1 + - name: CLClusterBinningRedshiftRichness + nprocess: 1 +# - name: CLClusterShearCatalogs +# nprocess: 1 +# - name: CLClusterEnsembleProfiles +# nprocess: 1 +# - name: CLClusterDataVector +# nprocess: 1 + + + +output_dir: ./data/cosmodc2/outputs-1deg2-CL +config: examples/cosmodc2/config-1deg2-CL.yml + +inputs: + # See README for paths to download these files + #shear_catalog: ./data/example/inputs/metadetect_shear_catalog.hdf5 + #photometry_catalog: ./data/example/inputs/photometry_catalog.hdf5 + #fiducial_cosmology: ./data/fiducial_cosmology.yml + #calibration_table: ./data/example/inputs/sample_cosmodc2_w10year_errors.dat + #spectroscopic_catalog: ./data/example/inputs/mock_spectroscopic_catalog.hdf5 + cluster_catalog: ./data/example/inputs/cluster_catalog.hdf5 + +resume: True +log_dir: ./data/cosmodc2/logs +pipeline_log: ./data/cosmodc2/log_1deg2.txt + diff --git a/examples/cosmodc2/pipeline-1deg2-CL-nersc.yml b/examples/cosmodc2/pipeline-1deg2-CL-nersc.yml new file mode 100644 index 000000000..f2a3d6c5f --- /dev/null +++ b/examples/cosmodc2/pipeline-1deg2-CL-nersc.yml @@ -0,0 +1,57 @@ +#this step depends on where you run +#for CCin2p3 +# site: +# name: cc-parallel +# mpi_command: "mpirun -n" + +#for NERSC +site: + name: cori-batch + image: ghcr.io/lsstdesc/txpipe-dev + + +#all the following steps should not depend on where you run +launcher: + name: mini + interval: 3.0 + +modules: > + txpipe + rail.estimation.algos.bpz_lite + +python_paths: [] + +stages: +# - name: TXSourceSelectorMetadetect +# nprocess: 1 +# - name: Inform_BPZ_lite +# nprocess: 1 +# - name: BPZ_lite +# nprocess: 1 + - name: CLClusterBinningRedshiftRichness + nprocess: 1 +# - name: CLClusterShearCatalogs +# nprocess: 1 +# - name: CLClusterEnsembleProfiles +# nprocess: 1 +# - name: CLClusterDataVector +# nprocess: 1 + + + +output_dir: ./data/cosmodc2/outputs-1deg2-CL +config: ./examples/cosmodc2/config-1deg2-CL.yml + +inputs: + # See README for paths to download these files +# shear_catalog: ./data/example/inputs/metadetect_shear_catalog.hdf5 +# photometry_catalog: ./data/example/inputs/photometry_catalog.hdf5 +# fiducial_cosmology: ./data/fiducial_cosmology.yml +# calibration_table: ./data/example/inputs/sample_cosmodc2_w10year_errors.dat +# spectroscopic_catalog: ./data/example/inputs/mock_spectroscopic_catalog.hdf5 + cluster_catalog: ./data/example/inputs/cluster_catalog.hdf5 + +resume: True +log_dir: ./data/cosmodc2/logs +pipeline_log: ./data/cosmodc2/log_1deg2.txt + diff --git a/examples/cosmodc2/pipeline-20deg2-CL-in2p3.yml b/examples/cosmodc2/pipeline-20deg2-CL-in2p3.yml new file mode 100644 index 000000000..80370648c --- /dev/null +++ b/examples/cosmodc2/pipeline-20deg2-CL-in2p3.yml @@ -0,0 +1,56 @@ +#this step depends on where you run +#for CCin2p3 +site: + name: cc-parallel + mpi_command: "mpirun -n" + +#for NERSC +#site: +# name: cori-batch +# image: ghcr.io/lsstdesc/txpipe-dev + + +#all the following steps should not depend on where you run +launcher: + name: mini + interval: 3.0 +modules: > + txpipe + rail.estimation.algos.bpz_lite + +python_paths: [] + +stages: +# - name: TXSourceSelectorMetadetect +# nprocess: 30 +# - name: Inform_BPZ_lite +# nprocess: 1 +# - name: BPZ_lite +# nprocess: 30 + - name: CLClusterBinningRedshiftRichness + nprocess: 1 +# - name: CLClusterShearCatalogs +# nprocess: 30 +# - name: CLClusterEnsembleProfiles +# nprocess: 30 +# - name: CLClusterDataVector +# nprocess: 1 + + + +output_dir: ./data/cosmodc2/outputs-20deg2-CL +config: ./examples/cosmodc2/config-20deg2-CL.yml + +inputs: + # See README for paths to download these files + #shear_catalog: ./data/cosmodc2/20deg2/shear_catalog.hdf5 + #photometry_catalog: ./data/cosmodc2/20deg2/photometry_catalog.hdf5 + #fiducial_cosmology: ./data/fiducial_cosmology.yml + #calibration_table: ./data/cosmodc2/20deg2/sample_cosmodc2_w10year_errors.dat + #spectroscopic_catalog: ./data/cosmodc2/20deg2/spectroscopic_catalog.hdf5 + cluster_catalog: ./data/cosmodc2/20deg2/cluster_catalog.hdf5 + +resume: True +log_dir: ./data/cosmodc2/logs +pipeline_log: ./data/cosmodc2/log_20deg2.txt + diff --git a/examples/cosmodc2/pipeline-20deg2-CL-nersc.yml b/examples/cosmodc2/pipeline-20deg2-CL-nersc.yml new file mode 100644 index 000000000..c9d8b0cdd --- /dev/null +++ b/examples/cosmodc2/pipeline-20deg2-CL-nersc.yml @@ -0,0 +1,56 @@ +#this step depends on where you run +#for CCin2p3 +# site: +# name: cc-parallel +# mpi_command: "mpirun -n" + +#for NERSC +site: + name: cori-batch + image: ghcr.io/lsstdesc/txpipe-dev + + +#all the following steps should not depend on where you run +launcher: + name: mini + interval: 3.0 +modules: > + txpipe + rail.estimation.algos.bpz_lite + +python_paths: [] + +stages: +# - name: TXSourceSelectorMetadetect +# nprocess: 30 +# - name: Inform_BPZ_lite +# nprocess: 1 +# - name: BPZ_lite +# nprocess: 30 + - name: CLClusterBinningRedshiftRichness + nprocess: 1 +# - name: CLClusterShearCatalogs +# nprocess: 30 +# - name: CLClusterEnsembleProfiles +# nprocess: 1 +# - name: CLClusterDataVector +# nprocess: 1 + + + +output_dir: ./data/cosmodc2/outputs-20deg2-CL +config: ./examples/cosmodc2/config-20deg2-CL.yml + +inputs: + # See README for paths to download these files + #shear_catalog: ./data/cosmodc2/20deg2/shear_catalog.hdf5 + #photometry_catalog: ./data/cosmodc2/20deg2/photometry_catalog.hdf5 + #fiducial_cosmology: ./data/fiducial_cosmology.yml + #calibration_table: ./data/cosmodc2/20deg2/sample_cosmodc2_w10year_errors.dat + #spectroscopic_catalog: ./data/cosmodc2/20deg2/spectroscopic_catalog.hdf5 + cluster_catalog: ./data/cosmodc2/20deg2/cluster_catalog.hdf5 + +resume: True +log_dir: ./data/cosmodc2/logs +pipeline_log: ./data/cosmodc2/log_20deg2.txt + diff --git a/examples/cosmodc2/pipeline-20deg2-clmm-nersc.yml b/examples/cosmodc2/pipeline-20deg2-clmm-nersc.yml deleted file mode 100644 index 8b80c78b6..000000000 --- a/examples/cosmodc2/pipeline-20deg2-clmm-nersc.yml +++ /dev/null @@ -1,43 +0,0 @@ -launcher: - name: mini - interval: 3.0 - -site: - name: cori-batch - image: ghcr.io/lsstdesc/txpipe-dev - - -modules: > - txpipe - rail.estimation.algos.bpz_lite - -python_paths: [] - -stages: - - name: TXSourceSelectorMetadetect - nprocess: 30 - - name: Inform_BPZ_lite - nprocess: 1 - - name: BPZ_lite - nprocess: 30 - - name: CLClusterShearCatalogs - nprocess: 30 - - - -output_dir: data/cosmodc2/outputs-20deg2 -config: examples/cosmodc2/config-20deg2-clmm.yml - -inputs: - # See README for paths to download these files - shear_catalog: ./data/cosmodc2/20deg2/shear_catalog.hdf5 - photometry_catalog: ./data/cosmodc2/20deg2/photometry_catalog.hdf5 - fiducial_cosmology: data/fiducial_cosmology.yml - calibration_table: ./data/cosmodc2/20deg2/sample_cosmodc2_w10year_errors.dat - spectroscopic_catalog: ./data/cosmodc2/20deg2/spectroscopic_catalog.hdf5 - cluster_catalog: ./data/cosmodc2/20deg2/cluster_catalog.hdf5 - -resume: True -log_dir: data/cosmodc2/logs -pipeline_log: data/cosmodc2/log.txt - diff --git a/examples/cosmodc2/pipeline-20deg2-clmm.yml b/examples/cosmodc2/pipeline-20deg2-clmm.yml deleted file mode 100644 index b286a0a8d..000000000 --- a/examples/cosmodc2/pipeline-20deg2-clmm.yml +++ /dev/null @@ -1,43 +0,0 @@ -launcher: - name: mini - interval: 3.0 - -site: - name: cc-parallel - mpi_command: "mpirun -n" - - -modules: > - txpipe - rail.estimation.algos.bpz_lite - -python_paths: [] - -stages: - - name: TXSourceSelectorMetadetect - nprocess: 30 - - name: Inform_BPZ_lite - nprocess: 1 - - name: BPZ_lite - nprocess: 30 - - name: CLClusterShearCatalogs - nprocess: 30 - - - -output_dir: data/cosmodc2/outputs-20deg2 -config: examples/cosmodc2/config-20deg2-clmm.yml - -inputs: - # See README for paths to download these files - shear_catalog: ./data/cosmodc2/20deg2/shear_catalog.hdf5 - photometry_catalog: ./data/cosmodc2/20deg2/photometry_catalog.hdf5 - fiducial_cosmology: data/fiducial_cosmology.yml - calibration_table: ./data/cosmodc2/20deg2/sample_cosmodc2_w10year_errors.dat - spectroscopic_catalog: ./data/cosmodc2/20deg2/spectroscopic_catalog.hdf5 - cluster_catalog: ./data/cosmodc2/20deg2/cluster_catalog.hdf5 - -resume: True -log_dir: data/cosmodc2/logs -pipeline_log: data/cosmodc2/log.txt - diff --git a/notebooks/Run_CL_counts_pipeline.ipynb b/notebooks/Run_CL_counts_pipeline.ipynb new file mode 100644 index 000000000..9cb3e2e41 --- /dev/null +++ b/notebooks/Run_CL_counts_pipeline.ipynb @@ -0,0 +1,831 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "a01235ba-b30a-413c-a381-eef2712dfcb9", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import os\n", + "from pprint import pprint\n", + "import numpy as np\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "from IPython.display import Image\n", + "import ceci\n", + "import h5py\n", + "import yaml" + ] + }, + { + "cell_type": "markdown", + "id": "f1a90282-ed70-4496-bc4b-bc2d2e8ee302", + "metadata": {}, + "source": [ + "Make sure to change your path in the next cell that leads to your TXPipe directory. See examples for IN2P3 and NERSC below." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "d5eb6757-e79f-445c-a2c6-4d25af5f6f65", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "#user specific paths -- IN2P3 example\n", + "my_txpipe_dir = \"/pbs/home/m/mricci/throng_mricci/desc/TXPipe\"\n", + "\n", + "#user specific paths -- NERSC example\n", + "#my_txpipe_dir = \"/pscratch/sd/a/avestruz/TXPipe\"\n", + "\n", + "os.chdir(my_txpipe_dir)\n", + "\n", + "import txpipe" + ] + }, + { + "cell_type": "markdown", + "id": "33d82af0-d1c4-43cc-ac0b-a2d6f1e66889", + "metadata": {}, + "source": [ + "# Let's start working with the 1deg2 data file on Jupyter" + ] + }, + { + "cell_type": "markdown", + "id": "f4e0ef7e-9659-4a03-b0ca-ab856c5e5f54", + "metadata": {}, + "source": [ + "First we will do some runs on the 1 deg^2 example data set with around 80k galaxies. This is small enough that we can do it all in jupyter.\n", + "\n", + "The data set, which is based on CosmoDC2, contains pre-computed photo-z and and contains a RedMapper cluster catalog for the field." + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "274c2ea4-b366-4e3d-8690-efa8af3f6d96", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Options for this pipeline and their defaults (this may be override by config file):\n", + "{'zedge': [0.2, 0.4, 0.6, 0.8, 1.0], 'richedge': [5.0, 10.0, 20.0], 'initial_size': 100000, 'chunk_rows': 100000}\n" + ] + } + ], + "source": [ + "print(\"Options for this pipeline and their defaults (this may be override by config file):\")\n", + "print(txpipe.extensions.CLClusterBinningRedshiftRichness.config_options)\n", + "\n", + "pip_stage = txpipe.extensions.CLClusterBinningRedshiftRichness.make_stage(\n", + " # This is the initial cluster catalog - RAs, Decs, richess, redshift, etc.\n", + " cluster_catalog=\"./data/example/inputs/cluster_catalog.hdf5\",\n", + " \n", + " # This is the output for this stage\n", + " cluster_catalog_tomography=\"./data/example/cluster_catalog_tomography.hdf5\",\n", + "\n", + " # This contains all the options for this stage. You can override them here, \n", + " #as we do with the max_radius below.\n", + " config=\"examples/cosmodc2/config-1deg2-CL.yml\", \n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "0df094c5-3e3a-4335-89ff-4df52bfb8a43", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "pip_stage.run()\n", + "pip_stage.finalize()" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "009eb8b0-1c54-497f-a419-055e869e2ece", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Actual options used for this pipeline (as defined in config file or default):\n", + "{zedge:[0.1, 0.4, 0.6, 0.8],richedge:[5.0, 10.0, 20.0, 25.0],initial_size:100000,chunk_rows:100000,cluster_catalog:./data/example/inputs/cluster_catalog.hdf5,cluster_catalog_tomography:./data/example/cluster_catalog_tomography.hdf5,config:examples/cosmodc2/config-1deg2-CL.yml,aliases:{},}\n" + ] + } + ], + "source": [ + "print(\"Actual options used for this pipeline (as defined in config file or default):\")\n", + "print(pip_stage.config)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "8ee60427-f399-4fbe-ab97-39ea2387d40e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'./data/example/inputs/cluster_catalog.hdf5'" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pip_stage.config['cluster_catalog']" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "22639ea6-38d4-4061-acb4-e402939a3fd4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'./data/example/cluster_catalog_tomography.hdf5'" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pip_stage.config['cluster_catalog_tomography']" + ] + }, + { + "cell_type": "markdown", + "id": "6174784d-ba23-4e33-bbf9-559295cb9d0f", + "metadata": {}, + "source": [ + "# Open cluster catalog input and compare to binning outputs" + ] + }, + { + "cell_type": "markdown", + "id": "b7101483-b7a2-45ce-a8b1-c6030e15da0d", + "metadata": {}, + "source": [ + "## Open cluster catalog input " + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "3218ac13-3d30-4bc9-bd8d-25d40a3eeddd", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/example/inputs/cluster_catalog.hdf5\n" + ] + } + ], + "source": [ + "filename_in = pip_stage.config['cluster_catalog']\n", + "print(filename_in)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "d8c38523-a8f7-4a43-9831-9ae273adeaa6", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "f_in = h5py.File(filename_in, \"r\")" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "c6d59b2a-8857-44be-93ad-912d8a893ec0", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "print(f_in.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "1ecd9464-7ef8-4600-b931-8b8c76830564", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "dset_in = f_in['clusters']" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "f5624d30-cea6-4999-8f53-0ee81030b632", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['cluster_id', 'dec', 'ra', 'redshift', 'redshift_err', 'richness', 'richness_err', 'scaleval']\n" + ] + } + ], + "source": [ + "cols = [col for col in dset_in]\n", + "print(cols)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "4349ca71-0548-490b-b5c3-5af0ce98f7f2", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'richness')" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjoAAAGwCAYAAACgi8/jAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAsvklEQVR4nO3df3BV9Z3/8dfJDyAEcm0MxgDhhz9Qo/I7KkSjWEDB6lLaKa07qFRdmcVRlxaXHztSWUeoHRlrvWj9ydpRNisC67eLVgqI/NjF8KuC2YpCMFgvMkG5wRChTc73D81dQgLcH+fec87nPB8zmeGe3FzeuSfnnNf9/Dgfy7ZtWwAAAAbKcrsAAACAdCHoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYK8ftAtzU0tKizz77TN27d5dlWW6XAwAA4mDbto4cOaKePXsqK+v0bTaBDjqfffaZSktL3S4DAAAkYf/+/erdu/dpnxPooNO9e3dJ37xRBQUFLlcDAADi0dDQoNLS0th1/HQCHXRau6sKCgoIOgAA+Ew8w04YjAwAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAYxF0gAyJRJu0aU+9ItEmt0sBgMAI9KKeQKZUVddp1rKdarGlLEuaP/FyTSrv43ZZAGA8WnSANItEm2IhR5JabGn2sl207ABABhB0gDSrrW+MhZxWzbatffVH3SkIAAKEoAOkWf+ifGVZbbdlW5b6FXV1pyAACBCCDpBmJaE8zZ94ubKtb9JOtmXp0YmXqSSU53JlAGA+BiMDGTCpvI8qB/TQvvqj6lfUlZADABlC0AEypCSUR8ABgAyj6woAABiLoAMAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAYxF0AACAsQg6AADAWAQdAABgLN8Hnf379+u6665TWVmZBg4cqNdee83tkgAAgEfkuF1AqnJycvTEE09o8ODBOnjwoIYOHarx48crPz/f7dIAAIDLfB90SkpKVFJSIkk655xzVFhYqC+++IKgAwAA3O+6evfdd3XzzTerZ8+esixLK1asaPecRYsWqX///urSpYuGDRum9evXd/haW7ZsUUtLi0pLS9NcNQAA8APXg05jY6MGDRqkp556qsPvV1VV6YEHHtCcOXO0fft2XXPNNRo3bpzq6uraPO/QoUO67bbb9Oyzz2aibAAA4AOWbdu220W0sixLy5cv14QJE2LbrrzySg0dOlRPP/10bNsll1yiCRMmaP78+ZKkY8eOacyYMbr77rs1efLkU77+sWPHdOzYsdjjhoYGlZaWKhqNqqCgwPlfCAAAOK6hoUGhUCiu67frLTqnc/z4cW3dulVjx45ts33s2LHatGmTJMm2bd1xxx26/vrrTxtyJGn+/PkKhUKxL7q4AAAwm6eDTn19vZqbm1VcXNxme3FxsQ4cOCBJ2rhxo6qqqrRixQoNHjxYgwcP1s6dOzt8vVmzZikajca+9u/fn/bfAQAAuMcXs64sy2rz2Lbt2Larr75aLS0tcb1O586d1blzZ8frAwAA3uTpFp2ioiJlZ2fHWm9aHTx4sF0rDwAAwMk8HXQ6deqkYcOGadWqVW22r1q1SiNHjnSpKgAA4Beud1199dVX+vjjj2OPa2trtWPHDhUWFqpPnz6aPn26Jk+erOHDh2vEiBF69tlnVVdXp6lTp7pYNQAA8APXg86WLVs0atSo2OPp06dLkm6//XYtXrxYkyZN0qFDhzRv3jxFIhFddtllWrlypfr27etWyQAAwCc8dR+dTEtkHj4AAPAGY+6jAwAAkAqCDgAAMFYgg044HFZZWZnKy8vdLgUAAKQRY3QYowMAgK8wRgcAAEAEHQAAYDCCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAYxF0AACAsQg6AADAWIEMOiwBAQBAMLAEBEtAAADgKywBAQAAIIIOAAAwGEEHAAAYi6ADAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABgrkEGHRT0BAAgGFvVkUU8AAHyFRT0BAABE0AEAAAYj6AAAAGMRdAAAgLEIOgAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAYxF0AACAsQg6AADAWIEMOuFwWGVlZSovL3e7FAAAkEaWbdu220W4JZFl3gEAgDckcv0OZIsOAAAIBoIOAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AHgKZFokzbtqVck2uR2KQAMkON2AQDQqqq6TrOW7VSLLWVZ0vyJl2tSeR+3ywLgY7ToAPCESLQpFnIkqcWWZi/bRcsOgJQEMuiEw2GVlZWpvLzc7VIAfKu2vjEWclo127b21R91pyAARghk0Jk2bZpqampUXV3tdikAvtW/KF9ZVttt2ZalfkVd3SkIgBECGXQAeE9JKE/zJ16ubOubtJNtWXp04mUqCeW5XBkAP2MwMgDPmFTeR5UDemhf/VH1K+pKyAGQMoIOAE8pCeURcAA4hq4rAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFgEHQAAYKxABp1wOKyysjKVl5e7XQoAAEgjy7Zt2+0i3NLQ0KBQKKRoNKqCggK3ywEAAHFI5PodyBYdAAAQDAQdAABgLIIOAAAwFkEHAAAYK6mg89Zbb2nDhg2xx+FwWIMHD9att96qL7/80rHiAAAAUpFU0JkxY4YaGhokSTt37tTPfvYzjR8/Xnv37tX06dMdLRAAACBZOcn8UG1trcrKyiRJr7/+ur73ve/p0Ucf1bZt2zR+/HhHCwQAAEhWUi06nTp10tGjRyVJf/zjHzV27FhJUmFhYaylBwAAwG1JtehcffXVmj59uioqKvTee++pqqpKkrR792717t3b0QIBAACSlVSLzlNPPaWcnBwtXbpUTz/9tHr16iVJevPNN3XjjTc6WiAAAECyWAKCJSAAAPCVtC8BsW3bNu3cuTP2+D//8z81YcIEzZ49W8ePH0/mJQEAAByXVNC55557tHv3bknS3r179eMf/1hdu3bVa6+9pgcffNDRAgEAAJKVVNDZvXu3Bg8eLEl67bXXVFlZqVdffVWLFy/W66+/7mR9AAAASUsq6Ni2rZaWFknfTC9vvXdOaWmp6uvrnasOAAAgBUkFneHDh+uRRx7R7373O61bt0433XSTpG9uJFhcXOxogQAAAMlKKug88cQT2rZtm+69917NmTNHF1xwgSRp6dKlGjlypKMFAgAAJMvR6eVff/21srOzlZub69RLphXTywHviESbVFvfqP5F+SoJ5bldDgAPS+T6ndSdkSXp8OHDWrp0qfbs2aMZM2aosLBQNTU1Ki4ujt1AEADiUVVdp1nLdqrFlrIsaf7EyzWpvI/bZQEwQFJB5/3339d3v/tdnXXWWdq3b5/uvvtuFRYWavny5frkk0/08ssvO10nAENFok2xkCNJLbY0e9kuVQ7oQcsOgJQlNUZn+vTpmjJlij766CN16dIltn3cuHF69913HSsOgPlq6xtjIadVs21rX/1RdwoCYJSkgk51dbXuueeedtt79eqlAwcOpFwUgODoX5SvLKvttmzLUr+iru4UBMAoSQWdLl26qKGhod32Dz/8UD169Ei5KADBURLK0/yJlyvb+ibtZFuWHp14Gd1WAByR1Bidv/u7v9O8efP0H//xH5Iky7JUV1enmTNn6gc/+IGjBQIw36TyPqoc0EP76o+qX1FXQg4AxyQ1vbyhoUHjx4/XBx98oCNHjqhnz546cOCARowYoZUrVyo/Pz8dtTqO6eUAAPhP2qeXFxQUaMOGDVqzZo22bdumlpYWDR06VKNHj06q4EwLh8MKh8Nqbm52uxQAAJBGjt4w0G9o0QEAwH8ycsPA1atXa/Xq1Tp48GBsgc9WL774YrIvCwAA4Jikgs7DDz+sefPmafjw4SopKZFlWWf+IQAAgAxLKug888wzWrx4sSZPnux0PQAAAI5J6j46x48fZ5VyAADgeUkFnbvuukuvvvqq07UAAAA4Kqmuq6+//lrPPvus/vjHP2rgwIHKzc1t8/2FCxc6UhwAAEAqkl69fPDgwZKkXbt2tfkeA5MBAIBXJBV01q5d63QdAAAAjktqjA4AJCoSbdKmPfWKRJvcLgVAgCTVotPY2KgFCxac8oaBe/fudaQ4AGaoqq7TrGU71WJLWZY0f+LlmlTex+2yAARAUkHnrrvu0rp16zR58mRuGAjgtCLRpljIkaQWW5q9bJcqB/RglXIAaZdU0HnzzTf1X//1X6qoqHC6HgCGqa1vjIWcVs22rX31Rwk6ANIuqTE63/nOd1RYWOh0LQAM1L8oX1knNfpmW5b6FXV1p6CAYowUgiqpoPOv//qveuihh3T06FGn6wFgmJJQnuZPvFzZ33ZxZ1uWHp14Ga05GVRVXaeKBWt063ObVbFgjaqq69wuCcgYy7Zt+8xPk4YMGdJmLM7HH38s27bVr1+/djcM3LZtm7NVpkkiy7wDSE0k2qR99UfVr6grISeDItEmVSxY06b7MNuytGHmKPYDfCuR63fcY3QmTJiQal0AAqwklMeF1QWMkULQxR105s6dm846AABp0DpG6uQWHcZIISiSGqNTXV2tzZs3t9u+efNmbdmyJeWiAADOYIwUgi6poDNt2jTt37+/3fa//OUvmjZtWspFAQCcM6m8jzbMHKUld1+lDTNHcbNGBEpS99GpqanR0KFD220fMmSIampqUi4KAOAsxkghqJJq0encubM+//zzdtsjkYhycpLKTgAAAI5LKuiMGTNGs2bNUjQajW07fPiwZs+erTFjxjhWHAAAQCqSan55/PHHVVlZqb59+2rIkCGSpB07dqi4uFi/+93vHC0QAAAgWUkFnV69eun999/XK6+8oj/96U/Ky8vTlClT9JOf/KTdzQMBAADckvSAmvz8fP3DP/yDk7UAAAA4Ku6g88Ybb2jcuHHKzc3VG2+8cdrn3nLLLSkXBgAAkKq417rKysrSgQMHdM455ygr69RjmC3LUnNzs2MFphNrXQHwqki0SbX1jepflM+0cOAkaVnrqqWlRZL017/+VZWVlfrtb3+riy66KLVKAQDtVFXXadaynWqxpSxLmj/xcm7yByQp4enlubm5+uCDD5SdnZ2OegAg0CLRpljIkb5Zo2r2sl2KRJvcLQzwqaTuo3Pbbbfp+eefd7oWAPCFSLRJm/bUpyV8nG61cQCJS2rW1fHjx/X8889r1apVGj58uPLz89t8f+HChY4UBwBek+5uJVYbB5yVVNDZtWtXbK2r3bt3t/me9e0KuQBgmlN1K1UO6OHYgOHW1cZnL9ulZttmtXEgRUkFnbVr1zpdBwB43um6lZwMIpPK+6hyQA/tqz+qfkVdCTlACliBEwDilMluJVYbB5yR1GBkAAii1m6l7G+76OlWAryPFh0ASADdSvHjpofwAoIOTosTFdAe3Upnxk0P4RWBDDrhcFjhcNg3S1W4hRMVgGRkYnYaEK9AjtGZNm2aampqVF1d7XYpnsXdWQEki5sewksCGXRwZpyoACSrdXbaibjpIdxC0EGHOFH5RzqXIwCSwew0eEkgx+jgzLg7qz8wjgpexey0+DDhI/0s27btMz/NTA0NDQqFQopGoyooKHC7HE+KRJs4UXlUJNqkigVr2t28bsPMUewrwAf4oJK8RK7fdF3htEpCeRpx/tlcOD2IcVSAfzHhI3MIOoBPMY4K8C8+qGQOQQfwKQZ8Av7FB5XMYTAy4GMM+AT8iQkfmUPQAXyO5QgAf+KDSmYQdAAAcAkfVNKPMToAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAA6IRJu0aU+9ItEmt0sBAJwgx+0CAL+rqq7TrGU71WJLWZY0f+LlmlTex+2yAACiRQdISSTaFAs5ktRiS7OX7aJlBwA8gqADpKC2vjEWclo127b21R91pyAAQBsEHSAF/YvylWW13ZZtWepX1NWdggAAbRB0gBSUhPI0f+Llyra+STvZlqVHJ16mklCey5UBACQGIwMpm1TeR5UDemhf/VH1K+pKyEmzSLRJtfWN6l+Uz3sN4IwIOoADSkJ5XHQz4Lfv7tGCN/8smxluAOJE1xUAX/jtuj2av/KbkCMxww1AfAg6ADwvEm3Sgjf/3G47M9wAnAlBB4Dn1dY3yu5ge5YlZrgBOC2CDgDP62gavyT987iLGRsF4LQIOgA87+Rp/FmSZo27WPdUnu9uYUCasY5e6ph1BcAXmMaPoGEdPWfQogMYxuRPgCWhPI04/2xCDozX0Tp6s17faeRxnW4EHcAgVdV1qliwRrc+t1kVC9aoqrrO7ZIAJKGjdfRaJL20YZ8b5fgaQQcwBCupA+boX5SvDsbf6/kNezmmE0TQAQzBSupIB5O7Qr2sJJSnu6/p3257iy2O6QQxGBkpYd0h72idgn1i2GEldaSCwbDumnJ1fz2/oZZjOkW06CBpjAfxFlZSh5PoCnUfx7QzaNFBUk51Eqwc0IOD0EVMwYZTTtcVyt9V5nBMp46gg6RwEvQuVlKHE+gK9Q6O6dTQdYWkdHRLfk6CgDnoNoETvDCYnRYdJKX1JDh72S412zYnQcBAdJsgFV4ZzG7Ztt3RosCB0NDQoFAopGg0qoKCArfL8aVItImTIACgjUi0SRUL1rTr+twwc5Qj14pErt+06CAlifQdMxUdAILBS+M4CTrICK80YSI5hFSgYxwbHfPSYHaCDtLOhKnoQT6ZEVKBjnFsnJqXxnESdJB2XmrCTIbpJ7PThTgTQiqQDhwbZ+aVwewEHaSdl5owE2X6yexMIc7vIRVIF46N+HjhHkDcRwdp5+f7cZi8UGY8t/jnfkne44X7koBjw09o0UFGeKUJM1E7/xJtt82Uk1k8n0i91M8O87tR/YRjwz8IOsgYLzRhJiISbdIv3/xzu+0P3niRr36PU4m3S9GvIdU0pnej+hHHhj/QdQWcQkctHpI0sPdZGa8lXol0ayTSpVgSytOI88/mRO4ik7tR/Yxjw/to0QFOwW+DqJPp1uATqX/47e8R8ApadIBT8NMg6ngGFp8Kn0j9wU9/j4CXGNGi8/3vf1/vvPOOvvvd72rp0qVulwOD+KXFg6muweCXv0fAS4xo0bnvvvv08ssvu10GDOWHFg+mugaHH/4eAS8xIuiMGjVK3bt3d7sMwDV0awBAx1wPOu+++65uvvlm9ezZU5ZlacWKFe2es2jRIvXv319dunTRsGHDtH79+swXCnjcpPI+2jBzlJbcfZU2zBzF/VUAQB4IOo2NjRo0aJCeeuqpDr9fVVWlBx54QHPmzNH27dt1zTXXaNy4caqrq0v4/zp27JgaGhrafAEmoVsDANpyPeiMGzdOjzzyiCZOnNjh9xcuXKg777xTd911ly655BI98cQTKi0t1dNPP53w/zV//nyFQqHYV2lpaarlp4zbuQMAkD6uB53TOX78uLZu3aqxY8e22T527Fht2rQp4debNWuWotFo7Gv//v1OlZqUquo6VSxYo1uf26yKBWtUVZ14KxUAADg1T08vr6+vV3Nzs4qLi9tsLy4u1oEDB2KPb7jhBm3btk2NjY3q3bu3li9frvLy8nav17lzZ3Xu3DntdceD27kDAJB+ng46rSyr7bxZ27bbbPvDH/6Q6ZJSxn1P4LZItEm19Y3qX5TP3xwAY3k66BQVFSk7O7tN640kHTx4sF0rj99wO3e4iVWwAQSFp8fodOrUScOGDdOqVavabF+1apVGjhzpUlXO4L4ncEsqy0UAgN+43qLz1Vdf6eOPP449rq2t1Y4dO1RYWKg+ffpo+vTpmjx5soYPH64RI0bo2WefVV1dnaZOnepi1c7gdu5wA92mAILE9aCzZcsWjRo1KvZ4+vTpkqTbb79dixcv1qRJk3To0CHNmzdPkUhEl112mVauXKm+ffu6VbKjSkJ5XFwM4KfxLnSbAggSy7Zt+8xPM1NDQ4NCoZCi0agKCgrcLgc+dfJ4lzuv7q+fXt3f04GnqrpOs5ftUrNtx7pNGaMDwC8SuX4TdAg6SEEk2qSKBWvadQVZkhb8IPkBvploIYpEm+g2BeBLiVy/Xe+6ckM4HFY4HFZzc7PbpcDnOhrvIkm2kr8vUqZmRNFtCiAIPD3rKl2mTZummpoaVVdXu10KfK51vEtHWgf4JoIZUQDgrEAGHcAprbcJ6CjsJDPA93QzotwUiTbp9+9/pv/3p78QugD4SiC7rgAntd4m4KWNtXr+3Vq1KPn7ImV6RlQ8Y4Gqqus08/Wdai0p1fFHAJBJDEZmMDIc5MQA30zNiIpnLNCpBltnSdo46/o2v6OfptgD8DcGIwMucWKAbyZuJBnvorKnGmzdIrW5waDJS0oQ4AB/I+gAHpTuGVHx3h25o6406ZsWndbutHhDkx+ZHOCAoGAwMhBAHc0W62gsUOtga+uE51qS5v/g8liIOdMA6ki0SZv21PtuEDMz4AAz0KIDBFBrgDl5LFBHLTCtXWnbPvlSti0N6/edM7b6tIYmP7eInCrAbfvkS30n37muLLrGgPRiMDKDkRFgqQ6ebr1I7/w0qsfe+rBNaKoc0KPdQOZsy9KGmaN8cUHvaCC2ZUmyv7khpBPBzc9BEO4LckhmMDKAuKQyFujki/Q/j7tYA3udFQtNm/bU+3qV9JNbvbIsyf425Eipj0UyeWwT0o+QHL9AjtEJh8MqKytTeXm526XAg/w6piSTOrpIP/bmh21ahuIdB+Rlk8r7aMPMUVpy91X69Y8H6+Tm71Ru5ujVm0PC+xg/lphABh2WgMCpVFXXqWLBGt363GZVLFijquo6t0vypHgu0q0tItnfjmRO9iaKbisJ5WnE+WdreL9CR4ObCUEQZ5aOD06E5MTQdQV8i66E+MV7B+dM3BMoUxIZwO3G68F70tW9lOk7qPsdQQf4Vrz3ljmVdA8M9NLAw0Qu0iatku50cDMpCKKtdH5wIiQnhqADfCuVT0npHhjoxYGHQb1IOx3cTAqC+D+pfnA6k6Aef8kI5BgdoCPJjilJ98BALw88bB2/wkkWaCsTY7A4/uJDiw5wgmQ+JaX7k1u6Xz8dvNTNBriB7iXvIOgAJ0m0KyHdAwP9NvDQi91sgBvoXvIGuq6AFKV7GrWfpml7uZsNcAPdS+6jRQdwQLo/ufnlk6Efu9niQVcc4F8EHcAh6Z4944fZOX7rZosHXXGAv9F1BcAxfupmiwddcYD/0aIDwFF+6WaLh6ldcUCQBDLohMNhhcNhNTc3u10KYCQ/dLPFw8SuOCBoAtl1xaKeqWOFbwSBaV1xXsd5BekQyBadTDB5lgaDM9PL5L+dZLj9fpjUFedlnFeQLgSdNDD5gPXjCt9uXygTYfLfTjK88n6Y0hWXafEee348r8A/Atl1lU6ZnqWR6abe0w3O9KKq6jpVLFijW5/brIoFa1RVXed2SafEDJ+2vPJ+0J2SnESOPb+dV+AvtOg4LJOzNNz4tOunwZl++5TIDJ+2vPB+eKVFyW8SPfb8dF6B/9Ci47BMrFgrufdp10+DM/32KTFTfzt+4fb74ZUWJT9K9Njz03kF/kOLjsM6WrH2wRsvUm19Y+z7TnDz065fBmf67VMiqx235fb74YUWJb9K5tjzy3kF/kPQSYMTD9j3/3JYv3zzz443fbt9EffD4Ey3L5TJ4GTflpvvh9vHmJ8le+z54bwC/7Fs27bP/DQzNTQ0KBQKKRqNqqCgwPHXj0SbVLFgTbsT5YaZoxw5mKuq69qdSBg/0F4k2kRw8DAvz4rjGEsNxx7SJZHrNy06aZTupm8+/ceHT4ne5fXBvhxjqeHYgxcQdNIoE03fnEjgto5aZOJppfHLrDiOMcDfCDpp5McxIkAiOmqRkRRXKw2DfQFkAkEnzWj69hYvjwfxgxPfP0ntWmRmvb5TOqEV83StNAz2hck413gHQScDaPr2Bq+PB/G6k9+/O6/u365FpkWS4mylocUTpuJc4y2BnHUVDocVDofV3Nys3bt3p23WFdIn0U9L6Z4BZ7qO3r8sS7LttrkmS2rToiOd+X1mZg5MwrkmMxKZdRXIOyNPmzZNNTU1qq6udrsUJCGZ9av8dpdkr+no/Wuxpbsr+7e5m+38H1ye8B1uS0J5GnH+2VwEYATONd5D1xV8JdmZOowHSc2p3r8pFf01paJ/uxYZxqUhqDjXeE8gW3TgX8l+WmItndSc7v3rqEWGVhoEFeca76FFB76SyqclL8yA8/NMDC+8f/C+dPyN++244VjxFoIOfCXVmTpuzoDz+0wMv11skHnp+Bv363HDbFvvCOSsq1bpXusK6eO3mTp+n4nh14sNMicdf+N+P26QPsy6gvH8NgbEiZkYkWiTNu2pVyTa5HB1Z/5/OxoAnuk64G3pmG3EDCY4ga4rIANSnYnhZosKSzUgHumYbcQMJjiBFh3gBOlqNUllJobbLSqtF5sTcbHBydIx24gZTHACLTrAt9LdapLsTAy3W1RYqgHxSsdsIy/OYGJgvr8QdAAlfyPCeF/7xJNioq/nheZ7L15s4E3pmG3kpRlMDMz3H7quAKVv0GMyy1WczCvN934bAA44ze1uZCSHFh1A6Wk1cbKViBYVeFlQunLc7kZGcgg6gNIzDsXpk6KXmu+BVkHqyvFCNzISR9ABvuV0qwknRZgunWPbvIiB+f5E0AFO4GSrCSdFmC6IXTl0I/sPQQdII06KMFlQWy3pRvaXQM66CofDKisrU3l5udulIACYrQRTeWVGIHA6LOrJop4AkBK/LbIL/0vk+k3XFQAgJXTlwMsC2XUFAACCgaADAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYK9FpXreuZNjQ0uFwJAACIV+t1O551yQMddI4cOSJJKi0tdbkSAACQqCNHjigUCp32OZYdTxwyVEtLiz777DN1795dlmXFtjc0NKi0tFT79+8/4/LvSD/2h/ewT7yHfeI97JP0sW1bR44cUc+ePZWVdfpROIFu0cnKylLv3r1P+f2CggL+OD2E/eE97BPvYZ94D/skPc7UktOKwcgAAMBYBB0AAGAsgk4HOnfurLlz56pz585ulwKxP7yIfeI97BPvYZ94Q6AHIwMAALPRogMAAIxF0AEAAMYi6AAAAGMRdAAAgLECGXQWLVqk/v37q0uXLho2bJjWr19/yucuW7ZMY8aMUY8ePVRQUKARI0boD3/4QwarDYZE9smJNm7cqJycHA0ePDi9BQZQovvk2LFjmjNnjvr27avOnTvr/PPP14svvpihaoMh0X3yyiuvaNCgQeratatKSko0ZcoUHTp0KEPVmu3dd9/VzTffrJ49e8qyLK1YseKMP7Nu3ToNGzZMXbp00Xnnnadnnnkm/YVCsgPm3//93+3c3Fz7ueees2tqauz777/fzs/Ptz/55JMOn3///ffbv/zlL+333nvP3r17tz1r1iw7NzfX3rZtW4YrN1ei+6TV4cOH7fPOO88eO3asPWjQoMwUGxDJ7JNbbrnFvvLKK+1Vq1bZtbW19ubNm+2NGzdmsGqzJbpP1q9fb2dlZdm//vWv7b1799rr16+3L730UnvChAkZrtxMK1eutOfMmWO//vrrtiR7+fLlp33+3r177a5du9r333+/XVNTYz/33HN2bm6uvXTp0swUHGCBCzpXXHGFPXXq1DbbLr74YnvmzJlxv0ZZWZn98MMPO11aYCW7TyZNmmT/y7/8iz137lyCjsMS3SdvvvmmHQqF7EOHDmWivEBKdJ/86le/ss8777w225588km7d+/eaasxqOIJOg8++KB98cUXt9l2zz332FdddVUaK4Nt23aguq6OHz+urVu3auzYsW22jx07Vps2bYrrNVpaWnTkyBEVFhamo8TASXafvPTSS9qzZ4/mzp2b7hIDJ5l98sYbb2j48OF67LHH1KtXLw0YMEA///nP1dTUlImSjZfMPhk5cqQ+/fRTrVy5UrZt6/PPP9fSpUt10003ZaJknOS///u/2+2/G264QVu2bNFf//pXl6oKhkAt6llfX6/m5mYVFxe32V5cXKwDBw7E9RqPP/64Ghsb9aMf/SgdJQZOMvvko48+0syZM7V+/Xrl5ATqTzgjktkne/fu1YYNG9SlSxctX75c9fX1+sd//Ed98cUXjNNxQDL7ZOTIkXrllVc0adIkff311/rb3/6mW265Rb/5zW8yUTJOcuDAgQ7339/+9jfV19erpKTEpcrMF6gWnVaWZbV5bNt2u20dWbJkiX7xi1+oqqpK55xzTrrKC6R490lzc7NuvfVWPfzwwxowYECmygukRI6TlpYWWZalV155RVdccYXGjx+vhQsXavHixbTqOCiRfVJTU6P77rtPDz30kLZu3aq33npLtbW1mjp1aiZKRQc62n8dbYezAvVxuKioSNnZ2e0+AR08eLBd0j5ZVVWV7rzzTr322msaPXp0OssMlET3yZEjR7RlyxZt375d9957r6RvLrK2bSsnJ0dvv/22rr/++ozUbqpkjpOSkhL16tVLoVAotu2SSy6Rbdv69NNPdeGFF6a1ZtMls0/mz5+viooKzZgxQ5I0cOBA5efn65prrtEjjzxCC0KGnXvuuR3uv5ycHJ199tkuVRUMgWrR6dSpk4YNG6ZVq1a12b5q1SqNHDnylD+3ZMkS3XHHHXr11Vfp33ZYovukoKBAO3fu1I4dO2JfU6dO1UUXXaQdO3boyiuvzFTpxkrmOKmoqNBnn32mr776KrZt9+7dysrKUu/evdNabxAks0+OHj2qrKy2p/js7GxJ/9eSgMwZMWJEu/339ttva/jw4crNzXWpqoBwbRi0S1qnaL7wwgt2TU2N/cADD9j5+fn2vn37bNu27ZkzZ9qTJ0+OPf/VV1+1c3Jy7HA4bEcikdjX4cOH3foVjJPoPjkZs66cl+g+OXLkiN27d2/7hz/8of3BBx/Y69atsy+88EL7rrvucutXME6i++Sll16yc3Jy7EWLFtl79uyxN2zYYA8fPty+4oor3PoVjHLkyBF7+/bt9vbt221J9sKFC+3t27fHpvufvD9ap5f/0z/9k11TU2O/8MILTC/PkMAFHdu27XA4bPft29fu1KmTPXToUHvdunWx791+++32tddeG3t87bXX2pLafd1+++2ZL9xgieyTkxF00iPRffK///u/9ujRo+28vDy7d+/e9vTp0+2jR49muGqzJbpPnnzySbusrMzOy8uzS0pK7L//+7+3P/300wxXbaa1a9ee9trQ0f5455137CFDhtidOnWy+/XrZz/99NOZLzyALNumDRMAAJgpUGN0AABAsBB0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGIugA8LXrrrtODzzwgGPPtSxLK1asiD3+85//rKuuukpdunTR4MGDk64TgDsIOgBwgkgkonHjxsUez507V/n5+frwww+1evVqLV68WGeddZZ7BQJISI7bBQCAJB0/flydOnVyuwyde+65bR7v2bNHN910k/r27etSRQBSQYsOAFdcd911uvfeezV9+nQVFRVpzJgxqqmp0fjx49WtWzcVFxdr8uTJqq+vj/1MY2OjbrvtNnXr1k0lJSV6/PHH273uokWLdOGFF6pLly4qLi7WD3/4wzbfb2lp0YMPPqjCwkKde+65+sUvftHm+yd2XVmWpa1bt2revHmyLEvXXXedpkyZomg0KsuyZFlWu58H4C0EHQCu+bd/+zfl5ORo48aNWrBgga699loNHjxYW7Zs0VtvvaXPP/9cP/rRj2LPnzFjhtauXavly5fr7bff1jvvvKOtW7fGvr9lyxbdd999mjdvnj788EO99dZbqqysbPd/5ufna/PmzXrsscc0b948rVq1qsP6IpGILr30Uv3sZz9TJBLRG2+8oSeeeEIFBQWKRCKKRCL6+c9/np43B4Aj6LoC4JoLLrhAjz32mCTpoYce0tChQ/Xoo4/Gvv/iiy+qtLRUu3fvVs+ePfXCCy/o5Zdf1pgxYyR9E1p69+4de35dXZ3y8/P1ve99T927d1ffvn01ZMiQNv/nwIEDNXfuXEnShRdeqKeeekqrV6+OveaJzj33XOXk5Khbt26xLq1QKCTLstp1cQHwJoIOANcMHz489u+tW7dq7dq16tatW7vn7dmzR01NTTp+/LhGjBgR215YWKiLLroo9njMmDHq27evzjvvPN1444268cYb9f3vf19du3aNPWfgwIFtXrukpEQHDx508tcC4CF0XQFwTX5+fuzfLS0tuvnmm7Vjx442Xx999JEqKytl2/YZX6979+7atm2blixZopKSEj300EMaNGiQDh8+HHtObm5um5+xLEstLS2O/U4AvIWgA8AThg4dqg8++ED9+vXTBRdc0OYrPz9fF1xwgXJzc/U///M/sZ/58ssvtXv37javk5OTo9GjR+uxxx7T+++/r3379mnNmjWO1dmpUyc1Nzc79noA0ougA8ATpk2bpi+++EI/+clP9N5772nv3r16++239dOf/lTNzc3q1q2b7rzzTs2YMUOrV6/Wrl27dMcddygr6/9OY7///e/15JNPaseOHfrkk0/08ssvq6WlpU33Vqr69eunr776SqtXr1Z9fb2OHj3q2GsDcB5BB4An9OzZUxs3blRzc7NuuOEGXXbZZbr//vsVCoViYeZXv/qVKisrdcstt2j06NG6+uqrNWzYsNhrnHXWWVq2bJmuv/56XXLJJXrmmWe0ZMkSXXrppY7VOXLkSE2dOlWTJk1Sjx49YoOpAXiTZcfT8Q0AAOBDtOgAAABjEXQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFj/H8ZHQ0KRV8x2AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.semilogy(dset_in['redshift'][()], dset_in['richness'][()],'.', alpha=1)\n", + "\n", + "plt.xlabel('redshift')\n", + "plt.ylabel('richness')" + ] + }, + { + "cell_type": "markdown", + "id": "bfd77d78-6514-4c26-babb-24f3f167956e", + "metadata": {}, + "source": [ + "## Open binning output" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "0b4c65de-82c8-4f99-89de-dd0a598a31f0", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/example/cluster_catalog_tomography.hdf5\n" + ] + } + ], + "source": [ + "filename_out = pip_stage.config['cluster_catalog_tomography'] #output_dir + \"/cluster_catalog_tomography.hdf5\"\n", + "print (filename_out)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "da3761cd-c7ed-47a2-a0bc-562cd7ad3381", + "metadata": {}, + "outputs": [], + "source": [ + "f_out = h5py.File(filename_out, \"r\")" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "b3274869-a729-45c7-b531-05d4f8ef69da", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "print(f_out.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "7785436c-8652-4c98-9ecb-373abd2dc5d2", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "dat_out = f_out['provenance']\n", + "dset_out = f_out['cluster_bin']" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "736b4dc3-381b-45f4-a93e-f9c00b9e5e17", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "print(dset_out.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "9ad81296-06fb-4c27-bef9-116e8bf7dee8", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "bin_zbin_0_richbin_0 {'rich_max': 10.0, 'rich_min': 5.0, 'z_max': 0.4, 'z_min': 0.1} 5\n", + "bin_zbin_0_richbin_1 {'rich_max': 20.0, 'rich_min': 10.0, 'z_max': 0.4, 'z_min': 0.1} 3\n", + "bin_zbin_0_richbin_2 {'rich_max': 25.0, 'rich_min': 20.0, 'z_max': 0.4, 'z_min': 0.1} 0\n", + "bin_zbin_1_richbin_0 {'rich_max': 10.0, 'rich_min': 5.0, 'z_max': 0.6, 'z_min': 0.4} 20\n", + "bin_zbin_1_richbin_1 {'rich_max': 20.0, 'rich_min': 10.0, 'z_max': 0.6, 'z_min': 0.4} 8\n", + "bin_zbin_1_richbin_2 {'rich_max': 25.0, 'rich_min': 20.0, 'z_max': 0.6, 'z_min': 0.4} 0\n", + "bin_zbin_2_richbin_0 {'rich_max': 10.0, 'rich_min': 5.0, 'z_max': 0.8, 'z_min': 0.6} 13\n", + "bin_zbin_2_richbin_1 {'rich_max': 20.0, 'rich_min': 10.0, 'z_max': 0.8, 'z_min': 0.6} 3\n", + "bin_zbin_2_richbin_2 {'rich_max': 25.0, 'rich_min': 20.0, 'z_max': 0.8, 'z_min': 0.6} 2\n" + ] + } + ], + "source": [ + "[print (i, dict(dset_out[i].attrs), dset_out[i]['redshift'][:].size) for i in dset_out.keys()];" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "38be57ca-e370-480d-a2e0-c2d45baf7b13", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['cluster_id', 'dec', 'ra', 'redshift', 'redshift_err', 'richness', 'richness_err', 'scaleval']\n" + ] + } + ], + "source": [ + "print ([col for col in dset_out['bin_zbin_0_richbin_0']])" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "9b7670e8-3672-41c4-bd24-f17b1b3a5622", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The file contains 9 keys corresponding to 3 redshift bins times 3 richness bins\n" + ] + } + ], + "source": [ + "print('The file contains',len(dset_out.keys()), 'keys corresponding to',\n", + " len(pip_stage.config.zedge) - 1, ' redshift bins times', \n", + " len(pip_stage.config.richedge) - 1,'richness bins')" + ] + }, + { + "cell_type": "markdown", + "id": "99017d4e-0ad1-44da-ace2-4fa54fb28b2e", + "metadata": {}, + "source": [ + "## Compare the two " + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "2b146a75-3aff-4fa7-be65-679c6f49bf6e", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#plot data from input catalog\n", + "plt.semilogy(dset_in['redshift'][()], dset_in['richness'][()],'k.', alpha=1)\n", + "plt.xlabel('redshift')\n", + "plt.ylabel('richness')\n", + "\n", + "#plot bin limits as defined in the config file\n", + "[plt.axvline(i,linestyle='dashed', color='black') for i in pip_stage.config.zedge]\n", + "[plt.axhline(i,linestyle='dotted', color='black') for i in pip_stage.config.richedge]\n", + "\n", + "#overplot data from output file to make sure the bins are ordered correctly\n", + "markers=['s','o', 'D', 'P', '^']\n", + "\n", + "for i in range(len(pip_stage.config.zedge)-1):\n", + " for j in range(len(pip_stage.config.richedge)-1):\n", + " plt.scatter(dset_out['bin_zbin_'+str(i)+'_richbin_'+str(j)]['redshift'][:], \n", + " dset_out['bin_zbin_'+str(i)+'_richbin_'+str(j)]['richness'][:], marker=markers[j], label='bin_zbin_'+str(i)+'_richbin_'+str(j))\n", + " \n", + " plt.legend(fontsize='x-small')" + ] + }, + { + "cell_type": "markdown", + "id": "93633ac1-206d-42ac-88a8-b33c7b6656ac", + "metadata": {}, + "source": [ + "# Now let's do the same using the pipeline approach\n", + "\n", + "Here we will use the 20deg2, but we can also use the 1deg2 files (just need to change 20deg2 to 1deg2 in the name of the files)" + ] + }, + { + "cell_type": "markdown", + "id": "3e233ec3-29eb-45b1-ae97-7e03f3719478", + "metadata": {}, + "source": [ + "### Launching a pipeline\n", + "\n", + "Let's have a look at the submission script for this pipeline:\n", + "- to work at CCin2p3 we can use: `examples/cosmodc2/1deg2-in2p3.sub`:\n", + "- to work at NERSC we can use: `examples/cosmodc2/1deg2-nersc.sub`:\n", + "\n", + "If we use the CCin2p3 example :" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "9660328e-0f08-4e92-9350-d4831c308e55", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "#!/usr/bin/bash\n", + "#SBATCH --time=01:00:00\n", + "#SBATCH --partition=hpc\n", + "#SBATCH --ntasks=30\n", + "#SBATCH --cpus-per-task=1\n", + "#SBATCH --mem=128000\n", + "\n", + "source /pbs/throng/lsst/users/jzuntz/txpipe-environments/setup-txpipe\n", + "ceci examples/cosmodc2/pipeline-20deg2-CL-in2p3.yml\n" + ] + } + ], + "source": [ + "! cat examples/cosmodc2/20deg2-in2p3.sub" + ] + }, + { + "cell_type": "markdown", + "id": "94939a10-4dab-4cc2-9570-3de230423b48", + "metadata": {}, + "source": [ + "If we use the NERSC example:" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "dc09313d-ab83-4ab8-8d39-3cf1d495ebd5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "#!/bin/bash\n", + "#SBATCH -A m1727\n", + "#SBATCH -C cpu\n", + "#SBATCH --qos=debug\n", + "#SBATCH --time=00:30:00\n", + "#SBATCH --nodes=1\n", + "#SBATCH --ntasks-per-node=32\n", + "\n", + "source $CFS/lsst/groups/WL/users/zuntz/setup-txpipe\n", + "tx ceci examples/cosmodc2/pipeline-20deg2-CL-nersc.yml\n" + ] + } + ], + "source": [ + "! cat examples/cosmodc2/20deg2-nersc.sub" + ] + }, + { + "cell_type": "markdown", + "id": "53430447-8c6d-413f-9138-9806050f01fe", + "metadata": {}, + "source": [ + "This will launch a job of up to one hour (it should finish in 30 min) on a single CC-IN2P3 node to run a pipeline. After the first run, the output files are created and following runs take much less time.\n", + "\n", + "In a terminal, **navigate to your TXPipe directory on IN2P3 and run**:\n", + "\n", + "```\n", + "sbatch examples/cosmodc2/20deg2-in2p3.sub\n", + "```\n", + "to set it running.\n", + "\n", + "If you are **on NERSC, you will instead run**:\n", + "```\n", + "sbatch examples/cosmodc2/20deg2-nersc.sub\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "b61f90b0-7f33-4fea-8ab7-310a1e00a6ca", + "metadata": {}, + "source": [ + "Below, you will need to select the appropriate yaml file to comment/uncomment for `pipeline_file`, depending on if you are in IN2P3 or on NERSC. " + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "af7452ac-b01e-454d-a521-3426392ca4dc", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Read the appropriate pipeline configuration, and ask for a flow-chart.\n", + "pipeline_file = \"examples/cosmodc2/pipeline-20deg2-CL-in2p3.yml\"\n", + "#pipeline_file = \"examples/cosmodc2/pipeline-20deg2-CL-nersc.yml\"\n", + "flowchart_file = \"CL_pipeline.png\"\n", + "\n", + "\n", + "pipeline_config = ceci.Pipeline.build_config(\n", + " pipeline_file,\n", + " flow_chart=flowchart_file,\n", + " dry_run=True\n", + ")\n", + "\n", + "# Run the flow-chart pipeline\n", + "ceci.run_pipeline(pipeline_config)" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "a88eb44a-3a78-41f1-bffe-b1aa8d061842", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Image(flowchart_file)" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "59f26536-3416-4229-8664-bea506599179", + "metadata": {}, + "outputs": [], + "source": [ + "## Open the corresponding pipeline file to load correct input/output file names" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "7077bf36-77a3-4c3b-8e49-47687f989807", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "with open(pipeline_file, 'r') as file:\n", + " pipeline_content = yaml.safe_load(file)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "80ed821b-354d-4ae2-8240-cf28e2f3909f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/cosmodc2/20deg2/cluster_catalog.hdf5\n" + ] + } + ], + "source": [ + "#open input cluster catalog\n", + "filename_in = pipeline_content['inputs']['cluster_catalog']\n", + "print(filename_in)\n", + "f_in = h5py.File(filename_in, \"r\")\n", + "dset_in = f_in['clusters']" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "6346d5b9-5196-4342-8a67-a69ca84705cc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/cosmodc2/outputs-20deg2-CL/cluster_catalog_tomography.hdf5\n" + ] + } + ], + "source": [ + "#open output binning output\n", + "filename_out =pipeline_content['output_dir']+\"/cluster_catalog_tomography.hdf5\"\n", + "print (filename_out)\n", + "f_out = h5py.File(filename_out, \"r\")\n", + "dat_out = f_out['provenance']\n", + "dset_out = f_out['cluster_bin']" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "604121fa-0cc8-4844-92c7-ec8d80642385", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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5gzZt28fe1OzxXXyn//8h/dh9M033xj97IUElvnJCaTs+z1WXyfnz5/nLelQVVVl1nWi+936/fff2Xbdz1MXY9eJJZ/9119/zbsve/bsMehr6h5h7KHmqHvE6tVPE6n07vkffNCPff3V9v6kquojq+4R7777LudByXzmUqmUbNy4kdNX6B5x5swZsmDBAs447777Ljlz5gzZs2cP+30Rc48Q+uzFXCfGPk9rnyWEcD9PUz8oLLlOzp49S77++muiVCpN9uX77JVKJe93+ezZs1bdI4Q+T/2+LiMQ+fr6ch4uDL/99hvx8/OzelKOgtlQAOTatWts+8svv0wAkCeeeILT38fHhwAg1Tq/ltetW0cAkJkzZ7JtujdtXXPNpk2b7tx8HuSMGxoaatD3448/JgBISkoKp29kZKTBL+qCggICgMTHx3P6jhw5kgAgu3btYtv27t1LAJDo6GhO3/vuu48AIPn5+WzboUOHCAASFhbG6TtlyhQCgHz44YdsW2lpKQFAQkJCOH3T09MJAPL222+zbWfPniUASJcuXTh9maror7/+OtumUqkIAOLu7s7pO2/ePAKArFixgm27efOmUTX9jBkz2L4tLS1s+82bN9n2FStWEABk3rx5nPO5u7sTAESlUrFtr7/+OgEMq7d36dKFc976+nry9ttvEwAkPT2d0zckJIQAIKWlpWzbhx9+SACQKVOmcPqGhYURAJwcYPn5+QQAue+++zh9meuE79/IkSM5fePj4wkAUlBQwHtzl0gk5B9pSWR1xlQyOnYEAUA+/vhj9vji4mICgISGhnLGffDBBwkAsmnTJrbt5MmTBjfQLVu2kJkzZxIAZN26dWzf6upqAoD4+PiwbbrfreXLl7Pt165dY9t1efbZZwkA8tJLL/GOoXvTfemllwgA8uyzz3LG0N0H/b38y1/+wulrzj3C2EPN/veIMaSk5F2OMKT/L2dVTwKAREaGcsYVc4948cUXycWLF8nFixfJ5s2bzb5H/Otf/zL6XWYEpC1btoi+R+g+hF944QUCgLzwwgtsm7n3CGOfp6l7xNmzZ9k2c+4RpjRE5t4jtmzZwrmuGc3Orl27TN4jGNauXcu77tjYWJvcI4KCgjh99e8RLlPLzMvLC1evXjVov3z5MtzdRSW/7lB4enrCz88PAAwi8CiOgS97eteuXR06h1deeQUffvghPD09HXpe4O51x9RqkkgkSAwLBQA0/VnH6dt46w8AwPnyX1hnWt0aT+mxw9HVRwYAqFVdFD0ndVsb+7pbt24m67RVFv0IANBo1Gybp6cnxo0bBwBsfTNHsXbtWvaczPXl6+tr8TiOrNelz61bpfjhhxwI+DtDIgHq67VvNjdfRk3NNqvOFxERwTohjxw50qxjVCoV/vGPf5jsx0RQ1tTUWDVHa3Hk5ymXy/Haa69x7m/GAkZUKhVOnjxp0PbUU0+xfxNCMHfuXItrs8lkMt52R38vbYmEEMtd/jMzM3HlyhVs374dXbp0AQD88ccfeOihh9CjRw/k5+fbfKL2oK6uDl26dEFNTQ169erFXmQtLS1obW2Fu7s7vLy82P4NDQ0AtBcC8wVobW1FS0sL3Nzc4O3tLapvY2MjCCHw9vZmL6a2tjY0NzdDKpVyLjxL+jY1NUGj0cDLy4sVVNVqNW7fvm1RX4lEAh8fH7bv7du3oVar4enpyT54Lemr0WjQ1NQEgPtAaW5uRltbGzw8PFghwpK+hBA0NjYCAP773//i6aefZssGvPXWW3jiiSd4+/r4+Ij67G1xnfB9nra4Tur//BMSqRQHd/4ftr//DoL8fODv7YU2jQZSSDD1mYWImjAR5YV78fXb66ABgbtUisnznkPUhInY/dl/8MU7byHIzwcebm64Ud+AID9f+Hp6QgOCyX99FiNSJpv92VceKsT+Le9gwuNPI2z0WIPPU/86KS/ci93vbkCrWisMTXvmeURNmGjWZ2/JdWLJZ+/j44NLly7h3Llz6NevH3r27Cn6sxeKtLPXPeLChc9QVv4SpFKCujoNHpt5QVAoev2NXhg61BtSKeDt7YXx95VDKvVw2D2isLAQSUlJ/JPjYf/+/Rg1ahQA6z97sdeJ0Odp63tEXl4eJ4LvX//6F1566SWTfSUSCTZu3Ii//vWvgvtbWFiIxMREs58l+/btw/33328wzu7du5GYmCj6OhG65+v3ZZ7ft27dQkBAgME8xCBKILp06RLGjRuH2tpajBgxAgDwyy+/oGfPnvjuu+/Qt29fm0zO3thjQymug0qlsihfSKumFR7S9q/RKy/ci/1b3kFE4n04dWA/AOCPxiZWqGG0PcPGJ7Pv66Lbfuy3C/jip3IQABIA6SOjMGpgPwDAxKcXsEKKqfnsfe9N9m9Tx+n3N/c4Z6LRtEJq4bVj6fUplpqabThduRRai4aWb7+pw9q1N6B/95dKgU8+7YfgYHcAEgyNeAUhIY6tyadSqRAaGmoQti+VSkG0bh5sm5ubG5RKpdPD4AH7f558+yK0fmN9AZg9jjFKSkpw7733GrQXFxcjLi7O7HHEYo/ntyiTWZ8+fVBWVobXX38dkZGRiI2NxYYNG1BeXt5uhCF70tbWhq+//hpff/012nTMBBTHIpfLMX78eLO+5AVVBRj1ySgUVBXY5NxirwG1ldcLI0yo29o4Qs2/dn2P9w4cw792fY9jv10AAI6wdO7aDfzR2GTQzghDgPZx+sXxk2y/ve+9ifLCvWbNRxdjx+n215/X3vfeROm+b13uu1VTsw0Hfoiy2LxkyfUpFl1h6Pr1NvxS2oTr19sweUoAPv1vPzya0QWMtUciAR58MADdurnBWcIQoN2XV199ldWcSKVSvPDCCzh//jxee+01tt3V8ovZ+/M0lrfMkr6MWZzRHordx/r6et52RvvVHhGlIeoo2EtD1NDQwPoQ1dfXi/IzaK+0Ry1LQVUBlh9Zzv6dE5+D6eHTrRpTzDXAaHaSn5gnShPCJ3z80diEf+36HrpfcolEgr9PnYCuPjKjGqBz127gvQPHDM7z9PjRCOvRHQDg5u6O/936Bdx4fAf1hRt9DZW+xke3v9C8mtva8Pf/2wPANb5bXO2L84QIPnTn9u03dVi37gY0Gq0WaOHCIEyeor3nXb/eht9+a8bfX9L6he7cNQD3jHjNYB2mkgGKTRaof5y++em1117DCy+8INjeWbCVhojpa61Gy5L52AOnaoh27NiB1tZW9rWxf5TOia21LI5AXxgCgOVHljt8DbqaHXM0L0LHA1zNyo36Buj/4iGE4EZ9o0kNUJCfL/Rd0yUSCYL87voAJD8xz6QwJKSh0l2n/vy36c/rp3J2Xq6CoSmK4HTlUqsdkW2BvmaIEYYAQKMB1q27gevXtRq24GB3KBR3/UUihqw0EIZyc3MRGhqKpKQkhIaGIjc316L3hdA/bvXq1QalZ5YsWYKSkhLedksdgdszlmh2zOlrrUaL7xyvvPIKqqqq2u3nYraGSCqV4sqVK+jRo4eBRz1nQIkEarVa8H1XgmqIbIc9tCz2RnfOrb+3ovlqM7x6esGjm1bDZc0aLLkGrPWZMaZZmaKIwDdllbwaohv1DSY1QMd+u4Avjp8EIQQSiQTpscNN+hDpCzfGNFQAcP+Tz2Bf7jsgdx52v1yowcdHSw3G/X+jR2BoSA9WQ3Trjz8QcCeow9HoCxyXVK3oI/dwqu8Ng0bTigM/RIEQ7Q/YX0qb8MILlw36rV7TGzEx2s+gqUmDaWlKAIbXqylNgFhNAd9x+qUgGNauXYvnn3/eoL2wsBDjx48XPEdHxBLNjiP81Jhz/PTTT3jxxRcdVpLHHs9vs2PkmYu0tbUV48aNw/vvv48hQ4bYZBKU9o2QlgWAywpFunP+/YffUZNXw1g9EDInBN3u6+aQNRgzKzHt5jog82l8vik/oxWKys9whBpGGJEABsKKrgZo1MB+GNIrGDfqGxHk5yNo7mJQt7Vh/5Z32L+NaaiYsfZ/+J5efSvXtuKbY4rSvg+nCEVSqQcihqxi59hH7gGpFJyoMqkU6NNH17QtHCptyh/F3Jp8+qYxvuOE6p91yLpZIrGklpoj6q4x4ycnJ7t8UWlTWOxU7eHhgVOnTrXrXAMU26GvZak/XY/W37W/TJ1hejIH/TmzwhAAEKBma41D1mCpWUkfc4WPvt264u9TJ+Dp8aPx96kTWA1PVx8Z0kdGseHE+sLSsPHJbL+wHt1NCkOA1qco+Yl57N/mmN1SnpiHiXP/l/27f1A33rH7BwUanMvRaIWhJTBtinKu+Swk5FEMjXgFgNYktnBhEOs8zQhuWm0WMDTiVdw37ifBsfz8/Izm2TEnDw+fSY3vOCHrg5+fn00cgSn2wRKHb1dGVJTZ7NmzsWXLFlvPhWJHWjWtNh9TX8tyZtEZKF9T4syiM/j9h98BmBYo7DEvY7RqWrHq6Cr27+arzYYKCc2d9jusOrrK5vM0pdkxJ5rLHOFD2+5jINQwws6ogf14haWJTy/ApL8uxMSnF3DGMseMFzVhInucKaGLGU//mEdHRnHGfHRkFHuMs9BoWnG68m5V+EuqVoNcPhoNcOkSc60QVJ5ZBo2Dr3EhGCUcn5OEUMqA3NxcjB492kAzoyuMmPJXYRIB6msPABgcpxtdpnu+sLAwZGdnQ6lUmkzoSXE8zkw2aktE/cRqaWnBli1b8N1332HkyJEG/hFr1661yeQotqGgqgCrjq7CstHLbGb+MUfL4h/lD49uHoKmJ2ZeL937EtKHpNtkXqbwkHpg2ehl7Jy8enoZ2o2kd9rvsGz0MptGzqnb2rBv80b2b7PMSlveQeTYJAOtCCOc7H3vTVb42PZTOafPmSvXWUEHuCuE9IkYxh6nK2xIdG5szPiWRr/pzstSsxsgbKpLzp7H+hA5mitXvgJw1z/StClKgoghqyzOT2QL7pr1wGqydAWidetuYGScD4KD3XG6cilC+902GENfkAG0GpyioiKDPDPZ2dlITU3l9Vcxpj3gO65bt26YO3cu1Go1r/ClK2iJiWqjmMaSvS0pKcHBgwexdOlSvPrqq7yfW3tBlEB08uRJ3HPPPQCAs2fPct7jK5nQ2fD09MTbb7/NvnYmuoKLrXxiLNGyMA7Kq46uQtqgNFaw0J3XyqMrceL6CaxKXAVHwKx/+ZHl8OjmgZA5IajZWgNoAEiBkKwQqx2rjV0DFQe/5/jMMJodY748QtFc+gzpFWww1hfHT2JIr2ADDYuu0KIL0Wg4/ktREybyCmOm0BfWdM9vLOSege+YiMQJTvlu6QoYDIwpSt+HyNmO1RpNKyrPLANzFRjTZGnnSvBb9ct4660NkEjc2H0V8vERyjMj5K9iyv9H/zhjwhWgfVhv2LABa9asASHEIQ68nQmhrNt8zJkzB1u3bmX/Tk9Px/z58+2ebNRe0DxEHThTNZ+zM2CbCDB9DdGZRWcMtCxDVg/hFSyE5vXQoIccJhTpz8PWUWZCCEWUiYnmArTaprey0tmEjmJyB5UX7sV3m95mo7x0sUV2aFOZqk3lK7LVPMRiPKJMq4G5dKkVffqYjjITk9HaFnPWL9VhTkZqW+aZyc3NNdD6iBFgdB/WurhSxmpjuLpWy5LPnGaqprQb7O3sPD18OnLicwCA1bKwV5MRLYuxeX3161dYdmiZVfOyZg1+Q/2cIgwBxn15jAkCYpyY+bRNjDDElx3a0pxI+jD+QW7u7iaTMfI5lvPhKL8c/Yiyx2ZewAsvXMZjMy/g22+0RXKDg90REyMzKQyJzWgthpCQRxEx5GUAEhNO1cLztTSjsUqlQmFhIW8OGlv4//CZ8BjagwOv2FxNjsQS5+iDBw/yjnH48GG7zM0RUA2RHTREarWavVjGjh3r8Ig8c0LKAftoioxpWQTnBaBnRk8ETwkG4FxNkf6cxaJ/DVT8uN+kFkQfS7QiBrmIGG0TtLmIJkQMAqB1pp7014XCx4msW6ZuazNpUtPvY2m+oolPL0DkuGQUFKzChYsf4NH0N9C37wxztkcUlmlZtAyNeFVQGHJkRuuamm2oPLMMvXo+gMtX/o9dg5Amy9g9y1guG0bj8dNPP2HJkiWic9CYozkxVvTV1TVEzs7qbC5UQ0SxObdv38aECRMwYcIE3L5t6KxoT1wlpNyieQG4mn8V17+5DsB5miIPqYfNNEO618BPe762WAtiqYkoasJETuTYlChtjjAC4JuySk79MqHs0GLrlpUX7sVbWekmNUm6wpAl+YoY9m95B7/++h88+uhKLHr+Ik6U2S+s3RI/HAaJxA29ej1kMJajM1oz5yOkFZev/B9693oYjKZISJNl7J4llNFYV+Pxt7/9zSCKzNxsxeZqTvgimQCto7erO/C2l7B0S7SCcXFxyMrK4rRlZWU5RBiyF1Qg6kA4OqTc3LD7L858YXpeAK5uu8oxn20767gcLtPDp+PYY8fskoRxf672wW9K6AC0EV5i/GXKC/dyirJ+U1bJvscn3JzY960ogUS/+KzYkiNiTH3x2TE4W5WjO0O7CRZMckPcmRUTUcbtox9R9i8D/yCh4qr2mjuf8KUrFDFztVZDZcx8BZj/sBcKyecTpvge1kzRV1d3qG5PYemWmDfz8vJQXFyMdevWobi4GHl5eY6bqB2gAlEHggkpZ2BDynWxUUi5JZqolUdXYnL/ydx58UG4wtorx15xaJ4iexelNUfokEiliBzLbxYQQoy2pfDD95H0P0+zf4vxPbK0kr0+luQrGjt3JP7Ex9CVpG/csG8CxLvJDcX54Zj2P7Lt3I0JX4xQJJF42MRcx6fx0MXch72lmhP9h/Ubb7zh0pohBltVmHcUltQ5i4uLw3PPPdeuNUMMjk/1SrErjggpFxN2/63yW0wbNA07f90Jj24e6JnRE1fzr3KPsXP+H2djTnh9ipnh9bq4ubsjKmUWftn9IXseffiEm6gJEyFxk3JyGOlHuplTmV5MyRGGqAkTcf38nyj99kPB3EO6wtB3e/9kj338f1R4/nn7lspgxjtduRSTpwRgZJyPWRFl5hRX1c0DZO3czSkncvnK/yFiyMs22SO+UHoGSx72YkpyOKIchT0wlU6A4nyoQARtIU5/f3/212lLSwtaW1vh7u4OLy8vTj8AkMlkrPqztbUVLS0tcHNzg7e3t8HYul90ob6NjY0ghMDb25v9BdHW1obm5mZIpVLIZDKL+jJCzj8O/ANdR3eFX6QfWm60wKunF9y7ukPTrMGyMdwkjU1NTdBoNPDy8oL7nQeyWq3G7du3IZFI4ONz92GqblFjsWIx/vXTvyBxl/BrfO4IN5oWDUCApYlL8Wjko3CDGwqqCtA9uTtIG8G1gmtaCUEK9P5/veHm6wZNmwYvj3sZ08OnQ6PRoKlJa+rRTQDa3NyMtrY2eHh4sHlTCCFobNRqQXx8fAw+T0v6mvPZG+urm6slOXsefvjwPcg8PTD9nmEoKK1ghY6HYiIh8/SARkMwad6ziJow0eLr5MDnp1B+2AfuPhNx48Z2HDxbbfBxpMcOh7+3F5rb2nD/k/NZYSVqwkTcbm7Gd5s3YmR/OSuQdPOVwdfLEy1taqQ9s5Dt39TUhLLC7/DDh+/BTSrFsd8ucBJBPnrHEXvve2+iuaUFQxMnwNPTEx4e2jVeOvM7aq/fgq+/JwZF90H1ies4fTQQxHMCrt/YiZuNjegZ4I+uPjJoCMHQaUNwrekjyGQSXL/ehrfeqmXPpZtgMCjIDT+XvojGxtsIC5tl1XWi/3l26TIFof1uQ3l+BYKC3BEc7I6WFoLGRg2uXB6P3r2GISTk7mev0bSi4vQ/IJFoRd8L51t4/Y9++60Zfn5SeHlJtA7QvR6CWg2Tn71EIsH58+fxxx9/wNPTE15eP+P8hZVghK+1a+8mYWSErxH3yNClixtOlL0EicSNFYqY732bjilUrVajoaEBUqkUtbW1rLNz9+7d2XsEo/HQzVfz2muvITQ0FIQQ3HPPPWhoaGA/e2Zc/fuJXC7Hxo0bMX/+fGg0GlaYCgkJYb9Dpr73uveImzdvsvMNDg52uXsEI8wx9wihZ8mNGzfYdXTr1s3ge2/pPeK3335DcXExPD09ER8fD7lczn725jx3LHk+WNL39u3bUKvVnOtE6J7P19fmkE7MrVu3CLSPY3Lt2jW2/eWXXyYAyBNPPMHp7+PjQwCQ6upqtm3dunUEAJk5cybbVl9fz45bXFzMtm/atIkAIA8++CBn3NDQUIO+H3/8MQFAUlJSOH0jIyMJAFJYWMi2FRQUEAAkPj6e03fQ8EEEAAl9LpQMzxtOhucNJ/1f6E8AkOjoaE7f++67jwAg+fn5bNuhQ4cIABIWFsbpO2XKFAKAPPPqM+y4wQ8Es2uGFCTkf0LI8LzhJGBkAAFA3n77bfb4eZ/OIwCIVCYlQ9YOIf1f7E+GrB1CuiZ0JQDI7L/NZvuqVCoCgLi7u3PmMG+edowVK1awbTdv3mTn0NLSwra/8MILBAB54YUX2LaWlha2782bN9n2FStWEABk3rx5nPO5u7sTAESlUrFtr7/+OgFAsrKyOH27dOlydy8AUl9fT15aMJ8AIAp5L/KPtCTy9PjR5B9pSSRA5kUAkNx/ryVnii8TVeXvJDf3AwKATJkyhTNuWFgYAUAOHTrEtr35qvaaCusdTR4a9RSRQMI5NwAikYD8Iy2JPJ44kgAgI0eO5IwbHx9PAJA5CbFkdcZUsjpjKnl6/GgCgAwK7cfpOzp2hPZ6HxVD/pGWRCQG55KQf6QlkdUZU8mwkJ4EANm0aRM59/NV8uGLh8jfH80lAIifdxfy4YuHyOaFP5C35+4noT0i7o4BkEdHRpFl6f8gAIi3t4Ts2z+QrF7d22BtAMjqNb3JF1+Gsn+r1Xc/+2effZYAIC+99BLbpvv9rK+vJ4QQolar2Wtqzpw5RK1Ws/2Zvq+99gj5bt9A8ul/+5FJk/wIADJixAiyYsUKcurUKULI3XvE0aNvk337B5F9+weSWbO7GsxZKgXx95cSAGRLbl9y6ZL2e2fqHvHZZ5+RNWvWkBUrVpDp06dr53CPjOzbP9DoHs2ZE0gAkGHDvMj+74ewezRypPaa+OKLL9i+O3bsIABI3759iVQqvTNfKRk8eDABQN59913y/fffk4sXL5LNmzezfbds2cL2Z/59+OGH7BpKS0sJABISEsJZW3p6OgFAFixYQC5evEgIIeTs2bMEAOnSpQunb1ZWFgFAXn/9dbaNuUe4ublx5jthwgSXv0ecPXuWbXv77bcJABIbG8tZR9eu2uuntLSU7fvhhx+afY94+umnDb6jW7ZsIdHR0QQA2bt3L9t3165dRu8RBQUFbFthYSEBQCIjIzl9U1JSCADy8ccfs23FxcXaZ1FoKKfvgw8+yN4jGE6ePEkAkKCgIE7fmTNnEgBk3bp1hJC7z+9bt24RW9EpfYg2btyIyMjIDmHzNEagd6BB2+xhs202fmzPWDaPT0CsNuzRzc8NQ1YPYUP7hwUNMzjuuZHPsa/18/8AwPCg4Tabo6sQMngo+1q/rhgAVB33xXe5FfhqXSmOfGle5IlGQ1Bx6DIA4Gb9NXx1bBMIj7c6IcCN+ka4ed1jdLyY1DSDNi9fP/a1uq0Nv1+66+xqjq8SAFxV/oHd759Ewx/NuNWodbbXEA0a/mhGc2MbbtZfx/lrhk7gDa09OOP0kXtAPxG+YdV24bpcQlRUVGD9+vUoKysDAJw+fRrr169HRUUFp9/16wOQ92Ew/t9jF7B7dz0AoLZWq7HavXs3Rxvcs+dU1v/Iz4+bdoMxYzH+SAMHPGe2GWvfvn2oq6tDXV0drl/XRmU2NXZhNUJ95IZrl0qBbt2ZOZhfTuTixYscZ2emKsG8efOQlJSEfv364cknn2T7PvnkkwYmtN9//92sdQHA4MGDrTIjqdVqznwPHDggeix9CgoKzI6as5bjx49z1vHHH3+w7zG5nszdV5VKhffff5/TRgjBU089hdZW16ix50rQPERduqCmpga9evWymcmspaUFb7zxBgBg0aJFbLujTGYMjOry2wvf4t8//RvLRi/DAwMfwO3bt61SieqrLguqCrDs0DKQVu2lJPXS7k1OfA4m951sqBI9+RWadr6IHM/b+Ka7Pzvusj4PYGr83wXV4e3JZNbS0oJNmzZBKpXi2WefhUQiQUtLC04fKsQPH7zH9tV4joeb51DUN9Wh9s8aBHeRI0AWiDZNKyY9GYXI0XdrkOl/9pfO3MSXa37CjboarPp8DoSQSCRYkf5PBHYdg8l/HYqQwd3wh6oZDXXN8A3wQle5FwACLy8vnD74PfZveQfj/2cuwseMM/jsS3bvxHebN8JdKsWft5uN5g5qVasxYvJsXKwMQfOfahyp/Aaf/rAWuJOLZ+Z9zyM+YgrOXirFm7teMJj3/6a9gf49hmLUTCVuS9YBINi18xbWr79rNlu0SOsfQwjQP/Sf6N37YYuuE6VSiW3btE7NN2/exPXr1xEUFIRu3bQCfUZGBggh+OSTT9DU1IQNGzZA/5a5cOFCBAQEICsrCz169OBcJzU121B+cglaWzX4/Xc1rl9vY/2PmpoIIoasxMCBj5k0wdfX1+Ott95CU1MTfvnlF+zatYudx5QpU5CWFojwwUWQSIAd22/hrbdqQchd4Wtiqj9aWoChEaswaNBj7LjM914ikWDjRm19vWeeeQaFhYWYOnUq77VkySNj4cKFbG1LS80m586dw7lz5xAcHIz6+npBM5hGo8Hu3bt55/vNN98gOTmZ97P//fffce7cOYSHh6NHjx4G94gtW7awAh+z9s2bN2PWrFk2uUfo921tbcV3330nuA6VSoWnn36a/bzefvttPP7440afJcZyN+3evRsDBgzAhQsXEBERAblcLspkVlNTA5VKxeaQcpTJzB55iKhA1IFLd+jSqmm1q4Oy2ckNK3YA+bMBEKjqNNjc6IkvBwdhlaYe0+sbgIyPgMgH7DZPV6C8cC/2bXkHsq4ToVZH4EjlN/jvj+tAiAYSiRR/GbcQ8RFT4O3rgf95IxFSKX99wIPbzqJsv0pQoGDIjM9EYtST8Av0QkJ6OA5tq0LDH3ej+Xy7emHsjHAMGqF9mJtKsiiYBFKv5Ii7z0S4e2m1fTfrr2P5pzNBiE6hUIkUK2d+CgCC7wX6BeOhhSMg8d/HLZ9hZqkMY2g0Gqxfvx51dXX4+eefWSFDIpEgLS0N99xzDwICApCSkoL/+7//Q3V1NT766CODcbKystC/f3888sgjiIqKMnjfMBQeYML0W1ruRX19Pfz8/BAaGsqbZwcAqqursXXrVtTV1WH9+vUcoUQikeC5555DePg1DB5SBMCyciJ88CXoE3KiNoZEIsGFCxdElfrgKywrlPDR0sSHpup1qVQq9OvXz0D4s3cyRaF1FBUVYfTo0RYnduQbDwDr8/Xiiy+KTqYJWFb3zNbQxIwU0dg7Wsus5IYaNbD7RQAEuT+3IHR9PXLe/x2nXziL33+8owLevUTbrwMTNWEi0v++GWp1BG7WX2eFIQAgRIP//rgON+uv43ZDK376tpp3DI2G4OxRbZTehRtnefskDE1DzsxPkBil/ZUbNrIH9mzWmq5u1l/H2UuluFl/HQ1/NGP3+yfxa+k1ADAZ5aYbLi9UcqSe3IvfbrTiZr3WrHP9looj8ABas9n1uksI9AvGX8YthFSivR1JJVJkjluIQL9g+AV6oXd4V4MQeHNKZZji/PnzrPlJV+NCCMGuXbvY95hf8927dzcoXi2RSFhtkp+fH/jQnfudo9Al4H/x+eeXsHXrVnz55ZfYunUrr5mOob7+rolO/yFNCMHvv/+Oq1fD4O/3jE32iC9M/NVXXxUU2Ji90IcQgqKiIrPPCwjnONJoNHjqqaeQn59vYL6yJKzdnNxHVVVVvJowtVqNoqIiwRIl1iK0jvr6elGJHZnxdD83iUSCV199lRWGAMuTaQKW5ZBqL9AoMzugVqvx888/AwDuueceh5fucBbTw6dzKtobcP4IUFcDVZ0GT+26Dc2d+42GAHN33UZqmDvkuKTtN2Cs4yZuB0xdA00NWqGPT1AgRIMDJ/8P00fPRdn3KoycPMBAS3S56g/cbtAKHNuPbTE4f2rMTEwbpf2l5uXjjvGPDcGhbdqbp5BG6lB+FQZEBwtqpHQxVsn+J5U/Pi9ayRl/qDwOEonUQAsUHNAHABAfMQVD5XG4XncJwQF9EOinLeOSmBHOzkdbYkKDHTsXASAID/fG8GHic+qYI2QEBATA19eX/QWalpZmoEkKCAhAQEAAQkNDBc/FzLHyzDIE+P8Vu3bdBKD9lVtbW4vu3bWFd/Pz85GRkYHIyEjO8YyZgemnDyOUde/+AORyucVlQviuV6Ew8b/97W8Gx0ulUjz55JMG/ipiMJbjSKPRYMaMGbzaCHPD2o3lPmKOCQ8P5zUPSiQSZGZm2lUjwrcOlUplcXoC/fEYwXTMmDFm7YEpbDGGq0EFIjtw+/ZttsZLfX09xw7a0TGqiarXajSqajWsMMSgJsC53zWQB0jZfjZBo9YKWPVXAb+eQGg8ILW/gGrqGvAN0PoTBHeRQwKJgTP09ye2YfzwhxGIYFyu+gN9hnAd5BvqtCYvPoEKAIb0jQUAdOkhw8x/jsblqj9YzZC+RuqzH9dhqDwOEDiXELpCEUM9uZcVhnTHXznzU/xl3EJ89uM6aIiGowXy9vWA1F0CIJgVhPwCvZCYcdeMx9CtWxqemZ8JAKiq+siqnDqMRofR/OiboRghw9/fH5MmTUJ+fj7uuecehIWF4ffff0e3bt1YQWnSpElGtSeAVijq0eMBvPmm1ldHyEy3e/duREREcMY7f/684Li6mhlCCJqbR8Lfbz7+rH8PEUNyzNojoetVP+fPyJEjeY//7LPPMGbMGGzatMlgH8eMGWPy/Lq1zIzlOGJgtBGpqamc+ZmTo8ic3EdyuRybN2/Gk08+ya6H2Wd9jYj+HGyB/joYTc/cuXOhVqstTuwol8vx6KPc60CsgMUgJoeUq0MFIorj8OsJAAjvLoVUAo5Q5CYBwrpJOf2spmKH1kRXV3O3LSAEmPSa0/2Ueod3hZevOwIRjCRFOvaXcbMVExDWnMQIP7pwBCo9zYsEEni6ax0tb11rQvWJ61C3ad83ZbriO5cxGKFo3+Z3IPVKwu83WgXHF9ICjf9/QzAgWiuMMY7evcO7mtRU9e79sEVz1Sc0NNRszY9UKkVGRgZ2794NAOxxAQEBmDRpkoFGR4iLF2uMmumYh8n58+cxYMAAANoouB9//PHO8RcNxtTVZn355ZesQ6pEMgMnfrmESZMqzJ4fH6aEFTc3N4wZM4YVIvR9Skw9tPn8UHQf/kKI1UaYK1zoa1YIIZgxg1tM2JEaEVsmdrRWwLLVGK4GFYgojiM0HggIgRyXsSnNG3N33YaaaIWh99O8IQ9w0wosofHWn0vPebuqVoPw7lLIcVnb7mTnbalUgugJfVG8qxrjox7B/rIvoOt0q2tOYoQfXXqHd4VvVy8AwRzNC6AVptZ89b8cU9iEWREA+AUoU+cyRdSEiejacwR2vFmO4C7XjY4f6CesBTJXM2UrpFIpUlNTsW3bNrM0P5GRkYiIiMD58+fNcoTmw1wzHdOPiaACtBqlnTt3Goypq81qamrimOEIkQqa4czBlLCi/xDUFSIIIYiPN/5dFvJDUSqVUCqVOHfuHHx9faFUKllTFYObmxuuXbsGlUpl8UPYXOFCV7NijdnKVtgyS7ctBKzU1FR8+umnrCawPQtDABWIKI5E6qbVzuTPRvY9nkgNc8e53zUI6ybVmsoAYNKr1pu09Jy3GX8lqQTYlOaN7Hu8tM7bEVMdYj4TInZKf5z4/iICEYyZ9z3Pa05inIr1kUolGDsjHLvfP4n4iCkI6TYQawqeYU1v+qawvVtOAQDrwGzJucyhT0QQr4CmO75vV08kz4lE058tZmuBAK0DOaM9kri3mexvLhUVFdizZw/7N6MRYl7zaX6kUimruRGDuWY6pp++47c+utoswDIznCnMEVb4HqR79uwxO/LImB+Kbi2tuLg41NXVsYIYI5gI+ROZg6XCRUfUiOjvga42UIxmz9WL7JqCCkQUxxL5ABD/v0DR25AH4K4gJJECY56xjdamnThvS6USTJgVwQo1ppyK9Rk0ogcUyXKU7VehpbXJwA9J1xTGJEC8fkuFofI4PP/QW/jtcjkG9o5C/x5a7VHYSK2m5tKZmxaZrpi1hMf1wC/fXRRcy9gZg9E3optFe/Rr6TUc/PxumoDm1iaLjheioqIC+fn5ALiOzYxgMXHiRKvMTEKEhoay+V3S0tI4Gh9GsJHJZKyDtjGNEgA88sgjGDZsGLsOc81w5mCOsMIkCmQeoEJClJCfjSV+KLrapxkzZrDrZKLP/P392bIU9qK91iMzR9CxRMCx9HNuL1CBiOJYKnYAR96CgSkrQKJtl8dZLxQ5w3lbJING9MCkucNx8PMqmONUrM9ARTDK9qtMmsJ0I8vuhn8TTpRZ5ZErOFt8FY23Wtgx9HMUCfFr6TX88p3Wv4URvIK7yNn1xNzf1+QYfGPufv8kZ8wuvkHs+7+duIaoeMMHvEajMWrW0jdD8WlU9u7di8jISIs0KmJgtER8IeuAaY1S37592b/NNcOZiylhhe8BOnDgQIsijyzVusjlchQXFxus01ptkSW0t+Ky5gg6lgo4HTHCDKACEcWROMqUZa7z9vVKoPqgwyLPhBg0oocop2JA2JdI11SlH1mm66uka1oLhFZ40RVogGDsfv8kJs0dLijQaDTkjkAnHNJ/7qdrGDM9zKw1GRvzrjAHFH35K4aN7s8Z8+TJk/jmm2/YbMSAofnLVP4hsRoVczh//jzr52POuc1x/JbJZGhqajLbDAcYCo1BQXcFTQZjworQA7SoqMhiPxtTfii62g0AWLNmjeBYHUVTYSvMFXQsFXA6YoQZQAUiu+Dh4YEVK1awryl3cJQpy6Tz9h2B6Mc3tP+EIs+sCNm39BqQSiWinIr1fYn4TFVCofkMuqY1MTmKzA3przlzExKpxCyhT2hMRpibEPUImurUnDQBe/fuxZEjRwAYz+9jqWOzLbH03FKp1GTI/9SpU7F3714A5uVJqqiowO7du1FXV8ee28fHB/PmzUNwcDDnehUyEQk9QBsaGgyEqFdeeQVVVVrhVv/hakx7oVKpsGHDBqxdu5Z9//nnnzdZOqQjaCpshbmCjqUCTkf0pwKoQGQXPD098c9//tPZ03A9HGXK4jhve/E6b5uMPLMyZN+R14CQ2Y2Bz5ymC2NaE5ujyFhOJF1ha/eWk2huuOsUbcwcZyrPUlT/eLi7ebD9Tp06xQpDhw8fxr59+wCA17HYUsdmWyLm3JGRkSZD/qVSqVl5koR8pwAgODgYGRkZbC0vBj4TEV/iQolEgrCwMIwfP54Von766SfB8hDGtBd79uzh5ABi3l+3bp3JemodQVNhK8wVdMQIOJZGFLYHaOmOzoJGrTUPlX+h/b+ty2OYM76eKUsXm+chinxAK+AE9IY8QIrx/d1ZYYgpG5L0USNC19cj9+c7uXeYsiFMyP4dbVZhdRtUdRqg7o7gVLHD+vlZgUZDcOnMTZwtuYJLZ25CoyEYNKIHEh+9e5PTLc2hXxpDcuc/gFsmw5hAA0AwR5F+TiRddP2YmhvajJYMETOmb4AXNBoNvv76awDAkSNHWGEIMCzDcf78edYMFRAQgLS0NNZ/x5LM02IRe+7IyEg899xzyMrKwiOPPIKsrCw899xzrBmQEZqY4/v378++ZjRj+r5T69evx0cffYT169ezWap3795tcb0yBl0/KLlcjrCwMKPlIYS0F0VFRXjqqacES2csWrSIU9oiKyvLrJId7R3Ggd2S0hiWlDTJzs6GUqlEYWEhlEqlWX5Ye/bsQWZmJmbMmIHQ0FDk5uaavyAXhGqI7IBGo8Hp06cBAEOHDrW7Y6ZJzNV2iDURmTu+I/MQAdpzR0zVrum3H4CDb5g21ykP2cTPydJrQDe03Jg5ST/qCtBqWhIfDTNZmkPXnAbAwLQmNkeROX5MxuZV+HElvLzdETIkkF2z0JgSSDApdhZutzTAp2sIeod3xfnzSjQ2NqKuro4jDDHwmaLuueceHDhwwKrM02IwxwQmdG5TIf+m8iQZ853auXMnunbtCj8/P1RXV2PQoEFG18FX64upUG/KrMb04dNeSKVSlJeXCwplbm5uePbZZ/Hss89yzHgvv/yyXSO/LAlHtwfWhLhbEhlnicN4R4w0o9Xu7VDtvqGhgVV5O710h1CCwoA7D3PGTCTWRGTu+Ab9AVWdWseUJdDfVpR/AXyZjcLqNiR91GjwdmGWD8b3dwfGLmYFp9D19QYO2crn/LSapqxdhn5OOgJlgzQAfsNTAZi+BoSEHH1zEl/UlW4kF9NurHI8H7pjnVaVGAg08RFT4BfohVn/ihf0+TGYm56wZc689NfMN2YXn+5Y9fkcAEDZ4d8QFT8AZWVlRqvRA8DChQsREBCA8ePH4+eff+b4z+hiaeZpsfD58dj73OXl5fjyyy+N7hMAHD16FKNGjTI6lrHq8oBWGPLz8zNZoT03N5c10zAaJqFHEqPdcHSuG2fn2zG2184UPAoLC5GUlMTbPn78eLuf3x7Pb6oh6siYG9VFNMC2ObA4q7OYqDHGlLX7RchRc9fBOSBEm5TRXtmjzY08u/O8t9jPSV+gbDHvd4aQkKMf3WVOJBdg2o9n+Pg+GKAIwt4tp9Dc2MY71sqZn1qUDwkQ9mPy8HJDa7NacF7VV0/h+q0uvGvmG1M3D9HA6B44efIkay7j88sBgJSUFAQEBMDT0xMHDhwAwJ97aPz48Rg3bpxDNLq2yHptKcb8l/j6GUPI50Q/KeOsWbPw8ccfC/ql6Pqh6GeiZmCcqZ999lmHCwCO0IIY0z6pVCrk5+e7ZIj78ePHDdrau/8WFYg6MuZGdX2trR5usYnI3PGPvacVSBgznK4py1FFV8021yUCeMOyems8WrI+ATrCw+mvgZEZBlMyR8hhorvMieQK9AsWcKCWsGavpvoWuLlJ2USNfGOtnPkpBofEaJdpZj4kwDB9wB/XGlGyUwkA8PSQGRSxlUCCD/a9DP18SLoRbfpjStzbsOgD7fH79+9nfV8YASclJQX79u1jo6xSUlJYZ09GABDKPfTzzz8jMTHRYUKKtVmvLcVYCP+kSZPw7bffAgD69evHOU7oga1vimHOoSs8fPzxxygqKkJDQ4OguUYulyMoKIhXGFq3bh3S09OtfvCLNXnZO9+OMe2T7nv6OFvwUKlUePHFFw3alyxZ0m7NZQAViDo25kZ1Nd4QFwpv7vh7Xrr7hq4ZzpFZoo1Gnt0RxCa9qp2TJX5OAloyji7lu+XAPY8YCHyWVKA3N5KLcaD+9AfdXC0Eu0o+wKwJL+K349fRf1h3s8aKnRKKe9MGmp07CLibPkCjIfjoJW3UFyvs6QpDEukdAYW/1MiJ/RcQ1NffoMxHQ0MDO8bRo0fh6elpEFWWnJyMPn36cPxyAKC1tdVk/p+1a9cazWHUnjHmv+Tt7c0KRLoCoClzka7PSWFhoWAovikTilA0lC2EIWtMXvbMt2NM+wTAqDDkbMdxPkERAP79739jwIAB7baEB40y68iYG9UF40INAP5QeDPHd5lILaHIs4CQu2ZBRnACkH2PF5TP+aEwywfK5/y02jKAW29NQEvG2co/a7T99Pit7DoA44IJANbRGjAddQUAl2p/NTjXsbN7obxWCUKAq9V1Zo3Vd0g3i4QhXYTzCGnR/s1fagQAjnz5K3as/wXf5Vbgq3Wl+OilI7zRaHxRZfv372fD16urq1lH4urqaly4cEEw/w8A1jlb97j8/Hx8/vnn+P777/Hrr7+KjsJyBYSi0fz9/Q36Cj2whaKcxJpQGO3Nq6++ajQaSjfKytyIK5VKhSeffJKzhqeeesrsSC1LorQsxZj2SUjgWLdundkRYPaEERT1IYQYvUZcHaoh6siYYyby6Q403rDMRGQwfo1gAkSXK65qjrnOEj8nI1oyDnoC5a+l11C2X3vT4DMn6Ud3mRvJte/E5/jh5Fe8U/jtyklt3TKJxORYfoFe6Dmoi6i6ZoDpPEJ8SCVSeLp74+yl0js+RTDwqRpw/93+NTU1+O677wzGIYTg2LFjbH4UXfhKZOjm/xEyp50+fZqNGpTJZJg2bVq71Rrx+S8FBQXhpZde4vSzxFwkZEJ55ZVXjAoP+tqbpUuXIiUlxcC8pttP1/nalMbnyJEjvNFwRUVFbBV7U9irfplQlJ2vry969+5tlsbMkdFv+ufatGkTrxbLFfybxEIFoo6MOWaiKWuAvUvFhcJL3YDh6cCRN3mr17tscVWpm+nzmuvnZMRZm68fIOA7pCcM6VegN5aRGgDOXiqFp4cMXx3dLLikgb2GAwC6BMtMZrcOG9kDH/+jyGTkmxD6Gi1TQpFUIkVceArWfPW/gvXWxkRMRtFPh9hjtm7dKjgenzAEgBV0mPd08/8ImdN69uyJP/74A4QQ1r9GN/N1e0Tff0nXFMlgiblISKMRFxcnOAc+DdS//vUvdOnShWNi0++nn6xRbGFXS4QJe9Qv03dMB7TrGT16NDZt2mQyUaIjo9+EzvXbb7/h3//+N6evs/2brIEKRHbAw8MDL7zwAvvaqZij7ZBKTfvW8Gly2EKtepmf75yjPRRXNYo5gpOAFk4K4P5Bbojq4QaPrn04AuVP31YLmpMkkOD5h95iK9Az0V0aDYG3jwcUyXKcKbqCwDtRVxxnbEigb4ZiiBkwjh1z+Hg53N2lgkVlw0b24C3Uak5dMwZ9jRbXp+kuGYnPoldgP3i6e2N1wTM68zestxY2cAjg3obY2Fhe8wwD4yAtBCEE6enp8PX15fgZCZXT2LJlC6dt2rRpuOeee/Dtt98iIiLC+XnGbADfPcuc7MUlJSU4ePAgBg8ebLGvjZAQtWTJEvzlL39ha6bxRVnpYqywa3x8PG9E3fnz59moNmPChL01MNnZ2VAoFJz0BIxpUqlUQqlU8mqmHJkDSOhcCoUCr776qkH/V199tV1qhwAqENkFT09PvPHGG86exl1MaTvEhMKbDLn3FGeGswQrao3ZDHO0cGmvsfP6tfQaG3n125VThr41IGhpuw0AUCTLMWhED948RQAMnbEFhKH7hj+ERxP+FwAQnaIVhgD+orI9B3VB3otaLYyYumbstuhptEK6DcTqgvmcPhJIEBU6BoF+wSgoeg9Cwhyg9S+6VncRPfu5YdiwYYIC0f3334/hw4ejtLTUaHmHrl27ok8frXbNx8cHjY2NJsPRGXbu3GnXArDOQOieZcxcNGfOHI6WLj4+HseOHTO79AOfBgq4m+BRN4TfHPiEArlcjs2bN3PKgEgkEvztb39j/xYSJhylgamvrxc0O40fP94u1eYtEfSEznXo0CHez2bkyJEmz++qtP+fNhTzYLQdUena/+sLDpEPAM+d1CYcfCRX+//nyoXzApkIuVfVabVAm9K84Xbnuck1w/WxLiN1xQ5g/XBgaxrwZbb2/+uH285Z25JSJ+Y4a8PQVPbh/pcNhtL1HRqoCGbzFDEaJabsBSDsn8OU5ZBAgodGP8UKQ/0V3ZGYPph7vjtRYYPjeqHPkED8vEfJltj47w9rDSLfbtZfR/3NZlyu+sPkFg4a0QOpTw4DJED/HhGYed8i1olbIpHiL/c9j0C/YNysv47vy74wOpZUIkWPgL4A7ubR0eeJJ57A8OHDUVtbi+TkZN4+DK2trQCAxMREPP/884LlNIRgnLDtUQDW1ZDL5QYP5pKSEgOT5ZEjR/DVV1+xpR9SU1ONOj7L5XK89tprBu1ubm7w9fUVFIYkEomgVo4RCnRJTU3lfJaEEAOhV/84Sx3KrYHPQdmUdk3MMQy5ubkIDQ1FUlKSWeU2hM6VmJho0C6VSnHt2jXqVE25i0ajwYULFwBoc3q0G5W6OSYiBhMh90UX2xDkI0VqmDuUz/mZb4YzB6Hs2KYSSVoyvqVZu/W0cBqfYFyQyAGpG/rd+YWpH3mlrxGR6PgOeft6oOegLvj4H0UA+LU1Q+VxBv45EokET6WugpeHjOMTFBrVHVPnRRtdtkZDWEfvA+VfGmicdEPyheqa6RMW2xOABHs2C/s+/dn0h4B2S2sCZHyqgj0HolZzDRqNBklJSdi/fz+75tGjR+P8+fMGOYi6dOmCL77gClu6TtSDBg2Cu7s7bzi6h4cHcnNzeTVG9iwA6wwsvWcdPHiQt/3cuXN47rnnTFaxZ7QTL7zwAgghWLJkCTQaDatZ4tOaAHfzEgHArl27MG/ePM7nwwgFuucQMs3poi9M2Dv/kC5iCquKrTYvxtQmdK64uDhOO6NdFTJftgdo6Y6OXrrDXlQfBLam8Za4kACQ3DGV6ZrQAAD+IcBk8yrG86JRazVBdTXCEWwBIVrtlhiBy9JSJALwXQNnS67gu9wKnL1Uijd3vWBwzKR7ZiFh6FRWiImb1h8lO5VGy17oltpgkEikeHDUE+gXNJhT2sOU78+lMzfx1TqtBmrZJ38Bn8CWc6fUxkMLR6DPkECT+8Dwa+k1FH5cyVa71/d9uuPGzDnXoofeQkvbbY5gN+B+YGp6MgDgmWeewfHjx1FUVMR7TolEgueeew7nzp3Dzp072XbGB0gmk2Hx4sXsw5+vnIZu1Jn+8f7+/li4cGH7+cFjBEvvWSUlJbj33nsN2ouLi9G7d2/BUhOfffYZW/BV96FZUlKCQ4cOITExEXFxcSbLVfAlLWQe1AA4wthrr73GKTKrj0QiwebNmzkPb2eUy1CpVBZHsll6jDXlNoTOpVKpeDON23u/aOkOinhs7W8TGg/492adiZ/ceZvjDkv0TGipYXfMSNPfAwbeJ/685mbHFhPBJqYUiQWYirza/fN/sKf0E9ZXp+x7rbbGWJ6iu/45dx2SCdHgq6ObAMAi3x/dUHk+f54kRToC/YLh5euO3uFdLV4/Iwwpr1VqzXGsGETumPm0qQcYjRDjBA7czZjdazD3QX306FHB8+nmF2J+vRozg0VERMDLywvnz5/H9evXcfr0aVZjdPGi1sm8b9++7M138uTJ7UoY0mg0NsvCHRcXh6ysLI7ZLCsrC3FxcYIJGl9++WVWYGHmM3fuXPz++++shogRkgBuNJlUKmU1IPpaDub9oqIiA2FMo9FgyZIlePXVV7F06VI2mksfJhkig1gNjDWIiWSz9BhrEk0KnUso03h7DL+nApGjcYYjsNjCrcaQugGx/wMc+DdSw9whkdwVgvThRJY1XBd3PgZzs2OLiWCzp7AF4QruunBKccC8KvQtrU0Qckjmy3otpNkxJrBJIMH44Q8DAKIn9LUoYaO+79SnP6w1mC8BQcLQNMSGTeBohBTJcgxUBPNmquaLCtPnjz/+MJqZmnGK5tMOyWQyqNVqBAQEYNiwYWy7p6cnHnjgAchkMpSXlzukDpm12KOYbF5eHubPn4/Dhw8jISGBDbEXyq/DCDq6qNVqvPjiiwYOzhqNxuCzZYQWPnOWRqNBQ0ODoKkrLi4OSqUSmzdvRk5ODud9QghvXiJ75R9yJvYS9OyZ0duRuO43uCNib0dgoXPmz2Yf9DbNGN19EADTSQltGllmbvZtMecxQ9jS7WcpTOQVAMRHTMHKmZ9i+pi/GvTTzdjs5evOluOQ3nFI1k/GyJdxWmg8Y74/jMDGdz7GAdrb1x2xU/pDoyG4dOYmzpZcwaUzN6ExcgGY8p1iOHL6a1YY8vB2Q+qTwzD20cHoMySQVwATcq7WZfv27UYzU9fX16OiogL5+fmcjNZ1dXVoampCS0sLIiMj4enpyR7f0tKCL7/8Elu3bmX/v379elRUVBidi7MQWh+Thduaeffu3RvR0dHo3bs328aX3fn555/nFV75ovrUajVvMkXG6dmYQ7Gx9+RyOUewNQc+h/L2TnZ2NpRKJev8bgs/H3tm9HYkVEPkKOztCMyHnU1A5iQlNCvBoyWYXaRVxHmMrMdWQh1Twf3Ax2cQiGDcM/A+fHX0fUHtT/SEvijeVS2YQNFT5obAOxonXTOULhKd4q63rjYZvM+e10jyR+Z8980cguoT1w3SABhL2mhu1moCwjptt95W49C2c5DcKfDKh7+/v0GR0pEjR6KkpETwHADXqdrX1xdfffUVAOEs1YzAwBSQ7d69O5vIkfkbMC9Zoy3NVuag0Wiwe/duo+vbvXs3nnzySd7jjYVnG3Oc5iv8unbtWgPtzUsvvYRXXnnFQLOgryHS1TaY0nIYe48vL5FEIsGYMWMs31wnYm1+JHskmuwIGjUqEDkCewsmQtjZBGQsKeGT97gjeaA7xvS94zsEYl1kGYO5RVrFnMeewpYOg0b0QGhUELYuOcwKM0LlM2Kn9Ee3Pr68CRQjE0Jwo+ZP/PbzjTsmMX4IgNOqEsRHTEHF4RrETukvaPJiBDb98zEc+OQMmhu1vkDmJm20JGt1c2uTTukO04kg9YuUnjp1SnBsgJuZOiAgAIQQVlsiZFoLCAgwECYUCgXKysp4hQuhZI32MFuZ4vz58ybXB4CNMNPFVKSYqWgl/YeurqAilUrx6quvYvHixRgwYICBAAPAqFnH2MOXeY/JVh4ff/f7yuQl0l9Xe3p4638ur732GptU09HoC2b2ELQcCRWIHIG9BRMh7OlvA+gIJ7PY0h0bjrVgbVEL3v+5DZtL2+5GmMm6aQU+WyAmkaRF67GDsKWHu7sU4x8bYlQbw2Sp1k+g+Me1Rpz6sQbFu6rZ8a7fUgkmZgSI2X5EgFYoIhpgz+aTALiCD+PXZE7SRo2G4HLVH6j/oxnevh4mNVkA8P7uZdAt12HMGfzhhx/Gjz/+CACsozOjrdHnL3/5Czw9PTmZqSdNmsRWthfKUs2Y1vSFiRMnTnD68fkl6cKYrQCI0iyJhcmTZGx9AQEBBvmUjGUnrq+vx/Xr1y12ohUSYoTaTWkbjD18dZM6mtJe2fMBbutM13yfy+LFi0EIweLFi60eX/9cxubuyNIhjoIKRHbA3d0d8+bNY1/bXTARwgEmIEQ+AIx/CTigrWeztqhFQOD73bYCn7m1xsSMawNhy+Aa4GHQiB6Iub8vTuy7iEC/u9oYiQSITunL0YowCRR1M13rCiqmtC+6OYR+K7tuVCDSaAgObdOrtaaX/4iTIZvHcft2Yytvdm1G+Nv988c4fHoXz9mJ4Jh9hgRy9jUqKgoxMTFYu3YtGhsbWS2OPtHR0Rg8+G5CSl2tTHW1Vqjky1LNmNbMcd42JlyYa7ayRxkQJpTe2PoAoEuXLpzrVcg5mSkxwTdPPidaczUIfO1itQ1itFf2gE+TExsba5VwZE65E3MRaw5ljnVU6RBHQgUiO+Dl5YWNGzfebXCEYMKHg0xAxpyrbSbwCUXn2aM4rA2ELYNrgIdfS6/x1gwL9AvGL99dRK+BXThCEW9RWB1BRShyjeHC9TMYHBKDs8euIuGRcEGzmb4TtL7gk5X0d8E0AIzAxSR41F8XANZpOzggBNuLNxsUXOUbk/FD0t/X6upqNDY2GpiEGP7yl7+wwtDgwYMxZswYjt9OaGgoqzHS90diTGsAv/OvLrrChX6yRnPNVvYoA2LO+gICAjB48GDOvhorq6H7fwapVGpQ2d5ZGoQjR444PQRcSJMDwKq9MFXuxNz1WWsOdWTiSkdCBSJH4CjBRB9HmYDsLfDZI22AKewlbN3BlHDDZyoyJaisnPkpVs78FNfrLuHMxePY88unnHPuOLYFsYOSEGjCbGbMCVpDNIAERtMAnD161XBdkODBUU8iJWYGKyTFhiUhNiwJ1+suwdPdW6fSveGYjB+SPsZMQgDY6LDBgwdj5syZBu9LpVLeLNW6pjWmpIcpHyJGuAgNDTV7jrqapTNnzogSiIw5apuzvkmTJhlofPQdl/kewvpzWLJkCbp164bs7GynaRByc3N5HcSlUqlDQ8CNZcfWaDR46qmnoFAo2FQF5sKUO9E3j1kS4m7qszFH2OkoYfb6UIHIDhBCcOPGDQBAUFAQJA70TTHAXv42ulgj8JnKy+SM6DwbYHAN6IWHmxJu+Px9TAkq1+suYXBIjFYTQ4iBQGRu6Q1jTtBSiRQDew4TdASX+Xmgqb6Vt/DsV8c2QXm9EieqD7HC34P3PoF+wYPRxae7UedyJhGk/r7W1tYCMG0SMhZFFBkZiYyMDNaspSsIDR8+HEeOHOEkaCSEoF+/fkhKSjJLuDBmtgLuVpc/evQo+vXrZ5EvkTmO2sbWx/Tju151fW18fX05Fdn50H2wOkODwDzo+QRjWxRksMQfSEiTw6DRaDBq1CiDDNnmnEuo3Im5+2rqszFH2HFG4kpHQAUiO9DY2IgePbSmDjYNviMEEyHs5W/DwONcfVfgMxJhZkrzY2503uBJwMVjzq16rwfvNaCDOcKNvuBiSlBhtCnm9BHSuABAU7228GmgXzAeHPUEth/dzMkgHegXLOgIHj6qJ8r2qwRD7H/57Uf2NSEafHWMm1Gb0XDxOZfr72tJSQkOHDjAjjdixAj8/PPPd8YT1trwaVQiIyMRERFh0A4ApaWlaGpqwrlz53j9fwDAx8cHCoUCMpnMwMcmNDQUMpkMANdsxZCbm8uOtXPnTkFfIv15NzY2Ytu2bQBMO2oLrY85j9D1qutro/sAFIJ5sJqrQbCl07ExrQwhxCphzFLzn77AIDSnp556Cv7+/oiPj2fnZs65Fi9ejL/85S+iHMNNfTbmCjsdIcxeHyoQORJ7CybGsLMJSB+TP8jM0fzIAs2Lzls7FGi8cXdse5vTbJBt3FzhRldw6TmoCyQSraByb3gKjp3dy74XF56CQL9gSCSAt78H9LNh82lcmCiwhrpm+Abc1cLoOlRvP7aFLa3xwL1PID5iivaEd+ah7wjef3gQyvZrfYYkd0pxmIOu2W9wSAyAu+U6hELuv/vuOwBaR2XdWmUAkJKSwgorEydONFqvjBFmhgwZYpAXqLq6Gk1NTSbD8hsbG3H06FEcPXrUQENTWVmJpiZt/qewsDBMnjwZ33zzjc7aub5EP/74o0FdKb55M1pHcx21pVKpVT5KzANQvwSHLoxpypyHqq19jIxpZawx54g1/+kKDJ999hnvnmk0Gk4x1NTUVLPPJdYx3JzPxlxhp72H2etDBSJH42DBxCGwmhyYl2fJXM1Pyj8BmOGs3XjDceY0G/kz9Q7vCi8fd5N5iHRrhl399RYI0ToqF1ft44xXUrUPaXGPI9AvGMPv64OSnUqj4fxCyRWHJYbwm/JAsKN4C2LDku6Y5PgdwRn5J9AvGBNHzMSe0k/M3hNdzVjslFDcmzbQaImQP//8E7dv3+aNLPvuu+8wfPhwBAQEsNoOY6HvQsKMuf4/QhqaiIgI3ggzfQghOHr0KCZOnIhjx45h3LhxHCGOb97MeR3pqC2XyzFjxgxBgei1115j640NHDgQRUVFaGho4C0IamsfIyGtjLXmHHPMf0KaLkZgCAsLE9wz4O76P/30U7NMjdZq1swReDqasGMOVCCiWI+leZbM7X+n7pkpZ22HJbu0oT9T9YnrbILDofI4ZCX9HZAAA3sO4zUVAeab2br28EHqk8Pww6dnEaiXzDExQ1s6ZPf7hjmGgGA2t5Gpcwg5gv+yXxs1d6TyG+z95b+c46USKeLCU1BStY83Ek5XM9Z3SDez6qUZC4nXDYM3FvqekpKC3r1785qbzAlbN6ah8fLy4o0w46OoqAijR48GcFeQMRWyHxgYaFRQ+/PPP03uIR/GHrj6UXQMSUlJeOGFF3g1P/oaL3v5GOn7PfEJY5ZiysRkjqZLLpdjy5YtePLJJwWvAbVaDYlEYtLUaKlmzZSwRrkLrWVGsR5La4CZ2983WOusHeCGTWnecLvzfLzrrC0VFKpUdWqg7o4QZgv0tFqh6+uR9FEjQtfXI/fnO1qW3Uu0/UwNpRdhtvzTmfhw/yrk7f8XTqu0ZSe8fNwxIJqbJVrfzKaLrjBx62oTDm07h9sNrez73n4eGPNIGLy83VH4cSXn3G/uegHLP52JI5V3zTjGziHkCH6z/jqrOdJ9H9AKD88/9BZmTXgRK2d+igXT1uCh0U/x1mfT14wZw1g9M90weGOh79999x0++ugjrF+/nvVB2r17NzQaDRu2zkSaMediBBLAMGnjrl272HOdP38egHmFaAFwaqwBpkP2PT09Ddav60y+e/dui2uVbd26FaGhoUhKSkJoaChyc3M57+vnWWI4cOAASkpKeDU/KpWK09dYzTFrYeqPxcXFGdQhU6lUKCwsNJiPqfH46nQBWuHZnPUCWmHtwoULyM/Px7vvvsu7/jFjxhitCSakWRNaT25urtHP0haI2VNXhQpEFOuxtOCqbzDbX/9RJtXvP+k1AED2PV5QPueHwiwfKJ/z02a/hv0KsRpgQqtliQBmKsLsZr1We3T8GyXnOGPFVxlhwtvXHcW7qtnxz14qxc3667hd34rvtpzC9g2/oLmhzbhQAxg9hzHt0c366/j51wMG7xNC0NJ2mx17cEgMUqJnsMLRypmfsv5J+poxIfz9/Q0EFYZp06YhICAA/v7+CA0NNRmez8xRV5g5duwYAG3kGKAtE/Lcc88hPT0djzzyCMLCwkxmuGbeM6cQLV8uI1Mmu9bWVgNBLSUlBbW1tairq0NjY6PFBVyfeeYZow/c8PBw3rVoNBocOnRIUPOjizOKgVojHOgXRAW0zvIzZswwa70Mcrkcjz76KJ5++mnB9aempuLTTz9Ffn6+QfFVY5o1fSwVnsSQm5vLRlz269fPLgKXI6EmM4r1WBp2b+SXMuctQoSj83yCgMYbjkt2acNs46ZMX79dPYVYv/Gs+apLTxnr9Gyq+CozNSGTFmMi+7PpllGTGADBc/A5gkskEpxRHcdbvyzmjS7Tj4Lz8HKDRkM4jtlevu5QjJfDU+aOsyVX2DULCUf3338/du3axQmJB4C+ffuyoeWTJ0+GVCo1GfrOoGtu2rNnD4qKipCamgqZTMYbaZacnGw03H/AgAFsmQ++CDNdxowZg4CAAMhkMjbCzRyTXf/+/dn8QpcuXcK+ffusyoTNV31e15TF5ML529/+xunn5uaG8PBw3jH1oywB8x13bRGJZgufJcbEpD+WPuZquvjWb8ocZkn+H3unPlCpVHjiiSfYvwkhePLJJ9t1tmoqENkBd3d3ZGVlsa87PJbmWboTEVZVqzGIQSLgOksD4I/O6zsKeDPacckuLUw+yXcNMFFdv19uACBc7DRv38tobm1EfMQUTr0ypqI8X/FVv0AvDE3sjZKdSkHtT2Pzn/jq6GbcFZskOq+5QkvctP6oOHiZcw7frp5oa9UYOIJrz0Gwp5Sb94hBAgkyxy0EALZwK1MTTZfmhjaUfK3ktDFrZiLNdPc1KioKtbW1KCoqQkBAAPr27cvmJdJHKGOzwVwlEnh4eKC6upr1KdINbdc3W+3fvx8pKSkGQghjZuvfv79BYsSLFy/iiy++MDj3qFGj2P9bmkmb+f9HH30kysGa2deTJ0/i+PHjnPf4HriLFy+GRCLBiy++yMmFwyf4AEBDQwNvuyk/FltFotlSODAW3m+ppkt3/eaWHDEnJF6lUuH69esGQrQYs6SQQPryyy8b9CWEoKioCI8++qhF53AVJMQWGavaKXV1dejSpQtu3brF3lAoVsAbgdXHMM9S9UFgaxpUdRqErq83EC6Uz/lpBaKsXcYj8lgnZ0BVpzYUwmwZZdbWAvyrJ0A0mPNVI7aeaGPfyop2R95DPoDEDfj7FcDd0+DwX0uv8db2OlL5DW+xU6lEipUztQKGfumLSXOHc4q9MpqUc8ev4rvcCpy9VIo3d5lX/ZoRyBiTWHzEFPgFemHWv7SCpP45qk9cZx2yldcqsbrgGcBEaL1EItXmMzq2haOxGiqP03HoBu9r3TXrh9+fOnUKX3zxBQghgo7NAQEBeO655yCVSg2itRiNyv79+41moGbC96urq/HRRx8ZrG/MmDEYPXq0QZJGxjFbo9Hgxx9/xLFjx9jwe6H5ymQyLF68mKPJ4Zu37nkYhOaXlZWF/v3745FHHkFUVJTg56RSqRAaGmrwsH/99dcFC4eqVCqOhoNvDDc3NyiVSosFD0eNBcAiDRTfWFKpFJ999hnGjBkjWjtSWFiIpKQk3nZ9p3T9fddFV4hkTJuEEFZ4skSgFBJIVSoV+vXrx/ujIj8/3yECkT2e351AfUGxRd4cszA3z5KlJjah+Tsy2eXFYwDRQFWnwX/K2jhvfVzWhpeTNJAH3OmnJ8T9WnqNN6or0C8YQ+VxSB3xGHaXfsw5RkM0OHDy//B92ReCJT30S28Yy20kxKMJ/4tegf04JrGB92iFrd7hXQ3OMWhEDyiS5Sjbr0JLaxNMCUPAnQSMOpopQjR3hEDwHM+Yx4xXvK+oqGA1N5cuXeLkIRLSjPBlbO7fvz+ioqLw+++/w8PDA7m5uYK5hhiNkT5MdFj//v0BcJM0njx5Env37uXkDwIgWEZj1KhROHXqFCdxolCmaQYmFJ9xsBYy3wlFhzEIaT6MlZfQ1/DYMoOxGK2OrjaDGYMRdPjmtWfPHos1UEJjWSsEWGIOE9Ks6Tu1M4LQf//7X4uFNWMaq6qqKqNmZ5VK1S7NZlQgsgOEEDQ2NgLQ3hxNOVPaFUfXATMnz5Ilma1Nzd9RyS4t9CFirgGNhuDHz84CMPTruTc8BcVV+3gFF4lEiv0ntsFU9XddGKdrvqSMY4ZMweFKw3w9ft4BbCJEiUTrtlW2X4Wy/SoDcxXDQEXw3eSLZghefAkahRM23m3nW3OvsABUVFTgq6++AiEEpaWlvHmIhKrP62ZsPnPmDMrKygBohYzq6mqjIezGYPp4enpykjQy6OcPYs7JvPbw8IBEIuFk3tbNiaQ77z///BO7d+9GY2OjgabJkhpr+uvs06ePaBOLriCi7xsDaLUcfn5+qK+vN1sT4+fnZ9F8hDQjuoKO/rx0NT2W+BXZI0uztcIkU8eNzwcsODjYJqZBY5nIGXQTTTqimK8toVFmdqCxsRF+fn5sen2nwZiU7kRHFVa3QVWnAeru5M2p2GH5mBq11uRV/oX2/2aEmZuDwY+Na6eBk1+ZN39GCItK1/7fHtovCyPpmGsgIMAfN2/c4vXrOXZ2r6ADclLUI9DXnjBOzwB4a5FJpRKMnaH9ZRwfMYUTwTUp9v8BejF9EkgwoOcw9m8m6SMTmdbwR/P/b++646Oo1uiZ2fRNNoUkpEFCr9K7hYhgUJoFCCiIShVUFIKA+MSC9CIK0m2gYFBRwBIQARUChqr0lgAJCSGkkU3b7N73x2YmU+7MzoaEInN+P99LZmfu3Lm77D35vvOdD7+uOIbzhzNF16lVuz3RcRQeaTlQVLKv1a2aBuEznzp9EnPnzkWLFi3w9ttvIzs7W1WkzEVGpLoizrG5Z8+e6NWrF9zd7ZE1WiWYMMKipE8S3qu0tBT5+flITk7mo0KHDh3Chx9+KCvtd3d3h4eHBwDAYrHIrs3PzxdViHHz9vHxQWFhIVXT9M8//2D48OEYNmwYXnvtNT7dR+uxJkRhYSEaNWrEEwhAux5m3rx5fKURV73Flb4nJCTwlV0dOnTQXOG1Zs0adOrUSUaGlOYjjWYQQvhrhdVV3LwcNTHVAm4sAFVWdi6tZtNKKNT6uFXWzkDNGiEiIgKzZ89WvLY6KtpuBfQI0X8VWtygf5kMePjaDRC1RFaqKtrk0NnaDdg1E2BY9flXtfGiGm6mgS3oFWU0PNX5JbSu2xUA8Pu/34mu0dKLrF7rYKroGgCe6TpBVnnm7x3Ea6uVKtN2rTstSldxxEut2q113a6a9EWOwD1ziXsW/jx0AqWlpfxrqampqt4+586dQ5s2bXDo0CGR8zMHYdqNi+A88sgjIk2RULisVKHWvXt3/hya6SMnuAbkaTjhva9cuSK7N61CTEspPpe+kzpva8HJkydx5coVauRDKrCdP3++qNpM2Mk9NDSUWo3FbZbSHl7c+Hv37pVdx7IsEhMTFdN3akJngJ5qo0U5WJZFZmam5pRPVbcfASpnmKj0/CzLVjpl6ShipRZxBKq/mW91QCdEdwKqQ+OjyQ36CvClgMiokZuq7DqvMrdRW4rh4w50qeWCCBO0u1/fDLSsv7OVdBJoSS8xYFA3pDmvMdLa0kOKeq2DRaLrvKtF+HtrsiJ5oZkpEmLD+vJ0lT+CcOCXZHToVVd0DxrxMriysFpsmvVFauCe2c87EDl+fwMAjhw5wr/+ww8/qF6vVmHlyLk6LCxMpO2hNWflzu3SxU6CaREbIRniIEzDKbXzUKsQ01KKDwAxMTGiijUhpI1iAwMD+dfCw8PRsGFD2TXSzX/27NmYMmUKdexOnTphwoQJiiTFarUiNjYWDMNgzpw5mDRpkmh82phKlWqA4+7ytCiJdMPn1lJryqcq24/crLWAErnbt2+fqgbMEW4mNVhVRpu3Ejohut2oLo2PRs2LJnKjtfeYu8leKu+I1KnMzQYg9ttifuy6/uxN+/6owpn1r6SI2+jrDvdCTxHBUdLVzN80rvw3Bk90GqnY/R0A0k7niCrAhH49LMuINEYB4UZq1IgDLYJFyoXdT3YajX9+T0W7x+qI7iElXkaTO4iN4MfFR5wSdgvRvHYn9Gw7FKVlxfwzl7rlwsqUID8/H7/88ovsGiVfISHxOH36tIgQqTlA//bbb3jttdd4MsRFMYSl87RKL6WIDW2+AQEBDtt5KOmgtJTie3p6omZNugcXrVEslzakgYvaCPUpNpsNU6ZMUSQgNpsNixYtUvV84p7xjTfeQF5eHmbNmuW0tw83NwCYPXs2pk6dCqvVCpZl+bQZLdXGEZCYmBikpKQgMTERgwYNcorcVFUpv5RozpkzB23btnWKHClFc26GDAnHps2jS5cuiu/vrTDarA7ohOh2oiqjLlJo8M3RnIrS2ntsbb+Km6iROpW5ceDGThzuVX3Gi5VZ/0qIuLv0r4c/vhRHaA6e24k9J+Vi4AoQ/LBvJUCA7q1iAQBevq54aFAjAMCXb+6VNWalCaA5cOTlwC/JSNqSAkBc8caVu0vx+9GNiG7+FPwRhKM7LsHo5y4iYFLiVVZmg4fRlepVpAXHLu3D8ct/Y/BDr/Ni71otvJGXqqzhefrppwGA6u2TlpaGqKgoHD58GGFhYZqcqwkhOH78OJo1awaTyYS9e/di4MCB1EovLy8vNGjQAEePHoWbm9xuAQAeeOAB7NmzR0ZaaCJuIZQqxFiWlXkbSQlaUVERvvzyS1nKTKlRLKdlksJR1EYtKmO1WhEXF4dFixaJmq3SMHPmTMW1UNpcpSJihmEwd+5ctGvXjidPtMgGLc1Vt25dp8mNM1VhSqBFmTiLA1qUSi2SxDlcMwxzU+X/WhEREYFVq1aJSNjs2bP59b/byBCgE6LbB61Rl8pqZBxoXgBoT0VVZbRJZW5SWAlgtqB6jBcdrr+b8vprqaQToG7LYHiNNmLXutO8IeHekz9puvbHv1fxHeZtViDjQp69qzzkjVl/XXGM9yi6cjoHqWdzwBAgrJE/Quv7IeNsLv753S5ypFW80UBAKhq6fneeP04jYJzXEtdDTUgAL107jR/3rdIksLan6xYiLKAuooIb4/I/BUAAqGXvDMPwztR5eXnYvn276PUdO3bgvvvug8lkwvfffw/ATmY4sbGSLmjbtm3Yvn07r+PZsmULJk2axFd6cammyMhIHDt2DEePHhXpm4SoV68e2rdvLyMtaq7ZjirE1ErxhUQHqGhW27hxY8U0IdeeBAC/OWtxZObSZjTCYzAYMH78eIwfP55vtpqSkoKBAwfKzuXmIVwLNW8fmoiYEILJkyfj4sWLIiND2nXSSFBiYqLT5KYqLAbUtE/SKJWaJ9D777+PlStX8uvGEZObcffWAqWUGtffrLrvX9XQCdHtgrMd4p2FquaFxc7kMu2pqKqMNsnmZi+7T7xchkHfFVPHjo5ycVqz4xDJf2pb/z/mA9GTK3cPAeq1Doal2IodX5y0p6c06msIITh0YTfa1O0KfwTxZEhNAP37lydRWiTYoH65KDKlVqp4o4FhWNwozOF7nNEIWL3WwapeS1zvsrb1ukm8lRg82uoZeHmYsClxmey55296Gc90nYDOjR+DgbjDZDLhscceE6XNaG7N0nG4vmJCkrBr1y64uLjwvdCUdDxbtmzhN8U//vgD0dHRMrdnHx8fAOqaHmGJvclkgsVi4efvSL/EkTcpuFL85ORkfPPNNygtLVU0fPz111/h4eGhmCYUrumlS5fQrFkzTY7Mw4cPx6BBg3Du3DkcOHCAJ0dScsD9P2dzQBtvypQpfNqM29SVvH0WL16sGLVSi+oopbnMZjNWrlwpI0vr169XJRY3W37vSPskrHqjEbmcnBy88cYbos+czWbjhe63ovxdmlKrDqH5rYJOiKoBBoMB/fv353+mogp7YylCSfMC7S0oAFRttEk4twGfAxufR4SJRX6JuPSeFXS0B8MiwoSqM148sRnY8ioA5fVPvFyGAc3Kq92Cmzh9L+ln4PzhTOz5zv7F5qy+ZlPiMvywb4WoHxmtNQcngAbspORCxjEADOqGNIO/d5BqHzMlEELw2Y4ZUDNMjLwvsFyfpEzUAHtT1yc7jUZ086d4XRQAXMg4RtVUAYR/LqN7PeT7n0CbNm1w7tw5lJaW4uGHH4bNZkN+fj7fY0wKhmFw5coVvqWFkCSUldkNNrm00/Hjx7Ftm5wY7t+/Hz169MD+/fup1WpaND1eXl7o2bMnn7I7deqUrJ0HIQS1a9eWEbtdu3bh0KFD1GoxlmVx+fJlvmRfSnSEwuzk5GQAyg1uIyMjYTQaeTdtpZSQ1OSP2xCjo6N5cqRUoTZy5EjZfQ0GA4YMGSLSEHEapYCAANlmmpqaigULFsjG4dZDLaqjZE5pNBoRExMjizhpIRaVqQoTXiuMMknBRamUiJyUDEmhRQtVFb3ihGNVldD8dkAnRNUADw8PvpxXEU72xqo0pJoXr0Dgx5ecKx+vymiTEF41wOl3Rm0tFm+HBIipX/7xfOgNIOqBqqnCk+iGrhXaJB297Ij9thj5JVBPnalA+Bk4d/AqElYdB1ARPenXcYQshUQnBXYISY9at3l/7yDsPfUzvt69UPBUDDo27CEwgWQg7WOmDCL5f7lh4rFdqTDnlqgTNe8gNO4cguSjWfAvF3YLyZPSnLjnaujdCo3rtMCp5H/wzDPPYM+ePfj8888dzr5169aysvctW7bAarXC09OTJyAmkwnNmjWjEqLExES+zxitH5gWTU/v3r1FZEa4iUkbxnKETSn1JRzHZrNhz549AIB9+/apVrRxHktKkaynnnpK5MhdGUdmNXKwePFi6ua9ZMkSjBs3TrE8X7qZKrkkMwyDlStXqm68QnG6EGazWdV9uTo3dmGUKSkpiReGS6NstCoyNasBDkItlJT8VHU0p7obylY3dEJ0u3CTvjZOQap50eoSLURVRZuEcFBtxhOqwAZVU1qf/Gd5ZEisG6JtxQQOolwarRLOHczEttV2MiSKniiQnxe7/w8BPiE4fnEffjm0VvwI5eSAFmHi/HpSMk/h693Sv56JJCVGwIABBH3MGoW3wcnUA1pWUjQXf+8g5GXZIwqOiJqLuwEB4V5IP5tvJ0+iHm70jYh7LgKClCvlUai9e/Hbb79pmidngijFzz//zP/cp08fvu9Z586dkZiYKDpXqdpLCCVND80HyFHbkS1btiAjIwMHDhxw6EmUnJwMi8WC/Px82bwBsTBbSyRLqlfSkhJKSkrCn3/+iQcffFCxqik1NRULFy6UHWdZFgEBAaopI2mzUFrkimEY7N+/32FVlSMhtJb0VXVs7MIo2+DBg2XrTSOns2bNUq3048A9H62ajWvOC1QN6asKofntxH+CED355JPYtWsXHnnkEWqlyR2Jm/S1qUpobu8rjTZlnQV2z0aEicXsR9wx5bcS2CAkday9uasSqTPa0zsNarAyQsIKCZVRXibuFCSl9VLdECm/n3QdRFGu0z9XECKNpfrnD2ciYVVFI1Rh1IZGhggIvD39cCX7gowMcXBz8eAdoqUeRSdTk7B+t3zToYGA4IVH3oKPpx+fuvrfV4OhLWokNon0DbR79KgRNQA4tiuNP/7rwXXUNWgS0Q6n0w7ZrQkYBn07jOBL74tLipCfn6+ZDGkFpxMymUzo1KmTLNIiJBUexQZYsorgWv7MQgjbawhF18IUG83/iIakpCT+ZzVPIq4z/aVLl6jjcETP3d2dd+dWi2TRHK25zfHs2bP8MS7K8NZbb+GLL77gjw8bNowauVPSI02YMEG1fBuwt4JISUkRaXkqW2KekJAgE24LozBa0lc3Ay3pKaUoG42cBgQEiFJUDMOgf//++P7770VrA0Bmm0BLt90s6ZO+NyzLYtasWXdFdAj4jxCiV199FS+++KLoH+bthNls5nPVBQUFMBqN9BNvZXNSDg5doh1Ut3HRJpsV+LA5P86UHXYyxDLA7O7ueLGNGwiAy+3fQn66/K9qo7sL6qjlvoUvXdwLlLs3Ow1Kaf21QkpEisijRCwAo2v5L/s+AWp3tv+soVT/xo0C1G9jj4wNfOBVbPzrYzgiGyzDws3FA+v/WKR4TvaNDEQFN5aZLALA218/41SbjBo+IYgKbsz//kzXCSKS1b5BdySd/Y33TQLsREpqEtk8OgJHfrsMWg817jyh0Prg+d+pfdUA4FTqQTzaejASDq8HIQQ//r0aXh4+aNOqHQDgwoULihsnt6k68r6hgYsAmXxM9OiJjwlG4g7377JwFddRM64dlRRx7TWUoOR/5AjCKFVeejZQpw5OnDjBt/XgdD9ScHOpW7euaqNYd3d3vPnmm3j33XdF31mpqalYvHgxFi5cKOsRRsMXX3yBcePGyciJUuRg/PjxiIiIwMSJEzF//nzFZ6dpeVq0aIG//voLDzzwgCYypNTeIiYmhv9ZSDrUROKVQVWkp6RkiZsvFx3ktF1JSUmitYmPj6emUyvbu04Nw4cPR05ODh99mjx5MjIzM/n3+k7Gf4IQPfzww6KmiHcVblVzUg5VVd2mMs6U30owqLkrIkws3vglDftsf1GH+LtvDoJhT5nRvl4X7y/FvB4ewN8rga5vOL8mCqX1tBSZgQFmPeKOqTtKeAsAG4BOawrFRJHYZOPRyGTGuVx+7HgFMkQjGaWWIlXB86e/vY9iSyG6NH6cr+ACgDNph502QSwtKwYA1G0ViAtHstCl0WNiJ2tjIHq3f1FEumgmkS4urGorDy2pQg4EBAmH1/PrxemQ6tddjsMXDonSS0J0795dsWu9FpjNZuTn58PkY0Kb1hXRE1dXV5SW2AXLj3jeD5Z7z0oq18NPzf9IDcIoVenWNJTUb4xffrZXhh06dEjRsLJWrVoAxB3raZGswMBAvPnmm6Lrac1Ctcx5z549MoKiVqKempqK9u3bayKyXFonOzubTxdpJRe0KBVXlca9zkVutIjEnUF1io0jIiJEKUUa8eIqIaUYNWoUVq9eXWnSR4t4paamilJxhBDMnz8fCxcuvOMrzm57c9c//vgDffr0QVhYGBiGodrxf/LJJ6hTpw48PDzQtm1b/Pnnn1U6B7PZLPqHWFpaCrPZjJKSEtl5ZrNZ9I/KYrHAbDajuLiYOraWcwuLS2AObgNr0yf55qRlZWUwm82yv/wKCwthNptFIV2lc4uKimA2m/lqGgCw5l2BuZTg2FUrVQh9Oqt83IKrfDmqtEFtcXExzJkXYbES1So5AAgoy0Lp9TQUJR9GWX4WAPsmZystxrUyexSNS5lJsSixFJfyrDDnXYf55A7RayUlJTCbzSLvF0II/x4RQnjSdiHHipFbxCkygooPPwt7im/S/e7443lP0Vw4onjmehnMWamwqZDJ1HwrkJ8G88kdyMrMFYxCJ0ODu07AW7Gf46XHZmL6oHXo0vjx8pJ22mpU4OvdC/gy+Hpta6DEUgQ/Y7CooSqHAfe/grgnl8peE6ayIsPMaNssFy5F1/kSeZvNhuOX9qO0rAQNw1rx5CsquAm83L3h6WvgS+6tVitCGhrR9bm6fNPXhmGt4O3hi6u5l/H17oUVQmunhNx22IgNly9fUkwv9ejRA126dIGHhwfCwsIQHh6O3r17yxq1quHbb7/FokWLkLcvFe5lBphMJmRnZ2PNmjX4cu2X+PDDRdh3aD9/fmW/I4RtN5xBdHQ0PNw94Gl1RYjND+cSjyMvPw/Xr1/Hli1bqESiV69evGt1RESE6DuCi2TVr18fwcHBovlarVacOXOG2jldC+6//377d4TZzNsLpKamIjIyEr///jt++eUXpKSkICYmBpMmTULt2rURGxvLRywcgauuEpKLUaNG4cyZM/w5qampSEhIwJkzZ/jviAYNGsjGNxgMOHDgAN+ctnbt2nzjWUII/P390b59e4SHh/PXOPPec+ceP36cKjYWzllxf6B85yude/bsWYwcOVK2NiEhIdS1nDBhAs6fP883kx02bJjmvWTVqlWypr4AcOzYMUVLhFGjRokavko/J9x53FoKQTu3ykFuM37++Wcybdo08t133xEAZNOmTaLXN2zYQFxdXcmqVavIiRMnyPjx44nRaCQXL14Unbdz507y9NNPq96ruLiY5OXl8f9dvnyZ2xtJZmYmf96MGTMIADJixAjR9V5eXgQASU5O5o8tWrSIACDPPPMMf6ygoIAf9++//+aPr1y5kgAg/fr1E40bGRkpO3fdunUEAOnevbvo3KZNmxIAZOfOnfyxTZs2EQCkS5cuonPbtWtHAJCtW7fyx7Z9sYAAIE2DWMIyPDfg/1vWy4OQ6SZCLvxB/vrrLwKA1K9fXzTu448/TgCQz/p5kMuve8vGMTAg3zxtf80/JLziNYYhAT1fJWEjVxAAxMdkImR2bUKmm0hcZ1fZXACQ+P4eBABxcTGI5jB27FgCgEyfPp0/lpOTw19XWlpKyD8bCZluIgObulDH5v479pLR/szTTeS5FvRzDeXPmPq6N/n9OS/qOTuHeREy3UR8faSvM6LfGYYhcU8uJUtG7yC+XjUIADLl6RXk/We+Jq/2nk9a1+2qOl8A5NU+C8iS0TvIginz7e9RaEvyTNeJhGVY0Xnjes0hS0bvIE90GiU6/kzXiWTJqN/IqmEbSSsPTwKAfBQWQfZ07EPiGnQkjODcuAYdyV8d+5K/OvYlnVp0IADIl1+u5df977//JgBIZGQksVptJPVUNtm1/hRpEdXF4XNI/2teuzNhJM8AgLzwyP+o5/fv359Mnz6dxMXF8cemvz2dTH97Onn99ddJ/fr1nZ5D7H2Pk0+HzROtAQDCgiF/v/QtuTz5D/LuG29X6jvCarWS+XPnkelvTydubm6q8zAajbJjK4bNJpcn/0F2TY0nTz75pOr1w4YNI9OnTyeHtu4l6xd8RgCQTq3ak5LUG/x/bVu1IQDIt99+y1+3efNmp9dMeE/Rd8Rnn5HVq1cTlq14T/38/Mjq1asJwzCy62nHtP5nMNi/I6T369OnD/9efPTRRxXvJ8uSuXPnis7lxrl8+TIpLS3lj+Xk5PBjTJ8+nQAgY8eOFb33Li72747U1FT+2Ny5c/nPqfQ+AMgff/zBn7tkyRL+XCHCwsIIAHL48GH+2Gef2d/P1q1bk2+++YZcvnyZEEJIeHi44vo0bNiQnwPLsqRWrVoEANm2bRs/7tatWwkA0q5dO9EcunSx/1vm9ufLly/L3iuWZcnly5fJgw8+qPo+Cfeufv36EQBk5cqV/LFjx44RACQwMFA0h2eeeYYAIIsWLSKEEJKXl0cAkLy8PFJVuO0RosceewwzZszAU089RX194cKFGD58OEaMGIEmTZrgww8/RK1atbBs2TLq+WqYNWsWfH19+f+4cPI9hZr2ahdX1p7mMUj+IKvh6UAILYSHHyJMBqzs7SEKNdoIEPtdMWovKkBORoWQFoQgO2EJrAU5Fcc6jgUAjO8k76VkYIAo/8p9RI+l5SG52P7XuL+n/K9O4ajhJtZuRwCghpf8XAMDCP+w5KrqpOfwInBJ4HXgA6/w6TEAGPzQBLt2h1hhsNr/wruauADTv34GH22Nw+ELux0+HxfdKfx2ffkRgi6NHsO7z3yNV/ssQIh/JHcYe0/+jB/3r+av9TMGoUujx+zPcu5bWMqjALnWMpRcO4GFZ/eDCO618Ox+lF47joDcM/Dysj8bK10A7snLW3nUF7UQUf6rnwGDmFbPoFF4awBAo/DWGPzQ62AFES0D64K6Ic2oEbBatWrBg7jiQUuFFuoRy30wwh3nzp3j0yEARA1M1XA0/RSGf/GGaA0AwAaClNw06jVaYCuxoiy9EN2a3g9AxaOsHLRmpu7lcjxPKPceE6KNpQ6C/ixDwV/2AoCya0XI/Pgw/58lo1B2TVZWlqaxhQgICMCWLVswbNgwJCUl8W1WsrOzZW7Xubm5VC0PAM1RIto5hBCqu/bWrVv5qMTQoUP54+fOnUO7du0Uy8SrEkajEStXrpS950qRG0f4448/AACHDx9GbGwsatWqhXnz5sHV1VV2LieSDw0NxcWLF7Fz505cvHiRT8FWBjSLApvNhsWLF/N98ZTexzu54owhtE/lbQLDMNi0aROeeOIJAPZwo5eXFzZu3Ignn3ySP2/8+PE4cuQIdu+u2Dh27dqFJUuWqFaZlZSUiMKc+fn5qFWrFq5cuYKQkBD+DSwtLYXFYoGLi4uo6SH3BeXp6cl/yCwWC0pLS2EwGPh+QEJRdX5+Pp+/pZ0L2EOihBB4eHjw/2DKyspQUlIClmX5TtvOnltUVASbzQZ3d3e4uNjlYlarFcWHvwO7aSQ8XRmk5ltxLtuGcBODMG8D3F0Al0FrgaZ97ecWF4NhGHh5efHjFhcXw2q1wu1cAlw3vQgC4FJuGf64WIbnfhCHkWkIHjQD7qGN8e1LndGhXk1gXn2gKBvLk0ow7mdxpdoLrd1Q5BEKvPw3jD4VhnUlJSUoKyuDq6sr30OKEIITl67hscV/gnF1h4Eh+Mv9VQRYr+PTQ6V45ZeKsZf3csfg+9wATz94PfMlmMguwEctUZpzBasPlojOXdHbA4OauwE+ofB0IWDNV7HmUAlGbSm2C8kBrOxTriEyhcE8ch/MRcV8c80FL27FjaJcXM29hCDfCASbwuzrcOgjZKcfhCfD4vnUy7INWAmDHnodDzTpDS8jg7Zbx8JCbLhe4z4ciXgUacU3EOQbAaOHCW5F1xF4+hs8c3ArhF/5DBjM7r8MHdN34s9zu/H21QwQ2GnLAF9fxOflye75ea1a6OBlRM2v1sG9cWP5Z0ryObHZCNa8sRM3coqQdPY3xP/1ES/OHvDAK2gU3gZ5hdd5nZGlrBQ2YoUL6wID64IccxYy8y7DzxgEP68acHf1xPGzv2DFzoXgFGfPPzAA9WtEwY94oX1Yc/h5lvcXc/NEWv5VdFk+ELYq/HpjwWDfSxsRagqG8ak6gL8rXL3c4R3ux59jNpthySqCB+sm+o4ovJaPvG/OwsPF/n2SzGbis+TN+GzDl07NYUPsItwf1RY2ELx+bBG+/+kH6nkvj3sZ3gZPtMwMQz3/WgjyDsClnCu4lHsFjYLqItRkJ6xFlhIEjrkPbLAH/Pz8ZONwuh6WZfHKK69g7Nix2LRpE958801eo/Lxxx8DAF555RVZKfxrr72GRYsWOfWMgH0TX7hwIV577TXZfE6dOoXvvvtOpnliWRbr169HbGysbLydO3ciOjoahBBeAuDl5YW0tDRERkbKxN4pKSkIDw8XnVuZ/eHChQs4deoUGjVqhHr16iE1NRXnzp3jU7uO9hJA/p2fmpqK2rVrUwnlBx98AD8/P/69YFkWM2fOxMsvv6y4P1RmL0lNTaUGFAwGA06ePImwsDBcu3YNS5cu5XvZcZ+VsWPH8ufze4mbG0/mbDYbn7ITFiRJz83Pz4evry/y8vKoLvWVwR0tqs7KyoLVapV1ba5ZsyYyMjL432NiYnDo0CGYzWZERERg06ZN1KoDd3d3aldno9EoYrNubm7URo20ajFXV1cqK+cgLGFVOldINji4uLjwG05lzxV+oDkYDAYY2w0EvDwo1W3houo2g8FAfWb+H2vLpwBXF1h+egORSEdEjobNh2Hh6h8B1s0DXl5Gu1C6z2Ig/jmMae+O3o1cZfYDxn5zAR/xB572XjIMA+LiDtbNPj8bGEy6/gRezF+J3o1c0bdxxdjhJoM9bvH0EqBetH2AnnPgFv8cxnbwEJ3L2yD0m2v/fwdWCUYfk0gAbvR1h7trKAJNofa5F2fjzJ65ePVcEjhLQi3bNgMGE59cgqigRgAIOj3kC/wEuDIsfkneg+n7vuMJ2ht1WmKoWyn+LiyANJtPQBC8fyZsrq6YXk6GUD4HGhliAdR2tf978PTwgKfkM0H7nJRduojOzW3Yvc8DDzTtjWa1OwmE1oEAGNT0s3+huroBTVqaEOFbiCufrMG5+v150fa1vFR4kTK4+0Xh0aaPY1C91ui6eggA4PO/KsxPGTCY23MSBrXsDQC4mJNW5WRoTs9JPJEwf5/Mv+YuqDhzK2KRs+wkaG5FHBkCAI9coG1hHXzuREWcgWFRN8C+Zlfzr+GHn39UPPfgoYO8fQDLMHi6WQy+O76Nr/6bExOHQS17w9PVHUYvIywuShE/VuRMnZqaig4dOmDfvn0wm838X/tSUgHY/0D58MMPNT2bFDabDS1btsTq1atlQmwvLy/q9zhXBafmg8MwjOiz6qgfGe37T+v+oFRVpiRa1ro/qBlI/u9//8PFixdhNpt5YfObb76JwMBAmZiZtj9o3UsiIiIQExODhIQE0XGr1YqtW7diwIABiIqKwrx58/hedjRhOq2pMMuy6vtONeKOJkQcpKE3aVhV+qbcbhgMBjz++OP8z3ckqqq6rWlf7LS1xWdffw0vn0sAsxRiQ5/yfBOxAQyLgJiX4WIKlI1RHfYDN45uw9cJH+NrQsRNWwGUGkPg1muueGyt89BwjvAzMHTG/ci5XIycE+eRP+c9FF87idEXzvFERRMZKm+DERXcGC6lN9D4zHqEPz0CaQAyLBZMv5rBj2cDMDf5KB6tWw+Rrm5gy49xYAFEurrioqVURpZk9wXwbs0QhJR/URf88Qesubnwvv9+xWtKU1JwvudjMABoHtgSZ+sPEFXEuRdnIyx9DzyLrsG9NB9+uefAbCOwAqgJIDjrKNaWumFu8lGe4E2s3x4Ne7yDMN+auL92G+y5JDZcJCCY/Os8dK3TAaGmYNTxjwDLsLA5qLx7pdNQLN23DjYQsGAwNXoMZu1eIbqOZRj8OGQ5anrXwN6Lh1DHP4InRgBEFWfS6rP0/Ewk56SKrtlwdCsmJ8znI2aOKu/sc2AxpetoJOfYUz/JOamKhI9hGJFJo40QbDz2q+B3G6YkzOfXCrB/Xjt27Ij9+/eLxrJarQgKClJ0NY6OjsbOnTsVzQHVyJ6jqrKkpCRMmjRJ5L2zfv16xeiIwWBA586dHTZclVZG3Ww/Mhqqs6pMrf+ZzWZDYmIipkyZIvIcqmqX7dTUVFkjZQ4TJkxAXFycqMFsdHR0ldy3unFHE6LAwEAYDAZRNAgAMjMzZVGjOwXJWWaYS8owZ+XXAIBz10sAVKSRjO4uqBNo5M9TAndetcLJru1KKLIA+2xNAe+mCIhhkf0rV2bOIKDnK/Cs0wZluVfg4hcmJ0Mcqth+oCw/C9kJH/PkzEaAkVtLsKf2CBSaauOt4cPRvBYlh65lHhrO8fDwwE8/VXS092rkiYAyT6TknsV+S4lDIiIFITa4pyehVfFZ+OeeBQMCW7E9rEwjNjYAlyyl6OBlRF+TCT/k5/Ov9S0PL2eXlcnIkhQLQsPQUxCOzlr8EQCg1prViqTIKtC+BGcdhTX9IP5iTChz9UIbDw80LErDVUspLlpKEenqBkbyV/FVSynmJp8UEbwF55IQ7rMUfp1exLOt+soIkf08u8Yn1BSMUFMw5sTEYUrCfFiJDSzDUAnEg3XaYWjrfkjJTUOUXzhCTcHw8/DhrzMwLGbHxOHUtfPot+4lWYRFDULiw13TtU4H/hhgJ3IsGDzbsi/WHd2sONa4js/yRI1lWEztOppK+FiGxeAWvfDVUbo9AQcrsfFrBdg/r99++y01fVS/fn3VDV5tg66MJxSHqVOnYvDgwXwZ/Pz583k/IimExEeN4KhFbarSI6c6W1hwUS1aFaDBYAAhpNrbZ6g1/gVufYPZqsIdTYjc3NzQtm1bbN++XaQh2r59O/r163cbZ0ZHcpYZD8/f5fC8tcM7YOiavx2etzMuuvpJUXWAywGVB/FcTIFUImR0l3z8qoigAUBZzhVJpMr+1+rP2WHw8G6qTrS0zOMm5qoUtVlfOxK/3sjHFzk5VJLy2Zk/UCMwCC+Wl2yXXbumOB4AJBaYUdvVDZsFZAgAfsjPx+b8fD5dp5SyYwF4MAw+z76Otp5euE+oKfjnHxgompOyK+kouXyZ//273Fxeo4Tye/UzmUT3nyh4JkCZ4L12+Gcwh3/BE026U2ZrR5RfRXn0oJa90bVOB6TkpsHTxYMnNBwMDMuTIGHER3gdN16n5QP5a2kRFinS8zNFxIe75uM+b8tIjA0E90e2USVES/ZVOHvbiA2zd6/A1K6jMXv3CjvhA4NR7WPxYrv+OJB2zCEh4p5dCKX2EGfPnsW1a9cUN9no6GhFh2c1MuSIKEl7cE2ePJl6HsMwmDVrlmjDpREcR1GbqmxyqtREdvv27YrREmfuz5G+Dz74ACtWrAAhhCeFXbp00dQ+42aeV40ES3E3NXi97YSooKBApOhPTk7GkSNHEBAQgNq1a2PChAkYOnQo2rVrx4dDL126hDFjxtzGWdMhjfiU5WehLOcKXPzFkZHrBaWazlOLIN1J8HQrF+RJojJcVZlnnTZwMQVi2uNN0LmefeOr7giYi39YeapO8KXLsHDxC6vUeFUZ0QtxdcW7NUP4NBcLe1rqPk9P3OfpiaH+AUi4kY855YRHiIVZ1/C4yYQQV1dcmzuPH29CYBDmZ4nPX5GTjRyblUquHKXrWAAtPDww9kpFVdUTJhNmhtrXL2vxR3y0SAkZFouIDHH3E0arCMDPmyNFSgTPfj7BppP0UD0A7E7+WxS5EZIdYcSIi/woERrhdXsvHpKRGGmERQp7Skt+TW6RXKMFANkKxwFQo1tWYkPL0MZIHBPPE75Ciz1i2C68ueJYAFSfXerUzOlQWJZVdTUWXldQUIB+/fqpbpYMw4BhGNVzhOOrRSQIIaJokhLUojYJCQlV2uRUqefd7Nmz8dJLL8nmWRkX64iICCxbtgzTpk3jo2Hcc86ZM0fVZftmXbMjIiIwZ84cTJo0SdP5d0uD19tOiA4cOICHH36Y/33ChAkAKnrixMbG4vr163jvvfeQnp6O5s2b4+effxY1ILzTYCstxuWPBgHW8g2UYRAQ8wp8Wj4qO/fG0W0VJELlvDsZ4X72yAEtKgNis6fLTIEI8hFUZJSUITnLXG2kyMUUiICYV5CdsERdv6QBWiN/K4a2RbifJ4zuLgj2BIKD7RtOZmamTCT4tJ8f7jcacclSitqubrxGB7ATnBgfE+Zeu0Yp/banwkIkaaZmnnTB4UaKSFoLXq0RiA+vi8uvf8jPx2A/f1GkKMNi4VNf0jkdLirSXDm3QED0pITRGQgjN/6xjQAAOd+cBiCP/AgJAU3rw4GmRxJGWCyZhWDcDaJWHkrX+Hn6Uud9ITuVehwApnYdg5m7lot0RgwYeLp4IDknFf9knJal03o3ehhbT++UjTW928vo1Sha9IxFp7KRe/Ea6nS3E6m/f9+LzMxMUa8rISmy2WzUTZaLyqhpigA7GVq1ahUAiKJRQ4YMwbp166ibOGeqqBRV0rLhKrUPMRqNVa73UYqgcM7YUk2TlvsrRXS4dZeSnNmzZ6N9+/aytGFV6Zvatm2r+dy7pcHrbSdEXCmkGsaOHSsq1bvTUXbjegUZAmSREv48BxGVuw2OojKvfXNEdg1HIoSoquiRT8tHHeqXtER+tEb+Rq+1N9oMK7iGaV1D+ZLdC4mHUT/UH5Yr6aJxuM2fhhBXV0ykRH0A4FhRMTp4idcn0tWNmvoiAB7z9sYvCn+x0sACKFEQIx8qKuQJ0Xe5ubIo19PlaTQuVaYVBGKixxHGI0VFmJB+Rf1iAYSRG8aNhWtN8TpJ02MAXesjjTKpRZc4wlUzrp3Da9qFN6dqf9Yc3AgalvV9B23Dm2PmruWyFeuzdrTsfBux4YNddI82A8PKyBAA3Nh+EYWlRSgssn9e7+vcmiryttlsiI+PR1BQkGiTlW7UWtIpLVq0QEFBARITE/lqtYiICMyYMaNS4mYtG65SRVlBQUGVa24iIiIwdepUfPDBB7LXpH8cadEb0TrVx8XFAbCv/969e2XNW6dOnYqUlBTZM1SVvklr2qwq+sDdKtx2QvRfhDU3XX5QECnh4CiiUlW4VQJutaiMIxIhRWX0U8lZZqTlii3n1fRLzkR+OEgjen5dn4d7SAP+ucIKrmHNb3NQuE1g3z92OFIkHcRpkEZbXqxRA+llFnyVmys6T5g246BEoFgAfUy+ioSIhV1kzWl6OGLT0N0dy7KzZee38fTi5yqtbJt+NQP3l3/ZT5ekyjgwAJq6u+O4pO2BsLRf+Ew9XV2R7mLEvMtnoQXCyA0ptcE10BM149qBlFhRllsMS0Yhbmy/yJ9/5MpJvPHrPJE+h6YPkuqRCi1FSM/PVKw2k14jjEgJiZIaWIZF2/DmSM5JlREUZ2XKUhLHRcS8XD1RaClCiHfFvxGlijeuiktL6mXChAmqzVo7duzI+xtx1WqAXPvDka1r166p/uGs1lFdSNhogut58+ZRn1WJYGnR3qSmpioaH8bHxyM0NJQfQylyxd2fFtGZNGkSCCGybvdCKJEcR/dzBOHzK2nHOCxatAj9+/e/K8gQcI8SoqVLl2Lp0qWKb+LNwuAXKj9I0a9Utc6FBq2bviMCokaqzmVWbLa0qIxaWlCJKJ25esMpQuQMuWlY0wd1Ao04liZOJynNpajUyr8ujejl7vrM/nP5czE1QrG/0IxgQ8U/rQOFZjR096BGgzgSdLyoGAuzrolICQB8LSFDgJ18HCkqgr8kVcVpcITjDPP3R5HCRjI5KAgxPnZi9WpgkCx994SkOu0Jk4mPDqlVthHQ9T9jAwLQ1dsHgy9dlL02ITAIIa6u1BTc8NA6cKvXHbN2LxdpaRgADQKjcCYrhT/2VLNH+U2/LLsYRWdzYPByRVluMbLXnhTdc8PRrSIyxEFJHxRqCsaPJ3fw6StaNIlxN8iukY7DEaX3dy7FllPytBYHQgh2J/+NrnU6aLIQUII0TSaMiPHzdtA/j/srH7CbHDZo0AAAFFMv48ePx4IFCxRJjJaScCnZUoNSt3tHXkCpqamYMmWK7LrZs2dTN3Et2hvhOTQsWLCAXxtuDDWrgMWLF1PH4kTmSmusRHIceS+pgfb8KSkpSExMxKBBg2Qk624iQ8Ad5lR9q1HVTpfH0vLQ++O/7BqiRf0rXiiPlHAkYGKPhliw3d7Uz04WxBEV7rytrzyA5uF0zQENNNKSeP46Pvi5YiNQ2vTV7qWVbNBQlp+FtOUvyEhf+JhPUZR8SFU/5UyUiFt74X1pz/lhbCvUD7ZXgJzLLODTeGqk7cPYVnjtmyMovvgPrm4Qu+OKwW0qRJa+kqaUAHHKSQoWFc1/lO9CHzfDYsG6nGx8lpMjLPaTzee3uvUUU3Yc/i0qwq6CGwh0ccXD3t48aTlcVIS49CvUMQGg+4Xzsiq63+rWw0VLKV4QVKFx+LxWLVwutchScPcbjbjk5o+mD0/B1YLr1DSREAaGReKYeEWxM4cjV06i79ox1GiI0hjL96+XpaOE5/rHNoJrsBfKcu3tWFz8KnRdUkKWnp+JjssGOPQf4sbfnfy3pqiSo2dJz88UVcxpxejRo1G/fn2RyFopCsS5Qj///PP44osvNI3PXcOBawarpYqJc5amVZUpuVBz5+7cuRPdunVzOB+t4zkzb+kYAGTpQjVXakdjrlixAsOHD1eMaHGu2VrTk46ef82aNTKSVZ2l9vecU/V/AcED3oFrYJRoU+bIEKBN56IFWkhLZQXcWjU0NLKhlBYsuXLSoX7q6OVc2b21pPfUnpOmY9Kq5aJG9MQPRvnJDmFKiSMVaqJhpeNSciMdl8Pn5WSIO5cB+Motjmxw5/s99xw872sOg4cnik6dxPWln/DjnCkpwYrsbNgAfJB5VZReE5bss7BHeS5aSuHFsBjm74/PcnL4OQvvR0Oi2YxV5ffhnuvtqxlguDmfHoiR7QYqXs/BSmw4mHYMvU3yTY5LE/2TcVpRZ8MyDLUCKz0/k6LjEUeTOC0Rh5pCB+twb7jGtUPp5RvI+eY0NQ2m9DwpuWl8VOlg2jGM3fyupmtZyJ+FVv0mBc0okosOcbDZbFi4cKFi6iU1NRVffqmtLQktkuHI50YIq9WKhIQE2earRSvjTPpIy3jOzFs4xsaNGzFgwAARCUtKSsJnn33mNBmaPn06RowYoWimya2Ts95Ljp6/OgwubzV0QlSFkPnqAHCPaM63kpBCSCw8arfQNJ4SHJGWqhJwq5GN+sHesiiTUlrQHv6QE6X8A5sR0O1FAHTyAtAjR5x2SOtzCtdHq5ZLppFyEsIKMUcu0bQIEQPgreBgvJ+ZqTguQE9nEQALQkMR4OIiq2rz69cXns2aoWDPHhEZoumEpCXzbPm4VyxlfKpOCgZAntWK/YVmFFnpT70yO5sqCOeJH7Fh1YF46rVSjN38LgpKC0WpLFqaiIYfhyxHq7AmsuNrDmykkhC2vNrLkYM1ALgGevLHaFVoXNpKeB+hJirUFIzepm4oKC0UGU6O6zhE5FNkHwv4caj8WbQ4eC98fCpe/3mm4uscbDYb4uLi+F5VBoMBs2fPxtmzZ7FmzRrFjZxlWRBCRN450s3zwIEDDu8vxMiRI2VpNy1kx5n0kZbxaOdw6T6uOo8m1eDcnTnC4ii6plRxxzAMT4aq2i1b63rejUSIg06IqhB1Ao3YGReN67k38FKi3cV32dj74VGuu3AmRdOyll+lhc60sS3XL9+0gFsL2eDSdpyuSElo7R7ehBptuZG0CaZ2fVWF2FLyl5xl5sXZWsgNTRitVcsljOgVJR9B/r6NqIjBqP8lJxQOq3ntCDVE0hRSHuXLlAXgybDYX2hGpKsbdWwGQCtPL2qUxmA0ojQlBZeHjxAdP1xU5LDs3QbgbEkplmdfV3x6G0CtlhNCy9/ANmLDiLb9sfqgvYEzCwZPN6/o0VUxFhEJo6UmiUpgwKCmdw3RsfT8TBxIO4YVSd9Qr3msUVenHawBeRUa1zZE6pItbNfBkS2pWDs5JxUf71srGp8AKCordnhfDiwYRPlHINi7BtqGN9NcPTR+/Hi+V1VSUhKfUlMCF70A5OkhDkq6ngEDBuD777+nEgpCCFatWoWRI0fy42klO85ENiZMmICFCxeqWg/Q7smNbzQaeUG5FBxhqVmzpkMytHnzZqrX05w5c1SjVTdTPaf0bECFruxuJkOAToiqHHUCjagTaERS4l+K5zgiFvWDvStNhqhj8600JHBSwO2IbKTlFlGrxpTSgqZ2TyI/6XvJ2aScbKjri4QQEiRHQnWqMHr3F/Dr+jxyd39B9SzijCf5e5gCUZR8CPn7K8iQqdMAATkqvy3/RPI0Fc2ccUJgEJp7eogiOEKvIsCuzZGih7c3Bl+6KHJ+frdmiMgUkQBYm5ONof4BIlIUXt6pvPDff0Vjfnr9ukMSw2FZ9nVN590sWIbFqA6DMKrDIBxMOwYCuwmhm8ENX0lcnrlU09WC64j/92dNmhkiaP0BOI4qtQ5pgl/O/OGUg7UQg1r2Rm7xDczctRw2EMzavQJzYuJ4s8Wj6adE/kJCsiUVa6v5JBnvD4PB1w35P6fw9xVWzBWVFct8mT6Z8xHGTRmvWHhCIwOPPPKIQ/8hLnrB4exZe/Wg8NjevXup44wdOxYLFy7EqlWr8N5778lef++99zBjxgxRWkhKdgD65u0osiFNPcXFxWH8+PHUa5QIFufRpJYCs1qt+PnnnxVfB+zkLykpCbNnz8bUqVP5TvLCUnzg5qvJaJA+W0JCAq8ruptadChBJ0S3AdVZbk8dW+Hvb1P7J5y6nyOywVVj8XORRHik9/Jp11dOiBgWjIuHKmEUVrUB4iq3ouRDkudnRORGae3dQxsgfMynVC1XuJ8nVgxtWxGFkpIqEBkZQvlvC0PDEOBikKWpADvZmRcaBgZEMXoj9CraX2imRmy2FRSIiM/8rGsY7R8gi1l9lpODL3JyRCJsBsD5no+JxlMiQ9IS/eoE1VOJ2LA72d7yRtgcVQnv//4J/r16WvF1KYQkQktU6UjGKc0VahyEVWjp+ZmYtXuFrOQ/cUw8ovzCMWjD65rIliOfJPMeuY8TrfpNiBeffxG9BvXDiBEjRM2z+/fvj3HjxsmEv/Hx8Q4jSnPnzlX01eE2Uu64FMKNPCQkRPEetLQQR3bmzZuHyZMni6q7tGzetNTTokWLMH78eMVrlAiWI+8erin0smV0jRuH9957DwzDYO7cuWjXrh01snUz1WRq4J6Nti6jRo1CixYtFKv+7nTohOg2oDrL7enCX6Z8hxEf82nb17mxnXB/1iLgdjEFIqDnq7LxiKVYlTAqaYt4oiKBZ502/M8lGRQ/m/K1V/MsEppH5h/4UYF0irdxFkArT08q0VEzNQSAoDcmwSUoCKyHJ2zFRUif9IZiKoxGd1fkyD2EALkI21os9m36t6hIMTI0PzQUPU2+eDUwSLG1iBawAJaEhePf4iK4MywWX8+SaaVoz0QAGUlRExc7S4aEJEKL+JiAyATItB5hQrgGeiJgaBNkrz2p2N4jJTfN3qCT8trW07vQm2KuSPM8UnPf5mB6PAqGcgd5xo2Fi58HGHcDjiQfw5YtW0RkCAA2bdqERYsWUYmNEjjXZKGRIE3b0qJFC+pYLMtixYoVovYaaqClhaSNYZ3R01Rl6okjKUrP8frrr6N3797o378/vv32W9WxCCGYMmUKtcKOAxfRSUxMBCEEXbp0cWq+aqCti81mQ6dOne7aSJFOiKoBZrMZUVFRAICUlBSZM2lVtpWQQmlsAKr30yrg1lIV54yAmzZeWX6Ww7QXTVukFB3jiFRZfhZyd38um69f12H8OMJKOW5dhJ5FZflZuJG0Sb4wDAu/rsMq0m5gwLi6IebKVXR55gMsGdIRIckncG3uXFVTwxBXVwSMGAFTt25wK/8MFR0/DkA5zbYgS97iA1AmFlIRNgc1d2lOg8TNI8bHhHnXxCJqFkB/X19szMvj6eHz/v6oYXCReSxF+/gg2scHGRYL8mxWWVWcEirrxaMElmGxtO90tA1rJiINWsTHnMaHa7AqJVVc+b0UpNSmeA8hoaLd/73fl2DGzk+oWiVh1Efqvj2162i0CGkkI0cGH3e4BnvBXGhGw06NAQDduz6CDZvoAnar1YrFixdj3rx5MmIjWptygXVkZKRsI1YiGH/99Rd1rA0bNqBz586ay8+laSGlxrBaSU1Vp56GDx+OFi1aoFOnTjLxNRd1Gjt2rENCpPUZqrpPGwe19iR3a6RIJ0TVhKysLNXXq6rc3pmxle63YmhbVc2SlCwpRVL4Jq8qpfYuJnmHeOl4aoRRLfLkUD9EJUyAe2gD/mdapZwQZTn0NhLeLR+Fb8enYWzSFWW5V8AaayB99WhYLSW44BsONGwMlwJ7dZiaqWGIqyuyV69G9urVqPfrLwCAkgsX+POkPdAAex8wKdQk3kJxd9GhQwAqKsqUrplYbpzIQYmcLRSQMwLgi5wc/Fa3Hh43mWTGj2o+TM6AQXmjUCfJEgsGc2Li0Lvxw7LXaGmop5o9iu+PbxORn0Ete6Nfk0eo/dGkRpBa7iEkVEqO1krpM6H7tDCSJmznIdUicVYBhaVFyCrXgimRIQ4LFy7E+PHjFbU+nDtxQkICYmNjQQjh+5cNHz5ckWA88MAD1OOdO3fG4sWLNZMhaVpIqRSeZVkYjUaHguDqSD21b99edUxn2mKoETOlaFxpaSlq1KiBLl26yLyJ9u7dCwCi12heRmoNXm02Gzp27Mi/53cLdEJ0C6GVWDhTbu/M2Er3a1jTR3VsrnpOa88vJb+erM1zYSsp4gnMkI61UdPkAQ9XO5G6eN2MdfsvAVCOHKlFnhxF3rSkKrnyfSW/I6VnKziaALeQhvBp+ShcTIGwlYqjA8L3h9Z3jIG9UkyI4rPnkPbKK7I5SHVFtG2iq9GIXWaz7LhU3J27fgMAOknj5jXKPwDNPD2QYbGISJGUnKkRvQ5eYp8kRz5MWsEAeDN6DDrVauXQtFEIlmEUS+w50NJQkx4cQSU/jjZrpfSVWsNZ7rWtp3fhvd+XiMaTapWEESGajxAHGplKz8/EyWtysb4SbDYbFi9ejIULF8peY1kW/fvbTWmFvbUIIRgxYgRiYmIA0Ku1lEgCAOq9pPddunQpevfuralVBQA89dRTfJTGUeSkOjx21MaMiIjA7NmzMWXKFNhsNjBMuSWD4HPGpRLV5qIUjeN6gwqJ6po1a0TvGcMwmDhxImrWrCky5OTWad68eaI0pBSEkJtuknurcU86VQtbd5w5c6ZKnS4Be8rM29uedikoKBClzKqzrxht7LTcIl7s7OlmuOlGqmrzF7pi3zi6jV7dVu5SXZmImJJTdM3BM0U+TmX5WYqRNzVncCmEfkdCJ2wtzza7b0MMvr+h/dqUq2gWGYzcLVuQPukNZFgseOTCedmWJdUShc6bi/RJFV84tLYWGRaLzBVaKTrEANhQO1LWrf5wURFyrWX4IDNTRlC6ennhz8JCRa2TELTn4u6ZaikFwKB1uaZqf6GZ6lhdGbAMi5HtBlBL42f2eB3XzNlIybmCH0/tsKeQykvc+zV5xKHGxhEcNYalnaOUvlICzV1a6EBdGffp+MGL0bl2ayzfv55vReIM1HxwVq1aBR8fH8TGxspe79q1K/7880+R27W0WkvqoKzkJi2FEqlJTU3lCRx336lTp2LWrFmKrsta+pU5Am0MrePSmrkOGjQIiYmJuH79OmrUqCHrK6c0B0fO2QaDAYmJibIUntr5U6ZMoTaupYHm+l0VqA6n6nuSEHGojgUF1AnR3QxnW3jkH/oJOdvl1RL+D4+AV+MHKiq/KCaSVI2QShsQZ7yUStJOAgzgHtZE9X7CdibS1iDmk38ia/Mc2fgcOYsf3hodG9q1INxngCNEamRA2FJDSIiURNgZFgv+l5GOPYWFqs/NpbSaeXrwhIrTDDnzBSCdn3vduij44w9kLf5IkegJwQB4r7wlh5TI3QzY8qiImIwxeDN6DF+6zt2fCF5X6kkWMLQJ33qjLLeY1/0AgPVGCfJ/TnFIVAD1VhnC+0qbrUrJ0oajW2X+RBypSs5JReyG15xaq30vbcSPJ3dQHbtjGjyIhLN/ah5PCoPBgI8//piPQjg6NzExEQUFBYok4WbaeEiJxYQJEzBw4ED8+eefmDhxouz6nTt34vz58zetuaFV0QHQNG5SUpLMq0ipPYnWuag1YAXsEbgJEyZoHlOJEEvBsizWr18vS81VBfTWHTpuC6RmixyUiARgj6Lk/CZvdQAAOTtXI2fXGgTE2NNBQk2QsVk3mI//TtcIOUiJSQXRgGMzTOn9lfyOpClJqrGkg0pB1sMemVEzZRRqiSypdkM+JRF2ntWq6A5NG5cTX9P0PlohFWQbjEa4ln/RXSxv7KoGUj733+rWw4TAIM1eR4C6LspW3j9OCmn0Q3i9sNx9siSN5OLnAbdw+2eJ+38OpWkFyEeKapWYlmo1Ln2VW3xDRNoAudana50O+LjP22AApOZfFfkTjev4rGqaTIqp0WP4taHh2VZ98HKnIXjnnxU4ePSQpjGFsFqtyMigi/Np53KbvxJJoGl4hgwZgrVr16pWf9H0M8LGqlIYDAYYjcabdndW0u3YbDaHTW3XrFnDG1cqPZeW+wujUMJKs4ED5e1vlPRbSlA7j2HK9XyCZ4+Njb1rPIrUWwjruOfBRYV6f/yXqNz9xtFtSFv+Aq5ueBNpy1/AjaPb+NfkPj0UlBtGSjVB5mM7ZBqhsvwKgbpPy0cRPuZT1Bw8E+FjPhWRF04QLfyPI0hKhpU0TZLwfhw4HdWHsa0AVJAzcLofJyoFOUEybQMXCp6zFn8EQFmEvUAjGeLAvRuVuZY2v/RJb+B8z8dQctrem48jeo5gA7AuJxsLnSBDLMNgRg/1v2Dl9YXSmJHKnIgNnx5wXNUjBFclJgQrKbv3cvWUXiaCldjsxowKwun0/ExsOLoVnZYPxNjN7+Clze/gg13LRILpj/etFT0nq+LN9EqnoRjTcbBqL7VIXzupVyNDnKZFCTTjRCVISUJSUhLi4+MRHx+P1PI/CmJiYvD1118jPj4eKSkp+Pzzz7Fv3z6+LQYHociYpp/hWobQMGvWLBQUFCiSLK1Q0u1I7ysdNzU1FSNHjqSOKRSAc2siRWpqKiZNmoTatWujW7duiIyMxJo1awDYSeWAAQOwevVq0XvH6ZA4/ZZ0PaUwGAyYM2cO9bxnn30Wly5dwsWLFzFmzBjRa9x7qzT3OwV6hKgawLIs2rVrx/98N4PWI60k7SSyf/2o4mA5kXALigKxFMNamKdOhioudNyzQaGnmLNidEXDStkhZYPMOoFG0XooVfOFFVwDe/4s2jRrBgAoOXUKtuwckUCaEySvzcnGFzk5olQYAL4NR4irKzWipBRh0orK5MkZAMP8/WXHs1evBiCvPFMb5zNBmb3SOdw8WQBzYiahcVA9B/MTR0lYprxnlsanXZn0DV5s11+znoirEnvj13n8PQgh2J38Nx/ZKbQUqQ0BlmFgU/i3wjWq1dJ2hB8PDN7v8TqmbaeLkJfsW4fafqHoWqcDtaw/1CcIoaaa+O3wD4r34MTO2dnZvOi3qiCMGAF24vXcc8/x0SBhpIEmwp41axbvfq21UotD+/btUb9+/ZsusVeqohNGiGjjnj17VpGsPfjgg6oCcJofFC0KFRMTgw0bNiA7O1umQxJGknbs2IFVq1bxovdZs2bx6xMREQF/f39ZGm79+vV4+OGHERMTI2sGDNxc25BbBZ0QVQM8PT2RlJR0u6dR5RClnKQgNmSsnQihQsPxtkszjJSeUpGGoqXEODgSh2s2rHSQ9nJUzRdWcA1rfpsD/AasKz929dkhsnE4gXQNg4uoTP1gUSFVKyQtcR8ZECDqDu8s1AiVmjGi0O36fqNRJvLmiN6RoiJMSKdbFLT18MSBYnWiIHT5jqpRB0kA+q17SfF8JU8gANTSdRpsktYdNFiyimDJrNBrda3TQTJvcR81tQgRN2dpukz4OoFz3ks2EAR4+Sp6KBEQTE6Yj31j4sW91BgGU7uOwZiOgwEAdf1rUcefOXMmhg4dym9qgwcPxsaNG53SnziCkBQQQkR9vTiPG26TF1ZqHThwQFYNNWHCBMyfP9/hPbl02dmzZ0UtMSpTYq/W80uoIZKOy+lOadi9e7doDYRER80PSkhCaLommrv1gAEDMGDAALz11luKVXWcl5KQvHLz+vjjjxUF9zfTNuRWQCdEdxCqswLtZqEpDSZRaKhCwTDSs2FnFJ3ZW67poaehuMo5YdWcuaQMx9Ly+LJ57rijJrPS+wvvx40lxYqhbWX353HmFPBbxa+0yjAl/x0CcTd5oWHj035+yLNa+VTXquzsm2qjoXaNIxprA3gDRy6CIyRIXgyLjDIL9drePj746cYNh/NjAYS7uqKQ2JBZWkKNknARIUeeQMKy9h9P7sCs3cupURlHLtOWrCJcnS/uwk5LPQl1REoRote7DEODwDpoF94cZ7KSsfHYr7K5zI6JQ7vw5qpRJNoztA1rhjkxcZicMI96na18ftKSfwDYe/EQ6vhHwMvNgzq+tLKJ20Dj4uJuOlKkVajLlf3PmzePnwMg7qXGbc6JiYmKmiEOnCZJGIGZM2cO2rVrB6PRiIKCAqSmpioKvmlVY0Kixo1x8KC4z+OpU6dE4xYUiDWaahASHSWfJe7Z6tevr6hrUtNGOervVlBQQE0DKunHRo0adUdHhwCdEN0x0FrBJSwFv5VQMjWsDPy7jYBXo4oqMy7tVJJ+1u4kXX4fv67DRBohpZYdWsGluEqunASIXRjtYgpUNKykNaqVQvp+FOV6I6X8Z1pl2P1Go1P+OzYAR4qKQIoKRSJoG4DN+flYXzsSCTfyRSkoLbG5m4VwfI4gMVAnWgyA1p6e2OqAEHE90yoa1l5WiFjZW2dM6Tpa1vQ0PT+T39yFDs5jOg5GvyaP4OCV4/gr5SDWH90Cm4BUqUWHSIm4Sic9PxPXC3NlhEVIrGhu1AwYfLj3S37+sudnGPwwZBlahTXBhqNbVf/ZPdmkBzaf2iEzdhzUsjcCvQLwwvfyrvFCnRO3NlJrgPcnTdecOpJGRCoLzsBRCynieok56uxuNpuxatUqWVqtffv2MBqNMJvNMBqNopJzm82GyZMnY8SIEXx1mNCvh4NSPzbhuii1G7HZbJg/fz4WLFigalipBJZl+fdCLbI0YsQI3mixqtqPcKDNl2VZ9O7dG++//77ofWQYBm+99Val7nMroROiakBhYSGaNm0KADhx4gS8vLwcXkPT6tAquGgRpFvhP6Rkaujd8lEUHPlV+UIpGFZEhgDwP1/dME00fu7uL2Bs0tVhKb5SpRvttaLkQ4JIFwO/6Ofh2/Fph2JoZ94PAEgpKcH/BG0wuGjPvNBQpyI6DKCYerIBKCI2xAXXxBD/ABwpKsTZktJb1n1eCAJ1EsaRnBmZmQ7Her9mCP4nII3qMUmC2btXoF+TRwDYIzZ/pRzEkn3rFEvqdyf/Ldj8GYxpPwgvthVrh2htN4rP5/A/S40QpdEqbiypG7VU10TTN9kIQVFZMd9gVkkDxYDB1OjRmBo9WhYV23B0K974dR71uqldR/PneXUMwVVrLt6YO68i9UFseHvBe5gzZw6mTJmimjriIiQxMTGYPXs2n7KqSjRt2hQnTpwQHZNu5mrtNaKjo1VNFXfu3EklLBwZAuxkbeTIkaI0ldDEUJjKA+wEzdvb22HvNal5oVZiSQjBhg0b0LZtW5w6dUrxvBUrVvDpOinZvJn2I0AFEZYacArTe3cbdEJUDSCE4OLFi/zPzkJLY1QOznoDCbF2eAf4e7kpvi7Uy9BSTvbeXZ87cUdGlgLjiAZViF0ucBaRGMF6qK0T7TXPOm1kXepzd30GAPDt+LTirLW8HzwpzSyAAfbSdCns0Q7GqQiOo/M8GRYZFotInF0dGO0fgJU52ZWKPI0NCEBXbx8MunRR0/VvOemNZC2vEFt5IF6xWqtxUD0UWooobS0IViXF48W2/UXXqbXd4IgKNwYBAQsGn/R9B23Dm6s2Xs0y52Ds5ndUn4eLMB1IO6aoH+I0P1w0TPg944hItQxtzP9cuD8D/148RE19tGvXDikpKYpEQhghoTkpVwa0KNHJk/L3graZ09yvpR3vadAamSGEIDExEQMGDMDevXtlz2qz2TBjxgxejKw12iMkd8OHD0dOTo5DYkkIobbMcDR/DlpcrrWgRYsWot8JIXjjjTdka0MIueMF1YBOiO44ONMYFdAWWVKKbgxd87fD+awY2pb/WVpV5XQajWFEneelREN+PgvGxYO6Hm5BUYrrBID6WmCfSdT55u76nI9ECcFX1Dl4P4SktF5uKpYAqOUqJ5osgFaenpjopP+OGn69kS9qjFpd2GFW1jcIK8JoWJadjQuljj2KOFTmWZYnbVB8zUps6Lt2DJ+iUtP8+Mc2AuPGigiRtO0GzVvIBoIaRn/FlJswlUdLoXG92FiGxYh2A/HjyR2KPkGAncjN2r0CZ7KS8d3xbSKn7Np+YcpECgyyzDlIz7dH6jgzSOm6GAwGRAaEKxIJqSZFiQhFRUUhJSVF8Tlk86OQCOnYUrIjTV3FxcXJ3K/VUFUpPwCi6iqtkTKupB6oaERb1VE2GrhoVmUhbfXBQcnj6U4XVAM6IbrjoNQYVakUXIibMR5UIk1X88WpA2FVlbUgmzoPj7rtUHzhgPwFwXPQiJ9oay0XOBNLMXU9StKOK66TPX8jf80+PC0+Q2Tr66iiTni+lJRmWCy4LIkQCXuIvVijBgAodql3Bl+okKHBvr5Yn5enaZzuXkb8VijvfcbhXKk84gVUtOb4Li8X8Qr3IgB+dUIwqnSfm1krtRSVVExddr1CCE1rzZFbLNdACcfw6REJlwAP2IrLYDC5wcXPA5bMQuR8c1qxoWvXOh3w6YFvsSLpG6xQIHfSdJuN2ERibC4aNrbjs9Tr7aQHGLv5HV67xKUVn2j6CDadsFcDsGAwu8dEuH6dAUtYBFwD5ZVyakJeIRyRof79++P777/no0wjR47kIyxK+OGHH9C7tz0FShMLc/oiZ8BVTXXo0EHxHJZl0blzZwD2xqda9U6OzrPZbOjUqRNWrlyJunXr3hIyZLPZqBEbra1FuHXXGhF8/fXX7/joEHCPGjMuXboUTZs2Rfv27W/3VGTgtTpCKJSCJ2eZ+SoqpchS9q8fyY5JjQfVTBZNHq6iKBF3r+KL/6Dgn22gwbfjUwh66m35Cw47zxME9n1DZLqotB7u4c0U10nxmrAm8It+njJjBlZzHr8uDivqBM8hrUS7cmoPul84jzFpafyxFeHh+K1uPVEPsBdr1MD80FD6+E5A6auTBfCEr5/Df+As7JqdkYGBKnZ+yiCw65iqK0TV3sMDLBzokxiWKk5WA1v++ZBqfnK+OY38n1MAyFNjnKM1LXIzRaDLubH9InK+OY28H88je+1JMO4GuAZX6AgHteyNxDHxiB+8GIlj4nl908oD8aqeSa92fs6hp5KV2LBk3zrZ8Seb9LBLAAXEUEisfjixgz/3m0GL+XYiO3+nGwFyaaabRceOHfmfCSFYsWIFnzZTwi+//MLPSUlMzRkepqamqpoZCqFW5WUwGPgydY40TJ061eGYBoMBM2bMoL4mfEau6svb2/um1pVlWSxbJm/HQpuXNGKzZs0aREZGykwdaVAixCzLyt47lmWdJqi3C/ckIRo3bhxOnDhxR3oFaXVA5tI0XOWVUmRJhvLoBkdqSq6csTcqlTg4C0mTUJAtJE8FR2liagYufmHwatABAT1fVXwOxtUDkG5iDAv38CbwqN2iokO9wnq4hzVUXCe1NfTt+DT8ol8Q3Nv+/1mb5/BkUD0VKNZB7b9wHYcu2cW2ZflZOPXHOhlJiRCU3EuPV4aEOAIXjbrP0xPv1gzh/5GzAOICg/CCv78ozXWwqFCzvod2L0+GxcZ8bZEoZ5FUXKyqizKUR23m9pwEA6Pt68zAsPhxyHIZIREiPT8TW07tpGqSaKSkZWhjvrKNS0dxICVWMO4G0bFQUzA6126tqcUHhyBjgEPix1JSggBwX2gj1dJ94TUDNryKCT/NRKflAxET24u6OXJpJoPB/lwGgwEPP/yw6txooKWH1NykAeCTTz7h50QjZtxm78wGD9BJHsMwvDs21xGeG3P27NnUcbgxuHL+//3vf9RzaLqtlJQU2boOGzaM/10NHGkbM2YMVq9ezc+DYRj06tVLNC+pfogWaRs1apQikVRaqzVr1mDixIn8a1z/uLsFesrsDoSSA7IQ0jRNBcEQV4HJSBHDoiT9rKyiSwyCkrSTcDE9KDqqxYvIp/2T4vly9xfMg09HSeaq1PpCaT3U1kntNd+OT8PYpCtKrpxE1o+CBq3lEbSQIfMpJo7cPMW/fronpWJ9FIjU1Ca9EFi7OSJuZGLKwa8BVJTkV3Vgpbe3D1p7ecKLZfFvUREi3FyxvnYkioiNb7nRXdCAlUDsfeQsenh7o5DYKv0cN+u4/cOQZajpXQPJOalY/eRM/H5hH9Ye+UHxfC4i1CqsieI5wjQZDbT03ReHNuGXM38odr13DfREzbh2stL94vM5yP85hVqeL8W07QtVRfksGEyVNLPljrsbXJ3yMxKl4iRmiBykXjtq6SYanHGRloKLqMyaNYsqFgZQKd+dOXPm8CSNIw4DBgwAQCcNUnDNas1mMwoKCtCvXz/ZeSzLYvbs2VSX70GDBmHlypUyMfuMGTMUDTCXLVuGxo0bi4TvwvcmKSmJvxfDMBgxYoRMP0SL+Aj9nqSpNJruihCCF154gX/GmJgYbN++HfPnz8fChQv1Xmb3KhiGQdOmTdG0aVOHPX840ByQhZESpfMAO8HIWCd0iQZPMKRRGr4yzNEXY/m0L2cXVqTlHImoGRamdn3t53LkSYDshCX2iJSMVDEIGTIfnnXaoPjiP9ReYkrroXRcy2ulV87Kn4HYQMqKxREm0esE2Qkfo+TKGfmY/nSH64sFeTjvF4FUH3s0QNqsFbAvt9InhQUQo+I1IsTWght4PzMTE9OvIPbSRbxw+TIGX7qIy6UWhLi64nBRYZVWom0rKMCVUroJoyO8ViMQ04KDb+pL6KfTO9Fp+UDEbngNL3w/RZEMvdJpqGpEiIM0TUbDE016UOaxS5Ra4/qQAUDRqWyYD2ei6MR1FJ/PEZX0E4v93wGnLXIEpUYkLMNgzVOz0CKkEaZ2Hc1Hyzjd0LTtizSTIRpsNhvGjh0r6i8G2ElEdHQ0kpOTnR6zZ8+emr8fabBarZg8ebIs0hITE+MwlUbDmjVreDLEMAxmzZol2sD37t2rmCYCKiIv7du3x/nz59G3b1/q+Rs2bMCkSZOovcM44gYA0dHRAOy2AAAwYMAAajSsbdu21IhaREQE6tevLyJeXFqydu3aoohZgwYNqO/FokWLMG/ePGqkbfjw4fjhhx+o19lsNiQkJMgIqd7L7B6El5cXjh8/7tQ1XPNQZ52q6VEbO8FwD2to1wMJojQ2s5Y+Ywzcy/+CXrC9YuOnt7/gLhFHeJRSeFQxNAjMp/7CjQObqOLviT0a4uHGFdU7ablFuHS9EB/8rFwazWHF0LZ8yk94XVl+FvIPbKI+u4tfGDxqt4BnnTYoPP0ncn6XhNoJQcbaCQjo+SpFoC7/+z3vz3Xwbv4I/zutWSsBMNDki3hJ6okBsL52JO7z9MSn169XSojNeSDlWa1ONVTVAgJg2lXlzuYsgGf9/LE2N0f22ofX5cTXWaz4+xuHuhoAGNq6n6wCTFo9BmhLXf1w8jfV1wFx5dqN7Rcdnl8ZCL2Pnmr2KIZvepOPUE3tOhoRviEYt/kdRSLEgsGMHq/jTYW+Z1Js2bIFW7ZsAcMwvJOzI/GtGn7++edKXceBFmHixMJSV2hAvdKJVjU3ZcoUDB48mG97QWu8KowIcREaNcGxwWDghdnDhw+Hj48PYmNjRedwxE1o6sgZPw4dOlTUyqRjx46qPc6UtD5C/yPuvJEjR4q8l7i5CEmnMNKWkJBArTJTgt7LTIdTqIwDtZI4mZQVU6M0+Qd+oIwi3MQZBPR8RdH8MCDmFbvmCPaqML/o5+Ee2kCWllIycuTF0JLjN5K+F0zfrmPiSttrBXihebgv/3LzcF8cSxMTB6UquXA/T/5a4XVK0S5hys/FFAivRg8iZ+en1HOFZf68l5KCp3JZ7hXAFAAAis1aG3m4A/nSK4E0Synu8/TEizVq4HGTCUeKigAQXLGUYWF5Kw9HVVg2VE1Vm7Po7+uLzl5eVEJUFdDauFXao4xWPTaoZW9qCXpl7mlgWHi6eGDLyd8BAO0k/kRSMsZFppwBw9i9jyJMIei37iVRhGr27hX4uM/bqlEhGwjqB0ZiXs83RA1qGTB4KKoddqfQNZac1wwAfhOOiYnRXHVVFTAYDFQjSK4n2eTJk2XXTJ48mW/8KhRHN2jQQDVlNHDgQOrGL4wICaEmOJZqd7p06UI1lDQajVRNjxScC7XwnNLSUtSoUQNdunThIz+098VqtWLx4sW8dxPDMLJzaaTTarUiMTHRqSoz7rnu9NJ7nRDd5VAiHoo+QcQGn/ZP4caBHyDs36Wkt5GWn3s2ul80HOvhA4/aYnMuQLl3GCeGFh73bvEoRaBN1zHR4IyRJVcVprRuXMpP+Bymdk8iX0jY+CnakH9gc0VkSxEM6rEMIm7YUyjSrvCcCNpLsbqkIiQd4uqKnoKeaFrcnPnpOni9nYcHDhTLHZoBoJOnF57z98fYK2nU15UQn5eHjRpL/6sL0rJ6WvXYlIT5yC2+gVm7V2gmWWr3e6rZo7z3EWAnGXN7TsKglr2pZEzNO0gJNmJDDS8/FFqKZNdaiX2DU9MlsWAQ5ReOzrVbo2udDjh4xR69bRveHADQafkAh2k2LmKQkpKCVatWORUxoCEuLo7foGlgGAb/+9//0Lt3b7Rv317UdZ0jKMnJydTrZ82ahZkzZ4JlWQwdOhRr164V9S6jYcGCBYq90NavX8/ri4RQammxb98+tG/fXqbHoTWCLSgooBI0R+BSm9xaPffcc4rnsiwrWmuuus9gMPBzUSKdhBDV+bAsi6eeegqbNm2qdJPc2wGG3CpKfwciPz8fvr6+yMvLg8lkqrJxCwsL+b8akpKSNLXucBbH0vLQ++O/AHCEQEw8fFo+irL8LKQtf0G26YeP+RQAVEXbAOjXy8Ag/KXP4GIKRN+WoWgQ7CNKs5XlZ1HvIzxeknYSWZvlX0iB/SbD2PhBWcoMsDdtfe2bI6rP6GIKxNZXHuAjRFJXb6V1o67Dsucpj66QPpTgf8E1MdjfX3Y8w2Kx9ykDQWtP+2fkEYHgGbBToR1168mq1DIsFnS/cL5K9UCODBa1jvG/4JqYkXm12lyztc1D3vgVqKgee3/nUsVrKgsWDJb2nY4I31D0WzdGRiZY2HU+L34/VXQflmHxfvfxeGv7h07dnwWDH4cuR03vGui0fKCI+BgYFolj4u1tSn6dB5rsfVr0S3x3+yJLMXp/YY9AbB22Ep6uHuXEjd4gVoqdO3eifv36qF27dqUJEcMw2L9/P0JDQ0WRC+HrgH3jFqaHUlNTkZiYyHcIoOmKHIEjAc6cz3ks0Xx71qxZIyM5XJUarf9ZamqqSESdlJQk6iQPVGiVqsKnyGAw4PXXX8f8+fKoZHx8RcUqLgAAPT9JREFUPIKCgvi50J6lZs2a6NOnj+zagQMH4ttvv+Wfb/bs2Wjfvj3V6fxmUR37t06IqoEQmc1mvuFeQUEB70JalRASIkCZeGjd9Dlwndxf++YIii/+g6sb3nQ4l8C+k2Fs4jiSI01rcb8zrh7IWCutnqggWmpQmmPNwTPhUbuFiBDR1qwk7SSsRTdg8PThm73ScOPoNrunk2B+pvYKkSMJDjRoiHyrVbXrPRclAiA6NiEwCM08PUTXAcD+QjNeuHzZ4b1vJbhniHBzva1zY8Bg89DlKCorlvX3UhJMO1OBpYQBzXtiYa83sffiIcRueK1S8wa0pwG5a0a1j0VqfgZ+Or1LNhfATgIn/TJHlALr1Sgay594j3/95LXzGPatPc10+vUEeLl5YovXQbz87kSHGzBHDvbu3SvTwzgLTp80adIkniQYjUakpKRg0KBBskhFSkqKYgPV6gJHZACoNnfVSnIuXrwoI1PS5+GISHZ2Np+urCwYhsHcuXMxaNAgREZGUteUZtgofJbY2FjEx8dTx5b2S6ONVxWojv1bT5ndpaBVpTlTsg7Yxcq1AiqiV1wTWFFaSQskRQY0PY80reXZsAuKTu8pv56BsfkjMB/7HZw2SU3HpEWrRDOyFILqRM0w8Ov6PNxDGlCbxVbcx66dMjbpahdmO9hIf8zLxQeZmapd7znh82916+G3uvVwyVKKY0XFIo3QxMAgvFijBjIsFmSXWSvl3vxajUCcLinGLxQTOq7SzZlthQGwNCwcXgYWtctJW4bFctPl9FrwcFQH7L54QEZwXu40BIWWIpFYWq16zMCwmNJ1tKxc3Vl8eywBkx4cUV5C7zzB4lyjOV1Qan6GTBQtTYEREKqz9XfHt+Hhup3Qrjz99edFscj4l9O7seXk70jLvyp77owb1+Dp6oGX5zkmQ1wZ9/r16zFlyhSnnhcAhgwZgnXrKowkOX0SwzCIi4vjN1JaGkyoZblZMqQ1QsSlvkJDQ0VkglbWL2x7otTmQljaDsjF3dw9ExMT0b59eyoJ4aBVw8UJxrkSf2n0h0ZehM+SmpqqOA+at9KdLqQWQidEdynUqtIOXcrB2z9WVLkpkSVhaosGF1Mg/KJf4BugKsFd4OmiqakqIRVkqPx387HfETJ0AUhZsbqOSaIRUtIq0YwsFV29BfPgn1Uw95K0k5LoEEHu7i9gbNK1XGT+EeSooCszMjN54sIRH1rXexvsTWE7eNkjii9evizSCM3PuoZ/i4uwvaCAJ0nOgqvsYgF09vJCYmGhYoRKiXBxx7lron18RK+HuLpimL8/PsupHiE1h7GdhuDxxtGCTvIMHmvYFUv3f4WP960ViaWVqsemd3sZvRpFI9QUDD8PH34szu3HGUpDQHAw7Rh6N+mGOTGTREJlreB0Qa3CmqBVWBMUlJhFbT4GteiNr45u1jTO2M3vgGVYjGw3UPbsNhDFJrPRq4dgVPtBmkgGV8btCCzLYunSpRg7dqxo0/zqq6+o50+ePBmDBg1SrfDizA2dJUMGgwEdO3YUCZKHDBmCoKAgagqJ0wNxhCE0NBTx8fGKZf206IqatkrYaoQ2rs1mw19//YVQDc72QlLEaYg4rRRtrkK/Iq1pLU6YLkXXrl3x559/yiJOd7qQWgidEN3F0FqVphRdcfQaYDcxLEk/IyYwAvhFv8BfZ3e9FpADot5UVQyCsryrstSbo2a3ZflZcPULQciQ+VQyBci1Q5qa0pZXutn3Rcq55Y7fbkFR1MubNu6CE6f2lD+ZGDYAeVYbtdKMM0+kleYDQIIgssORkse9ffBTwQ2ntl4bgMTCQqyvHYk0i4XXMYW4uuJ+oxGXLKW4XlaGienpsmvtMTJ7Ok/YjsS7Vy8U/PQTAGCof0C1N51tEdoInSJb8Z3kzSVFIn0OJ5buWqcD6vhHyDRCDBieDAHirvSeLh7ou3YMaJSQAYMX2/bHmoMbZa/tuXQIvZt048c6mHYMYBhZJZgSGACXczJAyCHU8Y8QzSnKLxwH0o5pIkQcbMSGVQeUowo0EAArk75x6hpHmD17Nho1aqSpEShQUT4PQJFM2Gw21KlTR7PBI8uy2LBhA6KiotCpUyfRa+vWrUNiYqJMt8RFhLiy+oSEBFmaiYPS5r93717VyI202ouGCRMmYMKECXj22WcVI0GEEFHkpnPnzoiIiMC4ceNkppnCuSo18FUCTTTOMAzWrVuHhIQETRGnOxW6MWM1IyXLjGNpeYr/JWcpN9SsCqj1KVN7jUNZfhaKzuyVHQfsZMi349MAgLz93yFj7UT5SdwGoMWArfyUIR1rY9rj9qiTWrNb4fwz1k2EJSeDamRJd/XWAqJMnMrTciWpdL+pmKzT0scS4b3Mq+jh7S1qq8E1fwWADRqjKzYA3Xx8MDEwyOmIkQ3AZ9nXMTH9Ciamp6P7hfP4LjcXgH1TPFNSongtAbAw6xoyLBWmjMY2bfifQ1xd8Z6kbcgTJpPsC8fRnBnYTSlpX1RTEuxphlBTMC7mpMnEykCFH5BWcC01Ci1FqtGdEB+61uzro1t5Q8ZQUzB6N+mGtmHNUGgpEhkmKoEAmPjrLMRueA2dlg/EhqNbRW0+2oU3d7pvW2XSgDdbaSdF+/btnep/xrIs6tev75BMxMfHi1pdKIFrazFgwABqBZfVaoXZbMbKlStFRoOEEPzzzz+8SaJaem7WrFmV2vwNBgMWLFigidR99dVXiuthMBgQFRWFwMBAREVF4ezZs0hNTcU///wjeiaGYW6KqEjbtnBVehERERg+fDhSUlKwc+dOvt3J3QQ9QlTNeGzxn2Dd1DfgnXHRlfIgcgS16AoA1cjLS13rYtnuC4rRFKGQOm//d8pptfL+ZKK0lgK41Nu6/Zf4Y0oaIcbFQ3X+H8a2QstafqgTaBR5FlW0DbkJCNJy7hHNqKe08qjo//asnx++FpTIc0goKMDogAA0cvfgIzQZFgt2FtwQRYIcYWL6FQCVqw4TdqG3AXj7aoZmHRGX4uNI3NX33xe9/rSfH+43GnGkqBA5Vhv8DCwG+/mjiNjgybAoIjYUWm2qpfwEdjfsbkYjdpjFfzxsOvEbXmw7ADW9a2BywnzqJs6V3CfnpMpeJyAyfyIOan5EBASzd6/Asy374KujW8RrQmw4mHYMATl+qOMfYa/yKtcuMWDwTMs+CPLyx4eJX8jGlcJGbJj86zw0Dqon0kTN7TlJsXLsTkVBQQG1NYaSbmfcuHGIj49HsYINBIdFixYhJSUFKSkpSExMRGxsrEzUu379ej5aAiiXxRuNRmRnZ4uuJ4Rg1KhRaNGiBZVICaHULLxLly6q+p7u3bsjISFB9TkdgWVZDBkyhDdpFB6X9obj2mo4C6FdwPDhw5GTk4M33ngDNpsNkydPRkBAAIYPH+50xOlOwj1JiJYuXYqlS5c6VWbpDBiGQWRkJCxWm+hPYKX0lJo79c1AKbpSePpPGLwDFSMvLqZANAqxq/aVDRab8M+krDGqaITq0/JRuAVFlUeR5F8MPu2fpI5A0wiZOvZHwb/bVedfP9gbdQKNjrVDDIOgJ/+HG4e2ojjlkGz+orkyLAL7ToJ7WEU1mntYw3JBeEW38CdMJjT39IQfyyLXZsO68qgLDSuzs+1TR+XL3p0535EQmzgxHoOKFJ8QGRYLX1G3x2zG24KebQyAAb6+6OhlRGtPT1xEqcP7EEBGhjgcSPsXTYPrK0ZBnmr2KE94pIJkmj/RgbRj2HPxENb/s0U1SmIlNjwQ2Rbr/9kqEj0zYDB287uKROqro5vL+5FpK/G3gaDP2tH8/DlNFOcb9NKP02XXVKZaTQtiYmLw4osvVqqSrG/fviI9C9caIyAgACNGjBCdGxkZiY8/1vZHi9VqxcaNG9GgQQNcvnwZU6dOxZw5c0QpG6lXEK0Pl81mU+zFZrPZ0LFjR8ydO1cxPaemlYmIiMCqVatE9xPit99+u2lTy6VLl2LcuHGavIsqI3SW2gVw/kTcnAkhGDlypGqvuLsB9yQhGjduHMaNG8eX7VU1rhYSbN1zlPfKAZwzD6wqKLXaqGhFId/wpdVZjkTLZTlXFO7OIGToAriHNeTL20uzLoK+3TK4kbQJNw78QF0XYaVc/qGfkL9PQRMhmb8m7RAhKLuRRSFDgFfTrig8+YfouY2N5fYCgb1eh0/rXihJO4G6voGYeeIHZFgsyNciSlX4uarBANhQOxJBLi5IuJGPOdduvoXHAF9fmT+S0EqARvAI7GaN8Xl5fOXczVSktQu/T/X178orv7heYUKB8uyYOFFJ/qRf51LHYMr/V0gwDAyLCN9QjGw3EKuS4mErrxAjRKnbWAUIiKhJq2ZyVB4x6lqnA0JNwWircC1XrfZB99cwzUlvIynemzwdPiF+qF+/PoxGI8wKxNQRCCGilhOEEEydOhWJiYkyknHxonOtTqQNTwcMGICxY8eqioSHDx+OFi1ayCIqavOfMmUKZs+ejalTp4qIjRatDCdepjVotVqtiIuLw6JFi3giN2vWLERFRWHgwIEO5wYA2dnZmsXlzgqdaU1taV5PhBAkJiZiwIABSEpKwp9//okHH3xQMXJ2J+KeJETVCekmDDgWBlcXZGRGBgIwrGp1FqBeul+SQa848It+nu+lVtHqQwnidXELigKxFIsiaS6mQFgLshXF3bT5a9IOMSxsBdnUIQtP7AIA+LR/CqZ2fUVjcylFDu5hDeEe1hC+uanACWVRdHXBUeRngMkX93na03gxPibMu3aNOj9nSvmf9vUT/S5tWutYRm/XIQ329cNXebka71qBAc17olVYE+y9KCezHGyCtJhUNF1oKeL1PkpkiJvnkFZ98PXRLbCRit5hnEiaZRiMaT8ILUIaK1ZuyccsrwQCgzejx+BMVrKow7za83x68FtMe3gsNQ3In0dsqB8Yhbk9J1VU4YFxOs3W7YGHcerqOb5r+800Y5XCarVi69atVe4ftHHjRkyaNIlKUIRpH0cpMCmsVivat2/Pd6LnCKLW6qyIiAgMGDAAcXFxskqs8ePHY/z48UhMTERWVhZq1KiBqKgoxMXFKTplC1FaWqoYZeJacggr5WiVcDSDSYDeikRtPs8//7yI/A4bNgyff/656vzvFOiEqIoh3YTL8rNQeOpP1fQOl9IB6A1cbwYcmblx9Ffk75X7lfh3Hw23wFoyouPpJhYp0kr3y/KzkLv7c9mYnk2iYWzStbzqTI0MUbZfYqswaZRE0pQEzN6tH4dvp4Gq5JKqHSonUW5BUchLlK8Nf+2BH2QtPVrV9se8/i3gahCLRN2TjcAu5X5lIwMCsCo7W1P/MQB42uSL7yQNX/npQ1z+nme1Yr5C81aGEaeyhK1DOOHyCwE1kFRYqDiGFEUSkl0ZEmgDnCZDHcLvQ7+mPdCjfhcAoFaQceDaU3AINQWLdD0sw6Jf40dk1wnBgOHJEAMGYzs+i6X7vxK0/iBYlRSPH4Ysc+o5gAo90pSuozWT0ZVJ8ejV6GFcL8xVfG4uHci15eBIoJZKNyEe7PuwfZ6C1EhVgWEYzJgxQ/P5WqvJAGDPnj18ZILb7A8cOMB3fufSPs6kqrjIys1oZGitOmbPno2zZ8/i4MGDeOONN2TzYRgGTz75JDZt2qQ4brt27TBx4kSqbcDEiRMxfvx4WWm90rrMmTMHcXFx/PVKmiuaNsnT01NEhgDgiy++wLhx4+6KSJFOiKoBNksJrn49BdbCPFjL/wKVQZDe4dJqHG5WZE0zbXQLjKSea/AyUXuRNazpg7XDO2Domr8V76MkuC46uQtpJ3epztG/2wi4hzdFxrqJypVckkiakoDZu3l31eoyJe1QyJD5cA9rCMDeo00x+iQgrxxGr7Ub3a0Y2hbhfp78PUPcgpACwM9gQKiLC9LK7HPgSMvTfn6I9fPHkaJCxKWnK26AnEv1seIi6usLQ8PQytMTlyylvI6n+4XzCqMB35T3FOM8h/qaTPy9Cezi6m0FBRhGaTGiND/uvp4dOqDo77+pJLCyUCMHf6f9i7/T/sVb2xfx/cHm9pT7/jBgMDV6DJJzUgFA1ERV2Mds08ntKvNgys8rJwQgWLJvrWxuVmJDap7cokALrMSGmbuWa47d2IiN75NG0yNJ04GhpmD+56ebPaopEsVBiSw4Q05o1znrIaTUV0sJ7u7uSE1NVXSxttlsmDp1Kt5880188MEH1DHGjBmDVatW8cTl9ddfp55Hi66oRVy49FliYiJ27NhBJUFCEEJUyRBg12iNGjVKRvAYhuGJCFcpB9DdsAH7ukyaNAmEEEyaNAkAncQNGTJERnzq1KmDM2fo3nZCgnonQydE1QFCUKqQSgLARyYAe+uJqhZZ1wk0YsXQtvymDQAuvjVpE+Eru4T9wrgoFS3aJRSFK2mUNMHgirK8q/Dr+jxyd39RnrajjCUgI+5hDWXExdj8EZ7UCJGaU4jrBXbBrqJ2KO8qf62pdS/VdBzj4kF9r4RrDACf3u+DUNhJAUeGVoSHo4G7B6+3CXF1hb/FhUoc3g6uiRJiQ26ZVbE7PQsg3NUVFy2l8GJYXLSUIrvM6pCICF2xf8jPp77+RU6OIhnhyI7UIgBubvxz9TWZqGMzABq6ueF0qWMRNRTuLz+H8D5DQqFxTmEewADHr57DrN3LYSOkUk1UO0W0xHNtnpSlwZTm9pdK6k4NzltAVpwvdbeWtisRIj0/E98eu7lqJg79+vVzuEnTsGTJEgQGBoIQolmcLewFVrt2bU3XjR07Fi+//LIsiiGE1WpF9+7dAUBGigwGA6ZNm4Zp06Zh8eLFWLBgAebPn4+FCxeKWnTQepMB6i09ANxUuxGGYTBkyBCsXbuWP8YZZAo71nPpzdjYWFnfNEf3njJlCgYPHsyTOaGBo9FoRMeOHWXXnD+v/AfZ/fffr/janQSdEN1i+HcbAa9GD6Ao+VBFU9JqEFlzUQtAqdRc3B6jVoAX3/OLBiVRuJZyehpytlekF/yiX4B7aAMUJR+RC6YFkbQbR7eJPJFMnQbCp/XjVKIijGwpEbeszXNgKy2CT8tHVcgdA2OzhysiWQIHa1rF4FsJF7BGMkJbL6Oskz0tmsIAmpqidvHywuBLF2XXVqaVhxQ2AD29vUXl+MLXQLlH0V/2/nAZFgs2U8gQd41WMuQMhD5DyTmpaBvWDD+e3IEPdonTV5xJ4+onZ2oWMf+d+g9Gdxis2jFeiK8lJfhKGNC8J749liAgNdpBe4+F7tZqOJB2rMoqzypDhgA7UeHSVY6iTNImo4BzgmtHZIPzOoqOjoavry+fNhLqbFJTU7Fw4UKeVAlbdACQiY1Hjx4Nm81GPV8YPbqZdiOEEBEZkr5mMBiwZMkSUdWZzWbDqFGj4FPuKu/o3pwxpjC6xaUKd+7cqUgyL1y4gGHDhsk0RHdDdAjQCdGtBcPCq9EDANQ9gKoSyumiBaLIyrUbJSK/HgDK5eqC+XIapZIrJ5H141xUZkvO3fU5QoYuQP5+ufOvscWjis+Rv2+j/RoNpNKn3RO4kfSDbH7CdZeV97d/Al6NHhCn9aQO1pL7XvEOwvDuk2HLugSclZdEcwhxdZXpeADH6SYGwJ7CQtkqV5WygwHQ1+RLJUTCe02/moGG7u4oJDa+8eytFpID9vTQ0fRTGLThdYekxUpsVPNGJdhA8OL3U9G/eQy+P74NVgfjax3XUZRGTfw8psNgLP97gyxFJtRJKWGPSgSrT6Nu2HL6d4djaEGfPn2wZYsyOeSqlNRgMBhE3kGAnUhUpl+aEgghSEhIwPDhwzFp0iQMHjxYprOhCYq5snVayo9WVi8tc6eNWZWwWq0oKiqipsNiY2NFUSQlqFWiNWjQQPH6nj17onfv3hg3bhx++ukn1KxZE3369Lm5B7qF0AlRtaP8bzpBFVTxxX80i6ylcFZ0rZQuImViw7MPfj7p5BgV87X/9yDK8jId9j2jg6DwfBI19WY++ivM/yTA1O5JyuukggkokEpxE1dKhUy5L5NXowdF5A4EcA9voqCTUr/v6fOHRS1MfszLxWD/AABiYTNnXGhvk2HlDRaVwAJ4VCF6o3Q+7WuXBdDG0xMHiuT6JAJg3JU0NHd3xzEVp2obgEGXLopE3fcbjbekqSsHBnC6KWtlUlPfHd+G97uPx4Xsy1hz8NtKzFTbHBgw+KTfOyBEuc/YiiQ5GRLqhdLzM5Gck4o6/vbN90DaMQBALd9QrP+HTlJYhkW3ep2qjBBt2bLF4Yar9hoXQdJS7XQzIISIojc0sTRNUCwkCzSxMW2ORmPFdzZtTO7a2bNnIyoqCr///jtWrlzJV/ZxVWJaYDAY8MADDyjOhUunqRljVsZ1u3HjxjAajbw79vvvvw+bzYaXX36Zmja8E6EToioG1ymeQ+iI5bCZr4uquBx1aJeKrKVwRnTtTDf4ynSUF17DtfGoDCnK37te+UVC7F3lHUEifpZHlehfwjm/r0HOzk8REPMKAIhSg35dn3eskxLcl7+nADMyM/Gwtw/2mM18REgostbaId4GaCZD3Pk0zA8NRStPL3RTEGETQJUMCc/j7jP9agZ+q1sP79YMERkxVjeyzDk31aFeC2zEhmnbFzndMsNZEBDU8PJDlF84NU3HgJGZQK5+cia6N+iC9PxMrDmwESuT4p0ifQwYzImJQ5uwplX2HMDNVaNxESR/f3/RJurt7V0VUxPBarXy3jlKGDlyJFauXMmno4Rl6ytXrhT1WlN67k6dOvGkICEhQUZUYmJi8P7776OgoADe3t48GeLGZBgGy5YtkzXHpeHpp59GaGgohg4dKhM+cyCEYMmSJXjppZeor6uluM6ePUudw6lTp9CtWzdeu6SWNrxTofcyuxWQfHa49Ay4vkYKHkBl+VkovvgPyvKzRMeVRNfJgr5pXJRJ673U+popjcHpoK5ueBNpy55H9u9rwHoo65BuCoTAI6pNxRx41YwAEqKn3MSVFimyp8KkqcHc3V/A1HGAoBeb+n1p9yQAjhQVijx6OBLB9QLjUmjV/Q+SBdDK0wvXysrQ3kNrTzfH4Np4PO3nh7eCaQJ+MRgAA3198VJAjUrfkwBYdSC+SmkKV7VFvx/RTIpmPjoB06JfAuvE7LjUF2ciyfU9YxkGz7bsSzVgfPH7qZjw00x0Wj4AK5K+cToC9nzrJzGoZW+nrrkV4DQvSUlJ/LECB38MMAyDrl27On2vgQMHYtKkSUhNTRUdX7NmDWrXro0VK1bwm/usWbNEJI3W6kPpeUaPHo2kpCSMHDlS9vq2bdvQqVMndOvWjWoWabPZ0LhxY6xatcqhF1R8fDxq166NL7/8UvW8I0eOUI9z2iolOOpJRxOyc2nDOx0MqUpjibsMnFN1Xl4eTCZTlYx5LC0Pjy/4DWnLXwQpKwWxlKemKBqXsvwsqtkhoO5svfWVB2QCaJohpBDcvRgXD5npYVl+VoXAmwPDInzMp6J5CecLQH5NlYImH7W7X3Nd7YuSD8kctKXrS3uuoCffQlFyEgoO/+L0rPyiX4Al65KoVYdno/sR/MRUAPS+bgyA+aFh1JTY57VqoYOXPdqXYbHgcFERzpUUY1k23SzyZtHM3R0N3N2plWBKmBwUhGAXV9WUHgNgR916fLTrkQvnHW7NLID1tSP51Ftl0afRw9hyeudNjCDGmA6DsCopXlEzNKRlX7svEYiikD1+8GJ0rt0aXx7ahGnbF2m677yeb4jISXp+Jt/lHgA6LR9Y5dEwlmEwteuY8rJ/+5MMb9MfTzTrgZ9O78Tyv5X9uW4FGIbBqlWr+Oqo2rVrV6kXkhDSSixaV3uWZXHx4kVecO3sfBYuXChzqtYCg8GAr7/+Gl262L23EhMTcfDgQcyZM8fpsThwpEb6jPPmzRP5EEmRmpqKxYsXUz2PlMAwDC5dulSlEaLq2L/1CFE1gHXzQOjzH4GUCdIO5VoTYbTHxRQIj9otqJEhmohZGikSglYiL4wuuZgCYcnJQMa6iaKIDpfyUtIICSGcr3L0pWrgUY8WsrVrn7g5+LR8FOFjPkXNwTMRPuZTmaCaFtkyNnsY1za9r0CGGEEkiI7cXZ/DfEystSg6vQd5+79TNKqcGBiE1p6esliBsBfYd7m56H7hPCamX8GK7OxqS84cLylxigwxAIJdXOHppEPx8/7+Dr9cbAASbmifCw0GhsWoDoOcTmepnd+r0cNIHBOPZX3fkZ1nYFi82uU57HtpI5b1exe0aCNnBrnh6Fb877cPNc+ncVA97L14iHfPFna556JGbBU6RQN2f6UPdi0TRZY+P/w9AODhup3w0QfayFx1gdP5pKam8j3BqtItWwguisN5CNH0N1z1FaCcOlICp+3ROn+OsHBaoNjYWERGRiIhIQH5+fmYO1fZXV0LbDYbJkyYIOpaP3fuXBkZSk1NRXx8POLj4zF//nxERkY6RYbuJugaomqCIyHyh7GtUD9YnBPnep85utYRaNElzzptZFVaXP8wqk5Gmn6qSg8ih2Dg12UQMs5LTCEVeq2prYmw7Qjj4qFuBAkCY7NHYD6+U9kXSSGWkbv7c7iYgqljN/ekp6YIgMNFRYgoK5Ol06pXraIdBHAo9ubOu2QpFemkHIEF8FlOTqWjQyzDYkrX0Si0FOHN6DGYvXuFw0qwivkq37WorBihpmD0NnVDQWmhYv+zAIXWGaPa231y7AaQ4teVIkoE9CauQgxq2RuBXgF44fuqq7SiWRBYiY2fC25vgAiAuEorJibG6QjRtGnTMHPmTE3XWa1WLF68WLGHGMMwfDpJSRythCFDhqB9+/ZYtWqVSHekhLFjx+Khhx5CbGysTI8jLO3XAqmuBxC3DJFW13FYs2aNprk6AiHE6YaytwM6IaomOBIz1w/2VvT9cUYILYVSdCmwzyQ6ESjXyYgNEsU6I1UPIod9yrSAEZSx2+/tHtYQAT1fVWwqSyOUHHIKS8U+ROWkiVrdJ4H5+E6EDJkPUlasgUAJwJ1DIVHHiopBQF8lJbJxt+WxWQCeDOsUGRrm74/PcnI0nWsnieLN28Y7PNvNCaPrdMDvF/Zpmq+SFxEDiErYhf3PpIaHXq6esusBwNXgiuScVGp665O+7yA1/6rMJ0kIzjOJa+LKYcPRrZicIP7LnOur9t3xbU6n0+zNaG+tUYLBYHB6MxdWdZ09q2J4q4Du3btjzJgxSExMxPXr1x0KkxcuXIi6detSXxs1ahS/qUdERGDkyJFYsWKFpnmsW7cOM2bMEDlVA1A0qfzkk0/w4IMPUvU4NNBIDweWZTFr1iy+Ma1UHK7U923UqFFVkqJ0tqHs7YJOiACYzWb4+PjwH6jS0lJYLBa4uLjA3d1ddB4AeHp68uFMi8WC0tJSGAwGeJSLVG2WElzbPBcG3xBYc8vt/BkW/j1eAuvhDVImNqgrLCwEIYT/oLuYAuHfYxxyti2FtGTfZilGYaEZVqs3H+osKytDYaEZNkuJYnTJPgeFiA6xwS0oCqHDl8F6IxOuAbXgYgoEsVlhyckQlZBz4mP3iGbwbt7N3ift4Gbk/70JldrGy5/Ns04bWK5fgsFUE65+9k3Ap+Wj8IhqhbLrl2DwDYVbjYqNqravK+r4ucDV1RVu5U7JhBAUFhaijp8Lfp/YFYWl9vU8mZaNiRsOwWAK1lQxZivOh0ftlmBcXLUbTzIs3MOb2ImlREO0IOsa1tWq7fzaVAN6+/iAAbDlxo0qG5MBMC04GDnWMk1kaIS/P5709UOBzaZKiBgAbwUH4/7ItkgO7YiXNr8jO4cjNTZi00yGhNfJjwOlVovomK+HD1qGNIanoDlwqdWC7KJc6hhL9q1F9/pdZJViLBi0DW+O3k26ISUnDV8d3aw4P85wkiNEydcvU1qTABtiP0TLsCZoFdpEs1aJgZ2YEUBzM9qqQP/+/fHBBx/gt99+w6uvvqq6sXObMMuyoo27dm3n/h2xLIvatWvzjVV///13hxu8zWbD119/TX0tMjJStD9069ZNMyESRrr8/f3x+OOPw9PTE1euXKFGmoQl99LIjnTtWJbFjz/+iL59xT0Xhfdu0aIF35i2fv36qFGjBsxmMzw8PER7SUlJCViWrTKbA4PBgGXLlsHf3x+FhYXw8vLiXysuLobVaoWbmxtcy53vbTYbisotQYR2BbRzqxq6hghAWFgYsrIq9Dnz5s2Dt7c3Xn75ZdF5wcHB8Pb2xqVLl/hjS5cuhbe3t9hjgRCUpp2ANTcdgU9P5zUuDMPg8qL+uLZZnPtt2rQpvL29cfLfo/wx1s0dAIFbzfoifUzGFxPQsWE4/vzzT/7crVu3omPDcGR+81ZFdEkEBu7hTfiychkYFrl7vkb66tGwFZv5KEzJldNIXz2acgFB+urRMJ/YZSdvD7+IoAHv2OftaUJg38nwbtUTjhI/jIsb/2wupkCYT+xG+urRyD9QsVEwLIvMje8g/dOxomsXzXgL3t7emDlzJn8sLy8P3t7e8Pb2Ri0/dzQP90XzcF/8/OkiXF7UHwVHfhZrihSQufEdZP++GgB4nZKjazjC6h7SQPYaAfDLTWplbgav1QjE5KAgTA4KwtYbN5BsseCTMMdGfo7AAlgYGoqlYeF4PzMT069e1fSFsjonB0MuX0KhCsmcHBSEr2rVxvuZmXjyYAICvPxuer5aMXPXcgCAT49IBL/SGo0WxaDRohiwz9ZC8Cut4dMjEsv3r8ewb+nmggTA5bx0UaUYALQMbcwTnPFdnnM4D2Gk6umvX6ZUmQEDNryK4d9Nhb+n9urON6NfQu8m3dAuvLnma6oC33//PRo1aoQPPvgAKSkp2LlzJ+bNm8e/zjAM4uLicOnSJfzxxx8AIPtuff/99526p81mE1Vb1azpuAKSZVn8Ve6+LkVJSQlmzpwJb29vTJgwAV26dKFqgmjHhNVb4eHh8Pb2xvnz5xEREUEVR3PmlL6+vqJjK1aswAsvvCA6tnLlShiNRlWy98477yAiIgLR0dGIiIhA586d4e3tjd9/r9BEJiQkwNvbGw899JDDajIOQUFBePvtt6mvLVq0CCkpKWjVqhW8vb3RtKnY3mHQoEHw9vbG559/zh87efIkvL29ERUVJTp3+PDh8Pb2xtKlSx3OqbK4JwnR0qVL0bRp02qxE5c1VvXyowqnpecBgIekwzwAsB7eTrlXy4TEALzb9OZFyDV6S6oHyiM0jMHOuJ/vEoWtrzyAD2Nbab4nALgY7U1BGYMLjE0eRI2YlxH+0mdw8VfZeFkD9dmebhOBD2NbYcXQtvjihQ728VkGW195AFtfeQA746Jh8qzcXwgcwQmOFX6xln95MSw86nWQP5spkCeZftEvysiRV6P7ecLq4i9PazIAAgzVG4ytYZB/drh79/X1xbCAGohyq4h2Rvv44P2bKPNnYPdR6mnyRQ0X+7MZyo+pjfmkoBok0tWNSplZADE+JgS5VqwZ19H+VsDkbk/FuoZ4wS28Ii3rFuoNt3BvuIZU/IXbKpTeLiPCFIJBLXsjcUw8hrV+EgAQKfi3EGoKhlGQcpOW+zcLri9Kl7lQPj/C89uFN6euj3TcCFMIxnQczM8hwhRCnX9l4EgsLIw2cBtzXFwcevXqBQB47733MG/ePERERCAkJER1zF69eilu1izLIi4uDs89Jyed4eHi7yODwYBhw4bx92EYRrUKjJur8DlWrVolmsvo0aOpxGTChAmKGpq4uDg88cQTonlxkTEuorJq1SqkpKRg+PDheOihhwAAHTt25I81aCD/Y0wIYbZDC7imro5Ikb+/P0aOHCk7j2EY9O/f/47XDQmhl937+uLKlSsICQmpspTZ8YuZaB5l/0sk8dRleHv78OdaLKUwebqjcUSF/wqXMvPw8MClnGKYS8pQVlaG0tISsAwLD8+KL07WWorIGl6yMOeh5Ez0X74PrKt9vmX5WbBkXYTBNwSu/iFgWPu5xGYFKbPAWpANa0EWX/Jvs5QAhGDz+Gi0iqyBY2l56LV4N0iZBQXHdiDntxW8lse/+xh4N+8GxuCCxc+0g6ebASmZN3A5Kxdf7rsEVpBaIGWlsORdQ8GRX3Dj4Oby1BNjH+O+R8C6eWDa403QuV4NuMCKWn7uojSYUvi0pKQEZWVl1JQZAHh5efHv5+krOegx/3cwBgNP/AghIBZ7FaC16Aaseelw8QuDwegLYrWCYQ1Y/Gx71A/2xrnMAry61p6OYVzdYL2RjbLcKzD4BMNg9APDGsC4VBC0/IM/Iee3Co3I/4KD0d/PHxZCsDkvT7VfGQt7g1crCN7PzOSP29NHNQHJcW78J3398HVODuZnXRO99m5wTQwo72Dv/tBDKC4pQUliIjzKP78ZFgv+LjRjSkaG6DoGwCs1AvHRdXll41A/PzznH4Dw8nW3EoISYi9B92RZZFgsOFJUiInp6aKYBgtgW5268CsnUF4si+9yc2VGju+XG1baCIHxpTHIWbcFQd3fwYajWzHpV3F0ldMCsWDQr+kj+PHEDlHbCwbAjO6vgWUNeGv7IliJDSwYvN99PABgmqQK7IPuryG2ZW+4u7gh+JXWcAv35v/dc5+p0rQCpH74N8qsZTCwBnx28LuKJrLlYw9p8wTYcuJssZbBYrWAZVl4uFR8nxSWFiHjxjWkF1xDXf9aAIBz2ZcQ7hOMMN+aonOLLMXY+M/P+N9vi2EDgYFh8UGPCXiyWQ8wDAtPV3deY8Sl6Ua1G4gR7e3i4PPZlxDmE4xQU014ugrHLUF6/lVcyLmMF76byq8ZgX1Da968Of7991/ZZ0CKGTNmICQkhO+IruTEfPLkSdEmDziXNhH+u8/MzMS5c+fg6emJ7OxsGI1G2Gw2Xhys9h2RlpaGtLQ0vhv9hQsXcPr0aTRq1Ahubm7UkvsBAwYgPj6euj+kpqbi33//Rb169eDh4YE6derIHKy5cn1AeS9JTk5GSkoKmjZtyp8r3B+473zavgPYdUdcU1sOs2bNwiuvvAKWZeEp2Eu49h5KKTPu3NTUVOzevRs2mw1XrlzBtGnT+Pf4448/xvPPPw8vLy+sWbNG9P4vW7YMo0aNAmBP2RUXF4NhmCpLmVVH2b1OiKp4QQH7h51zVS0oKBC9qdUFRz5EWsG5YB9Ly0PvjyvCxkqeSVJPpOQsM85cvSHrAu/MGNWB5Cwzb02QlltEnZ8U3FpUZm1Lr6fx6canB72L9w9XOHFnWCy4ZCmFJ8OiiNj40vtLllLULu8Lxp13pKgQAINWnp4Ojzt6Leq7b2EwGnG+52Oy+X6Xm0t10c6wWLCr4AZSSi2IcnNDtLe3aEw1KI0phdqcQ+fNxdUZS2B8+C0AwIXrl9B19RAAwO4R6+Dp6iESPHPePZ4uHrLO70JfH+Gxg2nHAIZB27BmoqgMR4iksGQV4er8A6JjtLEBwD+2EVyDKzaAstxiZK9VbpPjCEr30fq6EgpLi9Bokb1h6e4R63DVfB3tpjyGOi0aYNq0aZg1axYIIWBZFk899RQ2bdrEb3xz5szhS7VTU1N5jUpCQgK/QQo71t8NEG7uDMNg6tSp+OCDDyp1/a1+9tTUVF6wLe0HV1XjK1Wlqb1W1dAJURXjv0SIAPGmT0NOYSn8vdwUXxf2SdNKApTaiKgRI61jVCccrZW0Z5yWtRVWttlKi3F5UX8AQIdRy/H57g9vftI3iXq//gK3qCiUpqTAajbDvH8/rs2t0HBwRE1Iyhwh4uOP4d7Arouwms0ouXAB6ZPeuKkxhai1ZjVSX30T3j1mABBv3KdfT4CXG73SqypQM64dXAPp4xedzcH1NccqNYYlqwikxC6KLcstBimVtOhwY+HiZ/+r31po0XQfRzA9HgWXGp6icQ1eFe+HudCMgIb2NFX2mQx4+5tE85ZudFo3vlu5QVY1bnbud/Oz3w3QCVEV479GiKoazpKG6hrjboHwWQsLzejY0K5X2H8mDV7Z1+FZVoqgwhzYiu3hYOu1LNhK7E7mjLsHXIICYcu/AVtJMUhJCVh3DxiCAvlzLRn21JJrSAhcgioibNZrWSjLzoYhwB8uQUGyeRk8POHeoD7cJCLF0pQUarRICu9eveBi8uF/Z1zd4BYZCe/7u1R6zFprVsNWWMSvhdqcS1NSUJqeD2IhMBcVIbRnZwBAavxfMHp4glhdYAiwpwWJhYBxZWHwKU/n3SgBwMDg48YTjbLcYpRdLyo/l4HBR6ytYNxYuNY0KpIhDkJiQwPjbnA4hhY4uo+U3FRmHv+V7ywd9w50QlTFqE5CFBxsD1dnZmbqXy73IO6WzwAXLVKCwWiUkZ7bMSaHu2Vd7zbo66rjboNOiKoY1UWIdOjQoUOHDh3VB72XmQ4dOnTo0KFDRzVAJ0Q6dOjQoUOHjnseOiGqBhQXF6NXr17o1asXiouLb/d0dNwG6J+B6oG+rtUDfV116NA1RHqVmY5qgf4ZqB7o61o90NdVx90GXUOkQ4cOHTp06NBRDdAJkQ4dOnTo0KHjnodOiHTo0KFDhw4d9zx0QqRDhw4dOnTouOehEyIdOnTo0KFDxz0Pl9s9gdsJrsAuPz+/Ssc1C9oW5Ofnw2pV7kOk478J/TNQPdDXtXqgr6uOuw3cvl2VhfL3dNl9amoqatWqdbunoUOHDh06dOioBC5fvoyIiIgqGeueJkQ2mw1XrlyBj48PGIa53dO5bcjPz0etWrVw+fJlvadbFUJf1+qBvq7VA31dqx76mlYPuHU9ceIEGjVqBJatGvXPPZ0yY1m2ypjlfwEmk0n/R1sN0Ne1eqCva/VAX9eqh76m1YPw8PAqI0OALqrWoUOHDh06dOjQCZEOHTp06NChQ4dOiHTA3d0d06dPh7u7++2eyn8K+rpWD/R1rR7o61r10Ne0elBd63pPi6p16NChQ4cOHToAPUKkQ4cOHTp06NChEyIdOnTo0KFDhw6dEOnQoUOHDh067nnohEiHDh06dOjQcc9DJ0T3CD755BPUqVMHHh4eaNu2Lf7880/Fc7///nv06NEDQUFBMJlM6Ny5MxISEm7hbO8eOLOuQuzZswcuLi5o1apV9U7wLoSza1pSUoJp06YhMjIS7u7uqFevHj799NNbNNu7B86u61dffYWWLVvCy8sLoaGheOGFF3D9+vVbNNu7A3/88Qf69OmDsLAwMAyDH374weE1u3fvRtu2beHh4YG6deti+fLl1T/RuwzOrmtV7Vk6IboH8M033+C1117DtGnTcPjwYTz44IN47LHHcOnSJer5f/zxB3r06IGff/4ZBw8exMMPP4w+ffrg8OHDt3jmdzacXVcOeXl5eO655/DII4/copnePajMmg4cOBA7duzAmjVrcPr0aaxfvx6NGze+hbO+8+Hsuv7111947rnnMHz4cBw/fhwbN25EUlISRowYcYtnfmfDbDajZcuWWLJkiabzk5OT8fjjj+PBBx/E4cOH8eabb+LVV1/Fd999V80zvbvg7LpW2Z5FdPzn0aFDBzJmzBjRscaNG5MpU6ZoHqNp06bk3Xffreqp3dWo7LrGxsaSt956i0yfPp20bNmyGmd498HZNf3ll1+Ir68vuX79+q2Y3l0LZ9d13rx5pG7duqJjH330EYmIiKi2Od7tAEA2bdqkes4bb7xBGjduLDo2evRo0qlTp2qc2d0NLetKQ2X2LD1C9B9HaWkpDh48iEcffVR0/NFHH8XevXs1jWGz2XDjxg0EBARUxxTvSlR2XT/77DOcP38e06dPr+4p3nWozJpu3rwZ7dq1w9y5cxEeHo6GDRsiLi4ORUVFt2LKdwUqs65dunRBamoqfv75ZxBCcPXqVXz77bfo1avXrZjyfxaJiYmy9yEmJgYHDhyAxWK5TbP676Gye9Y93dz1XkBWVhasVitq1qwpOl6zZk1kZGRoGmPBggUwm80YOHBgdUzxrkRl1vXs2bOYMmUK/vzzT7i46P/0pKjMml64cAF//fUXPDw8sGnTJmRlZWHs2LHIzs7WdUTlqMy6dunSBV999RViY2NRXFyMsrIy9O3bFx9//PGtmPJ/FhkZGdT3oaysDFlZWQgNDb1NM/tvobJ7lh4hukfAMIzod0KI7BgN69evxzvvvINvvvkGwcHB1TW9uxZa19VqteKZZ57Bu+++i4YNG96q6d2VcOazarPZwDAMvvrqK3To0AGPP/44Fi5ciM8//1yPEkngzLqeOHECr776Kt5++20cPHgQv/76K5KTkzFmzJhbMdX/NGjvA+24jsrhZvYs/c/U/zgCAwNhMBhkfwlmZmbK/lKR4ptvvsHw4cOxceNGdO/evTqnedfB2XW9ceMGDhw4gMOHD+Pll18GYN/MCSFwcXHBtm3b0K1bt1sy9zsVlfmshoaGIjw8HL6+vvyxJk2agBCC1NRUNGjQoFrnfDegMus6a9Ys3H///Zg0aRIAoEWLFjAajXjwwQcxY8YMPZJRSYSEhFDfBxcXF9SoUeM2zeq/g5vds/QI0X8cbm5uaNu2LbZv3y46vn37dnTp0kXxuvXr1+P555/H119/resGKHB2XU0mE/79918cOXKE/2/MmDFo1KgRjhw5go4dO96qqd+xqMxn9f7778eVK1dQUFDAHztz5gxYlkVERES1zvduQWXWtbCwECwr3h4MBgOAioiGDufRuXNn2fuwbds2tGvXDq6urrdpVv8NVMme5bR0W8ddhw0bNhBXV1eyZs0acuLECfLaa68Ro9FIUlJSCCGETJkyhQwdOpQ//+uvvyYuLi5k6dKlJD09nf8vNzf3dj3CHQln11UKvcpMDmfX9MaNGyQiIoL079+fHD9+nOzevZs0aNCAjBgx4nY9wh0JZ9f1s88+Iy4uLuSTTz4h58+fJ3/99Rdp164d6dChw+16hDsSN27cIIcPHyaHDx8mAMjChQvJ4cOHycWLFwkh8nW9cOEC8fLyIq+//jo5ceIEWbNmDXF1dSXffvvt7XqEOxLOrmtV7Vk6IbpHsHTpUhIZGUnc3NxImzZtyO7du/nXhg0bRrp27cr/3rVrVwJA9t+wYcNu/cTvcDizrlLohIgOZ9f05MmTpHv37sTT05NERESQCRMmkMLCwls86zsfzq7rRx99RJo2bUo8PT1JaGgoefbZZ0lqauotnvWdjZ07d6p+V9LWddeuXaR169bEzc2NREVFkWXLlt36id/hcHZdq2rPYgjR4586dOjQoUOHjnsbuoZIhw4dOnTo0HHPQydEOnTo0KFDh457Hjoh0qFDhw4dOnTc89AJkQ4dOnTo0KHjnodOiHTo0KFDhw4d9zx0QqRDhw4dOnTouOehEyIdOnTo0KFDxz0PnRDp0KFDhw4dOu556IRIhw4ddzWio6Px2muvVdm5DMPghx9+4H8/deoUOnXqBA8PD7Rq1arS89ShQ8edDZ0Q6dChQ4cA6enpeOyxx/jfp0+fDqPRiNOnT2PHjh34/PPP4efnd/smqEOHjmqBy+2egA4dOnQAQGlpKdzc3G73NBASEiL6/fz58+jVqxciIyNv04x06NBxK6BHiHTo0HFbEB0djZdffhkTJkxAYGAgevTogRMnTuDxxx+Ht7c3atasiaFDhyIrK4u/xmw247nnnoO3tzdCQ0OxYMEC2biffPIJGjRoAA8PD9SsWRP9+/cXvW6z2fDGG28gICAAISEheOedd0SvC1NmDMPg4MGDeO+998AwDKKjo/HCCy8gLy8PDMOAYRjZ9Tp06Lg7oRMiHTp03DZ88cUXcHFxwZ49ezB79mx07doVrVq1woEDB/Drr7/i6tWrGDhwIH/+pEmTsHPnTmzatAnbtm3Drl27cPDgQf71AwcO4NVXX8V7772H06dP49dff8VDDz0ku6fRaMT+/fsxd+5cvPfee9i+fTt1funp6WjWrBkmTpyI9PR0bN68GR9++CFMJhPS09ORnp6OuLi46lkcHTp03FLoKTMdOnTcNtSvXx9z584FALz99tto06YNZs6cyb/+6aefolatWjhz5gzCwsKwZs0afPnll+jRowcAO7mJiIjgz7906RKMRiN69+4NHx8fREZGonXr1qJ7tmjRAtOnTwcANGjQAEuWLMGOHTv4MYUICQmBi4sLvL29+VSar68vGIaRpdZ06NBxd0MnRDp06LhtaNeuHf/zwYMHsXPnTnh7e8vOO3/+PIqKilBaWorOnTvzxwMCAtCoUSP+9x49eiAyMhJ169ZFz5490bNnTzz55JPw8vLiz2nRooVo7NDQUGRmZlblY+nQoeMuhJ4y06FDx22D0Wjkf7bZbOjTpw+OHDki+u/s2bN46KGHQAhxOJ6Pjw8OHTqE9evXIzQ0FG+//TZatmyJ3Nxc/hxXV1fRNQzDwGazVdkz6dCh4+6EToh06NBxR6BNmzY4fvw4oqKiUL9+fdF/RqMR9evXh6urK/bt28dfk5OTgzNnzojGcXFxQffu3TF37lz8888/SElJwe+//15l83Rzc4PVaq2y8XTo0HFnQCdEOnTouCMwbtw4ZGdnY/Dgwfj7779x4cIFbNu2DS+++CKsViu8vb0xfPhwTJo0CTt27MCxY8fw/PPPg2Urvsa2bt2Kjz76CEeOHMHFixfx5ZdfwmazidJqN4uoqCgUFBRgx44dyMrKQmFhYZWNrUOHjtsHnRDp0KHjjkBYWBj27NkDq9WKmJgYNG/eHOPHj4evry9PeubNm4eHHnoIffv2Rffu3fHAAw+gbdu2/Bh+fn74/vvv0a1bNzRp0gTLly/H+vXr0axZsyqbZ5cuXTBmzBjExsYiKCiIF4Xr0KHj7gZDtCTmdejQoUOHDh06/sPQI0Q6dOjQoUOHjnseOiHSoUOHDh06dNzz0AmRDh06dOjQoeOeh06IdOjQoUOHDh33PHRCpEOHDh06dOi456ETIh06dOjQoUPHPQ+dEOnQoUOHDh067nnohEiHDh06dOjQcc9DJ0Q6dOjQoUOHjnseOiHSoUOHDh06dNzz0AmRDh06dOjQoeOex/8ByOa0W9H4yMoAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#plot data from input catalog\n", + "plt.semilogy(dset_in['redshift'][()], dset_in['richness'][()],'k.', alpha=1)\n", + "plt.xlabel('redshift')\n", + "plt.ylabel('richness')\n", + "\n", + "#plot bin limits as defined in the config file\n", + "[plt.axvline(i,linestyle='dashed', color='black') for i in pip_stage.config.zedge]\n", + "[plt.axhline(i,linestyle='dotted', color='black') for i in pip_stage.config.richedge]\n", + "\n", + "#overplot data from output file to make sure the bins are ordered correctly\n", + "markers=['s','o', 'D', 'P', '^']\n", + "\n", + "for i in range(len(pip_stage.config.zedge)-1):\n", + " for j in range(len(pip_stage.config.richedge)-1):\n", + " plt.scatter(dset_out['bin_zbin_'+str(i)+'_richbin_'+str(j)]['redshift'][:], \n", + " dset_out['bin_zbin_'+str(i)+'_richbin_'+str(j)]['richness'][:], marker=markers[j], label='bin_zbin_'+str(i)+'_richbin_'+str(j))\n", + " \n", + " plt.legend(fontsize='x-small')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "TXPipe-2023-Jul-12", + "language": "python", + "name": "txpipe-2023-jul-12" + }, + "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.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/txpipe/__init__.py b/txpipe/__init__.py index 2436ccc40..a92beb959 100755 --- a/txpipe/__init__.py +++ b/txpipe/__init__.py @@ -41,5 +41,5 @@ # Here are the stages that mostly will be used for other projects # such as the self-calibration of Intrinsic alignment. from .extensions.twopoint_scia import TXSelfCalibrationIA -from .extensions.clmm import TXTwoPointRLens +from .extensions.clmm import CLClusterShearCatalogs, CLClusterBinningRedshiftRichness from .covariance_nmt import TXFourierNamasterCovariance, TXRealNamasterCovariance diff --git a/txpipe/extensions/clmm/__init__.py b/txpipe/extensions/clmm/__init__.py index b7900fdcb..e69c33016 100644 --- a/txpipe/extensions/clmm/__init__.py +++ b/txpipe/extensions/clmm/__init__.py @@ -1,3 +1,4 @@ -from .ingest import * -from .select import * +#from .ingest import * +from .select import CLClusterShearCatalogs +from .bin_cluster import CLClusterBinningRedshiftRichness from .rlens import TXTwoPointRLens diff --git a/txpipe/extensions/clmm/bin_cluster.py b/txpipe/extensions/clmm/bin_cluster.py new file mode 100644 index 000000000..8140893c7 --- /dev/null +++ b/txpipe/extensions/clmm/bin_cluster.py @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- +import os +import gc +import numpy as np +from ...base_stage import PipelineStage +from ...data_types import ShearCatalog, HDFFile, PhotozPDFFile, FiducialCosmology, TomographyCatalog, ShearCatalog +from ...utils.calibrators import Calibrator +from ...utils import DynamicSplitter +from collections import defaultdict +import yaml +import ceci +import itertools + + +class CLClusterBinningRedshiftRichness(PipelineStage): + name = "CLClusterBinningRedshiftRichness" + parallel = False + inputs = [("cluster_catalog", HDFFile)] + outputs = [("cluster_catalog_tomography", HDFFile)] + config_options = { + "zedge": [0.2, 0.4, 0.6, 0.8, 1.0], + "richedge": [5., 10., 20.], + "initial_size": 100_000, + "chunk_rows": 100_000, + } + def run(self): + initial_size = self.config["initial_size"] + chunk_rows = self.config["chunk_rows"] + + zedge = np.array(self.config['zedge']) + richedge = np.array(self.config['richedge']) + + nz = len(zedge) - 1 + nr = len(richedge) - 1 + + # add infinities to either end to catch objects that spill out + zedge = np.concatenate([[-np.inf], zedge, [np.inf]]) + richedge = np.concatenate([[-np.inf], richedge, [np.inf]]) + + # all pairs of z bin, richness bin indices + bins = list(itertools.product(range(nz), range(nr))) + bin_names = {f"zbin_{i}_richbin_{j}":initial_size for i,j in bins} + #bin_names = [f"zbin_{i}_richbin_{j}" for i,j in bins] + + + # Columns we want to save for each object + cols = ['cluster_id', 'dec', 'ra', 'redshift', 'redshift_err', 'richness', 'richness_err', 'scaleval'] + + + f = self.open_output("cluster_catalog_tomography") + g = f.create_group("cluster_bin") + g.attrs['nr'] = nr + g.attrs['nz'] = nz + splitter = DynamicSplitter(g, "bin", cols, bin_names) + + # Make an iterator that will read a chunk of data at a time + it = self.iterate_hdf("cluster_catalog", "clusters", cols, chunk_rows) + + # Loop through the chunks of data; each time `data` will be a + # dictionary of column names -> numpy arrays + for _, _, data in it: + n = len(data["redshift"]) + + # Figure out which bin each halo it in, if any, starts at 0 + zbin = np.digitize(data['redshift'], zedge) - 2 + richbin = np.digitize(data["richness"], richedge) - 2 + + # Find which bin each object is in, or None + for zi in range(0, nz): + for ri in range(0, nr): + w = np.where((zbin == zi) & (richbin == ri)) + # if there are no objects in this bin in this chunk, + # then we skip the rest + if w[0].size == 0: + continue + + # Otherwise we extract the bit of this chunk of + # data that is in this bin and have our splitter + # object write it out. + d = {name:col[w] for name, col in data.items()} + bin_name = f"zbin_{zi}_richbin_{ri}" #TO CHANGE ? + splitter.write_bin(d, bin_name) + + # Truncate arrays to correct size + splitter.finish() + + # Save metadata + for (i, j), name in zip(bins, bin_names): + metadata = splitter.subgroups[name].attrs + metadata['rich_min'] = richedge[j+1] + metadata['rich_max'] = richedge[j+2] + metadata['z_min'] = zedge[i+1] + metadata['z_max'] = zedge[i+2] + + f.close() diff --git a/txpipe/extensions/clmm/select.py b/txpipe/extensions/clmm/select.py index c6f3a8cff..118264401 100644 --- a/txpipe/extensions/clmm/select.py +++ b/txpipe/extensions/clmm/select.py @@ -8,6 +8,8 @@ import yaml import ceci + + class CLClusterShearCatalogs(PipelineStage): name = "CLClusterShearCatalogs" inputs = [