{ "cells": [ { "cell_type": "markdown", "id": "556c8ddd", "metadata": {}, "source": [ "## Distribution of TAD strength scores\n", "Using some advanced techniques, it's possible to calculate an arbitrary score for each snippet that contributed to the final pileup, and save those values within the pileup dataframe. This can be used to investigate whether the contribution features are all similar, or only some outliers cause enrichment.\n", "\n", "Here as an example, we can calculate and store the TAD strength for each TAD that was averaged." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# If you are a developer, you may want to reload the packages on a fly. \n", "# Jupyter has a magic for this particular purpose:\n", "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "code", "execution_count": 2, "id": "f39f911c", "metadata": {}, "outputs": [], "source": [ "# import standard python libraries\n", "import matplotlib as mpl\n", "%matplotlib inline\n", "mpl.rcParams['figure.dpi'] = 96\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "import seaborn as sns" ] }, { "cell_type": "code", "execution_count": 3, "id": "f39f911c", "metadata": {}, "outputs": [], "source": [ "# import libraries for biological data analysis\n", "from coolpuppy import coolpup\n", "from coolpuppy.lib.numutils import get_domain_score\n", "from coolpuppy.lib.puputils import accumulate_values\n", "from coolpuppy import plotpup\n", "import cooler\n", "import bioframe\n", "import cooltools\n", "from cooltools.lib import io\n", "from cooltools import insulation, expected_cis\n", "from cooltools.lib import plotting" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Downloading test data for pileups\n", "# cache = True will doanload the data only if it was not previously downloaded\n", "# data_dir=\"./\" will force download to the current directory\n", "cool_file = cooltools.download_data(\"HFF_MicroC\", cache=True, data_dir='./')\n", "# Open cool file with Micro-C data:\n", "clr = cooler.Cooler(f'{cool_file}::/resolutions/10000')\n", "# Set up selected data resolution:\n", "resolution = 10000" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# Use bioframe to fetch the genomic features from the UCSC.\n", "hg38_chromsizes = bioframe.fetch_chromsizes('hg38')\n", "hg38_cens = bioframe.fetch_centromeres('hg38')\n", "hg38_arms = bioframe.make_chromarms(hg38_chromsizes, hg38_cens)\n", "\n", "# Select only chromosomes that are present in the cooler. \n", "# This step is typically not required! we call it only because the test data are reduced. \n", "hg38_arms = hg38_arms.set_index(\"chrom\").loc[clr.chromnames].reset_index()\n", "# call this to automaticly assign names to chromosomal arms:\n", "hg38_arms = bioframe.make_viewframe(hg38_arms)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Calculate expected interactions for chromosome arms\n", "expected = expected_cis(\n", " clr,\n", " ignore_diags=0,\n", " view_df=hg38_arms,\n", " chunksize=1000000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we need to generate coordinates of TADs. It's quite simple using cooltools.insulation: we get coordinates of strongly insulating regions, which likely correspond to TAD boundaries. Then we just need to combine consecutive boundaries, filter out super long domains, and we have a list of TAD coordiantes." ] }, { "cell_type": "code", "execution_count": 7, "id": "b5075dd8", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
chromstartendregionis_bad_binlog2_insulation_score_100000n_valid_pixels_100000boundary_strength_100000is_boundary_100000
0chr2010000chr2_pTrueNaN0.0NaNFalse
1chr21000020000chr2_pFalse0.6920518.0NaNFalse
2chr22000030000chr2_pFalse0.76056117.0NaNFalse
3chr23000040000chr2_pFalse0.76669827.0NaNFalse
4chr24000050000chr2_pFalse0.67490637.0NaNFalse
..............................
32541chr178321000083220000chr17_qTrueNaN0.0NaNFalse
32542chr178322000083230000chr17_qTrueNaN0.0NaNFalse
32543chr178323000083240000chr17_qTrueNaN0.0NaNFalse
32544chr178324000083250000chr17_qTrueNaN0.0NaNFalse
32545chr178325000083257441chr17_qTrueNaN0.0NaNFalse
\n", "

32552 rows × 9 columns

\n", "
" ], "text/plain": [ " chrom start end region is_bad_bin \\\n", "0 chr2 0 10000 chr2_p True \n", "1 chr2 10000 20000 chr2_p False \n", "2 chr2 20000 30000 chr2_p False \n", "3 chr2 30000 40000 chr2_p False \n", "4 chr2 40000 50000 chr2_p False \n", "... ... ... ... ... ... \n", "32541 chr17 83210000 83220000 chr17_q True \n", "32542 chr17 83220000 83230000 chr17_q True \n", "32543 chr17 83230000 83240000 chr17_q True \n", "32544 chr17 83240000 83250000 chr17_q True \n", "32545 chr17 83250000 83257441 chr17_q True \n", "\n", " log2_insulation_score_100000 n_valid_pixels_100000 \\\n", "0 NaN 0.0 \n", "1 0.692051 8.0 \n", "2 0.760561 17.0 \n", "3 0.766698 27.0 \n", "4 0.674906 37.0 \n", "... ... ... \n", "32541 NaN 0.0 \n", "32542 NaN 0.0 \n", "32543 NaN 0.0 \n", "32544 NaN 0.0 \n", "32545 NaN 0.0 \n", "\n", " boundary_strength_100000 is_boundary_100000 \n", "0 NaN False \n", "1 NaN False \n", "2 NaN False \n", "3 NaN False \n", "4 NaN False \n", "... ... ... \n", "32541 NaN False \n", "32542 NaN False \n", "32543 NaN False \n", "32544 NaN False \n", "32545 NaN False \n", "\n", "[32552 rows x 9 columns]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "insul_df = insulation(clr, window_bp=[100000], view_df=hg38_arms, nproc=4,)\n", "insul_df" ] }, { "cell_type": "code", "execution_count": 8, "id": "e7438686", "metadata": {}, "outputs": [], "source": [ "# A useful function to combine insulation score valleys into TADs and filter out very long \"TADs\"\n", "def make_tads(insul_df, maxlen=1_500_000):\n", " tads = (\n", " insul_df.groupby(\"chrom\")\n", " .apply(\n", " lambda x: pd.concat(\n", " [x[:-1].reset_index(drop=True), x[1:].reset_index(drop=True)],\n", " axis=1,\n", " ignore_index=True,\n", " )\n", " )\n", " .reset_index(drop=True)\n", " )\n", " tads.columns = [[\"chrom1\", \"start1\", \"end1\", \"chrom2\", \"start2\", \"end2\"]]\n", " tads.columns = tads.columns.get_level_values(0)\n", " tads = tads[\n", " (tads[\"start2\"] - tads[\"start1\"]) <= maxlen\n", " ].reset_index(drop=True)\n", " tads[\"start\"] = (tads[\"start1\"] + tads[\"end1\"]) // 2\n", " tads[\"end\"] = (tads[\"start2\"] + tads[\"end2\"]) // 2\n", " tads = tads[[\"chrom1\", \"start\", \"end\"]]\n", " tads.columns = ['chrom', 'start', 'end']\n", " return tads" ] }, { "cell_type": "markdown", "id": "16ec3e40", "metadata": {}, "source": [ "Getting TAD coordinates:" ] }, { "cell_type": "code", "execution_count": 9, "id": "e2dcb50c", "metadata": {}, "outputs": [], "source": [ "tads = make_tads(insul_df[insul_df['is_boundary_100000']][['chrom', 'start', 'end']])" ] }, { "cell_type": "markdown", "id": "efb4d0ea", "metadata": {}, "source": [ "Define a helper function to store domain scores within each snippet:\n" ] }, { "cell_type": "code", "execution_count": 10, "id": "59758d29", "metadata": {}, "outputs": [], "source": [ "def add_domain_score(snippet):\n", " snippet['domain_score'] = get_domain_score(snippet['data']) # Calculates domain score for each snippet according to Flyamer et al., 2017\n", " return snippet" ] }, { "cell_type": "markdown", "id": "60f113c4", "metadata": {}, "source": [ "Another helper function to save domain scores when combining snippets into a pileup:" ] }, { "cell_type": "code", "execution_count": 11, "id": "a0bf07d0", "metadata": {}, "outputs": [], "source": [ "def extra_sum_func(dict1, dict2):\n", " return accumulate_values(dict1, dict2, 'domain_score')" ] }, { "cell_type": "markdown", "id": "1e24d1e4", "metadata": {}, "source": [ "Here we use the low-level coolpuppy API, including the helper functions we defined above:" ] }, { "cell_type": "code", "execution_count": 12, "id": "ac72990e", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:coolpuppy:Rescaling with rescale_flank = 1 to 99x99 pixels\n", "INFO:coolpuppy:('chr2_p', 'chr2_p'): 238\n", "INFO:coolpuppy:('chr2_q', 'chr2_q'): 412\n", "INFO:coolpuppy:('chr17_p', 'chr17_p'): 75\n", "INFO:coolpuppy:('chr17_q', 'chr17_q'): 213\n", "INFO:coolpuppy:Total number of piled up windows: 238\n" ] } ], "source": [ "cc = coolpup.CoordCreator(tads, resolution=10000, features_format='bed', local=True, rescale_flank=1)\n", "pu = coolpup.PileUpper(clr, cc, expected=expected, view_df=hg38_arms, ignore_diags=0, rescale_size=99, rescale=True)\n", "pup = pu.pileupsWithControl(postprocess_func=add_domain_score, # Any function can be applied to each snippet before they are averaged in the postprocess_func\n", " extra_sum_funcs={'domain_score': extra_sum_func}) # If additional values produced by postprocess_func need to be saved,\n", " # it can be done using the extra_sum_funcs dictionary, which defines how to combine them." ] }, { "cell_type": "markdown", "id": "1318a75b", "metadata": {}, "source": [ "This is the pileup that we got from the previous step:" ] }, { "cell_type": "code", "execution_count": 13, "id": "d8e757b0", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaEAAAFmCAYAAADERSXOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA7EAAAOxAGVKw4bAABkvklEQVR4nO2dfahuaV33f+vlvvfec+bMnJlHeULTxAobJfMhcxSEQZHHQKISIk1EAxELKa0/SuxByCZ4/omMoPGvXkZIMUpKqYEMzBJTUEsr7EVlZhKffBsdzzn73Pd6ef7YZ+/r+/uu9bv2OvusNXu8/X5gmPtlrWtd6+U+a6/v9b2+v6Lv+96EEEKIc6A87w4IIYT4zkU3ISGEEOeGbkJCCCHODd2EhBBCnBu6CQkhhDg3dBMSQghxbugmJIQQ4tzQTUgIIcS5oZuQEEKIc0M3ISGE2FH+7M/+zF7+8pfbc5/7XHvOc55jP/mTP2kf+MAHsuv8/d//vb3pTW+ye+65x57xjGfYe9/73kX7WC/auhBCiHPjG9/4hr3kJS+xu+66y/b29uyv//qv7Zd+6Zdsb2/PXvKSl4yu8+EPf9j+8z//0+655x57z3ves3gfC2XHCSHEdw6vfOUr7YlPfKL9zu/8zuj3XddZWR6JZM94xjPsN37jN+ynfuqnFuuP5DghhPgO4tKlS9Y0Tfj98Q3osWIWOe4Nb3iDmZndd999czQnhBDf9rzhDW+whx56aLb2vvjFL9qTnvSk8PvcWE/TNHZ4eGh/+7d/ax/5yEfCp6DzYJab0EMPPWTba4f2X5/9JzMzK8wrfEWg+BV9B+94meLkVVdWsFT6vHTrmxV9G7Tt6Yt0p6/a7XjfBvuQ2sP1o2WGG03tld34Ns3MSuhP2aa/Vsrtod8WLFdc+VZ6vUnL9Ztrfh34C6e/eOnk9bUnPMUtd7h/x8nrq6uLaTnbP3ndWeXWafrxc9R06RJr+8Iiivgr64L18Bzx+lWRzkVpHXyerhHsp5lZDd9V1sDn/q/GAtrba66kdbq03Gp7xa/TpbbrJp0jPK9Fs3Hr9PX65PXmlnROvnXLE91yh+Utabk+rbPtVievu95fs1fb9F0Nx6qB5Xo67ps2neOyhOvZPGWR+R0E/YnWqQo8x/432XTjv0M+r3id8HZPPuf3XWoD26vKtGRNfb7apGP6v39ozx566CH7/L//hz0h/rlP5isrs2pvffqCI3z5y1+2F77whWZmVlWVve1tb7N77rnn5js1EzImCCHEQjxha/YrD998O//3u80ufv9TT3W2jXHHHXfYn/zJn9jly5ftwx/+sL397W+3S5cu2Utf+tKb79gM6CYkhBBLUZgVq8xj/uR2zu4fq+vafvAHf9DMzJ7//OfbN77xDfut3/qt3bwJHT/2dkVFn4Mc0qG0Me3AOjmvwM/b4cI3QZlrL+iDW4Rkukie60nAKPt0TNy+ZiTA8LJu4Nl/S/IOtpFpG9+jlFE62cZfOihZoOSBEoq/Krz0w/JnRAnt4aEaSnawTwV+GktFpYGci9uho10Fx87JxqXfW5RgUZrD1+XGS67Y06lSM8qfOVZlaq/toN8ZybQux6UxPnfYNl4LTXBdMNF3LOeiVJe7lnC5bTfthuDlxvH+NCTttSNtF2ZW1jd/E5r6+5jCXXfdZX/6p386W3s3i56EhBBiKQqzYjWD22zCONtUPvGJT9iTn/zk2dq7WXQTEkKIpSjmeRKKpY88r371q+2lL32pPf3pT7dr167ZBz/4QXv/+99vb3/7283M7GMf+5i99rWvtT/4gz+w5z3veWZm9l//9V/26U9/+qSNz3zmM3bx4kW78847T5aZE92EhBBiR/mBH/gBu//+++1LX/qSHRwc2Pd93/fZfffdZy960YvMzKzve2vb1jCz4B/+4R/sLW95y8n7d7/73fbud7/bnve859n9998/ex9nuwkVlsYziozuPi/xnwduXGNg5R7X9PuM7oqaPI4RTNVqcZuD4zMhtGIwDhCs03ewXEfLlOPnJWtnh33NjRfgWItbJ3eOelwOxo5oTADfRYeKzwPq+NE54s9xrK4Ei3bb0xinG+ca99/yfrtxwOh487hfNz5G2ZTeqtvC+ByO22G/BxboYHwm9wd3ND6Y4xqMN6HtmS31dYm/D7BUT2wbrxm2YfPPYGyb25bGReHarCo8ptN+DycUxUzGhLO18da3vtXe+ta3ht/ffffd9tnPftZ99vKXv9xe/vKXn2l7Z0FPQkIIsRDzGRN2F92EhBBiKWazaN98E49XFrkJeRt2DjyyN25BjJILzPL2bbRBR1LU4PNiXIKbKs15eZD6Bm33uB2UCnMW7RLWwVSEikzR+L5kwzT2dbw/fUaKaIPEBL8MS1Tjtm6WT4qM1HIMJiEMt1WOLsf9bGG5GmfJF/G15M4rdLytVm65urk6vj7auus6/C5HfBzTa0xIMPOz/fFYoV2bzxeeh20LEmDpT9gWzPh4tnLq1WGT2tuvMa0i9TMnzeXSOPx1O20d3CdcH/enIHm7n3a6BKEnISGEWIrCrKxmeIx5rIbZzwHdhIQQYkEK3YSyzHgT6kHCyklrKPXc3CSuPuMYKXKP58W4VONTBPyz9ZS+Tk1w4MQEdMtFYa/sjkGpBmU757Aq6RgEx6srvVSDiRcYVIr97mgfIkecd8Blzknmuy4Iqsw5tNAthcuhRFWXXjauwRGXS1aY4v6MgnEHwPlm+a1bQWBslRxxVU+BqkHCQOckRb9MJNsFXTve0uhyvDYeHTz2BVx/GIbK20JZOyeZRXSZVIRV4HRr6RigHN+hG7IYl+nG2jA7+snN8SRUTB3h+DZET0JCCLEYhRX8x+AZ29lVVNROCCHEuTHzk9AUh1swyTIrrU1zo4VS1mBb40613ATXqH9lNy1YcjLYxlnaQwccSR4+8TOWDlGOw+ON7rGcExC/azKyD8oZuUBLlHTc+Xe1ZsLVw7YGkxqdDBkfnyqQ4/Aa6UhaQymzJ+fcMdkJyZlr29XYgv2rYR8aio/dduMTWX3IqN8O1u9ZVRCAyq5H7CpsFq+LFTnLKjgV22gSqu+ODzCFvrFbr4XvcFIqrhPVJjIz26vGrwXeb57wamZHFu1qhr/1d/dBSHKcEEIsySzuuB1GNyEhhFiIorBZxoTOmNrzbYFuQkIIsSB6Esoz801omYPdBfZoHgPymvrNFYEaFqg7PWUhp9vnAkzLNihqN7Ft92fS1D+ZMmkMbrMTz2mDiQmu2FzctjsKGSsu/oajsSg+PB0cB+wBjn9wsbK6SLbqup9msXZpBTCmVPO1iQGvLn0jptpcSW8u3HnysiFLfXSpu4JyNOZRBYXncJxtcOZgHCcqimdmhg5p34fYEo2HqyrHx3pWVZyKgeNDg6SHKMAWFturfdtRiGqZS1m4ieqn38noSUgIIZaiKOaZrLrDepxuQkIIsSCY5yiGzHYT6q04saVOtUojvE43QS7i+j/4NFxmLMiTyoBMtEdnrcpzWLaDtqJaMy4xgc8D/jUFNuGu9JdBV4wnMfZuhnkmADVIT8gGRsJrXg731P1RiQ5mErZWQVAp9rsqvOQWnUs+HqEE12xOXpeUnuEs2tH1zLbu8Lr3n6O0te3SeW0CmS1HnUmhiMbXUdoziyWrGv4xLjMWeAfIcZyEsAZ5DmsDsfSIlm88Dms4/01m+gBuF48OS4qYxoDMM1l1d9GTkBBCLMRssT07fB/Tc6IQQohzY9YnoROZ4gx37akurNNaGf2U/oxwTrVAMss5xlBqKaYmJkxx12XWGX7XjS+Hn7ckeUC9Gqxdw7P7UQrF0tEoZbHrDevL4N7hcrlyyF0mGNKdVif9jDvgjvqKxweWw5n6g82kD5piNfo5g0GnKM01lS/B7X5oLfQHZVU+35B+sa33LcLVWwrCYznAFCWqKLmC9zsKjGV3XC6V4hiW/XC7G7iWcnJ352TI8dQIBnuDElxLEl4bhKCi7MenK5KbJcflkRwnhBCLUcxkTNjdG5luQkIIsRQzJSbs8D1ovptQYWbldQlkWFdnvIZQH5TMPmoDZYFgstlArooCJPkMQtsTXUPsdkp9iB/9XSAqTlbkWjwoF2KdIFyGtwPutmK7sVGoXHSxlySdZn1Lel3tueVauCxwEirWENqSBINSBMokk+vBZKSjqLw3XjNcahmXc/IQ7EPLdZ1wYiUcAw4sRWeXCy3F4Fdy1LXgQHS1aio4RyyLgqS3rdK5aymMNCpfPUUWMyPHF5zXOnNM8bxuKSi3ciXqDV6jbEz96ceX6zM1fxqosYPOtC7j3MSQUZwUG8lvvBzuD7vhciGoIkZPQkIIsRCFzeSOu/muPG7RTUgIIZZCctyp6CYkhBCLIWPCacx4E+pHxoKmkwsj9UME+MafGBwHmpraEMm4g6J2/fj4Vc7K7dYPCukdvR+3WLuxIg5UjUJLc/sNlt8exiJ4H1D7xzEU1LzZvuv1/vHu8DpdMF7U0ZgQF0A7psUxQCoohuMh6yq15wumxUkICBeEq4NAVRz3QWs706Gtn8NIcTkY92thuU3v7d9one8DizaP4UWJAHgp8RgHjxEdUw3s1rAPwVgfJzj4ca3xcSAOCL3Wju93ztbtbPiw39uGrh83DgSht5l9iMaVZNHOo5E0IYQQ54bkOCGEWAqNCZ3KrDehKekDKEUVWfsu1DUJwjp5pj/KWl0xbuXl5fzn3anLHPUssFSzhOf2e2IgKu4rymQcHoXfgQzUr5JUM3WbLEOhRdslHmTCSL2EN04kv5l52Y5lDpRNsA8VyENDK/i4nXwV1NEx89Kjk1wz0iNegR2849DTypKf2MnGlpHjCmwPZ/ezPX7ckhydu6O+4voYLApyE/1uNiB/dYEt3Mxbl91xhHU2JPU5u30g5/H1g/JgtA73D+U0V7eoiNdxtm6Q5qaa3iTH5dGTkBBCLERh85Ry2OXbmG5CQgixFEUxT3nvHY7RfkxuQnPW1fFhpPGJyTlkeMmbwckuQR2eo62ghOclmL4GOQRcayjNYQlwMy/1dSDBlR0sRwGmTh7s2tHPzSgEEx1omVn3Ee50cT4nSBtbkJR4ZnzpEhNQd4mdUyjPRfVteH8qqEEUuf3MvGTl2sCuFSwVj0u97nM6xwVcCxWcVw54xSDOSBblwNC+H09G8LKoW8U7HTM/L3TVRY66yPFo5vu9V6f95pBR50wMkjTM4n+/8Vqqq9jpVhbj22n86bKmlc/rLOhJSAghFkRjQnl0ExJCiAVRee88ugkJIcRSyKJ9KvMWtQvSAyI9HMd3cskDKIH78aVYmM5ZrDtnfQb7pauDxuuPj/dMTtEOEheOPsCZ/+lj1KK5MJ+zhrdbaCs+jlFfefwCiZIi+FfRBjPeER63iVKH+dR1wS+wyxzTGuy30bgWSfpuHGhdpGTygUU7uO7K0JxO24HzULZpO1Xj09A7SF1Yt4fpdb31y4G1/JqzE+NYRlygDtM38JxwmjmO77TwD+swRRsTrcfHVtiG78Z3uuC3lhnrwaTzhtO2cZ/guujgdHEidhFcc6sq/UB5v+tqeP6P3HEKMM2h50QhhBDnhuQ4IYRYDAWYnsZ8N6G+t6rdjn8VJgfEoZ4RhQv49I/ncU2pTNoAMDWM1PcB1znjhTIhbLXndIggRQL3ra9imW0qLJuctE3yDko3TWaWu2tj4vGKbMNOrswULvRtYVhnfNzRhm2Z5VAiwmJ3wyKI/eh3Tqqmc4oyWdml39aq8LLdoaWihCizuZDSTKE3v02Qq+i7MpBcOcC0DCSvKIXAzMun0XkZyH64Dhzf/dofxxaOMW43l7Kwrsd/X2h1p5+kHY4dY40JnYqehIQQYkHkjsujm5AQQizJDqcdzMEiNyGWIvrIxRbKWjdPzrXmXXAwwzwTeuo5QzBpMEv+RtpwRO1hYgIfU6wnlAlexUd/V+fFYimrw1pD8FUu6DKalc4/Wh+CCW1b3HYJbazQrYV9HiRA4HIgN5EwhbKbq98D10VWasRzhxLc4LoYvwa535EbEftQkmSGbbA0Nra+mdk2OJf8bywmCUSJCYNUDDimXVCXZ9AGLLeqYhkxUrsjaZf74ORFTGagdSIJT+TRk5AQQixFUcw0JrS7T1O6CQkhxIJoTCjPvPWEJoSGemfZjdfiycl2k+sBBe6b6aGnN85gsqn7LnAJurLdtFIw0dfFu3YUelpDnSBXOtpfBjhZECf+RSWYzWiyaiCTsQMpDCYdSGvj67j1M/JX5+rloOQWX0tdpqw01g1CGQnha6l3QbcgazpdiwI6sQx45np2E09daew4fHZYf+l6P93E3ml/ffPxcXJuUHab294044Gq0YRmM++OqzKuvjaoq8SuPgR/entQg6rJBKX2IwG/mqx6OrpFCyGEODckxwkhxFIUM8lxO/wopJuQEEIsxkzGhB2+C812EyoMxmRIv47GOXAsg8dMchr4MQMr+EQNOwojPRtxqCd+l90f3Hc/jTteP/Sdwl9dXbwOWrRbugxamPntAj/xNWn1+D6yZfM4QGTFHdi/nTUc+plxtrvtukOKFlt//eA+tEUqFNiXPglkVUCBuShclUJhOzcVAI59nbYzCDCFonYdjNt1E69fF2Daxcd+anKFt9Gnl9y2CxaFcRccm2HrNh77KHCUx2CcdRo+5+J3eC0Mxq8msA0CVctMYT5E9YTy6ElICCGWojAzyXFZZEwQQghxbsz2JNQbyGtcmz6waeaIUgSGwZCwDs6sn/inQxSoOpWp9nGEl5uUmHCGVIW+Xvn3qyT9tPV+ek3Bi5E0gq95lj0eb5RnUAphubSB5VA5XJP64dtIr+uMKoXSDx5flKi4P86+CwIPL7eFn02FIaOwTt17ac1dm06GBumTEjH9cmgznzYzf6o8jTIpymS536o7VqVfroI2UPZzCRkVSfYoXUO3V86unZnmkNnXg1WST9GajrId72sV1D7KHZMoeLXY4YmmcyA5TgghFkOlHE5DNyEhhFgITVY9ncfkJjRFJiuj+ji0vp9FHqcsYLEPdipFElpeFhsPDO0zpbFz5cf9YoHehItwPaEoQRKPQe1Pbw9OrKZKrzf92i236dJ66AyKHHCMk2Cgm+yiwl2ooNublpMV4DX+UQmXTE3yjqs1FDjl+O9TV3/HyWzc73F5ubEkf9bkqKv6JAmh7IbJFYNzD33AVItcuXF0/7nEBN+yayMKGeXt4PnDsM5c4KiT1qo4CQHPV5RkwKpWJKflJLNVOa3fXvqD/Yby3nz9jD7vyJhwKjImCCGEODckxwkhxIJonlCeRSarZkNGnawVS2uRLDW9fg8sl5XMpl4g45NskaHrbbn6In0gwfVwwRcUqOjLR8fhlig3uQmcgdOJ18lJcK4/4/NyB9Kam2wYtubpXPlpLDcN+00ySQcbKuH64aBTDAzFY9fB5yjNmZnVRZLnnCMOXpdndFFh/yKH1rBy0rhcWQahoGZmBUp4uK90HJ0DET53zkaSAF2Z9GASKvfHlZTPTL51MiscCV+G3K8zpdw4M75cYcUstdJ290amJyEhhFiKwvyg5s20s6PoJiSEEAuiekJ5dHSEEEKcG4s8CU0dt7nZ9nJjT2f9LibShcfHuK5/AtuMC8KFT9q4Dv29UIA/2e0PWn5pP7tVSknY1AfpdesvA7Rl49hKAykJPHuds1JPPg9SEXJknMpmODs/YxPHNAUcazlLgGUOHB/ClIWSTNEuNSS4np1dm9Zpi3SO2FKP6RA+oBWt2+P9P1ouvd62OEZFQbJwvLewC4Ph2xK/Gx9f5JSFaDiMx4HcOi5lAU44dQit6jg6jL8OvpSilAT8nAsDRoUCZUzIIzlOCCEWoxj8MXjmdnYU3YSEEGIpipmehHb3HjTzTWiCrXqqFBZKej0+JseJCbh+QWewiB6bsd7OGeobDboa1E6iyeLhDO8OXeY0izwSPAuYjc/HcHtw28nrq8WFk9eYkGDmw0m3TXqNSQbbxh8fTDxA6QcPWy4xwX1Ojnpn5cYQTGcn9us0WMIKpTBYh+vBlMFM/Y6uHyfjBP868OeuhhCmH6C9vvMpC/gdrsMnv3P2eLTRg6zasXSE2x3vN6diNHD+OzjgbLeOzitKcBWt4+3W0De3vpe7cf9yP0/3HSZmoM2cagbhcayhb3juO5IK21ZD7GdBT0JCCLEkcsdl0U1ICCEWorB5SjnssBo3502ot/K6nDB0coE0Bg4yXi5ax32O0h5vJ0ooKL3rKJK/prr6JtcNwpna6BiiBAd8ig+zHThQIvjrqnRlpKkOzgokOHBYcfniTZPeX2tQ3hmvE2Tm5S+UcaIgUX6PXc2541DqQzWkpXWqQFZqXblyLkOf3uMPgwM1p9THGpSihmsTpbmqS8GmHOLLsu3Y9nO4kteUitF248fH12uKNS6U5mrqJ8q50b+/BcmDG7gGUd5zi3Vc9ypOSYjA66Ry0my8r+g47DNBqaPOy6KYKcB0d29DehISQogFkUU7j8RKIYQQ54aehIQQYklmmSe0uyxyEyqhgJeZheJ/NO5jZla2TfjdSbMTbdQ9i9bBAETWSo797nPTxWEV9xpmWlPTvbPvps+dAs6aMGwXjyIWv+Oxp83qlpPX2z6Nk+EseTOvtbuxA9hQQ4XnsHutO63TpAhnfSVrcBkkPvvkCZ4lDz2AfcDCapxcge/x2hr2B44PnCU8x1XmHx4cHyrdmFB8zRd9PBbhEqjh894lifvfGvY7Ku7W07WNYyh4THIFDpFcWgUnKJysk2kvspNHRfrMpqeMR8uhfXxd+fMVpm1LjsuiJyEhhFiKYqZSDjImCCGEOBN6Esoy302o761sjyzauXSB3slaqK1QkaspCQUlGZoxJQHsrmXld7ObUGtuYPeO/hI5Q5IC27BbZ98enyXPxwMlHRd0Csu1lQ+63FQQYLpJbW9btu+m15EE15LiEVmsc8GZpdcrQyIrt1+GJDOQd9Bq7CUzDtEcX+4soaccYOq2g21jYUe6MPGsVCBxR8kOZmZNEGA6OD7w3apGiXJ8GbM4gHRgvcfg3qA9tlTjMcHvrsG1yTIbtocJDLnQUzdtoo+fUHwhPPw8XEUurzOiJyEhhFgQ1RPKo5uQEEIsyQ6P58zBbDehwvrkaMskD4SDdFNrEDmXEH2FJxvDTFnmmCKv8IUztRhO0EaX2T2U53y4JTrdaPvQnjuimC5AcmULpxtlG64N5GW3G68HhGTVyuC3yecHTwVKeLlZ7lUgrfntkLyT+S5arypATstsE+W0urmWlkPZmFylPVw0PimEwmOD69m5/XgdOHYoreKxZsdal3HoIU7yDBx1TDRskk3cgH3Cc7ftYmk2eibh842/jxq+6zkpF2C3nJkpMWECehISQogl2eEbyBxIrBRCCHFuzOuO2x4evSTJLZwEmvsLIZhE6hdhi9Z42zzx1dX5YYfdyRfUdODkC9c3H7Dq6gHx7gSOQZTg+BhE5cJ93SJ/elso1IOhpTzxNHLB4WuWRqJ6QlP/CJy+3LjrLdceuqp8DSIOoBx3WKHkxsutigaWA8mt27h1Vs3VtFy7gdfj0pyZWQ8HFV10NdXV2UJf96pUk6gI5Fem4wJO1+H6TyiN4TGdfO4CBxxvKzpfQ0DqC+pMmZmt4HjhUciV6nZV5HFysluOj2kQuixjQhbJcUIIsSSK7cmim5AQQixFUcwzWXWHx5V0ixZCCHFuzDomVBwnJox8d4yLnMyMpyBOK8exkYqK1QUW7UEYKWzXt50ZzAi8xn4Mh2eBQyEzbIo1YmjDJSHgGAy17UJPq/Hj2JQ+MeFav5deN+nUb7ZUYAyG0HxgKHQtI9W7WfKZP3OiP+5yAabROsPxnRsPxHQWa3g9sHIH9m1MSajIbo0F6+rtlfQ5jldmpilUXRrrWdV+vGlbpHPZ4tSEwg1sUF8TOAaDqQicUJArPBjhxvBgoIVTOqrgxERjOGY0xgTWabaPr8t0jHFcFPeV0xOi81+6Y+AvxiiBYZbsuB1GcpwQQiyJsuOy6CYkhBBLoiehLDPKcZ0VV751+nLwV0H2MXVCYGix9bKEn1qfdq1beVnqWDYcbDJXT2hKP2mdqW348jvjs8D50R8lOExGcHbSwp/eTZvkS7RhT60Hg0TyiZmX4LLL4aFDSzVZr9f1uKTjQkpJOqrK8XUqsOtWZHVGK28Ndmu0YZuZlTa+nEtFaP21ibZslOCOpzWYDa/LApZb1yl8tl5d9P2GPnR4zYFKmzUTg12/qOJ0X1fzCZMVMlb3iJqeDspifLvOCp5Jacht36VnFONW97ZjeRDt+tPSXBrXxoXjDc5jKpAxQQghhJgfyXFCCLEkmqyaZV533Oa6tNB4WcEFMeIJcdIBObwimSsXdIpONZDgBmWTi6APsNzg4TeS1tCFxwOQ4N4rQDIrWbZDOc059GCZjLSHEtwWagY1hXcPouzmUhYmO53GX5vFsluNklAmOHaFkhvJcZWT6iCtoELXUjxLfuUkuPG0AzOzGlxU6wJSDcxLRSi7VSChrdokra03l33b8L46fPTkNUrYxfaaW6eo0/lbwTWyv77VLdeu4WcM56GE30pJUhbO/O8CuYlTDVzfbNxJaDaUjk/6ANvhbYZlt3PXDJw/n34Qu273inS+vHTt18GUDHQ91vA5H59tEfxzqjGhLHoSEkKIJZE7LotuQkIIsRRFMc+T0A4bE2aV4/rNdTmBXWsdTipz+kx63WYmrqJe1II0Usfdd4Gfbez4cf1xNYhIwsN9AJkE+1DwZDVsr0cpIjfxNMmI6HrjMFKciIouOJTgcHKqmZdJXJAnBz5maqak9f17bCPndIvWWVWx0w1ltyoK68zIcSitrEGOqUiOW/Xpul1hsChJwDV8h7WBcBJqtbnq1qmufDO1dyXJcf230ufNN7/p1ing2lxBHw5W/rwiJTjnyiItV3BtINDtcJLlVJmNQ12RSA7LrYP9wT44yc3Y9TbeHrvosD8oCaKcxuvsdVdHl8NQ4mFdp/i8iBg9CQkhxJLs8FPMHOgmJIQQSyJ3XBbdhIQQYkn0JJRl1pvQsf16GBiKoaM4BjMxEdENMsAYzN6+Xy4I8swV2YvW73m8KbB/93V6zUXJulXq3/bgtvR6dcEtt1ndkl6DxbqF08M6O473YBJCZMM284XN9msYD7nFLeYKhCE+4NN/h+M4UcEznllfuYQCsE5TkgFap3GMoMbxHbJRr7o0VuMKwsEYzqo5dOtU8L5s0vhQQddmAd+VmzQOdDJFwcyKyz49pL+cxoG2X/v6yeurX/ryyevL/+8Ri7jzrm+cvF7T9Vz+Dzgmt6T929YHJ6/xujIz62AcEqcW9Jn562hNd0G7hCu4WMRjKIg7R1AQEM8Rj4sWsE7vLNY0lgXflRAEm5v2sNpeHf3cj9n6/tTVhhc3s5mMCZlj9+2OnhOFEEKcG5LjhBBiKQqbZ0xodx+EZrwJlZX1Fy8dvc6lGkQ1hEjK8mkKSW5CmaxZex2pr8Z3h2WyCEwu6KhWEX7XQphkU2E4KtXlATnkapEkuE3vA1W3fdrWZgP7B/LZtiM5DuoBYRhpZMM28xLcresk29y252UpV0MI9glnr/MMfJTMXF0drMVCklkY/tlR+GeHCQXpu9qFgvp1arBIYzAoXgvloU81MJTTmvGQWzMza1J/+iupje5aWr991Mtx20eS/frKfyc57uufT3LcV//t6xbRNanf33XpdvcdXvXltdSf9X5KVthfeTmud3IcXNslpHzQ7xiTRyonk9FvJfgdovxVclgrSGv4XXUtyZ1Ru0ffQb+p7S6QzEtIqMi2jfXHQDpnTbpYBf/OaEwoi56EhBBiMTQmdBoaExJCCHFuzPYk1Ncru/aEpxy9nuhG48d41x60gS4UTBFoqr1wHTfLmfrTFeOSIPazJedL5FRDaY3L+25aKKHdpdcsrW0hLQLLHjfgUkPJzcyX5O6CMFJOQkAXHEpwFyqa3W8grYGchrPKWVpDyQydTugsqyiFAp1KWP66ImkNpbYKnGnmpBUvKZZXkxsNEzMKTM+gZI/+EKQfWA4DeI8+SPvUHYIEdzmtv3nEpx9sH03fHT6SJLPLX0mfX/6CDzB16/+v9B1ux8ysOkznr1yD7AYyEDv8WkhdwJLgWEacHavR77ikUuahu9K56+hagNpJTjIDN2NP108Pv1GsvRTVCztaCRyeLlXFt+3+LdhLUjqmNnQcEBz9eyY5LovkOCGEWAoZE05FNyEhhFiQXk9CWXQTEkKIxZAx4TTmGxMqSjvcv+PkdbwcFtOqRl8zfrnUdkvdxzEZ/K6begIx1JvGbXAcCGvJ41gPJxTg2A+O9Wwa3zaO/bQgU+M40GBMiEK+x+A0bNTq3diRUXG3Ynx8B19XrOkH40DOetvxOFJgne68po/jQM5uDa/LjR8TcuNAqP1jH3iMw123uByNreEYUYcpEmBnp/SOcpXGC+r9NI54cEey8d/+TH981hfStXXrd106eV1d9EXtDBM84DWOZaBN2cyshfFUHHNt3ZSDzJjQ6sAi8DxH/xZUdI5bSFGfPKUC/y0BizZfZziO7PYBkx0qHt8Zn5LhClDSvythEovIoichIYRYElVWzaKbkBBCLIjGhPLMdhPqisquXi+oxQWivF0aHqEtfrSNwg7bHhMFvOQRFeoatA2yGYZy4ucN2a2xPZTjUHLDz4/WSe1tm/Tdtcb3pwWZDJWeNpDpjvpqN4VPQqCZ8SitwbnMBVhGElxOokCpprBYwnE/YrcOLFN7OcV9hxJe2BvzBx9CPYstWYPRDryX5KsS9rW+EMtV3Tb158ITIKzzwO/D/u2pjQtPemLazm0+MaG7NYXjtvupqF0Ds/tZjsPpDXi8m8y0CcQVv+NzXEXLgbW9jP/pccGkmSQDlO2aej9eDvqHqQ8FHgNKcommhbikidx16jqgJ6EcehISQoilKIp55gnt8NOUbtFCCCHOjfnccVbYNTt6JGZ5pw9q3GDtkjZzP8R10KXW0Tooh6HcxEkGLBeOrZOrxYPbwdctzRRv0BHXFuFyXeCIA+PVZDku9wcTSo8YRsrHI3LBoawxqLFzBmdQlGpRkNTnAiTReZWRdFzfsK1AzjvabtqHHs1bpFAVZXCQ95MkVHb++GBPO3DuHUAw6fpWL/utb01y3Or2JLPZhYtuuQ6CfJt1WqetIRWhInccHLumhNQPJzex+wuuHzxHdDjwesL2nCzGcq6Nt9279ck1BwoaphV0JH9xUsdJey59xR+fPnDk+mVIjovEXlVWzSI5TgghFkTGhDy6CQkhxJLImJBl1pvQsdut6eNmUeZCOS2SyMxIgsvU2MHH4bbP/fUxLrtFTjkzcsSBzIYOuIEcB++3DW7T96ZxUt14jwfzJV1QaXqNf3SxCuC+y4WRBi44lGOGf92hnAayVkZmizrX08TlHsqF86TCEDxgcDkWcO56khALN/EUDl5L/a6DcvUQZlru+3Bd1FzrW5Jk1sGs47L2gaqri0lmKy9ASfg1leqGMNIOZCV0jA0CeYt69DuUyFleQlkKS6tPpUCJPDM5Ha+/ymBCMjtWMbA4U0a8cEG+6fhwUC6C1zfKldHkbTOzphpz6BXZyfvT2d2nKd2ihRBCnBuS44QQYikKm8miffNNPF7RTUgIIRZkHjlud5nVon2cYMCabAmFoHB8J7Q02jAN4ZgtFIrjcR8c02FbNoLrVbgO2q0zY0JRv3kcKRq3aWiIwQUCBIekmngd43Jc1K6GsZW6BN2di82FYaQ4hhLPFodDOtm67X6ohe93B+MXaMvFhILBoBkeSGfrBk2f+4BvMAC1pBPWYaIEgEMCNI5U1Knj5RrCNtdQmI2s36tb05hQcQuEkdKYULtK77cwDoTpBziuYebHZFpMLnFTKOg3AP9cNOBb5/HcCgNwDQNDYft09MMxYVispzGYKACZx2pcQUpIYEBbNo6RmQ3H0E62049v82g7wTiX3HFZ9CQkhBCLoVIOp6HnRCGEEOfGrE9Cx4/vLIW5mfHB60HoKbx16QewzEByg3VyIpAPKh23Tg/sqYEVG2v0tJlQUZTmOpLt2oyqNLY+LxdNyGYVAOU4lEmmhpH6ZcjePCFQdXKqwlT5Am25HHQZHEhnH6/r8DsL7L9mZkUX9A8lOD4pYOWO6g71tE4BNYiKvSSzdSuyaKOs5JIDYulo249b3dGinQsI7uH6qSghZdODDRqWK9xrSumANlgaO+kPhav2booHnFcOLA4SLvA6bwqqJxTI+Ri6zAriWOpLb/NMVr3JvOLHNZLjhBBiSWRMyKKbkBBCLEjOgCXmdMf1hTXXS10XpM1McZPl6vdEYaTsYDtLqCdKY10gzfF7fI0S3DCYdLy9cqBdjYeW4jq8D6VzwaXXYMKyuvLbwTZQQhmGkZ5eD2ggUU1YjsotxbLfxGJJvs4QOZOwxHMUgMrnwUlmuUBdlJWwC9CHtXejla5QFATEHoDMtvUpBCW00e9DMOna1ypCR9wWZu27VARjaQ3ccfCbcpIb/75QPodj12bkd//TT8tVLJi7ax2TOUBezGzHBaCSPIjruX+boG8tpbx4eW88aJn70waOXpFHT0JCCLEUxUyxPTts89ZNSAghlkRjQllmvQkdy2O5h9I2mAw3dXIpSwSIb6/ALxxDOey47fSaHWxd0AeW4Pw6NrrczZbmzhHtm5mfmIuhpYPJql0maPQ6uTBSlOZQghuWQ4Z1wCJY0F99WE8IVa0CdMiC++zmvoK8g9IcS4iujDNIhUE9Gl7HqnF33dF3sF1wvZWrevS1mVl5IU1W7WGCajeoDTReSwcluIbccOh8iwKHWWZDcr9XlMNwOfycr1OUB13dIWzLeHLoeB/KzA8Mf8coCQ4nx49Pqu8C6TKHSjnk0ZOQEEIshlK0T0PPiUIIIc4NPQkJIcSSSI7LsshNiO3WuVDEsWXM8okHETyOcwzP6I7CSHHcZqBZw3dNML6Tu9YiizfjJndn2nMF6sLQUwqWhCDOGkMmO28NruB9rljYFHwhvHg5J1nweBMWvMMxGGyQn+kxhcJZudHbTqkBWICvhWPCYZY17BOujuNSlR9jKDDRoQYLfBWPoOLYUVencaDtylu0N1V6v4W0gi2EjLJ9+Hg6hZlZZ+PX86A4HOxtGySfmPl/VFwSAvQhV8SyxuFcTDWgfYiux9y/HdifTZAacbTd8eKbbjw4WzgT2pIxIYuehIQQYiF6m2eyqmJ7hBBC3DiaJ3Qqs96Ejo/TIIwU3kdJCJyygFILnsIOl8vZtWGx7cSZzKWrRzTNeo1pBRwyGjFIP3BfTlsn+m4FUtGKEhNqkCKqHuU4CjB19XIwYQB9z2SjDn5oLn2h9UKJk/qgPQ7bxOspmsnOGmcB++pt2SClsW6D1xZLda4/bkPQB0yh8DZqV28JJLicnRhDS3voT0sW7W2R3m86CDPN1O46y1SJqThDO7S3AjmY5UH8/TdwSFZFLK6htTw3dQPbLqNkDw49hffbbvzfD/53DiVOMR0dNSGEWJIdfoqZA92EhBBiQXrNhMnymNyEXAntM4ywRYkJ1aAMNMg2uYDFqA9OWuGv0gdreDrftGkdDgx1TqNq/HOzWPrLpR/gOrhd97r00gPKIXW3OXldtRu3XBm441Ba6zkw1AVDOnsTfEz7Ce2hBDdIVsC+4SZd6Wh2V0ISgVPtUNqj7gQlwRl3TNpIP6WAV3T1lel4l1iDiKUiCC3FGkKDUt0u1DdtZwtyVUOSUtufLsHlgkDxO5bC6uDf3C00V9P5QmnL1y1CN1osq0cOv6O2T3fn5pxukdTHiQmRbKfEhDx6EhJCiMVQYsJp6DlRCCHEuaEnISGEWBAVtcsz600oGttws8pxfKgb15jNzCosOBU0xrbuFYyBNLn0g0A/9oWx3CrhOuX48Mf1/p3+2syshO1OTWDAddZgy8bjtqr8Ma3LZJ7F5OySxoSqJr3vg7SCnsabuuL0S8mlHZi5HcRjzyNhHW4XxwQx3ZrOcWTlxrbYrlvgWEQm/buIrOpoBad9cL+B4DXT76UU7QZSErblnltu20GyAuwDjgM1VFHQp0HD5/i7oR+BH4/F35c/jjg24tYpcQzQ96cqYLwSf8duXCtTaDAocGdm1sJ6btw4mDrC7SG4DvdnbFypt3kSEzRZVQghxJmQMSGPxoSEEEKcG4s8CbH85YvFjd/3cmGJKDEZPtJnZneHBe6IwE082IdwOejCoDclSo/YH+prIMGVTsKL+1PDdmqQ4NjCvoLQUrRlo/xmRuGdaEcG23LPiQITQik6ciC7JAMQhfg4ugBcsHKjtMIhtaF+EYWh0iqYrMAF81zT0V+5tT8+Lqkh+HxgM4dCdpiSwEXothDEuWnTd5EsZuYluChgmOVlfN+63+u0gpSGFuaSjinsUxcUtWOLdhQmytd97rvRftpwekPqW+bfnOCa05hQHslxQgixFMqOOxXdhIQQYkH0JJRn3gDT60JDrl4Ogo/agwBTxOsfg+0dgxJBhY/TA2fQuHMOHXAsx2H2Zo2qQDyx3oewgmQ2yGqNEhOczBYfH1wOHXF7la8TVBfpfY2OOA4wBTkOe9ZzXR3sAzrNgmDSoqK/CJ0MBLIfVYRBFxxKcM65xw42DF4N2h7IcYH0OHDRoVsPv4LjU7DctEpymjumvmG/ThBainWCzLzstoEQzW0L+8NhFRjw26EsOl4zKEdDi1Xud50+x0PVtv5awt//Cks+2bjkZhbLiN0gQBnDSPGYYKrKwA6b+uDCVTGd4tujntCnP/1pu//+++2Tn/ykPfjgg/aGN7zB3vzmN59rnxAZE4QQYof5xCc+Yf/4j/9oP/zDP2wXL1487+4MkBwnhBAL8XgoavfqV7/aXvOa15iZ2Ytf/OKb7svcLFJPiN1o3uk2rl/l5AI8iS7AkidMtuOPygOnm5sYOe4G6iZeODmZDHGTbwer4GTVadtFiQCdPGUQ4mpmVoFEhRNUy+2hW67cpPd9HdfVcaD7C0tZg5uNXWbuZOZm6QYuuFzp8Q6krBLkxW7qJe9CT8kphfWWosm8mdLh7mNnh/R967Gkd5UmqHLdmjaYlOqCe+maw1L2+HoQMjsB/n2V1XjbeIoHpeddyDFMLoXFanJANnDO/cRRnlyMUl86dzn3IEq9KOE59dU84z/d88+OK8vHt+ClJyEhhFiQuYwJDz74oL3sZS8Lv//ABz4wy3Yea3QTEkKIBVFiQh7dhIQQ4tuApz71qd+2Tzs5Zr0JJb3ea5AYtjll9rKZWQd/PawKrE2fVFmeveyDFGMrZe30aAwtzRW2Sq9bV9wLtWzaDjiAGxgOqejxHMeI0G5dufEd3x/cLurrqHmvyCa86q6lvm2uprauPuobh0Jr4RHJpbW6wTXoA0vTriYdnFe6LJ1l2wXOQnoGjcG4InkwRlH2WESOxgrh2urhHGet3OX4mBfPty+icYEi3k67gnEgKGTXtn45HNtAWzaOkwzTD9DSnOhaHB+KUzrc3tCu5bY7ulGjwnPF+L8RW0pM8IX54oSUKP0Ax5ga2okoLDVn696047EhU8d5v1PRk5AQQixGMVN57929kekmJIQQC/F4sGg/3pntJnR0v++O3wy+S8Q1hGx0KTqJznrt11+DXRolipLtl8FFsSpiqQ+cpiTbpM9ZXixdvZxYLiigcbR843GLJIWj78blOLbDoxTlQkpbSkzA/QvSEwZXDtuvTzYKchVpM1GtInaURn9J4udowzbzEhzKZ3gUBykd/bikyMGrKB0GvtzhvvoG0mvoNydStGjLLpLciNe2ma+dhdfWFqS1qZIQJoP0LHeXKF3D59RG141LelzfCmlckgH0IfNvRPQ7zgUo47FzcvVAXYZ9hc+ddEnHFO3oU/r5WPG1r33NPvaxj5mZ2dWrV+3zn/+8/dVf/ZUdHBzYPffcc659M9OTkBBC7DT//u//br/4i7948v6BBx6wBx54wJ785Cfb3/zN35xjz47QTUgIIRbkvJ+E7r77bvvsZz97rn3IMd9NqEjyTznwBiVQIur6WJqL6oiUJbqovBAQPmoTuN3IJcT7gOu42d0Y0EiP4y69oERXje83yhQcynrSFs0wxxawbDIGt64LCjBtkjsOnVwFyXEuEQA+dq6w1u9DD31AOc/VIBqU94b2MHGBpCwsye1LgseOOpQenYTCfcDuwHadi45xmp5r4ORlrpS5ky77eB1871MEYieXTyiYVsPKfx674/D67jPOTTwmubL2U8j9Ax79Vvj35ToE2iqWGOffrqMc3041kMgDd9wOmwrmQE9CQgixILJo53l8hwoJIYTYaWZ9EooeO6PA0LqEOjHsxHGhp1huOr1s6R5aFRPlC+xbFJw4CEEEWQkderBMlwkKRBmxYedUMIEXJcncxF6U41wJ76Jxy62aFExaHl5OX2x9eW/jwM7rOGmOlnFuxjpdVk624XZhgqkrR0TbxXo+LiQ0I62h3hTVquJgSfcHq6snM7DHwWbG67t3pD2VbToX7nLMlfeG67mFn2qujk0kwTXttL/G/aVJLk7niAurIrnJ1yhzoVuUHWwITr6OJLejrRajyw3OFzBVEkTHaTRBlX/t4w7WYiY5bnefpiTHCSHEQmie0OnoJiSEEAsiY0Ie3YSEEGJBZEzIM2tiQn1i0fb2VpzZjuM4NYzOoP5tZlYXOFN/fEypoLEeX2ceLdWUCBDq0dNmdPtCeKjBxw/NOL4zmE0f2GJdmS7SuaNCXTjOtur9WE8FY0KGhesOr/jO4lhJh/1G63WcCODGfio4rxmLtrM3k3BfGB572GamWJjrAx5ftEQP/m0YD9EcbCca08n8Y4PWcDd0gDbsyv8cmzolJmz79N0gzQO269ITgoJyOXK1BX3RxwQnBeCYTu/GpVK/V7W/nqPCjAgnFHTBWCrjE1fSctFv2synYkRjcMOQ2rALIoOehIQQYkGmVmn+TkU3ISGEWBCNCeWZt57QdXmN5a4SZLfa0OKIM969ZFb3frb/MRjk2GS6jxIe92ddJJkKreD4FwtLHm2R6rlU2G+0nQbWZoZ73bsUgGkWbdynGqzYuG+r9ppbp2zSd0UDwZmcmIDnApIq8ZQM6uNgG5iEgPVyeB8wdBTrAVEYau9UOzivmVpFzjodJSHQ6YokOJaKcVOY2tDjctw22vfxmoFlMLDUjGoIQWrIlmrdbLCGUIvXMGw/I8dFwZu5Glaunxn7NwaddrA+r4Pnq3JBqWCPzqQa9Bn7N26rDtIP2Aoe1T1zNYy6WB486VdfzDImtMvjSnoSEkKIBdGTUB4lJgghhDg3ZnbHHclCfOdHKYGdalNwpZqh7Yo0j8bGl+OZXu47LJNtsUOnL0G+crOmxx15DEp9PKMbH+MjyWNQGwjacCkJNh4kevQ+SA7ggjkoeW0hdQEraHMNInDoRa61ovMJDlZOu/xccCpIcC5JgfbVhX8GKimfh0iC49BTd/5d2CvWaaeNYX0ilHQKSEKovRy3LdP7zSYtx6WnXen5bvzzTcPhujZKVKXdjK/hWN9z8hfWx3J1feJa7yjH4bEaONjgeOMx4d9Q5FpzMhu17WTSICWB1wnrCe2wlDYHkuOEEGJBJMfl0U1ICCEWRE9CeXQTEkKIhegtNwX+xtrZVWa9CR3bVSseiwj0Y7S38vgOEtaSZ1u3K6CFyQOkEUeF4wwLoflxABx32cJhc+MDmfReN8l+oD8H+1d0o68H30G/qx7s8GTRLsCibQ2MzwzEfxhrgfTnAgcSaMa7K4TnZupnfoI1piVDd2hMydm88XMcq2Fbt7OJQx9cQTr2II++HPwl20e2cxcFTvsQWbmBtlq79w2kJGDBRrY343t8HY0PmfnDUI272Qfgd1XG0uSSFYJxkqqMx22i1Ab+3WIbuX116d9BOjb3MrJou3Yz/RHT0ZOQEEIsiOS4PLoJCSHEYqie0GnMZ9HuO9trjoIwWU6pDOzNmdBJxIWRgnxROlkjtmyi4MHpB9E6uM1hCCs+no8nHAwK84EMFBXgMjNrg9r0aMteUYE6BBMTKkghqBtKTNikoNL+Sipq1x0euuVwqn2x5yWitCHf5+gn4j5nq7NbEI4Pz8B3mgxIfah+8bWA2+qdppM+5usCrelo1x9IfXDO3T5hSClNRQgkOLyGt5SYsOnTsd+0kJjQ+n5vG5Q/bfT1YLsuWBS6CcdnquSWIw4LjttzUxaC3+fRcjb63UAmc9K1jS5Xs627HP9dO/md5LcymgKhJ6EsmqwqhBDi3JAcJ4QQC6J5QnlmTUyors+I5xnmbrkueGQlOQUluBpcXW4mO0kcLczAd+62gQlq3FnWT3wwxPUbiBHoyMGWc/whkVsPpYyK5DjsAzriVm2S1uqtrxNUQA2h7lp63V6m5aJQ1v399JolPPgK0xQKlO0qck2iZJVz0UXXE5zvnpYpWA47+SKXaoABpqm9wflxfYWUDpeywP/wRNd9WqctV+67Fh1xkAjA7jicqY8useCnZmZxYkKUvmBmVuNPKvPvKsp4+Nq50TKKaxktl63XNR56ym34PozX7mK8oRLqeNHvvXbvj6TV3vLnYSq77LvTk5AQQiyInoTy6CYkhBBL0c9kTNjhR6EZ3XG9ra7LPyyN4F8CLdSNQScXS3h1UAOmgQl9POmvxRLIGdkOwbZzDhsnD0LZ7BqCTRvzcopz8mXdO+XoOs6901GpbjcpNX233iTXW7W56tYpLn/r5HX7aHq9eeSbvt8godUXDtLnoCuU+97J5QJNsXbOGtx17IyE7RR9vJz7CdcrWAzOXeWPvZNQsKQ3BpvmNCVXgpu+w/MFsh9KcHw9D9xyx/2BPrSF/zn6kt7jkpsZO8tGN3MmWLKrynGZjCdpRhIc1vIZroPLYTAttHVGG9UKrpMqkOOy64NLFSex1iTHNfJ5nQk9CQkhxIJMtbN/p6KbkBBCLEinMaEsugkJIcRC9DZTee8dvpHNeBPqT2yxZbelb5JWWjd+nGJsGTMKfMT1YZk2UxStMgjezNl/J1hnzcw6DMTEZAYcmyl4v4PUh35aYT9nvabjhmMMFYwJ1TgmdMWP9fSXHz15vYVxoO2j3qJdrvz4yknb+IYqxRXo360wOaAb/dzMrKjAYo2JCZlkBTe+s8qMIwWhpziYUbbe9o7jOD2Oa5GegtemT0KAMbNMoGo0DsTJGQ1YtDeQksDF0+YcB/Jhn5nvxkMsrq+HUwtgrAcL3GVSDdy4TRmvE8GBoz6oFK3caZucdhKNF7n9pv6sgnUkx+XRSJoQQohzQ3KcEEIsyC5LaXMw302o761ujmbRD2arZ+Ww64uQxRYlCxd6CrPFWWbrnF0W7b/0eA7rOWksKmRiXk7D/jgJhyQ83I5Lc6DlsA/Olg0BpCi5mfk0BJSVqsMkuRVXHnXrbL/29ZPXV/47vT585LJbrt5PMle3BRs92LDrWw7cOuUarNN47DA9gWW+OkhWKP2+uknzwedZsD9wjXB+aemnxqdVBvWEYst/RCTBNWU61jjFwCxOSWjo5+VSEuA1ymlst54iraF8Zma2rsftzXXGbo2vOckA8fbtcUs1E9XvGkp94xKcCxjOjNvgvuaWa/vx62JOuXQX0ZOQEEIsiFK08+gmJIQQC9H38xgTdtncMGtiQrkN5DjApSlkjmz0t4OboV757hcQAFlAegHLdiVIW/gd9pslvLYeT2roKgwwjWUalPCOg15P+gPvnTTnHHBUGwgkuOPjbmZWXElJCP23vDvu6pe+fPL6659Pry9/xbvjDu5IUtuFJ6RjdQA6ULehfVinc4GJC9VBSjYtV3S+0EWHCRmtv37wWnDuOPx8kIiJEi64FnMFd+DaRKWuK+KfiZeNq9HPzWIJblugHHc2nxDuRiTB1XRpRokH+DnKb0ffQXhnNS65mfmEglU1ngDCMhtKcJhEUJfpOss9UaC0xnKcDyodd8rlapO5kGM83+Tr2vb6m/4s6KgJIcSCaLJqHt2EhBBiQXZZSpuDeSerXq/7U26o1gxO1KvHa8DkJpSGEl6mbpHbPE1KrKA+UVjThkuUY02joD8lO+pAquthAi9PZEQ5DvtT9uOfc18LkJuKbZLtmm96Oe7y/3vk5PVX/y254y5/wUt9tz8T5JSDtA/rW0ECrMnBBtoPTvREdx3LcSE5N6UrDoPak2+7dxNPg7pDg/MFE0eh1HZb+7DWFkJ0sSQ31gPiMFKciIouOJTgmo7kSpCR1iB/7a8pXDc4XC5HlqS10gWGjv8ruaL6T6tq3LXGLrXVBGmtpFpbK5jojWXt1136twTDi3PgJG8zkrj7cdmObdT4XfRvU0//Rng5/n+m5WRMyKInISGEWAgVtTsdJSYIIYQ4N/QkJIQQC6IxoTwz3oQK66/bmFlBLdwsdbA3r5J9l89UtUm2Yae9VmiP9hpxZJcuyMrdgSaP1l60//IYTOfCNl3VLotAndmnLISruEfTHsT+vopXwjGvAou+VTc+s9/MbH0h7ev+7cmuvb41vV5dvMWts7o1vcdkhBKK2pUX/Dq4XLEH18K+T2Po99J63Tothykbfe2vhXYFYzUwbuOL2lFgKIz9OBt16ceEGrh+NlCMr4XAUbbrYhhpE1wAuSJrt+6DVX7t1+dA02PQOr2u/PVcB8kB+Hqv8oG8qwICdQsYVyWxCC3NOB0BCzPyNIUapiC4qQlNGhPqSkrcCH57BQUEu3FWHD8Nih3yOlMSX4Zt3JU+lzsui56EhBBiQRTbk0djQkIIIc6N2Z6E+rK0zS13mNnwcTjCyWksnF64c3SdbZ3kmG21775Di2yXSShYt+kRn2sfHcOJCV05Lsflahq5WjGZ5XBbaC8Ng1bNrIJ+r+GYrEASWJGMcOdd3zh53UH6wfZ/eYv2rd916eT1hSc9MbV3+8XUnwsX/D7ckt6jtNaDtNav/fnqMIUCpdSVX65ZpTbQHh1Zpc28nNYU0DZYolu6/LfOOg21fDa0nKvzMy6zcegp1gPCMFJkTYGhKMFdqNM5Qgu0GdmJXTpAOv/rwlvq0Qa96lLbeJ2tGkrpQGkNZDL+vaPkxTWbTtZp/e+uwGkTKJldTeG6/YG/5syFB0O9L5bPUGZvx/9t6inhtdhuRpfDQF6uj2XVSB2umWJ7dtkeJzlOCCEWoreZsuNuvonHLboJCSHEYhSDp+KztrOrzHYT6sravnXLkXTDj8MojSA8s9mvA86nYOiKyyFHTiWesbyu0+M+uny4xC/SGYZbgtsvc3Fgf9AymJud7WqcwHI1STArSCyoV0km21/fevL6YOUlqjVIFt916faT1+1lH2BaXUxtlLel5exC2o6xtAbvUU5r10lKYzfjNpDZ+HpBdxo607YQUstpAy3IZCifOTmOrgv8bou1fMjNhnLaNpDZWlKE0MHG9YCO4SQEdMGhBHdL6c8XXsMlJgLA65rqUaFEHQXoojPt6D1IZvC6JGltipuM3adFA/8WQOJKcejL2vsOgQM251h1obVYfAnDTLl/zehyuH5v/vcVJbjIop1HxgQhhBDnhuQ4IYRYED0J5dFNSAghFkLZcacz35iQlXZY3jL6HaYG4ziHq93OqiwcdUwaztV7R1stvm5orKcDFfIQdF1sL6pfz+B4TkfqJvY7NzjJM86PwaTiLc2m34L9G2eyt+v4lJb/Ayy2uB3W3VdpTKa79bb0eg3JBTTe1MI4EI79oKW+pRnvmyqNCWFxNx6b23ZpvW0Pr2GsB8cA+bsGx2MycRV4jtBSzX/JujGhBseBICGD1sF/iHC8CJfjNGxsD6+RFdmtcRwIrfs45srJ7dE0iiIYUzKLi1VymnQRfIftDYZf8YIsITEjl/qRSStxoHUax3owhYT2tccUiiJYjizZfR1ZtGcwFezwXUhPQkIIsSCS4/LImCCEEOLcmC8xwYoTSzLbZVHaimzQOfkL5Rgslct/YUR2ad7mNZBaou0WEx+hu0Aq5O/YDoxg71g6PIbDJFsMRHXF3eAlWLfNzOpbYGb8tTQTvSS7dQ9yXLuf2mhydutAdsNUi45kmy1Y2DcdbLP3EgzKnJsWwkPhOmOZDa3TKLN5ycyfEyfbZezW+F0fyGy5cQCU3cqJfwa6JASSjqpJqR9xh5zs5uzMfp0ew37hNYd/Wj/+XZ95JHA2b5Tw4EByqoErlpkrcIn97uYTf1iG7McSE0zZcachOU4IIRZEclwe3YSEEGIhFNtzOjM+m3rZDEF5BSUqlNZqo/o9sBxKVDkHG37nt+OpAocdynksn0Xr5GQ2lFDQvcX9wfYi919Bp8pJf6BEoFRTFt7Btq2hNtB+SkVgl1G7l4Iim1VyxLVYb6emkNFyvJaTC3GlhAtMPMBrJFeLB11vKLm1JGOiPLdtxyU4lkm6bvw7/kckdLdN/JcCJThUmFiaw3pAGEbKrjUfegvXj6uVlal7FaQNcP0elLwGKQlA3IdMvS5cH2s+oczGSQyBHMcyWdhP7EMuZSGAJcC+Gv/nVHJcHhkThBBCnBuS44QQYilUyuFUZnXHTXG+XW3TIz5KXA1JNSinoPSE6wwnNcIjOUp9JNu1TpIBiSHj4otKKGPLvPf4GI5SD0tHFYaWBvLgwDUHbeM3JdaWKf2VuwGn2j5MLh3UToI6P/ja1fKh+kgYOurkOMNJw17eQQnO7WsXXwteuoSF2Cnp5LRxmY3r+kTGsE0TL3cWUIKrYVfXtW8YS3JjPSAOI/UTUeH895kDhN+gBAfnDmsOHbUAMlnGjBYFDpc4eZYnwqLbDvoQOc6OlpswoTSDmzw7mHA73oaT4Gidrh4PauZJyMKjJyEhhFgIGRNOR2NCQgghzg09CQkhxIJonlCeWceEjsd7VlSADdMK62DcZUsic8VtBMu5zaD27z7360QpCdmCZ8GYEI5ldJmHZhwH4vElHDcpcfyrjNvDR1jcGzfeRQ+6qPej7t5yGGkFVmx4jeNAaL3mtjFktHNjQjzWA+1lbO+R3d6nFfC4TXC+zvAPAk/Uj/rAy0W4oQxn0fadw98Kjs9gQTqzOIw0B57/aP3BOIkbQ8n8DoPQ0qymFNiqvfWaznGwTkk/78gmjmM4PC7qrp9gOy2NAeF0BkQW7Tx6EhJCiKXo83FFN9LOrqKbkBBCLIjkuDwz3oT6E/mAa7u45IAg1YAlssjuHUluZrENui5jOyiCM/AH20XZDfqAbfPFhpvxpe1jqW9VpwV9IKY/pm6fMI0hYzPHAEiUOVq2moLshpIH2rDZos1pCCefu+QLkvAwjNbGr4uj5WAf4Nj5ekJ0TEd7M53Ikm/my9A0N66EOdkOJdea5Dj8Taw6CJ8lOQ6JbMcsZYX1hJzFe9pRHMhigd3ancdVLPX5xuGYZOoHYbpDzj6O+x0Gt9J3UQIEh/g21bhFW+TRk5AQQixEb/PME9rlhyndhIQQYkEkx+WZ8SZUnMzqZ2cSvmOp7hhOBEAJD11CUSjo0XfpNSYHDMozB2kMSFSbyGwo751sk+SUbTueCJC7KCeqD34fqtOllaM+gEMP5AuuR4PJCFEwKc+K90kP6GbLSJwu/DNTdrsbl+2cdEQHqwvqAbl+ZlIWkFy2pZNcM+c1csTlzjHKcSXISGXPpboDWSlIQhj0Lfg7e2oQKO9EuB6G82acd7gPpTWjn5t5OSwXYBqVJfcL+beYDhEFnU49PnLH5dGTkBBCLIWy405FiQlCCCHOjVmfhKIJgkgbyCEsS0R3RxdMSrKYk6icVOPbcCGoQdvsYEOwbVynImmvdGGr0O+KJ8b1o+ugc4rdWpEk6OSqQGo0yzuDoj+70BnEcqUPW8WSznFwayR5slOyLMevmTYjmfq6TJH8SrJxIJPl/pJFpxzKfjxxFWsF4fnH0NJV5fcbS7qvmuSOq5pD3+/gXKJjbBBGGkwoxc87ckBGbjue6BmBx4DdcC60FLeTm5xejsvdww1jTSK8loJJtWbWQXAqynFuuYEMOexrb731M+hxvfU20Ax3BMlxQgixIBoTyqObkBBCLIjccXl0ExJCiKXozbo5HoV2+EY2X4Bpb7a5bknmmd9+fGZck8fxHDNzKYSor+cKz+E4yQbt0XQCcbkSZ+BnxoHKYHwFx2oK0mxxHIgLqCE49oPHoQvGiszYjj4Oj9FVWFQMZt2zHh7NXnfhj2RPbeBSQlt2TquPrMGDpIeMrTpsOwgGRbt3znrtxvN4/CvoAxao4/BZ3BaOA+HvYUVW+1Uxfr6qxhe1wzELN27nxkxoOsOENAS2IDd1CrPFayEXoIrbwTDbQQFIF6iKg2vxuE80RpWzf/t+Tyx+B69LmM7Aa09tT3j0JCSEEAuhonano5uQEEIsiMaE8sx6EzqWPdgajBLath3f5ECKCOoJIVx3BukyEk7rLL8TpR607MKbdZ36WZO1eOsyRmNpDvuKMg7KVWzJdmkDaC2GddiWizPt2ebrWB2Mtofr14VPWWgsWVp7ECoKZ1P3MklksWaLdgVSS86W7dpw7aXXPfSnZPk0aIut92jLjqYZDKYcuO9QgsPz5bezKpLsVsP5KkiOQzA5omxBOiL3cK4eUFqGQ0+n/WsayVIu/JPkQb8ttE6j1EgybSDBDe3fUfWteJqkl/Ci/eH1I3lZd6EcmqwqhBDi3JAcJ4QQCyK/Qp555bjr/49cT2beqYSPYSytYTgplvrGzzEg1MysAhkn9wSM61UuHBX6SdIIuuCqwG3VlOzqSq9RTqvp+TMnHY71jUEZJ5eS4LYJs+nLflp9mpwS5mVAqImUCSaNnHPs6vPyHNQnypwvvLiwB/44xuc452acQs4dh+5RXI5lSF/bBwJMWy+FOpdYebrMxjhZKZOEELvgYtda5EzL92dctsuX954WLBpJc8N1wK0H5wGTFIahsCPXTO8TUc7MDit6ehISQoiFUD2h09FNSAghFmSWJ6EdRsYEIYQQ58ZsT0JFkTTtnL16C1qrS7CmPxbQdoypBqibV2whhbeYSMxpDDhmgWNUDQ6NkLyLbVdBgjVbbC2w8m7baeMkubE1txk3Foap1bENtq8g4YASukss4gVN5PpTwez+TQ/Fxmz83Jn5iw8PPY+ZbYMkZXceK78PLnnCe9hPaGl3eBznpC0aH4r+sEXrdkX7UAbjQPhb4d9NacE4ECdcuM6Nj+kMihAG40BTC7VFydtH7/F8YdtxWkG83VjLwuu0c0Xtpo6L5cb9IMEe0sRzx6cLxuMUYJpHcpwQQixFb7OUctjlQSHdhIQQYiEU23M6i9yEeGb8tW48uNDJM/Qky22Mfc62ZbQ659IGcDl0ruBybB9G6ScKwRyUhgsSHXJ2a7xgI3noqI0bvyynSi3OYov21IzMUYJsUtm4rZvPqTv/OSu3kxjHjz0X/fNJBuMFDlmG9AGm6TUXIfTnH2W28W2aeanWyXEgG3PiRgWhpWUb2+gjizZbmhEvp02Tr+Jg20GU52jfomWO2jg9IYUt3n7/5i74hvsQHZ8pv8F+nhTtHS5qJ2OCEEKIc0NynBBCLIgs2nkWuQk1JK2gfIEKFYYtsvOqgXXqcvyBLSd5RFKYmZ9dHyYU8Gx62CeUflBO4bbQoZWT1rA/ro5NIC+aDWs2pfXRPegljj6QSYpsYsK4o4lrJ+HbIgiJZHccuvfQGbYldQcTMzCJM+euRPAc+VQMctSBa7FzTq64bQSvRz4/KOnhOfaysT8PdRcHlbrtorTmzheGz9I5xgBc31hah5M9gvSCoUx2+gHLhX9Gsl9Xxv9cRbWFmCi1ISdVT5EKzYIEkH6m2J4dvo/pSUgIIRait3lStHf4HqSbkBBCLInkuDyzlvc+dj+xTBY9HWMJ7lXJUg3IOBbU7CHZD7e7ASmM28blcOIobrMjOc+VBAdpBSU3duFVboIiSEJdLBeEoZ70Ofa7BitXV0x79sfJjyzVVFjCGCQQrCfETjks6e3CTEHsGZQoxwmBIM3VdMG4UuIYZgu1qQZy54TDwP1Z1TDBGSaobnmycyCF+gnN8b66tlx9o9gdV8D5wnLeZrGxEJcrM5pQv0IpK67L46M/Y0edX2/qRNgbd35FElzORTe5pDcGxkbl07mM+E4/ryyHnoSEEGJB5rFo7y66CQkhxIJIjcujm5AQQiyFYntOZZEA08FGYDzksIEwQJcO4NeJi7vBF7RMn7E0uzacLRY1+aT9bhqveePYD64f2W2P+ppeV268iorxleNt4Kx9TgTA41WCFRuPT0dzkXFMxxdJ82NCbRWMeUw8pj4JIb3MjiNkjiNazfu+Hl2Hw2PRQs4BthEuMaP3IyC+rwbLjX/OY0KYuOGL2kGAaeGL1dXttdR2s4HXZLeGXzGO9bmRGR6YDQvPxUkKOA6Ys0H7cSUcv8Jjwuvf3L+yvZ8jEIIhoy7glcOQMVVlYjhqU67D70SMnoSEEGIheutnsmjv7qOQbkJCCLEgs8hxO8wiN6GBRRvu4vt1M/o514yJbLCbdlyOMSM5DoMqqY0WtuXkK5fS4NdycpyT2cZrEzE5KzcSWbRz60QMUhZgBn6Zsfzieyfbwesqk7LQFuPniO2xNexq42Q7L5/hvnfQBjiLB+GozpYbyDN8jZVByCgvh3/Ydq7WVRya6wNMx6cccMKFOw9YT2hz6HekPICV4Do9S40dJ1GRBdmdv2kJBfH6mS442S8TbBtsl39Doe3chQ/H60zdfpyYoDGhHHoSEkKIBdGDUB6laAshhDg3Zn0SGpS3vg4+hKP8gLVheF3naAqcaRxSGiUe7NWxdBQxKAnuSjIHAYv03gWq4nL01I5bugZJCC7YlKUjeO3SHGCdVeH3e9UkGae6diWt01yzCCwDjjJJZd7JFf050xcr6BuVdO6xr3EtpwYccS6gFZbjvzbdsQ/azrn9oiBZMwpBxeDNwDVnZlagvOdku3SO1p2X2So4X8XVy+n14VXfeAXyMhwI5+qqVm4VrDuEnS2h0HrPZdWdswzSMwaux5tL7EQprAtqW90IPnh3POA17/aL0xj8csMfQW/zyHG7/DAlOU4IIRZE2XF5dBMSQoil6GeK7dnh+9iMN6H+xAnVZmr5RA/q/Pmqgsf9IPCzHZSLHpdQWpLWnCuvnVjaGNZpgvLekRxpFtfEYfyEyUx/MpM70+dU1hzCSJ3M1k2TK71Tjtxo8F1TJukHXWss2zT9+HFo+3iiMH6H1xmXxt4Gbefw1wwEVXIpapSEbVyDY2UmOkcoKTeVn+zYwXHsDy5keg7t4QznXGgpXrg5HRHXCcJIp9bvydUDCtePjjX3LRO86iZSB87PIusejNqeMqTez/QktLt3IRkThBBCnBuS44QQYkE0WTWPbkJCCLEQcsedzow3oeJEu+exkWuZMZBjeB3U+9c4PgRjDJzjeA3Gd3BsJRssCtZZHAcYzKYP0hBwvGkYooltp741NMaFWndZRBr4tCJpaMsezMDvW178qGXS6p0lFdMU4DR2NOjhwi1xNj3sQ0vqL36HNuwcOIbixlNovACvn8iWzWMMbMUeW8fMXxtn+fclCvodbhi94HDwqypeDs9LZtwmSgToYFzK2bgtHgfitqIicFO2n1uHaWHMzCchcNJDcN1PSEUwMyu77ejn3G41tlw/T3nvXb4L6UlICCEWRHJcHhkThBBCnBuLPAk1ZN9FmSqybw8SCoIwyC1IWauKZuCj7IK1eLg/Ni7VraCODktruKWobhHLbGj7xCfynAxUYfoBLsMSXhVIRxmbuAuGhBn0BdUT6uC7pt5Pn6NlOCPHFcHxzYHHtOMwSZT0ApmNr59IWkOGdYvGZ9Bz260rlzQupU5lqjTnLMg5KQtTElBOy6zjziuuPwj1jCQ4up6djDfN1p2zX49vMw5EzQWlRlbujqRHtJaXMIXBTXOYKOdpsmoeyXFCCLEQvfWzTFZVPSEhhBA3jko5nMpsN6He0iM1yxxc6+Xkc5CY2H2GsgvKIShfdDQrHrfbZUp9o1y4X2MQo42+NhumLoy1PZAUJj6Go9yIktA2c3yictqYKDCUwmBGP9YTar2rp+zG3UToiON9xVpDXqICebGPJU7XSw7/tHGZtHP7F8txpZOD0c0YyzYuPHZQt2q8bzk5rgoSLty+UY0mN6Pfub+mucecXEQSFWbwonk171obl7J4nah2UTYINFPbZ2ybRx/EKQlT6DPXs/u3xNVlysia0X5LjssiY4IQQohzQ3KcEEIsSN/dXGmLXUc3ISGEWAqlaJ/KbDehwpKOOrA3oz05sM5mk64nJC4wTrenTfpU5vHUarZ143cHq/HU6WGRPZzdf1qPh5SukJ4fp1mXmIwQpDn0POM9ve/qNS+evnPFy2C8CqyqBY/hwaWESc7ReCDjU8HpOLrzFSQh0DGI08gzScxo+W7H7f78HseV8HM+X9g/Nz6EY080A9+lVTiPP51vLFg3ebwoGHfBbQ5sy/E40I2SLyI3PtYzSD4JkhAG7U0oZDh5KkExfv2ZjY8J9TOlaO+yO05jQkIIIc4NyXFCCLEgiu3JM59Fu0/SyzYoQne83DGYeLBt44cyJ1nA57zO1NnrGEAZbXdgQQ5SH1B26ejB0j2cuwQHvy3cP5T0sDXupbNiQ1DpXpHs1jwbH4MYQ6nHvARShgXvvJzXVuOXUhEUGuT+lSj1DGSOcSlrCzIdy1+Ik3O7cfnsaMOY0hFfPyiTutyAoJ9msaW+RLs226idjR7PFw10o0zaTftJo0U6lLXofHlb9Y1Lc36bXHBxXAKOCtINu5r59wOnUUSBqizTurdxioTvQ9C2bkJZ9CQkhBBL0Zt1Z5jDNNbOrqKbkBBCLIiehPI8JjchdCqhlBWlIph5qWQNEhOmHXDNnyaoB8QyUBdMPo9cTwy6tXKpD05Og/a4365vgZuM3V94vOpyPK1gGEAJyRPba6ntwUx0cBNVe+k1SCZVu/H9gTo0hY8USOtQRsKmX9kUQkeTk+a8M6mG4+0k04xsw9fgMQNpLUo/CFxvZiTBFeNy09D9FVwn/I9aFVwzXZC4YN4dGaUN9HQt+uVcvC5vebS9HNE1k5MNpyY4REQJB2PbSl2Df1do/c5u3MUr9CQkhBCL0Vs/U2XV3X2a0k1ICCEWRNlxeWa9CUUCVuRAwwmhLIXsQbAoSnBu4iK58LYNtAeSUl35iwBdeVHQZY5IHhrU/IG3DchFOdnOfV6My5hmXrZzx6TIBZhC39DNRvWEsNYQ1pdByY1pi9ReU6T1Wyjb3fSxXBHVDDKjfQ3kXJ4o3OBRhcPA5yjqgyvNPgi3TNSBc5PBfXAlyjOTH31tIOwbdzz45WVKcBfR5Fcnhd14raOzLhcdBxd6mpHPukwdpGzI8A2Sk7uDFaybI7Znh+9jehISQogFkTEhjxIThBBCnBt6EhJCiMXorZ9jntAO63Hzjgld19t5zMOlAJRouYxPjtNxcRwgo+lj2y6MtGONOL1fY1G7DvXncDPOsou2cJ5lXwQpC0yUmIBjYezqdrPzXVE8SE/orrp1Vlv//qStzOz1roRg0gKLe1HIKCyH4x+FGymkQNUgjJTB72pXjQ2Wof7gGCPbpVNbfL7Gx+CGaRVwnWTs9r7t04MzBxZttFhvN/A5jeFFvwm0N9OILR57Z2+Gc9RVsYXeXzM8VoP7ERWoo7DWPh6/moKzcuf+wXZjXnECA7aXC1tFxq7hvp9Hjttlb4OehIQQYkE0JpRHNyEhhFiQWWJ7dpj5AkwtPY6W9DhcgSUaZQAMptyr/KMxnrbIVsvJAyinoC18qvUa5bw9CsTEGfleWolr2qAsULsgz0ydeniNs/6HgaoowWEgZrwOgvbfdu+C+66t91N/UJoDmaQpY7u22w6IWYNgUvgOj29Uc4qJwkwZ9w3KwXS+UGarMlJqFZxLPHerIiP1OFt3nGoQWq/5L+uz1PZxaQNwTFACpMBQPAq5Oj9tIOGi/MVhpF05br/2UpjfTwzkxaDdqK0jpqUa4Ha7YjxcVcyDnoSEEGJBJMfl0U1ICCGWou+tn2Wy6u7eyGYt740uLSRyGkVlqc3MSpTt4HN0R7FppXT1XNDp5B/jVyD9oeSF0kqTkcxQflhXU2WXBOdAoZPLTWSv4hSBMlCs6gLDTP0+tBgyurolvWbnFM4+D2apcynqDtIQMMixhT6wDDlVdnOhkcE5GkRoomQWtJtzLObccYhzmWUkPDxfUWJCllw9oQkSUZ+RqPogxXdQ3wjkL4RddFPcbbzf0XWWq0Hk+uAkQLrOgjSGqUkKUTgq/wbKkSutt5nccTfdwuMXTVYVQghxbkiOE0KIBZlnsuruMp8cVyRpi6UsJ1mU4065vDQyLldhEOlRH1COS583VKF620KYKKgAUZ0YM7MykBpzj5Jt4ATkttdVVEI73lIkZeUCFlGyMOf+ITnFBUiWo68HchzKKRgY6iQzkgf7cWmEl4vq/EydUIohtSgZ8zqRI3MYYAoyK7jtViDt1lSPKppA6dyDORmrwoDOPfoOAmfxfLmLm4491BPqQKZ1fSDJDPcIl8vV5YmEpKlhph4OYQXpOddeILVhv6cGm+J1z/vNsvb1hq2bw5iww3qcnoSEEGIxZjIm7PBdSGNCQgixIH3X3/R/N8O//uu/2s/8zM/Ys5/9bHvxi19s73rXu05d50Mf+pC94hWvsLvvvtue/exn28te9jJ717ve5Woj/dM//ZP9yq/8ir34xS+25zznOfZjP/Zj9t73vveG+6cnISGE2FG+9rWv2c/+7M/as5/9bHvnO99p//zP/2y/+Zu/abfeeqv9xE/8RLjeI488Ynfffbe97nWvswsXLtjHP/5xu/fee61pGnvta19rZmZ/+Zd/aV/60pfsjW98oz3pSU+yj3/84/a2t73NNpuNvepVr5rcx9luQl1f2NXmSJvOhYxiXTMc6+HCd2i3xrEf1Pp5rCDabkNt19DeIXQIw0z7nEU7sF7nZuC3mQSHqD0/VkQho0FBwC0Ul6sKP3ZQVxCCuQJtu/RjQt6SOj7G1FT7bp02sGW3mUJ2SNOlfmN6wlEbWLxufH0eItvAuJ+/LtLndcljiuk1jiPxdYVJHSV0CMeBGhIZVs6+nfqwhaJ/PMbgxnTQBk12676GMSEcH4LChV3tEy4asOhHxQrZNu0t0nFIaZh+ENijzXwCRzQmyVSRZZz63QXBu10mPSEaI0IbNo8BFSMXZ2/zGBPO+iz0x3/8x1YUhb3jHe+wg4MDe8ELXmAPP/yw/d7v/V72JvTjP/7j7v0LXvACe/DBB+0v/uIvTm5Cr3/96+2OO+44Web5z3++feUrX7E/+qM/uqGbkOQ4IYRYin4mOe6Md6G/+7u/s3vuuccODg5OPvvRH/1R+8IXvmAPPfTQDbV16dIla8DlhTegY57xjGfYww8/fEPtzvIk9MUvftE2m63d+0s/eeqy0QQx/iPCG2ROj4bPkW97vG9ngtvtR19O3oMoo47bw6y+rMOvj/6Kizvu/yLEv1B5jSAjzh2DaeUa5pgcPqW9qfNEp14/uYzC6Npyjk6jyY9t+kvf57hxW+OTTXNOtz5YJ2x3dLvjnKmEdtCH3BbDwz24Ns/Qn5vke7/3e83MrN3+t331c//npttrt1+2Bx8s7WUve1m4zAc+8IHBZ1/4whfsRS96kfvs6U9/upmZfe5zn7OnPOUp+e22rV27ds0+8YlP2J//+Z/bL//yL2eX/9SnPmVPfepTs8sws9yEju+yt+5POdlnuSAeq4vosb9YxS5xs9cP/xz3RpcS3x6c9g/8jXHBvvjFL97wWt/85jft4sWL7rPbb7/95LvTeM5znmObzZGM/3M/93P20z/90+Gyn/nMZ+z973+//dqv/doN9XGWm9BHPvKROZoRQgjxOOLd7363Xb161T7+8Y/bfffdZ5cuXToZE0K+/vWv25vf/Gb7kR/5EXvFK15xQ9uQO04IIXaU2267zR599FH32fET0G233Xbq+s961rPMzOy5z32umZm94x3vsFe96lW2WiUDzGazsTe+8Y1WlqW94x3vsLK8MauBjAlCCLGjPO1pT7PPf/7z7rPPfe5zZpbGhqZy11132ZUrV+yrX/3qyWd939tb3vIW+4//+A975zvfaZcuXbrhPuomJIQQO8oLX/hC+9CHPmSHh4cnnz3wwAP2tKc97YbHrD75yU/awcGB3XnnnSef/fZv/7Y98MAD9ru/+7v2tKc97Ux9lBwnhBA7yitf+Uq7//777U1vepO95jWvsX/5l3+x97znPXbvvfe65Z75zGfaz//8z9sb3/hGMzP7hV/4BfuhH/oh+/7v/34zM/voRz9qf/iHf2ive93rbL0+mtP1vve9z+677z579atfbavVyj71qU+59o6XOw3dhIQQYke588477fd///ft13/91+31r3+9PeEJT7Bf/dVfHUxUbdvWRfI861nPsve973328MMPW13X9j3f8z127733ukmsH/3oR83M7P7777f777/ftffBD37Qvvu7v3tSH4u+3+GSfUIIIR7XaExICCHEuaGbkBBCiHNDNyEhhBDnhm5CQgghzg3dhIQQQpwbugkJIYQ4N3QTEkIIcW7oJiSEEOLc0E1ICCHEuaGbkBBCiHNDNyEhhBDnxv8HakyZQF+cwOYAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plotpup.plot(pup,\n", " score=False,\n", " height=5)" ] }, { "cell_type": "markdown", "id": "9a1af928", "metadata": {}, "source": [ "And here are the domain scores for the first 10 TADs that went into the analysis!" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1.3514487857326527,\n", " 1.0014944851906267,\n", " 1.101405324789513,\n", " 0.8571123334522476,\n", " 2.843350393430375,\n", " 1.9848390933637012,\n", " 0.7560571349817319,\n", " 1.1659901426919959,\n", " 0.9223474219342431,\n", " 1.0465908705072648]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pup.loc[0, 'domain_score'][:10]" ] }, { "cell_type": "markdown", "id": "3f06f993", "metadata": {}, "source": [ "Their distribution as a histogram:" ] }, { "cell_type": "code", "execution_count": 15, "id": "b7a13b57", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.hist(pup.loc[0, 'domain_score'], bins='auto');" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.13" }, "vscode": { "interpreter": { "hash": "9efb0d070bf3db2e1a5750216a4099f862c9b97846de4a4c71289e8f515fd58a" } } }, "nbformat": 4, "nbformat_minor": 2 }