1
0
mw-lifecycle-analysis/p1/phab_analysis/case3/c3-resolved-phab.ipynb
2025-07-11 15:14:24 -05:00

770 lines
126 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "ba9e5acd-e17d-4318-9272-04c9f6706186",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd \n",
"import spacy"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "e4f0b3f0-5255-46f1-822f-e455087ba315",
"metadata": {},
"outputs": [],
"source": [
"phab_path = \"/mmfs1/gscratch/comdata/users/mjilg/mw-repo-lifecycles/case3/050825_coref-rel-final.csv\"\n",
"phab_df = pd.read_csv(phab_path)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "d449164e-1d28-4580-9eb1-f0f69978f114",
"metadata": {},
"outputs": [],
"source": [
"#find gerrit phab PHID: PHID-USER-idceizaw6elwiwm5xshb\n",
"#phab_df['isGerrit'] = phab_df['AuthorPHID'] == 'PHID-USER-idceizaw6elwiwm5xshb'\n",
"\n",
"#cleaning df\n",
"#phab_df['id'] = phab_df.index + 1\n",
"#may have to build out the reply_to column \n",
"#phab_df['reply_to'] = phab_df.groupby('TaskPHID')['id'].shift()\n",
"#phab_df['reply_to'] = phab_df['reply_to'].where(pd.notnull(phab_df['reply_to']), None)\n",
"\n",
"#phab_df = phab_df.rename(columns={\n",
"# 'AuthorPHID': 'speaker',\n",
"# 'TaskPHID': 'conversation_id',\n",
"# 'WMFaffil':'meta.affil',\n",
"# 'isGerrit': 'meta.gerrit'\n",
"#})\n",
"\n",
"# after 12-1-2012 before 12-1-2013\n",
"#phab_df['timestamp'] = pd.to_datetime(phab_df['date_created'], unit='s', origin='unix', utc=True)\n",
"#filtered_phab_df = phab_df[(phab_df['date_created'] < 1385856000) & (phab_df['date_created'] > 1354320000)]\n",
"#filtered_phab_df = phab_df[(phab_df['date_created'] < 1381691276) & (phab_df['date_created'] > 1379975444)]\n",
"\n",
"#removing headless conversations\n",
"task_phab_df = phab_df[phab_df['comment_type']==\"task_description\"]\n",
"headed_task_phids = task_phab_df['conversation_id'].unique()\n",
"filtered_phab_df = phab_df[phab_df['conversation_id'].isin(headed_task_phids)]\n",
"\n",
"#removing gerrit comments \n",
"#mid_comment_phab_df = filtered_phab_df[filtered_phab_df['meta.gerrit'] != True]\n",
"\n",
"'''\n",
"# filter out the sourceforge migration \n",
"# Originally from: http://sourceforge.net in the task task_summary\n",
"migrated_conversation_ids = task_phab_df[task_phab_df['comment_text'].apply(is_migrated)]['conversation_id'].unique()\n",
"\n",
"#cut down to only the data that is relevant (mentions http)\n",
"relevant_conversation_ids = task_phab_df[\n",
" task_phab_df['comment_text'].apply(http_relevant) |\n",
" task_phab_df['task_title'].apply(http_relevant)\n",
"]['conversation_id'].unique()\n",
"\n",
"task_phab_df['is_relevant'] = task_phab_df['conversation_id'].isin(relevant_conversation_ids)\n",
"mid_comment_phab_df['is_relevant'] = mid_comment_phab_df['conversation_id'].isin(relevant_conversation_ids)\n",
"\n",
"task_phab_df['is_migrated'] = task_phab_df['conversation_id'].isin(migrated_conversation_ids)\n",
"mid_comment_phab_df['is_migrated'] = mid_comment_phab_df['conversation_id'].isin(migrated_conversation_ids)\n",
"'''\n",
"#comment_phab_df = mid_comment_phab_df[(mid_comment_phab_df['is_relevant'] == True) & (mid_comment_phab_df['is_migrated'] != True)]\n",
"#task_phab_df = task_phab_df[(task_phab_df['is_relevant'] == True) & (task_phab_df['is_migrated'] != True)]\n",
"comment_phab_df = filtered_phab_df"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "942344db-c8f5-4ed6-a757-c97f8454f18b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Unique conversation_ids: 2281\n",
"Unique ids: 14490\n",
"Unique speakers: 634\n"
]
}
],
"source": [
"unique_conversation_ids = len(comment_phab_df['conversation_id'].unique())\n",
"unique_ids = len(comment_phab_df['id'].unique())\n",
"unique_speakers = len(comment_phab_df['speaker'].unique())\n",
"\n",
"print(f\"Unique conversation_ids: {unique_conversation_ids}\")\n",
"print(f\"Unique ids: {unique_ids}\")\n",
"print(f\"Unique speakers: {unique_speakers}\")"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "d226d781-b002-4842-a3ae-92d4851a5878",
"metadata": {},
"outputs": [],
"source": [
"import re\n",
"\n",
"def preprocess_text(text):\n",
" text = str(text)\n",
" text = text.replace('*', ' ')\n",
" text = text.replace('-', ' ')\n",
" text = re.sub(r'http\\S+', '', text)\n",
" return text"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "3ae40d24-bbe8-49c3-a3a9-70bde1b4d559",
"metadata": {},
"outputs": [],
"source": [
"comment_phab_df['processed_text'] = comment_phab_df['comment_text'].apply(preprocess_text)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "b8eddf40-1fe2-4fce-be74-b32552b40c57",
"metadata": {},
"outputs": [],
"source": [
"comment_phab_df['processed_resolved_text'] = comment_phab_df['resolved_text'].apply(preprocess_text)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "a8469b16-4ae6-4b06-bf1b-1f2f6c736cab",
"metadata": {},
"outputs": [],
"source": [
"nlp = spacy.load(\"en_core_web_sm\")\n",
"\n",
"def extract_dependency_tree(text):\n",
" doc = nlp(text)\n",
" dependency_trees = []\n",
" \n",
" for sentence in doc.sents:\n",
" for token in sentence:\n",
" token_info = (\n",
" token.text, \n",
" token.lemma_, \n",
" token.dep_, \n",
" token.head.text, \n",
" list(token.ancestors), \n",
" list(token.subtree), \n",
" list(token.children)\n",
" )\n",
" dependency_trees.append(token_info)\n",
" \n",
" return dependency_trees"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "8b9a12f9-71bf-4bc9-bcfd-c73aab4be920",
"metadata": {},
"outputs": [],
"source": [
"comment_phab_df['dependency_tree'] = comment_phab_df['processed_text'].apply(extract_dependency_tree)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "337a528a-5667-4e1f-ac9a-37caabc03a18",
"metadata": {},
"outputs": [],
"source": [
"comment_phab_df['resolved_dependency_tree'] = comment_phab_df['processed_resolved_text'].apply(extract_dependency_tree)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "a3f5d40b-f56e-4e31-a7f9-40b7ddb4d2a4",
"metadata": {},
"outputs": [],
"source": [
"#get VAD scores\n",
"import numpy as np\n",
"#https://saifmohammad.com/WebPages/nrc-vad.html\n",
"column_headings = ['Word', 'Valence', 'Arousal', 'Domination']\n",
"vad_lexicon = pd.read_csv('NRC-VAD-Lexicon.txt', delimiter='\\t', header=None, names=column_headings)\n",
"vad_dict = vad_lexicon.set_index('Word').T.to_dict()\n",
"\n",
"def vad_scoring(dependency_tree):\n",
" valence = []\n",
" arousal = []\n",
" dominance = []\n",
" for token, lemma, dep, head, ancestors, subtree, children in dependency_tree:\n",
" if lemma in vad_dict:\n",
" valence.append(vad_dict[lemma]['Valence'])\n",
" arousal.append(vad_dict[lemma]['Arousal'])\n",
" dominance.append(vad_dict[lemma]['Domination'])\n",
"\n",
" # Compute average scores across the comment\n",
" avg_valence = np.mean(valence) if valence else 0\n",
" avg_arousal = np.mean(arousal) if arousal else 0\n",
" avg_dominance = np.mean(dominance) if dominance else 0\n",
"\n",
" return [avg_valence, avg_arousal, avg_dominance]\n",
"\n",
"def dominance_prevail(dependency_tree):\n",
" dominant_words = 0 \n",
" for token, lemma, dep, head, ancestors, subtree, children in dependency_tree:\n",
" if lemma in vad_dict:\n",
" if vad_dict[lemma]['Domination'] >= 0.75:\n",
" dominant_words += 1\n",
" if vad_dict[lemma]['Domination'] <= 0.25:\n",
" dominant_words += 1\n",
" return dominant_words\n",
"\n",
"def arousal_prevail(dependency_tree):\n",
" arousal_words = 0 \n",
" for token, lemma, dep, head, ancestors, subtree, children in dependency_tree:\n",
" if lemma in vad_dict:\n",
" if vad_dict[lemma]['Arousal'] >= 0.75:\n",
" arousal_words += 1\n",
" if vad_dict[lemma]['Arousal'] <= 0.25:\n",
" arousal_words += 1\n",
" return arousal_words\n",
"\n",
"def valence_prevail(dependency_tree):\n",
" valence_words = 0 \n",
" for token, lemma, dep, head, ancestors, subtree, children in dependency_tree:\n",
" if lemma in vad_dict:\n",
" if vad_dict[lemma]['Valence'] >= 0.75:\n",
" valence_words += 1\n",
" if vad_dict[lemma]['Valence'] <= 0.25:\n",
" valence_words += 1\n",
" return valence_words\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "828fb57a-e152-42ef-9c60-660648898532",
"metadata": {},
"outputs": [],
"source": [
"#establishing per-comment VAD scores \n",
"comment_phab_df['avg_vad_scores'] = comment_phab_df['dependency_tree'].apply(vad_scoring)\n",
"comment_phab_df['dominant_wc'] = comment_phab_df['dependency_tree'].apply(dominance_prevail)\n",
"comment_phab_df['arousal_wc'] = comment_phab_df['dependency_tree'].apply(arousal_prevail)\n",
"comment_phab_df['valence_wc'] = comment_phab_df['dependency_tree'].apply(valence_prevail)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "27e47f6f-0257-4b70-b222-e91ef888c900",
"metadata": {},
"outputs": [],
"source": [
"comment_phab_df[['average_v_score', 'average_a_score', 'average_d_score']] = pd.DataFrame(comment_phab_df['avg_vad_scores'].tolist(), index=comment_phab_df.index)\n",
"comment_phab_df = comment_phab_df.drop(columns=['avg_vad_scores'])"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "1889034d-bc93-495f-bdc4-961d193d3e08",
"metadata": {},
"outputs": [],
"source": [
"def token_http_relevant(word):\n",
" # expanded dictionary for relevancy\n",
" # http, login, SSL, TLS, certificate \n",
" if \"://\" not in word.lower():\n",
" #http\n",
" if \"http\" in word.lower():\n",
" return True\n",
" #login\n",
" if \"login\" in word.lower():\n",
" return True\n",
" #ssl\n",
" if \"ssl\" in word.lower():\n",
" return True\n",
" #tls\n",
" if \"tls\" in word.lower():\n",
" return True\n",
" #cert\n",
" if word.lower().startswith(\"cert\") and not word.lower().startswith(\"certain\"):\n",
" return True\n",
" return False"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "09ddcbfc-b856-40ca-ad61-13577795d94b",
"metadata": {},
"outputs": [],
"source": [
"import datetime"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "184ccbe6-0a7a-41b8-9b02-bc439ff975d0",
"metadata": {},
"outputs": [],
"source": [
"# expand the dependency parser \n",
"dependency_relations = []\n",
"resolved_dependency_relations = []\n",
"\n",
"for index, row in comment_phab_df.iterrows():\n",
" text = row['comment_text']\n",
" timestamp = row['timestamp']\n",
" comment_id = row['id']\n",
" conversation_id = row['conversation_id']\n",
" WMFaffil = row['meta.affil']\n",
" \n",
" for token, lemma, dep, head, ancestors, subtree, children in row['dependency_tree']:\n",
" dependency_relations.append({\n",
" 'comment_id': comment_id,\n",
" 'timestamp': timestamp,\n",
" 'wmfAffil':WMFaffil,\n",
" 'token': token,\n",
" 'dependency': dep,\n",
" 'head': head,\n",
" 'depth': len(list(ancestors)), \n",
" 'children': len(list(children)) \n",
" })\n",
" \n",
" for token, lemma, dep, head, ancestors, subtree, children in row['resolved_dependency_tree']:\n",
" resolved_dependency_relations.append({\n",
" 'comment_id': comment_id,\n",
" 'timestamp': timestamp,\n",
" 'wmfAffil':WMFaffil,\n",
" 'token': token,\n",
" 'dependency': dep,\n",
" 'head': head,\n",
" 'depth': len(list(ancestors)), \n",
" 'children': len(list(children)) \n",
" })\n",
"\n",
"resolved_dependency_relations_df = pd.DataFrame(resolved_dependency_relations) \n",
"dependency_relations_df = pd.DataFrame(dependency_relations)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "82498686-14f4-40c8-9e33-27b31f115b47",
"metadata": {},
"outputs": [],
"source": [
"#now analysis/plotting \n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"from matplotlib.gridspec import GridSpec"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "5a91a59a-0d1c-48b3-93dd-b9df76ca68e5",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'affective_comment_phab_df' is not defined",
"output_type": "error",
"traceback": [
"\u001b[31m---------------------------------------------------------------------------\u001b[39m",
"\u001b[31mNameError\u001b[39m Traceback (most recent call last)",
"\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[18]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m plot2 = sns.lmplot(data=\u001b[43maffective_comment_phab_df\u001b[49m, x=\u001b[33m\"\u001b[39m\u001b[33mspeakers_comment\u001b[39m\u001b[33m\"\u001b[39m, y=\u001b[33m\"\u001b[39m\u001b[33mpolarized_wc\u001b[39m\u001b[33m\"\u001b[39m, hue=\u001b[33m\"\u001b[39m\u001b[33mdate_group\u001b[39m\u001b[33m\"\u001b[39m, col=\u001b[33m\"\u001b[39m\u001b[33mmeta.affil\u001b[39m\u001b[33m\"\u001b[39m, scatter=\u001b[38;5;28;01mFalse\u001b[39;00m, legend=\u001b[38;5;28;01mFalse\u001b[39;00m, palette=palette)\n\u001b[32m 2\u001b[39m plot2.set_axis_labels(\u001b[33m\"\u001b[39m\u001b[33mIndex of Speaker\u001b[39m\u001b[33m'\u001b[39m\u001b[33ms Comment\u001b[39m\u001b[33m\"\u001b[39m, \u001b[33m\"\u001b[39m\u001b[33mCount of Polarized Words\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m 3\u001b[39m plot2.set_titles(col_template=\u001b[33m\"\u001b[39m\u001b[33mWMF Affiliation: \u001b[39m\u001b[38;5;132;01m{col_name}\u001b[39;00m\u001b[33m\"\u001b[39m)\n",
"\u001b[31mNameError\u001b[39m: name 'affective_comment_phab_df' is not defined"
]
}
],
"source": [
"plot2 = sns.lmplot(data=affective_comment_phab_df, x=\"speakers_comment\", y=\"polarized_wc\", hue=\"date_group\", col=\"meta.affil\", scatter=False, legend=False, palette=palette)\n",
"plot2.set_axis_labels(\"Index of Speaker's Comment\", \"Count of Polarized Words\")\n",
"plot2.set_titles(col_template=\"WMF Affiliation: {col_name}\")\n",
"plot2.fig.subplots_adjust(top=0.9) # Adjust subplots to make room for the title\n",
"plot2.add_legend(title=\"Comment publication timestamp:\")"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "2274795e-c64d-43e4-b0f5-a19b5b8ba2c8",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>comment_id</th>\n",
" <th>timestamp</th>\n",
" <th>wmfAffil</th>\n",
" <th>token</th>\n",
" <th>dependency</th>\n",
" <th>head</th>\n",
" <th>depth</th>\n",
" <th>children</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>243215</td>\n",
" <td>2014-09-24 06:48:00+00:00</td>\n",
" <td>False</td>\n",
" <td>User</td>\n",
" <td>dep</td>\n",
" <td>reported</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>243215</td>\n",
" <td>2014-09-24 06:48:00+00:00</td>\n",
" <td>False</td>\n",
" <td>:</td>\n",
" <td>punct</td>\n",
" <td>reported</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>243215</td>\n",
" <td>2014-09-24 06:48:00+00:00</td>\n",
" <td>False</td>\n",
" <td>NickK</td>\n",
" <td>nsubj</td>\n",
" <td>reported</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>243215</td>\n",
" <td>2014-09-24 06:48:00+00:00</td>\n",
" <td>False</td>\n",
" <td>reported</td>\n",
" <td>ROOT</td>\n",
" <td>reported</td>\n",
" <td>0</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>243215</td>\n",
" <td>2014-09-24 06:48:00+00:00</td>\n",
" <td>False</td>\n",
" <td>in</td>\n",
" <td>prep</td>\n",
" <td>reported</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1708744</th>\n",
" <td>406877</td>\n",
" <td>2014-10-17 09:17:17+00:00</td>\n",
" <td>False</td>\n",
" <td>n't</td>\n",
" <td>neg</td>\n",
" <td>do</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1708745</th>\n",
" <td>406877</td>\n",
" <td>2014-10-17 09:17:17+00:00</td>\n",
" <td>False</td>\n",
" <td>really</td>\n",
" <td>advmod</td>\n",
" <td>do</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1708746</th>\n",
" <td>406877</td>\n",
" <td>2014-10-17 09:17:17+00:00</td>\n",
" <td>False</td>\n",
" <td>do</td>\n",
" <td>ROOT</td>\n",
" <td>do</td>\n",
" <td>0</td>\n",
" <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1708747</th>\n",
" <td>406877</td>\n",
" <td>2014-10-17 09:17:17+00:00</td>\n",
" <td>False</td>\n",
" <td>much</td>\n",
" <td>dobj</td>\n",
" <td>do</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1708748</th>\n",
" <td>406877</td>\n",
" <td>2014-10-17 09:17:17+00:00</td>\n",
" <td>False</td>\n",
" <td>.</td>\n",
" <td>punct</td>\n",
" <td>do</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1708749 rows × 8 columns</p>\n",
"</div>"
],
"text/plain": [
" comment_id timestamp wmfAffil token dependency \\\n",
"0 243215 2014-09-24 06:48:00+00:00 False User dep \n",
"1 243215 2014-09-24 06:48:00+00:00 False : punct \n",
"2 243215 2014-09-24 06:48:00+00:00 False NickK nsubj \n",
"3 243215 2014-09-24 06:48:00+00:00 False reported ROOT \n",
"4 243215 2014-09-24 06:48:00+00:00 False in prep \n",
"... ... ... ... ... ... \n",
"1708744 406877 2014-10-17 09:17:17+00:00 False n't neg \n",
"1708745 406877 2014-10-17 09:17:17+00:00 False really advmod \n",
"1708746 406877 2014-10-17 09:17:17+00:00 False do ROOT \n",
"1708747 406877 2014-10-17 09:17:17+00:00 False much dobj \n",
"1708748 406877 2014-10-17 09:17:17+00:00 False . punct \n",
"\n",
" head depth children \n",
"0 reported 1 0 \n",
"1 reported 1 0 \n",
"2 reported 1 0 \n",
"3 reported 0 7 \n",
"4 reported 1 1 \n",
"... ... ... ... \n",
"1708744 do 1 0 \n",
"1708745 do 1 0 \n",
"1708746 do 0 9 \n",
"1708747 do 1 0 \n",
"1708748 do 1 0 \n",
"\n",
"[1708749 rows x 8 columns]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"resolved_dependency_relations_df"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "d2d67d38-f005-4c94-be3c-39eb6b22686f",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_23724/3163066381.py:9: UserWarning: This pattern is interpreted as a regular expression, and has match groups. To actually get the groups, use str.extract.\n",
" filtered_dependencies = dependency_relations_df[dependency_relations_df['token'].str.contains(pattern, regex=True)]\n",
"/tmp/ipykernel_23724/3163066381.py:10: UserWarning: This pattern is interpreted as a regular expression, and has match groups. To actually get the groups, use str.extract.\n",
" resolved_filtered_dependencies = resolved_dependency_relations_df[resolved_dependency_relations_df['token'].str.contains(pattern, regex=True)]\n",
"/tmp/ipykernel_23724/3163066381.py:25: 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",
" filtered_dependencies['timestamp'] = pd.to_datetime(filtered_dependencies['timestamp'], utc=True)\n",
"/tmp/ipykernel_23724/3163066381.py:26: UserWarning: Converting to PeriodArray/Index representation will drop timezone information.\n",
" filtered_dependencies['week'] = filtered_dependencies['timestamp'].dt.to_period('W').dt.start_time\n",
"/tmp/ipykernel_23724/3163066381.py:26: 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",
" filtered_dependencies['week'] = filtered_dependencies['timestamp'].dt.to_period('W').dt.start_time\n",
"/tmp/ipykernel_23724/3163066381.py:47: 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",
" resolved_filtered_dependencies['timestamp'] = pd.to_datetime(resolved_filtered_dependencies['timestamp'], utc=True)\n",
"/tmp/ipykernel_23724/3163066381.py:48: UserWarning: Converting to PeriodArray/Index representation will drop timezone information.\n",
" resolved_filtered_dependencies['week'] = resolved_filtered_dependencies['timestamp'].dt.to_period('W').dt.start_time\n",
"/tmp/ipykernel_23724/3163066381.py:48: 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",
" resolved_filtered_dependencies['week'] = resolved_filtered_dependencies['timestamp'].dt.to_period('W').dt.start_time\n"
]
},
{
"data": {
"image/png": "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zZs32yyTyBMohHCxpwETkcfbv38/OnTogC1bthT411yionj66adx6tQpXLp0qbRDITfXvn173L59u9gvnfB0Y8eOxYoVK5CcnGy5FYWIiIhIKj5TioiIPEJSUhJ2794t2yvpiahw2dnZWLduHXr37s2EFBERERUJnylFRERu7cqVKzh06BA+/fRTeHt7Y/jw4aUdEpFHS0lJwZ49e7B161bcuXPH5tmFRERERFIxKUVERG7twIEDGDJkCKpWrYrVq1dbPXyfiOR39uxZDBw4ECEhIVi8eHGBr60nIiIisofPlCIiIiIiIiIiIqfjM6WIiIiIiIiIiMjpmJQiIiIiIiIiIiKn8/hnSplMJvzzzz8IDAyEQqEo7XCIiIiIiIiIiDyaEALp6emIiIiAUlnw9VAen5T6559/EBkZWdphEBERERERERGVKX/99ReqVKlS4HSPT0oFBgYCuLchgoKCSjkaIiIiIiIiIiLPlpaWhsjISEtOpiAen5Qy37IXFBTEpBQRERERERERkZPYe4wSH3ROREREREREREROx6QUERERERERERE5HZNSRERERERERETkdB7/TCmpjEYjDAZDaYdB5Ba8vb2hUqlKOwwiIiIiIiJyY2U+KSWEQHJyMlJTU0s7FCK3Uq5cOYSFhdl9cB0RERERERFRfsp8UsqckAoJCYFGo+EPbCI7hBDQ6/VISUkBAISHh5dyREREREREROSOynRSymg0WhJSFStWLO1wiNyGn58fACAlJQUhISG8lY+IiIiIiIgcVqYfdG5+hpRGoynlSIjcj3nc8FlsREREREREVBSlmpQ6ePAgunfvjoiICCgUCuzcudMyzWAwYOLEiYiNjYW/vz8iIiIwaNAg/PPPP7LHwVv2iBzHcUNERM6UmZOHf3Q5uHw7C0m6HGTm5JV2SERERFRMpXr7XmZmJho1aoShQ4eiV69eVtP0ej1+++03TJ06FY0aNcLdu3fx6quv4qmnnsKxY8dKKWIiIiIicrY7mQasOJKM00l6S1lsuAZDW4ahor93KUZGRERExVGqV0o98cQTmD17Np5++mmbaVqtFt9//z369OmDOnXqoEWLFvjwww9x/PhxXL9+vRSiJbksX74ckZGRUCqVWLhwYb5l06dPR+PGjS3fiY+PR8+ePS3/b9++PcaMGePUuM32798PhUJRKm9svHr1KhQKBRITE52+biIiotKQmZNnk5ACgFNJenx2JJlXTBEREbkxt3qmlE6ng0KhQLly5QqcJycnB2lpaVYfT7J06VIEBgYiL++/E7CMjAx4e3ujffv2VvOakyeXL18GAERFRUGhUGDjxo02y42JiYFCocCqVassZeb57/9UqVKlWPGnpaVh1KhRmDhxIm7cuIGXXnop37Lx48fjhx9+KHA527dvx6xZsySvtzQTSUX1YCKOiIioLNJlG20SUmankvTQZRudHBERERHJxW2SUtnZ2Zg4cSL69++PoKCgAudLSEiAVqu1fCIjI50YZcnr0KEDMjIyrG5h/PHHHxEWFoaff/4Z2dnZlvJ9+/ahatWqqFGjhqUsMjISK1eutFrm0aNHkZycDH9/f5v1zZw5E0lJSZbPiRMnihX/9evXYTAY0LVrV4SHh0Oj0eRbFhAQUOgbEStUqIDAwMBixUL/yc3NLe0QiIiI8pVlMBVrOhEREbkut0hKGQwG9OnTB0IIfPzxx4XOO2nSJOh0Osvnr7/+Kvn49JnISklG+vUryEq5CYM+s8TWVadOHYSHh2P//v2Wsv3796NHjx6Ijo7G0aNHrco7dOhg9f2BAwfiwIEDVtvls88+w8CBA+HlZfuIscDAQISFhVk+wcHBhcY3ceJE1K5dGxqNBtWrV8fUqVMtb2dbtWoVYmNjAQDVq1e3XJn1YNnVq1dtbt970IO3761duxbNmjWzxDtgwACkpKQAuHfLm3k7lC9fHgqFAvHx8QAAk8mEhIQEREdHw8/PD40aNcLWrVut1vW///0PtWvXhp+fHzp06ICrV68Wug0AYMGCBZaH9EdGRmLEiBHIyMiwTM+vfgsXLkRUVJRl+urVq/HFF19YrlK7v83//PNPdOjQARqNBo0aNcKRI0eslrVt2zbExMRArVYjKioK8+fPt5oeFRWFWbNmYdCgQQgKCsJLL72E3NxcjBo1CuHh4fD19UW1atWQkJBgt65EREQlyc+78NNVe9OJiIjIdbn8UdyckLp27Rq+//77Qq+SAgC1Wo2goCCrT0nKSb2LixtW4uR7s3Dmw/dw8r2ZuLRhJXJS75bYOjt06IB9+/ZZ/r9v3z60b98ecXFxlvKsrCz8/PPPNkmp0NBQdO7cGatXrwZw74HymzZtwtChQ2WJLTAwEKtWrcLZs2exaNEifPLJJ3j//fcBAH379sWePXsAAL/88guSkpLw7LPP2pQV5eo2g8GAWbNm4eTJk9i5cyeuXr1qSTxFRkZi27ZtAIALFy4gKSkJixYtAnDvyro1a9Zg6dKlOHPmDMaOHYvnnnsOBw4cAAD89ddf6NWrF7p3747ExEQMGzYMb7zxht14lEolFi9ejDNnzmD16tXYu3cvXn/9dcn1GT9+PPr06YMuXbpYrlJr1aqVZfqUKVMwfvx4JCYmonbt2ujfv7/lls7jx4+jT58+6NevH06dOoXp06dj6tSpVrdmAsB7772HRo0a4cSJE5g6dSoWL16ML7/8Eps3b8aFCxewfv16S5KMiIiotGh9VYgN1+Q7LTZcA62vyskRERERkVxK9e179pgTUhcvXsS+ffsKvZ2rNBj0mbi8dT3S/jhnVa774xz+3LoeNQcMgbfG9pa44urQoQPGjBmDvLw8ZGVl4cSJE4iLi4PBYMDSpUsBAEeOHEFOTo5NUgoAhg4ditdeew1TpkzB1q1bUaNGjQKvSpo4cSLefPNNy//nzJmD0aNHFxjb/fNGRUVh/Pjx2LhxI15//XX4+flZ2jA4OBhhYWEAkG+Zo+5PqlWvXh2LFy/Gww8/jIyMDAQEBKBChQoAgJCQEMszyXJycjBnzhzs2bMHLVu2tHz3p59+wrJlyxAXF4ePP/4YNWrUsFxpVKdOHZw6dQrz5s0rNJ77r+KKiorC7Nmz8fLLL+Ojjz6SVJ+AgAD4+fkhJycn320yfvx4dO3aFQAwY8YMxMTE4NKlS6hbty4WLFiAjh07YurUqQCA2rVr4+zZs3j33XctiToAePTRR/Haa69Z/n/9+nXUqlULbdq0gUKhQLVq1STFSkREVJL81V4Y2jIMnx1JxqkH3r73Qssw+Ktd+nSWiIiIClGqR/GMjAxcunTJ8v8rV64gMTERFSpUQHh4OJ555hn89ttv2LVrF4xGI5KTkwHce56Qj49PaYVtkZeRbpOQMtP9cQ55GeklkpRq3749MjMz8euvv+Lu3buoXbs2goODERcXhyFDhiA7Oxv79+9H9erVUbVqVZvvd+3aFcOHD8fBgwfx2WefFXqV1IQJE6wSGZUqVQIAvPzyy1i3bp2l3Hxr2qZNm7B48WJcvnwZGRkZyMvLK/Gr1YB7VwdNnz4dJ0+exN27d2Ey3Xu+xPXr11G/fv18v3Pp0iXo9Xo89thjVuW5ublo0qQJAODcuXNo3ry51XRzAqswe/bsQUJCAs6fP4+0tDTk5eUhOzsber0eGk3+f+11RMOGDS3/Dg8PBwCkpKSgbt26OHfuHHr06GE1f+vWrbFw4UIYjUaoVPf+otysWTOreeLj4/HYY4+hTp066NKlC7p164bHH3+82LESEREVV0V/b4xoGw5dthFZBhP8vJXQ+qqYkCIiInJzpXokP3bsmNWVPOPGjQMADB48GNOnT8eXX34JADZX8ZhvVyttedlZdqZnFzq9qGrWrIkqVapg3759uHv3LuLi4gAAERERiIyMxOHDh7Fv3z48+uij+X7fy8sLzz//PKZNm4aff/4ZO3bsKHBdlSpVQs2aNW3KZ86cifHjx1uVHTlyBAMHDsSMGTPQuXNnaLVabNy40eZ5RnLLzMxE586d0blzZ6xfvx7BwcG4fv06OnfuXOgDvM2JtN27d6Ny5cpW09RqdZHjuXr1Krp164ZXXnkFb7/9NipUqICffvoJL7zwAnJzc6HRaKBUKiGEsPqe+dlbUnh7e1v+rVAoAMCSiJPqwQfbP/TQQ7hy5Qq+/vpr7NmzB3369EGnTp1snrFFRERUGvzVXkxCEREReZhSPbK3b9/e5of5/Qqb5gq8fP3sTPctsXV36NAB+/fvx927dzFhwgRLebt27fD111/jl19+wSuvvFLg94cOHYr33nsPffv2Rfny5R1ef0hICEJCQqzKDh8+jGrVqmHKlCmWsmvXrjm8bEedP38ed+7cwdy5cy3Po7r/7YQALFfWGY3/vTa6fv36UKvVuH79uiWx96B69epZkqNm9z9MPj/Hjx+HyWTC/PnzoVTee2zb5s2breYJDg5GcnIyhBCWpFJiYqJNzPfHK1W9evVw6NAhq7JDhw6hdu3alqukChIUFIS+ffuib9++eOaZZ9ClSxf8+++/ltsfiYiIiIiIiOTCPzcVg1dAILS160GXzy182tr14BUQWGLr7tChA0aOHAmDwWCVUImLi8OoUaOQm5ub7/OkzOrVq4fbt2/LciuZWa1atXD9+nVs3LgRDz/8MHbv3l3oVVhyqVq1Knx8fPDBBx/g5ZdfxunTpzFr1iyreapVqwaFQoFdu3bhySefhJ+fHwIDAzF+/HiMHTsWJpMJbdq0gU6nw6FDhxAUFITBgwfj5Zdfxvz58zFhwgQMGzYMx48ft3lg+INq1qwJg8GADz74AN27d8ehQ4csz/oya9++PW7duoV33nkHzzzzDL755ht8/fXXVrc6RkVF4dtvv8WFCxdQsWJFaLVaSdvjtddew8MPP4xZs2ahb9++OHLkCD788EO7z7NasGABwsPD0aRJEyiVSmzZsgVhYWGWZ3ARERERERERycnl377nyrw1/qj+zEBoa9ezKtfWrofqzwwskedJmXXo0AFZWVmoWbMmQkNDLeVxcXFIT09HnTp1LM8aKkjFihXh51f41V6OeOqppzB27FiMGjUKjRs3xuHDhy0P2y5JwcHBWLVqFbZs2YL69etj7ty5eO+996zmqVy5MmbMmIE33ngDoaGhGDVqFABg1qxZmDp1KhISElCvXj106dIFu3fvRnR0NIB7Ca9t27Zh586daNSoEZYuXYo5c+YUGk+jRo2wYMECzJs3Dw0aNMD69euRkJBgNU+9evXw0UcfYcmSJWjUqBF++eUXm9shX3zxRdSpUwfNmjVDcHCwzdVPBXnooYewefNmbNy4EQ0aNMBbb72FmTNnWj0bLD+BgYF455130KxZMzz88MO4evUq/ve//1mu9iIiIiIiIiKSk0K4+j1yxZSWlgatVgudTmfzwO3s7GxcuXIF0dHR8C3GrXYGfSbyMtKRl50NL19feAUElmhCisgVyDV+iIiIiIiIyLMUlou5H2/fk4G3xp9JKCIiIiIiIiIiB/C+HCIiIiIiIiIicjompYiIiIiIiIiIyOmYlCIiIiIiIiIiIqdjUoqIiIiIiIiIiJyOSSkiIiIiIiIiInI6JqWIiIiIiIiIiMjpmJQiIiIiIiIiIiKnY1KKiIiIiIiIiIicjkkpksXy5csRGRkJpVKJhQsX5ls2ffp0NG7c2PKd+Ph49OzZ0/L/9u3bY8yYMU6N22z//v1QKBRITU11+rqvXr0KhUKBxMREp6+biIiIiIiIqLQwKeWG4uPjoVAoMHfuXKvynTt3QqFQOD2etLQ0jBo1ChMnTsSNGzfw0ksv5Vs2fvx4/PDDDwUuZ/v27Zg1a5bk9ZZmIqmoHkzEEREREREREZVVTEq5KV9fX8ybNw93794t7VBw/fp1GAwGdO3aFeHh4dBoNPmWBQQEoGLFigUup0KFCggMDHRi5J4tNze3tEMgIiIiIiIiKhCTUjLIzMnDP7ocXL6dhSRdDjJz8kp8nZ06dUJYWBgSEhIKnW/btm2IiYmBWq1GVFQU5s+fbzU9KioKc+bMwdChQxEYGIiqVati+fLlVvNMnDgRtWvXhkajQfXq1TF16lQYDAYAwKpVqxAbGwsAqF69OhQKRb5lV69etbl970EP3r63du1aNGvWDIGBgQgLC8OAAQOQkpIC4N4tbx06dAAAlC9fHgqFAvHx8QAAk8mEhIQEREdHw8/PD40aNcLWrVut1vW///0PtWvXhp+fHzp06ICrV68Wuh0BYMGCBYiNjYW/vz8iIyMxYsQIZGRkWKbnV7+FCxciKirKMn316tX44osvoFAooFAosH//fsu8f/75Jzp06ACNRoNGjRrhyJEjVsuS0pazZs3CoEGDEBQUhJdeegm5ubkYNWoUwsPD4evri2rVqtntM0RERERERETOwKRUMd3JNGDJj0l448urmPH1dUz88io++jEJdzINJbpelUqFOXPm4IMPPsDff/+d7zzHjx9Hnz590K9fP5w6dQrTp0/H1KlTsWrVKqv55s+fj2bNmuHEiRMYMWIEXnnlFVy4cMEyPTAwEKtWrcLZs2exaNEifPLJJ3j//fcBAH379sWePXsAAL/88guSkpLw7LPP2pRFRkY6XEeDwYBZs2bh5MmT2LlzJ65evWpJPEVGRmLbtm0AgAsXLiApKQmLFi0CACQkJGDNmjVYunQpzpw5g7Fjx+K5557DgQMHAAB//fUXevXqhe7duyMxMRHDhg3DG2+8YTcepVKJxYsX48yZM1i9ejX27t2L119/XXJ9xo8fjz59+qBLly5ISkpCUlISWrVqZZk+ZcoUjB8/HomJiahduzb69++PvLx7CU6pbfnee++hUaNGOHHiBKZOnYrFixfjyy+/xObNm3HhwgWsX7/ekiQjIiIiIiIiKk1epR2AO8vMycOKI8k4naS3Kj+VpMdnR5Ixom04/NUlt4mffvppNG7cGNOmTcOKFStspi9YsAAdO3bE1KlTAQC1a9fG2bNn8e6771qSOwDw5JNPYsSIEQDuXRX1/vvvY9++fahTpw4A4M0337TMGxUVhfHjx2Pjxo14/fXX4efnZ7klLzg4GGFhYQCQb5mjhg4davl39erVsXjxYjz88MPIyMhAQEAAKlSoAAAICQlBuXLlAAA5OTmYM2cO9uzZg5YtW1q++9NPP2HZsmWIi4vDxx9/jBo1aliuNKpTpw5OnTqFefPmFRrP/VdxRUVFYfbs2Xj55Zfx0UcfSapPQEAA/Pz8kJOTk+82GT9+PLp27QoAmDFjBmJiYnDp0iXUrVtXcls++uijeO211yz/v379OmrVqoU2bdpAoVCgWrVqkmIlIiIiIiJyR6l6A9JzjNDnmqDxUSJQrUI5jXdph0UF4JVSxaDLNtokpMxOJemhyzaWeAzz5s3D6tWrce7cOZtp586dQ+vWra3KWrdujYsXL8Jo/C+2hg0bWv6tUCgQFhZmuU0OADZt2oTWrVsjLCwMAQEBePPNN3H9+vUSqI2148ePo3v37qhatSoCAwMRFxcHAIWu+9KlS9Dr9XjssccQEBBg+axZswaXL18GcG+7NG/e3Op75gRWYfbs2YOOHTuicuXKCAwMxPPPP487d+5Ar8+/Dzjq/nYIDw8HAEs7SG3LZs2aWc0THx+PxMRE1KlTB6NHj8Z3330nS6xERERERESuJiU9F8sOJWPKrmt4+7u/MGXXNSw7lIyUdD5v11UxKVUMWQZTsabLoV27dujcuTMmTZpU5GV4e1tnjRUKBUyme7EfOXIEAwcOxJNPPoldu3bhxIkTmDJlSok/RDszMxOdO3dGUFAQ1q9fj19//RU7duwAUPgDvM3PeNq9ezcSExMtn7Nnz9o8V8oRV69eRbdu3dCwYUNs27YNx48fx5IlS6ziUSqVEEJYfc/87C0p7m8H81sUze0glb+/v9X/H3roIVy5cgWzZs1CVlYW+vTpg2eeecahZRIREREREbm6VL0BK4/exJlk64sGziTrsfLoTaTqS/YRO1Q0vH2vGPy8C8/p2Zsul7lz56Jx48aW2+3M6tWrh0OHDlmVHTp0CLVr14ZKpZK07MOHD6NatWqYMmWKpezatWvFD9qO8+fP486dO5g7d67leVTHjh2zmsfHxwcArK4Uql+/PtRqNa5fv265supB9erVw5dffmlVdvTo0ULjOX78OEwmE+bPnw+l8l67bt682Wqe4OBgJCcnQwhhSSolJibaxHx/vFIVpy2DgoLQt29f9O3bF8888wy6dOmCf//913L7IxERERERkbtLzzHaJKTMziTrkZ5j5G18LohXShWD1leF2HBNvtNiwzXQ+kpL/BRXbGwsBg4ciMWLF1uVv/baa/jhhx8wa9Ys/PHHH1i9ejU+/PBDjB8/XvKya9WqhevXr2Pjxo24fPkyFi9ebLliqSRVrVoVPj4++OCDD/Dnn3/iyy+/xKxZs6zmqVatGhQKBXbt2oVbt24hIyMDgYGBGD9+PMaOHYvVq1fj8uXL+O233/DBBx9g9erVAICXX34ZFy9exIQJE3DhwgVs2LDB5oHhD6pZsyYMBoMlnrVr12Lp0qVW87Rv3x63bt3CO++8g8uXL2PJkiX4+uuvreaJiorC77//jgsXLuD27duSr6QqalsuWLAAn3/+Oc6fP48//vgDW7ZsQVhYmOUZXERERERERJ5An1v4XSb2plPpYFKqGPzVXhjaMswmMRUbrsELLcNK9CHnD5o5c6bNrV4PPfQQNm/ejI0bN6JBgwZ46623MHPmTKsHY9vz1FNPYezYsRg1ahQaN26Mw4cPWx62XZKCg4OxatUqbNmyBfXr18fcuXPx3nvvWc1TuXJlzJgxA2+88QZCQ0MxatQoAMCsWbMwdepUJCQkoF69eujSpQt2796N6OhoAPcSXtu2bcPOnTvRqFEjLF26FHPmzCk0nkaNGmHBggWYN28eGjRogPXr1yMhIcFqnnr16uGjjz7CkiVL0KhRI/zyyy82SaMXX3wRderUQbNmzRAcHGxz9VNBitqWgYGBeOedd9CsWTM8/PDDuHr1Kv73v/9ZrvYiIiIiIiLyBBqfwn/j2JtOpUMhHnwIjodJS0uDVquFTqdDUFCQ1bTs7GxcuXIF0dHR8PX1LfI6MnPyoMs2Istggp+3ElpflVMTUkSlQa7xQ0REREREVFypegOWHUrO9xa+mDANhrcO4+17TlRYLuZ+TBXKwF/thQitGjUq+SFCq2ZCioiIiIiIiMiJymm8MaRFKGLCrO9kignTYEiLUCakXBSzJ0RERERERETk9kICfTC8dRjSc4zQ55qg8VEiUK1iQsqFMSlFRERERERERB6hnMabSSg3wtv3iIiIiIiIiIjI6ZiUIiIiIiIiIiIip2NSCoDJZCrtEIjcDscNERERERERFUeZfqaUj48PlEol/vnnHwQHB8PHxwcKhaK0wyJyaUII5Obm4tatW1AqlfDx8SntkIiIiIiIiMgNlemklFKpRHR0NJKSkvDPP/+UdjhEbkWj0aBq1apQKnnBJRERERERETmuTCelgHtXS1WtWhV5eXkwGo2lHQ6RW1CpVPDy8uKVhURERERERFRkZT4pBQAKhQLe3t7w9uZrI4mIiIiIiIiInIH33RARERERERERkdMxKUVERERERERERE7HpBQRERERERERETkdk1JEREREREREROR0TEoREREREREREZHTMSlFREREREREREROx6QUERERERERERE5HZNSRERERERERETkdExKERERERERERGR0zEpRURERERERERETleqSamDBw+ie/fuiIiIgEKhwM6dO62mCyHw1ltvITw8HH5+fujUqRMuXrxYOsESUZmSmZOHf3Q5uHw7C0m6HGTm5JV2SEREROSGeE5BRFQwr9JceWZmJho1aoShQ4eiV69eNtPfeecdLF68GKtXr0Z0dDSmTp2Kzp074+zZs/D19S2FiImoLLiTacCKI8k4naS3lMWGazC0ZRgq+nuXYmRERETkTnhOQURUOIUQQpR2EACgUCiwY8cO9OzZE8C9q6QiIiLw2muvYfz48QAAnU6H0NBQrFq1Cv369ZO03LS0NGi1Wuh0OgQFBZVU+ETkITJz8rDkxySrk0ez2HANRrQNh7+6VPP5RERE5AZ4TkFEZZnUXIzLPlPqypUrSE5ORqdOnSxlWq0WzZs3x5EjRwr8Xk5ODtLS0qw+RERS6bKN+Z48AsCpJD102UYnR0RERETuiOcURET2uWxSKjk5GQAQGhpqVR4aGmqZlp+EhARotVrLJzIyskTjJCLPkmUwFWs6EREREcBzCiIiKVw2KVVUkyZNgk6ns3z++uuv0g6JiNyIn3fhu0V704mIiIgAnlMQEUnhsnvCsLAwAMDNmzetym/evGmZlh+1Wo2goCCrDxGRVFpfFWLDNflOiw3XQOurcnJERERE5I54TkFEZJ/LJqWio6MRFhaGH374wVKWlpaGn3/+GS1btizFyIjIk/mrvTC0ZZjNSWRsuAYvtAzjA0mJiIhIEp5TEBHZV6p7woyMDFy6dMny/ytXriAxMREVKlRA1apVMWbMGMyePRu1atVCdHQ0pk6dioiICMsb+oiISkJFf2+MaBsOXbYRWQYT/LyV0PqqePJIREREDuE5BRFR4Up1b3js2DF06NDB8v9x48YBAAYPHoxVq1bh9ddfR2ZmJl566SWkpqaiTZs2+Oabb+Dr61taIRNRGeGv9uIJIxERERUbzymIiAqmEEKI0g6iJKWlpUGr1UKn0/H5UkREREREREREJUxqLsZlnylFRERERERERESei0kpIiIiIiIiIiJyOialiIiIiIiIiIjI6ZiUIiIiIiIiIiIip2NSioiIiIiIiIiInI5JKSIiIiIiIiIicjompYiIiIiIiIiIyOm8ivKl1NRU/PLLL0hJSYHJZLKaNmjQIFkCIyIiIiIiIiIiz+VwUuqrr77CwIEDkZGRgaCgICgUCss0hULBpBQREREREREREdnl8O17r732GoYOHYqMjAykpqbi7t27ls+///5bEjESEREREREREZGHcTgpdePGDYwePRoajaYk4iEiIiIiIiIiojLA4aRU586dcezYsZKIhYiIiIiIiIiIyghJz5T68ssvLf/u2rUrJkyYgLNnzyI2Nhbe3t5W8z711FPyRkhERERERERERB5HIYQQ9mZSKqVdUKVQKGA0GosdlJzS0tKg1Wqh0+kQFBRU2uEQEREREREREXk0qbkYSVdKmUwm2QIjIiIiIiIiIiJy+JlSa9asQU5Ojk15bm4u1qxZI0tQRERERERERETk2STdvnc/lUqFpKQkhISEWJXfuXMHISEhvH2PiIiIiIiIiKgMk/X2vfsJIaBQKGzK//77b2i1WkcXR0RERERE5HIyc/KgyzYiy2CCxluJIF8V/NUO/3ySbTlyL4uIyBVI3oM1adIECoUCCoUCHTt2hJfXf181Go24cuUKunTpUiJBEhEREREROcudTANWHEnG6SS9pSw2XIOhLcNQ0d+7kG+WzHLkXhYRkauQnJTq2bMnACAxMRGdO3dGQECAZZqPjw+ioqLQu3dv2QMkIiIiIiJylsycPJvkDwCcStLjsyPJGNE2XNLVSXItR+5lERG5Esl7rmnTpgEAoqKi0LdvX/j6+pZYUERERERERKVBl220Sf6YnUrSQ5dtlJQAkms5ci+LiMiVOLznGjx4MADg2LFjOHfuHACgfv36aNq0qbyREREREREROVmWwVSs6XIvR+5lERG5EoeTUjdu3EC/fv1w6NAhlCtXDgCQmpqKVq1aYePGjahSpYrcMRIRERERETmFn7eyWNPlXo7cyyIiciUO771eeOEFGAwGnDt3Dv/++y/+/fdfnDt3DiaTCcOGDSuJGImIiIiIiJxC66tCbLgm32mx4RpofVVOXY7cyyIiciUKIYRw5At+fn44fPgwmjRpYlV+/PhxtG3bFnp9/vc6l5a0tDRotVrodDoEBQWVdjhEREREROTi7mQa8NmRZJx64E13L7QMQwUH374nx3LkXhYRUUmTmotx+Pa9yMhIGAwGm3Kj0YiIiAhHF0dERERERORSKvp7Y0TbcOiyjcgymODnrYTWV+Xww8TlWo7cyyIichUO78Heffdd/N///R+WLFmCZs2aAbj30PNXX30V7733nuwBEhEREREROZu/2kuWhI9cy5F7WURErsDh2/fKly8PvV6PvLw8eHnd2yGa/+3v728177///itfpEXE2/eIiIiIiIiIiJynxG7fW7hwYXHiIiIiIiIiIiIicjwpNXjw4JKIg4iIiIiIiIiIyhBlUb50+fJlvPnmm+jfvz9SUlIAAF9//TXOnDkja3BEREREREREROSZHE5KHThwALGxsfj555+xfft2ZGRkAABOnjyJadOmyR4gERERERERERF5HoeTUm+88QZmz56N77//Hj4+PpbyRx99FEePHpU1OCIiIiIiIiIi8kwOJ6VOnTqFp59+2qY8JCQEt2/fliUoIiIiIiIiIiLybA4npcqVK4ekpCSb8hMnTqBy5cqyBEVERERERERERJ7N4aRUv379MHHiRCQnJ0OhUMBkMuHQoUMYP348Bg0aVBIxEhERERERERGRh3E4KTVnzhzUrVsXkZGRyMjIQP369dGuXTu0atUKb775ZknESEREREREREREHkYhhBBF+eL169dx+vRpZGRkoEmTJqhVq5bcsckiLS0NWq0WOp0OQUFBpR0OEREREREREZFHk5qL8SrqCqpWrYqqVasW9etERERERERERFSGOXT7XmZmJt566y00aNAAAQEBCAwMRMOGDTFz5kzo9fqSipGIiIiIiIiIiDyM5CulcnNzERcXh9OnT+OJJ55A9+7dIYTAuXPn8Pbbb+Prr7/GwYMH4e3tXZLxEhERERERERGRB5CclPr444/x999/4+TJk6hTp47VtPPnz6N9+/ZYunQp/u///k/2IImIiIiIiIiIyLNIvn1v+/btmDp1qk1CCgDq1q2LKVOmYOvWrbIGR0REREREREREnklyUurs2bNo3759gdM7dOiAs2fPyhGThdFoxNSpUxEdHQ0/Pz/UqFEDs2bNQhFfGEhERERERERERC5C8u17qampqFixYoHTK1asCJ1OJ0tQZvPmzcPHH3+M1atXIyYmBseOHcOQIUOg1WoxevRoWddFniEzJw+6bCOyDCZovJUI8lXB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GGW7jc8V9yeuGBPZl5lrKrTfZuaaUNHfyUHJiP1SHpK3kBACADBt2rQSC4ZsZRlMxZpORP/heLLPFbeRK8ZE7smT+5In142IAH1u4WPY3nRHuOL+xBVjIvvs9cssGfttaWC/lIfk2/cAQKFQlFQcVAA/78KbyN50IvoPx5N9rriNXDEmck+e3Jc8uW5EBGh8Ch/D9qY7whX3J64YE9lnr1/6ydhvSwP7pTwcupYsPj4earW60Hm2b99erIDImtZXhdhwDU7lc1lgbLgGWl9VKURF5J44nuxzxW3kijGRe/LkvuTJdSMiIFCtQkyYJt9boWLCNAhUyzfGXXF/4ooxkX3+PspC+62/myel2C/l4VAvCAwMhFarLfRD8vJXe2FoyzDEhmusymPDNXihZRjvUSVyAMeTfa64jVwxJnJPntyXPLluRASU03hjSItQxIRZj3Hz2/fkep4U4Jr7E1eMieyr6O+D+AL6bXyLUFT0d++377FfykMhzA+LskOpVCI5ORkhISElHZOs0tLSoNVqodPpEBQUVNrhFFlmTh502UZkGUzw81ZC66tiJycqIo4n+1xxG7liTOSePLkveXLdiOjeW/jSc4zQ55qg8VEiUK2SNSF1P1fcn7hiTGTfncxcZOaakJVrgp+PEv4+SrdPSN2P/TJ/UnMxkpNSKpUKSUlJTEoREREREREREVGBpOZiJN++JzF3RUREREREREREZJfkpNS+fftQoUKFkoyFiIiIiIiIiIjKCMk3OsbFxZVkHEREREREREREVIa49zsYiYiIiIiIiIjILTEpRURERERERERETsekFBEREREREREROZ3DSam4uDisWbMGWVlZJREPERERERERERGVAQ4npZo0aYLx48cjLCwML774Io4ePVoScRERERERERERkQdzOCm1cOFC/PPPP1i5ciVSUlLQrl071K9fH++99x5u3rxZEjESEREREREREZGHKdIzpby8vNCrVy988cUX+PvvvzFgwABMnToVkZGR6NmzJ/bu3St3nERERERERERE5EGK9aDzX375BdOmTcP8+fMREhKCSZMmoVKlSujWrRvGjx8vV4xERERERERERORhFEII4cgXUlJSsHbtWqxcuRIXL15E9+7dMWzYMHTu3BkKhQIA8NNPP6FLly7IyMgokaAdkZaWBq1WC51Oh6CgoNIOh4iIiIiI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IiLyQA4npT744AN88sknmDJlClQqlaW8WbNmOHXqlKzBERERERERERGRZ3I4KXXlyhU0adLEplytViMzM1OWoIiIiIiIiIiIyLM5nJSKjo5GYmKiTfk333yDevXqyRETERERERERERF5OIffvjdu3DiMHDkS2dnZEELgl19+weeff46EhAR8+umnJREjERERERERERF5GIeTUsOGDYOfnx/efPNN6PV6DBgwABEREVi0aBH69etXEjESEREREREREZGHUQghRFG/rNfrkZGRgZCQEDljklVaWhq0Wi10Oh2CgoJKOxwiIiIiIiIiIo8mNRfj8JVSZikpKbhw4QIAQKFQIDg4uKiLIiIiIiIiIiKiMsbhB52np6fj+eefR0REBOLi4hAXF4eIiAg899xz0Ol0JREjERERERERERF5GIeTUsOGDcPPP/+M3bt3IzU1Fampqdi1axeOHTuG4cOHl0SMRERERERERETkYRx+ppS/vz++/fZbtGnTxqr8xx9/RJcuXZCZmSlrgMXFZ0oRERERERERETmP1FyMw1dKVaxYEVqt1qZcq9WifPnyji6OiIiIiIiIiIjKIIeTUm+++SbGjRuH5ORkS1lycjImTJiAqVOnyhocERERERERERF5Jodv32vSpAkuXbqEnJwcVK1aFQBw/fp1qNVq1KpVy2re3377Tb5Ii4i37xEREREREREROY/UXIyXowvu2bNnceIqlrlz52LSpEl49dVXsXDhwlKLg4iIiIiIiIiIisfhpNS0adNKIg67fv31VyxbtgwNGzYslfUTERGVpsycPOiyjcgymKDxViLIVwV/tcOHcfJwtzNyoTeYoM81wd9HCT9vJSoF+JR2WERuKVVvQHqOEfpcEzQ+SgSqVSin8baax9n7Zikx3cnMRWbuf/sBjY8SFf0d3w+44nFHSv2dzRW3k1ycXTcp67uVkYus+45zvt5KBPM459aK1KNSU1OxdetWXL58GRMmTECFChXw22+/ITQ0FJUrV5Y7RmRkZGDgwIH45JNPMHv2bNmXT0RE5MruZBqw4kgyTifpLWWx4RoMbRmGiv6lezJOruNmei5WHb2JM8n/9ZOYMA3iW4QiNJAn7ESOSEnPxcp8xtOQFqEI+f/jydn7ZikxybUfcMXjjpT6O5srbie5OLtuUtbH45xncvhB57///jtq166NefPm4b333kNqaioAYPv27Zg0aZLc8QEARo4cia5du6JTp04lsnwiIiJXlZmTZ3OSBgCnkvT47EgyMnPySikyciW3M2xP1AHgTLIeq47exO2M3FKKjMj9pOoNNskP4N54Wnn0JlL1Bqfvm6XEdCez8P3AnUxp+wFXPO5Iqb+zueJ2kouz6yZlfbfsHOdu8TjnthxOSo0bNw7x8fG4ePEifH19LeVPPvkkDh48KGtwALBx40b89ttvSEhIkDR/Tk4O0tLSrD5ERETuSpdttDlJMzuVpIcu2+jkiMgV6Q0mmxN1szPJeugNJidHROS+0nOMhY6n9Byj0/fNUmLKzC18P5CZK20/4IrHHSn1dzZX3E5ycXbdpKwvy85xLovHObflcFLq119/xfDhw23KK1eujOTkZFmCMvvrr7/w6quvYv369VYJsMIkJCRAq9VaPpGRkbLGRERE5Ez2TrJ4EkYAoLfzYzNL4o9RIrI/nvS5Jqfvm6XEJNd+wBWPO1Lq72yuuJ3k4uy6SVkfj3Oey+GklFqtzvfqoz/++APBwcGyBGV2/PhxpKSk4KGHHoKXlxe8vLxw4MABLF68GF5eXjAabTO0kyZNgk6ns3z++usvWWMiIiJyJj/vwg/V9qZT2aDxsdNP7Ewnov/YG0+a//8SgcLIvW+WEpNc+wFXPO5Iqb+zueJ2kouz6yZlfTzOeS6HW+6pp57CzJkzYTDcu29XoVDg+vXrmDhxInr37i1rcB07dsSpU6eQmJho+TRr1gwDBw5EYmIiVCqVzXfUajWCgoKsPkRERO5K66tCbLgm32mx4RpofW2PhVT2aLyViAnLv5/EhGmgceMfR0TOFqhWFTqeAtUqp++bpcTk71P4fsBf4o92VzzuSKm/s7nidpKLs+smZX1+do5z7pwELOscbrn58+cjIyMDISEhyMrKQlxcHGrWrInAwEC8/fbbsgYXGBiIBg0aWH38/f1RsWJFNGjQQNZ1ERERuSJ/tReGtgyzOVmLDdfghZZhHvPaaSqeSgE+iG8RanPCbn4rUSW+LptIsnIabwwpYDwNaRGKchpvp++bpcRU0b/w/UBFf2n7AVc87kipv7O54naSi7PrJmV9wXaOc8E8zrkthRBCFOWLP/30E37//XdkZGTgoYcectqb8dq3b4/GjRtj4cKFkuZPS0uDVquFTqfjVVNEROS2MnPyLA/69PNWQuurcusTXioZtzNyoTeYkJVrgp+PEhpvJRNSREWUqjcgPccIfa4JGh8lAtUqm+SHs/fNUmK6k5mLzNz/9gP+PkrJCan7ueJxR0r9nc0Vt5NcnF03Keu7lZGLrPuOc37eSiakXJTUXEyRk1LugkkpIiIiIiIiIiLnkZqLcSjNaTKZsGrVKmzfvh1Xr16FQqFAdHQ0nnnmGTz//PNQKBTFDpyIiIiIiIiIiDyf5GdKCSHw1FNPYdiwYbhx4wZiY2MRExODa9euIT4+Hk8//XRJxklERERERERERB5E8pVSq1atwsGDB/HDDz+gQ4cOVtP27t2Lnj17Ys2aNRg0aJDsQRIRERERERERkWeRfKXU559/jsmTJ9skpADg0UcfxRtvvIH169fLGhwREREREREREXkmyUmp33//HV26dClw+hNPPIGTJ0/KEhQREREREREREXk2yUmpf//9F6GhoQVODw0Nxd27d2UJioiIiIiIiIiIPJvkpJTRaISXV8GPoFKpVMjLy5MlKCIiIiIiIiIi8mySH3QuhEB8fDzUanW+03NycmQLioiIiIiIiIiIPJvkpNTgwYPtzsM37xERERERERERkRSSk1IrV64syTiIiIiIiIiIiKgMkfxMKSIiIiIiIiIiIrkwKUVERERERERERE7HpBQRERERERERETkdk1JEREREREREROR0TEoREREREREREZHTMSlFREREREREREROx6QUERERERERERE5nVdpB0CuKTMnD7psI7IMJmi8lQjyVcFf7frdRUrc7lo3uXhy/T25bkTs3yRFqt6A9Bwj9LkmaHyUCFSrUE7jXdph2cX+7b48ue1csW63M3KhN5igzzXB30cJP28lKgX4WM1zKyMXWffN4+utRPAD80ipm5z7E7m2pZS6kXzkarc7mbnIzP2v3TQ+SlT0L7l2c8Wxy9+pBfP8GpLD7mQasOJIMk4n6S1lseEaDG0Zhor+rntiKyVud62bXDy5/p5cNyL2b5IiJT0XK4/exJnk//pJTJgGQ1qEIiTQdX+0sX+7L09uO1es2830XKzKZ4zHtwhF6P8f41LmkVI3Ofcncm1LKXUj+bhru7ni2OXv1MLx9j2ykpmTZzMYAOBUkh6fHUlGZk5eKUVWOClxu2vd5OLJ9ffkuhGxf5MUqXqDzQ9IADiTrMfKozeRqjeUUmSFY/92X57c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JFefCw7wQXwBy4lvEYrgAL59zxUphBCitIMoSWlpadBqtdDpdAgKCirtcIiIiIioCFL1BqTnGKHPNUHjo0SgWsUfx1SiMnPyoMs2Istggp+3ElpflVsnCBzFMSeNXP3Ek/ub1L4kV5+7lZGLLIMJWbkm+Pko4eetZEKqFEjNxTApRUREREREREREspGai+Hte0RERERERERE5HRMShERERERERERkdMxKUVERERERERERE7HpBQRERERERERETkdk1JEREREREREROR0TEoREREREREREZHTMSlFREREREREREROx6QUERERERERERE5nVdpB1DShBAAgLS0tFKOhIiIiIiIiIjI85lzMOacTEE8PimVnp4OAIiMjCzlSIiIiIiIiIiIyo709HRotdoCpyuEvbSVmzOZTPjnn38QGBgIhUIB4F7GLjIyEn/99ReCgoJKOUIqCWxjz8c29kxsV8/G9vVsbF/Pxzb2XGxbz8W29Xyu2sZCCKSnpyMiIgJKZcFPjvL4K6WUSiWqVKmS77SgoCCXajSSH9vY87GNPRPb1bOxfT0b29fzsY09F9vWc7FtPZ8rtnFhV0iZ8UHnRERERERERETkdExKERERERERERGR05XJpJRarca0adOgVqtLOxQqIWxjz8c29kxsV8/G9vVsbF/Pxzb2XGxbz8W29Xzu3sYe/6BzIiIiIiIiIiJyPWXySikiIiIiIiIiIipdTEoREREREREREZHTMSlFRERERERERERO5zJJqYSEBDz88MMIDAxESEgIevbsiQsXLljNk52djZEjR6JixYoICAhA7969cfPmTat5Ro8ejaZNm0KtVqNx48Y267lw4QI6dOiA0NBQ+Pr6onr16njzzTdhMBjsxrhkyRJERUXB19cXzZs3xy+//GKZdvXqVSgUinw/W7ZsKdpG8TCu3sYHDx5E9+7dERERAYVCgZ07d9rMI4TAW2+9hfDwcPj5+aFTp064ePGiw9vCUzmrje936dIlBAYGoly5cpJiLGwcA8Dy5cvRvn17BAUFQaFQIDU1VdJyPZkntKuZEAJPPPFEgWO8LHL39uXx1z5Xb2Mef4vPWW1c0Hg7evSo3Rh5/HWcJ7SrGY+/1ty9bXnstc/V29iVjr0uk5Q6cOAARo4ciaNHj+L777+HwWDA448/jszMTMs8Y8eOxVdffYUtW7bgwIED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uHPnTtE2igfwhHZ9EPj2HwtPaV8efwvm6m3M42/xOauNV61aJTZs2CDOnTsnzp07J95++22hVCrFZ599Vmh8PP4WjSe064N4/L3HU9qWx96CuXobu9Kx12WSUgDy/axcudIyT1ZWlhgxYoQoX7680Gg04umnnxZJSUlWy4mLi8t3OVeuXBFC3BtgDz30kAgICBD+/v6ifv36Ys6cOZI27AcffCCqVq0qfHx8xCOPPCKOHj1qM8+kSZNEZGSkMBqNxdoensjV29j8CuIHP4MHD7bMYzKZxNSpU0VoaKhQq9WiY8eO4sKFC3JtIrfnrDZ+kCOvHbc3jqdNm2a3DmWNJ7Tr/2PvvqObqv//gT+T0KZNmqaMLqC07FHKRtmlgGwUBQHhAxQE9Qt8EBRQQEREpuwhS2WJgyWiiCIfcTFEEZAtIAXEljJsOlLatHn//uCX2JC0uaG3aZo+H+f0HLj35t7Xve9xb165930d7RMviu/zlvLl+Td/nl7GPP8WnrvKeMOGDaJu3bpCo9GIwMBA8cgjj9i8zrwgPP+6zhvK1dE+8fzrPWXLc2/+PL2MPencqxBCCBAREREREREREbmRx4wpRUREREREREREpQeTUkRERERERERE5HZMShERERERERERkdsxKUVERERERERERG7HpBQREREREREREbkdk1JEREREREREROR2TEoREREREREREZHbMSlFRERERERERERux6QUERERERERERG5HZNSRERERERERETkdkxKERERERERERGR2zEpRUREREREREREbsekFBERERERERERuR2TUkRERERERERE5HZMShERERERERERkdsxKUVERERERERERG7HpBQREREREREREbkdk1JEMvnuu++gUCiwffv2It/WxYsX0blzZ+j1eigUCuzatavIt1naWcr3u+++Yxxu9NVXX6FRo0bw8/ODQqFASkpKcYdE/19x1sX4+HhERUW5fbtUemzYsAEKhQIJCQnFHQpJlJOTg0mTJiEiIgJKpRK9e/d26/bZL/3rjTfegEKhwO3bt2VbZ1RUFHr27FmodbBdE3kmJqXIJZcvX8bzzz+PatWqwc/PD4GBgWjdujWWLl2KzMxM63KzZ89GixYtEBwcDD8/P9SsWRPjxo3DrVu3Hnrbli9Alj+1Wo3Q0FC0b98es2fPLtS6XfHhhx9iyZIlbtlWfoYOHYpTp05h1qxZ2Lx5M5o1a+ZwuYSEBJsvjQqFAhs2bLBbTmq5kq3C1gVLnU5ISLArK3fLzc3F+vXr0b59e5QrVw5qtRpRUVEYNmwYfv3112KJ6c6dO+jXrx/8/f2xcuVKbN68GVqttlhioZLJbDZj06ZNePTRR1GuXDnodDrUqlULQ4YMwZEjR4p0219++SXeeOONIt2GO8XHx9ucgwMCAlCtWjX07dsXO3bsgNlsLu4QKQ/Ll29nf96URHn//ffx9ttvo2/fvti4cSPGjx+f77Lt27e3OQ7+/v5o0KABlixZUqrq8tmzZ/HGG29ITtJYkk2WP41Gg3r16uG1115Dampq0QZbAhRnv//pp5+iW7duqFChAnx9fVGxYkX069cP3377bbHE44lmz57NH/I9VJniDoBKjj179uDpp5+GWq3GkCFDUL9+fWRnZ+Onn37CxIkTcebMGaxduxYAcOzYMTRq1AgDBgyATqfDuXPnsG7dOuzZswcnTpwo1BfLsWPHonnz5sjNzcWtW7dw6NAhTJ8+HYsWLcLWrVvRoUMHuXbZoQ8//BCnT5/GuHHjinQ7+cnMzMThw4cxdepUjBkzptDrc6VcS7N27dohMzMTvr6+1mnFURccxVFYmZmZeOqpp/DVV1+hXbt2mDJlCsqVK4eEhARs3boVGzduxLVr11C5cmXZtinFL7/8grS0NMycOROdOnVy67bJO4wdOxYrV67EE088gUGDBqFMmTK4cOEC9u7di2rVqqFFixZFtu0vv/wSK1eu9KrElFqtxrvvvgvgfr9x9epVfP755+jbty/at2+Pzz77DIGBgcUcJQH3zxWbN2+2mTZixAg88sgjeO6556zTAgIC3B1akfn2229RqVIlLF68WNLylStXxpw5cwAAt2/fxocffojx48fj1q1bmDVrVlGG6jHOnj2LGTNmoH379i4lKFetWoWAgACkp6dj3759mDVrFr799lscPHgQCoWi6AIupMGDB2PAgAFQq9VFsv7i6PeFEBg+fDg2bNiAxo0b46WXXkJYWBgSExPx6aefomPHjjh48CBatWrltpg81ezZs9G3b1+330VJzjEpRZJcuXIFAwYMQGRkJL799luEh4db540ePRqXLl3Cnj17rNN27Nhht46WLVuib9+++PzzzzFgwICHjqVt27bo27evzbSTJ0+ic+fO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MTGiQYMGYtGiReLVV18Vfn5+olatWsJoNAohhNi3b59o1KiRqFChgti8ebPYvHmz+PTTT23W0bhxY9G0aVOxePFi8cYbbwiNRiMeeeQRp/t3+vRpodVqRXh4uJg5c6aYO3euqFq1qlCr1eLIkSNCCCFOnjwpFi9eLACIZ555xmb7jly5ckUAEAcOHBBCCAFArF+/3jrf1XIdOnSoACD69u0rVq5cKYYMGSIAiN69e9ssFxkZKWrXri3Cw8PFG2+8IRYvXiwqVaokAgICxAcffCCqVKki5s6dK+bOnSv0er2oUaOGyM3NtdmOn5+fqFevnnjhhRfEypUrRatWrazxV6xYUUycOFEsX75cREdHC5VKJf7880/r56dPny4cdW/r168XAMSVK1fsYg0NDRVTpkwRK1asEE2aNBEKhUKcPn3aupylfC3HsqC6MGjQIBEaGipycnJstj9//nyhUCjE1atXbdZ55coVu7LKz4NxCCFEbGysqFixooiIiBAvvviieOedd0SHDh0EAPHll18WuL61a9cKAGLTpk0FLmchpZ4K8e+xrlevnoiNjRXLly8Xc+fOFUIIsWnTJqFQKETXrl3F8uXLxbx580RUVJQICgqyls2+ffvEc889JwCIN998U2zevFkcOnRICCHE//73P+Hr6ytatmwpFi5cKBYvXiwaNGggfH19xc8//2yNwVIP6tWrJ5544gnxzjvviJUrVwohhHjrrbeEQqEQ/fv3F++8846YMWOGqFChgoiKihL//POPy8c2JydHdOzYUQAQAwYMECtWrBBz5swRHTp0ELt27bIuN2LECFGmTBkxcuRIsXr1avHKK68IrVYrmjdvLrKzs50efwCibt26Ijg4WMyYMUOsXLlSHD9+XHJfZynvvn37ijVr1oilS5eKZ599VowdO9blMn6wLv7www8CgNi6datNzBkZGUKr1YrRo0dbp0mpA0II8fXXXwulUinq168vFi1aJKZOnSr0er2Ijo52et74+++/BQDRo0cPkZGRUeCyGRkZokGDBqJ8+fJiypQpYvXq1WLIkCFCoVCIF1980bqcpZ02btxY1KhRQ8ybN0/Mnz9fVKhQQVSuXNlahocOHRKPPfaYAGDtHzZv3mxdj9R6ILV/SktLE/Xr1xcqlUqMHDlSrFq1SsycOVM0b95cHD9+XAghRG5urujcubPQaDRi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ws/PT1SqVEnMnDlTvPfee3bnC1f350GWPimvnJwc8fbbb4s6deoIX19fERwcLLp16yaOHTtm9/n58+cLAGL27Nl286R48HXozq4nLl++LIYMGSLCwsKEj4+PqFSpkujZs6fYvn27zXJS2s727dtF586dRUhIiPW8/Pzzz4vExESncaelpYnx48eLihUrCh8fH1GzZk3x9ttv27Xh/PprRwpa9rvvvrNrz1LOF/n1S670+YMGDRIARKdOnRzGtnv3btGgQQPh5+cnoqKixLx588T777//0Nc2Qgixbt06Ua1aNaFSqfLt0y2cnVedLefoOszVffr6669FgwYNhFqtFnXq1LG77i7o2sHR9i0xtGrVSvj7+4vAwEDxyCOPiI8++sg6/+zZs6JTp04iICBAVKhQQYwcOVKcPHnS7vq+oH5faj0u6DxfEEsbK1eunChTpowIDw8X/fv3F999953NcpcvXxZ9+/YVQUFBws/PTzzyyCPiiy++sFkmv+80+R1bR+Ut9Zq/oO0V5lrPUVmfP39etGvXTvj7+wsAYujQoSIrK0tMnDhRNGzYUOh0OqHVakXDhg3FO++84+gwUxFRCOFhoy8TFYPvvvsOcXFx2LZt20PfqUDkyJNPPolTp07h0qVLxR0KEZFHio+Px/bt253e/VbaLV26FOPHj0dCQoLDN6sRERGVRJ5xjx4RkRdKTEzEnj17ZHttNxERlU5CCLz33nuIjY1lQoqIiLwKx5QiIpLZlStXcPDgQbz77rvw8fHB888/X9whERFRCZSRkYHdu3fjwIEDOHXqFD777LPiDomIiEhWTEoREcns+++/x7Bhw1ClShVs3Ljxod4IQ0REdOvWLQwcOBBBQUGYMmUKHn/88eIOiYiISFYcU4qIiIiIiIiIiNyOY0oREREREREREZHbMSlFRERERERERERux6QUERERERERERG5ndcPdG42m/H3339Dp9NBoVAUdzhERERERERERF5NCIG0tDRUrFgRSmX+90N5fVLq77//RkRERHGHQURERERERERUqly/fh2VK1fOd77XJ6V0Oh2A+wciMDCwmKMhIiIiIiIiIvJuqampiIiIsOZk8uP1SSnLI3uBgYFMShERERERERERuYmzYZQ40DkREREREREREbkdk1JEREREREREROR2TEoREREREREREZHbef2YUlLl5ubC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w9/fHzqdDhMmTMD48eNhNpvRpk0bGAwGHDx4EIGBgRg6dCheeOEFLFy4EBMnTsSIESNw7NgxuwHDH1SjRg2YTCYsX74cvXr1wsGDB61jfVm0b98et27dwvz589G3b1989dVX2Lt3LwIDA63LREVF4euvv8aFCxdQvnx56PV6Scfj5ZdfRvPmzTFz5kz0798fhw8fxooVK5yOZ7Vo0SKEh4ejcePGUCqV2LZtG8LCwqxjcBERERERERHJiWNKFUKZAB30teo6nKevVRdlAnRFtu24uDhkZmaiRo0aCA0NtU6PjY1FWloaateubR1rKD/ly5eHv3/BiTVXPP744xg/fjzGjBmDRo0a4dChQ9bBtotScHAwNmzYgG3btqFevXqYO3cuFixYYLNMpUqVMGPGDLz66qsIDQ3FmDFjAAAzZ87EtGnTMGfOHNStWxddu3bFnj17ULVqVQD3E147duzArl270LBhQ6xevRqzZ88uMJ6GDRti0aJFmDdvHurXr48tW7Zgzpw5NsvUrVsX77zzDlauXImGDRvi6NGjdo9Djhw5ErVr10azZs0QHBxsd/dTfpo0aYKtW7fi448/Rv369fH666/jzTfftBnk3BGdTof58+ejWbNmaN68ORISEvDll19a7/YiIiIiIiIikpNCPDiwjZdJTU2FXq+HwWCwuQsFAO7du4crV66gatWq8HvIu5qyUv7Bn9u3wODGt+8ReQI52g8RERERERF5n4JyMXnx8b1CUgeVRY2Bw5CTnoace/dQxs8PZQJ0RTLAORERERERERGRt2BSSgY+Gi2TUERERERERERELuBgMURERERERERE5HZMShERERERERERkdsxKUVERERERERERG7HpBQREREREREREbkdk1JEREREREREROR2TEoREREREREREZHbMSlFRERERERERERux6QUyWLt2rWIiIiAUqnEkiVLHE5744030KhRI+tn4uPj0bt3b+v/27dvj3Hjxrk1bovvvvsOCoUCKSkpbt92QkICFAoFTpw44fZtExERERERERUXJqVKoPj4eCgUCsydO9dm+q5du6BQKNweT2pqKsaMGYNXXnkFN27cwHPPPedw2oQJE/C///0v3/Xs3LkTM2fOlLzd4kwkPawHE3FEREREREREpRWTUiWUn58f5s2bh3/++ae4Q8G1a9dgMpnQo0cPhIeH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5OGxLSUsLAwAcPPmTZvpN2/etM5zRK1WIzAw0OaPiEgqTxorjoiIiEouXlN4N5YvkTw8NilVtWpVhIWF4X//+591WmpqKn7++We0bNmyGCMjIm+mVZfB8JZhdhcZlrHieCckERERScFrCu/G8iWSR7G2lPT0dFy6dMn6/ytXruDEiRMoV64cqlSpgnHjxuGtt95CzZo1UbVqVUybNg0VK1a0DoZORFQUOFYcERERyYHXFN6N5UtUeMXaWn799VfExcVZ///SSy8BAIYOHYoNGzZg0qRJyMjIwHPPPYeUlBS0adMGX331lexv+vKQFxASlSje3m606jK8oCAiIqJC4zWFd2P5EhWOQnj5N8uCXkOYm5uLP/74AyEhIShfvnwxRUhUMt25cwfJycmoVasWVCo+M09ERERERET3FZSLyatUp3RVKhWCgoKQnJwMANBoNFAoFMUcFZFnE0LAaDQiOTkZQUFBTEgRERERERHRQynVSSng37f8WRJTRCRNUFBQgW/CJCIiIiIiIipIqU9KKRQKhIeHIyQkBCaTqbjDISoRfHx8eIcUERERERERFUqpT0pZqFQqfskmIiIiIiIiInITZXEHQEREREREREREpQ+TUkRERERERERE5HZMShERERERERERkdsxKUVERERERERERG7HpBQREREREREREbkdk1JEREREREREROR2TEoREREREREREZHbMSlFRERERERERERux6QUERERERERERG5HZNSRERERERERETkdkxKERERERERERGR2zEpRUREREREREREbsekFBERERERERERuR2TUkRERERERERE5HZMShERERERERERkduVKe4AiOSUkZUDw71cZJrM0PgoEeinglbNak5ERFTS8RxPcpJSn+Sqc3LWXXfGTUTkDuydyGvcyTDhvcNJOJ1otE6LCddgeMswlNf6FGNkREREVBg8x5OcpNQnueqcnHXXnXETEbkLH98jr5CRlWN3AgaAU4lGvH84CRlZOcUUGRERERUGz/EkJyn1Sa46J2fddWfcRETuxKQUeQXDvVy7E7DFqUQjDPdy3RwRERERyYHneJKTlPokV52Ts+66M24iInfi43vkFTJN5kLNJyIiIs/EczzJSY76JLXOyVl33Rk3EZE7MSlFXsHfp+Cb/pzNJyIiIs/EczzJSY76JLXOyVl33Rk3EZE7sWcir6D3UyEmXONwXky4Bno/lZsjIiIiIjnwHE9yklKf5KpzctZdd8ZNROROTEqRV9Cqy2B4yzC7E3FMuAbPtgzja3CJiIhKKJ7jSU5S6pNcdU7OuuvOuImI3EkhhBDFHURRSk1NhV6vh8FgQGBgYHGHQ0UsIysHhnu5yDSZ4e+jhN5PxRMwERGRF+A5nuQkpT7JVefkrLvujJuIqDCk5mLYO5FXsfxKRERERN6F53iSk5T6JFedk7PuujNuIiJ34ON7RERERERERETkdkxKERERERERERGR2z3UfZ0pKSk4evQokpOTYTabbeYNGTJElsCIiIiIiIiIiMh7uZyU+vzzzzFo0CCkp6cjMDAQCoXCOk+hUDApRURERERERERETrn8+N7LL7+M4cOHIz09HSkpKfjnn3+sf3fv3i2KGImIiIiIiIiIyMu4nJS6ceMGxo4dC41GUxTxEBERERERERFRKeByUqpLly749ddfiyIWIiIiIiIiIiIqJSSNKbV7927rv3v06IGJEyfi7NmziImJgY+Pj82yjz/+uLwREhERERERERGR11EIIYSzhZRKaTdUKRQK5ObmFjooOaWmpkKv18NgMCAwMLC4wyEiIiIiIiIi8mpSczGS7pQym82yBUZEREREREREROTymFKbNm1CVlaW3fTs7Gxs2rRJlqCIiIiIiIiIiMi7SXp8Ly+VSoXExESEhITYTL9z5w5CQkL4+B4RERERERERUSkmNRfj8p1SQggoFAq76X/99Rf0er2rqyMiIiIiIiIiolJI0phSANC4cWMoFAooFAp07NgRZcr8+9Hc3FxcuXIFXbt2LZIgiYiIiIiIiIjIu0hOSvXu3RsAcOLECXTp0gUBAQHWeb6+voiKikKfPn1kD5CIiIiIiIiIiLyP5KTU9OnTAQBRUVHo378//Pz8iiwoIiIiIiIiIiLybpKTUhZDhw4FAPz66684d+4cAKBevXpo2rSpvJEREREREREREZHXcjkpdePGDQwYMAAHDx5EUFAQACAlJQWtWrXCxx9/jMqVK8sdIxEREREREREReRmX37737LPPwmQy4dy5c7h79y7u3r2Lc+fOwWw2Y8SIEUURIxEREREREREReRmFEEK48gF/f38cOnQIjRs3tpl+7NgxtG3bFkajUdYACys1NRV6vR4GgwGBgYHFHQ4RERERERERkVeTmotx+U6piIgImEwmu+m5ubmoWLGiq6srUG5uLqZNm4aqVavC398f1atXx8yZM+FiHo2IilFGVg7+NmTh8u1MJBqykJGVU9whEZVIbEtERCUT+29iHSDKn8tjSr399tv473//i5UrV6JZs2YA7g96/uKLL2LBggWyBjdv3jysWrUKGzduRHR0NH799VcMGzYMer0eY8eOlXVbRCS/OxkmvHc4CacT/72DMiZcg+Etw1Be61OMkRGVLGxLREQlE/tvYh0gKpjLj++VLVsWRqMROTk5KFPmfk7L8m+tVmuz7N27dwsVXM+ePREaGor33nvPOq1Pnz7w9/fHBx98IGkdfHyPqHhkZOVg5Y+JNidgi5hwDUa1DYdW7XJenKjUYVsiIiqZ2H8T6wCVZlJzMS63gCVLlhQmLpe0atUKa9euxR9//IFatWrh5MmT+Omnn7Bo0aJ8P5OVlYWsrCzr/1NTU90RKhE9wHAv1+EJGABOJRphuJfLkzCRBGxLREQlE/tvYh0gcs7lFjB06NCiiMOhV199FampqahTpw5UKhVyc3Mxa9YsDBo0KN/PzJkzBzNmzHBbjETkWKbJXKj5RHQf2xIRUcnE/ptYB4icc3mgcwC4fPkyXnvtNTzzzDNITk4GAOzduxdnzpyRNbitW7diy5Yt+PDDD/Hbb79h48aNWLBgATZu3JjvZyZPngyDwWD9u379uqwxEZE0/j4Fdy/O5hPRfWxLREQlE/tvYh0gcs7lVvD9998jJiYGP//8M3bu3In09HQAwMmTJzF9+nRZg5s4cSJeffVVDBgwADExMRg8eDDGjx+POXPm5PsZtVqNwMBAmz8icj+9nwox4RqH82LCNdD7qdwcEVHJxLZERFQysf8m1gEi51xOSr366qt466238M0338DX19c6vUOHDjhy5IiswRmNRiiVtiGqVCqYzbzNkcjTadVlMLxlmN2JOCZcg2dbhvH5eSKJ2JaIiEom9t/EOkDknMut4NSpU/jwww/tpoeEhOD27duyBGXRq1cvzJo1C1WqVEF0dDSOHz+ORYsWYfjw4bJuh4iKRnmtD0a1DYfhXi4yTWb4+yih91PxBEzkIrYlIqKSif03sQ4QFczllhAUFITExERUrVrVZvrx48dRqVIl2QIDgOXLl2PatGkYNWoUkpOTUbFiRTz//PN4/fXXZd0OERUdrboMT7pEMmBbIiIqmdh/E+sAUf4UQgjhygcmTJiAn3/+Gdu2bUOtWrXw22+/4ebNmxgyZAiGDBki+7hShZWamgq9Xg+DwcDxpYiIiIiIiIiIipjUXIzLY0rNnj0bderUQUREBNLT01GvXj20a9cOrVq1wmuvvVaooImIiIiIiIiIqHRw+U4pi2vXruH06dNIT09H48aNUbNmTbljkwXvlCIiIiIiIiIich+puZiHfrC1SpUqqFKlysN+nIiIiIiIiIiISjGXHt/LyMjA66+/jvr16yMgIAA6nQ4NGjTAm2++CaPRWFQxEhERERERERGRl5F8p1R2djZiY2Nx+vRpdOvWDb169YIQAufOncOsWbOwd+9e/PDDD/Dx8SnKeImIiIiIiIiIyAtITkqtWrUKf/31F06ePInatWvbzDt//jzat2+P1atX47///a/sQRIRERERERERkXeR/Pjezp07MW3aNLuEFADUqVMHU6dOxfbt22UNjoiIiIiIiIiIvJPkpNTZs2fRvn37fOfHxcXh7NmzcsREREREREREREReTnJSKiUlBeXLl893fvny5WEwGGQJioiIiIiIiIiIvJvkpJTZbIZKpcp/RUolcnNzZQmKiIiIiIiIiIi8m+SBzoUQ6NixI8qUcfyRnJwc2YIiIiIiIiIiIiLvJjkpNX36dKfL9OnTp1DBEBERERERERFR6aAQQojiDqIopaamQq/Xw2AwIDAwsLjDISIiIiIiIiLyalJzMZLHlCIiIiIiIiIiIpILk1JEREREREREROR2TEoREREREREREZHbMSlFRERERERERERuV6ik1L179+SKg4iIiIiIiIiIShGXk1JmsxkzZ85EpUqVEBAQgD///BMAMG3aNLz33nuyB0hERERERERERN6njKsfeOutt7Bx40bMnz8fI0eOtE6vX78+lixZgmeffVbWAOm+jKwcGO7lItNkhsZHiUA/FbRql4uPiMD2JIUnHiNPjIlKJm+uS968b0SeSEqbk7NdphhNSMvKhTHbDI2vEjq1CkEanyLZnif2J54YEzl3JyMbGdlmGLPN0PoqofFVorzWt7jDkg3rZeG4fKQ2bdqEtWvXomPHjnjhhRes0xs2bIjz58/LGhzddyfDhPcOJ+F0otE6LSZcg+Etw1Be61PAJ4noQWxPznniMfLEmKhk8ua65M37RuSJpLQ5Odtlclo2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RF7B3f0b+1OSS4rRhLSsXBizzdD4KqFTq5iQIq8hpX67uw3cychGRrYZmdlm+PsqofVVMiFVzHgOl48375u3kZqLcTkpdeXKFeTk5KBmzZo20y9evAgfHx9ERUU9VMBFhUkpIiIiIiIiIiL3kZqLcfnxvfj4eBw6dMhu+s8//4z4+HhXV0dERERERERERKWQy0mp48ePo3Xr1nbTW7RogRMnTsgRExEREREREREReTmXk1IKhQJpaWl20w0GA3Jzc2UJioiIiIiIiIiIvJvLSal27dphzpw5Ngmo3NxczJkzB23atJE1OCIiIiIiIiIi8k4uD1M/b948tGvXDrVr17a+he/HH39Eamoqvv32W9kDJCIiIiIiIiIi7+PynVL16tXD77//jn79+iE5ORlpaWkYMmQIzp8/j/r16xdFjERERERERERE5GUUQghR3EEUJamvISQiIiIiIiIiosKTmotx+fE9AEhJScHRo0eRnJwMs9lsM2/IkCEPs0oiIiIiIiIiIipFXE5Kff755xg0aBDS09MRGBgIhUJhnadQKJiUIiIiIiIiIiIip1weU+rll1/G8OHDkZ6ejpSUFPzzzz/Wv7t37xZFjERERERERERE5GVcTkrduHEDY8eOhUajKYp4iIiIiIiIiIioFHA5KdWlSxf8+uuvRRELERERERERERGVEi6PKdWjRw9MnDgRZ8+eRUxMDHx8fGzmP/7447IFR0RERERERERE3kkhhBCufECpzP/mKoVCgdzc3EIHJSepryEkIiIiIiIiIqLCk5qLcflOKbPZXKjAiIiIiIiIiIiIXB5TKq979+7JFQcREREREREREZUiLielcnNzMXPmTFSqVAkBAQH4888/AQDTpk3De++9J3uARERERERERETkfVxOSs2aNQsbNmzA/Pnz4evra51ev359vPvuu7IGR0RERERERERE3snlpNSmTZuwdu1aDBo0CCqVyjq9YcOGOH/+vKzBERERERERERGRd3I5KXXjxg3UqFHDbrrZbIbJZJIlKCIiIiIiIiIi8m4uv32vXr16+PHHHxEZGWkzffv27WjcuLFsgZHrMrJyYLiXi0yTGRofJQL9VNCqXS5i2dflTlLidue+GdKMSM8WMJrM0PiqEOAD6HWah4rbnaTG4864U4wmpGXlwphthsZXCZ1ahSCNj8vLkDSeVieJSjK52pNc5zhPbN+eGBOVTFKvBW6nZ8NoMsOYbYbWVwl/HyUqBPg6WGPh3cnIRkb2v9vS+CpRXmu7LTmvvW6lZyMzz775+SgRXET75m6l/VrP3dfontg3e2JMVDgul97rr7+OoUOH4saNGzCbzdi5cycuXLiATZs24YsvviiKGEmCOxkmvHc4CacTjdZpMeEaDG8ZhvJa1zpqOdflTlLidue+3TZk4r2jt3Am6d+3VNYP88PwR0JQQe/vUtzuJDUed8adnJaN9Udu4kzSv9uKDtNgWItQhOh8JS9D0nhanSQqyeRqT3Kd4zyxfXtiTFQySb0WuJmWjQ0OlotvEYpQma8ZpGxLzmsvd+6bu5X2az13X6N7Yt/siTFR4bn8+N4TTzyBzz//HPv374dWq8Xrr7+Oc+fO4fPPP8djjz1WFDGSExlZOXaNEwBOJRrx/uEkZGTlFMu63ElK3O7cN0OaEe8dTbZJSAHA6aR7eP9oMgxpRslxu5PUeNwZd4rRZHcBAgBnkoxYf+QmUowmScuQNJ5WJ4lKMrnak1znOE9s354YE5VMUq8FbqfbJ20sy204chO307Nli+lORsHbupORLeu11y0n+3ZLxn1zt9J+refua3RP7Js9MSaSx0Pd59a2bVt88803csdCD8lwL9eucVqcSjTCcC9X8i2Ncq7LnaTEDcBt+5aeLewSUhank+4hPVtALzFudx5vqfG4M+60rFy7CxCLM0lGpGXlWv9d0DKl6dbuwvC0OklUksnVnuQ6x0lZxt3tm30OyUXK9UKQxgdGk7nA5Ywms2wxZWQXvK2MbDOycoRs1145ZlHg9jJl3Dd3k1q+3srd1+ie2Dd7YkwkD5aaF3B2gnHlBCTnutxJjrjl3DdnFzSW+Z52vKXG4864jdlOjqWT+VKXofs8rU4SlWRytSd3neOKo32zzyG5SL1ecLZcpozXDFK2VUalKHgZF669TLnC6fZKKjmuB0syd1+je2Lf7IkxkTwkJaXKli0LhaLgDtPi7t27hQqIXOfvU/BTmM7mF9W63EmOuOXcN42TdVnme9rxlhqPO+PW+Do5lk7mS12G7vO0OklUksnVntx1jiuO9s0+h+Qi9XrB2XL+Ml4zSNlWGWXB37FcufbyURWclJJz39xNjuvBkszd1+ie2Dd7YkwkD0klt2TJEixevBiLFy/Ga6+9BgDo0qUL3njjDbzxxhvo0qULAGDatGlFFynlS++nQky4/RvdgPsDv+n9VMWyLneSErc79y3AV4H6YX4O59UP80OA7/0LEE873lLjcWfcOrUK0WGOtxUdpoFOrZK0DEnjaXWSqCSTqz3JdY7zxPbtiTFRyST1WkDjoyxwOWc/LLpC61vwtrS+Slmvvfyd7FtJ/tJe2q/13H2N7ol9syfGRPJQCCEKTqk/oE+fPoiLi8OYMWNspq9YsQL79+/Hrl275Iyv0FJTU6HX62EwGBAYGFjc4RSZOxkmvH84CaceeBPBsy3DUO4h3r4n17rcSUrc7ty324ZMvH80GaclvH3Pk4631HjcGTffvudenlYniUoyudqTXOc4T2zfnhgTlUwl+e17cl178e173svd1+ie2Dd7YkyUP6m5GJeTUgEBAThx4gRq1KhhM/3SpUto1KgR0tPTHy7iIlJaklLA/TcSGO7lItNkhr/P/V9eHnawNznX5U5S4nbnvhnSjEjPFjCazND4KBHgq4BeZ5/h97TjLTUed8adYjQhLSsXxmwzNL5K6NQquwEtpSxD0nhanSQqyeRqT3Kd4zyxfXtiTFQySb0WuJ2eDaPJjMxsM/x9ldD4KFEhoGgSG3cyspGR/e+2tL5KlNfabkvOa69b6dnIzLNv/j5KBBfRvrlbab/Wc/c1uif2zZ4YEzlWZEmpyMhIjB07Fi+//LLN9IULF2LZsmW4evXqw0VcREpTUoqIiIiIiIiIqLhJzcW4nFKcMWMGRowYge+++w6PPvooAODnn3/GV199hXXr1j18xEREREREREREVGq4nJSKj49H3bp1sWzZMuzcuRMAULduXfz000/WJBUREREREREREVFBXH58r6Th43tERERERERERO5TZI/vAYDZbMalS5eQnJwMs9lsM69du3YPs0oiIiIiIiIiIipFXE5KHTlyBAMHDsTVq1fx4E1WCoUCubm5sgVHRERERERERETeyeWk1AsvvIBmzZphz549CA8Ph0KhKIq4iIiIiIiIiIjIi7mclLp48SK2b9+OGjVqFEU8RERERERERERUCihd/cCjjz6KS5cuFUUsRERERERERERUSrh8p9R///tfvPzyy0hKSkJMTAx8fHxs5jdo0EC24IiIiIiIiIiIyDspxIOjlTuhVNrfXKVQKCCE8MiBzqW+hpCIiIiIiIiIiApPai7G5Tulrly5UqjAiIiIiIiIiIiIXE5KRUZGFkUcRERERERERERUirg80DkAbN68Ga1bt0bFihVx9epVAMCSJUvw2WefyRocERERERERERF5J5eTUqtWrcJLL72E7t27IyUlxTqGVFBQEJYsWSJ3fERERERERERE5IVcTkotX74c69atw9SpU6FSqazTmzVrhlOnTskaHBEREREREREReSeXk1JXrlxB48aN7aar1WpkZGTIEhQREREREREREXk3l5NSVatWxYkTJ+ymf/XVV6hbt64cMRERERERERERkZdz+e17L730EkaPHo179+5BCIGjR4/io48+wpw5c/Duu+8WRYxERERERERERORlXE5KjRgxAv7+/njttddgNBoxcOBAVKxYEUuXLsWAAQOKIkYiIiIiIiIiIvIyLj++BwCDBg3CxYsXkZ6ejqSkJPz111949tln5Y7Nzty5c6FQKDBu3Lgi3xYRERERERERERUdl++UskhOTsaFCxcAAAqFAsHBwbIF5cgvv/yCNWvWoEGDBkW6HSrZMrJyYLiXi0yTGRofJQL9VNCqy7i8jDcr7ftP0rCeeB6WCUlxOz0bRpMZxmwztL5K+PsoUSHAt7jDkgXbALlbitGEtKxcGLPN0PgqoVOrEKTxsVnG3fVSSkxy8cQ25879J/eTUudupWcjM895zs9HiWAvOc+VVi73KmlpaRg1ahQ++ugjmM1mAIBKpUL//v2xcuVK6PV62YNMT0/HoEGDsG7dOrz11luyr5+8w50ME947nITTiUbrtJhwDYa3DEN5rY/kZbxZad9/kob1xPOwTEiKm2nZ2HDkJs4k/VtPosM0iG8RilBdyb5gZxsgd0tOy8Z6B+1pWItQhPz/9uTueiklJrl4Yptz5/6T+0mpc958nivNXH58b8SIEfj555+xZ88epKSkICUlBV988QV+/fVXPP/880URI0aPHo0ePXqgU6dORbJ+KvkysnLsOjEAOJVoxPuHk5CRlSNpGW9W2vefpGE98TwsE5Lidrr9hToAnEkyYsORm7idnl1MkRUe2wC5W4rRZJf8AO63p/VHbiLFaHJ7vZQSk1w8sc25c//J/aTUuVtOznO3SvB5rrRz+U6pL774Al9//TXatGljndalSxesW7cOXbt2lTU4APj444/x22+/4ZdffpG0fFZWFrKysqz/T01NlT0m8jyGe7l2nZjFqUQjDPdyAcDpMsV9S3JRknKMvHn/SRrWE8/DMiEpjCaz3YW6xZkkI4wms5sjkg/bALlbWlZuge0pLSsXKqXCrfVSSkxyPcbmiW3OnftP7ielzuWYRYF1ILMEn+dKO5fvlCpfvrzDR/T0ej3Kli0rS1AW169fx4svvogtW7bAz89P0mfmzJkDvV5v/YuIiJA1JvJMzjqhTJNZ0jLerLTvP0nDeuJ5WCYkhTHbST1xMt+TsQ2QuzlrT8Zs919XSolJLp7Y5ty5/+R+UuqcN5/nSjuXk1KvvfYaXnrpJSQlJVmnJSUlYeLEiZg2bZqswR07dgzJyclo0qQJypQpgzJlyuD777/HsmXLUKZMGeTm5tp9ZvLkyTAYDNa/69evyxoTeSZ/n4Krsr+PUtIy3qy07z9Jw3rieVgmJIXG10k9cTLfk7ENkLs5a08aX/dfV0qJSS6e2Obcuf/kflLqnDef50o7l0tu1apVOHLkCKpUqYIaNWqgRo0aqFKlCg4dOoQ1a9agSZMm1r/C6tixI06dOoUTJ05Y/5o1a4ZBgwbhxIkTUKlUdp9Rq9UIDAy0+SPvp/dTISZc43BeTLgGej+VpGW8WWnff5KG9cTzsExICo2PEtFhjutJdJgGmhKcuGEbIHfTqVUFtied2v3XlVJikosntjl37j+5n5Q65+/kPMcfKEouhRBCuPKBGTNmSF52+vTpLgfkTPv27dGoUSMsWbJE0vKpqanQ6/UwGAxMUHm5OxkmvH84CaceeGPDsy3DUC7P2/ecLePNSvv+kzSsJ56HZUJSePNbidgGyN2kvn3PnfXS3W/f87Q2x7fveTcpdc6bz3PeSGouxuWkVHFjUooKkpGVA8O9XGSazPD3UULvp7IbiFHKMt6stO8/ScN64nlYJiTF7fRsGE1mZGab4e+rhMZHiQoB3nGhzjZA7pZiNCEtKxfGbDM0vkro1Cq7wbTdXS+lxCQXT2xz7tx/cj8pde5Wevb98YL//3nO30eJYC85z3mbIk1KpaSkYPv27bh8+TImTpyIcuXK4bfffkNoaCgqVapUqMDlxqQUEREREREREZH7SM3FuJzq/v3339GpUyfo9XokJCRg5MiRKFeuHHbu3Ilr165h06ZNhQqciIiIiIiIiIi8n8ujgb300pJe0gUAABv1SURBVEuIj4/HxYsX4efnZ53evXt3/PDDD7IGR0RERERERERE3snlpNQvv/yC559/3m56pUqVkJSUJEtQRERERERERETk3VxOSqnVaqSmptpN/+OPPxAcHCxLUERERERERERE5N1cTko9/vjjePPNN2EymQAACoUC165dwyuvvII+ffrIHiAREREREREREXkfl5NSCxcuRHp6OkJCQpCZmYnY2FjUqFEDOp0Os2bNKooYiYiIiIiIiIjIy7j89j29Xo9vvvkGP/30E37//Xekp6ejSZMm6NSpU1HER0REREREREREXkghhBDFHURRSk1NhV6vh8FgQGBgYHGHQ0RERERERETk1aTmYly6U8psNmPDhg3YuXMnEhISoFAoULVqVfTt2xeDBw+GQqEodOBEREREREREROT9JI8pJYTA448/jhEjRuDGjRuIiYlBdHQ0rl69ivj4eDz55JNFGScREREREREREXkRyXdKbdiwAT/88AP+97//IS4uzmbet99+i969e2PTpk0YMmSI7EESEREREREREZF3kXyn1EcffYQpU6bYJaQAoEOHDnj11VexZcsWWYMjIiIiIiIiIiLvJDkp9fvvv6Nr1675zu/WrRtOnjwpS1BEREREREREROTdJCel7t69i9DQ0Hznh4aG4p9//pElKCIiIiIiIiIi8m6Sk1K5ubkoUyb/IahUKhVycnJkCYqIiIiIiIiIiLyb5IHOhRCIj4+HWq12OD8rK0u2oIiIiIiIiIiIyLtJTkoNHTrU6TJ88x4REREREREREUkhOSm1fv36ooyDiIiIiIiIiIhKEcljShEREREREREREcmFSSkiIiIiIiIiInI7yY/vUemSkZUDw71cZJrM0PgoEeinglbt+dVFStwpRhPSsnJhzDZD46uETq1CkManmCImOZXUeuuJeCw9D8uEpCip5zjW75LLm8tOrn2T8xjdTs+G0WSGMdsMra8S/j5KVAjwtVnmVno2MvMs4+ejRPADy7j7mlmuYyBl30g+cpXbnYxsZGT/W24aXyXKa4uu3DyxX5ISkyfG7Q7ev4fksjsZJrx3OAmnE43WaTHhGgxvGYbyWs+9sJUSd3JaNtYfuYkzSf8uEx2mwbAWoQjR8YRWkpXUeuuJeCw9D8uEpCip5zjW75LLm8tOrn2T8xjdTMvGBgdtPL5FKEL/fxuXsoy7r5nlOgZS9o3kU1LLzRP7JSkxeWLc7sLH98hG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k/bkq5TU5pytRyNxPVJJibukYh8njVzHqaQeb29uA96sRJTKmDFj8MUXX+DAgQOoXLlygcuq1WoEBgba/JF0ej8VYsI1DufFhGug91O5OSIicif2Ae7F401yYV0iko/WV4noMMftKTpMA62vUlKb06lVBa5Hp1bJ2nalxF1SsY+TRq7jVFKPt79PwW3AU5NppZ1Hl4oQAmPGjMGnn36Kb7/9FlWrVi3ukLyeVl0Gw1uG2XVCMeEaPNsyzCMHtCMi+bAPcC8eb5IL6xKRfMprfRHfItTuy63lDV7ltb6S2lyQxgfD8lnPsBahCNL4yNp2pcRdUrGPk0au41RSj3dwQMFtgIOceyaPfvveqFGj8OGHH+Kzzz5D7dq1rdP1ej38/f0lrYNv33s4GVk5MNzLRabJDH+f+78GeWrnQ0TyYx/gXjzeJBfWJSL53MnIRka2GZnZZvj7KqH1VdoldqS0uRSjCWlZuTBmm6HxVUKnViFI4+PyeuSMu6RiHyeNXMeppB7vW+nZyDT92wb8fZRMSBUDqbkYj05KKRQKh9PXr1+P+Ph4SetgUoqIiIiIiIiIyH2k5mI8Os3pwfkyIiIiIiIiIiIqBI8eU4qIiIiIiIiIiLwTk1JEREREREREROR2TEoREREREREREZHbMSlFRERERERERERux6QUERERERERERG5HZNSRERERERERETkdkxKERERERERERGR2zEpRUREREREREREbsekFBERERERERERuR2TUkRERERERERE5HZMShERERERERERkdsxKUVERERERERERG7HpBQREREREREREbkdk1JEREREREREROR2TEoREREREREREZHbMSlFRERERERERERux6QUERERERERERG5HZNSRERERERERETkdkxKERERERERERGR25Up7gCIiIiIiJxJMZqQlpULY7YZGl8ldGoVgjQ+xR0WebGMrBwY7uUi02SGxkeJQD8VtOrS8/WJbU4aueqJN9c3qXVJrjp3Kz0bmSYzjNlmaH2V8PNRIjjAV45doSLgHbWciIiIiLxWclo21h+5iTNJRuu06DANhrUIRYiOXzRIfncyTHjvcBJOJ/5b52LCNRjeMgzltd6fmGGbk0aueuLN9U1qXZKrzt1My8YGB+uJbxGKUNZdj8TH94iIiIjIY6UYTXZfVADgTJIR64/cRIrRVEyR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2+1GV1fXnGM3NjaipKQEa9euXdS8Io2eM1YjIyMDFovFZ34/f/7Eu3fvFj2/SKFVxr29vbDb7Z6trq4OiYmJsNvtKCsrC8l1TP8zeq4XL15Ef3+/z7EB4NatW2hqalrEmYkMRs/XG/t3bnrOWA32b2D/8j2W3W73/MLC/g0to+fK/p2f0bP1xu6dm54zVkPT7g3p16YvwunTpyU5OVm6u7vF4XB4tomJCc8+p06dkvT0dLHZbPL+/XvJy8uTvLw8n+N8+vRJFEWRkydPypYtW0RRFFEURX7//i0iIg8fPpTW1lYZGBiQ4eFhaW1tldTUVDl06JDf+bW0tIjJZBKr1SoDAwNSWVkpKSkp4nQ6Z42/ZMkSef78eYjOTOTQe8a/fv3yHAuA3Lx5UxRFkS9fvnj2qa+vl5SUFHn69Kn09/dLaWmpZGRkyOTkZAjPlHFplfFMau/wpOY6djgcoiiK3L9/XwBIT0+PKIoiY2NjCzspESAScp0JvPuPR6Tky/6dn94zZv8unlYZW61WaW5ulsHBQRkcHJQrV65ITEyMPHjwwO/82L8LEwm5zsT+/SNSsmX3zk/vGeupe3WzKAVgzq2pqcmzz+TkpJw5c0ZWrVol8fHxUlZWJg6Hw+c4RUVFcx5nZGRERP5cYDt37pSEhARZuXKlZGVlydWrV1Wd2Dt37kh6errExcVJTk6OvH37dtY+ly5dkrS0NHG5XIs6H5FI7xn/vQXxzO3IkSOefdxut1y+fFnMZrOYTCbZt2+fDA0NheoUGZ5WGc8UzG3HA13HtbW1AV9DtImEXOd6TXxT/Eek5Mv+nZ/eM2b/Lp5WGVutVsnMzJT4+HhJSkqSnJwcn9uZ+8P+DV4k5DrXa2L/Rk627N756T1jPXXvEhEREBERERERERERaUg33ylFRERERERERETRg4tSRERERERERESkOS5KERERERERERGR5rgoRUREREREREREmuOiFBERERERERERaY6LUkREREREREREpDkuShERERERERERkea4KEVERERERERERJrjohQREREREREREWmOi1JERERERERERKQ5LkoREREREREREZHmuChFRERERERERESa+w9sqHqr7qyCtgAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 1200x800 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#pattern = r'\\b(ve|VE|visualeditor|VisualEditor)\\b'\n",
"#pattern = r'\\b(contributor|community|volunteer)\\b'\n",
"#pattern = r'\\b(WMF|Foundation|Wikimedia)\\b'\n",
"#pattern = r'\\b(bots|scripts|gadgets)\\b'\n",
"#pattern = r'\\b(http|https)\\b'\n",
"#pattern = r'\\b(auth)\\b'\n",
"pattern = r'\\b(community)\\b'\n",
"\n",
"filtered_dependencies = dependency_relations_df[dependency_relations_df['token'].str.contains(pattern, regex=True)]\n",
"resolved_filtered_dependencies = resolved_dependency_relations_df[resolved_dependency_relations_df['token'].str.contains(pattern, regex=True)]\n",
"\n",
"plt.figure(figsize=(12, 8))\n",
"gs = GridSpec(2, 1, height_ratios=[6, 6])\n",
"\n",
"# Main plot: Token depth by timestamp\n",
"'''\n",
"ax0 = plt.subplot(gs[0])\n",
"sns.scatterplot(data=filtered_dependencies, x='timestamp', y='dependency', hue='wmfAffil', style='dependency', markers=True, s=100, ax=ax0)\n",
"ax0.set_title('VE Depth by Timestamp w/o URLS')\n",
"ax0.set_xlabel('')\n",
"ax0.set_ylabel('Dependency Type')\n",
"ax0.legend().set_visible(False)\n",
"'''\n",
"# Calculate the median depth over time\n",
"filtered_dependencies['timestamp'] = pd.to_datetime(filtered_dependencies['timestamp'], utc=True)\n",
"filtered_dependencies['week'] = filtered_dependencies['timestamp'].dt.to_period('W').dt.start_time\n",
"median_depth = filtered_dependencies.groupby('week')['depth'].median().reset_index()\n",
"\n",
"wmf_filtered_dependencies = filtered_dependencies[filtered_dependencies['wmfAffil'] == True]\n",
"#wmf_median_depth = wmf_filtered_dependencies.groupby('week')['depth'].median().reset_index()\n",
"\n",
"other_filtered_dependencies = filtered_dependencies[filtered_dependencies['wmfAffil'] != True]\n",
"#other_median_depth = other_filtered_dependencies.groupby('week')['depth'].median().reset_index()\n",
"\n",
"# Plot the median depth over time\n",
"ax0 = plt.subplot(gs[0])\n",
"#sns.lineplot(data=median_depth, x='week', y='depth', ax=ax0, color='black', label='Median Depth', marker='o')\n",
"sns.scatterplot(data=wmf_filtered_dependencies, x='week', y='depth', ax=ax0, color='#c7756a', label='WMF-affiliated authors', marker='o')\n",
"#sns.lineplot(data=wmf_median_depth, x='week', y='depth', ax=ax0, color='#c7756a', label='WMF-affiliated authors', marker='x')\n",
"sns.scatterplot(data=other_filtered_dependencies, x='week', y='depth', ax=ax0, color='#5da2d8', label='Nonaffiliated authors', marker='o')\n",
"#sns.lineplot(data=other_median_depth, x='week', y='depth', ax=ax0, color='#5da2d8', label='Nonaffiliated authors', marker='x')\n",
"ax0.set_title(f'C3: Depth of \"Community\" in Sentence Dependency Trees of Relevant Phabricator Comments')\n",
"ax0.set_ylabel('Dependency Tree Depth')\n",
"ax0.set_xlabel('')\n",
"\n",
"# Calculate the median depth over time\n",
"resolved_filtered_dependencies['timestamp'] = pd.to_datetime(resolved_filtered_dependencies['timestamp'], utc=True)\n",
"resolved_filtered_dependencies['week'] = resolved_filtered_dependencies['timestamp'].dt.to_period('W').dt.start_time\n",
"resolved_median_depth = resolved_filtered_dependencies.groupby('week')['depth'].median().reset_index()\n",
"\n",
"resolved_wmf_filtered_dependencies = resolved_filtered_dependencies[resolved_filtered_dependencies['wmfAffil'] == True]\n",
"#resolved_wmf_median_depth = resolved_wmf_filtered_dependencies.groupby('week')['depth'].median().reset_index()\n",
"\n",
"resolved_other_filtered_dependencies = resolved_filtered_dependencies[resolved_filtered_dependencies['wmfAffil'] != True]\n",
"#resolved_other_median_depth = resolved_other_filtered_dependencies.groupby('week')['depth'].median().reset_index()\n",
"\n",
"# Plot the median depth over time\n",
"ax1 = plt.subplot(gs[1])\n",
"#sns.lineplot(data=resolved_median_depth, x='week', y='depth', ax=ax1, color='black', label='Median Depth', marker='o')\n",
"sns.scatterplot(data=resolved_wmf_filtered_dependencies, x='week', y='depth', ax=ax1, color='#c7756a', label='WMF-affiliated authors', marker='o')\n",
"#sns.lineplot(data=resolved_wmf_median_depth, x='week', y='depth', ax=ax1, color='#c7756a', label='WMF-affiliated authors', marker='x')\n",
"sns.scatterplot(data=resolved_other_filtered_dependencies, x='week', y='depth', ax=ax1, color='#5da2d8', label='Nonaffiliated authors', marker='o')\n",
"#sns.lineplot(data=resolved_other_median_depth, x='week', y='depth', ax=ax1, color='#5da2d8', label='Nonaffiliated authors', marker='x')\n",
"ax1.set_title(f'C3: Depth of \"Community\" in Coreference-resolved Sentence Dependency Trees of Relevant Phabricator Comments')\n",
"ax1.set_ylabel('Dependency Tree Depth')\n",
"ax1.set_xlabel('')\n",
"\n",
"plt.tight_layout()\n",
"#plt.show()\n",
"\n",
"plt.savefig('070125_c3_community_depth_fig.png')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c3e11af2-388a-4112-a71b-82c9fd6d5886",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.13.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}