From 8ccf39a70ffc66389d645b3e02b72fdbf90ef4ab Mon Sep 17 00:00:00 2001 From: govin08 Date: Thu, 1 Aug 2024 17:34:49 +0900 Subject: [PATCH] viewed errors : consecutive states and all reds --- .vscode/launch.json | 8 +- .../generate_signals.cpython-312.pyc | Bin 70561 -> 70413 bytes .../preprocess_daily.cpython-312.pyc | Bin 78942 -> 78942 bytes Scripts/generate_signals.py | 4 +- analysis/0725_main_test/4_use_class_pd.ipynb | 2450 +- analysis/0725_main_test/6_use_class_gs.ipynb | 1030 +- .../__pycache__/data_check.cpython-312.pyc | Bin 0 -> 5319 bytes analysis/0801_check_tll/check.ipynb | 333 + analysis/0801_check_tll/data_check.py | 94 + ...ngnam_network_internal_target_0721.net.xml | 43891 ++++++++++++++++ analysis/0801_check_tll/review_needed.csv | 3 + analysis/0801_check_tll/sn.rou.xml | 138 + analysis/0801_check_tll/sn_1722384300.add.xml | 283 + test_0731/results/sn_1722384600.add.xml | 288 + test_0731/results/sn_1722384900.add.xml | 336 + test_0731/results/sn_1722385200.add.xml | 248 + 16 files changed, 49010 insertions(+), 96 deletions(-) create mode 100644 analysis/0801_check_tll/__pycache__/data_check.cpython-312.pyc create mode 100644 analysis/0801_check_tll/check.ipynb create mode 100644 analysis/0801_check_tll/data_check.py create mode 100644 analysis/0801_check_tll/new_sungnam_network_internal_target_0721.net.xml create mode 100644 analysis/0801_check_tll/review_needed.csv create mode 100644 analysis/0801_check_tll/sn.rou.xml create mode 100644 analysis/0801_check_tll/sn_1722384300.add.xml create mode 100644 test_0731/results/sn_1722384600.add.xml create mode 100644 test_0731/results/sn_1722384900.add.xml create mode 100644 test_0731/results/sn_1722385200.add.xml diff --git a/.vscode/launch.json b/.vscode/launch.json index dcd58abd3..0324fb55a 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,17 +1,13 @@ { "version": "0.2.0", "configurations": [ - - { - "name": "Python: Current File (Integrated Terminal)", + "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", - "cwd": "${workspaceFolder}", - "env": {"PYTHONPATH": "${workspaceFolder}"}, - "terminal": "integrated" + "cwd": "${fileDirname}" } ] } \ No newline at end of file diff --git a/Scripts/__pycache__/generate_signals.cpython-312.pyc b/Scripts/__pycache__/generate_signals.cpython-312.pyc index 45c80052ac0dbf13efd9f454297e3f1470fa39b4..8b4ff2c0edc8c1a1d8cbaa472b54dea268a1eaa8 100644 GIT binary patch delta 7487 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 delta 7440 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 ZA}%Pfip8AI9l+17A1oOyzIMa&{|~1SMZ^FA diff --git a/Scripts/__pycache__/preprocess_daily.cpython-312.pyc b/Scripts/__pycache__/preprocess_daily.cpython-312.pyc index 3a831f8760cf62ea2b4075572e868b647916a19a..469d5d82c5620e014f5dc88b08629072d8d5573b 100644 GIT binary patch delta 37 scmccjg5}-|7T(jmyj%=Gu+eyR+VhRPOh%Kvtt*>5jJ9_eFe^NMWN\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nonode_idphase_noring_typemove_noinc_edge_idout_edge_idstateturn_type
664561062311A5513136513139grgrrrrGleft
674561062311B2513136513137grgrrGGrstraight
684561062312A6513138513135grgGGrrrstraight
694561062312B2513136513137grgrrGGrstraight
704561062313A7513140513137gGgrrrrrleft
714561062313B7513140513137gGgrrrrrleft
724561062314A17NaNNaNgrgrrrrrNaN
734561062314B17NaNNaNgrgrrrrrNaN
\n", + "" + ], + "text/plain": [ + " inter_no node_id phase_no ring_type move_no inc_edge_id out_edge_id \\\n", + "66 456 106231 1 A 5 513136 513139 \n", + "67 456 106231 1 B 2 513136 513137 \n", + "68 456 106231 2 A 6 513138 513135 \n", + "69 456 106231 2 B 2 513136 513137 \n", + "70 456 106231 3 A 7 513140 513137 \n", + "71 456 106231 3 B 7 513140 513137 \n", + "72 456 106231 4 A 17 NaN NaN \n", + "73 456 106231 4 B 17 NaN NaN \n", + "\n", + " state turn_type \n", + "66 grgrrrrG left \n", + "67 grgrrGGr straight \n", + "68 grgGGrrr straight \n", + "69 grgrrGGr straight \n", + "70 gGgrrrrr left \n", + "71 gGgrrrrr left \n", + "72 grgrrrrr NaN \n", + "73 grgrrrrr NaN " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nonode_idphase_noring_typemove_noinc_edge_idout_edge_idstateturn_type
824571062341A6513152513155gGGGrgrrrrgrrrrgrrrstraight
834571062341B2513156513151grrrrgrrrrgGGGrgrrrstraight
844571062342A5513156513157grrrrgrrrrgrrrGgrrrleft
854571062342B1513152513153grrrGgrrrrgrrrrgrrrleft
864571062343A17NaNNaNgrrrrgrrrrgrrrrgrrrNaN
874571062343B17NaNNaNgrrrrgrrrrgrrrrgrrrNaN
884571062344A8513154513157grrrrgGGrrgrrrrgrrrstraight
894571062344B3513154513155grrrrgrrGGgrrrrgrrrleft
904571062345A7513158513151grrrrgrrrrgrrrrgrrGleft
914571062345B4513158513153grrrrgrrrrgrrrrgGGrstraight
\n", + "
" + ], + "text/plain": [ + " inter_no node_id phase_no ring_type move_no inc_edge_id out_edge_id \\\n", + "82 457 106234 1 A 6 513152 513155 \n", + "83 457 106234 1 B 2 513156 513151 \n", + "84 457 106234 2 A 5 513156 513157 \n", + "85 457 106234 2 B 1 513152 513153 \n", + "86 457 106234 3 A 17 NaN NaN \n", + "87 457 106234 3 B 17 NaN NaN \n", + "88 457 106234 4 A 8 513154 513157 \n", + "89 457 106234 4 B 3 513154 513155 \n", + "90 457 106234 5 A 7 513158 513151 \n", + "91 457 106234 5 B 4 513158 513153 \n", + "\n", + " state turn_type \n", + "82 gGGGrgrrrrgrrrrgrrr straight \n", + "83 grrrrgrrrrgGGGrgrrr straight \n", + "84 grrrrgrrrrgrrrGgrrr left \n", + "85 grrrGgrrrrgrrrrgrrr left \n", + "86 grrrrgrrrrgrrrrgrrr NaN \n", + "87 grrrrgrrrrgrrrrgrrr NaN \n", + "88 grrrrgGGrrgrrrrgrrr straight \n", + "89 grrrrgrrGGgrrrrgrrr left \n", + "90 grrrrgrrrrgrrrrgrrG left \n", + "91 grrrrgrrrrgrrrrgGGr straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "106238\n", + "all_red_indices : {4, 6, 7, 12, 14, 15}\n", + "all_red_state : ggggrgrrggggrgrr\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nonode_idphase_noring_typemove_noinc_edge_idout_edge_idstateturn_type
1124581062381A8513193513188gGGGrgrrgrrrrgrrstraight
1134581062381B4513189513192grrrrgrrgGGGrgrrstraight
1144581062382A17NaNNaNgrrrrgrrgrrrrgrrNaN
1154581062382B17NaNNaNgrrrrgrrgrrrrgrrNaN
\n", + "
" + ], + "text/plain": [ + " inter_no node_id phase_no ring_type move_no inc_edge_id out_edge_id \\\n", + "112 458 106238 1 A 8 513193 513188 \n", + "113 458 106238 1 B 4 513189 513192 \n", + "114 458 106238 2 A 17 NaN NaN \n", + "115 458 106238 2 B 17 NaN NaN \n", + "\n", + " state turn_type \n", + "112 gGGGrgrrgrrrrgrr straight \n", + "113 grrrrgrrgGGGrgrr straight \n", + "114 grrrrgrrgrrrrgrr NaN \n", + "115 grrrrgrrgrrrrgrr NaN " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "106332\n", + "all_red_indices : {11, 4, 12, 14}\n", + "all_red_state : ggggrggggggrrgrgggggggggggg\n" ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nonode_idphase_noring_typemove_noinc_edge_idout_edge_idstateturn_type
404421063321A6519824513731gGGGrrrrrrgrrgrrrrrrrrgrrrrstraight
414421063321B1519824513726grrrrGGrrrgrrgrrrrrrrrgrrrrleft
424421063322A6519824513731gGGGrrrrrrgrrgrrrrrrrrgrrrrstraight
434421063322B2513732513728grrrrrrrrrgrrgrGGGGGrrgrrrrstraight
444421063323A5513732513729grrrrrrrrrgrrgrrrrrrGGgrrrrleft
454421063323B2513732513728grrrrrrrrrgrrgrGGGGGrrgrrrrstraight
464421063324A7513730513728grrrrrrrrrgrrgrrrrrrrrgrrrGleft
474421063324B4513730513726grrrrrrrrrgrrgrrrrrrrrgGGGrstraight
484421063325A8513727513729grrrrrrGGrgrrgrrrrrrrrgrrrrstraight
494421063325B3513727513731grrrrrrrrGgrrgrrrrrrrrgrrrrleft
504421063326A8513727513729grrrrrrGGrgrrgrrrrrrrrgrrrrstraight
514421063326B3513727513731grrrrrrrrGgrrgrrrrrrrrgrrrrleft
\n", + "
" + ], + "text/plain": [ + " inter_no node_id phase_no ring_type move_no inc_edge_id out_edge_id \\\n", + "40 442 106332 1 A 6 519824 513731 \n", + "41 442 106332 1 B 1 519824 513726 \n", + "42 442 106332 2 A 6 519824 513731 \n", + "43 442 106332 2 B 2 513732 513728 \n", + "44 442 106332 3 A 5 513732 513729 \n", + "45 442 106332 3 B 2 513732 513728 \n", + "46 442 106332 4 A 7 513730 513728 \n", + "47 442 106332 4 B 4 513730 513726 \n", + "48 442 106332 5 A 8 513727 513729 \n", + "49 442 106332 5 B 3 513727 513731 \n", + "50 442 106332 6 A 8 513727 513729 \n", + "51 442 106332 6 B 3 513727 513731 \n", + "\n", + " state turn_type \n", + "40 gGGGrrrrrrgrrgrrrrrrrrgrrrr straight \n", + "41 grrrrGGrrrgrrgrrrrrrrrgrrrr left \n", + "42 gGGGrrrrrrgrrgrrrrrrrrgrrrr straight \n", + "43 grrrrrrrrrgrrgrGGGGGrrgrrrr straight \n", + "44 grrrrrrrrrgrrgrrrrrrGGgrrrr left \n", + "45 grrrrrrrrrgrrgrGGGGGrrgrrrr straight \n", + "46 grrrrrrrrrgrrgrrrrrrrrgrrrG left \n", + "47 grrrrrrrrrgrrgrrrrrrrrgGGGr straight \n", + "48 grrrrrrGGrgrrgrrrrrrrrgrrrr straight \n", + "49 grrrrrrrrGgrrgrrrrrrrrgrrrr left \n", + "50 grrrrrrGGrgrrgrrrrrrrrgrrrr straight \n", + "51 grrrrrrrrGgrrgrrrrrrrrgrrrr left " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nonode_idphase_noring_typemove_noinc_edge_idout_edge_idstateturn_type
324381063501A6513817513811grrGGGGrrrrrstraight
334381063501B2513810513816grrrrrrGGGGrstraight
344381063502A5513810513793grrrrrrrrrrGleft
354381063502B1513817513816grrrrrrrrrrrNaN
364381063503A8513817513793grGrrrrrrrrrNaN
374381063503B3513817513811grrGGGGrrrrrstraight
384381063504A7513792513816gGrrrrrrrrrrleft
394381063504B4513792513816gGrrrrrrrrrrleft
\n", + "
" + ], + "text/plain": [ + " inter_no node_id phase_no ring_type move_no inc_edge_id out_edge_id \\\n", + "32 438 106350 1 A 6 513817 513811 \n", + "33 438 106350 1 B 2 513810 513816 \n", + "34 438 106350 2 A 5 513810 513793 \n", + "35 438 106350 2 B 1 513817 513816 \n", + "36 438 106350 3 A 8 513817 513793 \n", + "37 438 106350 3 B 3 513817 513811 \n", + "38 438 106350 4 A 7 513792 513816 \n", + "39 438 106350 4 B 4 513792 513816 \n", + "\n", + " state turn_type \n", + "32 grrGGGGrrrrr straight \n", + "33 grrrrrrGGGGr straight \n", + "34 grrrrrrrrrrG left \n", + "35 grrrrrrrrrrr NaN \n", + "36 grGrrrrrrrrr NaN \n", + "37 grrGGGGrrrrr straight \n", + "38 gGrrrrrrrrrr left \n", + "39 gGrrrrrrrrrr left " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nonode_idphase_noring_typemove_noinc_edge_idout_edge_idstateturn_type
84371075871A6NoneNoneGGGGrstraight
94371075871B2NoneNoneGGGGrstraight
104371075872A5NoneNoneGGGGrleft
114371075872B1516929517055GGGGGleft
124371075873A8NoneNoneGGGGrstraight
134371075873B3NoneNoneGGGGrleft
144371075874A7NoneNoneGGGGrleft
154371075874B4NoneNoneGGGGrstraight
\n", + "
" + ], + "text/plain": [ + " inter_no node_id phase_no ring_type move_no inc_edge_id out_edge_id \\\n", + "8 437 107587 1 A 6 None None \n", + "9 437 107587 1 B 2 None None \n", + "10 437 107587 2 A 5 None None \n", + "11 437 107587 2 B 1 516929 517055 \n", + "12 437 107587 3 A 8 None None \n", + "13 437 107587 3 B 3 None None \n", + "14 437 107587 4 A 7 None None \n", + "15 437 107587 4 B 4 None None \n", + "\n", + " state turn_type \n", + "8 GGGGr straight \n", + "9 GGGGr straight \n", + "10 GGGGr left \n", + "11 GGGGG left \n", + "12 GGGGr straight \n", + "13 GGGGr left \n", + "14 GGGGr left \n", + "15 GGGGr straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nonode_idphase_noring_typemove_noinc_edge_idout_edge_idstateturn_type
524431087691A6516916513863gGGGGGrrrrrrgrrstraight
534431087691B2513862516917grrrrrGGGGGrgrrstraight
544431087692A5513862518550grrrrrrrrrrGgrrleft
554431087692B2513862516917grrrrrGGGGGrgrrstraight
564431087693A7518549516917grrrrrrrrrrrgGGleft
574431087693B18NaNNaNgrrrrrrrrrrrgrrNaN
\n", + "
" + ], + "text/plain": [ + " inter_no node_id phase_no ring_type move_no inc_edge_id out_edge_id \\\n", + "52 443 108769 1 A 6 516916 513863 \n", + "53 443 108769 1 B 2 513862 516917 \n", + "54 443 108769 2 A 5 513862 518550 \n", + "55 443 108769 2 B 2 513862 516917 \n", + "56 443 108769 3 A 7 518549 516917 \n", + "57 443 108769 3 B 18 NaN NaN \n", + "\n", + " state turn_type \n", + "52 gGGGGGrrrrrrgrr straight \n", + "53 grrrrrGGGGGrgrr straight \n", + "54 grrrrrrrrrrGgrr left \n", + "55 grrrrrGGGGGrgrr straight \n", + "56 grrrrrrrrrrrgGG left \n", + "57 grrrrrrrrrrrgrr NaN " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nonode_idphase_noring_typemove_noinc_edge_idout_edge_idstateturn_type
744561092951A5519797519796GGGGGGGGleft
754561092951B2NoneNoneGGGGGGrrstraight
764561092952A6NoneNoneGGGGGGrrstraight
774561092952B2NoneNoneGGGGGGrrstraight
784561092953A7NoneNoneGGGGGGrrleft
794561092953B7NoneNoneGGGGGGrrleft
804561092954A17NoneNoneGGGGGGrrNaN
814561092954B17NoneNoneGGGGGGrrNaN
\n", + "
" + ], + "text/plain": [ + " inter_no node_id phase_no ring_type move_no inc_edge_id out_edge_id \\\n", + "74 456 109295 1 A 5 519797 519796 \n", + "75 456 109295 1 B 2 None None \n", + "76 456 109295 2 A 6 None None \n", + "77 456 109295 2 B 2 None None \n", + "78 456 109295 3 A 7 None None \n", + "79 456 109295 3 B 7 None None \n", + "80 456 109295 4 A 17 None None \n", + "81 456 109295 4 B 17 None None \n", + "\n", + " state turn_type \n", + "74 GGGGGGGG left \n", + "75 GGGGGGrr straight \n", + "76 GGGGGGrr straight \n", + "77 GGGGGGrr straight \n", + "78 GGGGGGrr left \n", + "79 GGGGGGrr left \n", + "80 GGGGGGrr NaN \n", + "81 GGGGGGrr NaN " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nonode_idphase_noring_typemove_noinc_edge_idout_edge_idstateturn_type
924571092961A6NoneNoneGGGrrGGGstraight
934571092961B2NoneNoneGGGrrGGGstraight
944571092962A5NoneNoneGGGrrGGGleft
954571092962B1519799519798GGGGGGGGleft
964571092963A17NoneNoneGGGrrGGGNaN
974571092963B17NoneNoneGGGrrGGGNaN
984571092964A8NoneNoneGGGrrGGGstraight
994571092964B3NoneNoneGGGrrGGGleft
1004571092965A7NoneNoneGGGrrGGGleft
1014571092965B4NoneNoneGGGrrGGGstraight
\n", + "
" + ], + "text/plain": [ + " inter_no node_id phase_no ring_type move_no inc_edge_id out_edge_id \\\n", + "92 457 109296 1 A 6 None None \n", + "93 457 109296 1 B 2 None None \n", + "94 457 109296 2 A 5 None None \n", + "95 457 109296 2 B 1 519799 519798 \n", + "96 457 109296 3 A 17 None None \n", + "97 457 109296 3 B 17 None None \n", + "98 457 109296 4 A 8 None None \n", + "99 457 109296 4 B 3 None None \n", + "100 457 109296 5 A 7 None None \n", + "101 457 109296 5 B 4 None None \n", + "\n", + " state turn_type \n", + "92 GGGrrGGG straight \n", + "93 GGGrrGGG straight \n", + "94 GGGrrGGG left \n", + "95 GGGGGGGG left \n", + "96 GGGrrGGG NaN \n", + "97 GGGrrGGG NaN \n", + "98 GGGrrGGG straight \n", + "99 GGGrrGGG left \n", + "100 GGGrrGGG left \n", + "101 GGGrrGGG straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nonode_idphase_noring_typemove_noinc_edge_idout_edge_idstateturn_type
1024571092971A6NoneNoneGGGGGGrrstraight
1034571092971B2NoneNoneGGGGGGrrstraight
1044571092972A5519801519800GGGGGGGGleft
1054571092972B1NoneNoneGGGGGGrrleft
1064571092973A17NoneNoneGGGGGGrrNaN
1074571092973B17NoneNoneGGGGGGrrNaN
1084571092974A8NoneNoneGGGGGGrrstraight
1094571092974B3NoneNoneGGGGGGrrleft
1104571092975A7NoneNoneGGGGGGrrleft
1114571092975B4NoneNoneGGGGGGrrstraight
\n", + "
" + ], + "text/plain": [ + " inter_no node_id phase_no ring_type move_no inc_edge_id out_edge_id \\\n", + "102 457 109297 1 A 6 None None \n", + "103 457 109297 1 B 2 None None \n", + "104 457 109297 2 A 5 519801 519800 \n", + "105 457 109297 2 B 1 None None \n", + "106 457 109297 3 A 17 None None \n", + "107 457 109297 3 B 17 None None \n", + "108 457 109297 4 A 8 None None \n", + "109 457 109297 4 B 3 None None \n", + "110 457 109297 5 A 7 None None \n", + "111 457 109297 5 B 4 None None \n", + "\n", + " state turn_type \n", + "102 GGGGGGrr straight \n", + "103 GGGGGGrr straight \n", + "104 GGGGGGGG left \n", + "105 GGGGGGrr left \n", + "106 GGGGGGrr NaN \n", + "107 GGGGGGrr NaN \n", + "108 GGGGGGrr straight \n", + "109 GGGGGGrr left \n", + "110 GGGGGGrr left \n", + "111 GGGGGGrr straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nonode_idphase_noring_typemove_noinc_edge_idout_edge_idstateturn_type
164371093131A6NoneNoneGGGGGGGGrstraight
174371093131B2NoneNoneGGGGGGGGrstraight
184371093132A5519834519833GGGGGGGGGleft
194371093132B1NoneNoneGGGGGGGGrleft
204371093133A8NoneNoneGGGGGGGGrstraight
214371093133B3NoneNoneGGGGGGGGrleft
224371093134A7NoneNoneGGGGGGGGrleft
234371093134B4NoneNoneGGGGGGGGrstraight
\n", + "
" + ], + "text/plain": [ + " inter_no node_id phase_no ring_type move_no inc_edge_id out_edge_id \\\n", + "16 437 109313 1 A 6 None None \n", + "17 437 109313 1 B 2 None None \n", + "18 437 109313 2 A 5 519834 519833 \n", + "19 437 109313 2 B 1 None None \n", + "20 437 109313 3 A 8 None None \n", + "21 437 109313 3 B 3 None None \n", + "22 437 109313 4 A 7 None None \n", + "23 437 109313 4 B 4 None None \n", + "\n", + " state turn_type \n", + "16 GGGGGGGGr straight \n", + "17 GGGGGGGGr straight \n", + "18 GGGGGGGGG left \n", + "19 GGGGGGGGr left \n", + "20 GGGGGGGGr straight \n", + "21 GGGGGGGGr left \n", + "22 GGGGGGGGr left \n", + "23 GGGGGGGGr straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nonode_idphase_noring_typemove_noinc_edge_idout_edge_idstateturn_type
584431093331A6NoneNoneGGGGGGGGGGGrstraight
594431093331B2NoneNoneGGGGGGGGGGGrstraight
604431093332A5519873519874GGGGGGGGGGGGleft
614431093332B2NoneNoneGGGGGGGGGGGrstraight
624431093333A7NoneNoneGGGGGGGGGGGrleft
634431093333B18NoneNoneGGGGGGGGGGGrNaN
\n", + "
" + ], + "text/plain": [ + " inter_no node_id phase_no ring_type move_no inc_edge_id out_edge_id \\\n", + "58 443 109333 1 A 6 None None \n", + "59 443 109333 1 B 2 None None \n", + "60 443 109333 2 A 5 519873 519874 \n", + "61 443 109333 2 B 2 None None \n", + "62 443 109333 3 A 7 None None \n", + "63 443 109333 3 B 18 None None \n", + "\n", + " state turn_type \n", + "58 GGGGGGGGGGGr straight \n", + "59 GGGGGGGGGGGr straight \n", + "60 GGGGGGGGGGGG left \n", + "61 GGGGGGGGGGGr straight \n", + "62 GGGGGGGGGGGr left \n", + "63 GGGGGGGGGGGr NaN " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nonode_idphase_noring_typemove_noinc_edge_idout_edge_idstateturn_type
04361098361A5517505517507grrrrgrrgrGgrrleft
14361098361B2517505517004grrrrgrrgGrgrrstraight
24361098362A8517509517507grrrrgGrgrrgrrstraight
34361098362B3517509517504grrrrgrGgrrgrrleft
44361098363A7517002517004grrrrgrrgrrgrGleft
54361098363B4517002517506grrrrgrrgrrgGrstraight
64361098364A6517003517504gGGGrgrrgrrgrrstraight
74361098364B1517003517506grrrGgrrgrrgrrleft
\n", + "
" + ], + "text/plain": [ + " inter_no node_id phase_no ring_type move_no inc_edge_id out_edge_id \\\n", + "0 436 109836 1 A 5 517505 517507 \n", + "1 436 109836 1 B 2 517505 517004 \n", + "2 436 109836 2 A 8 517509 517507 \n", + "3 436 109836 2 B 3 517509 517504 \n", + "4 436 109836 3 A 7 517002 517004 \n", + "5 436 109836 3 B 4 517002 517506 \n", + "6 436 109836 4 A 6 517003 517504 \n", + "7 436 109836 4 B 1 517003 517506 \n", + "\n", + " state turn_type \n", + "0 grrrrgrrgrGgrr left \n", + "1 grrrrgrrgGrgrr straight \n", + "2 grrrrgGrgrrgrr straight \n", + "3 grrrrgrGgrrgrr left \n", + "4 grrrrgrrgrrgrG left \n", + "5 grrrrgrrgrrgGr straight \n", + "6 gGGGrgrrgrrgrr straight \n", + "7 grrrGgrrgrrgrr left " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nonode_idphase_noring_typemove_noinc_edge_idout_edge_idstateturn_type
644551099011A6513580513581GGrrstraight
654551099011B2513582513584rrGGstraight
\n", + "
" + ], + "text/plain": [ + " inter_no node_id phase_no ring_type move_no inc_edge_id out_edge_id \\\n", + "64 455 109901 1 A 6 513580 513581 \n", + "65 455 109901 1 B 2 513582 513584 \n", + "\n", + " state turn_type \n", + "64 GGrr straight \n", + "65 rrGG straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nonode_idphase_noring_typemove_noinc_edge_idout_edge_idstateturn_type
244371099861A6517054513840gGGGGrgrrgrrrrrgrrstraight
254371099861B2513841512766grrrrrgrrgGGGGrgrrstraight
264371099862A5513841513786grrrrrgrrgrrrrGgrrleft
274371099862B1517054513842grrrrGgrrgrrrrrgrrleft
284371099863A8513843513786grrrrrgGrgrrrrrgrrstraight
294371099863B3513843513840grrrrrgrGgrrrrrgrrleft
304371099864A7513785512766grrrrrgrrgrrrrrgrGleft
314371099864B4513785513842grrrrrgrrgrrrrrgGrstraight
\n", + "
" + ], + "text/plain": [ + " inter_no node_id phase_no ring_type move_no inc_edge_id out_edge_id \\\n", + "24 437 109986 1 A 6 517054 513840 \n", + "25 437 109986 1 B 2 513841 512766 \n", + "26 437 109986 2 A 5 513841 513786 \n", + "27 437 109986 2 B 1 517054 513842 \n", + "28 437 109986 3 A 8 513843 513786 \n", + "29 437 109986 3 B 3 513843 513840 \n", + "30 437 109986 4 A 7 513785 512766 \n", + "31 437 109986 4 B 4 513785 513842 \n", + "\n", + " state turn_type \n", + "24 gGGGGrgrrgrrrrrgrr straight \n", + "25 grrrrrgrrgGGGGrgrr straight \n", + "26 grrrrrgrrgrrrrGgrr left \n", + "27 grrrrGgrrgrrrrrgrr left \n", + "28 grrrrrgGrgrrrrrgrr straight \n", + "29 grrrrrgrGgrrrrrgrr left \n", + "30 grrrrrgrrgrrrrrgrG left \n", + "31 grrrrrgrrgrrrrrgGr straight " + ] + }, + "metadata": {}, + "output_type": "display_data" } ], + "source": [ + "# all red 검증\n", + "for node_id, group in self.match6.groupby('node_id'):\n", + " state_length = len(group.iloc[0].state)\n", + " consistent_length = all([len(state)==state_length for state in group.state])\n", + " if not consistent_length:\n", + " print(f\"node_id : {node_id}에 대하여 state 길이가 일정하지 않습니다.\")\n", + " any_non_red_indices = set()\n", + " for state in group.state:\n", + " state = list(state)\n", + " any_non_red_indices.update({index for index, char in enumerate(state) if not char == 'r'})\n", + " all_red_indices = set(range(state_length)) - any_non_red_indices\n", + " all_red_state = ['g'] * state_length\n", + " for ind in all_red_indices:\n", + " all_red_state[ind] = 'r'\n", + " all_red_state = ''.join(all_red_state)\n", + " if all_red_indices:\n", + " print(node_id)\n", + " print(f'all_red_indices : {all_red_indices}')\n", + " print(f'all_red_state : {all_red_state}')\n", + " display(group)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "enode_id = '106332' # errornous node_id" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "self.make_match1()\n", + "self.make_match2()\n", + "self.make_match3()\n", + "self.make_match4()\n", + "self.make_match5()\n", + "self.make_match6()\n", + "self.match6" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# 2. 중간산출물 만들기\n", + "self.get_intermediates()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# 3. 이슈사항 저장\n", "self.write_issues()" diff --git a/analysis/0725_main_test/6_use_class_gs.ipynb b/analysis/0725_main_test/6_use_class_gs.ipynb index c5db65261..67eb25066 100644 --- a/analysis/0725_main_test/6_use_class_gs.ipynb +++ b/analysis/0725_main_test/6_use_class_gs.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 46, "metadata": {}, "outputs": [], "source": [ @@ -20,7 +20,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 47, "metadata": {}, "outputs": [], "source": [ @@ -33,7 +33,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 48, "metadata": {}, "outputs": [ { @@ -55,7 +55,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 49, "metadata": {}, "outputs": [ { @@ -72,7 +72,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 50, "metadata": {}, "outputs": [ { @@ -91,7 +91,27 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1722384300" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "self.present_time" + ] + }, + { + "cell_type": "code", + "execution_count": 52, "metadata": {}, "outputs": [ { @@ -257,7 +277,7 @@ "[11100 rows x 7 columns]" ] }, - "execution_count": 4, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" } @@ -282,7 +302,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 53, "metadata": {}, "outputs": [], "source": [ @@ -291,7 +311,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 54, "metadata": {}, "outputs": [ { @@ -316,7 +336,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 55, "metadata": {}, "outputs": [ { @@ -710,7 +730,7 @@ "8 457 3 3 0 17 17 1722384232" ] }, - "execution_count": 7, + "execution_count": 55, "metadata": {}, "output_type": "execute_result" } @@ -756,7 +776,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 56, "metadata": {}, "outputs": [ { @@ -792,7 +812,7 @@ " \n", " \n", " 0\n", - " 1722416326\n", + " 1722383926\n", " 436\n", " 2\n", " 2\n", @@ -802,7 +822,7 @@ " \n", " \n", " 1\n", - " 1722416326\n", + " 1722383926\n", " 437\n", " 3\n", " 3\n", @@ -812,7 +832,7 @@ " \n", " \n", " 2\n", - " 1722416326\n", + " 1722383926\n", " 438\n", " 1\n", " 1\n", @@ -822,7 +842,7 @@ " \n", " \n", " 3\n", - " 1722416326\n", + " 1722383926\n", " 442\n", " 1\n", " 1\n", @@ -832,7 +852,7 @@ " \n", " \n", " 4\n", - " 1722416326\n", + " 1722383926\n", " 443\n", " 1\n", " 1\n", @@ -852,7 +872,7 @@ " \n", " \n", " 11095\n", - " 1722417443\n", + " 1722385043\n", " 444\n", " 4\n", " 4\n", @@ -862,7 +882,7 @@ " \n", " \n", " 11096\n", - " 1722417443\n", + " 1722385043\n", " 455\n", " 2\n", " 2\n", @@ -872,7 +892,7 @@ " \n", " \n", " 11097\n", - " 1722417443\n", + " 1722385043\n", " 456\n", " 4\n", " 4\n", @@ -882,7 +902,7 @@ " \n", " \n", " 11098\n", - " 1722417443\n", + " 1722385043\n", " 457\n", " 3\n", " 3\n", @@ -892,7 +912,7 @@ " \n", " \n", " 11099\n", - " 1722417443\n", + " 1722385043\n", " 458\n", " 2\n", " 2\n", @@ -907,22 +927,22 @@ ], "text/plain": [ " start_unix inter_no phas_A phas_B STOS_NO move_A move_B\n", - "0 1722416326 436 2 2 0 8 3\n", - "1 1722416326 437 3 3 0 8 3\n", - "2 1722416326 438 1 1 0 6 2\n", - "3 1722416326 442 1 1 0 6 1\n", - "4 1722416326 443 1 1 0 6 2\n", + "0 1722383926 436 2 2 0 8 3\n", + "1 1722383926 437 3 3 0 8 3\n", + "2 1722383926 438 1 1 0 6 2\n", + "3 1722383926 442 1 1 0 6 1\n", + "4 1722383926 443 1 1 0 6 2\n", "... ... ... ... ... ... ... ...\n", - "11095 1722417443 444 4 4 0 -1 -1\n", - "11096 1722417443 455 2 2 0 -1 -1\n", - "11097 1722417443 456 4 4 0 17 -1\n", - "11098 1722417443 457 3 3 0 17 17\n", - "11099 1722417443 458 2 2 0 17 17\n", + "11095 1722385043 444 4 4 0 -1 -1\n", + "11096 1722385043 455 2 2 0 -1 -1\n", + "11097 1722385043 456 4 4 0 17 -1\n", + "11098 1722385043 457 3 3 0 17 17\n", + "11099 1722385043 458 2 2 0 17 17\n", "\n", "[11100 rows x 7 columns]" ] }, - "execution_count": 7, + "execution_count": 56, "metadata": {}, "output_type": "execute_result" } @@ -933,7 +953,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 57, "metadata": {}, "outputs": [], "source": [ @@ -956,7 +976,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 58, "metadata": {}, "outputs": [ { @@ -1792,7 +1812,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 59, "metadata": {}, "outputs": [ { @@ -1958,9 +1978,8 @@ "[11100 rows x 7 columns]" ] }, - "execution_count": 6, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ @@ -1969,9 +1988,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 60, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3. 이동류정보 테이블을 변환합니다.\n", + "4. 통합 테이블을 생성합니다.\n", + "5. 신호를 생성합니다.\n" + ] + } + ], "source": [ "self.process_movement()\n", "self.make_histids()\n", @@ -1980,9 +2009,185 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 61, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "원본 DataFrame:\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ABC
01.0NaN1.0
12.02.0NaN
2NaN3.0NaN
34.0NaN4.0
4NaN5.05.0
56.06.06.0
\n", + "
" + ], + "text/plain": [ + " A B C\n", + "0 1.0 NaN 1.0\n", + "1 2.0 2.0 NaN\n", + "2 NaN 3.0 NaN\n", + "3 4.0 NaN 4.0\n", + "4 NaN 5.0 5.0\n", + "5 6.0 6.0 6.0" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "결측값을 앞의 값으로 채운 DataFrame:\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ABC
01.0NaN1.0
12.02.01.0
22.03.01.0
34.03.04.0
44.05.05.0
56.06.06.0
\n", + "
" + ], + "text/plain": [ + " A B C\n", + "0 1.0 NaN 1.0\n", + "1 2.0 2.0 1.0\n", + "2 2.0 3.0 1.0\n", + "3 4.0 3.0 4.0\n", + "4 4.0 5.0 5.0\n", + "5 6.0 6.0 6.0" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "import pandas as pd\n", "import numpy as np\n", @@ -2008,9 +2213,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 62, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-07-29 09:36:32\n", + "1722213392\n", + "2024-07-29 09:36:32\n" + ] + } + ], "source": [ "time_str = '2024-07-29 9:36:32'\n", "time_dt = datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')\n", @@ -2022,7 +2237,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 63, "metadata": {}, "outputs": [], "source": [ @@ -2035,27 +2250,55 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 64, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1-1. 네트워크가 로드되었습니다.\n" + ] + } + ], "source": [ "self.load_networks()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 65, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1-2. 테이블들이 로드되었습니다.\n" + ] + } + ], "source": [ "self.load_tables()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 66, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1722383967\n", + "1722385038\n", + "1722384300\n", + "1722351600\n", + "1722438000\n" + ] + } + ], "source": [ "print(self.history.end_unix.min())\n", "print(self.history.end_unix.max())\n", @@ -2066,7 +2309,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 67, "metadata": {}, "outputs": [], "source": [ @@ -2086,16 +2329,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 68, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1-5. 필요한 보조 객체들이 모두 준비되었습니다.\n" + ] + } + ], "source": [ "self.prepare_auxiliaries()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 69, "metadata": {}, "outputs": [], "source": [ @@ -2125,18 +2376,47 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 70, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[436, 437, 442, 443, 455, 456, 457]" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sorted(inter_no for inter_no in set(self.history.inter_no))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 71, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2. 신호이력 테이블을 변환합니다.\n" + ] + }, + { + "data": { + "text/plain": [ + "[436, 437, 442, 443, 455, 456, 457]" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "self.process_history()\n", "sorted(inter_no for inter_no in set(self.rhistory.inter_no))" @@ -2144,27 +2424,67 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 72, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[436, 437, 442, 443, 455, 456, 457]" + ] + }, + "execution_count": 72, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sorted(inter_no for inter_no in set(self.rhists.inter_no))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 73, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[436, 437, 442, 443, 455, 456, 457]" + ] + }, + "execution_count": 73, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sorted(inter_no for inter_no in set(self.hrhists.inter_no))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 74, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3. 이동류정보 테이블을 변환합니다.\n" + ] + }, + { + "data": { + "text/plain": [ + "[436, 437, 442, 443, 455, 456, 457]" + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "self.process_movement()\n", "sorted(inter_no for inter_no in set(self.movement.inter_no))" @@ -2172,76 +2492,626 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 75, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4. 통합 테이블을 생성합니다.\n" + ] + } + ], "source": [ "self.make_histids()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 76, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[436, 437, 442, 443, 455, 456, 457]" + ] + }, + "execution_count": 76, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sorted(inter_no for inter_no in set(self.movement_updated.inter_no))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 77, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[436, 437, 442, 443, 455, 456, 457]" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sorted(inter_no for inter_no in set(self.movedur.inter_no))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 78, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[436, 437, 442, 443, 455, 456, 457]" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sorted(inter_no for inter_no in set(self.histid.inter_no))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 79, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "['106231', '106234', '106332', '108769', '109836', '109901', '109986']" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sorted(node_id for node_id in set(self.histid.node_id))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 80, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[436, 437, 442, 443, 455, 456, 457]" + ] + }, + "execution_count": 80, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sorted(inter_no for inter_no in set(self.histids.inter_no))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 81, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "['106231',\n", + " '106234',\n", + " '106332',\n", + " '107587',\n", + " '108769',\n", + " '109295',\n", + " '109296',\n", + " '109297',\n", + " '109313',\n", + " '109333',\n", + " '109836',\n", + " '109901',\n", + " '109986']" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sorted(node_id for node_id in set(self.histids.node_id))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_B
04571062341722383873116245gGGGrgrrrrgrrrrgrrrgrrrrgrrrrgGGGrgrrr
14571062341722383873225120grrrrgrrrrgrrrGgrrrgrrrGgrrrrgrrrrgrrr
2457106234172238387333171740grrrrgrrrrgrrrrgrrrgrrrrgrrrrgrrrrgrrr
34571062341722383873448335grrrrgGGrrgrrrrgrrrgrrrrgrrGGgrrrrgrrr
44571062341722383873557440grrrrgrrrrgrrrrgrrGgrrrrgrrrrgrrrrgGGr
.................................
29044310933317223847003371849GGGGGGGGGGGrGGGGGGGGGGGr
2914371099861722384700116271gGGGGrgrrgrrrrrgrrgrrrrrgrrgGGGGrgrr
2924371099861722384700225128grrrrrgrrgrrrrGgrrgrrrrGgrrgrrrrrgrr
2934371099861722384700338358grrrrrgGrgrrrrrgrrgrrrrrgrGgrrrrrgrr
2944371099861722384700447443grrrrrgrrgrrrrrgrGgrrrrrgrrgrrrrrgGr
\n", + "

295 rows × 10 columns

\n", + "
" + ], + "text/plain": [ + " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", + "0 457 106234 1722383873 1 1 6 2 45 \n", + "1 457 106234 1722383873 2 2 5 1 20 \n", + "2 457 106234 1722383873 3 3 17 17 40 \n", + "3 457 106234 1722383873 4 4 8 3 35 \n", + "4 457 106234 1722383873 5 5 7 4 40 \n", + ".. ... ... ... ... ... ... ... ... \n", + "290 443 109333 1722384700 3 3 7 18 49 \n", + "291 437 109986 1722384700 1 1 6 2 71 \n", + "292 437 109986 1722384700 2 2 5 1 28 \n", + "293 437 109986 1722384700 3 3 8 3 58 \n", + "294 437 109986 1722384700 4 4 7 4 43 \n", + "\n", + " state_A state_B \n", + "0 gGGGrgrrrrgrrrrgrrr grrrrgrrrrgGGGrgrrr \n", + "1 grrrrgrrrrgrrrGgrrr grrrGgrrrrgrrrrgrrr \n", + "2 grrrrgrrrrgrrrrgrrr grrrrgrrrrgrrrrgrrr \n", + "3 grrrrgGGrrgrrrrgrrr grrrrgrrGGgrrrrgrrr \n", + "4 grrrrgrrrrgrrrrgrrG grrrrgrrrrgrrrrgGGr \n", + ".. ... ... \n", + "290 GGGGGGGGGGGr GGGGGGGGGGGr \n", + "291 gGGGGrgrrgrrrrrgrr grrrrrgrrgGGGGrgrr \n", + "292 grrrrrgrrgrrrrGgrr grrrrGgrrgrrrrrgrr \n", + "293 grrrrrgGrgrrrrrgrr grrrrrgrGgrrrrrgrr \n", + "294 grrrrrgrrgrrrrrgrG grrrrrgrrgrrrrrgGr \n", + "\n", + "[295 rows x 10 columns]" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "self.histids" + ] + }, + { + "cell_type": "code", + "execution_count": 83, "metadata": {}, "outputs": [], "source": [ "self.set_timepoints()" ] }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
04561062311722383968115215grgrrrrGgrgrrGGr0
14561062311722383968226228grgGGrrrgrgrrGGr1
24561062311722383968337712gGgrrrrrgGgrrrrr2
3456106231172238396844171735grgrrrrrgrgrrrrr3
44561062311722384057115215grgrrrrGgrgrrGGr0
....................................
1534371099861722384007447449grrrrrgrrgrrrrrgrGgrrrrrgrrgrrrrrgGr3
1544371099861722384700116271gGGGGrgrrgrrrrrgrrgrrrrrgrrgGGGGrgrr0
1554371099861722384700225128grrrrrgrrgrrrrGgrrgrrrrGgrrgrrrrrgrr1
1564371099861722384700338358grrrrrgGrgrrrrrgrrgrrrrrgrGgrrrrrgrr2
1574371099861722384700447443grrrrrgrrgrrrrrgrGgrrrrrgrrgrrrrrgGr3
\n", + "

158 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", + "0 456 106231 1722383968 1 1 5 2 15 \n", + "1 456 106231 1722383968 2 2 6 2 28 \n", + "2 456 106231 1722383968 3 3 7 7 12 \n", + "3 456 106231 1722383968 4 4 17 17 35 \n", + "4 456 106231 1722384057 1 1 5 2 15 \n", + ".. ... ... ... ... ... ... ... ... \n", + "153 437 109986 1722384007 4 4 7 4 49 \n", + "154 437 109986 1722384700 1 1 6 2 71 \n", + "155 437 109986 1722384700 2 2 5 1 28 \n", + "156 437 109986 1722384700 3 3 8 3 58 \n", + "157 437 109986 1722384700 4 4 7 4 43 \n", + "\n", + " state_A state_B phase_sumo \n", + "0 grgrrrrG grgrrGGr 0 \n", + "1 grgGGrrr grgrrGGr 1 \n", + "2 gGgrrrrr gGgrrrrr 2 \n", + "3 grgrrrrr grgrrrrr 3 \n", + "4 grgrrrrG grgrrGGr 0 \n", + ".. ... ... ... \n", + "153 grrrrrgrrgrrrrrgrG grrrrrgrrgrrrrrgGr 3 \n", + "154 gGGGGrgrrgrrrrrgrr grrrrrgrrgGGGGrgrr 0 \n", + "155 grrrrrgrrgrrrrGgrr grrrrGgrrgrrrrrgrr 1 \n", + "156 grrrrrgGrgrrrrrgrr grrrrrgrGgrrrrrgrr 2 \n", + "157 grrrrrgrrgrrrrrgrG grrrrrgrrgrrrrrgGr 3 \n", + "\n", + "[158 rows x 11 columns]" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "self.sigtable" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/analysis/0801_check_tll/__pycache__/data_check.cpython-312.pyc b/analysis/0801_check_tll/__pycache__/data_check.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ecac6dea9a51d1e0f1aaf1a89449a83f69211955 GIT binary patch literal 5319 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 f9V(EH8Pc62-BNY)\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
node_idindexdurationstate
0106231011grgrrGGG
110623114grgrrGGy
2106231224grgGGGGr
310623134grgyyyyr
410623148gGgrrrrr
...............
250109986867gGGGGrgrrgGGGGrgrr
25110998694gyyyyrgrrgyyyyrgrr
2521099861024grrrrGgrrgrrrrGgrr
253109986114grrrrygrrgrrrrygrr
2541099861254grrrrrgGGgrrrrrgrr
\n", + "

255 rows × 4 columns

\n", + "" + ], + "text/plain": [ + " node_id index duration state\n", + "0 106231 0 11 grgrrGGG\n", + "1 106231 1 4 grgrrGGy\n", + "2 106231 2 24 grgGGGGr\n", + "3 106231 3 4 grgyyyyr\n", + "4 106231 4 8 gGgrrrrr\n", + ".. ... ... ... ...\n", + "250 109986 8 67 gGGGGrgrrgGGGGrgrr\n", + "251 109986 9 4 gyyyyrgrrgyyyyrgrr\n", + "252 109986 10 24 grrrrGgrrgrrrrGgrr\n", + "253 109986 11 4 grrrrygrrgrrrrygrr\n", + "254 109986 12 54 grrrrrgGGgrrrrrgrr\n", + "\n", + "[255 rows x 4 columns]" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tllogics = []\n", + "for value in sumolib.xml.parse(path_add, 'tlLogic'):\n", + " node_id = value.id\n", + " program_id = value.programID\n", + " # print(tllogic_id, program_id)\n", + " # print(value)\n", + " for i, phase in enumerate(value.phase):\n", + " row = pd.DataFrame({\n", + " 'node_id' : [node_id],\n", + " # 'program_id' : [program_id],\n", + " 'index' : [i],\n", + " 'duration' : [phase.duration],\n", + " 'state' : [phase.state]\n", + " })\n", + " # display(row)\n", + " tllogics.append(row)\n", + "tllogics = pd.concat(tllogics).reset_index(drop=True)\n", + "tllogics" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "13\n" + ] + } + ], + "source": [ + "node_ids = tllogics.node_id.unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "node_id : 106231\n", + "state의 길이의 일정 여부 : True\n", + "\n", + "node_id : 106234\n", + "state의 길이의 일정 여부 : True\n", + "\n", + "node_id : 106332\n", + "state의 길이의 일정 여부 : True\n", + "모두 r인 인덱스 : ggggrggggggrrgrgggggggggggg\n", + "\n", + "node_id : 107587\n", + "state의 길이의 일정 여부 : True\n", + "\n", + "node_id : 108769\n", + "state의 길이의 일정 여부 : True\n", + "\n", + "node_id : 109295\n", + "state의 길이의 일정 여부 : True\n", + "\n", + "node_id : 109296\n", + "state의 길이의 일정 여부 : True\n", + "\n", + "node_id : 109297\n", + "state의 길이의 일정 여부 : True\n", + "\n", + "node_id : 109313\n", + "state의 길이의 일정 여부 : True\n", + "\n", + "node_id : 109333\n", + "state의 길이의 일정 여부 : True\n", + "\n", + "node_id : 109836\n", + "state의 길이의 일정 여부 : True\n", + "\n", + "node_id : 109901\n", + "state의 길이의 일정 여부 : True\n", + "\n", + "node_id : 109986\n", + "state의 길이의 일정 여부 : True\n", + "\n" + ] + } + ], + "source": [ + "for node_id in tllogics.node_id.unique():\n", + " print(f'node_id : {node_id}')\n", + " tllogic = tllogics[tllogics.node_id==node_id]\n", + " state_length = len(tllogic.iloc[0].state)\n", + " print(f'state의 길이의 일정 여부 : {all([len(state)==state_length for state in tllogic.state])}')\n", + " non_red_indices = set()\n", + " for state in tllogic.state:\n", + " state = list(state)\n", + " non_red_indices.update({index for index, char in enumerate(state) if not char == 'r'})\n", + " all_red_indices = set(range(state_length)) - non_red_indices\n", + " all_red_state = ['g'] * state_length\n", + " for ind in all_red_indices:\n", + " all_red_state[ind] = 'r'\n", + " all_red_state = ''.join(all_red_state)\n", + " if all_red_indices:\n", + " print(f'모두 r인 인덱스 : {all_red_state}')\n", + " print()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "siggen_env", + "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.12.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/analysis/0801_check_tll/data_check.py b/analysis/0801_check_tll/data_check.py new file mode 100644 index 000000000..756ca9097 --- /dev/null +++ b/analysis/0801_check_tll/data_check.py @@ -0,0 +1,94 @@ +import os +import sys +if '__file__' in globals(): + sys.path.append(os.path.dirname(os.path.abspath(__file__))) + +import pandas as pd + +import sumolib +from sumolib.net import readNet + +def read_tllogic(path): + df_tllogic = [] + for value in sumolib.xml.parse(path, "tlLogic"): + tllogic_id = value.id + program_id = value.programID + for i, phase in enumerate(value.phase): + row = { + 'tllogic_id': tllogic_id, + 'program_id': program_id, + 'index': i, + 'duration': float(phase.duration), + 'state': phase.state, + } + df_tllogic.append(row) + df_tllogic = pd.DataFrame(df_tllogic) + return df_tllogic + +def check_always_red(states): + '''Checks whether all characters across multiple state strings at each position are 'r'.''' + colors = ['r'] * len(states[0]) + for s in states: + for i, char in enumerate(s.lower()): + if char != 'r': + colors[i] = 'G' + return ''.join(colors) + +def check_state_transitions(states): + """Check state transitions for missing yellow signals and other specific transitions.""" + notes = [] + for i, state in enumerate(states[:-1]): + next_state = states[i + 1] + for j, (p0, p1) in enumerate(zip(state.lower(), next_state.lower())): + if p0 == 'g' and p1 == 'r': + notes.append(f'녹색 -> 적색, 황색신호 누락. {i}, {i + 1} 사이의 state에서 {j}번째 문자를 확인하세요.') + if p0 == 'r' and p1 == 'y': + notes.append(f'적색 -> 황색. {i}, {i + 1} 사이의 state에서 {j}번째 문자를 확인하세요.') + if p0 == 'y' and p1 == 'g': + notes.append(f'황색 -> 녹색. {i}, {i + 1} 사이의 state에서 {j}번째 문자를 확인하세요.') + return notes + +def main(path_tll_xml, path_network_xml, interval): + df_tllogic = read_tllogic(path_tll_xml) + net = readNet(path_network_xml, withInternal=True, withPrograms=True) + + review_needed = [] + + # duration의 합계 비교 + df_tmp = df_tllogic \ + .groupby(['tllogic_id', 'program_id']) \ + .agg(sum_duration=('duration', 'sum')) \ + .reset_index() \ + .query('sum_duration < @interval') + if not df_tmp.empty: + for tup in df_tmp.itertuples(): + sub = {'note': f'duration의 합계가 {interval}보다 작음. tllogic_id: {tup.tllogic_id}, program_id: {tup.program_id}'} + review_needed.append(sub) + + for (tllogic_id, program_id), group in df_tllogic.groupby(['tllogic_id', 'program_id']): + group_sorted = group.sort_values(by='index') + states = list(group_sorted['state']) + + # 항상 적색인 경우 + merged_state = check_always_red(states) + if 'r' in merged_state: + sub = {'note': f'There is always a red signal. state: {merged_state}. tllogic_id: {tllogic_id}, program_id: {program_id}'} + review_needed.append(sub) + + # 신호 색상 순서 확인 + for note in check_state_transitions(states): + note = note + f' tllogic_id: {tllogic_id}, program_id: {program_id}' + review_needed.append({'note': note}) + + review_needed = pd.DataFrame(review_needed) + + return review_needed + +if __name__ == '__main__': + file_names = os.listdir(os.path.dirname(os.path.abspath(__file__))) + path_tll_xml = file_names[3] + path_network_xml = file_names[1] + print(path_tll_xml, path_network_xml) + interval = 300 + review_needed = main(path_tll_xml, path_network_xml, interval) + review_needed.to_csv('review_needed.csv', index=False, encoding='cp949') diff --git a/analysis/0801_check_tll/new_sungnam_network_internal_target_0721.net.xml b/analysis/0801_check_tll/new_sungnam_network_internal_target_0721.net.xml new file mode 100644 index 000000000..0ab02bed0 --- /dev/null +++ b/analysis/0801_check_tll/new_sungnam_network_internal_target_0721.net.xml @@ -0,0 +1,43891 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/analysis/0801_check_tll/review_needed.csv b/analysis/0801_check_tll/review_needed.csv new file mode 100644 index 000000000..713d569f7 --- /dev/null +++ b/analysis/0801_check_tll/review_needed.csv @@ -0,0 +1,3 @@ +note +"duration հ谡 300 . tllogic_id: 109901, program_id: 109901_prog" +"There is always a red signal. state: GGGGrGGGGGGrrGrGGGGGGGGGGGG. tllogic_id: 106332, program_id: 106332_prog" diff --git a/analysis/0801_check_tll/sn.rou.xml b/analysis/0801_check_tll/sn.rou.xml new file mode 100644 index 000000000..fd395bac9 --- /dev/null +++ b/analysis/0801_check_tll/sn.rou.xml @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/analysis/0801_check_tll/sn_1722384300.add.xml b/analysis/0801_check_tll/sn_1722384300.add.xml new file mode 100644 index 000000000..48b05fc06 --- /dev/null +++ b/analysis/0801_check_tll/sn_1722384300.add.xml @@ -0,0 +1,283 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test_0731/results/sn_1722384600.add.xml b/test_0731/results/sn_1722384600.add.xml new file mode 100644 index 000000000..b082ced2d --- /dev/null +++ b/test_0731/results/sn_1722384600.add.xml @@ -0,0 +1,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test_0731/results/sn_1722384900.add.xml b/test_0731/results/sn_1722384900.add.xml new file mode 100644 index 000000000..4f2eabdda --- /dev/null +++ b/test_0731/results/sn_1722384900.add.xml @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test_0731/results/sn_1722385200.add.xml b/test_0731/results/sn_1722385200.add.xml new file mode 100644 index 000000000..bc8306d82 --- /dev/null +++ b/test_0731/results/sn_1722385200.add.xml @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file