{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"from scipy import stats, sparse\n",
"import bottleneck\n",
"def run_egad(go, nw, **kwargs):\n",
" \"\"\"EGAD running function\n",
" \n",
" Wrapper to lower level functions for EGAD\n",
"\n",
" EGAD measures modularity of gene lists in co-expression networks. \n",
"\n",
" This was translated from the MATLAB version, which does tiled Cross Validation\n",
" \n",
" The useful kwargs are:\n",
" int - nFold : Number of CV folds to do, default is 3, \n",
" int - {min,max}_count : limits for number of terms in each gene list, these are exclusive values\n",
"\n",
"\n",
" Arguments:\n",
" go {pd.DataFrame} -- dataframe of genes x terms of values [0,1], where 1 is included in gene lists\n",
" nw {pd.DataFrame} -- dataframe of co-expression network, genes x genes\n",
" **kwargs \n",
" \n",
" Returns:\n",
" pd.DataFrame -- dataframe of terms x metrics where the metrics are \n",
" ['AUC', 'AVG_NODE_DEGREE', 'DEGREE_NULL_AUC', 'P_Value']\n",
" \"\"\"\n",
" assert nw.shape[0] == nw.shape[1] , 'Network is not square'\n",
" #print(nw.index)\n",
" #nw.columns = nw.columns.astype(int)\n",
" #print(nw.columns.astype(int))\n",
" assert np.all(nw.index == nw.columns) , 'Network index and columns are not in the same order'\n",
"\n",
" #nw_mask = nw.isna().sum(axis=1) != nw.shape[1]\n",
" #nw = nw.loc[nw_mask, nw_mask].astype('float')\n",
" #np.fill_diagonal(nw.values, 1)\n",
" return _runNV(go, nw, **kwargs)\n",
"\n",
"def _runNV(go, nw, nFold=3, min_count=1, max_count=1000000):\n",
"\n",
" #Make sure genes are same in go and nw\n",
" #go.index = go.index.map(str) \n",
" #nw.index = nw.index.map(str)\n",
" #nw.index = nw.index.str.replace('_', '')\n",
" #go.index = go.index.str.replace('_', '')\n",
" #print (nw)\n",
" genes_intersect = go.index.intersection(nw.index)\n",
"\n",
"\n",
" #print (genes_intersect)\n",
" go = go.loc[genes_intersect, :]\n",
" nw = nw.loc[genes_intersect, genes_intersect]\n",
" #print (go)\n",
" print (nw.shape)\n",
" print (go.shape)\n",
" sparsity = 1.0 - np.count_nonzero(go) / go.size\n",
" print (sparsity)\n",
" sparsity = 1.0 - np.count_nonzero(nw) / nw.size\n",
" print (sparsity)\n",
" #print(nw\n",
" #print(go\n",
" nw_mask = nw.isna().sum(axis=1) != nw.shape[1]\n",
" nw = nw.loc[nw_mask, nw_mask].astype('float')\n",
" np.fill_diagonal(nw.values, 1)\n",
" #Make sure there aren't duplicates\n",
" duplicates = nw.index.duplicated(keep='first')\n",
" nw = nw.loc[~duplicates, ~duplicates]\n",
"\n",
" go = go.loc[:, (go.sum(axis=0) > min_count) & (go.sum(axis=0) < max_count)]\n",
" go = go.loc[~go.index.duplicated(keep='first'), :]\n",
" #print(go)\n",
"\n",
" roc = _new_egad(go.values, nw.values, nFold)\n",
"\n",
" col_names = ['AUC', 'AVG_NODE_DEGREE', 'DEGREE_NULL_AUC', 'P_Value']\n",
" #Put output in dataframe\n",
" return pd.DataFrame(dict(zip(col_names, roc)), index=go.columns), go\n",
"\n",
"def _new_egad(go, nw, nFold):\n",
"\n",
" #Build Cross validated Positive\n",
" x, y = np.where(go)\n",
" #print(x, y)\n",
" cvgo = {}\n",
" for i in np.arange(nFold):\n",
" a = x[i::nFold]\n",
" #print(a)\n",
" b = y[i::nFold]\n",
" dat = np.ones_like(a)\n",
" mask = sparse.coo_matrix((dat, (a, b)), shape=go.shape)\n",
" cvgo[i] = go - mask.toarray()\n",
"\n",
" CVgo = np.concatenate(list(cvgo.values()), axis=1)\n",
" #print(CVgo)\n",
"\n",
" sumin = np.matmul(nw.T, CVgo)\n",
"\n",
" degree = np.sum(nw, axis=0)\n",
" #print(degree)\n",
" #print(degree[:, None])\n",
"\n",
" predicts = sumin / degree[:, None]\n",
" #print(predicts)\n",
"\n",
" np.place(predicts, CVgo > 0, np.nan)\n",
"\n",
" #print(predicts)\n",
"\n",
" #Calculate ranks of positives\n",
" rank_abs = lambda x: stats.rankdata(np.abs(x))\n",
" predicts2 = np.apply_along_axis(rank_abs, 0, predicts)\n",
" #print(predicts2)\n",
"\n",
" #Masking Nans that were ranked (how tiedrank works in matlab)\n",
" predicts2[np.isnan(predicts)] = np.nan\n",
" #print(predicts2)\n",
"\n",
" filtering = np.tile(go, nFold)\n",
" #print(filtering)\n",
"\n",
" #negatives :filtering == 0\n",
" #Sets Ranks of negatives to 0\n",
" np.place(predicts2, filtering == 0, 0)\n",
"\n",
" #Sum of ranks for each prediction\n",
" p = bottleneck.nansum(predicts2, axis=0)\n",
" n_p = np.sum(filtering, axis=0) - np.sum(CVgo, axis=0)\n",
"\n",
" #Number of negatives\n",
" #Number of GO terms - number of postiive\n",
" n_n = filtering.shape[0] - np.sum(filtering, axis=0)\n",
"\n",
" roc = (p / n_p - (n_p + 1) / 2) / n_n\n",
" U = roc * n_p * n_n\n",
" Z = (np.abs(U - (n_p * n_n / 2))) / np.sqrt(n_p * n_n *\n",
" (n_p + n_n + 1) / 12)\n",
" roc = roc.reshape(nFold, go.shape[1])\n",
" Z = Z.reshape(nFold, go.shape[1])\n",
" #Stouffer Z method\n",
" Z = bottleneck.nansum(Z, axis=0) / np.sqrt(nFold)\n",
" #Calc ROC of Neighbor Voting\n",
" roc = bottleneck.nanmean(roc, axis=0)\n",
" P = stats.norm.sf(Z)\n",
"\n",
" #Average degree for nodes in each go term\n",
" avg_degree = degree.dot(go) / np.sum(go, axis=0)\n",
"\n",
" #Calc null auc for degree\n",
" ranks = np.tile(stats.rankdata(degree), (go.shape[1], 1)).T\n",
"\n",
" np.place(ranks, go == 0, 0)\n",
"\n",
" n_p = bottleneck.nansum(go, axis=0)\n",
" nn = go.shape[0] - n_p\n",
" p = bottleneck.nansum(ranks, axis=0)\n",
"\n",
" roc_null = (p / n_p - ((n_p + 1) / 2)) / nn\n",
" #print(roc)\n",
" return roc, avg_degree, roc_null, P"
]
},
{
"cell_type": "code",
"execution_count": 1290,
"metadata": {},
"outputs": [],
"source": [
"marker_list = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/notebooks/metamarkers/biccn_class_markers.csv')\n",
"marker_list['gene'] = marker_list['gene'].str.upper()\n",
"#marker_list = marker_list[marker_list['rank'] < 250] \n"
]
},
{
"cell_type": "code",
"execution_count": 1277,
"metadata": {},
"outputs": [],
"source": [
"df_optimal_marker = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/notebooks/metamarkers/optimal_number_markers.csv')\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" hierarchy_level | \n",
" marker_set | \n",
" n_genes | \n",
" f1 | \n",
"
\n",
" \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Empty DataFrame\n",
"Columns: [hierarchy_level, marker_set, n_genes, f1]\n",
"Index: []"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_optimal_marker[df_optimal_marker['hierarchy_level'] == 'class']"
]
},
{
"cell_type": "code",
"execution_count": 865,
"metadata": {},
"outputs": [
{
"ename": "SyntaxError",
"evalue": "invalid syntax (, line 6)",
"output_type": "error",
"traceback": [
"\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m6\u001b[0m\n\u001b[0;31m df_optimal_marker['f1'].diff() /\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
]
}
],
"source": [
"df_optimal_marker = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/notebooks/metamarkers/optimal_number_markers.csv')\n",
"\n",
"\n",
"df_optimal_marker['n_genes'].diff()\n",
"\n",
"df_optimal_marker['f1'].diff() / \n",
"\n",
"df_optimal_marker.diff() / df_optimal_marker.index.to_series().diff().dt.total_seconds()\n",
"\n",
"df_optimal_marker[df_optimal_marker['hierarchy_level'] == 'class']"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/grid/gillis/home/lohia/.conda/envs/hicexplorer/lib/python3.8/site-packages/IPython/core/interactiveshell.py:3169: DtypeWarning: Columns (15,16) have mixed types.Specify dtype option on import or set low_memory=False.\n",
" has_raised = await self.run_ast_nodes(code_ast.body, cell_name,\n"
]
}
],
"source": [
"marker_list = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/notebooks/metamarkers/biccn_cluster_markers.csv')\n",
"marker_list['gene'] = marker_list['gene'].str.upper()\n",
"#marker_list = marker_list[marker_list['rank'] < 250] \n"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [],
"source": [
"df_optimal_marker = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/notebooks/metamarkers/optimal_number_markers.csv')\n",
"df_optimal_marker = df_optimal_marker[df_optimal_marker['n_genes'] >= 10]\n",
"df_optimal_marker = df_optimal_marker[df_optimal_marker['f1'] <= 0.8]\n",
"#df_optimal_marker = df_optimal_marker[df_optimal_marker['f1'] >= 0.8]\n",
"df_optimal_marker = df_optimal_marker.loc[df_optimal_marker.groupby('marker_set')['f1'].idxmax()]\n",
"#df_optimal_marker = df_optimal_marker.loc[df_optimal_marker.groupby('marker_set')['f1'].idxmin()]\n"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [],
"source": [
"marker_list_optimal_marker = []\n",
"for marker, n_genes in zip(df_optimal_marker['marker_set'].tolist(), df_optimal_marker['n_genes'].tolist()):\n",
" #print (n_genes)\n",
" \n",
" marker_list_optimal_marker.append(marker_list[(marker_list['cell_type'] == marker) & (marker_list['rank'] <= n_genes)])\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [],
"source": [
"marker_list = pd.concat(marker_list_optimal_marker)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" group | \n",
" cell_type | \n",
" rank | \n",
" gene | \n",
" recurrence | \n",
" auroc | \n",
" fold_change | \n",
" fold_change_detection | \n",
" expression | \n",
" precision | \n",
" recall | \n",
" population_size | \n",
" n_datasets | \n",
" scSS | \n",
" snSS | \n",
" scCv2 | \n",
" snCv2 | \n",
" snCv3M | \n",
" scCv3 | \n",
" snCv3Z | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" L2/3 IT | \n",
" L2/3 IT_1 | \n",
" 1 | \n",
" 6530403H02RIK | \n",
" 5 | \n",
" 0.842734 | \n",
" 5.410202 | \n",
" 2.606655 | \n",
" 255.840030 | \n",
" 0.095304 | \n",
" 0.830882 | \n",
" 492.833333 | \n",
" 6 | \n",
" NaN | \n",
" False | \n",
" True | \n",
" True | \n",
" True | \n",
" True | \n",
" True | \n",
"
\n",
" \n",
" 1 | \n",
" L2/3 IT | \n",
" L2/3 IT_1 | \n",
" 2 | \n",
" ADAMTS2 | \n",
" 5 | \n",
" 0.752062 | \n",
" 7.557666 | \n",
" 4.621909 | \n",
" 99.357999 | \n",
" 0.152135 | \n",
" 0.582932 | \n",
" 492.833333 | \n",
" 6 | \n",
" NaN | \n",
" False | \n",
" True | \n",
" True | \n",
" True | \n",
" True | \n",
" True | \n",
"
\n",
" \n",
" 2 | \n",
" L2/3 IT | \n",
" L2/3 IT_1 | \n",
" 3 | \n",
" COL23A1 | \n",
" 5 | \n",
" 0.702306 | \n",
" 12.460411 | \n",
" 7.980352 | \n",
" 61.676311 | \n",
" 0.219897 | \n",
" 0.446298 | \n",
" 492.833333 | \n",
" 6 | \n",
" NaN | \n",
" False | \n",
" True | \n",
" True | \n",
" True | \n",
" True | \n",
" True | \n",
"
\n",
" \n",
" 3 | \n",
" L2/3 IT | \n",
" L2/3 IT_1 | \n",
" 4 | \n",
" MET | \n",
" 5 | \n",
" 0.702247 | \n",
" 9.147210 | \n",
" 6.442665 | \n",
" 53.928589 | \n",
" 0.201546 | \n",
" 0.445979 | \n",
" 492.833333 | \n",
" 6 | \n",
" NaN | \n",
" False | \n",
" True | \n",
" True | \n",
" True | \n",
" True | \n",
" True | \n",
"
\n",
" \n",
" 4 | \n",
" L2/3 IT | \n",
" L2/3 IT_1 | \n",
" 5 | \n",
" UST | \n",
" 5 | \n",
" 0.696202 | \n",
" 6.217147 | \n",
" 3.645296 | \n",
" 59.489654 | \n",
" 0.121974 | \n",
" 0.479271 | \n",
" 492.833333 | \n",
" 6 | \n",
" NaN | \n",
" False | \n",
" True | \n",
" True | \n",
" True | \n",
" True | \n",
" True | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53495 | \n",
" Sncg | \n",
" Vip Sncg | \n",
" 496 | \n",
" FAT4 | \n",
" 0 | \n",
" 0.542318 | \n",
" 3.819274 | \n",
" 2.631081 | \n",
" 13.041018 | \n",
" 0.409894 | \n",
" 0.133476 | \n",
" 78.000000 | \n",
" 7 | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
"
\n",
" \n",
" 53496 | \n",
" Sncg | \n",
" Vip Sncg | \n",
" 497 | \n",
" KIF26B | \n",
" 0 | \n",
" 0.542200 | \n",
" 1.334584 | \n",
" 1.135989 | \n",
" 47.706334 | \n",
" 0.232890 | \n",
" 0.419233 | \n",
" 78.000000 | \n",
" 7 | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
"
\n",
" \n",
" 53497 | \n",
" Sncg | \n",
" Vip Sncg | \n",
" 498 | \n",
" UCHL4 | \n",
" 0 | \n",
" 0.542014 | \n",
" 1.518957 | \n",
" 1.007401 | \n",
" 9.047279 | \n",
" 0.219944 | \n",
" 0.302305 | \n",
" 78.000000 | \n",
" 7 | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
"
\n",
" \n",
" 53498 | \n",
" Sncg | \n",
" Vip Sncg | \n",
" 499 | \n",
" SYT5 | \n",
" 0 | \n",
" 0.541895 | \n",
" 1.417339 | \n",
" 0.999033 | \n",
" 76.087906 | \n",
" 0.212484 | \n",
" 0.496707 | \n",
" 78.000000 | \n",
" 7 | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
"
\n",
" \n",
" 53499 | \n",
" Sncg | \n",
" Vip Sncg | \n",
" 500 | \n",
" RAB27B | \n",
" 0 | \n",
" 0.541747 | \n",
" 1.246782 | \n",
" 1.019633 | \n",
" 126.686872 | \n",
" 0.216386 | \n",
" 0.615720 | \n",
" 78.000000 | \n",
" 7 | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
"
\n",
" \n",
"
\n",
"
21640 rows × 20 columns
\n",
"
"
],
"text/plain": [
" group cell_type rank gene recurrence auroc \\\n",
"0 L2/3 IT L2/3 IT_1 1 6530403H02RIK 5 0.842734 \n",
"1 L2/3 IT L2/3 IT_1 2 ADAMTS2 5 0.752062 \n",
"2 L2/3 IT L2/3 IT_1 3 COL23A1 5 0.702306 \n",
"3 L2/3 IT L2/3 IT_1 4 MET 5 0.702247 \n",
"4 L2/3 IT L2/3 IT_1 5 UST 5 0.696202 \n",
"... ... ... ... ... ... ... \n",
"53495 Sncg Vip Sncg 496 FAT4 0 0.542318 \n",
"53496 Sncg Vip Sncg 497 KIF26B 0 0.542200 \n",
"53497 Sncg Vip Sncg 498 UCHL4 0 0.542014 \n",
"53498 Sncg Vip Sncg 499 SYT5 0 0.541895 \n",
"53499 Sncg Vip Sncg 500 RAB27B 0 0.541747 \n",
"\n",
" fold_change fold_change_detection expression precision recall \\\n",
"0 5.410202 2.606655 255.840030 0.095304 0.830882 \n",
"1 7.557666 4.621909 99.357999 0.152135 0.582932 \n",
"2 12.460411 7.980352 61.676311 0.219897 0.446298 \n",
"3 9.147210 6.442665 53.928589 0.201546 0.445979 \n",
"4 6.217147 3.645296 59.489654 0.121974 0.479271 \n",
"... ... ... ... ... ... \n",
"53495 3.819274 2.631081 13.041018 0.409894 0.133476 \n",
"53496 1.334584 1.135989 47.706334 0.232890 0.419233 \n",
"53497 1.518957 1.007401 9.047279 0.219944 0.302305 \n",
"53498 1.417339 0.999033 76.087906 0.212484 0.496707 \n",
"53499 1.246782 1.019633 126.686872 0.216386 0.615720 \n",
"\n",
" population_size n_datasets scSS snSS scCv2 snCv2 snCv3M scCv3 \\\n",
"0 492.833333 6 NaN False True True True True \n",
"1 492.833333 6 NaN False True True True True \n",
"2 492.833333 6 NaN False True True True True \n",
"3 492.833333 6 NaN False True True True True \n",
"4 492.833333 6 NaN False True True True True \n",
"... ... ... ... ... ... ... ... ... \n",
"53495 78.000000 7 False False False False False False \n",
"53496 78.000000 7 False False False False False False \n",
"53497 78.000000 7 False False False False False False \n",
"53498 78.000000 7 False False False False False False \n",
"53499 78.000000 7 False False False False False False \n",
"\n",
" snCv3Z \n",
"0 True \n",
"1 True \n",
"2 True \n",
"3 True \n",
"4 True \n",
"... ... \n",
"53495 False \n",
"53496 False \n",
"53497 False \n",
"53498 False \n",
"53499 False \n",
"\n",
"[21640 rows x 20 columns]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"marker_list"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [],
"source": [
"df_ensg_name = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/genomes_jlee/mouse_geneid_symbol.txt',sep='\\t', names=['gene_id', 'gene'])\n",
"df_ensg_name['gene'] = df_ensg_name['gene'].str.upper()\n",
"marker_list = marker_list.merge(df_ensg_name, right_on='gene', left_on='gene') \n"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [],
"source": [
"marker_table = marker_list.pivot(index='gene_id', columns='cell_type', values='rank')"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [],
"source": [
"marker_table.fillna(0, inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {},
"outputs": [],
"source": [
"marker_table[marker_table != 0] = 1"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df_2d_jac, go_chrom = run_egad(marker_table, df_spr_corr)\n",
"%matplotlib inline\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"sns.scatterplot(data=df_2d_jac, x='AUC', y='DEGREE_NULL_AUC')\n",
"plt.plot([0, 1], [0, 1], c='black')\n",
"plt.axvline(x=df_2d_jac['AUC'].mean(),c='black',ls='--')\n",
"plt.axhline(y=df_2d_jac['DEGREE_NULL_AUC'].mean(), c='black', ls='--')"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df_2d_jac, go_chrom = run_egad(marker_table, df_jac_corr_list[7])\n",
"%matplotlib inline\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"sns.scatterplot(data=df_2d_jac, x='AUC', y='DEGREE_NULL_AUC')\n",
"plt.plot([0, 1], [0, 1], c='black')\n",
"plt.axvline(x=df_2d_jac['AUC'].mean(),c='black',ls='--')\n",
"plt.axhline(y=df_2d_jac['DEGREE_NULL_AUC'].mean(), c='black', ls='--')"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df_2d_jac, go_chrom = run_egad(marker_table, df_jac_corr_list[1])\n",
"%matplotlib inline\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"sns.scatterplot(data=df_2d_jac, x='AUC', y='DEGREE_NULL_AUC')\n",
"plt.plot([0, 1], [0, 1], c='black')\n",
"plt.axvline(x=df_2d_jac['AUC'].mean(),c='black',ls='--')\n",
"plt.axhline(y=df_2d_jac['DEGREE_NULL_AUC'].mean(), c='black', ls='--')"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.7259797585529112"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac['AUC'].median()"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.7131575855725043"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac['AUC'].median()"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.7350516750897755"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac['AUC'].median()"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.7348074077075757"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac['AUC'].median()"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.7378340915461538"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac['AUC'].median()"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.7404384844022516"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac['AUC'].median()"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.7285538217933243"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac['AUC'].median()"
]
},
{
"cell_type": "code",
"execution_count": 1070,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" AUC | \n",
" AVG_NODE_DEGREE | \n",
" DEGREE_NULL_AUC | \n",
" P_Value | \n",
"
\n",
" \n",
" cell_type | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" L2/3 IT | \n",
" 0.776499 | \n",
" 1907.539908 | \n",
" 0.266037 | \n",
" 6.117289e-02 | \n",
"
\n",
" \n",
" L5 ET | \n",
" 0.708926 | \n",
" 2078.763478 | \n",
" 0.405904 | \n",
" 4.068222e-02 | \n",
"
\n",
" \n",
" L5 IT | \n",
" 0.904952 | \n",
" 1443.010231 | \n",
" 0.122314 | \n",
" 3.091574e-03 | \n",
"
\n",
" \n",
" L5/6 NP | \n",
" 0.535520 | \n",
" 2095.223203 | \n",
" 0.477477 | \n",
" 1.902989e-04 | \n",
"
\n",
" \n",
" L6 CT | \n",
" 0.530231 | \n",
" 2122.446097 | \n",
" 0.503568 | \n",
" 1.148105e-03 | \n",
"
\n",
" \n",
" L6 IT | \n",
" 0.720077 | \n",
" 1787.250933 | \n",
" 0.340945 | \n",
" 1.911592e-03 | \n",
"
\n",
" \n",
" L6 IT Car3 | \n",
" 0.528872 | \n",
" 2101.590189 | \n",
" 0.493441 | \n",
" 1.750325e-03 | \n",
"
\n",
" \n",
" L6b | \n",
" 0.526045 | \n",
" 2120.717126 | \n",
" 0.504588 | \n",
" 4.683895e-03 | \n",
"
\n",
" \n",
" Sncg | \n",
" 0.593239 | \n",
" 1998.664713 | \n",
" 0.402004 | \n",
" 3.887993e-03 | \n",
"
\n",
" \n",
" Vip | \n",
" 0.581293 | \n",
" 2037.939976 | \n",
" 0.444929 | \n",
" 2.470167e-16 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" AUC AVG_NODE_DEGREE DEGREE_NULL_AUC P_Value\n",
"cell_type \n",
"L2/3 IT 0.776499 1907.539908 0.266037 6.117289e-02\n",
"L5 ET 0.708926 2078.763478 0.405904 4.068222e-02\n",
"L5 IT 0.904952 1443.010231 0.122314 3.091574e-03\n",
"L5/6 NP 0.535520 2095.223203 0.477477 1.902989e-04\n",
"L6 CT 0.530231 2122.446097 0.503568 1.148105e-03\n",
"L6 IT 0.720077 1787.250933 0.340945 1.911592e-03\n",
"L6 IT Car3 0.528872 2101.590189 0.493441 1.750325e-03\n",
"L6b 0.526045 2120.717126 0.504588 4.683895e-03\n",
"Sncg 0.593239 1998.664713 0.402004 3.887993e-03\n",
"Vip 0.581293 2037.939976 0.444929 2.470167e-16"
]
},
"execution_count": 1070,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac"
]
},
{
"cell_type": "code",
"execution_count": 1341,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" AUC | \n",
" AVG_NODE_DEGREE | \n",
" DEGREE_NULL_AUC | \n",
" P_Value | \n",
"
\n",
" \n",
" cell_type | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" GABAergic | \n",
" 0.756725 | \n",
" 17.896457 | \n",
" 0.430622 | \n",
" 0.003177 | \n",
"
\n",
" \n",
" Glutamatergic | \n",
" 0.687831 | \n",
" 18.717524 | \n",
" 0.582011 | \n",
" 0.052311 | \n",
"
\n",
" \n",
" Non-Neuronal | \n",
" 0.820833 | \n",
" 18.033159 | \n",
" 0.495000 | \n",
" 0.000998 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" AUC AVG_NODE_DEGREE DEGREE_NULL_AUC P_Value\n",
"cell_type \n",
"GABAergic 0.756725 17.896457 0.430622 0.003177\n",
"Glutamatergic 0.687831 18.717524 0.582011 0.052311\n",
"Non-Neuronal 0.820833 18.033159 0.495000 0.000998"
]
},
"execution_count": 1341,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac"
]
},
{
"cell_type": "code",
"execution_count": 808,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.8417328042328043"
]
},
"execution_count": 808,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac['AUC'].mean()"
]
},
{
"cell_type": "code",
"execution_count": 1190,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(4618, 4618)\n",
"(4618, 80)\n",
"0.9378545907319186\n",
"0.0\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 1190,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df_2d_jac, go_chrom = run_egad(marker_table, df_jac_corr)\n",
"%matplotlib inline\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"sns.scatterplot(data=df_2d_jac, x='AUC', y='DEGREE_NULL_AUC')\n",
"plt.plot([0, 1], [0, 1], c='black')\n",
"plt.axvline(x=df_2d_jac['AUC'].mean(),c='black',ls='--')\n",
"plt.axhline(y=df_2d_jac['DEGREE_NULL_AUC'].mean(), c='black', ls='--')"
]
},
{
"cell_type": "code",
"execution_count": 1191,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.661282315479487"
]
},
"execution_count": 1191,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac['AUC'].mean()"
]
},
{
"cell_type": "code",
"execution_count": 538,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" hierarchy_level | \n",
" marker_set | \n",
" n_genes | \n",
" f1 | \n",
"
\n",
" \n",
" \n",
" \n",
" 8 | \n",
" class | \n",
" GABAergic | \n",
" 500 | \n",
" 0.997599 | \n",
"
\n",
" \n",
" 20 | \n",
" class | \n",
" Glutamatergic | \n",
" 200 | \n",
" 0.999537 | \n",
"
\n",
" \n",
" 1177 | \n",
" subclass | \n",
" L2/3 IT | \n",
" 100 | \n",
" 0.908418 | \n",
"
\n",
" \n",
" 44 | \n",
" joint_cluster | \n",
" L2/3 IT_1 | \n",
" 50 | \n",
" 0.517432 | \n",
"
\n",
" \n",
" 59 | \n",
" joint_cluster | \n",
" L2/3 IT_2 | \n",
" 200 | \n",
" 0.548169 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 1110 | \n",
" joint_cluster | \n",
" Vip Mybpc1_3 | \n",
" 20 | \n",
" 0.594133 | \n",
"
\n",
" \n",
" 1123 | \n",
" joint_cluster | \n",
" Vip Serpinf1_1 | \n",
" 20 | \n",
" 0.414391 | \n",
"
\n",
" \n",
" 1138 | \n",
" joint_cluster | \n",
" Vip Serpinf1_2 | \n",
" 100 | \n",
" 0.870805 | \n",
"
\n",
" \n",
" 1150 | \n",
" joint_cluster | \n",
" Vip Serpinf1_3 | \n",
" 50 | \n",
" 0.566260 | \n",
"
\n",
" \n",
" 1165 | \n",
" joint_cluster | \n",
" Vip Sncg | \n",
" 200 | \n",
" 0.837217 | \n",
"
\n",
" \n",
"
\n",
"
101 rows × 4 columns
\n",
"
"
],
"text/plain": [
" hierarchy_level marker_set n_genes f1\n",
"8 class GABAergic 500 0.997599\n",
"20 class Glutamatergic 200 0.999537\n",
"1177 subclass L2/3 IT 100 0.908418\n",
"44 joint_cluster L2/3 IT_1 50 0.517432\n",
"59 joint_cluster L2/3 IT_2 200 0.548169\n",
"... ... ... ... ...\n",
"1110 joint_cluster Vip Mybpc1_3 20 0.594133\n",
"1123 joint_cluster Vip Serpinf1_1 20 0.414391\n",
"1138 joint_cluster Vip Serpinf1_2 100 0.870805\n",
"1150 joint_cluster Vip Serpinf1_3 50 0.566260\n",
"1165 joint_cluster Vip Sncg 200 0.837217\n",
"\n",
"[101 rows x 4 columns]"
]
},
"execution_count": 538,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_optimal_marker"
]
},
{
"cell_type": "code",
"execution_count": 1314,
"metadata": {},
"outputs": [],
"source": [
"df_2d_jac = df_2d_jac.merge(df_optimal_marker, left_on=df_2d_jac.index, right_on='marker_set')"
]
},
{
"cell_type": "code",
"execution_count": 1315,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" AUC | \n",
" AVG_NODE_DEGREE | \n",
" DEGREE_NULL_AUC | \n",
" P_Value | \n",
" hierarchy_level | \n",
" marker_set | \n",
" n_genes | \n",
" f1 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.494175 | \n",
" 1193.630474 | \n",
" 0.507786 | \n",
" 0.127781 | \n",
" class | \n",
" GABAergic | \n",
" 10000 | \n",
" 0.915857 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.504788 | \n",
" 1178.113422 | \n",
" 0.491181 | \n",
" 0.256743 | \n",
" class | \n",
" Glutamatergic | \n",
" 10000 | \n",
" 0.978755 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.603737 | \n",
" 1270.614887 | \n",
" 0.554007 | \n",
" 0.112343 | \n",
" class | \n",
" Non-Neuronal | \n",
" 10 | \n",
" 0.946366 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" AUC AVG_NODE_DEGREE DEGREE_NULL_AUC P_Value hierarchy_level \\\n",
"0 0.494175 1193.630474 0.507786 0.127781 class \n",
"1 0.504788 1178.113422 0.491181 0.256743 class \n",
"2 0.603737 1270.614887 0.554007 0.112343 class \n",
"\n",
" marker_set n_genes f1 \n",
"0 GABAergic 10000 0.915857 \n",
"1 Glutamatergic 10000 0.978755 \n",
"2 Non-Neuronal 10 0.946366 "
]
},
"execution_count": 1315,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac"
]
},
{
"cell_type": "code",
"execution_count": 1193,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 1193,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.scatterplot(y=df_2d_jac['AUC'], x=df_2d_jac['f1'])"
]
},
{
"cell_type": "code",
"execution_count": 1194,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 1194,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.scatterplot(y=df_2d_jac['AUC'], x=df_2d_jac['n_genes'])"
]
},
{
"cell_type": "code",
"execution_count": 1180,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 50\n",
"1 200\n",
"2 5000\n",
"3 5000\n",
"4 200\n",
" ... \n",
"75 20\n",
"76 20\n",
"77 500\n",
"78 50\n",
"79 500\n",
"Name: n_genes, Length: 80, dtype: int64"
]
},
"execution_count": 1180,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac['n_genes']"
]
},
{
"cell_type": "code",
"execution_count": 784,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 784,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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7dSn045je63tmu1aR0dHiacRERGDqTJMNgMLJM2XNIl6YKzv20nS6cBFwAMNbQK+C+y0fXOf/jMbVq8EtldQe0REDEFl7+ayfVTSKmAjMB5YZ3uHpJXF9jVF1yuBh2wfbhj+PuD3gSclbS3avmH7QeAGSYuoT5ntBT5f1XOIiIjWyO7vMsbJo1arubOzc7TLiIhoK5K22K610jefgI+IiNISJhERUVrCJCIiSkuYREREaQmTiIgoLWESERGlJUwiIqK0hElERJSWMImIiNISJhERUVrCJCIiSkuYREREaQmTiIgoLWESERGlJUwiIqK0hElERJSWMImIiNIqDRNJSyTtkrRb0uom278maWvxs13S65LOHGispDMlPSzp58XjtCqfQ0REDK6yMJE0HrgVuBRYCCyXtLCxj+0bbS+yvQj4OvCo7ZcGGbsa2GR7AbCpWI+IiFFU5ZnJYmC37T22XwXuBpYO0H85cFcLY5cCdxbLdwJXjHThERExNFWGySzguYb1rqLtOJKmAEuAe1sYO8P2AYDicfoI1hwREcNQZZioSZv76Xs58Ljtl4YxtvnBpRWSOiV1dnd3D2VoREQMUZVh0gXMaVifDezvp+8y/mGKa7CxByXNBCgeDzXboe21tmu2ax0dHcMoPyIiWlVlmGwGFkiaL2kS9cBY37eTpNOBi4AHWhy7HrimWL6mz7iIiBgFE6rase2jklYBG4HxwDrbOyStLLavKbpeCTxk+/BgY4vN1wP3SPocsA/4VFXPISIiWiN7SJci2lKtVnNnZ+dolxER0VYkbbFda6VvPgEfERGlJUwiIqK0hElERJSWMImIiNISJhERUVrCJCIiSkuYREREaQmTiIgoLWESERGlJUwiIqK0hElERJSWMImIiNISJhERUVrCJCIiSus3TCR9RNInm7R/RtIl1ZYVERHtZKAzk28CjzZp3wT8+2rKiYiIdjRQmEyx3d230favgKnVlRQREe1moDCZLOm42/pKmgic0srOJS2RtEvSbkmr++nzAUlbJe2Q9GjR9vairffnZUlfKrZdJ+n5hm2XtVJLRERUZ6B7wN8H3C5pVe/92SVNBb5dbBuQpPHArcAlQBewWdJ620819DkD+A6wxPY+SdMBbO8CFjXs53ng/obd32L7plafZEREVGugM5M/BQ4Cz0raIukJYC/QXWwbzGJgt+09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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.scatterplot(y=df_2d_jac['AUC'], x=df_2d_jac['f1'])"
]
},
{
"cell_type": "code",
"execution_count": 524,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 524,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(y=df_2d_jac['AUC'], x=df_2d_jac['f1'])"
]
},
{
"cell_type": "code",
"execution_count": 468,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.671356340110002"
]
},
"execution_count": 468,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac['AUC'].mean()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"df_optimal_marker"
]
},
{
"cell_type": "code",
"execution_count": 370,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" AUC | \n",
" AVG_NODE_DEGREE | \n",
" DEGREE_NULL_AUC | \n",
" P_Value | \n",
"
\n",
" \n",
" cell_type | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" GABAergic | \n",
" 0.756725 | \n",
" 17.896457 | \n",
" 0.430622 | \n",
" 0.003177 | \n",
"
\n",
" \n",
" Glutamatergic | \n",
" 0.687831 | \n",
" 18.717524 | \n",
" 0.582011 | \n",
" 0.052311 | \n",
"
\n",
" \n",
" Non-Neuronal | \n",
" 0.820833 | \n",
" 18.033159 | \n",
" 0.495000 | \n",
" 0.000998 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" AUC AVG_NODE_DEGREE DEGREE_NULL_AUC P_Value\n",
"cell_type \n",
"GABAergic 0.756725 17.896457 0.430622 0.003177\n",
"Glutamatergic 0.687831 18.717524 0.582011 0.052311\n",
"Non-Neuronal 0.820833 18.033159 0.495000 0.000998"
]
},
"execution_count": 370,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac"
]
},
{
"cell_type": "code",
"execution_count": 311,
"metadata": {},
"outputs": [],
"source": [
"df_optimal_marker = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/notebooks/metamarkers/optimal_number_markers.csv')\n",
"\n",
"\n",
"df_optimal_marker.loc[df_optimal_marker.groupby('marker_set')['f1'].idxmax()]"
]
},
{
"cell_type": "code",
"execution_count": 213,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" AUC | \n",
" AVG_NODE_DEGREE | \n",
" DEGREE_NULL_AUC | \n",
" P_Value | \n",
"
\n",
" \n",
" cell_type | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" L2/3 IT_1 | \n",
" 0.733561 | \n",
" 3506.493796 | \n",
" 0.412596 | \n",
" 1.739606e-55 | \n",
"
\n",
" \n",
" L2/3 IT_2 | \n",
" 0.637985 | \n",
" 3629.579985 | \n",
" 0.439401 | \n",
" 2.336410e-20 | \n",
"
\n",
" \n",
" L2/3 IT_3 | \n",
" 0.535113 | \n",
" 3733.917255 | \n",
" 0.449737 | \n",
" 5.855890e-05 | \n",
"
\n",
" \n",
" L4/5 IT_1 | \n",
" 0.641127 | \n",
" 3507.638301 | \n",
" 0.372313 | \n",
" 1.321543e-21 | \n",
"
\n",
" \n",
" L4/5 IT_2 | \n",
" 0.645324 | \n",
" 3592.453424 | \n",
" 0.420676 | \n",
" 1.643804e-22 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" Vip Mybpc1_3 | \n",
" 0.652867 | \n",
" 3576.540368 | \n",
" 0.406425 | \n",
" 7.652021e-25 | \n",
"
\n",
" \n",
" Vip Serpinf1_1 | \n",
" 0.591255 | \n",
" 3674.055112 | \n",
" 0.427297 | \n",
" 7.084149e-10 | \n",
"
\n",
" \n",
" Vip Serpinf1_2 | \n",
" 0.690646 | \n",
" 3617.295280 | \n",
" 0.413061 | \n",
" 3.120479e-37 | \n",
"
\n",
" \n",
" Vip Serpinf1_3 | \n",
" 0.643637 | \n",
" 3728.302092 | \n",
" 0.450042 | \n",
" 3.313931e-22 | \n",
"
\n",
" \n",
" Vip Sncg | \n",
" 0.663067 | \n",
" 3511.266429 | \n",
" 0.397031 | \n",
" 7.070980e-28 | \n",
"
\n",
" \n",
"
\n",
"
86 rows × 4 columns
\n",
"
"
],
"text/plain": [
" AUC AVG_NODE_DEGREE DEGREE_NULL_AUC P_Value\n",
"cell_type \n",
"L2/3 IT_1 0.733561 3506.493796 0.412596 1.739606e-55\n",
"L2/3 IT_2 0.637985 3629.579985 0.439401 2.336410e-20\n",
"L2/3 IT_3 0.535113 3733.917255 0.449737 5.855890e-05\n",
"L4/5 IT_1 0.641127 3507.638301 0.372313 1.321543e-21\n",
"L4/5 IT_2 0.645324 3592.453424 0.420676 1.643804e-22\n",
"... ... ... ... ...\n",
"Vip Mybpc1_3 0.652867 3576.540368 0.406425 7.652021e-25\n",
"Vip Serpinf1_1 0.591255 3674.055112 0.427297 7.084149e-10\n",
"Vip Serpinf1_2 0.690646 3617.295280 0.413061 3.120479e-37\n",
"Vip Serpinf1_3 0.643637 3728.302092 0.450042 3.313931e-22\n",
"Vip Sncg 0.663067 3511.266429 0.397031 7.070980e-28\n",
"\n",
"[86 rows x 4 columns]"
]
},
"execution_count": 213,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"from hicmatrix import HiCMatrix as hm\n",
"from hicmatrix.lib import MatrixFileHandler\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 185,
"metadata": {},
"outputs": [],
"source": [
"SRP_name='aggregates'\n",
"resolution='10kbp_raw'\n",
"exp_file_path=f'/grid/gillis/data/lohia/hi_c_data_processing/data_human/{SRP_name}/{resolution}/max/spr/0/all_bins/KR_KR/hic_gene_corr_intra_nanranked.h5'\n",
"\n",
"jac_sim_intra = hm.hiCMatrix(exp_file_path)\n",
"\n",
"\n",
"\n",
"\n",
"all_genes = [x[3].decode() for x in jac_sim_intra.cut_intervals]\n",
"df_jac_corr_intra = pd.DataFrame(jac_sim_intra.matrix.toarray() , index=all_genes, columns = all_genes)\n"
]
},
{
"cell_type": "code",
"execution_count": 198,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"55410.54265398567"
]
},
"execution_count": 198,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_jac_corr = df_jac_corr / df_jac_corr.max().max()"
]
},
{
"cell_type": "code",
"execution_count": 199,
"metadata": {},
"outputs": [],
"source": [
"df_jac_corr = df_jac_corr / df_jac_corr.max().max()"
]
},
{
"cell_type": "code",
"execution_count": 200,
"metadata": {},
"outputs": [],
"source": [
"df_jac_gw = df_jac_corr_intra + df_jac_corr"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
" species_list = ['mouse']\n",
" if species_list == ['human']:\n",
" color_1 = '#98DBF6'\n",
" color_2 = '#00A5E6'\n",
" elif species_list == ['mouse']:\n",
" color_1 = '#F69398'\n",
" color_2 = '#E83B43'\n",
" else:\n",
" color_1 = '#E9DBC4'\n",
" color_2 = '#EC9200' \n",
" \n",
" res_list = [25]\n",
" #res_list = [10]\n",
" #KR_type_list = ['KR_ranked_KR']\n",
" KR_type_list = ['KR']\n",
" #performance_type_list = ['all']\n",
" edge_type_list = ['contact']\n",
" #performance_type_list = ['inter_only/hic_gene_KR_inter_1_percent_per_chr.csv']\n",
" performance_type_list = ['inter_only/hic_gene_corr_inter_excluding_intra_nanranked_1_percent_per_chr.csv']\n",
" \n",
" #f_name = 'hic_gene_corr_inter_1_percent_per_chr.csv'\n",
" #f_name = 'hic_gene_KR_intra_1_percent_per_chr.csv'\n",
" #f_name = 'hic_gene_corr_gw_1_percent_per_chr.csv'\n",
"\n",
" df_list = []\n",
" for species in species_list: \n",
" df_seq_depth = pd.read_csv(f'/grid/gillis/data/lohia/hi_c_data_processing/data_{species}/stats/{species}_exclude_count_inter.txt', sep='\\t')\n",
" df_seq_depth['species'] = species\n",
" df_list.append(df_seq_depth)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"resolution agg_type\n",
"10 spearman 0.715911\n",
"Name: AUC, dtype: float64\n"
]
}
],
"source": [
" species_list = ['mouse']\n",
" if species_list == ['human']:\n",
" color_1 = '#98DBF6'\n",
" color_2 = '#00A5E6'\n",
" elif species_list == ['mouse']:\n",
" color_1 = '#F69398'\n",
" color_2 = '#E83B43'\n",
" else:\n",
" color_1 = '#E9DBC4'\n",
" color_2 = '#EC9200' \n",
" \n",
" res_list = [10]\n",
" #res_list = [10]\n",
" #KR_type_list = ['KR_ranked_KR']\n",
" KR_type_list = ['KR']\n",
" #performance_type_list = ['all']\n",
" edge_type_list = ['contact']\n",
" #performance_type_list = ['inter_only/hic_gene_KR_inter_1_percent_per_chr.csv']\n",
" performance_type_list = ['inter_only/hic_gene_corr_inter_excluding_intra_nanranked_1_percent_per_chr.csv']\n",
" \n",
" #f_name = 'hic_gene_corr_inter_1_percent_per_chr.csv'\n",
" #f_name = 'hic_gene_KR_intra_1_percent_per_chr.csv'\n",
" #f_name = 'hic_gene_corr_gw_1_percent_per_chr.csv'\n",
"\n",
" df_list = []\n",
" for species in species_list: \n",
" df_seq_depth = pd.read_csv(f'/grid/gillis/data/lohia/hi_c_data_processing/data_{species}/stats/{species}_exclude_count_inter.txt', sep='\\t')\n",
" df_seq_depth['species'] = species\n",
" df_list.append(df_seq_depth)\n",
"\n",
" #whole aggreagte\n",
" import pandas as pd\n",
" empty_list = []\n",
"\n",
" for species in species_list: \n",
" #for species in ['human']: \n",
" #for bin_type in ['gene_bins', 'all_bins', 'non_gene']: \n",
" for bin_type in ['all_bins']: \n",
" for resolution in res_list:\n",
" for coef in ['jac_sim']:\n",
" #for coef in ['pcc', 'jac_sim']:\n",
" #for mapping in ['tss']:\n",
" for mapping in ['max']:\n",
" #for percentile in [90]:\n",
" for percentile in [90]:\n",
" for gene_percentile in [1]:\n",
" #for gene_percentile in [10]:\n",
"\n",
" for KR_type in KR_type_list:\n",
" for performance_type, agg_type in zip(['/spr/0/all_bins/KR_KR/inter_only/hic_gene_corr_inter_excluding_intra_nanranked_1_percent_per_chr.csv', '/spr/0/all_bins/KR_KR/inter_only/hic_gene_corr_inter_excluding_intra_nanranked_ind_1_percent_per_chr.csv'], ['spearman']):\n",
"\n",
" file_path = f'/sonas-hs/gillis/hpc/data/lohia/hi_c_data_processing/data_{species}/aggregates/'\n",
"\n",
" file_name = f'{resolution}kbp_raw/{mapping}/{performance_type}'\n",
" \n",
" SRP_name = 'aggregates'\n",
" \n",
" exp_file_path=f'/grid/gillis/data/lohia/hi_c_data_processing/data_mouse/{SRP_name}/{resolution}kbp_raw/max/spr/0/all_bins/KR_KR/hic_gene_corr_inter_excluding_intra_nanranked.h5'\n",
"\n",
" jac_sim = hm.hiCMatrix(exp_file_path)\n",
"\n",
"\n",
"\n",
"\n",
" all_genes = [x[3].decode() for x in jac_sim.cut_intervals]\n",
" #df_jac_corr = pd.DataFrame(jac_sim.matrix.toarray() , index=all_genes, columns = all_genes)\n",
" df_spr_corr = pd.DataFrame(jac_sim.matrix.toarray() , index=all_genes, columns = all_genes)\n",
"\n",
"\n",
"\n",
" try:\n",
"\n",
"\n",
" df2, delo = run_egad(marker_table, df_spr_corr)\n",
" df2['species'] = species\n",
" df2['resolution'] = resolution\n",
" df2['agg_type'] = agg_type\n",
" df2['proj'] = 'all'\n",
" df2['edge_type'] = ''\n",
" empty_list.append(df2)\n",
" except:\n",
" continue\n",
" df_whole_agg=pd.concat(empty_list) \n",
" df_whole_agg['counts_inter'] = df_seq_depth['counts_inter'].sum()\n",
" print (df_whole_agg.groupby(['resolution', 'agg_type'])['AUC'].mean())\n",
" \n",
" \n"
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ENSMUSG00000102693 | \n",
" ENSMUSG00000064842 | \n",
" ENSMUSG00000051951 | \n",
" ENSMUSG00000102851 | \n",
" ENSMUSG00000103377 | \n",
" ENSMUSG00000104017 | \n",
" ENSMUSG00000103025 | \n",
" ENSMUSG00000089699 | \n",
" ENSMUSG00000103201 | \n",
" ENSMUSG00000103147 | \n",
" ... | \n",
" ENSMUSG00000024997 | \n",
" ENSMUSG00000003228 | \n",
" ENSMUSG00000096578 | \n",
" ENSMUSG00000088894 | \n",
" ENSMUSG00000074733 | \n",
" ENSMUSG00000070263 | \n",
" ENSMUSG00000094649 | \n",
" ENSMUSG00000069475 | \n",
" ENSMUSG00000059326 | \n",
" ENSMUSG00000095993 | \n",
"
\n",
" \n",
" \n",
" \n",
" ENSMUSG00000102693 | \n",
" 0.999989 | \n",
" 0.091126 | \n",
" 0.042889 | \n",
" 0.118388 | \n",
" 0.164761 | \n",
" 0.112540 | \n",
" 0.159532 | \n",
" 0.098523 | \n",
" 0.073155 | \n",
" 0.094609 | \n",
" ... | \n",
" 0.113291 | \n",
" 0.045060 | \n",
" 0.144341 | \n",
" 0.111495 | \n",
" 0.053982 | \n",
" 0.116297 | \n",
" 0.103342 | \n",
" 0.102819 | \n",
" 0.147300 | \n",
" 0.108835 | \n",
"
\n",
" \n",
" ENSMUSG00000064842 | \n",
" 0.091126 | \n",
" 1.000000 | \n",
" 0.056969 | \n",
" 0.152995 | \n",
" 0.231801 | \n",
" 0.232695 | \n",
" 0.217658 | \n",
" 0.207653 | \n",
" 0.208447 | \n",
" 0.280814 | \n",
" ... | \n",
" 0.363727 | \n",
" 0.083031 | \n",
" 0.285019 | \n",
" 0.239820 | \n",
" 0.119292 | \n",
" 0.232773 | \n",
" 0.175343 | \n",
" 0.194855 | \n",
" 0.322675 | \n",
" 0.332005 | \n",
"
\n",
" \n",
" ENSMUSG00000051951 | \n",
" 0.042889 | \n",
" 0.056969 | \n",
" 1.000000 | \n",
" 0.587005 | \n",
" 0.452241 | \n",
" 0.724443 | \n",
" 0.424368 | \n",
" 0.999960 | \n",
" 0.834338 | \n",
" 0.566007 | \n",
" ... | \n",
" 0.078999 | \n",
" 0.827348 | \n",
" 0.055386 | \n",
" 0.061939 | \n",
" 0.323253 | \n",
" 0.046414 | \n",
" 0.048160 | \n",
" 0.047927 | \n",
" 0.060510 | \n",
" 0.055908 | \n",
"
\n",
" \n",
" ENSMUSG00000102851 | \n",
" 0.118388 | \n",
" 0.152995 | \n",
" 0.587005 | \n",
" 1.000000 | \n",
" 0.322573 | \n",
" 0.221674 | \n",
" 0.249150 | \n",
" 0.277009 | \n",
" 0.141470 | \n",
" 0.185272 | \n",
" ... | \n",
" 0.317390 | \n",
" 0.083569 | \n",
" 0.346447 | \n",
" 0.352188 | \n",
" 0.144147 | \n",
" 0.301596 | \n",
" 0.173749 | \n",
" 0.211905 | \n",
" 0.369321 | \n",
" 0.262783 | \n",
"
\n",
" \n",
" ENSMUSG00000103377 | \n",
" 0.164761 | \n",
" 0.231801 | \n",
" 0.452241 | \n",
" 0.322573 | \n",
" 1.000000 | \n",
" 0.207181 | \n",
" 0.301403 | \n",
" 0.345862 | \n",
" 0.204697 | \n",
" 0.306185 | \n",
" ... | \n",
" 0.442615 | \n",
" 0.117918 | \n",
" 0.345586 | \n",
" 0.435560 | \n",
" 0.228384 | \n",
" 0.325391 | \n",
" 0.206390 | \n",
" 0.213624 | \n",
" 0.417791 | \n",
" 0.345242 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" ENSMUSG00000070263 | \n",
" 0.116297 | \n",
" 0.232773 | \n",
" 0.046414 | \n",
" 0.301596 | \n",
" 0.325391 | \n",
" 0.249391 | \n",
" 0.298799 | \n",
" 0.360378 | \n",
" 0.230062 | \n",
" 0.316854 | \n",
" ... | \n",
" 0.755167 | \n",
" 0.314758 | \n",
" 0.667760 | \n",
" 0.659668 | \n",
" 0.529270 | \n",
" 1.000000 | \n",
" 0.552038 | \n",
" 0.613802 | \n",
" 0.600358 | \n",
" 0.603090 | \n",
"
\n",
" \n",
" ENSMUSG00000094649 | \n",
" 0.103342 | \n",
" 0.175343 | \n",
" 0.048160 | \n",
" 0.173749 | \n",
" 0.206390 | \n",
" 0.120195 | \n",
" 0.191816 | \n",
" 0.276124 | \n",
" 0.124247 | \n",
" 0.250131 | \n",
" ... | \n",
" 0.627293 | \n",
" 0.239167 | \n",
" 0.575654 | \n",
" 0.532735 | \n",
" 0.363484 | \n",
" 0.552038 | \n",
" 1.000000 | \n",
" 0.471613 | \n",
" 0.598417 | \n",
" 0.527399 | \n",
"
\n",
" \n",
" ENSMUSG00000069475 | \n",
" 0.102819 | \n",
" 0.194855 | \n",
" 0.047927 | \n",
" 0.211905 | \n",
" 0.213624 | \n",
" 0.167080 | \n",
" 0.309829 | \n",
" 0.338047 | \n",
" 0.155388 | \n",
" 0.204897 | \n",
" ... | \n",
" 0.789961 | \n",
" 0.340179 | \n",
" 0.717251 | \n",
" 0.654239 | \n",
" 0.536909 | \n",
" 0.613802 | \n",
" 0.471613 | \n",
" 1.000000 | \n",
" 0.639318 | \n",
" 0.620931 | \n",
"
\n",
" \n",
" ENSMUSG00000059326 | \n",
" 0.147300 | \n",
" 0.322675 | \n",
" 0.060510 | \n",
" 0.369321 | \n",
" 0.417791 | \n",
" 0.351578 | \n",
" 0.386470 | \n",
" 0.548589 | \n",
" 0.211930 | \n",
" 0.317868 | \n",
" ... | \n",
" 0.882249 | \n",
" 0.625505 | \n",
" 0.802270 | \n",
" 0.815858 | \n",
" 0.785103 | \n",
" 0.600358 | \n",
" 0.598417 | \n",
" 0.639318 | \n",
" 1.000000 | \n",
" 0.761965 | \n",
"
\n",
" \n",
" ENSMUSG00000095993 | \n",
" 0.108835 | \n",
" 0.332005 | \n",
" 0.055908 | \n",
" 0.262783 | \n",
" 0.345242 | \n",
" 0.326246 | \n",
" 0.398001 | \n",
" 0.498257 | \n",
" 0.159163 | \n",
" 0.296880 | \n",
" ... | \n",
" 0.823491 | \n",
" 0.477132 | \n",
" 0.801654 | \n",
" 0.757546 | \n",
" 0.646471 | \n",
" 0.603090 | \n",
" 0.527399 | \n",
" 0.620931 | \n",
" 0.761965 | \n",
" 1.000000 | \n",
"
\n",
" \n",
"
\n",
"
50225 rows × 50225 columns
\n",
"
"
],
"text/plain": [
" ENSMUSG00000102693 ENSMUSG00000064842 \\\n",
"ENSMUSG00000102693 0.999989 0.091126 \n",
"ENSMUSG00000064842 0.091126 1.000000 \n",
"ENSMUSG00000051951 0.042889 0.056969 \n",
"ENSMUSG00000102851 0.118388 0.152995 \n",
"ENSMUSG00000103377 0.164761 0.231801 \n",
"... ... ... \n",
"ENSMUSG00000070263 0.116297 0.232773 \n",
"ENSMUSG00000094649 0.103342 0.175343 \n",
"ENSMUSG00000069475 0.102819 0.194855 \n",
"ENSMUSG00000059326 0.147300 0.322675 \n",
"ENSMUSG00000095993 0.108835 0.332005 \n",
"\n",
" ENSMUSG00000051951 ENSMUSG00000102851 \\\n",
"ENSMUSG00000102693 0.042889 0.118388 \n",
"ENSMUSG00000064842 0.056969 0.152995 \n",
"ENSMUSG00000051951 1.000000 0.587005 \n",
"ENSMUSG00000102851 0.587005 1.000000 \n",
"ENSMUSG00000103377 0.452241 0.322573 \n",
"... ... ... \n",
"ENSMUSG00000070263 0.046414 0.301596 \n",
"ENSMUSG00000094649 0.048160 0.173749 \n",
"ENSMUSG00000069475 0.047927 0.211905 \n",
"ENSMUSG00000059326 0.060510 0.369321 \n",
"ENSMUSG00000095993 0.055908 0.262783 \n",
"\n",
" ENSMUSG00000103377 ENSMUSG00000104017 \\\n",
"ENSMUSG00000102693 0.164761 0.112540 \n",
"ENSMUSG00000064842 0.231801 0.232695 \n",
"ENSMUSG00000051951 0.452241 0.724443 \n",
"ENSMUSG00000102851 0.322573 0.221674 \n",
"ENSMUSG00000103377 1.000000 0.207181 \n",
"... ... ... \n",
"ENSMUSG00000070263 0.325391 0.249391 \n",
"ENSMUSG00000094649 0.206390 0.120195 \n",
"ENSMUSG00000069475 0.213624 0.167080 \n",
"ENSMUSG00000059326 0.417791 0.351578 \n",
"ENSMUSG00000095993 0.345242 0.326246 \n",
"\n",
" ENSMUSG00000103025 ENSMUSG00000089699 \\\n",
"ENSMUSG00000102693 0.159532 0.098523 \n",
"ENSMUSG00000064842 0.217658 0.207653 \n",
"ENSMUSG00000051951 0.424368 0.999960 \n",
"ENSMUSG00000102851 0.249150 0.277009 \n",
"ENSMUSG00000103377 0.301403 0.345862 \n",
"... ... ... \n",
"ENSMUSG00000070263 0.298799 0.360378 \n",
"ENSMUSG00000094649 0.191816 0.276124 \n",
"ENSMUSG00000069475 0.309829 0.338047 \n",
"ENSMUSG00000059326 0.386470 0.548589 \n",
"ENSMUSG00000095993 0.398001 0.498257 \n",
"\n",
" ENSMUSG00000103201 ENSMUSG00000103147 ... \\\n",
"ENSMUSG00000102693 0.073155 0.094609 ... \n",
"ENSMUSG00000064842 0.208447 0.280814 ... \n",
"ENSMUSG00000051951 0.834338 0.566007 ... \n",
"ENSMUSG00000102851 0.141470 0.185272 ... \n",
"ENSMUSG00000103377 0.204697 0.306185 ... \n",
"... ... ... ... \n",
"ENSMUSG00000070263 0.230062 0.316854 ... \n",
"ENSMUSG00000094649 0.124247 0.250131 ... \n",
"ENSMUSG00000069475 0.155388 0.204897 ... \n",
"ENSMUSG00000059326 0.211930 0.317868 ... \n",
"ENSMUSG00000095993 0.159163 0.296880 ... \n",
"\n",
" ENSMUSG00000024997 ENSMUSG00000003228 \\\n",
"ENSMUSG00000102693 0.113291 0.045060 \n",
"ENSMUSG00000064842 0.363727 0.083031 \n",
"ENSMUSG00000051951 0.078999 0.827348 \n",
"ENSMUSG00000102851 0.317390 0.083569 \n",
"ENSMUSG00000103377 0.442615 0.117918 \n",
"... ... ... \n",
"ENSMUSG00000070263 0.755167 0.314758 \n",
"ENSMUSG00000094649 0.627293 0.239167 \n",
"ENSMUSG00000069475 0.789961 0.340179 \n",
"ENSMUSG00000059326 0.882249 0.625505 \n",
"ENSMUSG00000095993 0.823491 0.477132 \n",
"\n",
" ENSMUSG00000096578 ENSMUSG00000088894 \\\n",
"ENSMUSG00000102693 0.144341 0.111495 \n",
"ENSMUSG00000064842 0.285019 0.239820 \n",
"ENSMUSG00000051951 0.055386 0.061939 \n",
"ENSMUSG00000102851 0.346447 0.352188 \n",
"ENSMUSG00000103377 0.345586 0.435560 \n",
"... ... ... \n",
"ENSMUSG00000070263 0.667760 0.659668 \n",
"ENSMUSG00000094649 0.575654 0.532735 \n",
"ENSMUSG00000069475 0.717251 0.654239 \n",
"ENSMUSG00000059326 0.802270 0.815858 \n",
"ENSMUSG00000095993 0.801654 0.757546 \n",
"\n",
" ENSMUSG00000074733 ENSMUSG00000070263 \\\n",
"ENSMUSG00000102693 0.053982 0.116297 \n",
"ENSMUSG00000064842 0.119292 0.232773 \n",
"ENSMUSG00000051951 0.323253 0.046414 \n",
"ENSMUSG00000102851 0.144147 0.301596 \n",
"ENSMUSG00000103377 0.228384 0.325391 \n",
"... ... ... \n",
"ENSMUSG00000070263 0.529270 1.000000 \n",
"ENSMUSG00000094649 0.363484 0.552038 \n",
"ENSMUSG00000069475 0.536909 0.613802 \n",
"ENSMUSG00000059326 0.785103 0.600358 \n",
"ENSMUSG00000095993 0.646471 0.603090 \n",
"\n",
" ENSMUSG00000094649 ENSMUSG00000069475 \\\n",
"ENSMUSG00000102693 0.103342 0.102819 \n",
"ENSMUSG00000064842 0.175343 0.194855 \n",
"ENSMUSG00000051951 0.048160 0.047927 \n",
"ENSMUSG00000102851 0.173749 0.211905 \n",
"ENSMUSG00000103377 0.206390 0.213624 \n",
"... ... ... \n",
"ENSMUSG00000070263 0.552038 0.613802 \n",
"ENSMUSG00000094649 1.000000 0.471613 \n",
"ENSMUSG00000069475 0.471613 1.000000 \n",
"ENSMUSG00000059326 0.598417 0.639318 \n",
"ENSMUSG00000095993 0.527399 0.620931 \n",
"\n",
" ENSMUSG00000059326 ENSMUSG00000095993 \n",
"ENSMUSG00000102693 0.147300 0.108835 \n",
"ENSMUSG00000064842 0.322675 0.332005 \n",
"ENSMUSG00000051951 0.060510 0.055908 \n",
"ENSMUSG00000102851 0.369321 0.262783 \n",
"ENSMUSG00000103377 0.417791 0.345242 \n",
"... ... ... \n",
"ENSMUSG00000070263 0.600358 0.603090 \n",
"ENSMUSG00000094649 0.598417 0.527399 \n",
"ENSMUSG00000069475 0.639318 0.620931 \n",
"ENSMUSG00000059326 1.000000 0.761965 \n",
"ENSMUSG00000095993 0.761965 1.000000 \n",
"\n",
"[50225 rows x 50225 columns]"
]
},
"execution_count": 74,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_spr_corr"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6103467235135465\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.5599861684468066\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7066034917103047\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7231573228352367\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.718326347874062\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.3551680145730444\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6798085798792235\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.3944035784095749\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6864886699479629\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.4371360221513571\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6687111145764347\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.3778668743845887\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6675157683103421\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7216254922242987\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7045812940783742\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6695634289225827\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.707454112471216\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6754204905538819\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6784085523582698\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.5598843638091984\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.703893915216312\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.663594415916201\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6810034548667152\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.689479807543148\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.697328234109563\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6884943584596613\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6847035379960213\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.682942637600729\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6586943264724795\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6740598368254294\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7022487338088713\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6733382178914564\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6908103065126121\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
":76: FutureWarning: Indexing with multiple keys (implicitly converted to a tuple of keys) will be deprecated, use a list instead.\n",
" dt = df.groupby(['proj', 'resolution', 'agg_type'])['AUC', 'counts_inter'].mean().reset_index()\n",
":89: FutureWarning: Indexing with multiple keys (implicitly converted to a tuple of keys) will be deprecated, use a list instead.\n",
" dk = pd.concat([dt, df_whole_agg.groupby(['proj', 'resolution', 'agg_type'])['AUC', 'counts_inter'].mean().reset_index()])\n"
]
}
],
"source": [
" counter = 0\n",
" performance_type_list = ['inter_only/hic_gene_corr_inter_excluding_intra_nanranked_1_percent_per_chr.csv']\n",
" for species in species_list: \n",
" contacts_path = f'/grid/gillis/data/nfox/hi_c_data_processing/data_{species}/stats/'\n",
" df_con = pd.read_csv(f'{contacts_path}/project_network_counts.txt', sep=' ', names=['id', 'count'])\n",
"\n",
" import pandas as pd\n",
" empty_list = []\n",
"\n",
" for proj in df_con['id'].tolist():\n",
" counter = counter + 1\n",
" \n",
"\n",
" #for species in ['drosophila', 'drosophila', 'drosophila']: \n",
"\n",
" #for bin_type in ['gene_bins', 'all_bins', 'non_gene']: \n",
" for bin_type in ['all_bins']: \n",
" for resolution in res_list:\n",
" for coef in ['jac_sim']:\n",
" #for coef in ['pcc', 'jac_sim']:\n",
" #for mapping in ['tss']:\n",
" for mapping in ['max/spr/0/all_bins/KR_KR']:\n",
" #print (proj)\n",
" for percentile in ['90']:\n",
" for KR_type in KR_type_list:\n",
" for performance_type in performance_type_list:\n",
" #for performance_type in ['intra_only', 'inter_only', 'all']:\n",
" file_path = f'/sonas-hs/gillis/hpc/data/lohia/hi_c_data_processing/data_{species}/{proj}/'\n",
" file_name = f'{resolution}kbp_raw/{mapping}/{performance_type}'\n",
" \n",
" SRP_name = proj\n",
" \n",
" exp_file_path=f'/grid/gillis/data/lohia/hi_c_data_processing/data_mouse/{SRP_name}/{resolution}kbp_raw/max/spr/0/all_bins/KR_KR/hic_gene_corr_inter_excluding_intra_nanranked.h5'\n",
"\n",
" jac_sim = hm.hiCMatrix(exp_file_path)\n",
"\n",
"\n",
"\n",
"\n",
" all_genes = [x[3].decode() for x in jac_sim.cut_intervals]\n",
" #df_jac_corr = pd.DataFrame(jac_sim.matrix.toarray() , index=all_genes, columns = all_genes)\n",
" df_spr_corr = pd.DataFrame(jac_sim.matrix.toarray() , index=all_genes, columns = all_genes)\n",
"\n",
"\n",
"\n",
"\n",
" #file_name = f'{resolution}kbp_raw/{mapping}/{coef}/{percentile}/{bin_type}/{KR_type}/{performance_type}/{f_name}'\n",
"\n",
" try:\n",
"\n",
" df2, delo = run_egad(marker_table, df_spr_corr)\n",
" print ('AUC')\n",
" print (df2['AUC'].mean())\n",
" df2['species'] = species\n",
" df2['resolution'] = resolution\n",
" df2['proj'] = proj\n",
" df2['agg_type'] = 'proj_agg'\n",
" #print (proj)\n",
" \n",
" df_seq_depth_subset = df_seq_depth[df_seq_depth['proj_id'].isin([proj])]\n",
" df2['counts_inter'] = df_seq_depth_subset['counts_inter'].sum()\n",
"\n",
"\n",
" except:\n",
" #print (f'{file_path}/{file_name}')\n",
" print (counter, proj, resolution)\n",
" \n",
" continue\n",
"\n",
"\n",
" empty_list.append(df2)\n",
" df_ind=pd.concat(empty_list)\n",
"\n",
" df = pd.concat([df_whole_agg, df_ind])\n",
"\n",
" dt = df.groupby(['proj', 'resolution', 'agg_type'])['AUC', 'counts_inter'].mean().reset_index()\n",
"\n",
" for species in species_list: \n",
" df_seq_depth = pd.read_csv(f'/grid/gillis/data/lohia/hi_c_data_processing/data_{species}/stats/{species}_project_network_details.tsv', sep='\\t')\n",
" df_seq_depth['species'] = species\n",
" df_seq_depth['project'] = [x.strip() for x in df_seq_depth['project']]\n",
" df_seq_depth['experiment type'] = [x.strip() for x in df_seq_depth['experiment type']]\n",
" #dk['experiment type'] = [x if x=='Hi-C' else 'o' for x in dk['experiment type']]\n",
"\n",
" import numpy as np\n",
" dt['log_contacts'] = [np.log10(x) for x in dt['counts_inter']]\n",
"\n",
" dt = dt.merge(df_seq_depth, left_on='proj', right_on='project')\n",
" dk = pd.concat([dt, df_whole_agg.groupby(['proj', 'resolution', 'agg_type'])['AUC', 'counts_inter'].mean().reset_index()])\n",
" dk['log_contacts'] = [np.log10(x) for x in dk['counts_inter']]\n",
"\n",
" dk['experiment type'] = [x if x=='Hi-C' else 'o' for x in dk['experiment type']]\n",
" \n",
" #dk = dk[dk['auc'] > 0.5]\n",
" #dk = dk[dk['agg_type']=='proj_agg']\n",
" #print (dk)\n",
" \n",
" \n",
" \n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6592254534397619\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6352146472819639\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7051118288110804\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7160428727542091\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7128078168763238\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.3587179751213616\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7013168436171205\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.39434961738068847\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7031020804606621\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.4286326171443055\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6889362287595999\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.36623767019056397\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6816405075249692\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7207182638605036\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7110340506895567\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6967031568400295\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.71258588232311\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.699453144478461\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7018846461121437\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6483350290778658\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7148113090812845\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6871747180712554\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6995460764180358\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7019906613935811\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7020330488021832\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7113327480677395\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6854375773483904\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6891686050855974\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6928611870420643\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6970658068931794\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7074106255723416\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.700410536796326\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7119203363432131\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
":76: FutureWarning: Indexing with multiple keys (implicitly converted to a tuple of keys) will be deprecated, use a list instead.\n",
" dt = df.groupby(['proj', 'resolution', 'agg_type'])['AUC', 'counts_inter'].mean().reset_index()\n",
":89: FutureWarning: Indexing with multiple keys (implicitly converted to a tuple of keys) will be deprecated, use a list instead.\n",
" dk = pd.concat([dt, df_whole_agg.groupby(['proj', 'resolution', 'agg_type'])['AUC', 'counts_inter'].mean().reset_index()])\n"
]
}
],
"source": [
" counter = 0\n",
" performance_type_list = ['inter_only/hic_gene_corr_inter_excluding_intra_nanranked_1_percent_per_chr.csv']\n",
" for species in species_list: \n",
" contacts_path = f'/grid/gillis/data/nfox/hi_c_data_processing/data_{species}/stats/'\n",
" df_con = pd.read_csv(f'{contacts_path}/project_network_counts.txt', sep=' ', names=['id', 'count'])\n",
"\n",
" import pandas as pd\n",
" empty_list = []\n",
"\n",
" for proj in df_con['id'].tolist():\n",
" counter = counter + 1\n",
" \n",
"\n",
" #for species in ['drosophila', 'drosophila', 'drosophila']: \n",
"\n",
" #for bin_type in ['gene_bins', 'all_bins', 'non_gene']: \n",
" for bin_type in ['all_bins']: \n",
" for resolution in res_list:\n",
" for coef in ['jac_sim']:\n",
" #for coef in ['pcc', 'jac_sim']:\n",
" #for mapping in ['tss']:\n",
" for mapping in ['max/spr/0/all_bins/KR_KR']:\n",
" #print (proj)\n",
" for percentile in ['90']:\n",
" for KR_type in KR_type_list:\n",
" for performance_type in performance_type_list:\n",
" #for performance_type in ['intra_only', 'inter_only', 'all']:\n",
" file_path = f'/sonas-hs/gillis/hpc/data/lohia/hi_c_data_processing/data_{species}/{proj}/'\n",
" file_name = f'{resolution}kbp_raw/{mapping}/{performance_type}'\n",
" \n",
" SRP_name = proj\n",
" \n",
" exp_file_path=f'/grid/gillis/data/lohia/hi_c_data_processing/data_mouse/{SRP_name}/{resolution}kbp_raw/max/spr/0/all_bins/KR_KR/hic_gene_corr_inter_excluding_intra_nanranked.h5'\n",
"\n",
" jac_sim = hm.hiCMatrix(exp_file_path)\n",
"\n",
"\n",
"\n",
"\n",
" all_genes = [x[3].decode() for x in jac_sim.cut_intervals]\n",
" #df_jac_corr = pd.DataFrame(jac_sim.matrix.toarray() , index=all_genes, columns = all_genes)\n",
" df_spr_corr = pd.DataFrame(jac_sim.matrix.toarray() , index=all_genes, columns = all_genes)\n",
"\n",
"\n",
"\n",
"\n",
" #file_name = f'{resolution}kbp_raw/{mapping}/{coef}/{percentile}/{bin_type}/{KR_type}/{performance_type}/{f_name}'\n",
"\n",
" try:\n",
"\n",
" df2, delo = run_egad(marker_table, df_spr_corr)\n",
" print ('AUC')\n",
" print (df2['AUC'].mean())\n",
" df2['species'] = species\n",
" df2['resolution'] = resolution\n",
" df2['proj'] = proj\n",
" df2['agg_type'] = 'proj_agg'\n",
" #print (proj)\n",
" \n",
" df_seq_depth_subset = df_seq_depth[df_seq_depth['proj_id'].isin([proj])]\n",
" df2['counts_inter'] = df_seq_depth_subset['counts_inter'].sum()\n",
"\n",
"\n",
" except:\n",
" #print (f'{file_path}/{file_name}')\n",
" print (counter, proj, resolution)\n",
" \n",
" continue\n",
"\n",
"\n",
" empty_list.append(df2)\n",
" df_ind=pd.concat(empty_list)\n",
"\n",
" df = pd.concat([df_whole_agg, df_ind])\n",
"\n",
" dt = df.groupby(['proj', 'resolution', 'agg_type'])['AUC', 'counts_inter'].mean().reset_index()\n",
"\n",
" for species in species_list: \n",
" df_seq_depth = pd.read_csv(f'/grid/gillis/data/lohia/hi_c_data_processing/data_{species}/stats/{species}_project_network_details.tsv', sep='\\t')\n",
" df_seq_depth['species'] = species\n",
" df_seq_depth['project'] = [x.strip() for x in df_seq_depth['project']]\n",
" df_seq_depth['experiment type'] = [x.strip() for x in df_seq_depth['experiment type']]\n",
" #dk['experiment type'] = [x if x=='Hi-C' else 'o' for x in dk['experiment type']]\n",
"\n",
" import numpy as np\n",
" dt['log_contacts'] = [np.log10(x) for x in dt['counts_inter']]\n",
"\n",
" dt = dt.merge(df_seq_depth, left_on='proj', right_on='project')\n",
" dk = pd.concat([dt, df_whole_agg.groupby(['proj', 'resolution', 'agg_type'])['AUC', 'counts_inter'].mean().reset_index()])\n",
" dk['log_contacts'] = [np.log10(x) for x in dk['counts_inter']]\n",
"\n",
" dk['experiment type'] = [x if x=='Hi-C' else 'o' for x in dk['experiment type']]\n",
" \n",
" #dk = dk[dk['auc'] > 0.5]\n",
" #dk = dk[dk['agg_type']=='proj_agg']\n",
" #print (dk)\n",
" \n",
" \n",
" \n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6592254534397619\n",
"1 SRP249897 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6352146472819639\n",
"2 SRP292639 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7051118288110804\n",
"3 SRP217487 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7160428727542091\n",
"4 SRP075985 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7128078168763238\n",
"5 SRP105082 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.3587179751213616\n",
"6 SRP110616 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7013168436171205\n",
"7 SRP118601 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.39434961738068847\n",
"8 SRP200567 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7031020804606621\n",
"9 SRP223513 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.4286326171443055\n",
"10 SRP218950 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6889362287595999\n",
"11 SRP226118 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.36623767019056397\n",
"12 SRP194410 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6816405075249692\n",
"13 SRP156597 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7207182638605036\n",
"14 SRP107774 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7110340506895567\n",
"15 SRP270993 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6967031568400295\n",
"16 SRP250878 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.71258588232311\n",
"17 SRP101928 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.699453144478461\n",
"18 SRP247488 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7018846461121437\n",
"19 SRP229756 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6483350290778658\n",
"20 SRP144391 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7148113090812845\n",
"21 SRP179647 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6871747180712554\n",
"22 SRP096571 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6995460764180358\n",
"23 SRP227097 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7019906613935811\n",
"24 SRP119332 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7020330488021832\n",
"25 SRP268173 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7113327480677395\n",
"26 SRP192917 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6854375773483904\n",
"27 SRP100871 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6891686050855974\n",
"28 SRP252213 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6928611870420643\n",
"29 ERP114475 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.6970658068931794\n",
"30 SRP255620 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7074106255723416\n",
"31 SRP165933 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.700410536796326\n",
"32 SRP131117 25\n",
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7119203363432131\n",
"33 SRP261290 25\n"
]
},
{
"ename": "ValueError",
"evalue": "No objects to concatenate",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 70\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 71\u001b[0m \u001b[0mempty_list\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdf2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 72\u001b[0;31m \u001b[0mdf_ind\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mempty_list\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 73\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 74\u001b[0m \u001b[0mdf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mdf_whole_agg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdf_ind\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.conda/envs/hicexplorer/lib/python3.8/site-packages/pandas/core/reshape/concat.py\u001b[0m in \u001b[0;36mconcat\u001b[0;34m(objs, axis, join, ignore_index, keys, levels, names, verify_integrity, sort, copy)\u001b[0m\n\u001b[1;32m 283\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mIndexes\u001b[0m \u001b[0mhave\u001b[0m \u001b[0moverlapping\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m'a'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 284\u001b[0m \"\"\"\n\u001b[0;32m--> 285\u001b[0;31m op = _Concatenator(\n\u001b[0m\u001b[1;32m 286\u001b[0m \u001b[0mobjs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 287\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.conda/envs/hicexplorer/lib/python3.8/site-packages/pandas/core/reshape/concat.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, objs, axis, join, keys, levels, names, ignore_index, verify_integrity, copy, sort)\u001b[0m\n\u001b[1;32m 340\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 341\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobjs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 342\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"No objects to concatenate\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 343\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 344\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mkeys\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mValueError\u001b[0m: No objects to concatenate"
]
}
],
"source": [
" counter = 0\n",
" performance_type_list = ['inter_only/hic_gene_corr_inter_excluding_intra_nanranked_1_percent_per_chr.csv']\n",
" for species in species_list: \n",
" contacts_path = f'/grid/gillis/data/nfox/hi_c_data_processing/data_{species}/stats/'\n",
" df_con = pd.read_csv(f'{contacts_path}/project_network_counts.txt', sep=' ', names=['id', 'count'])\n",
"\n",
" import pandas as pd\n",
" empty_list = []\n",
"\n",
" for proj in df_con['id'].tolist():\n",
" counter = counter + 1\n",
" \n",
"\n",
" #for species in ['drosophila', 'drosophila', 'drosophila']: \n",
"\n",
" #for bin_type in ['gene_bins', 'all_bins', 'non_gene']: \n",
" for bin_type in ['all_bins']: \n",
" for resolution in res_list:\n",
" for coef in ['jac_sim']:\n",
" #for coef in ['pcc', 'jac_sim']:\n",
" #for mapping in ['tss']:\n",
" for mapping in ['max/spr/0/all_bins/KR_KR']:\n",
" #print (proj)\n",
" for percentile in ['90']:\n",
" for KR_type in KR_type_list:\n",
" for performance_type in performance_type_list:\n",
" #for performance_type in ['intra_only', 'inter_only', 'all']:\n",
" file_path = f'/sonas-hs/gillis/hpc/data/lohia/hi_c_data_processing/data_{species}/{proj}/'\n",
" file_name = f'{resolution}kbp_raw/{mapping}/{performance_type}'\n",
" \n",
" SRP_name = proj\n",
" \n",
" exp_file_path=f'/grid/gillis/data/lohia/hi_c_data_processing/data_mouse/{SRP_name}/{resolution}kbp_raw/max/spr/0/all_bins/KR_KR/hic_gene_corr_inter_excluding_intra_nanranked.h5'\n",
"\n",
" jac_sim = hm.hiCMatrix(exp_file_path)\n",
"\n",
"\n",
"\n",
"\n",
" all_genes = [x[3].decode() for x in jac_sim.cut_intervals]\n",
" #df_jac_corr = pd.DataFrame(jac_sim.matrix.toarray() , index=all_genes, columns = all_genes)\n",
" df_spr_corr = pd.DataFrame(jac_sim.matrix.toarray() , index=all_genes, columns = all_genes)\n",
"\n",
"\n",
"\n",
"\n",
" #file_name = f'{resolution}kbp_raw/{mapping}/{coef}/{percentile}/{bin_type}/{KR_type}/{performance_type}/{f_name}'\n",
"\n",
" try:\n",
"\n",
" df2, delo = run_egad(marker_table, df_spr_corr)\n",
" print ('AUC')\n",
" print (df2['AUC'].mean())\n",
" df2['species'] = species\n",
" df2['resolution'] = resolution\n",
" df2['proj'] = proj\n",
" df2['agg_type'] = 'proj_agg'\n",
" #print (proj)\n",
" \n",
" df_seq_depth_subset = df_seq_depth[df_seq_depth['proj_id'].isin([proj])]\n",
" df2['counts_inter'] = df_seq_depth_subset['counts_inter'].sum()\n",
"\n",
"\n",
" except:\n",
" #print (f'{file_path}/{file_name}')\n",
" print (counter, proj, resolution)\n",
" \n",
" continue\n",
"\n",
"\n",
" empty_list.append(df2)\n",
" df_ind=pd.concat(empty_list)\n",
"\n",
" df = pd.concat([df_whole_agg, df_ind])\n",
"\n",
" dt = df.groupby(['proj', 'resolution', 'agg_type'])['AUC', 'counts_inter'].mean().reset_index()\n",
"\n",
" for species in species_list: \n",
" df_seq_depth = pd.read_csv(f'/grid/gillis/data/lohia/hi_c_data_processing/data_{species}/stats/{species}_project_network_details.tsv', sep='\\t')\n",
" df_seq_depth['species'] = species\n",
" df_seq_depth['project'] = [x.strip() for x in df_seq_depth['project']]\n",
" df_seq_depth['experiment type'] = [x.strip() for x in df_seq_depth['experiment type']]\n",
" #dk['experiment type'] = [x if x=='Hi-C' else 'o' for x in dk['experiment type']]\n",
"\n",
" import numpy as np\n",
" dt['log_contacts'] = [np.log10(x) for x in dt['counts_inter']]\n",
"\n",
" dt = dt.merge(df_seq_depth, left_on='proj', right_on='project')\n",
" dk = pd.concat([dt, df_whole_agg.groupby(['proj', 'resolution', 'agg_type'])['AUC', 'counts_inter'].mean().reset_index()])\n",
" dk['log_contacts'] = [np.log10(x) for x in dk['counts_inter']]\n",
"\n",
" dk['experiment type'] = [x if x=='Hi-C' else 'o' for x in dk['experiment type']]\n",
" \n",
" #dk = dk[dk['auc'] > 0.5]\n",
" #dk = dk[dk['agg_type']=='proj_agg']\n",
" #print (dk)\n",
" \n",
" \n",
" \n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n",
"AUC\n",
"0.7119203363432131\n"
]
}
],
"source": [
" df2, delo = run_egad(marker_table, df_spr_corr)\n",
" print ('AUC')\n",
" print (df2['AUC'].mean())\n",
" df2['species'] = species\n",
" df2['resolution'] = resolution\n",
" df2['proj'] = proj\n",
" df2['agg_type'] = 'proj_agg'\n",
" #print (proj)\n",
" \n",
" df_seq_depth_subset = df_seq_depth[df_seq_depth['proj_id'].isin([proj])]\n",
" df2['counts_inter'] = df_seq_depth_subset['counts_inter'].sum()"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" proj_id | \n",
" srx_id | \n",
" run_id | \n",
" counts_inter | \n",
" species | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" SRP249897 | \n",
" SRX7755137 | \n",
" SRR11118383 | \n",
" 128088 | \n",
" mouse | \n",
"
\n",
" \n",
" 1 | \n",
" SRP249897 | \n",
" SRX7743243 | \n",
" SRR11105815 | \n",
" 91010 | \n",
" mouse | \n",
"
\n",
" \n",
" 2 | \n",
" SRP249897 | \n",
" SRX7757436 | \n",
" SRR11120501 | \n",
" 240 | \n",
" mouse | \n",
"
\n",
" \n",
" 3 | \n",
" SRP249897 | \n",
" SRX7756045 | \n",
" SRR11118813 | \n",
" 91808 | \n",
" mouse | \n",
"
\n",
" \n",
" 4 | \n",
" SRP249897 | \n",
" SRX7743501 | \n",
" SRR11105557 | \n",
" 93382 | \n",
" mouse | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 6674 | \n",
" SRP261290 | \n",
" SRX8350007 | \n",
" SRR11798548 | \n",
" 71210268 | \n",
" mouse | \n",
"
\n",
" \n",
" 6675 | \n",
" SRP261290 | \n",
" SRX8350006 | \n",
" SRR11798546 | \n",
" 89116604 | \n",
" mouse | \n",
"
\n",
" \n",
" 6676 | \n",
" SRP261290 | \n",
" SRX8350006 | \n",
" SRR11798547 | \n",
" 89253714 | \n",
" mouse | \n",
"
\n",
" \n",
" 6677 | \n",
" SRP261290 | \n",
" SRX8350009 | \n",
" SRR11798552 | \n",
" 81019912 | \n",
" mouse | \n",
"
\n",
" \n",
" 6678 | \n",
" SRP261290 | \n",
" SRX8350009 | \n",
" SRR11798553 | \n",
" 82090246 | \n",
" mouse | \n",
"
\n",
" \n",
"
\n",
"
6679 rows × 5 columns
\n",
"
"
],
"text/plain": [
" proj_id srx_id run_id counts_inter species\n",
"0 SRP249897 SRX7755137 SRR11118383 128088 mouse\n",
"1 SRP249897 SRX7743243 SRR11105815 91010 mouse\n",
"2 SRP249897 SRX7757436 SRR11120501 240 mouse\n",
"3 SRP249897 SRX7756045 SRR11118813 91808 mouse\n",
"4 SRP249897 SRX7743501 SRR11105557 93382 mouse\n",
"... ... ... ... ... ...\n",
"6674 SRP261290 SRX8350007 SRR11798548 71210268 mouse\n",
"6675 SRP261290 SRX8350006 SRR11798546 89116604 mouse\n",
"6676 SRP261290 SRX8350006 SRR11798547 89253714 mouse\n",
"6677 SRP261290 SRX8350009 SRR11798552 81019912 mouse\n",
"6678 SRP261290 SRX8350009 SRR11798553 82090246 mouse\n",
"\n",
"[6679 rows x 5 columns]"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_seq_depth"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"empty_list"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"import seaborn as sns\n",
"%matplotlib inline\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" proj | \n",
" resolution | \n",
" agg_type | \n",
" AUC | \n",
" counts_inter | \n",
" log_contacts | \n",
" project | \n",
" runs | \n",
" experiment type | \n",
" experiment type2 | \n",
" SRA link | \n",
" Paper title | \n",
" abstract | \n",
" Unnamed: 7 | \n",
" species | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" ERP114475 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.658694 | \n",
" 329576950 | \n",
" 8.517957 | \n",
" ERP114475 | \n",
" 24.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/ERX3279682[accn] | \n",
" Six in situ Hi-C libraries of control and mES... | \n",
" In this experiment, we've examined chromatin c... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 1 | \n",
" SRP075985 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.723157 | \n",
" 4463102620 | \n",
" 9.649637 | \n",
" SRP075985 | \n",
" 573.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX6912442[accn] | \n",
" Myc regulates chromatin decompaction and nucle... | \n",
" 50 years ago, Vincent Allfrey and colleagues d... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 2 | \n",
" SRP096571 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.663594 | \n",
" 212179138 | \n",
" 8.326703 | \n",
" SRP096571 | \n",
" 48.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX3088637[accn] | \n",
" Two independent modes of chromosome organizati... | \n",
" The three-dimensional organization of chromoso... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 3 | \n",
" SRP100871 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.684704 | \n",
" 526403612 | \n",
" 8.721319 | \n",
" SRP100871 | \n",
" 30.0 | \n",
" o | \n",
" Hi-C and promoter capture Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX2599842[accn] | \n",
" Dynamic rewiring of promoter-anchored chromat... | \n",
" Interactions between transcriptional promoters... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 4 | \n",
" SRP101928 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.707454 | \n",
" 6160271418 | \n",
" 9.789600 | \n",
" SRP101928 | \n",
" 56.0 | \n",
" Hi-C | \n",
" in Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX2641633[accn] | \n",
" Interplay between genome topology and gene re... | \n",
" Studies of genome topology, chromatin state an... | \n",
" rel | \n",
" mouse | \n",
"
\n",
" \n",
" 5 | \n",
" SRP105082 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.718326 | \n",
" 3365835632 | \n",
" 9.527093 | \n",
" SRP105082 | \n",
" 361.0 | \n",
" o | \n",
" ChIA-PET, insitu Hi-C, 4C, localHiC | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX4099799[accn] | \n",
" The energetics and physiological impact of co... | \n",
" Cohesin extrusion is thought to play a central... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 6 | \n",
" SRP107774 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.721625 | \n",
" 1652774044 | \n",
" 9.218213 | \n",
" SRP107774 | \n",
" 60.0 | \n",
" Hi-C | \n",
" in Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX4223391[accn] | \n",
" Global organization of the B cell genome by th... | \n",
" We used genome-wide in situ Hi-C to show that ... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 7 | \n",
" SRP110616 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.355168 | \n",
" 104226676 | \n",
" 8.017979 | \n",
" SRP110616 | \n",
" 211.0 | \n",
" o | \n",
" single-nucleus Hi-C (snHi-C) | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX3347165[accn] | \n",
" A Mechanism of Cohesin-Dependent Loop Extrusio... | \n",
" Fertilization triggers assembly of higher-orde... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 8 | \n",
" SRP118601 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.679809 | \n",
" 1810904034 | \n",
" 9.257895 | \n",
" SRP118601 | \n",
" 200.0 | \n",
" Hi-C | \n",
" in Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX3205287[accn] | \n",
" Rev-erba Dynamically Modulates Chromatin Orga... | \n",
" Much of mammalian physiology exhibits 24-hour ... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 9 | \n",
" SRP119332 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.689480 | \n",
" 688241168 | \n",
" 8.837741 | \n",
" SRP119332 | \n",
" 37.0 | \n",
" o | \n",
" Allele-specific and traditional Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX3241607[accn] | \n",
" A TAD boundary is preserved upon deletion of ... | \n",
" The binding of the transcriptional regulator C... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 10 | \n",
" SRP131117 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.673338 | \n",
" 851552372 | \n",
" 8.930211 | \n",
" SRP131117 | \n",
" 21.0 | \n",
" o | \n",
" low-input Hi-C method | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX4218893[accn] | \n",
" Reprogramming of meiotic chromatin architectur... | \n",
" Chromatin organization undergoes drastic repro... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 11 | \n",
" SRP144391 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.559884 | \n",
" 193612804 | \n",
" 8.286934 | \n",
" SRP144391 | \n",
" 52.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX4024421[accn] | \n",
" Single-cell DNA replication profiling identifi... | \n",
" In mammals, chromosomes are partitioned into m... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 12 | \n",
" SRP156597 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.667516 | \n",
" 455536646 | \n",
" 8.658523 | \n",
" SRP156597 | \n",
" 63.0 | \n",
" o | \n",
" low-input Hi-C (sisHi-C), snHi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX6771185[accn] | \n",
" Polycomb group proteins regulate chromatin arc... | \n",
" In mammals, chromatin organization undergoes d... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 13 | \n",
" SRP165933 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.702249 | \n",
" 1952549990 | \n",
" 9.290602 | \n",
" SRP165933 | \n",
" 22.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX6384791[accn] | \n",
" A pliable mediator acts as a functional, rathe... | \n",
" Our mechanistic understanding of Mediator deri... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 14 | \n",
" SRP179647 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.703894 | \n",
" 535116088 | \n",
" 8.728448 | \n",
" SRP179647 | \n",
" 48.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX5938701[accn] | \n",
" The ChAHP complex counteracts chromatin loopin... | \n",
" Ctcf and cohesin are key players in the three ... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 15 | \n",
" SRP192917 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.688494 | \n",
" 492438182 | \n",
" 8.692352 | \n",
" SRP192917 | \n",
" 35.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX6741031[accn] | \n",
" Re-configuration of Chromatin Structure During... | \n",
" Chromatin architecture is temporarily disrupte... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 16 | \n",
" SRP194410 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.377867 | \n",
" 17278402 | \n",
" 7.237504 | \n",
" SRP194410 | \n",
" 67.0 | \n",
" o | \n",
" sn-Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX5776015[accn] | \n",
" Ovulation suppression prevents the increase in... | \n",
" Multiple mechanisms likely contribute to the i... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 17 | \n",
" SRP200567 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.394404 | \n",
" 16292950 | \n",
" 7.212000 | \n",
" SRP200567 | \n",
" 131.0 | \n",
" o | \n",
" snHiC | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX5978558[accn] | \n",
" Wapl-mediated release of Scc1-cohesin regulate... | \n",
" Cohesin is essential for genome folding and ch... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 18 | \n",
" SRP217487 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.706603 | \n",
" 51833900034 | \n",
" 10.714614 | \n",
" SRP217487 | \n",
" 573.0 | \n",
" Hi-C | \n",
" in Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX6657344[accn] | \n",
" Nucleome Dynamics during Retinal Development[... | \n",
" The nuclei of rod photoreceptors in mice and o... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 19 | \n",
" SRP218950 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.437136 | \n",
" 10079064 | \n",
" 7.003420 | \n",
" SRP218950 | \n",
" 73.0 | \n",
" o | \n",
" sn-Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX6746563[accn] | \n",
" Polycomb group proteins regulate chromatin ar... | \n",
" In mammals, chromatin organization undergoes d... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 20 | \n",
" SRP223513 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.686489 | \n",
" 756594390 | \n",
" 8.878863 | \n",
" SRP223513 | \n",
" 78.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX9326775[accn] | \n",
" G9a plays distinct roles in maintaining DNA me... | \n",
" G9a is a lysine methyltransferase that regulat... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 21 | \n",
" SRP226118 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.668711 | \n",
" 1195070040 | \n",
" 9.077393 | \n",
" SRP226118 | \n",
" 68.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX7016182[accn] | \n",
" The transcriptional and architectural resetti... | \n",
" The molecular identity of dividing cells is te... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 22 | \n",
" SRP227097 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.681003 | \n",
" 442224358 | \n",
" 8.645643 | \n",
" SRP227097 | \n",
" 37.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX8628810[accn] | \n",
" Analysis of genome architecture during SCNT re... | \n",
" Somatic cell nuclear transfer (SCNT) can repro... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 23 | \n",
" SRP229756 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.678409 | \n",
" 879256390 | \n",
" 8.944116 | \n",
" SRP229756 | \n",
" 52.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX7988749[accn] | \n",
" Defining the relative and combined contributio... | \n",
" We analyzed the impact of CTCFL and CTCF-CTCFL... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 24 | \n",
" SRP247488 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.675420 | \n",
" 771789272 | \n",
" 8.887499 | \n",
" SRP247488 | \n",
" 52.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX9641498[accn] | \n",
" Balancing cohesin eviction and retention prev... | \n",
" Depletion of architectural factors globally al... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 25 | \n",
" SRP249897 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.610347 | \n",
" 262699646 | \n",
" 8.419459 | \n",
" SRP249897 | \n",
" 2544.0 | \n",
" o | \n",
" single-cell Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX7757863[accn] | \n",
" Diploid chromatin conformation capture (Dip-C)... | \n",
" To study the dynamics of 3D genome structure d... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 26 | \n",
" SRP250878 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.669563 | \n",
" 853812632 | \n",
" 8.931363 | \n",
" SRP250878 | \n",
" 56.0 | \n",
" o | \n",
" low-input Hi-C approach | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX7811036[accn] | \n",
" Chromatin architecture reorganization in soma... | \n",
" The oocyte cytoplasm can reprogram somatic cel... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 27 | \n",
" SRP252213 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.682943 | \n",
" 1000319750 | \n",
" 9.000139 | \n",
" SRP252213 | \n",
" 24.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX9184929[accn] | \n",
" Histone H3.3G34-mutant interneuron progenitors... | \n",
" Histone H3.3 glycine 34 to arginine/valine (H3... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 28 | \n",
" SRP255620 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.674060 | \n",
" 532658360 | \n",
" 8.726449 | \n",
" SRP255620 | \n",
" 22.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX8074916[accn] | \n",
" Nuclear organization and replication timing a... | \n",
" Three-dimensional genome organisation and repl... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 29 | \n",
" SRP261290 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.690810 | \n",
" 1827183488 | \n",
" 9.261782 | \n",
" SRP261290 | \n",
" 20.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX8350013[accn] | \n",
" DNA Double-Strand Breaks Induce H2Ax Phosphor... | \n",
" Efficient repair of DNA double-strand breaks (... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 30 | \n",
" SRP268173 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.697328 | \n",
" 581117420 | \n",
" 8.764264 | \n",
" SRP268173 | \n",
" 36.0 | \n",
" o | \n",
" low-input Hi-C method, tagHi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX8590529[accn] | \n",
" Chromatin architecture landscape in hierarchic... | \n",
" The spatiotemporal chromatin reorganization du... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 31 | \n",
" SRP270993 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.704581 | \n",
" 561311230 | \n",
" 8.749204 | \n",
" SRP270993 | \n",
" 57.0 | \n",
" Hi-C | \n",
" in Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX8694081[accn] | \n",
" Calcium Signaling Prompts NIPBL Recruitment at... | \n",
" During developmental progression the genomes o... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 32 | \n",
" SRP292639 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.559986 | \n",
" 75510394 | \n",
" 7.878007 | \n",
" SRP292639 | \n",
" 1002.0 | \n",
" o | \n",
" single cell Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX9533668[accn] | \n",
" Diploid chromatin conformation capture (Dip-C... | \n",
" To study the effect of sensory experience on 3... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 0 | \n",
" all | \n",
" 10 | \n",
" spearman | \n",
" 0.715911 | \n",
" 85411419194 | \n",
" 10.931516 | \n",
" NaN | \n",
" NaN | \n",
" o | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" proj resolution agg_type AUC counts_inter log_contacts \\\n",
"0 ERP114475 10 proj_agg 0.658694 329576950 8.517957 \n",
"1 SRP075985 10 proj_agg 0.723157 4463102620 9.649637 \n",
"2 SRP096571 10 proj_agg 0.663594 212179138 8.326703 \n",
"3 SRP100871 10 proj_agg 0.684704 526403612 8.721319 \n",
"4 SRP101928 10 proj_agg 0.707454 6160271418 9.789600 \n",
"5 SRP105082 10 proj_agg 0.718326 3365835632 9.527093 \n",
"6 SRP107774 10 proj_agg 0.721625 1652774044 9.218213 \n",
"7 SRP110616 10 proj_agg 0.355168 104226676 8.017979 \n",
"8 SRP118601 10 proj_agg 0.679809 1810904034 9.257895 \n",
"9 SRP119332 10 proj_agg 0.689480 688241168 8.837741 \n",
"10 SRP131117 10 proj_agg 0.673338 851552372 8.930211 \n",
"11 SRP144391 10 proj_agg 0.559884 193612804 8.286934 \n",
"12 SRP156597 10 proj_agg 0.667516 455536646 8.658523 \n",
"13 SRP165933 10 proj_agg 0.702249 1952549990 9.290602 \n",
"14 SRP179647 10 proj_agg 0.703894 535116088 8.728448 \n",
"15 SRP192917 10 proj_agg 0.688494 492438182 8.692352 \n",
"16 SRP194410 10 proj_agg 0.377867 17278402 7.237504 \n",
"17 SRP200567 10 proj_agg 0.394404 16292950 7.212000 \n",
"18 SRP217487 10 proj_agg 0.706603 51833900034 10.714614 \n",
"19 SRP218950 10 proj_agg 0.437136 10079064 7.003420 \n",
"20 SRP223513 10 proj_agg 0.686489 756594390 8.878863 \n",
"21 SRP226118 10 proj_agg 0.668711 1195070040 9.077393 \n",
"22 SRP227097 10 proj_agg 0.681003 442224358 8.645643 \n",
"23 SRP229756 10 proj_agg 0.678409 879256390 8.944116 \n",
"24 SRP247488 10 proj_agg 0.675420 771789272 8.887499 \n",
"25 SRP249897 10 proj_agg 0.610347 262699646 8.419459 \n",
"26 SRP250878 10 proj_agg 0.669563 853812632 8.931363 \n",
"27 SRP252213 10 proj_agg 0.682943 1000319750 9.000139 \n",
"28 SRP255620 10 proj_agg 0.674060 532658360 8.726449 \n",
"29 SRP261290 10 proj_agg 0.690810 1827183488 9.261782 \n",
"30 SRP268173 10 proj_agg 0.697328 581117420 8.764264 \n",
"31 SRP270993 10 proj_agg 0.704581 561311230 8.749204 \n",
"32 SRP292639 10 proj_agg 0.559986 75510394 7.878007 \n",
"0 all 10 spearman 0.715911 85411419194 10.931516 \n",
"\n",
" project runs experiment type experiment type2 \\\n",
"0 ERP114475 24.0 Hi-C Hi-C \n",
"1 SRP075985 573.0 Hi-C Hi-C \n",
"2 SRP096571 48.0 Hi-C Hi-C \n",
"3 SRP100871 30.0 o Hi-C and promoter capture Hi-C \n",
"4 SRP101928 56.0 Hi-C in Hi-C \n",
"5 SRP105082 361.0 o ChIA-PET, insitu Hi-C, 4C, localHiC \n",
"6 SRP107774 60.0 Hi-C in Hi-C \n",
"7 SRP110616 211.0 o single-nucleus Hi-C (snHi-C) \n",
"8 SRP118601 200.0 Hi-C in Hi-C \n",
"9 SRP119332 37.0 o Allele-specific and traditional Hi-C \n",
"10 SRP131117 21.0 o low-input Hi-C method \n",
"11 SRP144391 52.0 Hi-C Hi-C \n",
"12 SRP156597 63.0 o low-input Hi-C (sisHi-C), snHi-C \n",
"13 SRP165933 22.0 Hi-C Hi-C \n",
"14 SRP179647 48.0 Hi-C Hi-C \n",
"15 SRP192917 35.0 Hi-C Hi-C \n",
"16 SRP194410 67.0 o sn-Hi-C \n",
"17 SRP200567 131.0 o snHiC \n",
"18 SRP217487 573.0 Hi-C in Hi-C \n",
"19 SRP218950 73.0 o sn-Hi-C \n",
"20 SRP223513 78.0 Hi-C Hi-C \n",
"21 SRP226118 68.0 Hi-C Hi-C \n",
"22 SRP227097 37.0 Hi-C Hi-C \n",
"23 SRP229756 52.0 Hi-C Hi-C \n",
"24 SRP247488 52.0 Hi-C Hi-C \n",
"25 SRP249897 2544.0 o single-cell Hi-C \n",
"26 SRP250878 56.0 o low-input Hi-C approach \n",
"27 SRP252213 24.0 Hi-C Hi-C \n",
"28 SRP255620 22.0 Hi-C Hi-C \n",
"29 SRP261290 20.0 Hi-C Hi-C \n",
"30 SRP268173 36.0 o low-input Hi-C method, tagHi-C \n",
"31 SRP270993 57.0 Hi-C in Hi-C \n",
"32 SRP292639 1002.0 o single cell Hi-C \n",
"0 NaN NaN o NaN \n",
"\n",
" SRA link \\\n",
"0 https://www.ncbi.nlm.nih.gov/sra/ERX3279682[accn] \n",
"1 https://www.ncbi.nlm.nih.gov/sra/SRX6912442[accn] \n",
"2 https://www.ncbi.nlm.nih.gov/sra/SRX3088637[accn] \n",
"3 https://www.ncbi.nlm.nih.gov/sra/SRX2599842[accn] \n",
"4 https://www.ncbi.nlm.nih.gov/sra/SRX2641633[accn] \n",
"5 https://www.ncbi.nlm.nih.gov/sra/SRX4099799[accn] \n",
"6 https://www.ncbi.nlm.nih.gov/sra/SRX4223391[accn] \n",
"7 https://www.ncbi.nlm.nih.gov/sra/SRX3347165[accn] \n",
"8 https://www.ncbi.nlm.nih.gov/sra/SRX3205287[accn] \n",
"9 https://www.ncbi.nlm.nih.gov/sra/SRX3241607[accn] \n",
"10 https://www.ncbi.nlm.nih.gov/sra/SRX4218893[accn] \n",
"11 https://www.ncbi.nlm.nih.gov/sra/SRX4024421[accn] \n",
"12 https://www.ncbi.nlm.nih.gov/sra/SRX6771185[accn] \n",
"13 https://www.ncbi.nlm.nih.gov/sra/SRX6384791[accn] \n",
"14 https://www.ncbi.nlm.nih.gov/sra/SRX5938701[accn] \n",
"15 https://www.ncbi.nlm.nih.gov/sra/SRX6741031[accn] \n",
"16 https://www.ncbi.nlm.nih.gov/sra/SRX5776015[accn] \n",
"17 https://www.ncbi.nlm.nih.gov/sra/SRX5978558[accn] \n",
"18 https://www.ncbi.nlm.nih.gov/sra/SRX6657344[accn] \n",
"19 https://www.ncbi.nlm.nih.gov/sra/SRX6746563[accn] \n",
"20 https://www.ncbi.nlm.nih.gov/sra/SRX9326775[accn] \n",
"21 https://www.ncbi.nlm.nih.gov/sra/SRX7016182[accn] \n",
"22 https://www.ncbi.nlm.nih.gov/sra/SRX8628810[accn] \n",
"23 https://www.ncbi.nlm.nih.gov/sra/SRX7988749[accn] \n",
"24 https://www.ncbi.nlm.nih.gov/sra/SRX9641498[accn] \n",
"25 https://www.ncbi.nlm.nih.gov/sra/SRX7757863[accn] \n",
"26 https://www.ncbi.nlm.nih.gov/sra/SRX7811036[accn] \n",
"27 https://www.ncbi.nlm.nih.gov/sra/SRX9184929[accn] \n",
"28 https://www.ncbi.nlm.nih.gov/sra/SRX8074916[accn] \n",
"29 https://www.ncbi.nlm.nih.gov/sra/SRX8350013[accn] \n",
"30 https://www.ncbi.nlm.nih.gov/sra/SRX8590529[accn] \n",
"31 https://www.ncbi.nlm.nih.gov/sra/SRX8694081[accn] \n",
"32 https://www.ncbi.nlm.nih.gov/sra/SRX9533668[accn] \n",
"0 NaN \n",
"\n",
" Paper title \\\n",
"0 Six in situ Hi-C libraries of control and mES... \n",
"1 Myc regulates chromatin decompaction and nucle... \n",
"2 Two independent modes of chromosome organizati... \n",
"3 Dynamic rewiring of promoter-anchored chromat... \n",
"4 Interplay between genome topology and gene re... \n",
"5 The energetics and physiological impact of co... \n",
"6 Global organization of the B cell genome by th... \n",
"7 A Mechanism of Cohesin-Dependent Loop Extrusio... \n",
"8 Rev-erba Dynamically Modulates Chromatin Orga... \n",
"9 A TAD boundary is preserved upon deletion of ... \n",
"10 Reprogramming of meiotic chromatin architectur... \n",
"11 Single-cell DNA replication profiling identifi... \n",
"12 Polycomb group proteins regulate chromatin arc... \n",
"13 A pliable mediator acts as a functional, rathe... \n",
"14 The ChAHP complex counteracts chromatin loopin... \n",
"15 Re-configuration of Chromatin Structure During... \n",
"16 Ovulation suppression prevents the increase in... \n",
"17 Wapl-mediated release of Scc1-cohesin regulate... \n",
"18 Nucleome Dynamics during Retinal Development[... \n",
"19 Polycomb group proteins regulate chromatin ar... \n",
"20 G9a plays distinct roles in maintaining DNA me... \n",
"21 The transcriptional and architectural resetti... \n",
"22 Analysis of genome architecture during SCNT re... \n",
"23 Defining the relative and combined contributio... \n",
"24 Balancing cohesin eviction and retention prev... \n",
"25 Diploid chromatin conformation capture (Dip-C)... \n",
"26 Chromatin architecture reorganization in soma... \n",
"27 Histone H3.3G34-mutant interneuron progenitors... \n",
"28 Nuclear organization and replication timing a... \n",
"29 DNA Double-Strand Breaks Induce H2Ax Phosphor... \n",
"30 Chromatin architecture landscape in hierarchic... \n",
"31 Calcium Signaling Prompts NIPBL Recruitment at... \n",
"32 Diploid chromatin conformation capture (Dip-C... \n",
"0 NaN \n",
"\n",
" abstract Unnamed: 7 species \n",
"0 In this experiment, we've examined chromatin c... NaN mouse \n",
"1 50 years ago, Vincent Allfrey and colleagues d... NaN mouse \n",
"2 The three-dimensional organization of chromoso... NaN mouse \n",
"3 Interactions between transcriptional promoters... NaN mouse \n",
"4 Studies of genome topology, chromatin state an... rel mouse \n",
"5 Cohesin extrusion is thought to play a central... NaN mouse \n",
"6 We used genome-wide in situ Hi-C to show that ... NaN mouse \n",
"7 Fertilization triggers assembly of higher-orde... NaN mouse \n",
"8 Much of mammalian physiology exhibits 24-hour ... NaN mouse \n",
"9 The binding of the transcriptional regulator C... NaN mouse \n",
"10 Chromatin organization undergoes drastic repro... NaN mouse \n",
"11 In mammals, chromosomes are partitioned into m... NaN mouse \n",
"12 In mammals, chromatin organization undergoes d... NaN mouse \n",
"13 Our mechanistic understanding of Mediator deri... NaN mouse \n",
"14 Ctcf and cohesin are key players in the three ... NaN mouse \n",
"15 Chromatin architecture is temporarily disrupte... NaN mouse \n",
"16 Multiple mechanisms likely contribute to the i... NaN mouse \n",
"17 Cohesin is essential for genome folding and ch... NaN mouse \n",
"18 The nuclei of rod photoreceptors in mice and o... NaN mouse \n",
"19 In mammals, chromatin organization undergoes d... NaN mouse \n",
"20 G9a is a lysine methyltransferase that regulat... NaN mouse \n",
"21 The molecular identity of dividing cells is te... NaN mouse \n",
"22 Somatic cell nuclear transfer (SCNT) can repro... NaN mouse \n",
"23 We analyzed the impact of CTCFL and CTCF-CTCFL... NaN mouse \n",
"24 Depletion of architectural factors globally al... NaN mouse \n",
"25 To study the dynamics of 3D genome structure d... NaN mouse \n",
"26 The oocyte cytoplasm can reprogram somatic cel... NaN mouse \n",
"27 Histone H3.3 glycine 34 to arginine/valine (H3... NaN mouse \n",
"28 Three-dimensional genome organisation and repl... NaN mouse \n",
"29 Efficient repair of DNA double-strand breaks (... NaN mouse \n",
"30 The spatiotemporal chromatin reorganization du... NaN mouse \n",
"31 During developmental progression the genomes o... NaN mouse \n",
"32 To study the effect of sensory experience on 3... NaN mouse \n",
"0 NaN NaN NaN "
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dk[dk['resolution']==10]"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
" \n",
" import matplotlib.pyplot as plt\n",
" sc_bar = sns.scatterplot(data=dk[dk['resolution']==25], x='log_contacts', y='AUC', style='agg_type', color=color_1,edgecolor=\"black\", s=100, linewidth=1.2, markers = {\"proj_agg\": \"*\", \"pearson\": \"o\", \"spearman\": \"^\"})\n",
" sc_bar.legend().remove()\n",
" #sc_bar = sns.scatterplot(data=dk[dk['resolution']==100], x='log_contacts', y='auc')\n",
" #dk['log_contacts'] = dk['log_contacts'].round(0)\n",
" #sc_bar = sns.lineplot(data=dk[dk['resolution']==10], x='log_contacts', y='auc')\n",
" \n",
" #sc_bar = sns.regplot(data=dk[dk['resolution']==10], x='log_contacts', y='auc')\n",
" sc_bar.set(ylim=(0.5, 0.73))\n",
" plt.plot()\n",
" #plt.savefig(f'/grid/gillis/data/lohia/hi_c_data_processing/notebooks/figures/{species_list}_ind_vs_agg_inter.pdf',\n",
" # transparent=True)\n",
" import matplotlib.pyplot as plt\n",
" fig, ax = plt.subplots()\n",
" #sns.scatterplot(x='resolution', y='auc', data=dt[dt['agg_type']=='all'], ax=ax)\n",
" axb = sns.boxplot(x='resolution', y='AUC', data=dk[dk['agg_type']=='proj_agg'], ax=ax, color=color_1, orient=\"v\")\n",
" #for i, patch in enumerate(axb.artists):\n",
" # Boxes from left to right\n",
"\n",
" # patch.set_hatch('//')\n",
" #sns.swarmplot(x='resolution', y='auc', data=dk[dk['agg_type']=='pearson'], ax=ax, size=10, color=color_2, orient=\"v\")\n",
" sns.swarmplot(x='resolution', y='AUC', data=dk[dk['agg_type']=='spearman'], ax=ax, size=10, color=\"green\", orient=\"v\")\n",
" #sns.lineplot(y='resolution', x='auc', data=dt[dt['agg_type']=='all'], ax=ax, color=\"green\")\n",
" #ax.set(ylim=(0.5, 0.67))\n",
" plt.plot()\n",
" \n",
" #plt.savefig(f'/grid/gillis/data/lohia/hi_c_data_processing/notebooks/figures/{species_list}_ind_vs_agg_all_resol_inter.pdf',\n",
" # transparent=True)"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" proj | \n",
" resolution | \n",
" agg_type | \n",
" AUC | \n",
" counts_inter | \n",
" log_contacts | \n",
" project | \n",
" runs | \n",
" experiment type | \n",
" experiment type2 | \n",
" SRA link | \n",
" Paper title | \n",
" abstract | \n",
" Unnamed: 7 | \n",
" species | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" ERP114475 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.658694 | \n",
" 329576950 | \n",
" 8.517957 | \n",
" ERP114475 | \n",
" 24.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/ERX3279682[accn] | \n",
" Six in situ Hi-C libraries of control and mES... | \n",
" In this experiment, we've examined chromatin c... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 1 | \n",
" SRP075985 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.723157 | \n",
" 4463102620 | \n",
" 9.649637 | \n",
" SRP075985 | \n",
" 573.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX6912442[accn] | \n",
" Myc regulates chromatin decompaction and nucle... | \n",
" 50 years ago, Vincent Allfrey and colleagues d... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 2 | \n",
" SRP096571 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.663594 | \n",
" 212179138 | \n",
" 8.326703 | \n",
" SRP096571 | \n",
" 48.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX3088637[accn] | \n",
" Two independent modes of chromosome organizati... | \n",
" The three-dimensional organization of chromoso... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 3 | \n",
" SRP100871 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.684704 | \n",
" 526403612 | \n",
" 8.721319 | \n",
" SRP100871 | \n",
" 30.0 | \n",
" o | \n",
" Hi-C and promoter capture Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX2599842[accn] | \n",
" Dynamic rewiring of promoter-anchored chromat... | \n",
" Interactions between transcriptional promoters... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 4 | \n",
" SRP101928 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.707454 | \n",
" 6160271418 | \n",
" 9.789600 | \n",
" SRP101928 | \n",
" 56.0 | \n",
" Hi-C | \n",
" in Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX2641633[accn] | \n",
" Interplay between genome topology and gene re... | \n",
" Studies of genome topology, chromatin state an... | \n",
" rel | \n",
" mouse | \n",
"
\n",
" \n",
" 5 | \n",
" SRP105082 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.718326 | \n",
" 3365835632 | \n",
" 9.527093 | \n",
" SRP105082 | \n",
" 361.0 | \n",
" o | \n",
" ChIA-PET, insitu Hi-C, 4C, localHiC | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX4099799[accn] | \n",
" The energetics and physiological impact of co... | \n",
" Cohesin extrusion is thought to play a central... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 6 | \n",
" SRP107774 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.721625 | \n",
" 1652774044 | \n",
" 9.218213 | \n",
" SRP107774 | \n",
" 60.0 | \n",
" Hi-C | \n",
" in Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX4223391[accn] | \n",
" Global organization of the B cell genome by th... | \n",
" We used genome-wide in situ Hi-C to show that ... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 7 | \n",
" SRP110616 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.355168 | \n",
" 104226676 | \n",
" 8.017979 | \n",
" SRP110616 | \n",
" 211.0 | \n",
" o | \n",
" single-nucleus Hi-C (snHi-C) | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX3347165[accn] | \n",
" A Mechanism of Cohesin-Dependent Loop Extrusio... | \n",
" Fertilization triggers assembly of higher-orde... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 8 | \n",
" SRP118601 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.679809 | \n",
" 1810904034 | \n",
" 9.257895 | \n",
" SRP118601 | \n",
" 200.0 | \n",
" Hi-C | \n",
" in Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX3205287[accn] | \n",
" Rev-erba Dynamically Modulates Chromatin Orga... | \n",
" Much of mammalian physiology exhibits 24-hour ... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 9 | \n",
" SRP119332 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.689480 | \n",
" 688241168 | \n",
" 8.837741 | \n",
" SRP119332 | \n",
" 37.0 | \n",
" o | \n",
" Allele-specific and traditional Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX3241607[accn] | \n",
" A TAD boundary is preserved upon deletion of ... | \n",
" The binding of the transcriptional regulator C... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 10 | \n",
" SRP131117 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.673338 | \n",
" 851552372 | \n",
" 8.930211 | \n",
" SRP131117 | \n",
" 21.0 | \n",
" o | \n",
" low-input Hi-C method | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX4218893[accn] | \n",
" Reprogramming of meiotic chromatin architectur... | \n",
" Chromatin organization undergoes drastic repro... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 11 | \n",
" SRP144391 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.559884 | \n",
" 193612804 | \n",
" 8.286934 | \n",
" SRP144391 | \n",
" 52.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX4024421[accn] | \n",
" Single-cell DNA replication profiling identifi... | \n",
" In mammals, chromosomes are partitioned into m... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 12 | \n",
" SRP156597 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.667516 | \n",
" 455536646 | \n",
" 8.658523 | \n",
" SRP156597 | \n",
" 63.0 | \n",
" o | \n",
" low-input Hi-C (sisHi-C), snHi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX6771185[accn] | \n",
" Polycomb group proteins regulate chromatin arc... | \n",
" In mammals, chromatin organization undergoes d... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 13 | \n",
" SRP165933 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.702249 | \n",
" 1952549990 | \n",
" 9.290602 | \n",
" SRP165933 | \n",
" 22.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX6384791[accn] | \n",
" A pliable mediator acts as a functional, rathe... | \n",
" Our mechanistic understanding of Mediator deri... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 14 | \n",
" SRP179647 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.703894 | \n",
" 535116088 | \n",
" 8.728448 | \n",
" SRP179647 | \n",
" 48.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX5938701[accn] | \n",
" The ChAHP complex counteracts chromatin loopin... | \n",
" Ctcf and cohesin are key players in the three ... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 15 | \n",
" SRP192917 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.688494 | \n",
" 492438182 | \n",
" 8.692352 | \n",
" SRP192917 | \n",
" 35.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX6741031[accn] | \n",
" Re-configuration of Chromatin Structure During... | \n",
" Chromatin architecture is temporarily disrupte... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 16 | \n",
" SRP194410 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.377867 | \n",
" 17278402 | \n",
" 7.237504 | \n",
" SRP194410 | \n",
" 67.0 | \n",
" o | \n",
" sn-Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX5776015[accn] | \n",
" Ovulation suppression prevents the increase in... | \n",
" Multiple mechanisms likely contribute to the i... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 17 | \n",
" SRP200567 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.394404 | \n",
" 16292950 | \n",
" 7.212000 | \n",
" SRP200567 | \n",
" 131.0 | \n",
" o | \n",
" snHiC | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX5978558[accn] | \n",
" Wapl-mediated release of Scc1-cohesin regulate... | \n",
" Cohesin is essential for genome folding and ch... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 18 | \n",
" SRP217487 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.706603 | \n",
" 51833900034 | \n",
" 10.714614 | \n",
" SRP217487 | \n",
" 573.0 | \n",
" Hi-C | \n",
" in Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX6657344[accn] | \n",
" Nucleome Dynamics during Retinal Development[... | \n",
" The nuclei of rod photoreceptors in mice and o... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 19 | \n",
" SRP218950 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.437136 | \n",
" 10079064 | \n",
" 7.003420 | \n",
" SRP218950 | \n",
" 73.0 | \n",
" o | \n",
" sn-Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX6746563[accn] | \n",
" Polycomb group proteins regulate chromatin ar... | \n",
" In mammals, chromatin organization undergoes d... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 20 | \n",
" SRP223513 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.686489 | \n",
" 756594390 | \n",
" 8.878863 | \n",
" SRP223513 | \n",
" 78.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX9326775[accn] | \n",
" G9a plays distinct roles in maintaining DNA me... | \n",
" G9a is a lysine methyltransferase that regulat... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 21 | \n",
" SRP226118 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.668711 | \n",
" 1195070040 | \n",
" 9.077393 | \n",
" SRP226118 | \n",
" 68.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX7016182[accn] | \n",
" The transcriptional and architectural resetti... | \n",
" The molecular identity of dividing cells is te... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 22 | \n",
" SRP227097 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.681003 | \n",
" 442224358 | \n",
" 8.645643 | \n",
" SRP227097 | \n",
" 37.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX8628810[accn] | \n",
" Analysis of genome architecture during SCNT re... | \n",
" Somatic cell nuclear transfer (SCNT) can repro... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 23 | \n",
" SRP229756 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.678409 | \n",
" 879256390 | \n",
" 8.944116 | \n",
" SRP229756 | \n",
" 52.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX7988749[accn] | \n",
" Defining the relative and combined contributio... | \n",
" We analyzed the impact of CTCFL and CTCF-CTCFL... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 24 | \n",
" SRP247488 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.675420 | \n",
" 771789272 | \n",
" 8.887499 | \n",
" SRP247488 | \n",
" 52.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX9641498[accn] | \n",
" Balancing cohesin eviction and retention prev... | \n",
" Depletion of architectural factors globally al... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 25 | \n",
" SRP249897 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.610347 | \n",
" 262699646 | \n",
" 8.419459 | \n",
" SRP249897 | \n",
" 2544.0 | \n",
" o | \n",
" single-cell Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX7757863[accn] | \n",
" Diploid chromatin conformation capture (Dip-C)... | \n",
" To study the dynamics of 3D genome structure d... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 26 | \n",
" SRP250878 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.669563 | \n",
" 853812632 | \n",
" 8.931363 | \n",
" SRP250878 | \n",
" 56.0 | \n",
" o | \n",
" low-input Hi-C approach | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX7811036[accn] | \n",
" Chromatin architecture reorganization in soma... | \n",
" The oocyte cytoplasm can reprogram somatic cel... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 27 | \n",
" SRP252213 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.682943 | \n",
" 1000319750 | \n",
" 9.000139 | \n",
" SRP252213 | \n",
" 24.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX9184929[accn] | \n",
" Histone H3.3G34-mutant interneuron progenitors... | \n",
" Histone H3.3 glycine 34 to arginine/valine (H3... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 28 | \n",
" SRP255620 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.674060 | \n",
" 532658360 | \n",
" 8.726449 | \n",
" SRP255620 | \n",
" 22.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX8074916[accn] | \n",
" Nuclear organization and replication timing a... | \n",
" Three-dimensional genome organisation and repl... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 29 | \n",
" SRP261290 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.690810 | \n",
" 1827183488 | \n",
" 9.261782 | \n",
" SRP261290 | \n",
" 20.0 | \n",
" Hi-C | \n",
" Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX8350013[accn] | \n",
" DNA Double-Strand Breaks Induce H2Ax Phosphor... | \n",
" Efficient repair of DNA double-strand breaks (... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 30 | \n",
" SRP268173 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.697328 | \n",
" 581117420 | \n",
" 8.764264 | \n",
" SRP268173 | \n",
" 36.0 | \n",
" o | \n",
" low-input Hi-C method, tagHi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX8590529[accn] | \n",
" Chromatin architecture landscape in hierarchic... | \n",
" The spatiotemporal chromatin reorganization du... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 31 | \n",
" SRP270993 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.704581 | \n",
" 561311230 | \n",
" 8.749204 | \n",
" SRP270993 | \n",
" 57.0 | \n",
" Hi-C | \n",
" in Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX8694081[accn] | \n",
" Calcium Signaling Prompts NIPBL Recruitment at... | \n",
" During developmental progression the genomes o... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 32 | \n",
" SRP292639 | \n",
" 10 | \n",
" proj_agg | \n",
" 0.559986 | \n",
" 75510394 | \n",
" 7.878007 | \n",
" SRP292639 | \n",
" 1002.0 | \n",
" o | \n",
" single cell Hi-C | \n",
" https://www.ncbi.nlm.nih.gov/sra/SRX9533668[accn] | \n",
" Diploid chromatin conformation capture (Dip-C... | \n",
" To study the effect of sensory experience on 3... | \n",
" NaN | \n",
" mouse | \n",
"
\n",
" \n",
" 0 | \n",
" all | \n",
" 10 | \n",
" spearman | \n",
" 0.715911 | \n",
" 85411419194 | \n",
" 10.931516 | \n",
" NaN | \n",
" NaN | \n",
" o | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" proj resolution agg_type AUC counts_inter log_contacts \\\n",
"0 ERP114475 10 proj_agg 0.658694 329576950 8.517957 \n",
"1 SRP075985 10 proj_agg 0.723157 4463102620 9.649637 \n",
"2 SRP096571 10 proj_agg 0.663594 212179138 8.326703 \n",
"3 SRP100871 10 proj_agg 0.684704 526403612 8.721319 \n",
"4 SRP101928 10 proj_agg 0.707454 6160271418 9.789600 \n",
"5 SRP105082 10 proj_agg 0.718326 3365835632 9.527093 \n",
"6 SRP107774 10 proj_agg 0.721625 1652774044 9.218213 \n",
"7 SRP110616 10 proj_agg 0.355168 104226676 8.017979 \n",
"8 SRP118601 10 proj_agg 0.679809 1810904034 9.257895 \n",
"9 SRP119332 10 proj_agg 0.689480 688241168 8.837741 \n",
"10 SRP131117 10 proj_agg 0.673338 851552372 8.930211 \n",
"11 SRP144391 10 proj_agg 0.559884 193612804 8.286934 \n",
"12 SRP156597 10 proj_agg 0.667516 455536646 8.658523 \n",
"13 SRP165933 10 proj_agg 0.702249 1952549990 9.290602 \n",
"14 SRP179647 10 proj_agg 0.703894 535116088 8.728448 \n",
"15 SRP192917 10 proj_agg 0.688494 492438182 8.692352 \n",
"16 SRP194410 10 proj_agg 0.377867 17278402 7.237504 \n",
"17 SRP200567 10 proj_agg 0.394404 16292950 7.212000 \n",
"18 SRP217487 10 proj_agg 0.706603 51833900034 10.714614 \n",
"19 SRP218950 10 proj_agg 0.437136 10079064 7.003420 \n",
"20 SRP223513 10 proj_agg 0.686489 756594390 8.878863 \n",
"21 SRP226118 10 proj_agg 0.668711 1195070040 9.077393 \n",
"22 SRP227097 10 proj_agg 0.681003 442224358 8.645643 \n",
"23 SRP229756 10 proj_agg 0.678409 879256390 8.944116 \n",
"24 SRP247488 10 proj_agg 0.675420 771789272 8.887499 \n",
"25 SRP249897 10 proj_agg 0.610347 262699646 8.419459 \n",
"26 SRP250878 10 proj_agg 0.669563 853812632 8.931363 \n",
"27 SRP252213 10 proj_agg 0.682943 1000319750 9.000139 \n",
"28 SRP255620 10 proj_agg 0.674060 532658360 8.726449 \n",
"29 SRP261290 10 proj_agg 0.690810 1827183488 9.261782 \n",
"30 SRP268173 10 proj_agg 0.697328 581117420 8.764264 \n",
"31 SRP270993 10 proj_agg 0.704581 561311230 8.749204 \n",
"32 SRP292639 10 proj_agg 0.559986 75510394 7.878007 \n",
"0 all 10 spearman 0.715911 85411419194 10.931516 \n",
"\n",
" project runs experiment type experiment type2 \\\n",
"0 ERP114475 24.0 Hi-C Hi-C \n",
"1 SRP075985 573.0 Hi-C Hi-C \n",
"2 SRP096571 48.0 Hi-C Hi-C \n",
"3 SRP100871 30.0 o Hi-C and promoter capture Hi-C \n",
"4 SRP101928 56.0 Hi-C in Hi-C \n",
"5 SRP105082 361.0 o ChIA-PET, insitu Hi-C, 4C, localHiC \n",
"6 SRP107774 60.0 Hi-C in Hi-C \n",
"7 SRP110616 211.0 o single-nucleus Hi-C (snHi-C) \n",
"8 SRP118601 200.0 Hi-C in Hi-C \n",
"9 SRP119332 37.0 o Allele-specific and traditional Hi-C \n",
"10 SRP131117 21.0 o low-input Hi-C method \n",
"11 SRP144391 52.0 Hi-C Hi-C \n",
"12 SRP156597 63.0 o low-input Hi-C (sisHi-C), snHi-C \n",
"13 SRP165933 22.0 Hi-C Hi-C \n",
"14 SRP179647 48.0 Hi-C Hi-C \n",
"15 SRP192917 35.0 Hi-C Hi-C \n",
"16 SRP194410 67.0 o sn-Hi-C \n",
"17 SRP200567 131.0 o snHiC \n",
"18 SRP217487 573.0 Hi-C in Hi-C \n",
"19 SRP218950 73.0 o sn-Hi-C \n",
"20 SRP223513 78.0 Hi-C Hi-C \n",
"21 SRP226118 68.0 Hi-C Hi-C \n",
"22 SRP227097 37.0 Hi-C Hi-C \n",
"23 SRP229756 52.0 Hi-C Hi-C \n",
"24 SRP247488 52.0 Hi-C Hi-C \n",
"25 SRP249897 2544.0 o single-cell Hi-C \n",
"26 SRP250878 56.0 o low-input Hi-C approach \n",
"27 SRP252213 24.0 Hi-C Hi-C \n",
"28 SRP255620 22.0 Hi-C Hi-C \n",
"29 SRP261290 20.0 Hi-C Hi-C \n",
"30 SRP268173 36.0 o low-input Hi-C method, tagHi-C \n",
"31 SRP270993 57.0 Hi-C in Hi-C \n",
"32 SRP292639 1002.0 o single cell Hi-C \n",
"0 NaN NaN o NaN \n",
"\n",
" SRA link \\\n",
"0 https://www.ncbi.nlm.nih.gov/sra/ERX3279682[accn] \n",
"1 https://www.ncbi.nlm.nih.gov/sra/SRX6912442[accn] \n",
"2 https://www.ncbi.nlm.nih.gov/sra/SRX3088637[accn] \n",
"3 https://www.ncbi.nlm.nih.gov/sra/SRX2599842[accn] \n",
"4 https://www.ncbi.nlm.nih.gov/sra/SRX2641633[accn] \n",
"5 https://www.ncbi.nlm.nih.gov/sra/SRX4099799[accn] \n",
"6 https://www.ncbi.nlm.nih.gov/sra/SRX4223391[accn] \n",
"7 https://www.ncbi.nlm.nih.gov/sra/SRX3347165[accn] \n",
"8 https://www.ncbi.nlm.nih.gov/sra/SRX3205287[accn] \n",
"9 https://www.ncbi.nlm.nih.gov/sra/SRX3241607[accn] \n",
"10 https://www.ncbi.nlm.nih.gov/sra/SRX4218893[accn] \n",
"11 https://www.ncbi.nlm.nih.gov/sra/SRX4024421[accn] \n",
"12 https://www.ncbi.nlm.nih.gov/sra/SRX6771185[accn] \n",
"13 https://www.ncbi.nlm.nih.gov/sra/SRX6384791[accn] \n",
"14 https://www.ncbi.nlm.nih.gov/sra/SRX5938701[accn] \n",
"15 https://www.ncbi.nlm.nih.gov/sra/SRX6741031[accn] \n",
"16 https://www.ncbi.nlm.nih.gov/sra/SRX5776015[accn] \n",
"17 https://www.ncbi.nlm.nih.gov/sra/SRX5978558[accn] \n",
"18 https://www.ncbi.nlm.nih.gov/sra/SRX6657344[accn] \n",
"19 https://www.ncbi.nlm.nih.gov/sra/SRX6746563[accn] \n",
"20 https://www.ncbi.nlm.nih.gov/sra/SRX9326775[accn] \n",
"21 https://www.ncbi.nlm.nih.gov/sra/SRX7016182[accn] \n",
"22 https://www.ncbi.nlm.nih.gov/sra/SRX8628810[accn] \n",
"23 https://www.ncbi.nlm.nih.gov/sra/SRX7988749[accn] \n",
"24 https://www.ncbi.nlm.nih.gov/sra/SRX9641498[accn] \n",
"25 https://www.ncbi.nlm.nih.gov/sra/SRX7757863[accn] \n",
"26 https://www.ncbi.nlm.nih.gov/sra/SRX7811036[accn] \n",
"27 https://www.ncbi.nlm.nih.gov/sra/SRX9184929[accn] \n",
"28 https://www.ncbi.nlm.nih.gov/sra/SRX8074916[accn] \n",
"29 https://www.ncbi.nlm.nih.gov/sra/SRX8350013[accn] \n",
"30 https://www.ncbi.nlm.nih.gov/sra/SRX8590529[accn] \n",
"31 https://www.ncbi.nlm.nih.gov/sra/SRX8694081[accn] \n",
"32 https://www.ncbi.nlm.nih.gov/sra/SRX9533668[accn] \n",
"0 NaN \n",
"\n",
" Paper title \\\n",
"0 Six in situ Hi-C libraries of control and mES... \n",
"1 Myc regulates chromatin decompaction and nucle... \n",
"2 Two independent modes of chromosome organizati... \n",
"3 Dynamic rewiring of promoter-anchored chromat... \n",
"4 Interplay between genome topology and gene re... \n",
"5 The energetics and physiological impact of co... \n",
"6 Global organization of the B cell genome by th... \n",
"7 A Mechanism of Cohesin-Dependent Loop Extrusio... \n",
"8 Rev-erba Dynamically Modulates Chromatin Orga... \n",
"9 A TAD boundary is preserved upon deletion of ... \n",
"10 Reprogramming of meiotic chromatin architectur... \n",
"11 Single-cell DNA replication profiling identifi... \n",
"12 Polycomb group proteins regulate chromatin arc... \n",
"13 A pliable mediator acts as a functional, rathe... \n",
"14 The ChAHP complex counteracts chromatin loopin... \n",
"15 Re-configuration of Chromatin Structure During... \n",
"16 Ovulation suppression prevents the increase in... \n",
"17 Wapl-mediated release of Scc1-cohesin regulate... \n",
"18 Nucleome Dynamics during Retinal Development[... \n",
"19 Polycomb group proteins regulate chromatin ar... \n",
"20 G9a plays distinct roles in maintaining DNA me... \n",
"21 The transcriptional and architectural resetti... \n",
"22 Analysis of genome architecture during SCNT re... \n",
"23 Defining the relative and combined contributio... \n",
"24 Balancing cohesin eviction and retention prev... \n",
"25 Diploid chromatin conformation capture (Dip-C)... \n",
"26 Chromatin architecture reorganization in soma... \n",
"27 Histone H3.3G34-mutant interneuron progenitors... \n",
"28 Nuclear organization and replication timing a... \n",
"29 DNA Double-Strand Breaks Induce H2Ax Phosphor... \n",
"30 Chromatin architecture landscape in hierarchic... \n",
"31 Calcium Signaling Prompts NIPBL Recruitment at... \n",
"32 Diploid chromatin conformation capture (Dip-C... \n",
"0 NaN \n",
"\n",
" abstract Unnamed: 7 species \n",
"0 In this experiment, we've examined chromatin c... NaN mouse \n",
"1 50 years ago, Vincent Allfrey and colleagues d... NaN mouse \n",
"2 The three-dimensional organization of chromoso... NaN mouse \n",
"3 Interactions between transcriptional promoters... NaN mouse \n",
"4 Studies of genome topology, chromatin state an... rel mouse \n",
"5 Cohesin extrusion is thought to play a central... NaN mouse \n",
"6 We used genome-wide in situ Hi-C to show that ... NaN mouse \n",
"7 Fertilization triggers assembly of higher-orde... NaN mouse \n",
"8 Much of mammalian physiology exhibits 24-hour ... NaN mouse \n",
"9 The binding of the transcriptional regulator C... NaN mouse \n",
"10 Chromatin organization undergoes drastic repro... NaN mouse \n",
"11 In mammals, chromosomes are partitioned into m... NaN mouse \n",
"12 In mammals, chromatin organization undergoes d... NaN mouse \n",
"13 Our mechanistic understanding of Mediator deri... NaN mouse \n",
"14 Ctcf and cohesin are key players in the three ... NaN mouse \n",
"15 Chromatin architecture is temporarily disrupte... NaN mouse \n",
"16 Multiple mechanisms likely contribute to the i... NaN mouse \n",
"17 Cohesin is essential for genome folding and ch... NaN mouse \n",
"18 The nuclei of rod photoreceptors in mice and o... NaN mouse \n",
"19 In mammals, chromatin organization undergoes d... NaN mouse \n",
"20 G9a is a lysine methyltransferase that regulat... NaN mouse \n",
"21 The molecular identity of dividing cells is te... NaN mouse \n",
"22 Somatic cell nuclear transfer (SCNT) can repro... NaN mouse \n",
"23 We analyzed the impact of CTCFL and CTCF-CTCFL... NaN mouse \n",
"24 Depletion of architectural factors globally al... NaN mouse \n",
"25 To study the dynamics of 3D genome structure d... NaN mouse \n",
"26 The oocyte cytoplasm can reprogram somatic cel... NaN mouse \n",
"27 Histone H3.3 glycine 34 to arginine/valine (H3... NaN mouse \n",
"28 Three-dimensional genome organisation and repl... NaN mouse \n",
"29 Efficient repair of DNA double-strand breaks (... NaN mouse \n",
"30 The spatiotemporal chromatin reorganization du... NaN mouse \n",
"31 During developmental progression the genomes o... NaN mouse \n",
"32 To study the effect of sensory experience on 3... NaN mouse \n",
"0 NaN NaN NaN "
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dk"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
" sc_bar = sns.scatterplot(data=dk[dk['resolution']==10], x='log_contacts', y='AUC', style='agg_type', color=color_1,edgecolor=\"black\", s=100, linewidth=1.2, markers = {\"proj_agg\": \"*\", \"pearson\": \"o\", \"spearman\": \"^\"})\n",
" sc_bar.legend().remove()\n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
" sns.scatterplot(data=dk[dk['resolution']==10], x='log_contacts', y='AUC', style='agg_type', color=color_1,edgecolor=\"black\", s=100, linewidth=1.2, markers = {\"proj_agg\": \"*\", \"pearson\": \"o\", \"spearman\": \"^\"})\n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
" sns.regplot(data=dk[dk['resolution']==10], x='log_contacts', y='AUC')"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
" \n",
" import matplotlib.pyplot as plt\n",
" sc_bar = sns.scatterplot(data=dk[dk['resolution']==10], x='log_contacts', y='AUC', style='agg_type', color=color_1,edgecolor=\"black\", s=100, linewidth=1.2, markers = {\"proj_agg\": \"o\", \"pearson\": \"o\", \"spearman\": \"o\"})\n",
" sc_bar.legend().remove()\n",
" #sc_bar = sns.scatterplot(data=dk[dk['resolution']==100], x='log_contacts', y='auc')\n",
" #dk['log_contacts'] = dk['log_contacts'].round(0)\n",
" #sc_bar = sns.lineplot(data=dk[dk['resolution']==10], x='log_contacts', y='auc')\n",
" \n",
" #sc_bar = sns.regplot(data=dk[dk['resolution']==10], x='log_contacts', y='auc')\n",
" #sc_bar.set(ylim=(0.55, 0.73))\n",
" plt.plot()\n",
" #plt.savefig(f'/grid/gillis/data/lohia/hi_c_data_processing/notebooks/figures/{species_list}_ind_vs_agg_inter.pdf',\n",
" # transparent=True)\n",
" import matplotlib.pyplot as plt\n",
" fig, ax = plt.subplots()\n",
" #sns.scatterplot(x='resolution', y='auc', data=dt[dt['agg_type']=='all'], ax=ax)\n",
" axb = sns.boxplot(x='resolution', y='AUC', data=dk[dk['agg_type']=='proj_agg'], ax=ax, color=color_1, orient=\"v\")\n",
" #for i, patch in enumerate(axb.artists):\n",
" # Boxes from left to right\n",
"\n",
" # patch.set_hatch('//')\n",
" #sns.swarmplot(x='resolution', y='auc', data=dk[dk['agg_type']=='pearson'], ax=ax, size=10, color=color_2, orient=\"v\")\n",
" sns.swarmplot(x='resolution', y='AUC', data=dk[dk['agg_type']=='spearman'], ax=ax, size=10, color=\"green\", orient=\"v\")\n",
" #sns.lineplot(y='resolution', x='auc', data=dt[dt['agg_type']=='all'], ax=ax, color=\"green\")\n",
" #ax.set(ylim=(0.5, 0.67))\n",
" plt.plot()\n",
" \n",
" #plt.savefig(f'/grid/gillis/data/lohia/hi_c_data_processing/notebooks/figures/{species_list}_ind_vs_agg_all_resol_inter.pdf',\n",
" # transparent=True)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(6387, 6387)\n",
"(6387, 80)\n",
"0.9595095506497573\n",
"0.0\n"
]
},
{
"ename": "TypeError",
"evalue": "'tuple' object does not support item assignment",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mdf2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrun_egad\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmarker_table\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdf_spr_corr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mdf2\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'species'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mspecies\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0mdf2\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'resolution'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mresolution\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mdf2\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'proj'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mproj\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mdf2\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'agg_type'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'proj_agg'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mTypeError\u001b[0m: 'tuple' object does not support item assignment"
]
}
],
"source": [
" df2 = run_egad(marker_table, df_spr_corr)\n",
" df2['species'] = species\n",
" df2['resolution'] = resolution\n",
" df2['proj'] = proj\n",
" df2['agg_type'] = 'proj_agg'\n",
" #print (proj)\n",
" \n",
" df_seq_depth_subset = df_seq_depth[df_seq_depth['proj_id'].isin([proj])]\n",
" df2['counts_inter'] = df_seq_depth_subset['counts_inter'].sum()"
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {},
"outputs": [
{
"ename": "ValueError",
"evalue": "No objects to concatenate",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdf_ind\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mempty_list\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mdf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mdf_whole_agg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdf_ind\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mdt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgroupby\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'proj'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'resolution'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'agg_type'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'AUC'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'counts_inter'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreset_index\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.conda/envs/hicexplorer/lib/python3.8/site-packages/pandas/core/reshape/concat.py\u001b[0m in \u001b[0;36mconcat\u001b[0;34m(objs, axis, join, ignore_index, keys, levels, names, verify_integrity, sort, copy)\u001b[0m\n\u001b[1;32m 283\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mIndexes\u001b[0m \u001b[0mhave\u001b[0m \u001b[0moverlapping\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m'a'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 284\u001b[0m \"\"\"\n\u001b[0;32m--> 285\u001b[0;31m op = _Concatenator(\n\u001b[0m\u001b[1;32m 286\u001b[0m \u001b[0mobjs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 287\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.conda/envs/hicexplorer/lib/python3.8/site-packages/pandas/core/reshape/concat.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, objs, axis, join, keys, levels, names, ignore_index, verify_integrity, copy, sort)\u001b[0m\n\u001b[1;32m 340\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 341\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobjs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 342\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"No objects to concatenate\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 343\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 344\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mkeys\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mValueError\u001b[0m: No objects to concatenate"
]
}
],
"source": [
" df_ind=pd.concat(empty_list)\n",
"\n",
" df = pd.concat([df_whole_agg, df_ind])\n",
"\n",
" dt = df.groupby(['proj', 'resolution', 'agg_type'])['AUC', 'counts_inter'].mean().reset_index()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
" df_ind=pd.concat(empty_list)\n",
"\n",
" df = pd.concat([df_whole_agg, df_ind])\n",
"\n",
" dt = df.groupby(['proj', 'resolution', 'agg_type'])['AUC', 'counts_inter'].mean().reset_index()\n",
"\n",
" for species in species_list: \n",
" df_seq_depth = pd.read_csv(f'/grid/gillis/data/lohia/hi_c_data_processing/data_{species}/stats/{species}_project_network_details.tsv', sep='\\t')\n",
" df_seq_depth['species'] = species\n",
" df_seq_depth['project'] = [x.strip() for x in df_seq_depth['project']]\n",
" df_seq_depth['experiment type'] = [x.strip() for x in df_seq_depth['experiment type']]\n",
" #dk['experiment type'] = [x if x=='Hi-C' else 'o' for x in dk['experiment type']]\n",
"\n",
" import numpy as np\n",
" dt['log_contacts'] = [np.log10(x) for x in dt['counts_inter']]\n",
"\n",
" dt = dt.merge(df_seq_depth, left_on='proj', right_on='project')\n",
" dk = pd.concat([dt, df_whole_agg.groupby(['proj', 'resolution', 'agg_type'])['AUC', 'counts_inter'].mean().reset_index()])\n",
" dk['log_contacts'] = [np.log10(x) for x in dk['counts_inter']]\n",
"\n",
" dk['experiment type'] = [x if x=='Hi-C' else 'o' for x in dk['experiment type']]\n",
" \n",
" #dk = dk[dk['auc'] > 0.5]\n",
" #dk = dk[dk['agg_type']=='proj_agg']\n",
" #print (dk)\n",
" \n",
" \n",
" \n",
" \n",
" import matplotlib.pyplot as plt\n",
" sc_bar = sns.scatterplot(data=dk[dk['resolution']==25], x='log_contacts', y='AUC', style='agg_type', color=color_1,edgecolor=\"black\", s=100, linewidth=1.2, markers = {\"proj_agg\": \"*\", \"pearson\": \"o\", \"spearman\": \"^\"})\n",
" sc_bar.legend().remove()\n",
" #sc_bar = sns.scatterplot(data=dk[dk['resolution']==100], x='log_contacts', y='auc')\n",
" #dk['log_contacts'] = dk['log_contacts'].round(0)\n",
" #sc_bar = sns.lineplot(data=dk[dk['resolution']==10], x='log_contacts', y='auc')\n",
" \n",
" #sc_bar = sns.regplot(data=dk[dk['resolution']==10], x='log_contacts', y='auc')\n",
" #sc_bar.set(ylim=(0.5, 0.67))\n",
" plt.plot()\n",
" #plt.savefig(f'/grid/gillis/data/lohia/hi_c_data_processing/notebooks/figures/{species_list}_ind_vs_agg_inter.pdf',\n",
" # transparent=True)\n",
" import matplotlib.pyplot as plt\n",
" fig, ax = plt.subplots()\n",
" #sns.scatterplot(x='resolution', y='auc', data=dt[dt['agg_type']=='all'], ax=ax)\n",
" axb = sns.boxplot(x='resolution', y='AUC', data=dk[dk['agg_type']=='proj_agg'], ax=ax, color=color_1, orient=\"v\")\n",
" #for i, patch in enumerate(axb.artists):\n",
" # Boxes from left to right\n",
"\n",
" # patch.set_hatch('//')\n",
" #sns.swarmplot(x='resolution', y='auc', data=dk[dk['agg_type']=='pearson'], ax=ax, size=10, color=color_2, orient=\"v\")\n",
" sns.swarmplot(x='resolution', y='AUC', data=dk[dk['agg_type']=='spearman'], ax=ax, size=10, color=\"green\", orient=\"v\")\n",
" #sns.lineplot(y='resolution', x='auc', data=dt[dt['agg_type']=='all'], ax=ax, color=\"green\")\n",
" #ax.set(ylim=(0.5, 0.67))\n",
" plt.plot()\n",
" \n",
" #plt.savefig(f'/grid/gillis/data/lohia/hi_c_data_processing/notebooks/figures/{species_list}_ind_vs_agg_all_resol_inter.pdf',\n",
" # transparent=True)\n"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'dt' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mNameError\u001b[0m: name 'dt' is not defined"
]
}
],
"source": [
"dt"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [],
"source": [
"SRP_name='aggregates'\n",
"SRP_name='SRP217487'\n",
"resolution='10kbp_raw'\n",
"#df_jac_corr_list = []\n",
"#for resolution in ['100kbp_raw', '250kbp_raw', '10', 40 , 25, snhic]:\n",
"for resolution in ['25kbp_raw']:\n",
" exp_file_path=f'/grid/gillis/data/lohia/hi_c_data_processing/data_mouse/{SRP_name}/{resolution}/max/spr/0/all_bins/KR_KR/hic_gene_corr_inter_excluding_intra_nanranked.h5'\n",
"\n",
" jac_sim = hm.hiCMatrix(exp_file_path)\n",
"\n",
"\n",
"\n",
"\n",
" all_genes = [x[3].decode() for x in jac_sim.cut_intervals]\n",
" #df_jac_corr = pd.DataFrame(jac_sim.matrix.toarray() , index=all_genes, columns = all_genes)\n",
" df_jac_corr_list.append(pd.DataFrame(jac_sim.matrix.toarray() , index=all_genes, columns = all_genes))\n",
" \n",
" df_2d_jac, go_chrom = run_egad(marker_table, df_jac_corr_list[7])\n"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"SRP_name='aggregates'\n",
"resolution='40kbp_raw'\n",
"exp_file_path=f'/grid/gillis/data/lohia/hi_c_data_processing/software/CoCoCoNet/networks/human_prioAggNet.h5'\n",
"\n",
"jac_exp = hm.hiCMatrix(exp_file_path)\n",
"all_genes = [x[3].decode() for x in jac_exp.cut_intervals]\n",
"df_exp_corr = pd.DataFrame(jac_exp.matrix.toarray() , index=all_genes, columns = all_genes)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"57238269.755088426"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_jac_corr.sum().sum()"
]
},
{
"cell_type": "code",
"execution_count": 220,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
":2: ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support skipfooter; you can avoid this warning by specifying engine='python'.\n",
" df = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/data_human/scType_marker_genes.csv', header=1, usecols=[0,1,2,3], skipfooter=2)\n",
":7: ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support skipfooter; you can avoid this warning by specifying engine='python'.\n",
" df = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/data_human/scType_marker_genes.csv', header=1, usecols=[0,1,2,3], skipfooter=2)\n"
]
}
],
"source": [
"import pandas as pd\n",
"df = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/data_human/scType_marker_genes.csv', header=1, usecols=[0,1,2,3], skipfooter=2)\n",
"gitdf = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/notebooks/ScTypeDB_full_github.tsv', sep='\\t')\n",
"\n",
"\n",
"\n",
"df = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/data_human/scType_marker_genes.csv', header=1, usecols=[0,1,2,3], skipfooter=2)\n",
"\n",
"\n",
"\n",
"gitdf.rename(columns = {'tissueType':'Tissue', 'cellName':'Cell type',\n",
" 'geneSymbolmore1':'Marker genes'}, inplace = True)\n",
"\n",
"df = pd.concat([gitdf, df])\n",
"df = df[df['Tissue'].isin(['Brain', 'Adrenal'])]\n",
"df['combined_type'] = df['Tissue'] + '-' + df['Cell type']\n",
"df = df.drop_duplicates(subset='combined_type')\n",
"#df['combined_type'] = df['Tissue'] \n",
"#df['combined_type'] = df['Cell type']\n",
"tissue_type_list = df['combined_type'].drop_duplicates().tolist()\n",
"\n",
"all_gene_list = df['Marker genes'].str.cat(sep=',').split(\",\")\n",
"\n",
"data_tissue = df.groupby(['combined_type']).apply(lambda grp: grp['Marker genes'].str.cat(sep=',').split(\",\"))\n",
"\n",
"all_gene_list = list(set(all_gene_list))\n",
"\n",
"nested_gene_marker_tissue_list = []\n",
"df = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/data_human/gene_name_ensg.txt', sep='\\t')\n",
"df.dropna(inplace=True)\n",
"dict_gene_name_to_ensg = df.set_index('Gene name').to_dict()['Gene stable ID']\n",
"\n",
"for i in tissue_type_list:\n",
" \n",
" gene_for_given_tissue = data_tissue[data_tissue.index ==i][0]\n",
" #chrom_for_given_tisse = [dict_gene_name_to_ensg[x] if x in dict_gene_name_to_ensg.keys() else 'del' for x in all_gene_list]\n",
" \n",
" particular_gene_tissue = [ 1 if x in gene_for_given_tissue else 0 for x in all_gene_list]\n",
" nested_gene_marker_tissue_list.append(particular_gene_tissue)\n",
"\n",
" \n",
"\n",
"all_gene_list = [dict_gene_name_to_ensg[x] if x in dict_gene_name_to_ensg.keys() else 'del' for x in all_gene_list ]\n",
"marker_gene_table = pd.DataFrame(nested_gene_marker_tissue_list, columns = all_gene_list, index=tissue_type_list)\n"
]
},
{
"cell_type": "code",
"execution_count": 189,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ENSG00000115386 | \n",
" ENSG00000139287 | \n",
" del | \n",
" ENSG00000107447 | \n",
" ENSG00000122852 | \n",
" del | \n",
" ENSG00000054983 | \n",
" del | \n",
" ENSG00000012048 | \n",
" ENSG00000078401 | \n",
" ... | \n",
" ENSG00000183662 | \n",
" ENSG00000172936 | \n",
" ENSG00000166573 | \n",
" ENSG00000186472 | \n",
" ENSG00000108821 | \n",
" ENSG00000196565 | \n",
" ENSG00000180440 | \n",
" del | \n",
" ENSG00000145384 | \n",
" ENSG00000105929 | \n",
"
\n",
" \n",
" \n",
" \n",
" Immune system-Pro-B cells | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" Immune system-Pre-B cells | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" Immune system-Naive B cells | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" Immune system-Memory B cells | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" Immune system-Plasma B cells | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" Teeth-Odontoblasts | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" Teeth-Endothelial cells | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" Teeth-Immune cells | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" Teeth-Glial cells | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" Teeth-Epithelial cells | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
324 rows × 3062 columns
\n",
"
"
],
"text/plain": [
" ENSG00000115386 ENSG00000139287 del \\\n",
"Immune system-Pro-B cells 0 0 0 \n",
"Immune system-Pre-B cells 0 0 0 \n",
"Immune system-Naive B cells 0 0 0 \n",
"Immune system-Memory B cells 0 0 0 \n",
"Immune system-Plasma B cells 0 0 0 \n",
"... ... ... ... \n",
"Teeth-Odontoblasts 0 0 0 \n",
"Teeth-Endothelial cells 0 0 0 \n",
"Teeth-Immune cells 0 0 0 \n",
"Teeth-Glial cells 0 0 0 \n",
"Teeth-Epithelial cells 0 0 0 \n",
"\n",
" ENSG00000107447 ENSG00000122852 del \\\n",
"Immune system-Pro-B cells 1 0 0 \n",
"Immune system-Pre-B cells 0 0 0 \n",
"Immune system-Naive B cells 0 0 0 \n",
"Immune system-Memory B cells 0 0 0 \n",
"Immune system-Plasma B cells 0 0 0 \n",
"... ... ... ... \n",
"Teeth-Odontoblasts 0 0 0 \n",
"Teeth-Endothelial cells 0 0 0 \n",
"Teeth-Immune cells 0 0 0 \n",
"Teeth-Glial cells 0 0 0 \n",
"Teeth-Epithelial cells 0 0 0 \n",
"\n",
" ENSG00000054983 del ENSG00000012048 \\\n",
"Immune system-Pro-B cells 0 0 0 \n",
"Immune system-Pre-B cells 0 0 0 \n",
"Immune system-Naive B cells 0 0 0 \n",
"Immune system-Memory B cells 0 0 0 \n",
"Immune system-Plasma B cells 0 0 0 \n",
"... ... ... ... \n",
"Teeth-Odontoblasts 0 0 0 \n",
"Teeth-Endothelial cells 0 0 0 \n",
"Teeth-Immune cells 0 0 0 \n",
"Teeth-Glial cells 0 0 0 \n",
"Teeth-Epithelial cells 0 0 0 \n",
"\n",
" ENSG00000078401 ... ENSG00000183662 \\\n",
"Immune system-Pro-B cells 0 ... 0 \n",
"Immune system-Pre-B cells 0 ... 0 \n",
"Immune system-Naive B cells 0 ... 0 \n",
"Immune system-Memory B cells 0 ... 0 \n",
"Immune system-Plasma B cells 0 ... 0 \n",
"... ... ... ... \n",
"Teeth-Odontoblasts 0 ... 0 \n",
"Teeth-Endothelial cells 1 ... 0 \n",
"Teeth-Immune cells 0 ... 0 \n",
"Teeth-Glial cells 0 ... 0 \n",
"Teeth-Epithelial cells 0 ... 0 \n",
"\n",
" ENSG00000172936 ENSG00000166573 \\\n",
"Immune system-Pro-B cells 0 0 \n",
"Immune system-Pre-B cells 0 0 \n",
"Immune system-Naive B cells 0 0 \n",
"Immune system-Memory B cells 0 0 \n",
"Immune system-Plasma B cells 0 0 \n",
"... ... ... \n",
"Teeth-Odontoblasts 0 0 \n",
"Teeth-Endothelial cells 0 0 \n",
"Teeth-Immune cells 0 0 \n",
"Teeth-Glial cells 0 0 \n",
"Teeth-Epithelial cells 0 0 \n",
"\n",
" ENSG00000186472 ENSG00000108821 \\\n",
"Immune system-Pro-B cells 0 0 \n",
"Immune system-Pre-B cells 0 0 \n",
"Immune system-Naive B cells 0 0 \n",
"Immune system-Memory B cells 0 0 \n",
"Immune system-Plasma B cells 0 0 \n",
"... ... ... \n",
"Teeth-Odontoblasts 0 1 \n",
"Teeth-Endothelial cells 0 0 \n",
"Teeth-Immune cells 0 0 \n",
"Teeth-Glial cells 0 0 \n",
"Teeth-Epithelial cells 0 0 \n",
"\n",
" ENSG00000196565 ENSG00000180440 del \\\n",
"Immune system-Pro-B cells 0 0 0 \n",
"Immune system-Pre-B cells 0 0 0 \n",
"Immune system-Naive B cells 0 0 0 \n",
"Immune system-Memory B cells 0 0 0 \n",
"Immune system-Plasma B cells 0 0 0 \n",
"... ... ... ... \n",
"Teeth-Odontoblasts 0 0 0 \n",
"Teeth-Endothelial cells 0 0 0 \n",
"Teeth-Immune cells 0 0 0 \n",
"Teeth-Glial cells 0 0 0 \n",
"Teeth-Epithelial cells 0 0 0 \n",
"\n",
" ENSG00000145384 ENSG00000105929 \n",
"Immune system-Pro-B cells 0 0 \n",
"Immune system-Pre-B cells 0 0 \n",
"Immune system-Naive B cells 0 0 \n",
"Immune system-Memory B cells 0 0 \n",
"Immune system-Plasma B cells 0 0 \n",
"... ... ... \n",
"Teeth-Odontoblasts 0 0 \n",
"Teeth-Endothelial cells 0 0 \n",
"Teeth-Immune cells 0 0 \n",
"Teeth-Glial cells 0 0 \n",
"Teeth-Epithelial cells 0 0 \n",
"\n",
"[324 rows x 3062 columns]"
]
},
"execution_count": 189,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"marker_gene_table"
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'Adrenal', 'Intestine', 'Placenta', 'Spleen', 'Stomach', 'Thymus'}"
]
},
"execution_count": 83,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"set(gitdf) - set (df)"
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'Embryo',\n",
" 'Gastrointestinal tract',\n",
" 'Ovary',\n",
" 'Skin',\n",
" 'Teeth',\n",
" 'Testis',\n",
" 'White adipose tissue'}"
]
},
"execution_count": 84,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"set(df) - set (gitdf)"
]
},
{
"cell_type": "code",
"execution_count": 183,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ENSG00000115386 | \n",
" ENSG00000139287 | \n",
" del | \n",
" ENSG00000107447 | \n",
" ENSG00000122852 | \n",
" del | \n",
" ENSG00000054983 | \n",
" del | \n",
" ENSG00000012048 | \n",
" ENSG00000078401 | \n",
" ... | \n",
" ENSG00000183662 | \n",
" ENSG00000172936 | \n",
" ENSG00000166573 | \n",
" ENSG00000186472 | \n",
" ENSG00000108821 | \n",
" ENSG00000196565 | \n",
" ENSG00000180440 | \n",
" del | \n",
" ENSG00000145384 | \n",
" ENSG00000105929 | \n",
"
\n",
" \n",
" \n",
" \n",
" Immune system-Pro-B cells | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" Immune system-Pre-B cells | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" Immune system-Naive B cells | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" Immune system-Memory B cells | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" Immune system-Plasma B cells | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" Teeth-Odontoblasts | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" Teeth-Endothelial cells | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" Teeth-Immune cells | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" Teeth-Glial cells | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" Teeth-Epithelial cells | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
324 rows × 3062 columns
\n",
"
"
],
"text/plain": [
" ENSG00000115386 ENSG00000139287 del \\\n",
"Immune system-Pro-B cells 0 0 0 \n",
"Immune system-Pre-B cells 0 0 0 \n",
"Immune system-Naive B cells 0 0 0 \n",
"Immune system-Memory B cells 0 0 0 \n",
"Immune system-Plasma B cells 0 0 0 \n",
"... ... ... ... \n",
"Teeth-Odontoblasts 0 0 0 \n",
"Teeth-Endothelial cells 0 0 0 \n",
"Teeth-Immune cells 0 0 0 \n",
"Teeth-Glial cells 0 0 0 \n",
"Teeth-Epithelial cells 0 0 0 \n",
"\n",
" ENSG00000107447 ENSG00000122852 del \\\n",
"Immune system-Pro-B cells 1 0 0 \n",
"Immune system-Pre-B cells 0 0 0 \n",
"Immune system-Naive B cells 0 0 0 \n",
"Immune system-Memory B cells 0 0 0 \n",
"Immune system-Plasma B cells 0 0 0 \n",
"... ... ... ... \n",
"Teeth-Odontoblasts 0 0 0 \n",
"Teeth-Endothelial cells 0 0 0 \n",
"Teeth-Immune cells 0 0 0 \n",
"Teeth-Glial cells 0 0 0 \n",
"Teeth-Epithelial cells 0 0 0 \n",
"\n",
" ENSG00000054983 del ENSG00000012048 \\\n",
"Immune system-Pro-B cells 0 0 0 \n",
"Immune system-Pre-B cells 0 0 0 \n",
"Immune system-Naive B cells 0 0 0 \n",
"Immune system-Memory B cells 0 0 0 \n",
"Immune system-Plasma B cells 0 0 0 \n",
"... ... ... ... \n",
"Teeth-Odontoblasts 0 0 0 \n",
"Teeth-Endothelial cells 0 0 0 \n",
"Teeth-Immune cells 0 0 0 \n",
"Teeth-Glial cells 0 0 0 \n",
"Teeth-Epithelial cells 0 0 0 \n",
"\n",
" ENSG00000078401 ... ENSG00000183662 \\\n",
"Immune system-Pro-B cells 0 ... 0 \n",
"Immune system-Pre-B cells 0 ... 0 \n",
"Immune system-Naive B cells 0 ... 0 \n",
"Immune system-Memory B cells 0 ... 0 \n",
"Immune system-Plasma B cells 0 ... 0 \n",
"... ... ... ... \n",
"Teeth-Odontoblasts 0 ... 0 \n",
"Teeth-Endothelial cells 1 ... 0 \n",
"Teeth-Immune cells 0 ... 0 \n",
"Teeth-Glial cells 0 ... 0 \n",
"Teeth-Epithelial cells 0 ... 0 \n",
"\n",
" ENSG00000172936 ENSG00000166573 \\\n",
"Immune system-Pro-B cells 0 0 \n",
"Immune system-Pre-B cells 0 0 \n",
"Immune system-Naive B cells 0 0 \n",
"Immune system-Memory B cells 0 0 \n",
"Immune system-Plasma B cells 0 0 \n",
"... ... ... \n",
"Teeth-Odontoblasts 0 0 \n",
"Teeth-Endothelial cells 0 0 \n",
"Teeth-Immune cells 0 0 \n",
"Teeth-Glial cells 0 0 \n",
"Teeth-Epithelial cells 0 0 \n",
"\n",
" ENSG00000186472 ENSG00000108821 \\\n",
"Immune system-Pro-B cells 0 0 \n",
"Immune system-Pre-B cells 0 0 \n",
"Immune system-Naive B cells 0 0 \n",
"Immune system-Memory B cells 0 0 \n",
"Immune system-Plasma B cells 0 0 \n",
"... ... ... \n",
"Teeth-Odontoblasts 0 1 \n",
"Teeth-Endothelial cells 0 0 \n",
"Teeth-Immune cells 0 0 \n",
"Teeth-Glial cells 0 0 \n",
"Teeth-Epithelial cells 0 0 \n",
"\n",
" ENSG00000196565 ENSG00000180440 del \\\n",
"Immune system-Pro-B cells 0 0 0 \n",
"Immune system-Pre-B cells 0 0 0 \n",
"Immune system-Naive B cells 0 0 0 \n",
"Immune system-Memory B cells 0 0 0 \n",
"Immune system-Plasma B cells 0 0 0 \n",
"... ... ... ... \n",
"Teeth-Odontoblasts 0 0 0 \n",
"Teeth-Endothelial cells 0 0 0 \n",
"Teeth-Immune cells 0 0 0 \n",
"Teeth-Glial cells 0 0 0 \n",
"Teeth-Epithelial cells 0 0 0 \n",
"\n",
" ENSG00000145384 ENSG00000105929 \n",
"Immune system-Pro-B cells 0 0 \n",
"Immune system-Pre-B cells 0 0 \n",
"Immune system-Naive B cells 0 0 \n",
"Immune system-Memory B cells 0 0 \n",
"Immune system-Plasma B cells 0 0 \n",
"... ... ... \n",
"Teeth-Odontoblasts 0 0 \n",
"Teeth-Endothelial cells 0 0 \n",
"Teeth-Immune cells 0 0 \n",
"Teeth-Glial cells 0 0 \n",
"Teeth-Epithelial cells 0 0 \n",
"\n",
"[324 rows x 3062 columns]"
]
},
"execution_count": 183,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"marker_gene_table"
]
},
{
"cell_type": "code",
"execution_count": 158,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
":2: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" df_TF['ensg_gene'] = [dict_gene_name_to_ensg[x] if x in dict_gene_name_to_ensg.keys() else 'del' for x in df_TF['official gene symbol'] ]\n"
]
}
],
"source": [
"df_TF = gitdf[gitdf['species'] != 'Mm']\n",
"df_TF['ensg_gene'] = [dict_gene_name_to_ensg[x] if x in dict_gene_name_to_ensg.keys() else 'del' for x in df_TF['official gene symbol'] ]\n",
"\n",
"\n",
"\n",
"df_TF = df_TF[df_TF['ensg_gene'] != 'del']\n",
"\n",
"\n",
"\n",
"df_TF['counter'] = 1\n",
"\n",
"df_TF_egad = df_TF.pivot_table(index=[\"ensg_gene\"], columns='germ layer', values='counter', aggfunc='max').T\n",
"marker_gene_table = df_TF_egad.fillna(0)\n"
]
},
{
"cell_type": "code",
"execution_count": 208,
"metadata": {},
"outputs": [
{
"ename": "KeyError",
"evalue": "'tissueType'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m~/.conda/envs/hicexplorer/lib/python3.8/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 3079\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3080\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3081\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n",
"\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n",
"\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n",
"\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n",
"\u001b[0;31mKeyError\u001b[0m: 'tissueType'",
"\nThe above exception was the direct cause of the following exception:\n",
"\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mdf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'species'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;34m'Mm'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mdf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mdf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'tissueType'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0misin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Brain'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'combined_type'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'organ'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m'-'\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'cell type'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.conda/envs/hicexplorer/lib/python3.8/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 3022\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnlevels\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3023\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_multilevel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3024\u001b[0;31m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3025\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_integer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindexer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3026\u001b[0m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mindexer\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.conda/envs/hicexplorer/lib/python3.8/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 3080\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3081\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3082\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3083\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3084\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtolerance\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mKeyError\u001b[0m: 'tissueType'"
]
}
],
"source": [
"import pandas as pd\n",
"df = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/notebooks/PanglaoDB_markers_27_Mar_2020.tsv', sep='\\t')\n",
"df[df['species'] != 'Mm']\n",
"\n",
"df = df[df['tissueType'].isin(['Brain'])]\n",
"df['combined_type'] = df['organ'] + '-' + df['cell type']\n",
"\n",
"#df['combined_type'] = df['Tissue'] \n",
"#df['combined_type'] = df['Cell type']\n",
"tissue_type_list = df['combined_type'].drop_duplicates().tolist()\n",
"\n",
"all_gene_list = df['official gene symbol'].str.cat(sep=',').split(\",\")\n",
"\n",
"data_tissue = df.groupby(['combined_type']).apply(lambda grp: grp['official gene symbol'].str.cat(sep=',').split(\",\"))\n",
"\n",
"all_gene_list = list(set(all_gene_list))\n",
"\n",
"nested_gene_marker_tissue_list = []\n",
"\n",
"for i in tissue_type_list:\n",
" gene_for_given_tissue = data_tissue[data_tissue.index ==i][0]\n",
" particular_gene_tissue = [ 1 if x in gene_for_given_tissue else 0 for x in all_gene_list]\n",
" nested_gene_marker_tissue_list.append(particular_gene_tissue)\n",
"\n",
" \n",
"df = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/data_human/gene_name_ensg.txt', sep='\\t')\n",
"df.dropna(inplace=True)\n",
"dict_gene_name_to_ensg = df.set_index('Gene name').to_dict()['Gene stable ID']\n",
"all_gene_list = [dict_gene_name_to_ensg[x] if x in dict_gene_name_to_ensg.keys() else 'del' for x in all_gene_list ]\n",
"marker_gene_table = pd.DataFrame(nested_gene_marker_tissue_list, columns = all_gene_list, index=tissue_type_list)\n"
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {},
"outputs": [],
"source": [
"df = marker_gene_table.sum().reset_index()"
]
},
{
"cell_type": "code",
"execution_count": 103,
"metadata": {},
"outputs": [],
"source": [
"marker_gene_table = marker_gene_table.drop(df[df[0]>1]['index'].tolist(), axis = 1)"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAD4CAYAAAAD6PrjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAQh0lEQVR4nO3df+xddX3H8edLiqCiA9IvrOuPFbPGiWZOUhk/FkNEJ1Nj2aJS44/GsVU3dKiLDjQZ8Q8SkxnDZuaPRph1ItohDCT+6ipqNidYkClYEKIIXTv6VaO4ueiK7/1xD59dv37b3pbvvedL7/ORfHPv+Zxz73nl46Uvz7n3npuqQpIkgMf0HUCStHhYCpKkxlKQJDWWgiSpsRQkSc2SvgM8EkuXLq3Vq1f3HUOSHlVuueWW71XVzHzrHtWlsHr1arZv3953DEl6VEny3X2t8/SRJKmxFCRJjaUgSWosBUlSYylIkhpLQZLUWAqSpMZSkCQ1loIkqZnqUli+chVJev1bvnJV39MgSc2j+jIXj9Sunfdz3ge+3GuGj7/2jF73L0nDpvpIQZL0iywFSVJjKUiSGktBktRYCpKkxlKQJDWWgiSpsRQkSY2lIElqLAVJUmMpSJIaS0GS1FgKkqRmbKWQ5Ioke5LcPjT210nuTPL1JNcmOXZo3cVJ7klyV5LnjyuXJGnfxnmk8CHgnDljW4GnV9VvAd8CLgZIcjKwHnha95j3JjlijNkkSfMYWylU1ZeAH8wZ+1xV7e0WvwKs6O6vAz5WVT+tqu8A9wCnjiubJGl+fb6n8EfAp7v7y4H7h9bt7MYkSRPUSykkeTuwF7jy4aF5Nqt9PHZjku1Jts/Ozo4roiRNpYmXQpINwIuAV1TVw//w7wRWDm22Atg13+OralNVra2qtTMzM+MNK0lTZqKlkOQc4C+BF1fVT4ZWXQ+sT3JUkpOANcDNk8wmSYIl43riJFcBZwFLk+wELmHwaaOjgK1JAL5SVa+rqjuSbAG+yeC00gVV9dC4skmS5je2Uqiql88zfPl+tr8UuHRceSRJB+Y3miVJjaUgSWosBUlSYylIkhpLQZLUWAqSpMZSkCQ1loIkqbEUJEmNpSBJaiwFSVJjKUiSGktBktRYCpKkxlKQJDWWgiSpsRQkSY2lIElqLAVJUmMpSJIaS0GS1FgKkqTGUpAkNWMrhSRXJNmT5PahseOTbE1yd3d73NC6i5Pck+SuJM8fVy5J0r6N80jhQ8A5c8YuArZV1RpgW7dMkpOB9cDTuse8N8kRY8wmSZrH2Eqhqr4E/GDO8Dpgc3d/M3Du0PjHquqnVfUd4B7g1HFlkyTNb9LvKZxYVbsButsTuvHlwP1D2+3sxn5Jko1JtifZPjs7O9awkjRtFssbzZlnrObbsKo2VdXaqlo7MzMz5liSNF0mXQoPJFkG0N3u6cZ3AiuHtlsB7JpwNkmaepMuheuBDd39DcB1Q+PrkxyV5CRgDXDzhLNJ0tRbMq4nTnIVcBawNMlO4BLgncCWJOcD9wEvBaiqO5JsAb4J7AUuqKqHxpVNkjS/sZVCVb18H6vO3sf2lwKXjiuPJOnAFssbzZKkRcBSkCQ1loIkqbEUJEmNpSBJaiwFSVJjKUiSGktBktRYCpKkxlKQJDWWgiSpsRQkSY2lIElqLAVJUmMpSJIaS0GS1FgKkqTGUpAkNZaCJKmxFCRJjaUgSWosBUlS00spJHlTkjuS3J7kqiRHJzk+ydYkd3e3x/WRTZKm2cRLIcly4M+BtVX1dOAIYD1wEbCtqtYA27plSdIE9XX6aAnwuCRLgMcDu4B1wOZu/Wbg3H6iSdL0mngpVNV/AO8C7gN2Az+qqs8BJ1bV7m6b3cAJ8z0+ycYk25Nsn52dnVRsSZoKfZw+Oo7BUcFJwK8BT0jyylEfX1WbqmptVa2dmZkZV0xJmkp9nD56LvCdqpqtqv8FrgHOAB5Isgygu93TQzZJmmp9lMJ9wGlJHp8kwNnADuB6YEO3zQbguh6ySdJUWzLpHVbVTUmuBm4F9gJfAzYBxwBbkpzPoDheOulskjTtRiqFJGdW1b8eaGxUVXUJcMmc4Z8yOGqQJPVk1NNH7xlxTJL0KLbfI4UkpzN4E3gmyZuHVj2JwZfOJEmHkQOdPnosg3P9S4AnDo0/CLxkXKEkSf3YbylU1ReBLyb5UFV9d0KZJEk9GfXTR0cl2QSsHn5MVT1nHKEkSf0YtRT+EXg/8EHgofHFkST1adRS2FtV7xtrEklS70b9SOonk/xZkmXd7x4cn+T4sSaTJE3cqEcKD19+4i1DYwU8eWHjSJL6NFIpVNVJ4w4iSerfqJe5ePV841X14YWNI0nq06inj541dP9oBtcouhWwFCTpMDLq6aM3DC8n+RXgH8aSSJLUm0P9PYWfAGsWMogkqX+jvqfwSQafNoLBhfCeCmwZVyhJUj9GfU/hXUP39wLfraqdY8gjSerRSKePugvj3cngSqnHAT8bZyhJUj9GKoUkLwNuZvATmS8DbkripbMl6TAz6umjtwPPqqo9AElmgH8Grh5XMEnS5I366aPHPFwIne8fxGMlSY8Sox4pfCbJZ4GruuXzgE+NJ5IkqS8H+o3m3wBOrKq3JPlD4HeBAP8GXDmBfJKkCTrQKaDLgB8DVNU1VfXmqnoTg6OEy8YbTZI0aQcqhdVV9fW5g1W1ncFPcx6SJMcmuTrJnUl2JDm9+42GrUnu7m6PO9TnlyQdmgOVwtH7Wfe4R7DfvwE+U1W/CTwD2AFcBGyrqjXAtm5ZkjRBByqFryb5k7mDSc4HbjmUHSZ5EvBs4HKAqvpZVf0QWAds7jbbDJx7KM8vSTp0B/r00RuBa5O8gv8vgbXAY4E/OMR9PhmYBf4+yTO6572QwRvauwGqaneSE+Z7cJKNwEaAVatWHWIESdJ89nukUFUPVNUZwDuAe7u/d1TV6VX1n4e4zyXAKcD7quqZwH9zEKeKqmpTVa2tqrUzMzOHGEGSNJ9Rf0/hRuDGBdrnTmBnVd3ULV/NoBQeSLKsO0pYBuzZ5zNIksZi4t9K7o4w7k/ylG7obOCbwPXAhm5sA3DdpLNJ0rQb9RvNC+0NwJVJHgt8G3gNg4La0r2JfR+Di+9Jkiaol1KoqtsYvGE919kTjiJJGuJF7SRJjaUgSWosBUlSYylIkhpLQZLUWAqSpMZSkCQ1loIkqbEUJEmNpSBJaiwFSVJjKUiSGktBktRYCpKkxlKQJDWWgiSpsRQkSY2lIElqLAVJUmMpSJIaS0GS1FgKkqSmt1JIckSSryW5oVs+PsnWJHd3t8f1lU2SplWfRwoXAjuGli8CtlXVGmBbtyxJmqBeSiHJCuCFwAeHhtcBm7v7m4FzJxxLkqZeX0cKlwFvBX4+NHZiVe0G6G5PmO+BSTYm2Z5k++zs7NiDStI0mXgpJHkRsKeqbjmUx1fVpqpaW1VrZ2ZmFjidJE23JT3s80zgxUleABwNPCnJR4AHkiyrqt1JlgF7esgmSVNt4kcKVXVxVa2oqtXAeuDzVfVK4HpgQ7fZBuC6SWeTpGm3mL6n8E7geUnuBp7XLUuSJqiP00dNVX0B+EJ3//vA2X3mkaRpt5iOFCRJPbMUJEmNpSBJaiwFSVJjKUiSGktBktRYCpKkxlKQJDWWgiSpsRQkSY2lIElqLAVJUmMpSJIaS0GS1FgKkqTGUpAkNZaCJKmxFCRJjaUgSWosBUlSYylIkhpLQZLUTLwUkqxMcmOSHUnuSHJhN358kq1J7u5uj5t0Nkmadn0cKewF/qKqngqcBlyQ5GTgImBbVa0BtnXLkqQJmngpVNXuqrq1u/9jYAewHFgHbO422wycO+lskjTten1PIclq4JnATcCJVbUbBsUBnLCPx2xMsj3J9tnZ2YlllaRp0FspJDkG+ATwxqp6cNTHVdWmqlpbVWtnZmbGF1CSplAvpZDkSAaFcGVVXdMNP5BkWbd+GbCnj2zTavnKVSTp/W/5ylV9T4U01ZZMeodJAlwO7Kiqdw+tuh7YALyzu71u0tmm2a6d93PeB77cdww+/toz+o4gTbWJlwJwJvAq4BtJbuvG3sagDLYkOR+4D3hpD9kkaapNvBSq6l+A7GP12ZPMIkn6RX6jWZLUWAqSpMZSkCQ1loIkqbEUJEmNpSBJaiwFSVJjKUiSGktBktRYCpKkxlKQJDWWgiSpsRQkSY2lIElqLAVJUmMpSJIaS0GS1FgKkqTGUpAkNZaCJKmxFCRJjaUgzWP5ylUk6f1v+cpVfU+F5jjcXxtLxvKs0qPcrp33c94Hvtx3DD7+2jP6jqA5DvfXxqI7UkhyTpK7ktyT5KK+80jSNFlUpZDkCODvgN8HTgZenuTkflNJ0vRYVKUAnArcU1XfrqqfAR8D1vWcSZKmRqqq7wxNkpcA51TVH3fLrwJ+p6peP7TNRmBjt/gU4K5HsMulwPcewePHxVwHx1wHx1wH53DM9etVNTPfisX2RnPmGfuF1qqqTcCmBdlZsr2q1i7Ecy0kcx0ccx0ccx2cacu12E4f7QRWDi2vAHb1lEWSps5iK4WvAmuSnJTkscB64PqeM0nS1FhUp4+qam+S1wOfBY4ArqiqO8a4ywU5DTUG5jo45jo45jo4U5VrUb3RLEnq12I7fSRJ6pGlIElqDvtSSHJFkj1Jbt/H+iT52+6yGl9PcsoiyXVWkh8lua37+6sJZFqZ5MYkO5LckeTCebaZ+HyNmKuP+To6yc1J/r3L9Y55tunr9TVKtonPWbffI5J8LckN86zrZb5GyNXLXHX7vjfJN7r9bp9n/cLOWVUd1n/As4FTgNv3sf4FwKcZfEfiNOCmRZLrLOCGCc/VMuCU7v4TgW8BJ/c9XyPm6mO+AhzT3T8SuAk4re/5OohsE5+zbr9vBj463777mq8RcvUyV92+7wWW7mf9gs7ZYX+kUFVfAn6wn03WAR+uga8AxyZZtghyTVxV7a6qW7v7PwZ2AMvnbDbx+Rox18R1c/Bf3eKR3d/cT2709foaJdvEJVkBvBD44D426WW+Rsi1mC3onB32pTCC5cD9Q8s7WQT/4HRO7w7/P53kaZPccZLVwDMZ/D/MYb3O135yQQ/z1Z1yuA3YA2ytqkUzXyNkg8nP2WXAW4Gf72N9X/N1GfvPBf3991jA55LcksFlfuZa0DmzFEa4tEZPbmVwfZJnAO8B/mlSO05yDPAJ4I1V9eDc1fM8ZCLzdYBcvcxXVT1UVb/N4Nv3pyZ5+pxNepuvEbJNdM6SvAjYU1W37G+zecbGOl8j5urtv0fgzKo6hcHVoy9I8uw56xd0ziyFRXppjap68OHD/6r6FHBkkqXj3m+SIxn8w3tlVV0zzya9zNeBcvU1X0P7/yHwBeCcOat6f33tK1sPc3Ym8OIk9zK4AvJzknxkzjZ9zNcBc/X5+qqqXd3tHuBaBleTHragc2YpDC6j8eruHfzTgB9V1e6+QyX51STp7p/K4H+r7495nwEuB3ZU1bv3sdnE52uUXD3N10ySY7v7jwOeC9w5Z7NeXl+jZJv0nFXVxVW1oqpWM7iEzeer6pVzNpv4fI2Sq4/XV7evJyR54sP3gd8D5n5icUHnbFFd5mIcklzF4JMDS5PsBC5h8KYbVfV+4FMM3r2/B/gJ8JpFkuslwJ8m2Qv8D7C+uo8ajNGZwKuAb3TnogHeBqwaytXHfI2Sq4/5WgZszuDHoR4DbKmqG5K8bihXL6+vEbP1MWe/ZJHM14Fy9TVXJwLXdn20BPhoVX1mnHPmZS4kSY2njyRJjaUgSWosBUlSYylIkhpLQZLUWAqSpMZSkCQ1/wdsjBKreOHXmgAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.histplot(marker_gene_table.sum())"
]
},
{
"cell_type": "code",
"execution_count": 221,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(261, 261)\n",
"(261, 36)\n",
"0.9680715197956578\n",
"0.0\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
":133: RuntimeWarning: invalid value encountered in true_divide\n",
" roc = (p / n_p - (n_p + 1) / 2) / n_n\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 221,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df_2d_jac, go_chrom = run_egad(marker_gene_table.T, df_jac_gw)\n",
"%matplotlib inline\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"sns.scatterplot(data=df_2d_jac, x='AUC', y='DEGREE_NULL_AUC')\n",
"plt.plot([0, 1], [0, 1], c='black')\n",
"plt.axvline(x=df_2d_jac['AUC'].mean(),c='black',ls='--')\n",
"plt.axhline(y=df_2d_jac['DEGREE_NULL_AUC'].mean(), c='black', ls='--')"
]
},
{
"cell_type": "code",
"execution_count": 222,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.5595002913340569"
]
},
"execution_count": 222,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac['AUC'].mean()"
]
},
{
"cell_type": "code",
"execution_count": 223,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" AUC | \n",
" AVG_NODE_DEGREE | \n",
" DEGREE_NULL_AUC | \n",
" P_Value | \n",
"
\n",
" \n",
" \n",
" \n",
" Adrenal-Sympathoblasts | \n",
" 0.249016 | \n",
" 270.226390 | \n",
" 0.433071 | \n",
" 0.018456 | \n",
"
\n",
" \n",
" Brain-Oligodendrocytes | \n",
" 0.284360 | \n",
" 272.859779 | \n",
" 0.506693 | \n",
" 0.008096 | \n",
"
\n",
" \n",
" Brain-Neural Progenitor cells | \n",
" 0.318399 | \n",
" 265.750945 | \n",
" 0.425680 | \n",
" 0.008982 | \n",
"
\n",
" \n",
" Brain-Schwann precursor cells | \n",
" 0.320261 | \n",
" 290.486189 | \n",
" 0.598693 | \n",
" 0.101839 | \n",
"
\n",
" \n",
" Adrenal-SLC26A4_PAEP positive cells | \n",
" 0.447707 | \n",
" 283.895108 | \n",
" 0.552028 | \n",
" 0.129433 | \n",
"
\n",
" \n",
" Brain-Mature neurons | \n",
" 0.458630 | \n",
" 276.327911 | \n",
" 0.477273 | \n",
" 0.371641 | \n",
"
\n",
" \n",
" Brain-GABAergic neurons | \n",
" 0.490196 | \n",
" 257.173171 | \n",
" 0.430719 | \n",
" 0.178585 | \n",
"
\n",
" \n",
" Brain-Microglial cells | \n",
" 0.491468 | \n",
" 269.383493 | \n",
" 0.489198 | \n",
" 0.330668 | \n",
"
\n",
" \n",
" Brain-Immune system cells | \n",
" 0.500000 | \n",
" 308.930444 | \n",
" 0.813072 | \n",
" 0.415369 | \n",
"
\n",
" \n",
" Adrenal-Schwann cells | \n",
" 0.521400 | \n",
" 264.949191 | \n",
" 0.424812 | \n",
" 0.396232 | \n",
"
\n",
" \n",
" Adrenal-Lymphoid cells | \n",
" 0.524682 | \n",
" 260.901189 | \n",
" 0.435794 | \n",
" 0.267279 | \n",
"
\n",
" \n",
" Brain-Cancer stem cells | \n",
" 0.535784 | \n",
" 282.416899 | \n",
" 0.552941 | \n",
" 0.409272 | \n",
"
\n",
" \n",
" Brain-Glutamatergic neurons | \n",
" 0.566710 | \n",
" 269.699737 | \n",
" 0.479753 | \n",
" 0.171519 | \n",
"
\n",
" \n",
" Adrenal-Megakaryocytes | \n",
" 0.577867 | \n",
" 259.799391 | \n",
" 0.441455 | \n",
" 0.042519 | \n",
"
\n",
" \n",
" Brain-Astrocytes | \n",
" 0.606127 | \n",
" 283.187385 | \n",
" 0.554201 | \n",
" 0.071724 | \n",
"
\n",
" \n",
" Adrenal-Erythroblasts | \n",
" 0.607067 | \n",
" 282.010021 | \n",
" 0.598182 | \n",
" 0.002765 | \n",
"
\n",
" \n",
" Adrenal-Vascular endothelial cells | \n",
" 0.622621 | \n",
" 288.407145 | \n",
" 0.602789 | \n",
" 0.090246 | \n",
"
\n",
" \n",
" Brain-Radial glial cells | \n",
" 0.646756 | \n",
" 259.686479 | \n",
" 0.413818 | \n",
" 0.045605 | \n",
"
\n",
" \n",
" Adrenal-Stromal cells | \n",
" 0.665788 | \n",
" 265.989080 | \n",
" 0.406621 | \n",
" 0.047102 | \n",
"
\n",
" \n",
" Adrenal-Myeloid cells | \n",
" 0.675911 | \n",
" 270.970484 | \n",
" 0.542545 | \n",
" 0.034683 | \n",
"
\n",
" \n",
" Brain-Endothelial cells | \n",
" 0.676420 | \n",
" 295.325936 | \n",
" 0.648929 | \n",
" 0.018947 | \n",
"
\n",
" \n",
" Brain-Dopaminergic neurons | \n",
" 0.697619 | \n",
" 272.029501 | \n",
" 0.490741 | \n",
" 0.055307 | \n",
"
\n",
" \n",
" Adrenal-CSH1_CSH2 positive cells | \n",
" 0.820580 | \n",
" 287.118315 | \n",
" 0.519375 | \n",
" 0.000020 | \n",
"
\n",
" \n",
" Brain-Neuroepithelial cells | \n",
" 0.828327 | \n",
" 279.264191 | \n",
" 0.512846 | \n",
" 0.004822 | \n",
"
\n",
" \n",
" Brain-Oligodendrocyte precursor cells | \n",
" 0.853813 | \n",
" 237.095503 | \n",
" 0.315686 | \n",
" 0.002726 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" AUC AVG_NODE_DEGREE \\\n",
"Adrenal-Sympathoblasts 0.249016 270.226390 \n",
"Brain-Oligodendrocytes 0.284360 272.859779 \n",
"Brain-Neural Progenitor cells 0.318399 265.750945 \n",
"Brain-Schwann precursor cells 0.320261 290.486189 \n",
"Adrenal-SLC26A4_PAEP positive cells 0.447707 283.895108 \n",
"Brain-Mature neurons 0.458630 276.327911 \n",
"Brain-GABAergic neurons 0.490196 257.173171 \n",
"Brain-Microglial cells 0.491468 269.383493 \n",
"Brain-Immune system cells 0.500000 308.930444 \n",
"Adrenal-Schwann cells 0.521400 264.949191 \n",
"Adrenal-Lymphoid cells 0.524682 260.901189 \n",
"Brain-Cancer stem cells 0.535784 282.416899 \n",
"Brain-Glutamatergic neurons 0.566710 269.699737 \n",
"Adrenal-Megakaryocytes 0.577867 259.799391 \n",
"Brain-Astrocytes 0.606127 283.187385 \n",
"Adrenal-Erythroblasts 0.607067 282.010021 \n",
"Adrenal-Vascular endothelial cells 0.622621 288.407145 \n",
"Brain-Radial glial cells 0.646756 259.686479 \n",
"Adrenal-Stromal cells 0.665788 265.989080 \n",
"Adrenal-Myeloid cells 0.675911 270.970484 \n",
"Brain-Endothelial cells 0.676420 295.325936 \n",
"Brain-Dopaminergic neurons 0.697619 272.029501 \n",
"Adrenal-CSH1_CSH2 positive cells 0.820580 287.118315 \n",
"Brain-Neuroepithelial cells 0.828327 279.264191 \n",
"Brain-Oligodendrocyte precursor cells 0.853813 237.095503 \n",
"\n",
" DEGREE_NULL_AUC P_Value \n",
"Adrenal-Sympathoblasts 0.433071 0.018456 \n",
"Brain-Oligodendrocytes 0.506693 0.008096 \n",
"Brain-Neural Progenitor cells 0.425680 0.008982 \n",
"Brain-Schwann precursor cells 0.598693 0.101839 \n",
"Adrenal-SLC26A4_PAEP positive cells 0.552028 0.129433 \n",
"Brain-Mature neurons 0.477273 0.371641 \n",
"Brain-GABAergic neurons 0.430719 0.178585 \n",
"Brain-Microglial cells 0.489198 0.330668 \n",
"Brain-Immune system cells 0.813072 0.415369 \n",
"Adrenal-Schwann cells 0.424812 0.396232 \n",
"Adrenal-Lymphoid cells 0.435794 0.267279 \n",
"Brain-Cancer stem cells 0.552941 0.409272 \n",
"Brain-Glutamatergic neurons 0.479753 0.171519 \n",
"Adrenal-Megakaryocytes 0.441455 0.042519 \n",
"Brain-Astrocytes 0.554201 0.071724 \n",
"Adrenal-Erythroblasts 0.598182 0.002765 \n",
"Adrenal-Vascular endothelial cells 0.602789 0.090246 \n",
"Brain-Radial glial cells 0.413818 0.045605 \n",
"Adrenal-Stromal cells 0.406621 0.047102 \n",
"Adrenal-Myeloid cells 0.542545 0.034683 \n",
"Brain-Endothelial cells 0.648929 0.018947 \n",
"Brain-Dopaminergic neurons 0.490741 0.055307 \n",
"Adrenal-CSH1_CSH2 positive cells 0.519375 0.000020 \n",
"Brain-Neuroepithelial cells 0.512846 0.004822 \n",
"Brain-Oligodendrocyte precursor cells 0.315686 0.002726 "
]
},
"execution_count": 223,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac.sort_values(by=['AUC']).tail(30)"
]
},
{
"cell_type": "code",
"execution_count": 190,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(2430, 2430)\n",
"(2430, 324)\n",
"0.9943377533912513\n",
"0.0\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
":133: RuntimeWarning: invalid value encountered in true_divide\n",
" roc = (p / n_p - (n_p + 1) / 2) / n_n\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 190,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAEGCAYAAACHGfl5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABSFklEQVR4nO2deXyMV/fAv3eyyCIiElsTQeyxkxZ9S5X+WpRXF6V0b4hSVLVvN7RaXkpR1L60Wl2sVaVoayt9Gyo09i3UEoQIksgiy9zfH5MZM5OZZBIzmUlyv5+PjzzLPM+5zzxzz73nnHuOkFKiUCgUivKNxtkCKBQKhcL5KGWgUCgUCqUMFAqFQqGUgUKhUChQykChUCgUgLuzBSgOQUFBsk6dOs4WQ6G4a06cOAFAo0aNnCyJojywb9++a1LKqpaOlUplUKdOHWJiYpwthkJx13Tu3BmAHTt2OFUORflACHHO2jFlJlIoFApF6ZwZKBRlhTFjxjhbBIUCUMpAoXAqDz/8sLNFUCgAZSZSKJxKbGwssbGxzhZDoVAzA4XCmYwcORJQDmSF83HozEAI8YUQ4qoQ4rCV40IIMUsIESeEOCiEaONIeRQKhUJhGUebiZYC3Qo43h1okPcvCpjnYHkUCoVCYQGHKgMp5U7gegGn9Aa+ljp2A5WFEDUdKZNCoVCURjIyMhg9ejRxcXEOub6zHcjBwAWj7fi8ffkQQkQJIWKEEDGJiYklIpxCoVC4Art27aJVq1ZMnDiRDRs2OOQeznYgCwv7LFbbkVIuBBYCREREqIo8ijLBxIkTnS2CwoVJTU3l3XffZe7cudStW5fffvvNYeHIzlYG8UAto+0Q4JKTZFEoSpz777/f2SIoXJRNmzYxePBg4uPjGTlyJBMmTMDX19dh93O2megn4IW8qKL2QLKU8rKTZVIoSow///yTP//809liKFyIpKQkXnjhBXr06IGfnx9//vknn332mUMVATh4ZiCE+B7oDAQJIeKBDwEPACnlfGAj0AOIA9KBlx0pj0Lharz//vuAWmegACklq1atYtiwYdy4cYOxY8cyevRoKlSoUCL3d6gykFL2L+S4BF5zpAwKhULh6ly6dInXXnuNH3/8kbZt27JlyxZatGhRojI420ykUCgU5RYpJUuWLCE8PJzNmzczZcoUdu/eXeKKAJzvQFYoFIpyyZkzZ4iKimLr1q08+OCDLFq0iAYNGjhNHjUzUCgUihIkNzeXGTNm0Lx5c/766y/mz5/Ptm3bnKoIQM0MFAqnMmPGDGeLoChBjhw5QmRkJHv27OGxxx5j/vz5hISEOFssQCkDhcKptGrVytkiKEqArKwsJk+ezPjx46lUqRLffvst/fv3RwhL626dg1IGCoUT2bJlC6CK3JRl9u7dS2RkJIcOHeKZZ55h1qxZVK1qsSa9U1HKQKFwIhMmTACUMiiLpKenM27cOKZNm0aNGjVYt24d//73v50tllWUMlAoFAo7s2PHDgYNGkRcXBxRUVFMmTIFf39/Z4tVICqaSKFQKOxEcnIyr776Kg899BBSSrZt28aCBQtcXhGAUgYKhUJhF37++WeaNm3KokWLePPNNzl48CAPPfSQs8WyGaUMFAqF4i5ITEzk2WefpWfPngQEBBAdHc3UqVPx8fFxtmhFQvkMFAonsmDBAmeLoCgmUkpWrFjB8OHDSU5OZty4cbz33nt4eno6W7RioZSBQuFEGjVq5GwRFMXg4sWLDBkyhPXr13PfffexZMkSmjVr5myx7gplJlIonMj69etZv369s8VQ2IhWq2XhwoWEh4ezZcsWpk+fzp9//lnqFQGomYFC4VSmTZsGQK9evZwsiaIw4uLiGDRoEDt27OChhx5i0aJF1KtXz9li2Q01M1AoFIoCyM3NZdq0abRo0YL9+/ezaNEitm7dWqYUAaiZgUKhUFjl8OHDvPLKK+zdu5devXoxb948goODnS2WQ1AzA4VCoTAjKyuLcePG0aZNG86ePcvy5ctZt25dmVUEoGYGCoVCYcKePXuIjIzkyJEjPPvss8yYMYOgoCBni+VwlDJQKJzIsmXLnC2CIo+0tDTGjh3LjBkzCA4OZsOGDTz22GPOFqvEUMpAoXAitWrVcrYICmDbtm0MGjSIM2fOMGTIED755BMqVarkbLFKFOUzUCicyIoVK1ixYoWzxSi33Lx5k0GDBtG1a1c0Gg07duxg7ty55U4RgJoZKBROZd68eQD069fPyZKUP3766SeGDBlCQkICb7/9NuPGjcPb29vZYjkNNTNQKBTliqtXr/LMM8/Qu3dvgoKC2LNnD5MnTy7XigCUMlAoFOUEKSXffvst4eHhrF27lvHjxxMTE0NERISzRXMJlJlIoVCUeS5cuMCrr77Kxo0bad++PUuWLCE8PNzZYrkUamagUCjKLFqtlnnz5tG0aVN27NjBjBkz+OOPP5QisICaGSgUTmT16tXOFqHMcurUKQYOHMjOnTt5+OGHWbhwIXXr1nW2WC6LmhkoFE4kKCioXKxuLUlycnKYMmUKLVq04MCBAyxZsoRff/1VKYJCUDMDhcKJLF26FICXXnrJqXKUFQ4cOEBkZCT79u3j8ccfZ86cOdxzzz3OFqtUoGYGCoUTWbp0qUEhKIrP7du3GTt2LBEREVy4cIFVq1bxww8/KEVQBByuDIQQ3YQQJ4QQcUKIdy0c9xdCrBdCHBBCHBFCvOxomRQKRdkhOjqa1q1bM2HCBAYMGMDRo0fp06cPQghni1aqcKgyEEK4AXOA7kA40F8IYe7Gfw04KqVsCXQGpgkhSmdFaYVCUWLcunWLkSNH8q9//Yu0tDQ2bdrEV199RWBgoLNFK5U4emZwHxAnpTwjpcwClgO9zc6RgJ/QqfGKwHUgx8FyKRSKUsxvv/1G8+bNmTlzJkOHDuXw4cN069bN2WKVahytDIKBC0bb8Xn7jJkNNAEuAYeA16WUWvMLCSGihBAxQoiYxMRER8mrUChcmBs3bhAZGckjjzyCp6cnO3fuZPbs2fj5+TlbtFKPo6OJLBntpNn2o0As0AWoB/wmhNglpUwx+ZCUC4GFABEREebXUChKJRs3bnS2CKWGtWvXMnToUBITE3nvvff44IMP8PLycrZYZQZHzwziAeOE7SHoZgDGvAz8IHXEAf8AjR0sl0LhEvj4+ODj4+NsMVyahIQEnn76aZ588klq1KjBX3/9xcSJE5UisDOOVgZ7gQZCiLp5TuFngJ/MzjkPdAUQQlQHGgFnHCyXQuESzJ07l7lz5zpbDJdESsnXX39NeHg469evZ+LEifz111+0adPG2aKVSRxqJpJS5gghhgG/AG7AF1LKI0KIV/OOzwfGA0uFEIfQmZXekVJec6RcCoWrsHLlSgCGDh3qZElci3PnzjF48GB++eUX7r//fpYsWULjxspg4EgcvgJZSrkR2Gi2b77R35eARxwth0KhcH30ieXeffddpJR8/vnnDB06FI1GrY91NCodhUKhcAlOnDjBwIED+eOPP3jkkUdYsGABderUcbZY5QalbhUKhVPJzs5m0qRJtGzZkiNHjrB06VI2b96sFEEJo2YGCoXCafz9999ERkby999/06dPHz7//HNq1KjhbLHKJUoZKBROZMeOHc4WwSlkZmby8ccfM2XKFIKCglizZg1PPvmks8Uq1yhloFAoSpT//e9/REZGcuLECV5++WWmTZtGQECAs8Uq9yifgULhRKZOncrUqVOdLUaJkJqayvDhw+nYsSOZmZn88ssvfPHFF0oRuAhKGSgUTmTDhg1s2LDB2WI4nF9++YVmzZoxZ84chg8fzuHDh3nkERVR7koUqgyEEI8KIfpY2P+sEOL/HCOWQqGwB1qt5EziLaJPX+NM4i202pJN63X9+nVefPFFunXrho+PD3/88QczZ86kYsWKJSqHonBs8Rl8BPSysH8rsBb4za4SKRQKu6DVSjYfSWDUylgys7V4eWiY3rcV3ZrWQKNxfOGX1atX89prr3H9+nVGjx7NmDFjVD4hF8YWM5GPlDJfzmgpZQLga3+RFAqFPTiblGZQBACZ2VpGrYzlbFKaQ+97+fJlnnrqKZ5++mlCQkLYu3cvEyZMUIrAxbFFGXgJIfLNIIQQHoC3/UVSKMoP3t7eeHs75md0JSXToAj0ZGZruZqa6ZD7SSn58ssvCQ8P5+eff+aTTz5hz549tGrVyiH3U9gXW8xEPwCLhBDDpJRpAEIIX2BW3jGFQlFMNm3a5LBrV6/khZeHxkQheHloqOZn/xH62bNniYqK4rfffqNjx44sXryYhg0b2v0+Csdhy8xgDHAFOCeE2CeE2A+cBRLzjikULoOzHaauRJ1AX6b3bYWXh+5nrvcZ1Am0n3U3NzeXWbNm0axZM6Kjo5k7dy47duxQiqAUIqS07ccihPAG6udtxkkpMxwmVSFERETImJgYZ92+VKPVSs4mpXElJZPqlbyoE+hbIs7EksDZDtPiMH78eADGjh3rkOvrv++rqZlU87Pv933s2DEiIyOJjo6me/fuzJ07D61vYJl8t8oKQoh9UsoIi8cKUwZCCPM14hK4BsRKKVPtI2LRUMqgeJTGzrIonEm8RY9Zu/KZRTaO6EhYVdcMZezcuTNQutJSZGdnM2XKFD7++GMqVqzIzJkz6d9/AL8cvVJm362yQkHKwBYzUS+zf/8G3gIOCiG62E1KhcNxVnRJSVHSDtOSoqRNXwXdb9++fURERDBmzBgef/xxjh07xnPPPce56+ll+t0qDxTqQJZSvmxpvxCiNrASaGdvoRSOoaDO0lVHzkWhJB2mJUVJz+as3e/BMH/Gj/+YqVOnUq1aNdauXcvjjz9u+FxZf7fKA8VORyGlPAd42FEWhYPRd5bGlPbO0hhLDtPZA1ojJaXWoVzSszlL93v102U0a9GCyZMn89JLL3H06FETRQBl/90qDxQ7a6kQohFw246yKByMvrM0H/XZM7rEmWg0gm5Na9B4REeupmZSo5IXRy+n8tjnu1zWjh0YGGiybe7gT0q7XaIjbuMRvvZ2Ojd+X8qtvzdyT63abNmyha5du1r8XFl/t8oDtjiQ16NzGhtTBagJPC+l/NNBsllFOZCLjyOjS1wNWxzKrhRdZclEM/mpFkz/7QTnku4E79niFC9uu/TP7MbxPST9Mpfc1GsEtOvNzuXzaVaneqHyl5d3q7RSkAPZlpmBeX5dCSQBp6SUWXcrnKJk0WgEYVUrlkk7blFH1a4WXWXJRPPOmoMsfD6CqGUxNo+476ZdFWUG98Qu4cSGNXgEhhL80jTmjXqG8NBqhcpflt+t8oAtDuTfLe0XQvxLCDFASvma/cVSKIqGtVF17UDvfKNqvR3bmj2+sZ1CUW0Znb/33nsATJo0yaoT1sNNsDHP9GXLiLs47ZJSsmrVKoYNG8aNGzcY/ua79IkcRkiQvxrhlxOK5DMQQrQCBgB9gX9Q6SgULkJxRtWOjICxdXQeHR1t+NtaNFT1Sl5FGnEXtV2XLl1i6NChrFu3joiICLZs2UKLFi2K2mRFKceWegYNhRAfCCGOAbOBC+h8DQ9JKT93uIQKhQ0UNqpeHtWOjSM6mnTG1iJgqlb0uuu4/uJEAd1t+gj9+oCM7Fxe71qfmv53Inn07TJGSsnixYsJDw/nl19+4dNPPyU6OlopgnKKLTOD48AuoJeUMg5ACPGGQ6VSKIpIcUbV1iJg/km6xbDv/r4rP0JBo/M6gb4G81Fmdi5eHm5A/miogkxC5iao0AAffj1mugL49a4N+Dr6HDfSs3i9awP+SbpF3SDd9c6cOcOgQYPYtm0bDz74IIsXL6Z+/fr57lMYejmS0m7j6aYhPSvX6Y54RfGwRRk8BTwDbBdCbAaWA+pbVhQbR0TwFBTaaO1+ljpfjYBuM3fdtR/BmnKqUcnLxHx0NT6Z+tV0zmy9TAWZhLRayT/X0jh2OYVTV1NZGRPPjfQsFj4fkW8mMnPrKT7t05LjCalsOnSZjOxqSK2W33/4mumTPsbd3Z0FCxYwcOBANJqiLznSm8Imbz5Gv4hQZm075RKOeEXxsMWBvBZYm5e2+nHgDaC6EGIesFZK+atjRVSUJRwVwWNtVA0UeD/zzjf69DW7+BGsKadcLSadtqZiIGczBXvPXqeqX4UCFaOlZzeiSwOW7T5HzLnrFuU+cSWVH/bH83z72ny6YguXfppB1uUT3NvpYVYv+4LQ0Fo2t8kcvSks8oEwgyLQ39eejnhFyWCzAzmvlsG3wLdCiCrA08C7wK8AQogAKeUNh0ipKDM4MoLH0qj6TOKtIt3PXiktrCmnPf8kmVw7qNdbAOyKu8biXWcKVIyWnt2sbaeIfCAMrcSi3FLCv5tX44NxH5H0x3I0FXwI6vUfklt05oaoyMXT14o9O9ObwoRApaIoAxQrHYWU8rqUcoGU0jhR3VY7yaQow5R0Mrmi3s+eNQD0yql9WBBhVSui0QirTmsp8zuZzRPGWVs3IQSsP3CRyU+1MJF7wuPN+P7nrcwa/hRJO7/Bp9G/uGfgPHzDH+R2jmTr8av0X7SHHrN2sflIQpEd5cZtcUYqClW7wr4UOx2FBZRxUFEoJZ1Mrqj3K4oTtziYm49Sti8iLKQyP/g8D5g6mW1dN6ER8E63JjzSpDrNg/25mpqJn5uWJTMnc2DODAKrVSe474e4173X5HO5eY9Er4SCo9oXyQGsb8vkzccY0aVBPp+BI1NRuNqCwbKAzcVtCr2QEPullG0s7O8GzATcgMVSyk8snNMZmIEu8d01KeWDBd1LpaMovbhKFk5ndhp6h/a5pDQG9evF1dTbVOk7EbiTagKwmErDfN3ExCea0ya0MqFV7nTeO3bsYODAgZw+fZrBgwczadInRMdnWPQ1XE6+M0N665GGTP31ZJGekb4t19Nu41GC0USlsXaFK3C36Sju5sZuwBzg/4B4YK8Q4icp5VGjcyoDc4FuUsrzQojC170rSi13Ez5Z3A7G010Q1UlnV9cI3fbdcjey6c1HdQJ98fF0JydX1yEbj6jNfQtQ+Grk5ORk3n77bRYuXEi9evXYtm0bDz30EADd/P0Nz9xdo+HNVbEmisDLQ0No3kje3K9SUFudlYJCpcy2P442E92HrkTmGQAhxHKgN3DU6JwBwA9SyvMAUsqrdpRJ4YLY0oHczYjeuPPy8XRn/IajRU70Vtj17THb0GgEVXw9aRHiz4yodiade1HXTWzYsIFXX32Vy5cv89Zbb/HRRx/h4+Njci/95/aeTeKV++uSlJ6FVoKbgCo+nly6mW44vyBzlT1nVsVVqmWxdoWzKXY9AwAhxHmjTUu5bYPRrVjWE5+3z5iGQIAQYocQYp8Q4gUr94oSQsQIIWISExPvRmxFKaC4efz1HXWPWbvov2gP/RZG0y8i1GQ17t06rO1dY8DLw83EyQy2O7ITExMZMGAAvXr1wreSPwtXbWLI2x/i5eVt9X5VK1bgdq6WhTvPMHtbHAt2nuF2rhZji7G+Y7VnW80dvjk5WraduMKPsRf53+kk1sVeZNuJKzY5gu3p6FfouNuZgUGFSymvF3TcCPNv2h1oi06ZeAPRQojdUsqTJh+SciGwEHQ+g7sRWuFaWBodFtcMUFD45ZztcYDl1AxFwZ4mioYNG1rcX5g5TUrJ8uXLGTFiBMnJyTw79C32+ndk/F/ZfPr3rgJH77lamP7bSZNnNP23k7zetQFgm7mqqG21NJua0a8V56+ns3DnGZNV0/WrVqROUMV8nzd/R6w9H1dKS16auFtlUFinHA8Yr2oJAS5ZOOda3jqGNCHETqAlcBJFqaI4P0JrJpdG1f2KZQaw1lG7ae5c4/WuDQzbxcGeJoqFCxcaRsyWVkhbMgnFx8czZMgQNmzYQLt27Rj36eeM/PUaty2spTBOfaG/9tVUy8+ocQ0/lttoripqWy0p6aOXUwyKQL9v5tZTtAkNMFEGBZnlzJ+PKwYMlBYKVQZCiFHWDgGFDQ32Ag2EEHWBi+jSWgwwO2cdMFsI4Q54oqup/Flhcilci+L+CK2ZITa/3rFYlbOsdV71q/kxrEt9pISvo8/ROrRyvtGneXusKTbjkMqn29aiql8Favp7IfI+V5ROp7DnptVKzl9PI+lWFmm3s1n93Vd8MX0Cubk5jHh/PMOGD+dmZg6Z2aautsxsLdfTbnM8IdVmRVs70Def4rFXBTNLSlorLS9WS8/KMdlXlIWKjk5LXpaxZWbgV8CxmQV9UEqZI4QYBvyCLrT0CynlESHEq3nH50spj+XlPDoIaNGFnx62TXyFvbjbqXVxf4TWRvIJKZnFive31Hm93rUBkzYeM0TPFDaytdZBP9KkOudvpHMlJZPQKt683rUh7689ZHKf8Hv8CKmsG33rn6P++RgnldNfZ+rYN9l6/CqVHxmW77nVCfRl24krXLqRwT//nGHy6FFknDuIT52WTJ0xm5gkD3rN+dPq+gMPN81dK1p7rbuwpKTdhOVV06FVTOUoillORRkVH1tyE31k7ZgQYqQNn98IbDTbN99s+1Pg08KupXAM9phaF/dHWJAZojhhi+adV9WKXvyTdIsb6VmGaxc2srWk2CZvPkZ2rq5GQma2lhFd61s0cXzWt1W+msue7sKQBbV2oDfDuzRgzI+HyczW4n7kGJk37nTiNf29eLJNCCevpJKamcPxSzf5ZcUX/PzlTNC4U6XbcCq2eITPY1KZPaANx6/cslq3IT0rN993EuDjyZWU21T182SFjYvM7BE+aklJNw/xZ9rTrXhzlel7VzfI9LspiqlKRRkVn7v1GYxCt1hMUYqxx9S6uD9CRxRSN47jP5uUhq+nOyuiOpCdm0sV3wqFOhotKbaeLYINigCsmziOJaTke45RncIM+3q2CDYoAtA53TRC1wnX9Pfi+fa1DSt5xY1zuP2xkNNHD+Bdvx1VHhmCu1+Q4doH42/yZJsQ5myPs7j+4GxSmsl3UtPfixc61ObFL/8yedY1/b3Y80+SQ52tBSUSbFKz4FlHUd4RR7xP5QW7RRMpSi9FHdVb6kSL+yN0VPoHa7OdNqFVADh99Va+NND62ZBFk4Ymf+dvSfnlmp5CZrYW40hJ86Ruiam3CQnwRuOh4ck2IczadoqMjNskR68kefdKKvr58/z709kjGnE7586F9PcSeaYWH0+3fErN/Dt5OiKE5XvPE/lAGHn6h8mbj9G7VTCztsY53NlqbYZR2KyjKO+Io9OJlGUcHU2kKAUUZVRfkEmpuD9CW80QRfFrWJvtNBrekRNXTJ2qI7o0YPPhyxxPSMHPyw1/Lw+m9mlpoijurV3F5Bmt2RfP610bMHPrnXw8H/QMZ8HO0yZyeHlo8PV0y7dPf52sHC1XU2+z8pnWVPDQcP54CqumjyH5fBxtuvyb/iNG07BOMB1uZJjc642HG/LdX+fo3SqYCY83Y8TyvzmXlJGvQzf+TrJztXi5u5nkEBrbM5yKnm4M61KfNfvi79rZ6qiwzqKYqpy1Krq0U2huIiFEKpY7fQF4SykdmtLCEio3kX0pis/AWTlhbJHRuCPSCMHIFaYpFwC+fCmCId/uzye/PjrIvEiLPvdPSGVdJbHJm4/Rs0Uwbhpofo8/Sbcy8fepQBVfTyp5u7HrVJIhhl/vVG5VqzIvL91r0WeQsn0REbUD6PnKKMaN+4Abe9bh7hfIGx99yp6cUM4lZVA70Jv/PtEcKXWzuITkTFbtu8DrXRvSsHpFXvtuv00rrA9cuEG/hbvztT3ygTCW/HHGkK/os34taR8WZPLsjVd0Z+XmEuibv/aCCut0fe4qN5GUsqBoIkUZoChTa2smpetptw3H72ZEaG1kWdBIv15epTDzjkhf9tE4isjH092i/McTUujZIjhfkZb31x5iRVR7QqsImt7jR1SneozfcNRkZB1+jx+1A3VpHrJytHzUqyk+FdyJv5HO19HnaFWrsok9PzTAh1oBPuyKu4bXI5+S/k8sb/V/hOybCVRs3YOAB1/ip+sViXwgmDnb4ziXlMHAr2L4eXhHgit7czU1kx7Na1In0Jd956/Ts0WwweyzZl88l5Mz85XXrF7Ji7Tb+R3Kmdl36hHM2naKqE5hJjNCawV1VsSc551uTUw6ehXWWbqxZZ1BFbNdErgp7ZXuVOES2Dq1tmRSqh3ozcWbmTy35K+7GhEWNLK0poSOJaRQN8jXYkc0c6uuczO2h1evVMGqrd9akZatx69y8WYmgb6eBkWgPzZ+w1G+evk+agX4culmJrO3x5l0mp7uwmI+oap+FVi7+wRe+79n27rluAfcQ/UBn+BVq5nh2kKYynH+ehoPNqxmuE5Ojpa027m4aXQO7fUHLvJ8+9qsiDlP1Ype+Z7loucjLLZd/0vOzNbSsLqfSanQxNTbVld0m3f09vA9qRmE87BlHeY+ICbv/33AfiBRCLFFCFHHgbIpXBBLOWHG925uEmmjHxEWNX9NQXlwrBWFOXkl1ai4fP6OqHWtyiyPasfGER3p1rQGoVXyyz/xieZsOHjRsG1M7UBv6lfz43hCCskZ2RbvkZ6Vw6GLN/M9g1nbTjG+d3ODE904N8+vGzdwck4U29Ytp3poPepGzTEoAr0c5rmC/r5wk81HEsjJ0XL22i1+OniJV7/Zx6ytcSzedYZ+EaGsiDnP+N7N0QjyPcsx6w7lK4AzoksDftgfb9huUqMSgCG/0644y2VA9YrTOMeTte+oIN+TPodUcQvsKOyHLWaiupb2CyGeBOYD3ewtlMJ1sWRSstdCn4Kuc1+dQCY+0dxkkZfe8fuvekFkZOfyetf6rIyJNzELWVpVay5/aIAPXh5uJkVaAnw8efn+2lT2qcDbqw+Qma3l9a71LY6sAXadstxpergJQxjr5iMJjPhiO5c3zyf9+C5qN2hCpkcl0t28+eDRZia+io97N2PO9lOGe+jt+TfSs1j4fAQx567nW+egH7F7uAmOXErJJ8+5pAyCK3uxcURHrqRkkp0rGbvuEJeTM01i/M2VsrXZhHlHX5SIMmVScj2K7fyVUv4ghBhjT2EUpQNjk5JWK0nNzLHLQp/CFqC1rlXZUJdASth8+DLdm9c0iZvX+wn0oaLWVtWam226Na1B4xp+XE+7zfJB7TlyOYUrKZlM33JnTcDKmPwRRCO6NGDc+iO89Uhji7JXr+SFVis5GH+DyLHTufrLArTZGVTu+DwVHniaahvGc/FmBst2nzOEfDau7kd1/wpMfKI50Weu4+vpRq5W8lTbEACOX062us7BTQM+nm7svppqkEe/kM1NAx5ubtTJU5BareTLl+7L5ycyVspr9sXnq2Km9xmYP1/zgUKNSl7karG4hkGtFHY9iq0MhBAVucsU2IrSjX60a6+yh4WNLIUAbw83Q2c8omt9w99wx0/w1cv3UdUvf7SLsdzmtmo92bkSDzfBwp2n6dUy2KTDupycydfR5/i0T0tOXElFSgzVwi7eTLf4DEIDfPh6SwyTx7xFwt6dVLinMYHdX8cjqBa3taCvs3M5OZM523W+jc/6tuKtVQf4z6ONWX/gIv0iQk18EWN7hqPF8og9onYVsnK1rIzRdeLbjifwygP1OJ6QglbCiOX7TRy/lvxExkr5cnImy3afI6pTGM3v8ad6pQpk5Wrp1qyGxedrvOCvoMgitVLY9ShuoroA4N/AbLtLpCg1GE/19SNbNw10bVyN5sGVi+wMLCyqSd8Z60fQwf7eVm34V1J0tmdbwx+NU0boR78Sma/DupGexamrqczeFmfY5+WhITUzlx/2x5s8g6Y1KzFp+iw+HPs+7gKqPTIYr5Y9EBo3w+c8Pd0NK5D1axXm7dBFEF1Pu8343s0NaSb07Ru/4SjDHqqfT/lMfqoF94cFcv5GOjfSs9h8+DLPd6iTLxLoiz9OE1zZy2oqCnOlfCM9Cy93NyZsPJovgsiWd0Mvt7EZSK0Udj2Kk6hOAgnAc1LKQ/YXSVFaMJ7q60e2APfXCyx2VEhBUU3VK3lxIz3LcJ9hXSzb8P++cNMQQTT5qRbcU9kLTzc3snJz8bSSvM04ZYTe/v561wb5OtzxvZtR2cfDcF8vDw0THm/G59tOcTk5kyV/nGF631ZUSLtKly692bVrF161W9H46TcZ1KN9vgVf359rScu2nvQf0JrUzByupd0m8VYWtQO9cdNoiDl33aLCy8rVsirPbFUn0Jcqvp5Ur1TBZOXx8YQUxq47bNKuFTHniepUz7DewFLkl14pB0e1Z+vxq+Rq78yARq2MJTiqfaHKvjAzkCXFHxrgo6KLnMhdJapTlD/MFyCV5FTffDS5/sBFJjzezLCAy9hnALrO5501B00WVblbSCuRmW2aMkK/LyM7l1Ux8UR1CiM0wIeElExmbz/F021rEdUpjIbV/Whc3Q83jeDDXk3xreBOoLcba75awFPjxuHl5cXkmXNZcrU2N3KkyezpvrpVGL32EFlN+vBYh9qMWnXApA26xWR/M7BjmMVn/HDjanSsH8TllEyOJ6TkS6nRrWkN/LzcyNWGmaxB6NkiOF94rCXHrUYjSM/KZdbWuHzPRR9qW9AMwRYzkLnvSS1Ycy62rED+EutpJ6SUMtLuUhWCn5+fbNu2rcm+vn37MnToUNLT0+nRo0e+z7z00ku89NJLXLt2jT59+uQ7PmTIEPr168eFCxd4/vnn8x1/88036dWrFydOnGDw4MH5jo8ZM4aHH36Y2NhYRo4cme/4xIkTuf/++/nzzz95//338x2fMWMGrVq1YsuWLUyYMCHf8QULFtCoUSPWr1/PtGnT8h1ftmwZtWrVYsWKFcybNy/f8dWrVxMUFMTSpUtZunRpvuMbN27Ex8eHuXPnsnLlynzHd+zYgVYrGfSfD/l+9Y9opcTLw43gyt6cS84mqM9HeHloaHVtK5ePxpjEyAcGBrJmzRoA3nvvPaKjo02uXTmoBu9Mnk31Sl7MnDCaAwcOmBxv2LAh8+cv4GxSGm8MH0r82dOkZuaQq5V4umsIqt2I3kPep1F1P1556QVSk66YfP7++ztwpk5vvDw0VImeTeypC2iN3vuKYa14f/QYZm2N48rKD5E5t9EIQaMafqRkZtPkvs4khT3K5eRMEr57l9AqPuTm1S3w9XQnLTiC7EaPoL16ksQVY8lMTyMoKIgGDRrg6elJiy69+TW7MWnJN0ha9wm1A324nJxJZnYuwZW9yajfBc+GHclJSeTahmlohKBhdV04q6e7hmcjh7I9M5TUhPPc+HUO9ar6ghCcvnoLrZRU7dif9wb2Zf4PW4n7aQ4tQvzx8nDj2q3bnElMo1LHF6hctyk9q6Wybsk0LlxPN3k+VbpG8cPY/tw6E2vy7mVm53IwPpmAR17DIzCE9Lg93Nr7IzX9vbicnGm4j7V373paFnFXbxHY+118/QPoXuEEf2/50eK7l5CmpcML75B8ZKdhv0YIWoT4s/t/uwCYOnUqGzZsMPmst7c3mzZtAmD8+PFs3brV5Hhh715ISAjffPMNACNHjiQ2Njbfu7dw4UIAoqKiOHnStOZWq1atmDFjBgDPPfcc8fHxJsc7dOjApEmTAHjqqadISkoyOd61a1fGjh0LQPfu3cnIyDA53rNnT9566y0AOnfujDlF7fd+//334q9ABjZY2BcKjERXo0BRTjiblMb6A5cMHWlmdi4Xb2bQqGYV+ucVjpkzfSU1cnLx8rDt1bielsX+pKvELtqDl4eGxknp+c6R8s6o8eLxq+TeSCUkwJvkjGzuqezNkUvJXNgWx7Au9bmdYzrq1whhGMpkZmtJu51DaBUfcrRaJLqcKg+0qJnXsWkMnwmr6kva7Rwu38zkelwS/oH6cFU33DSC+BsZaKVEIwSP3VeJ6D3fcfH35SA0NGjUmHtqVCczO5eUjGxqBXizuHsE22JP89UOXXRRZnYuAAnn4si5lkzNhh0NMmulJDtXi0YIsnK0bD+RSOSznUm6CL8e9CPtdg4X8u4PkJUrmbXtFN2bVOfkOklWXra8M4lpRt+VllX7LhBYQeejMFaGnu6Can5e3DJ77l4ebtSvVpFbHhq0gKebhpAAbxJSMtFK3X3037NWK7mSkklKRjae7hq8PNyo4utJixB/xr3Qloa1g9mxPoG/rbwHV1Iyyck1HXPq76EoGQqdGZicLEQY8D7QCV01siVSyiwHyWYVlZvIOUSfvkb/RXvy7R/Wpb6JQ3V5VDuT3DbWsDXPkbXzpvZpyae/HjfkEwrw8eSFDrXzhX7q7d16E4ybRpjkDzIuXKO3X2sEvPjlX/lyFc0e0IZh393JbZQZf4wbm2eRlXQB32ZdCegykLVv/B9XU7NMTB6Tn2pBq1r+XE7OxNvDnX4Lo3WhoJs+4vLNTKr1n2TStsUvRpCSkZPvGtN/O0GvlsEmz9v4e1i864xhHYGl72rVq+1JNJOtIHOMVis5dPGmwXfww/54w7PUf0/GJp4AH0+ejgihYTU/mtSsRN0g2+z+zsp5Vd64q9xEeRdoAowGWqMrQvOqlDKn4E8pyhrW7MDmK2Vt9RnYGmtu7TyNRreQyjhGH2DZK/dx63YOmdlaPtl8zNB5jeiiK/huXgx+1MpYQ6ejv69WK3mnWxMmbz5msPO3rlWZU1du6XwMWRnc3Pk1qfs24FYpiIH/XcRvKTXx8rBcYUxfgOaB+jolOfmpFryz5iCXjFJYG3f67evonPDGDtaktNuGhHSWvgeNwCQix9I5gb4VaBtaxebsshqNoHlwZS7ezLQa+aOPHArw8TSpx2Cc6C+0SsFKQUUXOR9bQktXARHAVOANIBeoJPJ+eVLK644UUOE6WPrB6iNpwLYqYsbYGmtu7bzgyt54eWhMIpn0o8m2tauw7cQVercKxl2jISzIF08PDe5C2KSADNEuNfwMnWaIvzeVvDzIPR/L5Z9nkZtyFb82PanR9SV6PdaBJldTuTcvzt/SPWLOXSckwJuwqhW5p7IXr3dtwNxNvkgkU/q2JO5qGu3qVuHeOlUMHad5ZFXtQG+83DVMerI5Z6+lGRzHY3uGk5aZTXhNP4u1DIy/m6KmeC4s5FevrPX1GIyV4PtrDxHVKYzGNSoV6AxWdQicjy0zg3vRWV3fAt7M26f/hiQQ5gC5FC6ItXDANqEBxfoB2zoatHZe05r+FvfrQxT9vT3o2riaSTy9efUv0CkQbw83ok9fMwlpNO40c3K0/PL3af77wbvEb/4Bz8AQgp6dTOW6zRnfuxnTfj1uqCdgrSZxrhaD0qlasQIApxN1TuBRKw/wetcGhvBQS4QG+Jikv9aHp6ZkZDN7W5zOqVurMnWCLIduFvTdFJY0rrCQXy8PjdVEf1qJTakmVB0C51Ikn0GBFxKiqZTyiF0uVgjKZ+Aa2CPrpP4ahXVY1s4z3x8aoKs7YM0mbimEUT+70Xfm5qYNrVby/meLmTruHXLTkqnVuR+zpvyX+JQc2ocF8uaq2Hwd//zn2vLqN/vypXD46uX70EpdhbMXv/yLhB3fAlD5X/3x8tDwc15KbktYs6tP6dOSSzfTCansg28FN2rnVZ6z9bu427BO/edPJKSwwChfkl6+yAfCmLM9zmZfksJx3LXPwEaWAW3seD2FC2OvuHDzWHNrysXaqNF8/5nEW4UmQPN0F4YcRxoB6bdzyMq5E3VjbNpoFQiRg4ewecM6PKqFUa3PODTV6/HuuuNEPhDGtVt37Pj6HED6tBlfvnQv0WeSyNXCipjzjO0ZztHLuiprAzvqFrlV/ld/Q1sys7Uk3sq0qgys+U7OJ6WhEYK3Vh8o8nehdxAfT0hhYMcwQz2EoiSN089Cwmv6UTvQN18ywWW7z5XKVBPlLcW2PZVB2X1KinzYO+ukvZRLYU7ps0lphrQTeoxHr/rzc7WSyNFTydj1JRnp6VTu9AKV7nsS4eZuOMdNAzX9dX6LAB9PXrq/Dp9t0TmnF+86w7SnW/Fk62ASUjJ5qk0wUsJjn98Z2Rd1wZ4130looK8hs6peNv13YV7gxrhDs1a4Rh99VZSkcRqNoE5QRUKr+NIypDLHElI4eSXVkGm1tDmDy+MiOHsmmlOJyMsRBXW6xaGgWgZFobCc+tbkNl4k55aWyOLRg0hYP53a9RqwYfv/qN7pGYMi0F+zQ1ggTar7Mb1vK17oUNugCPTXfHNVLFdSbhvMWldT82cDvbb6Q66s/NBgrgoN8LHaNku1JEZ0acClm+kW23QlJdOkZsDLS//ij7hrRJ++xpnEW5y/nv+Zz9p2iifbhJg8M+M6DGcSb6HVSov7QKcU6lWrSI9mNXm8VTCf9WtpqCVRmjpRe72PpYkSr1+sKBvYO+ukvVIaF+aUtia3RoCUWjIPbCL596/I1mqp9ugQ1nz1CWFV/ZjuZzpKHNsznNNXUwGo7OWBe9WKFuXfFXeNxbt0+YrCa/rlywZaw1eDp7sbk/u0ZOqvx2kTGmC1veZOYW8PN0Ys/5teLYMN1zVOV+3ppmHy5mOG/f0iQg1J7/S+kQAfT5M60foZj/6ZWRohzx7QmqwcWeCoubQ7g8tjim17zgxKfPGZwnasjeSKi6VR6t2YAopSJasg9B3mxhEdTSqc6TspS3K/8XBDMq+ex3vzx1z9ZR7N2t5HxJtf8OWnYwmr6me45oqo9rz1SEOm923F2v0XSMnM5eWlexmwZE/eatz88kt5Z1SZkytNKo3dSM9CIwSXbmZwPCGVc0kZhc6s9J1s+7AgmgdX5p1uTVh/4CIjujSgdqA3z7evzZI/zjBraxzPLtnDsIca8FDDIKthn09HhJhcv3agN50aVCXAx4OzSWkWZw8H45MtjprPX0+z6zvmTOz1PpYmbFln8JyU8pu8v/8lpfyf0bFhUsrZAFLK9o4TU3E3OML+ae+4cHsuOipoVGos98krqcSeS2LG1MnE/bIUrVsFAh97g9RWDzOlT0seaVLdZKSbnpVLRl7HF/lAmEnnGn8j3WLhm2W77yTNO34lle7hNQjw8STm3HVytfDf725Tza8CP+yPL3JnY7wW4nrabe6rW4Xnluwx6aTHrjvMnAFtOHstzeJIt2G1O7OV2oHeDO/SwHAN49kDYHCON6jml29GEeDjyf7zN02cx6XZxl4eF8HZYiYaBXyT9/fnmEYMvYKqaeDyOKrEoD1NAY5cdGQpKiSsakWOHDrAuMgXuH3lDBWbPEDlroNx8w3gdo7knTUHaR7sb9K26pW8cNOY1gDW89Wf53ija32m9mlJjlbi7iZYE3PB0IG6Cbh0I5345AweqB9EcGVvjiWkEFTRk4SUTDTFdLIafwfRpy2X3jwQf5MOYYEWzWP+Ph78PLwjibd0Zid9amv9Z99fe4hRDzcgR4vJymJ9dli9Qng6IsSgCPSf1ae7tlY3wZUpj4vgbFEGwsrflrYVLkhpsX86ws5saVb0Se/G7F69gKlTp1IpIJBnPpjFjtumayctPZ86gb7cW7uKiYnJ+LnezMzhg/VHDff5sFdT5v8eZ1i/8MbDDbmedpuwqhWpV60idYN8+d8Tvbl1O4c3X++Yr0QkUKTQRmv+kFwtpGTmMLZnuCF9tX7mMubHQ8x6pjVSQlJalsX3pHHNSkQt22fS0c/ceoqoTmGGuhENq/lZ/OzW41cN55S2mUJp93sUFVuUgbTyt6VthQtSnksMms+Kbv5ziL6PDiL7+kVefvllPv10KhczNOxeEJ3v+VStaPp8NBpBh7BAQ8I448I3T0eE5Mt59NH6I4aQ1cxsLZ9tOcmKqPYm15s0bnSxnbTmhAb4MOmJ5rxnFue/IuY8DzWqyrlrtww5nLzcdSuGe7UM5sKNDP778zH6RoRYfE9ycqXFjr51rcosj2pHNT8vpLQcKqtPOqqfKTQqYFGdwrnYogwaCyEOopsF1Mv7m7xtlYqiFFAe7Z969LMi7e10bu78itT9P+PmX50ZS1fRq0c3Tt7MxM9Lk8/er8tumv967u4aerW4h6Y1KxGXeIupfVpy5loa1StVKDRkNTNbS3pWbr5rWjLjHYxPZqHRat7CTHtareTXY1fYdPgicwa04UD8TcNit+FdGtDiHn8ysnIZtCzGkFDO3L+x+fBlXu/agOV7z9OzRTBuGri3dhVCArwtdvS188xt+vubv2PGPhN9G85fT6NetYIXGCqcgy3KoInDpVA4lLJs/yysU6leyYvc8/u5/PPn5KZcw6/tv6nR9UVad+hoSO0womt9VsXEG0bNUsLX0edoHarL82OOPm/RyBV3OnBrJTjNM7pWr2Q62+jcuTMpGdlkPmRa8EgrLef5sWbaM1YoCclZDOxUj8ysHKY93YpWIZVxd9cYZjWnE2/liyyate0UkQ+EsenQZV7v2jCfI3j2gNYmNaLNBxPm75gGwX/WHDBxMnt5aPDxdC+XC7pKA7YoA28p5XEAIUQFKeVt/QEhRHvgnNVP6s7pBsxEVwhnsZTyEyvn3QvsBvpJKVfbKL/CRlzJ/mmvUWFhnUpSUhLj3hxF/Pdf4xlUi6rPTcG/TlMmP9WCsevuODu1EpPaylC4Gc3cD6NfRGbsZLU1o6uuGIypInETha9QNn6OGiEMET4HL6Yw4ntdGZnlUe1wd9dNcfSzmh0nr1qdxXRuXM2iI/jrV+5jRSHOYON37Oy1Wzxzb2i+2Vb1ShUcFtCguDtsUQbfcSeCKBrTaKK5FJCPSAjhBswB/g+IB/YKIX6SUh61cN5k4BfbRVeURuw5KrTWqTQa/gB/7/yF1157jevXrzN69GieffUNkrNkvroAYLkjL8yMpvfDBPh4GiKG3DXw7cB2ZOVoqV7J9oyuXh5u+UwszUPyZ2Sd/FQL3DS6IkM1/b0MeY6sRfhYUmj69NaWFI2vpxt1An0tKoqdp+4snmtXN7DQ7yq0ii8Nqlc0yQHVoLouXcWef5JsmvUoU1LJ4uhoovuAOCnlGQAhxHKgN3DU7LzhwBp06bIVZRjrHXjRHYuWoqRu3bhG5PP9+f3Xn2nbti2//vorLVu2zPdZ487wcnImK2LOsyKqPRnZuTaZ0eoE+jJ7QGtOXbllMvod9X8NCat6J2uorbMxS2Y8rVay8PkIw5qE6b+d4Jl7Q/k6+hxPR4Tk8ynM3HqKqX1a8t+NxwrMB2TJhzTxieb4eLpx7HKKVXNXUb4rjUbQpVF1woIq5lOGtgQ0KFNSyePoaKJg4ILRdjzQzvgEIUQw8ATQhQKUgRAiCogCCA0NLeS2ClfFWpjrsYQUm0sk6jHuVKSUpB36jRvbv+AaOUyePJlRo0bh7p7/FbfUGb7TrQnNgyvbfH+NRlA3sKJJ0rvMbC3TfztJVKcwwoKKZpKzpDjOJqUZ0kfo00xkZOfyfo8m/GNlEdnJq6n859FGBVYXs+RD0gjoNnMXAT6e+WZJ5ovn9E7g4rQJbAtoUKakkscWZRAihJiFbhag/5u87eBCPmvpl2WuQGYA70gpc4Ww/kOUUi4EFoKunoENcitcEGujwpNXUgmvWalYeYiGLdjM5Q2zyDwXS9M27Vj97Vc0btzI6ufs5VA3TjynJzNbV8zF1jUcffv2zbdPbx45eSXVoAjMy0l+lpdSw/w5NqjmR9zVVNqEFqzYzDtq/YI1fc6kyAfCaFzDj1NXUw1ZTPX38PG8u5RmGo3gkSbVWRHVnsvJmdT096JpTX8TeUvL2piyhC3f6n+M/javKFNYhZl4oJbRdghwyeycCGB5niIIAnoIIXKklD/aIJuilFEn0JeJTzS3mPP+/nqBRfqhS6nl5NYVJHw5Go1Gw0eTP+O5l17hSmoWZxJvFVrb924d6gUlvbN1DcfQoUNNto3NIwM7huHloeGFDrXJyM5lYEddJPeaffF8svlYvkVkr3dtwMQ8E1HtQN9C6w5ba4u+jOj73Rvh7eHGjfQsQ9v0TuC7QR8GW5AJqDyvjXEWd1XpTAhRW0ppNZpICOEOnAS6AheBvcAAaxXRhBBLgQ2FRROpSmelm7PXbvHD3xfRSl0Y5w/7dXV8C6ryZc7Ro0cZOHAg0dHRdO/enXnz5nMkxcMhNmZrjkxLdu3XuzagQfWKdGlU3ab7pqenA+Djo0tdbVzNrKa/F692CsPdXZNv5fCy3ef4qHdTqleswIkrqcTfzGBVTLzJCH5jEUwq1ha+ARyMTzY4gVuE+NvcNmtYq9hmLK/yGTiGu650JoTogM4ktFNKeVUI0QJ4F+iI6cjfBClljhBiGLooITfgCynlESHEq3nH5xetKYqyQGgVXxrXqJSvE/0n6VahfoPs7GwmT57M+PHj8fPz45tvvmHAgAH8cy2NUYt32d3GXFin1K1pDRoN78j562n4eLpTvVKFIo3Ie/ToAcCOHTsAU/PI5eRMUm/nMHtzXL41AVGdwqgXpEtpceFGBrO2xplct6gmFWumM8CiE/husMUEVJbXxrgqtmQt/RToCcQC7wghNgBDgYnoEtUViJRyI7DRbJ9FJSClfKlQiRWlHo1GEF7TzxB2qF/kdSM9q8DRbExMDJGRkRw8eJB+/foxa9YsqlWrBjjOxlyYI1NfzMVeKRbMzSOZOVqL7WpY3c+gOJvUrFQkk4rxTMfH052s3FwCfSsYEviZPy97r0+x1QTkSmtjygO21DN4DGgtpewPPIJuRvCAlHKmlLJ4Za0U5Z7LyZmsiolHShACnmobQoCPp8V8/hkZGbz99tu0a9eOxMREfvzxR5YvX25QBOC4/PP2ruhWGOb1FvSLz4zx8tDQpEYlwyi5bpDttSX0Mx199bN+C6PZ+88NXl76F5uPJJRIDYLCamHYu/aGwjZsMRNl6Dt9KeUNIcQJKeUpB8ulKOPU9PfihQ61861QrWGWruH3339n4MCBxMXFMXDgQD799FMqV66c73qOyr9U0o5Mc/NIjUpeNDIzqU3v24q6QdZTQRRkUrE009Gnoiip0M2C5FW+AudhizKoJ4T4yWi7jvG2lPLf9hdLUdbJ1WJQBHBn0dQj4TUASElJ4Z133mH+/PmEhYWxZcsWunbtavV6Bdm8zyTeKvYq1pJK8mcuo7F5JLSKb6Edva0mlYJqQJdk6KY1edX6AudhizLobbY9zRGCKMoX1mL0E29lciJmJ4MHD+bSpUuMGjWKjz/+GF/fwjtf8w7GHqNMRzsyX3jhRQ5dSqbHLN2Cr6cjQmhYzY8mNSsZfAK2dvS2pG+wNtPRp6B2duimWl/gPApVBlLK30tCEEX5wlKn5J6dyidvD2PdmhWEh4ezevVq2rVrV8BVCsZeo0xHOjI793qaKXmKwHxhWVEUl62Kz9JMR1/zoLAZT0nkClLrC5xHoQ5kIURvIcRrRtt7hBBn8v71cax4irKKsRNRSknWyV1c+3IYP69bw4cffsj+/fvvShFAyTt/i8OJsxdJS75hsWD9qJWxnE1Ks+k61hSf+ef1M52NIzry/aB2rIhqz311A/jypfusKh6tVnL22i1+jL1ocDz3mLXLIQ7nwpzLCsdhi5nobeAZo+0K6HII+QJfAirdtKLI6Dulyk/X4903X2fXls1ERETwxRdf0Lx5c7vcozSMMj8aOZCk+GREz1V3ZR4pinmlKDMd/YzjeEJKkYrtFBe1vsB52BJa6imlNE4294eUMklKeR6dQlAoioyUkiVLFtO9473s/WMHU6dOJTo62m6KAErHKNPLw4361SpaDSG1VXE5KrRWP+MoqNiOvdErq/ZhQYa1HArHY8vMIMB4Q0o5zGizqn3FUZQHTp8+zaBBg9i+fTudO3dm0aJF1K9f3+73KS2jzCq+njzROpjagb75KozZqrgcFfVkPONw9VmW4u6wRRnsEUIMklIuMt4phBgM/OUYsRRlkdzcXGbOnMmYMWPw8PBgwYIFDBw4EI3Glglq8Sgtq1hDq/gSl3jLpBiMp7vtSstRik8/4yhOASBF6cIWZfAG8KMQYgCwP29fW3S+g8cdJJeijHH48GEiIyP566+/6NmzJ/PmzSMkJMTZYrkMZ5PSTGojQNGTzVkKrTVfv6C/l60RQcYzjmW7zxHVKYyG1f1oUqNSketPKFwbW0JLrwL3CyG6AE3zdv8spdzmUMkUZYKsrCwmTZrEf//7X/z9/fnuu+945plnKKh2RXliyJAhgP3j661lIc3KkUVad1FaTG2Ku8eWRHVdpJTbpJTbhBD/SCn/MTr2pJTyB8eKqCit/PXXX0RGRnL48GEGDBjAjBkzqFpVuZmM6devH6BbgWxPm7ylUNOD8cnFiggqLaY2xd1hi7F2qtHfa8yOjbGjLIoyQnp6Om+99RYdOnTgxo0brF+/nm+//VYpAgtcuHCBCxcu2D3yydJMoyQjghSlD1t8BsLK35a2FeWc7du3M3DgQM6cOcPgwYOZPHky/v7+zhbLZXn++ecBXT0De5pjLK2x0IevqogghSVsmRlIK39b2laUU5KTkxk8eDBdunRBCMH27duZP3++UgRFwJ7x9ZZmGs1D/F1+3YXCedgyMwjLy1IqjP4mb7uuwyRTlBrWr1/Pq6++SkJCAm+99RYfffSRoYyjwjkUlMVVOYMVlihq1tKpZsfMtxXliMTEREaMGMHy5ctp3rw5P/74I/fee6+zxVLkYc3xq5zBCksUKWupEKJq3r5ERwqlcG2klHz//feMGDGClJQUPvroI9599108PT2dLZpCoSgmtoSWCuADYDg605BGCJEDfC6l/NjB8ilcjAsXLjBkyBB+/vln2rVrx5IlS2jatGnhH1RY5M0333S2CAoFYJuZaCTwAHCvfo2BECIMmCeEeENK+ZkD5VO4CFqtlkWLFvGf//yH3NxcPvvsM4YPH46bm5uzRSvV9OrVy9ki3DUlUedA4XhsUQYvAP8npbym3yGlPCOEeA74FVDKoIxz6tQpBg0axO+//07Xrl1ZuHAhYWFhzharTHDixAkAGjVq5GRJiocr1yxWSqpo2KIMPIwVgR4pZaIQwsMBMilchJycHD777DM++OADKlSowOLFi3nllVdUKgk7MnjwYEC3zqA04qo1i11ZSbkqtqwzyCrmMUUp5uDBg3To0IG3336bRx99lKNHjxIZGakUgcIEV60mZ2vlN8UdbFEGLYUQKRb+pQL2q0SicAlu377NBx98QNu2bTl37hwrVqxg7dq13HPPPc4WTeGCOKqozt3iqkrKlSlUGUgp3aSUlSz885NSKjNRGWL37t20adOG8ePH079/f44dO0bfvn3VbEBhFVetJueqSsqVscVnoCjjpKWlMWbMGGbOnElISAgbN26ke/fuzhZLUQpw1RTXjqr8VpZRyqCcs2XLFqKiovjnn38YOnQokyZNolKlSs4Wq9wwZozrJf4tahSOK6a4dlUl5cooZVBOuXnzJm+++SZffPEFDRo04Pfff6dTp07OFqvc8fDDDztbBBPKUhSOKyopV8ZxxWcVLsuPP/5IeHg4X331Fe+88w4HDhxQisBJxMbGEhsb62wxDKgonPKLw5WBEKKbEOKEECJOCPGuhePPCiEO5v37UwjR0tEylVeuXLlC3759eeKJJ6hWrRp79uzhk08+wdvb29milVtGjhzJyJEjnS2GARWFU35xqDIQQrgBc4DuQDjQXwgRbnbaP8CDUsoWwHhgoSNlKo9IKVm2bBnh4eGsW7eOCRMmsHfvXtq2bets0RQuhorCKb84emZwHxAnpTwjpcwClmOaEhsp5Z9Syht5m7uBEAfLVK44f/48jz32GC+88AKNGjUiNjaW0aNH4+GhooKdiVYrOZN4i5SMbDKzc9FqXaNOlKuGiiocj6MdyMHABaPteKBdAedHApssHRBCRAFRAKGhofaSr8yi1WqZP38+77zzDlJKZs2axdChQ1ViORfA2El79nIKGiHYfCTBJZy0Kgqn/OLomYGlN8jiEEgI8RA6ZfCOpeNSyoVSyggpZYQqrF4wJ06c4MEHH+S1116jQ4cOHD58WGUYdSHMnbRaKV3KSWvP8puK0oOjZwbxQC2j7RDgkvlJQogWwGKgu5QyycEylVlycnKYOnUq48aNw9vbmy+//JIXX3xRrSB2MYydtJU7vQjccdKqMEiFs3C0MtgLNBBC1AUuAs8AA4xPEEKEAj8Az0spTzpYnjJLbGwskZGR7N+/nyeffJLZs2dTs2ZNZ4ulsIDeSZuZrcUrpAmgnLQK5+NQM5GUMgcYBvwCHANWSimPCCFeFUK8mnfaB0AgMFcIESuEiHGkTGWNzMxMRo8eTUREBBcvXmT16tWsWbNGKQIXxthJmxl/DJlwXDlpFU5HSOkaUQxFISIiQsbEKJ3xv//9j4EDB3L8+HFefPFFpk+fTpUqVZwtlsIG9Ckf+vR6FE83DX/u2qls8wqHI4TYJ6WMsHRMrUAuhdy6dYsRI0bQsWNH0tPT2bx5M0uXLlWKoBShd9JW8vLAy8NNKQKF01HKoJTx66+/0qxZM2bPns1rr73G4cOHefTRR50tlkKhKOUoZVBKuH79Oi+//DKPPvooXl5e7Ny5k88//xw/Pz9ni6ZQKMoAShmUAtasWUN4eDjLli3j/fffJzY2lgceeMDZYikUijKESmHtwiQkJDBs2DDWrFlD69at2bx5M61atXK2WAo7MmPGDGeLoFAAShm4JFJKvvrqK0aNGkV6ejqTJk3izTffVPmEyiBKuStcBaUMXIyzZ88SFRXFb7/9xgMPPMDixYtp1KiRs8VSOIgtW7YArlfkRlH+UMrARdBqtcyZM4f33nsPIQSzZ89myJAhaDTKrVOWmTBhAqCUgcL5KGXgAhw7doyBAwfy559/8uijj7JgwQJq167tbLEUCkU5Qg07nUh2djYTJ06kVatWHD9+nK+++opNmzYpRaBQKEocNTNwEvv37ycyMpLY2FiefvppPv/8c6pXr+5ssRQKRTlFzQxKmIyMDN577z3uu+8+EhIS+OGHH1i5cqVSBAqFwqmomUEJsmvXLgYOHMjJkyd55ZVXmDp1KgEBAc4WS+FEFixY4GwRFApAKYMSITU1lXfffZe5c+dSp04dfvvtNxU9ogBQYcMKl0GZiRzMpk2baNq0KfPmzeP111/n0KFDShEoDKxfv57169c7WwyFQs0MHEVSUhJvvPEGy5Yto0mTJvzvf/+jQ4cOzhZL4WJMmzYNgF69ejlZEkV5R80M7IyUklWrVhEeHs7333/P2LFj+fvvv5UiUCgULo2aGdiRS5cu8dprr/Hjjz/Stm1bfv31V1q2bOlssRQKhaJQ1MzADkgpWbJkCeHh4WzevJkpU6awe/dupQgUCkWpQc0M7pIzZ84QFRXF1q1b6dSpE4sWLaJhw4bOFkuhUCiKhFIGxSQ3N5fPP/+c0aNH4+bmxrx584iKilKJ5RRFYtmyZc4WQaEAlDIoFkePHiUyMpLdu3fTo0cP5s+fT61atZwtlqIUot4bhaughrFFICsri/Hjx9O6dWtOnTrFN998w4YNG9QPWlFsVqxYwYoVK5wthkKhZga2snfvXiIjIzl06BDPPPMMM2fOpFq1as4WS1HKmTdvHgD9+vVzsiSK8o6aGRRCeno6b7/9Nu3btycpKYl169bx/fffK0WgUCjKFGpmUAC///47AwcOJC4ujkGDBjFlyhQqV67sbLEUCoXC7qiZgQVSUlIYMmQInTt3RqvVsnXrVhYuXKgUgUKhKLMoZWDGzz//TNOmTVm4cCGjRo3i0KFDdOnSxdliKRQKhUNRZqI8EhMTGTlyJN999x1NmzZl9erVtGvXztliKco4q1evdrYICgWglAFSSlasWMHw4cNJTk7mww8/5P3338fT09PZoinKAUFBQc4WQaEAyrkyuHjxIkOGDGH9+vXce++9LFmyhObNmztbLEU5YunSpQC89NJLTpVDoXC4z0AI0U0IcUIIESeEeNfCcSGEmJV3/KAQoo2jZZJSsmjRIsLDw9myZQtTp04lOjpaKQJFibN06VKDQlAonIlDZwZCCDdgDvB/QDywVwjxk5TyqNFp3YEGef/aAfPy/ncIp0+fZtCgQWzfvp3OnTuzaNEi6tev76jbKRQKRanA0TOD+4A4KeUZKWUWsBzobXZOb+BrqWM3UFkIUdMRwnz77bc0b96cffv2sXDhQrZt26YUgUKhUOB4ZRAMXDDajs/bV9RzEEJECSFihBAxiYmJxRKmYcOGPProoxw9epRBgwYhhCjWdRQKhaKs4WhlYKm3lcU4BynlQillhJQyomrVqsUS5t5772Xt2rUEB+fTNQqFQlGucXQ0UTxgnNIzBLhUjHMUijLJxo0bnS2CQgE4fmawF2gghKgrhPAEngF+MjvnJ+CFvKii9kCylPKyg+VSKFwCHx8ffHx8nC2GQuHYmYGUMkcIMQz4BXADvpBSHhFCvJp3fD6wEegBxAHpwMuOlEmhcCXmzp0LwNChQ50siaK8I6TMZ553eSIiImRMTIyzxVAo7prOnTsDsGPHDqfKoSgfCCH2SSkjLB1TieoUCoVCoZSBQqFQKJQyUCgUCgVKGSgUCoWCUupAFkIkAueK+fEg4JodxSkNqDaXD1Sbywd30+baUkqLq3ZLpTK4G4QQMda86WUV1ebygWpz+cBRbVZmIoVCoVAoZaBQKBSK8qkMFjpbACeg2lw+UG0uHzikzeXOZ6BQKBSK/JTHmYFCoVAozFDKQKFQKBRlVxkIIboJIU4IIeKEEO9aOC6EELPyjh8UQrRxhpz2xIY2P5vX1oNCiD+FEC2dIac9KazNRufdK4TIFUL0KUn5HIEtbRZCdBZCxAohjgghfi9pGe2JDe+1vxBivRDiQF57S33mYyHEF0KIq0KIw1aO27//klKWuX/o0mWfBsIAT+AAEG52Tg9gE7pKa+2BPc6WuwTafD8QkPd39/LQZqPztqFLl97H2XKXwPdcGTgKhOZtV3O23A5u7/vA5Ly/qwLXAU9ny36X7e4EtAEOWzlu9/6rrM4M7gPipJRnpJRZwHKgt9k5vYGvpY7dQGUhRM2SFtSOFNpmKeWfUsobeZu70VWVK83Y8j0DDAfWAFdLUjgHYUubBwA/SCnPA0gpS3O7bWmvBPyErqh5RXTKIKdkxbQvUsqd6NphDbv3X2VVGQQDF4y24/P2FfWc0kRR2xOJbmRRmim0zUKIYOAJYH4JyuVIbPmeGwIBQogdQoh9QogXSkw6+2NLe2cDTdCVyz0EvC6l1JaMeE7D7v2Xo2sgOwthYZ95DK0t55QmbG6PEOIhdMrgAYdK5HhsafMM4B0pZa5u4FjqsaXN7kBboCvgDUQLIXZLKU86WjgHYEt7HwVigS5APeA3IcQuKWWKg2VzJnbvv8qqMogHahlth6AbNRT1nNKETe0RQrQAFgPdpZRJJSSbo7ClzRHA8jxFEAT0EELkSCl/LBEJ7Y+t7/Y1KWUakCaE2Am0BEqjMrClvS8Dn0idMT1OCPEP0Bj4q2REdAp277/KqploL9BACFFXCOEJPAP8ZHbOT8ALeV759kCylPJySQtqRwptsxAiFPgBeL6UjhLNKbTNUsq6Uso6Uso6wGpgaClWBGDbu70O6CiEcBdC+ADtgGMlLKe9sKW959HNghBCVAcaAWdKVMqSx+79V5mcGUgpc4QQw4Bf0EUjfCGlPCKEeDXv+Hx0kSU9gDggHd3ootRiY5s/AAKBuXkj5RxZijM+2tjmMoUtbZZSHhNCbAYOAlpgsZTSYoiiq2PjdzweWCqEOITOfPKOlLJUp7UWQnwPdAaChBDxwIeABziu/1LpKBQKhUJRZs1ECoVCoSgCShkoFAqFQikDhUKhUChloFAoFAqUMlAoFAoFShkoFEVCCPGEEEIKIRrnbXcWQmwwO2epPjuqEMJDCPGJEOKUEOKwEOIvIUR3Z8iuUBSEUgYKRdHoD/yBbvGTLYwHagLNpJTNgF6An4NkUyiKjVIGCoWNCCEqAv9Cl9epUGWQt/p3EDBcSnkbQEp5RUq50qGCKhTFQCkDhcJ2Hgc256XyuG5DQZH6wPkynjBNUUZQykChsJ3+6PLpk/d/f6xnilRL+xWlijKZm0ihsDdCiEB0KZKbCSEkujw5EvgaCDA7vQpwDV3emFAhhJ+UMrUk5VUoioqaGSgUttEHXWWp2nlZUGsB/6Dr+O8RQjQBEELURpcuOlZKmQ4sAWblZdxECFFTCPGcc5qgUFhHKQOFwjb6A2vN9q1B50h+DvhSCBGLLk32QCllct45Y4BE4GhecfMf87YVCpdCZS1VKBQKhZoZKBQKhUIpA4VCoVCglIFCoVAoUMpAoVAoFChloFAoFAqUMlAoFAoFShkoFAqFAvh/awKfrdFPemcAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df_2d_jac, go_chrom = run_egad(marker_gene_table.T, df_jac_corr_intra)\n",
"%matplotlib inline\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"sns.scatterplot(data=df_2d_jac, x='AUC', y='DEGREE_NULL_AUC')\n",
"plt.plot([0, 1], [0, 1], c='black')\n",
"plt.axvline(x=df_2d_jac['AUC'].mean(),c='black',ls='--')\n",
"plt.axhline(y=df_2d_jac['DEGREE_NULL_AUC'].mean(), c='black', ls='--')"
]
},
{
"cell_type": "code",
"execution_count": 192,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" AUC | \n",
" AVG_NODE_DEGREE | \n",
" DEGREE_NULL_AUC | \n",
" P_Value | \n",
"
\n",
" \n",
" \n",
" \n",
" Immune system-Neutrophils | \n",
" 0.753567 | \n",
" 1233.089870 | \n",
" 0.589350 | \n",
" 0.000156 | \n",
"
\n",
" \n",
" Placenta-IGFBP1_DKK1 positive cells | \n",
" 0.753950 | \n",
" 1234.348106 | \n",
" 0.585967 | \n",
" 0.002217 | \n",
"
\n",
" \n",
" Gastrointestinal tract-Enterochromaffin cells | \n",
" 0.764910 | \n",
" 1222.946982 | \n",
" 0.500083 | \n",
" 0.001795 | \n",
"
\n",
" \n",
" Immune system-Macrophages | \n",
" 0.770894 | \n",
" 1200.991514 | \n",
" 0.353940 | \n",
" 0.012746 | \n",
"
\n",
" \n",
" Intestine-Lymphoid cells | \n",
" 0.778593 | \n",
" 1208.634666 | \n",
" 0.394096 | \n",
" 0.004614 | \n",
"
\n",
" \n",
" Intestine-Erythroblasts | \n",
" 0.786054 | \n",
" 1221.515029 | \n",
" 0.583254 | \n",
" 0.000067 | \n",
"
\n",
" \n",
" Stomach-Myeloid cells | \n",
" 0.804727 | \n",
" 1234.866358 | \n",
" 0.610987 | \n",
" 0.000033 | \n",
"
\n",
" \n",
" Adrenal-Myeloid cells | \n",
" 0.823953 | \n",
" 1217.882820 | \n",
" 0.583111 | \n",
" 0.001632 | \n",
"
\n",
" \n",
" White adipose tissue-Mesothelial cells | \n",
" 0.830409 | \n",
" 1190.292587 | \n",
" 0.246800 | \n",
" 0.000921 | \n",
"
\n",
" \n",
" Adrenal-CSH1_CSH2 positive cells | \n",
" 0.883454 | \n",
" 1213.186840 | \n",
" 0.455121 | \n",
" 0.000007 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" AUC AVG_NODE_DEGREE \\\n",
"Immune system-Neutrophils 0.753567 1233.089870 \n",
"Placenta-IGFBP1_DKK1 positive cells 0.753950 1234.348106 \n",
"Gastrointestinal tract-Enterochromaffin cells 0.764910 1222.946982 \n",
"Immune system-Macrophages 0.770894 1200.991514 \n",
"Intestine-Lymphoid cells 0.778593 1208.634666 \n",
"Intestine-Erythroblasts 0.786054 1221.515029 \n",
"Stomach-Myeloid cells 0.804727 1234.866358 \n",
"Adrenal-Myeloid cells 0.823953 1217.882820 \n",
"White adipose tissue-Mesothelial cells 0.830409 1190.292587 \n",
"Adrenal-CSH1_CSH2 positive cells 0.883454 1213.186840 \n",
"\n",
" DEGREE_NULL_AUC P_Value \n",
"Immune system-Neutrophils 0.589350 0.000156 \n",
"Placenta-IGFBP1_DKK1 positive cells 0.585967 0.002217 \n",
"Gastrointestinal tract-Enterochromaffin cells 0.500083 0.001795 \n",
"Immune system-Macrophages 0.353940 0.012746 \n",
"Intestine-Lymphoid cells 0.394096 0.004614 \n",
"Intestine-Erythroblasts 0.583254 0.000067 \n",
"Stomach-Myeloid cells 0.610987 0.000033 \n",
"Adrenal-Myeloid cells 0.583111 0.001632 \n",
"White adipose tissue-Mesothelial cells 0.246800 0.000921 \n",
"Adrenal-CSH1_CSH2 positive cells 0.455121 0.000007 "
]
},
"execution_count": 192,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac.sort_values(by=['AUC']).tail(10)"
]
},
{
"cell_type": "code",
"execution_count": 179,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(2430, 2430)\n",
"(2430, 324)\n",
"0.9943377533912513\n",
"0.0\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
":133: RuntimeWarning: invalid value encountered in true_divide\n",
" roc = (p / n_p - (n_p + 1) / 2) / n_n\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 179,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df_2d_jac, go_chrom = run_egad(marker_gene_table.T, df_jac_corr)\n",
"%matplotlib inline\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"sns.scatterplot(data=df_2d_jac, x='AUC', y='DEGREE_NULL_AUC')\n",
"plt.plot([0, 1], [0, 1], c='black')\n",
"plt.axvline(x=df_2d_jac['AUC'].mean(),c='black',ls='--')\n",
"plt.axhline(y=df_2d_jac['DEGREE_NULL_AUC'].mean(), c='black', ls='--')"
]
},
{
"cell_type": "code",
"execution_count": 184,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" AUC | \n",
" AVG_NODE_DEGREE | \n",
" DEGREE_NULL_AUC | \n",
" P_Value | \n",
"
\n",
" \n",
" \n",
" \n",
" White adipose tissue-Adipocytes | \n",
" 0.791810 | \n",
" 6.942758e+07 | \n",
" 0.353414 | \n",
" 1.003347e-03 | \n",
"
\n",
" \n",
" Brain-Neuroepithelial cells | \n",
" 0.799741 | \n",
" 7.563654e+07 | \n",
" 0.423101 | \n",
" 5.484859e-03 | \n",
"
\n",
" \n",
" White adipose tissue-Smooth Muscle cells | \n",
" 0.807774 | \n",
" 6.047817e+07 | \n",
" 0.256930 | \n",
" 5.326387e-04 | \n",
"
\n",
" \n",
" Adrenal-Stromal cells | \n",
" 0.825580 | \n",
" 7.282575e+07 | \n",
" 0.381606 | \n",
" 2.510403e-03 | \n",
"
\n",
" \n",
" White adipose tissue-Lymphatic Endothelial cells | \n",
" 0.836379 | \n",
" 6.743732e+07 | \n",
" 0.286530 | \n",
" 2.986060e-07 | \n",
"
\n",
" \n",
" White adipose tissue-Mesothelial cells | \n",
" 0.860274 | \n",
" 6.058658e+07 | \n",
" 0.183165 | \n",
" 2.220305e-04 | \n",
"
\n",
" \n",
" Immune system-Eosinophils | \n",
" 0.874426 | \n",
" 7.586037e+07 | \n",
" 0.406281 | \n",
" 1.556932e-04 | \n",
"
\n",
" \n",
" White adipose tissue-Endothelial cells | \n",
" 0.890739 | \n",
" 6.223762e+07 | \n",
" 0.258882 | \n",
" 6.014601e-07 | \n",
"
\n",
" \n",
" White adipose tissue-Pericytes | \n",
" 0.916563 | \n",
" 5.733133e+07 | \n",
" 0.152433 | \n",
" 4.161103e-07 | \n",
"
\n",
" \n",
" White adipose tissue-Endometrium | \n",
" 0.951831 | \n",
" 5.453354e+07 | \n",
" 0.123380 | \n",
" 5.749189e-08 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" AUC AVG_NODE_DEGREE \\\n",
"White adipose tissue-Adipocytes 0.791810 6.942758e+07 \n",
"Brain-Neuroepithelial cells 0.799741 7.563654e+07 \n",
"White adipose tissue-Smooth Muscle cells 0.807774 6.047817e+07 \n",
"Adrenal-Stromal cells 0.825580 7.282575e+07 \n",
"White adipose tissue-Lymphatic Endothelial cells 0.836379 6.743732e+07 \n",
"White adipose tissue-Mesothelial cells 0.860274 6.058658e+07 \n",
"Immune system-Eosinophils 0.874426 7.586037e+07 \n",
"White adipose tissue-Endothelial cells 0.890739 6.223762e+07 \n",
"White adipose tissue-Pericytes 0.916563 5.733133e+07 \n",
"White adipose tissue-Endometrium 0.951831 5.453354e+07 \n",
"\n",
" DEGREE_NULL_AUC \\\n",
"White adipose tissue-Adipocytes 0.353414 \n",
"Brain-Neuroepithelial cells 0.423101 \n",
"White adipose tissue-Smooth Muscle cells 0.256930 \n",
"Adrenal-Stromal cells 0.381606 \n",
"White adipose tissue-Lymphatic Endothelial cells 0.286530 \n",
"White adipose tissue-Mesothelial cells 0.183165 \n",
"Immune system-Eosinophils 0.406281 \n",
"White adipose tissue-Endothelial cells 0.258882 \n",
"White adipose tissue-Pericytes 0.152433 \n",
"White adipose tissue-Endometrium 0.123380 \n",
"\n",
" P_Value \n",
"White adipose tissue-Adipocytes 1.003347e-03 \n",
"Brain-Neuroepithelial cells 5.484859e-03 \n",
"White adipose tissue-Smooth Muscle cells 5.326387e-04 \n",
"Adrenal-Stromal cells 2.510403e-03 \n",
"White adipose tissue-Lymphatic Endothelial cells 2.986060e-07 \n",
"White adipose tissue-Mesothelial cells 2.220305e-04 \n",
"Immune system-Eosinophils 1.556932e-04 \n",
"White adipose tissue-Endothelial cells 6.014601e-07 \n",
"White adipose tissue-Pericytes 4.161103e-07 \n",
"White adipose tissue-Endometrium 5.749189e-08 "
]
},
"execution_count": 184,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac.sort_values(by=['AUC']).tail(10)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 174,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(2118, 2118)\n",
"(2118, 324)\n",
"0.9941666958113291\n",
"0.0\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
":133: RuntimeWarning: invalid value encountered in true_divide\n",
" roc = (p / n_p - (n_p + 1) / 2) / n_n\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 174,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df_2d_exp, go_chrom = run_egad(marker_gene_table.T, df_exp_corr)\n",
"%matplotlib inline\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"sns.scatterplot(data=df_2d_exp, x='AUC', y='DEGREE_NULL_AUC')\n",
"plt.plot([0, 1], [0, 1], c='black')\n",
"plt.axvline(x=df_2d_exp['AUC'].mean(),c='black',ls='--')\n",
"plt.axhline(y=df_2d_exp['DEGREE_NULL_AUC'].mean(), c='black', ls='--')"
]
},
{
"cell_type": "code",
"execution_count": 175,
"metadata": {},
"outputs": [],
"source": [
"df_2d_jac.reset_index(inplace=True)\n",
"df_2d_exp.reset_index(inplace=True)\n",
"coexp_contact = df_2d_jac.merge(df_2d_exp, left_on='index', right_on='index')"
]
},
{
"cell_type": "code",
"execution_count": 176,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/grid/gillis/home/lohia/.conda/envs/hicexplorer/lib/python3.8/site-packages/seaborn/_decorators.py:36: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n",
" warnings.warn(\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 176,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.scatterplot(coexp_contact['AUC_y'], coexp_contact['AUC_x'])"
]
},
{
"cell_type": "code",
"execution_count": 168,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" AUC | \n",
" AVG_NODE_DEGREE | \n",
" DEGREE_NULL_AUC | \n",
" P_Value | \n",
"
\n",
" \n",
" \n",
" \n",
" Immune system-Basophils | \n",
" 0.966514 | \n",
" 686.331847 | \n",
" 0.396859 | \n",
" 8.957349e-08 | \n",
"
\n",
" \n",
" Immune system-Naive CD8+ T cells | \n",
" 0.968314 | \n",
" 821.950864 | \n",
" 0.515133 | \n",
" 4.288808e-10 | \n",
"
\n",
" \n",
" Immune system-γδ-T cells | \n",
" 0.968605 | \n",
" 769.553020 | \n",
" 0.464349 | \n",
" 8.119871e-11 | \n",
"
\n",
" \n",
" Immune system--T cells | \n",
" 0.968899 | \n",
" 769.553020 | \n",
" 0.464349 | \n",
" 5.924728e-11 | \n",
"
\n",
" \n",
" Placenta-Lymphoid cells | \n",
" 0.969792 | \n",
" 713.832540 | \n",
" 0.411246 | \n",
" 2.444644e-08 | \n",
"
\n",
" \n",
" Placenta-Myeloid cells | \n",
" 0.973610 | \n",
" 674.424280 | \n",
" 0.380619 | \n",
" 8.182613e-09 | \n",
"
\n",
" \n",
" Stomach-Lymphoid cells | \n",
" 0.974136 | \n",
" 777.257123 | \n",
" 0.467312 | \n",
" 2.445967e-09 | \n",
"
\n",
" \n",
" Placenta-Megakaryocytes | \n",
" 0.975818 | \n",
" 715.116747 | \n",
" 0.416996 | \n",
" 4.939503e-07 | \n",
"
\n",
" \n",
" Stomach-Squamous epithelial cells | \n",
" 0.975893 | \n",
" 421.026389 | \n",
" 0.149151 | \n",
" 1.253213e-05 | \n",
"
\n",
" \n",
" Heart-Lymphoid cells | \n",
" 0.976310 | \n",
" 680.726533 | \n",
" 0.368074 | \n",
" 4.947886e-10 | \n",
"
\n",
" \n",
" Immune system-Mast cells | \n",
" 0.976431 | \n",
" 838.248697 | \n",
" 0.545533 | \n",
" 3.501668e-05 | \n",
"
\n",
" \n",
" Intestine-Chromaffin cells | \n",
" 0.978456 | \n",
" 351.112587 | \n",
" 0.098011 | \n",
" 3.959878e-05 | \n",
"
\n",
" \n",
" Immune system-Eosinophils | \n",
" 0.978604 | \n",
" 644.942277 | \n",
" 0.343304 | \n",
" 5.867062e-04 | \n",
"
\n",
" \n",
" Adrenal-Erythroblasts | \n",
" 0.980016 | \n",
" 422.470634 | \n",
" 0.146979 | \n",
" 2.215531e-06 | \n",
"
\n",
" \n",
" Placenta-AFP_ALB positive cells | \n",
" 0.982184 | \n",
" 433.979287 | \n",
" 0.163472 | \n",
" 1.149528e-07 | \n",
"
\n",
" \n",
" Adrenal-Lymphoid cells | \n",
" 0.983204 | \n",
" 745.482143 | \n",
" 0.433682 | \n",
" 4.165141e-09 | \n",
"
\n",
" \n",
" Immune system-ISG expressing immune cells | \n",
" 0.984182 | \n",
" 845.937118 | \n",
" 0.540646 | \n",
" 3.247684e-07 | \n",
"
\n",
" \n",
" Intestine-Lymphoid cells | \n",
" 0.984755 | \n",
" 729.664059 | \n",
" 0.410782 | \n",
" 1.164714e-06 | \n",
"
\n",
" \n",
" Muscle-Erythroblasts | \n",
" 0.992657 | \n",
" 456.658236 | \n",
" 0.193468 | \n",
" 8.335917e-09 | \n",
"
\n",
" \n",
" Intestine-Erythroblasts | \n",
" 0.997374 | \n",
" 395.921133 | \n",
" 0.122622 | \n",
" 7.362984e-09 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" AUC AVG_NODE_DEGREE \\\n",
"Immune system-Basophils 0.966514 686.331847 \n",
"Immune system-Naive CD8+ T cells 0.968314 821.950864 \n",
"Immune system-γδ-T cells 0.968605 769.553020 \n",
"Immune system--T cells 0.968899 769.553020 \n",
"Placenta-Lymphoid cells 0.969792 713.832540 \n",
"Placenta-Myeloid cells 0.973610 674.424280 \n",
"Stomach-Lymphoid cells 0.974136 777.257123 \n",
"Placenta-Megakaryocytes 0.975818 715.116747 \n",
"Stomach-Squamous epithelial cells 0.975893 421.026389 \n",
"Heart-Lymphoid cells 0.976310 680.726533 \n",
"Immune system-Mast cells 0.976431 838.248697 \n",
"Intestine-Chromaffin cells 0.978456 351.112587 \n",
"Immune system-Eosinophils 0.978604 644.942277 \n",
"Adrenal-Erythroblasts 0.980016 422.470634 \n",
"Placenta-AFP_ALB positive cells 0.982184 433.979287 \n",
"Adrenal-Lymphoid cells 0.983204 745.482143 \n",
"Immune system-ISG expressing immune cells 0.984182 845.937118 \n",
"Intestine-Lymphoid cells 0.984755 729.664059 \n",
"Muscle-Erythroblasts 0.992657 456.658236 \n",
"Intestine-Erythroblasts 0.997374 395.921133 \n",
"\n",
" DEGREE_NULL_AUC P_Value \n",
"Immune system-Basophils 0.396859 8.957349e-08 \n",
"Immune system-Naive CD8+ T cells 0.515133 4.288808e-10 \n",
"Immune system-γδ-T cells 0.464349 8.119871e-11 \n",
"Immune system--T cells 0.464349 5.924728e-11 \n",
"Placenta-Lymphoid cells 0.411246 2.444644e-08 \n",
"Placenta-Myeloid cells 0.380619 8.182613e-09 \n",
"Stomach-Lymphoid cells 0.467312 2.445967e-09 \n",
"Placenta-Megakaryocytes 0.416996 4.939503e-07 \n",
"Stomach-Squamous epithelial cells 0.149151 1.253213e-05 \n",
"Heart-Lymphoid cells 0.368074 4.947886e-10 \n",
"Immune system-Mast cells 0.545533 3.501668e-05 \n",
"Intestine-Chromaffin cells 0.098011 3.959878e-05 \n",
"Immune system-Eosinophils 0.343304 5.867062e-04 \n",
"Adrenal-Erythroblasts 0.146979 2.215531e-06 \n",
"Placenta-AFP_ALB positive cells 0.163472 1.149528e-07 \n",
"Adrenal-Lymphoid cells 0.433682 4.165141e-09 \n",
"Immune system-ISG expressing immune cells 0.540646 3.247684e-07 \n",
"Intestine-Lymphoid cells 0.410782 1.164714e-06 \n",
"Muscle-Erythroblasts 0.193468 8.335917e-09 \n",
"Intestine-Erythroblasts 0.122622 7.362984e-09 "
]
},
"execution_count": 168,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_exp.sort_values(by=['AUC']).tail(20)"
]
},
{
"cell_type": "code",
"execution_count": 169,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" AUC | \n",
" AVG_NODE_DEGREE | \n",
" DEGREE_NULL_AUC | \n",
" P_Value | \n",
"
\n",
" \n",
" \n",
" \n",
" Adrenal-Erythroblasts | \n",
" 0.744015 | \n",
" 7.830639e+07 | \n",
" 0.472669 | \n",
" 1.577830e-02 | \n",
"
\n",
" \n",
" Eye-GABAergic amacrine cells | \n",
" 0.745241 | \n",
" 7.268417e+07 | \n",
" 0.350712 | \n",
" 1.214904e-02 | \n",
"
\n",
" \n",
" Stomach-PDE1C_ACSM3 positive cells | \n",
" 0.754132 | \n",
" 7.301663e+07 | \n",
" 0.374127 | \n",
" 1.073852e-03 | \n",
"
\n",
" \n",
" Heart-Megakaryocytes | \n",
" 0.754374 | \n",
" 7.470928e+07 | \n",
" 0.413942 | \n",
" 1.688054e-03 | \n",
"
\n",
" \n",
" Immune system-Intermediate monocytes | \n",
" 0.755359 | \n",
" 8.918103e+07 | \n",
" 0.611174 | \n",
" 2.788973e-03 | \n",
"
\n",
" \n",
" Adrenal-SLC26A4_PAEP positive cells | \n",
" 0.757836 | \n",
" 8.059366e+07 | \n",
" 0.496535 | \n",
" 1.268912e-02 | \n",
"
\n",
" \n",
" Eye-Glycinergic amacrine cells | \n",
" 0.758436 | \n",
" 7.143455e+07 | \n",
" 0.331923 | \n",
" 6.499352e-03 | \n",
"
\n",
" \n",
" Immune system-Non-classical monocytes | \n",
" 0.765285 | \n",
" 7.983960e+07 | \n",
" 0.509710 | \n",
" 2.098806e-04 | \n",
"
\n",
" \n",
" Adrenal-Stromal cells | \n",
" 0.766023 | \n",
" 7.476892e+07 | \n",
" 0.379877 | \n",
" 5.048967e-03 | \n",
"
\n",
" \n",
" Spleen-Stromal cells | \n",
" 0.767047 | \n",
" 6.456358e+07 | \n",
" 0.327521 | \n",
" 3.439434e-03 | \n",
"
\n",
" \n",
" White adipose tissue-Adipocytes | \n",
" 0.789524 | \n",
" 7.134295e+07 | \n",
" 0.352323 | \n",
" 1.522735e-03 | \n",
"
\n",
" \n",
" Adrenal-CSH1_CSH2 positive cells | \n",
" 0.800541 | \n",
" 8.125798e+07 | \n",
" 0.406855 | \n",
" 8.298341e-05 | \n",
"
\n",
" \n",
" Brain-Neuroepithelial cells | \n",
" 0.805471 | \n",
" 7.778916e+07 | \n",
" 0.421812 | \n",
" 2.012711e-03 | \n",
"
\n",
" \n",
" Immune system-Eosinophils | \n",
" 0.817843 | \n",
" 7.799499e+07 | \n",
" 0.404308 | \n",
" 3.891490e-04 | \n",
"
\n",
" \n",
" White adipose tissue-Mesothelial cells | \n",
" 0.842210 | \n",
" 6.219281e+07 | \n",
" 0.181567 | \n",
" 4.646414e-04 | \n",
"
\n",
" \n",
" White adipose tissue-Lymphatic Endothelial cells | \n",
" 0.851003 | \n",
" 6.926410e+07 | \n",
" 0.284352 | \n",
" 1.587523e-07 | \n",
"
\n",
" \n",
" White adipose tissue-Endothelial cells | \n",
" 0.853651 | \n",
" 6.394237e+07 | \n",
" 0.258357 | \n",
" 1.073930e-06 | \n",
"
\n",
" \n",
" White adipose tissue-Adipose progenitor cells | \n",
" 0.879674 | \n",
" 6.533446e+07 | \n",
" 0.314332 | \n",
" 2.981767e-04 | \n",
"
\n",
" \n",
" White adipose tissue-Pericytes | \n",
" 0.924143 | \n",
" 5.884099e+07 | \n",
" 0.151323 | \n",
" 2.336886e-07 | \n",
"
\n",
" \n",
" White adipose tissue-Endometrium | \n",
" 0.955802 | \n",
" 5.597243e+07 | \n",
" 0.122448 | \n",
" 2.936266e-08 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" AUC AVG_NODE_DEGREE \\\n",
"Adrenal-Erythroblasts 0.744015 7.830639e+07 \n",
"Eye-GABAergic amacrine cells 0.745241 7.268417e+07 \n",
"Stomach-PDE1C_ACSM3 positive cells 0.754132 7.301663e+07 \n",
"Heart-Megakaryocytes 0.754374 7.470928e+07 \n",
"Immune system-Intermediate monocytes 0.755359 8.918103e+07 \n",
"Adrenal-SLC26A4_PAEP positive cells 0.757836 8.059366e+07 \n",
"Eye-Glycinergic amacrine cells 0.758436 7.143455e+07 \n",
"Immune system-Non-classical monocytes 0.765285 7.983960e+07 \n",
"Adrenal-Stromal cells 0.766023 7.476892e+07 \n",
"Spleen-Stromal cells 0.767047 6.456358e+07 \n",
"White adipose tissue-Adipocytes 0.789524 7.134295e+07 \n",
"Adrenal-CSH1_CSH2 positive cells 0.800541 8.125798e+07 \n",
"Brain-Neuroepithelial cells 0.805471 7.778916e+07 \n",
"Immune system-Eosinophils 0.817843 7.799499e+07 \n",
"White adipose tissue-Mesothelial cells 0.842210 6.219281e+07 \n",
"White adipose tissue-Lymphatic Endothelial cells 0.851003 6.926410e+07 \n",
"White adipose tissue-Endothelial cells 0.853651 6.394237e+07 \n",
"White adipose tissue-Adipose progenitor cells 0.879674 6.533446e+07 \n",
"White adipose tissue-Pericytes 0.924143 5.884099e+07 \n",
"White adipose tissue-Endometrium 0.955802 5.597243e+07 \n",
"\n",
" DEGREE_NULL_AUC \\\n",
"Adrenal-Erythroblasts 0.472669 \n",
"Eye-GABAergic amacrine cells 0.350712 \n",
"Stomach-PDE1C_ACSM3 positive cells 0.374127 \n",
"Heart-Megakaryocytes 0.413942 \n",
"Immune system-Intermediate monocytes 0.611174 \n",
"Adrenal-SLC26A4_PAEP positive cells 0.496535 \n",
"Eye-Glycinergic amacrine cells 0.331923 \n",
"Immune system-Non-classical monocytes 0.509710 \n",
"Adrenal-Stromal cells 0.379877 \n",
"Spleen-Stromal cells 0.327521 \n",
"White adipose tissue-Adipocytes 0.352323 \n",
"Adrenal-CSH1_CSH2 positive cells 0.406855 \n",
"Brain-Neuroepithelial cells 0.421812 \n",
"Immune system-Eosinophils 0.404308 \n",
"White adipose tissue-Mesothelial cells 0.181567 \n",
"White adipose tissue-Lymphatic Endothelial cells 0.284352 \n",
"White adipose tissue-Endothelial cells 0.258357 \n",
"White adipose tissue-Adipose progenitor cells 0.314332 \n",
"White adipose tissue-Pericytes 0.151323 \n",
"White adipose tissue-Endometrium 0.122448 \n",
"\n",
" P_Value \n",
"Adrenal-Erythroblasts 1.577830e-02 \n",
"Eye-GABAergic amacrine cells 1.214904e-02 \n",
"Stomach-PDE1C_ACSM3 positive cells 1.073852e-03 \n",
"Heart-Megakaryocytes 1.688054e-03 \n",
"Immune system-Intermediate monocytes 2.788973e-03 \n",
"Adrenal-SLC26A4_PAEP positive cells 1.268912e-02 \n",
"Eye-Glycinergic amacrine cells 6.499352e-03 \n",
"Immune system-Non-classical monocytes 2.098806e-04 \n",
"Adrenal-Stromal cells 5.048967e-03 \n",
"Spleen-Stromal cells 3.439434e-03 \n",
"White adipose tissue-Adipocytes 1.522735e-03 \n",
"Adrenal-CSH1_CSH2 positive cells 8.298341e-05 \n",
"Brain-Neuroepithelial cells 2.012711e-03 \n",
"Immune system-Eosinophils 3.891490e-04 \n",
"White adipose tissue-Mesothelial cells 4.646414e-04 \n",
"White adipose tissue-Lymphatic Endothelial cells 1.587523e-07 \n",
"White adipose tissue-Endothelial cells 1.073930e-06 \n",
"White adipose tissue-Adipose progenitor cells 2.981767e-04 \n",
"White adipose tissue-Pericytes 2.336886e-07 \n",
"White adipose tissue-Endometrium 2.936266e-08 "
]
},
"execution_count": 169,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2d_jac.sort_values(by=['AUC']).tail(20)"
]
},
{
"cell_type": "code",
"execution_count": 215,
"metadata": {},
"outputs": [],
"source": [
"y = marker_gene_table.T\n",
"\n",
"genes_intersect = y.index.intersection(df_jac_corr.index)\n",
"\n",
"nw = df_jac_corr.loc[genes_intersect, genes_intersect]\n",
"\n",
"marker_gene_table = marker_gene_table.loc[:, genes_intersect]"
]
},
{
"cell_type": "code",
"execution_count": 216,
"metadata": {},
"outputs": [],
"source": [
"species= marker_gene_table.T.idxmax(axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 218,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['Brain-Immune system cells', 'Brain-Microglial cells',\n",
" 'Brain-Astrocytes', 'Brain-Oligodendrocytes',\n",
" 'Brain-Dopaminergic neurons', 'Brain-GABAergic neurons',\n",
" 'Brain-Neuroblasts', 'Brain-Endothelial cells',\n",
" 'Brain-Cholinergic neurons', 'Brain-Radial glial cells',\n",
" 'Brain-Mature neurons', 'Brain-Neural Progenitor cells',\n",
" 'Brain-Immature neurons', 'Brain-Neuroepithelial cells',\n",
" 'Brain-Glutamatergic neurons', 'Brain-Tanycytes',\n",
" 'Brain-Non myelinating Schwann cells',\n",
" 'Brain-Oligodendrocyte precursor cells',\n",
" 'Brain-Myelinating Schwann cells', 'Brain-Cancer cells',\n",
" 'Brain-Cancer stem cells', 'Brain-Neural stem cells',\n",
" 'Brain-Serotonergic neurons', 'Brain-Schwann precursor cells'],\n",
" dtype=object)"
]
},
"execution_count": 218,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"species.unique()"
]
},
{
"cell_type": "code",
"execution_count": 219,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAALJCAYAAACp99XTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOy9eZhc1XXu/a6q6up5bs0zGhASMw3Ixo4ZzGQnxtjYYJIYDwkxH46d5PoaeGJfc2058XQv8XRFsI0Njm3hAMZywmCwkEcmAQI0ICQ0tgY0ttStnqvW98fZVeutoqqlllpSd2v9nkePdu3aZ5999tnn9K693r2WqCocx3Ecx3Ecx4mIHe8GOI7jOI7jOM5QwifIjuM4juM4jkP4BNlxHMdxHMdxCJ8gO47jOI7jOA7hE2THcRzHcRzHIXyC7DiO4ziO4zjEiJ4gi8jdIrJDRJYX+V5E5FsislZEXhaRs491Gx3HcRzHcZyhxYieIAP4EYAr+vn+SgAzw78bASw4Bm1yHMdxHMdxhjAjeoKsqr8DsKefIlcBuFcjngZQJyLjjk3rHMdxHMdxnKHIiJ4gHwITAGymzy0hz3Ecx3EcxzlBSQykcO+udUMqLnVy1PS/QySNyHCXqt41gCqkQN6QukbHcRzHcRzn2DKgCTLSqaPUjMMjTIYHMiHOpwXAJPo8EcDWI2qU4ziO4ziOM6wZ2AQ51XeUmnHcWATgkyKyEMD5APap6rbj3CbHOW40NzffCqDseLfDcRxniNO1dOnSrxzvRjhHjwFNkHWYTZBF5GcALgTQJCItAL4AoAQAVPVOAA8DeBeAtQA6AHz0+LTUcYYMZUuXLr39eDfCcRxnKNPc3Hz78W6Dc3QZ4Apy71FqxtFBVT90kO8VwM3HqDmO4ziO4zjOMOBEl1g4juM4juM4Tg4jWmLhOI7jOI7jOANlREssHMdxHMdxHGeguMTCcRzHcRynCEW8+0zN26jnXi1GGD5BdhzHcRzHKc5Bvfu4V4uRx8A0yGmXWDiO4ziO4zgjG19BdhzHcRzHcRzCN+k5juM4juM4DuEryI7jOI7jOIcBbeDjTXu+YW8EMLAJcp9PkJ0ThyI7l0c6+TuzRzr+h8xxnCMhu4GP/mbMbm5uvtXfLcObAQYKcYmFc0Jx0J3LzvDmBPsx4DjO0YUny7cf36Y4R4pLLBzHcRzHcRyH8Amy4ziO4zhOHq4vPrHxCbLjOI7jOM6beZPMzqUTJw4+QXYcx3Ecx3EcwifIjuM4juM4/ZAnt3APFScAPkF2HMdxHMfpH/dQcYIxov0gi8gVAL4JIA7g+6r6lbzvawH8B4DJiPriG6r6w2PeUMdxHMdxHGfIMMAV5NRRasbgIyJxAN8FcCmAFgDPicgiVV1JxW4GsFJV/0JERgFYLSI/UdWe49Bkx3Ecx3EcZwgwkiUW5wFYq6rrAEBEFgK4CgBPkBVAtYgIgCoAewAMq4t0HMdxHMdxBpcRu4IMYAKAzfS5BcD5eWW+A2ARgK0AqgFcq6rpY9M8x3Ecx3EcZygyrDXIInIjgBsp6y5VvSvzdYFDNO/z5QCWAbgYwHQAj4vI71V1/2C31XEcx3EcxxkeDGiCrENsBTlMhu8q8nULgEn0eSKilWLmowC+oqoKYK2IrAcwG8Czg91Wx3Ecx3EcZ3gwkjXIzwGYKSLTAGwBcB2A6/PKbAJwCYDfi8gYACcDWHdMW+k4juM4juMMKQYosRhaK8j9oap9IvJJAI8hcvN2t6quEJFPhO/vBPAlAD8SkVcQSTJuUdVdx63RjuM4juM4znFnJG/Sg6o+DODhvLw7Kb0VwGXHul2O4ziO4zjO0GXEriA7juM4juM4zuEwoleQHcdxHMdxHGegDMyLha8gO47jOI7jOCMcX0F2HGfY0NzcfCuAskGscmpzc/Ptg1gfAHQtXbr0K4Ncp+M4jnMMcQ2y4zjDibKlS5fefrwb0R9HYcLtOI7jHGN8BdlxHMdxHMdxCNcgO47jOI7jOA7hK8iO4ziO4ziOQwxwBTl9tNrhOI7jOI7jOEMC36TnOI7jOI7jOMTAJshpPUrNcBzHcRzHcZyhwcAkFimXWDiO4ziO4zgjmwFKLHyC7DiO4ziO44xsfJOe4ziO4ziO4xADnCC7BtlxHMdxHMcZ2QxQYuETZMdxHMdxHGdk4yvIjuM4juM4jkOM6AmyiFwB4JsA4gC+r6pfKVDmQgD/BqAEwC5VfccxbKLjOI7jOI4zxBjgBPloNWPwEZE4gO8CuBRAC4DnRGSRqq6kMnUA/h+AK1R1k4iMPi6NdRzHcRzHcYYMI3aCDOA8AGtVdR0AiMhCAFcBWEllrgfwoKpuAgBV3XHMW+k4juM4juMMKQY0QU4PrwnyBACb6XMLgPPzyswCUCIiSwBUA/imqt57bJrnOI7jOI7jDEUGGElPjlY7DgsRuRHAjZR1l6relfm6wCH5IuoEgHMAXAKgHMBTIvK0qr426I11HMdxHMdxhgUDXEEeWhPkMBm+q8jXLQAm0eeJALYWKLNLVQ8AOCAivwNwBgCfIDuO4ziO45ygDGyCPMRWkA/CcwBmisg0AFsAXIdIc8z8EsB3RCQBIIlIgnHHMW2l4ziO4ziOM6QY1ivI/aGqfSLySQCPIXLzdreqrhCRT4Tv71TVVSLyKICXAaQRuYJbfvxa7TiO4ziO4xxvRvIKMlT1YQAP5+Xdmff56wC+fizb5TiO4ziO4wxdRvQE2XEcx3Ecx3EGygAnyLGj1Q7HcRzHcRzHGRIMaIKc8hVkx3Ecx3EcZ4TjK8iO4ziO4ziOQ7gG2XEcx3Ecx3GIgUks0r6C7DiO4ziO44xsBjhB9hVkx3Ecx3EcZ2QzMImFT5Adx3Ecx3GcEY5LLBzHcRzHcRyHGNgEWX0F2XEcx3EcxxnZ+Aqy4ziO4ziO4xADmyDDV5Adx3Ecx3Gckc2AJsh9LrFwHMdxHMdxRji+guw4juM4juM4hE+QnSFHc3PzrQDKjnc7AExtbm6+/Ti3oWvp0qVfOc5tcBzHcZwTCp8gO0ORsqVLl95+vBsxFBgCE3THcRzHOeEYmAZZfILsOI7jOI7jjGwG5LctNcT+HQwRuUJEVovIWhG5tZ9y54pISkSuOdS+cBzHcRzHcUYmA5NYDKMVZBGJA/gugEsBtAB4TkQWqerKAuW+CuCxY99KZyRwlDXTR1sH7Rpnx3Ecx8ljgBKLo9WMo8J5ANaq6joAEJGFAK4CsDKv3N8DeADAuce2ec4IYthqpl3j7DiO4zhvZiRv0psAYDN9bgFwPhcQkQkArgZwMXyC7DiO4ziO42CYryCLyI0AbqSsu1T1rszXBQ7RvM//BuAWVU3JMJKPOI7jOI7jOEePAWqQj1YzDo8wGb6ryNctACbR54kAtuaVaQawMEyOmwC8S0T6VPWhQW6q4ziO4ziOM0wY2Ary0WrF0eE5ADNFZBqALQCuA3A9F1DVaZm0iPwIwH/55NhxHMdxHOfEZlivIPeHqvaJyCcReaeIA7hbVVeIyCfC93ce1wY6jnNEDKGIi/kMhQiMxXCvJY7jOIfAgCbI6aPViqOEqj4M4OG8vIITY1X9yLFok+M4g8aw9R5yvBjCE3fHcZwhxYhdQXYcx3Ecx3Gcw2Eka5Adx3Ecx3EcZ8D4CrLjOI7jOI7jEAMMFOI4juM4juM4I5sBSizy42w4juOMHIawZ4zBYih72BgM3EuH4ziDgq8gO84I5RAne4c6YRrSE49BnNhOBbBhEOoBhnifHW2O04+N2cf4B8AJfY8dZyQzwFDTvoLsHB4D/GM5kFUu/wNVnEFzgzYMVh2HnMu3YdBnR5tDvieDOJneMAh1DIRjPSEfLPy96TgHwVeQnWPFUZnADNM/To7j5DLkfuCMZPy96TgHZ4ATZF9BdhzHcRzHcUY2vknPcRzHcRzHcQiXWDiO4ziO4zgO4RILZ8gy1Lww9NOeYm3wjTCO4ziOMwzxCbIzlDnsjTsFJrP5u80PZ/I6oPb4RhjHcRzHGZ64BtkZqfQ7mfXJ64nLMfTPeyyCcriVwnEc5yjgK8iO45xojBiXYv5Dz3Ec5+jgE2THcZwhhAfVcRzHOf4MbIKsPkF2HGfoc5BJZn+TyqEwifSgOo7jOMeZAa4gp49WO44KInIFgG8CiAP4vqp+Je/7vwRwS/jYDuAmVX3p2LZy5JI3SclMSobCBMQZ+RzWJNMnkY7jOA4wgjfpiUgcwHcBXAqgBcBzIrJIVVdSsfUA3qGqe0XkSgB3ATj/2Ld2xPKmSYpPQIYGh7FRzU35juM4zgnDSNYgnwdgraquAwARWQjgKgDZCbKq/onKPw1g4jFtoTPsOUxT/lCYQB61jWpD+UfQIfwwONgPgaFw74YsRaxGGYZE3x1DLyZDmWPhYWWoMyTGozN0GaAGeVhJLCYA2EyfW9D/6vDHATxyVFvkjEQGPNH0P0xHlzABKibpOaIfBn7vDkrR/h1CfTdivJg4h88QGo/OEGVYryCLyI0AbqSsu1T1rszXBQ4peAEichGiCfLbBreFjhMxHFbWRhBlS5cu/QjgfwQdx3Gcw2NYryCHyfBdRb5uATCJPk8EsDW/kIicDuD7AK5U1d2D3khnSFDArDq1ubn5CUTPwIbwDzh6k9XhsLJ2QjOIoc2P6Q+eAUgGjllYdsdxnOHOsF5BPgjPAZgpItMAbAFwHYDruYCITAbwIIC/VtXXjn0TnQxF/sgP5kprwQ2Dx2MTYZHJOp/XJyjHh0ExvR+HHzyDKhnwH2yO4zjDfAW5P1S1T0Q+CeAxRG7e7lbVFSLyifD9nQD+F4BGAP9PRACgT1Wbj1ebT3AO+kd+BP3h9jDYx4GDaJOPpM6D/bDL4D98HMdxhgkj2g+yqj4M4OG8vDsp/TcA/uZYt+tEhCYSU5ubm2/1icLw5TA8QbwNue+aDTBJS4ZjMXk8GtrkQ1699R8+jnN8cd/8zkDwSHrOsSI7kRiKE4W8CfztOIYvzWEouRiQSb+QlKVQmSNsk3MYHIsV8CN9to6CW7aj4eJsqD2jTmH471BmXM2m8eD30ckywEAhw2sF2Rn+FPjFn9lYB9hKZL8vtUM0redM+g72B7TAH30crB39MOQlF/144TjsPyhHo86hyKGMleO4snUsVsAH9Gwd7PgjIfTzhsM8PN8SwtQ1NzdfcZj19scGHH57D5cR9fz1gweycvplxGqQneENTyoAvJp5YR/mxroBmdYHOqEusBJxXP/AFJOzHOGEtOAkpVh/HuKEb0B1Hi0G+mMn79r+orm5+UL0/2PtUP4QD+iP9bH6cXGo5zmeFpgBctiT7UOxhBwpQySIyewhMlEcqmPIOUEY0AQ57RNkZ5DpR5t8PCUZA9Wq5k+Wj3iiXGQSBhzaqnmxvis0qQeAD4TVr0zdOJK2558rwxD5o1uIgbaV+xFHuDr6Jg5xwl7sXg72j7T81V/+MVjweQ3lbkcBjsZGyUPhcCw+B5E+HXN3kCcCRd5LwFF2xel7ZJxC+Aqyc7w57InwEF21GqzV6oKTsLwJCvtxfnWA1150knewtg9UDnAof3yGyuaZIxlThzL5O8Q/xEcyYT+orvJQ+voo/nA96PNRYGLKPxCBaLxPxMB8mB+OxafQfTho/x7kWvrjbQCa8q61PzZg4PKLofCO7I+DvfeAo6MZHtJ7ZJzjw4j2YuGMeI5U2zgUOJLV6tsH+6U+0AlcPyuKRdtc5NSFViqPh2TlSKwBh3IvB/SH+DBWtg7l3gy0zEHbOcjkt+8V5FlN8sZ+/o/GlvzyB6n/Tff4EH+4Fuy7fOsPgDa8eVL/aoHyLQCe6KeexpBOAugBUAfgtFA/AEwGEAvpWgDdIV0KYB+AVgCjm5ubPxHSuwD8IZTJ6KvrANQA2BTyud0AUE3nO1g6/5rz0we7T8zBrF+FzjuQ+h3nTYgOwDPF3DHnDyk3FiveeKZQOGnHcRzHcZwhj4ikEP0IzLBQVb8iIksAVGViM4hIM4BvqOqFIlIB4HsATgcgiH7wXKGq7SIyBsAdAOYB2Ivox9TXVPUXoZ7bAHwcQArAp1T1sZB/DoAfAShH5B7306qqIlIK4F4A5wDYDeBaVd0QjrkBwOdCu+er6j0hfxqAhQAaALyAKBhbj4jMBvBDAGcD+GdV/UYoXwbgd4h+zCUA3K+qX6A++nsAnwTQB+C/VfWzIpIE8O8AmgGkQ3uXhL75TwDTwzX+SlVvDfVMBnAPoh+CcQC3BnfABXGJheM4juM4zvGhU1XPLPLdaBG5UlUfycv/NIA3VPU0ABCRkwH0ShTx7CEA96jq9eG7KQDeE9JzEEUVngtgPIAnRGSWqqYALABwI4CnEU2QrwDwCKLJ9F5VnSEi1wH4KoBrRaQBwBcQTVAVwPMiskhV94Yyd6jqQhG5M9SxAMAeAJ8C8N686+kGcHGY4JcA+IOIPKKqT4vIRQCuAnC6qnaLyOhwzN8CgKqeFvIeEZFzw3ffUNUnwyT6N9SHnwPwc1VdEPriYUSOAAriE+QTnG+tvW5QrAKfmrEwZzW/d9c6BYDUxpezefrai1Zg9ATLf31VNp1avsbKxKzK2JgGS590Us65dfPmbPo73+7Kpud2pbLpt8zbmk2XX39xNt394JJsuvTaS60dzyzNpt9+zxvZ9Hll47PpWenSbHp2t53rubJYNv1Uek82/cC1yWz6kZ9UZdMbS+w6J/Xa7dhO+dtj9uyd0mv18xP5wc832oeYlel9yhYnkn92th270fotdvHlduy2jdmknHyO1XPnd7LpxNV/buXbWrPJ//p7u5dX/lVHNn1gqfVDzSes/1u/vQRM5Vzro5Jz52bT0z5jfx/mVk2ydkg8m05S+u1Sl02vkM5sepaaHLRdrK9P6rP+Gttn97JDLP+J0p5s2nKBMsQL5vO92ZQ+kE3PjNm9v/UsG5dl7zwtm9a9rVSRtTN2qvWJrrFnRQ/YNaa27LZDO/qy6cRUe4Z6Vu7Kpnv326lK6izdvtn+PIz61HlW/6rXsumtD9l1AcAbe+3azn30I/ZFj7VP16/Mps/6+//Kpn87tyKbrpzXlE3Hzzojm+78yW+y6fK/sLGZevX1bFrqqrPpq/+drlPtvtbE7NktE7vONrV7fFLM6knD7sGqvr3WNhof0+I12fSmVHs2PTZu19WAkmx6ZsrO20lvzyn0DphbZefq7rHytXXWnz3dVE+n1b+1y86rsBPMqG/Nph/tsHfGW1O593I5KrPpF0t6s+lKGu81atdfTQN+W9w+jE1ZmZ4iNt+Pnd+STf/29/aOrdG+QsUxY5KN8dZddp0JOm+8xNJ/sXtnNl0Wtz4qi9n7ppTGwZoD9lwmYna9fWkbQ7s66MEh8i+xt2fLkVi6v45oUpc/QR4HIPuiVtXVACAilwDoyQuIthHAt8PHqxCtUHcDWC8iawGcJyIbANSo6lOhnnsRTWIfCcfcHo6/H8B3wkT8cgCPq+qecMzjAK4QkYUALgZwfTjmnnD8AlXdAWCHiLybL0YjKUPmoSkJ/zIPwk0AvhLajFAHAMwB8JtMnoi0AmhW1WcBPBnye0TkBUSSG4Q6Mw9qLQC70QWI9fdlPilND6l/juM4ztCAJ8eO4xwy5SKyjP5dS989BaA7rKIydwO4RUSeEpH5IjIz5M9FJGkoxgQAm+lzS8ibENL5+TnHqGofIj17Yz91NQJoDWXz6yqKiMRFZBmAHYgm3s+Er2YBeLuIPCMiv6VV4pcAXCUiiSDpOAfApLw66xDp9zO/rG8H8Fci0oJo9fjv+2vTAFeQUwcv5BwTDtdf5onsQshxHMdxjiUiciMi6UKGu1T1Lvrcn8QCAOYjWkW+JZOhqstE5CQAlwF4J4DnROQtBc79XUQbMHtU9Vy8eYEbiFZVi+XjMI7pr66iBJnHmWFS+wsROVVVlyOap9Yj0lSfC+Dn4drvBnAKgKWIVtP/hEijHDVaJAHgZwC+parrQvaHAPxIVf9P6K8fh/MUXHF1icXwZVD8Zf7ppfmD0BTgUzNyP2ekFfEpp1teR5sVKKW5/UknZ5OxzVssn8yX6DbTJ3opDeRIMWpoiNaJmQVL5021ameYyTbe+LTlj59u+W+1RyN9z0N2DfScb4mZ+W8atbVD0lTe0u3P7rPLETPfbopZO3eWWj2t9qyjjUyNqRLruyS9i4T6UVcvz6a71tuxJbPN1Ni+ZFs2Xdn+i2y6d721s/RCk5f85iEz0b99839m0z37rM0vlI7Lpt/xgskq9m0vtzbf/2Q2/Z0WM6cCwKVrrC9qHzGzeTJm92NiwvpuG5mFTyGT+G7Yj3k2a0/os/56ocT6pS5l+V10L8toE/NUNXPsXrrHU1JmguW/DO9IWD8+na7Nps9Km/m96w07VynJKrTN5CnabX0SqyXpwbvPtTJ7t1uZN0wig+o6S++ye1lavs7SabuW9A5rQ1Wa2rDH7mXfBktPuvV8SwPQ3Wb6lhK751IzOpvWCmtTfcmSbLrmM1dZWzutj9BkY6T8I1dm07FZdv1yFr1b6P5d9L2fZ9O19G6YSX3K8oOtCVsFP1PMhP6kmnyiNGGyBL7ft06352ntSrtPE8e0ZtNltTbmKt8xMZtObbbnUkptrMdPnopCSDm9P/k9WWrSkVm7dqEQMsP67f1fMolLzZklOeVmddn1X7WfpA7UjzwlSDTZ8dpjXyTGWJ/2vWH3NVZmz018xpRs+pRXdmTTY8+3d33fLmtD+SWzsumGbXadsXHW7+i18uO/bfe7gmQVb5H6bHqT2LnWwu4ly2iUZFkxsbuf7sfZQZgM31W0wEFQ1cUi8iVEE0TObwfwIIAHRSQN4F0AlgF4P5W5WUSaEE0igWg1l1dZJyKSGbTAZAicz8e0hElnLSItcQuAC/OOWYLIO0qdiCTCKjLXdSjX2xo2KF4BYHk4z4NBhvFsuNYmVd0J4B8zx4nInwCQRhN3AVijqv9GeR8P9UJVnwqbA5sQrVq/iYFNkNM+QT6aDHBVeOpRbIrjOM6A4Mmx4ziDypcB3AlgHQCIyAUAVqrq3rARbQ6iyeliAP8iIjep6oJwbAXVswjAT0Xk/yLapDcTwLOqmhKRNhGZB+AZAB+G6ZYXAbgBkdzjGgCLg3eLx8K5Mr8yLgNwW/juyVB2YTj2l/1dnIiMAtAbJsfliFbFvxq+fgiRpnmJiMxC5OZwV/BWIap6QEQuBdCnqitDffMRTeT/Ju9UmwBcAuBHInIKovnWThRhQBNkPfgquXNkHPKq8MF8kxabbLvEwnEcx3GGDOVBe5vh0Yxbsgyq+rCI8ERuOoAFYbNcDMB/A3ggTE7fC+AOEfksosnfAQR5hqquEJGfA1iJSI5wc5A2ANFmuB8hcvP2CGxj4A8QSRHWIlo5vi7UtSesbD8Xyn0xs2EvnG9hmKi+GOqAiIxFtJpdAyAtIv+AaHI/DsA9IhIP1/NzVc2YN+4GcLeILEfksu6GcJ2jATwWVpS3APjrcI6JAP4ZwKsAXoi6CN9R1e8D+B8Avici/4hI9vER7cfXsUssRi6HNtk+45uDdLpv53zKeKxgWUX8lAuy6b5nFlFhG1exKWbl0U7zSJEjsSgz021UsZnqLq4yc1vTLNvpLTVjrd4dm7LpWJOZvnV/4RWwMSVmXr2adokL/WA8a6aZ5NKvm0l4b6kdm6w3K864lJn8xqvVyRKR8eSVYTeZBSeRTKCxjw7YbSZ07q+qC032oOShYc8WW1gom2ZShb79dl2lXXYPTmsq3D9Jsl2/f4OZ5cvnVlPayqf32nXN6cndJ3zKKfY3oLvdyqXbrU1vSdn9X0QeKqpoRz330X6rBrPSVn4lrE/LaAyW0PsyRUb0Uqo/RabWbrKzt8YKvyPZM0ZNvfXpnu3mKaB6l0kyJEHn2mn3JkEeRtLUZl232k7WYfdAammnfaqwRwDdb/Wn9nVn03tft9/XoyfYM9O+jvqErIpSXw/da14X0s8/YSfhZ7bOzOC9aWuTrl6RTfettvPFJ42yc5TYs5ImqZW+YRITlh+w94mqtLW7hHQCbeS9YBv9RUz02rO7IWnt3KzWv6W0z33rWnuXvBK369241dpT1WLnfXuTWZ37Wi1/62qTSYx+2Tx+JMppXNLrsPwkG8dp8tyTarV0yVgrE99vMofVG6xvx9A4A4CuHpJFJayu7Z02ZseW03uDvFXEYtbWmhob7729dm0p8sbTsMbG9d79JuUqX2EXum+33Y8JCfOk0rbZxkT1JJICkUqng6Ug9F5dG7O2dRTxmDFQBrqMqKrxIvkX5n0+h9L3IvJNXOi4bQiT2CLffxnRinR+/lIApxbI7wLwgSJ13Y1oApufvw7AeQXytyNXypHhZQBnFTlHD4C/KpC/AcDJBfJbUFgHjbDCfEGh7wrhEovhS9dBVpGnHqN2OI7j5EyOHcdxhju+gjxMOVjozObm5lsLTaBdYuE4juM4jtM/voI8QjnU2PPzXymqTx8YeV4ssoFAyFsFyyoS57/H8pcvoePIZNtDEosy3mcAoKrOypHJNllqng/idTa8pdrM/dJkLhmlhny38g/ASjPnNcbsGk5uNBNeKk1O8i+w3dAXVps7yR3LbcNw+fvMC8+5Yy1oyvjFZmEbdZKZLFteNZNtb6+VmTTdVuqUzMa6qw6FiE2hTctk6p50lZn046ebZ48SNtGPt2PHXmVymdipORuqs8yo+l02nbjQAq/oDpN/xKOGAwCufivQ8wczrZdeZIFMlGU1n7fjW0mVMUXs/jWQJ4p2KjOWAi+cNNNkIueusXFw+nirv3KMyV/YQUDf81Z+LHnVmJK2cbqTZBv1U+xeKqlfRp1q5RMTbFwmLnq7FdpHwSjMEQxQY+MMSRuX0mSmcnSQqbzS6keJtU1IvhQ7aaqld5gMaHS1uTiNn25eA+qb7GLS6zdBGsI4jcWgO+35kAlkST1A9m4iZ9GFpFLxCfZMS4WNWW2nsUnvhGJeHVj+spMM2RVp64su8kZQRc1pIElKLQXH2EnpUjrXmm6THrSRQ4hKekbTZPlNd9nJ9m0hzzRJkkZUk9eEMgqcxMFjakm+kjCJTLqD3LKSpx/Q3/F5N8WwOISUWN9RjQkl1r+jx9rzvn8PvTdqTLaTLCVJBz1/aZJblFXb85RupfdVnPr9AvMMMr6jNZuuHGP3QMTalpxu78bEDhpb9Lwmx9p96l5B453kLymSU/Ucghvb/rxVOCMPX0F2hh80OXaGIfQe4cmxM/zITo6BnMmxMzzITI4B5EyOHccZYCS9tKaH1D/HcRzHcZzhioik8iLp3Rryl4jIUirXHPwDQ0QqROQnIvKKiCwXkT+IROY0ERkjIj8VkXUi8nyItnc11XObiKwVkdUicjnlnxPqWysi3woeMiAipSJyX8h/RkSm0jE3iMia8O8Gyp8Wyq4JxyZDvoS614rIyyJyNh3z6XAtK4J3i0z+GeEaXhGRX4lITci/NFzfK+H/i+mYJeH6Mn06+mDXUogBrSCnXWIxLGGXb65BdhzHcZwhQ3+R9EaLyJWq+khe/qcBvKGqpwGAiJwMoDdMah8CcI+qXh++mwLgPSE9B5GHi7mI/CA/ISKzgqu3BYgi/j2NKAzzFYhcvX0cwF5VnSEi1yHyT3ytiDQA+AKAZkTOO54XkUWqujeUuUNVF4rInaGOBQCuROR7eSaA80Pe+SJyKoC/ReT5ogfAoyLy36q6BsD3AXxGVX8rIh8D8D8BfB5RQJK/UNWt4fjHkBvS+i+DZw6m4LUU6fuBTZB7e7YUdJ3hDB2K+D+eunTp0o8UKv+5mYMTSW9h3md9fVWUoOhubFpn3XHi1Ast/+mHrHyKNGGsR853V9VlpsHKUaZbjY+qszKkhdYDpr3NOUcf1Uv6znohXek004a2bbH82ChzTVTSRJHoSLLGu/y1w87V2WXnYvdNbd1Wf22ZaQt7O01blyglzXaN6aZZZ4jJJBCnvouNt+hmiLNem+rhfi+19mjb/oLlS04nvTNrZBtMY5hebq6r0Jer6dNeinDWuh+FqKdbtjxu17MnZsLPvWKFqtOFX3Or7HIwbQdF++rpLFAa6CAd54qk9e+BPrvOTQnLbyZNJslc0ddq19y5xfSTdXPMVSA4qh7phWU8pUknn171quUn6XprSbNbSXp70nfzvex9ZX02vecFcifYa/ds74vW/tH/MM3qb2jIibiXftmiObJ7wfhsG4+9pPvUXXZs98ukc2YPj6eQpGOtubbTvfbMaY+NiX2kCW+kP3fddEN2UnftIjd9aYpot1Ktj1rT9ixWio25AzHTtu4nN2fdpEeuIFeB5+609L59NobW9dl9mrHc2hCTwvrXMXvp/nVane17TRNdP57cL8asnzeUmHZ9b5r06gCmtVjDWyka5f6YvX8mtxXW3zfBnuMt+3LrzdBB+u2qxXa/N7bYu7Rxrz2Lm9qtntmLbS/Blu1WfkKnjYOONnrAYe3sTFvb9lH0vA4eaEQxN7nF8gd5kvR1RGGm8yfI4xCFV860ZTUAiMgliMJK30nfbYT5Yb0KwEJV7QawPvg2Pk9ENgCoUdWnQj33AnhvOO9VAG4Px98P4DthIn45gMczvo9F5HEAV4jIQkSBPa4Px9wTjl8Q6ro3+B5+WkTqRGQcopDRT6tGPhRF5LcArgbwNUSu3DKbWx5HNBH+vKraRh5gBYAyESkN11aMgtdSzBfygCbIzrDgTf6PDxZUxHEc50jhybHjOIdMfqCQf1XV+0L6KQBXi8hFACieOu4G8GsRuQbAbxCtGK9BtDL8Qj/nmoBohThDS8jrDen8/MwxmwFAVftEZB+ARs7PO6YRQGsIM120rrzvlgP4sog0AuhEFDY7s/q7HNEK+C8R+WPmUNkZ3g/gxbzJ8Q9FJAXgAQDzwyS42LUUjMs+IA2yM2zpam5uvt0nyo7jOI5z7BCRG0VkKf27Ma9Ip6qeSf/uy/t+PqJV5CyqugzASYhWmBsAPCdR6OT8c39XRF4SkUy0u0IL3NpP/uEcM+C6VHUVIrnD4wAeBfASokh/APAxADeLyPMAqhFJMLKIyNxw7N9R9l8G+cnbw7+/Psi1FMRXkAeBYmGdD4Opg1DHm+jP5dv8+YPk5m1hrp+31PI1AIDY5i3ZPI6Sx+7cWFaRmPdey//Tg1QhyR/aW3PPTfKAigssil1s2hQrQxG4sMXMyDJ2jOXvp0AHCavzvF6KuHau1Z+cZOVl8mQ7tN3cbJ3zO5YiWDS/xDQzbU7eZab15Hg719w6uzcc5Ck5xUynSFC0udfMxR2qzAVWrMFcZmGP/VDmaGWJUotwpTvNfCnjrc05sg2+HwfI/dtU6nOSWLDrLam2trGbMwCQCro2MsuzBeySGuuXdR1mXj2jy8pUUPm6hN2PytPt3Ge9Ztczbprdp1jcji0bZ+mZT1FEO3LpNYncT1X2WP1VE0jOErdjy062Y0t2k5yD+7TW5BNC7s84DYqqpxQdTcaYnAUkWUEVuTqsK+wKLjHd7nfdfltQik+yaIwNJfSckHRJxo2HbrFjel61+9Sx1e5/XamNuxKKapbeafegc0dhGRGT2mDPTc/rNgb7DtjfwJNT9s4ZRXKeCWRyH9ttz/qqpL0nxlD5yaV2X8m7IyrpT2hNytpZQZEQ66j5JfSnuLTRvmgg14q7t1mfJuJWprePxgHJLXi/eppkPclSG09xisKXbrX5xeReanOem7M4yUTq1MZRBV1nVSmNL47ul6AIiVpYdBDvI1kX9emksSRRq6JnaIe1p3qSnWxirNXOW08u5agvQMO9gqKSltH4Q4wlGYOHqt4F4K4jOH6xRCGd5+XltwN4EMCDEoVbfheAZYhWUzNlbhaRJthqbAtyV2AnAtga8icWyOdjWkQkAaAWUcjpFgAX5h2zBNFqbJ2IJMIqcqG63nQeVf0BLCT1v4SyUNVXAVwW8mcBeHfmYInCSv8CwIdVNfsHUFW3hP/bROSniLTN9/ZzLQXxCfLgcGhhnQ+Cr/A6jjNc4cmx4ziDypcB3AlgHQCIyAUAVqrq3uAhYg6iyeliAP8iIjep6oJwLAcRWATgpyLyfxFt0psJ4FlVTYlIm4jMA/AMgA/DdMuLANyASO5xDYDFqqoi8lg4V8Y5+2UAbgvfPRnKLgzH/pLq+mTQKZ8PYF8IjQ0RGa2qO0RkMoD3AXhLXn4M0Ur6nSG/DsB/h3P+MXOBYeJbp6q7RKQEwJ8DeILO/6ZrKdbpPkEe4hzG6vTU/upwLxaO4ziOM2TI1yA/qqq3cgFVfVhE2Nw7HcCCsFkuhmii+ECYnL4XwB0i8lkAOxGtn98S6lkhIj8HsBKRhOHm4MECAG4C8CMA5Yg252U2Bv4AwI/Dhr49iLxgQFX3hJXtjHzji5kNe+F8C0VkPoAXQx1A5B3jXQDWAugA8FG6pgeCBrk3tCtjqvqQiNwc0g8C+GFIfxJRiLLPi8jnQ95l4XofC5PjOKLJ8ff6u5Zi+AR56DOg1WlehaaJcXEvFvP70/MfOgvxltyMzI5/sp3l7MbP8Uphpj2WVSTe+j7L/+P9Vj4/ql5bq9VbRx4Y2BydIPNZgsyCJC3I8WhBcoJKilrF9cdYtsFtovycnecxkhlQBD+WVcQaLL+knKJiHTCTopRZ/VJO7Wc6yHRPUdl0N+1gf8zOO52io3W9bNHUKiaZ1xyl9oNkJErXKxy5rZdsrp0U7aqCIqA10P0Ccu8Z3RuOYFVSRpHGOsyMevnD9q7beP2CbLq6gaJoNZmEgAMjVE6me1xWeGtGfZ316a6d9pu1qtKus/6AtblknHk1qCorvLE6PoY8S/A4IxmK8rjkMddl7ZFKO5fUFPYakENl4TIctS4xycrEJprEIidqHd1jGT0aqWXmuaKb/pznuK0nWVCCPCIUW8hJVJI8YJ9ds1J/de6yekoqrL/Yi8zMpMkwqqvtfrS12T2r77X+HUv7fUrIi0Mtea5giUUDyRDqU1YnW/pJvQOhv77sfadrO3m36CBvOpV27bsP2H2aOs5O0LXajo2XWKenOlnmYPlNpIuoLMv14tDdaw3sI+8bQpJNvmX81OS89yjdk4pTGStS1kBjnAze5eS0S9N076mpVeNIVkH5LJVi4uTBpIRbfQjuJ5SuXageHrsDjbWnqvEi+RfmfT6H0vcikgwUOm4b+pn4qeqXEa1I5+cvBXBqgfwuRJvjCtV1N6INg/n56xDJGvLzFcDN+fnhu7cXyf8mgG8WyJ+PSJ9diHMKZfZ3LYXwTXojm8zkesNxbofjOCMcnhw7juMMd3yCfGLgXiwcx3Ecx3EOEZdYnAD068Xild8Pzklm5FpNYmOCdwEKSJCTZklCkSAgLKtIXHCN5b/waO65m8yzRN/jdj2Jc8iUX2YmSdTUZ5O6lgIscKANKt/DprTdJFcgLws5ATjGmNeI6loK/jBhqp2LgjbEydNAbLyZstNr11l+E+1gH0sBPmj3+9bvm3eAhpOtT8tnnGRtpnNNPIM8bEyyMuWjyQtCk51LeszkLGOsnSgnmQBLKfge95EpvsrKS60FfgAATJ5J5yNphPw6m161xfq3iuQQ//Vu8440nval8G72WpIrjBprbU1MtTERIy8QurvVLuc18+4xudPM9Q0TTG7Su8HuU6rNrjnVbmbtkll0/RNIunDyadl0jnShlvqUvJAgaWZ8ltroARsTKCfpBcuMYiTB4SgmdG9iNeZtg+UM7Pml70+5Eq2+nVZv+RTri/32mCG10SQ8PWl6bursfNVzrH+FPaz02v1LTKJx0LXdypMEaS85dlnRa893/U7yskC29UZYfjVJDsanTeqwm7QBFbTGtCtmf067aOmpiZyTVJJ0q3ev1ZPqsfSUMrvfNXX2DJTV2LNb22v9HKuz+1ozxcr30bBhSpqsnSm69vxAJFNnmdZh89o6a0fSLqhxvI39/bvIownVVZK0e9bVYfcmTkF1crwDbbd3bN9uu56KSdbWxFR7Rvs2WPkS6ovkWLrH2wsLH3qRLpjPsJRCUFhWkVP+oDU6wwWfII88umileOpxbIfjOCcQPDl2HMcZ7rjEYoSxdOnSryxduvT2jPa4ubn51oy8wiUWjuM4jjN0EJGUiCyjf7eG/CUispTKNYvIkpCuEJGfiMgrIrJcRP4gIlXhuzEi8lMRWSciz4vIUyJyNdVzm4isFZHVInI55Z8T6lsrIt8KHjIgIqUicl/If0ZEptIxN4jImvDvBsqfFsquCccmQ76EuteKyMsicjYdc0Vo09pMH4T8+6hvNrDHj36uJSkid4nIayLyqoi8P+T/k4isDOf+jYiQ4/434yvII59+vWDMuHrhUTlp7KRgsmdPBixzqKqzdLEgIGSiZ1lF4uwrcs6VWvNM4UbsM4fzqKXzUQALIY8KmGgyA952v52ekhxZRR+Z58jDQ7rFZBXbdphZd2yXmb51qwVQ6XvV/McmeklisokCdiTNXB1nbxLk9WH8R2nLdzV5KZg225o52kyZZeSxQCZNs/J8P+rMjJ1jOqwn6UUJmcDZo0ilySdyjJHpPLNmK21bp+NRYubSFN2PXjJ57hG7H7upLzRl9zh+wM7et8H6dM0mM9Oe+ap58cCrVibeYCbhHVusT1soIMiB162d69KWP3qdyQR6O61MyVgzCcc5CMhEk7xw8JUcCQT3HY/pN6j9FOQm516yK4kOipzAnjFIstO33txQlDTYvUxvN4lEfMpYSgOp9SQpomAZyaoDVM7iEaTMtz9619k46N1j9yyWJKkKqbEqa62tqf12bdJh6U0xkyWUxe06U+RCgh087CDPB1Vqz+6rMZMXbU7ZteykQBNlpdZHu8g7xJpkYUnGyVtsrLTsr6by1s4p20zyUrnN7mUH7LwzWlstv8PasLvLnu/RFdZX9eSB5mV6dkv6cj3i1K2269+bIM8P9Eqved3O1xonuQbVw8FRKPYIOqnQ+56z6MM7XjOpTSN5l9m61tozfpc9o2+ss/zKKrtP+/dbPb1pe57aU1amW+j5INhbBb97dMA+Kg6JTlU9s8h3o0XkSlV9JC//0wDeCNHiICInA+gNk9qHEIWevj58NwVRqGaIyBxEHi7mIvKD/ISIzAqu3hYAuBFRKOqHAVyByNXbxwHsVdUZInIdoqh114pIA4AvAGhG9Ip/XkQWBfdsXwVwh6ouFJE7Qx0LAFyJyPfyTER+kBcAOF9E4gC+C+BSRME8ngt1rVTVazMXLSL/B8C+Q7iWfwawQ1VnBf/JmYhSLwJoVtUOEbkJwNcAZOvPx1eQHcc5fvDk2BnW5EyOHccZDL6OvDDTgXEAsqssqrpaVbsBXAygR1XvpO82qmom6MdVABaqareqrkfkj/g8ERkHoEZVnwqu2O4F8F465p6Qvh/AJWEifjmAx1V1T5gUPw7givDdxaEswrFc170a8TSiiHvjELmEW6uq61S1B1GAkav4gkO9HwTws/6uJXz3MQD/Gq4/raq7QvpJVc38WnwaudED34RPkEc2XSAdcvCL7DiO4zjOMUBEbhSRpfTvxrwi5XkSC17RfApAt4hclHfM3QBuCfKJ+SKS2d08F0B/wQ0mANhMn1tC3oSQzs/POSaEjt4HoLGfuhoBtIayResqcP5C+czbEa2ar+mvLoki7AHAl0TkBRH5TxEZgzfzcVgwlIK4xGJo0VVAJzz1cCtbunTpV/Lqe1NEvrXX/TA/67CYsfCjOZ91cxi37A2ezclkugdJDxCnIcnmdiDrraJv+RJIqZkP4zPPz6ZTe/49m84Z3Cz1YKnDHlvBlCpaASs381w5W9VoN792U8ARajcHVWisXWVlahqySRllEoXEdNtuHptuMo94m7WTA0dIPXl+IK8MHY+Yq4Cy0+1c8dlnWPkiAVpyIGlDTr9R0Bchc3VOEBa+r2S+lbrR0F3h/VtRBewL/V5ZldMOabS+U/IUwbvHN5fYOKqmneTtOT/3rfyoXg4YQ+buOHlQIG8Yicl1Vp7GbyJu97tCD777Pd1nx/b1UOPYzkxBM1BJXlT4PhFKsiH27pDeYbINoSAYKLFxKVOLSC9YqtFnUg1JUpAf8t4CIPssa2cX+tab5KJvF0mE6LFetdLG+9yE/R3uU7v3PRRYJN1n5257g+QpZVZ/RbtdJwcK6WqzsdlJXgrW0f2uoQAlfVLYbF5KY6iH6knlpMmLBWx8dFGZCpJDdFD+3nZ7h+2i9wfFvsmRE/VQPAnN8aZQOM0BPfpS1s7uA9Y/V9buxMI2e2b5jTCmz47vpnaU0tBnDz85sWCKyCqYnAAqVda+8krrxwO77N7ztXXts/7a22l/1krLeguWLyaNSB2CF4uBkn8mVb0LwF39HNKfxAKIgmF8DiEaXqhzmYichChy3DsRSRLekn+giHwXwNsQrSqfi8JONrSffBzGMYNZF/Mh2Opxf3UlEK0M/1FV/0lE/gnANwD8dfZAkb9CJA15R4E6svgEeQhRyB3bIGysGxleLciVG0+OneFBdnIM2OQYKD5Jd4Yu9EO32OTYGR4Umxw7QwdVXSxRSOd5efntiEIvPygiaUQhnJcBeD+VuVlEmgBkNvu1AJhE1UwEsDXkTyyQz8e0iEgCQC2ieIctAC7MO2YJgF2IpBOJsIpcqK788ySL5AMAwnnfh9wIecXq2o0ojPUvQv5/IlotztT1TkQa5XcEWUpRXGIxwsn3anGcm+M4juM4zsD4MoDPZj6IyAUiUh/SSQBzAGwEsBhAWdiAloF2omMRgOuCZ4ppiDbLPRvCU7eJyLyg9f0wgF/SMRkPFdcAWBx0yo8BuExE6kNbLgPwWPjuyVAW4Viu68PBm8U8APvCuZ8DMDN4v0gi2ny3iNr9TgCvqirLQIpdiwL4FWzyfgmAlaGvzgLw7wDeo6o7cBB8BfnEorDd1nEcx3Gc40E5uy4D8Kiq5uwXUtWHRYRESJgOYEGYzMYA/DeAB1RVReS9AO4Qkc8C2AngAII8Q1VXiMjPEU0Y+wDcHLw+AMBNAH4EoByRNjejz/0BgB+LyFpEK8fXhbr2hJXt50K5L6pqxjx4C4CFIjIfkeeIH4T8hxGtdK9FtMr70VBXn4h8EtGkOw7gblVdQdd7HXLlFQe7lltCm/8t9EFGA/p1AFUA/jPqOmxS1fegCFIsGoxz6DQ3N9/enyu1oVo3AKz91+sGZQDMuG1hjh7oa1P+SgGghiReF1dZFLBkqRn0KkeZzrXiApJS1Jkms2/VhqLnTu0xK0nVgruz6d77/m82zRrK1kdMa9xwk+mX+55eZpWSNnTJz80F0yWfNbdLqU0WvSs+zfYTdDxquuNtr9o1TDjd3Hix5rVrm92C3k7S186y/K7N1pHJesuP19hv3M1/NOkJR7jiSHKvrhuVTf+Q9HrzyD3Zirjdj/9RYZrX/W2m9TvQazrGA2pt+LN/sjb0rTVXdvHRpptu/6O95ztbScsMoO4U0rC22jWf+Yy5dVr1QbMEfvVR01pfRdHFTjrbZBxKlv+yU638b35sbT1zPLkuKyGXYWRj27rJrmFzyo6dWW5a6TWdNlbeNteun4KsITmVorI9bedKk0608TS7B9wPyfGmyexYY/cvUWljorzZ9qOkdtj9i4+za0cpaTspWqB2WZ09620Mlc6xY9P7TVycOGUqmO7fr86m73vW7hMrPd83zRaB3v+6XfN/ULTIl96wcVqn1qZJo+wZen2nRT9kF3+ltE+giXTBk8e2ZtPl9dS/XXbskxvt/XOy2PU/mrDno13Y7ZfxsaT19Utt1rY+0ulWkZu+C86g8UFrfIuftn6rSNt7soTOtiVhz82lk7OWaLRsrMumS0ts4DdR1MieDhuM+/fbWEwmckUWrx6w8T4+ZmsrO9OmfZ9Uan3U1k1a8RhpsJN2D9qpTEoLSUiBpmobX6NmUKS+FtLcc3TMCda29h1W/75We0Zv7LV705Sw/SWTYpY+QHr43+yz/RxJ0of3kHZ/V4fV2d8f0b6eLR5cb5jiEgvHcRzniOHJseM4znDHJRbDgOCe7U0eKA6Ho7ka7TiO4ziOMxLwCfLwoN9oeEfEUVr0mdsVmavqxMxrTbPMBB6vs6EXH1WXTcemUeRHMpsmziEbJEfIQ+4gZllFybX/lE33/f7n2XTt/nYUQmrtHLHJZmqtYC0/uySjSGHoMZNt2Zm2M7x+j0k7Ss+lDbfsMi1pptYKcq0lpXZlpT3Wd4lGioBXQS7WyJDduc9MsDXjTYJSHjMTYZ1YmWk9dl3tZVanFLExja4rLOFgW3Hi5MnZtPbaOEia9RxCcg4AKDnFzMuxLSbJiT1T2Eo5nmQJo8eY1CHFngPpp2VsoskPZtdtzKbr5lLktlo7IH3A2tfUYeOmdJ/146hJdl7dZOeqvMBc1qW2UHS+ydaGul12QGKSyTPi0yyyYQlJIGScdV71FJKRsEvAJpNDJCZYG4TcuWkbyX0m2FhXiqRXVmume3YtmOty0KQEZe+ZB91r4/2iFXZt3V02lquaTXaUXGfjevR11o4/e3qDnYNc8yXPMCnTqM0m1enbZWM8TTstevbZ+CipJKnKWGuPkiTjre32rNdOtTpnLbVrbqX3UhVpR8ZfamOi5Ckbu4mkPVtlNVam/MKpKMQ7k9ZvsRp7RpWeUfYYUna+PTO1rRSBkVwUSp31LbuqrP69yV2SE3PlTuPa7f7Hqqy/ZndYO+JjTKKg3XRuOoeQW0btpfvUYdfA91jKyGUmucZMTqRojKNtDGm3Pa9lJBFqIl9zlffbO20CySqmqck2dlBUvRjJYmLkTYyjmAqVcanqyMQlFo7jOM4Rw5Njx3EODRFJ5QUKuTXkLxGRpVSuWUSWhHSFiPxERF4RkeUi8gcRqQrfjRGRn4rIOhF5PgQTuZrquU1E1orIahG5nPLPCfWtFZFvhQ2ACF4i7gv5z4jIVDrmBhFZE/7dQPnTQtk14dhkyJ8d2tMtIp+h8ifn9cF+EfmH8N3tIrKFvntXyC8RkXtCm1eJyG1U37Ui8rKIrBCRr1H+FBH5TfhuiYj0G0nPV5BHMIWkGS6xcBzHcZwhQ3+BQkaLyJWqmh/x7dOIosqdBkQTTAC9YVL7EIB7VPX68N0UAO8J6TmIPELMBTAewBMiMit4f1gA4EZEIZgfBnAFIk8WHwewV1VniMh1AL4K4FoRaQDwBUQBNxTA8yKyKISd/iqAO1R1oYjcGepYgMgLxqdgoacBRKGyAZwZ2hhHFEb7F1TkDlX9Rl4ffABAqaqeJiIVAFaKyM8AtCHyVnGOqu4Mk+hLVPU3iAKG3Kuq94jIxYjCUf81iuAT5KFPF4DZh1KwwIR46tKlSz/S3zGf+9yo/r4+ZBbmfX7LvMg8VzpvajZPasZautrMySilJpcUjtAmZRQchCN/ATnR3tLrNmTTLKtIvP2DhRveQWa7udTNo82Uu7bEVsbmkQlTO0geUEESkG1mXm3dafkNjWaO1p1mHu8lc2mixow6fVutfvbEEKsi0ySZ9ia9g02wJGmYZG2Y0WdtO/k1k3zMHmXm6o7dJhEZ/TYyff7RzOEs2xBSeWiftSFG0hmQxCIxyu5lzy7SQgC50RbJNMvmzO711o79ZAPr67HynbSYGYtbH5XtNXlOTzdFmasoHFGLZTQcxa1vj+Wz5xFhJQh5isi5liqSobCs4uSpVqaaouqxWXfqTErTuVpNwpHzDJGJmp8TjsLHUSC5+UrtlLEmC9GNFN21jqJD1jUArTauJ1xlY0qSZDY/7VRL//wPlj755Gy6jCMM1pK8g5792MwZ2XTJATLvE13fW2blaZxylEC+5spG66NEk/VjQ5qDoNi1cETF+BSLFli7yfqoZLzVE6N3XYz6FOTdouRkerbq6D1JsoVEt7UzNoki8vbYsfwsSpV53+H7XbbLnofY6DrkkC4iG6Bzc/v0gD2XOceW01jrtX6kO5wT8VF3UlRIOlYocqlMsYU/aSfJHL2HdW9rNp0Uk84k6I5P6bV2pkpyWjRU+DqiKHr5E+RxiPweA8hOMCEilyCKmncnfbcRwLfDx6sALAwBMtYH123nicgGADWq+lSo515Ek9hHwjG3h+PvB/CdMBG/HMDjGdduIvI4gCtEZCGAiwFcH465Jxy/IPge3iEi7+7nmi8B8Hpod38ogEqJgoiUA+gBsB+RC7zXVDXzAnoCUfCU3yDyF/2PIf9JRD8miuISiyFOiK634RCLl2WCgnhgEMdxjik0OXYc55Apz5MXXEvfPQWgW0QuyjvmbgC3BLnCfBHJ/HKeC+CFfs41AQD9wkVLyJsQ0vn5OceEyHj7ADT2U1cjgNZQNr+uQ+FNPo8BfDLIIu6WECAF0WT9AIBtADYB+EaYrK8FMFtEpobJ83thEfdegkUavBpAtYg0FmuIryCPbLryQ1W7xMJxHMdxjg0iciMi6UKGu1T1Lvrcn8QCAOYjWkW+JZOhqstE5CRE0eveCeA5EXlLgXN/F8DbEK0qn4tcg0m2un7ycRjH9FdXvwSt8nsA3EbZCwB8KdTxJQD/B8DHAJyHKEL6eAD1AH4vIk+o6jqJIgneh2jn+p8AnBTq+gyiFfCPAPgdIikHm4dy8AnyCCasPvfL/M9VHqzIoZGnsSi//mIAgMw4I5unO2x3tjTZD0o9QF4ptqy3dMJMaqgxeQKSeR7vusxM3/rIU9l0MW8VLLfo+d7/zqZj511g7UuaDOD3cav/Hf9pW+QraszU2FBpnih6N5uHgFWddp3TGwvLWSRhP9x5t/iuF800WzvazJclvIu80e5fx4ut2fSBXWZPriuzYzlgRT3FBaios2s5L/mGlR9rbU6Umpmy/DwyudPO8d0P2LU03UjBJdaYtSw2lsz+K8ksm0dstN3zGKx/f/eS9WmMrLf79tm42Ntj6dEVdv9qt9kqZ8NYa3ecvT2QWZfN1BW7NmTTY+N2jytPNtNsLQVUEJJYxEaRZILkDYmz5lr5WfSstJGZuZFM8eVmKo81mURG68mjBT1PUmdmf3SQPGgvR08heRDJmmIki0GlmdJZ2oCdFiwHAHS/nSN+tl0PSwhQXZdNpjiESBMFCSqlNpWQNqLVJEJy8jl23na7fimx/l1HcpCTYDIUSRaWL1WcWkll7GGZVGvX1bbf2l9CEqf0Vqs/UWfGWe2xa4yNJ8kEwd5DWLYgjbS4RTIzISkS9ye6afyx7ITLj7J+Tu8jiUs1ydgAxGaYJxXdTdYBkt6g3J4zSdJ9SpBsh+Qdut+em1zpkI0p3VLYsh4fTwF8pky3Lzavs3SDycNkjD3TcQpCV0aG8wqSgsQHyaCePzsMk+G7CpU9FFR1sUQR6+bl5bcDeBDAgyKSRhShbhlshRSqerOINAHIbPZrga2mAsBEAFtD/sQC+XxMS1iRrUWkJW6BhXPOHLMEwC4AdSKSCKvIXNfBuBLAC6qa/SPEaRH5HoD/Ch+vRxR1sBeRbOOPiPTQ61T1V4jCTWd+oKRCXVsBvC/kVwF4v6rmusUifII8PHjTSnARph7ldjiO4xSEJ8eO4wwqXwZwJ4B1ACAiFwBYqap7w6rrHEST08UA/kVEblLVBeFY+kWDRQB+KiL/F9HK60wAz6pqSkTaRGQegGcAfBimW14E4AZEco9rACwOIa0fC+fKrGRcBuC28N2ToezCcOwvD/E6P4Q8eYWIjFPVTPjbqwEsD+lNAC4Wkf8I1zgPwL+FY0ar6o7Qtv8PwAdDfhOAPaqaRrRKbaF3C+AT5GHAoawEA0Bzc/MTB5tIu8TCcRzHcYYM5SKyjD4/qqq3cgFVfViElsGjjWgLwma5GID/BvBAmJy+F8AdIvJZADsR6XRvCfWsEJGfA1iJSFpwc/BgAQA3AfgRog1vj8A2Bv4AwI/Dhr49iDTCUNU9YWX7uVDui5kNe+F8C0VkPoAXQx0QkbGIVrNrAKSDK7c5qro/eKK4FMDf5fXP10TkTEQSiw30/XcB/BDRhFkA/FBVXw7ffVNEMiasL6rqayF9IYB/FRFFJLG4Gf3gE+SRRWKgE+B18zcMyoln5H3ufnAJACDe+HQ2L9ZEu9FraFc1B9/gnd1kita1r1oZ9hgBQPeQ2fym8ws3kLxVsKwi+bdfyKb7Hr/H6iTz5CyY6XHCO00SkLYqEWuqy6a7nmrNpjvJWX/f76wvejfbwbvWkLeAtWbya5pmZTasMLnBuJSZKRNvmHWo6u3Wd5Vk3u9dRQEfKGjBa0k717m7zFT6TJuZdd/XaabfdJ+ZIHtWmtyida1JQUZdRg78ySwbG2N1Kklfqi4Yhe2/tOupoB3s6b127h7yIvCOc0xu8cIKk1uUJMwE2/xOM3d3rKHxRVFDlq43rypn/8qkAuzzP15iH1avs/7dL/bqbFhnUoQ3yKXHhZvWZNP7tth5m06zv3OpdvKCUPOMXcupJJ8gzynxM80DROqlZ62hSbsHMsramX7tFcsnjxM53g7YfzF5KEi/QcFNzrFnQFtMRiPTzdQtdQ3Q9Wbu7n3ij9l0rNquPz53lpUhLxCphx60/I02JkpmkKcMkj3o88us/Foaa1UmJyiN2Ttn5zaTLkxqaLVj22xcL3rBzvWWSqvzsS7L31FG94x8MZy92sbrn2hcNsL6tIqkHTM/tNau5YBJI95YbOO1dsJrVobUKD3tJOs5x96Tqd0UJYWCb8RHkXSE3kldG0lntXEnSsfYdy0/s3ddZTV51iANgcQKS0s1bYWqxtk1d+4qPOWomro8m963xsZy44U2brpX2ZhITl5lbSDvE6m9dv3aZ23bRWme9UiZva8OwJ7jNEtnSD7LAUHYsw6OIFCIqhZ0n6GqF+Z9PofS9wK4t8hx2xAmsUW+/zKiFen8/KUATi2Q34XIpVqhuu5GgVVYVV2HSCOcn78duVIO/q4D0Qa//PyCbtiCxKRYuz5UJP9+RJv7Dgn3YuE4znGDJ8fO8IYnx87wgyfHjuP4CvJIYwN/8EAhjuM4juM4A8cnyCOLDXmfyw42IT7pc5f39/Whk+fFovTaSwEAMt5MsLqfghmwvRAA+mgr+f5g8u3tze50ltFjgC7yeDDxpGxSqrZl032/NRmD1Jp0gYOAsLcKllUkLr3B8l96Ipt+FeZZo/U5CiRQatdQPd5WQlvfMHP0DjKexcbZDusYmQLb2s1EWllu9e9YazKU/b1mum9ot8e2tMZMn7GZ1NdtZpYvOdUaQSEk8IHlZkIef7Hl//kW2/kfn2OegxrbXrJ8ctQ/enaut5DedcHTQEsrkufPoi8iE6bUVUPq66Lz/gOwm4I5CHlpSNCuehHzrLFumZm7O0rsHrzeaSb05FM2ng4cMPPy5MrWbHpXwqx5yUryDFJu5tKefWZkayize3ag2+ocXWNSmEQbBXxosGPjO8gsT4FSEpMoiMQsG9PotLHO3jBQRd4kTpqTTec8W+QxQjhQCMPeINK5z6J2R2MqVlsD3RI9W+lXVyM2dXJUvqkx63VBt22FTIsEVnLKqcBuk96UnGztY08z7EUhhhctPdvGb9kcW81U9qbRbn0do/rjs8ibBnlH2PaYyUEmpq0NbOpPp+xcs1J2j3t77bkhVQWqxOpvFRo3tBRRp9bm8hIbi01j6FmJ1VmaAqM0nmLtLJll7wwOslFOQYpYuharJ+kagPTecL6ePsTG23iPjY28m9TMseevdwNQOdEudNRka2tJLQXUoFspRWzQHFcl0WDXVs4etahPk2eYpKhiD71/ZlrwmJJ9JrOLj7NxrZ32DiwhDznaZg0t/ZO9n0tJFsNBQ9rYnckhoEcgq3CGBy6xcI4/hSbHQM4fumKTY2dokZ0cAwUnxwCyk2Mgd3LsHH8yk2MA2ckxgOzkGMhzSTaNdh/Q5Ng5/mQnx0DByTGQ+/zx5NhxHJ8gjzS6mpubb8/8g7t9cxzHcZwhi4ik8iLp3Rryl4jIUirXLCJLQrpCRH4iIq+IyHIR+UPw6wsRGSMiPxWRdSLyfIi2dzXVc5uIrBWR1SJyOeWfE+pbKyLfCh4yICKlInJfyH9GxILci8gNIrIm/LuB8qeFsmvCscmQL6HutSEy3tkh/+S8PtgfPFxARM4I1/CKiPxKRGpC/qXh+l4J/19M5/+yiGwWkRzzpoh8RER20nn+pr974xKLEUS+O7iMyzfWIrsG2XEcx3GGDP1F0hstIleq6iN5+Z8G8IaqngZEE0wAvWFS+xCAe1T1+vDdFETR6SAicxB5uJiLyA/yEyIyK7h6W4Ao4t/TAB4GcAUiV28fB7BXVWeIyHUAvgrgWhFpAPAFRME5FMDzIrJIVfeGMneo6kIRuTPUsQBRIJCZ4d/5Ie98VV0N4MzQxjiiCHe/CNf6fQCfUdXfisjHAPxPAJ9HFJDkL1R1q4icCuAxWEjrXwH4DgBzJWTcp6qfLNLfOfgEeWSTCTAydenSpR8pWOLaxwbpVB/N+ZR6JvrhG39rkSFWSZHFODIeRWDKib5FUaTepF8up2iApOWLTTatI0ab2yWOksfu3Fh3nDjjndn0lOhHOwCg7nwzQXevIT0kaXInXmqumc5/kCJbNZJLspNNuzhunZmyS+ssv32baU9n1Fs91VOsTKzGNKzptaaVTr1hUpXEWaa/ZrN5X4rctm00s3lvm+nySlvMRVzHKitT3k2uvkrtnpXMNBdjMo76nyJ89b1gLp1i8VwdX2yMaS5T68ydW4y0gg31pNFst7EzJWn345V9pkWcW2V9UXa21T/rJWtTkoIcxhusziRF2upqs/Ldu0jvXEoSIYqVUXKKuZEbNcnaHJti4yC1yu6ZlNFzQGntItddLPqM07PS0V44n6Pk9fYUzq8g3WqLRTHjCInsSjHH/dtJJKNpGgvsNq14930PZ9OJcdZf8QtsXLMLLakzV4bpV2yMoIK06CTPydE1Mym7H5Vqz8qkGa3ZdOk4G0/d26wNje1WZxU9c7rVdL77xd4/deShizz8YXSV1VNWYf0YS9i5OEpleru5/lMac7qPrpHebZyWBmubHqComaRdF+pDJG3PAz9/qY7cZ7FsCo0jcg0XKyPddT25mNvXTfk0lul6JEZjqs/6MUcvPN7Om1q9AYVgN6GsQeZ2IkF7AMglW6XYO3N02vqxI0Y3kIgVjJx8zPg6ojDT+RPkcQCyD2uYYEJELkEUVvpO+m4jLOjHVQAWqmo3gPXBt/F5IrIBQI2qPhXquRfAe8N5rwJwezj+fkShmgXA5QAez/g+FpHHAVwhIgsBXIwo0h0A3BOOXxDqulcjAffTIlKXFwgEAC4B8HpoNwCcjMhnMQA8jmgi/HlVfZGOWQGgTERKVbVbVZ8ObSrYqYfKUZ8gF/KkMAKZerwbUIjMivIhRuFzHMc5fGhy7DjOIZMfKORfVfW+kH4KwNUichFyfn7jbgC/FpFrAPwG0YrxGkQrwy/0c64JiFaIM7SEvN6Qzs/PHLMZAFS1T0T2IfJXnM3PO6YRQGsIM120rrzveIJ8HXKj6S1HtAL+S0R+jzlUdob3A3gxTPwPxvtF5M8AvAbgH1V1c7GCx2IF+aCeFIY7w2ACmg1VPdLvheM4juMMFUTkRkTShQx3qepd9Lk/iQUAzEe0inxLJkNVl4nISYjCO78TwHMi8pb8A0XkuwDehmhV+Vyg4HK49pOPwzjmcOrKtDeJaDJ8G33/MQDfEpH/hSjsdQ8fLCJzEUk6LitQdz6/AvAzVe0WkU8gWt2+uFhhOdquSpqbm28f6ZOyYX6NgzUAcgb+WWMvUCDXhDqmxGQVjTEzKtSTbfI8cmdWSaa5HjKVbM/7WUdeuTCp18x/FSTFWFtiZrXfx82cx1HyXoXlTxHL/+LS+dn01svsPbd6i5nrZ08yE2nrLjNfb+40U6BQX0yqMDnAgW6KgmaXgvaU5Y+rMhN6Wik6H8kkPtFrrozq49b+d1Nwoj/F7Lyt9GObzY4pamctmyNR2ATJZuaPnWQ/xlettN3yyZjdi4fI9Htud+4+4Wlxa9+mPuvHv+82F3O3Vp2VTS+Nm0k5SXuOla5hmpoZ+LwuM7//vtwG0lhy9VVLwcWYzeQjb6PYO7qa3EbtIzdWE9Suc1Kf1U8BDLE8af1Sr9b+ClIRddGgeI72nBwgV2IckW5SnKKm0Yg6PWX9QIHOUEXn6qD8VfGcv0PWTlpX2UHRxwBgR9rux+ouW1FOUfvqSqx9HSkbgxOSJrFoTVHESjq2mnyptZFLNq6f3zmTqM7RMXsmOsmlFwu2erTwzd9Nvs166YgSsBm/8PjrSJPEgu7HqEQV5Rtv9Nk9TtG5EmLjrJf8qI0uMflKO/Unt4fPW6zOznTuvSyh4+PUQj6+KmZjqov6lM/XRfWW0Pm4nmr6ezAjZv2yB4XHeA/sPqWKRL3je7ylx2RWlTSGeGyxOb6lg7zxkGSph+Q7uzosiin/Ec2fAfb2bOnXzi8i7apaVSB/CSLt7VIR+SOiVdVr8iPshbLfAbAewDIA/0tV30HfNQFYqqpTReQ2AFDVfw3fPYZI/rABwJOqOjvkfwjAhar6d5kyqvqUiCQAbAcwCtFK74Wq+nfhmH8HsASR09edAMaGFee3hOMvz5RR1Z+FY1aHOraFz1chCn9dcLIrIrMA/Ieqnhc+TwSwGMBHVfWPBcoX7NvwXRzAHlWtLfQ94F4sHMdxnEGAJ8eO4wwqXwbw2cwHEblAROpDOglgDiJN8mJEWtyb6FjacIBFAK4LnimmIdos92yYoLaJyLygL/4wIklD5piMh4prACwOGuLHAFwmIvWhLZcBeCx892Qoi3As1/Xh4M1iHoB9efrjDyFXXgERGR3+jyFaSb8zfK4D8N8Abis0OS6EiIyjj+8BsKpYWcA36Q15BlvDPYxXuh3HcRxnpJGvQX5UVW/lAqr6sIjspKzpABaEyWwM0UTxAVVVEXkvgDtE5LOIVnIPIMgzVHWFiPwcwEoAfYhWazPL8TcB+BGAckSb8zIbA38A4MdhQ98eRCvHUNU9IvIlAM+Fcl/MbNgL51soIvMBvBjqACLvGO8CsBZAB2h3v4hUALgUwN/l9c+HROTmkH4QwA9D+pMAZgD4vIh8PuRdpqo7RORriDYJVohIC4Dvq+rtAD4lIu8J174HwEfQDy6xGASO5jUe7f5b+4vrBmUAzLh6YY4Z6e+mfkCBXHP91Z1moz650XbF108zU2nZueb5QOpMkqG7zUSmfXlmUJJixMaYnAApK6ettr9h83+aGX/CO+1YjpJXd76ZDvf8yfLH/9qkY70/+JK1de5pdq71a7PpridWZNPJOSbJ4F3Y6c0WYEEqSMbAu78b6yydpN+1cTNZ/uZrZpodl7DVvDn/YOfd99Dr2fQza+3H9NgYRRBLm2FpfJP1W9NZZl7s2mx9W1Jv7Sy/8f3ZtG4mDw211v727y+28qflWrdis6Zl0+n1JteY8e/2Q3/lRSbd+LcXzXvI6bQ9I0HvteYpFmWt7mIzuT97t/Xd9Ak2HqsnmVk3TQ4ktq628biix9KT03bi5Qn7LXvFaDrvaTRGa83Uv34Rmdwn2v2Ll7Lh31i+3LyEKBlzWUJ0SY39HWUvBQ2n2/2LN9KiUg/d19dt3Lzysp2rqdzyy8qtf0afnrsn5uXf2lj7QqLVTkHShQtLzLvHr7psjHw0aZH0niUpCUsa5ojJCTbCbs7+dGE5yEwy17+328q0p62/dpIJfTXpX2L0ZnwmbeODr6WKPB+cROdqJWnAnnRh2cOVKRtDfLcfj5tUiuUDLIPap3Yt70CdtT9m56og6U8jyaDayQtHF525jaPcAUiQgbmc0lxuitp430ayI5aesOyB8w9QPWNIvnUuPXMldP3bS+gayPbNre4SK7+Dohz+umOdnStp/c79y3/A1hywRc2SmJ23h6QtuzvsPh2JxMIZurjEwnEcxzlieHLsOI4z3HGJxQgnX6Ix0lfzHcdxHMdxjhSfII98+nWz97n0/GJfDYiFeZ9npSOJwpaYmaTYi0OKzPhtW8y8lpxkUooYmY1zZBV9ueZn7TZzZmqTmbWFHMVrh5n/KmosnTa1BRJk1uYgIKu3mBRhFMkqSj7++Wy67+HvWZ2bzDy3b4Nd2+jzyLtAzNomZXyddG0ssaBgEUreEYT6aHmpmQJ395m5d/ozJvlYu9ZW+Z4jZfslnfYq2Ba3+k8h7xyJadYP5UkLFqE91OatmyzdSZ4Idlr50snU/gYKGAPkyGJiE8fSFyaxaHnRjqG4C+igIAGz1M7dsd/OV73ddp43lZvUobSKxmmCLKJkZ2ePIbXUztISMhXT/etos/MmXrP7Vz7aZCsTzSEHEqPthsSqOVCIje/pe83U//oWC4bSmLJ2JsgzBivo4tUk36G+Ypld6VSTFk1sMRPy6LPtmYlV2FhpWWxSjabKDvyx2yQskxN2n1hmUK2FDZeN9IjPSdizUspGa7qeabQ1YxNdD0sLeumAHeTN5ECcvDJQ9eXkIaaWhvU48gyyk3Q3FWJ9wXb0cmpDDXnpSZCnhHKqv4qCItUnKJAHVVpNf64ryRvEpG7ymJGkZ4vak6BPTSS36CYjcg3VCeR5oiApRpLkEFXUXw0kAeE7XEplekgCUQYrfx7JKiZTwJ+OHitT2UtSIOrfErrHbXQNtSXWX08UCRjBAUQSeddfCPYKc3TFqc5QwCUWjuM4zhHDk2PHcZzhjq8gHwUG2fPE1CM811Qu4xILx3EcxxkaiEgKwCuUtVBVvxL8IFepanMo1wzgG6p6YfD48D0ApyMyFrQCuEJV20VkDIA7AMwDsBdRYI2vqeovQj23Afg4gBSAT6nqYyH/HJgXi4cBfDp4xSgFcC+AcwDsBnCtqm4Ix9yAyPUaAMxX1XtC/jREhuUGRJH9/lpVe4LXjW8i8mTRAeAjqvpCOOaK8F0ckdeJr4T8+xCFmwaAOkRR+s4UkfMAZHbNCyJfy78QkWoAv6f+nIjId/I/iMg/AfgbRHs7dwL4GIW0fhM+QT46DFr0wEOI0tfvucLxxzya4ezuyF46jXZtnzXTpAfVF9hqU2yUmYpl8mSrpIx22pODdsTyDB+0C11ff83ye2hne4XV1VC5xapqqrM2jTeTcmyKeUeYvXu5tW/uu7NpllUk3vW3dq66B+1cux61Ok87HYWI1Vt7pIG8cLSaOR011k4k6LFN2m+jP+v+UzY9YaxJCcpueE82ffaZy7Lp2UvsvVDeTB42SDKApEX1jE0zDxOxU+dYmQoKhlJvng9YRqLdJnmQmqVgZPJUSzeYjEM7TYqgap4vGseZCXZ0i3nBqEqZGfiAmml21iw7d8nsk7Lp2pfMS0bl2eYdITaKVkJJ2lK72foUlBw11jwutG+iwCqzrZ2lM62d7JFEd7dm0/HTZlt+u9XJlK0wryhnTrJAHC0vmZyh/iwy/pJMJ34m3bN20hZVmtRE99iFNW618SE05tgLx/h5do8+gE6sWWLX+SKZ0FvpGsbQ8OIAH/UkW9maKCyTGE8BV9pJf7AvXljqwNKAEi1sZmdvFSXcdVTmAAWd6M4JiGGwfIDPy94aykjeUErSlv0s+aDrzQ3wUbj+Eu3Ph0IEB4PhEi3xvjeVzTBGrU97SYpQUqhwXvtyvFWQ14zc6zFGiUlwykpNUlReZunt+0zmUkZHry4xSQpPaPhe9qYLBxbJaT/dVy0ioODAIoNIf5H0RovIlar6SF7+pwG8oaqnAYCInAygN0xAH0IUevr68N0URD5/ISJzELlpmwtgPIAnRGRWcPW2AFHEv6cRTZCvQOTq7eMA9qrqDBG5DlHUumtFpAHAFwA0I1KcPC8ii1R1byhzh6ouFJE7Qx0LAFyJyPfyTADnh7zzQ9CO7yJy89aCKDLgIlVdqarXZi5aRP4P7O27HEBzCEYyDsBLIvIrVW0DcCYd8zwi93BA5HKuWVU7gq/orwHI1p+PSywcxzlu8OTYGd7w5NhxnEHh67AVWmYcgOzKiqquVtVuRGGTe1T1Tvpuo6p+O3y8CtEKdbeqrkfkj/i8MMGsUdWnQqCPewG8l465J6TvB3BJmIhfDuBxVd0TJsWPA7gifHdxKItwLNd1r0Y8DaAunPs8AGtVdZ2q9iBafb6KLzjU+0GEQCKq2qGa/VVThgKycBGZCWA0woqyqj6pqpmwmE8jWl0uik+QRz5dCDKLQ1iNdhzHcRxnkBCRG0VkKf27Ma9IuYgso3+8ovkUgG4RuSjvmLsB3CIiT4nI/DARBKKV4Rf6ac4EAJvpc0vImxDS+fk5x4QJ6T4Ajf3U1YhIBtHXX10Fzl8on3k7olXzNZkMETlfRFYgkqh8gs6Z4UMA7tPCAT8+DguGUhCfII9wli5d+hVEcdaPuczCcRzHcU5kVPUuVW2mf3flFelU1TPp3315389H3iqyqi4DcBKiFeYGRJKEU/LPLSLfFZGXRCQT7a6QBkf7yT+cYwazLuZNYahV9RlVnQvgXAC3iUj+fqzr8o8BABH5K0TSkK8XOG8W1yCfGHQBmF3wmzO+OUin+HbOp+fKot9eHaQ/S79uUfIurLYfqyVNpntMsDaSXJjFxphGNt3CoduB2ETTrXY8au7Ays6kwAXbdmWTvZtNa9z1VGs23fqGaSsnXmpa5tZd5MqKouSxOzfWHSfe+r5suvMHv0JB+kgf3U3RyErMhVL6DWtzjPKRNM0dH/vdUtPZzdpr0eb+5wvPZ9Nbfmbu1jbuMTdqs3ZbflmN/QhPVJMLsD2k0aaIhdJoml0lLWiObny3RQvsW5ZdAEDJaNMsA7m6Y+wgrThp2Zets2MOUFdsL7Ey66h8w4t12fSMCeYGsLeL3DpRNDnWHee42iONaWevjc3uA3bNKY4gRtX0brS+S3Cd5IpKe01vqfQcsCu/betMxhAn8ezqbtMgx35r+XWjOrLp+olbrW0HrHGsuWZNdJ8dio6Vlq6eZffouSdGZdNrkrnq1M1pq2tnn2mqf8NjvJfcsFGkNKZFrF+6SworYDtIk5qj1SXN6Kuldt59sUILSsAE0ji/ES9cJknuwDgy3k61Z5E1uKyz7qFpwMYS+9BBY4v1r3bludcVp/kE65d76H3LGl/2rMcq2k761Kl8BDCddPwclW406ah5VlNCn7h72Y0er8jx9STjedFRA8vbbGxW0BXxxIWl5VV9VufeRKE5V26bUwN01iakxeZ6jqbLN1VdHEI6z8vLb0ekrX1QRNKINr4tA/B+KnOziDQByGz8aAEwiaqZCGBryJ9YIJ+PaRGRBIBaRGGaWwBcmHfMEgC7EEknEmFFt1Bd+edJFskHAITzvg/RRsE3oaqrROQAgFMz1yoiZwBIqOrzXFZE3gngnwG8I8hSiuIryCcAtIrsOI7jOM7w4ssAPpv5ICIXiEh9SCcBzAGwEcBiAGVhA1oG2u2ORQCuE5HS4GliJoBnVXUbgDYRmRe0vh8G8Es65oaQvgbA4iBZeAzAZSJSH9pyGYDHwndPhrIIx3JdH5aIeQD2hXM/B2CmiEwL13NdKJvhnQBeVdXsyloomwjpKYg8XWygY9604iwiZwH4dwDvUdUdOAi+gjz06TqIdnjqQOpxmYXjOI7jDBnKRWQZfX5UVW/lAqr6sIjspKzpABaEyWwMwH8DeCC4ZXsvgDtE5LOIXJkdAHBLqGeFiPwcwEpErs5uDh4sAOAmmJu3R2D63B8A+LGIrEW0cnxdqGtPWNnOyDe+qKoZ10u3AFgoIvMReY74Qch/GNFK91pEbt4+GurqE5FPIpp0xwHcrarmsqewVOJtAG4VkV5EhpH/T1V30fcfDOdivg6gCsB/BmvAJlV9D4oghbXLg8eJMCnLv8Zjec2DcK7BGgA59qzLJ12pAJAiE960uJmBz0qZbbyUWnBOnMz4ZHasrjWT8LYdudHXGmvNFtzTbb/56kebmbp1p/2IXtVpZupOchW1gyy85/fY+faTqfEt88xMzVHyGs6mKIF7zDBa/YMfZtPtf/exbLpkmrWhd71JTCRp7eneZnWWT7c2pDtMDhCvN8nVZb/kCF9W/jqY3GJx3EzdO9Pm/mxszFwopWlITBGTnTRR9MOxpEgopyhg73y3vcPbVppJdM92q//FHrv2t9byOx9oPMUsXntfs/69cIvJWe4smZtNryy1+13Bbp1oNJ5BMpQ5p9qiwasrrF+mTTKXepXj7eJIGYD1q0xW0kd9UVth/b7jgI2z+lI7b9MYq4jrZ/dsdU02jmNFzPuLtppMiU3lHWQLnNFt39TRnpVZU+1vR6rXDmBJTW+n5a/eYPKJXnq8GxN2Xb9O8OJUrin+hV67t+0p66NppdaPm3oscub7k1Oy6Q3k9quDTP/VwnIW66M9SpIlYjyN31P72G0ZCqZrU4XzVyasj3bSuTgSW2VOdDfrxy6SBrA0YjJFxKykm7kmbu+P3iKyCq7z7JS9AzbH01TeKC3i4q6L3rF7yB1dfvu4HVxTfZreV0WkFPvoHCyQ6aT88RSlch5MwrM6ZS4kR5Nka2/M7iW7+2O6qBE/SFmEzyklddl0L8lfeumJenH/hmw6SbKxPnIXt7PD3tvpfuZRfT1bCjfQGfK4xMJxHMc5Ynhy7DiOM9xxicUI4VCj94301XzHcRzHcZwjxSfII4fDcuO29l+vG5STz7htYc7nB66NzHPtz5oZKllv5u3y970lm9a9ZmaVavOskBMxb8LUbHJsF22vB4Aai8TXecc92XTpubYptoE8LUxvNNNx3++ettONo2hyjeaCcckXLGJZco6VGX2eyQaKRcljWUXVv9+dTafWPpdNx3dRJL1aa1vpenIdUEcR9qrrLN1hpvuzHrZIemf0mXn0L//eDJtXL7a+7thtj3/j1RQNjyKryXhyRdlm8heZfZblUzQ/pWtprLI+b9j4ajY9o8L6TcZZdD4AQIXJL8rJ/Jm66JZs+g2K6nZGt5mjd5EpdIqaSX/MKJI3zDNZxdlnmBk/Ntvun4wxryhoN3PvKYttrGgPRQdrNJnBuNdtrCTqyEMFea5Injk9m575iTPtvONn0HntPvFzcMPj/2Xlq+y86a2034Q8Y/C9jJ1FUrtW81oCuh/osT55y3aTtUhdnZVptD7c+/FnwXSQV4e/q7Rx8Uiv9ensLltpvgXW7htPNzeo8RoTCGiX9fUbr9g1j3+Hmdx3P0veViot/+tb7fpZhsJeFljNMlvt3VJRYmNrVJdFWnyizJ6nahIylJOMoYyECFVpux+jyMvCzKQ9T2299rzOIzN+TbWN49KywlHvaqeTh55Wq//ALquTlCCoaDSJyFMr7PmuyJNhnD7H7seqlXbPx9SYdK280vqop7uwF5K+niL5JKuY8Rl6z3RZ/05fbtKIWD2N5TH2zu9eahEfS8blSn4yfOcBu+buBEUhpPGaLqKSYBkqSymKyVNdTzFycImF4ziOc8Tw5NhxnENDRFJ5gUJuDflLRGQplWsWkSUhXSEiPxGRV0RkuYj8QUSqwndjROSnIrJORJ4PwUSupnpuE5G1IrJaRC6n/HNCfWtF5FthAyCCx4v7Qv4zIjKVjrlBRNaEfzdQ/rRQdk04NhnyZ4f2dIvIZ/L6YUM4/7K86/6SiLwc8n8tIuND/qXh+l4J/19Mxzwa/D+vEJE7RSSed65rRERFpLm/e+MryMOfjJeLqYcis3CJheM4juMMGTpV9cwi340WkStVNT/i26cRRZU7DQBE5GQAvWFS+xCAe1T1+vDdFADvCek5iDxCzAUwHsATIjIreLJYAOBGRCGYHwZwBSJPFh8HsFdVZ4jIdQC+CuBaEWkA8AVEATcUwPMisiiEnf4qgDtUdaGI3BnqWIDIC8anYKGn87kozxMFAHxdVT8f2v8pAP8LwCcQ+Vv+C1XdKiKnIvKAkTFFfFBV94f+uB/ABxCFr4aIVIc2PFOkDVl8gjzMCT6OESbJA5ZZrPvA4LRjRt7nR34Smey7xUyT41Jmjjt37IvZtJJXhsQ0kxhIDZv9La1bzYwPADLKzH+xMlrFohUt3bkHhejdbObC2F4zZ5acbGbOSRUUtIHkHBIrsmJGQUDYW0WOrGLGuVZ8B0XY5Do5OAinSUogNSa9eKnX3itb4mZqvOynZjb/cav5gt8i1s4rv233oExNFnPO6SaNSE4002cJB9PotLRMnZpNa1trNp1aYfVIFUlTkEctBXfZZ9eTiNkCQHPS2lczxjxxjNpt18xBNEa9hXbgj6XxlbJ7LHUmB2HJDstHEqebNAK9ZO6mXfTlM80Tg+43eYbU11m6ydoA8gCC/SZ70D0UhKbKjk3vIDkS9bu22z2WehofFWaWxl7yGMIBXcrILE3Xi6T1v3bQM9Bkdy1BO/9rNI09MRsjD/RZu18SkxNoqXnuqOgzbzbkoALdW+3e7Ntu17Bpnx1b9bLJMzZut+egkbyKzCbPFVeMtiAx+/danclSu5fjL7Sx0rfT6tn3R2vneb3WRxVkl2dvLo1xux8HUtYnYyqtH6vrrP6Jo2xM799q50pTlI3yOvJuQd5GEqOsPT177Hkor7XyvLifICdA0yvsvnR25wZhKZ9h7ZjZRYGEmsgrR44Uxs6X7iJZAjkY4XucExQ4RjEi6P2QmG7vdn5v8DNXMoHeJ032vuVntJY8r8yI2d+SCnoDtbEHFtKkcDCYNL1XhMqw3GKQ/YJ9HVEUvfwJ8jhEfo8z518d2nQJgB5VvZO+2wiL5HUVgIUhQMb64LrtPBHZAKBGVZ8K9dyLaBL7SDjm9nD8/QC+EyaelwN4POPaTUQeB3CFiCwEcDGA68Mx94TjFwTfwztE5N2H2gGqup8+ViJ0saq+SPkrEPl/LlXVbjomgSgICd+WLwH4GoCcFexCuE3McRzHOWJ4cuw4ziFTniexuJa+ewpAt4hclHfM3QBuCXKF+SIyM+TPBfBCP+eaAIBWZNAS8iaEdH5+zjEhMt4+AI391NUIoDWUza+rPxTAr4Nc4kb+QkS+LCKbAfwlohXkfN4P4EWOjCcijwHYAaAN0cQ+Eyhkkqr+V4E63oRPkE8Qmpubbz1IwBHHcRzHcQYREblRRJbSvxvzinSq6pn077687+cjWkXOoqrLAJyEaIW5AcBzInJKgXN/N2hxM+bLQnsItZ/8wzmmv7r64wJVPRvAlQBuFpE/yx6s+s+qOgnATwB8kg8SkbmIJB1/l3NC1csRrbSXArhYRGIA7gDwPw6hLQBcYjGS6AIwu5/vC8ov7r5v/qCc/LJ/zv28sSR6RjbFzOw2ngJujF9sprnOLjMRTt5lpuXkeJMVxHutnr5X+YcukJhuXgq6KLiGJE2K0bvLzG2SsON3rTHzclu7mRTHrbN2HOiuy6bTm82sK7SbPVZPsg8KTMFBQNhbBcsqEm99n+X/8f5sWveYWVPYFN9rNkslSUYP2Sx7KLjCajI/byu3ftxNYei3l5BZl343z9hi96a83Y6tG2/eGtJtZtaNl5OJnu5Zz6sklxht9ys20QJfRJXRdZLXjBR5tNjSYSZV3ki+s8vM5o1JM193rLb+qmowMztvW4/ReXPe7l12balVGyw/Sa/OvlTB/N711v6SSWwGtjEUm2jeHXS/ySeUPYZ0U9Ca5y299w27T/G4pRsmWl/HyyxddqqlhTxMCHl4Ebp/6TXmHUDqTColZdbPz5aR9AfAPrF+bKNgFm0kr3o9bvcjTfd1w1KTtvSk7P3wRtratC1J5u4NZn5/scz6vZZkG/toa86qLSbf2UeSneoOa2fJH02K1dtL0o6YtWEv1bk3zoEy7IvGlL1X2LnDXgpSVH/AxkQ9yTl29Nh5u8i8P2qP9dsBteudnTLpzNat9qynKJhNL3moqKSgJ63k7aYnb71s1HP2nL66jbxYbLFnoqKC3kUUNKSTPFF09lpby+jcXSR/OXXymmxaKPhP1xrzKlI6mbxylFv93WtIJkeSORpa6Kbnex8FRNlFhRJSaF6XGzjpcAKrqepdAO4a8IF2/GKJItbNy8tvB/AggAdFJI0oatwyRKupmTI3i0gTgMymtxYApGfBRABbQ/7EAvl8TItEoZ1rEWmJWwBcmHfMEkTa4DoRSYRVZK6rv+vcGv7fISK/AHAegN/lFfspoqiBXwAAEZkI4BcAPqyqrxeos0tEFiGSiTwL4FQAS4I8ZiyARSLyHlVdmn8s4CvII4agRd7AeZlV48wmvuPQLMdxThB4cuw4zqDyZQCfzXwQkQtEpD6kkwDmINIkL0akxb2JjmXfd4sAXBc8U0wDMBPAs6q6DUCbiMwL+uIPA/glHZPxUHENgMUa/VJ4DMBlIlIf2nIZgMfCd0+GsgjHZuoqiIhUhs1zEJHKUNfy8HkmFX0PgFdDfh2iyfJtqvpHqqtKRMaFdALRD4dXVXWfqjap6lRVnYpoM2LRyTHgK8gjneyqcWay7F4sHMdxHGfIUC4iy+jzo6p6KxdQ1YdFhHbZYjqABWEyG0M0UXxAVVVE3gvgDhH5LICdAA4AuCXUs0JEfg5gJYA+ADcHDxYAcBOAHwEoR7Q5L7Mx8AcAfhw29O1B5AUDqronrGxn5BtfzGzYC+dbKCLzAbwY6oCIjEW0ml0DIC0i/4Boct8E4BdhZTcB4Keq+mio6yvBS0ca0Y+AT4T8TyLyD/B5Efl8yLsMkRFwkYiUIoq4vhhAdtPiQPAJ8glCxtvFm7j2m4N0hm/nfJrUG5midpaakaKGFphGnWSmsBTtcmZZRazBdhvHxpspOsEeBADEpp+UTff+ykzoFWSOTdRYOlZFu/zXmsmsstwaUlpHHg7M0gypsPZpH5nlGyiQB3mckOQqS1MQEPZWwbKKxAXXWP5D37HyHCgkUfixTdIW8XoyCc+70OQQXb+1fmQPIxdRUICSBtohPsVMwtJoQVxip1ugkBi3h4O4kKeE0gNmlmXSLVsRv/Dygt9hjPWv6n9n08vJBItOM1MvIzP7mD4zwSY2WT0VJ5vZOE3eU5JTaQ8JBctQ8tbRvdGugXfgJ+qsvzpa7L6WkTMM9pZSQvc+dgqposaY5VNKSQpC/Zjus3NxoIV9HXa/S96wsZussIaWN5D7gg66H2R+Zs8b2kMX2Wb3VTssvScvvHQ7ySoSJFZh+c8eJalAyvp6eczG4yzYOXYk7Do3x+le0rjbS+1oJUnDBrXrPFBuC2l7YJKPEjKkVuyw8b6GZEdbSuw9wd5fSugad5JkqSFh74Au8vRRTfdyMknOUiDJQJmdi7c9VqndY34Dpjfbe2ULBYnppH4gZxiIqV3XzvJcyUAHtbVuu/XFn8qtslk9dp/K9tnxLDfppfN10EWwiIH3dJ5WbvcpfcD6d8tr1obaHSTtqLfxsWqVyT9GV1l+N0k7DqRMMrcpZWO8J209GSOJRbGAIIcSKCRWRKpRDFUtGElFVS/M+3wOpe8FcG+R47YhTGKLfP9lRCvS+flLEUkQ8vO7ELlJK1TX3Yg2DObnr0MkkcjP345cKUeG/QDOKHKO9xfJn49In12Ic4vk8/EXHqyMSywcxzluFJ0cO8MOnhw7ww+eHDuO4yvII42uPE8VUzOJTBARl1g4juM4juP0j0+QRxD5Moq8ybJPjh3HcRzHcQ4BnyCf6Lz06cGpJy+U3vbg5q2V1HLjyQ1Sy6umLWvrNr3e3Drbh1BSbpq+9Np12XTfJnN/BgBx0kdWzyI3b6RV7dtqurZdL5r4rWmaaUN3rDXNc/s2a1M7RcICadbYTRhazT1U+g1zp9VNbudK16+08qRTZndurDtOvNfcPfbeb1pxqbJ2cois+ri5hxolpjPc9IyVf6XU9HEtpKVsWm764nUldr3v6zBtsiRas+ky0tGmW80lWXzGNLuufebiLkVu86SSoqe98iwYKafIb+UVKMTZ3dbuNtJdz+o2E/FZY2gclbHp38r3bKeIYOTSLMZaXTpXx047Nk6a1FjS6unrtn7ZucY0oxytrYF0krFVFGFwO0XPY30jaRq7D1gb1nXbfR0fM600644728kNW7udN32Aoh/2WV+xmzftpEhs1XRfKILfSSmWT8ZzNMJssi8nwWkl3bNkzNIUpAxraeN9gvLLyF1ZOwkE2XUXa4rHi11PPbk9G6vWL5WkLGghjXAj7THYR+O9pIjGdIpYm3vJNVgZrI84ctsoepUk6RrXFYm3Eqcy7bHC+tcOahrXyde4m27ZBNK0d8VypbDr6TPvH6FD0EWq4nIOCkkziwpqBz026KJ6dv3exlrNZHInWU/aZBJSd+y1TmLdcVePnXgXucvjaHg8PpJxexcNFofjCs4ZmrgGeXDoyrhTG2Iu1bqGYJscxxmB8OTYcZxDQ0RSeZH0bg35S0RkKZVrFpElIV0hIj8RkVdEZLmI/EFEqsJ3Y0TkpyKyLkSle0pErqZ6bhORtSKyWkQup/xzQn1rReRbwUMGgku4+0L+MyIylY65QUTWhH83UP60UHZNODYZ8meH9nSLyGeofJmIPBuCmqwQkf+d10d/H9q7QkS+FvKmikgn9dudVP5RqutOkWh1TkQ+IiI76Zi/6e/e+AryIHAQacNxg9vV3Nz8hLt5cxzHcZwhRaeqnlnku9EicqWqPpKX/2kAb6jqaQAQ3KD1hkntQwDuUdXrw3dTEPkPhojMQeThYi6A8QCeEJFZwdXbAgA3IvIP/DCAKxC5evs4gL2qOkNErkMUte5aEWlAFLCjGVGkvOdFZJGq7g1l7lDVhWHi+vFQ/x4AnwLw3rzr6QZwsaq2i0gJgD+IyCOq+rREYbavAnC6qnaLyGg67vUiffdBVd0f+uN+RF44Fobv7lPVTxY45k34BPnEIVFwcvzqmwsOBttj0WpSG7l32h0zs2Zvr5nvasvIrRYrGMjdT6zJyksy1xQo1Wba7Nps0chKewq75aodbfkbVlgUsf291r4Z9WZGHldlrsGk0dytCbkAQ02dtZXkE+XTyWxeV8QVHEePozIsqyi5xqQwfX960MpXmJl9Rx8FHaInu7SC6ifvXhVk+u0gs/HsPruu9m1myqydaVICpehxbJZHKZksSQrCLvvSrSZrkdFjkAOZuNG2D4U4QFKdKooYuJakIc/usHfo26dZEKdYrZldy08h8/4Y88nGLgV1v8lHaueSjKaDXKORm8LqKWYeLmu1dOVZ5C6vnCQmVeamjvtOd9s4jo2xCHBv7CEXWxQFbKPadSW2k1uxKorquMGkPPFGe2Zy2hAjV13b7cLiHXbtyQa7lo15q8a7yH3aljTJl3rNtVZJiRkulaQIHKGuk+UTFIBkH3nKaKfogQdoHFSS6f4AyTwuoHfOmiRHwLPy83ps7O+CPaM7YlY/u22romeIXcfV0gPI+ey47Q1yX1fHASTpetkzSCc9G13Ub90kH9hP0gu+M2wqjpMsYgvpV7ryvFhMosh4+2lcpOldMZbeq9yPPLHYS21iiUyHkMs0OlefvW7Rts/eLU0T7Iv9uyx/e7uN3zK6T+wKj12vJej9wRFH4wN0z3aM+DqiMNP5E+RxiHwCAwBUdTUAiMglAHpU9U76biPMD+tVABaqajeA9cG38XkisgFAjao+Feq5F9Ek9pFwzO3h+PsBfCdMPC8H8HjG97GIPA7gChFZCOBiANeHY+4Jxy9Q1R0AdojIu/liQnCRzA0uCf8yA+QmAF8JbUaoo19UNfPiTgBIUl0DwiUWJw4bjncDHMcZuezKmQg6jnOIlOdJLK6l754C0B1WUZm7AdwS5ArzxaLNzQXwQj/nmgBgM31uCXkTQjo/P+eYEDp6H4DGfupqBNAayubXVRQRiYeAKTsQTbyfCV/NAvD2INn4rYiwj+NpIvJiyH97Xn2PhbraEE3sM7xfRF4WkftFhMNuvwmfIJ84bAiu3hzHcRzHOQaIyI0ispT+3ZhXpFNVz6R/9+V9Px/RKnIWVV0G4CREK8wNAJ4TkVMKnPu7QYubiXZXaJlc+8k/nGP6q6soqpoKcomJiFa1M0FLEgDqAcwD8D8B/DysYG8DMFlVzwLwTwB+KiI1VN/liFbaSxGtaAPArwBMVdXTATyBaHW7KC6xOLEoe1POtRsGqepcNxan9Ea/vVIldspJtP150nQzIfdSyKfkFDOXSZmZI2WsmczjsdzfdVJvJt9kvf0ITjSa2TlWRbvcO8ysNi5lJvSGdnscqqdYmf17rN2StDJKO+FzotslzVTO0dpQXWdplhL0ko2e6mFvFSyrSLz1fZb/wqPZdAV5CqgRa1tNU2s2PX4DmRqpDdMr7X6wx4W6ueStgeQJsfHm9QJxso1XmgRAqH7ut/gUkpDF815BtSYnQHkVClFKu8QbSs0kPqbH2jFaTFpAFmhIqfVLardJAOIJvgY7L8tfhEziQi4CEmNsjKf32Xn79ls/ptusnfEq8s5RQ/01yTyASL3dD5B0ZOq0Zdl0+14bZ91d1o9N480UnSDXAsl5c7NpbSeZSyOF/CNKT6Y2lJJrhTLyDEH6knqUYi/JA8opMl5n3FaXx8ZsHK2n853UQ+ZxMnfvISlFS8LyZ9CCdSxpbapVK79DSOJFkd7Ys0IZKQtYZFBOEpY5FJXtJXLFwF4p+lA4P0lSjRpq2yRqf4LG9ASSAKRR2JMEt3NMjKIcdls/tHO0Tpqy1Kfs6O00pvfFc6VrDRQZcGzKxtr4Xjt+FMijjFofseyji+5lKfUpt6/uJDtXcrq9zxu6bCwna+3Yplq75sRGyy+rpnFG73NQkGb+61FC7ZSC8zpAjlB6oap3AbjrCI5fLFFI53l5+e0AHgTwoIikAbwLwDIA76cyN4tIE6LwzkC0msurphMBbA35Ewvk8zEtIpIAUItIS9wC4MK8Y5YA2AWgTkQSYRWZ6zqU622VaDPiFQCWh/M8GGQYz4ZrbVLVnYi0y1DV50XkdUSrzUupri4RWYRIJvK4qrILrO8h0koXxVeQTxy64J4sHMc5SvDk2HGcQeXLAD6b+SAiF4hIfUgnAcxBpEleDKBMRG6iY9lf5iIA1wXPFNMAzATwbAhP3SYi88Lq7IcB/JKOyXiouAbA4jBZfQzAZSJSH9pyGYDHwndPhrIIx2bqKoiIjBKRupAuB/BO2A6phxBWgEVkFiJN8a5wTMY7xUnhWtaJSJWIjAv5CUQ/HF4Nn22DSbRxcVV/7fIV5BOEpUuXfqW5ufmJ490Ox3Ecx3GylAftbYZHVTVHDqmqD4sIrYNjOoAFYTIbA/DfAB5QVRWR9wK4Q0Q+i2jt/ACAW0I9K0Tk5wBWItrHeHPwYAFEm+F+BKAc0ea8zMbAHwD4cdjQtweRFwyo6p6wsp2Rb3wxs2EvnG+hiMwH8GKoAyIyFtEKbw2AtIj8A6LJ/TgA94QJbwzAz1X1v0JddwO4W0SWA+gBcEO4zj8D8EUR6QOQAvCJ0KYxABaJSCmAOKIfDZlNi58SkfeEa98D4CNvvh2GT5BPLN58v1+aOjg15wUKyawlJclsxY73eddyopRWnsjUzbv90WEmNeSZApGincg1ZNavIE8RZMKMN5qMI/GGeUoorTEzX6zGTMp9KTK00LmFTN8gEy+6rZ54PeV3kDeMGvNWobEihhzWBpC3CpZVJM6+worjF9k0mw5jtFOdd5rvFeu3tk7qa0o3dpn3glg9eR/YS+b3CvKIUEEeEbrIZQbfM05L3rUfMMlLjqcP3jlfbvKAfV0kZ6FqqsvM9Fs2juzpFeTtYQo9DrVm1uV7qb1mkWNPHNJJY6WJju2zfimbatfGshL2GiG1dXYsezNhs26vmY272mzMlZaRbKjE7mXZGKsn0UAyIJaLkNQE+83DBHI8ktD47rVzSdOobHpCr92vCYhhB3XpevIokKTgIJUkG4iTEbMpTvIUCuqhKQraQ89KKV1PBXlHYI8QvRTs4sy0vUM2pSioTtrGyrSpNt7b91pf7G0zbze1anVW03mrSNZUTW3YRV4cxlKwi7EpCo6RsDb09dn46KFhUE2BiXopv6nOnoe23XbPKlKFV/TLSXbSRdKJcs2VEoypsXp3UsCZCpJJ1FfRM37A+jRJUpISSlfRO6ckZWMiMZo9u9j7pHIqjU0OZEJ9Udlg4yZRXljqGt9pbagU66NeemvEikgsisHvJA4OMlB3CaoaL5J/Yd7ncyh9L4B7ixy3DWESW+T7LyNakc7PXwrg1AL5XYjcpBWq625EE9j8/HUAziuQvx25Uo4MLwM4q8g5egD8VYH8BwA8UCD/DQDn5ueH724DcFuh7wrhEosTiw3HuwGO44xMdvhyi+M4IwifIJ9YHCWvx47jOI7jOCMHOdpxw0/E6G3D6Zp/vfa6QRkAl81YmGOf6rjz0woActLJlrn7jWxSd5mcSmqynlmQfu11K0/O6bc9YFKI8R/NdanY8YQds31NNQox6R3mRaB7EwVweKsFqojNnG7tWGv76y/5/vZs+p/TpvFfXmqWsT/rtvq/W2pmxPV9rdn0WSVmmn6pd1c23UNRTNgUXR83k+UO8p7P3ip45/Wvl/17Nq3tZipOrc1u6kVsslnQ0lvo9xKb97dtRCEO/OQP2XTHTvLmQXKZ9VvMFH3qmebPveJd5oGo5c4N2fRXOnM9Vbyr20yt7XT//3Hf09n0x5vMerbowJpsekKpnZv7jt9xk2Jmvv1Np7WjIk4SkyL0pO0+dadtDMVJJsJlZpSZrKJTKYhEjEz3KTNRj0vY2B0vFAhBbWz927TWbLpjr42DJ3bbOD65z0zOXcoeEYx2MlcvK7X+WafWnl1pS79fzbvIY3GTVfzka1mrLwCg78mnsunYWLsfsVNmWyGS2Jx+k8mCPlxhZVZTRJuTxO7l5V12bZtids/2kYcKlhHdn7JAPXU0JmpJDrGbrnNtF41ZGhPtFDyHg5vwvT+jwt5Lr1I9sSJeEC4oM2cC7fQOWNVj78YqagM/6wdIFjK5xCQ+bTQuuZ1jaNwnqD2v97Zm0+UUyAkAttF3lXEbj2191l/cR7009ll+wPX2UmCOnH6ktbqOtN3jKUmTom3rtb8BXGdpzN5FnXT9fK6d3XYtQveMg4bwfdrdvb9gGb7GfV0mQenvj2hfz5YhGYHEOTi+guw4juMcMTw5dhzHGe74BPkEoLm5+dbm5ubbm5ubbz/ebXEcx3EcJ0JEUnmR9G4N+UtEZCmVaw7+gSEiFSLyExF5RUSWi8gfRKQqfDdGRH4qIutE5PkQbe9qquc2EVkrIqtF5HLKPyfUt1ZEvhU8ZCC4hLsv5D8jIlPpmBtEZE34dwPlTwtl14RjkyF/dmhPt4h8Jq8f/lFEVoTr+ZlIZEYTkS9JFPlumYj8WkTG5x03WUTaub7Qd6upT0fnHXONiKiINPd3b3xbxYlBWTHJx5LPzR+UE1y2MC8j7DbX1cstr7sHBWHzPgdR6DBTXsPJZuLs+tPrKLv8zOznstMt0EHjgdZsunMfeaLYZaa3A7vMPFdJu/m1zXZMp94wbwRsrh8Xszbt7jN5wISxZv6btdeexTfEzHBn9Nm5tsTtOnvIFFhP5vdRQmZ/elI5CAh7q2BZhVRZn0iTbRqWcjPjx8bNRCG0noKAdFqfVH6QpCl8AJnM637zrLXtbJNVyDRzczL2beuy6X/Dfjy3yEzxZ73VAr0IBYX41MM2RlpRWN7QRWZqllXwTvUkrQmwyZrNqEwJle+B1R/P975RAJZVsEm8iqQBlWQqnkRSAg52ISS3aN9lx76+0/ptS5ldbw15fWhJ2jWeRc/fPgrQQk5OcsZTgseWFUEFDca//exL+PcbovPFRtehd43JqKTezpdevsIqoGeuj0zWL4GeP7p/m8n0vTxhfbQmYc9ND93jDlh+e4+9N/aTnKWkyP3m9nTnXL+1J8UyAfLo8Hq3eTzpTNm1FxsrG9Mmm2pPkSyGZAIsVUjRuTi9pc/6rY/axnB5bk87yRna0905Ei+WC6VJesP5DPdRmrxMcPlYkethCQfnd9MzzVI01gtxGb5+rofbkCB5Ed/LOI2JHK8UQtd1BN4q+qEzRJArxGgRuVJVH8nL/zSAN1T1NAAQkZMB9IZJ7UMA7lHV68N3UxD5/IWIzEHk4WIugPEAnhCRWcHV2wIANwJ4GsDDiAJ1PALg4wD2quoMEbkOUXCNa0WkAcAXADQj6o7nRWSRqu4NZe5Q1YUicmeoYwEi12qfAvBevhgRmRDy56hqZ3BFdx0it3NfV9XPh3KfAvC/AHyCDr8D5pKO+cvgmSMHEakO53rmzYfk4hPkIUIIA/3mSHeDw9SjVO9xgSfHzvCGJ8fO8CMzOQaQMzl2hh88OXaGDF9HFGY6fwI4DlFgEACAqq4GABG5BECPqt5J320E8O3w8SoAC1W1G8D64Nv4PBHZAKBGVZ8K9dyLaBL7SDjm9nD8/QC+EybilyOKTrcnHPM4gCtEZCGiwB7Xh2PuCccvUNUdAHaIyLsLXGsCkU/oXkTBTbaG9pPvT1SCfpsEn8/rEPl6PlS+BOBrAD5zsIL+RAwdiq7yHikZiQUADJfNg47jOI4z3BGRGxGtzGa4K4SfzpAfKORfVfW+kH4KwNUichFAJpbI9/CvReQaAL9BtGK8BtHK8Av9NGcCohXiDC0hrzek8/Mzx2wGAFXtE5F9ABo5P++YRgCtIcx0fl0FUdUtIvINAJsAdAL4tar+OvO9iHwZUXS/fQAuCnmViAKSXIrCk90fikgKka/k+SG4yFkAJqnqf+VLPArhE+QTgKVLl37leLfBcRzHcU40wmT4rn6K9CexAID5iFaRb6E6l0kUXvkyRGGZnxORt+QfKCLfBfA2RKvK5wIFo6FoP/k4jGP6q6sgEoWqvgrANACtAP5TRP5KVf8DAFT1nwH8s4jcBuCTiKQd/xuRjKNd3uwp5i/DpLsa0QT5r0XkPxDJMT7SX1sYnyCf4Kybv2GQasoNpdf71CsAgK71pv2qutBcpMWmmIsjTLZjYw3mTgr7TAdcPuMky59GLqMAxGefkU2n//Af2XTNeNPXJSeZ5reuzPR0vau2ZtMlp5oGLXGWnePdD5u2cM4/mApm+jNrs+myG96TTf/PF57PpifcZXrkv/x700Rf9lNr2+rt5spo3oVmpt70jGmcSytMT1fT1JpNc5Q8dufGuuP4xDnZNHrtvEJaYyWtZqzW2pzautry32JWMe02i1as2u5Z6Sm250Eq6uy8SYpgt8XcyL11Xq57NTntGjvHDlucSP33t7LpMorEVk2aVGZXyqKmjSf3aeTtD88mTEk9rcTaOh7WphJ61z8TM433PtKz8suZXWA1kM58SsJccZ2Wtjbvjtt9/YepNhY3rTHpSXmpaVIXt5qrwNPiFBmOdKW1JTZGyYMbZk62cZzYbBr1s2Oml10o1ubdsM5aHbfnuJz6f+9j5s4MEKzfaPU+Wmbyi9Vqetu3q+V3UTS5HX02pliXv4E0uR2ldv37WbdLOlR29dVJ2u8kuQNjnS9rVWM5Lr1Yz2rpPsrne7+f7n2ayxfRxu/ps/vXnrK+Zv3yoeh3c/XRls962b5Y4TbzeOVjgVytcrF6uX25/SgFy3A+11NN+zzYhVuO7pjgcx2gcVCszXzPWIPM+UW1xkXSxwpVXSxRSOd5efntAB4E8KCIpAG8C8AyAO+nMjeLSBOi8M5AtJpLf3wxEZGUoQW5Ee4y+XxMi4gkANQi0hK3ALgw75glAHYBqBORRFhF5rqK8U4A61V1JwCIyIMA3grgP/LK/RRRWO0vADgfwDUi8jUAdYhCV3ep6ndUdUu4/jYR+SmiqH6/RBQpcEl4BsYiCkn9nkJaZcC9WDiO4ziDAE+OHccZVL4M4LOZDyJyQVh1RfAQMQeRJnkxgDIRuYmOpZ3vWATguuCZYhqAmQCeDeGp20RkXtAXfxjRhDJzTMZDxTUAFmv0S+ExAJeJSH1oy2UAHgvfPRnKIhybqasYmwDMk8g7hwC4BMCqcH28m/w9CAHPVPXtqjpVVacC+DcA/6Kq3xGRRPhRABEpAfDnAJar6j5VbaJjngZQdHIM+AryCQFvAHQNsuM4juMMGfI1yI+q6q1cQFUfFpGdlDUdwIIwmYwhWlV9IOhs3wvgDhH5LICdiDaw3RLqWRE8RKwE0Afg5uDBAgBuQuQ1ohzR5rzMxsAfAPhx2NC3B5F3CajqnrCy/Vwo98XMhr1wvoUiMh/Ai6EOiMhYRKvZNYhWfP8BkeeKZ0TkfkT66b5wTEaW8pXgpSON6EcAe7AoRCmAx8LkOA7gCQDfO8gxBfEJ8olB0Q2AJ31u6uCcIc/NW/LPzgYAlMy2Z1r7yAVRGZnGU2RG22MR5nS3mbS110yisdE5bhABkge8us5MsOUximrWZ/WSpRWStDaZAALQLRaB608xO/f7H9qSTa9da9KCs89clk1v+ZmZsheT+6KrF5tk5MetZs3aVm71d/3WZCivlJKuyiyhGL+hcNSwj1OUPHbnxrIKlBSOGCelhY1JUkleJqifhV0i0f3Tjaus/GSLoiiw1UVttU3J6Z3WJwAQr6dVyG5rd0+f9dGrqdZsmk3EbF7lNKvTFpfZ/djTaSb9FJmpW2g3P7t/206RvDiSHsPm5M0UiYzZmTDpTJnauZausnu/MUkRvuhUPEZfouhoO9N2rlcpAmGMrn7SZou2t6qUXZiR6zjaMM7RGyclTY6yJW391r6X3BLWdOCVNhsvf9Fj9+ZksWiZVanC8oAOkkOkKZ8lASy9SBWTFqCwBIAlE8VM/V1FzPV8bG8Rl2Excj/I5YvRRjKd3HZSNDx+WZF1nyUf7K4wx9Vajkuywvns1i6dJxPtKxIZj/ua3eUVuwc5bu7oFCxXYIkJ9wVLYTro3iSKnJfvK7efpTwxag+7hUsUcfPG9R/KfR0oqhTuMjf/wrzP51D6XgD3FjluG8Iktsj3X0a0Ip2fvxSRBCE/vwvAB4rUdTeiDYP5+esQyRry87cjV8rB330BkXQiP//9BYrnl7md0gcAnFO8dLbchQcr4xILx3Ec54jhybHjOM5wx1eQhzED8J08NVPWJRaO4ziO4zj94xPk4c0hTXiDD+SCZT+GnW8qf3jkerFIb4w8ELQvManCni1mEp50lZmrY+PNa0Lf6k3Z9IbHbDfzxDPM9FtWkee5IGVmrx+WmSmtTswgffJrtnG3nqxkryXNlPaB5Sbp6EuZcYUjtz2z1szgz9FPk9lLzDPDxj3mHWJnsjWb7thtj9sWMXPybjXTYbeYNKKFylSQ54AERUHbK3Yx6S2vZtMcJY+9VRQlVtDKB/DO9hgZnMgrhVSahwa0Wh9ijJlNtXd7Nt33qrnbjI+lYwEgzq8k6xc2/rZ02znY5MneAlhawHKIZWRe5fxW8qBQGrNxw/WwiTc3qllhDwd7ekyiwGZm9lJQETd5Q0uJyRCei5v5nb1GrE3Zc1BJ43tdtz3Hm4TN/uSxoNQkFttJJlFGkpKtJCNh+Yr5Zcntt//NEVyTub76T4dJSf6oJqVJx+1utu2nyJRxuzb2JsH3tZjXBJYQ8Jg40EvaJCLfY0O2fpILFfOI0EGSJZZYJGnschvSdCzLIeL0PHWTBKCP3mdcZ74EIttmKezpgc/L7WS5BF9LvocGbl8qXVg+we3jMgzXy3VyHxXr626S3fC9yZVSsHSmcPTDAyQP43Pt7zZPImUJ+3vD9XPUvmLjxhmZ+AT56NCVCcwxAKYehXY4juM4jjNECcEsXqGshar6FRFZAqBKVZtDuWYA31DVC0WkAtHGs9MRbbNoBXBF8Ak8BpG/33kA9gLoAfA1Vf1FqOc2RKGfUwA+paqPhfxzYJv0Hgbw6bDprxSR3vkcALsBXKuqG8IxNyDy0QxEwTjuCfnTEO1MakC08e6vVbVHRGYD+CGAswH8s6p+g/rhHwH8DaL1kFcAfFRVu0TkPgCZDS11iIKQnEnHTUa06fD2TH0UWKReVe2XevTdBxFF9lMAL2VCchfCJ8hHgcMJzHEYE+qB0AXgA83Nze7FwnEcx3GGDv0FChktIleqan6o6U8DeENVTwOA4OWhN3i1eAhRZL3rw3dTELlHg4jMQbSBby6A8QCeEJFZwZPFAkQR/55GNEG+ApEni48D2KuqM0TkOgBfBXCtiDQg2lTXjGiy+byILFLVvaHMHaq6UETuDHUsQOQF41OIwlhnEZEJIX+OqnYGTxvXAfiRql5L5f4Pomh6zB14cyjuXwH4DoA1eeeZCeA2ABeo6l4RNoG9GZ8gnwAsXbr0K83NzVccy8lx7OLLAQCV7b/I5pVNMxNs/HQL7sFm9USpmZynN1nQDJl0EqWnFT3vvLS5NJzWY6a32aPMBF1RZ2a7c3eZTmL8xVZPz0YzvVUur8umx8bMVHdJp7W7vNk8WszabV4sxu42s3nj1fZD9spvm7lwO3mWuGiOBcdoWm7SiA4y+U2vNHN1Wyd5pShm4mTvE+ytopisghAKGqLtdt5YtQU3yZFecKCXatq0RebR5Psut/x47itIRpsURsqs72Lyg2yaZQkaIw8EZPqvTbDrT2Nywupkjwgc1KMpZvVzj74CG485u9ypFEsAOOABl2mgACWXx+0ef/A8k55cssLakEpb/77RahKcP9Gz0kcRQaqk8Gv9w13WnpdL7XrLyLL+eqnVvzJhf4c+1mfeRVbRkOuWwmZ/ALjpAosNcMpv7Dq3ltj1PEdjv6bE+oX7iGE5CEsF2kn+0kt9XSxIB8P1lMYLB5TgYyuozSyZOBSzP5epIA83SZL1aKJw4JJi5HiJIFgOUMzDC3uhkCL1ALkeIZgEedlgqVExWPLDUo2JZfbe2EdBfrh/e+KF5S+HEoikPWHvwNK49XUNPQec39VnfyNYFhKnZ7GwH5tB5+uIVmjzJ4DjELk8AwCo6moAEJFLEEXNu5O+2wjg2+HjVYhWqLsBrA+u284TkQ0AalT1qVDPvYgmsY+EY24Px98P4DthIn45gMczrt1E5HEAV4jIQgAXA8iszN4Tjl+gqjsA7BARizplJBC5vOtF5Ls5J7hIOOcHQ92ZvPcCWIfIlV0WVX06fJ9/jr8F8N0wiUdoT1EOa4I8gM1hgEsHhgobjncDHMdxHMfJId8P8r+q6n0h/RSAq0XkIgBtVOZuAL8WkWsA/AbRivEaRCvDL/RzrgmIVogztIS83pDOz88csxkAVLVPRPYBaOT8vGMaEckg+grUVZAQFvobiAKGdAL4tar+Oq/Y2xGtmq8BABGpRORv+VIAn+mvfmJWOPaPiHwk366qjxYrfLgryIfsDeEoSwecQ2dDc3PzrYcj/3Acx3EcZ+CIyI2IpAsZ7lLVu+hzfxILAJiPaBX5lkyGqi4TkZMQRa97J4DnROQtBc79XQBvQ7SqfC5y3cJnq+snH4dxTH91FSRE4rsKwDREeur/FJG/UlUONf0hAD+jz/8bkYyjvcBKcTESiKIHXojIH/PvReRUVW0tVtg5cXjzqv8Z3xykqvOezW2R9ad3vZlp+/bbM1LSQWa0ajN7606TJ3S9bNaP8tFk0k/lmftKzHS8Im6msfYyy+/YbSa885JmKn+mzer98y32Y7i3jRzj5+yQNxPbtrjVLyXWprIacr6/mwIeVJrnhzK1fkmTO/KSBjvvuhIz+c3uMxNhspSunyUW28yThpLnilhtvzKr/qFd7pIsYjQi0yRLJiRBUgiWf7SRhKyO7iuQ4x1DlT0BWD+yF4gSMoOzqXVPr3mQqCRJRhfV2Uk75NvJ1FxBZnw2Oud6riiczt2ZT4EW6G9Giq5lm1AAgzJrw6bd5t2jOmFlFpVZ2w7A2r+nz54nvpYkXcvapEl81sXs2CYKP7JRrZ7dFCjkv+i+dMGuMV+2kCSPG8uesHv7QJmN3/1q5+6mADC5XkWsHT0kk2B5DQd24GN5HPTkvysy7e7/7zUAIJ0qHGijs6/w+Ms5NqdfCgcoSZI8oaeohIHaUEQikj4EiQWXYWkAB9DIh6+tWIAMlkkUC65RTIbCfbSfgqYUaxMHUEnk9J3lx3MCiFibe6jOtNoY6s4JIFJY/iFFAq4cKmEyfNdBCxY/fnGIWDcvL78dwIMAHhSRNIB3AVgG4P1U5uYQdjmjPWwBMImqmYhIytCC3AAemXw+pkVEEgBqEWmJWxBNNPmYJQB2AagTkURYRea6ivFOAOtVdScAiMiDAN4K4D/C5wSA9yE3AMj5AK4Rka8h2ryXFpEuVf1OP+dpAfC0qvYikpisRjRhfq5QYQ8UcuLQBZe7OI5zlODJseM4g8qXAXw280FELgirrhCRJIA5iDTJiwGUichNdCxvyFgE4DoRKQ2eJmYCeDZE32sTkXlB6/thAL+kY24I6WsALNbo19BjAC4TkfrQlssAPBa+ezKURTg2U1cxNgGYJyIV4fyXAKCwrHgngFdVNSsDUdW3q+pUVZ0K4N8A/MtBJsdAtIHxIgAIPxxmIdIwF8QnyCcIQVrx6kELOo7jOI5zrCgXkWX0700ySFV9GMgJWjAdwG9F5BUALyJaIX4gTE7fC+AdIrJeRJ5FtEnullDPCgA/R+QW7VEAN6uZ6m4C8H0AawG8DtsY+AMAjWFD3z8BuDXUtQfAlxCtvj4H4IuZDXvhfP8UjmkMdUBExopIS6jncyLSIiI1qvoMog2ALyBy8RZD7qr7dciVV/SLiHwtnKcinOP28NVjAHaLyEpEk/j/qaq7i9XjEosTiEL648+l5w9K3QvzPsvJkSWk9EKTM5R2kTeF8WTlYS8L400aUDGJdP1NJBPQNFBPn3vN5Pk/Ksx8z5bH0W8jM9/YUdn0+zrNlBufYzKR0hazCNV+zzbIjm+yfRKnTKL3VdKuJ1FtZrgpQgE1xtv1nHO6/VaZscWkCyVTzLT+vg6TfLRvMzN43Vyrv7GLAnMwndbO1NbV1oZK8izBZlCWYbCsorLO6mlZmU3HGvn+mXlUt22x9Pjplj5AsoqJ0yGlJKXopmAOVJdUmyymkuQdM8oKS0baE9bui+JWhoOpXNhlg+LpssnZ9JndNj7GkQm9Te0V+bMyG5vlHMiCvCbsUw5UYxKcAyQTmAvz0PCpt9g4S77z/Gx63jnmMQS9FJijmwLMPGQSpHWbTc5QW0rt77E2nHmVjdf2V6wMPyd93fZh1SYbr2/7pC1CpV7PtZb+8Rd12fQ+Msuf/zUbI+c8tSyb7tli9/jsP5ns410VNl4uoyFRT7Kpl2PWjqnUL0vL7PkYTWqAb4ktDsUKSiNzvVUcihcSDqDC3hRYzsLyHZaCsNeIiUl7Fjtp3PSRNKA+Zs8Jm/35vLUUMIbH3wGSHlSTl4xy+rO/rq8VTBN5c2E5Estt+HrKYoWnEB107pIigWv4ev4xbQGYllTaPagmq8QeEodUUv52CrTE9cdJMvFE2t63ZSTTqSyx/uXr2ttj7894ES8kLA86ElS1oOlFVS/M+3wOpe9F5Ju40HHbEE0oi53vy4hWpPPzlwI4tUB+F4APFKnrbkQbBvPz1wE4r0D+duRKOfi7LyByG1fou48Uyqfvb8/7/FnQijvlK6LJ+T/1V18GX0F2hh/1R6CpdY47RSfHzrCj2OTYGX7w5NhxHF9BHkocleh7+S75PFCI4ziO4zhO//gEeYhwFKPvHbJLPsdxHMdxHMcnyCc889/3uYMXOiRyVci9d0abSX/zkEXgOq2JIsxdRT7PS03rx9HglCIYSQ/pYvNPTRqx/W2FXZHJH82Unyg17Wa6z45tbHspm+5YZdrk0RifTTedZfq4xDTTzcWmWXS/0j37rfxLpGJqs/zkRNIEtpuWTRpN5yqJ1my6dia5iqo1iUKs3uo/8JM/ZNOVHyT3RW+hoEWk9+YIeBwlj925se44PnEOlSftM7l5k9kUIZFM7lJhEdp0p+mUpSbPzRu5hmNtOev9clxupVlzaeWfj5nmuUGszjbSdG5U05bXJE0X3NFHbSC6yV3XnnRXwTL7UpbfThrWWorOx9HnVv/WdKhzp1pU1I5nd2XTbPn+j5dM17tPbKy8UmYa0Vli19JNYfLG/s6enJY9psOPUX+up/5/ttz6c+cdlm5M1WXTT5bz05jGTtKJvvKFTdn0H/rsuWmKm86+J2W66Ce7THP/AmlD+b6WKY01+uvV1l34fnRQhL1EjgswilaXloL5fCy7JGN3Y8X8rxZzycb0shsy0j6zBnkLvdtyXQVaO8vJ3WRfEdeIxXS0fN7tea5g+Riu91Dcth0K/Bz/qMLu9/5eu5eV9AztStnzyv3LbgCL9RG7c8vRnJMbwJIikRM1x83nwaMFOiMH1yCPUJqbm28NK8xTj3NTHMc5Adh5rILvOs4IQkRSeV4sbg35S0RkKZVrFpElIV0hIj8RkVdEZLmI/EFEqsJ3Y0TkpyKyTkSeF5GnRORqquc2EVkrIqtF5HLKPyfUt1ZEvhXcrSG4hLsv5D8jIlPpmBtEZE34dwPlTwtl14RjkyF/dmhPt4h8hspPEpEnRWSViKwQkU/Td/dR32zIRB0UkUvD9b0S/s+GoKZjF4nIcvo8RUR+IyIvh/4tuGEwg0+QRy4ZacUGIGfC7DiO4zjO0KBTVc+kfyy3HC0iVxY45tOIwi6fpqqnAvg4gN4wqX0IwO9U9aTg+eI6BM8RIjInfJ4L4AoA/08ka1pZgCji38zw74qQ/3EAe1V1BoA7AHw11NWAyOvE+Yg8Vnwh45s5lLlDVWcC2BvqAKIAI58C8I286+kD8D9U9RREAVFuDm2Fql6b6RsADyAKjgJEAUn+QlVPQ+Rr+cdcoYi8D0A7cvkGgHtV9XQAXwTwrwX6NotLLE4cCmuRB8sz8im5HxNX/zkA4O2b/7Ng8dipFhRISXqQEyWv3UxqMsbkDPleLIRM/Ad6yd1THZnQx5u5tPy8Mdl0z0qTW8Sn2I/J8m4KS7/ekl2bzcRWnjTJSOxUkx/ExphsYCxJA2T2Wdl0Cbm8qxtvrvBip1uZMpZA9JHEglzh6V6TRnT8yWQkZmQHtJv6kczMHLUuVp0ndcjkkzs3llVIVUOh4jn3QkqtFbrP+lkmzrJ0RV3e8fRKKrPj49QXLKsYFzc3YT1kBj45ZpIOiuGHMWRqvShm9Z9F79EJ00yesX+XyU1e6TJpQJXYebvoDFvFyvdSPq9EVKt9OvX/M/1E7G22AFI993U7gPrkqs1/yqbXbLN70JS06x3dZybhNuq3ce+xeqpfMGlDOmVm6amdNj6mbDP5R/N76DkZW5dN3//jwtcIAJ95y7Zsuv6P5jJuH0lMniIT/bik9e+lsGvbkbBztKg9N7Ng43dlwsZ4glryXKfJNthUztIAlhIUc8nGtFN/sUmf62fzPtfPaY4KmCOBoDrLSD7B+ZxOUjtZtsGu4+LUJ+yabS9FLMy/3gqSN+zsNUlcGbmM43az27ZikoxifKS3Lpv+Y6kd203P0GjSGlWzq7q0tY2jYPbSPdjZ1UptpntMkQoTOS7rulGIYq4CjyJfRxRm+pG8/HGIAoMAAFR1NQCIyCWIwkrfSd9tBPDt8PEqAAtVtRtRJLm1AM4TkQ0AalT1qVDPvYj8KT8Sjrk9HH8/gO+EifjlAB7P+D4WkccBXCEiCwFcDOD6cMw94fgFqroDwA4RId1f1jXdtpBuE5FVACYg8teMUL8A+GCoG6r6IlWxAlGAlFJV7Q6r6f+EaML/cyo3B8A/hvSTiH5MFMVXkEc+XS61cBzHcZwhSX6gkGvpu6cAdIvIRXnH3A3gliBXmC8iM0P+XETBNooxAcD/z957h8tZnGfj97PtVJ2uoy4dCTUkug7NGBsDBow/U2xsMInBCQkJIa6fPwO/OJ+JI+KakLhEfCTGBhtbOBgDtikGhFwFSIAAFYSECjrq5fS+u8/vj5nd536X3SOBZVCZ+7p0aXZ2Zt555y1ndp577nszfW7zeRN8ujA/UsdbR3fCmX+UaqsRQIcvW9jWPuEpHCcCeLrgqzPhVs3Xvq6Ss9d+3k/8AWdg8q8A+grKvQCz4r4UwCgRKb46hDBBPuyxbNmyrzDVIiAgICAgIOCtgYhcKyLL6N+1BUUKKRb3FHw/H24VOQ9VXQ5gGtwKcwOApSJSEMcFROQ7IvKCiCzNZRXpoo6Q/2bqjNTWiPArvz8F8GlV7Sr4+qMo4qYnInPhKB1/4z+fAGC6qv6syCE+B+cy+DyAdwPYAkfvKIpAsThyMNDa2npzIc3iCzP+NE566O4AAAx1ktNUbbawFABARtXYh14Ll2nSQnmosJC2JAtUBhLsWGa3NIeOydQMOmChx451RMmYbWF2KbN26sjoKFlPu5uH6HwqqX+NFpquyG63MqQOgX4LFWe7jRoRS1D/O+z9IBVUN06h0EoLOyrtxucyMXKkU6KwSJWFtFnRglUp2Nkukl8K5SS5UGFhfxC1IdJmAcWC6QSsaMJhWg4js8PZAIWUV2Vt7OpZxYIoENvidi3HD1i4fnSf3QfJJIWsB+hYdNwu2kXfy2HtiMIB0WUoN7PJqAux00ytQbcZPUHGGCWofS9dbxqTzXFy86NrmaSDDay2Z6t7j51v7Vi7HkwpeZ7UZWatsHMsazNKUBamhgEA5XSee1fY/fJizI6RojIR1QhSq9icsOO9pn1U3k6ojVQHuol2ky1BdXijdIhSZdKk/CBcXou/39KUn2U6BLXDahJM/0AJ0QRWzxikNrN0LFZ3YOpINksKENyHgnlCqXEcYJe8GB+7eHkt4QDI5VfZ7Yg2LW4e1EX3RxdRKdozVn6QXAX53RDpjxbPF/3TKFSo6u2I2ia/0fqLROSf4bi5nN8Dx8e9T0SyAC4EsBy2QgpVvV5EmuCsqAG3mks2qJgIYKvPn1gkn+u0iUgCQC0cl7gNwFkFdRbDcYPrRCThV5G5rZIQkSTc5PhuVb2v4LsEgA8CmFeQPxHAzwBcpao5XtrpAOZ52kgCjse9WFXPUtWtvp3cZPxDqtqJEggryEcIaCU5ICAg4ICjPPw5CQj4U+EWkHWyiJyR2xDnFSLmwHGSF8Fxca+jumyR+CCAK7wyxVS4zXjPeA5wt4ic5rm+VwF4gOrkFCouA7DIWzY/CuA8Ean3fTkPwKP+uyd9Wfi6ubaKwh/zuwBWq+q/FSlyLoCXVbWN6tQB+CWAm1T197l8VV2gquNVtQXAOwG8krPtFpEmsV+1N6GITTYjvNECAgICAgICAt4eFHKQX2capqoPAdhFWUcB+LWIvATgebgV4p/6yeklcDSCDSLyDNwmuRt8OyvhNq2tAvAIgOtV80vn1wH4bwDrALwK2xj4XQCNfkPfZwHc6NvaC8f1Xer/fSm3Yc8f77O+TqNvAyIyVkTafDtfEJE2EakBcAaAjwE4m8bhQjrfK/B6esXfA5gO4B+pTjNGxlkA1ojIKwDGwP3wKIlAsTjCMe3AMCxex7H4xSdWAwCeKzP1iQ9ttFDp9Orf5NPJ4yziE2uZkk9LFYXo+y3srZ6+kUedUQje9VmK1cUoHE0qEHt+ansRRp9n9I7h9WbOkJxhYe2/nGb7ECquzUevgK1mhCD1Vl6JJnDu+1+y/N1kkNHSkk/HmT4xYGMUn27mIygjWgmNi1SaEsOGLUbtqHviGat6dKv1YdNqa6eDzD4abAyZ5qDbqM9kAsJqFUyriE81FY7MFpJIIWpH9nkzNJEZc8GIqGb0Wv/KE3a8r2Tr8uknzEUdc5I2Fs1Erzkha2M692qjttR+39o8+iijOlTNIsOAIev3e5+wcdmetLWF+oy1szxl1+m8fgvfNpZbGHhKq91/w9tpF/2LzxY9rr5m95+QAkR1zELdY7N2359DBjO9A0aTqDzTIqjl221sY81mhJN83iKhpzxt13WY1C3KauxZ+mwsatCxut9oOzeo9aktbcc7IWm0jMqEXb/jErZXZqeSSQyFwWfEjMq0p4TuMlMaZlfY+6eJzFqG2fiDQvFMkUnS+tH2jL1/+mKmcMDKDxWk+pAGh/TtWExbOCNlfdtF57slY1QYbp8pIoPUz+mJunx6L7XDq191xDHj8dwas/PKFtBEq2m8Msni9JEqojT0E6UjzpSoiJoLU6WY/mK4MG3vtw5ik+0hGhGTISqIbhEvYWKyiYxnaug9UUptYyBt48jGIoVjVAxvVOdClTh80fyzCj7Po/RdAO4qUW8b3ISy1PFuQZGJoaouA3BMkfwBAB8u0dYdKLIKq6rr4aTfCvO3I0rlyOF3GGHoVPXjRfLmw/GzS0JVN4LOSVXvhVPi2C+ECfKhjYERtI1b3sJ+BAQEHOHgyXFAQEDAoY4wQT6EsWzZsteFYnLgiXNra+uNgFtqCzzkgICAgICAgICRESbIRwaKm4QAWP+FYrl/PN735y6s/e7nLLRaMddCZ4mz3muFWd2B08MW5uIwfkR9AQBI1WJ4nVECErMm59Ox0XX5dNO1ZkKge6x/qQlGX5JxFnZe/f8sDHfKZnIN6bewubAKBNEJuldZ3cZqo0BEaCLDFCpmekMnba6tJpUMVnoYsD4cc4LRBJInmeJPxIxj8ixLj6Hw+CjrmyRsPHX8UVaGQo1sAsJqFUyriE+YnU9nt5p0pUyhNocGIDUkQ0nmIKXibUspXLpV7B4ZBaIBkIrHtrTdU7N32hgNg9Q9lEKzpGCS6bNwOsdB4yUirV0U/M3SGewdsD5M6LLrWj7XKD5y9LGW3kt0w4Hi9Ix4nYW3Kx6ze270FAvRj6FbJTbl9KJ9lgq73pKyPo+uMWpKzRQK3VeS6US53bsnlu/Gng67fh8fsGf2VxV2zd4zYPUfYfoEUVXisHQnUaXG0aOSJMWazXRPdMeszafSRpuyVBRMRWBVgyQpLpQR1aE7UsbyS9EqWHGCaRtMB+DQfQUZcdQSNYINQdgUp5HGqpzKDNC9yMYaY+i82okuMlygwjEmZvfs9qzdg0xpKEPx82cFlxg9W5zP53/qgPW1iykNVH6A+t1MHItBel9VU3/6qD+lFDlYSSOqOoOiZfi6lsJ+6ZkFHBIIm/QCAgLeNkQmxwGHNHhyHBAQEHCoI0yQD1+8s7W19eaci15ra+uNI/CVAwICAgICAt5iiEimQMXiRp+/WESWUblWEVns05UicreIvCQiK0Tkd17XFyIyRkR+JCLrReRZ77Z3KbVzk4isE5E1InI+5c/z7a0TkW966TV4Sbh7fP7T3ukuV+dqEVnr/11N+VN92bW+bsrnz/b9GRSRz1H5chF5xpuarBSRfyoYo0/4/q4Uka/5vD8rGLesNwnJjd2aQnWLkc6lGALF4vBFIker8BPjojSLd5QfKI5FVMaid5mjLnRut9BnBQkW6E4zG5AGWkWkMBorV6C/B0i6cKP2dADVdfYd7TiONxv9Qpm6QOns2ryFPWJjGouWwaDRD1IUspVaO2521x471iCJ2++xMP7e7baq1rDJ6AeZlZYeetmCv2W91k5mvZlFxBqIYpGix5aoBJUXEq1i6nQrk7JrICB6yTCZmBAtRMmgQ3uNDiCVRqXQTjvHiAkIq1UQrSI2fkYknf75ba6dra8BddYnhvYZVSBDfZpCBi2/LbPr1E2vswHaXT+aFDeGt1pfn6ygcO96U1ao2cTqCBbeX1Fm5TfKIJWwa7A525tPb0sYbaWSzBm2vGL3aOJVO5eW2OP5NJvZ6KCNaeerdi6xhNV9JmvX5tT1xYO8Rz2/Mp/O7il0YHXYvtzO99cDdl1OfT5qEpMhU5oZ73XP6Wh0YfsSK/dML6lggOhSJdZl2uIWN9+qNr5MFTg5Yee5RWxcOkjRYqiEkUwlUQMGSHGBy7PpBFMa9qbturK5BptgxOjdxSYg3AdWStiTtDFh9YxdaXvvddN9nKD2uf/8V7wja+OWob7VE12CUSVJtKULDcsc1pAxB1MUdtCx6+N2jbsy9iwyrYSVK5i2MkBj9LMKa2eQDEvq6OS2KJkrxZkyQdeA+t9LhiZMjWDlilKGJny+b3QV8Y2qWMA76ZX4rllE3qeqDxfkfwrOdvlYABCRWQCG/aT2fgB3quqV/rspAC7y6TlwChdzAYwH8LiIzPRSbwsAXAvgKQAPAbgATurtGgDtqjpdRK6Ac627XEQaAHwRQCscs+RZEXlQVdt9mVtVdaGI3ObbWABnMPJJOCk6xiCAs1W1R5xhyO9E5GFVfUqczfbFAI5T1cHcZFdV7wZwtz+vYwE84B0Gc/gzr8zBKHouJcY+rCAfIRjAoa5qkSQrPJ4cBxxyyE2OAZScHAccvCg2OQYQmRwHHBooNTkOOGjwdRTYTHuMg7NJBgCo6hpVHQRwNoAhVb2Nvtukqt/yHy8GsFBVB1V1A5zm8SkiMg5Ajaou8VrKd8EmsRfDaSkDTiLtHD8RPx/AY6q610+KHwNwgf/ubJic2p25tlR1p6ouBaIajeqQe5kk/b/cr5TrAHzFnx9UdSdej6I21EVQ6lyKIkyQjwB4tYuNb3c/AgICAgICAiIoNArhFc0lAAb9KirjDgA3eLrCfBHJhejmAnhuhGNNALCZPrf5vAk+XZgfqeOtozvhzD9KtdUIoMOXLWyrJEQkLiLLAeyEm3g/7b+aCeBMT4n4tYicXKT65Xj9BPl7fjz/kSbBpc6lKMIE+cjBSJrJAQEBAQEBAQcYInKtiCyjf9cWFOlX1RPo3z0F389HwSqypxJMg1thbgCwVESOLqgHEfmO5/UuzWUV6aKOkP9m6ozUVkmoasZTTSbCrWrnDD4SAOoBnAbg/wD4Ca/6isipAPpUdQU192eefnKm//exfZxLUQQO8uGLjfyhlGbyH/BXB+Rgnyz4XPO3ZwMAUvc+mc/LthunL85SOytW5dMyimzjK0najWTOkI3KEbEcXM/vTR4rZbRSJEYbDzc2lni4XRYijk01F7f0c/as3V9mx57x34vy6bLJRvuQGqM6pZcb9/b5IXPYm06ud1Jt6UQzca0JUmXyRdkO40DGp5CbJnGQ227bmE+Pfed6a3+Lca61w0Kq6ZdtwSD1wfxeDaCbeMdHmbGS7iJXvYkzrfyQ8TYjLnkk55Z99gnrzwf+1vrw9INgaHe71W80qb0Enedz5faOmwYbxwHiel42YGnma3ZttTF9/4Dlz5hhPPAKWusY3mvtTF9hBlDHkcRYGfEb22N1+XQP6cJtT1ifp6Tti5l/b1JzMnWaVeiz6w1qf/Qku5ZdjxuH/OJpdi3Lx9mx+u2SId5i10wq7Hy1267fpA8aV/Ujr5CD5EWnWnni6j/1j3QAAK+k7Jm46mzj0K/8VV0+3VBj93uy3WgZM2lcri4zLm3jJBuLR9caB/m8hPGon86YXF4VvR5+lCjOoy0nPnIdOcbVULqO+L9DSev/hrQ9H3FaY2J5tl7i76boWFVUZjzsWKPJhW92ys6xOWtjMkx/2pP0Jz1B6c6YPQ89QvxrtX7WkuzaWqKuTcsSjQ3ArphxdTcT/3cUnQ/z7zPEC95LnGouny4xF/nCOLsfN26w9/Oocrv2uwfsHZ6kc+sgmbsMzX96SXrz/8Zszws7HvI9kYpZP9sHbf8DO/LFiUPNMy0tkQYAVb0dwO14k1DVRSLyz3ATRM7vAXAfgPtEJAvgQgDLAXyIylwvIk1wVtSAW82dRM1MBLDV508sks912kQkAaAWjkvcBmfdzHUWwykq1olIwq/Sclv7c74d4jYjXgBghT/OfZ768Yw/1yaY9fbrbKhVdYv/v1tEfgTn6nfXCOdSFGEF+fDFxre7AwEBAUcOeHIcEBBwQHELgM/nPojIGSJS79MpAHMAbAKwCEC5iFxHdWnVCQ8CuMKrOUwFMAPAM96eultETvOrs1cBeIDq5BQqLgOwyE9WHwVwnojU+76cB+BR/92Tvix83VxbRSEio0WkzqcrAJwLILeT/X44TjNEZCaAFLysuYjE4GywF1JbCf+jAH7D3/+Cm2iPdC5FEVaQD2Owg14OwUkvICAgICDgoEGF597m8Iiq3sgFVPUhESH3IBwFYIGfzMYA/BLAT1VVReQSALeKyOfhVll7Adzg21kpIj8BsApAGsD1XsECcJvhvg+gAk69Iqec8V0APxCRdXCrrVf4tvb6le0cfeNLqppbjb0BwEIRmQ/ged8GRGQs3Gp2DYCsiHwabnI/DsCdIhL35/MTVf2Fb+sOAHeIyAoAQwCupkntuwC0qaqFTIEyAI/6yXEcwOMA/mukcymFMEE+vFHSQS+HBvz3ATrUuZFPHd9aDAD4dpuFyecMWcDi/VmTnELafsAlJlh4URrIZayW3PM6CiIi5RZ66++wcJvELcw5tJtkrVZZSLlnt4U5y6qW59MxCheePGj9qDjW+hHp3+SWfDrZbLSKdyz5g5UZN9Xap+7HJtoYyXRyU3vpGUtTm+y2x7J4X+m3cOSfPWihz3ecRlSNXUZhiI+lMeU262zPAsvXsalHxJ2P0jLDtPyEXPG0z8LqTKtInHoRGOzEx8dgmbddtAF6jNr13gTr61NEi5kyRC5ltVa3qc/uierj7HekVNpKaKzG2qx9key7CGlOUzi2NmPHJYIQkilrRxpIxYNdJHuJdkP0kvV3Wv7DWeOC9Igd6+h1VpXd/D7wkv0NSe9lZzxySOw0akP3Jhvb5AurrfwY6/OPK3jxZRAdau12LB6XTz+esL/tVQMku0dSXI/H7dyGh0wi74WNdh/tSBhF6AmiQGyhuUMqYeezfdjKsyRZH1EAEvQ0tiTsmWDJPpaC66M+c8h915CF5Zl6wTJvTLfoT1g7w1Smn9un61dO9Ixh6s+EuL0z9xIVYihrZVhqjeXiBtN2966TaEB5Kqzd9cP23mhK2PXg/g1Qn/qJYsIUBZa5Y1m1PduszV2w529J1p4JMkzFIPEbXhMbr0oa9z56TwyTbOIQvTNYso/TDHbSi8rCFccblXlT1XiJ/LMKPs+j9F1wlIFi9bZhhImfqt4CtyJdmL8MwDFF8gfgVmmLtXUH3AS2MH89HK2hMH87olSOHF4EcGKJYwwB+PMS3y3G66knvQDmlShf8lyKIVAsDl8c+tJuAQEBhwx4chwQEBBwqCNMkA9TFJN285SLgICAgICAgICAERAoFkcWXmen9NnhYsX+eFTNdWGy9661Axx9tIVBy95zUj7Nu+KFlB44tIzJ5sSG7o7IsaTRQrl1R/8mn04eTZGceNEoFiqJciAVFgiPjTF1ganfsB3QsZlGk0CGQ+XWB+23UGvj0RayRiVRGmqt/depcuT7Y9SRCAWC6/ZaCPnCQYtBnvgOUzWQYy/Lp+P1FNKnNqWZNjaT8x4rVCBh7Qv3h9KxRmqHKBYMVqpgSgUAxCfMzqeze23jc5x2pB9Fu+2biPXQmbTbezTd16MpZF05w+6DwR5SOOi2a5BotNBygpwWm1PmnJglJYB4zIKtnWm7h2opZDsqbn2YOMdUEJRoHrHRRplQHt9yowZMOc/UUq5abdf41Vfsnpg00cY3kbLzSr7bIpHx10yhQpqIUtPeYYfdTI6TTUQtKrPxP2uIaSdlGKL4cnPavltNz9bRavfXS2IqGK1qZaqp2TkUcp8plh47bOO+MmX35jAFvzMk8cAubpXUZoJpAuTaNzpm/ewjJZROcttL0hpTHVE4OPweF6Y32P03N16XT+8hp8Fhup9qiJLB/eRzHE+UgR5S4ehnagf1s5oULV6J2/2nBaSBUTQ9GJOwa9NAx6hA8ffqUJxVZJhiwm6ANtaplL0njxJ7f6YHjMaWIKrDKKobLyNlEKLrddI7/5d0XKa5SKy4QgWjlIpFwOGPcLUPbwy0trbenPuHQLkICAj4E2HojZIvAwICICKZAqOQG33+YhFZRuVavfwZRKRSRO4WkZdEZIWI/E5Eqv13Y0TkRyKyXkSe9WYil1I7N4nIOhFZIyLnU/483946EflmTmvYK17c4/OfFpEWqnO1iKz1/66m/Km+7FpfN+XzZ/v+DIrI56h8uYg84zWbV4rIP9F3N4vIFhqfC31+SkS+5/v8goictR/n8rc+f7kfszkjXZuwgnwYo1D7uLW19fG3qy8BAQEBAQEBr0O/N8gohmYReZ+qPlyQ/ykAO7wZBkRkFoBhPxG8H8Cdqnql/24KgIt8eg7cBr65AMYDeFxEZnoliwUArgXwFICH4HSIHwZwDYB2VZ0uIlcA+CqAy0WkAcAXAbTCBU2eFZEHve30VwHcqqoLReQ238YCOOWIT8JsrHMYBHC2qvZ49YnficjDqvqU//5WVf1GQZ2/BgBVPVZEmgE8LCInq2p2hHP5Uc6GW0QuAvBv/ruiCBPkIwuvu95fWDX/gDS8sMDDJ3myUzOoffjVfN4gOSfooIUU2bwCFJZFGYX0h2x3NpJRvVWmNKQ7LJwX22Li85K0Y8eabYd8tt1CjIlRFlLNrLfQ72tpC/PN3mCh6djEsUX7gJ1Wt/0V62sFhRrRaX1DN53/GCpTQfKVZN4BClfzWPRQuFDImEJ3khvoIFE+YGkpt3NUCl/KKKJzkCFLhD5BFBHtNYWRiJB+n40PG4BE1DAQpVXEGqwcS1VuJwODUWSksJs2iU2gDenKoentRnUoq7YAWoxMWaTGxle77f7oH7ZQbn2Vhdm39Fj5ZtK0aCfjgR1kZlD3qt3LUyYQDShdfBd9hApTYdd752vFdYd7O+lc6CLUrt+YT2svPU/0zEmVPQOJUTbmsalELSLqz2tJM/kBouYUHzjOruVzq+w8y0ps/+8mJY53x0xBonPIzue35TYWzXRdu4ka0UyiAF1ZMrggasAQUSYqSA2jRqwMh1eZfsAhegYrUbDaAStacN2tpDgRi9AnrO4QmH5l7bDBBRuI8Dj0orjqyjCdL7MqKgrOK1lCoaKHxo7pI0z76NbiShzDNC58nqNn2PV++VlzeKqlY2kJfYgGOk1ip4CEiKLjReeS1uJjxGAVi+y+DeH2o8QbwtfhXPQKJ8jj4HSP3TFV1wCAiJwDYCg3CfTfbQLwLf/xYgALVXUQwAYvd3aKiGwEUKOqS3w7d8FNYh/2dW729e8F8G0/ET8fzhJ6r6/zGIALRGQhnG7xlb7Onb7+AlXdCWCniLyfT8bLtuVkbJL+376Gcg6AJ3z9nSLSAaBVRDaXOhdVpT+2qNrXMQLF4sjCxre7AwEBAYcneHIcEBCw36gooFhcTt8tATAoIu8pqHMHgBs8XWG+iOQ26cwF8NwIx5oAgFZM0ObzJvh0YX6kjnfG6wTQOEJbjQA6fNnCtkpCROLi9KB3wk28n6av/15EXhSRO8QbpAB4AcDF4oxBpsJJu03ax7lARK4XkVcBfA2vNwGOIEyQjyy8vO8iAQEBAQEBAQcCInKtiCyjf9cWFOlX1RPo3z0F38+HW0XOQ1WXA5gGt8LcAGCpiBTEcQER+Y7n5+bMPIotw+sI+W+mzkhtlYSqZjzVZCLcqnZOk3kBnDHKCQC2AfhXn38H3OR3GYB/B/AHOFn6EY+vqt9R1aPgzEy+UKRsHoFicQShkJMMAPNfGfH+eANYGPk09XMuIsT+9tkeekb+cQeKgUPpHNqKya/yaQ5fAlHxeVY7iD1NlAMKBcZgFAgWhxchtQpqk4+X+X98bDNPUF1EfbU+JGMW7s2854Z8OsH5LD6vv8QbAZ9XL9FQPvkQ9fmX38ynh9IW+uQ3Vky+m0/zuFeRecUg1eVx5vEvT1D4lsBGH4kCRRH+jtvle2Hb+kfy6emzLrF+g6+x1f1NidBp7JniYVp5mdcKit+bfJ4gxgvvbOcd71naUR9RCDCRCQz9tT03sRIhZA7rJigMXuq4w+127nz/DX17W9H2GaV26af/8GDR/EIk6HlfuJSf3+K/zasTdn89MLgxn76Pwu8cEo8PFO9fcqC4mgLX7dDeomX4nCvjRrEYJPUTvjZcntsvixW/9xm9ZKCxg0xMkqRuwe3wtWc6AKthDJYwLikFpnxwXX6XAAVqD/Td3oyNI/cjGTFHKW6uwefDY/quZfbuElr8K3XO/Hclk8kWzZestT+53GgbnRmjTdWweUzGKGdlcTLJ4evBVJO49Xk4U4IeBUBVbwdwe8kC+4CqLhLnWFdoiNED4D4A94lIFsCFAJYD+BCVuV6c7XJus18b3CprDhMBbPX5E4vkc502EUkAqIXjErcBOKugzmI4G+g6EUn4VWRua3/Ot0PcZsQLAKxQ1fwLWUT+C8AvfLk0gM/Qd38AsBbuDVvqXBgL4SbfJRFWkAMCAt42ZEpI3AUceuDJcUBAwAHFLQA+n/sgImfkqAZeIWIOHCd5EYByEbmO6tJmFjwI4AqvTDEVwAwAz3j3vW4ROc3zi68C8ADVySlUXAZgkecMPwrgPBGp9305D8Cj/rsnfVn4urm2ikJERotInU9XwFnzvuw/j6OilwJY4fMrRaTKp98LIK2qq0Y6F6KiAMD74SbUJXHIvdG82cXr9HwD9g/7sp4OCAgICAgIeMtQ4bm3OTyiqhFTL1V9SIT81B3lYIGfAMYA/BLAT1VVReQSALeKyOcB7ALQC0cngKquFJGfAFgFR0e4Xm1X9nUAvg+gAm5zXm5j4HcB/MBv6NsLb2Otqnv9ynaOvvGl3IY9f7yFIjIfwPO+DYjIWLjV7BoAWRH5NNzkfhyAO0Uk7s/nJ6r6C9/W10TkBLig50YAf+PzmwE86lfPtwD4GI1PqXP5exE5F8Aw3Erz1RgBh9wEGUB5mOQdOKzfb1fykTG94PPcahfFmZgw04XTM7b7vYNiF/UF0fBzauw9kCwns4EtpqgwTCG/zaRQ8bH3kzoEYXCDqQ785gXbL/DueUa3WL/cTDQa6i0M91Cnhef+rNX2JLQ9b8oPjeMs7Lh8/Zh8WiikuCNhj1trymL0W/pMEWJFmZU5iZQ+ejkES9SDsRV23LtgagodsNBpOYn5v5zpsP4PmuIEh5b7M3bc6eXN+TTTBPopNDtcQGf4SrYun16atGs+ZchWi58rt+u3i/rKJiCsVsG0inVr7s+nb2r9h3z6w0MWIh1VYemqWktXT7Bj/Xqp3QeT4nZ/CKkpaMQQxPq/lgxBji6zUPnufjvfE8/cmU9HYnW0aP7AUxYJ7CSWwElEl+lVuyfGltt9mUrQbvyMHWDyqT35dHaAwtskXJFosoP1b6LzLVjQ7+uw65HJkopCxsZl0gdtvWLXI6ZW8o8d9uxX0f37V8MWjv4GGXl8o9nq/mqbLRpVZ6zMrJSVWTlsz183jV2S2CzvqLB7fPw77b6WBF0QUn/Z9XvLTlXYuD++lRexDExKuOSd9i7Z+aI9T+2dtoBXkbL7b/I7raPxMfYOWPszO5meYRv/FD0POzI25qcdbcfdtYnGfBQr1gCVDbnzV2QGc+efQnqIKCMDds57263fY8bZPd7bafd45Sgb04E+oyKUlds1jpGiDrfPeGqvPQcn19o7vH6iPZcDHVZ3sNfStRPsxh4ipaSu3TZG/zBk5eck7T1/Ysau04aUje8Ph17MpxMlFDAy2eI0rjcqB66qRflBqnpWwed5lL4LwF0l6m2Dn8SW+P4WuBXpwvxlAI4pkj8AoOhMQVXvgOMCF+avB3BKkfztiNIfcngRwIkljvGxEvkbAcwq8V2pc/lUsfKlECgWAQcV3ujkOODgwh8zOQ44uPDHTI4DDi7Y5Bg0OUbJyXFAQECYIAcEBAQEBAQEBAREEH4yvoU4GPjTgZ4SEBAQEBAQEDAywgT5rcVBx5++44UD46R3XgEJOSfJs40kgR4U45NNEeNwrogbX219n/HDkn0Wyq0ut2DHXolyv0YRJ/erj1j98cTL7GLKodHO8NxK46H2JY0GkOyx3zHbiZ+663mjTxF9Es1ttfl0L7XPUmrHDxqdoGaMtalcqN+4iN0ks1RN3LeGMuPcdQ7YwR7M2IZclnsalTCqQ3fajjtMHDolCyqWBmMw73hc3K5fhki1T9Dvv61iYd3fUp+nwc5xjEalsZro0rJLHktCMe/4y8uMSvftk/5vPl09aPzJBKm2lW+382wml64McY2bG+ye7es1msGOXuo37NxSxF2sHLI2H1li91ZZ1o47PmZjcVzcaAnJuI1jWb2NdU+PXeMn1Hi3KTI2nDBsdTcvtmvTT7J5s8qNRzqwwu6tJHGZy8us/+m01e3ss+s6brS1c9VClreqiDilgcZoQ9q4019OWP/aM3Y//nK78XxJoQsdSfvwtNh1nUJ/vdbHrB/ldK+sH66zQk9asokoI9XU5ca0faimc6knE5QNKZYzM/z7U+b82MQnQI9TNTGK/vAHe2fUEs86w85zXJfuoSHiTT+z2o47QM99mjjnfXusfA0dq5faGS5grk0iZ8eVxAlvSRu3eXePuZI20PthgILTQyyLR/S4JL34psfs/iivsnZWv2R7ICY0sQmaYeMqe+cn6BnivQRdWetzQ9ye6dX0t2eArmah5F0OpaQYAw5PBIpFQEBAQMAfjeHCHX4BAQH7hIhkCpz0bvT5i0VkGZVr9frAOYmzu0XkJRFZISK/E3GrTiIyRkR+JCLrReRZ77Z3KbVzk4isE5E1InI+5c/z7a0TkW96hQx4Sbh7fP7TItJCda4WkbX+39WUP9WXXevrpnz+bN+fQRH5XME4fEZEVvrz+bGIlPv8e2hsNuYUP0TkzwrGLevVLiAit4jIZhHpQRGIyGUioiLSOtK1CSvIBxHeCgrGwbaCHRAQEBAQcASj3zvIFUOziLxPVR8uyP8UgB2qeiwAiMgsAMN+Uns/gDtV9Ur/3RQAF/n0HDiFi7kAxgN4XERmeqm3BQCuBfAUgIfgjDoeBnANgHZVnS4iVwD4KoDLRaQBwBcBtMIFS58VkQdVtd2XuVVVF4rIbb6NBXAycZ8EcAmfjIhM8PlzVLXfS9FdAeD7qno5lftXeJsmVb0bwN0+/1gAD3iHQQD4OYBvo4jOsYiM8sd6uvC7QoQJ8sGFt56CcfyjB6ihKMci5SkWR8dMdqhaLWDRQDvh95JT0fEDFhY7/yFTqvnF+819c0+BE1sPxUEuoFBu8xgLX6eHrE5np/0GSSZs1evVfuvrlJSF2f8zZiG540g5qY/Ck9Xk5rQ9WTwwsztuj9voPRYq3jVgFIjl5VZm5qC1uS5pYzSGzoXX7CaUWbhzQDn0bWDqRZrKDFB4lN0FexJ2wuwCNkSUjwG1unOSRkMYRbHlbnrVDFCvN8FC7ADQmbRrs1tJlov6zXJuTKv4++e+lE+vPfUTdjySeKqttbjz7r3W18Y6cgcrI8pBxs5tDKxM74DdExXV1s8k0S1mTN2TT5N5F+L0E3jt84359PYhuw9mV5s8Gd+jH240N7yyajtWypQIEW8wSka2i3gYdL8KpWO1VL7TxlZJeWT0DluIiZfZM/qvMeYHAWu22/n8osK+Oz5m1JDzB6xPd5XbsT/6bju3Tb+256O8wq7B4IA9B3VjbFA3t9Xl06PKrf2ycqI1jbZrXznD2uHzHGize79srN1z25+1azOBOFRDGbvH577brvfQbnKONEZJ5D4oa7F2pMrSfS8YlUDpPZlqJFc9YhtUHGtjm9ll92is0u57JeoIS9xl+4hSs7dAtoxeLsnxNl6xKrv3h7eYlGG8rngZEDUk20v3I7Xfv4meuUnWv+NmmORbvJ4eHGpzLHFkdIhoY0Rpm/uovRvnpG1cjiEeysaYtf8wO3RG3DpLpDX6HBxAfB3ODrlwgjwOzhgEAKCqa3yfzgEwpKq30XebAHzLf7wYwEJVHQSwwWsbnyIiGwHUqOoS385dcJPYh32dm339ewF820/EzwfwWE77WEQeA3CBiCwEcDaAK32dO339Baq6E8BOEXl/kXNNwGlCD8OZm0Tc7/wxP+LbLsRHAfyYzvkpX6dIUfwzgK8B+FyxLxmBYhEQEBAQ8EeDJ8cBAQH7jYoCqsDl9N0SAIMi8p6COncAuMHTFeaLOcTNBfDcCMeaAGAzfW7zeRN8ujA/UsfbO3cCaByhrUYAHb5sYVtFoapbAHwDwGsAtgHoVNVfFRQ7E27VvJj73eWgCXIpiMiJACaRCcmICCvIhwHeCDUjUCwCAgICAgLeGojItXDUhRxuV9Xb6fNIFAsAmA+3inxDLkNVl4vINDh753MBLBWR04sc+zsA3gm3qnwyivuY6Aj5eBN1RmqrKMRZVV8MYCqADgD/IyJ/rqo/pGKRVWKqeyqAPlVdsY9jxADcCuDjI5VjhAnyIYgiE+KWZcuWffxNNfbC+fsusz8oULE409mqYw/tDJ6UtueGaRHtpEpRSaGqTVcuyKfHk528Zgp/C1i7006y0DSHM/vb6XhDVr/1XAuLppZYuPGlTtsZrWUWdk5Q/2aq0QN6SY1hPdEBWKNhilo4L06h6caU5Y9JW40Tx5hpyjM7bTd3s5BjHIWT67MWBlbq524aCKZY8I7s2oSN795hC6e/J27HfTZm7n+ziDqzKmvx3mYKCZcRFWZA7LwuI3e3p8oo/gxgNO3yn0Askd8QpYNd8litgmkVM57+Vj697YK/zqc54sbtlFXZwSoaLK2kRtDVbfcNUzLKa8g1LGkn0LGBFD1223iNbzLqz8yT7f7b8iI5M7baGNXutvEtP9lUVF66ze6/o6fYtYlRuD6zm+7dSTbWTLHgsHxiFjnGURi77BJ6wIftntv2RfubNKGyF08NmzLDX6n1O0aKAnUT7X7s2GV9Su+1cZx4vNVNzbaV6T2PWX6yglzNSIUkRUocCaKn7N1ilJqy0XbO8SYbr50bSSVjuo1d01QrL+Q8ODRof0JjNXaPd6/kZ8ue70Sd5TMdIN5MtK8a4k/QeyLRQLQFUgiJ1dh5ZbbRniS6fpzWATtucpoZMCXnRN+rPY/nI/iId9mY8r3DNInYKKs/tMHu8dQEei+lrR9CaiCVs+zchJxRpZLy6+3eYsTG2jsqu976jDq7t9ZnaVyI89JATnp99DcpQxtO4+yeR/n8jh1p9ucnw7ePUGREqOoicZbOpxXk9wC4D8B93m75QgDLAXyIylwvIk1w9s6AW82dRM1MhKMytCHqcJfL5zptIpIAUAvHJW4DcFZBncUAdgOoE5GEX0XmtkrhXAAbVHUXAIjIfQDeAeCH/nMCwAcBzCtS9wrsx+oxgFFw7nqLPfViLIAHReQi77z3OgSKxaGJ8mXLlt2c+wfnTx4QEBDwtoEnxwEBAQcUtwD4fO6DiJzhV13hFSLmwHGSFwEoF5HrqG4lpR8EcIVXppgKYAaAZ7w9dbeInOa5vlcBeIDq5BQqLgOwSN2vg0cBnCci9b4v5wF41H/3pC8LXzfXVim8BuA0ceocAuAcAKvp+3MBvKyqTAPJrQp/GMDCfbQPVe1U1SZVbVHVFrjNiCUnx0BYQT5cMNDa2nrz/hQMFIuAgICAgICDBhU56TKPR1T1Ri6gqg+JyC7KOgrAAj+ZjAH4JYCfqqqKyCUAbhWRzwPYBaAXnp6hqiu9QsQqAGkA13sFCwC4DsD3AVTAbc7LbQz8LoAf+A19e+FWbKGqe/3K9lJf7ku5DXv+eAtFZD6A530bEJGxcKvZNQCyIvJpOOWKp0XkXjj+dNrX4VX3UqvE7wLQpqrrOVNEvga3SbBSRNoA/Leq3lyk/ogIE+TDAMuWLfvKm607P/aFA9SL6A+4ld4UpIFIBl0kPjF22IJSo7J2G9YlLJQ5qsFCk1kK3cd7owGt0aSmz+INrBYQi5NBRKWFePvWWvisl4wg5lYbJ2PNkO2Abp1iO+37uiz8N3Omhbsbnq/LpzsHrcyY0RbmG3269advjYVLE6+RWUm59e3MqRahIpYEysdRmO9pC+MPU+xzfMLymRw2SMoVjKq4hR2Z/tIgpHZA5esp/4Ssje22tF2A0XG7D1hhY8pQwbWkPmkJUf6qWqINkAkIq1UwrWLcI/+VT/dc95f5dF+3nUXVRArLUyg7Ts4O5bUd+fRgtx2rfKql07utfNM8a7MpZnV5h/8QR4SbbOyyPaQoQIPd+2tbQGmqs/Ht32DlK7JEB0jZGGbbiWoz2sLMyuH3vRbez1B52Wx/m2N19pxUVNi9+56KXVjaYSH7u4i2008ncfFmqz9UZs/EcKf1tW19XT5dtcreA3u7LZ/RRu4/mXZ6VxC1Y+6pdg6s5MBUh3Gz6fw7rJ3VL5hMSL/a9U4Rhax5HdXNGK3gtVXW50aidpTX2r1SWWvvj71r7br29dm9UlNn49DdaXScyXWm9NC/JZ9ELGnXJjNo51tWb9eif5OpUBSCqRS9bVY/vsPuaxKtQf9Ko1Ww+oZusHNL91M+U0BoHKtmkepFv42RdJPzCStjbLHrqoOsykHvVdh4sZHMroSl+4u/biIKOiC6RUQhgegWb9RKRFWLOjOp6lkFn+dR+i4Ad5Wotw1+Elvi+1vgVqQL85fBURAK8wfgVmmLtXUH3IbBwvz1AE4pkr8dUSoHf/dFONm4Yt99vET+YhRQT3z+50Er7iXqnjXS90CgWAQEBAQEHADw5DggICDgUEdYQT7MsC9Fi0CxCAgICAgICAgYGWGCfPjhrTcbKYKZ6uboE0i5YmbWQm3TZux5XR0AqDrOwrKxprH5dG3GQlvpjQV1KUwWbzL1idjEMfl0ebvt8q/dZkoXQjyMyVUdVv4kWw075Q4L29WdbXSLUdutzeTsafn09Anb8+n+NdZm1Wm221rGWsi2usHKV85iZ0zaIV9rIVspo93slZY/aalRD1IUHHo3RSYXldv5LqfQ4eSEhSAHKIx41oCV6Y7ZscaQgUa3WJtzr7aDzd5p4dvhrVa+a6uFwwGggkPNMyzaOLzd8mPPkCnLBKI9bLfQJpuAcPSTaRXVCywaOHz5X+TTqaPqrG6dUVLig2RWso5C9DHa1Z+y84+liKox1a43YjaOUmP0hlTaOBZlx1i8OlZn10N77bnRHqM9lJPKQrbLTjjRYqoPfCxU8l4dQ2oqfRgm2k2SzpfvOULz6Xa/vh870f68XY+du+355fD11Hoy1DDGAapOsnFv6iKViSQpeoymsSDlilHbbOxSZNYywCoTlXQNyomWRaoOiRoKqtJ7JRWzPnSxeQeoOA1vedVw0XQ8aeNTOYue6QpraVSzjWlV2u6/VC3Rr0jBIzGF3nNdRgFjVY1YGf2pT1laNhstAgCy9K7gsUhl2YzDziE5ycY9vc3uzVgljS/RIRIRZQ0ULROfYPdvZodR3WI1NsBSYe8Q5We0nOgfpKqRftbaZzsUYt5hmC490yd0PyzU3yitIuDQQJggH+IoJvn2NnUlIOANgyfHAYc2eHIccOiBJ8cBAQFhgnzIoGAi3EJfRVaMW1tbbxxJ0eJgWF0OCAgICAgIAEQkA+Alylqoql8RkcUAqlW11ZdrBfANVT1LRCoB/BeA4+AWsDsAXKCqPSIyBs4Q4zQA7XCi2V9T1Z/5dm4CcA3cYvonVfVRnz8PpmLxEIBPeVWMMrgNgfMA7AFwuapu9HWuhjMxAYD5qnqnz58Kt3O/AU6Z4mOqOiQiswF8D8BJAP5BVb/hy88CcA+NwTQA/1dV/11E7gEwy+fXwbn0nUDjNxlOleNmai8F4NtwOs1Zf6yf+rJ3+nbiAG5U1YdKXZswQT50kJ8I72MC/MYVLWa/6T45vPz6rJ787nHBc948YeYgcL8P1X4WwG/XOvfJM2dswe2bXPozx7Vj8b1OT/XsvwXWfNeF7WZ9vAx7H3Gh2ZrZwLO/sjBcZdzCasf8meKJH7jQ5XtvAjYvcCHsiVfUYf2dLnQ55Tyg+0XXp5oTy7DoPkebOOP4Pjyw0mmoX35SP57/ngXOflvhHpXTkcYzd7jw4bwLgU1PumNNnw3suse5bjaclsSOxS4sVzMOeHmlC7XPOw3Q/kE/KgAyrFRAu7L73PnEKhMYWO/KV55YAR1wfZayFNJbXegxMb0iEhZ/on8jAOB9FdPwSP8GAMC7ZSq+Hnd0h3kYjcd8mdHJUWgbdHSTyYkarBt2bU5M1GDtUG5n/GQ85X+WzR0CHkq60PdfZFLYmHQh3MZ0FivK3FidB+Dp77v81guBJQ85qkrrCdvw9TXjAQB/M2oP2na5azyjdjfat1notHLGINqfd21VjwOGu4vvI/71Uu9cGgOaM3b9d+91Id/xEzrRvdd1vLqlFztfctepGkA7USvq7/keAGDwK5+JhG2l2VFgdPOWCI0lVuND4TsHUD6tjPLdOWR2DyJ10mSXOTyMgWed+kj5yROR2eLGNFFTjfTqje44IohNdGOkvf0RagVytIbefkiDGy/t6cPASkftSbWUY+Ojrszk04cwtNPdc8npQM9v3fUe9f5qDD7lFJDKzj4G6efWuD6cNAuZte7ZiM+YYumW8YiA79GED5unM5DxPqy/ZQ/mP+H6/4VzduN/P1GXL34MgF2emlCtMWwSC4XfPZCjQhndCQCGXs0pQaRYGAAVTe4aD3XG8ORGd+3PmrIVA91GI1gz6Mbu2FQ7Egnf78EEVgy7/BZ0o2O1e47rT1TsWeburYZjMuhZ7++5FkW80d03mc5BxKqt/aOOd++f3c+Nx7iUey91DaUwudmoVltXuWPVNvZhoNfVLa8aRsbH7+PJDBKkTrN1sTvuhIuB4XVkcjTk8iUG9He6dlKk3gIg0g5Tb7KeAhEDkN7p3g2pSQl0POvSdacnMLDaUSvi1UDaD3kshag8DYB4vbvH03sGMOgVY1L1UbWgbDepyox2Y5ftHUa2z/VPymMQT1fRIc1TNCQhJhOQBVJHGyVHJnrDmh3tyHa4+yZWU4nYGPfe164eSGOdS2/dmacS6Z4OSIO7Brq7E7GmnDZ3B5JEKRuXNQoIv2FqSrAp8koWmokYLLFZCGMkC7oiGMlJr1lE3qeqDxfkfwrOdvlY1z+ZBWDYy77dD+BOVb3SfzcFwEU+PQdO4WIugPEAHheRmV7qbQGc499TcBPkC+Ck3q4B0K6q00XkCgBfBXC5iDTAqU60+lN+VkQeVNV2X+ZWVV0oIrf5NhbAPfCfBHBJZLxU1wA4wfcxDmALgJ/57/LW2yLyr3BW14xbYZJ0OfwDgJ2qOtNrJedeOF8A8BNVXeDH4iGMEHUPKhZHOv7YyfE+2niOnMXuJx5jbnIMID85BpCfHAM2OQaQnxwD0clxIXKTY8AmxwDyk2PAJscA8pNjAPnJMYCik2MA+ckxYJNjwCbHAPKTY8Amx4BNjgHsc3IMID85BpCfHAPIT44BFJ0cA8hPjgHkJ8cA8pNjAPnJMYD85BgATY6RnxwDNjkGkJ8cA8hPjgGbHAM2OQaQnxwDyE+OAUQmxwDyk2NgPybHKD45BpCfHAPIT46B4pNjAEUnxwCKT46BopNjADY5BvKTYwD5yTGA/OQYQH5yDKD45BjIT44B5CfHAPKTYwD5yTFgk2MA+ckxgPzkGEB+QlyYjqDY5BiwyTGQnxwDiEyOAZscAygxOY7CJscoOjkGkJ8cAyg6OQZgk2MgPzkGkJ8cA8hPjgHkJ8cA8pNjAEUnxwDyk2MARSfHAPKTYwD5yTGAopNjoPjkGLDJcSH2NTkGbHIMID85BpCfHAM2OXaVo8fITY4B5CfHwL4nxwDyk2MA+ckxEOUv8+yj6OQYyE+OAeQnxwDyk2MgyrPPTY4B0OQYB2ZyDLyhyXFh+k3i67AVWsY4uElkri9rVHUQwNlwttK30XebVDVnLXox3Ar1oKpuALAOwCkiMg5Ajaou8UYfd8EmsRfDrboCwL0AzvET8fMBPKaqe/2k+DEAF/jvzvZl4ete4vuyU1WXAhiJW3cOgFdVNfJi8u1+BKSH7DWf1wNYWdDGXwL4sj9mVlVzL2AF8pp/tdiHw99bsYK83yYW+4mWA9hWQEBAQEBAQMDbhUKjkC+rao5usATApSLyHgC8o/IOAL8SkcsAPAG3YrwWbmX4uRGONQFuhTiHNp837NOF+bk6mwFAVdMi0gmgkfML6jTC0SDSRdraH5QyBTkTbtV8LQCISBWcIcl7AXwuV0hE6nzyn0XkLACvAvh7Vd0B4Ga4cfsEgCo4h76S+JNPkP8YE4tiOMCT7cMehZv4Agc5ICAgICDgrYGIXAtHXcjhdlVll7iRKBYAMB9uFfmGXIaqLheRaXCstnMBLBWR04sc+zsA3gm3qnwyirM+dIR8vIk6I7U1Ijx3+CIANxX5+qOITpz/CY7G0RMxbXHz2okAfq+qnxWRzwL4BoCP+Ta+r6r/6sfrByJyjJaQKgkc5MMfI8u+FeEPvykcHf04Le3CUnUkiVRO9+Bx4y1mN3WnhcjGTbWYX9VkkgdqMSrECS9TvA9ArJzCZ2stfFY3l9yNKu3Y8QkWwjvp5yaxlqqysGCKouwvPWXGP0dNsFBoWbXFGlmiCkOWX7bUysdmH2f9qbPziZGEUqrFfmjHKfQdG2Nh6TiFu1FrYcTKuNloJcTKTE3W5dMZek91pI0y0RA3mkAP1T1h0K5fTcooDCfCKCvjB4yGcPRRFt5nGa74ehvQGTOMblB9XFSyO0vudrEqoj28bNd4UtykvjJ0jMY6O5+yKro25JLHcm5D/2FurqlP2e/49KIf2nHLSJKujyTG0navxKYarQJE+ai40K43ekjPjOTWZFKL5ZOkVwRpavNUC+lPO9b6ExtzlPWN7j9ptPtMiBYD/nuQonOsszB2fKJRjiLybzXW5kezGyNd3TVo90KKoqir6BinqN07y8itreI9My1NfdVd9gy9d8gWrKreYVSP9yyzxa+yqTa+sx4gZ85JNL50+okG+zOYmDfXjtveYek+oyxNOY7yqZ3GZqI9pOndQ+eYmGyUq8pek42IjZmST6dItqyGaFmxhuKLcDLWxqFirD1b3LnyLhtzviey28i9OBad18RPsPt31GiLYAu9P0shzvc7va+0n6QYmUY0y8Yd/dbX1Ol2T8g44sdX2LtIemlhtZKs/YZtHMvxbD5dRVO1FrqvX0sWp7PIfjCJefZXWNpPhm/Hm4SqLvKWzqcV5PcAuA/AfSKSBXAhgOUAPkRlrheRJjh7Z8Ct5tKDjYlwNIM2RB3ucvlcp01EEnDUhL0+/6yCOosB7AZQJyIJv4rMbe0L7wPwnF/tzcMf94NwGwVzOBXAZd5Wug7OunoAwHcA9MFzmAH8DxwHGv7/CwBAVZeISDmAJgBFLSXDBPkwQgmTkJa3oSsBAQFHGHhyHBAQcEBxC4Db4Pi2EJEzAKxS1Xa/6joHbnK6CMC/iMh1qrrA1+WNHg8C+JGI/BvcJr0ZAJ5R1YyIdIvIaQCeBnAVgG9Rnavh6B6XAVjk1S0e9cfK/eI6D8BN/rsnfdmFvu4D+3mehavEOZwL4GVVzf8SVtUzc2kRuRlAj6p+23/+OdzkfREcp3mVL/qa//x9ETkabr5EvxKjCBPkgwA0sW3ZzyrM6+Y6r1stZkpKa2vrjQea8hIQEBAQEBDwplHIQX5EVW/kAqr6kIjwRO4oAAv8xrUYgF8C+KmfnF4C4FYR+Tzc5K8Xnp6hqitF5CdwE8Y0gOu9ggUAXAeTeXsYpgzxXTgqwjq4leMrfFt7/cr2Ul/uS6qaC/fcAGChiMwH8LxvAyIyFm41uwZuxffTAOaoapeXrnsvgL8pMkaleMmlcIPv87/7Mcjtzv7fAP5LRD4Dt/D/cS212xJhgnywoHzZsmU37y+/mie5b5CT/XoL6gNFsSjAWB+CHqAdwEm6D6vGkCrDEIWKydpIiDrBO5jxctRJLzG5Lp+Ob7QQdKy2uON2xIWJHo14Bbk5NVjdWtrMP2qS9Zt3Z8dGW9gSAxZGrCIqiYyh0GSNUSYiIbkhDqnSjuzxVLeK3NFSfI7PohjGw863TeyRL4tZSLEpZmUqqcw4Cvv3pa3MhKk2zqP7yPlrFu0QJ/eumk02bhUUKZbKqENbotGoKhEXONA4il2n5gYL5SbK7EJVNJCjXQOFcsklj9UqmFaROPvPLf+p+618D4WpifYgfD3IMU+3UVSRaRUNjUXLo8F28mOIXBuS1P9RG1EUcaLdgGQGmANQTTQg6j9q6d4tp8WmDnrOyml1mPqzo2DVuJ36kVRLt8fsmu0esHs2kyJlF1Jz0Z1EFSBkBtnujN4P/BhQO+XkbMjqCzG+7ahJZSoJUQDiY+wa96yzkD6rScS6it9zhdSFYv2MpAkRB0O+xnxdmX/Jx2LLOBorEKULwzQ+hX3oI5oEOXCimygNo+ie4nuZ+51hRQs6Bz4e0SpQZ8oo2GEUuAgVqIz7Q6pffG5xe/8M0WDUZoqPddm+DfP+JFDVeIn8swo+z6P0XXBKE8XqbYOfxJb4/ha4FenC/GVw6oyF+QMAPlyirTvgNgwW5q8HcEqR/O2IUjn4uz64DX7Fvvt4sXz6/uaCz5sAvKtIuVUAzhipLUaYIB/+KLXaHBAQEHDA0B4v+nc+ICAg4JBEmCAf5vgjVpsDAgICAgICAo5IhAnyEY4vfHj0vgvtBxYWfO7zIb1y4jBkiEzAET9G+bgS4ut7OvLpeEPBbuNY8XazvUYPkASFvkmBIJ604w11WplUiZBnliLfoLAx0yo4dJimyCF6KDTJ1IgBUkfgdmg3u3aZuodQGFGHo3STHJIUN07SuLO6BYvec3SRL023Fn9FdO22/ieTtHufFBQyfez8ZaH74b2kVFHTD0aCqDTa3YdiYHWMvl4y78hYeFyzpKBRbflxHtM9po7AahVMq0icdkk+PfTCzdQJGjFWuhgkcxc6lrDpBoelB+gcq8gohHbgc/hZO+geqiY6BIW3mUIUCWNzKD5NVAKiyESOSyFqdHVYmmgYfK80ZjLooQcwK8WpBVxHef9/hlUgKCxP6gKJChp3eu5jKXq+S1AK+flOVlk7QsYiuqed8u1ZyewxukE2TQYffVYmUU3t0LjHkqTiwPdEilbc+blnekK2+PhE6BZMbYiXoDAwtYHKaHoEXgEpskSOXUn3KfebaESR8gzuU5Luj+ES9yOpXjD9jGk+kXuZ+8zPBL3r9sQtPS5j599VIgCiB8LuI+CQRHDSO7IwsO8iAQEBAW8cPaV+9QYEBJSEiGREZDn9u9HnLxaRZVSuVUQW+3SliNwtIi+JyAoR+Z2IVPvvxojIj0RkvYg8KyJLRORSaucmEVknImtE5HzKn+fbWyci3/QbACEiZSJyj89/WkRaqM7VIrLW/7ua8qf6smt93ZTPn+37MygieXMP/92n/Lms9Jv3+LtP+P6u9LJuEJFTaMxeyJ2jiIwqGM/dfrMeRORdIvKciKS9ycqICCvIRxCCgkVAQEBAQMBBhZGMQppF5H2q+nBB/qfgXOWOBQARmQVg2E9q74dz1rvSfzcFznwDIjIHbgPfXDiZt8dFZKZXslgAZ2jyFICH4PSCH4bTDm5X1ekicgWArwK4XEQaAHwRQCucIsSzIvKgt53+KpyJx0IRuc23sQBOBeOTMBtr+H4dA+Cv4Tb2DQF4RER+qaprxbkIXgzgOFUdFJGcmPgKAK3e3W8cgBdE5Oeq2g3gBGr7WTi9aMDJvH0c5Lw3EsIE+QjHwunf2nehN4HHy1wosUUtFFamtsKUftakDPooVDpjiYUy6+ss/F7+ilEJdm6hEDWARNxCbANDZpzRRKG6ZLmF3ip3b8yn16w3kf2GcltgH+i29GZidGxdY+HFdMbOp3az7aRmlYVde4wycPQic/hMHGfGDpnV1p/BTXbOfbvs8aydS3QAoovEGmx3/VDWznGIlAyejlnd7cPWz76MhSxfIpWIDNEHflxuygqDtBP8pQEb5/4BK//eJ6zPHLFcUWbXePoK28Rc+2I0FNucsuvcP2wDzyHSeMyOt6PXjAHGwO6drm6jgJTXdlg760wpKVZDYVoyAWG1CqZVpP7G0v03/W0+neAd/hxa7iH6BKln6E7rQ3bPK3bcCmqnhJpC3zOmZ182mdQtyFQlQj0ggxndUdxEIqIWQsYz2rbN+tllYxufYTSBBJFz6jSLDRT6XkPUhW66d1riVqae5Ceye+3eHCKlGlaf2L7Onr+JNda/Pavt/GvGkRmF2D1UaV4cQJbC75V2p0qVqXIomWsMb7frMTxABjZEs6quJFoFKbik91h/kqTaogOkiEO0mGybXadMpz2j8Vq6xil6zpKWzm4i5RTK10E7VozurfQWUmZJRCkxsa32TojQnYgmgkpSMWFzEAark/TSc8ZqQoMb7bijiWZFzyV223MjpLDBVCnQs8tKLU1ix2okFYvqpI1FZZbGl8DvHilBG4qU348ybwBfh3PRK5wgjwOQd5JS1TX+2OfAuebdRt9tgmkaXwxgoaoOAtjgpdtOEZGNAGpUdYlv5y64SezDvs7Nvv69AL7tJ+LnA3gsJ+0mIo8BuEBEFgI4G8CVvs6dvv4CVd0JYKeIvL/gfI4G8JRXsoCI/BrApQC+Bic/9xXfZ/g2cqoXOZSjiFufiMwA0Azgt77ORp+/X5olISYWEBAQEPBHgyfHAQEB+42KAkrA5fTdEgCDfhWVcQeAGzxdYb6fCAJuZfi5EY41AcBm+tzm8yb4dGF+pI53xuuEk2Mr1VYjgA5ftrCtUlgB4F0i0uj1kC+EOf7NBHCmp2z8WkROzlUSkVNFZCWAlwD8LR0zh48CuGckreOREFaQD33sU8aNHfZGtJ0OCAgICAgIOGAQkWvhqAs53O7tp3MYiWIBAPPhVpFvyGWo6nIRmQbnXncugKUicnqRY38HwDvhVpVPxuudsAG38loqH2+izkhtFYWqrhaRrwJ4DEAPgBdggu4JAPVwVtsnA/iJiExTh6cBzBXnineniDzsdZtzuALAx0Y69kgIE+RDHPsp4/Y6h70c1n25pJ74G8L0m6I6FrnQRDtFMjJEPRgbs1tvZcrKJAYtZL57l4VfJ/fb7v22IXbOBCopXNxJKg1lnfZjMr3XgiVj46YI0UWmGL107MHdFhLfVGYhxZVDFuKt5XA6adUzNYChQ8UF+jlcyr9/WWEj20ch8RSZqfRbCHYwS2oNtGGqM9NftAxTKfgHNudX0HjuJQmParGw/ACF2bcn7bjk+YKNYv08jpQxhkUiBjJZUqior6LwKo3v2rQdewzs2vQO2ApmY52FYAe77XgSswEur6bQL6smsIkGjQXTKiq+nI9gYviHX7XypBYwuMLoEPE6CwPHai0szRSIiIkC0Sq4byye0buGaENH0bWk+yzbaWMYH0v0iU6LTgqF+mOssEEh8Bjdo1Jt4/+7clN9ABRD9Iw3kf/BAL0HdtNfnSG1c8vstPB4vIaeCTqf7gEeFztWhFIzys6nvc/yR62x+zczTPSoFrs3E0wToHFPTbZ2KrrtnhsesHYGd1h/Ej1077IRSR/V3WZlkoniEgqxaqIZMT2D1CeUqDwRVQp+1nfReRHlIV4XfVdF6tP5Z7vsGPEmUrFgCgRTJohKUUqJQ+ndFau2d29EioifS6YysXIH1y2h6DFM76h2UrFgmlzFG1xkZCqFUN3CxUo/Gb4dbxKqukicY91pBfk9cNza+zxl4EIAywF8iMpcLyJNcO51gFvNnUTNTASw1edPLJLPddpEJAGgFo5L3AZn58x1FgPYDaBORBJ+RZfbGuk8vwtz3PsX2Ip2G4D7/CrwM/5cm0AW0X6C3QtndLLMt3E8gISqFnfQ2g8EikVAQMDbhuSbi3wFHITgyXHAoYcRJd8C3m7cAuDzuQ8icoaI1Pt0CsAcOE7yIgDlInId1eUVpQcBXOGVKaYCmAHgGe++1y0ip3l+8VUAHqA6OYWKywAs8pPVRwGcJyL1vi/nAXjUf/ekLwtfN9dWSeQ234nIZAAfhFlL3w/HaYaIzASQArDbK2UkfP4UALMAbKQmP4o3Zk/9OoQV5MMQTKnw+EBrayuAQLEICAgICAg4iFAhIsvp8yOqeiMXUNWHRGQXZR0FYIGfzMYA/BLAT1VVReQSALeKyOfhVll74ekZqrpSRH4CYBUcheF6r2ABuM1w3wdQAbc5L7cx8LsAfuA39O2Ft7FW1b1+ZXupL/el3IY9f7yFIjIfwPOwleGxcCu8NQCyXs5tjqp2AfipiDQCGPb9yoWn7gBwh4isgFO4uNqf5zsB3Cgiw3BS/n+nquxR/xG4VfU8PH/5Z3CUjQ+IyD+p6lyUQJggH56IUCpaW1vPChPjgICAgICAgwuqWpRfo6pnFXyeR+m7ANxVot42+Elsie9vgVuRLsxfBkdRKMwfAPDhEm3dATeBLcxfDyfZVpi/HVEqB393Zon8IQB/XiT/BwB+UKyO/35akbylpY5fDGGCHPAnQbkX+ZqSIU4mUfenEJ+1N22L3ZPEuG7VVcbXa5hgHLreV0vvlm9OGS9z9CTjLQ/3Wz+qZlm6Yb3x9Jpr7BipMmvnmW6THZqcNd5cWZKONdb4k4O99lgNDBjHL9bIzmfsamY8u0Qdu4OxQ50VT4yx8Yo1Ga80LsVd9UrJDmWY/0kcPeYgp1E87Mq84y4iTtdnivOvK0n0rYxoFYVbjuMkm7Wlx7iuzKk+usw45Ckao4pqG6TyGuIaTyX+LDkYxmrIEW7qZCtTRbJn5JLHcm7MO07+eX7vDNK/MS5++dk07uzqRY5jyjz2LnLJo2sQG29Se5XHd1gZ4ljGJjRbPstw1RpfVNutbmziOOsPO7c1NFk+cY21k0jgo6zN1oGoTN8QXaceJvCRG97x5Db4EvFWk6e0WHmSWGP3uZkdttG+bJ79nTuqwSTJ4mPr8+lpi437XXOyjbtU2DnHGmyDvcw+2vrAUmLDK/LpUafZvZUlOch4i/WnlGSfNNt1iu80jrqMG1e0vPYRV5yd6tgxr9p447EW4v6S81ycxjxyXbfbuEUc/ADIBDufWLc9c0iRHBr3o4zOeZD2SfE9zk53pVRPqP0Yu1SOpjFKkMQhOU2yyyNzmaervRuPGbaxmH685cdX2H4ARozenzEt/i5lctEBFXkLeFsROMhHBja+3R0ICAg4vDEUnPQCAgIOI4Q32pGBjUCemxwQEBAQEBAQEDACAsXiyEBOK7ml8IsvrJp/QA6wsOBz7pcXh5s6yAFtFyxE9lrC8qtIwq2+18JrwxstlLc+G5V5YyT7SW7nNctnlkFtzMJ/O8T6kegmOgFFuzuJbrEiYWHEMbTru+c1CyFn6HenUPBt3KsWzqyYQbZeJKHV10Zug4OWHjXFwq5ZctdC2mS22EmP0Z3uL1omnc0UzR+m/E6143ZmbNy2io1DL5VZTuHRLnJP25y1cHV7rM76UED/6CQJt2YiYHCYc3e/yaRVDlmZJNEtYuSQld5NMmZEwYlPNhfFSOiXpaIoNB0JFZMsF9MqEu8y6t/w9/+laF3lkPsYo0+U0oBQcgfTIe4n3a9EYWAHOGFHvojLn12PLFE7YqNqi5aP0DAq7Bq9lor+CaGjYRb3lf7U8PPBT7IQdUNpNToSZo8ZxYIdAGOjjAISG82hcns+JEV0AJYeI8e5SIieEJ9pzpfs3Cb1Q5Sus3QFOfL1E+2hjvq2i/YTlZMjXZVRJoTpDESlQJz6TNfDKWzl8q1NYYpEpcmiSfNoy2eKBADUGt0GWb7X6F4gylIkn/vHkQUt0Q63z+dDNBfOlyRJyjF9KUXjSPlV3Hyc3hnN1s+GeqOzxPoDUSLg0JwgD4yg93uwo+VP3H7RiXBOK/kQHreAgICDHMP7LhIQEFAAEcnAOcHlsFBVvyIiiwFUq2qrL9cK4BuqepZ3m/svAMfBrUN1ALhAVXtEZAyAW+F0k9vhlB++pqo/8+3cBOAaABkAn1TVR33+PJiKxUMAPuXVIsrgNgTOA7AHwOVk2Xw1nIkJAMxX1Tt9/lS4dbMGOGe/j6nqkIj8GczwpAfAdar6gq/zGQB/BbdW8BKAv1DVARH5OoAP+PN41ed3+DrHAfh/8KoYAE72dUqdy2Q46+s6AHEAN6rqQ6WuzSE3QWZjjEMN+zFBHWny37Kv9vdjIjxQIj8gICAgICDgrcdITnrNIvI+VX24IP9TAHao6rEAICKzAAx72bf7Adypqlf676YAuMin58ApXMwFMB7A4yIy00u9LYBz/HsKblJ5AZzU2zUA2lV1uohcAeCrAC4XkQYAXwTQCjepfVZEHvTybF8FcKuqLhSR23wbCwBsAPBuVW0XkffBGaicKiITAHwSTvKt30vRXQE3yX0MwE2qmvZuezfB2WwnAPwQbvL9AknEYYRz+QKAn6jqAj8WD2GEudUhN0E+nDHS5P9ArP4Wa3/+nC8UK/omECVZ5CJa7050vr4ogPopFjprzVg4q3oChb/GWbgsQ+5VzeuJ/wAgm7b6ZaReUHUG7XqmEDGHi896ba0dr8FCcsmjLfQ94XuWf0Hz9ny6r9vaaZ5NIWv6GdK2pi6fTtSROxiFtYc3WPiznCOwa8kdrIMoA12k0NBCO7XLbYd8P9EeGuIWNt483JFP7x2yUHxFzM4lLtZ+HVFQeqgMO1PFif5wXj+5uBHBZlvClAV6KNJdm4kSC2qJ6tFObotZck078Uzb/f/IElMgmDHVdqR3bLCxa5pnbSam2hgNPLUpn6648Lh8WreZ6RMrKIAcy9glj9UqmFaR/Pj/l0+nH/2etZOg+2CLUQaUXMmkyZRTlOgQ8eNmWZnaOmuT3P+E3fDGmmmWbCPOEYX0hcPbrEpA4X3tohD9+lfyyY/9XVShiukda++2Pk2rtodi7MUWKn/gx/QnaPIM69PmVy2/386/8uITrAydf4LPmagINfO25NPxo639CJjCwdQAot2kn19lx62y8kLUFpliNAyQsoIwfYLVF449gfpA1I6eDkuPov5ocUUZqSKHRC7D1IZ6u++ZhqB9dl4RmgcAKTcqhtY1oRikjMoMEZWkuq54v/le4/xBUqIY2Fm8TJdRW7SK3Py4TaJV6IDdN0PEmOhIE7WDhqi3p7Q60r7AhIxSqkFvEl+Hm9QVTpDHwRmDAABUdY0/9jlwttK30XebAHzLf7wYboV6EMAGr218iohsBFCjqkt8O3cBuMQf92IAN/v69wL4tp+Inw/gsZz2sYg8BuACEVkIZ+xxpa9zp6+/QFX/QOfwFKKSawk4TehhOPbVVt//XxXUyRmQnAfgxdwKtKqTKhGRcSOci8KtNgPOEXBEh7+wSS8gICAg4I8GT44DAgL2GxUispz+XU7fLQEwKCLvKahzB9wq6hIRmS8iuV9/c+EoDaUwAcBm+tzm8ybArJ05P1LHW0d3Amgcoa1GAB2+bGFbjGvgJ/6qugXANwC8BmAbgM6CiXEOfwn7sTATgIrIoyLynDdGyfW31LncDODPRaQNbvX4E0WOkUdYQT7MUeiqFwxDAgICAgIC3hqIyLVw4f4cblfV2+nzSBQLAJgPt4qcF1xX1eUiMg1uFfVcAEtF5PQix/4OgHfCrSqfjOIyzTpCPt5EnZHayvXrPXAT5Hf6z/VwK9VT4fjU/yMif66qP6Q6/wAnnX+3z0r4+icD6APwhIg8C4DCXa87/kcBfF9V/9WP1w9E5BjV4uGZMEE+/FH+dkyKX/OqBU9lLfw3lgwxlPTpOSIVi1tYrLrcFAQyPXb/DvdHQ2HpIQuEVDRYWDSzxULukiRThdEWnuvcYqH4+E47xuhJFk6flLaQbd2x9pwnXrGwcdkMO8/hTfZ8No0hBQLaOc873pOTLEw5vLm4WUnVidZ+xJxgCtMqjP7RmzVqwJQEKRMQ2HyDjUKE3m+9ZAJSGyMB/0hL9qmx3MKsewdsbCvp3LcniFJT0KdRcaOG7AApM/D7lQ5eRu1m7JJh6267Zk2xDqpLNJrxtAOfaAwgQwZh5Yc6azNeZ+HeiOoFlWdaReL8v7D8xT+y4uuNAiBVbLRg10977XoPLzeaRHIWq3BQP6vJAIVDzmwKQQoQrOggZIaSWbfB0ls77FymmPJBehO73wK7ltqflO/EbLxSfXbvXH2n3VPdpCqiL7+QT3f98Pl8Ol5GyjT0ZyzVZOc2uMPKlI2x+6tzrT33zafQ/cTGJ6QSIkSx0A67xl1L7eaKJ618LGnHra550dqk65HZZsoSsQZ790gtqVXU1Vn5l1bn0/ysxxromg3acxKfd7yV32i0IaH7AAP2LtVqe99kN9gCoPaQYguA+ElkmkJqLhwpYBMbNjVhVZWIEgzRiFBOFJ7dNtaxaS2WT4ohICUOVvdQMkRhExslI5adMbsevWL3xN7ldg9tGrDxzdL7JkvGRtmSWjMGLg8AfjJ8e/HS+4aqLvKWzqcV5PcAuA/AfSKShbNVXg7gQ1TmehFpgrN3Btxq6iRqZiIczaANUbpDLp/rtHneby2c5XQbgLMK6iyGk1KpE5GEX0XmtnIb6/4bwPtytAi4Sf4GVd3ly9wH4B1wHOPcZsD/BeAc1fwAtwH4dc5eWkQeAnCSr1PqXK6B4yNDVZeISDmAJgDE6zEEisXhiYHW1tabS0m7BQQEBBxo8OQ4ICDggOIWADkKAUTkDL/qChFJAZgDx0leBKBcRK6juqxd+CCAK0SkzCtNzADwjLen7haR0zy/+CoAD1Cdq336MgCL/CT1UQDniUi978t5AB713z0J4wpfnWvLq0jcB7exzjYzOGrFaSJS6Y9/DoDVvs4FcKvnF6kq/QrDowCO83USAN4NYNU+zuU13zZE5Gi46Hr0Vz4hvNEOQ/BmvNzmvhzVIlAsAgICAgICDhpUiMhy+vyIqkZMvVT1IRHhidxRABb4CWAMwC8B/NRLmV0C4FbPyd0FoBeenqGqK71CxCo4usL1XsECAK6DSaM9DOP6fheOirAObuX4Ct/WXr+yvdSX+1Juw54/3kIRmQ/ged8GAPxfOI7yf/rNjGlVbVXVp0XkXjj+dNrXya26fxtAGYDHfJ2nVPVvvRLGv/njK4CHVPWX+ziX/w3gv7yknAL4OK1Ivw5hgnzkoOjk+Asf/qsD0nihUciMmAtXnZi1cFxNvYULRx9j6XSH3Z/lsyz8x0jOtPBXcmx79MsYh9+JMkFGEJFwI+1abzrW3jnx0baLOzbF9hSk1EJ7sVorU9FsShTSWJdPJyhkXZW2uqkTbJe7NFmYOtZk0Z0khcQbqu3HslRYn+N0LkLh0lo692qiQxybtT7vStg49mcsjN+QsHYy9L6YC8sfFMsfpRS6h2FKq+2NmNBlYewtrxjNY0raQpxs7gEAE+dYnbpXSQ6ELzmF2ceT6UucGArjm8j8ooqUA5hasIVMFZhW0WAKEiB1BN1p9wrfB0J12QSE1SqYVpE460or/xqFxGtIiYFMFJRC1Mkao9HEjjvWyrMZBVM+6uxchNIYorFlY4Zhuyfi1H+psFC8NJuiQZyoIGM/AGR22v1+6mN2QYaJRjX9RKN6pFdQ/8aY6syoc+2ZyG4nY45R9IyON3pRck+HHYDMS2qypBJC149VbSJg0wmiCVTPJKWSnUT5YC8UehZB90F84piiZaSeJGuIZ8ZqGzE2lSlpPmJjGJte4k86Ux5IMUM6iLZQHVWyjqikcD4/H2w6QvSGiAnIIN1rTAUi9QmpovczmalEjFLo/FltRNhMpMHeq8KmNzDKDpNNK+vtnEdtJ2OiojRagOdSkXTR0vsHVY2XyD+r4PM8St8Fp01crN42+Elsie9vgVuRLsxfBuCYIvkDAD5coq074DYMFuavB3BKkfy/gtM6LtbWF+Fk4wrzpxcr77/7ITwNoyC/1LmsAnBGqfYKESgWhz9KuugFBAQEHCjw5DggICDgUEeYIB/mWLZs2Vf8yvHLwUkvICAgICAgIGDfCBSLIwSlTUgeKJ79hnFu5NONJ7pNowM77DfY3u0WjktMsHBy/xajYST3WOgwPsZCvzLBwq+JCeOg22nTacIiVDv/x8K3dbttx39ikh0vceLcfJrVMRKTLAyZWW07+FekzOTi2Act9DbxROuCUohXkvZYtb1gYccZf3uCVaDwYmyinVvs6NmWXv2ytcnhWwrFcxi0PbMun64iU489cTtWuVrfnzRK1wABAABJREFUKuMWvjw/brvRt4mFHT95uumor/m1jcMxf2ch0cwmuxbD24kuM9fOPfGq9WHm30dNB6TBQqq8E37KBNuIPPTXRuJ54CnLPy5uVIq1z1vod+bJpmAyZCwGpNL2IT6JwrGTWqwQUxQGrD/ZPbanJDaG+kxhYxlDu/rJBITVKphWkbzqJirzrB2XqA5s5KGVdk/o+vVWptnOhVUGhHf4U+g6Yq5Ax0INlRlVl0/GpxOdgwwkYicDv73wx/5TI/pIIeAj7zM6yPYl9mz17qDnI2PXT9vseY2dNM/SvVZm8P7F+XTZnJl2OpvsPmXqxW9+Oz6fnrbM3g1l5RRab7Qxqr2cqEPtRveRlJ2XkikL+dqg72fL8+l0v70nUvX2TKTm2L2fXWomHfGxddYQ0akixi1MT2DKRI/1U9tJ9YGVJzqJDlZPxiJMTQEgpNTCRjGZ35q/Q2w2GaJ0EPeJ71MeO6KEab/1SYgKE3v3+6zMdnpgI/cvUTtKGYVwmlR6ns2QSka5tbNrnb1LemjYM0NkhKQ27vujYnFAbUIC3laEFeSAQw6RyXHAIQ2eHAccerDJMSKT44BDD5HJcUBAQJggH+5obW29MSf5FigWAQEBAQEBBw9EJFPgpHejz18sIsuoXKuILPbpShG5W0ReEpEVIvI7Ean2340RkR+JyHoReda77V1K7dwkIutEZI2InE/583x760Tkm14hA14S7h6f/7SItFCdq0Vkrf93NeVP9WXX+ropnz/b92dQRD5XMA53iMhOEVlRkH+ziGyh8bmw4PvJItLD7YnILSKyWUR6CspOEZEnRORFP76sl/w6BIrF4Y8g7RYQEBAQEHBwYiQnvWYReZ+qPlyQ/ykAO1T1WAAQkVkAhv2k9n4Ad6rqlf67KQAu8uk5cAoXcwGMB/C4iMz0Um8L4Bz/noKzYb4ATh7tGgDtqjpdRK4A8FUAl4tIA5zqRCuckMezIvKgqrb7Mreq6kIRuc23sQBOJu6TAC4pcq7fh5N0K6bOcauqfqPEGN0Kk3HL4ee+rbUF+d8AcJeq3ikiZwP4MoCPlWg3TJCPdEz7wqcOTEMFOm/l5zrOYll7Rz5v1G7jpSXec2Y+XTdnm1XMEKmPHb5mGQdSJhbslic+Wnbh/9gxiHccn9Vi9Wea81S85ul8OjZzmpUhR7H6X5rE1ehJ9oM00UyScscad5ilvuqazF1LxpNaTZdxZLWLeHxjzORIttO4kDSdTJpq+cS5G5ew850kJon06RbjZy5bbXzntqSN20dOMb5srNxC5alzT82n57bYuyb2zrMtfZpxWBMvGo9WjrZr1hJ73PKn2jgjRdpsAGKjTV4P6eKyS50UyU8Sv3r7kJ3zlhft3OqajEdcdgzJUjGPM0083AbjEfO9JRXWVyHeO7qIR0vnouQaxi55LOfGvOP4NOPdZtqMnypl1mftsXtFxpIhFnOWY+SY10gSYzzWJPMmdcZfZugeuv8SRNDMGiezhpwPazCMcePtGU+eYHJldRvNHS7VYNeyZyvJmJH0Ict4odyua3Iu3R8TWqw4d7zCOK89MeONb+uzcUz12Tk0Dth9ULPHxld77L4ZWG9c2DUrrZ+pmN1/EyZ15NOxuN0JsUpipZIDHjvjZcktMT6WuPEkIciygagq9KD05WlPgrLzHJchbn/6KeO0J+IFFBm+p5gXzY55JJcn5dTXUnJuxDuO8KuZO0x/A1jiUErcs8oyb8yhp/t9iMjiw/HiPOJ2upaFbnhvBH+M5FsRfB3OZrpwAjgOzhjEHVN1DQCIyDlwttK30XebAHzLf7wYwEJVHQSwwWsbnyIiGwHUqOoS385dcJPYh32dm339ewF820/EzwfwWE77WEQeA3CBiCwEcDaAnJ7lnb7+AlXdCWCniLy/8ERV9Te8Or0/8JrP6+G0nrmtp/z3hVXmAPiMTz8J92OiJMIE+RBDzvDjDVRp+RN1JSAgICAPnhwHBATsNwqNQr6sqvf49BIAl4rIewB0U5k7APxKRC4D8ATcivFauJXh50Y41gS4FeIc2nzesE8X5ufqbAYAVU2LSCec2Uc+v6BOI4AObzNd2Nabxd+LyFVwltn/25uEVMEZkrwXwOdGrG14Ac6K+z8AXApglIg0kuV1BGGCfOjhDVEmgpNeQEBAQEDA2wMRuRaOupDD7ap6O30eiWIBAPPhVpFvyGWo6nIRmQZn73wugKUicnqRY38HwDvhVpVPRnGRDR0hH2+izkhtvRksAPDPvo1/BvCvAP4SwD/BUS96iqwUl8Ln4FbAPw7gNwC2wDn3FUWYIB85KDo5Hjv/Cweo+SjHQj21QrvJDS5Be0I7iVZANAzUUkh7FIXsWIqql39IIxIubjyWnMCmGhWBXZ60246dPIbC1OxORRSLSor+xctInm2UldGeHkpbtIdDraDwuO618HUkFFpm0lhgpyYK/Uo9jR29GMaL9aeWnO5eW2vybJtIrmpp3M73nJUWQn1tj8lAnTbPjtX3jDnPjZr7qvVtG53LkL1rZK85l+kAuXRxSLQ3socCGt/3K+kkut5l5IQ1u9qknBpbKVzaY+HeWB3JQ5VyU2OXOb7v2CWP6yp7cxmkiWSpyHEu4jJG7TOtIj5xjuVvIbk/Di13kDMct1lFagQsWRehLdCzxeFtbocd9qrIlSxtYe+pR0cXXmJ8+VJGXag60eqzWkLN03QOLOPFfWWaC8nZsYwXPwd8bnOT9mw1t9h7o6ye5B2b6FgJ62fsqMn5dEWfXafJ9L4qr7V7gs8x027vvcRUcvQkiTVGhEpBlJKIexxTZPg68ViRLKEQLSvybqPrmjqRaGXjjH4FoGDcyfGwka4T94MoS8LnwNQQdtXjfvN9SucZcRtkaTceC6IaCUkQcpvVJGnZRMZ1E4ft3VBG+TG6n4Tus1ipZ71oroOfDN8+QpERoaqLvKXzaQX5PQDuA3CfiGQBXAhgOdwKaa7M9SLSBLfyCrjVXPqjh4kAtvr8iUXyuU6biCQA1MJxidsAnFVQZzGA3QDqRCThV5G5rTcMVc1zxkTkvwD8wn88FcBlIvI1AHUAsiIyoKrfHqGtrQA+6NuqBvAhVS0Z+goqFoc/gpNeQEDAnxyxsNwSEPCnwi0APp/7ICJniEi9T6fguLWbACwCUC4i11Fd+vWFBwFc4ZUppgKYAeAZb0/dLSKneX7xVTCThAcB5BQqLgOwSJ3P9qMAzhORet+X8wA86r970peFr/umDRdEhH+5XQpgBQCo6pmq2qKqLQD+HcC/jDQ59m01if3iuQlFbLIZYYJ8mIOc9DZ6mkVAQEBAQEDAwYEKicq8vc7US1UfAkDhFhwF4Nci8hKA5+FWiH/qJ6eXAHi3iGwQkWfgNsnd4NtZCeAnAFYBeATA9V7BAgCuA/DfANYBeBW2MfC7ABr9hr7PArjRt7UXjvKw1P/7Um7Dnj/eZ32dRt8GRGSsiLT5dr4gIm0iUuO/+zEc53qWz7/Gt/U1Lz/3IoD3wDbZlYSIfM0fp9K3dbP/6iwAa0TkFQBj4H54lET4zX/kYADA7MLMC4eLlDwQ8AoUSru2M7sstB4/zopqP+1Opp3NEYeyWgrFj8A3SndYCCzJLlEUbhPa2a8d5DBFYXMdsD4NlDhchDZAiKgjMDiMWF1n5UuFHek8Y2PIfY7bp7D/dqVxJLpFRRntnKcuV9De/0zW+jYqQYWo/TivQ1A/ZQyN52u0Z2PAwro6SDQv3iFeuHOeQ/90DHaw6iU3wB6yv0om7NrX7ialE4qKai8pSzBNghQzImHjfrrv+P5IE21jPLnnlaDaKKkURHbm8w5/UqtgWkV8gj226T/cZ/2JKL7QSTKFha9TtVFtWA1DIwoCdO0pXK89Rl/hMHbXtgIVEqIUVewwSk7fCxbFTDXbMzeg9HB1kgsc3wfdHdaPnTZHkAlTLJ+oOkLnvHPA2km/Zvd4fZfdB9W9dj2qJ5L73N7ikdeudqMPpIfs/k2stfJpum0qy4yGElmRKuU812jXiSlIwsoVTL2QEutcnR3WPt9z9P7I7iKHOVaeACBEjdCdRKUh6kzkXUfjXup4rPDD1CQZLkFB4nuZqUNMg+q1Z12ZApGwdgZJxWKI7tFd7MJaYjbEbZZy0uPcN+qkp6rxEvlnFXyeR+m7UFwODX41+IoRjncLikwMVXUZgGOK5A8A+HCJtu5AkVVYVV0P4JQi+dsRpXLwdx8tkV9Sho3K3Fzw+fOgFXfKvxdOiWO/EFaQjxB4q+mNb3c/AgICDk/ESshnBQQEBByKCBPkIwsD+y4SEBAQEBAQEHBkI1AsjiD4VeQoXi5S8M3g6OjH2DFz3f+1Rg1IbNtkBWosjCjji1MsIlSCvRaujYSTAWgnhW/Hk3D9OBLcbzHTAt7FHT+BIkrVFMKjsOVS2ZBPn7TC6ARHtVt4snzlynx623rbqf6H7Ph8+urHfpFPZ3daiLvrWTv/bNoCdIO99nju2Gt9a5m6PJ8e6LYx+vepFtbs2W3Ug0UdNg5M/liXsdDkjg5r/8FyO+4/kfrCD1+wzc8Xb/5DPt2+18LYIraKOKXVZDU7X7Ujj55k98H6O6MqFlPOyzurQirsWibE+jS23EL/T6jtbP9wo6lplJ9sUbzeX1s/2Pyh/2krX3EqhbhHbbTyRMHpe2an5dMtWHl8h+WTikf8uFn59PDy1/LpZI0plWilPYARExBSq2BaReIdH8yn2WQEbCYyyvop1aQC0E/qL2VEYegiasOoOipj9IlYg8mYaqe1P+FLZvgDIEIJiJ2Sd7FF7ceIEjBs9+mU8//dyp9g5jMYIipMbbOlpxk3Syqpry1mSoOUHeu0i8wIKNtj4f3UCS1WnpRzQLQYOdreDZIyw5+Wi43mEaP3WPy95n2QXW1StDJjrqUr6B3DFJmqEuoWdF2jX9DaFt+M/G6kfCXqjFSQOsU4Uvppika+dZDUeMYZnUWE3tF0j7CZjPC9RtSeSH6SVDaYWkYmSmika19PaiAN9l7l+yMyLkRpm5uwPpQTrecDJxglbPMKuwbfLKFiET/QNiABBzXCCnJAQEBAwB+PAsm+gICAgEMZYYJ8BKC1tfXG1tbWm3OmIQEBAQEBAQFvP0QkU6BicaPPXywiy6hcq4gs9ulKEbnbqzusEJHfeV1fiMgYEfmRiKwXkWdFZImIXErt3CQi60RkjYicT/nzfHvrROSbXu4NXhLuHp//NNtBi8jVIrLW/7ua8qf6smt93ZTPn+37Mygin6PyswrGoEtEPu2/O0FEnvL5y0TkFJ+fFJE7fZ9Xi8hNPn9UQVu7ReTf/XeTReRJEXleRF4UkQtHujaBYnFkoKSD3heOHV0s+w1jYcFnXbsWABB//8n5vCyHAlkMngXgmYZBKghIUTiuti5yLBbE77t/bT49agrtvG+x8rEmowpkXnjG8qeZOQOH/Hr1yXxaYcd6dYuFr0+YlNcyRzxmYTiOeEo1URFIuaN9h/1OTWcsvX7QqCDlNHY97daHsnIL0/a1G43h1V0WUjw2brSCF2LWhyqx8n+gMeyF0Sr23G/h9E4xtYa12+zclfZtV5NMRrzO2o+RwkTX40YxeDgbdSC9arXRIXa+ZhSLOIU5UwnbbZ+ize9l1Zb/0m127zTV2b1WPt3C+1vX2H037Vi61xh0zcomW39611B4nGlBMdqZT/dpcpaFh2PHGR1A16+38mR4EDEBoVA80yri0+ZZ+S6jICmHwDmkTyFw3bvFjttMx+XwNil4ZF9ZavlkbIPJ0y3dCAgdI7t5tR2DKQQUco/TvSOkOqBEschyX+OkoMDnxsYRrI5ANJ14GSl6kIlLRC2HjUjSdnNld9i4sBrP4Bobi6pzqZ2GEqYnDB4Top0wRSRCGWBKBr8PybgFbJTBNBVqUyrtuNldRjHQvqhqB1MuIlQdRgnjjAitgq6ZlpegjAyQWgUrWhDlh+9Nplhot937UmfvKB6vGRnrw4Rh63PZcUYBjK2k4xKkhC5FxL1N/yjqxUhOes0i8j5Vfbgg/1MAdqjqsb4vswAM+0nt/XDW01f676YAuMin58ApXMwFMB7A4yIy00u9LYBz/HsKwEMALoCTersGQLuqTheRKwB8FcDlItIA4IsAWuGEPJ4VkQdVtd2XuVVVF4rIbb6NBXAGI5+Ek6LLQ1XXADjB9zEO53D3M//11wD8k6o+7Ce0X4OTa/swgDJVPVZEKgGsEpEfq+rGXFu+vWfhDFUA50j4E1Vd4MfiIYzgERFWkA8dBMOPgICAgxY8OQ4ICDgg+DrcpK4Q4+AmkQDcBFNVBwGcDWcrfRt9t0lVv+U/XgxgoaoOquoGOM3jU7wZR42qLvFaynfBJrEXw2kpA04i7Rw/ET8fwGOqutdPih8DcIH/7myYnNqdubZUdaeqLgUwksDsOQBeVdXcapkCyK1m1MJc+RRAlTh3vwoAQwC6uCERmQGgGcBv99FWUYQV5EMEuQ12I9EkvBFIeZGvWnLflVpJDggICAgICDiwEJFr4VZmc7jd20/nUCEiy+nzl1X1Hp9eAuBSEXkPANrhiDsA/EpELgPwBNyK8Vq4leHnUBoT4FaIc2jzecM+XZifq7MZAFQ1LSKdcOYf+fyCOo0AOrzNdGFb+4MrAPyYPn8awKMi8g24Rd13+Px74Sbv2+DcAj9DRiU5fBTAPX7SDwA3w43bJwBUATh3pI6ECfLhhaITYD+pLvrd/OFdhVkHBDlDBm2nHfvr1+TT0mShzOxq2snfxcL4FBasoNWpHUZnAKKKEIkqC3Vpt1EL0GHhOa2nZ4hE7yPh5T7rxzCFEdeRskZjxo7V9oKF69cMWrqPNO+zW0kFocfCovG4BXI6++z3zfiY0TA2qY3F4IA9tsmkhXWfaLfd3FvKrW+vUZh2V7Yjn14/aNc+XWbl96Zt3NZvtlDxS+U2Jk0pC29vjtv4jM1aPysesxDnM1krf/E0ew9fNaUN//mavTtffYUMUQgxCmcyDYXDpSmKjh89xcLF/RtsjLJd1s7Yo2x8Y2OOssoRygQZzFTZPVh5lB03NoF20bPyCpuPsAlDP4W+OaRfyiyBeTqsVkG0CqmxcWN6QkTJgEPxseKhexlFJhVMAaDyWk/hcABod/e1AlEDHK5fggIxTkqsOtN5xtiAgmkAkXOgurSSHZ9k1ya7u8PKEP1FuB3uZ43RCuInn2SH3W7qJ8luel/xNaBrGVHhIAUJpkBwn5kWw7STCJ2BaAvIpIrnM7WD7yG+p0nFAgBkFD1/paghpWgfyRLXks1qMhXFyyQtn+/fCI0mMo7FFYfYxIbzx6bt/TaB3quxsdbm6In29ym2ikya2LBJS9AtiuY6+Mnw7SMUGYliAQDz4VaRb6A2l4vINDh753MBLBWR01/XL5HvAHgn3KryySW6qiPk403UGamtEeG5yhfB2UDncB3c5PenIvIROFe+c+GMSDJwVJF6AL8Vkce9SUkOVwBgo5GPAvi+qv6rH68fiMgxqsW5QoFiERAQ8LaBJ8cBhyDa7UcfT44DDj1EJscBBw1UdRFcZPi0gvweVb1PVf8OwA8BXAhgJYCTqMz1cJSF3C/xNgCTqJmJcDSDNkQd7nL5kTqezlALxyUu1dZuAHW+bGFb+8L7ADynqrwKdjWMQ/w/MIe+KwE8oqrDqroTwO/h+NDwfT0eQEJVSQ8T18BZbUNVl8CNa8kbP0yQjwwMwGgWAQEBAQEBAYcObgFZJ4vIGSJS79MpAHMAbAKwCEC5iFxHdUn0HA8CuMIrU0wFMAPAM96eultETvMc4qsAPEB1cgoVlwFY5CkLjwI4T0TqfV/OA/Co/+5JXxa+bq6tfeGjiNIrADe5frdPnw0gtxP/NQBni0MV3A8IdnYo1tZrcD8YICJHw02QS4bRA8XiCMCyZcu+kqNZvN19CQgICAgICMijkIP8iKpGFrNU9SER4YncUQAW+MlsDMAvAfxUVVVELgFwq4h8Hm7y1wtPz1DVlSLyEwCrAKQBXO8VLABHZfg+3Ia3h/0/wFEafiAi6+BWjq/wbe0VkX8GkJO4+RJxgG8AsFBE5gN43rcBERkLYBncRrmsl3Kbo6pdXonivQD+pmB8/hrAf/gV6QEYn/s7AL4HYAUcreN7qvoi1fsI3Ko6438D+C8R+Qwc7ePjxE9+HcIE+QjHF5J/Gpm3zBbH543tINm2PuIE95FjVYo4amOM8yo1xjPTXqqbiN62Msq4lRWtJAPVRNJExA3VXnJNG23yWxGeHvHmJsWN13ZOpb2jEikrX3+iPWOxX1s63kecwySdZ72lGyYalzS5gyTMKo3fl9hux2oab7zH8jGWP2uJjUMN8RJrk/a76OWY0cNeIzmwanKq66H82jLjUs4UG4dm4vR1EqfxnERHPj16iu0pOXW9lS8fZ304eh0imDTR+OS9ncZpHG63cZl8qp3/5sXkithg5WPEF67I2r2WaLH7a3AbccLJAc/93XCIcN9p7HSI7hVyG4xw6EcRT5Lk4iJ8Xi4fo6hiFdWlZ4Vd8ljOjXmbERnD11ZYO6UkuQg6SLxY5pcyT5e50uRKiUw68l2W9xywNOME4732wfqU7bD9CqBnVImPHZH6Inc4MDeZ5eJ4fGuor5HzsXZ0i/HjZYJFnHmfRO7dBgDZLqsbO432OG3ZaG2SXJ6SpGWER8tccZa1K1EmwgNm7i/LxTFKyOPpXrvntK87UgUlZDkjGCIXVHb94/Hl60dybuzIF+HHM21nNEkQKu0l4D7QfaC99v7gMVrNlP4h4zsf/eKr+fTuLXZ/ZGlRMUvzp2wJKi3njsRHLlpXNV4i/6yCz/MofRec0kSxetvgJ7Elvr8FbkW6MH8ZgGOK5A/ASaoVa+sOuA2DhfnrYVQIzt+OKJWDv+uD2+BXmP87APOK5PeU6pf/flqRvFUAzihVpxCBYnHkYABBIi4gIOBPBZ44BwQEBBziCBPkIwReJm7j292PgICAgICAgICDHYFicWRhoDBj/vwDJPP2/ejHbJ8Pz5ITktSShjeHkGuJPkHhzggqSB6IQ79AhLqQ2WJ0hcSEcVaGJJukjqSfXnnJ8qkMysn1joJmsTjJyHFcLWsf6kbb+dRtpHZYtq7S0vFy6zPTKvp7LC44qtpCkIkKCzAmGqzMAEXq2lLWZ1JwQ4zPpUQwMEV0i+4ha3+QpOO6KYSapPZ7B6z8mBJvl36LICNb0AemrbBRVTJm55YdsDL91I9sl61gZnbbeAmNBYfZU40WypVGkjfj0DJd19gYuz+ynURFqKWwOd+/5IwX45BzHdGIhii03Eh0Hy7PMlnsaFYi/M60ivjkY4rmSwk5ML4aSk5yyNCY8PPHUmAFsmDSTOdDVAypqsuny2mNhuXQlKXIYtRXcoSLkeqCcnif6QR0XaWerjFTBtjV8xhSVWH5sPrXqHlrPz5AFANynlMeU75OJEMmJG3GEL7/9kfmTUqsc5WgZAifO1M+RkXd8iKUCW6WKA1Mk4jcs9wnvpaVdcX7ShShCImB6HTerdi3QxKCRPMo9UwcNWx39sykUUni082Rr+5FosiwmuB+yLwFHJ4IK8hHEHJmIwEBAQEBAQFvP0QkIyLL6d+NPn+xiCyjcq0istinK0XkbhF5SURWiMjvRKTafzdGRH4kIutF5FkRWSIil1I7N4nIOhFZIyLnU/483946Efmm3wAIr3hxj89/WkRaqM7VIrLW/7ua8qf6smt93ZTPn+37Mygin6Py5SLyjIi8ICIrReSfCsboE76/K0Xkaz7vzwrGLSsiJ/jvbhGRzSLSU9DOrVT+FRHpGOnahBXkgICAgICAgIC3ByMZhTSLyPtU9eGC/E8B2KGqxwKAiMwCMOwntffDOetd6b+bAme+ARGZA7eBby6cwcbjIjLTK1ksgFOIeArAQwAugFOyuAZAu6pOF5ErAHwVwOUi0gDgi3DawwrgWRF50NtOfxXAraq6UERu820sgFPB+CTMxjqHQQBnq2qPiCQB/E5EHlbVp8S5CF4M4DhVHRSRZgBQ1bsB3O3P61gAD6jqct/ezwF8GyYJB1/nM7m0ODe9E0uMO4AwQT4UMTCC3XTLG25t1h/TldJItPhw3W7amR9xXaJwWRXtLq+mEBmhpKMUAGmh23hwieXzznneQES7taUuGlYsVv64jO0SbzjOziE+yvoUP2FOPl0/0TTRZz5u9InYiRdZ++1GbSk/xspUNJDqRY9RNYY32s751GlzrQwpb2R/0ZFPn0jKCjMmW91Jmy3s3V1m6auIGrEuZdfjhIutn2N/Y+HFcRfZmA+stvGsPNPCzLEpZux01PMr8+l4y8x8+gMvsekRkHy3aeHXrt+YTw9929zLshRRnVVOtB1SmUhMoh3p7UThqTTKS7yOQvHsgMf3IIVXdYddp/hYC/Fqe4eVJ8c82WZhed1uz4EQxQJ8/3HoO0KrIGpAPykNkPtaRAVgf+gWa5+28uw+RioDHN5nSoZyPzew7GgUOkh96qLrTKoOG5UUOnaZ4g2rciiry1BdfguwqyCf/9BS+/vIyiNlp04vWp4pNdJk1ylNagfD2+3Z6t9tFIPGGb+3ZjYbjyg2hbwU2BWQKTVME2AXRVYJoXGIUGRY1YfKRKgQfP2YhtBm56VJdg0GtJpoDPzuJloGK3RE7t9YieD0IJ0n0yeYMtFh11KrSmz85HFkVaLK4n8/Hk/Z/dSXtjLND9o5L6d3I2DPa4afJ1YbIY5dhJpUvMdvFl+Hc9ErnCCPg9M9zvVlDQCIyDlwrnm30XebAHzLf7wYwEJVHQSwwUu3nSIiGwHUePMMiMhdcJPYh32dm339ewF820/EzwfwWE7aTUQeA3CBiCyE0yu+0te509df4A09dorI+/lkvNRa7mZK+n+5obwOwFd8n+HbKERE81hVn/J9KlI0UueLIxUIE+S3FqUmty3728BINIkRJs4BAQEBAQEBBx8KdZC/rKr3+PQSAJf6VVTW4bsDwK9E5DIAT8CtGK+FWxl+boRjTYBbIc6hzecN+3Rhfq7OZgBQ1bSIdMLJseXzC+o0AuhQ1XSRtkpCHKH9WQDTAXxHVXO/4mcCOFNEboHbR/U5VV1aUP1yuIn8fsGvqk+FM1YpiTBBfgtRanL7Vk1sW1tbbww85ICAgICAgLcGInItzNwCAG5X1dvp80gUCwCYD7eKfEMuQ1WXi8g0OPe6cwEsFZHTCyuKyHcAvBNuVflkFJdp1hHy8SbqjNRWSXiaxwkiUgfgZyJyjKqugJun1sM55Z0M4CciMi1n8CEipwLo82X3F1cAuFdZXLsIwgT5yMLr1N6n31Ro8XFgMLTKhcnKKtYX/V76KdRGdACpoxAvK13ESDWAjBMARMN/ZSRK323hdymjcHQ7lWcVAQrtsYpFlh73eCMbPtAXPdanbK+dW2aYQo0dRnWIhNCr6LL02XlyO3xcpWMJnW8PKT10UvuJzRbGX11m/dlOBhovlln762N2PXpesnTbXjOVGfWcUS+699hu/PLte1EM2T1Gc5AKG+f03mgINf6aLUgonT8j0WTnObCCxpGuB6fjoylMTZBRNO4cZk/T/ZEeLlpGO+18YhNJLYWuDcpJpYBNKjiczvQBzi/n603mB3Sd2FCiVEibQ+tMq4jPONXy1xgtqVR/lKL+JccKgHZauDvbRvSqMlJ+GGtjVE5/gphWETGLoLFAdwf1afs+y0vC7oPkLFrEIhOiyPuDKBagdwYSpJZCt2zl2OJ/X/m51B4yK6kuMFbJgRVA6Bwj1DBShogYU9TZc8lGHJH7NUvPH9VVMm+ShgJVjch1pn70Mq2J7rsBojIxyko8Z0S30IjxCd1sfP5MJYkorNg4vs7sJFeV9AgSJaZqtUgXzZcSaj8cvs+WoFsAgJ8M3443CVVd5B3rTivI7wFwH4D7RCQL5xq3HMCHqMz1ItIE514HuNVc4vxgIpyVcxuiBh65fK7T5t3sauG4xG0AziqosxjAbgB1IpLwq8jc1v6cb4ffjHgBnEteG4D7/IT4GX+uTTCL6CvwekvpfeEKANfvq1CYIB/GaG1tvRHRSXHL29SVgICAwxw8OQ4ICDiguAXAbQDWA4CInAFglaq2e4WIOXCT00UA/kVErlPVBb4u/cLEgwB+JCL/BrdJbwaAZ1Q1IyLdInIagKcBXAXjLT8I4Go4usdlABZ5S+tH/bFymyTOA3CT/+5JX3ahr/vASCcnIqMBDPvJcQXcqvhX/df3w3GaF4vITAApuEk4RCQG56b3rv0ZRF9nFtyK9JJ9lQ0T5MMb5cuWLbs596G1tfXxt7EvAQEBAQEBAVEUcpAfUdUbuYCqPiQibFpwFIAFfrNcDMAvAfzUT04vAXCriHwebpW1F56eoaorReQnAFYBSAO4nmgG18E5GlTAbc7LbQz8LoAf+A19e+FtrFV1r1/ZzvGBv5TbsOePt1BE5gN43rcBERkLt5pdAyArIp+Gm9yPA3Cn5yHHAPxEVX/h27oDwB0isgLAEICrc/QKuIlxm7e2zsNLwV0JoFJE2gD8t6re7L/+KNxGxX3SPsIE+cjC6673up+VtGx/Q5h+aZSqMeyjcGW8q7rLwn+xaS2WT1SICK2CEXGNSEa/I7UKfdl2ZccmmAh8JITJ4et2C18Lh5crLRRazdvlhyicx88XmYDERpvqQHkNhfwqSS2Aw8BsUsE71dP2PpRqMhhoJOWDLmt/OTmCcBjxJKJMKCxsXE6GIOQBgiaQugPr/VNgN5ux61E71kLjsWYbc6mgEDVBu618ckIVMu1stkAKD+ni4ev+TdaPZMLKxGrteJldpI5AYfPU1KJNAinqay1djz4KjxNNQgZIIYDC6Vm6HpH7iUP3rExAIWQOlUfUCLidLqOwSDNFSgvNc3KI3Pd2DzGtIj7LqIvpFYuL1+3psDSrGLCCBwAlilBmj12D4e3Wv8o6i7b2anHTiUjIna4BBqx9IdMQ5bA8h9zTNu7ptUbJSCSL/+ljAx+++WM19rwO95IhzaC1X77Xro0SbSzGzyuP6XBxmkCkTCnqAZfh+4PzuU1m4DAtgu+zvUQBAyAT6D7ldkuMdSS/lGlIxNSkRL+ZUlOKtsGqRtznJD3H1IchOlaKHsUMGYgM6xuzhdiP+dX+thMvkX9Wwed5lL4LwF0l6m2Dn8SW+P4WuBXpwvxlAI4pkj8At0pbrK074CawhfnrAZxSJH87olSOHF5ECck1VR0C8OclvluMAuqJz/88gM+XqHNzsfxiCEYhRxY2vt0dCAhg8OQ44NAGT44DAgICDnWECfKRhdKipQEBAQEBAQEBAQACxeKIQlGJtz/RlDlZ5/7P7uzI52U6TTEittN2nQ+/tCGfThw1Np+OhDsBgHeA0+5rpG23vFLoO7JDm9vh8ByFQiPGBm1mWtBHlQdetVWyshZSxthrG5R0T0c+PdxPv0FZMYNE9aXC0sohesqPKGYwqMx6tRBpkkKZC8VClq+q0Vm2DlufXy0zassmtXFLD1o7G8iYoqXfooJdu60PyectfC4p6/P25bxPBJj0QVcnUVWOzFYaOwrZC9FW4ryDnyKz5WUW4s3S/ZWYZcoSupcoPMN2f8RbiILD5h0c4uUweK2ZGcRGERWooYnyyfAgbmMk5XQtuc2aEkY1kTA2KWmMqssntcuut4wyWogOEg2B22SFAwqtM60iccxZdlg2E6mi8wIAT2+Qsy9C+kfftWOnrd3kiWbGkdhF6iZEVamL0bVh86B6Mm0g9QI1b4SoqgGbVFA6Xm/pWJOdAz9b0kDXoMR9EJ9tY1pbS+oZ/XbPyRTj70hXh5Wpt/uD6SkRJQZSJylpAhKhWxCVIEvmNAUmSnnwPUfUlNjJ74Fu32j1a+j8SX0iYsZB9SNUCs7ne60UrYTPrYzoZ3S/a4KOO8quk5TT80djIYnitK6xsHtrNNFCambYeI1rJyoPCccw9mE84fq8zxIBhwrCBPnwQqERScvb1I8Dj1KT44BDDrnJMYDI5DjgEAFNhEpNjgMODZScHAcEBASKxeGEZcuWfWXZsmU35/4hcI4DAgICAgIOWohIRkSW078bff5iEVlG5Vq9PjBEpFJE7haRl0RkhYj8TkSq/XdjRORHIrJeRJ4VkSUicim1c5OIrBORNSJyPuXP8+2tE5FveoUMiEiZiNzj858WkRaqc7WIrPX/rqb8qb7sWl835fNn+/4MisjnCsahTkTuFZGXRWR1zvhERL7u814UkZ95IxGIyCk0Zi8UnGNKRG4XkVd83Q/5/Fupzisi0jHStQkT5CMIXhc5ICAgICAg4OBAv6qeQP+YCtksIu8rUudTAHao6rGqegyAawAM+0nt/QB+o6rTvPLFFfDKESIyx3+eC2fE8Z9i8jEL4Bz/Zvh/F/j8awC0q+p0ALfC6xOLSAOALwI4FU6x4oukifxVALeq6gw4wso1Pn8vgE8C+EaRc/oPOIm72QCOB7Da5z8G4BhVPQ7AKwBu8vkrALR6F8ILAPw/b2QCAP8AYKeqzoSTkfs1AKjqZ3LjDKfzfF+RfuQRKBZHAMgwpOWtOmbPZndrVZODU/urFlpvHmWOaXufM15XXZfZwScmGc8sVmMctfQGloMEJGW/84a3G8etvNb4sFptHL8Y8VCzO4jHSS5ozGVeTZzAl140buTENuNPNm41bmSaGCBrNhqn+vTt2+yLlLnJZddaXWUZuX7rA59X2Sx2VrO+7c4aTzJBfMU9MKWInWnj2XWnrfwq4vrtoTKrXzP3sWcqrA9Tthnn9XmSOTvlaRvn0TU2EL8eMP7gR16xa9+9KSrZV77ZxiIxqjibr6/DjpdOEzd5qLisWqadLkiS7p2McTfjE0kyrYTjobbR9SMJu6g7GknTkXRcZp3x7OPMvWRO8R5un9pkqSt2JesnziRzhCMyZ8z5JF4zu/bROZZ021v/rJVPG+822xlVrkjvtu/i44h7S3xs5v2zw1mEn8rnww57hS6a+TLFz4fvg/QG2/eQPJY4r7w3gMdrmNqha8ayjLz3IDLu/cQDr2G5tRJrUqW4w8w75jLEOwY5aCJDZSIOgSXap/4Uuu4KH5vrp0pwk3mfAPGIhZ8hzudjVdF+jt7iYxrh4kfGgqTqMsVlA5N0tB7iEetQ8XdMjMrHmHdMxSN85BGc9P5IfB3OZvrhgvxxgBHyVXWN79M5cLbSt9F3m2CmHxfDaQAPAtjgtY1PEZGNAGpUdYlv5y4Al/jjXgzgZl//XgDf9hPx8wE8ltM+FpHHAFwgIgvhjD2u9HXu9PUXqOpOADtF5P18MiJSA6dp/HHf5yE4zWOo6q+o6FNwBiRQVeZaliNK//5LALN9uSy8sUgBPgo3wS+JsIJ8ZKA8UC4CAgL+lODJcUBAwH6jooBicTl9twTAoIi8p6DOHQBu8HSF+SIyw+fPBfDcCMeaAGAzfW7zeRN8ujA/UsdbR3cCaByhrUYAHb5sYVulMA3O1OR7IvK8iPy3iFQVKfeXoB8LInKqiKwE8BKAv1XVdI6CAeCfReQ5EfkfERnDjYjIFABT4ZwHSyJMkI8sBNHZgICAgICAtwgicq2ILKN/1xYUKaRY3FPw/Xy4VeQ8VHU53KTy6wAaACwVkaOLHPs7np+bc7srtsCtI+S/mTojtVUKCQAnwa0ynwjn/hehhIrIP8C5/92db1T1aVWdC+BkADeJSLlvayKA36vqSXA/MgopHVcAuFcLwyZFOhVw+CKnatECFJd5e6ioP84bxycLPo/+pDPRUXKXap7wWj4dP25mPt04vMryJ5k8V2wiSXVRqDTZEJWc0j1GOYg1UIitnmSdxtIPSHLri89jaSILi3K/AQtlN1VYmeaTyAWNQrB9djoYpneF1NVZ+xQqljqSLOomabpRJHPWR/0hWgWGLQT5IbWQNr+N1sStzKSU/SinoDn+Mm0UiF+QSsE7/94oE7tutfNtvcjC1bNWWPvDJP9WM8XKn/q89bniIgvdJ19YDQZLccWmmmxW+g8P5tOZrP2u7+yzcO/oHXadyi4xiTHZTI6ERAdBgkLTRLtBOd0TJNeVZSfIFIWNOynMTO1rl1FwMlutHamwRZf49GOpPyRRRRQD7bFrH2uwhZjsK0utPIfuOU0hd5YPUzYii7jk2XGZVhGfljfxQna39T82ysY/Naocg2tsLGLvviCfZvqE9hGdh6OnTD2hELqMnmLZTENhKgXRR1jybniLPU+xcqIAdJK8HN8HRLOS6bNQDEyJEqJuRUL99E6SZnr3MGVgkNYriFLDf7OllFMdg8dhqL9oEaV8KSGPF6sbx1WgnfaMo9Mi1Mp0Fu6T0nND9J/IzIjq8j24X7QEKb6eJxX2/uTz5OdgLUXjq8tsrOe8ZNevq58oUXT/pbMl3FNLoLCEqt4O4PZ9VizVnuoicZbOpxXk98BxaO8TkSyACwEsB/AhKnO9iDTB2TsDbjWX+GSYCGCrz59YJJ/rtHmOby0cl7gNwFkFdRbD0RnqRCThV5G5rVJog7OMznG87gVNkP0GwP8F4JxiFtGqulpEeuGcAJ8F0AfgZ/7r/4FxoHO4AsD1++hTWEE+nJFTtUCgVgQEBPyJwZPjgICAA4pbQNbJInJGbkOcV4iYA8dJXgSgXESuo7osQv8ggCu8MsVUuM14z3h76m4ROc3zi68C8ADVySlUXAZgkZ+kPgrgPBGp9305D8Cj/rsnfVn4urm2isJbUG8Wkdyv0nMArPLndwGAGwBcxLxjr5SR8OkpAGYB2OiP/3PY5D3fli87C0A93MryiAgryEcIchv1/IQ5ICAgICAg4O1HhYgsp8+PqGqEXqCqD4kI704/CsACP5mNAfglgJ+qqorIJQBuFZHPw/F6e+EmmFDVlSLyE7gJYxrA9UQzuA7A9wFUwPF8c1zf7wL4gd/Qtxdu9RWqutevbOdCWV/Kbdjzx1soIvMBPO/bgIiMhVvNrgGQFZFPA5ijql0APgHgbj/hXw/gL3xb3wZQBuAxvzHyKVX9WwDvBHCjiAwDyAL4O1XdTcf/gYj8ux+DXFuA25y3sNhKdCHCBPnIwACA2cuWLft44RcXzj9AR/h+9GNm9SsAgPRGCw/3rLdAWn2Tud+1P2/3aUOSQpPsdkUUiex2Cv0BkR3y2S52XrIfzrqJwsIzLPyubbQvgZz7WN2iHkZLKK+wUHys0h6fWK3VHTXT3PAat9LGpcZm61uTBW+EQvrs/od+C0emmFZCrmzSNDqffvR/nrdToUe7AjY+W7IWQh7MklIHRfcHYCHezKsWGWvM1OXT8bGWLmuza1lWY3VjlXaOmSztHCc6Q2xM1EkuQoGoKHBS9MhmrK1xoy1UHi+j9x2F9GN1xfZ6ANJMKgs1FpaPhI3ZTW0GUWpYuWIUuaOx+sT6V/LJxBS7TpHjllPfWJmAlCKEykTC3t127lpP6g6sBsHKCuw2xyoA7O7GbmisVsG0iiaL0HY/Y/c6EEPvXhu7yjV2P2Y38V4e6gb9jYrQJ9hhkJ3V1qy0fHZ6e+1V6red/+AeuwcrpxLFglRqhFQ1ZJypzpRUgUjas5Ull0bZRdemj+ha28hdEoTODkvz9WA1CKbL8H3JiiScz8om3Odeulf4vIhe8zqdC+4Tq4eUULeIzDboeJF+8L3JtJt6GnemgKRLBLn5uOniDpFK/U9SsLyGutM/YLSjoSxRbQhSSkmEy1D6jTrpqWrRA6vqWQWf51H6LgB3lai3DX4SW+L7W+BWpAvzl8FRFArzBwAUJWOq6h1wGwYL89fDSb8V5m9HlMrB3y0H0Fokf/rrSwOq+gMAPyjx3SY4VYxi391cLL8YAsXiCIDnHm98u/sREBBw+IInxwEBAQGHOsIE+chBoQ11QEBAQEBAQEBAEQSKxRGCYgoWAByt/U+Arfe7sNekG02xoIzDX7Tzv/nTplYQMUKgEFz6DybtGJ9C4TgAw6tMHSN5IqkX1FPYvI5Ctru2W5mjjrJ8DqdPM5WNnff+3vp6nIWd2xZZ+fGnWah56eMWTn+m3B6x9mueyacTFNB8ptxW3vaKhdmnZSzytilu5evVxmXCsIUy776VlAZWmjpE+6MW+u1pt/H9JzHKx6BQqJvC3r//WV0+/WSFBRLv/YH1Jws738/GjBZSXm5h7BnvtdDvU/+4JZ/+cUU0IHnWkJ3/a8lVKIZJH7RzuGqhhYv/NWZtbfviiny6ggxOmk+3fsy/y87no9mN+fSOQaMZ8AoCX7PflRsVqHWA+kzqFh/7O7t+6U1GH4xTSP/3X/xxPl0Tt/GaerRRfLq22flO+NKZ1qHJFHlsp/A+0zxY4WDDy5ZOE/WivSOfzmy3frIJCKtVMK2i6f7vWhpAps2uWebh/7H6s+1FIzNPyqdT3/3vov3OPv6IlSeVFznO7nHsMWqPNNo9yHSAyqPsCiZmmgKIjG608oP2THfc/pTVnWHX7yeP2TunJsP3h6X/139Ny6czq9fbsdJEsdhl1zV2+hkohuwye09IDV1Lpm3QPRSbQ+peRLuJmLOMJoUKomRkl79ox2qsi/Zjk/U7PsfutcxKu49i4436pl32bLG6h1QR1a2nOB2i77af5dM9W4z20HSJtZ/ZZPd4fJLRlFitiOkZ2sX0H8NLcRu7k4ft/niqjHhmxIxjqka2BIGCcw+wUUjA24iwghwQEBAQ8EeDJ8cBAQEBhzrCBPkIQGtr642tra03B4pFQEBAQEDAwQMRyRQ46d3o8xeLyDIq1yoii326UkTuFpGXRGSFiPxORKr9d2NE5Ecisl5EnvVue5dSOzeJyDoRWSMi51P+PN/eOhH5plfIgJeEu8fnPy0iLVTnahFZ6/9dTflTfdm1vm7K58/2/RkUkc8VjEOdiNwrIi+LyGoROd3nH+/rvCQiPxdnSw0RSYrInT5/tYjcRG1dLiIvishKEflawXE+IiKr/Hc/GunaBIrFkYG3XN5tR7sLDU7cs6fo97qno3hFCrtlt1pILb2LBOCz27gG0rstXJz97Zp8uuxMCuvysTn0RuFlaTbKAcRq7MzasV/8tYX21pCxwwmLLWy5NmUhwp1ifeuj3dBpsfBnp9g595CCxOa49WE3yMhCrP1kgtp80mQdM50WI9ywycLJ24XCiCkKdxJSpHrRGbP0Loo78i/rcvq0ut/CnZPJeCWzxNKvpGys5mWAJ2J2PYaofz00LomYvap2PWLlh9XKr9lu57mZlAaqBy0A+o7nST0Fdm12Ea2inULTZWRQ007h2yHq2xBdV7pKkZDzrqVWd/SpFgbvI5rLrPFmxkCni1icAri9FMYeY+eu1XVWZoCUUOLFX/FMcVIO3afJIIGso5XUWHr3Gt2ivmDVOD5xjtVpabEvKokqQCoKQ2yKQQoaselGu9Juu95SY9eYVTm4LptFaPq3+XTPY0bFqjzGxlrK7XmKJYkGNmTP39i09bOSQu47eXy5P9zm5PGWP4bVGmhTI12z2DEkJMDXdRsZlLDqCisrjJ9saaLRSCNRLNiQhkxSmAoBALHx9D5stnOI0fuTz0fIpCliVlNpKixSxworNqapSaYmFNvOShf8RBlkPI0jKf/IaFIKarB7pUaMchajvwblKRujwWxx+gSrWMTYwKYEmeKNqljAO+mV+K5ZRN6nqg8X5H8KwA5VPdb1UWYBGPaT2vsB3KmqV/rvpgC4yKfnwClczAUwHsDjIjLTS70tAHAtgKcAPATgAjipt2sAtKvqdBG5AsBXAVwuIg0AvginPKEAnhWRB1W13Ze5VVUXishtvo0FcDJxnwRwSZFz/Q84ibvL/IQ6d0P+N4DPqeqvReQvAfwfAP8Ip6xRpqrHikglgFUi8mMA3XAOg/NUdZefRJ+jqk+Is+S+CcAZqtouQi/gIggT5EMcOX3jfRRreQu6EhDwhsGT44BDGzw5DggIOCD4OpzNdOEEeRycMQgAQFXXAICInANgSFVvo+82AfiW/3gxnAbwIIANXtv4FBHZCKBGVZf4du6Cm8Q+7Ovc7OvfC+DbfiJ+PoDHctrHIvIYgAtEZCGAswFc6evc6esvUNWdAHaKyPv5ZPyq8LsAfNz3eQhA7pfSLAC/8enH4AxK/hFuUl7lzUIqfPkuOI3oV1Q1t6HicTh3wScA/DWA7/hJPHx/SiJMkA997HN1OEexAIBgFBIQEBAQEPDWQESuhVuZzeF2bz+dQ6FRyJdV9R6fXgLgUhF5D9zKaA53APiViFwGN/G7U1XXwq0MP4fSmAC3QpxDm88b9unC/FydzQCgqmkR6QTQyPkFdRoBdHib6cK2SmEanKHH90TkeDi76E+pai+AFXAr4A/ArRrnhNjvhZu8b4Nbbf6MNy9RALM9FaQNbqKfC9fMBAAR+T2AOICbVdV2BBcgTJCPAJRUsADwhxcOjFNIoZL3yY98HAAgSTLfePbxfFommFZ49kVTHBh6mc2CgEH6WDHFhQOzvcOI1VqYME0R5Z+9aO2+Z6WFVCdcTCoCJx2fTw8/bgoVyVm2AjZ4z0P59JoBey99MVWXT09OmMHC87CQ6uZsRz7dMWzh3r+psoX+n6atnW6iVSQobNdHqgls8FERs139G2JkzDHWwq5Sb2HKR0gl4wMUfj4OFva+7gzbsb78cQtNnvo1M4V46Ys2np873Wgue1fYud+gUXOPjw+4KNnu9jKsT1k496qzXf2PAliw2MK/zRTK/sBx1qeFSy1w+Y8ddv62yAD8ghQx/kqNxnBXwkLHO3dbaHZMzMY3ReSIJOn2Z4lqsyZhfWuiMj0UTZ41ZCHbtXdb+jt0zU59zO6Dj7zPFFWSJ8ywhoimU7GDqBen5CmDyG62sLFUGbUlu95oRtJMKgOk1pAlc5fMHru3WAUmPo4MTQDE3n0BAKAKgHoTEH3hd8huddcyAyBGtIrEe69GMWi/PU8dWVM9YQWb+DsvtfwkUUnIKCXWTDQMom3EiPbw4hN2L/+CFGWOf8Wu32kN9m7o7rZxnDbd+vbOM+x+71hn12ZcD9EkuswUaXB1Rz5dOZekgtgAhSgTqCKljol2H0i1lVeil3B+dhdRLyqsHR7niOlJJg2pcvUTl1yF7GqbL8mME63cbpovdRAlpZZUI9ikZLTRMLCVzo3UgSKUH0onPvyhfLoue68di1Q8EhPsPSGz7R2OIbtOUs2GP3bfbFczrRkmmsSrQ2SSQ8wThpYwB9H9JFP4yfDtIxQZiWIBAPPhVpFvoDaXi8g0OHvncwEszXF2GSLyHTjHuSFVPRnFRTZ0hHy8iTojtVUKCQAnAfiEqj4tIv8B4Ea4leK/BPBNEfm/cLbXuZf+KXCvnfFw1tG/FZHHVXW9OKvte+D8b/4ANwHPHWcGnA31RF/nGFXtKNWpgIMA+0mVKIaWA9yVgwbFJscAIpPjgIMXuckxgKKTYyA6OQ44eJGbHAM2OQaQnxwD0clxwMGL3OQYQOnJccBBA1VdJM7S+bSC/B4A9wG4T0SyAC4EsByOTpArc72INMHZOwNuRXUSNTMRwFafP7FIPtdp83SGWjgucRvcRJPrLAawG0CdiCT8KjK3VQptANpU9Wn/+V64CTJU9WW4HwIQkZkAcvSMK+E4y8NwtI3fw/Gh16vqzwH83Ne5FsivQrXBWVUPw1FM1sBNmHN22RGECfLBgze1kS4oUwQEBAQEBBzWuAXAbQDWA4CInAFgld9olgIwB25yugjAv4jIdaq6wNfl3ZcPAviRiPwb3MrrDADPqGpGRLpF5DQATwO4CsZbfhDA1XB0j8sALFJVFZFH/bFyy/bnAbjJf/ekL7vQ131gpJNT1e0isllEZnk+9TkAVvlzbVbVneJ2S37BjwMAvAbgbBH5oT/H0wD8e0GdegB/B+Ajvs79cIHL7/sfDjNzY1oMYYJ8GKPYqnTgIAcEBAQEBBw0KOQgP6KqN3IBVX1IRJh/eBSABX6zXAzALwH81E9OLwFwq4h8Ho7X2wtPz1DVlSLyE7jJZxrA9V7BAgCuA/B9uA1vD8M2Bn4XwA/8hr69cCoY8Hzff4atvn4pt2HPH2+hiMwH8LxvAyIyFm41uwZAVkQ+DWCOqnYB+ASAu/2Efz2Av/BtfVRErvfp+wB8z6e/49Mr4Ggd31PVnPPNf3guc65fr/j0owDOE5FVcKvK/0dVi0ttIUyQD3fsc1X6oS8cmANdVZjhua5SQyoq5cRPJbkqJd5p31YjdDL1q4tMwFLVUXmy1avsGFmixA0O2O0t5HDGUnLsEMZSS4lxxuXLqElisSzV3iw5cFF/dqXt3Aazxm19eNjoBC+IcWS7M1ZmSI0rWBEjubhh4xP2k+NaSuy8YkdbBC67YmU+vUatP7PEOHe/V3ODO/oJ4+b+tNw4ffOWLM+nf0eyUfW/tz0XL8aM19yWNh7mryrseg8TV3jlr+ry6ccTUc75anJTe26VRfxiYjdAFUnkbSAC+vGxGipvlLd+4nL3EztuD8m8rUoZbac9Vpwux1zxAZJ5QzJJpex6TKu2cUz1WfvD1IftS6xu3UbjFFedaDzPvhfs/qv9mI0p844jEmO1dZbPrnpdtFBSZscd3m7jkNhl1y/ixEaultlNti+HHfIAROXcSkDKbEGrKU6Oa/V2TzHvM0ZyaEocW5C0m9AzLcRtnTSmI58+c4dxqlunm5tj1VxrP7GU3gHTLRKdfsrGrmayjUVN1tIy1eTZyk8yhzq0mCsnc2SV+snydVJZZ+kyk0hjcH6skSLmJK8mFcSv5WNxm2Osbqwu6lCaHbT3rDKPuMx44NJAFKlK4j9zXxuIm0xtIm73oLYbF1+H7TljCL1PhOqilu4JyheSs5sk1v/tsOfypInkxthmfP1SEClGry0os88SUajShoZo/lkFn+dR+i4Ad5Wotw1+Elvi+1vgVqQL85cBOKZI/gDc5rhibd0Bt2GwMH89HEe4MH87olQO/m45HEWiMP8/4CTgCvN7RujXR0vkK4DP+n/7RJggH/oYGIFm0fIW9iMgIOBIxn5MjgMCAgIOFYQJ8iGOkRQqeOKco1sEikVAQEBAQEBAwMgIE+TDG7y63LJs2bKPv65E+esiF28S34p80g3OYUspXIi6qGxUDvHZJi1VV2ZSYuzylNlkYb34lGiEZm7C5IhmD1qAq7qVQu7HUuRolPUpPtfCnyxTFD/Dwq51PzLJt7OSFoYcpRbOHEMqSk+Q9FEfhfFnD1joUMusb6/GLUy7Vy1dRfSJZNKONTZmocYqcr2LhMTLrA9nqqWrM+RUSA5tW6n9LurD0BajTzTFLaTfSRSGFDnpnZAcnU+/Z4D99izdUGOUj6oBpicAR5NMXFkJYaC/GrYx/XLCVi3PH7B+1020UPnFmy2kPLXe6GZ3D9hu/lOIhrJ7wOgKfAYtcRvH3fTmPJ7k0zJUY+zF1rer77Q+Tz/Rwrq9O6yhVIPdu1JnYeNUM8l1DduxwJJWzEeaYPJnUlVn+f12jvGxFuqurKMN5iSrhUEbT+0zmgdDZp4UzSA5MZYZY1oFyJ2xQYgTxRig8H4JN8DIWBCUKEtN77Yw+7va7R3CcnZSb+PYEH/J8pvtXkbWKBbxGuu/DhG1gyQtY7NIso/7z05sjeSwR3UjY5geKp5Pco0RkOtbVFKNnjN2uaP+vK5NduJjp8Iqom4kil8bpjdE7k2iwkR8J7s7rHtNJHk3eYqVGSRJwEg/aYyYtkESm83EYigXO5fqSUYzq2+z/jCVgp30oMXpH4w34aQXcJAitu8iAYcqli1b9pVly5bd7FeNN77N3QkICDicwVq7AQEB+wURyYjIcvp3o89fLCLLqFyriCz26UoRuVtEXhKRFSLyOxGp9t+NEZEfich6EXlWRJaIyKXUzk0isk5E1ojI+ZQ/z7e3TkS+6TcAQkTKROQen/+0N+DI1blaRNb6f1dT/lRfdq2vm/L5s31/BkXkc0XGIi4iz4vILyjv6yLysoi8KCI/E5E6n38KjdkLBed4i1fF6Clof4qIPOHbWiwiRfnQOYQJ8pGDkbjKAQEBAQEBAW89+lX1BPrHtMlmEXlfkTqfArBDVY9V1WMAXANg2E9q7wfwG1Wd5jf2XQG/MU5E5vjPcwFcAOA/RfK7nhfAOf7N8P9y4ufXAGhX1ekAbgXwVd9WA4AvAjgVbkPeF0ny7asAblXVGQDafRuAU8H4JIBvlBiLTwFYXZD3GID/n71/D7erqs/F8fdda+37PTv3BEhCwiWAomyRHmwFL4DaClQt0dNKv/WUlkOPWutX4Km/Sm04x1u/tF4Kh1YqWG2wiEorgthAvYEQMNyJiSGBhNyzd7Lve6+1Pr8/5ljr887Fmjs7JAiY8T7PfjLWmGOMOeaYc66MNT7veN+TzexVAH4B4MqQ/xiAvmCych6A/xt0moFEA/l5mwTDeW8KbX0SwP/J6AcAgMmmvoNDX1/fVZHLevjwUtpAf3/DisMSETpn6arU5t0TZr/OAKCnwUO2k2VfYSpJ2G1SwlYNolBQkFDsREZdAChK/d4GCU1LWznZW1yCnrtct0xZAmUDRQ/35ln/N6X2qSzvVFveQ41jomjRKvllqTtc8rBxY87Dl1muTXn5jTtU8hBkUcZrTELO2s6ghFRbxXVqvOjle5r9/k2oW5mEIPXaWwtOT8hyoGoQdY5JGROgJpwpaJd2T2zy3eY7S35vlha6q+kBpYnI8zGRESJl6np8jHS8enLeB22nN+dj14q6G9IxKFSborS/peQ0hCFRRemUc42JsskxBae55OV5nUfvgzowNsvzscmGJd+frWHze9CdE0UHqbvHvG/6f4a+Y0B6XNQlT9UqlFbxxTWfrqave81fVdNb8vXv05jcj1bp36Tktwv1KU3gccws+dj1lrzuUM7zVW1E063yWPfL5Z887uM4IO+uvgWt8k70CyVqttAZdgs1YlxeBxVXGZX8WUU/sKfgHe2R/P15z++W683LvRzPpfUXdCx6i97vJqmzS2hw7eUD/1cyKG02SzsPNPr91vuq38m9ZU8r/apXrnNc3uOiXI727BcNfi0nT/i5npGH5fohp9p0NPizO1z09+C5YadrFfW7MZf+Dhsfe3ZKYQuSQ2b2vB2uYbX4mwBWmNmZJPsAfM7MziL5eQCbzexva+q8GcBfmdkbM851JQCY2f8Jn+8EcBWSCPPdZnZCyH8vgLPM7E8qZczs3jAB3Q5gFpKJ9llm9iehzv9FosW8Com83NxgTf0bob6uVl8FYMjMPid5CwHciERh4yNm9tt1+n8hgHeb2X+vyV+MxEJ7gVhcP29sST4O4Fwz2xJ+TOwzs05kIK4gR0REREQcMrJ+fEREREyJlhqKxUVy7F4A4yTPrqlzA4DLA11hJckK6f0kAA9Nca4FAJ6Vz1tC3oKQrs1P1QmTz30AeqdoqxfAgExUta2p8HcAPob0b8pa/BFcnxkkXx8mvY8C+FOdHGfgYbjT4IUAOkj2ZhWOm/ReZjgEy+lpIa78R0RERERE/GrAxOr4Esm63syul8+jgSaQhZVIHOQur2SY2VqSS5C4170FwANhpbb23F8C8AYAE2b2OtSXabYp8vEC6kzVVl2Q/G0AO83sQZJnZZT5SyTmJl+rNppYU59E8kQAN5L8XtBtzsJHAXyR5B8C+CGAraHNuogT5JcffqVSbOcsXfWitPtfJyVhqc6Pnl/Ns3VuXqGKC7bbzQnKu9xAQ0O5uW5XIpjcKGYGACbEa2JEYp6zV/gu8dzxYmgw0/NL377Vy5xwbDXNbt/Zfv5f/LSafhtdiaNXFsx6Sv5hZ4P3YaeEYC95lf/YFoEKbFrjagqP5ZwioiFVDeUumfBzzcx7yO/7Tb47+2F46H6nUERGxNhgT97HurPBx1fNTd7e6mNy95j3f16jGFlIm68q+I/xZSWPWWrI/LiiX8wP8qk9FOiTSOOgKGV8Z3xTNf05UXX47nY3KnjvG7dV08W9/p03uc+/r9te6+M78Uu//pazRc1EQ8VyX8t7XcmhtNP73XD6omqaHRKtO9qVDOyph73MHO+zbXHVFs4U1YRuWdTY58977tQ3eflCfQWI8oCbLrDLTXRs12ZPC72GSpMQBRY1B1G1Atvj45wyIkFa7QBNYl7SU38BSWkVf/rzT/o5hgfqtqmqDillDKXzCE2n+JNver6aaMwWcw0ZRzbJ9Yj5Svlpv38pSGi9cJpTRctDro6ghi5KITKpy5TiRMZ/y3qN+QzySHkaq/hCXSvvc2WPXGtXvdLhoPRbngs2ZKiQKDJoU4rfHXS6gg3J97uOUbt/T+a6/F3J7I+cd/s7/rSaPq/Jx7H7bzxSX77vR9X0tZ/1MlkUtSx6armcXgANk+Hr6xaeBsxsNRPHujNq8oeQOMvdSrIM4O0A1sJXSGFmlzGxVK5s9tsCQB5+LATwXMhfWCdf62wJFIsuJFziLQDOqqlzD4DdALpJFsKKrraVhTMBvJPk25EsEHaS/Bcz+30g2QwI4LcBvNnqDLyZPUlyGInRyZra41LuOQC/G9psB/AuM3ECq0GkWEREREREHDJSk+OIiIjDiauR0A8AACTPrGyICwoRywFsBrAaQDPJS6Wu/JLEbQBWBGWKxUg2490f3PcGSZ4RuLnvB/AdqVNRqHg3gNVhklqxbe4JfTkHwJ3h2N2hLELdSlt1YWZXmtlCM1uEhNu8WibH5yFZPX+nmVX1O4NSRiGkjwFwPA6g1kVyJv1X6pWo4wKoiBPkIwR9fX1XRBWLiIiIiIiIlxVqOcjPM/8ys9uRbHyr4FgA/0XyUQA/R7Jq+s0wOb0AwBtJPk3yfiQb3y4P7TwO4BsAngBwB4DLzKqbBy4F8E8ANgD4JZzr+2UAvSQ3ILFoviK0tRfA3wB4IPx9MuQhnO8joU5vaAMk55LcEtr5OMktJDM3yQV8EUAHgLvC+FwX8t8A4GGSawF8C8D/NLPd4TyfCedpDee4KtQ5C8A6kr8AMAd1LLcVkWJx5KAudWPDH2Zath8Uln4lTdVoOyNQEcScoLjOw8n5BU5VGH/EjRNGlZMg6FjuYfXJvekIS7nov/Me3uGht9+6b1M13Sy7rTU0O7nZw+zNy0XF4tHHqumBkoej72/w61lecFrCc4X6/d5Ep0CowcD4c6KsUPL84+AGFxvkh7/uWi/qTu2yH1gH76cqMejmKVXnyElofYZcy0DR+3COeAc8JGYGb4WHO58teBh0p6hH5EVD4DlRQbi4ydO/AeCHE05naZcI8RtzTg25VfZtfH+bUxRkYzs2/5eP18JX+33dsrG7mp65XwwoxEClpUEMBnbu9nRR7tNTHgbOd8pX535/JkzCunz2l17kX35eTXe8RcLarz3N28kKszfLApBQI1LGDk1+/zDsEUPT0LiWF9OMVJ97XCEEQg1Ihfc7/d6Xf3AHFLmlblKSf0NVljStaCImIEq9SdEq1OBEDEFM6irFRNtXGkP5Id+vpN8zTad5NDm3ZJGf65gTPK3h+izaw5i/K0pXKO982tuf7WMCuS6T8ib3L6cGMLkMSoZSNca9D6l+aqhfx0eoI/qslIf3gUJd0IhAijKilBepD1HCgdASUnQQzdfnTq7ftvt7k7oefQ5Uc1uUJfR51zH6xTP+/00DfSz6HvPnY/B7TkHS78ksBSGFlphSsqJeXbO6/3mY2Vk1n0+T9E0Absqotw3JKmzW+a5GnYmhma1BQlGozR8D8J6Mtm5AnVVYM9uIOjJrZrYdaSpHvTbvQULVqHxemlHuqwC+mnHsY5AVd8m/BcAtU51fEVeQIyIiXjLo5DjilQ2dHEe88qCT44iIiDhBjoiIiIiIiIiIiEghUix+TVFHLm5RvXIbP354zlcbA8m/5tVJolwGZicRlYb3XoTyj1dXy7A1CdU1v/E4jNz1CwBAU3cJpVEPUhXakuDV5PYSGo9JQs0txxcw/rSHFQd3eCi0W0wPKKL56JJwsYROG5Z6uNgmJfzXKuFFNTWRUH+TBNPUqGALvZ0RoTfYmNfdt93b31H227Sz4L9ZCxK3m1UENgSB+/ubgaWTSbm9aEZPKcl/9zjwUHPoE1vwLBK1m+7GXqwdE2WDQNHoamjFnomEirBxdAeWtCTh9e5CK3ZOJvl/gadxQz5RIPh0uRN/hoR+8PXyM3hL48IwDjmsN6cZjIfx+h4n8N8SV1AsRyseCsoanygW8MXFSWj2Qgzjqk2utLAcfm/2TXjIVs1k2sXoYKBBjAdafNwbT3AViLYnXPUnLyYBLTM9TGu70sooFVCpFxLVtQlvx8adVpJrkjDzqBjMiLPByI+2oHlZ8iyXb78LhTfK5vTm8FxMjAE9YVwam4E9yf0rr38Q+T5RS9i7NTQ6gFxHEkbmguM9xD82DLZ2J/nd87x810xAQ/Mjyf2z3VvBucckeePD6TD4rGNCO3NhexJFk/xvvwvlH38/1N0N6PVLyD2ndIgMukJqk5+E07WdlEqBhtNVOEDaZ69HKBqX+zOUO3aJl+/yMkpDyfXM9XyhdmDY6TtobK7SF8obHkT+lLOSLhzzKpR3J5QyG+5HrjdElUuTQCG5HnbPhY0EioKVwZZEYcWKE2kaRLgHLDQ6VcLKVeoCWzrS1IXqOCBFs6jQEmxyojqOuTmLnCZRKoJC70gphqgSRYo+kUELEjWNFBUm1T8pr/SfFleawbiMuzwfqf4ovUhNOqTMpBpFCaPhxyv34jf/NlHq6brkTBR//CAA4MnlC3HiNxJZ4NHSOJqCgQ7BKuVifnsvtg4l34f5XA6lMNZZOmcRrzzECfKvL1Kc476+vqv6+vquWLNmzfM2ALyomO10o3qTYwDVyTGAupNjANXJMYDU5PhIwQaZ2FUmxwCqk2NAJsdAdXIMoO7kGEB1cgygOjkGUJ0cA6hOjgFUJ8cAqpNjAHUnxwCqk2MA1ckxgOrkGEBqcnykoDI5BlB/cgz45BioTo4B1J8cA9XJMZDmv1Ymx7Xl602OAfjkGKg7OQZQnRwDqE6OAaQnx0cK5HmvTI4BVCfHAHxyDFQnxwB8cgxUJ8cA6k6Oa8+VyetV1JkcA+kfGcoh1snxkYLK5BhAdXIMoDo5BlCdHANpPnJlcgygOjkG4uT41wmRYnFk4UUzIImIiIiIiIg4OJAs1ahYXBHy7yG5Rsr1BftpkGwl+TWSj5J8jOSPg64vSM4h+XWSG0k+GNz2LpR2riS5geQ6kmr/fFpobwPJzwe5NwRJuJtD/s9ILpI6F5NcH/4ulvzFoez6ULcx5J8Q+jNO8qNS/viaMdhP8sM14/RRkhZ0nUGygeSNoc9PMthoh2N3kHyY5OMkr2MQeyd5jZzjFyQHpro3cQU5IiIiIiIiIuKlwVROerNJvs3MvleT/yEAO8zsFCCZYAKYDJPabwO40czeF44dA+CdIb0cicLFSQDmA/gByeOC1Nu1SBz/7gNwO4DzkEi9fQBAv5ktJbkCwKcBXERyBoBPAOhDwix5kORtZtYfylxjZquCLNsHQvt7AXwQiRRdFWa2DsCpoY95JA5336ocJ3kUgLcCeEaqvQdAk5mdQrIVwBMk/9XMNgH4PTPbH8bjllB2lZn9ubT5vwC8JmPcAcQJ8hGPJf92mBq6Mv1x9Gv/CQBo+UMPCaf4nEMe4m0+sb6DU3mfSFpNOqetVGMk2dDs4cOjZjk9oPHVTg9gV7dXGPDQGBvlFRgSCakeL9+R94X35RR+nBDq5hc9sDYu1ymMBux41EPrz+xz6cdtjR7IeTbvobpm88r74Ne/RbjVQ8K5O3fMB+axglBYmnx3ukq+TZR93JrF2q8172HgR3Le52YTZzxx81RJuWU5dyKbJ5Hf1xV83O5c7+kdBeFzAjiOHs78UbP3KT/m13l8o9M1fkah3ox5//bc5e3uHeyuprtm+TN158NuKPXWCacNlMaFB97i92P7Br9ng2Pez+MGPByLnKdbzz+1mk4ZvXX4vRn/9j3VdMNJ8rzOFqewnS5/yiWv8rSE2TVcb/tdjk55myq5iMEBT4/JewaXusKISOKJe546YvJVIlMHgJ3O/U7JmCmvVDCmclrCeU3JuQklQN3UssrYhD+bnCnUkyc3VdO5YaGViEsg9rmcWVkl1ta4m6ZC+ef55W+oX0b5yw1CdVBurnJwlVahnFptp1l4t+qKKOOcktbLgLou1oaT9X6k+jTk75/2g3o+pXcIjzhLqq68w6XdbJtThPS8prz0eeJ8KTJvKhenHOdBdQ+EQJ6b/jUZVBVBSk4wg0xxYFG4g8JnkdhM106Q5wH+soYJJki+GYmt9HVybDOAL4SP5yOZKI4DeDroFJ9OchOATjO7N7RzE5JJ7PdCnatC/VuQWDUTwLkA7qpoH5O8C8B5JFcBeBOA94U6N4b615rZTgA7Sb5jimt+M4Bfhn5XcA0S2TY1HDEAbUzMQloATADYH6658h9AAUAj6t+W9yKZ4GciUiyOHIwhY6NeRERExKFCJ8cRERHTRq1RyEVy7F4A4yTPrqlzA4DLA11hJcmKr/1JAB5CNhYAeFY+bwl5C0K6Nj9VJ1hH70Ni/pHVVi+AgVC2tq3pYAWAf618IPlOAFvNrNbv/RYAwwC2IVlZ/pwYlYDknQB2AhhEjfZxWFVfjMR5MBNxgnyEIGzOm1KgOyIiIiIiIuLwgeQlJNfI3yU1RUbN7FT5u7nm+Eokq8hVmNlaAEuQrDDPAPAAyRPrnPtLgYv7QCWrThezhDcqq64HW2eqtqZE4Cq/E8C/hc+tAP4SwF/VKX46gBISqshiAH9BsipPY2bnIllpb0Kyoq1YAeAWcRGsi0ixOLLwvPv98fccHnH4VTWfW34nCb3mjntdNa88KbJB4g5mG9ZV06VNEsot+ztVOMpDpW1daRWL1iEPsd37re5qetazHprOLXMhOh7vYWF7cK2XOX65NyoOWYPC6dhc8PRi2fM4lKsfbivJ98L8N3p4sf0Rcd0SJYdWCfcOaVQz7x+WSiSwSUKZz+ScGrG+4O/9/pKPj/anlHIfE/UQcdhbJNJ3wsLAcfDQ/RYJX+6Bl28wr7CVfu3nFHxs/5OyGx/A3Env3+yMEObjk051OEb61D3H221oqf+9Z0JbOWOGPx9t/00c5FIhbi+/sFOezaL3U13Z2OkUE6X1NM70NnPz/X43LZdQ8YJFdfvABa4goaoUGk5PSZ6JqkFK3cJLwxpF2URpGIWM/xJUkqtJ9vrucXc627MDmOd9TTnIZUi4tcoajTpcKv0g5SantAqlGQhS1JN+cYCTd4gd4m7bKOobs5WWJUoiy53agv3SptBQUlCZM3UFzJA2o45DysFP3o+UpNqB81NvT0GfaXUVlTFsSKuQZI1vit6hknpKh9DvFi1Trk/7yM1bVk2X9d5rf4Rek8uSo8tQAFmUE0pfo+g1Ch2u+zViaLdR+ibfjSb3SRUtplKuMLPrAVw/RZEpYWarSf4NgDNq8ocA3ArgVpJlAG8HsBbAu6TMZWFTW2Wz3xYAR0kzCwE8F/IX1snXOlsCnaELCZd4CxLrZq1zD4DdALpJFsIqsrZ1ILwNwENmVvliORbJ5Pfh8H/UQgAPkTwdCYXjDjObRELb+AkSPnT17pnZGMnbkNBE7pLzrABw2YE6E1eQIyIiIiIOHTI5joiIOKy4GmKdTPJMkj0h3QhgORJO8moAzSQvlbriVY/bAKwIyhSLASwDcH+wpx4keUbgF78fzve9DUBFoeLdAFabmQG4E8A5JHtCX84BcGc4dncoi1BXucNT4b0QeoWZPWpms81skZktQjIpf22wrH4GwJuYoA3JD4inSLaTnBfGpoDkh8NTMnbHA+hBQl+ZEnEF+cjCppe6AxERERERERFVtJBcK5/vMLMrtICZ3U5yl2QdC+DaMJnNAfgugG+amZG8AMA1JD8GYBcSnu7loZ3HSX4DwBMAigAuE5rBpQC+gmTD2/fgGwO/DOCrYUPfXiSrrzCzvWFlu0Lf+KRwgC8HsIrkSgA/D22A5Fwkq9mdAMpBym15UJxoRaJU8SfTHLcvAfhnAI8hWcT/ZzN7hOQcALeRbEJil7MawHVS771INioekPYRJ8hHFjY9L+fhDx2elmus9EpPJbuS+Rrf8Ww7JKzb4qEw6/cd+BO/9PKjuz3k1S5mF6X96TCdltuT93Rxt4dyG4alH0Pumja5wdP54/wcqWuRcOH+sofznpHw+z4JI46I4sRe8/J77vf3cfN239D0c1Fr6KfX3QcPBQ4LVSonYcRWoQzMKnt6QgLqY2IBp9eiIcIhoWGMlz1Ev6bZQ5CD404veaLgoeVBKa94tsHD6gNCvfhZycPbW1Pf+cDjEu4elHFsGPP7OqiR0Jxf27NbuqvpkozLFqGedGzz8PC6ce/H2Wt8f0pOorQ5URjZ86S3s3/QCx07w2kGuQ5/lgsdToEY3+Fj3bBnoJoub/bIo1xWSv7ERHEBi07xtIaTlVGiihYSQrf9rt6CflGY0JC+tilqEFDFhWdccYC9QtHa/gx49PFeThULMkLr6kCpUh+pEL0qgDTUD7+noPSGHg/FlwedymX7BryMfGdAaGCqjqC0Ckx4volyTMrxT6gtmRDTkNS5eJCBXR1bfYgyzUSkkNyjKdtVaFva13xGv8sZ95X1qTMpFZZcfWqICf1FFUDS1BzpJv052zPiz/jSTqdtjG+SezANZKlYHCzMLJ+Rf1bN59MkfROAmzLqbUOYxGYcvxrJinRt/hoAJ9fJH0Mik1avrRuQbBiszd+IhCNcm78dGXuhzGwEyQa/TIRV5Ep6qF6/Aj3jdbX5cvyqqc6hiBSLIwtjBy4SERERcfDQyXFERETEKx1xgvzywK9Egu1XbjMdEREREREREfEKRKRYvAywZs2aT/X19V31kpz824epnXelP7I7hJd1N35L/R3GNuFhvuKwh60aWiVUKqF+jqRDf2ODfqxJlC/KGevllFBorl2iWxrOk9BjOUOhplVClRpsK2WUb2rzNntbvXNdRe/PgHSnQX6/tskJuszzu2UoxqWM0jxGhQKh1zIpoehJoWSogcjsDBGcgvRN2yxKCHUwJ20KRaRN+txYSEcXNeQ+u37kEQ0yvM0y8h3NHh5vbBJaSb+XaWz0frym1SkHTYtlH4s8Q0pT65zn96y5w8c0P9fD+LlZHrJFu1MsmubIzRFzGlW0QIv0QVReVAUgpQahxgwari9kqCBoeWk/FWZXioWqD3T4NUINJNRM5OkngAWuXJHT+pI2CdG3m8bB5bsiFbqXumoCotcmz3IqFC8qFoVjfaxTxkE61nqdqvDQKfmqYjFLnxvpg46RIDUOY06FSSlIpAw36jaThn5vaR+mYRSClGJGejqQokDoM5JlZDKd/pXq90mVVNjmxlEp+oTcj9TzkaF4ov1U5YpGUfhRw5ymJfLsP1i3mynY4bYEiXjZIa4gR0REREQcOmRyHBEREfFKR5wgR0RERERERES8BCBZqnHSuyLk30NyjZTrI3lPSLeS/BrJR0k+RvLHJNvDsTkkv05yI8kHg9vehdLOlSQ3kFxH8lzJPy20t4Hk54NCBoIk3M0h/2ckF0mdi0muD38XS/7iUHZ9qNsY8k8I/Rkn+dGacTgv9GlDZQxC/lUkt8r4vD3kny55D9dcYyPJ60n+guRTJN8lx36P5BMkHyf59anuTaRYHOFYufzjBy40LaStQi78v0n4+ux//EY1T0PxSgfYBw+RHV/yDa5NEsHq943zeCaXVk0YlTjkH4hawsQ+//039o9rq+mNm90dsynn4bxtd7qSQZtQAo5q8vDqspwbQSgdYCylGuHp+fTQ4Wef8/QJRX/19gmTYJN5SHE+PeQ3LO3vFNONSQknf7/oKhxDEooeFeUNpU8MT/q5iqJ0MSHh1M/TFfNHROnigVEfQ1XGOKFlXjV9X9EpDCXp/9cL6fDz9sn9Xq7gY7pfODKTcj/+W4srj2yc7K6mm5r93hcKfr687GAfG/dxf2zI6RDHf8epAikjAQHF1KRfdsIvuWevlPLwe+dpW6vpfev9PnWW/Tn74Y/mV9NDuV9U0yc1+JjsHPMw/hnv/Jn3p8Xfm/xRsqt/v6tesNef3YkH1nt+QVQyxPQk3yNhZqGaTG51o4XxPf5etR6rayw/TrX1yH/6hvSj5gxU0zPf6HSCBvj7V/zJN/3UD7lbrl4DZ7o6RMoERNQqNL/hvf5/8NhfXSblXXmEba5wU37ycc+f6+YxxQceQT3YqHwXzZbN+UMDnlY1iCzFEKU3jIsRklIJxLwoVV5NYsRAI2WwMurXmKIk7FR3YQBtYqAyIGoSM8VIR9RsUpQGpe0o9BqUeiL5pTvu8OwZnXXL2Cx/nsozRT0li2IhY/30iNOd9Lv92KeerKa3/ZeY+Qh1S9UqbBq0lRdAvBg1s1Mzjs0m+TYz+15N/ocA7DCzU4Cqtu9kmNR+G8CNZva+cOwYJO50ILkcicLFSUgc6H5A8rgg9XYtgEsA3AfgdgDnIZF6+wCAfjNbSnIFgE8DuIjkDACfQGLOYQAeJHmbmfWHMteY2SqS14U2rkUiE/dBABfoxZDMI5FteysSreMHQltPhCLXmNnnasbgMQB9ZlYMuscPk/z3YE7ylwB2mtlxTPg4M8J5lgG4EsCZZtZPcjamQFxBjoiIeMmgk+OIVzZ0chzxCoROjiNeLvgsamymA+YBqP4CN7N1ZjaOxFJ5wsyuk2ObzewL4eP5SDSAx83saQAbAJweJpidZnZv0Ae+CT6JPR/AjSF9C4A3h4n4uQDuMrO9YVJ8F4DzwrE3hbIIdS8IfdlpZg8AqNUGPR3ABjPbaGYTSFbczp9qYMxsJEyGAaAZ6d8mfwTg/4RyZTOrrNb8MYAvhf7CzHZiCsQJ8hGCvr6+K16yjYARERERERFHIEheQnKN/F1SU6SlhmJxkRy7F8A4ybNr6twA4PJAV1gZVkaBZGX4IWRjAYBn5fOWkLcgpGvzU3XChHQfEr3irLZ6AQzI5FXbOth+VfBnJB8heQODgyAAkHw9yccBPArgT8Nqcnc4/DckHyL5b8E8BACOA3AcyZ+QvI/keVN1Kk6Qjxw0r1mz5qqXuhMRERERERFHCszsejPrk7/ra4qMmtmp8ndzzfGVqFlFNrO1AJYgWWGegYSScGLtuUl+KfBzK2539dxNbIr8F1JnqrayMFWda5E4B54KYBuAv60WMPuZmZ2ExBjkSpLNSKjDCwH8xMxei+RHRoWeUUBir30WEke9f5IJ9fMQOchHOi54cZqtcEa7hLLVLk5vu4R32yuP4SwJ0y5rdN7c45Me/mtWeScAG/POGT16rvPmGkRPLCc0tSXwMru2OTdtYdk5fkctHaimZ29y3uMF486h22nCpRTntqea/GSdoig0Ij9Hz5vtfOEnt3r7wyL11VP2CmdOqlugn+tU6fP9Bec47y85v7gx5+Or0m6KLNdN5eIVKPJZ8n2nHL2Z4lonvm1opfdBueg9+TRvsUE4hx3S1oA5R3j+G4THeLcnO2c5N3LvVpeEOun17taXaxWJvCd9jDqO8jaFjp3isbce4/kd6/xcna8TmbBGH6P8icuq6dmn+zNrO70/S9Y4F3bbiPd59iJ/9ovPiKTekMjLNcmY7h7wPnQ6Tz7FzZ3w96HheF+cKa73ZzE3UzjBT3v0Mdcs47DY04Xj0gtDQ3c9U03/hzhE/uYOf8Z/q1+jmn4+5Y+OP+Lj0rjcn9nyk5uqaYpzm7rkqZyb8o6bP/mlarr48A/8vMNO8+Fs54Srk2Bxm79n+W6/l7kukSdr8rTpNe6RdIdcrzj4cY4/XPas8/5tjzj4yX3FkL8PfI0bltmGR71Mq8jUFeWhFvlBqEtj7XeA8m1HvJztEv72/KO8zH7h4mfI9EEcTdEs4yVSn7lWkTJsEnfCZuFsi7wg2uRcKhu419+zsvKIJV3e6mWaW+s7gmbJuWU56R0efz05v9lqJpbOZ9TkDwG4FcCtJMsA3g5gLUR01cwuIzkTib0zkKzMyk3DQgDPhfyFdfK1zhaSBSQv7d6Qf1ZNnXuQfPV3kyyEVWRtKwtZ/ao44wEASP4jgP+orWxmT5IcRuIE+CCAEQDfCof/DQkHunKe+8xsEsDTJNchmTA/gDqIK8i/5hBqxaKXuCsRERG/xtDJcURExGHF1QA+VvlA8swK1SAoRCwHsBnAagDNJC+VuroKcRuAFUGZYjGSyeH9wZ56kOQZgUP8fgDfkToVhYp3A1gdeMp3AjiHZE/oyzkA7gzH7g5lEepW2srCAwCWBfWLRiQbCW8L1zdPyl2IZHNeRSmjENLHADgewKZw/n+HT97fDKCy2e/bAM4OdWYioVz4L9IaxBXkVzj6+vquQEJQr8Wi8G/zmjVrrurr67uqr6/viuimFxERERER8bJBC8m18vkOM7tCC5jZ7SR3SdaxAK4Nk9kcgO8C+KaZGckLAFxD8mMAdgEYBnB5aOdxkt9AMmEsArgsKFgAwKUAvgKgBYl6RUU548sAvkpyA5KV4xWhrb1hZbuy+vpJM6uEES4HsIrkSgA/D22A5Fwkq9mdAMokPwxguZntJ/lnSCbdeQA3mFlFUuYzJE9FQrnYBOBPQv4bAFxBchKJpc7/lM14l4c+/10Yg/8n5Fcm9U8AKAH4f81M5FrSiBPkVz7qcoszNuTVm0i/KOgM4fFl4x62ahCpr9ay0xDG6UGpBfCwZkeHy4r17BJnNKYf206ROmvpETe1ueLk1ShSSI1e5qgZA9X06G4v3zTP+zT6tJ97qCzSa/n6AZh9OQ/JtQj1QrKxv79Fynv/98rm3rnmY7S+0dtplXaeKXk7XRLbaxA6xJg46eVkrEsZkkVZIUUtr+1o+ckMqsaY8Baa5f6NWDqs2SqSfxPKdRCw4OM+U2gorcvEUXHWcN3ybPZxKZdkwGQolI6jNB3IuUqT6hApFcr1r9/2iWuaUHBUmq5xxKkETT1+3p79Qpc5dZGfd6bLXkGd4VTqSqTEml6/1PM7PcxeaJD3RNwuG07xEL3tcxqCjXmfKdJbHe/rRekRpzq8+hc+1n1LXfKu4TXej5l3i1PabI+wNp3m0d7csUs8LZQAdjjtyvYNeL6Mhcq5Ka2i8Oq31M1P0QQ6XQaw8aS5ni/3D5Py/LYKfaLD+4Bup5ek3AnVPU/rLj7Byxwt74BKxInkG3u8byb3O9W+QlzrrEVoG7UybaMy1l0iqybXQ3VwzGXQKrQfI0KxkOvJL9rgbYqUn9Iw0Cp9FcUNdeFTST3r8nYWFFzOLS9fxPml/sx1PPuUt7PJk1lUiiwcrJaLWX3LUDM7q+bzaZK+CYnSRL162xAmsRnHr0ayIl2bvwYJRaE2fwzAezLaugHJhsHa/I1IlClq87cjTeXQY7cjkZerzf+DjPJfBfDVjGObAfxWnXwD8JHwd0BEisWRgzFEmkVERMSLBJ0cR0RERLzSESfIRwgCtWLTS92PiIiIiIiIiIiXOyLF4sjCWG3G7Q31ih08PljzuRJG1x3DgxJaH5MQ/S55CueK09ngoIfmtJ3RmohXUZzSimOitCDhbq2ikfvJQdkJLyH38W1eV4kIuyR0qBH6XEZcbVLK5KVMY5N3okNC6w3ym1Wj++o82Cz5s8Qlb0/Zw9UKpUaUMygQZP0wYkHoHzlRIcmrC5a0Pymjpb++J8S9qlvUKQo1v9ELcqdaxLlOz4ecl2mXsVCVhvxMeXYm/Nw25unGVi9fmKHOZJ5kwcuz1ceia5HTf3IzRMlB6Aq6Ax9DohYg6Oj1dnrH/HoLM72d9mEvgy6hFZSkbxre1rC/urUppaaUQV+Z4bQCTMh5C6K4IEouGPcy+eMXobzZqRRnzHDKZNtJHk5XZY3ekrjDiSNabskiz+8SJ72CjG+jKByIIoRSBdQlT9UqMukWa7/vdZucYpI7WtQt9FmUMaWq60hdNMk9UDrAmNCANL9D3PDK9WlQaHGKDBukbouo1Ci1QdtRmkebUDukzefVl/6lnjWlWCitQsclJwouqjihDoCzhFaRUvqQNtu7vXyzjK+OnZ7Xc9HZ4f/1NTTKe9Pl58p3Hng6RB54TfFwq1hEvHSIK8hHEOIGvYiIiBcLOjmOiIiYHkiWaoxCrgj595BcI+X6SN4T0q0kv0byUZKPkfwxyfZwbA7Jr5PcSPLBYCZyobRzJckNJNeRPFfyTwvtbSD5+bABEEHx4uaQ/zOSi6TOxSTXh7+LJX9xKLs+1G0M+SeE/oyTdB/45NimcP61Ndd9ajD1WMvEaOX0kN9A8sZQ50mSV0qd94b8R0jeERQrQPIaGedfkByY6t7ECXJERERERERExEuDWqMQXciaTfJtdep8CMAOMzvFzE5GovM7GSa13wbwQzNbEjb2rUDYGEdyefh8EoDzAPwDWd3RfS2AS5BIvy0LxxHa7jezpQCuAfDp0NYMAJ8A8HokG/I+QXe5+zSAa8xsGYB+uA7xXiQB54pxRy3ODmPQJ3mfAfDXZnYqgL8Kn4Fk42CTmZ0C4DQAf0JyUZB++/vQ1qsAPALgzwDAzP68Ms4AvoBERzoTkWJxhOPtHz/3wIWmg1Xpj4OWhGGfK/jO420aLZOI3+6cf3iy0cNxPZOe7oWHhHfms/cJ373ZQ6H/bcgF+tt6PSzcerKH5257yEPKx5U8DNc75KFfpQesa6yvUNEgXVpQ9PwmyT/BvM35Z/mBhp/4zvnWnR7y2yLhxTPEtECDrosXed0NG10poVgW4X1VtCh5SHxCwuxN+foGIhPSjlIp1DRE6Q/Dokqh5fvFuKRTKBaLChJOBTAG70cnvVxr3tO7fuLle4t+jrEt8oxs8jD7vBM8tF7o9L52nSZUj9NOqqZNKApq1MA2D+UW1KjhBDGwUiUADWVrqFhCy10XebpTTSFkXNoXCtVBzztblAWESmFb3TGWJwv9QxU2lH6kxgzdooxRFCqFnneeqyYMXH8fFLkGvx+Dg34NhQf82Z+RdzOLoZyfj02iUnCMKznYhFCH9skYzZZrm/S+UigK5Scf93w1ARG1CqVVFE49p5ouPfOYl58rG++VtiLnVbDLzUrMlKbT7fl6XfIOsdPrqllJqh2lFRSUalL/OUv1U+gJNiLqKvn0dCA3z41uTOggKSitRM+XQQ1hScZO6y5/Xd3y1i+mJN0+LjqOmJT3Q6kXgvYeL9M8S/omSii5Nu+PUs5UsYd2YAJFFl3tBeKzSFz0vleTPw+J7jEAwMzWhXO/GcCEmV0nxzYjmQwCwPkAVpnZOBKjjA0ATie5CUCnmd0b2rkJiY3Y90Kdq0L9WwB8MUzEzwVwV0XajeRdAM4juQrAmwC8L9S5MdS/1sx2AthJ8h0HMQaGRBYOSExKnpP8tjAhbgEwAWA/EpYLw7E9oe4GPB/vRTLBz0RcQY6IiIiIOGTo5DgiImLaaKmhWFwkx+4FME7y7Jo6NwC4PNAVVpKs/Jo5CcBDU5xrAYBn5fOWkLcgpGvzU3WCM94+AL1TtNULYCCUrW1rKhiA7wdayCWS/2EAnyX5LJKV5wqV4hYkGs/bADwD4HNmtje45F0K4FEkk+nlCDrMFQRjkcVIjFUyESfIRxCCqUhERERERETErwAkLwnc2crfJTVFaikWN9ccX4lkFbkKM1sLYAmSFeYZAB4geWJNPZD8EsmHSVbMPOotb9sU+S+kzlRtTYUzzey1AN4G4DKSFR3jSwH8uZkdBeDP4ZPd05GYfcxHMtn9C5JLSDaEOq8Jxx6BT6orWAHgFtOwTB1EisWRhTpGISc8P+swYEku2RF9KiW8PenhrBkS3i83+WM4p+jv0VzzsFhHs4cI283bAYAmeR+Pp4cCVWmgMFPCZ41+vt9o81Dr5KTTBtp7RPBjm+xml9e8Sz0kpD87hAIyT6QuWhs8dF/c5e1PTnq4dL3sHFf6wG4x0GgR6sJQv9/S1ry3OS4h28myfwcoHULTqlZRLgmNRFwzRoSeoUYkahSiKhwN0n6jlO8WdYpny+nQ7aycj4X+eh8Xs5PGFlF4kLFomus1jlnqfS0NyPd1QQxOSmIq0D/gZcQIgqLeYPtFiaIo36sjGeFnecZtwJ8zNsiu/n4PcZvQenLHHu35e70MTxQdf6VAiKkFFwgdQEP3aiyiChu6M18pIpNCEVl6vOfLdbUuU4+DfEpJZMlSfx4LYsig1JDJ256rplPUBTGRyIkRRlmVD4TGgKKE2UVBgnPneL7QFVLjJeWVVpE/2se62L9dziXjrmogqlwx6uoZbBFTC7ku0/JZph6SnxOVj5Qiid6/fP3/0k1pGDrOHaIe0ZSmJ5hem9IhUsodcr4MFYtU/0r1KSCp2ZN8F7HH75+qdVDHQtMpiom3Mz7s+Y1dcv9Sz1ONUUodZJkopcrUKAWZ2fUArj9gxez2VjNxrDujJn8ICYf2VpJlAG8HsBbAu6TMZWGDWmXT2xYAR0kzC5Gssm5B2sCjkq91tgQ6QxcSLvEWuJ1zpc49AHYD6CZZCKvI2tZU1/lc+HcnyW8hmQD/EIlV9YdCsX8D8E8h/T4kroOTSGgbPwHQh2QFG2b2SwBg4hxYuzi4AsBlB+pTXEE+QhBWjxe91P2IiIj49YROjiMiIg4rrgbwscoHkmdWNsQFhYjlSDjJqwE0k7xU6urM/zYAK4IyxWIkm/HuD+57gyTPCPzi9wP4jtSpKFS8G8Dq4EhXsW3uCX05B8Cd4djdoSxC3UpbdUGyjWRHJR3aqvxafQ7AG0P6TQDWh/QzAN7EBG1IfkA8BWArgOUkK7/E3wqgaqVI8ngAPUjoK1MiriAfOWhG8vBEREREREREvDzQQnKtfL7DzFIrnmZ2O8ldknUsgGvDZDYH4LsAvmlmRvICANeQ/BiAXUh4upeHdh4PK6pPACgCuExoBpcC+AqSDW/fg28M/DKAr4YNfXsRbKzNbG9Y2a7QNz5Z2bAXzreK5EoAPw9tgORcJKvZnQDKJD+MZHI/E8C3wgbHAoCvm9kdoa0/BvD3YfV6DInSBgB8CcA/I5lIE8A/m9kj4Tx/DeCHJCeR/HD4Qxm79yLZqHjAcECcIB9BqKeDvHTVb7wo5yqHUNTdQofY1Oghuy54+OsJcxrG0U3+Y7cBHtabX/awYA7AEzlRYxCCw3jB6x+3xtMzRI3hqC4Pf9455qFWNeCw53wH/p7ytmr6ZzlvZ17eQ5LD6j4i6C94v2eNuRD/vp94yPOZnJfZKnIY+yT8tzPnIf3lEvruH/Qd+0NFDwNrKLAkNCulW6jKhH5XpOrK2GaZjGg720tOQ2gSWsXeotMQJhq6q+k5uRY8K3VGZBy1Hzmh0fzguXnVdA/l3A96CHbmYj/fkw97SL9RFFOOffUeP9fI09V0fo6rKZT2eDuT24XmcbSoRkxKWP64Y6vp4s+fqKb3i4pD+3GyK75RFEY2+jPdMpKhjtD4SDVd3uH9z7/utZ7/pP8OZs8z3p9HfukNFfzZynX6e5I/QZQVChn/PYhCwTfumps6NFeoJ28409+b4n0bpb6nJ+nR3vLTD3sZCZWrgoKt+amXWf4qT+8XdYtOfyeKD/h4Fbf5PWg8yfudMgERtQqlVaTMRO660fsz6N9d5TZRvRj1Z1ppAiZmHLbZnw/MlD1MGUYhprQFpRWoGoZlrOKPixqG0GhsqD9VjGoWonQFpaeoYorQMFIKHZP1FTpQEhMboW2k+iGGLtgrc8Jlfr9NKTXaBzUuETrLvgH/bjAxPGrd5pH/yQ1Og8oC5XtIv58sVebgYGb5jPyzaj6fJumbANyUUW8bwiQ24/jVSFaka/PXADi5Tv4YEkm1em3dgGTDYG3+RiQUidr87UhTOSrYD+DVGef4MRIZt9r8oSn6dR2A6zKOXVUvvx4ixeLXH2/o6+u7Cr9G9AqdHEe8sqGT44hXNnRyHPHKA2ud9CIijnDECfKvPwpr1qy5CsCmqGIREREREREREXFgxAnykYU6KhYRERERERERERGKyEE+wrHiD+oZzBw8Vn11aerzk8WEU9ZUcGmpZ8VJbpdwkAfKTpkoy0+2LpED25NzZtezpbSslvJkZ+eddzaQV2qXP+qD+7ur6Z1CPG4Xrtx+4bZOCg9QXfV2lUVWTbizKmm2S36D/qDZr+f0Sf+t0i/d3ErnnjaII9OYXOPDwlPuEvqaTdbnHRfLykH2fo6IA1WryEmNiozVYNG5hJMitTYk8nXq2jci9JdB4UOqI9/TRZctG5E2AWCfOO410u+ZStIpnm70/AXDImW12cdi1Lyd/dLvhse6q+ljXjVQTQ9tcI56WVwRJ8e8/ZZBH6OOM4Q3vUfk3Nq8fL7BqSSTO4W7WPS66x53rvTRIju3v9/5k4vOd05maZe/B7ntzvctbRVuskjKTW73PpeF4jw57B+6upx3y15xpFu/2Ss0+Hh2lrxvI8xhptzngQ1+7s6j/Rz5Tn9mW6cjfKGcVIXyjifG6+cL8t0iVSZSfimOrEqgyXugvOPCWy/2/Dvcf4Btvm/BivWlxFJp5fhm8b2Vs5slnab5KWm2jDZVsm0qiTh169N2RT4tde7cNNbbstoZG6mflvtqIyKdlyVnp7JtJXGp7PTv6v37/R7Plf9XrHjAPVspKB/5sHrnRbxsEFeQjxyM4deIhxwREfHygk6OIyIipgeSpRonvStC/j0k10i5PpL3hHQrya+RfJTkYyR/TLI9HJtD8uskNwZXuntJXijtXElyA8l1JM+V/NNCextIfj4oZCBIwt0c8n9GcpHUuZjk+vB3seQvDmXXh7qNIf+E0J9xkh+V8sfXjMH+oHABkn9D8pGQ/32S80P+6VL+4co1kuyoaWs3yb8Lxz5C8onQ3n8ycdTLRJwgv3ww9mJupgsKFptejLYjIiIiIiIiXhBqnfRUbWo2ybfVqfMhADvM7BQzOxnABwBMhknttwH80MyWBOWLFQjKESSXh88nATgPwD+Q1ZDntUgk1JaFv/NC/gcA9JvZUgDXAPh0aGsGgE8AeD0SxYpPVLSZQ5lrzGwZgP7QBpDIxH0QiWV0FWa2rnL9SBQrRgB8Kxz+rJm9Khz7DwB/FfIfA9AX8s8D8H+DOcmgjicSmbdbQ52fhzqvQmJV/Zk6Y1tFpFi8TFCRYAuT5BcLY7UZK5d/vF65F4BVqU+VkLiGnprk91iThPbahErRJo+kplul7i6mVXFKckyDZO0S/WuVUGCDyJXllepBpyJ0C3VB3eHaxVmuVSgA+ksz7VbnI9ABDS17H/rzEvbPCNa1a105W4d5eT2vSkJR+qCOeZrWcGGD5Gub2k4qvChl1GEvy20vDx2f9G/0hozf7JNCGdERUt2EiZKfb2JcnLOklATW0d3tdI6UglazUFJGZIzERnFyzPtZHvTXij0eWlfHvFyD0ir8XLroqhJ0zV3iujjhfciJhNn4OqceNAw6haO83+vmx7xvo7vlGZorcn/j8taMSkhbHfzaXRqsvNfPm4OH4ffmChBGCuYN+Wh3CqdDDUWUXpQKv2uYXd3nxmV8xcHQ5Do5S2TMRn0scl1CGZjMoC5M1nfJUzk3pVUUzvuA5z/xQ6+rsmrj/pwxSzpNaFzqwqd1Uw52zWnXu2oRoU1RJeLU2U+pEEoFqZWI0+sflmdBqRfqhjcu1DeVnlPJPsmnnk9k8TDmZcq7nC6UO1pfnAxaiV5z3sdi3z5x4aO8izt2e1qamYZEbib0e/Iw4LNIbKa/V5M/D8nED0AywQznfjOAiSBzVjm2GcAXwsfzkWgAjwN4Omgbn05yE4BOM7s3tHMTgAvCec8HcFWofwuAL4aJ+LkA7qpoH5O8C8B5JFchMfR4X6hzY6h/rZntROJ6944prvnNAH4Z+g0z0YEF2hD+mzcTzmayv+p5N43kMgCzAfwo1LlbDt8H4Pen6EdcQT6SUE8HOSIiIuJwoBiJmBERLwQtNZSAi+TYvQDGSZ5dU+cGAJcHusLKMBEEkpXhh6Y41wIAz8rnLSFvQUjX5qfqBOvofUjsnLPa6gUwEMrWtjUdrADwr5pB8mqSzwL47/AVZJB8PcnHATwK4E/lnBW8F8DNGaYgH8Dzf3ikECfIv76oUDa6X+J+REREREREHJEgeQnJNfJ3SU2RWorFzTXHVyJZRa7CzNYCWIJkhXkGgAdInljn3F8K/NyK2129n7E2Rf4LqTNVW1MicJXfCeDfUpXN/tLMjgLwNQB/Jvk/M7OTALwOwJUka5W6njfZDuf5fQB9SMYvE5Fi8WsKoWycNWXBE16c8y/OJw56Vxzru+uf2+C7vNePiwtdzsNfnSUPkc0wD4Puzvmj2tzk7QDAbni5P2r0UOD8t/qPyfwxs6vp8nMetnvtOo/S5OXVosTiv/+Af1iSc5c1/RaYkLDdLvPQXptQI1qEDtEiocBxVb2QusfQQ8V75RqL8l3TLh19dav/SP/luF/jflGiyEk7jRL6zGWEBVVJQpFykZJQaYtQUIqivJETKkVLzqkHuyY89AsA3Xm/5kmp3yR1LnjD1mr67+5zF7ST3ijh2E4vP3uDR+jEaBHPPeEuj72znXKQ2+/PTaHd89tb/ZrHdwhlZJEbQ7Gn29PHuKtee6c7uqHdn/2Rb62tphccNVBNt73Gn/HCen+m82/1yGTbW4R20jnT+3+GLwRxpvetd9lPUA/Ne0V545jFfiAjdM1dO6vp3/7HJenGVAViv7S72A262ODv+8lvdROuwmlOtSzv83OogUV++RvqXgNEhQWi2oLZcm+ahBrQ6uNLVXVQNPl9Upc8VatQWkVh+W9V0ylKg46J0qAWLvdsdcbLQpZCRZZ7Xobyi6pHpPopLqZAWomDC473/EmlEWWogUxHcUPySzLWSjHJL3X3PHb5dzjb3QFV20lRWIT+sfS3RZlnrVNb8r/zR9V0S9ttXvdef3bVQTTre1JR6zhqZtcDuP6AFTNgZquZWDqfUZM/hIRbeyvJMoC3A1gL4F1S5jKSM5HYOwPJau5R0sxCAM+F/IV18rXOFiZ2z11IuMRbAJxVU+ceALsBdAc+cLGmrQPhbQAeMrMdGce/jsRW+xOaaWZPkhxG4gS4BgBIvhpAwcwe1LIk3wLgLwG8MVBNMhFXkCMiIiIiDh2NtYs3ERERhwlXA/hY5QPJMysb4sKq63IknOTVAJpJXip19ZfPbQBWBGWKxUg2490f7KkHSZ4R+MXvB/AdqVNRqHg3gNWBsnAngHNI9oS+nAPgznDs7lAWoW6lrQPhvXg+vWKZfHwngKdC/uIwYUdQozgeaSGCem29BsD/BfDOwIeeEnEFOSIiIiIiIiLipUELybXy+Q4zS7nemtntJHdJ1rEArg2T2RySVdVvmpmRvADANSQ/BmAXgGEAl4d2Hif5DQBPACgCuMysugP6UgBfAdCChJtb4ed+GcBXw4a+vUhoCzCzvWFlu0Lf+GRlw1443yqSK5EoR3wZAEjORbLC2wmgHKTclpvZfpKtAN4K4E9qxudTJI8HUEbyI+BPQ/4bAFxBcjIc+59mtlvq/R6SVXXFZwG0A/i3sJnyGTN7JzIQJ8hHOp56cZp9ppTsSt7whId+H817iHNQopr7RR2gteBBjZ6Sh01FNAC7ITuvUWOiMei7/Bvu9Xel6xnfS1Do9sZ++rjTErqF0jG73akXBo/CDAhFoUXoE9oHVWLQdLOQMnplh3VvyX/gz5BQ66TQGLoyFD06JGL51IT/IB4tiSmEqVFI/bSaiWiIcFTVByS/lBHWVVqFlleDkmFpM18TxNLgZNY5dj7iz8XMso/pxG4vP/i455fEzKK5ze9fU7On1SSgMENUE0RtJNfk96AwJLvxW5olLWF83ZlfkrC/KCgUR72fubyMb78/f0Vppvyk77/hDDfh0bA3tm7yfAk5l591agqbMpQh9g94/qiofOwR840Rzy89uREKihnO+JPeVvNrnWKSO94XhAaEOlUe8nOUdz7tbbZ1oy7kmWWHf8+klBmGvA/WLwtGHdKmhPc1jK+hfr2XKRMQVatQuoLQQmy//J+tVBBRnFDFhZSBhlxjivKgShJKKVG6iKpVjInChNS1fjeGMenz8+rL91Lq+tXIRPudBS0vfdV+qGoJ9jttKmVcUpBx1DZV3UOoF8UdYkDUId8yUresqi1CpVBaRekQ1C2yYGZ1B87Mzqr5fJqkbwJwU0a9bQiT2IzjVyNZka7NX4OEolCbPwbgPRlt3YBkw2Bt/kYk0m+1+duRpnLosREkG/xq899VpzjM7KsAvlrvWDi+pE7eW7LK10OkWEREREREHDJ0chwRERHxSkecIB9B6Ovru+LApSIiIiIiIiIijmxEisWRhefvonn43DrFDh1zgxrBwjkD1bzNz/np2yQ0Pi4LT92q/y4bhmfKBu71jemdxK1CdSiqKUajhx4b5ks4T4wKeoWu0dLgJ2lu9dDbiJgN7C17KLRTFCSG4XWVGtAmChXtZX/dhksSipYAm1I1muW6VMWiUewudufq77BWA47i86QhE5Sln7nUjncftwLrh03T7denVWiYsiTXpcoYmp+0K9eQ8fu9f5/sOZHuFVxgBF0FD30/80R3Na0UiwZ5PpiTZ0rSuQZ5tvaIsYN2TSgTSktgs4eES9s8zJ5fOKeabuyR+9cqz+5iL9Pa5GFmLjvJzyv0CaUGmNABNNSfO8Y3r9uQl8n1iiJAj1MV2OnPDWd7f2ybb0hnMb05PXe0q4q0nuTKB1h0XN1+l2VPjapD5Ga7moaaYphQBTKpFwo1lNgjFItuoWQ0+feSqSFNi6ucsMevP22OIfdbNikqrUIVRlKUCaVGCPUiS9GCB6kMkUJboX6ZTo9oU5UkaqF0C6G+qUlQSlkjCxl9VbWVFEVGaBhU5RF5VlTdI0sxJNfpfSuKkU6qzAxv81CMQiJ+fRBXkCMiIiIiDhk6OY6IiIh4pSNOkCMiIiIiIiIiXgKQLNU46V0R8u8huUbK9ZG8J6RbSX6N5KMkHyP5Y5Lt4dgckl8nuZHkg8Ft70Jp50qSG0iuI3mu5J8W2ttA8vNBIQNBEu7mkP8zkoukzsUk14e/iyV/cSi7PtRtDPn/neQj4e+nQau4UmdTOP/amus+leR9lXySp4f8RpL/HOo8TPKsOmN7G8nH5PM1Ms6/IDkw1b2JFIsjHB8/5TcPSzuraj7PQBIaa+7y8Ff7Fg+vlUXRodVE9UEiW7KpH20SKn3LWB4/bfaDIxKmb5dyzRIizkkYNTffw87tjR7OmzlHws4FCX3vqU9dKAgdoFk2Ik9ItD4v1zlLlBLmtHmouH/UQ3sd+fpqFYCHGjtlvOaW0nSTesgKFxL1d2prumEaFIuylCmLDoUqeOi52sT0Y2nTLDwz4eoFSulQKoYqX7Q0eoi0XaKlJRd+QKFbFENm+Vjn5QFr6vA2C0eLeoFAFR4aWmUn/4goCsyWut1CV5BQeW6Gh+vVKKRxuYTfx/1i2CN0A+kPa5UGqvnevrXJuXRXv1Iy2tvr5kPrpsLqEsaW8+bnzUf5kUeT8+7ag9zJQgHp9LFgu6vLaJi9VdKpcL3SJzRfaFBZIf2UWYQqInRIWF7LiDoCW/28aoKRUniQcUmdK9XPDOMSVXpQ+kDK4CJDDULZSCmli4z86dQVNQgrFdMUhQxkXvN0VCwy+qHjjglRT1EahjzLmX2YRn9yeomq+tFc/9prjT8OhBfguD5qZqdmHJtN8m1mVmuJ/CEAO8zsFAAIMmiTYVL7bQA3mtn7wrFjkOgHg+RyJAoXJwGYD+AHJI8LUm/XArgEwH0AbgdwHhKptw8A6DezpSRXAPg0gItIzkBi2NGHRIDoQZK3mVl/KHONma0ieV1o41oATyMx6Ogn+TYkBiqvl+s6u0aqDQA+A+Cvzex7JN8ePp8F4I8BwMxOITkbwPdIvs6CcxXJ3wUwpA2Z2Z9X0iT/F4DXZIw7gLiCHPEKhE6OI17Z0MlxxCsPlckxgPTkOOIVh+lMjiN+5fgsamymA+YBqOo2mtm64Ar3JgATZnadHNtsZl8IH88HsMrMxs3saQAbAJxOch6ATjO7Nxh93ATgAqlzY0jfAuDNYSJ+LoC7zGxvmBTfBeC8cOxNoSxC3QtCX34aygLJRLyu5FsNDIluMpC4+FU2PiwH8J+h3Z0ABpBM1hFW0z+CxKY7C88zEqlFnCBHRERERERERLwIIHlJoAZU/i6pKdJSQ7G4SI7dC2Cc5Nk1dW4AcHmgT6yku82dBOAhZGMBgGfl85aQtyCka/NTdYJ19D4kesVZbfUCGAhla9tSfABuRgIkE+HvB1qIjtGHAXyW5LMAPgfgypD/MIDzSRaYuAKeBrfR/hsAfwtA4oqOsKq+GInzYCYixSIiIiIiIiIi4kWAmV2PhEqQhakoFkCyCvpxBDe80OZakkuQ2Du/BcADJH+jtiLJLyFxnJsws9ehPgPEpsjHC6gzVVuVfp2NZIL8Bsk+08yeC3SJu0g+ZWY/ROLw9+dm9k2Sv4fEle8tSH4knIjEmW8zgJ8CKJI8FcBSM/tz5UvXYAWAW0xla+ogTpCPcKz83XrRmxeCNAt5WSl5tNre6BGU35zpklDlMSejvW6XBzKaeoWTKE/nZL+/c8dvVWt5oH/IOYTHvdodmVrOWlRN5+bOQT0se+8G/5DrlvKzqulZf+s/rN9Wco5mi/DpmoSntrnB+6oCa8sa91fTHd0uGdYz7Ny6o805cbOk8g5xGDxKeLdzxQnqzBaX8dpcdurV3qL/iB4sOb8vL1zK1ryHVxvF3Wxho3NHJ+W7pDXv3EV1yTuzcZ63L9+TexqcszsfXne0IBcD4KR8dzX9nPkY7Zj0sTv6DT7WP/2p80qbFgmfcsL72tzl52g93p+V5+4RHvywSLiJex4bncdoY97O5DYZx50iH7ZL5L1OOdXTXc5hZY9zc8sPPFFN52YIL1ihUmXCBYZKXQlvU3nKbBDXtF55B7QddeFTiS2FOMZh34D3+TfOTJdTibJtm/3cyn/udbWL/ryMr/TJ9smYKkdY25drTnFpx9wRDUobkHNROcIiHWfKfxXZM9vs9ynFX54QJ72Fyz1fXfIynO6y5OtSfG/h1Kac9NTZTss31JeIS5WR/tug0D1FRi103NPqXFcU1z/l8GZJzGVw2bW89bvLY+pZK4gkoDwTqTPp+6H3VdoffMLLjA2K3Ki4H5Yed1dIlahUZLl7vpgws9VMLJ3PqMkfAnArgFtJlpHYKq8F8C4pcxnJmUgmkUCymnuUNLMQCWVhC9J0h0q+1tlCsoCE5rA35J9VU+ceALsBdJMshFVkbQskXwXgnwC8zcyqGpZm9lz4dyfJbyFx4vshgIuRcK4B4N9C3cpqtnKKfwpgPYA3AjiN5CYkc9zZJO+pcSZcAeAyHACRYhERERERcejI0O+NiIg4ZFwN4GOVDyTPJNkT0o1I+LibkVAGmkleKnV1Rek2ACuCMsViAMsA3B/sqQdJnhE4xO8H8B2pU1GoeDeA1YGnfCeAc0j2hL6cA+DOcOzuUBah7ndCX49GMqn/AzP7hVxPG8mOSjq0VVGfeA7JpBdIuM3rQ7nWUBYk3wqgaGZPmNm1ZjbfzBYhWaH+hU6Ow4bGHiT0lSkRV5AjIiIiIiIiIl4atJBcK5/vMLOU662Z3U5yl2QdC+DaMJnNAfgugG+amZG8AMA1JD8GYBeAYQR6hpk9TvIbAJ5AEuC8TGgGlwL4CoAWJNzgCj/4ywC+SnIDkpXjFaGtvWFl+4FQ7pNmtjekLwewiuRKAD8PbQDAXyHhKP9DWKUvmlkfgDkAvhXyCgC+bmZ3hDp/DODvw+r1GBKlDQCYDeDOsHq+FcAfZIxvLd6LZKPiAXf7xwnykYU3PC/nqcPU8onpj6MhQlV61t/p4oCHp/Zt9TDXvn2enjHidIC2WR5SLIl22pb9aamr3RIyPCHNvnBIGM7kHKah9YLIlW33fmuYRQNsKim3P++lRujvXY84Bg5O+grbwlkeBu7Z5X0oiZxbo7y+6jBYkPe6s+BjNGR+rqHSuKS9/QmhQ4wLPaNRpNe0zKhN1s1XmTfN32XeH5V8G5Z2ZuV8HCZrnPT2iLNhTigaKjeXn+Oh6a6S0CHaPLyan+3PVGuX0g/83LNP2ltN5+Yc450QigXGfOzY4u03yLPCeU4rgbjnockfRnZ3e766Bc71/LI8i2z1utYvlAGlVUgYPxUCzwoDCx0gRRPQsLf0OdVOS3v9fEVxAigqBUSoHurYJrSP2cWM0L/QG1JUBKWS6JupYX8Nsyu1Q++xurIJhSNTqm2m7DGSsL9+r6RoD/n6/Uldo7oCqhyfUjKsfvspqbncgVfus2TRUu502gcgTV0Q2DT6lN0RlWGTtLr4ZdyPlBScPu86Fhntty/xd7plaKxumfxx4jRpQvnQ7st3ksn3m6XKHBzMrK4eXQ0lAGZ2mqRvQqI0Ua/eNoRJbMbxq5GsSNfmrwFwcp38MQDvyWjrBiRc4Nr8jUgoErX5/wPA/8go/+ra/HDsx0g24NXmbwJw/PMqPL/MyTV5V01VRxEnyEcA+vr6rkBiMz3zQGUjIiIiXhB0chwRERHxCkfkIB8ZaF6zZs1VSHQCIyIiIiIiIiIipkBcQT7CccPNU+loTx//+8L052Mmk6ATm/wRe26dh8UaGz2MuLHo4ds92zw0Prbdf78d0+yqDOsbZec0gBGJaa2+zzfivqXxmWq64XgPebLbQ787Vns/ek8U6oWE2XcU/QR3NXifeiTMV0qF2zyt9I8zJHS6/zmvu3PCQ4rjYoKyUS5zkB7WXCB0g2LRQ5NPTrhqwFjZKQ2jJactTEp+seT9sUL9cGpRlCs0nctw4dta8l3hLULb2FX0+3dCo4//aDmtYjGZ8+tX+kWTtLX+W379JenHyMOudNHQ6em96/2Z6pjt/VDaTuN4hnpDk4eQy1tqDZ4qHZVrEFoBhgb8XI8+WU3nT1zmZYS2kRflFKVqsFdc6BQaihblCtvr4WEqHUIVDga9bykaQj79blXbVDUkdVFcc3+qXO5kj2ZyoV9nKjwulA59P7QfOXXe01C8htz1ejS0rtc8Lu/0s65SgMUneLrDz8XO+o6KWiYFUUFIQV3iUjQEiaYrtSXLbQ/5uskUMutOA3q/a+8967fLjPsxrXNnFMl1eHDTxofrpvV+p0xN9H5nPL/ICTVCX3V1SCwfkJKagtItXoB7XsQrAHEFOSIiIiLikKGT44iIiOmBZKnGKOSKkH8PyTVSro/kPSHdSvJrJB8l+RjJHwf3OJCcQ/LrJDcG0417SV4o7VxJcgPJdSTPlfzTQnsbSH4+bABEULy4OeT/TLWFSV5Mcn34u1jyF4ey60PdxpB/QujPOMmP1hmLPMmfk/wPyTuV5H1hbNaQPL2mztEkh7S9F3It9RAnyBERERERERERLw1GzexU+fuUHJtN8m116nwIwA4zO8XMTkZiujEZJoLfBvBDM1sSNvatQNA4Jrk8fD4JwHlI1CQq6/rXIlGIWBb+zgv5HwDQb2ZLAVwD4NOhrRkAPgHg9Ug25H2iIj0XylxjZssA9Ic2gEQF44NIHPHq4UMAnqzJ+wyAvw5mKn8VPiuuQdqR76CvJQuRYvHrj01THdyYEZE6VJzUntit549fVM2b/YiL7Td0eDhr6WP+GBbyonQx4mG0TjHWOGZb2lBhUkL8jRJuy3WKKL/QKtjrO+q7FlSlGNFwnIT59nlotgQP85VEQUKidinKgZIGJoVu0dnh11AuefkxCVNm3Y4heLizLHFKYQmgPSe75WVMVGXCxASkUUPaQtsoCM2hJ+dh/K3Sz+a8hI0lEqtqE130MoP0K5tdFkWKmuBkp7jDTAjFQhUxhkQNZFJCtlbSG+LlR0a8fJuYLYwNep86R4WCI7QKDbuW9nmZXLvXVVUUNsru+g4xORj0e59TSoaaV4hyBVqEPjHstBDqbn+lG0gYX41CUtrEqkSh5iAaJi9kqB2oiYeqBnR6m/bMJnD5qX6s3Q1RtN9qeDGetUSTGcaXdFY4XdlCakaxp9+zj1Z6g1RQpQ9VsUiZtfj9s3ExK0n1YUqDrqQPWbSQTC5FBg6WVpGq+wLWyLIMQQ4FWaoqhwnlEb8fE4PS/5S6Uca9PEgcHFHjgPgsEhe92gngPCS6x8k5zdYBAMk3I3HNu06ObQbwhfDxfCQSZ+MAng7SbacHU41OM7s3tHMTgAvCec8HcFWofwuAL4aJ+LkA7qpIu5G8C8B5JFch0St+X6hzY6h/rZntBLCT5DtqL5TkQgDvQKKw8RE5ZAAqDl1dSJuOXABgI+D/SZOcd7DXkiX5FleQf/2x6aXuQERExK8/dHIcERExbbTUUCwukmP3AhhnYs2suAHA5YGusJJkhfB/EoCHpjjXAgDPyuctIW9BSNfmp+oE97p9SLSMs9rqBTAQyta2NRX+DokZSu2GmA8D+CzJZ5GsPF8JVA1FLgfw13Wu8WCvpS7iBDkiIiIiIiIi4kUAyUsCd7byd0lNkVqKxc01x1ciWUWuwszWAliCZIV5BoAHSNa4EQAkv0TyYZIVM496+wltivwXUmeqtuqC5G8D2GlmD9Y5fCmAPzezo5BYS1dMR/4aCY1jqKb8C7mWuogUiyMdF7w4zY5PPP/RKrQIPaFZVRBEuaDo4cKeNg95NXd6WLNtWzoENyE661Q1iQkJc+oOZVEISEU2J6VdMYIoCG2gTagCHfL6qIqFprX5pmZvv6VbjDP2esi53ZxWkpcuj0oIslMa7ZDrYt7HtKRUE6Fb6FdBOeN7QaNNWkZ3becy9m1rmUalbUhYdlKqvr0wD6vLrg5RSLXrdVRBozHn6Xa5/sZeTxdmOLVA6TmNXWVJC2VihixwCO0BovSR7xIKS6tQGpQa0S70Br0HM5yKQKVPSPspeoPs0mdbmlLkdeV51Qc5K600gZQhxjTUILSMpiUsbWvuBRfM98+dGQsz0u+cPoJyPpMyKZMLMddIheWzMOb0FwgdJHUN2gVValHjj+mMr9JQhEaSUhLRqlpGqTAHy5jIUrHIonlMR0kDqLm2DHOYVD8OXCQTKSUKUVU5WPvyjLEoq0eOOjCJSgYaDs90qPab0cyuB3D9C23PzFYHx7ozavKHkNg23xrc5N4OYC2Ad0mZy0jOBFDZ7LcFwFHSzEIklIUtIV2br3W2BDe7LiRc4i0Azqqpcw+A3QC6SRbCKq22lYUzAbyT5NuReDZ0kvwXM/t9JFbVHwrl/g3AP4X06wG8m+RnAHQDKJMcA/DNF3AtdRFXkCMiIl4y6OQ44pUNnRxHREQcVlyNhH4AACB5ZmVDXFCIWI6Ek7waQDPJS6Wu+sveBmBFUHNYjGQD2/3BfW+Q5BmBX/x+AN+ROhWFincDWB04u3cCOIdkT+jLOQDuDMfuDmUR6lbaqgszu9LMFprZIiSbCFeHyTGQTG7fGNJvArA+1PlNM1sU6vwdgP9tZl98gddSF3EFOSIiIiIiIiLipUELybXy+Q4zu0ILmNntJHdJ1rEArg0TwByA7wL4pplZ2Lh2DcmPAdiFZAPb5aGdx0l+A8ATAIoALjMPm1wK4CsAWpBsaKtsDPwygK+GDX17EWyszWxvWNmu0Dc+WdmwF863iuRKAD8PbYDkXCSr2Z1IVnw/DGC5mblw/fPxxwD+Pqz4jiFRpzgQDupashAnyEc6Xv33h6mhL6Q+dXUnoVe2eKhY/CqQyxBlp9At9gx7KHrPL1qwZHHy7i1bsgcPb3RBf5Og1i4JUxd3e/iwIEYQlBD6xJCnW0akg0KxmBQViH2iMt8mFIIxiS/mU1SE+pgc9SPDJn2WMkMSfx7LoG0oXWG47H1TikU6feDd9Yq8hNxTtA0VyRcKx7g5dWRCzjVmfmXfKW7Fu/MJpeFczsR/lHdUj02iPr1DaS47Sv5MTYiUSDH1FetjMbivs5puaPE+FZozxiIV7pVwdKPfJytmlMkK+4+L8sGo7JZvECWGtgwKgFIylAKhihmq6KBlJF9NQFJvn/Y5pdyQMT6qmNH3Gyj/5L+SNjduQu7U1/ixLBWLCb/+UX1BtK9ZBhTNbXXLZ0KvbUjC6Uq9ENUPqvmKPgeF+jQUpvoj1IDGjHuWaSByCMHcLBWLaahbsKUDFmgrNjGWvp4srsehGJNkoaDPsvAhlFLT1l3/vPqFmNGffLvQz8bk6dd7L/9X/SphZnU7bWZn1Xw+TdI3Abgpo942TDHxM7OrkaxI1+avAfA8MXMzGwPwnoy2bkCyYbA2fyMS6bfa/O1I0x/qtXkPEqpG5fOPAZyWVT6Uuarm80FfSz1EikXEKwKVyTGA1OQ44pWHyuQYQGpyHPHKQ2VyDCA1OY54ZcBkApqeHEdERMQJ8pGFTS91ByIiIiIiIiIiXu6IE+QjC1OGNiIiIiIiIiIiIiIH+UjD8+73Rz7+oXrlDh6r0h8nxsOphH/XssQ5d7ku5+jN6XfyqNL+Fs0TLm+31106MJA6l5mXO7XHpbuaX++/B3JHiYxXR3c12XWac99yM7uqac7w9OwG79Qb4XWPGncuW4NshN2f92sekZ+gXceKnNks57udUPK9F+VnZ6EexmUc5+ScPzmz20OkRw97n7cWB6tpy5Bqm6DzgpVrXJZ0l8jatYh7nkq4jUt6aaG7mu5VX0B58gpCAVyQF1k0APPN6yi/erzsHN4zTtxaTd//pCsntJziXONcp4eLj+6WcT9mTjVtQ+KAN9fzobJ4wg3NiwyU1k1Ju4lbHdv8fuRPe7WX6Rb5s6F9qAvlzmZJrxX9WUdJZdiEz5nhksduec5U/i2LX5riKct7vFykVyfGUsfKuzZ7uV5VlnLMKmZIDY6rO6FwQ4W/nOqTXoPyedX17zVOiWTPXE83CF+4kDF2et6UNiTq5+s4Zsm8qZRdTt0bpyHbdrDc3+nUnYb7H4DM68nEdK5B3AkznRO17jTGV9u3CZGDnCHvt1JMOtLfRS8Uh9lJL+IlRFxBjoiIiIg4dGRoC0dERGSDZKnGSe+KkH8PyTVSro/kPSHdSvJrJB8l+RjJH5NsD8fmkPw6yY0kHwxuexdKO1eS3EByHclzJf+00N4Gkp8PChkIknA3h/yfkVwkdS4muT78XSz5i0PZ9aFuY8g/IfRnnORHa8bhQ+FaHg/qFpX8m2VsNtUofoDk0SSHtL0pruUPSe6S9v7HVPcmTpAjIiIiIiIiIl4a1DrpfUqOzSb5tjp1PgRgh5mdYmYnA/gAgMkwEfw2gB+a2ZKgfLECgV5Jcnn4fBKA8wD8A1kNAV6LREJtWfg7L+R/AEC/mS0FcA2AT4e2ZgD4BBLDjtMBfKKizRzKXGNmywD0hzaARFrtg0gso6sgeTISObfTAbwawG8z2Geb2UWVsUFiAnJrzVhcA5dxqyDrWgDgZhnrf8IUiBSLIxwzLvr4gQtNC2mOxehoCJU3eciyPKauYR4eVsmzcsnDX2PrPL/zGJf+GRnx0DWQplgM7PdwadeA0wwwIeHocW+rtMfTuR4Pj9uwh1SHSl53XYOnRxp1xUypCyKrJiUmBzz4NrHX23/uOQ+5b5Uw/ohEAveL5JuNe8h5cI9TEgYbnaqiznMqz2YHGQDcJ7Jt2uakpMvS/l6RwWsW6sVA2cdtX65NyoukE4ChnD8vgzJ6SgHZtdlDoWMqQ7fLw6Wlbe4+OuqMDDTv3+b9lrBry1wxLBHpOJVwK292MyiVecstkvA7vB11XytvErrBUqFq9Ls6C7u6vRmVIVMolSBL8mxSnvWMupbhSMcs9zSlGIyKs+tgjXzp/KO9LZHQSoXK5Z7tKchYa9g8Qy4v1aZes7IGpB2291TTtuFRTyttQ6T/Uq59ms5yzMsa6yzZPZV5y1pxPwTZtkxk1VVqAw5R5uxwSb7Js2bSP2ZRW/SdaKgv/adOemrfyNbuarq0fedBdfNXhM8isZmunQDOQ2IMAgAws3UAQPLNACbM7Do5thmuw3o+gFVmNg7g6aAHfDrJTQA6zeze0M5NSHx2vxfqXBXq3wLgi2Eifi6AuyraxyTvAnAeyVVIDD3eF+rcGOpfa2Y7Aewk+Y6a6zkRwH1mNhLa+i8AFwL4TKVAOOfvhbYreRcA2IhE67mSN2+KazkoxBXkiIiIiIhDh0yOIyIipo2WGorFRXLsXgDjJM+uqXMDgMsDXWFlZbUVycrwQ1OcawGAZ+XzlpC3IKRr81N1gnX0PgC9U7TVC2AglK1tKwuPAfgtkr0kW5HYZtduXPhNJKvm6wGAZBsSQ5K/rnONWdcCAO8i+QjJW0jW3xwRECfIEREREREREREvAkheQnKN/NU6wdVSLG6uOb4SySpyFWa2FsASJCvMMwA8QPLEmnog+SWSD5OsuN2xtgySfYVZ+S+kzlRt1YWZPYmElnEXgDsAPIy0bxYAvBfAv8rnv0ZC4xiqKTfV+f8dwCIzexWAHyBZ3c5EpFgc4bjh5pWHpZ3/fWH683Njif37cbs95FwakLD8iKeH+j1U3NgkygqiHlGUV2DPmOw6B0B592Y0SyxNQuVWlDDqsFAvJMRb7veT5Jo8/Knh/VaJ5dZ7C4E0rUKDjsO7vc2WLg8dlsre/qgat8lXigYXhyRc3Vo6MH2iLAob6XSW256nh0U9QuuOphzz/J7pL+4xGYmS9G1IKCgTNTvnR+VKh1F/V31bh4e1i3q7W1XVwM+Xa3DaR67TQ7DlnRJeToXQ5WTq+Nig7Utdpe9kuN6xvRV1Me51TegKFGoS9g3U72eWooNC6TWlrOut/X/oAPka0lYXwR1bgV5RCRn194wtnVLH+9qToWKROoc8L0pbSb1/SmnQa1NqR6t/z1CVPjQ9HUc7paSk+pmhvnC48GI42B2udg4VWc/awSJjjHLy+pV0OqX3snB4xqL2/wUzux7A9S+0PTNbzcTS+Yya/CEkfNxbSZaRrLquBfAuKXMZyZlI7J2BZDVVV00XAngu5C+sk691tgS75y4kXOItAM6qqXMPEp5ZN8lCWEXWtqa6zi/DLan/N2QVOJz3d5F21Hs9gHeT/AyAbiTW1WNIeMp1r8XM9kj+PyLwqbMQV5AjIiIiIg4dMjmOiIg4rLgawMcqH0ieWdkQFxQiliPhJK8G0EzyUqmrv85vA7AiKFMsRrKB7f5gTz1I8ozA9X0/gO9InYpCxbsBrDYzA3AngHNI9oS+nAPgznDs7lAWoW6lrUyQnB3+PRrJZFhXi98C4Ckzq06azew3zWyRmS0C8HcA/reZfXGqawn85AreCeDJqfoUV5AjIiIiIiIiIl4atNRIl91hZldoATO7neQuyToWwLVhApgD8F0A3zQzCxvXriH5MQC7kGxguzy08zjJbwB4AgmF4TKz6o7rSwF8BUALkg1tlU1tXwbw1bChby8SFQyY2d6wsl2hb3yysmEvnG8VyZUAfg5fGZ6LZDW7E8mK74cBLDez/QC+SbIXwGToV79c7wqkJ8wHQta1fJDkO8O17wXwh1M1EifIRzg2Hi4RixpYHQJCw1zZtS30h575vmM/3+Ih19JofRLD7Nb0Dv9iyQMhM+d6/IzdbiLBdleo0LBwfpaHXVNGIa0eKs/JtfSa1y1IfrsaAOiGfemn+k9oNHZSVDhExANtGimWdooZ3I45EkdUmkQx52FHpWEUJASZZRTSkWuoWyYvPSqIWkU3/R53yNdLT853yLfKAOVqnpPGaQS1Wmc4ZWJkj9Jo1DBAnqNxOV+TqITs9DLN+yXumjLXELOBcaHFiGJGXmgSVFWHntmeHhMahuy0t31CQ4BgVHbyKw1Dd/U3Cp0jRXuor6BAybeyvEM65JM+tinVC6VzDMs1ztIFGYC98lnD5il1CO/H/nzGw5yihmSE3wvS8ZQagzQjNA8Up0EZkes3NQ0ZT6ut1G1foSohbUrNkbpqFJJFkZkODoV6kUW7qUVKJUXva4aRh0L7lNE/K8q4T/qzRvn+Mbk3VCWRrHFMGYt4siiqSTbsKjIp9ZqDxKGYg5hZ3UExs7NqPp8m6ZsA3JRRbxvCJDbj+NVIVqRr89cAOLlO/hiA92S0dQOSDYO1+RuRSLbV5m9HhqOvmf3mFH3+w6xj4fhVNZ+zruVKAFdO1ZYiUiwiIiIiIg4ZqclxRERExCsccYJ8ZGHTS92BiIiIiIiIiIiXOyLF4sjCptqMlZ87TByLr6SNQpb2DAAAuPR11by8hrElrNmS8zBXeUBCvBIXa5gp4fohCV8CGB/2MNzESH0lg1SId5ZQLySslpsrIfFGD6+W8HQ1rQoMM62+ooUGKjV21trr11aQTf1tBVGBMD/vHqmclzP0iHJFC71uQTgcSoeg5KsSBTPKa7C6Rb4iclK+Oef5ZRnncQnTzmH9399dQil5G2fiLvj9bxf6xSSF3iG/5UvjXr+zJNcjIXcTU5qmHrkjjd7v5m4J5fa6oUSWSkNuUkZGrjlF31GlBKFAWLuYejQ5FYY9QutZIJHHFm+TQslQNQi2imGOqCaomQbFEMM0HwJVXGhMK8RUyxfE3EQpD2J2YcP7wC5/h9gsfW2S65fzdcv9S5loNE7DtCIVrs+gFhSE1tUuJiN6nfrd0Kz3T8auWfY5Cd2AOnban8b6aiapa9TzZrwrKbwYBiJKI6ntQ1a72u/DpIKRMoBR2od+j6mxiqpPZN0DQWGm0vuEqiHPKBozjFsOEi+cqBHxckOcIL/8MNbX13fVQZRf9CL1IyLiRYdOjiNe2dDJcURERMQrHXGC/DLDmjVrPnXgUo6DnExHREREREREvExAsgTgUclaZWafInkPgHYz6wvl+gB8zszOCm5z/wjgVUgWrQcAnGdmQyTnALgGiW5yP4AJAJ8xs2+Fdq4E8AEkiu8fNLM7Q/5pcOWH2wF8KKhiNCHZEHgagD0ALjKzTaHOxXATk5VmdmPIXwxgFRITk4cA/IGZTZA8AcA/A3gtgL80s8/JOPw5gP+BZM/jowD+HzMbIzkDwM1IFgM3Afg9M+sPihe3AHgdgK+Y2Z+FdjoA/EjGcyGAfzGzD4fjv4fE+toAPGxm70MG4gT5CMfhUrFYWvP5jpFeAMC7/uY/qnnrNs2qpkckdLapwfOPnkzvpJ4JD4eVJHj1iIj778t5mPYd8F3lHT9yt8nm3fuq6fK+H1fTY5s9FD/5k7XVdC4vag+izDAmBIpxCftvyXvYWc0uZsPDsfc+7m6Xx7a6EsBA0dvfJSoeC0SuYmvB87cLlWCs5OPwy8nt1fRQ2ZUPBotOJSiWvZ8jk16mQZQoxiTEubE4UE1PSN3+4kjd/OdyTqPpz4lyA4D+UtKPW7Afr26YCQBYhHask3P8Ii/qChJ9HxdjjuKEh76HhSJTHvF+NCyZWU2Pbt5ZTfNZfz500355mygoyS59VcYobvVry3fL7vrtO7z92f4s28gT3v7T7sjKAb/3tmfA27/vqWq68TVLvO4uX2XnvMWS/2zdfNvr/UGbhJC3/FL6JuMslBIe5e08z+yiQjnIF4B9bgBUXvuIlxHVj9zxx3n+HPEmkIHPq3HNPr9PGPb3le1OfykP+DOeom1k0D6wUxxnh/3+mVJY2pyqYiN+XnT4M2RDojilVARVXxBFC+v3fqKz19NCabBBH8MUXUYVI/Qe6DVmUTKUnqB0g1qVD+kHhVaSUivRtCJFQZIphBquZPVV+5FX0x6nsUG+l1KqKj1z6/cnayyk/ZH1YmwkNLyWbeu9D1vkvTkEvABFi1EzOzXj2GySbzOz79XkfwiJ7fIpAEDyeACTQfbt2wBurEz8SB6DRPMXJJcjUbg4CcB8AD8geVyQersWwCUA7kMyQT4PiTzaBwD0m9lSkiuQmGtcFCaunwDQFy77QZK3BXm2TyNxuVtF8rrQxrVIpNU+COACvRiSC0L+cjMbDVJ0K5BM2K8A8J/hR8MV4fPlAMYA/P+QqFVUFSvMbBDAqdL2g0gMVRAsua8EcGaYZE8Z9oqb9CJetpjO5DjilYHK5BhAdXIMIDU5jngZQznB05gcR7yMMZ3JccTLBZ9Fjc10wDwAWysfzGydmY0DeBOACTO7To5tNrMvhI/nI1mhHjezpwFsAHB6MNDoNLN7g9HHTfBJ7PlwS+ZbALw5TMTPBXCXme0Nk+K7AJwXjr0plEWoe0Hoy04zewDprS4VFJBoQheQmJtU3Pf0/NrWsJn9GMlEuS7ChHg2fEX5jwF8qaKxbGY7s+oCcYIcEREREREREfFSoYXkWvm7SI7dC2Cc5Nk1dW4AcDnJe0muDBNBIFkZfmiKcy0A8Kx83hLyFkCsnSU/VSdYR+8D0DtFW70ABkLZ2rbqwsy2AvgcgGcAbAOwz8y+Hw7PCdrOFY3ng9ns8F4AN4dJPwAcB+A4kj8heR/J86aqHCfIEREREREREREvAkheQnKN/F1SU2TUzE6Vv5trjq9EzSqyma0FsATJCvMMAA+QPLHOub9E8mGSFbe7eiIbNkX+C6kzVVt1EayqzwewGAn1o43k709VZ5qodeArILHXPgvJ5PmfSHZnVY4c5IgXBf+tlEixdZ7qPLA54j42Menh2P6yS/y0mnOC25qdYpGjv18NxTTFQv2bGgv+qXGhnzs3u9vTHS7B1DTm4eJG4ZuWRvx8o5s9GjQoXONO1g8pj8o17BVptFaRNxsdF2k6+Z06IvzlMeEQKvd5n0iPtUibLTnnXk5IH9RVryzfU5aSfKv/W3lm3uWttttANa2c5Qn4mGj7kxnOXEvK3s8NNedVp78WipSTjOPkmOdPyldxca9fc8Py+jJhZQnG5fTbT7jMVq7/Xc5Chmtfk3Bem+S8zSLzNiRue+3ihtftz35B7ivnuelGruTXxZkuBad8WSpfdkTc+TpmeH6DcJZnSN/27vF84cuaPEO5bu+P3lX2dkPBNpGwW/Yaqe/8UQ3lj+fu9jLCwzWRZ1MJsNTTkkW1Ul6scrDleYfKtqnEmNYVjjOzysgzTpHvS0nqKVda68r1KtUhxUFWZDnmpRzsMuTx9F2Ud07vBWsl/lKudOJsqNecJVWXlW+NdfPTz++Al5F7rDztLNnALD6ylf3dLY7L2CkXvasNBwObJtvYzK4HcP1BNZ6uvzpYOp9Rkz+EhFt7K8kygLcDWAvgXVLmMpIzkdg7A8lqrmwIwEIkVIYtSDvcVfK1zpZAf+hCwiXegmSiqXXuAbAbQDfJQlhF1ray8BYAT5vZLgAgeSuA/wbgXwDsIDnPzLYFKsiUtIgKSL4aQMHMHpTsLQDuM7NJAE+TXIdkwvxAvTbiCvKvP8YQpeAiIiJeZOjkOCIi4rDiagAfq3wgeWZYdQXJRgDLAWwGsBpAM8lLpa6+mLcBWEGyKShNLANwf6AuDJI8I3CI3w/gO1Ln4pB+N4DVgbJwJ4BzSPaEvpwD4M5w7O5QFqFupa0sPAPgDJKt4fxvBvBknfNPp60K3ov06jGQbGA8GwDCD4fjAGzMaiCuIP+aY82aNZ+KUnAREREREREvS7SQXCuf7zCzK7SAmd1OUqR2cCyAa8NkMgfguwC+GWTZLgBwDcmPAdgFYBiJ6gPM7PGgEPEEgCKAy8xDRZfCZd6+F/4A4MsAvkpyA5KV4xWhrb1hZbuy+vpJM6tI7lwOYBXJlQB+HtoAyblIVrM7AZRJfhiJcsXPSN6ChD9dDHUqq+6fAvANkh9AMpF+T2UQSG4KbTWG6z7HzCryQb+HZFVdUZnUP4Ek+Pz/mtkeZCBOkI9w3HDzysPSzjl/mf78GJJw1XFjLmk1NuEhvNlzPQy8eIs4polk2/ikP56LjnOpq+51EjYFMKfodZ4a9zDcvCGJ6kjYPLfUpay2/KuHGGcd7TJQzcf4uRskvF+QoEtOqFZzzMsfayIvJP181XIPcbcs9dDhrAf8vN3bvf9PSxj1KAkRzjAP18/pdNrK5wYHqmmVXlOXPJV5y9fKeAU0KLVDwuzaTqvQOZRW0Z7z65qT83DvurLTZXblvM3FkNA1gA75SmqQ8W0UusXefl8QOaooclISRR76weZqWt0SC51+Dfke72v+1Fd55RFxahS5qtxzIgNVFNqDOuB1eahYw+b51zo9kF3dXl4cG1OSVkINSLnYjXvflG6RHfYXlYL2rvplFogToFBElHZjKsGmlJ3N6chpbr7sn9nte37K0m/IPRuSe6NIuRCqlJqkU7QElarTMPuA/N+nNINRcfWUMH5u3jIvrlJlOr5KRZAy2rfnSeTVQ0pnUCkQpeeXrS2f5Rw4HSg9Q5Ur8jXTgRTVQ2hB0wk8T8cZUIurzJ3ABrb5h5Rjnjybcg+ozolynY3iptnUm5afrGKiWDdbHURNvpOYSr9wmFndm2lmZ9V8Pk3SNyFRmqhXbxvCJDbj+NVIVqRr89dA5NIkfwwyKa05dgOSDYO1+RsBnF4nfzvSVA499gkksnG1+XuQrCjXq7OoXn44tqROngH4SPg7ICLF4shCphxKRERExKEgNTmOiIiIeIUjTpCPIBysS19ERERERERExJGISLE4wrEyd5is9LAq9ennDUlI7vz9HrZShYn9ez1MOSBuc90mjmnmv9+e3dBdTfcX0gGtcQmBvV4c3nLt9R9v2+N0jbYOcZPrkl3JEvrNy+/IFkmrssSk9GGnhEh7JXr25BO+wrZszEO/T23z/J+2ePlOiajul/7MFfe8XUMeUmzLe7i0bJ5WFQtVgyhJWFepF5OyK35P0UPRRaFb7Jp0ioy2X2rw9Pay9EdoGM+aBzI2TopDGYA5BQ/3K71D+z1nntN2Ht/m6goN84WqI8/d8Ba/Z41yzcNPeD86Zj3unWgWJQBRkLBBf7bK++U5G/T+pHb7dzvdAuP1w7qlH/20mmaL7NifLWoSO/1Zyc07xsu0u0JFCo0ZSgZKGVA6gITWTRzsUmF/MQdRCkp+eY2H5uz5nh7wOiaqEUqf6FU1EAmbl8W5LkWZmEboPkWNmDlH+u3PMrvc8VApEzYmVBClGExI8E1pFer4t+B4L5MK9Wf0uZChwpHLoE+U6qvCTAtZyhiKcm379V3vUk53tbSMekgpbtTPVwqPFaV9dR5UClKjUquk0RRtRZqZKa598t2g71CtIku1vLo92vSUKyJ+PRBXkCMiIiIiDh06OY6IiJgWSJZqjEKuCPn3kFwj5fpI3hPSrSS/RvJRko+R/DHJ9nBsDsmvk9xI8sFgJnKhtHMlyQ0k15E8V/JPC+1tIPn5sAEQQfHi5pD/M5KLpM7FJNeHv4slf3Eouz7UbQz5J4T+jJP8qJRvJnl/0Gx+nORfy7HPknyK5CMkv6W6xSRfFdp7PPS9OeS/N3x+hOQdQbECJI8meTfJn4djtZv4UogT5IiIiIiIiIiIlwa1RiFKhZxN8m116nwIwA4zO8XMTgbwAQCTYVL7bQA/NLMlYWPfCoSNcSSXh88nATgPwD+QVVH7awFcgkT6bVk4jtB2v5ktBXANgE+HtmYg2VT3eiQb8j5RkZ4LZa4xs2UA+kMbQKKC8UEkrnmKcQBvMrNXAzgViWV1Rff5LgAnm9mrAPwCwJXh/AUkOsl/amYnIdFkngz5fw/g7FDnEQB/Ftr6OIBvmNlrwjj8Q52xrSJSLI5wfPy4w6Nisarmc1tll7WEubaP+q7zozo9LL1fQm2tEkakhOWbJaTWIJE2AGiSc+wqe0juhBHZDT4uldol3CtsjZJITuSaxWhDzjUophiN8DCqBjBnC61CI4qqONE801uds9WpCMdNuKpDUfpWlo7On/RWWyWkOCiUBlWx0LBglmlIFgpiCKK7tptzfsVj5UnUgxp97DDvT4fkzyykxflniArGkNTZW/KxG97nIfFFEo7NtYm5hFJkdkhIfEIMZ0RAgwucqoFBp4+gVRRT5BnKz5R8VaJokNC6wPZLeH+G0ydyJxzrhUb8AWSvl0GjjzUzzGkyDRJKcm/UNGNYaCHS55RZhFA1TCkGcq7S4095/i83IzdLQtZdokzQJCF06UeTPJsaQk/1Q69hSO6NqlhoGR2Lce+37RIVEqG/MIsCoeF6pa3I91VKbWOyvtoGhBKVMtaQZzdlvjEN44uUOUiGIU8KkxmKHBkGIECNWoXSKtSgJYtuoW0pNSSDDpEyYhmRPqnKhoxLSmEF07h+UToqy3dA6h4Myjsq37dZKhZZOMwkjM8imdR9ryZ/HhLd4+ScZusAgOSbAUyY2XVybDOAL4SP5wNYZWbjSIwyNgA4vSKXZmb3hnZuAnBBOO/5AK4K9W8B8MUwET8XwF0VaTeSdyGZ2K4C8CYA7wt1bgz1rzWznQB2knyHXkxQl6jcgIbwZ+HY96XofXB95XMAPGJmD4dye0I/GpAIi7SR3INEBm5D5VThM5AYnkxpYBJXkCMiIiIiDhk6OY6IiJg2WmooFhfJsXsBjJM8u6bODQAuD/SClSQr+oQnIdESzsICAM/K5y0hb0FI1+an6gRnvH0AeqdoqxfAQChb21YmSOaDHvROJBPvn9Up9kfwHwvHATCSd5J8KOg+I7jkXQrgUSQT4OUIOsxIJuq/T3ILgNsB/K+p+hQnyBERERERERERLwJIXkJyjfxdUlOklmJxc83xlUhWkasws7UAliBZYZ4B4AGSJ9bUA8kvBV5vxcyj3hK4TZH/QupM1VYmzKxkZqcioYOcTjKlyUzyL5GYiHwtZBUAvAHAfw//XkjyzWEF+VIArwEwHwnF4spQ570AvmJmC5GYiHyVzN75GykWRzhWLn9xVCw6gwKFRtrmtniYvLHJQ4RHD3oYtL3JQ6W6Ybh3vtft/GVaVH5CQmBHNckO+zkegmW3hPBaxAxBjEn0NVETiXYJqR5jXrfdMkwOJN0k19DS5teW7xRaSauHY5v3eYUxaWmuREhnwcv3tHsIsnW0/q54pVs0SIi+UUKihZynlXrRLPkaalTTEDUWaaPTAZrEzKAn77SWVslfluvAxrKHNlvkWF4NWqTfrR1+/buHeqrpya1iZiHPXYNE4huO8g/lwQzDgA55VsaEWtAqYf8RNVgQ2oOE4tWkIzd/rrQjHRoQFY8moWco7aFBCDxi5JEOY8sDInQIpWSYmmNoGF/rqgGDKloodUTC5Ln5ohIBgHPkOvUaZgiFRYxPdhWEriDlU+fW0L3SKjRfX94MQwnOP8rTqiChaVFrUDpEShlDx13b1zESykemCoeeS1UvpmOykaUMkYW8jonU1TGcHE+br6Tqp8tVoXQLpX0w43xqgqIqFjq+WWOUdY8tY3wFNiHPbKNy14Tm0evfJZahVjEdFYva/xXM7Hq4K9xBw8xWM3GsO6MmfwjArQBuJVlGMuFbC+BdUuaysEGtstlvC4CjpJmFSFZZtyBt4FHJ1zpbAr+3CwmXeAsS3q/WuQfAbgDdJAthFVnbms71DoTNiOcBeAxINgMC+G0Abza/OVsA/JeZ7Q5lbgfwWgD7Qzu/DPnfAFBxJvxAaBdmdm/Y1DcTyar18xBXkCMiIl4y6OQ44pWN1OQ44hWHzMlxxMsBVwP4WOUDyTMrG+KCQsRyJJzk1QCaSV4qdVslfRuAFUGZYjGSzXj3B/e9QZJnBH7x+wF8R+pUFCreDWB1mKRWbJt7Ql/OAXBnOHY3nCt8sbRVFyRnVdQpSLYAeAuAp8Ln85BYV7/TzNSc9k4Ar2Ki6FEA8EYkFtpbASwnWdFyfCuAJ0P6GQRXvrDi3ozEjrsu4gpyRERERERERMRLg5bAva3gDjO7QguY2e0kdSJ3LIBrw2Q2B+C7AL5pZkbyAgDXBE7uLgDDSCaYMLPHw4rqE0joCpeZVQXnLwXwFQAtSHi+Fa7vl5FQETYgWTleEdraG1a2K/SNT1Y27IXzrSK5EsDPQxsgORfJanYngDLJDyOZ3M8DcGNQ1MghUZr4j9DWFwE0AbgrbJ68z8z+1Mz6Sf5/4fwG4HYz+244z18D+CHJSSQ/HP4wtPUXAP6R5J+HOn9oWeECxAnyEY+PN/zmYWmnVsWiI0Su/nXtUfiDt2wHABxz9ih++YNklWLfvma0tyehujk9Q3isP9ngs2uiMUUhqIQ4Nm7oxczuhD7xqq69+OGQ7/LXCOPguIRpx33Huw17SJyN9ZUGFKV9HkYcMy+/Led9myF0gpLQEhokyDaj7EGaiXEJKY4JlaTs5fvznm6RCxuXuN2gyWs77GH/SQx4m9KflJGHpsuaL4YY8n2xfngblrUl4fEFTT14diz5/uufHEZXQ7IwUWC+SuN4cmwHFjUl92YURTSEO9jGBmwrJvfj3tJ2nN6YhOaPybVhXUkUFQSTqTEVg5YRH/cZoqCR7/b8XIdTEUYf9+eguM0XIAqzMgw1NHzbKosvQ2IiIaYeKdqD0gRkB76pQkWHqEloiFfMNKC0Cg1vZ5lLSKhbqR22byfYk6zs5hadgvJz673OmCzGhH7bwC5w9tFJO40tEk5vc2pBW1eVAsETX4XyzxKzE9u/AblFbmSCWaKL3Cq0FUF7OeP/Jg3dy/UzZXqjofiMYKiO6X43CErdYx3fjHy2dtctY+PyTGTRClLt5zPKZ9RNIe80hnLJy+XyaXpDVv06ddnWXX1OrVRMUz2ykFLBmMZ5p4EUvUbvsVIvMig1zBpfQb7X39HysCiMqHqGtsn69LlcRv6hwMzqdtrMzqr5fJqkbwJwU0a9bQiT2IzjVyNZka7NXwPg5Dr5YwDek9HWDUg2DNbmb0Qi/Vabvx1pKkcFjyDhDNc7x9J6+eHYvyCReqvNvw7AdXXynwBwZlZ7tYgUi4gXFZXJMYDq5BhAdXIMoDo5BlB3cgygOjkGkJocR7y4qEyOAVQnxwCqk2MgzXGuTI6B9KS2MjkGUJ0cA8icHEccHlQmxwAOODkGUJ0cA0hzTWXSovzgyuQYQHpyHHH4kTUZPZjJcU0Z/RE3rclxRMQRhDhBjoiIiIiIiIiIiBDECXJERERERERERESEIHKQj3CsWnrZi9LutnwSkk3J64ikWrnkv81mwnmkLQUP1+coEmySrv1VVxAaY0NOXZusflpkppT/W1a6W49z1nIZXFjtRypfTpX1C7Q85oVGx5xvOikUt/1KPZW648KVaxSJI3WPK8v1Km9uOu55ylMeyXDJKwpnWcvnhX+tMm3K6dtr3uZoOW2LOJEXZ0Appxzvpma/UWM67uKkN/G08M9L4orV6uHl4i6XQ8srv1jl1krqo+hQTru6taV4ku3dnlZOsfIt+0XOTM7FZnFoG3eqA0fFSa7dZalSyHJiy3KM0/wxH4eUC59KxIkLH8WV0nbvAmeL7Ntzm/2YnI5ZPGqFnlvpAVM4vx0QzOAdazsZTm82KfdboU5vB9uflwOyOL5AttycXud0JOmmAXUh1Htv4nTHDKk9lYhjFg88Nw3ucMa7HnHkIq4gR0REREQcMlKT44iIiGmBZKnGSe+KkH8PyTVSri/oAyNIm32N5KMkHyP5Y5Lt4dgckl8nuZHkg8Ft70Jp50qSG0iuI3mu5J8W2ttA8vNBIQNBEu7mkP8zkoukzsUk14e/iyV/cSi7PtRtDPknhP6Mk/yolG8meX8wNXk8qFBUjr0n5JVJ9kn+f68ZtzLJU0l21OTvJvl3oc5vMXHdK5KsyNBlIk6QIyIiIiIiIiJeGtQ66X1Kjs0m+bY6dT4EYIeZnWJmJyMxwJgMk9pvA/ihmS0JyhcrEJQjSC4Pn09CYpjxD3Q3oWsBXIJEG3lZOI7Qdn9Qk7gGwKdDWzMAfALA65EoVnyios0cylxjZssA9Ic2gEQm7oMAPldzPeMA3mRmrwZwKoDzSFaMUR4D8LsAfqgVzOxrlTED8AcANpnZWjMb1PFEIvN2a6j2DBLJt6/XGdPnIVIsjnB8f0OmGsxB4ZylaaG3uYFCUZjTXs3r7PRQdHOHh9G27nOpHVN3OqFVNDR6+KuhhiWglIbWRnGwapAQm8hysd371D7PQ3uFGbozXBzthGZQzkuoX/o6TJFMS0Xz/DdoccLbV2bB6KS/hqJghla5rn65yDGhKzQIxaIlJxQD4YtoWh3wsuQfKTQJdd7LKqOScpMiupeT8clJ+Q7Wd+cDgLEMuobSOHIFz5/QkKrcs8YFQlF4WuTWlHrSLtcmjm6ZodYsyk4pw0FMQ9FCk1BKhlIUUuF9oQGlnPSEVsF8hhScOrpl0SpUmi6DepByktO6Kk3XJv0fHgRmiVmISKxxhki+ZVERpuEyp7JqKXkvHbssiklqjOT7ICfjmNWfLCpBlpvfdJB1bw4W05FXyyoznWusrV8q18+fDjLKp10L5Tu8UF/uL1PmLQMq7WZFeZpVUk7+XzgUJ73DjM8isZn+Xk3+PCQTPwCAma0DAJJvBjARZM4qxzYD+EL4eD6AVWY2DuDpoG18OslNADrN7N7Qzk0ALgjnPR/AVaH+LQC+GCbi5wK4q6J9TPIuJBPbVQDeBOB9oc6Nof61ZrYTwE6S79CLCVrEFR5XQ/izcOzJ0P5U4/ReAP9am0lyGYDZAH4U2toU8qfFh4oryBERERERhw6dHEdEREwXLTWUgIvk2L0AxkmeXVPnBgCXB7rCyjARBJKV4YemONcCAM/K5y0hb0FI1+an6gTr6H0AeqdoqxfAQChb21YmSOaDYcpOJBPvnx2ojuAi1JkgI5k43zyVGchUiBPkiIiIiIiIiIgXASQvIblG/i6pKVJLsbi55vhKJKvIVZjZWgBLkKwwzwDwABPr5Npzfynweitud/WWYW2K/BdSZ6q2MmFmpUCJWIhkVft5piX1QPL1AEbM7LE6h1eg/sR5WogUiyMcNzy88rC0c06N181EeEWKO3z3++Skh8vKAwfeVTxR8nCcuqflpnjVhtRJT40OJp1mYPt9F/7obn8FWiC7oXMe5lOagapVTKSUNZROAClfH8IyQLMod+ioKJWkWegKTRIWbKeH9ydFWUKpCykag7SZlxBvqv+sT43IgtI2chkqFg1SpiidYE37jVJuUq5T1Tcmx3zwJlWhIyOMWhz1MgWhRpSHZCf8qNAeCvWpNinlCqVVZOyuT4X9R+rXtVHZpd8oD4XQMGxSQs6iYmHNbrzDklBKRIki5QCnahtZSgSiJpBSsZgYq19G1T+GfgkuPMo/a+hbHedkXAaz1AVUyUCyU4oFWYoWSgEoCpdpWBRARmQc2yRcXxLqSUn6r2MhfbAsFQstn3omIGXkuUlRQXBwKE9DfSGLCpHq5xRGIdpvfa55COcWmN4nHV9RsdB7ySwViwyzExvzfpbHpP/yf4SNZiiVCKbjpFf735OZXQ/g+gNWzGrPbDUTS+czavKHkHBrbw2UgbcDWAvgXVLmMpIzkdg7A8lqrrykWAjguZC/sE6+1tlCsgCgCwmXeAuAs2rq3ANgN4BukoWwiqxtTed6B8JmxPOQ8I8PhLqTYJKvBlAwswene+5axBXkiIiIiIhDRmpyHBERcThxNYCPVT6QPLOyIS4oRCxHwkleDaCZ5KVSVzYK4DYAK4IyxWIkm/HuD/bUgyTPCPzi9wP4jtSpKFS8G8DqQFm4E8A5JHtCX84BcGc4dncoi1C30lZdkJxFsjukWwC8BcBTBxoUJrp+7wGwqs7hurzkg0FcQY6IiIiIiIiIeGnQEri3FdxhZldoATO7neQuyToWwLVhMpsD8F0A3zQzI3kBgGtIfgzALgDDAC4P7TxO8hsAngBQBHCZWTX0eCmArwBoQbI5r7Ix8MsAvho29O1FsmILM9sbVrYr9I1PVjbshfOtIrkSwM9DGyA5F8lqdieAMskPI5nczwNwY1DUyAH4hpn9R6hzIZJNhrMAfJfkWjOryNP9FoAtZraxzrj+HpJV9SpIvg7AtwD0APgdkn9tZifVqQsgTpCPeKzMffzAhaaFej/ggFyzh9dKk6KgkPdQ1YiEF/NFVTjwdvIFD4uN1sQ9VDWiJE4b5RFRb0h1KiNwoh4BRVGlEBrAsNAwmoVAoYFGNbVQ+kFRzFFMoqtjes3CyRiT6xoROseQ9L9BwsCqJqGqD7rzWvcqTEpoVikMWl7zLYNGpuUnM1QoxtSFRVDb5pjQRFKKGBlUjwbde6GR30YZ63JWGTEyUXMQLd8gZUQJRakRKdUITWtovVl246sKhNIq8vKUZhlZiPpCFpihPKLKGCm6hQ6KqmdIiVT0XU0dlObwzGZwgURp9RpUcUOMgZqz9s5kKWtkKC1k5afaEfOVTKUP7Wdmvo8vs6gqWj7LvGI6Ji7TwcEqSSiy+jnVOfSaD+XcqX5k0FkEWWoVmfdey8j3Qaq0qqU01CfEpb4Pp7HXaxqWJCmYWd1BNLOzaj6fJumbANyUUW8bwiQ24/jVSFaka/PXAHge79fMxpCs0tZr6wYkGwZr8zcikX6rzd+ONJWjgkcAvCbjHN9CMqmtd+we1FBP5NiSOnkPZJy/LiLFIiIiIiLikJGaHEdERES8whEnyBERERERERERERGCSLE40nHzosPTzoXpj3/0+kRSMb/0mGrejPVVXXO0n9nr6dU7qulURHSGh9ubX+dGA7/7gEovAvl2r/Tof3m7FEMJNEiYdpFLbrQv8k2yja/2TUY2OFJNd+Q8pDwHHpo9XaLUs+gh98a89/t+uvj80o+KFGTOz3Xy0eur6VNafCf17h/JTv6yX0v3Ej9XYbaH3PPf9XFoy/tu/I68h5aHSt5ppX8sbJ5ZTe8veR/+vDyvmv5Kq7fzh5Pd1fQTErnW8OLrZef4t1p8n8jH5+2GYs82V2NobPRrm7XMlQ9+a433+769vlK5NOf3aXSzn6/1eOUEiGqEmokc77q9PF5oaKOuvAJRkLDxTdV0rt37nILu8B/3dmz33mpazTVybxSTrAyzCyqlQcPMolaBBlGx0J3/orLA1i4vk2Wg0STKGG1ipuElYD0+biPXaeTzF2g8yq+t8J53eZ3+7V5scKCafEAMgH53cI+fT/qh11De8ctqOjdvWTWdUu5o9LEo3XGHl5kQytWiDV5+lj/7WP46L++5sKF+/zDmz5w+KyXps14vZ/rzqqoi1r/V25G6uQ7pTxbVRg00MigJaTUIUYBocWOm8s6nU1Uo5049L/t21q2fUpBoUAUhOZ+agBTrP8u5rtne7a2yN0vuvamSil6/Pu+aL+/QXd/3Z/bYBr9nx592WzU98p/+PaywDJpZOu04WIpFxMsXcQU5IiLiJYNOjiNe2dDJccQrDzo5joiIiBPkIwZ9fX1X9PX1XfVS9yMiIiIiIiIiAclSjZPeFSH/HpJrpFxf0AcGyVaSXyP5KMnHSP6YTMKVJOeQ/DrJjSQfDG57F0o7V5LcQHIdyXMl/7TQ3gaSnw8KGQiScDeH/J+RXCR1Lia5PvxdLPmLQ9n1oW5jyD8h9Gec5EdrxuEGkjtJPlaTfxXJrTI+bw/5DSRvDH1+kuSVdcb2ttr2Qv67SRrJvqnuTZwgHzloXrNmzVUvdSciIiIiIiIiqqh10vuUHJtN8m116nwIwA4zO8XMTgbwAQCTYVL7bQA/NLMlQfliBYJyA8nl4fNJSIw4/oEue3MtgEuQaCMvC8cR2u43s6UArgHw6dDWDACfAPB6JIoVn6hoM4cy15jZMgD9oQ0gkYn7IIDP1bmmr8g5a3GNjM/tIe89AJrM7BQApwH4k5rJ++8CGKptiGRH6MMBrawjB/kIx/+3ctNhaecfaj7/148SzvCJjzp3rX//jGp6/shANb15i+cfNXefN+K0TTRudw7gzl+kw/Itbc7Bm9nh/EA2C/dtl9e3rc6F3rfepX1a9zq3uWm+112am1VNv05ocEc3Ou+xuak+D/CMMXHvGhMZIeGwssnPpW5wnUd7m0V5zRuPdW4g2z2sPVL261KZt5accwMnRG5Ny+wr+biNCafxnjYvv3/SL/4nTc4d3WLOE3x70fmJ+0UCalzk8TY97fd7F9LOV8fSx+upB33ciS3V9Ou6nMPcLPe++Sjh7Tb4uduOF9m9BcJRX+j86hTvuFtCzSOen5vldVNk+UbhPbY45xxj/uznliyS9v36bbvfs5SzWqM4uqkk2X7n6aYc7dTRrd/PmxKlGhDut7bZLNQIdbAblndRIVJwQ1vlmd46iVzez9hdvsXbmhSXx5n+jLTCr9OG/IW37c41hnJetzlntiyuaSbjwjZ5P2Z0+nmFQ8+Zco87vHwKKmE27O6bKQ7ymIy7uBymxld5t3qfVGpPeNOmroP6TKRk86SuPosT9d3gbFKdHOW7Sp3k5Dv5efWV5ztSX9rOMpwELcOFUMso7zi/4IRquvjYPX4qvTa995rfIJxoGa8u+d6bMVPGt8X3gjTMzJCRy2AVZ+ZPw23vIPBZJDbT36vJn4fEGAQAYGbrwrnfDGDCzK6TY5uR6AgDwPkAVpnZOICng7bx6SQ3Aeg0s3tDOzcBuCCc93wAV4X6twD4YpiInwvgror2Mcm7AJxHchWANwF4X6hzY6h/rZntBLCT5DtqL9TMfqgT3GnAALQFd78WABMA9oe+tAP4CJIJ/zdq6v0NgM8A+CgOgLiCHBERERFxyNDJcURExLTRUkOxuEiO3QtgnOTZNXVuAHB5oCusJFnZsXoSgIemONcCALrLfUvIWxDStfmpOsE6eh+A3ina6gUwEMrWtvVC8WckHwk0jMoq9S1ITFC2AXgGwOfEqORvAPwtgBFthORrABxVMSE5EOIE+cjAGIDfiRzkiIiIiIiIXx1IXkJyjfxdUlOklmJxc83xlUhWkasws7UAliBZYZ4B4AGSJ9Y595dIPkyy4nZXb3nbpsh/IXWmauuF4FokzoGnIpkM/23IPx2JRNF8AIsB/AXJJSRPBbA0GIxUwcRR5hoAfzHdE0eKxRGANWvWfKqvr++8ehzkj6w8TCf5SvpjZ/jxOPf1Hl5sedzTbXM85NXb7yGypnbPb5HfnMU9HlLsPTr9rg3v9nDbrKUePst1eihbXdAUvWd5iDe/7PhqurRuUzW9V5y/GsRSbGTCw8stzV7mscGealqM/XDsY89U04VjXdZobL3/yN36Cw/3dvf4uAzu837OGPOwf9siD+se0+gUgHGx6puQ9FjZ+zleFimmjHBhh3gQtglVY1zd1wQDEpUuS6ixW75qOpr9Ht1bFioBgOKYh8S7pN9FcdjrWejj8uSjPo6vWuYUArZ6X8ujEsrd4VSb8jqXF2z8jeO8EztEkmzUnzsbkVBuUSgDTfJsjUj4VkLOtkdk3pSSMSEh7nFPs8ef3VSbvX696Oj28kJDwCwPGysdwtok1K/ScUIZsILQKjQcrij6usrMC+akj4ksHjvbUQ882qUfczf/ov75lE6glIMs1zSR9EqF3LW83id11VMZsn6RnOyRa9srLr9yz8q7nNqRX/oqL6NUGHFrS8nrqbOhUhX0egUUWkFK4k+vPcuFTi06tQ/6HNS4NNrANumruEjq+KoTXUpWTp5lratUDYW0qbSKwslnVdOlzY94eb0Gq/9dpP3cm/Ox3vJcdzU9c49/Hwz/MqMdlXPTdzpjzmc1bntmdj2A6+sWngbMbHWwdD6jJn8IwK0AbiVZRmKrvBbAu6TMZSRnIrF3BpLVXPmCwEIAz4X8hXXytc6WQGfoQkKA3ALgrJo69wDYDaCbZCGsImtbBw0zq76UJP8RQGX1931IbLknkdA2fgKgD8kK9mmBNlJAwuO+BwlV5GQA9wQazFwAt5F8Z3ARfB7iCnJERERExKFjsv7kLCIi4pBxNYCPVT6QPLNCNQgKEcuRcJJXA2gmeanUVf3F2wCsCMoUi5Fsxrs/2FMPkjwj8IvfD+A7UqeiUPFuAKst+RVwJ4BzSPaEvpwD4M5w7O5QFqFupa2DBknZLIILAVRUKZ4B8CYmaEPyA+IpM7vWzOab2SIAbwDwCzM7y8z2mdlMM1sUjt0HIHNyDMQJ8pGETX19fVe81J2IiIiIiIiIqKKWg/yp2gJBuUHCGDgWwH+RfBTAz5GsEH8zTE4vAPBGkk+TvB/JJrnLQzuPI9m09gSAOwBcZlYNz10K4J8AbADwS/jGwC8D6A0b+j4C4IrQ1l4kXN8Hwt8nhQN8OYCPhDq9oQ2QnEtyS2jn4yS3kOwMx/4VCef6+JBfUb74TJByewTA2QD+POR/CUA7kgnzAwD+2cwkzHDoiBSLIwebADQ/L/f45+UcVhR3e9ht3x4Pn5Me1n1myMPDuZ0Szip7iKz1KA/XP7fB2wEAM0odTzcuFHetcV/dys/3MNn4k747vWGfODgJJs3DiNtVHWHSr237PlelaBXntiYJw+V6ZBe9qFg0He2h066d4hpW8muZucBpFY1d6rjm/dk26eFxpVUoRkoe4pyQkOhE3tOTQsNQesnuko/n7LwvSuwXqsaevPdtTMKgW82pCrvHfBxqorooSHjShPZRoF/n2IB/bS2Y6fcv3+OPN3tEyWDQz53rFKe3ZR5p5Dx3akQGBQK7/f8nNsurNEsWOFTFYr/IsAyKCkKLhPe7RVVDncLa5Blv8/dDw/6q3ABxIjOhowT50eejUP+rnx1C7dBwfQa1obR5Z918ACgs8HGhXrOoN/TK+8p2ObeoK6QUHiQ/VV7eA3XhM1EeSd2zVrlP7d1eptvHkeJOiGVOn7ARpzXljhbVBLkH2md1pGOz962s7nTisKeOdJlo8/Ioy/3Oohuos522L66I2k8AaeqGUjHU5THDkZFZdBl19FNqizz7qlahtIr8MXIPVDFErl8pH4oTm/z9m3203L/jfe9b535RsnlK6FryPcSM9+BQdCvMLJ+Rf1bN59MkfROAmzLqbUMi5ZZ1vquRrEjX5q9BQkGozR9DIqlWr60bkGwYrM3fiIQjXJu/HWkqhx57b0b+H2TkD2X1S8psQp1rCsfOmqouEFeQIyIiIiIiIiIiIlKIE+QjB2MAFr3UnYiIiIiIiIiIeLkjUiyOEAQli6tq8z/+O4dHxmJVzeelRyXh35Y3uzrAgoLvWFezixNWe6i44yg1P/D2Cos8VDp/t4SWAYzt88d4YsTT+dlC6ThmoaSP9X4c/aSXnyeqF7IDf2K1h0KH5CflmCg8NAutQl+qftk9nZujIWEJ27WIWUmPU09G+j1//24PD8/sEmnHslMS1BBERSbUEESpCjlRmchL6LAgfW6Ta9Td2R1ylfvpaQl2YrZ8KItGbgOF4lITm+ywEuqhUfo0PpzxtVXOUBKS/JSaSYO00yLmM031TTo4Ul85QE0LKJwRE5pESrlCQ85aptuNUVJGIRp+njG/flpULDTIngqbZ4S6U/1vFjWMjHA9yp6fP2pm6hDnS8j+hFd7OiP03WQuo5rr8us3CdGnwtrz/Psk1+5qMSb0Bi1fniljqvdPx11oDymqg5pRqCqDjqOMRYryIcoNKeMSqZtandLyjc9nwj0PamJSrv/OKDIpD1pGqCnJOdQMJ+N+aJksZQnJz6KA6PXr85hS9xBaRUq1Rek4em0yRjPmiKmTGAphjtOscnNV0ndj3W5mqf1E/HoiriBHRERERBwydHIcERExPZAs1WzSuyLk30NyjZTrC3JlINlK8mth89pjJH8c3ONAcg7Jr5PcSPLBYCZyobRzJckNJNeRPFfyTwvtbSD5+aBmgaB4cXPI/1mNnfPFJNeHv4slf3Eouz7UbQz5J4T+jJNMOdmR3BTOv1avW45/lKQF2boDXctFwVjkcZKfqWnn90g+EY59fap7E1eQjyyMHbhIRERERERExK8Io2Z2asax2STfZma1VtMfArDDzE4BAJLHA5gMk9pvA7jRzN4Xjh0D4J0hvRzJBr6TkBhs/IDkcUHJ4lok1sz3AbgdwHlIlCw+AKDfzJaSXAHg0wAuIjkDwCeQaA8bgAdJ3mZm/aHMNWa2iuR1oY1rkegnfxCJ0kY9nG1mu2szSR4F4K1IpN0qeXWvBUA3EgOV08xsF8kbSb7ZzP6TiePglQDONLN+krNrz6WIE+QjCGvWrHmefMyqk5e+KOca2J2oBczY5s/64LMeZi3s9B3DW7d7aHJhbqCabp/nu+iLm1zQfcfGtIpF/6iHJE88xekQNi6qBkOyQ/lZD59RVClsdLxuuiTUAtWGaBCFinUaWpcoXLNEFMfXbPa6CzycOb7ew39PPunv6+x2p1JsH/Lyhc3eaNsM72eT0hBExWK4pNfidYsSmp0oi6KFqFhsN1G9kDY3lj3c2V/yXectQrcYl7CpjuEA/Dl4hmnt3HyTH5shkeNSyfvdtcB/5216wp+due1eJjfXx7G81dUnbFyoBUM+vhyWXfGDYpZR9P6p2QdEhYSj/myZhpwl/G6ihpGiamgZzZ8rWv7DvgNflRJsUP4f0fC2qk8IPcOGp2ECorIiSh+QkLYVRR1G1EIwOgqoSYKqcnRJSFzoHb1FUS1RpQQ1lNDQv+RbUelYYl6hIXpNt0moX1QmVHEiFa7XulnjpflZ9yCrjIxviqqQRUNQaBEtX65fN0VZyaJF5NIBZa2Tek715CZjqqoUer6sfD233le9l6lrky8EvU/6zOq4K81s0s9V3O1lmrLu6zTwK6JbfBaJi17tBHkeEt1jAICZrQMAkm8GMGFm18mxzQC+ED6eD2CVmY0DeDrIsJ3OxFSj08zuDe3chGQS+71Q56pQ/xYAXwwT8XMB3FWRdiN5F4DzSK4C8CYkRh5AIjN3FYBrzWwnElOPdxzkOFyDRAda9ZTrXguS/6Z/YWaVL/4fIDFP+U8AfwzgS2ESj9CfTESKRURERETEocMyOOARERFToVYH+SI5di+AcZJn19S5AcDlga6wMqyMAslq6kNTnGsBACVbbwl5C0K6Nj9VJzjj7UOibZzVVi+AgVC2tq2pYAC+H2ghVTtuku8EsNXMHp7mtWwAcALJRUyc/y6AuwceB+A4kj8heR/J86bqUFxBjoiIiIiIiIh4ERAme5dI1vXBfrqCqSgWALASySry5ZUMM1tLcgkS97q3AHiA5G/UOfeXkLjJTZjZ61BfstmmyMcLqDNVW1PhTDN7LtAe7iL5FBIDlL9Ecp21qHueQJ24FMDNSOIIPwWwJBwvIHEPPAuJHvOPSJ5sZgP1OhQnyEc4Vmz4X4elnVVLv5D6XAiGEbl5vsu94ygJUUvsYsGoh35bejz8Jf4TaOj2cOcx50xg90/9fWtq9jpDO71c85iE21rFbXOG96nU72Hghrn1VSbKGKimx+jnHRRFCH2R2iVsPCrtNMzzPuRmemg696wYcAitYmzCW23OeXixucOvq9Ai5xJqRFHUIFShQpUrchn5eVW6UJF8SbcqlYJOi8hLmXZoO46SlHnLWB4/bfZrmC9jl5OvVFWxmBiScc8rjcGvubzR6Sw2LmHdZgmpavi2VcL4GqbWEKzSdDQc3ez3NRW61zIdQguaIcoKeq5OUVERZQXLUgTonlu//LDTkSDUCLYKTULMLlR5g0KLMQlXp8Le2ucawxHOEjUJUZlIGThIelyeOzWwSFFV1JhC6Baq9qCKE8ioq3SA1DXo+Mo4powvdFwyaDQpdYvm+v1MURp03FOGG/UVP1IUg5SKhZRpkLpqIJKh7qCwseEUlSY1plm0jxRFQ8xasgw1tE2Fqlg0ZNAeUs+QXI/SKjLGrm2Ol2mYKfdVFEasUH9c9Lux9AKCJGEyfP0BC2bXX03yb5BYKWv+EIBbAdxKsgzg7QDWIqETVMpcFja1VTa9bYGvpgLJJPG5kL+wTr7W2RJWZLuQcIm3IJloap17AOwG0E2yEFaRta2prvO58O9Okt9CQpfoB7AYwMNhz+BCAA+RPH2Ka4GZ/TuAfweqP1AqL8MWAPeZ2SQSWsY6JBPmB+r1KVIsIl5x0MlxxCsbOjmOeGVDJ8cRrzykpNMiXm64GgkHFwBA8kySPSHdCGA5Ek7yagDNYQW1Alkdwm0AVgRlisVIJof3B/e9QZJnBH7x++F839sAVBQq3g1gdbC0vhPAOSR7Ql/OAXBnOHZ3KItQV7nDzwPJNpIdlXRo6zEze9TMZpvZIjNbhGSC+9rgyFf3WkIbs8O/PQD+JxILbSDZwHh2ODYTCeWivqYf4gpyRERERERERMRLhRaSa+XzHWZ2hRYws9tJ7pKsYwFcGyazOQDfBfBNMzOSFwC4huTHAOwCMIxAzzCzx0l+A8ATSDazXWbuTX8pgK8AaEGyOa+yMfDLAL4aNsHtRbCxNrO9YWW7svr6ycqGvXC+VSRXAvh5aAMk5yJZze4EUCb5YSST+5kAvhVWiQsAvm5md0w1aAe4lr8nWRFi/6SZVUwYKpP6J5CsKv+/ZpY2VhDECXJERERERERExEsAM6vL7TCzs2o+nybpmwDclFFvG8IkNuP41UhWpGvz1wA4uU7+GID3ZLR1A5INg7X5G5FQJGrztyNN5ahgP4BX18mvrb+o5nPWtbw3o74B+Ej4OyDiBPlIx8MfOjzt1KjF5RsCZ23S+WRFoXA2zvXvhJFB56WVS8KRFfe1xrnezv79accnE101jnidmQWRkOof8DJz5nm+ykwNikNdwdlHoyJvtlO4wF3ixNYgTIH+wjTkf2RclN43Pult7p5wPquy8uYO1X9tJ4V3rHJuaWk3Oa/smyiLAkEpxV9W/p23M6ntCwlS+Xojkj8s/Ohh4XCOIC3zti/vz4XcfrDs7aqrIIUTbuPSVrc7IRb3Opm9oUPq6olVYizF11QpKnUjk//TMqSybMy55bbT1YTYIdJoWle5qhlOfan8LPmwLEezLOQy+KLCRU9dl7Rp+wdT6dyiRV4ni9s86Xzmot4E5VdnXY/em9S4129HnRCxV+T+unwfQubbqlxddVQsyVjkRW4sSz4tg6c7lcTaAftzsPlZbntZfOfn1Z+6a9PuU2b5DLk45b5ntT+NvuXb5S7r97M+T/n6fS5HdZYjFpGDHBERERFxyEhNjiMiIiJe4YgT5IiIiIiIiIiIiAgB7QWED/r6+q5as2bNVYe/OxEHi0O9Fxu+teKwxI+WXrgqFak8blafAcD8pu5q3oiE2cfL6dD6gaB0gMmacKEe6yz4ht22nIdFG0WWTGkDu8UVrCmjzK5JDyNruE3pBLV9qqCrwfszWvIwfpf0U8dCXe+y5NkUefmNOzDpHBZ1xlPHvDGRRBoWp7NmCeNPSJlZrU4HGJd87ZtSLzoanBZSlvui3zMNOQ/rTtY8B9qu1j+62aXRZhWcYrO/7ON1Ut5lxTaWfSwKEkQvSpsNcq5mkaSbgMhjSd2ZdJrApMR1l5pTI9ok3Dsht0ypOYoHSy59qPesPe/nGpf8kwp+jctKPo5zhSr0pLAKjp30Tvyg0cPVBXluJuRa5sIrN8i1r7cRyc9eV+mUd2i7+fN1FP15ny2Uy/nCsXjL/G3V9C+ecQrEpPRjUELri3LihChUm+ZGH6+nR1yZoSztLCh43c4O72d7jz9P48N+LfsG/Lnu7PTy+/Z5/tLf9ve7uMPHOtdZnxI1+ISPe/sS+RpWickRkS4UY0KlDNiE1S2TU+0CVeab6fd4ZL1I+ZXT3zGNPWWpI1QMpaVNeJl8r1KE5BqGxfFwTN6tRn+O7vq+SxZ2yfO+V+QdT2xyR8kZc/x7W13yVM5Nx6j9WqfJ/vvJH6+mf/OUrdX0g4849e7S4pPVdGeDuJ7K99Wm/Tu8D/IdW/sfanFi66/Eci/i8COuIEdEREREHDJ0chwRETE9kCzVOOldEfLvIblGyvWRvCekW0l+jeSjJB8j+WOS7eHYHJJfJ7kxuNLdS/JCaedKkhtIriN5ruSfFtrbQPLzQSEDQUbt5pD/M5KLpM7FJNeHv4slf3Eouz7UbQz5J4T+jJP8aM04fChcy+NB3aKSf7OMzaaK4gfJBpI3hj4/SfJKGZvvknwqtPUpaesjJJ8g+QjJ/yR5zFT3Jn6j/Zqir6/vCgDNtflx5T8iIiIiIuJlg6mc9GaTfJuZfa8m/0MAdpjZKQBA8ngAk2FS+20AN5rZ+8KxYwC8M6SXI1G4OAnAfAA/IHlckEe7Fonj330AbgdwHhKptw8A6DezpSRXAPg0gItIzgDwCQB9SBbOHyR5m5n1hzLXmNkqkteFNq5FIhP3QST2z1WQPBnAHyNRvpgAcAfJ75rZejO7SMr9LRKrayBR1mgys1NItgJ4guS/AtgJ4HNmdneYmP+njOHPAfSZ2UjQiv4MALX2TiFOkH990TydyfDHb115WE626sL05+awO7pVaA4FdWjLe2hSHeC0fD6DVjAkNIRaaGh6Qc5DYxpmb9bAibwBTRJmbxN3uJFU/+rv+i4JhUB7PVvoAOMFCcvnXGVhn2hUPFNyOoeGslNjJ+1rP+8reti4IKFoTat7ntIZmmQ3e9l8DJtlPLUdddtTVQMNR6bUM0QZo0Xu8YSlx1OpMKrKsa/k17a8wR3nZuS9reVFuZkFH99muSNKdJhXlvstcdEuscvak/e6vZLfL/knT/rz2JL3ezlQ9L4Ny3jppvtcc281PSmyHTOFhjAh+c2i2LJg0ltakPPYelnUT45r8OdppOh0AxF4QaOkZ4kyxpC8f+1NPp6dcgGP5iV8jrSToiqdbIfQeej9G2rw8uc1efkGqgpL/bFTKsWeEV8LaCz4XW4zDX2LW6TYNDY0ikvlLD9DY5dcm6qo7K+vojK41q+xscPzi/v9+yMnSxZjg/6hZcjrmgiqTAzK+yo3qjQmCj8z5BtHrqskqkHFUVXM8BNMjPg7UxxPqzg09fpzXd7vY10WSkeusT6VQqFKQeUxUbyRMsc2eGdnzHT6xJbnuqvp2Uf7s9x8lNcu7q7vkqdqFUqr+J3H/P+8zb/lfhpjGfQupT5lUekUh5lP8VkkNtO1E+R5SIxBAABmtg4ASL4Zia30dXJsM4CK1e35AFaZ2TgSJ7kNAE4nuQlAp5ndG9q5Cckk9nuhzlWh/i0Avhgm4ucCuKuifUzyLgDnkVwF4E0A3hfq3BjqX2tmOwHsJPmOmus5EYnD3Uho678AXIhkAouQRwC/F9oGkq+cNibufi1IJtb7Qxt3h2ufIPkQgrScmd0t57wPwO9jCkSKRURERETEISN/uKcGERFHBlpqKBa6onkvgHGSZ9fUuQHA5YGusJLkspB/EoCHpjjXAgDPyuctIW9BSNfmp+oE6+h9AHqnaKsXwEAoW9tWFh4D8Fske8Nq8Nv//+2dedgcVZm3718WAkkghLAbIEAEQUWFgDjisMriDIsjDoyOooPLuHwyOvO5jH7CCCguI44KKMMijKNRQCWO7OuACiSEQNh3QiJIgLBvWZ7vj3Pe9Hmbru56u6q7upLnvq5zpbqqfvWcreqtnHrOcxi+jDTAOwij5vfE3+cSFkF5BFhAGDV+MhVIWhc4ELi8hc0jefV/PIbhI8j156UZM2Yc02L/tFZuFu5i4TiO4zj9QdLHCK4LQ5xqZqcmv9u5WAAcRxhF/sLQDjObJ2krwpLM+wCzJb2the2TgN0Io8o703qA29rspwtNu2u1xMzukPRN4FLgOeBmhof/B/g74OfJ710IHwU3BSYD10i6LC5SQhxZ/jnw/aF9Q0j6e4JryO7t8uUvyDVnzpw5J7TaH1+aO7pZHLf9V9odHgEzh/1aM35Gf5sas+7vTT4Dpy4JT6vxaW7N5FN06mKQRg14WcPvm3Shis0St4otE1eBLZY27I1fkbhDrLnOyu3UDWPD5PP7ndZYYCDNd5YLyPI04oaln40b5RmflO3x5Jz0c94aiXvDK8mn4vQ6ab2kbhjpYh9pFIvU1eGZl5OZ/OOSqBpJtIoJSVSKV5LP72PTT7kZrhTDFx9pnJP1+RJAyez39FrrjG7k7y3LG/VyR+LS8IZljf61XnLO4uRTa7r4SPr5bNrS1lFVNlmeRBoY2zhnWbJYxPQ3NVYqHbthushIY/PJeUnbT25cZ/G9rRaVgqlLG2VfPKbRrge+uTFgM26HRqSHURtvuHJ7u1vuW7k9evqmK7c3nJUO9jRYnkS6WOe1ySIgyaf07ecn0VhearjF7Lx0+EfI1O3hvlca99aOUxsz/idutmTl9oXXNwaJ1j32/Su3Z9zaGATT5MYzZNjCH2Mb+Zi+TsPthmefWrm59Z2NaAQrFjXu49HTG3Y1KVm4Ze1GntPFK8Y/8qeV2xsnfdT+/Hjjmgf+Q0Ob3EPDFzpp5HnCiw2XgWELhazVcIVhRbqK0POtz0kWpNH4dRNbyYIbzzcG1tJn3lqP3NM4f62GG00zmpjU77LExS3NX5qnlHSxmsQdKa2LbXealVyn0TbrP9HoK6O2TQZRN2qcMy55LmlC0pZJ+d+x8Psrt1O3ii3+95SV2+sd+eGG9toW5SA7mlA74svwqR1PzNZfobCk865N+58DfgX8StIKwqjrPOA9yTmfkrQ+YXlnCKO56cjsVOBPcf/UFvtTzcL40jmJ4Eu8ENijSXMV8DiwrqQxcRQ5vVa7cp5OY0nqr5OMaEe7fwPslEjeR1iWeynBbeP3hJfeoZfhU4F7zOx7qR1J+wBfBnaPriaZuIvFqstLwLSqM+E4zupB+nLsOE6pHA98fuiHpLdLYfQpTkTbnuCTfAWwZpyANkQa8G8WcHiMTLEl8Frghrg89bOSdo2+vh8Ezk80QxEqDgWuiEs2XwzsK2lyzMu+wMXx2JXxXKJ26FqZSNow/rs54WU4HS3eB7jTzFI3kAXAXgpMIPwH4s54jeMIL/L/1GTjLcCPgYOiP3Rb/AV5FSWOLD849HvGjBlfzHDFcBzHcRynGpp9kF/1VdjMLgAWJ7u2Bq6WNJ8QmWEOcF58OT0E2F3SA5JuIEyS+0K8zm3AL4HbgYuAT8UIFgCfAE4D7gXuo+GfezowJU7o+xzwxXitJ4FjgdkxfS3xAf4C8LmomUJjZHhjSQvjdb4iaaGkoU8a50m6HfhtzFfj80GIvJG+MAOcBEwk+C/PBs40s1skTSWMEG8PzI11+pGo+XbUnBP3z6IN7mKx+tDS3eIrB5YUxaLp99CiGwsS94kXrDHClLoMvLAimf2cRDjoZs7P88l1H0tcMZaPTSIwJP8vfJ7Gp9Bnk/y9kORDyWe1NEvDXRpaj56lLhCJZwfPqpHPMcn1MxcEGZaH5Hxaa4dFmUhm2qd5ThcHSaNYpNdJzx87LDJG49GhpM7TvKV5ThdzWSPRNrtYpJE1Ul5IIpc8kEQdeCmJS/FgEiLgheQyLyZVmnoEpNEYFiSf65NgCjyTTOwfv6LhtrFW6mpzaxJVY3LDbeX55xr1+9BLjc/Xaz+aRIpoXJIloxqGxyWRGx5LntIP39r4hDzqtsZ9s8HUu1ZuP76oYWvdWxoDLvMe3mjl9qTEvW+pNSplkyVJ6IOEZ15M3H0S96PrxiUFWAEvp66GySEtbNievLBxzy1I5ddds3L72QtXTtBnwvaNdl0yp6Fd9y2NfLz8YKN/jNuqcf4jVyeLwYxvaNd++M6V26OThTxGTWj0A01qDLwtvbfhopBGZUhv+7UmNP7Wrnjy6ZXbo9ZLPvuv2cjb8tsabpGjt0m+eicPCnuhseAIY5N7bq0kksbaDdeG5Y82BsWUuOakC3ewRqNfrljYcH3RpIZ7GgCvJK4LU9Zt5OnZ55L9iftLeu8uT54JExv90V5slEfJPffC5Q1XjzQSxfP3JRFynmnYHbVxa3chS8s8urGdLgKSRqtI3SrWPv3MhnbbQxpFSd3DulhYrRNmyc0+fP8eTb93SrbPBs7O0D1CeKHMsnc8YUS6ef8c4A0t9r9ECKnW6lpnECYMNu+/n+Aj3Lz/UYa7cqTH3tEmzx9qse+5VvmKo8wt/5Ca2T5ZNlrhL8irNukEvmkV5sNxnFWcl9vPw3Ecx6kV/oK8CpNO4BtysfAoFo7jOI7jOO2RdfHJwF+0Vh2+f+/hpQz7fGb6zGGfNDZedzuD4Z/cy8QyRquU4XKQRVmfzPLkJyUrb0Xyk0Z9SO/r9JqWEVlidEaQ/DXSmfA58pblIpFec1QXfSJ1AUnznbq/pNdNz0lRF7PQR0JW2bLKn/X5Nqt/ZOU/veaKkkZy89RnN6RlGDvMTal1pJMijLSvjbR/ZN0T6XWKnDOIZOU7q+4GoWxZz7cs7r3rNyu3t9zmoJXbaVmeSKKQLGuzgMiyVxZ5gPCa4pP0nNqR9TLqOI7jOI5TBn13sWi1eIXTP3zk33Ecx3EGA0nLgfnJrplmdoKkq4CJZjYjnjeDsFrcHnG1uf8EdiBMSHsK2N/MnpO0EXAiIezZEsISzN8ys1/H63yJsIrccuAzZnZx3L8T8BPCss0XAEeZmUkaR5gQuBPwBHCYmT0YNUcQFjEBOM7Mzor7tyTM3V+PsLLfB+Kyz++nseDJc8AnzOzmqNkf+A9gNHCamQ2L5iHpXwhRKDYws8fjvh0IYdvWIaxEv7OZvRTrbhNgaFbovmb2mKQPxWssivt/aGanZbVNFT7IHRevcBzHcRzHWQ1ot5LehpIOMLPmJZGPIiy7/EYASdsCS2MM498AZ5nZ++KxLYCD4vb2hAgXryesQHeZpG1iqLdTCCv+XUd4Qd6fEOrtSGCJmU2XdDjwTeAwSesBRxMW5zDgRkmzYni2bwInmtlMST+K1zgFeICwQMcSSQcQFvN4q6TRhLBt7yQsEDI7Xuv2mO/N4rEFQxUQFw/5KeHl+2ZJU4B0xaf3x8gczfzCzD6dUd/D8El6qznvar2AWGHGxJBgWT6pKXl81FL/tnb+kKm9PP6HWf5oWT6dI/Wny/LXy/KJG2ldDCNxg0tDu2X5HScR6BidrOSljHzmcW0Zk4SCG+ZTm5yT+tc2+1xnHRs7quGDPCaHv/foNPRcWoZh/stJmTP6SlrmkfqTp2T5lqf5TBlpnrPqbVTGfZNnbkCqXZaE48vKW6djrc6ZOKbxMfGlZPW5tN6z6i5PvaflLKsts8jjQ96LMGG9Ik+fKsKwuREZbZOnzVKy8rzW6EZou+bQkkOk90fqd/zA3Y3wfdOT8G9Zdkv2uf42YYS2+QV5E8LCIEM27wKQtDdhWekfJcceAn4Qfx5MGKF+GXggxineRdKDwDpm9sd4nbMJ8ZQvjJpjov5c4IfxRXw/4NKh2MeSLgX2lzQT2Iuw0h2EOMzHAKeY2R+SMlxHI+TbLsC9yTLRM6Pd2+PxEwkLpaQLjuwL3DI0Am1mT1Aypb4g53SfmFamTcdxHKd6lOM/w47jvIq1JM1Lfn/DzH4Rt/8IvFvSnkCyNjlnAJdIOhS4nDBifA9hZHgu2byG8GI6xMK4bynJ0s7J/iHNwwBmtkzS04TFP1bub9JMAZ6Ky0w3XyvlSBov/q2u9VYASQcBi+IocarfBjBJFwMbEF78v5UcPzO6r5xHcP8Y+p/LeyT9JXA38Fkzax1Um/JHkDu6TwzF5XVf5Gpw9xbHcRzH6Q+SPkZwXRjiVDM7NfndzsUC4DjCKPKQ7y5mNk/SVoRR1H0ILglva2H7JGA3wqjyzrReQMPa7KcLTbtrDeVrT8IL8m7tbERf6y8TytnMmKjfGXgBuFzSjWZ2OcG9YpGktQkvyB8g+FH/Fvi5mb0s6R8Jo9t7tbj2SgP9Zmjximlz5sz5UAX2nYSv3F7SSnrbDf89FPYm/dSfkudTY57Pbs0sT/wGUreBTBs58pHnU+CKjNBjw1wp0tBro1q7QBT5BLs0+XSYFdptaRKOaFiYtxWtXSnST4epNk84s6y6Teuk2V0my/VkReKKsNRa5yPTDSfDjWHUCEOXZYZYs5G58gxr7ywXn4yQZ6Mzz2/tEpTuzxOqbVgZE1PD2jIrHJstz+wXw6/baI/nlzVWwMvjwpO6bViOIExZbh7D85a6F5XzeX95jvt4pC4v/caGPd+s4/48biVZLhBZbT9Sl6jlGdX+8oqG+86w51hWfpLt1K0iDf82ceruLc9vJr4Mn5p5QgfM7ApJxxIm3aX7nwN+BfxK0grgXcA84D3JOZ+StD5hKWoII7PJso1MBf4U909tsT/VLIx+v5OAJ+P+PZo0VwGPA+tKGhNHkdNrDU2sOw04IHGLyMrX1sCWwNDo8VTC8tG7RM3VyYS9C4AdgcvNbFEs/7OSfkZw4Ti7yQ3jPwm+0pn0/ZvYnDlzToijmA/227bjOI7TG7qJb+04Ti6OJ/jgAiDp7ZImx+01gO0JPslXAGtK+kSiHZ9szwIOlzQuRpp4LXBDXJ76WUm7Rv/iD9Lw950FHBG3DwWuiO4KFwP7Spoc87IvcHE8dmU8l6g9P+Z1c8JL/QfM7O4kX7OB10raMpbncGCWmc03sw3NbJqZTSO8FO8Yl6y+GNhB0vj44r47cLukMfE/BUgaC/w1cGv8vUli8yDgjnaVXuUkvXQZZKdPuIuF4ziO4wwMzT7IF5nZF9MTzOwCSYuTXVsDp8SX2VHA74DzYli2Q4ATJX0eWAw8T3TPMLPbJP2SMPltGfCpGMEC4BM0wrxdSMM/+HTgv+KEvicJL6+Y2ZNxZHt2PO9rQxP2or2Zko4DborXAPgqwUf55DgivMzMZkTf5k8TXnpHA2eY2W3tKi1GwvhutG/ABWb2O0kTgIvjy/Fo4DLCaDHAZ6JP87JYlg+1s9HtSnpZ/sPuNlEzDr/3slKm3M6cvs+w4aMxa7zGIN+M516tNJVnVaw8NjL3Z10zx/XLWnUq6/qDPFc+LXnefI5NVvRbnrFqVT9X+MrTt7Ioa5b7SPOQVSd57r/cecrpCjXEqGFRL7Lus5FFOBjpqpZ5GKm7xaBdf6R56Hc+unGna3V+r0nz89zCq1dur7XpOzI1vpJefelqBHnOnDkntNrvI8KO4zirJ4PoR+s4jtMtPXex8GgVg4W7WDiO4ziO47SnHz7IvnLeAHPcOZmrLI6ML+3TcneRqAxFP0Xn0vcgcH96xZG6bYzYVo0WHhiimxwvXd46uH+KslxMUteCkvKUaSs9p4CtXG4oGeXKk59c92WW60WevOVkBa2jTIy0jnpNmp9e2O3n9fNSVf1mUVV+shYBSd0qXvzTNS33O/Wm7BfkVhPvppVsw3Ecx3Ecx3F6RqkvyK18k2fMmHGZ+yYPDj6a7ziO4ziDQVztbX6ya6aZnSDpKmCimc2I580AvmNme8QFNP4T2IEwuP4UsL+ZPSdpI8LSzLsCS4BXgG+Z2a/jdb5EWKRjOfAZM7s47t+JRhSLC4CjYlSMcYRFNnYCngAOM7MHo+YIwiImEFarOyvu3xKYCaxHWNnvA2b2iqT301jw5DngE3GFvDWB/wXGEd5LzzWzo+O1vg0cGMtxH/BhM3sqRqk4jRD7eAwhzvE3ouZ4Qqi6yWY2ManrzLK0oh8uFmP8pWz1o+NSOh3ObT6/3ee1EX8eH+H5RcgqQ1aesz7n5bn+IJBVxnZlH6krwkjbr2j/WnlOVpSMHOdnuTSM1DUiD0XKm6fN2l0nTxmGfb5OFvNZsWJFy/PzXD+LPOXJFXUm4/p52njY+SPcP9I2G6mtbp4fRdxBMus93S4YvWgkdnNpc+Qhy90iJ+1W0ttQ0gFmdmHT/qOAP5vZGwEkbQssjWHffkNYevp98dgWhJi/SNqeEKbt9cCmwGWStomh3k4hrPh3HeEFeX9CqLcjgSVmNl3S4YTFNQ6TtB5wNDCDUMU3SpplZkviOSea2UxJP4rXOAV4ANg9hmg7gLCAyluBl4G94gv+WOBaSRea2XXApcCXYii4bwJfIrxkvxcYZ2ZvjP9huF3Sz+ML72+BHwL3NNVby7JkNUw/Fgp5sA82HMepIR73YNVh0KamwqIAACUmSURBVP6z5jirAN+mMUKbsgmwaOiHmd1lZi8Tlk1+xcx+lBx7yMx+EH8eTBihftnMHgDuBXaJC2isY2Z/jAt9nA0ckmjOitvnAnvHF/H9gEvN7Mn4UnwpsH88tlc8l6g9JOblD/FcCC/iU+N+iysDAoyNyeKxS+KKfMM08fiEuEjIWoQR5mei5rq4+EkzWWVpST9GkO90F4vBwUfzHcdxHKc/SPoYYWR2iFPj8tNDNC8U8g0z+0Xc/iPwbkl7As8m55wBXCLpUOBywojxPYSR4bltsvMawkvmEAvjvqVxu3n/kOZhgDiK+zRhsY+V+5s0U4Cnkpfa9FopR9JYjARJo4EbgenASWZ2fQvNPwBDdXMu4YX3EcJqgZ9NFirJIqssj7c6uecvyFkxkx3HcZxVB+GjyI7TTHwZPrXNKe1cLACOI4wiD/nuYmbzJG1FWN55H2C2pLc1CyWdBOxGGFXemWzvx3ZekSPVdPSwjC/8R8a8hROCm8ebJa0L/FrSG8zs1kTzZcIKeP8dd+1C8KPeFJgMXCPpMjO7v4X9lZfplLfhR8w8eWqbgI/1U1dUW6Vt13obu3YwbLvW23gQtS2u9VzG/quAGXH798Cngasyzv0h8M/A3sDVTcfWBx6M218i+PMOHbsYeBvBZePOZP/fAT9Oz4nbYwijrUrPicd+HPcpnjMm7n8bcHFy3g6EyXbbtKmTo4F/SX4fQRhNH5/sO4kw+W/o9xnA37ar26yyZOWjHz7ITv35WOdTStUV1VZp27X90VZp27X1sO3a/mirtF1HbTccD3x+6Iekt0uaHLfXALYHHgKuANaU9IlEOz7ZngUcLmlcjDTxWuAGC/66z0raNfrkfhA4P9EcEbcPBa6w8IZ5MbCvpMkxL/sSXoQNuDKeS9SeH/O6OfArwovt3Ul5Nogjx0haizAqfmf8vT9h9PwgM3shKcsCYC8FJhCidtzZoR6zytKSfvggO47jOI7jOK+m2Qf5IjP7YnqCmV0gaXGya2vglPgyOwr4HXCemZmkQ4ATJX0eWAw8T3TPMLPbJP0SuJ3grvApC64NAJ+gEebtQhr+wacD/yXpXuBJQhQMzOxJSccCs+N5X7OGD/AXgJmSjgNuitcA+CrB5/fkODdumYUwdpsAZ0U/5FHAL83sf6Lmh4Twb5dGzXVm9o+EEeQzgVsJo9ZnmtktAJK+BbwPGC9pIXCamR2TVZYs/AXZcRzHcRynAsxsdMb+PZp+75Rsn02INNFK9whtXvzM7HjCiHTz/jnAG1rsf4kQUq3Vtc4guDY077+f4CPcvP8jwEda7L8FeEuGjekZ+59rk6/Pk4y4J/szy9IKd7Fw8tBugkEvdEW1Vdp2bX+0Vdp2bT1su7Y/2ipt11Hr1AS1cb9wHMdxHMdxnNUOH0F2HMdxHMdxnAR/QXYcx3Ecx3GcBH9BdhzHcRzHcZwEf0F2eoak9SuwOVnS2v22WzX9rutBqOciZZa0Y5l5GVQkrTcUL7VOlNG/qnj+VEHRNpa0jqSdur1GUX0Rqmrj1aVvre74C7JTCpIOkPSApGslvUXSbcD1khZK2ruD9nWSLpT0O0lbS/qJpKck3SBpuxy2N5V0dlxX/XHgNkkLJB0jaWyBMs3vcHwzSTMlXSPpX1Nbkn7TQ22Ruv6HZHuqpMtjXf9B0jYdtF3Xc5HyllDmHZvSTsCseJ2uX5Rz9I8idf2kpNMk7R1jnY4kX5vHul4MXE9YhvaxuG9ar+yWkO8i/atI/yiS56q0Rdr4p4oveJL2A24DvgnMk9QxBFYRfcF7okgbV/K8dWpOWcslelq9EzAP2I6wrOQTwK5x/3bA3A7a/wUOJCxT+RAhhqPivstz2L4C2CNu/w1wIjCBsIb9qR20f5OR3gMs7qC9FPhH4M3AD4A/AFPisZt6qC1S13OT7V8CHyf8R/ndneq6YD13Xd4Syrwi2rsySS/Gf6/oYf8oUtd3EZaW/T2wCPiPoTLnqKs/AocBo5N9o+N9dV2v7JaQ7yL9q0j/KJLnqrRF2nh+sv0HYFrcXh+4OYftrvUF74kibVzJ89ZTvVPlGfC0aqSmB9/DTcfmddDelGzfm3XdNvqbm37fmGzf2UG7lLB60Jkt0rMdtPOafv89YTRl6xwP7CLaInU9t00ebuqgLVLPXZe3hDIfClwNvCvZ90AnmyX0jyJ1nWo3JwS9nwvcD3y9g/aebo4VtVtCvov0r7LuiZHmuSptkTa+DVgnbl8LjEqP5WjjrvUl3hMjbeNmW3153nqqd/KV9JyyeErSx4F1gCWSPksYIdgHeK6DNl1J6LtNx9bIYXuxpL8njEC9B3gQIH627ORGdAvwHTO7tfmApH06aMdKWtPC6jyY2U8lPUpYo35CD7VF6nqqpO8TRug3kDTWzJYO5amDtkg9FykvFCizmZ0r6SLgWEkfBv4ZsBw2oVj/KFLXKz+5m9kC4FvAtyRtS4flUYEbJZ0MnAU8HPdtBhxBWPa1V3aL6ov0ryL3RJE8V6Ut0sb/Blwp6STC6PU5ks4H9gIu6qAtqi9yTxRp46qet06dqfoN3dOqkQgP5x8DpwAbA58lrJH+O2C7DtqPAxNb7J8OfC+H7c0JD6xbgZ8Cm8T9U4D3dNC+A9g849iMDtrPAru32P8W4NIeaofq+kdd1PURTWly3L8xnUetitRz1+UtWuam67yZ4FrxWM7zi/SPInX93bxlaqFdA/gE4WVlfqyni4BPAuN6ZbeEfBfpX0WeP0XyXJW26zaO+ukEv+FfA7+N9bbfCOy/tht9wXuiyHOvkuetp3onX0nPcZzVijgiubaZPVN1XhzHcZzBxKNYOKUhaT9JRzbPok5nLmfo1m/6/feSvi/pYyOd3Z1c44qc531X0tu7tNG1Nur3lPRDSedLOk/SCZKm59TuJ+kUSbOi/pQ4o7yneW5xvbz1vJ6kr0r6iAJflvQ/kr6tnOGhMupr6xy6YWW2QK6X44rbuCutpHdLWi9ubyDpLEnzJf1C0tQRas/Oqy1D3+J6eftX13aL9s2Me3H/fCXMvOZXe2W3hD7dXF//OsL6Kvue6PgMiNqu/j4l2hE/b5164yPITilI+jqwG2GSyYEE14gfxGNzzSwznFZ6XNJXCJ+1fwb8NbDQzD7bwfYtzbuAbQizxDGzHdpoFxMiZ2wA/AL4uZl18uErQ3sCsBFwOXAI8ABwN+ET6dfN7Jw22u8Rync2sDDungp8kDBB56ge5blIPV9A+BS8DmH293zC5/R3Am8ys4M72C5SX3Vs4yLa281s+7j9C+A64ByCz+T7zeydvdCWYLtI/ypit+u+WeRebIekBWa2eS/sFunTUV+kvqq6J74BvJ3u/j59jx60sVMDqvbx8LRqJMJDckzcXhe4ADgx/r6pg/amZHsuMCFujyUJKdRGP4vgs/g6YAtgGmHiyhbAFnlsE3zq/h9hZvOdwNHANj3UpqGSxgC/j9uTgVs7aO/O2C86z2Avkuci9TwvyeOiVsd6WF91bOMi2ruS7RubjrWt6yLaEmwX6V9F7HbdNwvei89kpGeBZT2023WfLqG+qronivx96rquPdU7uYuFUxZjzGwZgJk9Rfhf+jqSzqFzJIq1FAKw70SI6/l8vM5SYHknw2Z2EHAecCphBONBYKmZPWRmD3WSx2vcY2bHmtnrgb8F1iQ8RHulXTH0SRjYlBjJw8yWkMxuz+AlSbu02L8z8FKv8lywnkfFz6+bAROHPnNKmkK+SCVF6quObVxEe5Wkr0laK24fAuHzNPB0D7WF9AX7V5F8F+mbRe7Fp4DXmtk6TWlt4JEe2i3Sp6FYfVV1TxT5+1Skrp06U/UbuqdVIwH/Q+tZwscBKzpor2xK6ez1OSPIwwRCmLhZBNeMPJqbCpS5iPYwwmfOS4AFwF/F/RsAP+ug3ZGwetbtUX8JcEfct1Ov8lywnv8O+HNM7wEuIwTvXwR8rMf1Vcc2LqIdCxwTdQsIC6U8S3BbahmRowxtGfoC/atImVv1zcvy9M2C9+JxwC4Zx77ZQ7td9+k29ZXrXq7wnijy96nruvZU7+Q+yE4pxJEbzOzFFsdeY2aLurjmaELIohdGqHsT8DYz+1GOcyeaWVexLItoo349YCvC4ihPdaHfGHgNYfRkoZk9mkNTKM9N18pdz/H80YR5D8skjSGEXFtkZp1Gy4b0XdVXXdu4aP+I15hEGD17op/akvQj6l9F7JbQN0d8L5ZBVc+AIvVVxT1Rxt+nqtrYqQ5/QXZKRdIMwqe3ZQT/rDtz6jYHnjGzp+InuxmE1bNetUBDzut90sxOHsH53eZ7FICZrZC0BvAG4EEze7KXdpuuMZEwieT+vH80NDxA/9C+9c3s8R5ru63nHcyseRJXLmK7LLX4sIuf3XcEbjezC3Pou25jSQJ2IfxhNeBPwA2W88FbpK6bNLnvh4Ll7bqdkmt020e6rusiz5+q+kfRZ0/GNV/Xqb6LtnG3ZS7BbiVt7NSYqoewPa0aCdgdmEP43LaE8Enr98BVwGYdtF8kzEi+E/hI/Pd0wuSRz+Ww/bkW6fGh7R7m+xDCZ8ZHgIMJn9yuIMx0PrCHdk9OtncjfG68kjCh6V0dtHvG/C0mfCqclhzrtORqEW3X5Y365cC9wLHA9iPsmzfTWJDg/wJ/AL5C+Cz8jR628b4xzxcCp8V0Udy3bw/ruvle+OcR3A9dl7eEdipyTxSp666fPxX2j0Lt1Oa6C3rcxkXKXMRuJW3sqd6p8gx4WjUSYXnTDeL2lsCv4/Y7gUs6aG8D1iL4HD+bXGcCHWYnx/OeJYQr+iphJvbR8Q/s0cDRPcz3TYSVlbYkzD7fNu7fgg6+0wXtzk22rwR2jNtb5bA7G3h93D4UuAfYdShPPdR2Xd5E/wbg+PhH8ub4R29aDu2tyfYcYK24PQa4pYdtfEer/MVr3dHDui56P3RV3hLaqcg9UaSuu37+VNg/itj9fkb6AWGEtZdtXLTM3dqtpI091Tt5FAunLEab2eK4vYDw8MDMLiV8SmvHcgu+YU8BLwJPRO3zOW2/njCjeQLwbTP7N2CJmf1b3O5VvjGzR83sAcLIy1C81ofovAhPIbsJ65jZ3Ki9nzizuw1rmNlt8fxzCaMjZ0l6N3F2e4+0RctrZnarmX3ZzKYDHwU2BK6R9IcO2mckvSFuP06YrQ/hBbnjM7BAG4+hETc1ZRFhUlk7itR1kfuhSHnjqV23U5E+UqSuCz1/KuofRex+mLBU8o1NaQ7wSie7FGvjImUuYreqNnZqzJiqM+CsMsyRdDohiPvBhM+iSBpP55e2uZJ+RviDfjnhReAiYC/CzOG2mNkC4FBJBwOXSjqxT/lG0igzWwH8Q7JvNJ1DBxWx+zqFRRUETJM02cyWRD+5Tn9klkra2OIEEzO7TdLehM/ZnVakKqItVM80hXEysxuAGyT9M/CXHbT/CPy3pJuBx2JergZ2AL7e0XD3bXwGMFvSTIL7CwTf2sMJn3fb0XVdF7wfipQXirVTkT5SpK4LPX8q6h9F7M4mjJq+6qVS0jGd7FKsjYuUuYjdqtrYqTE+Sc8pBUljCf+j357w6esMM1seZw9vaG3imMZZ0O8ljIydS5jA8T7CKNJJIxhJHvpj+m/AW82s00OzaL53JgSvf6lp/zRgNzP7aY/sbtG06xEze0Vhye6/NLNftdHuAyw2s5ub9q8LfMrMju9COwn4dAdt1+WN+veZ2c/andNBP5rg/7gNjVGsi63DpMYibRzP2x44iGT2OzDLzNr+US7STk3nj/R+KFrertuphD7SbV03P3/eSghl1vH5U0J9bUf4z8BI81zk2bMe8JKNMDpQoi96L3Zb5iJ9q+u/MUXb2Kkv/oLs9AxJU6z7EE8bmtljZefJcaBw3+xaWxV+P636eBv3D6/r1QP3n3FKQdIJcQQTSTMk3Q9cL+khSbt30K7XnAifziarsXJSO/3Gkk6RdJKkKZKOkXSLpF9K2qSDdq6kr0jaaiTlbdJ2ci9opV1H0jck/Zek9zUdaxuOK6O883OWd1JsqzslPRHTHXHfuh20XZe3w3XzhFrbP9meJOn02MY/k7RRB22RvllEW6RfFmnjru+nIv0ynlOkfw1p7+hCO1FhJb3bJD0tabGk6yR9KEeed5Z0paSfStpM0qWSnpI0W9JbelXeDtdte0+0aOMp5G/jQnku0jc7XLdTmWe0aKenc7ZTkWd113Xt1Bt/QXbK4q+sEZv128BhcSLFO4F/76B9nFdPGHkNMJcwcaQTPyH4kT1MiOrwIvDXwDVAp0UGJgPrEpanvUHSZyVtmsNmqr2yC+2ZhM+L5wGHSzpP0rh4bNcO2p/w6vL+FfnK+0tCRIM9zGyKmU0hhBRbApzTQdt1eSXtmJF2Iiwy0InUV/jfCSGXDiT4U/64g7ZI3yyi/Qnd98tW2rxtXOR+KtIvoVj/GtLu2YX2v4H7gf0ILiXfBz4A7Cmpk5/5ScC3gN8RQgD+2MzWJURI6PSfgq7LW/CeaG7jOeRv4yJtBAX6ZsEyn8yr22kS+dqpyLO6SF07dcYGIJSGp/onQlzJMXH7uqZj8zto/4UQC/ONyb4HRmD7pmR7QdOxeR20aci0dxAetI8SHvydlk0top3X9PvLhJivU+gc57ZIee/q5lgJ5V1OiB16ZYv0Yo42Tm03112nMhfpm0W0RdqpiLbr+6lIvyyhfxXR3tz0e3b8dxRhMYhu6/qmDtoiee76nijYxl3nOUd9deqbRcpcpJ2KPLsK/X3yVN/kUSycsjgJuEDSCcBFkr4H/ArYG5jXTmhm31GY1XyipIcJ8VpH4hyffgk5u82xtpjZNYSQQf+HMEJ4GHBqj7Tj1JgZjZkdL2kh8L/AxA7mipT3IUmfB84ysz8DKLgofIjGrPKOdFHeO4CPm9k9zQdim3diQ0mfI4xuriNJZjbURzqVueu+WVBbpJ261ha8n4r0SyjWv4pon5e0m5ldK+lA4MmY/xWS1EH7kqR9gUmASTrEzH6j4EKzvId57vqeKNjGRZ8BRfp1kedAkXZayUifXSX8fXLqStVv6J5WnUT4TPcLQmD1+YTVkj4OjB3BNQ4ErgMeHYHma8DEFvunA+d20M4sUN4i2m8B+7TYvz9hed1elXcy8E3CyOiTMd0R963Xw/IeSgyw3+LYITn0RzeloUD/GwNn59Dv0aJvfixP3+xWW7CdutY2nT+i+6lIvyyhfxXR7gDcADwNXEtjMYcNgM900L4JuDi26+uA/yDEy70N+IsR5nnJCPJc6J4o0MZd13MJ/brrMhdsp66fXUXq2lO9k0excAYOhbBOW5vZrVXnxXHqjt9Pqz7exv3D63r1wV0snNKQtAthtaPZCjFJ9yf4/10wEi1hSc99JW2eRxv1r6MRW9OAPxFia96RQ7s18G5CwPplhGV9f25mT/fKrqS3EpZWfSY+cL8I7EiY/PL1draLaFtcazdCTNBbzeySHOe/jlDW683suWT//mZ2UV67UXO2mX1wBOdXYruE/lFKnhPth83szA7ndHU/ldm34vW67V/XWRKbNk99FXn+ZOR5voVV/NqdW6i+yn5+SMrz/FiDsDDHIjO7XCFayV8QRpFPNbOlHWx/BviVmbVaEa8jZbVTvFY/7+Nh7SRpeZ6/L0598RFkpxQkHQ0cQPhP16WEYPtXAfsQFmRot4hE19qo/wIhsP9MGsuYTiX8EZhpZie00R5FiCxwNfAugl/pEsKD9JNmdlWP7N4GvMnMlkk6FXiBEMB+77j/b3qkvcHMdonbHwU+BfyasIjGbzvk+TPx/DsIM86PMrPz47G5ZrZjG+2s5l0El5wrAMzsoCxtlbaj3QPprn90ned2SFpgZpu3OV7kXuy6b0V9Vf2rSJmL5LnIvVjV8+O/CfU0nuCiMJGGX73M7IgsbdQ/DTwP3Af8HDjHGkuEt6VgOxW5jyt5zjs1p6iPhidPZgbBN3M04aH7DLBO3L8WcEuvtPG8u2nhD0pYBrSTP+98YHTcHg9cFbc3p/PM6CJ270i25zYdm9dD7U3J9mwavrwT6ByVYT7R9xCYRghxdFTzdTO0c4GfEvx5d4//PhK3d8/Zv/puu2D/KJLnWzLSfODlPHnu5n4q0rcq7l9Fylwkz0XuxaqeH7fEf8cAf076tzrV1VB9ESbj7UtYHnoxIcrDEcDaPWynqu7jrtvJU72Tx0F2ymKZmS23sHzpfWb2DICZvQis6KGWeE6rmJab5NQPuRqNA9aOthcAY3to91ZJH47bN0uaASBpG6DtJ86C2lEKAe6nEEaLFgNY+Jy9rIN2tEU3ATN7kPAH6gBJ3yX8cW3HDEIM0S8DT1sYsXnRzK42s6s7aKu23W3/KJLnjYAPEkavm1OnVfyK3E9F+hZU17+KlLlInovUV1XPj1HRzWJtwsvipLh/HJ37NAT3iBVmdomZHRnLcDLBVeL+Dtoi7VTVfVz074tTU9wH2SmLVySNjw++nYZ2SppE54dIES3APwGXS7qHRpiizQmzqj/dQXsaMFvSdcBfEmZyI2kDYqioHtn9CPAfkr5CCET/R4UQQg/HY73STiL8kREhVNLGZvaopIl0fgl5VNKbzWwegJk9J+mvgTOAN7YTWggbdqKkc+K/f2Zkz5+qbBfpH13nGfgfwmjqvOYDkq7qoC1yPxXpW1BR/6JYmYvkuUh9/RPVPD9OJ0SwGE142TxHYYXIXQluBJ0YVicWfJZnAbMU/KHb0XU7VXgf/xPdt5NTY9wH2SkFSePM7OUW+9cHNjGz+b3QJueOIkyseQ3hAb6QsFhAx/iYkl4PbEeYSHRnp/PLshv1awNbER70Cy3GJe21tsW1xgMbmdkDbc6ZShgBerTFsbeb2e9HYO+vgLeb2b/mPL9K2131jzLzPBJKup9K61vxej3tX2WUuZs8J+d2VV9VPT8UV5Ezsz8pLC+9D2HxjRtyaLcxs7vz2GmhLa2d+nUfR22hdnLqib8gOz1H0kRLZvD3S9sv2wpB9lfObi7hZaKS+qpjXY3Edh21de1bVeW7rvXVrXaQyltUX0ets2rjL8hOz1GHWfe90vbatqQ3Az8ifKJdSBhZmEqYGf5JM5vbC7t11DbV1aK4u3Bd5bFdR62ktwCnUHJ99bq8VeW7V/1rgPvHmxmw8hbVD6pW0g6ElfZeQ1ik5AtmtiQeWxkBxVn1cB9kpxQUlgFueYgOS9QW0VZs+yeEZVOvb7rmrsCZhJWfSrdbRy0F6qqo7TpqCXVSq74VqSTfrGb3IhWVt6i+jlrCBMRjCCvofQS4VtJBZnYf+SY1OjXFo1g4ZfF1whKmazeliXTuZ0W0Vdqe0PwHCsDMriOEiBrEPNexrqrMdx3rq8p7sap817G+6ljeovo6aiea2UVm9pSZfYcwMe+i+J8R/wS/KmMDEGvOU/0T8Adgp4xjD/dKW6Vt4PvA74DDCCtR/UXc/h3wwwHNc+3qqsZlXq36VsX5rl191bG8Na6vItqbgUlN+3YgrMT3RKf68lTf5D7ITilI2hZ40lqsqCRpI2szeaSIdgBsH0BjCdKh2c2zrPOSvpXkuY51VWW+61hfVea5qnxXZXd16x9F9TXVvg+438LofLp/c+D/mdlHs7ROvfEXZMdxHMdxHMdJ8El6TilIGgMcSVjbflNi2CHgfOB0C8HkS9dWaTvRHkISaqmPduuoPYQR1tWA5Ls29TUg92JV+a7K7mrRPwakzLXROvXGR5CdUpD0c0KIobMIn/oghB06AljPzA7rhbZK267tj7au+V7dtHXNt2vza+ua7yrry6kxI3FY9uQpKwF3tTl2d6+0Vdp2rbexawfDtmu9jQdR66neycO8OWWxRNJ7FZbkBEDSKEmHAUt6qK3Stmu9jV07GLZd6208iFqnzlT9hu5p1UjANOAXwGLgbkIInMfivi17pa3Stmu9jV07GLZd6208iFpP9U7ug+yUjqQpBP/2x/uprdK2a/ujrdK2a+th27X90VZpu45ap374C7JTGpImAfszfFb1xWb2VC+1Vdp2rbexawfDtmu9jQdR69QX90F2SkHSB4G5wB7AeMJyp3sCN8ZjPdFWadu13sauHQzbrvU2HkStU3Oq9vHwtGok4C5g3Rb7J5NjlnC32iptu9bb2LWDYdu13saDqPVU7+QjyE5ZiPDpqZkV8VivtFXadm1/tFXadm1+bZW2XdsfbZW266h1aoyvpOeUxfHAXEmXAA/HfZsD7wSO7aG2Stuu9TZ27WDYdq238SBqnRrjk/Sc0pA0GdiPMJFBhFWHLjazJb3UVmnbtd7Grh0M2671Nh5ErVNf/AXZKR1J6wHWzcOjiLZK267tj7ZK266th23X9kdbpe06ap0aUrUTtKdVIxE+Oc0kBFC/B7g3bs8EpvVKW6Vt13obu3YwbLvW23gQtZ7qnSrPgKdVIwF/BA4DRif7RgOHA9f1Slulbdd6G7t2MGy71tt4ELWe6p0qz4CnVSMB93RzrKi2Stuu9TZ27WDYdq238SBqPdU7eRQLpyxulHQycBaNmb6bAUcAN/VQW6Vt13obu3YwbLvW23gQtU6N8Ul6TilIWgM4EjiY4TN9ZwGnm9nLvdBWadu13sauHQzbrvU2HkStU2/8BdlxHMdxHMdxEtzFwikNSfsBhxD+l23An4DzzeyiXmqrtO1ab2PXDoZt13obD6LWqS8+guyUgqTvAdsAZxM+PwFMBT5ImMhwVC+0Vdp2bX+0dc336qata75dm19b13xXWV9Ojal6lqCnVSMBd2fsF51nCXetrdK2a72NXTsYtl3rbTyIWk/1TqNwnHJ4SdIuLfbvDLzUQ22Vtl3bH22Vtl2bX1ulbdf2R1ul7TpqnRrjPshOWXwIOEXS2jQ+Q20GPBOP9UpbpW3Xehu7djBsu9bbeBC1To1xH2SnVCRtTBIKx8we7Ye2Stuu9TZ27WDYdq238SBqnXriI8hOaUgSsAWNmb6jJf3ZcvwvrIi2Stuu9TZ27WDYdq238SBqnfriI8hOKUjaFzgZuAdYFHdPBaYDnzSzS3qhrdK2a/ujrWu+VzdtXfPt2vzauua7yvpyakzW7D1PnkaSgDuAaS32bwnc0SttlbZd623s2sGw7Vpv40HUeqp38igWTlmMoTGBIWURMLaH2iptu7Y/2iptuza/tkrbru2PtkrbddQ6NcZ9kJ2yOAOYLWkm8HDctxlwOHB6D7VV2natt7FrB8O2a72NB1Hr1Bj3QXZKQ9J2wMEkM32BWWZ2ey+1Vdp2rbexawfDtmu9jQdR69QXf0F2HMdxHMdxnAT3QXZKQdLBkj6V/L5e0v0xvbdX2iptu9bb2LWDYdu13saDqHVqTtWzBD2tGgn4PbBZ8nseMAXYHLi8V9oqbbvW29i1g2Hbtd7Gg6j1VO/kk/ScsljDzB5Ofl9rZk8AT0ia0ENtlbZd623s2sGw7Vpv40HUOnWm6jd0T6tGAu5tc+y+XmmrtO1ab2PXDoZt13obD6LWU72T+yA7ZXG9pI8275T0ceCGHmqrtO3a/mirtO3a/Noqbbu2P9oqbddR69QYj2LhlIKkDYHfAC8Dc+PunYBxwCFm9udeaKu07dr+aOua79VNW9d8uza/tq75rrK+nPriL8hOqUjaC3h9/HmbmV3RD22Vtl3rbezawbDtWm/jQdQ69cRfkJ1SkDQeWGpmS+PvbYF3AQ+a2a97pa3Stmu9jV07GLZd6208iFqn3rgPslMWFwHTACRNB/4IbAV8WtI3eqit0rZrvY1dOxi2XettPIhap860mrnnydNIEzA/2T4WOClur5EeK1tbpW3Xehu7djBsu9bbeBC1nuqdfATZKYvUV2cv4FIAM3sFWNFDbZW2XdsfbZW2XZtfW6Vt1/ZHW6XtOmqdGuMLhThlcYuk7wCLgOnAJQCS1u2xtkrbru2Ptq75Xt20dc23a/Nr65rvKuvLqSk+guyUxUeBxwm+Wvua2Qtx//bAd3qordK2a/ujrWu+VzdtXfPt2vzauua7yvpyaopHsXAcx3Ecx3GcBHexcEpB0pUM99VKMTPbuxfaKm27tj/aKm27Nr+2Stuu7Y+2Stt11Dr1xkeQnVKQtFOL3bsCnwceM7Ode6Gt0rZr+6Ota75XN21d8+3a/Nq65rvK+nJqjA1AKA1Pq1YCdgcuA64BDuiXtkrbrvU2du1g2Hatt/Egaj3VL1WeAU+rTgL2A66ND5A9+6Wt0rZrvY1dOxi2XettPIhaT/VN7mLhlIKk2cAGwLcJKw0Nw8zm9kJbpW3X9kdb13yvbtq65tu1+bV1zXeV9eXUF39BdkpB0lW0n8iwVy+0Vdp2bX+0Vdp2bX5tlbZd2x9tlbbrqHXqjb8gO47jOI7jOE6CLxTilIKkzyfb72069vVeaau07dr+aKu07dr82iptu7Y/2ipt11Hr1JyqnaA9rRoJmNtqu9XvMrVV2natt7FrB8O2a72NB1Hrqd7JR5CdslDGdqvfZWqrtO3a/mirtO3a/Noqbbu2P9oqbddR69QYf0F2ysIytlv9LlNbpW3X9kdbpW3X5tdWadu1/dFWabuOWqfG+CQ9pxQkLQeeJ/yPei3ghaFDwJpmNrYX2iptu9bb2LWDYdu13saDqHXqjb8gO47jOI7jOE6Cu1g4juM4juM4ToK/IDuO4ziO4zhOgr8gO47jOI7jOE6CvyA7juM4juM4ToK/IDuO4ziO4zhOwv8HebXuUSqwsf8AAAAASUVORK5CYII=\n",
"text/plain": [
"