Last active
May 5, 2018 00:42
-
-
Save vals/7707ed62c08472164c20b10ef4428e1c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Populating the interactive namespace from numpy and matplotlib\n" | |
] | |
} | |
], | |
"source": [ | |
"%pylab inline\n", | |
"import pandas as pd" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Single cell data is [growing quickly in size](https://www.nature.com/articles/nprot.2017.149), and it is starting to become difficult to fit data in memory. This put limitations on even relatively simple methods.\n", | |
"\n", | |
"A simple and quick (albeit a bit dirty) way to explore your single RNA-seq data is through [OLS regression](https://en.wikipedia.org/wiki/Ordinary_least_squares) of all the genes. How does things you know about the cells (covariates) predict the expression of certain genes? Which genes depend on donor age? Or which genes are enriched in a particular reagent batch? You can answer these questions with differential expression tests, but when you want to quickly explore your data, you want to ask and refine these questions in quick iterations.\n", | |
"\n", | |
"By phrasing the questions as [model formulas](https://patsy.readthedocs.io/en/latest/) (as is common in R), it is easy to explore and expand upon linear models that you want to use to explore relationships between gene expression and known covariates. A model formula takes your observed data, and transform it into a matrix that can be used to solve the regression problem, which in OLS is done with an implicit matrix inversion.\n", | |
"\n", | |
"The scale of single cell data has reached a state when loading the entire expression matrix into memory is a major bottleneck. A recent file format [Loom](http://loompy.org/) allows you to store both gene counts and sample metadata in one place, and is explicitly designed to process data on disk without loading it all into memory. The OLS regression can be performed by working on a batch of a few genes at a time (since no information is shared between genes).\n", | |
"\n", | |
"The [NaiveDE](https://github.com/teichlab/naivede) package has an implementation of OLS regression with formulas for Loom files. Loom files store all per-cell variables in a dictionary-like object, and the names of the keys can be used in the model formulas.\n", | |
"\n", | |
"Below in this notebook I will demonstrate how to quickly run complex OLS regression tests on a recent large dataset." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"/anaconda3/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n", | |
" from ._conv import register_converters as _register_converters\n" | |
] | |
} | |
], | |
"source": [ | |
"import loompy" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import NaiveDE.loom" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"As an example, let us use all the data from the recently published [mouse brain](http://mousebrain.org/) atlas from the Linnarsson lab. They provide a [loom file for download](http://mousebrain.org/dokuwiki/doku.php?id=downloads), which even in the compressed state measures 18GB! The file contains expression for ~28,000 genes in ~160,000 cells." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"-rw-r--r--@ 1 vale staff 18G May 4 09:50 l5_all.loom\r\n" | |
] | |
} | |
], | |
"source": [ | |
"!ls -lh l5_all.loom" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"ds = loompy.connect('l5_all.loom')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(27998, 160796)" | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ds.shape" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0" | |
] | |
}, | |
"execution_count": 7, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"(ds.ca.Tissue == '').sum()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The Linnarsson group is very good with providing metadata with their samples. This file contain annotation of ~120 variables for each single cell that can be related to the gene expressions." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"127" | |
] | |
}, | |
"execution_count": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"len(ds.ca)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"['Age',\n", | |
" 'AnalysisPool',\n", | |
" 'AnalysisProject',\n", | |
" 'Bucket',\n", | |
" 'CellConc',\n", | |
" 'CellID',\n", | |
" 'Cell_Conc',\n", | |
" 'ChipID',\n", | |
" 'Class',\n", | |
" 'ClassProbability_Astrocyte',\n", | |
" 'ClassProbability_Astrocyte,Immune',\n", | |
" 'ClassProbability_Astrocyte,Neurons',\n", | |
" 'ClassProbability_Astrocyte,Oligos',\n", | |
" 'ClassProbability_Astrocyte,Vascular',\n", | |
" 'ClassProbability_Bergmann-glia']" | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ds.ca.keys()[:15]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"To perform an example analysis, let's see if any genes expression can be explained by the sex of a mouse.\n", | |
"\n", | |
"First let's create a variable that indicates if a mouse is male or not." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"ds.ca['is_male'] = (ds.ca['Sex'] == 'M')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Then we design the linear model for this test. The null model is that (log) gene counts only depend on the total count depth of cell, this we can write as `'~ np.log(_Total)'`. The alternative model is that the genes expression can additionally be better explained by considering the sex, which we can write as `'~ is_male + np.log(_Total)'`." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"100%|██████████| 14/14 [15:19<00:00, 65.66s/it]\n" | |
] | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"CPU times: user 11min 6s, sys: 2min 31s, total: 13min 38s\n", | |
"Wall time: 15min 31s\n" | |
] | |
} | |
], | |
"source": [ | |
"%%time\n", | |
"results_uncontrolled = NaiveDE.loom.lr_tests(ds, '~ is_male + np.log(_Total)', '~ np.log(_Total)')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"This took about 15 minutes to run, and produces a dataframe with results in terms of variable coefficientes for each gene, and gene names and P values. A quick check at results is to look at volcano plots: effect size vs signficance." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x151061898>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.scatter(results_uncontrolled.is_male, -np.log10(results_uncontrolled.pval));\n", | |
"plt.xlabel('is_male effect size')\n", | |
"plt.ylabel('-log10(P-value)');" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"First of all, the P-values are a bit ridiculous, but this is hard to avoid at these sample sizes.\n", | |
"\n", | |
"We can see which genes had the largest effect sizes by sorting by the `is_male` coefficients." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Gene</th>\n", | |
" <th>is_male</th>\n", | |
" <th>pval</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>581</th>\n", | |
" <td>Nrgn</td>\n", | |
" <td>0.602596</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>912</th>\n", | |
" <td>Pcp4</td>\n", | |
" <td>0.584064</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>17282</th>\n", | |
" <td>Meg3</td>\n", | |
" <td>0.582510</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>11414</th>\n", | |
" <td>Grin2b</td>\n", | |
" <td>0.559309</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>12087</th>\n", | |
" <td>Ctxn1</td>\n", | |
" <td>0.548048</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>905</th>\n", | |
" <td>Arpp21</td>\n", | |
" <td>0.526151</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>12018</th>\n", | |
" <td>Camk2n1</td>\n", | |
" <td>0.480687</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>570</th>\n", | |
" <td>Mef2c</td>\n", | |
" <td>0.480188</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>11411</th>\n", | |
" <td>Atp2b1</td>\n", | |
" <td>0.465709</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7758</th>\n", | |
" <td>Snhg11</td>\n", | |
" <td>0.455302</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Gene is_male pval\n", | |
"581 Nrgn 0.602596 1.860494e-311\n", | |
"912 Pcp4 0.584064 1.860494e-311\n", | |
"17282 Meg3 0.582510 1.860494e-311\n", | |
"11414 Grin2b 0.559309 1.860494e-311\n", | |
"12087 Ctxn1 0.548048 1.860494e-311\n", | |
"905 Arpp21 0.526151 1.860494e-311\n", | |
"12018 Camk2n1 0.480687 1.860494e-311\n", | |
"570 Mef2c 0.480188 1.860494e-311\n", | |
"11411 Atp2b1 0.465709 1.860494e-311\n", | |
"7758 Snhg11 0.455302 1.860494e-311" | |
] | |
}, | |
"execution_count": 13, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"results_uncontrolled.sort_values('is_male', ascending=False).head(10)[['Gene', 'is_male', 'pval']]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Gene</th>\n", | |
" <th>is_male</th>\n", | |
" <th>pval</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>21513</th>\n", | |
" <td>Cryab</td>\n", | |
" <td>-0.402684</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7429</th>\n", | |
" <td>mt-Co1</td>\n", | |
" <td>-0.403870</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>23752</th>\n", | |
" <td>Ubb</td>\n", | |
" <td>-0.408726</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10097</th>\n", | |
" <td>Scd2</td>\n", | |
" <td>-0.417720</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>9992</th>\n", | |
" <td>Cldn11</td>\n", | |
" <td>-0.436017</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10238</th>\n", | |
" <td>Mobp</td>\n", | |
" <td>-0.480605</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10209</th>\n", | |
" <td>Cnp</td>\n", | |
" <td>-0.493117</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>21600</th>\n", | |
" <td>Mbp</td>\n", | |
" <td>-0.685614</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7521</th>\n", | |
" <td>Xist</td>\n", | |
" <td>-0.955350</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10022</th>\n", | |
" <td>Plp1</td>\n", | |
" <td>-1.069087</td>\n", | |
" <td>1.860494e-311</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Gene is_male pval\n", | |
"21513 Cryab -0.402684 1.860494e-311\n", | |
"7429 mt-Co1 -0.403870 1.860494e-311\n", | |
"23752 Ubb -0.408726 1.860494e-311\n", | |
"10097 Scd2 -0.417720 1.860494e-311\n", | |
"9992 Cldn11 -0.436017 1.860494e-311\n", | |
"10238 Mobp -0.480605 1.860494e-311\n", | |
"10209 Cnp -0.493117 1.860494e-311\n", | |
"21600 Mbp -0.685614 1.860494e-311\n", | |
"7521 Xist -0.955350 1.860494e-311\n", | |
"10022 Plp1 -1.069087 1.860494e-311" | |
] | |
}, | |
"execution_count": 14, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"results_uncontrolled.sort_values('is_male', ascending=False).tail(10)[['Gene', 'is_male', 'pval']]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"These results are a bit odd! Neurogranin (Nrgn) is functionally important in brains in general and should not depend on the sex of the animal, yet here it is enriched in male mice. At the other end we see a good positive control for female mice: Xist.\n", | |
"\n", | |
"The enrichment of Nrgn in male mice is likely an effect related to [Simpson's paradox](http://jef.works/blog/2018/01/05/simpsons-paradox/). We are not accounting for other sources of biological heterogeneity among the cells, which can for example stem from biased sampling of brain regions. In this particular dataset, the majority of biological heterogeneity has been encoded in the clusters identified by the authors. We can redo the test, accounting for cell type clusters.\n", | |
"\n", | |
"```\n", | |
"Alternative model: '~ is_male + np.log(_Total) + ClusterName'\n", | |
"Null model: '~ np.log(_Total) + ClusterName'\n", | |
"```" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": { | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"100%|██████████| 14/14 [18:01<00:00, 77.25s/it]\n" | |
] | |
} | |
], | |
"source": [ | |
"results_controlled = NaiveDE.loom.lr_tests(ds, '~ is_male + np.log(_Total) + ClusterName',\n", | |
" '~ np.log(_Total) + ClusterName')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The test ran a little bit longer now, at almost 20 minutes. But there were 265 different clusters annotated, which means that in total we fitted a bit over 500 parameters to each of the 28,000 genes using the 160,000 cells." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(265,)" | |
] | |
}, | |
"execution_count": 16, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"np.unique(ds.ca['ClusterName']).shape" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The coefficients of each gene for each cluster are stored in the results table" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(27998, 5)" | |
] | |
}, | |
"execution_count": 17, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"results_uncontrolled.shape" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(27998, 269)" | |
] | |
}, | |
"execution_count": 18, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"results_controlled.shape" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x152291780>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.scatter(results_controlled.is_male, -np.log10(results_controlled.pval))\n", | |
"plt.xlabel('is_male effect size')\n", | |
"plt.ylabel('-log10(P-value)');" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Gene</th>\n", | |
" <th>is_male</th>\n", | |
" <th>pval</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>7981</th>\n", | |
" <td>Rps29</td>\n", | |
" <td>0.303948</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>8539</th>\n", | |
" <td>Son</td>\n", | |
" <td>0.290373</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7948</th>\n", | |
" <td>Rpl37a</td>\n", | |
" <td>0.275499</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>8064</th>\n", | |
" <td>Rpl41</td>\n", | |
" <td>0.261395</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10828</th>\n", | |
" <td>Rpl37</td>\n", | |
" <td>0.254863</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7737</th>\n", | |
" <td>Rps27</td>\n", | |
" <td>0.245887</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7909</th>\n", | |
" <td>Rps28</td>\n", | |
" <td>0.234517</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7878</th>\n", | |
" <td>Rpl21</td>\n", | |
" <td>0.215876</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>26063</th>\n", | |
" <td>Rps2</td>\n", | |
" <td>0.210938</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7430</th>\n", | |
" <td>mt-Nd1</td>\n", | |
" <td>0.207392</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Gene is_male pval\n", | |
"7981 Rps29 0.303948 1.602045e-309\n", | |
"8539 Son 0.290373 1.602045e-309\n", | |
"7948 Rpl37a 0.275499 1.602045e-309\n", | |
"8064 Rpl41 0.261395 1.602045e-309\n", | |
"10828 Rpl37 0.254863 1.602045e-309\n", | |
"7737 Rps27 0.245887 1.602045e-309\n", | |
"7909 Rps28 0.234517 1.602045e-309\n", | |
"7878 Rpl21 0.215876 1.602045e-309\n", | |
"26063 Rps2 0.210938 1.602045e-309\n", | |
"7430 mt-Nd1 0.207392 1.602045e-309" | |
] | |
}, | |
"execution_count": 20, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"results_controlled.sort_values('is_male', ascending=False).head(10)[['Gene', 'is_male', 'pval']]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Gene</th>\n", | |
" <th>is_male</th>\n", | |
" <th>pval</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>21654</th>\n", | |
" <td>Ldhb</td>\n", | |
" <td>-0.166891</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>23696</th>\n", | |
" <td>Mdh1</td>\n", | |
" <td>-0.172206</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>27021</th>\n", | |
" <td>Scg5</td>\n", | |
" <td>-0.174938</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>26822</th>\n", | |
" <td>Calm2</td>\n", | |
" <td>-0.191755</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7876</th>\n", | |
" <td>Rpl18a</td>\n", | |
" <td>-0.202491</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>23596</th>\n", | |
" <td>Aldoa</td>\n", | |
" <td>-0.208919</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>24090</th>\n", | |
" <td>Hspa8</td>\n", | |
" <td>-0.249546</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>23609</th>\n", | |
" <td>Ppia</td>\n", | |
" <td>-0.267310</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>23752</th>\n", | |
" <td>Ubb</td>\n", | |
" <td>-0.457601</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7521</th>\n", | |
" <td>Xist</td>\n", | |
" <td>-1.163543</td>\n", | |
" <td>1.602045e-309</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Gene is_male pval\n", | |
"21654 Ldhb -0.166891 1.602045e-309\n", | |
"23696 Mdh1 -0.172206 1.602045e-309\n", | |
"27021 Scg5 -0.174938 1.602045e-309\n", | |
"26822 Calm2 -0.191755 1.602045e-309\n", | |
"7876 Rpl18a -0.202491 1.602045e-309\n", | |
"23596 Aldoa -0.208919 1.602045e-309\n", | |
"24090 Hspa8 -0.249546 1.602045e-309\n", | |
"23609 Ppia -0.267310 1.602045e-309\n", | |
"23752 Ubb -0.457601 1.602045e-309\n", | |
"7521 Xist -1.163543 1.602045e-309" | |
] | |
}, | |
"execution_count": 21, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"results_controlled.sort_values('is_male', ascending=False).tail(10)[['Gene', 'is_male', 'pval']]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Now we only see ribosomal and mitochondrial genes as enriched in male mice. Note that the effect sizes are smaller: 0.3 correspond to about a 0.5 log2 fold change.\n", | |
"\n", | |
"Meanwhile, Xist is strongly enriched in female. It is the only gene with a reasonable log2 fold change: an effect size of -1.16 correspond to almost 2.0 log2 fold change (a four-fold enrichemnt)." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.4328085122666891" | |
] | |
}, | |
"execution_count": 22, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"np.log2(np.exp(0.3))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 23, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"-1.6735262474311974" | |
] | |
}, | |
"execution_count": 23, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"np.log2(np.exp(-1.16))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Now we no longer see a large effect on Neurogranin." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 25, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Gene</th>\n", | |
" <th>is_male</th>\n", | |
" <th>pval</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>581</th>\n", | |
" <td>Nrgn</td>\n", | |
" <td>0.050634</td>\n", | |
" <td>9.563798e-74</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Gene is_male pval\n", | |
"581 Nrgn 0.050634 9.563798e-74" | |
] | |
}, | |
"execution_count": 25, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"results_controlled.query('Gene == \"Nrgn\"')[['Gene', 'is_male', 'pval']]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 26, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"xist_idx = 7521" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 27, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from scipy import stats" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 28, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAD8CAYAAABthzNFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAIABJREFUeJztvXl0ZVd95/v93Xm+V1OpBrtcxi5PBONA2U6AgB2GGGiDielOTJvQeQR3QgxN3uuk0wsWj+6G7gTy0gkmTmOGFUa7SfwcMI3BTZ79SPLcdpVtlim7cDxB2bhUpenqzvN+f0jfXfueOpKuhiOVSr/PWlrSOfcM+xxJv9/+jVuMMVAURVEUL6HNHoCiKIpyeqIKQlEURfFFFYSiKIriiyoIRVEUxRdVEIqiKIovqiAURVEUX1RBKIqiKL6oglAURVF8UQWhKIqi+BLZ7AGshdHRUbNv377NHoaiKMqW4uGHH54yxowtd9yWVhD79u3DoUOHNnsYiqIoWwoR+ekgx6mLSVEURfFFFYSiKIriiyoIRVEUxRdVEIqiKIovqiAURVEUX1RBKIqiKL6cVmmuInIdgLcCyAH4gjHm3k0ekqIoyrYlcAtCRL4oIidE5LBn/zUi8qSIPC0ifwgAxpi/Nca8D8BvA/i1oMem+GOMsV+KomxfNsLF9FcArnF3iEgYwF8AeDOASwDcICKXOId8ZOFzZYPp9XpLbiuKsn0IXEEYY34AYMaz+woATxtjnjXGtADcAeDtMs8fA7jHGPNI0GNT+jHGQET69omIWhKKsk3ZrCD1HgDPO9svLOz7AIA3AHiniPy234kicpOIHBKRQ5OTk8GPVFEUZZtyWgWpjTGfBvDpZY65DcBtAHDgwAGd2iqKogTEZlkQPwNwtrN91sI+ZRPxcyf5uZ0URdkebJaCOAhgv4icKyIxAL8O4FubNBbFIRQKLbmtKMr2YSPSXG8H8ACAC0XkBRF5rzGmA+BmAN8DcATAN4wxjwc9luXQ9M55RMR+KYqyfQk8BmGMuWGR/d8B8J3VXFNErgVw7fnnn7+WofXR6/X6BGKv19PZs6Io25otKQGNMXcbY27K5/PrdT1N71QURfGwJRWEoiiKEjyqIBRFURRfVEFA0zsVRVH82JIKQkSuFZHb5ubm1u2amt6pKIrSz5aUgusdpCaa3qkoinKSLakgFEVRlOBRBaEoiqL4ogpCURRF8WVLKogggtSKoihKP1tSQQQVpFYURVFOsiUVhKIoihI8qiAURVEUX06rFeWU4HArxbXOQ1GUQVALYh05XdeT6PV6S24riqL4oQpindgoIbxSJaStzBVFWS1bUkGcbmmuQQlhKoJerwdjDLrdbt/nm2UJnK6WkqIo68uWVBBbKc11OWHqfu5+Ufjze7fbhYj0KYXNsATUXaUo24ctqSBOZ/yEPFlqu9fr2W33GrRMqAxWqhTWs5X5cpaSWhaKcmahCmIdoJD0CvzFjgP6hS1/dj9fTBGsRghvRCtztSwU5cxD01zXCe/MmkLYFeRrXYSo0+kgHA7ba3S7XUQig/0KB7nvcqmwi32+lGWhKbWKsnVRC2Id8VtPwhtL8H5f7DquO4nup0gk0mc9hMPhdXPnDOIOc60a1x22UiWgrihF2RqogggIBpS9wj4UCtnvFLL8zBtzcL9okYTD4XV3EQ0SW+DnvLf7PCtBXVGKsnXYkgridEpzdWfC3hmx15pYKhYQCoVO2XaVw+m00p3XUho0EK41GYqytdiSCuJ0SXNdbvbrFex+bhWvpeAGq93j1zMbKQh0TW9FOfPQ/+JVsthsmN8XE/R+KaxevLUOLJBzA9+u22mtLKd8BlVOG72mt8YyFCVYVEEEjDeGsJy7yE/weoPRQczOl7MA1sNCWE8ryFWirDJXRaEo64umuW4A7kx8LdfwCtNer7euymK58a2HZcAgvbu9FH6pte57YCKAa62pe0tR1gf9T1olGx0TOJMCvIO6opbLeDqT3ominI5sewWxFj/2IG4Xprt64xCLCUevgPNr2XG6sti7XM07Xkz4e9+loijBsa0VxEbk5HvdQIO4hfg5x+PdPh1Z7F0yNuAtsFvLPfxam5xOGV2KcqawbRXEahvPraQZn1/hm9cHvxQMaPN8XnOpZ1hq7EGx2LvsdDqnxExW6wLy3oN1I14lqopCUdaPbasglmIxwe+6N/izS9D+70FcWquxilaqUAY5fq3xgUFiPCLS15sK0PoLRVlPlsxiEpEEgH8G4JcA7AZQB3AYwP8wxjwe/PAWHde1AK49//zz1/3ay/m+vU3qBpmx+mXirJaVpsgu1zSPs3rS7Xb72mksd7xXUdJCGuTdLPdeBs14UotBUYJh0emWiPwHAP8I4BcBPAjgswC+AaAD4I9E5H+KyKUbMkoP61FJvdgMld8HLQxbbkbc6XT6juHCP6sd33oKQ7+0Wfe+g2QN8fl4bKvVsseGQqFTVsHjNfwsHT/LZDHXnHtPLZhTlGBYyoJ4yBjzfy7y2Z+KyA4AewMY04bh+rD9WCqgTCHntSh4vLf6mddi0dsggt47vrW6T5aasbtjGiTOAcwrB9fa4Hav10M4HLbP7Coe7ve7vzsunutnnfB8vxjEeteGKMp2ZtH/JGPM//DuE5GQiOQWPj9hjDkU5OCCxi2yAk4KQ1dYucVXfjEHP/+310pYbfGWOz6/WbeXpayOQWMTgx7nLVYD/NfAcMfltVb8ruWes9ga3Aze8zy/35miKGtnWaklIl8XkZyIpDEff3hCRH4/+KEFi3fG7K1RcPct1h6Ds1j3M9ft4R630tqAQV1a3uv4BbK9z7SYteAXeHf3+93fb8buWle8jyvUF3sW93n8rIxBhL+6mxRl/RhkWnuJMaYE4DoA9wA4F8C7Ax3VBuJdJrTVap3SvoG4yoDKYbFrAYvHMvyE7FrHDqCvH5FXoS1mGbhuG1fY93q9Uywh1+2z1KzffS8rVXRLPd9y6FoTirK+DKIgoiISxbyC+JYxph3wmDYMV3h1u90+Acjg66B1C+61vO4P9/PFLBFvgHype7oBWkJ3jN+KdUsJaVepeIPKfpYBlYbbfNC9Tzwe7ztnqRiON9DsFzD3PudiLkD3PL9jFUVZOYMoiM8C+AmANIAfiMg5ADZ/pZ414s3W8bqKVltjwOt6z49EIssGphdr800Wm2X7zfSXc+e4bhyvkHbdO153lDfm4ioKd33scDh8yjtxr+8dmxtwZpDbm03F8/0WWtpKVeeKslUYpJvr3caYT3NDRI4C+N+CG9LGsVSe/WJZNl4XjitkXeXiCtPFZtF+wVwXV0h6s3yWwi8ovJgl5KbhemMpfm40v7FznN6AvnvP5SqdXaXmKh039uH9/XhjKu51/d6BoigrYxAL4k53w8z/x98RzHA2Ftcl5BX43mCpN0+fM3e6adwZv6ssXFcKr8GfyVIupW632+cG4n35s4vXTeU+pytE+Tndavy50+nYfe4zeAPv7nnGGLTb7b7ndi0B9916XW6ui4nnuc9KpeDnlnOP5XWo7JYKdCuKMjiLWhAichGAlwLIi8ivOh/lACSCHthGwVlqu922dQoUfnQLURC5wq3T6fS5UdwaAO9svd1u2+1oNHpKkHex2XW73e4Tjm7dgSuM/awDb0qoN7jsVXw8xxiDaDTaN3t3FYyb0eTGbXg/Bqndmb+f+4vP616X16Fw99aMuIrDT4ExhsLndX8fiqKsnKVcTBdivs1GAcC1zv4ygPcFOaiNhkLRFZbRaLTvGG9A1BWK3ownV7A2m82+pnvNZhORSKTvGK/FAZxao8F7djqdPl+/+5k7w+cxrtvHe23XenA/d8fhPrvXBcX7igja7Tai0Wjfe3IVKMfiFs7xe7fbtcogHA5b5esqInd8rmJxr+nGklyXlLqaFGV1LKogjDHfBPBNEflFY8wDGzimZZF17MXkncl73RPe2St/Xiom4H5Oi4Rwluud0bs++8XcI35C1ysEafm45wAnrQ/3OJ7vtUQWc3d57+uNAXhdSt57ua4qv/fuKgO/z73v1hu8doP1ajUoytqR5YSBiIxh3mLYB0ehGGM2PVB94MABc+jQ2oq5vYKfQsbPX+8Vgu65FPyRSMQKW68/3T3fLxDLbW/Mw41juK4vV6jzGFeBuNfwEg6HbewAOLU1iIhYd5j3ffBd8LqtVstaRVSItMjc89xZvndW7z4z3UOuReSNE3mVOK0Q91xvJpWiKPOIyMPGmAPLHTdIFtM3Afw9gO8D6C5z7JbFdZlQAFHA0OXh9fu71kGv1+tTDu6M1p3xUnG4baq93zkOzvq9s3+6mejCcmMGdPW4s3tXgbiWimt9uPv4nK1WC7FYzI7NO27gpDvLFdTRaLTPLeQKc6/14MYevMrEvQaVbSwWs++Avx+eS7eUN01WrQlFWR2DKIiUMebfBT6STYSzZ3e2D5xMAfVL43RdT94gML+i0ShqtZqNZ3DWHovF+oSkG1j1UxLuZ96MKQpsd1xuNbMbY+AxroLxKkPXCnLjAG68gNscoyuUvVYH4TnhcLjPFeQXe+H7o1XiF4T2U3hUpN53qCjK6hjkv+fbIvKWwEeyCbixAbo/3HRJCsRGowGgv/oYOBkToEByM5mAeddLPB7vE8yJRKJv5utmJvEa7ne6TNhGm8LQVSreAjt39uxaIQDQaDT6tr1ZSN7MIfe9uBlMXheY6/7hOP2gwuO77HQ69hy/rC2Oz83e4jPxHbTbbZsO7HWDKYqyegZREP8G80qiLiIlESmLSCnogQWNqwC87iVXgLtuHdfC4DaVhSsg/TJzAFjXC90l7loKXoHnFcKRSMSOVUTsLJ/jYR0Dx+3e272uN0vIG9D2BoNddw+3vS4vPr9bF8LrtNtte7635sFVcO657r3cWI57vqsMXKvJrRHxVqIrirIylnUxGWOyGzGQzYACFTipDFzXjPuZ+921CNxzXPeNK9xcd5Qr+Lw1AQyytlotq2CAeUuEMQ8KaB5bq9VsnCASiaDZbCIej/e5c7zP6w3keq0C9zkZbKYAjkQitmbE60ZyLRlexw1Wu+m3XouD3xuNhnVVdbtd1Ot1JBIJq2DcGAeVpvs78LrPFksLVhRleZb9zxGR1/rtN8b8YP2Hs3G4wgw46d+mYHVn8pytu58B/dW/3Pa6i9xrUVi58Qp+7sYjOLP3cz+Fw2Er8KgMXHdSLBY7RSD3ej00Go0+hdBqtfriAuFw2LqxXCuq2+3awLervBhHcbOSGKjneUB/NbRbW+LGTfhuAdixeF1ofD+uQqPCc9+f9/fqZk4pirIyBplauWs/JABcAeBhAL8cyIg2GHfmzG3XF84ZeywW6/PdR6NR68/nbL/T6SAej1vh5s1+cqEg63Q6NrDrbjebzT5h2Gq1kEwmrQJptVr2PDdziveksqNiYHC82Wza67hZR1RerpvKvZ4bL4hGoza+ApxsB8Jn974T16Jys6xc5RoOh6314MYYqFRc5UtFxHfEbV7bzTLj8aogFGXlDOJicquoISJnA/izwEa0gbhFa/zebrcRj8dtBXSv10MikbDB1V6vh1gsZpVDq9WyAjidTtvteDyOWCzW54aKxWJ25u6tV+BM3/1OV44xBolEAo1GwyqtSCRiXU8coxuzoHKIxWKo1+swxqBWqyGZTFolRMXHd+HO5N2UXuBkd1Ye51oqAOx4KOABWCXmKh83jZjP2el07LPw3q41wvES9x0x9ZX7OUZ1KynK2lnNtOoFABev90A2GjeG4AaN6dd2A9b0xXNW3G63+/zfFJT1er0vI8d1r/D6xA3M9no9ezyFI60YN9jL724mT7PZBACrBDibpzVDYc64gzt24KRLy1Us3nRfb1DZL6WUrqdGo9E3Rl7PbQLoxns6nY59L3RzeTOZ+O6BebeaG3dwY0VuXMXNSFPrQVFWxyAxiFsA8L8wBOAyAI8EOaiNwE3RpHXgCk3O/gndFHT/sECt2Wxat1Q0GkW9Xl/UheMWlbkWCYW3m+kDwM7IqQgo+NysJNf6qdVqSKfTVmjy2t6W3vV6vS+WQeHPimhmO1FBttttJJNJeyyfiQKY27VarS+m4brV3HgMlViv10M8Hrf3dmMfPI5KTkTQaDQQj8ft+BqNhg1guxXgVILASYtHlYSirJxB7HC3l0UHwO3GmH8MaDwbgptJxJm7N4XTVRqsKOaMnu4N+szp5nBdN67vnNeKxWLWEqDgp1LyZt94s5Bcl497DAU/hSkDzbwvBbMbdOa2G+CmsParGqe/n0KXAWqeS9cZYxNUrHRD8X26cRc+H115tGqoRLzj7Xa7SCQS1rKisnXrKvjFwHooFLJxElUSirJyBolBfElEYgAuWNj1ZLBD2hgopCi0KFjpTmKGEAUjg7tzc3M22BuJRFCr1azrhb5xFsS5M3wKb9dqqFQqfbED3pMKiedXq1UkEgnUarVTCvGomChYKdApJClcKdBzuVxfjMMNqntjGK77zB0301Dr9Xpfhlej0ehLi2XMhJZJrVazSoXxGxFBOp22lhjjCs1m074bWmtu7yhaV3z3jUYDyWQSpVIJqVTKKoNarYZUKrWRf1qKcsYwiIvpKgBfwvyyowLgbBF5z1ZOc3ULrlw3Cf3XFMzNZrOv7oACkP59ujjoHqHATqVSfYvv8FzXmnC32SZbRKzC4UyZFg0DzrR82MKDs22eE4vF+mbhvE40Gu3rFUUBy3EQ3tO1Ylw3jRtHcC0cviM3duKN2wAnu9u68R0GqDudjnWlua4x1/Li8a4rjjEWvhOOKRKJ9GU3KYqyMgZxMf1fAN5kjHkSAETkAgC3A3hlkAMLEgrjarXa5xNnKilnvBTebOUAwGbM0B/ONNJOp4NUKmWDtSJirQG3ytnN1+c4XPcLBSuFoHsMf6YiAE4WvyUSCTSbzb4geSwWs5lVboCZrjFaGXRtuWm8ruuK2xTktApoLTQaDZvFxPMYK3AL49yUXipPWmOuQmk2m3bW71VmAPqsOypDurkYs+Dvz1WKiqKsjEEURJTKAQCMMf8kIlt+OsYZrJtB4/q43XRPt/8RcQUWADvLpZCjIOZ93LRM13dPheGt4nYD1pFIxAo+1iG4cQgAfW00XOsDOGkp1et1m25LhUjl5jbZ4xjcTCPgZJzEG1OgcqBbylUOVCpuPYdbNOfWQbjvm5aTq5AYs+B5bvCflheVquteozJVFGVlDDKtOiQinxeRqxa+Pof+wPWGIyLXishtc3NzqzrfbX7HgC394/Sv12o1K3CbzSaq1Sri8Tiq1SqazaZ1Q5XLZWsx8PharWZn56w/EBGUy+W+uoFqtWoFIIViOBxGuVwGcDIFtVQq2XHzeApjxhuq1aqd5TcaDTvuWq2GVquFZrPZ5yqr1Wp9QfVms2kVhmu5MGOLn1WrVVSrVQDzSqnZbNrx8p3W63UrtNkuo91u27G5wXXGF6io+M7cMbfbbbTbbZRKJatcarUaKpWKtQCprCuVir0GlaB3kSVFUQZjkAWD4gB+F8BrFnb9PYBbjTHNgMe2LKtdMIguHwqtSqViZ6z0f7szfdfd4vqy3Qwjxgfcega3OR9ntPF43Coh1z9O5UQhy5lyq9VCIjG/BLibeutaATyHY3DTcxkP4H3dmb+bSUXFxedjhhfHQpcNlRLjBxT4PJeuMF7DjZtwbFQ+boCbxzMmxPExE4puMTewznPc9Sj4vFTYyWQS8XjcHqMoyvouGBQB8OfGmD9duHAYQHyN49t0aEWwuI0z9WQyaRVFt9tFKpVCpVLpUwx0azAtlLPddDqNXq9nrQ9m47APUyqVQq/XQzqdtgHvWCxmFQWDrBS69XrdxjU4U2YlNGfXtAJ6vZ7NsGKGEZUOhT1dWlSQtD4oxOPxOEqlEnK5nFVQbiDedWvV63U7m280Gn0uMaagMhssmUyeUjgIzM/2k8lkX6YYFQTTU8vlsn135XLZHpdKpey1qaCZVUXlQEVNBaqBakVZGYMoiL8D8AYAlYXtJIB7AbwqqEEFjXeGT7LZrI0T0NfearWQTqf7CtIA2Fk0hZ1bWJbL5awScbOK2PCOQsy9BjNxGPDtdrvI5/N9s/t4PG5z+3mc29eIn7M1B2f8vJc7i3ZrCxhINsYgn8/bFhydTscK4EQiYd02rrIBYAsDeY1EImHdZn6FbLRGkskkRMQGpKlAmAXmvmsqR+CkJcV0VipId2EmN87h1q9osFpRBmcQBZEwxlA5wBhTEZEtnVjuunLo7mFGDGe6lUrFCmgK2WQyaVtJULi7mVAUTBTe3M8ZL60OuqzoPqIyoa+fwWR3WdFEItFn2dBlRWuBMQXGD7yuHRakuW4gzrIZC3F7IVEZ0FKIRCJWEVBpMXjM52AWEZ+TrciZSsvx0/Jx+yXRcnDHxXdNS40K2O37RMXNrCpei9dQ95KirJ5BFERVRF5hjHkEAETklQDqwQ4reGKxGKrVqs2yicViNuBMATczM2Nn9vF4HMViEZlMxgrGarVqZ/Bukz4Kfe5jDIH7eH0GjCmQq9WqdT1VKhW7f2hoyMZMGo0GMpmMzZqamZnpyzaqVCrW1UWhzIymSCSCcrmMVCplrZBisYjh4WGrMOn/p6JkOikA6zrjDJ/um1wu11fLkM1mMTc311cjQrdTvV63rrVWq4VarWaVH4C+lFwqSTZGBGDjEVQ8AKwSqFQq9nfpZj7RwtBgtaKsjEEUxIcA/LWIvIj5QrmdAH4t0FEFDGe/DIoy84WN4DjLd7N+WB1Nfztn/ayRoKuEM2oKaPeYdDptLZNqtWoFFu/BgDXjChTmc3Nz1l3DVE9mCVGhcF82m7XuFFYn0/1VKpVsvQSFaygUQqlUskJ1Zmamz49Ptwz7N9EyYWZWNBpFsVi0P4uI3ebMnjEQxhz4Phh4ZpdZb/sTWht0ETFGREuPiwkxo8xtSMjfsds7Sq0IRVkZg7TaOCgiFwG4cGHXk8aY9lLnbAUYbKVQcdcgYFUuMD9rzmazKJVK9pxsNotisdjX0dR1c7gtIui7p3KJRCIolUrIZDI2PbRardpZuesmYl+jdDptZ8ztdhuJRMIGunu9HorFIqLRqJ0ps5AskUigWq32tahguw7GWThWCnwqBaafArDBdWZ9iQgSiQTm5uZszcHQ0JBtc8F4QKlU6nOXNRoN+06862vwd8Lz0uk0ANj3FQqFkMlkrCKnu4xWGrOder2eTTRws6O0/beirJxF/2tE5DXGmH8AgAWFcNjzeQ7AXmPMYb/zT2fc1ErOnClsOLulL52BbAaqWQTGLBo3PZQCjjNwBqgZm6BbJ5PJ2KByu91GJpPp66tEwckAshvMdQvuqCTcpngUkFRMnIW7jQhp8dAdw26tbp8kvg/O2HlPt5Mrg+JUMvl83r4DxnnYrZXPw7iBu9gQr0O3Uzqdtm6jZrNpg/7M0GI6MYC+wj0qgWg0as/n5xqgVpSVs9S06noR+SSA72J+BblJzK8odz6AqwGcA+D/CHyEAUEXBIu5arWaTQ11XTjZbBahUAjJZNJuM8W0WCxaoefGLijImH7JLJxyuWyDyhRanNHTZcKFhyjQ3R5RrM1gew+6jTijZ4yDze/c/kZ0W7Hgj0K/UqkglUrZQjsqJabnMv7Aam66dRhUZiou02F7vZ61JhiwZ+A9lUqhXq9b5cBn8aaqunUOvA9bm7gtP1zlyBhNJpOxv7tIJIJ0Om0VrLqYFGVlLKogjDG/JyLDAK4H8M8B7MJ8cPoIgM/SutiqUDgz6EkhZIyxlcCxWMwKGqZ2FotFm+VEtw+VCvse0R2TSqVQLBattcFZOYUuLYZSqdTXkrtSqVh/P4UpA8Sc/bNmgGtA8Fn4bACsy4oClfUcbs+peDxuK5J5LM9316h225BQMdZqNZt5FYlEUCwWbaZSMpnE5OSkTWnlu6L1xlgOM5L4RSXI4/nFLrTT09Po9XrWquD75bM0Gg2USiWMjIygUCggFAphZmYGO3fu3NC/L0U5E1jSMWuMmQHwuYWvMwY3LdUtJmMa68jIiPW10zVCHz1n3xSKdCcxUymdTtuZaqPRQCqVgoggl8v1uWeSyWRfb6R0Oo1Op4NCoWAFKpVSJBKxwWpuJxIJTE9P2+vSBca4AV1jDIaz6M8trKNvPp1Oo1qt2pk2W3OPjo5axcdV4uha4nMzfZfX4PMy+6pSqSCXywE4uepdMpm0YwDmFdDo6KhNi6ViYiyBvyMAKBQKti1KKpWy1s7o6KhV1MPDw8hkMtZKYjGf+7tRFGV5tm3kjv7qRqOB6enpPrcNZ+ukXC73+ceZXcQaAdY5UDAyq4atJNxZtuueosvGGIOpqSmbnuouUtTtdjE3N9e3/rJbR8DANZUJ4x5uWwxWObsBYzf1lu4hxhjc5zfG2GA04ysAbLCZQXRaSOw3RevHbexHhVCv1221NC2WSqVix5vL5VAul63rjfUXtJJoDbmKulKpWNcU3Xn8PfNZFUVZGcv2YjqdWW0vJmMMTpw4gWKxiFKphGKxiLm5OdvWIRaLIZPJ9KV2svLXLQbL5XKYmZlBJpPpS4tlqimzfjhzpwuGvvqZmRlbHUyhGQqFkM1mbYFYuVzGWWedhXK5bGfInEX3ej2Uy2VrCfHZCoWCDUK7C/AwYEs3EC0Lpp7SSmDn2KmpKcTjcTvbr9fryGazfZXTvGe9Xu/rH+XeP5vNWldaMpm0NShMmaWw5/ttNBoYHh62sQ0+m1tHAsCm6hpjMDY21tfGfM+ePUgkEshmswCA0dFRZLNZtSAUBYP3YtqWaR3u+s6ctbrLaYrMrxVBC4CppUxppeupWq0im83aWgdm7LhBYe+Mm+6bVquFbDZr6wDosnGFebPZRD6ft7UOdJmw8plxCAp8ulOYqsuALsfm9kJyZ99uW3COgSm77rrbrGjm++A13GZ+tKbYYsONPbDGg1YHXWAM6ruV1ACssubvC0Cf+4n1I6lUqm+1PVotVGyawaQoq2MgF5OIvArAPvd4Y8yXAxrThsCeP2xRwaCpuwIaBTNn0RT8rHKenp62aw0wfsHANluBcwZLgc8ZLF1LoVAIuVwOpVLJulVoZVAJlMtla2nwOhSuDPhSsPJzCkv+HIvF7Oydwhhcbiw8AAAgAElEQVSADQxz5s1zmMHkZly5a0C7brTZ2dm+NavZTjwej2N2dtYqvXw+f0p7clZS0zIDYBvzuXGVUqlkFQYD25FIxKYIU2nzd0EFPzQ0hB07dqiCUJRVMMiSo18BcB6AHwKgX8EA2NIKgjNhCkO2/aYLg0LVLfKiQO50OiiXy7bzKa0BzliZ8QMAL774IgqFAqrVKoaHh60bx01BBWBTPIH5oG21WrUpn7FYzKaNsscRAOuOYdZVq9XC0NBQXwdZ1y2WTCaRyWSsy4fFZ25bEQreqakpO05mCSUSCWs58DlYEd3pdHD8+HH77N1u1xa8cVzPPfcccrkc2u02CoUCjh07hng8jqNHj2Lnzp0oFosYGRnBkSNHMDY2ZlNZmTGWSqUwOzuLRCJh3X8AbCfcXC6HWq2GTCaDTCZjt2lxKYqyMgb5rzkA4NXGmPcbYz6w8PXBoAcWJHQjuSulMajLKma6QNx2EpydA/PumNHRUZRKJWslUDAbY/pcQr1eD5lMBpOTk2i1WshkMrbfEpUQZ8EA+mbUbHHN7KK5uTlbaEcB6a4rMTs7a60QjoG1AXS30MJhLIUuI9ffn8vlbPtsztyZLktLi4Fyt1qc6apuPIC9nijwk8mkzcBiE8S5uTnkcjnMzs7aRoj8/TDIzCC9m65Lxcj2JXT5MX7B2g/GYhRFGZxBXEyHMd9/6VjAY9lQ3EAuZ8ksVuPsmu4MunGMMRgfH0e1WsXo6CjK5TJyuZwNZAMnaxvYkM4VipwVU+Dv2rXLdmKlW4kpuMPDwzb1tlwuY2xsDL1eDzt37oQxxq7ZIDK/Uh1n/q6So+uIwpbpsslkEqlUyrYf53X4LLSo2M2WRWxsEuj2mOI18vl836pvvD/TWr11JaOjo32dXlkIl8vlkMvlrFvLjR8weM73xedlHKRQKNhnZApuLBbD0NCQWhCKsgoGURCjAJ4QkYcA2FXkjDFvC2xUGwhdRvS3u24k4GQLDVoGDDKzIAtAX649ffypVKpvDQIKKbdCmMLOFd71et3OtlnjUC6XbaU3hakbiKWLJ5PJ9FlFAOyYGUMA0JeKSsuEnVCBk+3Q6aJyFx9KpVLI5/O2Ch2AjVO4lgtdXxwDcDLriAsjMaDP8dId5abZUtHw3dGKo1XEJoBuh1ym09LS0swlRVkdgyiIjwU9iI2G1bVTU1M4fvw4jh07hqNHj1q/+8TEhE3PZHppoVCAMQYTExMoFAqYmJjoK0Kr1+s4++yzbfCWMYdIJILh4WE8+uijdtbMNuOzs7O2FiAWi+H48eOIxWIYHR21LTk6nQ4uuOAC/PSnP0UsFsPMzIwdF4O3IyMjMMagWCziggsuQK1Ws4qHBWysS6BwDYVCmJubs5YTlUIymeyr5D5+/LhdmCccDiOdTmNkZMTen8KftSEM1nPlO7baGB4ehohgbm7OZm9NTk5aV1U+n8fMzAx27dqFiYkJZDIZFAoFlMtlq7zPOecczMzMIJVKYXp6GkNDQ7aNB5XN+Pg4RAQXXnihtV6mp6eRz+fVilCUFTJQHYSIjAO4fGHzIWPMiUBHNSCrrYNg4LNUKmF2dhZTU1OYmprC3NycnY0CsK4XBmbZPrpYLNoZLrulJhIJxONx20CP6Zi0HJhmShdOsVi0cQQKegryXC5nU0oB2MprLk7EWbW7xKabWspOqIyJuLN71mowkMxU2UwmY9+Nu4aEazkxYM4GeoydELc5Ht8XrTO+R463XC7bQDqfkdlJrM5mRpkb+2DfJvf5XbceXWU7d+607TZ27NhhM54URVnHNalF5F8A+BSA+zG/HsQtIvL7xpi/WfMoN5larYajR4/imWeesZW8lUrlFB83U1wp4EulEkZHR63CYMYRaxpYGdztdjE7O9vXMZYxAbaLoJBlrQD7Ks3MzGB2dtYqhOHhYRSLRduug72IWOTGugeusU03C5v9sZqZ6aVu4R2L++i+okKka4pVzIw3cN0JKiQqGn7utkBnGmo2m7VZTrRU3H5SVCpUUK6Scl1wpVIJc3NzNuV4ZGTEnpdMJvtW7GM22tDQkLb7VpRVMMh/zYcBXE6rQUTGAHwfwJZWEBMTE3jsscfwzDPPoFqt4vDhw3j88cetS4iuppGREYiIdWNwuVEKNHZD5eplyWQSExMTdmW1cDiMYrGIfD6PeDyOeDyObDZrXSNu7IBKI5vN2vRMNshjEDqZTCKfz2NqagrDw8MYGxuzVdt0AdFXT3cUYwTFYtE+R7VatZ1dKcy5JjcVGutEqtUqCoWCVT7hcBgjIyMoFou2TbiI2AykRqOBoaEhm2mUyWQwOzuLXbt2odFooFAoYHJy0ioUptBOTk7ajKVYLIbJyUns3LnTBrbdzrcMpDebTWSzWRuMnp2dxc6dO/Gyl70M5557rg2a79q1Sy0IRVkhgzhlQx6X0vSA5522uG4P5uWz+ypTLtvtNnbu3GndUFzkhgLJbe/NFhBcttRtzU1hSncPA6esxGa7CWb0MJ7BGXyn08HQ0JANKrNWg+09pqambNM6pnPSlcQWH4xzsHcSW3bTDVStVm1rETcIzIWTuI8B30wmY7uo0nqZm5tDPp8HABsopsXEQj82IGQDxG63i0qlYluo870xVjE6Omqb7BWLRZtqy0I/KhNaD8eOHcOOHTsAwDZYHB4eRqlU6ktRVhRlMAaxIL4rIt8DcPvC9q8B+E5wQ9oYCoUCdu7c2ZdOuXPnTrTbbdt9lH56YD6wXa/X7SyULSzYUI8rxNFFwtoEVjIzPsHZOd0o9XrddjdlEzq6pSjEp6am8JKXvKQvzZbdSpmu6vZaoksJmI9DMDDe6XRw4YUXolKpWLcNlRwLzOhuchfhYeUzALtSHZUAq8q53rS77gLTY+k6A4CLL74Y5XLZtuamsmW6q1tEyHdEt9HU1FRfpXmtVrMZWclk0nZ/LRQKSKVS2LdvHyKRiLb6VpRVMsiSo78vItcDePXCrtuMMXet90BE5CWYd2fljTHvXO/r+9FoNDAzM4NnnnkGzz33HCqVip2V0vXBTKNKpWKDz/R1Mx7QbDZtrj+Dum6zOsYYMpkMhoaGMDQ0ZGfSvKebHjo7O2uzgmg10KqgAqAwZRtyxgpY5c1jmYrK+zOG4FZC8xgANtZB1xSzkRiwdusS2BKj1+v1pafSjcRaktnZWQDzAXu202CgP5PJ2Mpouq8Y0+CMn4WFAKxVxkaLbCjIwD4LDHfs2IFEItHXVlxRlJUxUOTOGHMngDtXenER+SKAfwbghDHm55z91wD4cwBhAJ83xvyRMeZZAO8VkcBjG5lMBocPH8aPfvQjPPDAA5iensaDDz7Y1wgukUhgdnYW+Xwec3Nz63bvXC6HarWKkZER6983xmB0dBRTU1PLnn/w4EEUCgUUi0W7NOfIyAieeuopALAFe2520WrZsWMHpqenrbvMzXhj+ux6wUruQYhGo33rbPvxile8wrbg6PV62LVrl1VOiqIMxlJrUv+DMeY1IlLGfO8l+xEAY4zJDXD9vwLwGTh9m0QkDOAvALwRwAsADorIt4wxT6xi/KuiWCxieHgYF154Ier1Op588klkMhm7bgOtgNHRURSLRdRqNZRKJRvsZaCaFbv0t7NNNWsBmCWUSCQwNDRkC+E4A2dwuNPpYGZmBnv27AEA65aZnZ216xzQt+5mNblxiXPOOccWzCUSCRSLRZseymaDDBpzNl4sFm0sxnU3tVotjI2N9fVd4upxbiW4233WbfHN+AIzoqLRKNLpNE6cOGFbcLCuxFUymUzGWmq0JtiJlq272X6E62kwrsHCvkwmg3379iGXy2Hv3r0477zzcM4555xi/SiKsjxLLTn6moXv2dVe3BjzAxHZ59l9BYCnFywGiMgdAN4OYCAFISI3AbgJAPbu3bvaoQGYF0jnnXcehoeHMTMzg2KxaH3fwLwlUSwWbRorFQMA29aayoFuKAqxUChkM4p4L2biALAtLJh9NDs7a4PlFHx029CFQsFM11Y4HLa+fAafWdXNYjk22HOD17w+lYi79jXTZt32FOxTxUwtVogzRkHFwGdxO64CJxdnYlYRV6Rj51i6w9iwkG4zAFYhUcExZsEAv7vSHdey2Lt3L/L5PHbs2IEdO3ao5aAoq2TZ6ZSInCci8YWfrxKRD4pIYQ333APgeWf7BQB7RGRERP4bgJ8XkX+/2MnGmNuMMQeMMQfGxsbWMAxFURRlKQaJQdwJ4ICInA/gNgDfBPB1AG9Zz4EYY6YB/PZ6XnMx6MOv1+s2DnHkyBHbOZW1AFNTUxgbG8OJE/2F48x88jI+Po5KpWLTZ1nMlc/nbWptNptFqVSy6a7GGBw7dgyjo6N996G7heTzedth9eyzz8aLL75oezQxVuBm8ZRKJXt+oVCw7crHx8etq4utQ7yce+659jz2m5qcnOyzVtxuquzmyk6u4+PjqNfriEajmJ6exp49exCPx/Hiiy/aJUZ37NhhnzcSieCss85Co9HAiRMnrGvJC9ftZkJAuVxGPp+3NSUAcMkll+D+++/Hvn37cNFFF+Gyyy7D8PAwRkZG1L2kKCtkEAXRM8Z0ROQdAG4xxtwiIo+u4Z4/A3C2s33Wwr4Np9VqoVQq2WwYAKfkynuVA4BFs2KOHz9uf3aFuxvknp6eBgDMzMwseR/3fF6Drb4ffbT/9fNcnkOhTtzgt59C8PLcc89ZYUw3VDQaxeTkpD2GAhnAKcLcfQ8A8LOfnfrrdZ+30+ngJz/5SV/KsR+MV7i/I/fdZjIZPP3002i1WhgdHbV1HxMTE7jooou0mlpRVsgg/zFtEbkBwHsAXLuwL7qGex4EsF9EzsW8Yvh1AO9aw/VWDK2HaDSKSy65BNlsFvv378dTTz2Fqakp62sPhUKYnp5GKpWyraTdzqJDQ0M2s4c+dQZCWVE8Oztr15WggGJPIXeVOnftBbbpYIttrsSWTqftzJ9V2JyRsygsm83aNa2Bk51WWdjHOAHv58Y92E+Kix/RkmIqLAP4DEjzegBswRwrv/lOGI9ot9t2VTzWaDBWwzberN+YnZ21ldaMN7TbbWSzWaTTaWQyGRt7SKfTNu2Ya33v2rUL55xzDs4++2zs3r0b2WwWzz//PM4991xVEoqyAgaxuX8TwC8C+IQx5rkFwf6VQS4uIrcDeADAhSLygoi81xjTAXAzgO8BOALgG8aYx1cyaBG5VkRuW8/0U0VRFKWfQQrlngDwQQAQkSEAWWPMHw9ycWPMDYvs/w7WUI1tjLkbwN0HDhx432qvoSiKoizNIN1c7wfwtoVjHwZwQkT+0Rjzvwc8tsBgkHp6ehp/93d/h29/+9s2HdWPZrNpq4E3klqthmKxiBdeeGGg4zdjjBtJsVhEsVgc6Nh4PI5rrrkGL3vZy3D55Zfjla98pbqXFGWFDOJiyhtjSgB+FcCXjTFXAnhDsMMKnhdeeAHFYhETExNLKgdla9JsNnH48GGUSiXMzMwMXKWtKMpJBlEQERHZBeBfAPh2wOPZEI4ePWoDx5dddhle//rXY3x8fLOHdUaSSqXWtVCNFdxc85tV4S7RaBQXX3wxXv7yl2PXrl0YGhrCs88+q0pCUVbIIAriP2I+oPyMMebgQlO9p4Id1tJokFpRFCV4llUQxpi/NsZcaoz5nYXtZ40x1wc/tCXHdLcx5iauP6AoiqKsP4MEqS8A8JcAxo0xPycilwJ4mzHm44GPLiD27t2Lo0eP4sSJE/jCF75g8/KV9cdtJb4esO5kqW6u7XYbR44cwZEjR5DJZDA+Po7Xve51tpW7oiiDMYiL6XMA/j2ANgAYYx7DfHHblqZUKuHw4cObPQwlYJ599llUKhXbBl1RlMEZREGkjDEPefZt6Sn3U089hZmZGezfvx9XX321rjh2BjI8PIw3vvGNuPzyy5FKpfD4448vu4aEoij9DKIgpkTkPCysCSEi7wRwLNBRLYMGqRVFUYJnEAXxuwA+C+AiEfkZgA9hg7quLoYGqRVFUYJnySC1iIQAHDDGvEFE0gBCxpjyxgwtONiYr9ls2iZxyplFKBSyDQV7vR5e+tKX+tZMKIqyOEsqCGNMT0T+APMN9dZvAeLTgLe85S3Yv38/HnzwQfzwhz9EvV5HKpUCALvCWqfTQSqVwuzsLIwx6Ha7KBQKCIVCqFartuNqMpm0bTG4ShyXIh0aGkKhUECz2USpVEKr1bIdUyuVil2tLZfL2SU+a7Wa7YzKVddEBIlEAiKCbDZru6vOzc31FYzF43HbWZUKkM8xNDRk14xgV9Z6vW6717Kgjd/ZvbXX66FcLtvV88466yz0ej0cO3bMPivfS61WQ6fTQbVaRbFYRC6XQ7fbxe7du1Gv15FOp+1xwPzyqvyamZlBPp/H9PQ0otEoSqUSYrGYXRUvk8nYa7daLft8zWYTyWQS+XzedqLtdDq44IILcOmll+Kyyy5T5aAoq2CQ5jTfF5F/C+C/A7BKwhgzs/gpW4N6vY5KpYKnnnoK1WoV1WoVoVAIxhi02210u11UKhVkMhmrCH7yk58glUqh0WjY1tlcQzkUCmFoaAi5XA5PP/002u02JicnsX//fszOzmLPnj2o1WoYGxvD0aNHkc/nrSJ64oknkEgkEIvF7NKgbIWdTqdRKpVsa+6RkREkk0mUy2UYY1Cr1eySpVQ0vV4P1WoVkUgE8XgcmUzGPmOj0bBLmTYaDdvam8qgWq0inU7b1tpjY2NoNptIp9N4/vnnbWbQ8PAwxsbGEI1GMTc3h+PHj6PT6aBUKmHPnj2IxWLI5/M4fvw4/umf/gnHjx9Ho9Gw19u9ezcmJiYwPDyMVquFVCqFZ5991iqcer2OcDiMubk526I8k8nY4ycmJlCpVJBMJjE+Po6pqSlEIhFUKhXUajVUKhXk83m8/OUv3+w/NUXZkshy7hURec5ntzHGvCSYIQ3OgQMHzKFDh1Z17le/+lXce++9uOOOOzS75Qzm4osvxoEDB3Drrbcik8ls9nAU5bRARB42xhxY7rhBKqnP9fnadOWwFh577DFUKhXMzc2hUFjL8trK6U4kEkE2m8V3v/tdtFqtzR6OomwpBqmkTgB4P4DXYD7V9e8B/DdjzKZ1PhORawFce/7552/WEBRFUc54Bklz/TKAlwK4BcBnFn4eaEW5oNA0V0VRlOAZJEj9c8aYS5zt+0TkiaAGtBFceumleOyxx5DP5wdegEbZmnQ6HZTLZVxzzTXabkNRVsggCuIREfkFY8z/AgARuRLA6iLDpxE33ngjLr30UrzqVa/CPffcM3AWU6/XW5cspunp6b4spomJicCzmAqFwqqzmKanp20WU6vVOiWLCcApWUydTgfj4+M4fvw4ms3mQFlM9Xp91VlM3W63L4vpyiuvxNVXX423ve1tqhwUZRUMksV0BMCFAI4u7NoL4EnM92MyxphLAx3hEqwli0lRFGW7MmgW0yAWxDXrMJ7TkoMHD+I73/kO7rrrLhw7dgzJZNIWq83MzKBaraJSqSAajWLnzp3IZrMIh8OYmppCt9u1BW2tVgv5fB7JZBLNZhPtdhvlchnRaBTNZhPGGKRSKWQyGbuSXalUQjqdRjabRTKZRKvVQqlUwtDQEGq1GqrVKqamphAOhxEKhVAoFBAOhxGNRlEsFu39s9ksUqkUCoUCcrkc6vU6ms0m6vU6arUaRkdHUSqVMDIygueem89YrtVqEBFboGeMsZZEt9tFOBy2llE0GoUxxn6WTqdRq9WsNZJIJDA9PY14PI5er4dCoWAL3xqNBiYmJhCJRFCtVpHP5xGJRLB7927UajU0Go2+ordut4tMJoN0Oo1wOIzjx4+j2+1ifHwcIoJMJoOZmRkMDw+jWCyi1WrZMdKKC4fD2L17N0KhEH7lV34Fr3/96/HWt77VFkEqijI4g1gQbzDGfN+z7z3GmC8FOrIBWIsFceutt+JLX/oSHnrI26hWOZM4//zz8epXvxp/8id/gtHR0c0ejqKcFqxbHQSAj4rIX4pIWkTGReRuANeufYibx8GDBzE5OYlms7nZQ1ECplQqIZFI4L777lv3xYsU5UxnEAXxOgDPAPghgH8A8HVjzDsDHdUyaLtvRVGU4BlEQQwBuALzSqIJ4BwRkUBHtQxaB6EoihI8gyiI/wXgu8aYawBcDmA3gH8MdFQBc/nll2NsbMx2LVXOXHK5HBqNBq6++moNVCvKChkki+kNxpijAGCMqQP4oIi8NthhBc/73/9+XH755ZrFpFlMiqIswiBZTALgXwJ4iTHmP4rIXgA7fdap3nC0DkJRFGXlrGcW060AfhHADQvbZQB/sYaxKYqiKFuAQRTElcaY3wXQAABjzCyAM6JvwSOPPILf+73fw44dOyAia/6KRqPrcp2lvlKpVN/qcst95XI5jI+PDzy2eDy+6rFxmc+VfIXD4TW9j6Xued111+H2229Ho7FpjYcVZUsziIJoi0gY862+ISJjAHqBjmoD+PznP483velN+LM/+zNMTk6uyzU7nc66XGcp6vU6AAxcw1Eul3HixImBx7aWNRNWs7Z3r7e2P6Wl7vnNb34T73rXu/Abv/Eb2pRRUVbBIAri0wDuArBDRD6B+VqI/xzoqALmkUceweOPP45QaJDHV7Y6rVYL99xzj1oSirJCls1iMsZ8TUQeBvB6AALgOmPMkcBHtgSiCwYpiqIEziBprjDG/BjAjwMey8AYY+4GcPeBAwfet9ljURRFOVPZlj6WV7ziFXjpS1+6Zv+3sjWIxWJ485vfjEQisdlDUZQtxbZUEADwW7/1W7j33nvxoQ99CGNjY+tyzUhkIINsTSSTSQAYuAo8m81ix44dA49tLQvrrKYDy1rjQEvd8+1vfzu+/vWv48tf/jIKhcKa7qMo25FBCuX+2Bjz75bbtxlooZyiKMrKWc9CuTf67HvzyoekKIqibCUW9TuIyO8AeD+Al4jIY85HWWzxZn2KoijK8izlmP46gHsA/BcAf+jsLxtjZgIdlaIoirLpLOpiMsbMGWN+AuAjACaMMT8FcC6AG0VEI36KoihnOIPEIO4E0BWR8wHcBuBszFsXW577778fb3nLW9a1t5B+nT5fr3vd6/C5z33OtidRtifGGPulrIxBFETPGNMB8KsAbjHG/D6AXcEOK3g+9rGP4eqrr8Y999yz6DH6B7W1+cEPfoCbbroJ11xzDWZm1Cu6HfHWOmnt08oYtFnfDQB+A8C3F/ZFgxtS8Nx///146KFNX85C2UDuvPNOtSS2GcaYU+pkREQnfitgEAXxm5hfD+ITxpjnRORcAF8JdlhLIyLXishtc3NzmzkMRVGUM5plFYQx5gljzAeNMbcvbD9njPnj4Ie25JjuNsbclM/nN3MYiqIoZzSLKggR+cbC9x+JyGPer40b4vpz1VVX4YorrtjsYSgbyPXXX2/blCjbAz93kp/bSVmcRVttiMguY8wxETnH7/OFtNdNZa2tNu6//3588pOfXDRQrf7Krc1rX/ta3HjjjbjxxhtVOWxj3P9hVQ7zyICtNpYqlIsC/opARH4JwKYriLVy1VVX4aqrrtrsYSiKEiCqFFbPUjGI+0XkD2R+uVEAgIiMi8hXAfzX4IemKIqibCZLKYhXAjgPwA9F5JdF5N8AeAjAAwDUga8oinKGs6iLyRgzC+BfLyiG7wN4EcAvGGNe2KjBKYqiKJvHUllMBRH5LObrIK4B8DcA7hGRX96owSmKoiibx1JB6kcA3ArgdxdabdwrIpcBuFVEfmqMuWFDRqgoiqJsCkspiNd63UnGmB8CeJWIvC/YYSmKoiibzVLtvheNNRhjPhfMcBRFUZTThbWtGK8oiqKcsaiCUBRFUXxZKgZxxnPffffha1/7Gr7whS9s9lCUANi/fz/e85734Oabb8Z2auzI1hJu3yG/auJut2uPC4fDMMag1+vZ87nwEgCEQiG7z9u6gud597nb/HIX7uG1/e7H/e5n7nNxPEudzzF534N3HEtd1702FxDzft7tdu113fO9z+f9mcd6f1+9Xq/vvfd6vb73y/PcewXFor2YtgJr6cX00Y9+FJ/61KfQaDTWeVTK6cbOnTvx4IMPYu/evZs9lMChcOF3Cj2v8Gu1WgiHw/a4drvdJ0Q7nQ5EBOFw2J4XiUTQ7XYRDtvmCuh2u/baFGRUOL1er29VRgpA3ocKitfj57yWK9jb7bY9js/H4/zO73Q6fdcxxiASidifOY5Op2MFdDgctufxenw2joPvg9fluFxlEovF7PkcLwD7Tnl99/24vweOMxQKodVqIRQK2WcC5hVDJBJBr9dDJLK6Of6gvZi2pYvpvvvuw4svvqjKYZuQzWbxla98BWf6+iEUfN4Zs7sfgBXy3uPdGWw4HO47R0TQ7XatsuH93HvwZ1eAu2PzG6v3XODkzN/d5niJew/v+d5xukrHhULZO2ZX2HstAtdacpWTex8qPu+9qAy878373rnN53DP924HvULellQQumCQoihK8GxJBaELBimKogTPllQQa+Xqq6/G7t27kUgkNnsoygZQLpfx7ne/+4wPVPu5k/zcTuFw2AZW/dxMdJO457hxBW/g23ucG5Nwx+Y3Vu+5wKnBW47HGyDmPbzne8dJt5A3qOu6k7zX87q73Od0g8SuO4n3cd1O7r28cRWvm819Tvd9u+d7t4MOVG/bIDWgWUxnOprFpFlMfu9Bs5gGD1JvawWhKIqyHdEsJkVRFGVNqIJQFEVRfFEFoSiKoviiCkJRFEXxRRWEoiiK4osqCEVRFMUXVRCKoiiKL6ogFEVRFF9UQSiKoii+qIJQFEVRfFEFoSiKoviiCkJRFEXxRRWEoiiK4osqCEVRFMUXVRCKoiiKL6ogFEVRFF9UQSiKoii+qIJQFEVRfFEFoSiKoviiCkJRFEXxRRWEoiiK4ktkswdARCQN4FYALQD3G2O+tgH3DPoWymnAkSNHcGAWiTQAAAVhSURBVNFFF232MDaEhx56CFdeeeVmD0MJmI9//OP48Ic/HPh9ArUgROSLInJCRA579l8jIk+KyNMi8ocLu38VwN8YY94H4G1BjmthDEHfQjlNuPjii/G3f/u3mz2MwPnMZz6jymGb8JGPfASpVCrw+wTtYvorANe4O0QkDOAvALwZwCUAbhCRSwCcBeD5hcO6QQ5KlcP24x3veAd+/OMfb/YwAuOhhx7CBz7wgc0ehrKB1Ot1fOITnwj0HoEqCGPMDwDMeHZfAeBpY8yzxpgWgDsAvB3AC5hXEkuOS0RuEpFDInJocnIyiGEriqIo2Jwg9R6ctBSAecWwB8D/DeB6EflLAHcvdrIx5jZjzAFjzIGxsbFgR6ooirKNOW2ymIwxVWPMbxpjfifoALUxJsjLK6chd9111xkdqL7iiitwyy23bPYwlA0kmUwGHqjeDAXxMwBnO9tnLezbUFRJbB+OHDmC6667brOHETg333wzHnzwwc0ehrIBfPzjH0etVgv8PpuR5noQwH4RORfziuHXAbxrE8ahSkI547jiiiv071pZN4JOc70dwAMALhSRF0TkvcaYDoCbAXwPwBEA3zDGPL7C614rIrfNzc2t/6AVRVEUAIBs5dnGgQMHzKFDhzZ7GIqiKFsKEXnYGHNgueNOmyC1oiiKcnqhCkJRFEXxRRWEoiiK4suWVBAapFYURQmeLakgjDF3G2Nuyufzmz0URVGUM5YtncUkIpMAfrrZ49hijAKY2uxBKMo6on/TK+ccY8yyvYq2tIJQVo6IHBokvU1Rtgr6Nx0cW9LFpCiKogSPKghFURTFF1UQ24/bNnsAirLO6N90QGgMQlEURfFFLQhFURTFF1UQWwQR6YrID52vfQHe61+JyGeCur6iLIeIGBH5qrMdEZFJEfn2MuddtdwxyuBsxnoQyuqoG2Mu2+xBKMoGUQXwcyKSNMbUAbwRm7Cw2HZHLYgtjIiEReRTInJQRB4TkX+9sP8qEfl/ReSbIvKsiPyRiPxLEXlIRH4kIuctHHetiDwoIo+KyPdFZNznHmMicufCPQ6KyKs3+jmVbct3ALx14ecbANzOD0TkChF5YOFv9/8TkQu9J4tIWkS+uPB3/6iIvH2Dxn3GoApi65B03Et3Lex7L4A5Y8zlAC4H8L6FlfoA4OUAfhvAxQDeDeACY8wVAD4P4AMLx/wDgF8wxvw8gDsA/IHPff8cwH9duMf1C+crykZwB4BfF5EEgEsBuOup/hjALy387X4UwH/2Of/DAP6fhb/7qwF8SkTSAY/5jEJdTFsHPxfTmwBcKiLvXNjOA9gPoAXgoDHmGACIyDMA7l045keY/2cB5tcD/+8isgtADMBzPvd9A4BLRITbORHJGGMq6/BMirIoxpjHFmJtN2DemnDJA/iSiOwHYABEfS7xJgBvE5F/u7CdALAX8ytZKgOgCmJrIwA+YIz5Xt9OkasANJ1dPWe7h5O/91sA/Kkx5lsL53zM5x4hzFsZjfUbtqIMzLcA/AmAqwCMOPv/E4D7jDHvWFAi9/ucKwCuN8Y8GewQz1zUxbS1+R6A3xGRKACIyAUrNKHzOBn4e88ix9yLky4piIgGypWN5IsA/oMx5kee/e7f7r9a5NzvAfiALJi/IvLzgYzwDEYVxNbm8wCeAPCIiBwG8FmszCr8GIC/FpGHsXg3zA8COLAQBH8C83ENRdkQjDEvGGM+7fPRJwH8FxF5FIv/zf8nzLueHhORxxe2lRWgldSKoiiKL2pBKIqiKL6oglAURVF8UQWhKIqi+KIKQlEURfFFFYSiKIriiyoIRVEUxRdVEIqiKIovqiAURVEUX/5/FPlJZFgiJtYAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x1385764e0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"jitter = np.random.uniform(-.33, .33, size=ds.shape[-1])\n", | |
"plt.yscale('log')\n", | |
"plt.scatter(ds.ca['is_male'] + jitter, ds[xist_idx, :] + 1, alpha=0.005, c='k')\n", | |
"plt.ylabel('Xist expression (counts)')\n", | |
"plt.xticks([0, 1], ['Female', 'Male']);" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 29, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAD8CAYAAABthzNFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXmMZFl23vfdyIjMWDIi98pau3u6e4bd44FISW2SY9LEmKZBaiEty5JN2hABmdaAsCURNmxItGlbICxLhiUBlizZIExZsEVJsGTJQ1IUKI5BSvqD4HTPIk53c7q7uqqrKqtyXyIiMyNjyXz+I+t38sStF5lZS2RlVb0DFLIi4sV797249yzfd865IUkSZZJJJplkkkksuac9gEwyySSTTM6nZAYik0wyySSTVMkMRCaZZJJJJqmSGYhMMskkk0xSJTMQmWSSSSaZpEpmIDLJJJNMMkmVzEBkkkkmmWSSKpmByCSTTDLJJFUyA5FJJplkkkmq5J/2AB5HZmdnk1deeeVpDyOTTDLJ5JmSr371q2tJksyddNwzbSBeeeUVvfPOO097GJlkkkkmz5SEEG6d5rgMYsokk0wyySRVMgORSSaZZJJJqmQGIpNMMskkk1TJDEQmmWSSSSapkhmITDLJJJNMUiUzEJlkkkkmmaRKZiAyySSTTDJJlWe6DuJJiN9yNYTwFEeSSSaZZHK+5IWOIA4ODo59nUkmmWTyIssLayCSJHkgYggh9EUUmWSSSSYvsrywBiKTTDLJJJPj5YXnIDI5nzzMeRxTJpm8aPLCRhBpcFIa7PS8y3nkYc7jmDLJ5EWUF9ZASFIulzv29fMu55GHOY9jyiSTF1VeeIjpRYsYMskkk0xOKy+8gTiNPAoenmHomWSSybMuLxam8gjyKHj408bQkySxf8fJeeRhHnZMp73XTDLJ5OElMxDHSKyYUELHKfynjaE/rHF6HB5mWMr5tGN62oY4k0yedzlXEFMI4Q9J+gOSapJ+PkmSf/qUh2RycHDQp/jj1+cBRjrOOB03vkcZe9rzeJIk/0ljetR7zSSTTE4vQ48gQgh/M4SwEkJ4N3r/h0IIH4QQrocQ/qwkJUny/yZJ8ick/aSkf3/YYzutpCmd2HN+lr3Xh40EhhElZVBRJpmcPzkLiOlvSfoh/0YIYUTSX5f0+yR9VtKPhRA+6w75mfufP1UZhIfzWdqxp8XQh6UQH/a8g2Cas1TYGVSUSSbnU4ZuIJIk+eeSNqK3v1PS9SRJbiRJ0pH09yT92+FQ/kdJ/yRJkq+lnS+E8MUQwjshhHdWV1efxPiOVYSPgtGf9J3HVYiDxpwW1ZxE8KYZuv39/cca38PISdEI98S9eAN93gj2TDJ53uRpkdRXJN1xrxfuv/enJP2ApD8SQvjJtC8mSfJzSZK8lSTJW3Nzc481iNMqahR8TFjHr2MFxr9o/I8Fz/gxJkmi/f19u24Ioc8YpV3/OEERxxKP76yUM2MZ9PdFL3TMJJNhy7kiqZMk+auS/uoZXeuhSM5cLjcQXsK75Zj4HE9KcfrzQhIzZq7/qNd7GNLZQ2l850kr57RrxDDewxrATDLJ5OHkablcdyVdc6+v3n/vXIuPClCIsXKWZF498qQhmidFEnvjwvm84k07n7+XNIP6sNzFk4hGMoI7k0yGI0/LQLwt6dMhhE+FEEYl/aikXzztl0MIPxxC+Ll6vT60AZ4kHiP3xoHXHjP3SnBY8MyjnjfN0A06z0mG6VG5FR95Eck8LsmeSSaZPL6cRZrr35X0m5K+LYSwEEL4iSRJepL+pKRflfQ7kv7vJEneO+05kyT5pSRJvjgxMfE443pkRe1xf+lkJRW/flTs/KQxp5039q7TvO0YromPSTtPLIOMR0wup4k3CnwHsjwmrNNgppOeUSaZZPJoMnQOIkmSHxvw/q9I+pVhX/84ib1lFKxX6LHSRWkhacpL6ucB0pRZGnk96LO0MaNEfQSQli3lz9Xr9R6IdjAMsZJOkkQjIyOpEBT8xEnG9DS8xnFcA9fnnvmuv+fTPLNMMsnk0eSFT/uIs416vV7f5/51mscaK9y0406KTLyXPSiTKB6zN2Zp508bg//L/0lp9VGCvy8/rhgyOy6N9knyJNyv/50yaCmTTIYvL7yB8JLm4cInHCcoVxRYPp8/NgqRHszvT/ssTVDqafzGw/aIiiVOk41TauMoxSvsNOXvi+6epKQR6URBmaHIJJMnJ8+kgXiaJHWsCFHYeLjeWAyKKNIU73HX8N/z5/bHPKoyHsRr8NmgY9M4idi4pBkbjGJ8L8dxDcdJDAumwYSZZJLJo8kzaSCeBEn9KILSiuGdkZERe50y1gdI4keBXgZ9b1DVc3xOzzPE5/RczElN9w4ODvp4GF57aMzzB/76vV7vAaPmrzfo72kk5kQysvr5kJOSIzIZrjyTBmJYkgYnxQoz/j/GQepXwnEx1yBu4TgP/qSFEUcTsScek7mDsqf8mNOIe5Qv4+ee/XEYKl/tnJb+m0bU++cUcw1pMqxU4UzOl2Q809OXc1VJfR4k5g/y+Qcf0aB0zpMydgZlM6XBVnHhncf6uZaHaQZVesfZQX5caYrWnyf+btr9pB03CCJKI8oHEdzHfR6Pk9eZPD9yXKSdOQJnJ9mqShG85tPk//vvePGkaazw0sjcNF7Bfyb1p5j683noK8by+RtHEWlGykcJHBu/9t79oOdynId/UvfYh2kUOCjq8dfLJJNMHl2eSQNxViT1cQVxMbTj+zHF2TRx6404OgCv9x4S3/FKzhuAGI6JI4p4vP51Gi/CPcTK30cG/N8rcTiIWGLjGnMSXMMbjTQj4u/rOCOdNe7LJJMnL8/kKnqSJPWgCCEuiDuuBYRXaHF2jqQ+EtsrXKk/RZb3vaKMxxanlg5KOz2O1PYGodfrPTB+X8Ece/UhhD4OIoSjtF4fLfV6vQeMF1EZMohv8M/uYXBof71Mnm3JeKbzIS80B5HGGwwyAjH+6Y1AnFo56Byn8WrTIoE0bsEfG+P83ujEyv/g4OABniU+D1GQN0REOn4c3lAM6ukUQ1+xAh9E0Puxxa9PUhTeqGYG49mVjGd6+vLCPvG0DKD4Xxp04r8fwzQxtHOcN48cZ0xiZZhWuZy2aNIKxgbVUMT8RTxeP7ZBEJX33L3n76G3+F6Pg7XSxjzoHtPuM80oZvJsShYVPl15YQ2ElF6wFr/X7XbtfZ/CGZ/HK81Y6cfnjb8bZw7hmQ/qdzQIful2u33jabfbDyjtOMsoljg1NVbaQFL+nIwDWGl/f1/7+/v27LyhjYnvkZGRPr4lrkpPu3/anzA2/xvFBiXN0GWSSSankxfWQKR5pig7TyqHEEwBoVS9oYi5Ao7xvIOvI6BYLK78RRl64xArytj7z+Vypiy5ju8dlcvl1Ol0+uoX9vf3+yKcNIiK83EM18QA8L5X7J578IoaYxEbJ67l4Sje84VyadxQLpd7gPj3951FDJlk8mTkhTUQKEf+YQT4zJPUIyMjpuQ9gYuiGhkZ6fN2Pf6ez+f7DEIID1YUx2SzJFOqXjnH3rvnGbzBSSO1Y48cr94bsphI9udMI67jTCVv1AYVF8ZRmIet/P/5bFAfq/g+/LkGRUeZZPK0JS0qP8/yTBqI8ATSXGOcOlYqQCGDsHl/HH/jCmPv6cbZRv44P54YM+92u2q3231KE0MxqPNsGjcSG6m0MWAApSOjyDEjIyP2fY7pdDoPQFYxvOPrSeJ0Vn9N/sXPIx5v/PxjLiSG+2I+KJNMnpY8TEbeeZFjDUQI4fMhhL8eQvjtEMJqCOF2COFXQgj/aQjhbBshOUkeM801VlCxIovholjpxdbfH4uhiM/PcWneQ+xN850Yhkrz6OPrx1BL3GcpLVMp/ty3AGc8fNbpdPr2Z4j3mIgL8YC1YhgKwdhxz+12+1hy2nMYPoLiunG9RZb5ksl5EL9GB3GV51EGrp4Qwj+R9B/rcNe3H5J0SdJnJf2MpKKkL4UQfuQsBjks8fAMCs8rVKAgFFzs1SKexOb/scGJexV5Atd7uijMQXBJ/JmvN4g5COCt+H792ON0Vp5DXNPAfRQKhb7n4I/1//cQHNfx73Of/hl1u10zKP4ZxcIY+MwbBc+3+DqL874QM3n+5VmMII6rg/hjSZKsRe9tS/ra/X9/OYQwO7SRDVm8lzoyMtJHRKN4UUQoNOoHvFI7ODh4IBPH1xmMjIyY0sbbBrJBIaKg/ecYJf51u10VCoW+YwuFQh/HkcvlNDY21qfwC4VCX2ThITOvOGPj4ceAovdwmoffvIHkfiD7paN+VowBKI5nxvMbFB1gVPxrnvEg2G8Qf5HJ+ZXYmXmeJG2epiEU500GriCMQwihEkLI3f//Z0IIPxJCKPhjnnWJMXZJGh0d7csqiv96Utcr3xjmQZl5TxZl542DH4M3NnANsVc/Ojr6QMYShLnnQ/y5PbGb5lHHXIE3AN7Q8RxiyCyOskZGRuw4DIDnZWIjwLX9Z5yXz3jvOG4hixrOTp4U6foseteDJO2ZHAdNn2c5jYv1zyUVQwhXJP1TSX9M0t8a5qDOQmJlhcJO+9FiCMkrMo/be+Xf6XQegI+84orPQ9Qi9aesEpHEUI50CLV4GR0d7VO+HtqSHqxhwKB4r30Qmc6xnvuIaxr4Tnw/MV/i4bxer2cZW9RO+OwyPvMQnH923W73gVYgz+JCfBblSSn147zrx5EnZbweRo57Js9iv7DTjDAkSbIr6Q9L+htJkvxRSf/KcId1NgIkEpPTHh6Jve1Op9NHpJJ947mLbrfblwHU6XT6zuFrEbhWp9Ox41G8RB5IPp83uMYreh8Z8NobM8btoZdut2vnig0ji5Pz+ewolLqH1/z1/LP1BLIvZvOLHwMV8xjdbtcK/zBsnpvwx8cZUGmQUyZPVoal1J+UeMXMXB40tidlSE6CkTyE/SzAS9IpDUQI4fOS/kNJ//j+eyPHHD90CY+Z5hpPZP7viU5IU398WqUw3/MGA8XrlSivfZThtyqVjrxjDy1x/TiF1RsHf/00r97XasBZpO345qMdBJ6k3W73ZRx5T96PmX+xkSoUCmYkGKeP3IDFGFMMk3loKY5G4mcSQ2SZPNvysArcK9442eOkqGeY0NbzGkH8lKSflvSPkiR5L4TwqqRfH+6wjpfkCXRzHZRl5KEmBGUuSe122xRPPp/v81x9NAK5i2A4PK5PhIARQXljiHyEwjlQzD5C8R6JV9KM3cNYnozmWlwjhr2kwwWzu7trY93f39fe3p597jO9fMHgwcGBRkdH7Zns7+/bawwMzyIt88r/Jj7NN76uN8D+98oMw9nJ43rgx8GCj6PAT4pynkYU5COIZ0FO0811PkkSS2dNkuRGCOFfDHFMZy4eg+evx9tRYHjTXin5grI45x8j4bOT4mwhDzV5XsSPLc4YQjF6XsL/5Tz8H4PnM3swDqOjo31RAdlBGAMPI/GdWDEDh/noyF+f5yk9mB7so56RkRErvjs4OFChUDDD6o2kz6jyUVtsLOPrZfLkJHY8pMFdh08jcQcAv17i655XaCZe29KDvN6zJqcZ+U+f8r1nTvgx4+wd7+G2221JR96Gh0mQEIJlPaHMUHpg52kK0uOivl8Rr2OIxHv+RBPx9/jMH+s5De6LtFkPB/lIiXEROcRpwIwnznSKoxAfnSCMyRuPOGLwyod+Ut4QeU6CsRwcHFhygDe8mQxHYk84dnoe9XyPq/yfZqLCswgjHScDI4gQwu+T9PslXQkh/FX3UU1SL/1bz46gmFCM3kv13jnHoFR9xABs4hV5kiQaHR1Vu902xTc2NmZ1Cx6C8YrdXyeXy5kijOshgJ/wrlHIPpWW8/oxFQoF9Xo9iwbGxsYeINfjVFauT1Tjq6bj8/vqap5h/Iy9YfAwW6fT0ejoqDqdjtVtjI2N2TP21yCySDPScEL7+/t2jI8sMnnyksYN8fppKkfv9Hm418/RYXn8z9NcO+5J3JP0jqQ9SV91/35R0g8Of2hnI0yeWLl6bF06nPClUqnPi/YeuD/WKybPZ/R6vQeIWu81owDjRZckiXnGHrbymD+GI4apPDdRKBRMYXu4i//HPAXj8mOMOZC06IjzcO/+GcTGxBP+Hk7j/j35znNAPBfkv++5lSyCGL6cBut/FI7icSMB5qA//iQP/1GNw+PyMOdVBkYQSZL8S0n/MoTwd5Ik6Z7hmM5EYliFrCFfNUwqKH/B7Hkdp6r6NhHSEVRCJOK5CO/5p3nDXtnGhJ33iHjPp4tSoMb9xQV4cdGdNyJxVbhX9JLMyPjnB/Tjox1v3HgWnh9AiZMCTGrw3t6eisWinZPx+WJEjGN83Zhj8YWDL5LEc+lhPz+t+Dnpz+2f92kji0FjSuMmHmWcj/P5SXLeoqcnKae5i+8MIfxaCOHDEMKNEMLNEMKNoY9syBJDPb5aWTqKAoCKUPx7e3vK5/OmNMnXJ7snjVeQjmoJ4nA3hlA8Nu89IJ+p4/F9jvWGyVctS0cbCSE+CvCcRcx5eB6Ef2nQF+P3hobr+qwqb1B55p4IJ5PLGwDuAcPtjVoc6XmjyD9fpPciiFfYPBevYD0sGR//KHKcB35SZHHaMT8pbuJRJC0y8O+d5h5POsd5ltNkMf28pP9Mh/DS4D04n0HxBsIrZh8xkL+PsfD4NxO50+n0pW9K/SmZRCGelI29r7SNglC2fiLGStXDSl7J+2jIw0r+X9xrKc5YQsEiGMM4ggD/hwchOvD35g0vz2dvb+8BPNj3WOJZ5PN5M8wc639D6jNi4l2S/V4vgpHw9+l/Gz+PvPLi9z7u+Zwm2oih0Xgsx53Tnzce83F8wKNGQQ/zvbTIIP6ez9RLO+/DnOM8ymkMRD1Jkn8y9JE8hIQQfljSD7/++uuPdZ5YQYJve7IW5Y+i8jUKvmIaj5i0UY/de/ip1WqpWCzaOXu9nkqlkrrdrkUKNPLz0AnXiJW9Fz6D5wB+wdD51h8oW+moSWAaP4LS5Tl0Oh0Vi0VLifWRDffpn0scnfCMiRKI0DyU5e87hKC9vT0zVtSS+OjGw2IYKtJ7kfO8CJ+0eGPsn6P/jGfnOaS085xWkQ1KUz3tOY/zxOP3jzuH/y7iDWIMf/loPr6uf3+QMeEZpp33Yc5xXp2YcFKIE0L4izqsnP6Hktq8nyTJ14Y7tJPlrbfeSt55551H+i6K0itUCFMfOfCjecgGJZjP59VqtWyBeZ6CHx0l67mHg4MDFYtFiyZ4DwiHccQV2DFvwfVQ1L4lhc/i8Jk/vrPq2NiY2u22RTg+08mnyvoU10KhYN/xz4UMrThSwQjA3ZCtlMvltLu72xdBMD7eGx0dNePgs58YJ2PyBLb/jXK5w+62/rc7j4vwSYmH95CY9PfilVr8fGI4BBkE9ZzGg06LCo7TP3wvTdnHEit/rhNzYWlRiVfOfu4O4lJiHpF5Puja/rweLjvNcx2WhBC+miTJWycdd5oI4rvu//UnSyR9/6MM7DwJCi2Xy5lny+u9vT1TaijYGIrZ29uz433LcJQ0E8R700wSUjvp61QsFi3C8MrdF6MxEVGEGBSvLDlWOoK2PP9BCmgul7OqcIwCBhGDFtdEHBwc9CnhGLbwZD1QGMYLo8I9UZ3tyfOxsTE7n89MSpJExWLR7m93d9fSYIkafOdY3o8r3V+UCEJ6sH2M/7+fJ95p4L1BitHPyZNgFM8dxZGFlzjC4TrxGPzxafeaFn3E5+X92CDEEFd8H97IAGnGCj3tno+DztK+PyiSe1Q47UnIiQYiSZJ/4ywG8jQE5e27jqJ48Uj50VDCeO+tVsswdzx3xOfjey+X13jATAr/2SAv3MNAHhrwk5WxMGaftbS7u6tSqWRK23/uGwBKMi9fOiTliSjiqutcLmfPwNcw+GytTqfT143Wj5fXvikh52SrVTrWNptNVSoVW4StVktjY2NmRDBcXCfmIqQXo6trPJe8gos919jzlQa3ovDn8DAV30k7R1oEMGjM/hoe9okNFvPlSUs8N7zTc9wcYn15xe/PcZokCX+O08JpZyUnPukQwn+b9n6SJD/75IdzduI9DN8ew0cTcfM4vzhGR0dNSUlHfZJ47aMNxGPDGIGDgwNTvCg6MH/PIUiy96RD8pUoB++fczOh9vb2JB163LQCJ/JhYyH/PpEQe2D7CmYiDu6dZ+GzYjyk5PtMeQ/fZ1T5dGHfWbbdbhu3wPUxbkQ3IyMjFm3558Y5fLda3wbkeRd/n7Gi98bDO0Jpz8WvDx8l8pn3htMgG3+etHPG4/V/vcTnxllJg3SOk/h+jvuev8+06CdGB2IOwo9vUAR1XFQVjyPtuZ+Vo3OaFbPj/u1L+n2SXhnimM5cfOgct7Dw+LpfaJ1OR2NjY5aJkySJyuVynyEpFAoqFovm2XpPHYXpPWmU3O7ubh98Q3M8n8XDZ3GFM1EG4iMKoiWUMmQ5xoKKb8aIkuZ5cAzeOlXkfuF5WAmOgX+NRsOUuG9JgsHxBpjz+Gp14CRPQgMhlUolG7ckjY2N9UUSL4JxSMO1JfV53Pymp1EwaXDQoGgBSeNAjjsn8yc+33HjSzMasWFJMzgocx+tYuQGjTeOhHCKeBZxSi7j4bt8L46mfEQ3SE56lmchp4GY/rJ/HUL4Szrcp/qZFo+rk8IK9h1C0Pb2tiku6ehH92mvHtbwBC9GAjiFthZ47Ch7JhxkarPZ7OsWy/e98vO9iDAiCBAPx+JJU1/gjQ6RA4sEz537wTB4JQ93US6X+xYWRpPXRFcYA4jtSqViJP7+/r5qtVrfPfBsfKTF8+b8ZHxhtOGJvAH2RXTeODzv8JI02GONlWMabBJHBLGyTosYBkUag84x6NpeYqMTSxp8ddx9e088hqf8vfluBNwXc8kbIf8d/1xiuM5ziR46G3RPMcl+EnR3FvIoblVZ0tUnPZCzlhgeQZn2ej3DvvHGOc5HGJDMSZJoe3u7jzje39/X7u6upKPuo/v7+5ZR41NVR0ZGTMn5lhV+sxwwfmAfzu+VtCfGUcxMypGRETUajb70UZ86ure3Z6QxY26321b3gOdOqxDGhzfqeQf4DgycdMgX8B0MG/fKcyuVSmq329rZ2bHzbG9v26JuNpv2TMm+4j5iheV/45O8tOdNYg9VSlfsGM444YD/+/YqXmF7iCTNE48hrthDT5NBx8XRhaS+aJmx+nsfFOXEsJj/59e3j8oZW6zY/X4vJynstIjNP/fjzpFmKM/aQJyGg/imDrOWpMN01zlJzzT/4L1U8GufxeR/BF8DEXu229vbfV4r6bEsvt3d3T6IaWdnR5VKxRSmdJQayzmYnChlvG9fx4BXT/FYWmosnEGhUFCz2VQIQe12W+VyWa1WS6VSqa+vEVCWNwjdbtfab/ux4Z1TO4LBgyOBHyAyYxHyXPzzLZfLOjg4MIMHNMQY9/f3tbOzY1EUvxXZXCyidrtt8FexWJQk43YwmGe9uJ6WxN60NxTegMTPI44WmE8+QowNS+xVSw9u0iP14/JeTiJh09adH2/adwaJv5YfY3yu2Fhxv7GR8bCo5+rSjEravDvp3v2YuNZZQ6WnSQf4g+7/PUnLSZI8091cefBx9pH39OEFxsbG+rBwFBFKC4XUbrdVrVZtYUlSpVIxxVwoFFQqlQx68eGr9OCiwjD5SldgLe+Bo9gLhYL1SeI+RkdHtbOz01en0Wq1VK1W+6IJsoakI8MiHW2OxITn2eD1+3YjwGgoglKpZAaMZ5kkh51uedZxJ1wmP+dDIRUKBY2Ojto5eF5e8ZMm7I0D1xgEATzPEit+3ksjidO+E0cfKCjfziTtO2lJGZ7cPalewEM7SBqx+7DZPf5aftx8L04gib/r79FnN7LWPfR7mnkWZzfFzhN6xEdwaRDZsOU0HMStEMK3S/rX77/1zyX99lBHNWTx2CGZMbyHgi0UCn1prExuYB5vNMiy8ROEMB0S1uf6MxG4Dhi65yN8tkmMZRaLxT5ICuUJLMZCAe/38JRPYeX83D8cCt65J4O5X5Q3DfUwHJDf3BfjxAjDYbD4Ys+01+vZcwbWk4724caAeW+K+8VIef5HOoIo4vYhL7KkYfVpCjENz49fp0EgnM8bFWTQb5AW8XhFHh/vlbk3esdVhQ+631gpx9Cch+CYR8xjnA7/PPx4Bs21OFKL3/e6yN+r1xFnJaeBmH5K0p/QYSW1JP1CCOHnkiT5a0Md2fFjeqxWGyj9brdrxW6+1w+CxUaBNxoN5XI5U578BRcdHR2199vttorFohG2BwcHqlQq2tnZ6Uvt3NvbU6lUsgmHsgZGAqaSZBEMUQhkeaPR0Ozs7AMZWOD07Xa7j4RfW1vT6OioRkdHVSwWtb29bZOeTCYmP0YO7gODASfhs474B2HMNaml4DjuJUkSNRqNPqO6ublpURnPCAMLXMd5fNjP7+kzxTDG5XL51Jk7z4PECtC/F2PhvIdSAyrhc///QdFGfN0043CSeI8+Vsw4EvzO/rxU6SMn1Ul44+cVemzovNfOaw+vxUqe1w/T3iUtCoq/j+Hjb5x4MWw5TauN35b0+SRJdu6/rkj6zSRJftcZjO9YedRWG3ipOzs7arVaRvrivfuMD+/1ek8f4wLByiQh8gBX55whBG1tbWliYsI8+larpenpaVN2GJpms9kH7ezu7qpWq0nSA3j9/v6+KpWKJKlardrYd3Z2bAFA9hKV+NoHjAbRjHREAmMYQggWOYQQLBuJNiM+Y4ToxEdNPDsgJR8dsOgxovAxQHYYuGq1qnK5bAV0ExMT1oqD8xH+8xvk83mD3sbHx/uii+dVYhI3bmDolW9M9vr8fi9px3vIzkfLfObnE++lKbU03sMbLiRWpD6iTjNGab+17yjgoxwPc/kuAh7GlY6yBP31md8eck27dszV+PEPeqZS/4ZZjNdvPPaoEk7ZauM0Ziiov4vr/v33nllhgvisGiIFlP7Y2FhfCmXMW3S7XZVKpb6+QKTFkgHEhNrd3bW0zmazaV7QyMiIVldXzSs5ODhQvV5XqVQy5dlqtTQxMWFKNIbHUJJ44NRMoLjJCmIhdDqdB0hxFLOHc+AiyuWy8vm8kcTlctmyuHiPyY4x4V6AuKgXzB8HAAAgAElEQVS1YPHE0QSG1S8i0ll5rkmSaGtrS5I0Pj6uvb09NZtNu39+m0KhYAV0kvqy0Z53iT1LlFxcCCqlF4F5Mta/F+f6c55BMBRwIr8v78XQ1Unjj6GvWOKoIz63/36suNPuVZJFI95Bw4mK+YnTwJY+IovHOsjgxveFAUbiAtxhymkYj/9D0m+FEP7R/dd/SIctwJ9Z8T8QUA3WHMWKR+9bYuDNjoyMmOJhAUJsQ2B5+MX3RMrlcpbFBGzSbrfN2JTLZSOiIV+BsuAP4CAk9WU4cU3vVXtoxUc7fMZ9ed4DT4h6BxZLqVTqW0gYFZ+h5HkI3zKd65PVxDGSDBZDPLTheQ5gJ7xMoi0aHyZJYsZyb29P4+PjjwR3PA+SBoH49z3k5BVVbEj89zzEEkva8/VzLzYwad/zRoe/aZk9/J5+zpx0v/F1jxv7oPYjPgpD0vpY+WccGxD+H/8dxA3FxmTQvQ1LTkNS/5UQwm9I+t77b/3xJEm+PtRRDVlQ/iEEqw/AO6/X6wad0Iq7Xq8bP1AqldRsNk1hArusr6/3ZfP4gje89vHxcW1sbGhyctKyi9bW1nT58mXt7OyYt4HRSpLEFGq1WrX2GoTvtLTY3t42fH50dFS7u7t9LQk6nY7K5bLxGY1GQ5OTk2o0GqpUKjZWWnBIR9huqVSyZ4WRwyAC1Y2Pj6vX62lnZ8eqx+EEGAcZXxg/jDFQm4eiCKN5/hgaPw6iDhYiabGtVkujo6MaGxszrmRqauppTrenKrF3zf99tW/ctt4bD28UPB8xCELhe7znz+E98Jhj8GPzCSF+TXiuRDpqy4JTIvVnwHH+uGljTIAzvliR4zB5AxFDdP5zL54r4btpFd9+DP65eAcPB9ZHdOeJg/huSe8lSdK8/7om6c0kSX7rDMZ3rDwOB7G3t6fNzU11u13t7u5qZ2dHOzs7BhORuYOgRJmseM1EE2TeeOUJrk5Li5WVFVWrVVuczWZT5XLZcH0/qSF4UfhjY2OqVquSZISxV/6tVsvwdyYuShWlLclIcQ/z0PtJkkFkwEJANtJRJASUxJiZsAcHBxblsGi4HuQ8qcP+GIh9FgK/ARxCPp9XsVi0gj4MjiQzrEQXPJv5+Xkjp2u1mqrVqhm/51l8o8QkOcpcQ7H6iE7q94557SEMImqvRP3vJqVzEKyTOCLw4hW+NyaMk+gmhntiY+cNYAwZSUdtW4A9OS/f85tKcR2OA57z3I6PYrhu3EaH/3ujk0Yypxkof3/A1z5a8BmAj2ooTstBnAZi+l8l/R73ejvlvWdKmARkEeFRkUvPMXhXHjLBcGDJWXycw5PNKERqJsbHx80LB5vHq/eTnHqGVqulvb09TU1N2aKjoykGaXx83IhqMppQqnxndHTUDAcTGWXpGxMSNVHdjaFiTNSA5PN57e7uGszFpC+Xy2ZwDg4OzCgAgwFlYYCY/Iy3VCr1LTy8xpGREW1vb5uhDCEY/0BNChFLtVpVu92235FI4qyzP56WeG8ZZ8UrX0+kxlAfzyatBsHDOl7BIjHX4bsFSP3QiFegvOchFU8+c5w/h/fi/ThjSMefh/d9Cjr34WuCOI9fC0Qh/tr+fvx3fGFfzCVIR73RGFNsQOPIzI8vhkrPAjY9FUmduJmQJMmBTmdYzrV4UhavGQWGQmo0Gn0pnWQloQSBQrznzue9Xs/IU7Jv4q6meMm53GGmEl4LE3tsbMy+i9Lm+xC5ePq+wtmTWkQBkqyAbXx83MZfKpVsrwUfOeF5YgSByCDofVuOvb09i4x8V1nGxTPZ39/X9va2pKOiPY7F24cjmZyctII+DAzNETFaklSv1/sWKJ1riToY74siHoqI+28x133EkPaXeRDzA8xZ3gcu9NdFfNNHfxyfpUFNMfHqK/05D98hGhj0DAYR3jEXwlrxhWt8n2cQPwfpqMMCx3hILB7LoDGe5i88J+PwyQRnIadR9DdCCH9ah1GDJP0nkm4Mb0jDF+8JQOqSeUQKqc+g6fV62t7eth8GRVStVrW7u2v4vu/fgvcMxg5Etbm5aRwE2Tl46xyHcvX7JEgyeIfJwTn29/fVbDb7+AupH8eES4DXgOhmDB7rBGKgXQa4/v7+vvEpcBaSVCwWtbOzY/cOBwI3QsTgCwybzab99RFdq9WyNFqeheco4FxYxEQqHlOXZAa2UCjY+Ty08jxKTFp6ItT/P4Z1wNo9nBFDPl6BehgnDR5Bufm0Wa8ofQTgYVV/TUkPeOM4Gh5i8VEL1/S9kjieee3v00fZ/J/z+nvhr79fDyUNil5iYtkbQ8/pxL9fmoHyRntQtDEMOY0Z+klJ/5qku5IWdLjD3BeHOahhCyEiRXKdTkeNRkPb29uq1+taX1+3bKQbN24YhNNut3Xv3j1T0ijlRqPR1wYC7J9sGghfCHFvVNrttprNphqNhtVmHBwcFoz52gDG1G63+5rrbWxsaHt727KgdnZ2zEunZgAYrd1uG+9CKijXw6uDBGbCA0UxmfkuhPPe3p7Vk9DLqdfraWNjw/pAwceUSiVtb28buY1XSkQApNVutw0y4hlhCFZXV20hbW1taWdnx7rgSodGc3Fx0RQC40yDJZ53ib1f3vPt6/nNc7mcefoYZq8cY488DYePvV8fRfhuBXzmDQ/GBAXveRAMAeP33/fj41h/XaAiruGJZ8bln5E3iN5Q+ufhlXas5H0TS5AExu0dSPSFN9T+2XlOw0PD3OO5iSCSJFmR9KNnMJYzEyYhXkOhUNDk5KRarZbxAyEcZh/Nzc2Z5Z6ZmenznsbGxtRoNKwADLgIPF5SH8xRLpf76gEmJiZMWRKpePjIk2ZUYUOKeyiGBT0yMmJcBEZIUl/0wGfg/hB0vu6A5wPhOzk5aTCczxChRxIeGjwDEI9/lhDTU1NTVrhHFpgnCX3WEmm58BgeTsvn88ZH8FxZOBDYklSr1fo80RdJvAKSHqywRonxmW886ZW/j868QvOcglfwPtLwrVa8gfCcSFq9hG/97jF8rsM89eNgrXhSWzriZRiXjxy8J899p3ESvgmnjzI4nuvHipxnyzPzXY+9LvHj99xE/LudRdTgZaCBCCH8jKS/kSTJxoDPv19SOUmSXx7W4IYl3rNvt9va3d3V+vq6tZOGvCZtFA+E9hStVktTU1MGWywsLPQpLLxiYBrgGc7NZCOCKRaLWltbkyRT6ghFYSg9JhmkbqPRMGOytbVl1ysUClpfXzdsH4iHDCvub2JiwuCiiYkJK6yjWnljY0OVSkWNRkMzMzNqNBpmqEZGRqxi+8KFC9rY2DCIiRqEra0tjY2NqVaraXt7Wzs7OzamhYUFlctlFQoF1Wo1jYyMqFwua2lpSZOTk0qSRJubm+bVbm5u2jOilgSDVCwW+ypdc7nDepNisWjOwPMuHhLir6Q+xe29cZ8KTRaSz7Tx3jqeOXMZI+4bSHKtJElsrnmuAKOE0vWKVzraAlc6WoN+t0WSPVCufM59xU6Aj05QykT33hHi/96oYCC5d39/8A2+iBYnKY6KpKOW9hgJno1/zpzD8yI+svCQuIfYhi3HrZpvSvqlEMKepK9JWpVUlPRpSd8h6cuS/oehj3AI4kNrIJKxsTHt7u6adzszM6Pt7W3znHu9ninIEILq9bp5xShd8PT9/X2Vy2Wtr6/bhJTUV4yGgkdpEvpTpZzP51Uul7W5udlXzMZE2d3dVb1eN8W3t7dnqaOtVktbW1uq1WoGs1AV7dtuUMlN9hZptzyjxcVFG5Mk3bx50yYnMBMe/K1bt/q6s66trfV5XDs7O1bERlU4i2h0dFSrq6sWTdRqNd29e9fSg3u9nur1uo2j0+kYD1GpVOz1+Pi4pqen+9KHOf5FiSBQIl6xeK/Tp2t62NCTrh6+QRExZ/lNiXp9saOHXXwihldm1LZIR9v0It5zJmL0ytInPfhMO69o/bW9sieRxBsjr8w93+eNAOPyEBYcH8+Ic/jMLR8x+HvDqcTpITPSp9Z6o0HdEYkkPEMfdQ9TBhqIJEm+JOlLIYRPS/oeSZckNST9bUlfTJKkNdSRDVmY9PzwS0tLkmSZStvb2xobG9O9e/cs0wf8fmJiwrB9FBJppyhPOALw+XK5bEQ4BWhAOnj3TGSMEovCRyVMuiRJVKlUtLu7q2azKUnWeK/X62liYsJ4liRJrECOiQzGL8lqEJiQeIcsTMjwbrerer1uXrnf85qK716vp2KxaD2uyuWydnZ2rF5jZ2fHxkOk0mw2ValUjHsplUoaHR3V+vq6QQ3SUdU46a6Q+rRH6HQ62tjYMANK4Rx7TrwoEncAQGKIyCsXj7v7QjWPtyMexpEezIDCiWEuMa9iRYjz4aEo6cEtRDmO83M8v7s3iN4YeCPgkyR8EZt3YnhePmKIo4uYi/EKn3N4SNPDVRgiSZYl6CEySeZEeQMhHfXU8r/VWUTFp+EgPpL00dBHcsbiw9y9vT2Vy2Xrcrq3t2ee/fT0tNbX1y2cBdaZmprS/v6+VlZWzIvd39/X5uamqtVqX9UwxWPkpbNIfOVysVg00juE0FeN7BeI7y20trZmhqDX62llZUWTk5N9HITPuiJS2N/f19bWlpIk0fj4uJaWlownABKAWyDigFxG+TYaDRWLRY2Pj6vZbGpvb0/z8/PqdDoGK7XbbeuASxfZVqulubk5y/qiEtunEGOUUET1el07OzuamJhQt9u16IFnhyEG7qBdiXS44Lzyed6F58r8JhMNb9sTnCg3HBAUJa9xTlCwUn/mEuvH8wQx2YrAA6A8mWv+WNYFCtNnKXGcvz5GB/GELp+Rku0jII71XBdGBaOGeM4gvo43Bv61vxfu298LRojzxymyntQn+vIcoq8j8fc/DHn+gdkUYQKSkXNwcGCpmcBOrVZL4+PjWlhY6PsxUUrr6+t91cgssFwup42NDfNgIdx8ZbbHfH3DQO91YBjy+bzW19etGnp3d9eMWqVS0ebmpnUqPTg40Pr6usbHx025T0xM2KTc2toysrvVamlsbKwPBsOjLxQK2trasuprUmfB/jc3Ny0DChhhdHRUa2trtmB2dnaMV8nn85YFBkdxcHCg7e1tq/MYHR1Vs9k02AvvqtlsWr0HBnxkZMTan2CgMEAzMzNG5LdaLU1OTj6w4J5XiTNoiEB9LUkMifjsIF8cFsNLKDB/bk8We15D6k/ZxHCD28PrId779ji7L/jjr1ewrBcPp0nq87q9EfCGk3kaG66Yf/FkvT+Xvy73kEbE+9ogz1F4I+Q7yMY8kn/u6Ap4TM9rDEueSQMRHnM/CJRnCMEihd3dXcPukySxiGJ1ddUyhUZHR7WxsaG5ubk+/HV3d1fz8/O6c+eOSqWSVlZWNDExobW1NU1OTmp7e1uTk5N2XX7gVqtl6Z8sTowMe0b7BbWxsdGXz1+v1/vafORyOeu2ur29rdnZWTN4nU5HtVpNnU7HUlxJIZUOF9etW7c0OTlp8BdQTqVSUbfb1cbGhjY2NmxfihCCkddbW1uWaguXA6FPRDA+Pq5SqaTNzc2+RoAYhXa7rdnZWbXbbS0sLGhqakqVSsU63nKPjD9JEq2trZmHC4xGTQYt0jc3NzU3N/eYs+7ZEO+Ne3Iaz9MXa/rMoJgU9twTz57veEcCxe8jD4+r+4QIlB5Qj9SfOQSf571pn8FGNp4kc0pYM4yBxATWj9/x0XMT/jwoWIwbit3vHCfJogxvHDEw3qv3RsVHERhWD4nG8F1cROg5DH8N/g2bqD6xF9N5lkftxUSEsLq6anUEGxsb5hGjiPB2Ud78uJVKRZOTk3355FTwQr4CMaG0WSB8B3jFh438FiwSlLB01FTNE3ke1yRC4TWYvg/RGUO9Xle73bY6BlIHWUwQgL61N4qZ3lCSzDMcGRkxWA3lgeIndZgIyENqKCHIuhCCGS2/CQwKxe/zAGzms5V4/pVKRRMTE0ZaT0xMqFQqWTT1vAocEHPE/4t3G/ReMq+lfkXEPPNEs59/XCs+F9/B445JXs7h02l9lMDc8ef044ohJ8RHNkTnHBvv6wKh7OEeSX2vfRotf322UTwuf+9xlbcn23kO/hn750ykwHh8VME6Zy3H4z+thCfViymEMKfDHeVe8ccnSfIfPfSozomwULwSy+fzqtfr9gOVy2U1Gg2Vy2VtbGwYcYpSxOPCgyHbqNVqqVaraXd31xYJPyDdTiFN19fXlcvlrNpX6g+XMSLAQtJR+Ly7u6tOp9O3EQ6Kk4K5qakpU+CdTkeVSsV4DjD+0dFR1et14yzgSkidxeBhKIB4+D6punAE+/v7lsoKaewzwCTpwoULBuvB0RBxoCAo9qtUKlZoNzc3p2azaam/8EWFQsGihG63q83NTRUKBdtHw5P9z7MQTXooxaeC4vV65evhU5QQkAhGBVLXQyg+6weF6ZWnz3zyRZHS0X7iMawS1ytwrFeCGBOvNBHGgLfuYSKv7D3cRG0P8zAmnX0qLM/LE+U+uvKcgOcNuK5PheW38BGGNxY+iYb7Ql95Iz3sOX0aiOlLkv6FDtNa90849pkRiFgIvMXFRUsrpa12Pp/X1taWebOQzdVq1YjY7e1tyxRKkkTLy8va29tTrVYzLB+vd3p62tI9NzY2zMNi85vZ2VkVCgVtb2/3pRuivFdWVgyiAgpYWFhQsVi0jCZI6/Hxcb3//vt69dVXzYunwR2REDAbBouiP0L5hYUFK75jnGtra2ZwUEBbW1tW95DPHzYM3NjY0MTEhKWf3rt3T7OzsyqXy9ZJ98qVK8rlclpaWlKn09HFixf7DGG5XNbW1pYZsq2tLeNLZmZmdPv2bdVqNYM14EDwsqjt8NHI8y4kN/D7kHGGB+v3U/bRBB4rBpeIEkIZZYhyk/qVGJ95ReqNgs9o8gra8yLU+3jF6McoPbifRUyYx63L2djKK3z+T8Tr92onquUcnBsD6YtI+a4v3ozTiD385o3BwcFRmivj9FlOHkoGOYifxbAJaul0BqKcJMmfGfpIzlCYvL3eYQuL9fV182j54fGktra2ND09bd5Gt9u1RbixsWFh3sTEhBYWFnThwgXbFW5nZ0eVSkXb29uam5vrK87L5/Pa3Nzsg4QWFxetLTWN7PCeMCyQu2T3kAlFqqjPOhofH9fi4qJKpZJ5UNyDh3bw2pm0GCXSWHke1WpVy8vLVk8BRIVSII0WpQ70c/fu3b6q8Xq9ritXrqher1v6LiR6oVDQysqK8UKlUknr6+sGfU1PT2t5edkiopWVFYs8uL9r165pb2/PuCL4l+edpJaOoCM6AmMYUC48a5/uifKBcyJKxSNOi4bjqnoUNUrW4+vARx7/RxFiHLgWXjdp1pDV3A/nRGH7bCnmtK+kl45gK86Jsvbn8cobA0Skg4AcsEZwTPhLtO4rq/nL7+ArzmMY2xP0fowYLV9DxbiHLacxEL8cQvj9SZL8ytBHc4aCRyzJUjN7vZ5qtZq2trZsoly+fNk2+aFVBFCRdLRHAsf4yGN2dtYUKN56p9Oxoi9aaB8cHFhx1/b2trrdro2tVCoZyccCArqBgIY3gSMIIRjMxfdQxOSHwz2w+PEcc7mcPYtOp6PJyUktLS1ZCiubHuFd4lVBzLfbbY2Pj1uExR4YGLZOp6MLFy5oaWnJakqIashSkg4J5kajofX1dc3Pz9t4bty4obm5OTUaDYsSgMXYnnVra0szMzPWs4psrOddPO7tfx9JFnliGIigvbKCX+I36PV6VkRK8kEul7OohDmMIUepkp3mlbyHvXx3Ar6D4vWZOyhUX9MwMjJiHZdR6qQ0HxwcWFacJKvDiUldjCQGTerfShe410N0/hljhD304+/Pw0+eDOe5k24Owe8NYxyVYRx41j6KOC8G4qck/VchhI4k+iYnSZLUhjes4QpKmwUzOjqqWq1mjd7o6FqtVtVsNk2Rl0oly3LiB11dXe2rrGThAK/gaZAtRMoh+D7VpBgPSbb7Gt4FXh31Gb56lWwj6gOKxaLh/+yNQDSCAtjZ2bEJSosLPLp6vW4QElBbsVjsg3cg//CGaOlB2w8a9G1sbOjSpUtqNpuqVqu2gO7cuWOFd56wZ5tQ6Yicm56etutwfL1et+eIAqPy3B/DopeOiuyeV/F4vI8Y+M18qi+RgM+aA+bAA+Y7HkuXjtpGSDLODQfEY/8UikqySJXxEDX4yuO4tTfjZv0wbqm/mMzDY3FSBo6HjzZ82wu/CZiHghkvEY93rDz3gUeP4ZKOus7y/FD6HMt5pH7+RzpKy/Xj9QbJQ10YlWHP6dMUylWHOoKnIISSjUbDWkbcuXPHOrd2Oh0rOJqcnDRvlHAPvH97e1vtdttgHRTp1atXbc8FvFm8kXw+b7UEpVJJpVJJ9+7dU7fb1fz8vKV1zszMmGe2vb2tWq2mer1u2VEoVFJGy+Wybt++rcuXL6tSqVi67VtvvaXV1VVrA4IHRh1HoVCwvlIsPIrNlpeXrYoc/gIyeWlpSdVq1UjhsbExTU9P22JiEn/00Ue6evWqPvnkE0uhDSFodXXVSGQ8/bm5OS0tLWl2dlajo6OanJzU6uqqyuWyJicntby8bB7r9PS07ty5o7m5OavuzuUOi6SIrqrVqtbW1l6IDCbpqBcTSov28F4J0zwSRYQnTBTmc/J9Cql0RC7jiEDuojhxclDYvlElNTC+BoKW+ShXkhYg29n4yWf+SbK9QUZGRgxaZQzAumTCefJbkjlqZLx5LsTDv6RNE5XDZWD4MDS+EI/0Yc4BzNbtds3pY47yXaA67yxx/8xpkmFoXInzxjMf6pw6TZprCOFHJH3f/Ze/kZyTBn2Pk+a6sbGh1dVVNRoNLS4u6tatW1pbWzMcPUkSS5mkTQbhKmEfng07muVyOY2Pj9uETZLEqqxZdMA7eACe4B4bG7Pwk0pW7+XgQTWbTfOifRoe3glE3/z8vKSjnjE+fc7nx/M3rQKV1Ek8S6946FEF0c3ixAjRNbbT6fSR5ywcsprwgjB2lUrFFgmKgIgDLxdlw4ZBeHEYlsnJSV29elUXLlzQ7OyspqamVKvVnlsj4bNdgHbgmojAUPYoRLxRlBVzlt/bZ+F475nn7BUknjzRgXT0u/rr88/DMxTz+TWF94zBgswm2gX28aQ4hoY0Vv895r/nQzys40l25pZ/z2dnpUVBPhJDYm4Fw8D5ut2jTcQ8eQ00xrX8M8D5Yr0DKT+shCeY5voXJf2rkn7h/ls/FUL4niRJfvqhR3VOhMZXtKu4c+eOPvnkE8uiwNvGC9nc3LTQk7RXCs4ooqOgzW+OMzo6quXlZYsE8H6Bj/DMgbdYgL1ez1JvgaIODg6MbIZM9mQ7ExjjRDdXroWBqlar1q8pl8tpcnLSzuP7JQFb4UVR8Ef1OcR5t9s1KA4Pa3x8XKurq5qentatW7d07do1e4abm5uanp7WxsZhk2C8s1arZREZRq7X61kGF3wJHAcLB6+41+tZ9hdYebPZtErq530/ag9rkHbsozkIVuYY81Xq38AHhY+yo6MAcxpl5CEoIgoffVerVZsnsdfriWkcCIyN5wt8VIvR8LsjgufHG1J5Z4pjGTuQEZCVL6rsdg/3Y2ELYLx6FDLjZO3EDQFx0IC/GCPPGGjZt7SB+/E1TjhjrEtf7e1hxJiMH4acGEGEEH5b0nckh1uNKoQwIunrSZL8rqGP7gR51AhCkm7duqW7d+/q448/1tbWlr7yla9IOvRi5+fnTWGTfiodFrDBQRCSb2xsaH9/37x1cHTwbz9BSB/E60ax4xExCaSj3eJarZYtHD+5OK7RaNh+Dex5zUSH9OMabKzzyiuvGEnZ6XT0+uuv9xF+wG8oW5QzEFK9Xtft27c1Pz9vNRfslVGr1bS0tKQrV65Y64s7d+7o4sWLWltb0/z8vFV5b29vW8YTlefAZUlyuNfF/v6+GdLJyUltbm7auOErJFnzRHpdXb16VdeuXdOnPvUpTU9P69VXX1WlUnluIwhJRhBDthIFYyBRar1ezwoppSNoCuXKnEVx4THjWAEjMQd5j7/g9x7OktTnSfs0bn5PjsX4wNF53oS6ILx8Ws74GgtIdCAfSZalhQfPWoBcxxD57Xt9YScOG7K9vd1HGjMuYB9vlDxBTjQG8Y9zifHkXNQb+YiDNcszw3gMM4I4rYH4QnJ/X4gQwrQOYaZn1kCw69rHH39s7TWWl5f11a9+VdXqIeVCVs2lS5esyIrIAsW9srJimTSSDA4pl8vK5/N9+dEQpx53L5fLGh8f1/LyssFLHuPFm9va2rLFx4SlcK/X69niRymgIFDQkHB4XB7ugYPwDQcbjYaq1arW19etrgHjxe5529vbpmSIjuieOjEx0ZfNNTU1Za8l9W3R6gk6iO7x8XFduHDBvDU2QVpbW7NiPwjpqakpK/7j+rlcTpcvX9b8/Lyq1aquXLmiCxcu2N4Xz6Pg8fLbM19IjfY1CNIRJOM5CzxY78WyD7hXtBDKQJM+Y8oTszFxi9HAMyejCcWJc0OrFyBM346D65CZRhIFStIbMqAwvufXBnMLblGSef8eqsWTB+4EAvIZYzhhRPAYK54vRgySnPUiHXWP9s+A3wojAUxI3Ra/p6+oflh5YhCTpL8g6eshhF+XFHTIRfzZhx7ROZSxsTGtra3p5s2b2tra0sTEhDY3Nw3XJHe+3W5renraqq2BR6anp/v2ZEBp++pVIBsWA4qVCb67u2s9k5ggc3NzFkHQiI4ootVqWa0EtQF8RvhM6urExIR5PtVq1UJVJiyhebPZVLFYVKlUUrvdtiaAZEABVRwcHFgKK5sLYQQgxsmcwpsfGRnR+vq6JNn9kD8PAY7hwvNvNBrGT2DMgI9QCCweUpJ9ajBNBff29nTx4kWrNn9RBDiGf3BfvlLdK00Mguco8O4x7MApPoNIkjkl/tp4/VwLA8FaQpnye6LMKcr0mUkelgKO4Xr7++Cq6VIAACAASURBVPt9HB/HwH1hoDyfwnc9/CXJUslZV74+Bw/frwPPuXDO2Eh4At9XpzM38/m89Y3CwGNwuU/Pp2AkiY7ORZprkiR/N4TwGzrkISTpzyRJsjTUUZ2BrKysaGlpSXfv3tXm5qYZCvYPqFarWllZ0czMjIrFojY2NlQsFrW0tGRwEV1bi8WiZmZmtLKyolwuZxXZ1CKAkzKRNjY2NDIyYgoST1869LZWVlbU7XYtYmEnNfK8ybzyrRBQCltbW+bhYWQoUltdXdXly5fNk2k2m5qenjaPDU9mZ2fHohb26J6YmNDExIR5PMvLyxYKj42NaXl52TKbarWams2mkc4jIyO6deuWwVR4+lNTUzo4ONArr7xiC+727dtWVMge1Ozk5xeFh9/I1ydSm5ycNAPcaDTMAL4Iwm8PV+TrDXBOiCrAzYGVIIt9gzt4I18Uh/FHYWIAqH0BPvUpsUTUROIhBFPEeO5g6nyP6MU7EO122yIEDI6kB8h4zslYGXuv17O16LOMOCdRMvMtLm7zUTrrDoPJ+yRYSEdtxYnOt7e3bd4fHBzufzI5OWnZUdQjMWf9nvBENT5hZNhGYiDEFEJ4I0mSb4UQfk/a50mSfG2oIzuFPA7EdOPGDX300Uf6tV/7Na2ururLX/6yCoWCGo2GLly4oP39fU1NTWljY8PSLlGsFGdRGd3tdvXSSy9Z9TSV1QcHh+0r+HErlUpfiws8hampKWtxAW5MSuvq6qokGUE+MjKi8fFxVatVVatVS5cl5PX47dbWlil+0kvb7bZeffXVPpL36tWr1kuJc3Q6HYPiSP97+eWXNTY2phs3bmhhYUEvvfSSeVq7u7u6cOGC7e1Nmm0+n9fCwoJ5hlNTU0Zk046jUqmoVquZMSA0R0HMz8+rXq/bPhKzs7N92SFUYJNF1ev19NJLL+m1117T7/29v1evvvqqXn/9dVUqlec6kqAWZnt72/qKMddQuCg44ArpaI9mnifKi8gB7BvF5GsmPMThizXB8InqiPpQlIyBqAZlPT4+buMl8vbQmDcQ1CX5HmLwdBDAPtrxKazwc1yfdFPuEUUNEkAkjlGg+tlzI0Tp1OUQQaErcGKSJLGdGzFYXvGTZAIMDOfgYTMM87A5iOMiiP9c0hcl/eWUzxJJ3//QozpHUi6X9eGHH0qSbt++LUlGki4sLEiStXh4//33NTs7q3w+b51MqeSFLPVbh87NzSmXy+nevXt9BPTW1pako/zvvb09LS0t9Sn/Uqmker2uer2upaWlvkZ9tOy4d++eqtWqYZmrq6sWkhM2E3WgwOl9VKvVtLCwYNju3t6eeVn1el2SjNvgNQ0G7927Z5Pxs5/9rN5//31Jhwrm4sWLWlhYMBip1WppbW1NvV7PJjn7UExPT6vRaGh3d9cU/vXr1/t+n8nJSfOibt68qTfffNNqKRgzCm18fFx3795VoXC4PzhZTrRnn52dfa4NA4Jyx1mgNxUeMlEtpC/RLcbW8xVALkBT7LAYRxFSf0sJ6ai3Exs7kUxAdFsqlcz4Ax16/g1oiEJNkiTopOwJePgsnylFBICRabfbqtVqZhSoozg4OLBCVIwX/AgGBwiMiMNH7oyJcwJ/ttttTU5O2u9AqjjPhGw/CH2fDALU1mq1+lJagYWJzjAWw5YXst335uam3nvvPX388cf66KOPtLCwoOvXr+vu3btaXFxUpVLR2NiYKWCP+WHdsfxYclpGcLwn/IBuUIr+GBYnmTx4YRgT6jLAIguFgqrVqnkhKARSF5lAkGpcB0yWa6GcPZfhWy9Qr+BD9f39fUsHRJlsbGxYzjZeP/Abhibee5v9ojmGyAljls8f9qZiLwlgq8nJSavI9vn5cW+ry5cv6+rVq/Z3dnZW165d05UrV85kUT0NYd5Qn9JsNi1N2GfRQPAyJ6Sj9vIeWweC8tXR0lFKrK/C9rUPzC/mpa8pgMwG2mLcRDeQw6wxBLI6Xlv+nhgD4/LpvJ6f8CQ969if01dwe6eLtUUUwTNgXKxN/u/TX5nbOHood9aWJ8AZB5wka5P1iTEjOkI3PaycNoI40a0KIfzREEL1/v9/JoTwD0MIv/uhR3SOBEuMQvQ4JsSUJFNoeFnj4+N9Conv4gGhRMFWwSK5DsKEkWS7xIGRMznwaPBIfNGSz4wixJVkihxjAi5bLBZtv2qUsyRTwHg6hPhAZXifpPTBHeAdgeViwDCgEN5AP6Tf+nx5xoLBxBhTNc5+FTwTSfbMWSz+eZHOCfzh04rz+aMduJ5n8UrHc1MoSOakpD7nhOeGImJ+cS6iTRQy0KhvNeHrGXjOfJ9ro9T4Pb0h8b+TT21FyaMMPbTlHTDGwTrzUY1PPfWGxReFsiZI7WVdYbAwOh7u4h595MQ5uD9vbCC6ua9cLmdJJ57Y9ynAnEc62p6U83Ffw5TTZDH9N0mS/P0QwvdK+gFJ/5Ok/03Sdw11ZEMWuq4SskKcoUD5sUhTI7eaoi2wTzyn1dVVq9hFWbFntE+rY3HhLaBQCWUpPiNTCg+QiYBHDgbrMWOiCgpySqWSLeher2fFbigJipkajYalgPosF2Aq4Cz6NAFVYBC73a4uXryo0dFR4y1CCMblLC0tGdeCAuF5FItFLS8vW7QxMTFhEBWLGjIPMn9iYkLT09NWlIUHxjn29vb0ySefKJ/Pa3Jy0tKOXwQZGRnp2woWBcczAlvHMcCB4TeXDpVqvV63eYfS9N4/BtgXzzEffQEYv6EvesNYwzFIh8afeSPJMn0wKh5WwQlC2XIMBpJjOYb5RuSN84HjBCnsSWd/fRQ0RguOhOtyXJIkmpiY6DOKQNJ8TgEr6fBkE8IPSkfFikBe3oEi+4nU9mHLaVYNe0D8AUk/lyTJPw4h/PdDHNPQhVDt448/Nu/z5s2b1phvZWVF0qFihKe4du2a7t27J+kQ2718+bJu3LhhUMubb76plZUVvfvuu5qdnbWCsW9961uamZnpy6e+ffu2pqen1esdtgy/ePGiKpWKvvnNbxoEAA+CsUI+/elP64MPPtD09LTW1tb6CEPfyhnMeGTkcDtP+j4R8h8cHHaQpabg5s2bOjg40OzsbF+IPDc3Z/tW01770qVLarfb1qRvZmZGa2trpsAh5OAhJicnLRppNpu6evWqut2uFhcXB/5GeJdpv92lS5e0urqq1157zaIJ9u3Y3d1Vo9HQ933f92l1dVXXr19Xt9vVa6+9NnRv62mKJ1eBPpeWlswDr1QqtgeJJPNapaPd/XzPJBQr3U07nY5FjkSmGAoiaZyXfD5vTfy84oZzmJyc1M7Ojhmiqakp4ytQ3DHBDIQGxAOGD1zm6yMwRjs7O4b30+MMRwUOsNFoaHp6WpKsgwDj51zeuSBLkWQUkiP29vZ04cIFraysaG9vT1evXjXdQITOXjM4hCRrYFBwHmm1z5a5IyMjlv1E1EB07YtFhyGnKZT7ZUl3Jf1bkn6PpJakryRJ8u1DHdkp5FE5CDD+9fV1/dZv/Zbee+89LS4uWubQ2NiYdSYl+wiL7Sc7EcH4+HhfTxSwUpr1NRoN1Wo1jY+PW8uORqNhWQp4XixQKkipWobkZV9rGs95HBgvBKUKdAW5xYQqFot9LQnY8AjyrVqtmkfJwvNZMKOjo2o0Gpb1QeaT3ycaWGx1ddU8/FKpZL2QqHFAqZD54tNteY4on3a7banAREO5XM6UFq0KqIatVCq6fPmyrl27ps9+9rOanZ3V/Pz8cxtJ4DnzrHz2mXcyID/J9mHOoKRQ/pJsfpFe6Z8dEStRm8+io4iL3wNyGCEa4beC9yKriO8zDnB9Mqq4FvPew2U4P3ju0lFLfsh61hFRBtwZWX1EBKzntIjBcyg8Q2AiPsPQsQ5ZH+gKIhKfDQbvJx11X8DpGxsbszUIv8i/h5UnkcWE/HuSfkjSX0qSZCuEcEnSf/nQIzqHgmdFt1D6AO3t7dl2oITsQDCEoUwM9rOGD+B8YI67u7vWbhsl5gu9Op1On/e0v79vZBbEFt7W7u6urly5YiE0/Y1GRkaMzEbRs6BIQQWL3dnZsc6s+fxh51MW+/T0tFqtlnZ3d62KWjr0NvG+qtWqeU2dzuEucKTesp8DmwrhRbbbbatWR5nXarU+0pQMkU6nYx0+6/V6X9fNpaUl65XDnhwQ3VR4FwoFq8IGSkiLRJ5X8VFSXMgF5EGBFkqY5yb191hKksQiEiJNlBWeLA6P7yUEZ+BrBHx6KMehbIGJiFg8nIWX7klziPiYjwOO3N3d7au18IS1dJhNRZQFRwaUzPV5lqxjb9C84Gx5Lg5D4WEm0nM9tMw1eEbeMNOqhzWNUfHP/SycndNc4ZKkf5wkSTuE8AVJv0vS/znUUZ2BrKys6Pbt27p+/bq+9a1vaXl5WW+//bbhgI8rcAH86BC81WrVQlTSVnu9nuH9J8nbb79tk+TSpUu6d+9eHwT1NMUT697Texryxhtv6Hu/93stzP/CF77w1MZyVtLr9dRoNIybWV9ft0hXOkzbpm0JDsn8/HxfogbQHooWz5vaAiAS4Evp0NPFYLP3B5g62Dk1PaQvA2MBtZKaDHELFzg2NmaFer64DGeHaJeeSpL6ai1IK6XJJpXIU1NTfcT23NycJU+srq4a7OYba5IeC5TmW5CQlUe/MlJzJyYm7LoYMxw4+BvIa+CwWq2mTz75RLOzs4YyADnNzMz0ZfABQw1LTsNy/D+S9kMIr0v6OUnXJP2doY5qyII3QE42231OTk4+sWtAsvrXkNrr6+tKkkS1Ws1aezxMZ8YkOSzn920+nqbgfeJNVavVJ2IcHufewOA9jPI8cxA+P54IAOWF98zvAiRDSxWK2vCEpaOKbJ/BRMol5/TJEfn8YWdUFBYwDMQqkWGj0bC02mq1ahs7oYiprwDWQRnike/v75t3jTEjimE8JHEQ9UgyzkCSwcVwDezV4NvQSEcpvb5AEDiq1WpZai5cIk0+fYcB7tcT+kQFjBUIFrgaY8vv6bvykuXEfB62c3iaFXiQJEkvhPCHJf21JEn+Wgjh6096ICGEVyX915ImkiT5I0/6/LFMT0/rlftdTXO5nCqVim7fvq16vW6EJ03gsNbT09NW60DLb/Z+xrugE6kkyypicvAjExKzUD3/QMZRvV43iKbX69m1u92uJicnNTExobGxMe3s7Nje1HGYHpfp470AEZEtwQSmroENhCRpcXHRsj18Bgh7LuRyh+2eIfpowQBRjvElGQB+htDaV5HiMbJ4UCh7e3sGfWHECbHJpKKeo9PpaHp6WsViUZ/73Of0mc98Rp/5zGdeiFYbPvWUOYOny1yKW1mDa3sDA3Tq+ywBr/r5wnck9TXtQ6n7JnrMazirGIOXjnoZ+fvx/IjnO2gLQrYU90XCxszMjNrttqWqE/nAzZCKffHiRVP83Bs8jIeXuA7OHAYMBU5EcvXqVdsLhXoh+I35+XmDxjgf89yncpPth/6AGCfLEojwLOb0aQxEN4TwY5J+XNIP33/vVPvchRD+pqQ/KGklSZLPufd/SNL/LGlE0v+eJMlfTJLkhqSfCCH8g4e5gceR3d1d1et13blzxzwp8M+7d+/2kdD5fF7Ly8s2KTiuXq9re3tb0lGP9nK5bIV29XrdMkYIy9nkRpK1LobM9rnZeOQQbiw68PXt7W0jjH0euyQjlT0BTbhK9gjKdX5+3jyl1dVV29Y0SQ63VAWrJkedPSdo1Y2h9NkVKI7Z2dm+vbKB0sL9mgsK7SqViubm5lQsFi1ryrd7Bj4AQpEOM6wwfgsLC3YcLdCvXLlix74o4pMoWq2WcUVk5ZByjVcK54X3TpQAF+FbVpPGjPKU+tt0cE7pKKLx7T18xME1c7mcpqenzaiRuABe70lzFCI8BDAOhC3NJmNCnf5h9O7C2LFxGOuGRpN+Pfv9Jmi9QTTiDS5cCpuHkbEnHe0fDVxHJMC68HVYKH7umapw3wL8rFJcpdMZiD8u6Scl/fkkSW6GED4l6f865fn/lqT/RY6zCIf7Sfx1HWZFLUh6O4Twi0mSvP8wA38cqVQq+vrXv64PPvhA77zzjj744AO9//77VnsQCz/0IIGElmQE85MWJu3jyvLy8gPv3bp1q+81LTYQ3zJAUl+31ePOK8nSdU8jv/M7v3PqY4+7JlXoLO719XX9xE/8xHNbRS0dVQbfvXtXzWZT3W5XN27cMINMT6yLFy/a8XjbbAolydI1cQCoqKepJJ2G6Svmq4MnJyd1584dSxLAeM/MzKjRaFjqNQkPJCvQQoVoHpIYhYkXTYt8ooC7d+9apMCmVZcuXbJnQqo1jhl7ZZDOvbW1ZUZhampKCwsL1vKC6GF9fV1TU1MGbdXrdU1PT1tkIR21+d/Y2NCFCxfU6XQspXhiYsK4oImJCet0jNNId+Nut2tkOU4hqAHowMzMjBk3Io9hbxp02i1HS5JeSpLkg4e+QAivSPplIogQwucl/bkkSX7w/uuflqQkSf7C/df/4LQQ06Omua6vr2t1dVUffvihPvroI924cUPXr1/XxsaGZTiwXwFeVS6XM++bLAo/mbxwHG29gXvwsCHmIAcpPKOgyffLJ5IgJPZtLfDuyYICQiIE9hkehPREFIT+npSnwjyfz5uSjQUPVZJ5VJDS7A3NhKY5HtAH38MDJMqZm5uTdMTbzM/Pm4cFKUl1d6PR0JUrV8wTRQmRKdLpdDQ7O6uXX35Zb775pj73uc/prbfe0quvvqpr166dC85mWLK7u2vJD2tra9re3u7bwTBJEkvf9u1N+F18iwrSKZmLZCZJ6ptTPhvHk7d49QhRMfMqSRKDQMkI9Ps4NJtNU8rAtBDnSZIY0e2rvoncQwhWYAokDMRF1LKzs2OwJJwG5wT/9zwaaeNApEBjwHJ4976Aj2QUxnlwcGAZjkDXZH/59uT0ZiMy43MMQq1WU7lcVq1WM5L+YeWJpbmGEH5Y0l+SNCrpUyGE75D0s0mS/MhDj+pQrki6414vSPquEMKMpD8v6XeHEH4ag5Eyni/qsImgXnrppUccwqGQK18ulzU1NaWVlZU+jBIvyxcM+QwP0i8JhSG9wAnZI8GTUGRssDDhA6i58Mob3gBCT1KfUcIDZHesiYkJ4znAS/1mQhgkaiwwbFwX8hCsVzrqk4/xIYwuFAqamJiwkJkCNbyk/f19azlAaqx0ZGBYwNQyAIfxWjraBWx1ddWMV7t9uOUo+e++RfX+/uEOfzMzM7py5YquXbumS5cuPdeRQyxk9NAbDIWNg+DrXPx+6NJRvj/cAL8f8CDG2JOjvvWFJHOI4JQw4ihpj5t7whaeAKiTrCRfNEc2UQjBuvYCQVJxjNKvVqt9MJjvKQW0Jh215IBXIRJDqfMXB4179UV83tjBtfH8cNZwLH33BW9gcbZwEBk3fI4k26nSbzg0bDmNO/XnJH2npN+QpCRJvnGfUH6ikiTJug6hrJOO+zkdZlPprbfeeiwKf3l5We+++66++c1v6vr167p9+/YDBTbeixhU3fuw4j2lXC73AFwz6Dt4JOCpsQwaH1WyT1oeNYsifq5pn0uyzJrjohmUWcw1jI2N6Qtf+IK+4zu+w2CVF0GAhlZWVrS4uGiQBhW3GHdJ1hIcT9uTxnitKDpvHHCKvOCpk94NzxE7C56PkGTwlk//JPGBMfjWNNvb2w9wYlxjfHzcilbhMoisPacCTAPJjQGAv4DDgE9oNBqamppSo9Hoq3HiGpIsfRjUoVAoGDSFQ0Rk5Zv6eT6S9Y1RBHri95mamrJW92cBL0mnJKmTJKlHKYKPoyXv6jBVFrl6/70zk5mZGf36r/+6PvzwQ/2zf/bP9M4776SSmbESe1IFV/TIf9jvnPS9QeMbhnGQ9EjGQXrwuQ76/CTeBe8r7bdrt9v61V/9VSvO+tmf/dnnGl6SDg3r3bt3tbOzozt37ujOnTu6d++exsfHjfBnPw5gzdXVVYMyZmZmtLq6qqmpKYsmx8bG1Gw2NT8/r06nY3uy12o1g/wuX75skOLe3p6mpqbsvNShwBPQrYBMOVpvxBlMKFWMWaFQ0OLioqanpy1T7u7du7p48aIZtZ2dHV29etXw/dXVVYsKms2mGo2GpbACxUH6YmCkw7Y6S0tL1kb+ypUr+spXvqLLly/bPigrKysPdCXY39+3HRCJVDAkRGu+Qrzb7Vr7funQ4bl27Zpu3rypCxcuSJKlvU5MTGhmZqavIeJZZDKdptXGz0v6/3S4zei/K+lPSyokSXKit3//+6+on4PIS/pQ0r+pQ8PwtqT/IEmS9x528I/KQSwvL2tlZUXf+MY39Pbbb+s3f/M39fHHH5+6WC2T8y8jIyP67u/+bn3+85/XD/zAD+jKlSt64403nlsjAeG5t7enO3fuaG1tTc1m0yBTitxIwQQW9TwOEBRwKpEqRWrk36PwPSwEpIMXjXGgQIzXYOsoOknGMRANkP0kyRrz+a1mJfWdc3Jy0jYfAoaCJ2EDJQ/r0LIDvgBvnk24qJ8ALqapINxAo9Gw8cKv4bz59jOk2KLQgfV8qi6fw1Xwfb+1KxsRkd4+Nzenubk5S1F+FLjpiXEQkv6UDusT2joskPtVSadq1hdC+LuSviBpNoSwIOm/S5Lk50MIf/L+eUYk/c2HNQ73eZEffv311x/maw/IzMyM3njjDZXLZb322mtaXl7W6uqqVWky2UnhKxaLqtfr1naDYiPfwhcsnNAQ74w85tHRUc3MzKjZbBo+zIQBGgB7xKOp1WqqVquampoyPLnT6WhiYsK6s0IQAl2tra2pVCrZ/fjWBbSmmJmZseiC1Dvy27e2tizsJrWRMZXL5b7+Suz3AKbKdpetVstqIUjz9ftsHBwc9oICd+U64OhAHLxHdodfECwgrrOxsaGXX35ZV65c0SuvvKLLly8/t0ZhkNBAEY+eRAQUEMkAKErffhocHAWNh+z/72sf4BHwzCUZrIICZl7QvwsynKgBQyMdKX7OAyQV7+DGusrn86rVarYGfIGgdLh2MAbwfvBxcB+QzqOjoxofH7cIyt8v91MoFDQzM9PHH3hjSx8wMqU8GQ3Uy/Oh8wD1PMxxajHgMMiSGh8ft8SXc5Hmej8l9WeTJPkvdGgkHkqSJPmxAe//iqRfedjzue//kqRfeuutt/7Eo54jk0wyySST4+VYA5EkyX443AfiuZL5+XktLy9rY2NDb7/9tr70pS89FLxEO/BhCR4fhPmwrnfz5s2H/s6w7/1JCPf1xhtv6Ed/9Ec1Nzen7/me73muIwmi1I2NDbXbbb333nu2rwZNGaXD4sJut2sYOmnUuVxOFy5cMK6CppNkp9GyYmFhwaITSO5XX33V4K1KpWIchG9+SUEZ35mdnVWhULA9WXykQfYeUStt5Le2toxAhocg3dOnp9Jen+aQJDmsrq7afg1sGQyBT6VzsVi0tt2lUsnSgtfW1nTx4kUjsj/44AOD3EAC4ANCCJbNR9ZePp/X0tKStdOni/LLL7+sO3fuqNvtanNzU3Nzc1pcXNTLL79skRVReqFQ0Pz8vL7t277NIothZzOdZsV8PYTwi5L+viSrAkuS5B8ObVRnIPRPuX379gtXbfuiCPUAHrt+ngXoZ2NjQ7VaTfV6Xbdv3zboqFar6cMPP7RMJCqsqc25ceOG4fDUBFGY5ovmPvnkE83MzFjq9rvvvqtSqWSFXu+//77xHWSYoWip1F5bW7PUbFLGNzc3rdEf/AXGhA199vb2NDs7q3q9bue7d++eKpWKRkZGNDs7q5WVFWvot7S0pN3dXdvH5Pr16wZzUcNz7949zc3NGTdz48YNXbhwwfZ5aDabunDhgnEPt2/f1uzsrO1nsri4qDfeeMOIbV9fwrhWVlZsj3RScbl2r9fT7du3ValUdP36dZVKJX3ta1/Tyy+/bFsGJEmiT3/6030dmOE6himnMRBFSeuSvt+9l0h6Zg3E4uKi5SR/53d+p/Vh+uCDD07MFAJHJK3Pp7qdN/HZDrRkPul4UldpBw6G6ivEwWzBr8mtb7fbWltbO3Fc4LvwEBCo5M/zDw7nYQ34lStX9Oabb+rTn/60XnnlFdsc6vXXX7ec8udNIHKTJNHc3JwppqmpKWuJwm9FzQu8ELi833kPYrrVallX0VarpQsXLhgZTYEZfBT7mvi+QYVCQVeuXLGMIVK8IZ/hFLrdrq5evWqcn3TU9pr9HCCT8azh+diAinlZKBRsUyKipCtXrihJEr300ktWS8O14xYWvD81NdVX70DkQQfcy5cvG3fQarV0+fJl42TIKIQbfPnll/uytHzTw83NTV26dMkIfYwLv58kTU5Oanp62gw4Vd3Dbvt94pmTJPnjQ7v6I8qTIqkzySSTTDIZLCdS4SGEV0MIvxRCWA0hrIQQvnS/H9NTkyRJfilJki+eRYiVSSaZZPKiymlik7+jw+Z6/8791z8q6e9J+q5hDWrYcunSJS0uLqrRaOgXfuEXdOfOnZO/dF+Aadj97DwLOeunbfTnC+2Og9p8nxpw4YcRSHj//HiuvmfTo8rdu3d19+5dffnLX9aP//iP64033nju96SmnbV0CKHeu3dPt27d0nvvvWcpkdPT01pZWelrB86OZ5VKxf5C+oLR37p1S8ViUVNTU0ZGl8tlFYtFw8N7vcM9y9k0aHx8XJOTk9bkj+pqOh77TsR+3whSoqWjNh5TU1Pa2dkxgvjatWu24+PU1JQWFxdVq9Ws0SDN8sbGxnTnzh3t7OxofX1d8/Pzajablp47NTVlMHGlUrFaDuAiWsxvb29rfn7eOhCTor60tKT9/X2trKzo27/923X37l0Vi0VrwMcWAaxB4C/fG42U8Lt37xppLsmK/mg50ul0dOnSJb322mv61Kc+pU996lNn0lvsNGcvJ0niu7f+7RDCM7/laK/X0ze+8Y2nPYxMhiwffvihvvWtb+kHf/AHzyx3iKvpswAAIABJREFU/GkJPbd6vZ7W1ta0sbFhxVmS9O6772pyctJaNKC4KTCTZN+h1qbRaOjq1avWiv7g4MC6jEKwksv/jW98Q5cuXdLc3Jw2NjZsL3a4EZpcNptNU+JkHN25c0e1Wk3z8/NGzFJUd/PmTdszYWZmRl/72tesBmdxcbHv+KWlJeNJPvnkE9vWdHx8XAsLC5YFlc/ntfL/t3fmQZKf5X3/vN396/uY6Z5zZ3Z2V5rVYqI1YMRaBksQgkXKZG3HBEe2yxUbwlUJiU0SF8RVjh1XYhFsg23sVABjY2IsJzhUWGxzqAjYINDB4dW1q11pr7m7p6/p+3rzx8zz0iNGuyPt9szu6PlUqbTT08fb3b/5Pb/3Ob7flRVXTJeuJ3Fte/jhhwmFQq576dSpU2QyGXK5HFNTU5w/f97N5Bw8eJBHH33U+cQkEgmKxSJ+v59isejsdWVgT15POreklrK0tORkzqW4L/bA8hmGQiEymQy1Wo2FhQVuuumaqx5tYjsB4m+MMe9hfddggX8O/LUxJg1grd1aI/s6Zn5+nrm5OWZnZ50PxPz8jqp9KDvArbfeys0334zneTz44IPcfvvtezZIiGyFz+cjlUpx+PBh0uk0hULBXX1LKyh8t9lCCtbSjCDiktKWKsNjcn9RQ7XWMjU15Tp96vU6t9xyixP/kxZMUVkVXSM5iRaLRQ4fPgyst4XOzs46BeRnKs1K15U8Z79I4/79+53Qo+wMZP1TU1Nu11iv112Qko42GQwV+h8v2kuzs7Ou80omzbvdLi9/+cvdTqDT6TAxMUGtVttkriXfhzS02A3DLRn87J9K7y/Yy/BefyMHrO8Ax8bG3CCfKEFLIXsQbCdA/NTG/9/+jNvvZj1gDDaEbYEWqRVFUQbPdrqYdrUgvRU6Sa0oijJ4ttPF9Bsbkhvyc9IY88eDXdZgmZqaYnp62vkwXK9zDMrVIYXRTqfDsWPH9mx6CdbTI/F4fNMMSbvdplwuuxmCfm8GOeYl1SF9+VKAld9JmkOmlmX2RYrJkqZKJpPOklc0oKQQ3m+JCzhNrmw261IwpVLJpXBEUNBseGbL9ygy2iIuKIN5/V7a9Xrd+TaINpOoqMr9+tNW8juRHRdFVtH2kvmNWq3mJMAnJibca9kNj+p+a1ZJU8n8hmgnifaVzHOI/pWsSQT6RHNMmgVEzE8MoEQgMBQKDTS9BNtLMQWAB40xvwCMs24h+vsDXdUOcOzYMarVKu973/ue1bpSubE5c+YMb3rTm3jnO9+5p2U2hHA4zOTkJMVikWq1Si6Xc7Ld/T4IMujZ6/VIJpOb1FwlsIhpU6lU4u///u+dUFw6nXa+4GJeFQwGqdfrHDp0iFar5eoB/cZQ/e6JIjg3OztLqVSiXq9z4MAB0um0qz8kEgk3TS2BD74r4Ndut501rnhEx2IxV6Cu1WouUIgURjwed8V3mcjuFzCUTq5sNsv+/fudwVE2m3Xrkk4jGSQtFot0u11X7+h2uy7YRaNRgsGgu08ikSCTyTixTCngy7Q64IrookQr71nsT8VF7siRI+zbt2/gx9R2UkzvNcbcBzwAFIA7rbVnB76yAfPZz36WT37yk7u9DGXAfOpTn6JWq/Hrv/7rJJPJ3V7OQCmXyzz22GObPB5Onz7tpKQ9zyOXy7lg2a9KKuqhsViMYrHI6dOnWV5edve5//77SaVSrhW01WqRyWTI5/OuRfTChQtUKhVSqZQLROLnHggEKJfLThtKOn1k+liscOW5x8fHaTQa5HI5xsbGnGy5uAsWCgVyuRztdpt0Ok06nd6kRiydVisrK3S7XWZnZ6nX6+79T0xM8MQTT2zyixDfBWstp0+f3qRSOzc3x+rqKq94xSt4/PHHnQaTtM6urKwwNDTk9NM6nQ7Ly8uuOWBsbIxTp04xMTFBr9djYmLCKToUCgVuvvlmqtUqZ8+epVgsMjk5SalUYmlpiUajweTkJAcPHqTX61EqlThz5gzhcJh0Oj3QY2o7KaY7gd8D/jPrrnK/b4wZfOgaIE8++SQLCwuMj487PRVlbyKdNH/3d3+3yX97r9FsNl2Lqlxty1U1rJ+gRWJCpLYlMPR380hqRq5wW60WlUqF6elp15kjsvVra2skk0mXgmm1WkQiESdS1+9wKDL1cv9qtcrQ0BBra2tOaLBer9Nut4lGoxSLRTqdjtNAkl1Qv9x4KBRyXu6S2qnX684jXRzc4vE4pVLJzTuEQiGWlpZcekZmFCSFJojHtMzoTE9Ps7S05ORrAPc5mQ0fbMCl3SR1lUgkKJfL7v16nufSU2IaJLsM2XmIz3wsFnNdZDJnIqmxfD6/pbPktWQ7++7fAt5krX0cwBjzk8CXgBcNcmGXQ7uYFEVRBs92qnY/JMEBnIrrqwa3pCujUhuKoiiDZzsBYsQY80fGmM8BGGNeDPzEYJc1WG655Rb27dvH8vIyk5OTu70cZYCIQuwdd9zhXNL2IqFQyMk6iFRFt9t1KrwyaFapVLDWOrVQ8XPulzoRl7ZyuewG5ebm5pzUhKR7JHUiw3BSrJYhNunSAdzwmNxfah0yeCZFZc/zqNVqDA0NuWlnSeEEg0HXRQXrabVyuezSWdJRJEVyUTGWukgoFHJDgxMTE84DJh6P0+l0XKeSIKk3Sb/Nzc25GoJMp8vnJKkhWE9rylpFLjyZTLr3K+q3okqbzWadL7ekquLx+KbuJXFclO4oqbNIx9mg2I4n9d8Afwz8irX2JRue0t+21h4d6Mq2wfP1pBaefPJJvvzlL/PEE08wNzdHLBZjYWHB6cmEw2Gi0SjDw8ObrDRlbD4SiTipX2stqVSKffv20W63qVQqrqVtZWWFarVKsVhkenraSQufO3eOcDhMt9t1B16z2XQj9slk0h2w8/Pz1Go1EokEs7OzBAIBKpUKCwsL3+PtKzLdq6urNBoNIpEIY2Nj7ndi/Viv10mlUi5nWiqVXK6z0+m41kbRsc/n864bQ1ofpaMkHA5vkjGIx+PUajWq1SqlUsm18/VLPUgbps/nIxqNEo/HGRkZcVO3UjiUP3zpABEbVJ/PRzabdTnnyclJGo2GM7l51atexetf/3pe97rX7eng0E+z2WRxcZHl5WWX77bWUq1W3bErOXSxFn2m13QkEnFtrDKJLcesTF0HAgH3fHKiE5mIarXq2j4TiYQ7UYr/hMhrywlVuqcikcgmeW8pWgNODsQYw/LysguC0lkk/ggyCS6Plb8JkcWQvxVZn7SRSjFZ5C/6fR0k5+95HtVq1RWG+2sJYg8sgUE6vOT4lQl3+fuoVCpEo1EnaS+fsXwm2WzWBW1pa4V1s7Pp6WmmpqauKjhcS0/qEWvt/zLGvBfAWtsxxlydmtp1wsrKCvfffz+f/vSnnRlIv2eCuGMlk0lyuZxzU4vFYm4sXvqb5YQlB7J8eaL3Lpw8eXLTGqSI+Pjjj1OpVAiHw67YBTj/a/mj63+OUCjE0NAQxhhWVlY2ie2Jr608n1wIyAlfBNsA198tLlVy9dZqtdxVS6lU+h4RvWd+XrAumyA95VJAHBoaolQqubY9KZ5KsOr3/85kMvR6PfdHIf3zovkjHsWydr/fz/79+xkaGuKBBx5wfevVapWpqSmeeuopXvOa17xgAoT4NlSrVcrl8iaXNpkt6PV67riIxWJOYkOOAWlNXVtbc1IVEtjl5FYqldzFgQSZQqHgbpM2WtlpSLup7CqstU6Tqd1uuxOytLGGw2F3oVEoFFygisVi+Hw+F5D6/aYrlYo7IcsxIxdmEvzkOJDPQDqwxD1OXr/RaLhjLxKJOEMjwElnFAoF1wGVy+VcAPP7/U7jKRaLueNbLpTEJ1y87KWFVlqM5dwhMyjSVisXXLK2nWA7O4gvA28Evmit/QFjzO3A+6y1r96B9V2Wq9lB3HPPPbz3ve+9xitSrjcikQiHDx/mi1/8ImNjY7u9nIFSLBa5//77KRQKLC8v853vfIcnnniCVCrFhQsXnJporVZjbm6OV77ylSwvL7shs8OHD7O4uMjY2JhzWWs2m86KNJPJOKvOZrPpxPCMMc7BLZlMUq1WyefzHDx4kGQySTabZXR01O06KpUKoVCIixcvEg6HOXDgAAsLC8TjcTKZDOl0mk6nw759+zh58qQLTNVqlaeeeoqZmRlSqRT5fN6dYJvNprMkFSvTYDDI3NwcPp/PubJVKhVn45lOp91FYLPZdANt5XKZixcvOrOpRx55hJGREcbGxmg0Gs7NTj4nCWwS9A4dOuSG5YLBIKOjo2SzWYLBoDPUkt26z+ejUCg4R75QKMTq6ioAY2NjTqepVqtx5513Mjk56ZRcf/AHf/B5H9Pb3UFspwbxbuAzwM3GmK8Bfwq863mt6jrhq1/9KqdOndrzffEKbgjr3nvv3eSKt9doNBosLi5ucmyLx+Ou1iYDVvV6nU6nw0033cTFixedLagMhI2MjJDNZkkkEq4tVCS6V1dXMcbQbDZpNBqk02mXdpGrahGoGx0dpdPpUCqV3HPJyTkcDrO6usrw8DDxeJxcLufc28ShMZFIcO7cOfc3Kimg6elpV3uQE6woncbjcTeRHAqFKBaLLu0lqTaZk+hPlYlSrXxunU6H/fv3U6vVWF5eZnx83O3ipb4gbaayU5B01MTEBKVSadNrynS6pLkkdSuBVr4z2SXLZ1Sv11377vT0tPseJGUlqetBsp1BuW8ZY14NHAEMcNpae3nvygGjba6KoiiDZ1viNNbajrX2MWvto7sdHDbWo22uiqIoA2bvqpddhh/+4R/mRS96EeVyebeXogyYSCTChQsXuPvuu11DwF5EdJgk3RIOh12X2/j4uNNPknz+008/zczMjEvpNBoNRkdHyeVyjI6OOlc06a6RGoRoF4mbXLvdJhaLbSo293o9stksgUCAVCrlnisej9Nut2k0GmQyGQqFApVKhZGREQqFghOgCwQCLpcvf6OhUAhjDHNzc26CWox2JEUjDQrS3jo0NESj0XCNJFIXkG4l0aaSbkH53AKBAJcuXSIajTI+Ps7y8rKbapYOKWkzbbfbrvPJ8zyWlpZcY4m8ZiKRoF6vE41GXVG/Vqu51mP5zgKBAMFg0H1G0iVprWVubs59D9JoMDY2NvBj+opF6uuZq21z/epXv8pHP/rRHe1ieibyBfv9/m13MQnaxbS5iymbzW7qYrrrrrt43etex1ve8pY9HRz6aTQanDt3jsXFRYrF4vPqYpI2WOliEt2lK3Ux9QvpSReTSE3IsSN/J9K10x9YwuEwoVBoUxdTNBp1gaS/i0kCQX8Xk7Tc9ncx9Xq959TFJMdYv8qt1A9k9kGsSmu1mutiEkOhZ3YxBYNBV7sQddnn2sUkxk21Wo3R0VEOHDjAoUOHruqY3m6RejtdTLcB+4Eu8KS19tTzXtU15moDhKIoyguRq56D2ChM/zZQBF4OfA0YNsa0gZ+z1l66VotVFEVRrj8u18X0QeAua23WGHMI+B1r7auMMT8C/BFw146scIA8+OCDvP/97+dTn/rUbi9FGQC33norb3/723nzm9/sJlT3OvV6nXPnznH69GknJz0yMuLSQ6VSyaU6ADeIVavVXJ5c5iU6nQ6xWMzlvSUdJSlPaRcVxYByuezSRv0+EOPj425iWMyLJI0ibaeAq4eI6qzneW4iXyb9o9HoJhXaZDLppDIAJ7Mh5j+iLCvpKGlnlVSWtJfKDIQoIwQCAZc6azab7rORuQ/ApdFkul9agaPRqKtnlEol95h+qRNRNQBcSqrRaDiJ8OHhYZf6ktSyKCkcOnSI2dlZ59kxSJ41xWSMOWmt/f6Nf/uBh6y1P7Dx82PW2n8w8NVdgatJMX3oQx/iXe+6occ5lG3yspe9jC984QuMjIzs9lIGSj6f5+tf/zqPPPIIly5d4qGHHnI9/lK3ufnmm1laWnI+C6urq6ysrBCNRkmlUszPzxMKhUgkEsTjcZaXlxkdHSWTybC2tkaz2SSZTBKJRJwxTjgcZnFx0dXqxAMCcI5wAIlEgkQi4YrWYtgj8xN+v59yuczw8DCtVotUKkW5XCadTjM3N8f4+Djnz5+nXC6TSCQ4cuQI58+fB+ClL30pc3NzwHfrfqurqxw4cMDVptLptKsZipSN1D9qtRrRaJRyucz4+DjBYJBCoeBO1rFYjJWVFfx+P6lUinQ6zdLSEhMTE67YfObMGY4ePcrS0hJ+v5+LFy9y9OhRVldXnVnSxMSEm3ZvtVpMT0/jeR7nzp0jn88zPDxMKBRifn6eVCrF5OQk0WiUhYUFbr31Vo4cOcLk5CQzMzPcfvvtHDx48HkdK9diUO7hDZG+nwU+yboXBMaYKOC/zOOuex588EG+8pWv7PYylB2i3W5z7733bir+7zXq9TpLS0uusNlut9m/f7+bSu50OkSjUZaWlvA8j5GREfL5PI1Gg1Qqhd/vd45lUvgV0ThpYpBOHjm5yZWy6ApJQ0M//R4cInInQnTiESFX7BJ8er2e66ASMbvR0VHnIJdIJIjFYu4kOjQ0xNmzZ53ukuh7jY+Pk81mXaFZrt6lE6vVarmuIbm6F0OkWq3m9KdkVyNT2sYY8vk8IyMjrgGkXC4zNTVFLpdzHWQypCg2qbFYzA38GWNIpVLUajXy+TzGGLdDabfbZDIZ/H4/pVKJUqnEzMyMc8gTgcVcLkexWBzocXW5APF24JvADwH3Af9h43YLvH6gq7oCxpjjxpgPywGjKIqiXHuetQaxMRD3h1vcXgcuDHJRV8JaewI4cdttt711N9ehKIqyl3nWHYQxJmmM+U1jzCeMMT/zjN99T+C4kTh27BivfvWuaw0qO4Tnedx99917ulAdiUSYmJhwKRPP87h06ZITtAsEAtRqNSYmJmi32+RyOdLptCukdrvdTWJ8nuc560spVktxOhKJuL58kcaWmQrxThD6VXRlvkLsNMUjIhKJuDy+pIdEB0osObPZLKKcIDLwU1NTlEolisUis7Oz1Go12u22S1NJ/aTb7VKv153dquhJBYNBl5KTwvja2pqTn5citxSsxRLVWks6nSaXyxGNRp1I4fz8PCMjIy6NJkOKMqNRrVbdwJ+11hXd0+k01lonEe55Hqurq3S7XVKpFKlUiosXL7rCuxToR0ZGBl6ovlyR+i+BM8A3gDcDbeBnrLVNY8y3pGC9m1ztHIR2Me1ttItJu5i0i2lrrnpQzhjzHWvtS/t+/hXgR4EfY0P6+3mv7hqhg3KKoijPnWthGBQyxvistT0Aa+1/McbMA38LxK/ROhVFUZTrlMt1MZ0AXtt/g7X2T4B/B7S2eoCiKIqyd7hcF9MvP8vtnwMOD2xFiqIoynXBFeW+jTH/dqOjyWwMzn3LGHPDy2woiqIol+eKjnLAm621v2uMeT0wDPwc8AngCwNd2Q5w4sQJ3vGOd7CwsLDbS1EGxPHjx/n4xz/O8PDwbi9lR6hUKpw6dYrz589z6dIlIpEIvV6PTqfjWljD4TDhcNhJS4sXgnQriVy3WFz2ej263S7tdtvJ3IvURiwWc11AhULB+RhIV5BIVUej0U3eEyKLHQwGXSeUyIUDTrpbOpJETrxfIjyRSLi1tFotZyMKOJlyv9+/qdNI3od4MohVqcjgl0ol6vW685iQttxwOOzsTKULLJFIUK1WnUy5z+cjn8+7DibpnJL3Ia8ln8vS0hLdbpd8Ps/Q0BDtdtt9L7FYjEgkQrvddlL3sG4PMDs7y+zsLOl0euDH03YChNn4/48Cn7DWPmakz+sG5m1vexsf+chHdnsZyoA5ceIE6XSap556iptuumm3lzNQlpaWuO+++1haWuJb3/oW586d46GHHnJeDJFIhHq97u4/MzPj/JNF+mF+ft7NJfSfAOv1OsPDw+5kmc1mOXLkCIVCgUAgwMLCAqlUypn9SHutmBhVKhUymYybq+g3B5IgIjId4rsQCoWcPlG73aZQKDj5D8/zKJVK7Nu3j3q9zvT0tPNwluAmASIej/P000+TyWRcgJifn2doaIjR0VEXdMSbwfM8isWie45bbrmF8+fPs7a2RjQaJRwOOw/wo0ePus9jbm6OY8eOsba2xvnz5xkaGmJ6eppSqYTP59tkgLS8vEw6neaBBx5gbGyMxcVFN5fxkpe8hNXVVer1OpOTk7RaLYrFIhMTE9xxxx2cPXuW2dlZjh07xqBtl7fjKPdNY8wXWA8QnzfGJIDeFR5zXXPixAn+6q/+areXoewgv/iLv3hZ46YbnUqlwtzcnDuZR6NRIpHIpp1Tf3AAyOVy7gTt9/spFoukUinnbiYnTRkyq9VqzlgonU67Hv9yuUw4HN5kaBWNRun1ek64r38IzvM8gsEggJuVEPc1mREQ0ycZlpPZhEgkQrfbxVrrxPxisdim+QLRkhLzo9XVVUZGRlwAkd1HKBSi3W7T7Xbx+/1uZyNGQT6fj3g8zuLiontt2WF1Oh3Gx8ep1WrOPOnAgQMsLi7SbreZmJgAcHMRiUSCQqHgDIYikQgLCwscOHCAer2O53lu+G1hYcGZJclzj4+PMzExscn0KJ/Pk8/nB3pcbWcH8RbgpcDT1tqaMSYD/MJAV3UFjDHHgeODjp6KoigvZK64g9iYgzgI/Kox5reBO621Jwe9sCus6YS19m0yeq8oiqJce7bTxfSHwDuAR4BHgbcbY/5g0AsbJMePH+cNb3jDbi9D2UE++MEP7ulCdTweZ3p62hWJRTqjP60m8hbCyMiIK6L2e4eL/EQwGKTT6Tip7Gg0Sr1eJxaLkc/nSaVSTu6i0Wi4tBHg/JoTiQTAJinvdru9qRgtaSeRwZa0TywWc5LfUheRgrUxhlKpRDKZpFqtOp0lKaR7nudSSplMhlwu51JOnuc5bwtJZ3W7XacN5fP5XEG8UqkwOTnpXrtfJmN5edn5aASDQS5cuMDk5CSe57G0tARAJpOhVquxtrbG8PAwvV6PRCJBvV5n3759XLhwwRWjRcJ73759dDodarWae+7l5WWWlpY2+Wuk0+mBF6q340l9Cvg+u3FHY4wPeNxa+6KBrmwbXK3UhnYx7X20i0m7mLSL6Xu5ai2mvif6LPCvrLUXNn4+AHzIWnv8ea/uGqFaTIqiKM+da6HFJCSAJ4wxD7JuFnSMdbe5zwBYa3/sqlaqKIqiXJdsJ0D86sBXoSiKolx3XDFAWGs3mTdv1CB+2lr7ZwNblaIoirLrXMlR7r3GmA8ZY+7a0GL618DTwE/t3BIVRVGU3eByO4hPAAXg68C/BP4j67IbP2Gt/c4OrE1RFEXZRS4XIG6y1h4FMMZ8FFgEZqy1jR1ZmaIoirKrXG5Qri3/sNZ2gTkNDoqiKC8cLreDeIkxprzxbwNENn42gLXWJge+OkVRFGXXuJyjnH8nF7IbvOc97+F973vfbi9DGSCjo6M8+uijjI2N7fZSdoRWq8WZM2e4dOkSFy9eJBgMumlikZoQZdV2u43neRhjaDabmyQnSqUSgUCAbrfrlF3r9bpTeJXp6EajsWlKuNfruccBdDodp+xqraVWqwG4qWiRthC57/7J516vh8/nw+9fPxX1ej0n4SHrhXWZEb/f7xRhZUo7FAo55VeZhm61WnQ6HZrNppMGEekOUbvtdDrE43E3ES3PKTIb3W4Xz/Ocsmqz2XRKr7JueX+NRoN6vU632yUejxMIBJwCbDqdds9fr9cpl8v4/X6azSZDQ0Puu5DvoFarMTY2xqFDh5idnSUWiw38eNrOHMSeZA9YWijbIJvNMj4+ziOPPMKtt96628sZKJVKhfvuu49sNstjjz3G+fPnOXnyJO12m6GhIVKpFL1ej/n5eQ4ePEi322V+fp5qtcqhQ4fIZrNYaymXy06/KBaLMTc3h8/nczIWAJ7n0W63nVaQeCjMzs5SLpcxxuDz+Uin0ywtLTkJiUAgQC6Xo9vt0ul0nK5RsVgkk8m4v8tGo+G0oiSIFItF4vE4uVzOBZN9+/axsrJCKBRiamqKer1OvV5namqKarXqpLTT6TQnT54kHA7T6/XwPI9cLue8JQqFgpPRDgQCVKtVZmZmaLVaeJ5HKBQilUqRzWbJZDIuOJRKJfbv30+hUHBaSyKlUalUWFlZwe/3k8lkuHjxIuVymWQyyZEjRzh79iy1Wo3JyUmazSb5fJ5ms8no6Cjz8/PcdNNN7vWLxSJ33nknMzMzHDp0iLNnz3LHHXcM/MJnO34Qe473vOc9u70EZYd57Wtfy8rKym4vY2C0Wi0uXLhAOBx2InSxWIxMJkM4HMbzPCqVCrVajUwm48TqgsEg6XTanWTlKlmMeYrFotsBCKLX1C+s1+l0yGQyrKysOL2mYDBIuVwmGo06LaF+PwPZvTQaDeLxuHsuWPeTkN0CrIv/yW1+v59IJEI0GiWfz2/SUYJ1gbxCoeA0oowxrKysuIDj8/lotVokEgnnWSFrgvWdSjKZpFgsOk0ov99PqVRiaGjIaVZ1Oh1SqRSlUolEIkGz2dzkbyHvKxaLOWOlUChENBolm80SDodJJpNks1kajQbJZJJIJEKhUGB0dJTV1VX3mR08eBDArdPv97O4uEi1Wh3gUXWDBghjzHFjzIflgFAURVGuPTdkgFA/CEVRlMFzQwaIq+Wee+7Z7SUoO8yXvvSlPV2oDgaDHDhwgEaj4aw0q9Uqq6urNBoN2u22k7VeXV11lputVot8Ps/Y2BjNZtOljaLRKJVKhaGhoU2pHsClofrtQQOBAKurq4yNjdHpdJwsdzKZpFaruYJwv59Bu912heBKpeKeC76bUpLUlqSXotEo3W6Xer1OrVYjnU5Tq9VotVrIBePq6irDw8MEAgEajQbWWsbGxpzFqhTB19bWnGy3rAnWpcbL5TJDQ0OukN7tdkmlUhSLRSKRiLNlLZVKpFIpl6bq97eQ91WtVhkeHnbF8VqtxujoKI1Gg3K5zOjoKOFwmHK57Ly/pdatp07nAAAKmklEQVQhn9n58+cB3Dq73S6Tk5MDL1RfUe77euZq5b61i2nvo11M2sWkXUzfyzXzg7ieUT8IRVGU5852A8QLMsWkKIqiXBkNEIqiKMqWaIBQFEVRtkQDhKIoirIlGiAURVGULdEAoSiKomyJBghFURRlSzRAKIqiKFuiAUJRFEXZEg0QiqIoypZogFAURVG2RAOEoiiKsiUaIBRFUZQt0QChKIqibIkGCEVRFGVLNEAoiqIoW6IBQlEURdkSDRCKoijKlmiAUBRFUbYksNsLEIwxMeAPgRbwZWvtn+3ykhRFUV7QDDRAGGM+BvwTYMVae2vf7f8Y+F3AD3zUWnsP8JPAp6y1J4wxfwEMPEB84AMf4N3vfvegX0bZRV784hfzuc99jv379+/2UnaEVqvFhQsXmJubY2VlBb/fTyAQIBgM4nkexhh330AgQKfTod1u0+l06Ha7hEIh/H4/nucBYIyh0+nQ6/VoNpsEg0H8fv+m5wiHw3iex+rqKpVKhW63SzQaJRKJ0Gq1CIfD+P1+9xrWWoaGhohGozSbTVqtFq1Wy62t0WgQiUTodDoAlEolWq0W1WoVay2e55FOpxkeHgag2+3SarUIBoOUSiXa7bb72efzuTV7nke9Xsfn89Hr9QiFQgQCAfe81lp8Ph+e59HpdAgEAtRqNfcZep5Hs9nE7/fTbDbdZxWJROj1erTbber1unsfnucRi8Xcz7VajU6ng7WWYDBIr9cDwOfzEQgEaDQatFotut0uqVQKv9+Pz+fD5/NRqVRoNpsYY9i/fz8zMzOkUqkBH02D30H8CfAh4E/lBmOMH/gD4EeAOeAhY8xngGngkY27dQe8LmZmZrh06dKgX0bZZR5//HFmZmb42te+xitf+crdXs5AqVQqfOMb32BxcZG5uTmefvppTp8+TTKZdCe4WCzmTpq1Wo1Wq4Xf76fRaLiTr+d5WGsZGRmhVCrR6/Xo9Xp4nkej0cAYg8/nY2RkhEAgQK/XY3l52Z1Iq9Uq+XyeSCTCwYMH6XQ6rK2tEQwGGR4eJhQKAbiTdDwep1gsks1mCQQCDA0Nsbi4SDAYdEHu/PnztNttrLWMj48Tj8fx+/1MTEy493Ty5EkSiQTtdptarUaxWGRmZoZWq0UkEqHb7bqgFY/HqdfrVCoVUqkUxhgKhQKBQMAFp2KxyL59+1hbW8Pn81GtVhkfH6dQKBAKhfA8j1QqxerqKul0mnq9TrvdpttdP30lEglCoRDdbpder0c0GmVlZYVIJOKChXyGTz75JCMjIwSDQdrtNu12m+HhYfc9VSoVYrEYR48e5dKlS1y8eJGjR48yMzMz0GNqoDUIa+3fAvln3HwMOGutfdpa2wLuBX6c9WAxvRPr+sAHPqDB4QXGW9/61j39nbdaLRYXFzdd3UejUaamptyVuDGGdruNz+ej1WrR6/UIBAK02223E5BgEA6H3QnTGOOugv1+P9Zad6K11lKpVDDGEAgE6Ha7+P1+EomECxay8wgGg3Q6HXeF3ul08Pv9lMtljDHE43F3tRyJRKhUKniex9raGrFYjFAo5E7m8j7kqjufz5PJZNwuxe/3Mzo6SrFYdCdda60LSnKlLlfy9XqdeDzu1tzr9Ugmk6ytrREOh2m1WsRiMUqlEqFQyO1KyuUyiUSCUqkEQDAYxBhDJBIB1ncN8tmvra0xPDzsPrdEIkGz2SSXyzE+Pk6r1aLT6RCJRPA8j1arRaPRoNFokEwmGR0dpdlskkgkMMZQKpXc6w6K3ShSTwH9f6lzG7f9H+CNxpj/Dpx4tgcbY95mjHnYGPNwNpsd7EoVRVFewFw3RWprbRX4hW3c78PAhwFuu+02O+h1KYqivFDZjR3EPNBfMZzeuG3H+KVf+qUXTNFSWecjH/nInv7Og8Egk5OTLv8N6+mN+fl5AoH160CpMfR6PVfA7U/5NBoNVxRtNBoMDw+7oqq169di3W4XYwz1et2lU+LxONZalzLqdrusra3R6XRcakgK0f0pLUlJJZNJl6rq9XquPhCPx2m32yQSCZeqKpVKm95HOBwmGAySTqdZXV0lEAi4NWSzWYaGhmi1Wq5A7/P5NhXbW60WPp/PpbRkzT6fz6WPGo0GwWCQarVKKpVyhXVZ+9ramisYS/qoXq8D62k++ewTiQSFQsF9bmtra4RCIUZGRlheXiYYDBIIBFwtIxgMEg6HCYfDlMtlstksoVCItbU1rLWkUqmBF6qNfPEDewFjDgKflS4mY0wAeBL4R6wHhoeAn7HWPvZcn/u2226zDz/88PNem3Yx7X20i0m7mLSL6XsxxnzTWnvbFe83yABhjPlz4DXACLAM/Cdr7R8ZY34U+CDrba4fs9b+l+f4vMeB47Ozs289c+bMNV61oijK3ua6CBCD5mp3EIqiKC9EthsgVGpDURRF2RINEIqiKMqW3JABwhhz3Bjz4UEPiSiKoryQuSEDhLX2hLX2bTuhRaIoivJC5YYMEIqiKMrguaG7mIwxWeDCbq/jBmMEyO32IhTlGqLH9HPngLV29Ep3uqEDhPLcMcY8vJ32NkW5UdBjenBoiklRFEXZEg0QiqIoypZogHjh8eHdXoCiXGP0mB4QWoNQFEVRtkR3EIqiKMqWaIC4QTDGdI0x3+n77+AAX+vnjTEfGtTzK8qVMMZYY8z/7Ps5YIzJGmM+e4XHveZK91G2z3XjKKdckbq19qW7vQhF2SGqwK3GmIi1tg78CDtsLKboDuKGxhjjN8a83xjzkDHmpDHm7Ru3v8YY8xVjzP81xjxtjLnHGPOzxpgHjTGPGGNu3rjfcWPMA8aYbxtj7jPGjG/xGqPGmL/ceI2HjDGv2un3qbxg+WvgDRv//mngz+UXxphjxpivbxy79xtjjjzzwcaYmDHmYxvH/beNMT++Q+veM2iAuHGI9KWXPr1x21uAkrX2FcArgLcaYw5t/O4lwDuA7wN+DrjFWnsM+Cjwro37fBW43Vr7MuBe4Je3eN3fBT6w8Rpv3Hi8ouwE9wJ3G2PCwPcDD/T97hRwx8ax+6vAf93i8b8CfGnjuP+HwPuNMbEBr3lPoSmmG4etUkx3Ad9vjPlnGz+ngMNAC3jIWrsIYIx5CvjCxn0eYf2PBdb9wP/CGDMJBIFzW7zu64AX91lVJo0xcWtt5Rq8J0V5Vqy1JzdqbT/N+m6inxTwcWPMYcAC3hZPcRfwY8aYf7/xcxiYAZ4YyIL3IBogbmwM8C5r7ec33WjMa4Bm3029vp97fPd7/33gd6y1n9l4zK9t8Ro+1ncZjWu3bEXZNp8Bfot16+JM3+2/Afw/a+0/3QgiX97isQZ4o7X29GCXuHfRFNONzeeBdxpjPABjzC3PcQud4ruFv3/xLPf5At9NSWGM0UK5spN8DPh1a+0jz7i9/9j9+Wd57OeBd5mN7a8x5mUDWeEeRgPEjc1HgceBbxljHgX+B89tV/hrwP82xnyTZ1fD/DfAbRtF8MdZr2soyo5grZ2z1v7eFr/6b8BvGmO+zbMf87/BeurppDHmsY2fleeATlIriqIoW6I7CEVRFGVLNEAoiqIoW6IBQlEURdkSDRCKoijKlmiAUBRFUbZEA4SiKIqyJRogFEVRlC3RAKEoiqJsyf8HyqodRLebJ9kAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x14a2125c0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"jitter = np.random.uniform(-.33, .33, size=ds.shape[-1])\n", | |
"plt.yscale('log')\n", | |
"plt.scatter(ds.ca['is_male'] + jitter, ds[7981, :] + 1, alpha=0.005, c='k')\n", | |
"plt.ylabel('Rps29 expression (counts)')\n", | |
"plt.xticks([0, 1], ['Female', 'Male']);" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### \"Those P-values are nonsense and the model is obviosly wrong. Can't I just do nonparametric tests?\"\n", | |
"\n", | |
"It is possible to work in a \"non-parametric\" way with this framework. [Andrew Gelman points out](http://andrewgelman.com/2015/07/13/dont-do-the-wilcoxon/) that if you convert the data to ranks and Gaussianize those you should achieve equivalent effects as using the Wilcoxon test, but now you can use regression models.\n", | |
"\n", | |
"The `NaiveDE.loom.lr_tests` function takes a transformation function as an argument. By defualt this is `np.log1p`, but we can supply a function that performs the rank Guassianization for each gene." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 30, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def rank_gaussianize(X):\n", | |
" return stats.norm.ppf((2 * np.argsort(X) + 1) / (2 * X.shape[-1] + 1))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 31, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x13f2d99e8>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.hist(np.log1p(ds[xist_idx, :]), bins=100);\n", | |
"plt.xlabel('Xist expression (log counts)')\n", | |
"plt.ylabel('Number of cells');" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 32, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x1230d0978>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.hist(rank_gaussianize(ds[xist_idx, :]), bins=100);\n", | |
"plt.xlabel('Xist expression (Gaussianized ranks)')\n", | |
"plt.ylabel('Number of cells');" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 33, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"100%|██████████| 14/14 [36:48<00:00, 157.72s/it]\n" | |
] | |
} | |
], | |
"source": [ | |
"results = NaiveDE.loom.lr_tests(ds, '~ is_male + np.log(_Total) + ClusterName',\n", | |
" '~ np.log(_Total) + ClusterName',\n", | |
" transformation=rank_gaussianize)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"This took significantly longer to run (35 minutes) because the `rank_gaussianize` function is not particularly efficient (it needs to sort 160,000 values for each gene)." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 34, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x15b6b7cf8>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.scatter(results.is_male, -np.log10(results.pval))\n", | |
"plt.xlabel('is_male effect size')\n", | |
"plt.ylabel('-log10(P-value)');" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The P-values are more moderate now. But does it find reasonable things?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 35, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Gene</th>\n", | |
" <th>is_male</th>\n", | |
" <th>pval</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>13800</th>\n", | |
" <td>Sash1</td>\n", | |
" <td>0.035142</td>\n", | |
" <td>6.530284e-09</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10924</th>\n", | |
" <td>Rmdn3</td>\n", | |
" <td>0.033943</td>\n", | |
" <td>5.262770e-10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>27949</th>\n", | |
" <td>Eif4a1</td>\n", | |
" <td>0.033819</td>\n", | |
" <td>3.379878e-07</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>24076</th>\n", | |
" <td>Rpl10</td>\n", | |
" <td>0.033667</td>\n", | |
" <td>4.090358e-07</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>27520</th>\n", | |
" <td>Ift20</td>\n", | |
" <td>0.033108</td>\n", | |
" <td>4.311283e-07</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>27316</th>\n", | |
" <td>Riok3</td>\n", | |
" <td>0.033002</td>\n", | |
" <td>4.742041e-09</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>27887</th>\n", | |
" <td>Rbms1</td>\n", | |
" <td>0.032830</td>\n", | |
" <td>1.333919e-08</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>25152</th>\n", | |
" <td>Hist1h1c</td>\n", | |
" <td>0.032090</td>\n", | |
" <td>2.805632e-08</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>24389</th>\n", | |
" <td>Cnep1r1</td>\n", | |
" <td>0.031986</td>\n", | |
" <td>9.463895e-08</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>639</th>\n", | |
" <td>Arl4c</td>\n", | |
" <td>0.031822</td>\n", | |
" <td>1.665587e-12</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Gene is_male pval\n", | |
"13800 Sash1 0.035142 6.530284e-09\n", | |
"10924 Rmdn3 0.033943 5.262770e-10\n", | |
"27949 Eif4a1 0.033819 3.379878e-07\n", | |
"24076 Rpl10 0.033667 4.090358e-07\n", | |
"27520 Ift20 0.033108 4.311283e-07\n", | |
"27316 Riok3 0.033002 4.742041e-09\n", | |
"27887 Rbms1 0.032830 1.333919e-08\n", | |
"25152 Hist1h1c 0.032090 2.805632e-08\n", | |
"24389 Cnep1r1 0.031986 9.463895e-08\n", | |
"639 Arl4c 0.031822 1.665587e-12" | |
] | |
}, | |
"execution_count": 35, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"results.sort_values('is_male', ascending=False).head(10)[['Gene', 'is_male', 'pval']]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 36, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Gene</th>\n", | |
" <th>is_male</th>\n", | |
" <th>pval</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>27356</th>\n", | |
" <td>Ecsit</td>\n", | |
" <td>-0.031328</td>\n", | |
" <td>8.760039e-10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10235</th>\n", | |
" <td>Mif4gd</td>\n", | |
" <td>-0.031514</td>\n", | |
" <td>1.170238e-07</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>27402</th>\n", | |
" <td>Kars</td>\n", | |
" <td>-0.032988</td>\n", | |
" <td>1.875562e-10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>25702</th>\n", | |
" <td>Atg4b</td>\n", | |
" <td>-0.033047</td>\n", | |
" <td>2.656778e-10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>24071</th>\n", | |
" <td>Rps18</td>\n", | |
" <td>-0.035325</td>\n", | |
" <td>5.279217e-08</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>18001</th>\n", | |
" <td>Cpeb2</td>\n", | |
" <td>-0.037207</td>\n", | |
" <td>3.724849e-11</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>24453</th>\n", | |
" <td>9530068E07Rik</td>\n", | |
" <td>-0.037516</td>\n", | |
" <td>3.188656e-09</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>16930</th>\n", | |
" <td>Srprb</td>\n", | |
" <td>-0.038398</td>\n", | |
" <td>7.081217e-12</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>15240</th>\n", | |
" <td>Zfyve27</td>\n", | |
" <td>-0.038648</td>\n", | |
" <td>8.724726e-13</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>24688</th>\n", | |
" <td>Brd2</td>\n", | |
" <td>-0.042698</td>\n", | |
" <td>4.115480e-11</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Gene is_male pval\n", | |
"27356 Ecsit -0.031328 8.760039e-10\n", | |
"10235 Mif4gd -0.031514 1.170238e-07\n", | |
"27402 Kars -0.032988 1.875562e-10\n", | |
"25702 Atg4b -0.033047 2.656778e-10\n", | |
"24071 Rps18 -0.035325 5.279217e-08\n", | |
"18001 Cpeb2 -0.037207 3.724849e-11\n", | |
"24453 9530068E07Rik -0.037516 3.188656e-09\n", | |
"16930 Srprb -0.038398 7.081217e-12\n", | |
"15240 Zfyve27 -0.038648 8.724726e-13\n", | |
"24688 Brd2 -0.042698 4.115480e-11" | |
] | |
}, | |
"execution_count": 36, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"results.sort_values('is_male', ascending=False).tail(10)[['Gene', 'is_male', 'pval']]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 37, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Gene</th>\n", | |
" <th>is_male</th>\n", | |
" <th>pval</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>1978</th>\n", | |
" <td>Slc6a11</td>\n", | |
" <td>0.019386</td>\n", | |
" <td>1.622840e-21</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>20919</th>\n", | |
" <td>Anxa3</td>\n", | |
" <td>0.016426</td>\n", | |
" <td>1.696197e-21</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>23467</th>\n", | |
" <td>Mcts1</td>\n", | |
" <td>0.025598</td>\n", | |
" <td>1.827693e-17</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>9801</th>\n", | |
" <td>Tmem229a</td>\n", | |
" <td>0.026399</td>\n", | |
" <td>1.971162e-15</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1836</th>\n", | |
" <td>Flt1</td>\n", | |
" <td>0.011313</td>\n", | |
" <td>2.864107e-13</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>527</th>\n", | |
" <td>Tenm2</td>\n", | |
" <td>0.014555</td>\n", | |
" <td>1.490553e-12</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>639</th>\n", | |
" <td>Arl4c</td>\n", | |
" <td>0.031822</td>\n", | |
" <td>1.665587e-12</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>600</th>\n", | |
" <td>Vstm2a</td>\n", | |
" <td>0.012321</td>\n", | |
" <td>3.365463e-12</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1851</th>\n", | |
" <td>Ly6c1</td>\n", | |
" <td>0.010930</td>\n", | |
" <td>1.103809e-11</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1831</th>\n", | |
" <td>Ctla2a</td>\n", | |
" <td>0.009298</td>\n", | |
" <td>3.726030e-11</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Gene is_male pval\n", | |
"1978 Slc6a11 0.019386 1.622840e-21\n", | |
"20919 Anxa3 0.016426 1.696197e-21\n", | |
"23467 Mcts1 0.025598 1.827693e-17\n", | |
"9801 Tmem229a 0.026399 1.971162e-15\n", | |
"1836 Flt1 0.011313 2.864107e-13\n", | |
"527 Tenm2 0.014555 1.490553e-12\n", | |
"639 Arl4c 0.031822 1.665587e-12\n", | |
"600 Vstm2a 0.012321 3.365463e-12\n", | |
"1851 Ly6c1 0.010930 1.103809e-11\n", | |
"1831 Ctla2a 0.009298 3.726030e-11" | |
] | |
}, | |
"execution_count": 37, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"results.query('is_male > 0').sort_values('pval').head(10)[['Gene', 'is_male', 'pval']]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 38, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Gene</th>\n", | |
" <th>is_male</th>\n", | |
" <th>pval</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>302</th>\n", | |
" <td>Ugt8a</td>\n", | |
" <td>-0.025879</td>\n", | |
" <td>1.301238e-34</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10324</th>\n", | |
" <td>Gjc2</td>\n", | |
" <td>-0.018265</td>\n", | |
" <td>9.710657e-30</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>327</th>\n", | |
" <td>Mag</td>\n", | |
" <td>-0.023913</td>\n", | |
" <td>2.289452e-29</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>20787</th>\n", | |
" <td>Foxf2</td>\n", | |
" <td>-0.013515</td>\n", | |
" <td>1.175043e-27</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>21484</th>\n", | |
" <td>Hpgd</td>\n", | |
" <td>-0.013823</td>\n", | |
" <td>2.829822e-26</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1830</th>\n", | |
" <td>AU021092</td>\n", | |
" <td>-0.013011</td>\n", | |
" <td>1.084705e-25</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1893</th>\n", | |
" <td>Spi1</td>\n", | |
" <td>-0.012720</td>\n", | |
" <td>1.102971e-24</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>442</th>\n", | |
" <td>Baiap3</td>\n", | |
" <td>-0.014161</td>\n", | |
" <td>6.709883e-24</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>290</th>\n", | |
" <td>Mog</td>\n", | |
" <td>-0.021022</td>\n", | |
" <td>3.471731e-23</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>20997</th>\n", | |
" <td>Grrp1</td>\n", | |
" <td>-0.012843</td>\n", | |
" <td>6.758478e-23</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Gene is_male pval\n", | |
"302 Ugt8a -0.025879 1.301238e-34\n", | |
"10324 Gjc2 -0.018265 9.710657e-30\n", | |
"327 Mag -0.023913 2.289452e-29\n", | |
"20787 Foxf2 -0.013515 1.175043e-27\n", | |
"21484 Hpgd -0.013823 2.829822e-26\n", | |
"1830 AU021092 -0.013011 1.084705e-25\n", | |
"1893 Spi1 -0.012720 1.102971e-24\n", | |
"442 Baiap3 -0.014161 6.709883e-24\n", | |
"290 Mog -0.021022 3.471731e-23\n", | |
"20997 Grrp1 -0.012843 6.758478e-23" | |
] | |
}, | |
"execution_count": 38, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"results.query('is_male < 0').sort_values('pval').head(10)[['Gene', 'is_male', 'pval']]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We don't really seem to find genes we expect as having large effect sizes.\n", | |
"\n", | |
"This is probably because for any given gene, a very large number genes are exactly zero, meaning that the sorted order is arbitrary. This is something people rarely consider for nonparametric Wilcoxon style tests: it is designed to be used on continuous data, not low probability discrete data. Using the quantitative nature of the data is helpful here." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 39, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Gene</th>\n", | |
" <th>is_male</th>\n", | |
" <th>pval</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>7521</th>\n", | |
" <td>Xist</td>\n", | |
" <td>0.003841</td>\n", | |
" <td>0.575027</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Gene is_male pval\n", | |
"7521 Xist 0.003841 0.575027" | |
] | |
}, | |
"execution_count": 39, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"results.query('Gene == \"Xist\"')[['Gene', 'is_male', 'pval']]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 43, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x1067f54e0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"jitter = np.random.uniform(-.33, .33, size=ds.shape[-1])\n", | |
"plt.yscale('log')\n", | |
"plt.scatter(ds.ca['is_male'] + jitter, ds[1978, :] + 1, alpha=0.05, c='k')\n", | |
"plt.ylabel('Slc6a11 expression (counts)')\n", | |
"plt.xticks([0, 1], ['Female', 'Male']);" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 44, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAD8CAYAAABthzNFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAIABJREFUeJzsvWmMJOl2HXa+iMyMXCL3pbauXmd65vHxPQ6NoWXTFA3KhkEBfpJhG5JsWF4gSxAEE4YJECBAA5b9j7AtwKINC8+LBEGyZNmwbNA2Tdg/SNEQafA9ad57PeRML7VmVu57ZGZERmaGf1SfO5HVVdU13Z21dMUBBtNVlRn5RVbld7977znnKs/zECBAgAABApyEdtULCBAgQIAA1xNBgAgQIECAAKciCBABAgQIEOBUBAEiQIAAAQKciiBABAgQIECAUxEEiAABAgQIcCqCABEgQIAAAU5FECACBAgQIMCpCAJEgAABAgQ4FaGrXsDboFAoePfv37/qZQQIECDAjcL3v//9lud5xdc97kYHiPv37+N73/veVS8jQIAAAW4UlFL7F3lcUGIKECBAgACnIggQAQIECBDgVAQBIkCAAAECnIogQAQIECBAgFMRBIgAAQIECHAqggARIECAAAFORRAgAgQIECDAqbjROojLguu6GI/HmM1mCIVCiMfjCIfDV72sleO23neAAAGOEWQQr4Hruuj3+/A8D5FIBJ7nod/vw3Xdq17aSnFb7ztAgABfIQgQr8F4PEYoFIKu6wAAXdcRCoUwHo+veGWrxW297wABAnyFaxUglFL/klLqv1FK/Y9KqX/hqtcDALPZTDZJQtd1zGazK1rR5eC23neAAAG+wsoDhFLqv1dKNZRST058/+eVUl8qpZ4rpX4ZADzP+189z/vzAP4igD+96rVdBKFQCPP5fOl78/kcodD73b65jvfNsle73Q7KXQECXAIuI4P4GwB+3v8NpZQO4L8C8McB/BiAf00p9WO+h/yHL39+5YjH45jNZrJZzudzzGYzxOPxK17ZanHd7jvoiQQIcPlYeYDwPO8fAOic+PY/CeC553k7nudNAfxdAH9SHeNXAfyG53n/6LTrKaX+glLqe0qp7zWbzdUuHkA4HEY6nYZSCtPpFEoppNPp957Nc93uO+iJBAhw+biqesEWgEPf12UAfwTALwD45wGklVIfeJ73104+0fO87wL4LgB8+umn3iWsVTbL24brdN+z2QyRSGTpe7quYzqdXtGKAgR4/3GtCume5/1V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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x14123c908>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"jitter = np.random.uniform(-.33, .33, size=ds.shape[-1])\n", | |
"plt.yscale('log')\n", | |
"plt.scatter(ds.ca['is_male'] + jitter, ds[302, :] + 1, alpha=0.05, c='k')\n", | |
"plt.ylabel('Ugt8a expression (counts)')\n", | |
"plt.xticks([0, 1], ['Female', 'Male']);" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 47, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"ds.close()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.6.3" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment