{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import os\n",
"import sumolib\n",
"import random\n",
"from tqdm import tqdm\n",
"from datetime import datetime"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 1. 이동류 매칭"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|██████████| 17280/17280 [01:21<00:00, 211.23it/s]\n"
]
},
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" inter_no | \n",
" phas_A | \n",
" phas_B | \n",
" move_A | \n",
" move_B | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 175 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
"
\n",
" \n",
" 1 | \n",
" 175 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
"
\n",
" \n",
" 2 | \n",
" 175 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
"
\n",
" \n",
" 3 | \n",
" 175 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
"
\n",
" \n",
" 4 | \n",
" 175 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
"
\n",
" \n",
" 5 | \n",
" 176 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
"
\n",
" \n",
" 6 | \n",
" 176 | \n",
" 2 | \n",
" 2 | \n",
" 8 | \n",
" 3 | \n",
"
\n",
" \n",
" 7 | \n",
" 176 | \n",
" 3 | \n",
" 3 | \n",
" 5 | \n",
" 18 | \n",
"
\n",
" \n",
" 8 | \n",
" 177 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
"
\n",
" \n",
" 9 | \n",
" 177 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" inter_no phas_A phas_B move_A move_B\n",
"0 175 1 1 8 4\n",
"1 175 2 2 7 3\n",
"2 175 3 3 6 1\n",
"3 175 3 4 6 2\n",
"4 175 4 4 5 2\n",
"5 176 1 1 8 4\n",
"6 176 2 2 8 3\n",
"7 176 3 3 5 18\n",
"8 177 1 1 8 4\n",
"9 177 2 2 7 3"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# [이동류번호] 불러오기 (약 1분의 소요시간)\n",
"path_moves = '../../Data/tables/moves/'\n",
"csv_moves = os.listdir('../../Data/tables/moves/')\n",
"moves = [pd.read_csv(path_moves + csv_move, index_col=0) for csv_move in tqdm(csv_moves)]\n",
"match1 = pd.concat(moves).drop_duplicates().sort_values(by=['inter_no','phas_A','phas_B']).reset_index(drop=True)\n",
"match1.head(10)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" inter_no | \n",
" phase_no | \n",
" ring_type | \n",
" move_no | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 175 | \n",
" 1 | \n",
" A | \n",
" 8 | \n",
"
\n",
" \n",
" 0 | \n",
" 175 | \n",
" 1 | \n",
" B | \n",
" 4 | \n",
"
\n",
" \n",
" 1 | \n",
" 175 | \n",
" 2 | \n",
" A | \n",
" 7 | \n",
"
\n",
" \n",
" 1 | \n",
" 175 | \n",
" 2 | \n",
" B | \n",
" 3 | \n",
"
\n",
" \n",
" 2 | \n",
" 175 | \n",
" 3 | \n",
" A | \n",
" 6 | \n",
"
\n",
" \n",
" 2 | \n",
" 175 | \n",
" 3 | \n",
" B | \n",
" 1 | \n",
"
\n",
" \n",
" 4 | \n",
" 175 | \n",
" 4 | \n",
" A | \n",
" 5 | \n",
"
\n",
" \n",
" 3 | \n",
" 175 | \n",
" 4 | \n",
" B | \n",
" 2 | \n",
"
\n",
" \n",
" 5 | \n",
" 176 | \n",
" 1 | \n",
" A | \n",
" 8 | \n",
"
\n",
" \n",
" 5 | \n",
" 176 | \n",
" 1 | \n",
" B | \n",
" 4 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" inter_no phase_no ring_type move_no\n",
"0 175 1 A 8\n",
"0 175 1 B 4\n",
"1 175 2 A 7\n",
"1 175 2 B 3\n",
"2 175 3 A 6\n",
"2 175 3 B 1\n",
"4 175 4 A 5\n",
"3 175 4 B 2\n",
"5 176 1 A 8\n",
"5 176 1 B 4"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 계층화 (inter_no, phas_A, phas_B, move_A, move_B) -> ('inter_no', 'phase_no', 'ring_type', 'move_no')\n",
"matchA = match1[['inter_no', 'phas_A', 'move_A']].copy()\n",
"matchA.columns = ['inter_no', 'phase_no', 'move_no']\n",
"matchA['ring_type'] = 'A'\n",
"matchB = match1[['inter_no', 'phas_B', 'move_B']].copy()\n",
"matchB.columns = ['inter_no', 'phase_no', 'move_no']\n",
"matchB['ring_type'] = 'B'\n",
"match2 = pd.concat([matchA, matchB]).drop_duplicates()\n",
"match2 = match2[['inter_no', 'phase_no', 'ring_type', 'move_no']]\n",
"match2 = match2.sort_values(by=list(match2.columns))\n",
"match2.head(10)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" inter_no | \n",
" phase_no | \n",
" ring_type | \n",
" move_no | \n",
" inc_dir | \n",
" out_dir | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 175 | \n",
" 1 | \n",
" A | \n",
" 8 | \n",
" 남 | \n",
" 북 | \n",
"
\n",
" \n",
" 1 | \n",
" 175 | \n",
" 1 | \n",
" B | \n",
" 4 | \n",
" 북 | \n",
" 남 | \n",
"
\n",
" \n",
" 2 | \n",
" 175 | \n",
" 2 | \n",
" A | \n",
" 7 | \n",
" 북 | \n",
" 동 | \n",
"
\n",
" \n",
" 3 | \n",
" 175 | \n",
" 2 | \n",
" B | \n",
" 3 | \n",
" 남 | \n",
" 서 | \n",
"
\n",
" \n",
" 4 | \n",
" 175 | \n",
" 3 | \n",
" A | \n",
" 6 | \n",
" 동 | \n",
" 서 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 59 | \n",
" 210 | \n",
" 4 | \n",
" B | \n",
" 3 | \n",
" 남 | \n",
" 서 | \n",
"
\n",
" \n",
" 60 | \n",
" 211 | \n",
" 1 | \n",
" A | \n",
" 6 | \n",
" 동 | \n",
" 서 | \n",
"
\n",
" \n",
" 61 | \n",
" 211 | \n",
" 1 | \n",
" B | \n",
" 2 | \n",
" 서 | \n",
" 동 | \n",
"
\n",
" \n",
" 62 | \n",
" 211 | \n",
" 2 | \n",
" A | \n",
" 17 | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 63 | \n",
" 211 | \n",
" 2 | \n",
" B | \n",
" 18 | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
64 rows × 6 columns
\n",
"
"
],
"text/plain": [
" inter_no phase_no ring_type move_no inc_dir out_dir\n",
"0 175 1 A 8 남 북\n",
"1 175 1 B 4 북 남\n",
"2 175 2 A 7 북 동\n",
"3 175 2 B 3 남 서\n",
"4 175 3 A 6 동 서\n",
".. ... ... ... ... ... ...\n",
"59 210 4 B 3 남 서\n",
"60 211 1 A 6 동 서\n",
"61 211 1 B 2 서 동\n",
"62 211 2 A 17 NaN NaN\n",
"63 211 2 B 18 NaN NaN\n",
"\n",
"[64 rows x 6 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# [nema 이동류목록] 불러오기 및 병합\n",
"nema = pd.read_csv('../../Data/tables/nema.csv', encoding='cp949')\n",
"match3 = pd.merge(match2, nema, how='left', left_on='move_no', right_on='이동류번호').drop_duplicates()\n",
"match3.rename(columns={'진입방향': 'inc_dir', '진출방향': 'out_dir'}, inplace=True)\n",
"match3.drop('이동류번호', axis=1, inplace=True)\n",
"match3"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" inter_no | \n",
" phase_no | \n",
" ring_type | \n",
" move_no | \n",
" inc_dir | \n",
" out_dir | \n",
" inc_angle | \n",
" out_angle | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 175 | \n",
" 1 | \n",
" A | \n",
" 8 | \n",
" 남 | \n",
" 북 | \n",
" 179 | \n",
" 004 | \n",
"
\n",
" \n",
" 1 | \n",
" 175 | \n",
" 1 | \n",
" B | \n",
" 4 | \n",
" 북 | \n",
" 남 | \n",
" 003 | \n",
" 176 | \n",
"
\n",
" \n",
" 2 | \n",
" 175 | \n",
" 2 | \n",
" A | \n",
" 7 | \n",
" 북 | \n",
" 동 | \n",
" 001 | \n",
" 095 | \n",
"
\n",
" \n",
" 3 | \n",
" 175 | \n",
" 2 | \n",
" B | \n",
" 3 | \n",
" 남 | \n",
" 서 | \n",
" 179 | \n",
" 270 | \n",
"
\n",
" \n",
" 4 | \n",
" 175 | \n",
" 3 | \n",
" A | \n",
" 6 | \n",
" 동 | \n",
" 서 | \n",
" 090 | \n",
" 270 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 59 | \n",
" 210 | \n",
" 4 | \n",
" B | \n",
" 3 | \n",
" 남 | \n",
" 서 | \n",
" 180 | \n",
" 270 | \n",
"
\n",
" \n",
" 60 | \n",
" 211 | \n",
" 1 | \n",
" A | \n",
" 6 | \n",
" 동 | \n",
" 서 | \n",
" 090 | \n",
" 270 | \n",
"
\n",
" \n",
" 61 | \n",
" 211 | \n",
" 1 | \n",
" B | \n",
" 2 | \n",
" 서 | \n",
" 동 | \n",
" 270 | \n",
" 090 | \n",
"
\n",
" \n",
" 62 | \n",
" 211 | \n",
" 2 | \n",
" A | \n",
" 17 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 63 | \n",
" 211 | \n",
" 2 | \n",
" B | \n",
" 18 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
64 rows × 8 columns
\n",
"
"
],
"text/plain": [
" inter_no phase_no ring_type move_no inc_dir out_dir inc_angle out_angle\n",
"0 175 1 A 8 남 북 179 004\n",
"1 175 1 B 4 북 남 003 176\n",
"2 175 2 A 7 북 동 001 095\n",
"3 175 2 B 3 남 서 179 270\n",
"4 175 3 A 6 동 서 090 270\n",
".. ... ... ... ... ... ... ... ...\n",
"59 210 4 B 3 남 서 180 270\n",
"60 211 1 A 6 동 서 090 270\n",
"61 211 1 B 2 서 동 270 090\n",
"62 211 2 A 17 NaN NaN NaN NaN\n",
"63 211 2 B 18 NaN NaN NaN NaN\n",
"\n",
"[64 rows x 8 columns]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# [방위각정보] 불러오기, 계층화, 병합\n",
"# 불러오기\n",
"dtype_dict = {f'angle_{alph}{j}':'str' for alph in ['A', 'B'] for j in range(1,9)}\n",
"angle_original = pd.read_csv('../../Data/tables/angle.csv', index_col=0, dtype = dtype_dict)\n",
"# 계층화\n",
"angle = []\n",
"for i, row in angle_original.iterrows():\n",
" angle_codes = row[[f'angle_{alph}{j}' for alph in ['A', 'B'] for j in range(1,9)]]\n",
" new = pd.DataFrame({'inter_no':[row.inter_no] * 16, 'phase_no':list(range(1, 9))*2, 'ring_type':['A'] * 8 + ['B'] * 8, 'angle_code':angle_codes.to_list()})\n",
" angle.append(new)\n",
"angle = pd.concat(angle)\n",
"angle = angle.dropna().reset_index(drop=True)\n",
"# 병합\n",
"six_chars = angle.angle_code.apply(lambda x:len(x)==6)\n",
"angle.loc[six_chars,'inc_angle'] = angle.angle_code.apply(lambda x:x[:3])\n",
"angle.loc[six_chars,'out_angle'] = angle.angle_code.apply(lambda x:x[3:])\n",
"angle = angle.drop('angle_code', axis=1)\n",
"match4 = pd.merge(match3, angle, how='left', left_on=['inter_no', 'phase_no', 'ring_type'],\n",
" right_on=['inter_no', 'phase_no', 'ring_type']).drop_duplicates()\n",
"match4"
]
},
{
"cell_type": "code",
"execution_count": 150,
"metadata": {},
"outputs": [],
"source": [
"# [네트워크], [교차로-노드 매칭], [교차로정보] 불러오기 \n",
"net = sumolib.net.readNet('../../Data/networks/SN_sample.net.xml')\n",
"inter_node = pd.read_csv('../../Data/tables/inter_node.csv', index_col=0)\n",
"inter_info = pd.read_csv('../../Data/tables/inter_info.csv', index_col=0)\n",
"\n",
"inter_node1 = inter_node[inter_node.inter_type == 'parent'].drop('inter_type', axis=1)\n",
"inter_info1 = inter_info[['inter_no', 'inter_lat', 'inter_lon']]\n",
"inter = pd.merge(inter_node1, inter_info1, how='left', left_on=['inter_no'],\n",
" right_on=['inter_no']).drop_duplicates()\n",
"\n",
"inter2node = dict(zip(inter['inter_no'], inter['node_id']))\n",
"\n",
"match5 = match4.copy()\n",
"# 진입진출ID 매칭\n",
"for index, row in match5.iterrows():\n",
" node_id = inter2node[row.inter_no]\n",
" node = net.getNode(node_id)\n",
" # 교차로의 모든 (from / to) edges\n",
" inc_edges = [edge for edge in node.getIncoming() if edge.getFunction() == ''] # incoming edges\n",
" out_edges = [edge for edge in node.getOutgoing() if edge.getFunction() == ''] # outgoing edges\n",
" # 교차로의 모든 (from / to) directions\n",
" inc_dirs = []\n",
" for inc_edge in inc_edges:\n",
" start = inc_edge.getShape()[-2]\n",
" end = inc_edge.getShape()[-1]\n",
" inc_dir = np.array(end) - np.array(start)\n",
" inc_dir = inc_dir / (inc_dir ** 2).sum() ** 0.5\n",
" inc_dirs.append(inc_dir)\n",
" out_dirs = []\n",
" for out_edge in out_edges:\n",
" start = out_edge.getShape()[0]\n",
" end = out_edge.getShape()[1]\n",
" out_dir = np.array(end) - np.array(start)\n",
" out_dir = out_dir / (out_dir ** 2).sum() ** 0.5\n",
" out_dirs.append(out_dir)\n",
" # 진입각, 진출각 불러오기\n",
" if not pd.isna(row.inc_angle):\n",
" inc_angle = int(row.inc_angle)\n",
" out_angle = int(row.out_angle)\n",
" # 방위각을 일반각으로 가공, 라디안 변환, 단위벡터로 변환\n",
" inc_angle = (-90 - inc_angle) % 360\n",
" inc_angle = inc_angle * np.pi / 180.\n",
" inc_dir_true = np.array([np.cos(inc_angle), np.sin(inc_angle)])\n",
" out_angle = (90 - out_angle) % 360\n",
" out_angle = out_angle * np.pi / 180.\n",
" out_dir_true = np.array([np.cos(out_angle), np.sin(out_angle)])\n",
" # 매칭 엣지 반환\n",
" inc_index = np.array([np.dot(inc_dir, inc_dir_true) for inc_dir in inc_dirs]).argmax()\n",
" out_index = np.array([np.dot(out_dir, out_dir_true) for out_dir in out_dirs]).argmax()\n",
" inc_edge_id = inc_edges[inc_index].getID()\n",
" out_edge_id = out_edges[out_index].getID()\n",
" match5.at[index, 'inc_edge'] = inc_edge_id\n",
" match5.at[index, 'out_edge'] = out_edge_id\n",
"match5['node_id'] = match5['inter_no'].map(inter2node)\n",
"match5 = match5[['inter_no', 'node_id', 'move_no', 'inc_edge', 'out_edge']]\n",
"match5 = match5.sort_values(by=['inter_no', 'move_no']).reset_index(drop=True)"
]
},
{
"cell_type": "code",
"execution_count": 152,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" inter_no | \n",
" node_id | \n",
" move_no | \n",
" inc_edge | \n",
" out_edge | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 175 | \n",
" i0 | \n",
" 1 | \n",
" 571545870_02 | \n",
" 571542797_02 | \n",
"
\n",
" \n",
" 1 | \n",
" 175 | \n",
" i0 | \n",
" 2 | \n",
" 571510153_02 | \n",
" 571545870_01 | \n",
"
\n",
" \n",
" 2 | \n",
" 175 | \n",
" i0 | \n",
" 3 | \n",
" -571542797_02 | \n",
" 571510153_01 | \n",
"
\n",
" \n",
" 3 | \n",
" 175 | \n",
" i0 | \n",
" 4 | \n",
" -571500487_01 | \n",
" 571542797_02 | \n",
"
\n",
" \n",
" 4 | \n",
" 175 | \n",
" i0 | \n",
" 5 | \n",
" 571510153_02 | \n",
" 571500487_01 | \n",
"
\n",
" \n",
" 5 | \n",
" 175 | \n",
" i0 | \n",
" 6 | \n",
" 571545870_02 | \n",
" 571510153_01 | \n",
"
\n",
" \n",
" 6 | \n",
" 175 | \n",
" i0 | \n",
" 7 | \n",
" -571500487_01 | \n",
" 571545870_01 | \n",
"
\n",
" \n",
" 7 | \n",
" 175 | \n",
" i0 | \n",
" 8 | \n",
" -571542797_02 | \n",
" 571500487_01 | \n",
"
\n",
" \n",
" 8 | \n",
" 176 | \n",
" i1 | \n",
" 3 | \n",
" -571542810_01 | \n",
" 571543469_01 | \n",
"
\n",
" \n",
" 9 | \n",
" 176 | \n",
" i1 | \n",
" 4 | \n",
" 571542797_02.99 | \n",
" 571542810_01 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" inter_no node_id move_no inc_edge out_edge\n",
"0 175 i0 1 571545870_02 571542797_02\n",
"1 175 i0 2 571510153_02 571545870_01\n",
"2 175 i0 3 -571542797_02 571510153_01\n",
"3 175 i0 4 -571500487_01 571542797_02\n",
"4 175 i0 5 571510153_02 571500487_01\n",
"5 175 i0 6 571545870_02 571510153_01\n",
"6 175 i0 7 -571500487_01 571545870_01\n",
"7 175 i0 8 -571542797_02 571500487_01\n",
"8 176 i1 3 -571542810_01 571543469_01\n",
"9 176 i1 4 571542797_02.99 571542810_01"
]
},
"execution_count": 152,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"matching = match5.drop_duplicates().copy()\n",
"matching.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 2. 이력 + 이동류"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# 5초 단위로 이동류번호 저장 및 신호이력에서 유닉스시각 가져와서 표시, 한시간동안의 데이터만 보관\n",
"midnight = int(datetime(2024, 1, 5, 0, 0, 0).timestamp())\n",
"next_day = int(datetime(2024, 1, 6, 0, 0, 0).timestamp())\n",
"fsecs = range(midnight, next_day, 5) # fsecs : unix time by Five SECondS\n",
"time2move = dict(zip(fsecs,moves)) # move : 어느 순간의 이동류정보\n",
"history = pd.read_csv('../../Data/tables/history.csv', index_col=0)\n",
"\n",
"time2movement = {} # movement : 어느 순간의, 그 순간으로부터 한시간 동안의 (교차로번호 + 현시별이동류번호 + 시작시간)\n",
"# - 아래 절차를 5초마다 반복\n",
"for fsec in tqdm(fsecs): # fsec : unix time by Five SECond\n",
" # 1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n",
" move = time2move[fsec]\n",
" # 2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로변호, 종료유닉스타임)만 수집 : B\n",
" recent_histories = [group.iloc[-1:] for _, group in history[history['end_unix'] < fsec].groupby('inter_no')] # 교차로별로 유닉스시간이 최대인 행들\n",
" if not recent_histories:\n",
" rhistory = pd.DataFrame({'inter_no':[], 'end_unix':[]}) # recent history\n",
" else:\n",
" rhistory = pd.concat(recent_histories)\n",
" recent_unix = rhistory[['inter_no', 'end_unix']]\n",
" # 3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
" move = pd.merge(move, recent_unix, how='left', on='inter_no')\n",
" move['end_unix'] = move['end_unix'].fillna(0).astype(int)\n",
" move = move.drop_duplicates()\n",
" # 4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
" move = move.rename(columns = {'end_unix':'start_unix'})\n",
" # 5. 이동류 이력정보 READ\n",
" # - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성)\n",
" try:\n",
" if isinstance(movement, pd.DataFrame): # movement가 존재할 경우 그걸 그대로 씀.\n",
" pass\n",
" else: \n",
" movement = pd.DataFrame()\n",
" except NameError: # movement가 존재하지 않는 경우 생성\n",
" movement = pd.DataFrame()\n",
" # 6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
" movement = pd.concat([movement, move])\n",
" # 7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
" movement = movement.drop_duplicates(['inter_no','phas_A','phas_B','start_unix'])\n",
" # 8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - 3600을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
" movement = movement[movement.start_unix > fsec - 3600]\n",
" # print()\n",
" # print(fsec)\n",
" # print(fsec - 3600)\n",
" start_unix_min = movement.start_unix.min()\n",
" start_unix_max = movement.start_unix.max()\n",
" # print(start_unix_min)\n",
" # print(start_unix_max)\n",
" # print(start_unix_max - start_unix_min)\n",
" movement = movement.sort_values(by=['start_unix','inter_no','phas_A','phas_B']).reset_index(drop=True)\n",
"\n",
" time2movement[fsec] = movement\n",
" movement.to_csv(f'../../Data/tables/movements/movements_{fsec}.csv')\n",
"# del movement"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1704380400\n",
"1704466800\n",
"1704451815\n",
"1704455390\n",
"3575\n"
]
}
],
"source": [
"# movement : 5초단위로 과거 한시간 동안의 이동류번호 (교차로번호, 시작유닉스, A현시번호, B현시번호, A이동류, B이동류)\n",
"# 한시간짜리 맞음.\n",
"n = 15000 # ranges from 0 to 17280 = len(fsecs)\n",
"print(midnight)\n",
"print(next_day)\n",
"start_unix_min = time2movement[fsecs[n]].start_unix.min()\n",
"start_unix_max = time2movement[fsecs[n]].start_unix.max()\n",
"print(start_unix_min)\n",
"print(start_unix_max)\n",
"print(start_unix_max - start_unix_min)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"plt.plot(fsecs, [len(time2movement[fsec]) for fsec in fsecs])\n",
"plt.close()"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" inter_no | \n",
" end_unix | \n",
" dur_A1 | \n",
" dur_A2 | \n",
" dur_A3 | \n",
" dur_A4 | \n",
" dur_A5 | \n",
" dur_A6 | \n",
" dur_A7 | \n",
" dur_A8 | \n",
" dur_B1 | \n",
" dur_B2 | \n",
" dur_B3 | \n",
" dur_B4 | \n",
" dur_B5 | \n",
" dur_B6 | \n",
" dur_B7 | \n",
" dur_B8 | \n",
" cycle | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 206 | \n",
" 1704380521 | \n",
" 33 | \n",
" 35 | \n",
" 26 | \n",
" 26 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 33 | \n",
" 35 | \n",
" 26 | \n",
" 26 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 120 | \n",
"
\n",
" \n",
" 1 | \n",
" 211 | \n",
" 1704380526 | \n",
" 28 | \n",
" 97 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 28 | \n",
" 97 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 125 | \n",
"
\n",
" \n",
" 2 | \n",
" 178 | \n",
" 1704380540 | \n",
" 38 | \n",
" 39 | \n",
" 40 | \n",
" 23 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 38 | \n",
" 39 | \n",
" 40 | \n",
" 23 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 140 | \n",
"
\n",
" \n",
" 3 | \n",
" 201 | \n",
" 1704380540 | \n",
" 24 | \n",
" 24 | \n",
" 17 | \n",
" 58 | \n",
" 17 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 24 | \n",
" 24 | \n",
" 17 | \n",
" 58 | \n",
" 17 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 140 | \n",
"
\n",
" \n",
" 4 | \n",
" 202 | \n",
" 1704380540 | \n",
" 39 | \n",
" 101 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 39 | \n",
" 101 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 140 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" inter_no end_unix dur_A1 dur_A2 dur_A3 dur_A4 dur_A5 dur_A6 \\\n",
"0 206 1704380521 33 35 26 26 0 0 \n",
"1 211 1704380526 28 97 0 0 0 0 \n",
"2 178 1704380540 38 39 40 23 0 0 \n",
"3 201 1704380540 24 24 17 58 17 0 \n",
"4 202 1704380540 39 101 0 0 0 0 \n",
"\n",
" dur_A7 dur_A8 dur_B1 dur_B2 dur_B3 dur_B4 dur_B5 dur_B6 dur_B7 \\\n",
"0 0 0 33 35 26 26 0 0 0 \n",
"1 0 0 28 97 0 0 0 0 0 \n",
"2 0 0 38 39 40 23 0 0 0 \n",
"3 0 0 24 24 17 58 17 0 0 \n",
"4 0 0 39 101 0 0 0 0 0 \n",
"\n",
" dur_B8 cycle \n",
"0 0 120 \n",
"1 0 125 \n",
"2 0 140 \n",
"3 0 140 \n",
"4 0 140 "
]
},
"execution_count": 72,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 세부현시로 되어있던 history를 A, B로 나뉘어 현시시간이 구성된 형태로 바꿈.\n",
"plan = pd.read_csv('../../Data/tables/plan.csv', index_col=0)\n",
"history = pd.read_csv('../../Data/tables/history.csv', index_col=0)\n",
"splits = {} # splits maps (inter_no, start_hour, start_minute) to split\n",
"for i, row in plan.iterrows():\n",
" inter_no = row.inter_no\n",
" start_hour = row.start_hour\n",
" start_minute = row.start_minute\n",
" cycle = row.cycle\n",
" cums_A = row[[f'dura_A{j}' for j in range(1,9)]].cumsum()\n",
" cums_B = row[[f'dura_B{j}' for j in range(1,9)]].cumsum()\n",
" splits[(inter_no, start_hour, start_minute)] = {} # split maps (phas_A, phas_B) to k\n",
" k = 0\n",
" for t in range(cycle):\n",
" new_phas_A = len(cums_A[cums_A < t]) + 1\n",
" new_phas_B = len(cums_B[cums_B < t]) + 1\n",
" if k == 0 or ((new_phas_A, new_phas_B) != (phas_A, phas_B)):\n",
" k += 1\n",
" phas_A = new_phas_A\n",
" phas_B = new_phas_B\n",
" splits[(inter_no, start_hour, start_minute)][(phas_A, phas_B)] = k\n",
"# the inverse of splits\n",
"isplits = {} # isplit maps k to (phas_A, phas_B)\n",
"for i in splits:\n",
" isplits[i] = {splits[i][k]:k for k in splits[i]}\n",
"\n",
"timetable = plan[['start_hour', 'start_minute']].drop_duplicates()\n",
"timetable['start_seconds'] = midnight + timetable['start_hour'] * 3600 + timetable['start_minute'] * 60\n",
"\n",
"abhistory = history.copy() # A, B가 나뉘어진 history\n",
"# history의 행들을 순회하며 새로운 열 dur_A1, dur_A2, ... 를 만들어내고 값을 배정함.\n",
"for i, row in abhistory.iterrows():\n",
" inter_no = row.inter_no\n",
" ind = (timetable['start_seconds'] < row.end_unix).sum() - 1\n",
" start_hour = timetable.iloc[ind].start_hour\n",
" start_minute = timetable.iloc[ind].start_minute\n",
" isplit = isplits[(inter_no,start_hour,start_minute)]\n",
" dur_dict = {}\n",
" dur_chars = [f'dur_{alph}{j}' for alph in ['A', 'B'] for j in range(1, 9)] # 새로운 행들\n",
" for dur_char in dur_chars:\n",
" dur_dict[dur_char] = 0\n",
" for k in range(1, len(isplit)+1): # dur_dict에 값 저장\n",
" ja = isplit[k][0] # A현시번호\n",
" jb = isplit[k][1] # B현시번호\n",
" dur_dict[f'dur_A{ja}'] += row[f'ddur_{k}']\n",
" dur_dict[f'dur_B{jb}'] += row[f'ddur_{k}']\n",
" for dur_char in dur_chars: # history의 새로운 열들에 값 배정\n",
" abhistory.at[i, dur_char] = dur_dict[dur_char]\n",
"abhistory = abhistory[['inter_no','end_unix'] + dur_chars + ['cycle']].astype(int)\n",
"abhistory = abhistory.astype(int).sort_values(by = ['end_unix','inter_no'])\n",
"abhistory.head()"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" inter_no | \n",
" end_unix | \n",
" ddur_1 | \n",
" ddur_2 | \n",
" ddur_3 | \n",
" ddur_4 | \n",
" ddur_5 | \n",
" ddur_6 | \n",
" ddur_7 | \n",
" ddur_8 | \n",
" cycle | \n",
" offset | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 206 | \n",
" 1704380521 | \n",
" 33 | \n",
" 35 | \n",
" 26 | \n",
" 26 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 120 | \n",
" 10 | \n",
"
\n",
" \n",
" 1 | \n",
" 211 | \n",
" 1704380526 | \n",
" 28 | \n",
" 97 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 125 | \n",
" 45 | \n",
"
\n",
" \n",
" 2 | \n",
" 178 | \n",
" 1704380540 | \n",
" 38 | \n",
" 39 | \n",
" 40 | \n",
" 23 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 140 | \n",
" 50 | \n",
"
\n",
" \n",
" 3 | \n",
" 201 | \n",
" 1704380540 | \n",
" 24 | \n",
" 24 | \n",
" 17 | \n",
" 58 | \n",
" 17 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 140 | \n",
" 133 | \n",
"
\n",
" \n",
" 4 | \n",
" 202 | \n",
" 1704380540 | \n",
" 39 | \n",
" 101 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 140 | \n",
" 103 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 4684 | \n",
" 178 | \n",
" 1704466729 | \n",
" 38 | \n",
" 39 | \n",
" 44 | \n",
" 36 | \n",
" 23 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 180 | \n",
" 75 | \n",
"
\n",
" \n",
" 4685 | \n",
" 202 | \n",
" 1704466740 | \n",
" 48 | \n",
" 122 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 170 | \n",
" 103 | \n",
"
\n",
" \n",
" 4686 | \n",
" 206 | \n",
" 1704466740 | \n",
" 46 | \n",
" 62 | \n",
" 26 | \n",
" 26 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 160 | \n",
" 10 | \n",
"
\n",
" \n",
" 4687 | \n",
" 175 | \n",
" 1704466740 | \n",
" 46 | \n",
" 48 | \n",
" 37 | \n",
" 18 | \n",
" 41 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 190 | \n",
" 18 | \n",
"
\n",
" \n",
" 4688 | \n",
" 211 | \n",
" 1704466795 | \n",
" 28 | \n",
" 117 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 145 | \n",
" 55 | \n",
"
\n",
" \n",
"
\n",
"
4689 rows × 12 columns
\n",
"
"
],
"text/plain": [
" inter_no end_unix ddur_1 ddur_2 ddur_3 ddur_4 ddur_5 ddur_6 \\\n",
"0 206 1704380521 33 35 26 26 0 0 \n",
"1 211 1704380526 28 97 0 0 0 0 \n",
"2 178 1704380540 38 39 40 23 0 0 \n",
"3 201 1704380540 24 24 17 58 17 0 \n",
"4 202 1704380540 39 101 0 0 0 0 \n",
"... ... ... ... ... ... ... ... ... \n",
"4684 178 1704466729 38 39 44 36 23 0 \n",
"4685 202 1704466740 48 122 0 0 0 0 \n",
"4686 206 1704466740 46 62 26 26 0 0 \n",
"4687 175 1704466740 46 48 37 18 41 0 \n",
"4688 211 1704466795 28 117 0 0 0 0 \n",
"\n",
" ddur_7 ddur_8 cycle offset \n",
"0 0 0 120 10 \n",
"1 0 0 125 45 \n",
"2 0 0 140 50 \n",
"3 0 0 140 133 \n",
"4 0 0 140 103 \n",
"... ... ... ... ... \n",
"4684 0 0 180 75 \n",
"4685 0 0 170 103 \n",
"4686 0 0 160 10 \n",
"4687 0 0 190 18 \n",
"4688 0 0 145 55 \n",
"\n",
"[4689 rows x 12 columns]"
]
},
"execution_count": 73,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"history"
]
},
{
"cell_type": "code",
"execution_count": 275,
"metadata": {},
"outputs": [],
"source": [
"fmins = range(midnight, next_day, 300) # fmins : unix time by Five MINuteS\n",
"present_time = fmins[60] ####### 현재 시점 ranges from 0 to 288"
]
},
{
"cell_type": "code",
"execution_count": 276,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1704398400\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" inter_no | \n",
" start_unix | \n",
" ddur_1 | \n",
" ddur_2 | \n",
" ddur_3 | \n",
" ddur_4 | \n",
" ddur_5 | \n",
" ddur_6 | \n",
" ddur_7 | \n",
" ddur_8 | \n",
" cycle | \n",
"
\n",
" \n",
" \n",
" \n",
" 918 | \n",
" 210 | \n",
" 1704394650 | \n",
" 24 | \n",
" 19 | \n",
" 29 | \n",
" 56 | \n",
" 22 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 150 | \n",
"
\n",
" \n",
" 919 | \n",
" 176 | \n",
" 1704394650 | \n",
" 37 | \n",
" 73 | \n",
" 40 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 150 | \n",
"
\n",
" \n",
" 920 | \n",
" 175 | \n",
" 1704394640 | \n",
" 37 | \n",
" 39 | \n",
" 25 | \n",
" 30 | \n",
" 29 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 160 | \n",
"
\n",
" \n",
" 921 | \n",
" 177 | \n",
" 1704394650 | \n",
" 36 | \n",
" 20 | \n",
" 68 | \n",
" 26 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 150 | \n",
"
\n",
" \n",
" 922 | \n",
" 206 | \n",
" 1704394680 | \n",
" 33 | \n",
" 35 | \n",
" 26 | \n",
" 26 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 120 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 1146 | \n",
" 211 | \n",
" 1704398175 | \n",
" 28 | \n",
" 97 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 125 | \n",
"
\n",
" \n",
" 1147 | \n",
" 202 | \n",
" 1704398180 | \n",
" 39 | \n",
" 101 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 140 | \n",
"
\n",
" \n",
" 1148 | \n",
" 175 | \n",
" 1704398160 | \n",
" 37 | \n",
" 39 | \n",
" 25 | \n",
" 30 | \n",
" 29 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 160 | \n",
"
\n",
" \n",
" 1149 | \n",
" 201 | \n",
" 1704398180 | \n",
" 24 | \n",
" 24 | \n",
" 17 | \n",
" 58 | \n",
" 17 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 140 | \n",
"
\n",
" \n",
" 1150 | \n",
" 178 | \n",
" 1704398180 | \n",
" 38 | \n",
" 39 | \n",
" 40 | \n",
" 23 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 140 | \n",
"
\n",
" \n",
"
\n",
"
233 rows × 11 columns
\n",
"
"
],
"text/plain": [
" inter_no start_unix ddur_1 ddur_2 ddur_3 ddur_4 ddur_5 ddur_6 \\\n",
"918 210 1704394650 24 19 29 56 22 0 \n",
"919 176 1704394650 37 73 40 0 0 0 \n",
"920 175 1704394640 37 39 25 30 29 0 \n",
"921 177 1704394650 36 20 68 26 0 0 \n",
"922 206 1704394680 33 35 26 26 0 0 \n",
"... ... ... ... ... ... ... ... ... \n",
"1146 211 1704398175 28 97 0 0 0 0 \n",
"1147 202 1704398180 39 101 0 0 0 0 \n",
"1148 175 1704398160 37 39 25 30 29 0 \n",
"1149 201 1704398180 24 24 17 58 17 0 \n",
"1150 178 1704398180 38 39 40 23 0 0 \n",
"\n",
" ddur_7 ddur_8 cycle \n",
"918 0 0 150 \n",
"919 0 0 150 \n",
"920 0 0 160 \n",
"921 0 0 150 \n",
"922 0 0 120 \n",
"... ... ... ... \n",
"1146 0 0 125 \n",
"1147 0 0 140 \n",
"1148 0 0 160 \n",
"1149 0 0 140 \n",
"1150 0 0 140 \n",
"\n",
"[233 rows x 11 columns]"
]
},
"execution_count": 276,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# - 5분마다 신호이력 데이터 수집해서 통합테이블 생성할때\n",
"# moves_fmins = [pd.read_csv(path_moves + csv_move, index_col=0) for csv_move in csv_moves if int(csv_move[5:-4]) in fmins]\n",
"# fmin2move = dict(zip(fmins,moves_fmins))\n",
"print(present_time)\n",
"# 1. 조회시점의 유닉스 타임을 기준으로 신호이력의 유닉스 타임이 1시간(또는 2시간) 이내인 데이터 수집\n",
"rhistory = history.copy()\n",
"rhistory = rhistory[(rhistory.end_unix < present_time) & (rhistory.end_unix >= present_time - 3600)]\n",
"# durs_A = [f'dur_A{j}' for j in range(1, 9)]\n",
"# durs_B = [f'dur_B{j}' for j in range(1, 9)]\n",
"ddurs = [f'ddur_{j}' for j in range(1, 9)]\n",
"\n",
"# 2. 시작 유닉스 타임컬럼 생성 후 종류 유닉스 타임에서 현시별 현시기간 컬럼의 합을 뺀 값으로 입력\n",
"# - 현시시간의 합을 뺀 시간의 +- 10초 이내에 이전 주기정보가 존재하면 그 유닉스 시간을 시작 유닉스시간 값으로 하고, 존재하지 않으면 현시시간의 합을 뺀 유닉스 시간을 시작 유닉스 시간으로 지정\n",
"# # 이전 유닉스 존재하지 않음 => 현시시간 합의 차\n",
"# # 이전 유닉스 존재, abs < 10 => 이전 유닉스\n",
"# # 이전 유닉스 존재, abs >=10 => 현시시간 합의 차\n",
"for i, row in rhistory.iterrows():\n",
" inter_no = row.inter_no\n",
" end_unix = row.end_unix\n",
" elapsed_time = row[ddurs].sum()\n",
" start_unix = end_unix - elapsed_time\n",
" pre_rows = history[:i] # previous rows\n",
" if inter_no in pre_rows.inter_no.unique(): # 이전 유닉스 존재\n",
" pre_unix = pre_rows[pre_rows.inter_no == inter_no]['end_unix'].iloc[-1] # previous unix time\n",
" if abs(pre_unix - start_unix) < 10: # abs < 10\n",
" start_unix = pre_unix\n",
" else: # abs >= 10\n",
" pass\n",
" rhistory.loc[i, 'start_unix'] = start_unix\n",
"rhistory[rhistory.isna()] = 0\n",
"rhistory['start_unix'] = rhistory['start_unix'].astype(int)\n",
"# with pd.option_context('display.max_rows', None, 'display.max_columns', None):\n",
"# display(rhistory)\n",
"rhistory = rhistory[['inter_no', 'start_unix'] + ddurs + ['cycle']]\n",
"rhistory"
]
},
{
"cell_type": "code",
"execution_count": 277,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" inter_no | \n",
" start_unix | \n",
" phas_A | \n",
" phas_B | \n",
" duration | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 175 | \n",
" 1704394640 | \n",
" 1 | \n",
" 1 | \n",
" 37 | \n",
"
\n",
" \n",
" 1 | \n",
" 175 | \n",
" 1704394640 | \n",
" 2 | \n",
" 2 | \n",
" 39 | \n",
"
\n",
" \n",
" 2 | \n",
" 175 | \n",
" 1704394640 | \n",
" 3 | \n",
" 3 | \n",
" 25 | \n",
"
\n",
" \n",
" 3 | \n",
" 175 | \n",
" 1704394640 | \n",
" 3 | \n",
" 4 | \n",
" 30 | \n",
"
\n",
" \n",
" 4 | \n",
" 175 | \n",
" 1704394640 | \n",
" 4 | \n",
" 4 | \n",
" 29 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 864 | \n",
" 201 | \n",
" 1704398180 | \n",
" 3 | \n",
" 3 | \n",
" 17 | \n",
"
\n",
" \n",
" 865 | \n",
" 201 | \n",
" 1704398180 | \n",
" 4 | \n",
" 4 | \n",
" 58 | \n",
"
\n",
" \n",
" 866 | \n",
" 201 | \n",
" 1704398180 | \n",
" 5 | \n",
" 5 | \n",
" 17 | \n",
"
\n",
" \n",
" 867 | \n",
" 202 | \n",
" 1704398180 | \n",
" 1 | \n",
" 1 | \n",
" 39 | \n",
"
\n",
" \n",
" 868 | \n",
" 202 | \n",
" 1704398180 | \n",
" 2 | \n",
" 2 | \n",
" 101 | \n",
"
\n",
" \n",
"
\n",
"
869 rows × 5 columns
\n",
"
"
],
"text/plain": [
" inter_no start_unix phas_A phas_B duration\n",
"0 175 1704394640 1 1 37\n",
"1 175 1704394640 2 2 39\n",
"2 175 1704394640 3 3 25\n",
"3 175 1704394640 3 4 30\n",
"4 175 1704394640 4 4 29\n",
".. ... ... ... ... ...\n",
"864 201 1704398180 3 3 17\n",
"865 201 1704398180 4 4 58\n",
"866 201 1704398180 5 5 17\n",
"867 202 1704398180 1 1 39\n",
"868 202 1704398180 2 2 101\n",
"\n",
"[869 rows x 5 columns]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# 계층화된 형태로 변환\n",
"hrhistory = [] # hierarchied recent history\n",
"for i, row in rhistory.iterrows():\n",
" inter_no = row.inter_no #\n",
" start_unix = row.start_unix #\n",
" ind = (timetable['start_seconds'] < row.start_unix).sum() - 1\n",
" start_hour = timetable.iloc[ind].start_hour\n",
" start_minute = timetable.iloc[ind].start_minute\n",
" isplit = isplits[(inter_no, start_hour, start_minute)]\n",
" new_rows = []\n",
" for j in isplit.keys():\n",
" phas_A, phas_B = isplit[j]\n",
" duration = row[f'ddur_{j}']\n",
" new_rows.append(pd.DataFrame({'inter_no':[inter_no], 'start_unix':[start_unix],\n",
" 'phas_A':[phas_A],'phas_B':[phas_B],'duration':[duration]}))\n",
" new_rows = pd.concat(new_rows)\n",
" hrhistory.append(new_rows)\n",
"hrhistory = pd.concat(hrhistory)\n",
"hrhistory = hrhistory.sort_values(by = ['start_unix', 'inter_no', 'phas_A', 'phas_B']).reset_index(drop=True)\n",
"display(hrhistory)"
]
},
{
"cell_type": "code",
"execution_count": 278,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" inter_no | \n",
" start_unix | \n",
" phas_A | \n",
" phas_B | \n",
" duration | \n",
" inc_edge_A | \n",
" inc_edge_B | \n",
" out_edge_A | \n",
" out_edge_B | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 211 | \n",
" 1704394815 | \n",
" 1 | \n",
" 1 | \n",
" 28 | \n",
" 571542116_01 | \n",
" 571542116_02.96 | \n",
" -571542116_02.96 | \n",
" 571542116_02.164 | \n",
"
\n",
" \n",
" 1 | \n",
" 211 | \n",
" 1704394815 | \n",
" 2 | \n",
" 2 | \n",
" 97 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 2 | \n",
" 178 | \n",
" 1704394820 | \n",
" 1 | \n",
" 1 | \n",
" 38 | \n",
" 571540304_02 | \n",
" 571556450_02 | \n",
" 571556450_01 | \n",
" 571540304_01 | \n",
"
\n",
" \n",
" 3 | \n",
" 178 | \n",
" 1704394820 | \n",
" 2 | \n",
" 2 | \n",
" 39 | \n",
" 571556450_02 | \n",
" 571540304_02 | \n",
" 571500475_01 | \n",
" 571540303_01 | \n",
"
\n",
" \n",
" 4 | \n",
" 178 | \n",
" 1704394820 | \n",
" 3 | \n",
" 3 | \n",
" 40 | \n",
" 571540303_02.21 | \n",
" 571540303_02.21 | \n",
" 571556450_01 | \n",
" 571500475_01 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 809 | \n",
" 201 | \n",
" 1704398180 | \n",
" 3 | \n",
" 3 | \n",
" 17 | \n",
" 571500617_02 | \n",
" 571500618_02 | \n",
" 571500618_01 | \n",
" 571500617_01 | \n",
"
\n",
" \n",
" 810 | \n",
" 201 | \n",
" 1704398180 | \n",
" 4 | \n",
" 4 | \n",
" 58 | \n",
" 571500617_02 | \n",
" 571500617_02 | \n",
" 571500618_01 | \n",
" 571500569_01 | \n",
"
\n",
" \n",
" 811 | \n",
" 201 | \n",
" 1704398180 | \n",
" 5 | \n",
" 5 | \n",
" 17 | \n",
" 571500583_01 | \n",
" 571500583_01 | \n",
" 571500617_01 | \n",
" 571500569_01 | \n",
"
\n",
" \n",
" 812 | \n",
" 202 | \n",
" 1704398180 | \n",
" 1 | \n",
" 1 | \n",
" 39 | \n",
" 571510152_02 | \n",
" 571510152_01 | \n",
" -571510152_01 | \n",
" 571510152_01.65 | \n",
"
\n",
" \n",
" 813 | \n",
" 202 | \n",
" 1704398180 | \n",
" 2 | \n",
" 2 | \n",
" 101 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
814 rows × 9 columns
\n",
"
"
],
"text/plain": [
" inter_no start_unix phas_A phas_B duration inc_edge_A \\\n",
"0 211 1704394815 1 1 28 571542116_01 \n",
"1 211 1704394815 2 2 97 NaN \n",
"2 178 1704394820 1 1 38 571540304_02 \n",
"3 178 1704394820 2 2 39 571556450_02 \n",
"4 178 1704394820 3 3 40 571540303_02.21 \n",
".. ... ... ... ... ... ... \n",
"809 201 1704398180 3 3 17 571500617_02 \n",
"810 201 1704398180 4 4 58 571500617_02 \n",
"811 201 1704398180 5 5 17 571500583_01 \n",
"812 202 1704398180 1 1 39 571510152_02 \n",
"813 202 1704398180 2 2 101 NaN \n",
"\n",
" inc_edge_B out_edge_A out_edge_B \n",
"0 571542116_02.96 -571542116_02.96 571542116_02.164 \n",
"1 NaN NaN NaN \n",
"2 571556450_02 571556450_01 571540304_01 \n",
"3 571540304_02 571500475_01 571540303_01 \n",
"4 571540303_02.21 571556450_01 571500475_01 \n",
".. ... ... ... \n",
"809 571500618_02 571500618_01 571500617_01 \n",
"810 571500617_02 571500618_01 571500569_01 \n",
"811 571500583_01 571500617_01 571500569_01 \n",
"812 571510152_01 -571510152_01 571510152_01.65 \n",
"813 NaN NaN NaN \n",
"\n",
"[814 rows x 9 columns]"
]
},
"execution_count": 278,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 5초단위로 수집한 이동류정보(time2movement[present_time])와 최근 1시간 신호이력(hrhistory)을 병합\n",
"movedur = pd.merge(time2movement[present_time], hrhistory, how='inner', on=['inter_no', 'start_unix', 'phas_A', 'phas_B'])\n",
"# movements and durations\n",
"movedur = movedur.sort_values(by=['start_unix', 'inter_no', 'phas_A','phas_B'])\n",
"movedur = movedur[['inter_no', 'start_unix', 'phas_A', 'phas_B', 'move_A', 'move_B', 'duration']]\n",
"# 이동류 매칭 테이블에서 진입id, 진출id를 가져와서 붙임.\n",
"for i, row in movedur.iterrows():\n",
" inter_no = row.inter_no\n",
" start_unix = row.start_unix\n",
" move_A = row.move_A\n",
" move_B = row.move_B\n",
" match_A = matching[(matching.inter_no == inter_no) & (matching.move_no == move_A)].iloc[0]\n",
" match_B = matching[(matching.inter_no == inter_no) & (matching.move_no == move_B)].iloc[0]\n",
" inc_edge_A = match_A.inc_edge\n",
" inc_edge_B = match_B.inc_edge\n",
" out_edge_A = match_A.out_edge\n",
" out_edge_B = match_B.out_edge\n",
" movedur.loc[i, ['inc_edge_A', 'inc_edge_B', 'out_edge_A', 'out_edge_B']] = [inc_edge_A, inc_edge_B, out_edge_A, out_edge_B]\n",
"# 이동류 컬럼 제거\n",
"movedur = movedur.drop(['move_A', 'move_B'], axis=1)\n",
"movedur"
]
},
{
"cell_type": "code",
"execution_count": 279,
"metadata": {},
"outputs": [],
"source": [
"histid = movedur.copy() # history with edge ids (incoming and outgoing edge ids)\n",
"# print(present_time)\n",
"# print(histid.start_unix.min())\n",
"# print(histid.start_unix.max())\n",
"# print(histid.start_unix.max() - histid.start_unix.min())\n",
"plt.figure(figsize=(10, 6))\n",
"times = [histid.start_unix.min(), histid.start_unix.max(), present_time]\n",
"ys = [0] * 3\n",
"plt.scatter(times, ys)\n",
"plt.close()"
]
},
{
"cell_type": "code",
"execution_count": 280,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([211, 178, 201, 202, 206, 177, 176, 210, 175], dtype=int64)"
]
},
"execution_count": 280,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"histid.inter_no.unique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 3. 결측, 이상치 처리"
]
},
{
"cell_type": "code",
"execution_count": 235,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" inter_no | \n",
" start_unix | \n",
" dura_A1 | \n",
" dura_A2 | \n",
" dura_A3 | \n",
" dura_A4 | \n",
" dura_A5 | \n",
" dura_A6 | \n",
" dura_A7 | \n",
" dura_A8 | \n",
" dura_B1 | \n",
" dura_B2 | \n",
" dura_B3 | \n",
" dura_B4 | \n",
" dura_B5 | \n",
" dura_B6 | \n",
" dura_B7 | \n",
" dura_B8 | \n",
" cycle | \n",
" pstart_unix | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 175 | \n",
" 1704380400 | \n",
" 37 | \n",
" 39 | \n",
" 55 | \n",
" 29 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 37 | \n",
" 39 | \n",
" 25 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 160 | \n",
" 1704380400 | \n",
"
\n",
" \n",
" 1 | \n",
" 175 | \n",
" 1704405600 | \n",
" 40 | \n",
" 42 | \n",
" 55 | \n",
" 33 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 40 | \n",
" 42 | \n",
" 29 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 170 | \n",
" 1704405600 | \n",
"
\n",
" \n",
" 2 | \n",
" 175 | \n",
" 1704412800 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 43 | \n",
" 45 | \n",
" 33 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 180 | \n",
" 1704412800 | \n",
"
\n",
" \n",
" 3 | \n",
" 175 | \n",
" 1704447000 | \n",
" 46 | \n",
" 48 | \n",
" 55 | \n",
" 41 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 46 | \n",
" 48 | \n",
" 37 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 190 | \n",
" 1704447000 | \n",
"
\n",
" \n",
" 4 | \n",
" 176 | \n",
" 1704380400 | \n",
" 37 | \n",
" 73 | \n",
" 40 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 37 | \n",
" 73 | \n",
" 40 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 150 | \n",
" 1704380400 | \n",
"
\n",
" \n",
" 5 | \n",
" 176 | \n",
" 1704405600 | \n",
" 37 | \n",
" 93 | \n",
" 40 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 37 | \n",
" 93 | \n",
" 40 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 170 | \n",
" 1704405600 | \n",
"
\n",
" \n",
" 6 | \n",
" 176 | \n",
" 1704412800 | \n",
" 37 | \n",
" 103 | \n",
" 40 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 37 | \n",
" 103 | \n",
" 40 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 180 | \n",
" 1704412800 | \n",
"
\n",
" \n",
" 7 | \n",
" 176 | \n",
" 1704447000 | \n",
" 37 | \n",
" 113 | \n",
" 40 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 37 | \n",
" 113 | \n",
" 40 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 190 | \n",
" 1704447000 | \n",
"
\n",
" \n",
" 8 | \n",
" 177 | \n",
" 1704380400 | \n",
" 36 | \n",
" 20 | \n",
" 68 | \n",
" 26 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 36 | \n",
" 20 | \n",
" 68 | \n",
" 26 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 150 | \n",
" 1704380400 | \n",
"
\n",
" \n",
" 9 | \n",
" 177 | \n",
" 1704405600 | \n",
" 40 | \n",
" 25 | \n",
" 71 | \n",
" 34 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 40 | \n",
" 25 | \n",
" 71 | \n",
" 34 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 170 | \n",
" 1704405600 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" inter_no start_unix dura_A1 dura_A2 dura_A3 dura_A4 dura_A5 dura_A6 \\\n",
"0 175 1704380400 37 39 55 29 0 0 \n",
"1 175 1704405600 40 42 55 33 0 0 \n",
"2 175 1704412800 43 45 55 37 0 0 \n",
"3 175 1704447000 46 48 55 41 0 0 \n",
"4 176 1704380400 37 73 40 0 0 0 \n",
"5 176 1704405600 37 93 40 0 0 0 \n",
"6 176 1704412800 37 103 40 0 0 0 \n",
"7 176 1704447000 37 113 40 0 0 0 \n",
"8 177 1704380400 36 20 68 26 0 0 \n",
"9 177 1704405600 40 25 71 34 0 0 \n",
"\n",
" dura_A7 dura_A8 dura_B1 dura_B2 dura_B3 dura_B4 dura_B5 dura_B6 \\\n",
"0 0 0 37 39 25 59 0 0 \n",
"1 0 0 40 42 29 59 0 0 \n",
"2 0 0 43 45 33 59 0 0 \n",
"3 0 0 46 48 37 59 0 0 \n",
"4 0 0 37 73 40 0 0 0 \n",
"5 0 0 37 93 40 0 0 0 \n",
"6 0 0 37 103 40 0 0 0 \n",
"7 0 0 37 113 40 0 0 0 \n",
"8 0 0 36 20 68 26 0 0 \n",
"9 0 0 40 25 71 34 0 0 \n",
"\n",
" dura_B7 dura_B8 cycle pstart_unix \n",
"0 0 0 160 1704380400 \n",
"1 0 0 170 1704405600 \n",
"2 0 0 180 1704412800 \n",
"3 0 0 190 1704447000 \n",
"4 0 0 150 1704380400 \n",
"5 0 0 170 1704405600 \n",
"6 0 0 180 1704412800 \n",
"7 0 0 190 1704447000 \n",
"8 0 0 150 1704380400 \n",
"9 0 0 170 1704405600 "
]
},
"execution_count": 235,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"planned = plan.copy()\n",
"planned['start_unix'] = planned['start_hour'] * 3600 +planned['start_minute'] * 60 + midnight\n",
"start_unixes = planned.start_unix.unique()\n",
"planned['pstart_unix'] = planned['start_unix'].apply(lambda x:start_unixes[sum(start_unixes <= x) - 1]) # the unix time when the program started\n",
"planned = planned[['inter_no', 'start_unix'] + [f'dura_{alph}{j}' for alph in ['A', 'B'] for j in range(1,9)] + ['cycle', 'pstart_unix']]\n",
"planned.head(10)"
]
},
{
"cell_type": "code",
"execution_count": 236,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" inter_no | \n",
" start_unix | \n",
" phas_A | \n",
" phas_B | \n",
" duration | \n",
" inc_edge_A | \n",
" inc_edge_B | \n",
" out_edge_A | \n",
" out_edge_B | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 211 | \n",
" 1704394815 | \n",
" 1 | \n",
" 1 | \n",
" 28 | \n",
" 571542116_01 | \n",
" 571542116_02.96 | \n",
" -571542116_02.96 | \n",
" 571542116_02.164 | \n",
"
\n",
" \n",
" 1 | \n",
" 211 | \n",
" 1704394815 | \n",
" 2 | \n",
" 2 | \n",
" 97 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 2 | \n",
" 178 | \n",
" 1704394820 | \n",
" 1 | \n",
" 1 | \n",
" 38 | \n",
" 571540304_02 | \n",
" 571556450_02 | \n",
" 571556450_01 | \n",
" 571540304_01 | \n",
"
\n",
" \n",
" 3 | \n",
" 178 | \n",
" 1704394820 | \n",
" 2 | \n",
" 2 | \n",
" 39 | \n",
" 571556450_02 | \n",
" 571540304_02 | \n",
" 571500475_01 | \n",
" 571540303_01 | \n",
"
\n",
" \n",
" 4 | \n",
" 178 | \n",
" 1704394820 | \n",
" 3 | \n",
" 3 | \n",
" 40 | \n",
" 571540303_02.21 | \n",
" 571540303_02.21 | \n",
" 571556450_01 | \n",
" 571500475_01 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 809 | \n",
" 201 | \n",
" 1704398180 | \n",
" 3 | \n",
" 3 | \n",
" 17 | \n",
" 571500617_02 | \n",
" 571500618_02 | \n",
" 571500618_01 | \n",
" 571500617_01 | \n",
"
\n",
" \n",
" 810 | \n",
" 201 | \n",
" 1704398180 | \n",
" 4 | \n",
" 4 | \n",
" 58 | \n",
" 571500617_02 | \n",
" 571500617_02 | \n",
" 571500618_01 | \n",
" 571500569_01 | \n",
"
\n",
" \n",
" 811 | \n",
" 201 | \n",
" 1704398180 | \n",
" 5 | \n",
" 5 | \n",
" 17 | \n",
" 571500583_01 | \n",
" 571500583_01 | \n",
" 571500617_01 | \n",
" 571500569_01 | \n",
"
\n",
" \n",
" 812 | \n",
" 202 | \n",
" 1704398180 | \n",
" 1 | \n",
" 1 | \n",
" 39 | \n",
" 571510152_02 | \n",
" 571510152_01 | \n",
" -571510152_01 | \n",
" 571510152_01.65 | \n",
"
\n",
" \n",
" 813 | \n",
" 202 | \n",
" 1704398180 | \n",
" 2 | \n",
" 2 | \n",
" 101 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
814 rows × 9 columns
\n",
"
"
],
"text/plain": [
" inter_no start_unix phas_A phas_B duration inc_edge_A \\\n",
"0 211 1704394815 1 1 28 571542116_01 \n",
"1 211 1704394815 2 2 97 NaN \n",
"2 178 1704394820 1 1 38 571540304_02 \n",
"3 178 1704394820 2 2 39 571556450_02 \n",
"4 178 1704394820 3 3 40 571540303_02.21 \n",
".. ... ... ... ... ... ... \n",
"809 201 1704398180 3 3 17 571500617_02 \n",
"810 201 1704398180 4 4 58 571500617_02 \n",
"811 201 1704398180 5 5 17 571500583_01 \n",
"812 202 1704398180 1 1 39 571510152_02 \n",
"813 202 1704398180 2 2 101 NaN \n",
"\n",
" inc_edge_B out_edge_A out_edge_B \n",
"0 571542116_02.96 -571542116_02.96 571542116_02.164 \n",
"1 NaN NaN NaN \n",
"2 571556450_02 571556450_01 571540304_01 \n",
"3 571540304_02 571500475_01 571540303_01 \n",
"4 571540303_02.21 571556450_01 571500475_01 \n",
".. ... ... ... \n",
"809 571500618_02 571500618_01 571500617_01 \n",
"810 571500617_02 571500618_01 571500569_01 \n",
"811 571500583_01 571500617_01 571500569_01 \n",
"812 571510152_01 -571510152_01 571510152_01.65 \n",
"813 NaN NaN NaN \n",
"\n",
"[814 rows x 9 columns]"
]
},
"execution_count": 236,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"histid = movedur.copy() # history with edge ids (incoming and outgoing edge ids)\n",
"histid"
]
},
{
"cell_type": "code",
"execution_count": 270,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([211, 178, 201, 202, 206, 177, 176, 210, 175], dtype=int64)"
]
},
"execution_count": 270,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"histid.inter_no.unique()"
]
},
{
"cell_type": "code",
"execution_count": 272,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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H3xgfv7zn5tevXqZ7777zqkZPny4GTx4sPn3v/9t1qxZY84++2wzbtw453hFRYWJi4szmZmZZuvWrebvf/+7CQ8PN88888xpnW9jmrIW48ePN8OHD/f72SgrK/M7jw1rUVpa6jfHVatWGUnm7bffNsa0r+vFydaiPV0vZs2aZbp06WKWL19udu3aZfLy8kynTp3MnDlznJr2cr1oCOGmBcycOdMMHjy4wWPl5eUmJCTE5OXlOft27NhhJJmCggJjjDErVqwwQUFBxufzOTXz5s0zbrfbVFVVGWOMueuuu8y5557rd+6xY8eajIyMUzybn6axtTDm6MVq6tSpJzxu01rcfffd5uKLLz7h8bq6OuPxeMyjjz7q7CsvLzdhYWHm73//uzHGmO3btxtJZsOGDU7NG2+8YVwul9mzZ48xxpinn37anHnmmc761L92v379TvWUfrSTrYUxR8PNqFGjTnjclrX4oalTp5o+ffqYurq6dne9+KHvr4Ux7et6MXLkSHPzzTf77bvmmmtMZmamMaZ9XS8awq+lWsjOnTsVHx+v3r17KzMzU8XFxZKkwsJC1dTUKD093ant37+/EhMTVVBQIEkqKCjQoEGDFBcX59RkZGSosrJS27Ztc2q+f476mvpztCYnWot6ixcvVkxMjAYOHKicnBwdOnTIOWbTWrz22mtKSUnRddddp65du+r888/Xs88+6xzftWuXfD6f31wiIyOVmprq97MRFRWllJQUpyY9PV1BQUFat26dU3PppZcqNDTUqcnIyFBRUZG+/fbbQE+zSU62FvXeeecdde3aVf369dOtt96qb775xjlmy1p8X3V1tRYtWqSbb75ZLperXV4v6v1wLeq1l+vFhRdeqPz8fH388ceSpA8++EDvvfeeRowYIal9XS8a0i7/4cyWlpqaqoULF6pfv37at2+fHnjgAV1yySXaunWrfD6fQkNDFRUV5dcTFxcnn88nSfL5fH5/OeuP1x9rrKayslLfffedwsPDAzS75mlsLTp37qxf/vKX6tGjh+Lj47VlyxbdfffdKioq0ssvvyzJrrX47LPPNG/ePGVnZ+vee+/Vhg0b9Otf/1qhoaEaP368M5+G5vL9uXbt2tXveHBwsKKjo/1qevXqddw56o+deeaZAZlfc5xsLSRp+PDhuuaaa9SrVy99+umnuvfeezVixAgVFBSoQ4cO1qzF973yyisqLy/XhAkTJKndXS++74drIaldXS/uueceVVZWqn///urQoYNqa2s1a9YsZWZmSlK7ul40hHDTAuqTtSSdd955Sk1NVY8ePfSPf/yj1fzFOV0aW4usrCzdcsstzvFBgwapW7duSktL06effqo+ffq0xJADpq6uTikpKfrjH/8oSTr//PO1detWzZ8/33lDby+ashbXX3+9Uz9o0CCdd9556tOnj9555x2lpaW1yLgD7a9//atGjBih+Pj4lh5Ki2toLdrT9eIf//iHFi9erCVLlujcc8/V5s2b9Zvf/Ebx8fHt7nrREH4t1QpERUXpnHPO0SeffCKPx6Pq6mqVl5f71ZSUlMjj8UiSPB7PcU9D1P/5ZDVut7tVB6jvr0VDUlNTJck5btNadOvWTQMGDPDbl5SU5Pyarn4+Dc3l+3MtLS31O37kyBGVlZU16+enpZ1sLRrSu3dvxcTE+P1s2LAW9b744gu99dZb+u///m9nX3u9XjS0Fg2x+Xoxbdo03XPPPbr++us1aNAg3XjjjbrjjjuUm5srqX1dLxpCuGkFDhw4oE8//VTdunVTcnKyQkJClJ+f7xwvKipScXGxvF6vJMnr9erDDz/0+6FctWqV3G6384bg9Xr9zlFfU3+O1ur7a9GQzZs3S5Jz3Ka1uOiii1RUVOS37+OPP1aPHj0kSb169ZLH4/GbS2VlpdatW+f3s1FeXq7CwkKnZvXq1aqrq3Mu9F6vV++++65qamqcmlWrVqlfv36t5hbzydaiIV9++aW++eYbv58NG9ai3vPPP6+uXbtq5MiRzr72er1oaC0aYvP14tChQwoK8n8L79Chg+rq6iS1r+tFg1r6E83t0Z133mneeecds2vXLvN///d/Jj093cTExJjS0lJjzNFHOxMTE83q1avNxo0bjdfrNV6v1+mvf5zxyiuvNJs3bzYrV640sbGxDT7OOG3aNLNjxw4zd+7cVvk4Y2Nr8cknn5jf//73ZuPGjWbXrl3m1VdfNb179zaXXnqp02/TWqxfv94EBwebWbNmmZ07d5rFixebiIgIs2jRIqfmoYceMlFRUebVV181W7ZsMaNGjWrw0c7zzz/frFu3zrz33numb9++fo92lpeXm7i4OHPjjTearVu3mqVLl5qIiIhW9WjnydZi//795re//a0pKCgwu3btMm+99ZYZOnSo6du3rzl8+LBzHhvWwhhjamtrTWJiorn77ruPO9aerhfGnHgt2tv1Yvz48aZ79+7Oo+Avv/yyiYmJMXfddZdT016uFw0h3LSAsWPHmm7dupnQ0FDTvXt3M3bsWL/v7/juu+/Mr371K3PmmWeaiIgIc/XVV5t9+/b5nePzzz83I0aMMOHh4SYmJsbceeedpqamxq/m7bffNkOGDDGhoaGmd+/e5vnnnz8d02uWxtaiuLjYXHrppSY6OtqEhYWZs88+20ybNs3veyuMsWctjDHm9ddfNwMHDjRhYWGmf//+ZsGCBX7H6+rqzIwZM0xcXJwJCwszaWlppqioyK/mm2++MePGjTOdOnUybrfbTJw40ezfv9+v5oMPPjAXX3yxCQsLM927dzcPPfRQwOfWXI2txaFDh8yVV15pYmNjTUhIiOnRo4eZNGmS3yO+xtizFm+++aaRdNz/a2Pa1/XCmBOvRXu7XlRWVpqpU6eaxMRE07FjR9O7d29z3333+T2y3Z6uFz/kMuZ7X2cIAADQxvGZGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AAC0ArNmzdKFF16oiIiI4/6l9xNxuVwNbo8++qhTU1ZWpszMTLndbkVFRSkrK0sHDhxo8HyffPKJOnfufNzrv/zyy0pJSVFUVJTOOOMMDRkyRC+++KJfTUlJiSZMmKD4+HhFRERo+PDh2rlzZ7PWQJLmzp2rpKQkhYeHq1+/fnrhhReafQ7CDQAAp8nll1+uhQsXNnisurpa1113nW699dYmn2/fvn1+23PPPSeXy6UxY8Y4NZmZmdq2bZtWrVql5cuX69133/X7F9Tr1dTUaNy4cbrkkkuOOxYdHa377rtPBQUF2rJliyZOnKiJEyfqzTfflCQZYzR69Gh99tlnevXVV/X++++rR48eSk9P18GDB5s8n3nz5iknJ0e/+93vtG3bNj3wwAOaMmWKXn/99Safo35AAADgNLjssstO+s85PP/88yYyMvJHnX/UqFHmiiuucP68fft2I8ls2LDB2ffGG28Yl8tl9uzZ49d71113mRtuuKHJr3/++eeb6dOnG2OMKSoqMpLM1q1bneO1tbUmNjbWPPvss86+b7/91mRlZZmYmBjTuXNn87Of/cxs3rzZOe71es1vf/tbv9fJzs42F110UdMW4P/jzg0AABYoKSnRP//5T2VlZTn7CgoKFBUVpZSUFGdfenq6goKCtG7dOmff6tWrlZeXp7lz5570dYwxys/PV1FRkS699FJJUlVVlSSpY8eOTl1QUJDCwsL03nvvOfuuu+46lZaW6o033lBhYaGGDh2qtLQ0lZWVOef5/jkkKTw8XOvXr/f7l8lPhnADAIAF/va3v6lz58665pprnH0+n09du3b1qwsODlZ0dLR8Pp8k6ZtvvtGECRO0cOFCud3uE56/oqJCnTp1UmhoqEaOHKknn3xS//mf/ylJ6t+/vxITE5WTk6Nvv/1W1dXVevjhh/Xll19q3759kqT33ntP69evV15enlJSUtS3b1/96U9/UlRUlF566SVJUkZGhv7yl7+osLBQxhht3LhRf/nLX1RTU6Ovv/66yWtBuAEAIED++Mc/qlOnTs62Zs0aTZ482W9fcXHxKXmt5557TpmZmcfd+TiZSZMm6Ze//KVzF+ZEOnfurM2bN2vDhg2aNWuWsrOz9c4770iSQkJC9PLLL+vjjz9WdHS0IiIi9Pbbb2vEiBEKCjoaNT744AMdOHBAXbp08Zv/rl279Omnn0qSZsyYoREjRuiCCy5QSEiIRo0apfHjx0uSc56mCG7WCgAAgCabPHmyfvGLXzh/zszM1JgxY/zursTHx//k11mzZo2Kioq0bNkyv/0ej0elpaV++44cOaKysjJ5PB5JR38l9dprr+lPf/qTpKO/dqqrq1NwcLAWLFigm2++WdLRcHH22WdLkoYMGaIdO3YoNzdXl19+uSQpOTlZmzdvVkVFhaqrqxUbG6vU1FTnV2IHDhxQt27dnED0ffVPZ4WHh+u5557TM888o5KSEnXr1k0LFixQ586dFRsb2+T1INwAABAg0dHRio6Odv4cHh6url27OiHhVPnrX/+q5ORkDR482G+/1+tVeXm5CgsLlZycLOlomKmrq1Nqaqqko5/Lqa2tdXpeffVVPfzww1q7dq26d+9+wtesq6tzPmvzfZGRkZKknTt3auPGjXrwwQclSUOHDpXP51NwcLB69uzZ6HxCQkJ01llnSZKWLl2q//qv/+LODQAAbU1xcbHKyspUXFys2tpabd68WZJ09tlnq1OnTpKOfrYlNzdXV199tdNXWVmpvLw8PfbYY8edMykpScOHD9ekSZM0f/581dTU6LbbbtP111/v3DFKSkry69m4caOCgoI0cOBAZ19ubq5SUlLUp08fVVVVacWKFXrxxRc1b948pyYvL0+xsbFKTEzUhx9+qKlTp2r06NG68sorJR39ILPX69Xo0aP1yCOP6JxzztHevXv1z3/+U1dffbVSUlL08ccfa/369UpNTdW3336rxx9/XFu3btXf/va3Zq0l4QYAgFbg/vvv93sTP//88yVJb7/9tvOrn6KiIlVUVPj1LV26VMYYjRs3rsHzLl68WLfddpvS0tIUFBSkMWPG6IknnmjW2A4ePKhf/epX+vLLLxUeHq7+/ftr0aJFGjt2rFOzb98+ZWdnO79OuummmzRjxgznuMvl0ooVK3Tfffdp4sSJ+uqrr+TxeHTppZcqLi5OklRbW6vHHntMRUVFCgkJ0c9+9jOtXbv2pHd6fshljDHN6gAAAGjFeFoKAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKv8Pz7L8VAjOdvqAAAAAElFTkSuQmCC",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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X77cxMTEmNzcXKfmyy+/NB06dDA5OTnmk08+Mc8++6xp166dWbFiRbPO9UzOtBZXXHGFmTx5ss/xyspK57hNa1FeXm66d+9uJk6caNauXWu+/PJL884775jPP//cqXn44YdNZGSkef31181HH31kfv7zn5uePXua77//3qkZPny4GThwoPnXv/5lVq9ebc4991wzbtw453hlZaWJi4szWVlZZuvWreZvf/ubiYiIMH/605+adb6n05C1mDBhghk+fLjPz0Z5eblPHxvWwhhjysrKfOa5cuVKI8m89957xpi2dc0401q0pWvG7NmzTefOnc2yZcvMzp07TX5+vunYsaN5+umnnZq2cs2oC+Gmmc2aNcsMHDiwzmMVFRUmNDTU5OfnO/u2b99uJJnCwkJjjDHLly83wcHBxuPxODXz5s0zLpfLVFVVGWOMueuuu8wFF1zg03vs2LEmMzOziWfz7zndWhhz/EI1bdq0eo/btBZ33323ufTSS+s9Xltba9xut3nsscecfRUVFSY8PNz87W9/M8YY88knnxhJZv369U7N22+/bYKCgsyePXuMMcY899xz5uyzz3bW58Rj9+3bt6mn9JOdaS2MOR5uRo0aVe9xW9aiLtOmTTO9e/c2tbW1be6a8WM/XAtj2tY1Y+TIkebmm2/22XfttdearKwsY0zbumbUhZelWsCOHTsUHx+vXr16KSsrSyUlJZKkoqIiVVdXKyMjw6nt16+fEhMTVVhYKEkqLCzUgAEDFBcX59RkZmbK6/Vq27ZtTs0Pe5yoOdEjkNS3FicsXrxYMTEx6t+/v3Jzc3X48GHnmE1r8eabbyolJUXXX3+9unTposGDB+v55593ju/cuVMej8dnLpGRkUpNTfX52YiKilJKSopTk5GRoeDgYK1du9apufzyyxUWFubUZGZmqri4WPv37/f3NBvkTGtxwvvvv68uXbqob9++uu222/Tdd985x2xZix87evSoFi1apJtvvllBQUFt8ppxwo/X4oS2cs24+OKLVVBQoM8++0yS9NFHH+nDDz/UiBEjJLWta0Zd2uQvzmxJqampWrhwofr27at9+/bpwQcf1GWXXaatW7fK4/EoLCxMUVFRPufExcXJ4/FIkjwej89/zBPHTxw7XY3X69X333+viIgIP82ucU63Fp06ddIvf/lLde/eXfHx8dqyZYvuvvtuFRcX67XXXpNk11p8+eWXmjdvnnJycnTvvfdq/fr1+vWvf62wsDBNmDDBmU9dc/nhXLt06eJzPCQkRNHR0T41PXv2PKXHiWNnn322X+bXGGdaC0kaPny4rr32WvXs2VNffPGF7r33Xo0YMUKFhYVq166dNWvxY6+//roqKio0ceJESWpz14wf+vFaSGpT14x77rlHXq9X/fr1U7t27VRTU6PZs2crKytLktrUNaMuhJtmdiJVS9KFF16o1NRUde/eXX//+98D5j9NczndWmRnZ+uWW25xjg8YMEBdu3ZVenq6vvjiC/Xu3bslhuw3tbW1SklJ0R/+8AdJ0uDBg7V161bNnz/feUJvKxqyFjfccINTP2DAAF144YXq3bu33n//faWnp7fIuJvDX/7yF40YMULx8fEtPZQWV9datKVrxt///nctXrxYS5Ys0QUXXKDNmzfrN7/5jeLj49vcNaMuvCzVwqKionTeeefp888/l9vt1tGjR1VRUeFTU1paKrfbLUlyu92nfBLixN/PVONyuQI6QP1wLeqSmpoqSc5xm9aia9euOv/88332JSUlOS/TnZhPXXP54VzLysp8jh87dkzl5eWN+vlpaWdai7r06tVLMTExPj8bNqzFD3399dd699139d///d/OvrZ6zahrLepi8zVj+vTpuueee3TDDTdowIABuummm3THHXcoLy9PUtu6ZtSFcNPCDh48qC+++EJdu3ZVcnKyQkNDVVBQ4BwvLi5WSUmJ0tLSJElpaWn6+OOPfX4gV65cKZfL5TwhpKWl+fQ4UXOiR6D64VrUZfPmzZLkHLdpLS655BIVFxf77Pvss8/UvXt3SVLPnj3ldrt95uL1erV27Vqfn42KigoVFRU5NatWrVJtba1zkU9LS9MHH3yg6upqp2blypXq27dvwNxePtNa1GX37t367rvvfH42bFiLH3rxxRfVpUsXjRw50tnXVq8Zda1FXWy+Zhw+fFjBwb5P4e3atVNtba2ktnXNqFNLv6O5rbnzzjvN+++/b3bu3Gn+7//+z2RkZJiYmBhTVlZmjDn+sc7ExESzatUqs2HDBpOWlmbS0tKc8098lPGqq64ymzdvNitWrDCxsbF1fpRx+vTpZvv27Wbu3LkB+VHG063F559/bn73u9+ZDRs2mJ07d5o33njD9OrVy1x++eXO+Tatxbp160xISIiZPXu22bFjh1m8eLHp0KGDWbRokVPz8MMPm6ioKPPGG2+YLVu2mFGjRtX5sc7BgwebtWvXmg8//ND06dPH52OdFRUVJi4uztx0001m69at5pVXXjEdOnQIqI91nmktDhw4YH7729+awsJCs3PnTvPuu++aIUOGmD59+pgjR444fWxYixNqampMYmKiufvuu0851pauGcbUvxZt7ZoxYcIE061bN+ej4K+99pqJiYkxd911l1PTVq4ZdSHcNLOxY8earl27mrCwMNOtWzczduxYn+/v+P77782vfvUrc/bZZ5sOHTqYa665xuzbt8+nx1dffWVGjBhhIiIiTExMjLnzzjtNdXW1T817771nBg0aZMLCwkyvXr3Miy++2BzTa5TTrUVJSYm5/PLLTXR0tAkPDzfnnnuumT59us93Vhhjz1oYY8xbb71l+vfvb8LDw02/fv3MggULfI7X1taamTNnmri4OBMeHm7S09NNcXGxT813331nxo0bZzp27GhcLpeZNGmSOXDggE/NRx99ZC699FITHh5uunXrZh5++GG/z62xTrcWhw8fNldddZWJjY01oaGhpnv37mby5Mk+H+81xp61MMaYd955x0g65d/bmLZ1zTCm/rVoa9cMr9drpk2bZhITE0379u1Nr169zH333efzke22dM34sSBjfvB1hgAAAK0c77kBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAQACYPXu2Lr74YnXo0OGU3/Ren6CgoDq3xx57zKkpLy9XVlaWXC6XoqKilJ2drYMHD9bZ7/PPP1enTp1OefzXXntNKSkpioqK0llnnaVBgwbpr3/9q09NaWmpJk6cqPj4eHXo0EHDhw/Xjh07GrUGkjR37lwlJSUpIiJCffv21csvv9zoHoQbAACaybBhw7Rw4cI6jx09elTXX3+9brvttgb327dvn8/2wgsvKCgoSGPGjHFqsrKytG3bNq1cuVLLli3TBx984PMb1E+orq7WuHHjdNlll51yLDo6Wvfdd58KCwu1ZcsWTZo0SZMmTdI777wjSTLGaPTo0fryyy/1xhtvaNOmTerevbsyMjJ06NChBs9n3rx5ys3N1QMPPKBt27bpwQcf1JQpU/TWW281uMeJAQEAgGZwxRVXnPHXObz44osmMjLyJ/UfNWqUufLKK52/f/LJJ0aSWb9+vbPv7bffNkFBQWbPnj0+5951113mxhtvbPDjDx482MyYMcMYY0xxcbGRZLZu3eocr6mpMbGxseb555939u3fv99kZ2ebmJgY06lTJ/Ozn/3MbN682TmelpZmfvvb3/o8Tk5OjrnkkksatgD/H3duAACwQGlpqf7xj38oOzvb2VdYWKioqCilpKQ4+zIyMhQcHKy1a9c6+1atWqX8/HzNnTv3jI9jjFFBQYGKi4t1+eWXS5KqqqokSe3bt3fqgoODFR4erg8//NDZd/3116usrExvv/22ioqKNGTIEKWnp6u8vNzp88MekhQREaF169b5/GbyMyHcAABggZdeekmdOnXStdde6+zzeDzq0qWLT11ISIiio6Pl8XgkSd99950mTpyohQsXyuVy1du/srJSHTt2VFhYmEaOHKlnn31W//mf/ylJ6tevnxITE5Wbm6v9+/fr6NGjeuSRR7R7927t27dPkvThhx9q3bp1ys/PV0pKivr06aM//vGPioqK0quvvipJyszM1J///GcVFRXJGKMNGzboz3/+s6qrq/Xtt982eC0INwAA+Mkf/vAHdezY0dlWr16tW2+91WdfSUlJkzzWCy+8oKysrFPufJzJ5MmT9ctf/tK5C1OfTp06afPmzVq/fr1mz56tnJwcvf/++5Kk0NBQvfbaa/rss88UHR2tDh066L333tOIESMUHHw8anz00Uc6ePCgOnfu7DP/nTt36osvvpAkzZw5UyNGjNBFF12k0NBQjRo1ShMmTJAkp09DhDRqBQAAQIPdeuut+sUvfuH8PSsrS2PGjPG5uxIfH/9vP87q1atVXFyspUuX+ux3u90qKyvz2Xfs2DGVl5fL7XZLOv6S1Jtvvqk//vGPko6/7FRbW6uQkBAtWLBAN998s6Tj4eLcc8+VJA0aNEjbt29XXl6ehg0bJklKTk7W5s2bVVlZqaNHjyo2NlapqanOS2IHDx5U165dnUD0Qyc+nRUREaEXXnhBf/rTn1RaWqquXbtqwYIF6tSpk2JjYxu8HoQbAAD8JDo6WtHR0c7fIyIi1KVLFyckNJW//OUvSk5O1sCBA332p6WlqaKiQkVFRUpOTpZ0PMzU1tYqNTVV0vH35dTU1DjnvPHGG3rkkUe0Zs0adevWrd7HrK2tdd5r80ORkZGSpB07dmjDhg166KGHJElDhgyRx+NRSEiIevTocdr5hIaG6pxzzpEkvfLKK/qv//ov7twAANDalJSUqLy8XCUlJaqpqdHmzZslSeeee646duwo6fh7W/Ly8nTNNdc453m9XuXn5+vxxx8/pWdSUpKGDx+uyZMna/78+aqurtbUqVN1ww03OHeMkpKSfM7ZsGGDgoOD1b9/f2dfXl6eUlJS1Lt3b1VVVWn58uX661//qnnz5jk1+fn5io2NVWJioj7++GNNmzZNo0eP1lVXXSXp+BuZ09LSNHr0aD366KM677zztHfvXv3jH//QNddco5SUFH322Wdat26dUlNTtX//fj3xxBPaunWrXnrppUatJeEGAIAAcP/99/s8iQ8ePFiS9N577zkv/RQXF6uystLnvFdeeUXGGI0bN67OvosXL9bUqVOVnp6u4OBgjRkzRs8880yjxnbo0CH96le/0u7duxUREaF+/fpp0aJFGjt2rFOzb98+5eTkOC8njR8/XjNnznSOBwUFafny5brvvvs0adIkffPNN3K73br88ssVFxcnSaqpqdHjjz+u4uJihYaG6mc/+5nWrFlzxjs9PxZkjDGNOgMAACCA8WkpAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKzy/wCM2IQYWs3ZkgAAAABJRU5ErkJggg==",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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4447VFJSohdffFGSXWvxxRdfaMGCBcrNzdVdd92ljRs36te//rXCwsI0adIkZz4NzeWHc+3evbvP8ZCQEMXExPjU9OnT54Qe9cdOP/10v8yvOU61FpI0cuRIXXXVVerTp48+//xz3XXXXRo1apSKiorUqVMna9bix1566SVVVlZq8uTJktThrhk/9OO1kNShrhl33nmnqqqqNHDgQHXq1Em1tbWaO3eusrOzJalDXTMaQrhpZfWpWpLOPfdcpaWlqVevXvrHP/4RMP/TtJaTrUVOTo5uvPFG5/jgwYPVo0cPZWRk6PPPP1e/fv3aYsh+U1dXp9TUVP3hD3+QJJ133nnaunWrFi5c6PxC7yiashbXXnutUz948GCde+656tevn9566y1lZGS0ybhbw1//+leNGjVKCQkJbT2UNtfQWnSka8Y//vEPLVu2TMuXL9c555yjLVu26De/+Y0SEhI63DWjIbwt1caio6N11lln6bPPPpPb7daRI0dUWVnpU1NWVia32y1JcrvdJzwJUf/nU9W4XK6ADlA/XIuGpKWlSZJz3Ka16NGjh84++2yffcnJyc7bdPXzaWguP5xreXm5z/GjR4+qoqKiWT8/be1Ua9GQvn37KjY21udnw4a1+KGvvvpKb7zxhv77v//b2ddRrxkNrUVDbL5mzJw5U3feeaeuvfZaDR48WNdff71uvfVW5efnS+pY14yGEG7a2IEDB/T555+rR48eSklJUWhoqAoLC53jJSUlKi0tVXp6uiQpPT1dH330kc8P5Jo1a+RyuZxfCOnp6T496mvqewSqH65FQ7Zs2SJJznGb1uLCCy9USUmJz75PP/1UvXr1kiT16dNHbrfbZy5VVVVav369z89GZWWliouLnZq1a9eqrq7Oucinp6frnXfeUU1NjVOzZs0aDRgwIGBuL59qLRry9ddfa9++fT4/GzasxQ8988wz6t69u0aPHu3s66jXjIbWoiE2XzMOHTqk4GDfX+GdOnVSXV2dpI51zWhQW3+iuaO57bbbzFtvvWV27txp/u///s9kZmaa2NhYU15ebow59lhnUlKSWbt2rdm0aZNJT0836enpzvn1jzJefvnlZsuWLWb16tUmLi6uwUcZZ86cabZv327mz58fkI8ynmwtPvvsM/O73/3ObNq0yezcudO8/PLLpm/fvuaSSy5xzrdpLTZs2GBCQkLM3LlzzY4dO8yyZctMZGSkWbp0qVPzwAMPmOjoaPPyyy+bDz/80IwZM6bBxzrPO+88s379evPee++Z/v37+zzWWVlZaeLj4831119vtm7dap5//nkTGRkZUI91nmot9u/fb37729+aoqIis3PnTvPGG2+YYcOGmf79+5vDhw87fWxYi3q1tbUmKSnJ3HHHHScc60jXDGMaX4uOds2YNGmS6dmzp/Mo+IsvvmhiY2PN7bff7tR0lGtGQwg3rWz8+PGmR48eJiwszPTs2dOMHz/e5/s7vv/+e/OrX/3KnH766SYyMtJceeWVZu/evT49vvzySzNq1CgTERFhYmNjzW233WZqamp8at58800zdOhQExYWZvr27WueeeaZ1phes5xsLUpLS80ll1xiYmJiTHh4uDnzzDPNzJkzfb6zwhh71sIYY1599VUzaNAgEx4ebgYOHGgWLVrkc7yurs7Mnj3bxMfHm/DwcJORkWFKSkp8avbt22cmTJhgunTpYlwul5kyZYrZv3+/T80HH3xgLrroIhMeHm569uxpHnjgAb/PrblOthaHDh0yl19+uYmLizOhoaGmV69eZurUqT6P9xpjz1oYY8zrr79uJJ3w921Mx7pmGNP4WnS0a0ZVVZWZMWOGSUpKMp07dzZ9+/Y1d999t88j2x3pmvFjQcb84OsMAQAA2jk+cwMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgCAADB37lxdcMEFioyMPOFfem9MUFBQg9u8efOcmoqKCmVnZ8vlcik6Olo5OTk6cOBAg/0+++wzde3a9YTXf/HFF5Wamqro6GiddtppGjp0qP72t7/51JSVlWny5MlKSEhQZGSkRo4cqR07djRrDSRp/vz5Sk5OVkREhAYMGKDnnnuu2T0INwAAtJIRI0ZoyZIlDR47cuSIrrnmGt18881N7rd3716fbfHixQoKCtK4ceOcmuzsbG3btk1r1qzRypUr9c477/j8C+r1ampqNGHCBF188cUnHIuJidHdd9+toqIiffjhh5oyZYqmTJmi119/XZJkjNHYsWP1xRdf6OWXX9b777+vXr16KTMzUwcPHmzyfBYsWKC8vDzde++92rZtm+677z5NmzZNr776apN71A8IAAC0gksvvfSU/5zDM888Y6Kion5S/zFjxpjLLrvM+fPHH39sJJmNGzc6+1577TUTFBRkdu/e7XPu7bffbq677romv/55551nZs2aZYwxpqSkxEgyW7dudY7X1taauLg48/TTTzv7vvvuO5OTk2NiY2NN165dzc9+9jOzZcsW53h6err57W9/6/M6ubm55sILL2zaAvx/3LkBAMACZWVl+uc//6mcnBxnX1FRkaKjo5Wamursy8zMVHBwsNavX+/sW7t2rQoKCjR//vxTvo4xRoWFhSopKdEll1wiSaqurpYkde7c2akLDg5WeHi43nvvPWffNddco/Lycr322msqLi7WsGHDlJGRoYqKCqfPD3tIUkREhDZs2ODzL5OfCuEGAAALPPvss+ratauuuuoqZ5/H41H37t196kJCQhQTEyOPxyNJ2rdvnyZPnqwlS5bI5XI12t/r9apLly4KCwvT6NGj9cQTT+g///M/JUkDBw5UUlKS8vLy9N133+nIkSN68MEH9fXXX2vv3r2SpPfee08bNmxQQUGBUlNT1b9/f/3xj39UdHS0XnjhBUlSVlaW/vKXv6i4uFjGGG3atEl/+ctfVFNTo2+//bbJa0G4AQDAT/7whz+oS5cuzvbuu+/qpptu8tlXWlraIq+1ePFiZWdnn3Dn41SmTp2qX/7yl85dmMZ07dpVW7Zs0caNGzV37lzl5ubqrbfekiSFhobqxRdf1KeffqqYmBhFRkbqzTff1KhRoxQcfCxqfPDBBzpw4IC6devmM/+dO3fq888/lyTNnj1bo0aN0vnnn6/Q0FCNGTNGkyZNkiSnT1OENGsFAABAk9100036xS9+4fw5Oztb48aN87m7kpCQ8G+/zrvvvquSkhKtWLHCZ7/b7VZ5ebnPvqNHj6qiokJut1vSsbekXnnlFf3xj3+UdOxtp7q6OoWEhGjRokW64YYbJB0LF2eeeaYkaejQodq+fbvy8/M1YsQISVJKSoq2bNkir9erI0eOKC4uTmlpac5bYgcOHFCPHj2cQPRD9U9nRUREaPHixfrzn/+ssrIy9ejRQ4sWLVLXrl0VFxfX5PUg3AAA4CcxMTGKiYlx/hwREaHu3bs7IaGl/PWvf1VKSoqGDBnisz89PV2VlZUqLi5WSkqKpGNhpq6uTmlpaZKOfS6ntrbWOefll1/Wgw8+qHXr1qlnz56NvmZdXZ3zWZsfioqKkiTt2LFDmzZt0v333y9JGjZsmDwej0JCQtS7d++Tzic0NFRnnHGGJOn555/Xf/3Xf3HnBgCA9qa0tFQVFRUqLS1VbW2ttmzZIkk688wz1aVLF0nHPtuSn5+vK6+80jmvqqpKBQUFevjhh0/omZycrJEjR2rq1KlauHChampqNH36dF177bXOHaPk5GSfczZt2qTg4GANGjTI2Zefn6/U1FT169dP1dXVWrVqlf72t79pwYIFTk1BQYHi4uKUlJSkjz76SDNmzNDYsWN1+eWXSzr2Qeb09HSNHTtWDz30kM466yzt2bNH//znP3XllVcqNTVVn376qTZs2KC0tDR99913euSRR7R161Y9++yzzVpLwg0AAAHgnnvu8fklft5550mS3nzzTeetn5KSEnm9Xp/znn/+eRljNGHChAb7Llu2TNOnT1dGRoaCg4M1btw4Pf74480a28GDB/WrX/1KX3/9tSIiIjRw4EAtXbpU48ePd2r27t2r3Nxc5+2kiRMnavbs2c7xoKAgrVq1SnfffbemTJmib775Rm63W5dcconi4+MlSbW1tXr44YdVUlKi0NBQ/exnP9O6detOeafnx4KMMaZZZwAAAAQwnpYCAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCr/D9pkhBhe1tpRAAAAAElFTkSuQmCC",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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AABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABW8Vu4qaioUE5Ojtxut2JiYpSbm6v9+/ef8JxDhw5p6tSp6tatm7p06aJx48aprKysybHffPONTjvtNLlcLlVWVvphBgAAoCPyW7jJycnR1q1btWrVKi1fvlzvvPOObrjhhhOec+utt+q1115TQUGB/vWvf2nPnj264oormhybm5urs846yx+tAwCADsxljDGtXXT79u0aNGiQNmzYoLS0NEnSypUrddlll+nLL79UYmLiMedUVVUpPj5eS5Ys0ZVXXilJ+uijj5SSkqKioiKdc845zth58+Zp2bJluueee5SZmalvv/1WMTExze6vurpa0dHRqqqqktvt/mmTBQAAbaK5799+uXNTVFSkmJgYJ9hIUlZWlkJCQrRu3bomzykuLlZdXZ2ysrKcfQMHDlRycrKKioqcfdu2bdPvf/97Pf/88woJaV77NTU1qq6u9tkAAICd/BJuvF6vunfv7rMvNDRUsbGx8nq9xz0nPDz8mDswCQkJzjk1NTWaMGGCHnroISUnJze7n/z8fEVHRztbUlJSyyYEAAA6jBaFmzvvvFMul+uE20cffeSvXjVjxgylpKTommuuafF5VVVVzrZr1y4/dQgAANpbaEsG33bbbZo0adIJx/Tt21cej0fl5eU++w8fPqyKigp5PJ4mz/N4PKqtrVVlZaXP3ZuysjLnnNWrV+vDDz/Uiy++KElq/LhQXFyc7r77bt17771N1o6IiFBERERzpggAADq4FoWb+Ph4xcfHn3RcRkaGKisrVVxcrNTUVElHgklDQ4PS09ObPCc1NVVhYWEqLCzUuHHjJEklJSUqLS1VRkaGJOl//ud/9N133znnbNiwQddff73WrFmjfv36tWQqAADAUi0KN82VkpKikSNHasqUKZo/f77q6up088036+qrr3aelNq9e7cyMzP1/PPPa8SIEYqOjlZubq7y8vIUGxsrt9utW265RRkZGc6TUj8MMF9//bXzei15WgoAANjLL+FGkhYvXqybb75ZmZmZCgkJ0bhx4/T44487x+vq6lRSUqKDBw86+/785z87Y2tqapSdna2nnnrKXy0CAAAL+eV7bgId33MDAEDH067fcwMAANBeCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKqHt3UB7MMZIkqqrq9u5EwAA0FyN79uN7+PHE5ThZt++fZKkpKSkdu4EAAC01L59+xQdHX3c4y5zsvhjoYaGBu3Zs0ddu3aVy+Vq73ZapLq6WklJSdq1a5fcbnd7t9OuWIujWIujWIujWIujWIujOvJaGGO0b98+JSYmKiTk+J+sCco7NyEhITrttNPau42fxO12d7gfSn9hLY5iLY5iLY5iLY5iLY7qqGtxojs2jfhAMQAAsArhBgAAWIVw08FERERo9uzZioiIaO9W2h1rcRRrcRRrcRRrcRRrcVQwrEVQfqAYAADYizs3AADAKoQbAABgFcINAACwCuEGAABYhXDTxn73u9/J5XL5bAMHDnSOHzp0SFOnTlW3bt3UpUsXjRs3TmVlZT41SktLNXr0aEVFRal79+6aPn26Dh8+7DPm7bff1vDhwxUREaHTTz9dCxcubIvptcjJ1uLiiy8+5viNN97oU8OWtZCk3bt365prrlG3bt0UGRmpIUOGaOPGjc5xY4zuuece9ejRQ5GRkcrKytKOHTt8alRUVCgnJ0dut1sxMTHKzc3V/v37fcZ88MEHuuCCC9S5c2clJSXpwQcfbJP5tcTJ1mLSpEnH/GyMHDnSp4Yta9G7d+9j5upyuTR16lRJwXXNONlaBNM1o76+XrNmzVKfPn0UGRmpfv366b777vP5N5eC6ZpxDIM2NXv2bHPmmWeavXv3OttXX33lHL/xxhtNUlKSKSwsNBs3bjTnnHOOOffcc53jhw8fNoMHDzZZWVnmvffeMytWrDBxcXFmxowZzpjPPvvMREVFmby8PLNt2zbzxBNPmE6dOpmVK1e26VxP5mRrcdFFF5kpU6b4HK+qqnKO27QWFRUVplevXmbSpElm3bp15rPPPjNvvPGG+eSTT5wx999/v4mOjjYvv/yyef/9983Pf/5z06dPH/Pdd985Y0aOHGmGDh1q/v3vf5s1a9aY008/3UyYMME5XlVVZRISEkxOTo7ZsmWL+fvf/24iIyPN008/3abzPZHmrMXEiRPNyJEjfX42KioqfOrYsBbGGFNeXu4zz1WrVhlJ5q233jLGBNc142RrEUzXjDlz5phu3bqZ5cuXm507d5qCggLTpUsX89hjjzljguWa0RTCTRubPXu2GTp0aJPHKisrTVhYmCkoKHD2bd++3UgyRUVFxhhjVqxYYUJCQozX63XGzJs3z7jdblNTU2OMMeb22283Z555pk/t8ePHm+zs7FaezU9zorUw5siFatq0acc9btNa3HHHHeb8888/7vGGhgbj8XjMQw895OyrrKw0ERER5u9//7sxxpht27YZSWbDhg3OmNdff924XC6ze/duY4wxTz31lDn11FOd9Wl87QEDBrT2lH60k62FMUfCzZgxY4573Ja1aMq0adNMv379TENDQ9BdM37o+2thTHBdM0aPHm2uv/56n31XXHGFycnJMcYE1zWjKfxaqh3s2LFDiYmJ6tu3r3JyclRaWipJKi4uVl1dnbKyspyxAwcOVHJysoqKiiRJRUVFGjJkiBISEpwx2dnZqq6u1tatW50x36/ROKaxRiA53lo0Wrx4seLi4jR48GDNmDFDBw8edI7ZtBavvvqq0tLSdNVVV6l79+46++yz9cwzzzjHd+7cKa/X6zOX6Ohopaen+/xsxMTEKC0tzRmTlZWlkJAQrVu3zhlz4YUXKjw83BmTnZ2tkpISffvtt/6eZrOcbC0avf322+revbsGDBigm266Sd98841zzJa1+KHa2lotWrRI119/vVwuV1BeMxr9cC0aBcs149xzz1VhYaE+/vhjSdL777+vd999V6NGjZIUXNeMpgTlP5zZntLT07Vw4UINGDBAe/fu1b333qsLLrhAW7ZskdfrVXh4uGJiYnzOSUhIkNfrlSR5vV6fv5iNxxuPnWhMdXW1vvvuO0VGRvppdi1zorXo2rWrfvnLX6pXr15KTEzUBx98oDvuuEMlJSV66aWXJNm1Fp999pnmzZunvLw83XXXXdqwYYN+/etfKzw8XBMnTnTm09Rcvj/X7t27+xwPDQ1VbGysz5g+ffocU6Px2KmnnuqX+bXEydZCkkaOHKkrrrhCffr00aeffqq77rpLo0aNUlFRkTp16mTNWvzQyy+/rMrKSk2aNEmSgu6a8X0/XAtJQXXNuPPOO1VdXa2BAweqU6dOqq+v15w5c5STkyNJQXXNaArhpo01pmpJOuuss5Senq5evXrpH//4R8D8pWkrJ1qL3Nxc3XDDDc7xIUOGqEePHsrMzNSnn36qfv36tUfLftPQ0KC0tDT98Y9/lCSdffbZ2rJli+bPn++8oQeL5qzF1Vdf7YwfMmSIzjrrLPXr109vv/22MjMz26XvtvDXv/5Vo0aNUmJiYnu30u6aWotgumb84x//0OLFi7VkyRKdeeaZ2rx5s37zm98oMTEx6K4ZTeHXUu0sJiZGZ5xxhj755BN5PB7V1taqsrLSZ0xZWZk8Ho8kyePxHPMkROOfTzbG7XYHdID6/lo0JT09XZKc4zatRY8ePTRo0CCffSkpKc6v6Rrn09Rcvj/X8vJyn+OHDx9WRUVFi35+2tvJ1qIpffv2VVxcnM/Phg1r8X1ffPGF3nzzTf33f/+3sy9YrxlNrUVTbL5mTJ8+XXfeeaeuvvpqDRkyRNdee61uvfVW5efnSwqua0ZTCDftbP/+/fr000/Vo0cPpaamKiwsTIWFhc7xkpISlZaWKiMjQ5KUkZGhDz/80OcHctWqVXK73c4bQkZGhk+NxjGNNQLV99eiKZs3b5Yk57hNa3HeeeeppKTEZ9/HH3+sXr16SZL69Okjj8fjM5fq6mqtW7fO52ejsrJSxcXFzpjVq1eroaHBuchnZGTonXfeUV1dnTNm1apVGjBgQMDcXj7ZWjTlyy+/1DfffOPzs2HDWnzfc889p+7du2v06NHOvmC9ZjS1Fk2x+Zpx8OBBhYT4voV36tRJDQ0NkoLrmtGk9v5Ec7C57bbbzNtvv2127txp/u///s9kZWWZuLg4U15ebow58lhncnKyWb16tdm4caPJyMgwGRkZzvmNjzJeeumlZvPmzWblypUmPj6+yUcZp0+fbrZv327mzp0bkI8ynmgtPvnkE/P73//ebNy40ezcudO88sorpm/fvubCCy90zrdpLdavX29CQ0PNnDlzzI4dO8zixYtNVFSUWbRokTPm/vvvNzExMeaVV14xH3zwgRkzZkyTj3WeffbZZt26debdd981/fv393mss7Ky0iQkJJhrr73WbNmyxSxdutRERUUF1GOdJ1uLffv2md/+9remqKjI7Ny507z55ptm+PDhpn///ubQoUNOHRvWolF9fb1JTk42d9xxxzHHgumaYczx1yLYrhkTJ040PXv2dB4Ff+mll0xcXJy5/fbbnTHBcs1oCuGmjY0fP9706NHDhIeHm549e5rx48f7fH/Hd999Z371q1+ZU0891URFRZnLL7/c7N2716fG559/bkaNGmUiIyNNXFycue2220xdXZ3PmLfeessMGzbMhIeHm759+5rnnnuuLabXIidai9LSUnPhhRea2NhYExERYU4//XQzffp0n++sMMaetTDGmNdee80MHjzYREREmIEDB5oFCxb4HG9oaDCzZs0yCQkJJiIiwmRmZpqSkhKfMd98842ZMGGC6dKli3G73Wby5Mlm3759PmPef/99c/7555uIiAjTs2dPc//99/t9bi11orU4ePCgufTSS018fLwJCwszvXr1MlOmTPF5vNcYe9bCGGPeeOMNI+mY/9/GBNc1w5jjr0WwXTOqq6vNtGnTTHJysuncubPp27evufvuu30e2Q6ma8YPuYz53tcZAgAAdHB85gYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAAWDOnDk699xzFRUVdcy/9H48Lperye2hhx5yxlRUVCgnJ0dut1sxMTHKzc3V/v37m6z3ySefqGvXrse8/ksvvaS0tDTFxMTolFNO0bBhw/TCCy/4jCkrK9OkSZOUmJioqKgojRw5Ujt27GjRGkjS3LlzlZKSosjISA0YMEDPP/98i2sQbgAAaCMXX3yxFi5c2OSx2tpaXXXVVbrpppuaXW/v3r0+27PPPiuXy6Vx48Y5Y3JycrR161atWrVKy5cv1zvvvOPzL6g3qqur04QJE3TBBRcccyw2NlZ33323ioqK9MEHH2jy5MmaPHmy3njjDUmSMUZjx47VZ599pldeeUXvvfeeevXqpaysLB04cKDZ85k3b55mzJih3/3ud9q6davuvfdeTZ06Va+99lqzazQ2BAAA2sBFF1100n/O4bnnnjPR0dE/qv6YMWPMJZdc4vx527ZtRpLZsGGDs+/11183LpfL7N692+fc22+/3VxzzTXNfv2zzz7bzJw50xhjTElJiZFktmzZ4hyvr6838fHx5plnnnH2ffvttyY3N9fExcWZrl27mp/97Gdm8+bNzvGMjAzz29/+1ud18vLyzHnnnde8Bfj/uHMDAIAFysrK9M9//lO5ubnOvqKiIsXExCgtLc3Zl5WVpZCQEK1bt87Zt3r1ahUUFGju3LknfR1jjAoLC1VSUqILL7xQklRTUyNJ6ty5szMuJCREERERevfdd519V111lcrLy/X666+ruLhYw4cPV2ZmpioqKpw6368hSZGRkVq/fr3Pv0x+MoQbAAAs8Le//U1du3bVFVdc4ezzer3q3r27z7jQ0FDFxsbK6/VKkr755htNmjRJCxculNvtPm79qqoqdenSReHh4Ro9erSeeOIJ/ed//qckaeDAgUpOTtaMGTP07bffqra2Vg888IC+/PJL7d27V5L07rvvav369SooKFBaWpr69++vP/3pT4qJidGLL74oScrOztZf/vIXFRcXyxijjRs36i9/+Yvq6ur09ddfN3stCDcAAPjJH//4R3Xp0sXZ1qxZoxtvvNFnX2lpaau81rPPPqucnJxj7nyczJQpU/TLX/7SuQtzPF27dtXmzZu1YcMGzZkzR3l5eXr77bclSWFhYXrppZf08ccfKzY2VlFRUXrrrbc0atQohYQciRrvv/++9u/fr27duvnMf+fOnfr0008lSbNmzdKoUaN0zjnnKCwsTGPGjNHEiRMlyanTHKEtWgEAANBsN954o37xi184f87JydG4ceN87q4kJib+5NdZs2aNSkpKtGzZMp/9Ho9H5eXlPvsOHz6siooKeTweSUd+JfXqq6/qT3/6k6Qjv3ZqaGhQaGioFixYoOuvv17SkXBx+umnS5KGDRum7du3Kz8/XxdffLEkKTU1VZs3b1ZVVZVqa2sVHx+v9PR051di+/fvV48ePZxA9H2NT2dFRkbq2Wef1dNPP62ysjL16NFDCxYsUNeuXRUfH9/s9SDcAADgJ7GxsYqNjXX+HBkZqe7duzshobX89a9/VWpqqoYOHeqzPyMjQ5WVlSouLlZqaqqkI2GmoaFB6enpko58Lqe+vt4555VXXtEDDzygtWvXqmfPnsd9zYaGBuezNt8XHR0tSdqxY4c2btyo++67T5I0fPhweb1ehYaGqnfv3iecT1hYmE477TRJ0tKlS/Vf//Vf3LkBAKCjKS0tVUVFhUpLS1VfX6/NmzdLkk4//XR16dJF0pHPtuTn5+vyyy93zquurlZBQYEefvjhY2qmpKRo5MiRmjJliubPn6+6ujrdfPPNuvrqq507RikpKT7nbNy4USEhIRo8eLCzLz8/X2lpaerXr59qamq0YsUKvfDCC5o3b54zpqCgQPHx8UpOTtaHH36oadOmaezYsbr00kslHfkgc0ZGhsaOHasHH3xQZ5xxhvbs2aN//vOfuvzyy5WWlqaPP/5Y69evV3p6ur799ls98sgj2rJli/72t7+1aC0JNwAABIB77rnH50387LPPliS99dZbzq9+SkpKVFVV5XPe0qVLZYzRhAkTmqy7ePFi3XzzzcrMzFRISIjGjRunxx9/vEW9HThwQL/61a/05ZdfKjIyUgMHDtSiRYs0fvx4Z8zevXuVl5fn/Drpuuuu06xZs5zjLpdLK1as0N13363Jkyfrq6++ksfj0YUXXqiEhARJUn19vR5++GGVlJQoLCxMP/vZz7R27dqT3un5IZcxxrToDAAAgADG01IAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWOX/AQXuy4k9MvYjAAAAAElFTkSuQmCC",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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7jIffPCB2b59u/m///s/k5WVZeLi4kxFRYUx5ujHNZOTk82KFSvMunXrTEZGhsnIyHDmN3w08aqrrjIbN240y5YtM/Hx8Y1+NHHq1Klm69atZvbs2UH/0cTj7csXX3xhfvvb35p169aZ7du3mzfffNP06NHDXH755c58G/dlzZo1JiwszMycOdNs27bNLFy40LRr184sWLDAGfPII4+YmJgY8+abb5pNmzaZESNGNPpxzYEDB5rVq1ebjz76yPTq1cvn45pVVVUmISHB3HzzzWbz5s3m1VdfNe3atQvaj2ueaF/27dtnfvOb35ji4mKzfft2895775lBgwaZXr16mUOHDjl1bNsXY4ypq6szycnJ5p577jnmXGu9tjS1J631umLM0U8TdunSxfko+Ouvv27i4uLM3Xff7YxpjdcWws0pGD16tOncubOJiIgwXbp0MaNHj/b5fo4ffvjB/PKXvzRnn322adeunbn22mvNnj17fGp8/fXXZtiwYSYqKsrExcWZu+66y9TW1vqMef/9982AAQNMRESE6dGjh3nppZdOx/J+suPtS1lZmbn88stNbGysiYyMNOeee66ZOnWqz/dRGGPnvrz99tumb9++JjIy0vTp08fMmzfP53x9fb2ZPn26SUhIMJGRkSYzM9OUlpb6jPn+++/NmDFjTPv27Y3L5TITJkww+/bt8xnz8ccfm0svvdRERkaaLl26mEceeSTgazsVx9uXgwcPmquuusrEx8eb8PBw07VrVzNx4kSfj/MaY+e+vPvuu0bSMT8DxrTea0tTe9Karyter9dMmTLFJCcnm7Zt25oePXqY+++/3+cj263x2hJizI++xhAAAKCF4z03AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAAgCM2fO1MUXX6x27dod86++NyUkJKTRx+OPP+6MqaysVE5Ojlwul2JiYpSbm6v9+/c3Wu+LL75Qhw4djnn+119/XWlpaYqJidFZZ52lAQMG6C9/+YvPmPLyco0fP16JiYlq166dhg4dqm3btp3UHkjS7NmzlZKSoqioKPXu3VuvvPLKSdcg3AAAcJoMGTJE8+fPb/Tc4cOHdcMNN+j2229vdr09e/b4PF588UWFhIRo1KhRzpicnBxt2bJFy5cv15IlS/Thhx/6/CvqDWprazVmzBhd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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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FcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVYLO9wBscujocd2/eLOKDvyo+IvD9PzI/mrd8syW2B99Mtam0ydjZayMlbE29/n/FAHGGOPvk8yePVszZsyQx+NR37599dJLL2ngwIF11ufm5mrq1Kn65ptv1L17dz399NO68cYbnePGGE2bNk2vvPKKysrKdNVVV2nOnDnq3r17g8bj9XoVHh6u8vJyuVyuM56fJN00a4227vGesv/yS1x6Z+I1F0yf/uq3uY+1uc/fX/0yVsba3Mfa3Of/7xr6/u33j6UWL16srKwsTZs2TZs2bVLfvn2Vnp6ukpKSWuvXrl2rUaNGKTMzU5s3b9bw4cM1fPhwbdu2zal55plnNHPmTM2dO1fr1q3TRRddpPT0dB09etTf06lVXX+hkrR1j1c3zVpzQfTpr36b+1ib+/z91S9jZazNfazNff5nwu/h5rnnntP48eM1btw49erVS3PnzlWrVq306quv1lr/4osvavDgwZo8ebISEhL05JNPasCAAZo1a5akE3dtXnjhBU2ZMkXDhg3T5ZdfrjfeeEP79u3T0qVL/T2dUxw6erzOv9AaW/d4dejo8fPap7/6be5jbe7z91e/jJWxNvexNvf5nym/hptjx46poKBAaWlp/zphYKDS0tKUn59fa5v8/HyfeklKT0936nft2iWPx+NTEx4eruTk5Dr7rKiokNfr9dnOlvsXbz6rdf7q01/9NvexNvf5+6tfxspYm/tYm/v8z5Rfw83333+vqqoqxcTE+OyPiYmRx+OptY3H46m3vua/jekzJydH4eHhzhYXF/eT5lObogM/ntU6f/Xpr36b+1ib+/z91S9jZazNfazNff5nqlk8Cp6dna3y8nJn271791nrO/7isLNa568+/dVvcx9rc5+/v/plrIy1uY+1uc//TPk13ERFRalFixYqLi722V9cXCy3211rG7fbXW99zX8b02doaKhcLpfPdrY8P7L/Wa3zV5/+6re5j7W5z99f/TJWxtrcx9rc53+m/BpuQkJClJiYqLy8PGdfdXW18vLy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AABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFbxW7gpLS1VRkaGXC6XIiIilJmZqUOHDtXb5ujRo5owYYLatm2r1q1ba8SIESouLq619ocfftAll1yigIAAlZWV+WEGAACgKfJbuMnIyND27du1cuVKLVu2TB999JHuvvvuetvcf//9evfdd5Wbm6t//OMf2rdvn2655ZZaazMzM3X55Zf7Y+gAAKAJCzDGmLPd6Y4dO9SrVy9t2LBBSUlJkqQVK1boxhtv1J49exQbG3tKm/LyckVHR2vRokW69dZbJUmff/65EhISlJ+fryuuuMKpnTNnjhYvXqzHHntMqampOnDggCIiIho8Pq/Xq/DwcJWXl8vlcp3ZZAEAwDnR0Pdvv9y5yc/PV0REhBNsJCktLU2BgYFat25drW0KCgpUWVmptLQ0Z1/Pnj0VHx+v/Px8Z99nn32m3/72t3rjjTcUGNiw4VdUVMjr9fpsAADATn4JNx6PR+3atfPZFxQUpMjISHk8njrbhISEnHIHJiYmxmlTUVGhUaNGacaMGYqPj2/weHJychQeHu5scXFxjZsQAABoMhoVbh5++GEFBATUu33++ef+Gquys7OVkJCgO+64o9HtysvLnW337t1+GiEAADjfghpT/MADD2js2LH11nTp0kVut1slJSU++48fP67S0lK53e5a27ndbh07dkxlZWU+d2+Ki4udNqtWrdKnn36qt956S5JU83WhqKgoPfroo3riiSdq7Ts0NFShoaENmSIAAGjiGhVuoqOjFR0dfdq6lJQUlZWVqaCgQImJiZJOBJPq6molJyfX2iYxMVHBwcHKy8vTiBEjJEmFhYUqKipSSkqKJOl//ud/9OOPPzptNmzYoLvuuktr1qxR165dGzMVAABgqUaFm4ZKSEjQ4MGDNX78eM2dO1eVlZWaOHGibr/9dudJqb179yo1NVVvvPGGBg4cqPDwcGVmZiorK0uRkZFyuVy67777lJKS4jwp9e8B5vvvv3fO15inpQAAgL38Em4kaeHChZo4caJSU1MVGBioESNGaObMmc7xyspKFRYW6siRI86+559/3qmtqKhQenq6Xn75ZX8NEQAAWMgvv3NzoeN3bgAAaHrO6+/cAAAAnC+EGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGCVoPM9gPPBGCNJ8nq953kkAACgoWret2vex+vSLMPNwYMHJUlxcXHneSQAAKCxDh48qPDw8DqPB5jTxR8LVVdXa9++fWrTpo0CAgLO2Xm9Xq/i4uK0e/duuVyuc3bepoC1qR/rUzfWpn6sT/1Yn7pdiGtjjNHBgwcVGxurwMC6v1nTLO/cBAYG6pJLLjlv53e5XBfMC+VCw9rUj/WpG2tTP9anfqxP3S60tanvjk0NvlAMAACsQrgBAABWIdycQ6GhoZo2bZpCQ0PP91AuOKxN/VifurE29WN96sf61K0pr02z/EIxAACwF3duAACAVQg3AADAKoQbAABgFcINAACwCuGmER5//HEFBAT4bD179nSOHz16VBMmTFDbtm3VunVrjRgxQsXFxT59FBUVaejQoWrVqpXatWunyZMn6/jx4z41H374oQYMGKDQ0FB169ZN8+fPPxfTO2OnW59Bgwadcvyee+7x6cPm9dm7d6/uuOMOtW3bVmFhYerTp482btzoHDfG6LHHHlP79u0VFhamtLQ07dy506eP0tJSZWRkyOVyKSIiQpmZmTp06JBPzdatW3XNNdeoZcuWiouL0zPPPHNO5nemTrc+Y8eOPeX1M3jwYJ8+bF2fTp06nTL3gIAATZgwQVLzvvacbm2a+3WnqqpKU6dOVefOnRUWFqauXbvqySef9Pm3may89hg02LRp08xll11m9u/f72zfffedc/yee+4xcXFxJi8vz2zcuNFcccUV5sorr3SOHz9+3PTu3dukpaWZzZs3m+XLl5uoqCiTnZ3t1Hz99demVatWJisry3z22WfmpZdeMi1atDArVqw4p3P9KU63Ptddd50ZP368z/Hy8nLnuM3rU1paajp27GjGjh1r1q1bZ77++mvz/vvvmy+//NKpeeqpp0x4eLhZunSp+eSTT8xNN91kOnfubH788UenZvDgwaZv377mn//8p1mzZo3p1q2bGTVqlHO8vLzcxMTEmIyMDLNt2zbz17/+1YSFhZk//vGP53S+jdWQ9RkzZowZPHiwz+untLTUpx9b16ekpMRn3itXrjSSzOrVq40xzfvac7q1ac7XHWOMmT59umnbtq1ZtmyZ2bVrl8nNzTWtW7c2L774olNj47WHcNMI06ZNM3379q31WFlZmQkODja5ubnOvh07dhhJJj8/3xhjzPLly01gYKDxeDxOzZw5c4zL5TIVFRXGGGMefPBBc9lll/n0PXLkSJOenn6WZ3P21bc+xpy4yEyaNKnO4zavz0MPPWSuvvrqOo9XV1cbt9ttZsyY4ewrKyszoaGh5q9//asxxpjPPvvMSDIbNmxwat577z0TEBBg9u7da4wx5uWXXzYXX3yxs1415+7Ro8fZntJZdbr1MeZEuBk2bFidx21en383adIk07VrV1NdXc2159+cvDbGNO/rjjHGDB061Nx1110++2655RaTkZFhjLH32sPHUo20c+dOxcbGqkuXLsrIyFBRUZEkqaCgQJWVlUpLS3Nqe/bsqfj4eOXn50uS8vPz1adPH8XExDg16enp8nq92r59u1Nzch81NTV9XOjqWp8aCxcuVFRUlHr37q3s7GwdOXLEOWbz+rzzzjtKSkrSbbfdpnbt2ql///565ZVXnOO7du2Sx+PxmVt4eLiSk5N9Xj8RERFKSkpyatLS0hQYGKh169Y5Nddee61CQkKcmvT0dBUWFurAgQP+nuZPdrr1qfHhhx+qXbt26tGjh+6991798MMPzjGb1+dkx44d04IFC3TXXXcpICCAa89J/n1tajTX644kXXnllcrLy9MXX3whSfrkk0/08ccfa8iQIZLsvfY0y38486dKTk7W/Pnz1aNHD+3fv19PPPGErrnmGm3btk0ej0chISGKiIjwaRMTEyOPxyNJ8ng8Pv8D1RyvOVZfjdfr1Y8//qiwsDA/ze7M1bc+bdq00S9+8Qt17NhRsbGx2rp1qx566CEVFhZqyZIlkuxen6+//lpz5sxRVlaWHnnkEW3YsEG/+tWvFBISojFjxjjzq21uJ8+9Xbt2PseDgoIUGRnpU9O5c+dT+qg5dvHFF/tlfmfqdOsjSYMHD9Ytt9yizp0766uvvtIjjzyiIUOGKD8/Xy1atLB6fU62dOlSlZWVaezYsZLEteck/742kpr1dUeSHn74YXm9XvXs2VMtWrRQVVWVpk+froyMDEmy9tpDuGmEmqQrSZdffrmSk5PVsWNH/e1vf7ugX9znSn3rk5mZqbvvvts53qdPH7Vv316pqan66quv1LVr1/Mx5HOmurpaSUlJ+v3vfy9J6t+/v7Zt26a5c+c6b97NWUPW5/bbb3fq+/Tpo8svv1xdu3bVhx9+qNTU1PMy7vPhz3/+s4YMGaLY2NjzPZQLTm1r05yvO5L0t7/9TQsXLtSiRYt02WWXacuWLfr1r3+t2NhYq689fCx1BiIiInTppZfqyy+/lNvt1rFjx1RWVuZTU1xcLLfbLUlyu92nPMFQ8+fT1bhcriYXoE5en9okJydLknPc5vVp3769evXq5bMvISHB+diuZn61ze3kuZeUlPgcP378uEpLSxv1GrsQnW59atOlSxdFRUX5vH5sXZ8a3377rT744AP993//t7OPa88Jta1NbZrTdUeSJk+erIcffli33367+vTpozvvvFP333+/cnJyJNl77SHcnIFDhw7pq6++Uvv27ZWYmKjg4GDl5eU5xwsLC1VUVKSUlBRJUkpKij799FOfF8nKlSvlcrmcC3tKSopPHzU1NX00JSevT222bNkiSc5xm9fnqquuUmFhoc++L774Qh07dpQkde7cWW6322duXq9X69at83n9lJWVqaCgwKlZtWqVqqurnQt2SkqKPvroI1VWVjo1K1euVI8ePS7oj1xOtz612bNnj3744Qef14+t61PjtddeU7t27TR06FBnH9eeE2pbm9o0p+uOJB05ckSBgb5v9S1atFB1dbUki6895+VrzE3UAw88YD788EOza9cu83//938mLS3NREVFmZKSEmPMiccx4+PjzapVq8zGjRtNSkqKSUlJcdrXPHJ4ww03mC1btpgVK1aY6OjoWh85nDx5stmxY4eZPXt2k3nksL71+fLLL81vf/tbs3HjRrNr1y7z9ttvmy5duphrr73WaW/z+qxfv94EBQWZ6dOnm507d5qFCxeaVq1amQULFjg1Tz31lImIiDBvv/222bp1qxk2bFitj2P279/frFu3znz88ceme/fuPo9jlpWVmZiYGHPnnXeabdu2mTfffNO0atXqgn/U+XTrc/DgQfOb3/zG5Ofnm127dpkPPvjADBgwwHTv3t0cPXrU6cfW9THGmKqqKhMfH28eeuihU44192tPXWvT3K87xpx4yrBDhw7Oo+BLliwxUVFR5sEHH3RqbLz2EG4aYeTIkaZ9+/YmJCTEdOjQwYwcOdLndzh+/PFH88tf/tJcfPHFplWrVubmm282+/fv9+njm2++MUOGDDFhYWEmKirKPPDAA6aystKnZvXq1aZfv34mJCTEdOnSxbz22mvnYnpnrL71KSoqMtdee62JjIw0oaGhplu3bmby5Mk+vzdhjN3r8+6775revXub0NBQ07NnTzNv3jyf49XV1Wbq1KkmJibGhIaGmtTUVFNYWOhT88MPP5hRo0aZ1q1bG5fLZcaNG2cOHjzoU/PJJ5+Yq6++2oSGhpoOHTqYp556yu9zOxvqW58jR46YG264wURHR5vg4GDTsWNHM378eJ/Hd42xe33ef/99I+mU14QxXHvqWhuuO8Z4vV4zadIkEx8fb1q2bGm6dOliHn30UZ9Htm289gQYc9LPFAIAADRxfOcGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AABeA6dOn68orr1SrVq1O+Vfe6xIQEFDrNmPGDKemtLRUGRkZcrlcioiIUGZmpg4dOlRrf19++aXatGlzyvmXLFmipKQkRURE6KKLLlK/fv30l7/8xaemuLhYY8eOVWxsrFq1aqXBgwdr586djVoDSZo9e7YSEhIUFhamHj166I033mh0H4QbAADOkUGDBmn+/Pm1Hjt27Jhuu+023XvvvQ3ub//+/T7bq6++qoCAAI0YMcKpycjI0Pbt27Vy5UotW7ZMH330kc+/ll6jsrJSo0aN0jXXXHPKscjISD366KPKz8/X1q1bNW7cOI0bN07vv/++JMkYo+HDh+vrr7/W22+/rc2bN6tjx45KS0vT4cOHGzyfOXPmKDs7W48//ri2b9+uJ554QhMmTNC7777b4D5qBgQAAM6B66677rT/dMNrr71mwsPDf1L/w4YNM9dff73z588++8xIMhs2bHD2vffeeyYgIMDs3bvXp+2DDz5o7rjjjgafv3///mbKlCnGGGMKCwuNJLNt2zbneFVVlYmOjjavvPKKs+/AgQMmMzPTREVFmTZt2pif/exnZsuWLc7xlJQU85vf/MbnPFlZWeaqq65q2AL8f9y5AQDAAsXFxfr73/+uzMxMZ19+fr4iIiKUlJTk7EtLS1NgYKDWrVvn7Fu1apVyc3M1e/bs057HGKO8vDwVFhbq2muvlSRVVFRIklq2bOnUBQYGKjQ0VB9//LGz77bbblNJSYnee+89FRQUaMCAAUpNTVVpaanTz8l9SFJYWJjWr1/v8y+Onw7hBgAAC7z++utq06aNbrnlFmefx+NRu3btfOqCgoIUGRkpj8cjSfrhhx80duxYzZ8/Xy6Xq87+y8vL1bp1a4WEhGjo0KF66aWX9J//+Z+SpJ49eyo+Pl7Z2dk6cOCAjh07pqefflp79uzR/v37JUkff/yx1q9fr9zcXCUlJal79+76wx/+oIiICL311luSpPT0dP3pT39SQUGBjDHauHGj/vSnP6myslLff/99g9eCcAMAgJ/8/ve/V+vWrZ1tzZo1uueee3z2FRUVnZVzvfrqq8rIyDjlzsfpjB8/Xr/4xS+cuzB1adOmjbZs2aINGzZo+vTpysrK0ocffihJCg4O1pIlS/TFF18oMjJSrVq10urVqzVkyBAFBp6IGp988okOHTqktm3b+sx/165d+uqrryRJU6dO1ZAhQ3TFFVcoODhYw4YN05gxYyTJ6achghq1AgAAoMHuuece/fznP3f+nJGRoREjRvjcXYmNjT3j86xZs0aFhYVavHixz363262SkhKffcePH1dpaancbrekEx9JvfPOO/rDH/4g6cTHTtXV1QoKCtK8efN01113SToRLrp16yZJ6tevn3bs2KGcnBwNGjRIkpSYmKgtW7aovLxcx44dU3R0tJKTk52PxA4dOqT27ds7gehkNU9nhYWF6dVXX9Uf//hHFRcXq3379po3b57atGmj6OjoBq8H4QYAAD+JjIxUZGSk8+ewsDC1a9fOCQlny5///GclJiaqb9++PvtTUlJUVlamgoICJSYmSjoRZqqrq5WcnCzpxPdyqqqqnDZvv/22nn76aa1du1YdOnSo85zV1dXOd21OFh4eLknauXOnNm7cqCeffFKSNGDAAHk8HgUFBalTp071zic4OFiXXHKJJOnNN9/Uf/3Xf3HnBgCApqaoqEilpaUqKipSVVWVtmzZIknq1q2bWrduLenEd1tycnJ08803O+28Xq9yc3P17LPPntJnQkKCBg8erPHjx2vu3LmqrKzUxIkTdfvttzt3jBISEnzabNy4UYGBgerdu7ezLycnR0lJSeratasqKiq0fPly/eUvf9GcOXOcmtzcXEVHRys+Pl6ffvqpJk2apOHDh+uGG26QdOKLzCkpKRo+fLieeeYZXXrppdq3b5/+/ve/6+abb1ZSUpK++OILrV+/XsnJyTpw4ICee+45bdu2Ta+//nqj1pJwAwDABeCxxx7zeRPv37+/JGn16tXORz+FhYUqLy/3affmm2/KGKNRo0bV2u/ChQs1ceJEpaamKjAwUCNGjNDMmTMbNbbDhw/rl7/8pfbs2aOwsDD17NlTCxYs0MiRI52a/fv3Kysry/k4afTo0Zo6dapzPCAgQMuXL9ejjz6qcePG6bvvvpPb7da1116rmJgYSVJVVZWeffZZFRYWKjg4WD/72c+0du3a097p+XcBxhjTqBYAAAAXMJ6WAgAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAq/w+DL9AJ/B2LmwAAAABJRU5ErkJggg==",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGvCAYAAACn9fQdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAA9hAAAPYQGoP6dpAAArTUlEQVR4nO3deXRV1d3/8U9CBhLhJoYMl2DCJEIQZEhKjCM1qQF5VkHRIo0ymAeXFiw1FCEKorUYh2oFRSi2ihSoND4+DhRxYdCqDylDAJEpoqJhuokSkzBIEpL9+4NfTrklCYlwgWzer7XOcnHO3vt89+Z67mede8/FzxhjBAAAYAn/c10AAADAmUS4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYJeBcF3Au1NbWat++fWrbtq38/PzOdTkAAKAJjDE6ePCgYmNj5e/f8P2ZCzLc7Nu3T3Fxcee6DAAA8CPs3r1bl1xySYPHL8hw07ZtW0nHF8flcp3jagAAQFNUVFQoLi7OeR9vyAUZbuo+inK5XIQbAABamFN9pYQvFAMAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqZyXczJkzR506dVLr1q2VnJystWvXNto+NzdXPXr0UOvWrdW7d28tX768wbb33HOP/Pz89Nxzz53hqgEAQEvk83CzdOlSZWVlacaMGdqwYYP69Omj9PR0lZSU1Nt+9erVGjlypDIzM7Vx40YNGzZMw4YN05YtW05q+7//+7/617/+pdjYWF9PAwAAtBA+DzfPPvusxo0bp7Fjx6pnz56aN2+eQkND9fLLL9fbftasWRo0aJAmT56shIQEPfbYY+rfv79eeOEFr3Z79+7Vfffdp8WLFyswMNDX0wAAAC2ET8NNVVWVCgoKlJaW9u8T+vsrLS1N+fn59fbJz8/3ai9J6enpXu1ra2t15513avLkybr88stPWUdlZaUqKiq8NgAAYCefhpvvvvtONTU1iomJ8dofExMjj8dTbx+Px3PK9k8++aQCAgL061//ukl15OTkKCwszNni4uKaORMAANBStLinpQoKCjRr1iwtWLBAfn5+TeqTnZ2t8vJyZ9u9e7ePqwQAAOeKT8NNZGSkWrVqpeLiYq/9xcXFcrvd9fZxu92Ntv/4449VUlKi+Ph4BQQEKCAgQN98840mTZqkTp061TtmcHCwXC6X1wYAAOzk03ATFBSkxMRE5eXlOftqa2uVl5enlJSUevukpKR4tZeklStXOu3vvPNObd68WZs2bXK22NhYTZ48We+9957vJgMAAFqEAF+fICsrS6NHj1ZSUpIGDBig5557TocPH9bYsWMlSaNGjVKHDh2Uk5MjSZo4caKuv/56PfPMMxoyZIhee+01rV+/XvPnz5cktWvXTu3atfM6R2BgoNxut7p37+7r6QAAgPOcz8PNiBEj9O233+rhhx+Wx+NR3759tWLFCudLw0VFRfL3//cNpKuuukpLlizRtGnT9OCDD6pbt25688031atXL1+XCgAALOBnjDHnuoizraKiQmFhYSovL+f7NwAAtBBNff9ucU9LAQAANIZwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwylkJN3PmzFGnTp3UunVrJScna+3atY22z83NVY8ePdS6dWv17t1by5cvd45VV1drypQp6t27ty666CLFxsZq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KoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKzis3BTWlqqjIwMuVwuhYeHKzMzU4cOHWq0z9GjRzV+/Hi1a9dObdq00fDhw1VcXFxv2wMHDuiSSy6Rn5+fysrKfDADAADQEvks3GRkZGjr1q1auXKlli1bpo8++kh33313o33uv/9+vfPOO8rNzdU///lP7du3T7fccku9bTMzM3XFFVf4onQAANCC+RljzJkedPv27erZs6fWrVunpKQkSdKKFSt00003ac+ePYqNjT2pT3l5uaKiorRkyRLdeuutkqQdO3YoISFB+fn5uvLKK522c+fO1dKlS/Xwww8rNTVV33//vcLDw5tcX0VFhcLCwlReXi6Xy3V6kwUAAGdFU9+/fXLnJj8/X+Hh4U6wkaS0tDT5+/trzZo19fYpKChQdXW10tLSnH09evRQfHy88vPznX3btm3T7373Oy1cuFD+/k0rv7KyUhUVFV4bAACwk0/CjcfjUXR0tNe+gIAARUREyOPxNNgnKCjopDswMTExTp/KykqNHDlSTz/9tOLj45tcT05OjsLCwpwtLi6ueRMCAAAtRrPCzdSpU+Xn59fotmPHDl/VquzsbCUkJOiOO+5odr/y8nJn2717t48qBAAA51pAcxpPmjRJY8aMabRNly5d5Ha7VVJS4rX/2LFjKi0tldvtrref2+1WVVWVysrKvO7eFBcXO31WrVqlzz77TK+//rokqe7rQpGRkXrooYf06KOP1jt2cHCwgoODmzJFAADQwjUr3ERFRSkqKuqU7VJSUlRWVqaCggIlJiZKOh5MamtrlZycXG+fxMREBQYGKi8vT8OHD5ckFRYWqqioSCkpKZKk//mf/9EPP/zg9Fm3bp3uuusuffzxx+ratWtzpgIAACzVrHDTVAkJCRo0aJDGjRunefPmqbq6WhMmTNDtt9/uPCm1d+9epaamauHChRowYIDCwsKUmZmprKwsRUREyOVy6b777lNKSorzpNR/BpjvvvvOOV9znpYCAAD28km4kaTFixdrwoQJSk1Nlb+/v4YPH67Zs2c7x6urq1VYWKgjR444+/74xz86bSsrK5Wenq4XX3zRVyUCAAAL+eR3bs53/M4NAAAtzzn9nRsAAIBzhXADAACs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5/2jzqdan4MHD5rf/va3Jj8/3+zatcu8//77pn///qZbt27m6NGjzji2ro8xxtTU1Jj4+HgzZcqUk45d6NeehtbmQr/uGHP8KcMOHTo4j4K/8cYbJjIy0jzwwANOGxuvPYSbZhgxYoRp3769CQoKMh06dDAjRozw+h2OH374wfzqV78yF198sQkNDTU333yz2b9/v9cYX3/9tRk8eLAJCQkxkZGRZtKkSaa6utqrzQcffGD69u1rgoKCTJcuXcwrr7xyNqZ32hpbn6KiInPdddeZiIgIExwcbC699FIzefJkr9+bMMbu9XnnnXdMr169THBwsOnRo4eZP3++1/Ha2lozffp0ExMTY4KDg01qaqopLCz0anPgwAEzcuRI06ZNG+NyuczYsWPNwYMHvdp8+umn5pprrjHBwcGmQ4cO5oknnvD53M6ExtbnyJEj5sYbbzRRUVEmMDDQdOzY0YwbN87r8V1j7F6f9957z0g66TVhDNeehtaG644xFRUVZuLEiSY+Pt60bt3adOnSxTz00ENej2zbeO3xM+aEnykEAABo4fjODQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAADOAzNnztRVV12l0NDQk/6V94b4+fnVuz399NNOm9LSUmVkZMjlcik8PFyZmZk6dOhQveN98cUXatu27Unnf+ONN5SUlKTw8HBddNFF6tu3r/761796tSkuLtaYMWMUGxur0NBQDRo0SDt37mzWGkjSnDlzlJCQoJCQEHXv3l0LFy5s9hiEGwAAzpKBAwdqwYIF9R6rqqrSbbfdpnvvvbfJ4+3fv99re/nll+Xn56fhw4c7bTIyMrR161atXLlSy5Yt00cffeT1r6XXqa6u1siRI3XttdeedCwiIkIPPfSQ8vPztXnzZo0dO1Zjx47Ve++9J0kyxmjYsGH66quv9NZbb2njxo3q2LGj0tLSdPjw4SbPZ+7cucrOztYjjzyirVu36tFHH9X48eP1zjvvNHmMuoIAAMBZcP3115/yn2545ZVXTFhY2I8af+jQoeaGG25w/rxt2zYjyaxbt87Z9+677xo/Pz+zd+9er74PPPCAueOOO5p8/n79+plp06YZY4wpLCw0ksyWLVuc4zU1NSYqKsq89NJLzr7vv//eZGZmmsjISNO2bVvz05/+1GzatMk5npKSYn772996nScrK8tcffXVTVuA/487NwAAWKC4uFj/+Mc/lJmZ6ezLz89XeHi4kpKSnH1paWny9/fXmjVrnH2rVq1Sbm6u5syZc8rzGGOUl5enwsJCXXfddZKkyspKSVLr1q2ddv7+/goODtYnn3zi7LvttttUUlKid999VwUFBerfv79SU1NVWlrqjHPiGJIUEhKitWvXev2L46dCuAEAwAKvvvqq2rZtq1tuucXZ5/F4FB0d7dUuICBAERER8ng8kqQDBw5ozJgxWrBggVwuV4Pjl5eXq02bNgoKCtKQIUP0/PPP62c/+5kkqUePHoqPj1d2dra+//57VVVV6cknn9SePXu0f/9+SdInn3yitWvXKjc3V0lJSerWrZv+8Ic/KDw8XK+//rokKT09XX/+859VUFAgY4zWr1+vP//5z6qurtZ3333X5LUg3AAA4COPP/642rRp42wff/yx7rnnHq99RUVFZ+RcL7/8sjIyMk6683Eq48aN0y9/+UvnLkxD2rZtq02bNmndunWaOXOmsrKy9OGHH0qSAgMD9cYbb+jzzz9XRESEQkND9cEHH2jw4MHy9z8eNT799FMdOnRI7dq185r/rl279OWXX0qSpk+frsGDB+vKK69UYGCghg4dqtGjR0uSM05TBDRrBQAAQJPdc889+sUvfuH8OSMjQ8OHD/e6uxIbG3va5/n4449VWFiopUuXeu13u90qKSnx2nfs2DGVlpbK7XZLOv6R1Ntvv60//OEPko5/7FRbW6uAgADNnz9fd911l6Tj4eLSSy+VJPXt21fbt29XTk6OBg4cKElKTEzUpk2bVF5erqqqKkVFRSk5Odn5SOzQoUNq3769E4hOVPd0VkhIiF5++WX96U9/UnFxsdq3b6/58+erbdu2ioqKavJ6EG4AAPCRiIgIRUREOH8OCQlRdHS0ExLOlL/85S9KTExUnz59vPanpKSorKxMBQUFSkxMlHQ8zNTW1io5OVnS8e/l1NTUOH3eeustPfnkk1q9erU6dOjQ4Dlra2ud79qcKCwsTJK0c+dOrV+/Xo899pgkqX///vJ4PAoICFCnTp0anU9gYKAuueQSSdJrr72m//qv/+LODQAALU1RUZFKS0tVVFSkmpoabdq0SZJ06aWXqk2bNpKOf7clJydHN998s9OvoqJCubm5euaZZ04aMyEhQYMGDdK4ceM0b948VVdXa8KECbr99tudO0YJCQlefdavXy9/f3/16tXL2ZeTk6OkpCR17dpVlZWVWr58uf76179q7ty5Tpvc3FxFRUUpPj5en332mSZOnKhhw4bpxhtvlHT8i8wpKSkaNmyYnnrqKV122WXat2+f/vGPf+jmm29WUlKSPv/8c61du1bJycn6/vvv9eyzz2rLli169dVXm7WWhBsAAM4DDz/8sNebeL9+/SRJH3zwgfPRT2FhocrLy736vfbaazLGaOTIkfWOu3jxYk2YMEGpqany9/fX8OHDNXv27GbVdvjwYf3qV7/Snj17FBISoh49emjRokUaMWKE02b//v3KyspyPk4aNWqUpk+f7hz38/PT8uXL9dBDD2ns2LH69ttv5Xa7dd111ykmJkaSVFNTo2eeeUaFhYUKDAzUT3/6U61evfqUd3r+k58xxjSrBwAAwHmMp6UAAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsMr/A6RH0AkDCbD0AAAAAElFTkSuQmCC",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGvCAYAAACn9fQdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAA9hAAAPYQGoP6dpAAArCUlEQVR4nO3de1RVdf7/8RfIRUgPhCBHDLxlSmle4CvS1Qm+ofldo2WNOZSX+Nqy0caJxorSrGkcKqemTNOxGbNGnRz69u3imC3Drl8ZL3gpzMjKwtQDJXHwkojw+f3hjz2eBIT0qHx4Ptbaq+Xen89nvz8fT/u81j5nHwOMMUYAAACWCDzbBQAAAJxOhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFWCznYBZ0Ntba327Nmj9u3bKyAg4GyXAwAAmsAYo/379ysuLk6BgQ3fn2mV4WbPnj2Kj48/22UAAICfYNeuXbrgggsaPN4qw0379u0lHVscl8t1lqsBAABNUVlZqfj4eOd9vCGtMtzUfRTlcrkINwAAtDAn+0oJXygGAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVc5IuJk3b566du2qtm3bKiUlRevXr2+0fV5ennr37q22bduqb9++WrlyZYNtJ02apICAAD311FOnuWoAANAS+T3cLF++XNnZ2Zo5c6Y2bdqkfv36KSMjQ2VlZfW2X7t2rcaMGaOsrCxt3rxZI0eO1MiRI1VUVHRC2//93//Vv/71L8XFxfl7GgAAoIXwe7h58sknNXHiRE2YMEEXX3yxFixYoPDwcC1atKje9k8//bSGDh2qadOmKTExUY888ogGDhyouXPn+rTbvXu37rzzTi1dulTBwcH+ngYAAGgh/Bpujhw5osLCQqWnp//7hIGBSk9PV0FBQb19CgoKfNpLUkZGhk/72tpa3XrrrZo2bZouueSSk9ZRVVWlyspKnw0AANjJr+Hmu+++U01NjWJjY332x8bGyuPx1NvH4/GctP1jjz2moKAg/frXv25SHbm5uYqIiHC2+Pj4Zs4EAAC0FC3uaanCwkI9/fTTWrx4sQICAprUJycnR16v19l27drl5yoBAMDZ4tdwEx0drTZt2qi0tNRnf2lpqdxud7193G53o+0/+OADlZWVKSEhQUFBQQoKCtLXX3+tu+++W127dq13zNDQULlcLp8NAADYya/hJiQkRElJScrPz3f21dbWKj8/X6mpqfX2SU1N9WkvSatXr3ba33rrrfroo4+0ZcsWZ4uLi9O0adP01ltv+W8yAACgRQjy9wmys7M1btw4JScna9CgQXrqqad08OBBTZgwQZI0duxYde7cWbm5uZKkqVOn6uqrr9YTTzyh4cOH66WXXtLGjRu1cOFCSVKHDh3UoUMHn3MEBwfL7XarV69e/p4OAAA4x/k93IwePVrffvutHnzwQXk8HvXv31+rVq1yvjRcUlKiwMB/30C67LLLtGzZMk2fPl3333+/evbsqVdffVV9+vTxd6kAAMACAcYYc7aLONMqKysVEREhr9fL928AAGghmvr+3eKelgIAAGgM4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYJUzEm7mzZunrl27qm3btkpJSdH69esbbZ+Xl6fevXurbdu26tu3r1auXOkcq66u1r333qu+ffvqvPPOU1xcnMaOHas9e/b4exoAAKAF8Hu4Wb58ubKzszVz5kxt2rRJ/fr1U0ZGhsrKyuptv3btWo0ZM0ZZWVnavHmzRo4cqZEjR6qoqEiSdOjQIW3atEkzZszQpk2b9Morr6i4uFg///nP/T0VAADQAgQYY4w/T5CSkqL/+I//0Ny5cyVJtbW1io+P15133qn77rvvhPajR4/WwYMHtWLFCmff4MGD1b9/fy1YsKDec2zYsEGDBg3S119/rYSEhJPWVFlZqYiICHm9Xrlcrp84MwAAcCY19f3br3dujhw5osLCQqWnp//7hIGBSk9PV0FBQb19CgoKfNpLUkZGRoPtJcnr9SogIECRkZH1Hq+qqlJlZaXPBgAA7OTXcPPdd9+ppqZGsbGxPvtjY2Pl8Xjq7ePxeJrV/vDhw7r33ns1ZsyYBlNcbm6uIiIinC0+Pv4nzAYAALQELfppqerqav3iF7+QMUbz589vsF1OTo68Xq+z7dq16wxWCQAAzqQgfw4eHR2tNm3aqLS01Gd/aWmp3G53vX3cbneT2tcFm6+//lpr1qxp9LO30NBQhYaG/sRZAACAlsSvd25CQkKUlJSk/Px8Z19tba3y8/OVmppab5/U1FSf9pK0evVqn/Z1wWbHjh16++231aFDB/9MAAAAtDh+vXMjSdnZ2Ro3bpySk5M1aNAgPfXUUzp48KAmTJggSRo7dqw6d+6s3NxcSdLUqVN19dVX64knntDw4cP10ksvaePGjVq4cKGkY8Hmxhtv1KZNm7RixQrV1NQ438eJiopSSEiIv6cEAADOYX4PN6NHj9a3336rBx98UB6PR/3799eqVaucLw2XlJQoMPDfN5Auu+wyLVu2TNOnT9f999+vnj176tVXX1WfPn0kSbt379brr78uSerfv7/Pud555x0NGTLE31MCAADnML//zs25iN+5AQCg5TknfucGAADgTCPcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYJehsF2AT76Fq3bZ4vfZ4Dysuoq0WjR+kiPDgVjEmtVIrtVIrtbacMVtarc0VYIwx/j7JvHnzNHv2bHk8HvXr10/PPPOMBg0a1GD7vLw8zZgxQ1999ZV69uypxx57TNddd51z3BijmTNn6rnnnlNFRYUuv/xyzZ8/Xz179mxSPZWVlYqIiJDX65XL5Trl+UnS1bPX6Ot9P5ywv0uHML037Rqrx/TXuNRKrdRKra291tY+/x9r6vu33z+WWr58ubKzszVz5kxt2rRJ/fr1U0ZGhsrKyuptv3btWo0ZM0ZZWVnavHmzRo4cqZEjR6qoqMhp8/jjj2vOnDlasGCB1q1bp/POO08ZGRk6fPiwv6dTr4b+QiXp630/6OrZa6wd01/jUiu1Uiu1tvZaW/v8T4Xfw82TTz6piRMnasKECbr44ou1YMEChYeHa9GiRfW2f/rppzV06FBNmzZNiYmJeuSRRzRw4EDNnTtX0rG7Nk899ZSmT5+uESNG6NJLL9WLL76oPXv26NVXX/X3dE7gPVTd4F9ona/3/SDvoWrrxvTXuNRKrdRKra291tY+/1Pl13Bz5MgRFRYWKj09/d8nDAxUenq6CgoK6u1TUFDg016SMjIynPY7d+6Ux+PxaRMREaGUlJQGx6yqqlJlZaXPdrrctnj9aW3Xksb017jUSq3USq2tvdbWPv9T5ddw891336mmpkaxsbE++2NjY+XxeOrt4/F4Gm1f99/mjJmbm6uIiAhni4+P/0nzqc8eb9M+Cmtqu5Y0pr/GpVZqpVZqbe21tvb5n6pW8Sh4Tk6OvF6vs+3ateu0jR0X0fa0tmtJY/prXGqlVmql1tZea2uf/6nya7iJjo5WmzZtVFpa6rO/tLRUbre73j5ut7vR9nX/bc6YoaGhcrlcPtvpsmh8w099/ZR2LWlMf41LrdRKrdTa2mtt7fM/VX4NNyEhIUpKSlJ+fr6zr7a2Vvn5+UpNTa23T2pqqk97SVq9erXTvlu3bnK73T5tKisrtW7dugbH9KeI8GB16RDWaJsuHcKa9Zx/SxnTX+NSK7VSK7W29lpb+/xPld8/lsrOztZzzz2nF154Qdu3b9cdd9yhgwcPasKECZKksWPHKicnx2k/depUrVq1Sk888YQ+/fRTPfTQQ9q4caOmTJkiSQoICNBvfvMb/f73v9frr7+ujz/+WGPHjlVcXJxGjhzp7+nU671p1zT4F/tTn+9vKWP6a1xqpVZqpdbWXmtrn/+pOCM/4jd37lznR/z69++vOXPmKCUlRZI0ZMgQde3aVYsXL3ba5+Xlafr06c6P+D3++OP1/ojfwoULVVFRoSuuuELPPvusLrrooibV448f8ZNazq898muX1Eqt1EqtLafW1j7/4zX1/fuMhJtzjb/CDQAA8J9z5heKAQAAziTCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFb+Fm/LycmVmZsrlcikyMlJZWVk6cOBAo30OHz6syZMnq0OHDmrXrp1GjRql0tJS5/jWrVs1ZswYxcfHKywsTImJiXr66af9NQUAANAC+S3cZGZmatu2bVq9erVWrFih999/X7fffnujfe666y698cYbysvL03vvvac9e/bohhtucI4XFhaqY8eOWrJkibZt26YHHnhAOTk5mjt3rr+mAQAAWpgAY4w53YNu375dF198sTZs2KDk5GRJ0qpVq3Tdddfpm2++UVxc3Al9vF6vYmJitGzZMt14442SpE8//VSJiYkqKCjQ4MGD6z3X5MmTtX37dq1Zs6bJ9VVWVioiIkJer1cul+snzBAAAJxpTX3/9sudm4KCAkVGRjrBRpLS09MVGBiodevW1dunsLBQ1dXVSk9Pd/b17t1bCQkJKigoaPBcXq9XUVFRjdZTVVWlyspKnw0AANjJL+HG4/GoY8eOPvuCgoIUFRUlj8fTYJ+QkBBFRkb67I+NjW2wz9q1a7V8+fKTftyVm5uriIgIZ4uPj2/6ZAAAQIvSrHBz3333KSAgoNHt008/9VetPoqKijRixAjNnDlT1157baNtc3Jy5PV6nW3Xrl1npEYAAHDmBTWn8d13363x48c32qZ79+5yu90qKyvz2X/06FGVl5fL7XbX28/tduvIkSOqqKjwuXtTWlp6Qp9PPvlEaWlpuv322zV9+vST1h0aGqrQ0NCTtgMAAC1fs8JNTEyMYmJiTtouNTVVFRUVKiwsVFJSkiRpzZo1qq2tVUpKSr19kpKSFBwcrPz8fI0aNUqSVFxcrJKSEqWmpjrttm3bpmuuuUbjxo3TrFmzmlM+AABoBfzytJQkDRs2TKWlpVqwYIGqq6s1YcIEJScna9myZZKk3bt3Ky0tTS+++KIGDRokSbrjjju0cuVKLV68WC6XS3feeaekY9+tkY59FHXNNdcoIyNDs2fPds7Vpk2bJoWuOjwtBQBAy9PU9+9m3blpjqVLl2rKlClKS0tTYGCgRo0apTlz5jjHq6urVVxcrEOHDjn7/vSnPzltq6qqlJGRoWeffdY5/vLLL+vbb7/VkiVLtGTJEmd/ly5d9NVXX/lrKgAAoAXx252bcxl3bgAAaHnO6u/cAAAAnC2EGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVfwWbsrLy5WZmSmXy6XIyEhlZWXpwIEDjfY5fPiwJk+erA4dOqhdu3YaNWqUSktL6227b98+XXDBBQoICFBFRYUfZgAAAFoiv4WbzMxMbdu2TatXr9aKFSv0/vvv6/bbb2+0z1133aU33nhDeXl5eu+997Rnzx7dcMMN9bbNysrSpZde6o/SAQBACxZgjDGne9Dt27fr4osv1oYNG5ScnCxJWrVqla677jp98803iouLO6GP1+tVTEyMli1bphtvvFGS9OmnnyoxMVEFBQUaPHiw03b+/Plavny5HnzwQaWlpen7779XZGRkk+urrKxURESEvF6vXC7XqU0WAACcEU19//bLnZuCggJFRkY6wUaS0tPTFRgYqHXr1tXbp7CwUNXV1UpPT3f29e7dWwkJCSooKHD2ffLJJ/rd736nF198UYGBTSu/qqpKlZWVPhsAALCTX8KNx+NRx44dffYFBQUpKipKHo+nwT4hISEn3IGJjY11+lRVVWnMmDGaPXu2EhISmlxPbm6uIiIinC0+Pr55EwIAAC1Gs8LNfffdp4CAgEa3Tz/91F+1KicnR4mJibrlllua3c/r9Trbrl27/FQhAAA424Ka0/juu+/W+PHjG23TvXt3ud1ulZWV+ew/evSoysvL5Xa76+3ndrt15MgRVVRU+Ny9KS0tdfqsWbNGH3/8sV5++WVJUt3XhaKjo/XAAw/o4Ycfrnfs0NBQhYaGNmWKAACghWtWuImJiVFMTMxJ26WmpqqiokKFhYVKSkqSdCyY1NbWKiUlpd4+SUlJCg4OVn5+vkaNGiVJKi4uVklJiVJTUyVJ//M//6MffvjB6bNhwwbddttt+uCDD9SjR4/mTAUAAFiqWeGmqRITEzV06FBNnDhRCxYsUHV1taZMmaKbb77ZeVJq9+7dSktL04svvqhBgwYpIiJCWVlZys7OVlRUlFwul+68806lpqY6T0r9OMB89913zvma87QUAACwl1/CjSQtXbpUU6ZMUVpamgIDAzVq1CjNmTPHOV5dXa3i4mIdOnTI2fenP/3JaVtVVaWMjAw9++yz/ioRAABYyC+/c3Ou43duAABoec7q79wAAACcLYQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYJWgs13A2WCMkSRVVlae5UoAAEBT1b1v172PN6RVhpv9+/dLkuLj489yJQAAoLn279+viIiIBo8HmJPFHwvV1tZqz549at++vQICAs7YeSsrKxUfH69du3bJ5XKdsfO2BKxN41ifhrE2jWN9Gsf6NOxcXBtjjPbv36+4uDgFBjb8zZpWeecmMDBQF1xwwVk7v8vlOmdeKOca1qZxrE/DWJvGsT6NY30adq6tTWN3bOrwhWIAAGAVwg0AALAK4eYMCg0N1cyZMxUaGnq2SznnsDaNY30axto0jvVpHOvTsJa8Nq3yC8UAAMBe3LkBAABWIdwAAACrEG4AAIBVCDcAAMAqhJtmeOihhxQQEOCz9e7d2zl++PBhTZ48WR06dFC7du00atQolZaW+oxRUlKi4cOHKzw8XB07dtS0adN09OhRnzbvvvuuBg4cqNDQUF144YVavHjxmZjeKTvZ+gwZMuSE45MmTfIZw+b12b17t2655RZ16NBBYWFh6tu3rzZu3OgcN8bowQcfVKdOnRQWFqb09HTt2LHDZ4zy8nJlZmbK5XIpMjJSWVlZOnDggE+bjz76SFdeeaXatm2r+Ph4Pf7442dkfqfqZOszfvz4E14/Q4cO9RnD1vXp2rXrCXMPCAjQ5MmTJbXua8/J1qa1X3dqamo0Y8YMdevWTWFhYerRo4ceeeQRn3+bycprj0GTzZw501xyySVm7969zvbtt986xydNmmTi4+NNfn6+2bhxoxk8eLC57LLLnONHjx41ffr0Menp6Wbz5s1m5cqVJjo62uTk5DhtvvzySxMeHm6ys7PNJ598Yp555hnTpk0bs2rVqjM615/iZOtz9dVXm4kTJ/oc93q9znGb16e8vNx06dLFjB8/3qxbt858+eWX5q233jKff/650+bRRx81ERER5tVXXzVbt241P//5z023bt3MDz/84LQZOnSo6devn/nXv/5lPvjgA3PhhReaMWPGOMe9Xq+JjY01mZmZpqioyPz97383YWFh5s9//vMZnW9zNWV9xo0bZ4YOHerz+ikvL/cZx9b1KSsr85n36tWrjSTzzjvvGGNa97XnZGvTmq87xhgza9Ys06FDB7NixQqzc+dOk5eXZ9q1a2eefvppp42N1x7CTTPMnDnT9OvXr95jFRUVJjg42OTl5Tn7tm/fbiSZgoICY4wxK1euNIGBgcbj8Tht5s+fb1wul6mqqjLGGHPPPfeYSy65xGfs0aNHm4yMjNM8m9OvsfUx5thFZurUqQ0et3l97r33XnPFFVc0eLy2tta43W4ze/ZsZ19FRYUJDQ01f//7340xxnzyySdGktmwYYPT5s033zQBAQFm9+7dxhhjnn32WXP++ec761V37l69ep3uKZ1WJ1sfY46FmxEjRjR43Ob1+bGpU6eaHj16mNraWq49P3L82hjTuq87xhgzfPhwc9ttt/nsu+GGG0xmZqYxxt5rDx9LNdOOHTsUFxen7t27KzMzUyUlJZKkwsJCVVdXKz093Wnbu3dvJSQkqKCgQJJUUFCgvn37KjY21mmTkZGhyspKbdu2zWlz/Bh1berGONc1tD51li5dqujoaPXp00c5OTk6dOiQc8zm9Xn99deVnJysm266SR07dtSAAQP03HPPOcd37twpj8fjM7eIiAilpKT4vH4iIyOVnJzstElPT1dgYKDWrVvntLnqqqsUEhLitMnIyFBxcbG+//57f0/zJzvZ+tR599131bFjR/Xq1Ut33HGH9u3b5xyzeX2Od+TIES1ZskS33XabAgICuPYc58drU6e1Xnck6bLLLlN+fr4+++wzSdLWrVv14YcfatiwYZLsvfa0yn8486dKSUnR4sWL1atXL+3du1cPP/ywrrzyShUVFcnj8SgkJESRkZE+fWJjY+XxeCRJHo/H53+guuN1xxprU1lZqR9++EFhYWF+mt2pa2x92rdvr1/+8pfq0qWL4uLi9NFHH+nee+9VcXGxXnnlFUl2r8+XX36p+fPnKzs7W/fff782bNigX//61woJCdG4ceOc+dU3t+Pn3rFjR5/jQUFBioqK8mnTrVu3E8aoO3b++ef7ZX6n6mTrI0lDhw7VDTfcoG7duumLL77Q/fffr2HDhqmgoEBt2rSxen2O9+qrr6qiokLjx4+XJK49x/nx2khq1dcdSbrvvvtUWVmp3r17q02bNqqpqdGsWbOUmZkpSdZeewg3zVCXdCXp0ksvVUpKirp06aJ//OMf5/SL+0xpbH2ysrJ0++23O8f79u2rTp06KS0tTV988YV69OhxNko+Y2pra5WcnKw//OEPkqQBAwaoqKhICxYscN68W7OmrM/NN9/stO/bt68uvfRS9ejRQ++++67S0tLOSt1nw1//+lcNGzZMcXFxZ7uUc059a9OarzuS9I9//ENLly7VsmXLdMkll2jLli36zW9+o7i4OKuvPXwsdQoiIyN10UUX6fPPP5fb7daRI0dUUVHh06a0tFRut1uS5Ha7T3iCoe7PJ2vjcrlaXIA6fn3qk5KSIknOcZvXp1OnTrr44ot99iUmJjof29XNr765HT/3srIyn+NHjx5VeXl5s15j56KTrU99unfvrujoaJ/Xj63rU+frr7/W22+/rf/+7/929nHtOaa+talPa7ruSNK0adN033336eabb1bfvn1166236q677lJubq4ke689hJtTcODAAX3xxRfq1KmTkpKSFBwcrPz8fOd4cXGxSkpKlJqaKklKTU3Vxx9/7PMiWb16tVwul3NhT01N9Rmjrk3dGC3J8etTny1btkiSc9zm9bn88stVXFzss++zzz5Tly5dJEndunWT2+32mVtlZaXWrVvn8/qpqKhQYWGh02bNmjWqra11Ltipqal6//33VV1d7bRZvXq1evXqdU5/5HKy9anPN998o3379vm8fmxdnzrPP/+8OnbsqOHDhzv7uPYcU9/a1Kc1XXck6dChQwoM9H2rb9OmjWprayVZfO05K19jbqHuvvtu8+6775qdO3ea//u//zPp6ekmOjralJWVGWOOPY6ZkJBg1qxZYzZu3GhSU1NNamqq07/ukcNrr73WbNmyxaxatcrExMTU+8jhtGnTzPbt2828efNazCOHja3P559/bn73u9+ZjRs3mp07d5rXXnvNdO/e3Vx11VVOf5vXZ/369SYoKMjMmjXL7NixwyxdutSEh4ebJUuWOG0effRRExkZaV577TXz0UcfmREjRtT7OOaAAQPMunXrzIcffmh69uzp8zhmRUWFiY2NNbfeeqspKioyL730kgkPDz/nH3U+2frs37/f/Pa3vzUFBQVm586d5u233zYDBw40PXv2NIcPH3bGsXV9jDGmpqbGJCQkmHvvvfeEY6392tPQ2rT2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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGvCAYAAACn9fQdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAA9hAAAPYQGoP6dpAAArcElEQVR4nO3de1RVdf7/8RfIRUgPhCBHDLynmKYJX4muTvANze8aLWvMobzE11aNNk40VpRmTeNQOTXdTMdmzBx1cujbt4tjtgzt9pXxgplpRlYm3g6UxMFLIsLn94c/9nTGg4LjQfnwfKy1V8u9P/t93p+PtHmtfc4+BhljjAAAACwRfLYbAAAAOJMINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAq4Sc7QbOhrq6Ou3du1ft27dXUFDQ2W4HAAA0gjFGBw4cUEJCgoKDG74/0yrDzd69e5WYmHi22wAAAKdh165duuCCCxo83irDTfv27SUdXxyXy3WWuwEAAI1RVVWlxMRE5/d4Q1pluKl/K8rlchFuAABoYU71kRI+UAwAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrNEu4mT17trp27aq2bdsqLS1N69atO+n4goIC9enTR23btlX//v21fPnyBsfecccdCgoK0tNPP32GuwYAAC1RwMPN0qVLlZubqxkzZmjjxo0aMGCAsrKyVF5e7nf8mjVrNGbMGOXk5Ojjjz/WyJEjNXLkSG3ZsuWEsf/7v/+rf/zjH0pISAj0NAAAQAsR8HDz1FNPaeLEiZowYYL69u2ruXPnKjIyUvPnz/c7/plnntHQoUM1depUJScn69FHH9WgQYP0/PPP+4zbs2eP7rrrLi1evFihoaGBngYAAGghAhpujh49quLiYmVmZv7zBYODlZmZqaKiIr/nFBUV+YyXpKysLJ/xdXV1uvXWWzV16lRddNFFp+yjurpaVVVVPhsAALBTQMPNd999p9raWsXHx/vsj4+Pl8fj8XuOx+M55fjHH39cISEh+uUvf9moPvLz8xUVFeVsiYmJTZwJAABoKVrc01LFxcV65plntGDBAgUFBTXqnLy8PHm9XmfbtWtXgLsEAABnS0DDTWxsrNq0aaOysjKf/WVlZXK73X7PcbvdJx3/4Ycfqry8XElJSQoJCVFISIh27type+65R127dvVbMzw8XC6Xy2cDAAB2Cmi4CQsLU0pKigoLC519dXV1KiwsVHp6ut9z0tPTfcZL0sqVK53xt956qzZv3qxNmzY5W0JCgqZOnap33nkncJMBAAAtQkigXyA3N1fjxo1TamqqBg8erKefflqHDh3ShAkTJEljx45V586dlZ+fL0maMmWKrr76aj355JMaPny4XnnlFW3YsEHz5s2TJHXo0EEdOnTweY3Q0FC53W717t070NMBAADnuICHm9GjR+vbb7/VQw89JI/Ho4EDB2rFihXOh4ZLS0sVHPzPG0iXXXaZlixZomnTpumBBx5Qr1699Prrr6tfv36BbhUAAFggyBhjznYTza2qqkpRUVHyer18/gYAgBaisb+/W9zTUgAAACdDuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWKVZws3s2bPVtWtXtW3bVmlpaVq3bt1JxxcUFKhPnz5q27at+vfvr+XLlzvHampqdN9996l///4677zzlJCQ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EhJOOMfr9SouLk5LlizRjTfeKEn6/PPPlZycrKKiIl166aV+X2vSpEnatm2bVq1a1ej+qqqqFBUVJa/XK5fLdRozBAAAza2xv78DcuemqKhI0dHRTrCRpMzMTAUHB2vt2rV+zykuLlZNTY0yMzOdfX369FFSUpKKiooafC2v16uYmJiT9lNdXa2qqiqfDQAA2Ckg4cbj8ahjx44++0JCQhQTEyOPx9PgOWFhYYqOjvbZHx8f3+A5a9as0dKlS0/5dld+fr6ioqKcLTExsfGTAQAALUqTws3999+voKCgk26ff/55oHr1sWXLFo0YMUIzZszQtddee9KxeXl58nq9zrZr165m6REAADS/kKYMvueeezR+/PiTjunevbvcbrfKy8t99h87dkwVFRVyu91+z3O73Tp69KgqKyt97t6UlZWdcM5nn32mjIwM3X777Zo2bdop+w4PD1d4ePgpxwEAgJavSeEmLi5OcXFxpxyXnp6uyspKFRcXKyUlRZK0atUq1dXVKS0tze85KSkpCg0NVWFhoUaNGiVJKikpUWlpqdLT051xW7du1TXXXKNx48Zp5syZTWkfAAC0AgF5WkqShg0bprKyMs2dO1c1NTWaMGGCUlNTtWTJEknSnj17lJGRoYULF2rw4MGSpDvvvFPLly/XggUL5HK5dNddd0k6/tka6fhbUddcc42ysrI0a9Ys57XatGnTqNBVj6elAABoeRr7+7tJd26aYvHixZo8ebIyMjIUHBysUaNG6dlnn3WO19TUqKSkRIcPH3b2/eEPf3DGVldXKysrSy+88IJz/NVXX9W3336rRYsWadGiRc7+Ll266JtvvgnUVAAAQAsSsDs35zLu3AAA0PKc1e+5AQAAOFsINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAq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tuTn5+v66693zquqqlJBQYGefPLJE2omJydr6NChmjhxoubOnauamhpNnjxZN998s3PHKDk52eecDRs2KDg4WP369XP25efnKzU1VT169FB1dbWWL1+uv/zlL5ozZ44zpqCgQHFxcUpKStKnn36qKVOmaOTIkbr22mslHf8gc3p6ukaOHKknnnhCF154ofbu3au///3vuv7665WamqovvvhC69atU1pamr7//ns99dRT2rJli15++eUmrSXhBgCAc8BDDz3k80v8kksukSStXr3aeeunpKREXq/X57xXXnlFxhiNGTPGb93Fixdr8uTJysjIUHBwsEaNGqVnn322Sb0dOnRIv/jFL7R7925FRESoT58+WrRokUaPHu2M2bdvn3Jzc523k8aOHavp06c7x4OCgrR8+XI9+OCDmjBhgr799lu53W5dddVVio+PlyTV1tbqySefVElJiUJDQ/WTn/xEa9asOeWdnn8VZIwxTToDAADgHMbTUgAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABY5f8BV+WUCe5eiEQAAAAASUVORK5CYII=",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for inter_no in histid.inter_no.unique():\n",
" hist = histid[histid.inter_no==inter_no]\n",
" hist = hist.set_index('start_unix')\n",
" # with pd.option_context('display.max_rows', None, 'display.max_columns', None):\n",
" # display(hist)\n",
" plt.scatter(hist.index, [0] * len(hist.index))\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 263,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 263,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGvCAYAAACn9fQdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAA9hAAAPYQGoP6dpAAArcElEQVR4nO3de1RVdf7/8RfIRUgPhCBHDLynmKYJX4muTvANze8aLWvMobzE11aNNk40VpRmTeNQOTXdTMdmzBx1cujbt4tjtgzt9pXxgplpRlYm3g6UxMFLIsLn94c/9nTGg4LjQfnwfKy1V8u9P/t93p+PtHmtfc4+BhljjAAAACwRfLYbAAAAOJMINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAq4Sc7QbOhrq6Ou3du1ft27dXUFDQ2W4HAAA0gjFGBw4cUEJCgoKDG74/0yrDzd69e5WYmHi22wAAAKdh165duuCCCxo83irDTfv27SUdXxyXy3WWuwEAAI1RVVWlxMRE5/d4Q1pluKl/K8rlchFuAABoYU71kRI+UAwAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrNEu4mT17trp27aq2bdsqLS1N69atO+n4goIC9enTR23btlX//v21fPnyBsfecccdCgoK0tNPP32GuwYAAC1RwMPN0qVLlZubqxkzZmjjxo0aMGCAsrKyVF5e7nf8mjVrNGbMGOXk5Ojjjz/WyJEjNXLkSG3ZsuWEsf/7v/+rf/zjH0pISAj0NAAAQAsR8HDz1FNPaeLEiZowYYL69u2ruXPnKjIyUvPnz/c7/plnntHQoUM1depUJScn69FHH9WgQYP0/PPP+4zbs2eP7rrrLi1evFihoaGBngYAAGghAhpujh49quLiYmVmZv7zBYODlZmZqaKiIr/nFBUV+YyXpKysLJ/xdXV1uvXWWzV16lRddNFFp+yjurpaVVVVPhsAALBTQMPNd999p9raWsXHx/vsj4+Pl8fj8XuOx+M55fjHH39cISEh+uUvf9moPvLz8xUVFeVsiYmJTZwJAABoKVrc01LFxcV65plntGDBAgUFBTXqnLy8PHm9XmfbtWtXgLsEAABnS0DDTWxsrNq0aaOysjKf/WVlZXK73X7PcbvdJx3/4Ycfqry8XElJSQoJCVFISIh27type+65R127dvVbMzw8XC6Xy2cDAAB2Cmi4CQsLU0pKigoLC519dXV1KiwsVHp6ut9z0tPTfcZL0sqVK53xt956qzZv3qxNmzY5W0JCgqZOnap33nkncJMBAAAtQkigXyA3N1fjxo1TamqqBg8erKefflqHDh3ShAkTJEljx45V586dlZ+fL0maMmWKrr76aj355JMaPny4XnnlFW3YsEHz5s2TJHXo0EEdOnTweY3Q0FC53W717t070NMBAADnuICHm9GjR+vbb7/VQw89JI/Ho4EDB2rFihXOh4ZLS0sVHPzPG0iXXXaZlixZomnTpumBBx5Qr1699Prrr6tfv36BbhUAAFggyBhjznYTza2qqkpRUVHyer18/gYAgBaisb+/W9zTUgAAACdDuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWKVZws3s2bPVtWtXtW3bVmlpaVq3bt1JxxcUFKhPnz5q27at+vfvr+XLlzvHampqdN9996l///4677zzlJCQ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EhJOOMfr9SouLk5LlizRjTfeKEn6/PPPlZycrKKiIl166aV+X2vSpEnatm2bVq1a1ej+qqqqFBUVJa/XK5fLdRozBAAAza2xv78DcuemqKhI0dHRTrCRpMzMTAUHB2vt2rV+zykuLlZNTY0yMzOdfX369FFSUpKKiooafC2v16uYmJiT9lNdXa2qqiqfDQAA2Ckg4cbj8ahjx44++0JCQhQTEyOPx9PgOWFhYYqOjvbZHx8f3+A5a9as0dKlS0/5dld+fr6ioqKcLTExsfGTAQAALUqTws3999+voKCgk26ff/55oHr1sWXLFo0YMUIzZszQtddee9KxeXl58nq9zrZr165m6REAADS/kKYMvueeezR+/PiTjunevbvcbrfKy8t99h87dkwVFRVyu91+z3O73Tp69KgqKyt97t6UlZWdcM5nn32mjIwM3X777Zo2bdop+w4PD1d4ePgpxwEAgJavSeEmLi5OcXFxpxyXnp6uyspKFRcXKyUlRZK0atUq1dXVKS0tze85KSkpCg0NVWFhoUaNGiVJKikpUWlpqdLT051xW7du1TXXXKNx48Zp5syZTWkfAAC0AgF5WkqShg0bprKyMs2dO1c1NTWaMGGCUlNTtWTJEknSnj17lJGRoYULF2rw4MGSpDvvvFPLly/XggUL5HK5dNddd0k6/tka6fhbUddcc42ysrI0a9Ys57XatGnTqNBVj6elAABoeRr7+7tJd26aYvHixZo8ebIyMjIUHBysUaNG6dlnn3WO19TUqKSkRIcPH3b2/eEPf3DGVldXKysrSy+88IJz/NVXX9W3336rRYsWadGiRc7+Ll266JtvvgnUVAAAQAsSsDs35zLu3AAA0PKc1e+5AQAAOFsINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqwQs3FRUVCg7O1sul0vR0dHKycnRwYMHT3rOkSNHNGnSJHXo0EHt2rXTqFGjVFZW5nfs/v37dcEFFygoKEiVlZUBmAEAAGiJAhZusrOztXXrVq1cuVLLli3TBx98oNtvv/2k59x999166623VFBQoPfff1979+7VDTfc4HdsTk6OLr744kC0DgAAWrAgY4w500W3bdumvn37av369UpNTZUkrVixQtddd512796thISEE87xer2Ki4vTkiVLdOONN0qSPv/8cyUnJ6uoqEiXXnqpM3bOnDlaunSpHnroIWVkZOj7779XdHR0o/urqqpSVFSUvF6vXC7XvzdZAADQLBr7+zsgd26KiooUHR3tBBtJyszMVHBwsNauXev3nOLiYtXU1CgzM9PZ16dPHyUlJamoqMjZ99lnn+k3v/mNFi5cqODgxrVfXV2tqqoqnw0AANgpIOHG4/GoY8eOPvtCQkIUExMjj8fT4DlhYWEn3IGJj493zqmurtaYMWM0a9YsJSUlNbqf/Px8RUVFOVtiYmLTJgQAAFqMJoWb+++/X0FBQSfdPv/880D1qry8PCUnJ+uWW25p8nler9fZdu3aFaAOAQDA2RbSlMH33HOPxo8ff9Ix3bt3l9vtVnl5uc/+Y8eOqaKiQm632+95brdbR48eVWVlpc/dm7KyMuecVatW6dNPP9Wrr74qSar/uFBsbKwefPBBPfLII35rh4eHKzw8vDFTBAAALVyTwk1cXJzi4uJOOS49PV2VlZUqLi5WSkqKpOPBpK6uTmlpaX7PSUlJUWhoqAoLCzVq1ChJUklJiUpLS5Weni5J+p//+R/98MMPzjnr16/Xbbfdpg8//FA9evRoylQAAIClmhRuGis5OVlDhw7VxIkTNXfuXNXU1Gjy5Mm6+eabnSel9uzZo4yMDC1cuFCDBw9WVFSUcnJylJubq5iYGLlcLt11111KT093npT61wDz3XffOa/XlKelAACAvQISbiRp8eLFmjx5sjIyMhQcHKxRo0bp2WefdY7X1NSopKREhw8fdvb94Q9/cMZWV1crKytLL7zwQqBaBAAAFgrI99yc6/ieGwAAWp6z+j03AAAAZwvhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFgl5Gw3cDYYYyRJVVVVZ7kTAADQWPW/t+t/jzekVYabAwcOSJISExPPcicAAKCpDhw4oKioqAaPB5lTxR8L1dXVae/evWrfvr2CgoIC/npVVVVKTEzUrl275HK5Av56LQlr4x/r0jDWxj/WxT/WpWEtcW2MMTpw4IASEhIUHNzwJ2ta5Z2b4OBgXXDBBc3+ui6Xq8X8ADU31sY/1qVhrI1/rIt/rEvDWtranOyOTT0+UAwAAKxCuAEAAFYh3DSD8PBwzZgxQ+Hh4We7lXMOa+Mf69Iw1sY/1sU/1qVhNq9Nq/xAMQAAsBd3bgAAgFUINwAAwCqEGwAAYBXCDQAAsArhppEefvhhBQUF+Wx9+vRxjh85ckSTJk1Shw4d1K5dO40aNUplZWU+NUpLSzV8+HBFRkaqY8eOmjp1qo4dO+Yz5r333tOgQYMUHh6unj17asGCBc0xvdN2qnUZMmTICcfvuOMOnxo2rku9PXv26JZbblGHDh0UERGh/v37a8OGDc5xY4weeughderUSREREcrMzNT27dt9alRUVCg7O1sul0vR0dHKycnRwYMHfcZs3rxZV155pdq2bavExEQ98cQTzTK/03WqdRk/fvwJPzdDhw71qWHjunTt2vWEeQcFBWnSpEmSWu915lTr0lqvM7W1tZo+fbq6deumiIgI9ejRQ48++qjPv7vUWq8xMmiUGTNmmIsuusjs27fP2b799lvn+B133GESExNNYWGh2bBhg7n00kvNZZdd5hw/duyY6devn8nMzDQff/yxWb58uYmNjTV5eXnOmK+//tpERkaa3Nxc89lnn5nnnnvOtGnTxqxYsaJZ59oUp1qXq6++2kycONHnuNfrdY7bui7GGFNRUWG6dOlixo8fb9auXWu+/vpr884775gvv/zSGfPYY4+ZqKgo8/rrr5tPPvnE/PSnPzXdunUzP/zwgzNm6NChZsCAAeYf//iH+fDDD03Pnj3NmDFjnONer9fEx8eb7Oxss2XLFvPXv/7VREREmD/+8Y/NOt/Gasy6jBs3zgwdOtTn56aiosKnjm3rYowx5eXlPnNeuXKlkWRWr15tjGm915lTrUtrvc7MnDnTdOjQwSxbtszs2LHDFBQUmHbt2plnnnnGGdMarzHGGEO4aaQZM2aYAQMG+D1WWVlpQkNDTUFBgbNv27ZtRpIpKioyxhizfPlyExwcbDwejzNmzpw5xuVymerqamOMMffee6+56KKLfGqPHj3aZGVlneHZnDknWxdjjl90pkyZ0uBxW9fFGGPuu+8+c8UVVzR4vK6uzrjdbjNr1ixnX2VlpQkPDzd//etfjTHGfPbZZ0aSWb9+vTPm7bffNkFBQWbPnj3GGGNeeOEFc/755zvrVf/avXv3PtNTOiNOtS7GHA83I0aMaPC4jeviz5QpU0yPHj1MXV1dq77O/Ksfr4sxrfc6M3z4cHPbbbf57LvhhhtMdna2Mab1XmOMMYa3pZpg+/btSkhIUPfu3ZWdna3S0lJJUnFxsWpqapSZmemM7dOnj5KSklRUVCRJKioqUv/+/RUfH++MycrKUlVVlbZu3eqM+XGN+jH1Nc5VDa1LvcWLFys2Nlb9+vVTXl6eDh8+7ByzeV3efPNNpaam6qabblLHjh11ySWX6MUXX3SO79ixQx6Px2duUVFRSktL8/m5iY6OVmpqqjMmMzNTwcHBWrt2rTPmqquuUlhYmDMmKytLJSUl+v777wM9zSY71brUe++999SxY0f17t1bd955p/bv3+8cs3Fd/tXRo0e1aNEi3XbbbQoKCmr115l6/7ou9Vrjdeayyy5TYWGhvvjiC0nSJ598oo8++kjDhg2T1HqvMVIr/YczT0daWpoWLFig3r17a9++fXrkkUd05ZVXasuWLfJ4PAoLC1N0dLTPOfHx8fJ4PJIkj8fj8z9W/fH6YycbU1VVpR9++EEREREBmt3pO9m6tG/fXj//+c/VpUsXJSQkaPPmzbrvvvtUUlKi1157TZK96yJJX3/9tebMmaPc3Fw98MADWr9+vX75y18qLCxM48aNc+bnb24/nnvHjh19joeEhCgmJsZnTLdu3U6oUX/s/PPPD8j8Ttep1kWShg4dqhtuuEHdunXTV199pQceeEDDhg1TUVGR2rRpY+W6/KvXX39dlZWVGj9+vCS16uvMj/3rukhqtdeZ+++/X1VVVerTp4/atGmj2tpazZw5U9nZ2ZLUaq8xEuGm0eqTsCRdfPHFSktLU5cuXfS3v/3tnPyhby4nW5ecnBzdfvvtzvH+/furU6dOysjI0FdffaUePXqcjZabTV1dnVJTU/W73/1OknTJJZdoy5Ytmjt3rvNLvDVqzLrcfPPNzvj+/fvr4osvVo8ePfTee+8pIyPjrPTd3P785z9r2LBhSkhIONutnFP8rUtrvc787W9/0+LFi7VkyRJddNFF2rRpk371q18pISGhVV9jJJ6WOm3R0dG68MIL9eWXX8rtduvo0aOqrKz0GVNWVia32y1JcrvdJzzVUP/nU41xuVwtJkD9eF38SUtLkyTnuM3r0qlTJ/Xt29dnX3JysvO2Xf38/M3tx3MvLy/3OX7s2DFVVFQ06WfrXHKqdfGne/fuio2N9fm5sW1dfmznzp1699139d///d/OPq4z/tfFn9ZynZk6daruv/9+3Xzzzerfv79uvfVW3X333crPz5fUeq8xEuHmtB08eFBfffWVOnXqpJSUFIWGhqqwsNA5XlJSotLSUqWnp0uS0tPT9emnn/r8EK1cuVIul8u50Kenp/vUqB9TX6Ml+PG6+LNp0yZJco7bvC6XX365SkpKfPZ98cUX6tKliySpW7ducrvdPnOrqqrS2rVrfX5uKisrVVxc7IxZtWqV6urqnAt4enq6PvjgA9XU1DhjVq5cqd69e5+Tt4tPtS7+7N69W/v37/f5ubFtXX7spZdeUseOHTV8+HBnH9cZ/+viT2u5zhw+fFjBwb6/xtu0aaO6ujpJrfcaI4lHwRvrnnvuMe+9957ZsWOH+b//+z+TmZlpYmNjTXl5uTHm+COaSUlJZtWqVWbDhg0mPT3dpKenO+fXP4p47bXXmk2bNpkVK1aYuLg4v48iTp061Wzbts3Mnj37nH8U8WTr8uWXX5rf/OY3ZsOGDWbHjh3mjTfeMN27dzdXXXWVc76t62KMMevWrTMhISFm5syZZvv27Wbx4sUmMjLSLFq0yBnz2GOPmejoaPPGG2+YzZs3mxEjRvh9TPOSSy4xa9euNR999JHp1auXz2OalZWVJj4+3tx6661my5Yt5pVXXjGRkZHn7GOap1qXAwcOmF//+temqKjI7Nixw7z77rtm0KBBplevXubIkSNOHdvWpV5tba1JSkoy99133wnHWut1xpiG16U1X2fGjRtnOnfu7DwK/tprr5nY2Fhz7733OmNa4zXGGB4Fb7TRo0ebTp06mbCwMNO5c2czevRon+/l+OGHH8wvfvELc/7555vIyEhz/fXXm3379vnU+Oabb8ywYcNMRESEiY2NNffcc4+pqanxGbN69WozcOBAExYWZrp3725eeuml5pjeaTvZupSWlpqrrrrKxMTEmPDwcNOzZ08zdepUn++fMMbOdan31ltvmX79+pnw8HDTp08fM2/ePJ/jdXV1Zvr06SY+Pt6Eh4ebjIwMU1JS4jNm//79ZsyYMaZdu3bG5XKZCRMmmAMHDviM+eSTT8wVV1xhwsPDTefOnc1jjz0W8Ln9O062LocPHzbXXnutiYuLM6GhoaZLly5m4sSJPo/xGmPnuhhjzDvvvGMknfBzYEzrvc4Y0/C6tObrTFVVlZkyZYpJSkoybdu2Nd27dzcPPvigzyPbrfUaE2TMj77KEAAAoIXjMzcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAOAfMnDlTl112mSIjI0/4198bEhQU5HebNWuWM6aiokLZ2dlyuVyKjo5WTk6ODh486Lfel19+qfbt25/w+q+99ppSU1MVHR2t8847TwMHDtRf/vIXnzFlZWUaP368EhISFBkZqaFDh2r79u1NWgNJmj17tpKTkxUREaHevXtr4cKFTa5BuAEAoJkMGTJECxYs8Hvs6NGjuummm3TnnXc2ut6+fft8tvnz5ysoKEijRo1yxmRnZ2vr1q1auXKlli1bpg8++MDnX1KvV1NTozFjxujKK6884VhMTIwefPBBFRUVafPmzZowYYImTJigd955R5JkjNHIkSP19ddf64033tDHH3+sLl26KDMzU4cOHWr0fObMmaO8vDw9/PDD2rp1qx555BFNmjRJb731VqNr1DcEAACawdVXX33Kf9bhpZdeMlFRUadVf8SIEeaaa65x/vzZZ58ZSWb9+vXOvrffftsEBQWZPXv2+Jx77733mltuuaXRr3/JJZeYadOmGWOMKSkpMZLMli1bnOO1tbUmLi7OvPjii86+77//3uTk5JjY2FjTvn1785Of/MRs2rTJOZ6enm5+/etf+7xObm6uufzyyxu3AP8fd24AALBAWVmZ/v73vysnJ8fZV1RUpOjoaKWmpjr7MjMzFRwcrLVr1zr7Vq1apYKCAs2ePfuUr2OMUWFhoUpKSnTVVVdJkqqrqyVJbdu2dcYFBwcrPDxcH330kbPvpptuUnl5ud5++20VFxdr0KBBysjIUEVFhVPnxzUkKSIiQuvWrfP5V8lPhXADAIAFXn75ZbVv31433HCDs8/j8ahjx44+40JCQhQTEyOPxyNJ2r9/v8aPH68FCxbI5XI1WN/r9apdu3YKCwvT8OHD9dxzz+k///M/JUl9+vRRUlKS8vLy9P333+vo0aN6/PHHtXv3bu3bt0+S9NFHH2ndunUqKChQamqqevXqpd///veKjo7Wq6++KknKysrSn/70JxUXF8sYow0bNuhPf/qTampq9N133zV6LQg3AAAEyO9+9zu1a9fO2T788EPdcccdPvtKS0vPyGvNnz9f2dnZJ9z5OJWJEyfq5z//uXMXpiHt27fXpk2btH79es2cOVO5ubl67733JEmhoaF67bXX9MUXXygmJkaRkZFavXq1hg0bpuDg41Hjk08+0cGDB9WhQwef+e/YsUNfffWVJGn69OkaNmyYLr30UoWGhmrEiBEaN26cJDl1GiOkSSsAAAAa7Y477tDPfvYz58/Z2dkaNWqUz92VhISEf/t1PvzwQ5WUlGjp0qU++91ut8rLy332HTt2TBUVFXK73ZKOvyX15ptv6ve//72k42871dXVKSQkRPPmzdNtt90m6Xi46NmzpyRp4MCB2rZtm/Lz8zVkyBBJUkpKijZt2iSv16ujR48qLi5OaWlpzltiBw8eVKdOnZxA9GP1T2dFRERo/vz5+uMf/6iysjJ16tRJ8+bNU/v27RUXF9fo9SDcAAAQIDExMYqJiXH+HBERoY4dOzoh4Uz585//rJSUFA0YMMBnf3p6uiorK1VcXKyUlBRJx8NMXV2d0tLSJB3/XE5tba1zzhtvvKHHH39ca9asUefOnRt8zbq6OuezNj8WFRUlSdq+fbs2bNigRx99VJI0aNAgeTwehYSEqGvXriedT2hoqC644AJJ0iuvvKL/+q//4s4NAAAtTWlpqSoqKlRaWqra2lpt2rRJktSzZ0+1a9dO0vHPtuTn5+v66693zquqqlJBQYGefPLJE2omJydr6NChmjhxoubOnauamhpNnjxZN998s3PHKDk52eecDRs2KDg4WP369XP25efnKzU1VT169FB1dbWWL1+uv/zlL5ozZ44zpqCgQHFxcUpKStKnn36qKVOmaOTIkbr22mslHf8gc3p6ukaOHKknnnhCF154ofbu3au///3vuv7665WamqovvvhC69atU1pamr7//ns99dRT2rJli15++eUmrSXhBgCAc8BDDz3k80v8kksukSStXr3aeeunpKREXq/X57xXXnlFxhiNGTPGb93Fixdr8uTJysjIUHBwsEaNGqVnn322Sb0dOnRIv/jFL7R7925FRESoT58+WrRokUaPHu2M2bdvn3Jzc523k8aOHavp06c7x4OCgrR8+XI9+OCDmjBhgr799lu53W5dddVVio+PlyTV1tbqySefVElJiUJDQ/WTn/xEa9asOeWdnn8VZIwxTToDAADgHMbTUgAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABY5f8BV+WUCe5eiEQAAAAASUVORK5CYII=",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(hist.index, [0] * len(hist.index))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "rts",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 2
}