26674 lines
1.7 MiB
26674 lines
1.7 MiB
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 79,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<script>\n",
|
|
" if (document.body.dataset.jpThemeLight == \"false\" || // Jupyter Lab\n",
|
|
" document.body.dataset.vscodeThemeKind == \"vscode-dark\" || // VS Code\n",
|
|
" document.documentElement.dataset.theme == \"dark\" || // Jupyter Book\n",
|
|
" window.matchMedia('(prefers-color-scheme: dark)').matches) {\n",
|
|
" document.documentElement.classList.add('dark');\n",
|
|
" }\n",
|
|
" else {\n",
|
|
" document.documentElement.classList.remove('dark');\n",
|
|
" }\n",
|
|
"</script>\n"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<style>:root{--dt-row-selected: 13, 110, 253;--dt-row-selected-text: 255, 255, 255;--dt-row-selected-link: 9, 10, 11;--dt-row-stripe: 0, 0, 0;--dt-row-hover: 0, 0, 0;--dt-column-ordering: 0, 0, 0;--dt-html-background: white}:root.dark{--dt-html-background: rgb(33, 37, 41)}table.dataTable td.dt-control{text-align:center;cursor:pointer}table.dataTable td.dt-control:before{display:inline-block;box-sizing:border-box;content:\"\";border-top:5px solid transparent;border-left:10px solid rgba(0,0,0,.5);border-bottom:5px solid transparent;border-right:0px solid transparent}table.dataTable tr.dt-hasChild td.dt-control:before{border-top:10px solid rgba(0,0,0,.5);border-left:5px solid transparent;border-bottom:0px solid transparent;border-right:5px solid transparent}html.dark table.dataTable td.dt-control:before,:root[data-bs-theme=dark] table.dataTable td.dt-control:before{border-left-color:#ffffff80}html.dark table.dataTable tr.dt-hasChild td.dt-control:before,:root[data-bs-theme=dark] table.dataTable tr.dt-hasChild td.dt-control:before{border-top-color:#ffffff80;border-left-color:transparent}div.dt-scroll-body thead tr,div.dt-scroll-body tfoot tr{height:0}div.dt-scroll-body thead tr th,div.dt-scroll-body thead tr td,div.dt-scroll-body tfoot tr th,div.dt-scroll-body tfoot tr td{height:0!important;padding-top:0!important;padding-bottom:0!important;border-top-width:0px!important;border-bottom-width:0px!important}div.dt-scroll-body thead tr th div.dt-scroll-sizing,div.dt-scroll-body thead tr td div.dt-scroll-sizing,div.dt-scroll-body tfoot tr th div.dt-scroll-sizing,div.dt-scroll-body tfoot tr td div.dt-scroll-sizing{height:0!important;overflow:hidden!important}table.dataTable thead>tr>th.dt-orderable-asc span.dt-column-order:before,table.dataTable thead>tr>th.dt-ordering-asc span.dt-column-order:before,table.dataTable thead>tr>td.dt-orderable-asc span.dt-column-order:before,table.dataTable thead>tr>td.dt-ordering-asc span.dt-column-order:before{position:absolute;display:block;bottom:50%;content:\"\\25b2\";content:\"\\25b2\"/\"\"}table.dataTable thead>tr>th.dt-orderable-desc span.dt-column-order:after,table.dataTable thead>tr>th.dt-ordering-desc span.dt-column-order:after,table.dataTable thead>tr>td.dt-orderable-desc span.dt-column-order:after,table.dataTable thead>tr>td.dt-ordering-desc span.dt-column-order:after{position:absolute;display:block;top:50%;content:\"\\25bc\";content:\"\\25bc\"/\"\"}table.dataTable thead>tr>th.dt-orderable-asc,table.dataTable thead>tr>th.dt-orderable-desc,table.dataTable thead>tr>th.dt-ordering-asc,table.dataTable thead>tr>th.dt-ordering-desc,table.dataTable thead>tr>td.dt-orderable-asc,table.dataTable thead>tr>td.dt-orderable-desc,table.dataTable thead>tr>td.dt-ordering-asc,table.dataTable thead>tr>td.dt-ordering-desc{position:relative;padding-right:30px}table.dataTable thead>tr>th.dt-orderable-asc span.dt-column-order,table.dataTable thead>tr>th.dt-orderable-desc span.dt-column-order,table.dataTable thead>tr>th.dt-ordering-asc span.dt-column-order,table.dataTable thead>tr>th.dt-ordering-desc span.dt-column-order,table.dataTable thead>tr>td.dt-orderable-asc span.dt-column-order,table.dataTable thead>tr>td.dt-orderable-desc span.dt-column-order,table.dataTable thead>tr>td.dt-ordering-asc span.dt-column-order,table.dataTable thead>tr>td.dt-ordering-desc span.dt-column-order{position:absolute;right:12px;top:0;bottom:0;width:12px}table.dataTable thead>tr>th.dt-orderable-asc span.dt-column-order:before,table.dataTable thead>tr>th.dt-orderable-asc span.dt-column-order:after,table.dataTable thead>tr>th.dt-orderable-desc span.dt-column-order:before,table.dataTable thead>tr>th.dt-orderable-desc span.dt-column-order:after,table.dataTable thead>tr>th.dt-ordering-asc span.dt-column-order:before,table.dataTable thead>tr>th.dt-ordering-asc span.dt-column-order:after,table.dataTable thead>tr>th.dt-ordering-desc span.dt-column-order:before,table.dataTable thead>tr>th.dt-ordering-desc span.dt-column-order:after,table.dataTable thead>tr>td.dt-orderable-asc span.dt-column-order:before,table.dataTable thead>tr>td.dt-orderable-asc span.dt-column-order:after,table.dataTable thead>tr>td.dt-orderable-desc span.dt-column-order:before,table.dataTable thead>tr>td.dt-orderable-desc span.dt-column-order:after,table.dataTable thead>tr>td.dt-ordering-asc span.dt-column-order:before,table.dataTable thead>tr>td.dt-ordering-asc span.dt-column-order:after,table.dataTable thead>tr>td.dt-ordering-desc span.dt-column-order:before,table.dataTable thead>tr>td.dt-ordering-desc span.dt-column-order:after{left:0;opacity:.125;line-height:9px;font-size:.8em}table.dataTable thead>tr>th.dt-orderable-asc,table.dataTable thead>tr>th.dt-orderable-desc,table.dataTable thead>tr>td.dt-orderable-asc,table.dataTable thead>tr>td.dt-orderable-desc{cursor:pointer}table.dataTable thead>tr>th.dt-orderable-asc:hover,table.dataTable thead>tr>th.dt-orderable-desc:hover,table.dataTable thead>tr>td.dt-orderable-asc:hover,table.dataTable thead>tr>td.dt-orderable-desc:hover{outline:2px solid rgba(0,0,0,.05);outline-offset:-2px}table.dataTable thead>tr>th.dt-ordering-asc span.dt-column-order:before,table.dataTable thead>tr>th.dt-ordering-desc span.dt-column-order:after,table.dataTable thead>tr>td.dt-ordering-asc span.dt-column-order:before,table.dataTable thead>tr>td.dt-ordering-desc span.dt-column-order:after{opacity:.6}table.dataTable thead>tr>th.sorting_desc_disabled span.dt-column-order:after,table.dataTable thead>tr>th.sorting_asc_disabled span.dt-column-order:before,table.dataTable thead>tr>td.sorting_desc_disabled span.dt-column-order:after,table.dataTable thead>tr>td.sorting_asc_disabled span.dt-column-order:before{display:none}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}div.dt-scroll-body>table.dataTable>thead>tr>th,div.dt-scroll-body>table.dataTable>thead>tr>td{overflow:hidden}:root.dark table.dataTable thead>tr>th.dt-orderable-asc:hover,:root.dark table.dataTable thead>tr>th.dt-orderable-desc:hover,:root.dark table.dataTable thead>tr>td.dt-orderable-asc:hover,:root.dark table.dataTable thead>tr>td.dt-orderable-desc:hover,:root[data-bs-theme=dark] table.dataTable thead>tr>th.dt-orderable-asc:hover,:root[data-bs-theme=dark] table.dataTable thead>tr>th.dt-orderable-desc:hover,:root[data-bs-theme=dark] table.dataTable thead>tr>td.dt-orderable-asc:hover,:root[data-bs-theme=dark] table.dataTable thead>tr>td.dt-orderable-desc:hover{outline:2px solid rgba(255,255,255,.05)}div.dt-processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-22px;text-align:center;padding:2px;z-index:10}div.dt-processing>div:last-child{position:relative;width:80px;height:15px;margin:1em auto}div.dt-processing>div:last-child>div{position:absolute;top:0;width:13px;height:13px;border-radius:50%;background:#0d6efd;background:rgb(var(--dt-row-selected));animation-timing-function:cubic-bezier(0,1,1,0)}div.dt-processing>div:last-child>div:nth-child(1){left:8px;animation:datatables-loader-1 .6s infinite}div.dt-processing>div:last-child>div:nth-child(2){left:8px;animation:datatables-loader-2 .6s infinite}div.dt-processing>div:last-child>div:nth-child(3){left:32px;animation:datatables-loader-2 .6s infinite}div.dt-processing>div:last-child>div:nth-child(4){left:56px;animation:datatables-loader-3 .6s infinite}@keyframes datatables-loader-1{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes datatables-loader-3{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes datatables-loader-2{0%{transform:translate(0)}to{transform:translate(24px)}}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable th,table.dataTable td{box-sizing:border-box}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable th.dt-empty,table.dataTable td.dt-empty{text-align:center;vertical-align:top}table.dataTable th.dt-type-numeric,table.dataTable th.dt-type-date,table.dataTable td.dt-type-numeric,table.dataTable td.dt-type-date{text-align:right}table.dataTable thead th,table.dataTable thead td,table.dataTable tfoot th,table.dataTable tfoot td,table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable{width:100%;margin:0 auto;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:700}table.dataTable>thead>tr>th,table.dataTable>thead>tr>td{padding:10px;border-bottom:1px solid rgba(0,0,0,.3)}table.dataTable>thead>tr>th:active,table.dataTable>thead>tr>td:active{outline:none}table.dataTable>tfoot>tr>th,table.dataTable>tfoot>tr>td{border-top:1px solid rgba(0,0,0,.3);padding:10px 10px 6px}table.dataTable>tbody>tr{background-color:transparent}table.dataTable>tbody>tr:first-child>*{border-top:none}table.dataTable>tbody>tr:last-child>*{border-bottom:none}table.dataTable>tbody>tr.selected>*{box-shadow:inset 0 0 0 9999px #0d6efde6;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.9);color:#fff;color:rgb(var(--dt-row-selected-text))}table.dataTable>tbody>tr.selected a{color:#090a0b;color:rgb(var(--dt-row-selected-link))}table.dataTable>tbody>tr>th,table.dataTable>tbody>tr>td{padding:8px 10px}table.dataTable.row-border>tbody>tr>*,table.dataTable.display>tbody>tr>*{border-top:1px solid rgba(0,0,0,.15)}table.dataTable.row-border>tbody>tr:first-child>*,table.dataTable.display>tbody>tr:first-child>*{border-top:none}table.dataTable.row-border>tbody>tr.selected+tr.selected>td,table.dataTable.display>tbody>tr.selected+tr.selected>td{border-top-color:#0d6efda6;border-top-color:rgba(var(--dt-row-selected),.65)}table.dataTable.cell-border>tbody>tr>*{border-top:1px solid rgba(0,0,0,.15);border-right:1px solid rgba(0,0,0,.15)}table.dataTable.cell-border>tbody>tr>*:first-child{border-left:1px solid rgba(0,0,0,.15)}table.dataTable.cell-border>tbody>tr:first-child>*{border-top:1px solid rgba(0,0,0,.3)}table.dataTable.stripe>tbody>tr:nth-child(odd)>*,table.dataTable.display>tbody>tr:nth-child(odd)>*{box-shadow:inset 0 0 0 9999px #00000006;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-stripe),.023)}table.dataTable.stripe>tbody>tr:nth-child(odd).selected>*,table.dataTable.display>tbody>tr:nth-child(odd).selected>*{box-shadow:inset 0 0 0 9999px #0d6efdeb;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.923)}table.dataTable.hover>tbody>tr:hover>*,table.dataTable.display>tbody>tr:hover>*{box-shadow:inset 0 0 0 9999px #00000009;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover),.035)}table.dataTable.hover>tbody>tr.selected:hover>*,table.dataTable.display>tbody>tr.selected:hover>*{box-shadow:inset 0 0 0 9999px #0d6efd!important;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),1)!important}table.dataTable.order-column>tbody tr>.sorting_1,table.dataTable.order-column>tbody tr>.sorting_2,table.dataTable.order-column>tbody tr>.sorting_3,table.dataTable.display>tbody tr>.sorting_1,table.dataTable.display>tbody tr>.sorting_2,table.dataTable.display>tbody tr>.sorting_3{box-shadow:inset 0 0 0 9999px #00000005;box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.019)}table.dataTable.order-column>tbody tr.selected>.sorting_1,table.dataTable.order-column>tbody tr.selected>.sorting_2,table.dataTable.order-column>tbody tr.selected>.sorting_3,table.dataTable.display>tbody tr.selected>.sorting_1,table.dataTable.display>tbody tr.selected>.sorting_2,table.dataTable.display>tbody tr.selected>.sorting_3{box-shadow:inset 0 0 0 9999px #0d6efdea;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.919)}table.dataTable.display>tbody>tr:nth-child(odd)>.sorting_1,table.dataTable.order-column.stripe>tbody>tr:nth-child(odd)>.sorting_1{box-shadow:inset 0 0 0 9999px #0000000e;box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.054)}table.dataTable.display>tbody>tr:nth-child(odd)>.sorting_2,table.dataTable.order-column.stripe>tbody>tr:nth-child(odd)>.sorting_2{box-shadow:inset 0 0 0 9999px #0000000c;box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.047)}table.dataTable.display>tbody>tr:nth-child(odd)>.sorting_3,table.dataTable.order-column.stripe>tbody>tr:nth-child(odd)>.sorting_3{box-shadow:inset 0 0 0 9999px #0000000a;box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.039)}table.dataTable.display>tbody>tr:nth-child(odd).selected>.sorting_1,table.dataTable.order-column.stripe>tbody>tr:nth-child(odd).selected>.sorting_1{box-shadow:inset 0 0 0 9999px #0d6efdf3;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.954)}table.dataTable.display>tbody>tr:nth-child(odd).selected>.sorting_2,table.dataTable.order-column.stripe>tbody>tr:nth-child(odd).selected>.sorting_2{box-shadow:inset 0 0 0 9999px #0d6efdf1;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.947)}table.dataTable.display>tbody>tr:nth-child(odd).selected>.sorting_3,table.dataTable.order-column.stripe>tbody>tr:nth-child(odd).selected>.sorting_3{box-shadow:inset 0 0 0 9999px #0d6efdef;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.939)}table.dataTable.display>tbody>tr.even>.sorting_1,table.dataTable.order-column.stripe>tbody>tr.even>.sorting_1{box-shadow:inset 0 0 0 9999px #00000005;box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.019)}table.dataTable.display>tbody>tr.even>.sorting_2,table.dataTable.order-column.stripe>tbody>tr.even>.sorting_2{box-shadow:inset 0 0 0 9999px #00000003;box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.011)}table.dataTable.display>tbody>tr.even>.sorting_3,table.dataTable.order-column.stripe>tbody>tr.even>.sorting_3{box-shadow:inset 0 0 0 9999px #00000001;box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.003)}table.dataTable.display>tbody>tr.even.selected>.sorting_1,table.dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_1{box-shadow:inset 0 0 0 9999px #0d6efdea;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.919)}table.dataTable.display>tbody>tr.even.selected>.sorting_2,table.dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_2{box-shadow:inset 0 0 0 9999px #0d6efde8;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.911)}table.dataTable.display>tbody>tr.even.selected>.sorting_3,table.dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_3{box-shadow:inset 0 0 0 9999px #0d6efde6;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.903)}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{box-shadow:inset 0 0 0 9999px #00000015;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover),.082)}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{box-shadow:inset 0 0 0 9999px #00000013;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover),.074)}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{box-shadow:inset 0 0 0 9999px #00000010;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover),.062)}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{box-shadow:inset 0 0 0 9999px #0d6efdfa;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.982)}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{box-shadow:inset 0 0 0 9999px #0d6efdf8;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.974)}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{box-shadow:inset 0 0 0 9999px #0d6efdf5;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.962)}table.dataTable.compact thead th,table.dataTable.compact thead td,table.dataTable.compact tfoot th,table.dataTable.compact tfoot td,table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}div.dt-container{position:relative;clear:both}div.dt-container div.dt-layout-row{display:table;clear:both;width:100%}div.dt-container div.dt-layout-row.dt-layout-table,div.dt-container div.dt-layout-row.dt-layout-table div.dt-layout-cell{display:block}div.dt-container div.dt-layout-cell{display:table-cell;vertical-align:middle;padding:5px 0}div.dt-container div.dt-layout-cell.dt-full{text-align:center}div.dt-container div.dt-layout-cell.dt-start{text-align:left}div.dt-container div.dt-layout-cell.dt-end{text-align:right}div.dt-container div.dt-layout-cell:empty{display:none}div.dt-container .dt-search input{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;color:inherit;margin-left:3px}div.dt-container .dt-input{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;color:inherit}div.dt-container select.dt-input{padding:4px}div.dt-container .dt-paging .dt-paging-button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:.5em 1em;margin-left:2px;text-align:center;text-decoration:none!important;cursor:pointer;color:inherit!important;border:1px solid transparent;border-radius:2px;background:transparent}div.dt-container .dt-paging .dt-paging-button.current,div.dt-container .dt-paging .dt-paging-button.current:hover{color:inherit!important;border:1px solid rgba(0,0,0,.3);background-color:#0000000d;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(230,230,230,.05)),color-stop(100%,rgba(0,0,0,.05)));background:-webkit-linear-gradient(top,rgba(230,230,230,.05) 0%,rgba(0,0,0,.05) 100%);background:-moz-linear-gradient(top,rgba(230,230,230,.05) 0%,rgba(0,0,0,.05) 100%);background:-ms-linear-gradient(top,rgba(230,230,230,.05) 0%,rgba(0,0,0,.05) 100%);background:-o-linear-gradient(top,rgba(230,230,230,.05) 0%,rgba(0,0,0,.05) 100%);background:linear-gradient(to bottom,#e6e6e60d,#0000000d)}div.dt-container .dt-paging .dt-paging-button.disabled,div.dt-container .dt-paging .dt-paging-button.disabled:hover,div.dt-container .dt-paging .dt-paging-button.disabled:active{cursor:default;color:#00000080!important;border:1px solid transparent;background:transparent;box-shadow:none}div.dt-container .dt-paging .dt-paging-button:hover{color:#fff!important;border:1px solid #111;background-color:#111;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#585858),color-stop(100%,#111));background:-webkit-linear-gradient(top,#585858 0%,#111 100%);background:-moz-linear-gradient(top,#585858 0%,#111 100%);background:-ms-linear-gradient(top,#585858 0%,#111 100%);background:-o-linear-gradient(top,#585858 0%,#111 100%);background:linear-gradient(to bottom,#585858,#111)}div.dt-container .dt-paging .dt-paging-button:active{outline:none;background-color:#0c0c0c;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#2b2b2b),color-stop(100%,#0c0c0c));background:-webkit-linear-gradient(top,#2b2b2b 0%,#0c0c0c 100%);background:-moz-linear-gradient(top,#2b2b2b 0%,#0c0c0c 100%);background:-ms-linear-gradient(top,#2b2b2b 0%,#0c0c0c 100%);background:-o-linear-gradient(top,#2b2b2b 0%,#0c0c0c 100%);background:linear-gradient(to bottom,#2b2b2b,#0c0c0c);box-shadow:inset 0 0 3px #111}div.dt-container .dt-paging .ellipsis{padding:0 1em}div.dt-container .dt-length,div.dt-container .dt-search,div.dt-container .dt-info,div.dt-container .dt-processing,div.dt-container .dt-paging{color:inherit}div.dt-container .dataTables_scroll{clear:both}div.dt-container .dataTables_scroll div.dt-scroll-body{-webkit-overflow-scrolling:touch}div.dt-container .dataTables_scroll div.dt-scroll-body>table>thead>tr>th,div.dt-container .dataTables_scroll div.dt-scroll-body>table>thead>tr>td,div.dt-container .dataTables_scroll div.dt-scroll-body>table>tbody>tr>th,div.dt-container .dataTables_scroll div.dt-scroll-body>table>tbody>tr>td{vertical-align:middle}div.dt-container .dataTables_scroll div.dt-scroll-body>table>thead>tr>th>div.dataTables_sizing,div.dt-container .dataTables_scroll div.dt-scroll-body>table>thead>tr>td>div.dataTables_sizing,div.dt-container .dataTables_scroll div.dt-scroll-body>table>tbody>tr>th>div.dataTables_sizing,div.dt-container .dataTables_scroll div.dt-scroll-body>table>tbody>tr>td>div.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}div.dt-container.dt-empty-footer tbody>tr:last-child>*{border-bottom:1px solid rgba(0,0,0,.3)}div.dt-container.dt-empty-footer .dt-scroll-body{border-bottom:1px solid rgba(0,0,0,.3)}div.dt-container.dt-empty-footer .dt-scroll-body tbody>tr:last-child>*{border-bottom:none}@media screen and (max-width: 767px){div.dt-container div.dt-layout-row,div.dt-container div.dt-layout-cell{display:block}div.dt-container div.dt-layout-cell.dt-full,div.dt-container div.dt-layout-cell.dt-start,div.dt-container div.dt-layout-cell.dt-end{text-align:center}}@media screen and (max-width: 640px){.dt-container .dt-length,.dt-container .dt-search{float:none;text-align:center}.dt-container .dt-search{margin-top:.5em}}html.dark{--dt-row-hover: 255, 255, 255;--dt-row-stripe: 255, 255, 255;--dt-column-ordering: 255, 255, 255}html.dark table.dataTable>thead>tr>th,html.dark table.dataTable>thead>tr>td{border-bottom:1px solid rgb(89,91,94)}html.dark table.dataTable>thead>tr>th:active,html.dark table.dataTable>thead>tr>td:active{outline:none}html.dark table.dataTable>tfoot>tr>th,html.dark table.dataTable>tfoot>tr>td{border-top:1px solid rgb(89,91,94)}html.dark table.dataTable.row-border>tbody>tr>*,html.dark table.dataTable.display>tbody>tr>*{border-top:1px solid rgb(64,67,70)}html.dark table.dataTable.row-border>tbody>tr:first-child>*,html.dark table.dataTable.display>tbody>tr:first-child>*{border-top:none}html.dark table.dataTable.row-border>tbody>tr.selected+tr.selected>td,html.dark table.dataTable.display>tbody>tr.selected+tr.selected>td{border-top-color:#0d6efda6;border-top-color:rgba(var(--dt-row-selected),.65)}html.dark table.dataTable.cell-border>tbody>tr>th,html.dark table.dataTable.cell-border>tbody>tr>td{border-top:1px solid rgb(64,67,70);border-right:1px solid rgb(64,67,70)}html.dark table.dataTable.cell-border>tbody>tr>th:first-child,html.dark table.dataTable.cell-border>tbody>tr>td:first-child{border-left:1px solid rgb(64,67,70)}html.dark .dt-container.dt-empty-footer table.dataTable{border-bottom:1px solid rgb(89,91,94)}html.dark .dt-container .dt-search input,html.dark .dt-container .dt-length select{border:1px solid rgba(255,255,255,.2);background-color:var(--dt-html-background)}html.dark .dt-container .dt-paging .dt-paging-button.current,html.dark .dt-container .dt-paging .dt-paging-button.current:hover{border:1px solid rgb(89,91,94);background:#ffffff26}html.dark .dt-container .dt-paging .dt-paging-button.disabled,html.dark .dt-container .dt-paging .dt-paging-button.disabled:hover,html.dark .dt-container .dt-paging .dt-paging-button.disabled:active{color:#666!important}html.dark .dt-container .dt-paging .dt-paging-button:hover{border:1px solid rgb(53,53,53);background:#353535}html.dark .dt-container .dt-paging .dt-paging-button:active{background:#3a3a3a}*[dir=rtl] table.dataTable thead th,*[dir=rtl] table.dataTable thead td,*[dir=rtl] table.dataTable tfoot th,*[dir=rtl] table.dataTable tfoot td{text-align:right}*[dir=rtl] table.dataTable th.dt-type-numeric,*[dir=rtl] table.dataTable th.dt-type-date,*[dir=rtl] table.dataTable td.dt-type-numeric,*[dir=rtl] table.dataTable td.dt-type-date{text-align:left}*[dir=rtl] div.dt-container div.dt-layout-cell.dt-start{text-align:right}*[dir=rtl] div.dt-container div.dt-layout-cell.dt-end{text-align:left}*[dir=rtl] div.dt-container div.dt-search input{margin:0 3px 0 0}@keyframes dtb-spinner{to{transform:rotate(360deg)}}@-o-keyframes dtb-spinner{to{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes dtb-spinner{to{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes dtb-spinner{to{-moz-transform:rotate(360deg);transform:rotate(360deg)}}div.dataTables_wrapper{position:relative}div.dt-buttons{position:initial}div.dt-buttons .dt-button{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:#fff;border-radius:.75em;box-shadow:3px 4px 10px 1px #000c;text-align:center;z-index:2003;overflow:hidden}div.dt-button-info h2{padding:2rem 2rem 1rem;margin:0;font-weight:400}div.dt-button-info>div{padding:1em 2em 2em}div.dtb-popover-close{position:absolute;top:6px;right:6px;width:22px;height:22px;text-align:center;border-radius:3px;cursor:pointer;z-index:2003}button.dtb-hide-drop{display:none!important}div.dt-button-collection-title{text-align:center;padding:.3em .5em .5em;margin-left:.5em;margin-right:.5em;font-size:.9em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}div.dt-button-collection-title:empty{display:none}span.dt-button-spacer{display:inline-block;margin:.5em;white-space:nowrap}span.dt-button-spacer.bar{border-left:1px solid rgba(0,0,0,.3);vertical-align:middle;padding-left:.5em}span.dt-button-spacer.bar:empty{height:1em;width:1px;padding-left:0}div.dt-button-collection .dt-button-active{padding-right:3em}div.dt-button-collection .dt-button-active:after{position:absolute;top:50%;margin-top:-10px;right:1em;display:inline-block;content:\"\\2713\";color:inherit}div.dt-button-collection .dt-button-active.dt-button-split{padding-right:0}div.dt-button-collection .dt-button-active.dt-button-split:after{display:none}div.dt-button-collection .dt-button-active.dt-button-split>*:first-child{padding-right:3em}div.dt-button-collection .dt-button-active.dt-button-split>*:first-child:after{position:absolute;top:50%;margin-top:-10px;right:1em;display:inline-block;content:\"\\2713\";color:inherit}div.dt-button-collection .dt-button-active-a a{padding-right:3em}div.dt-button-collection .dt-button-active-a a:after{position:absolute;right:1em;display:inline-block;content:\"\\2713\";color:inherit}div.dt-button-collection span.dt-button-spacer{width:100%;font-size:.9em;text-align:center;margin:.5em 0}div.dt-button-collection span.dt-button-spacer:empty{height:0;width:100%}div.dt-button-collection span.dt-button-spacer.bar{border-left:none;border-bottom:1px solid rgba(0,0,0,.1);padding-left:0}@media print{table.dataTable tr>*{box-shadow:none!important}}html.dark div.dt-button-info{background-color:var(--dt-html-background);border:1px solid rgba(255,255,255,.15)}div.dt-buttons>.dt-button,div.dt-buttons>div.dt-button-split .dt-button{position:relative;display:inline-block;box-sizing:border-box;margin-left:.167em;margin-right:.167em;margin-bottom:.333em;padding:.5em 1em;border:1px solid rgba(0,0,0,.3);border-radius:2px;cursor:pointer;font-size:.88em;line-height:1.6em;color:inherit;white-space:nowrap;overflow:hidden;background-color:#0000001a;background:linear-gradient(to bottom,#e6e6e61a,#0000001a);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr=\"rgba(230, 230, 230, 0.1)\",EndColorStr=\"rgba(0, 0, 0, 0.1)\");-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;outline:none;text-overflow:ellipsis}div.dt-buttons>.dt-button:first-child,div.dt-buttons>div.dt-button-split .dt-button:first-child{margin-left:0}div.dt-buttons>.dt-button.disabled,div.dt-buttons>div.dt-button-split .dt-button.disabled{cursor:default;opacity:.4}div.dt-buttons>.dt-button.dt-button-active:not(.disabled),div.dt-buttons>div.dt-button-split .dt-button.dt-button-active:not(.disabled){background-color:#0000001a;background:linear-gradient(to bottom,#b3b3b31a,#0000001a);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr=\"rgba(179, 179, 179, 0.1)\",EndColorStr=\"rgba(0, 0, 0, 0.1)\");box-shadow:inset 1px 1px 3px #999}div.dt-buttons>.dt-button.dt-button-active:not(.disabled):hover:not(.disabled),div.dt-buttons>div.dt-button-split .dt-button.dt-button-active:not(.disabled):hover:not(.disabled){box-shadow:inset 1px 1px 3px #999;background-color:#0000001a;background:linear-gradient(to bottom,#8080801a,#0000001a);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr=\"rgba(128, 128, 128, 0.1)\",EndColorStr=\"rgba(0, 0, 0, 0.1)\")}div.dt-buttons>.dt-button:hover,div.dt-buttons>div.dt-button-split .dt-button:hover{text-decoration:none}div.dt-buttons>.dt-button:hover:not(.disabled),div.dt-buttons>div.dt-button-split .dt-button:hover:not(.disabled){border:1px solid #666;background-color:#0000001a;background:linear-gradient(to bottom,#9999991a,#0000001a);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr=\"rgba(153, 153, 153, 0.1)\",EndColorStr=\"rgba(0, 0, 0, 0.1)\")}div.dt-buttons>.dt-button:focus:not(.disabled),div.dt-buttons>div.dt-button-split .dt-button:focus:not(.disabled){outline:2px solid rgb(53,132,228)}div.dt-buttons>.dt-button embed,div.dt-buttons>div.dt-button-split .dt-button embed{outline:none}div.dt-buttons>div.dt-button-split .dt-button:first-child{border-right:1px solid rgba(0,0,0,.15);border-top-right-radius:0;border-bottom-right-radius:0}div.dt-buttons>div.dt-button-split .dt-button:first-child:hover{border-right:1px solid #666}div.dt-buttons>div.dt-button-split .dt-button:last-child{border-left:1px solid transparent;border-top-left-radius:0;border-bottom-left-radius:0}div.dt-buttons>div.dt-button-split .dt-button:last-child:hover{border-left:1px solid #666}div.dt-buttons span.dt-button-down-arrow{position:relative;top:-2px;font-size:10px;padding-left:10px;line-height:1em;opacity:.6}div.dt-buttons div.dt-button-split{display:inline-block}div.dt-buttons div.dt-button-split .dt-button:first-child{margin-right:0}div.dt-buttons div.dt-button-split .dt-button:last-child{margin-left:-1px;padding-left:.75em;padding-right:.75em;z-index:2}div.dt-buttons div.dt-button-split .dt-button:last-child span{padding-left:0}div.dt-button-collection{position:absolute;top:0;left:0;width:200px;margin-top:3px;margin-bottom:3px;padding:.75em 0;border:1px solid rgba(0,0,0,.4);background-color:#fff;overflow:hidden;z-index:2002;border-radius:5px;box-shadow:3px 4px 10px 1px #0000004d;box-sizing:border-box}div.dt-button-collection .dt-button{position:relative;left:0;right:0;width:100%;display:block;float:none;background:none;margin:0;padding:.5em 1em;border:none;text-align:left;cursor:pointer;color:inherit}div.dt-button-collection .dt-button.dt-button-active{background:none;box-shadow:none}div.dt-button-collection .dt-button.disabled{cursor:default;opacity:.4}div.dt-button-collection .dt-button:hover:not(.disabled){border:none;background:#9999991a;box-shadow:none}div.dt-button-collection div.dt-button-split{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:stretch}div.dt-button-collection div.dt-button-split button.dt-button{margin:0;display:inline-block;width:0;flex-grow:1;flex-shrink:0;flex-basis:50px}div.dt-button-collection div.dt-button-split button.dt-button-split-drop{min-width:33px;flex:0}div.dt-button-collection.fixed .dt-button{border-radius:.25em;background:#ffffff1a}div.dt-button-collection.fixed{position:fixed;display:block;top:50%;left:50%;margin-left:-75px;border-radius:5px;background-color:#fff;padding:.5em}div.dt-button-collection.fixed.two-column{margin-left:-200px}div.dt-button-collection.fixed.three-column{margin-left:-225px}div.dt-button-collection.fixed.four-column{margin-left:-300px}div.dt-button-collection.fixed.columns{margin-left:-409px}@media screen and (max-width: 1024px){div.dt-button-collection.fixed.columns{margin-left:-308px}}@media screen and (max-width: 640px){div.dt-button-collection.fixed.columns{margin-left:-203px}}@media screen and (max-width: 460px){div.dt-button-collection.fixed.columns{margin-left:-100px}}div.dt-button-collection.fixed>:last-child{max-height:100vh;overflow:auto}div.dt-button-collection.two-column>:last-child,div.dt-button-collection.three-column>:last-child,div.dt-button-collection.four-column>:last-child{display:block!important;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}div.dt-button-collection.two-column>:last-child>*,div.dt-button-collection.three-column>:last-child>*,div.dt-button-collection.four-column>:last-child>*{-webkit-column-break-inside:avoid;break-inside:avoid}div.dt-button-collection.two-column{width:400px}div.dt-button-collection.two-column>:last-child{padding-bottom:1px;column-count:2}div.dt-button-collection.three-column{width:450px}div.dt-button-collection.three-column>:last-child{padding-bottom:1px;column-count:3}div.dt-button-collection.four-column{width:600px}div.dt-button-collection.four-column>:last-child{padding-bottom:1px;column-count:4}div.dt-button-collection .dt-button{border-radius:0}div.dt-button-collection.columns{width:auto}div.dt-button-collection.columns>:last-child{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:6px;width:818px;padding-bottom:1px}div.dt-button-collection.columns>:last-child .dt-button{min-width:200px;flex:0 1;margin:0}div.dt-button-collection.columns.dtb-b3>:last-child,div.dt-button-collection.columns.dtb-b2>:last-child,div.dt-button-collection.columns.dtb-b1>:last-child{justify-content:space-between}div.dt-button-collection.columns.dtb-b3 .dt-button{flex:1 1 32%}div.dt-button-collection.columns.dtb-b2 .dt-button{flex:1 1 48%}div.dt-button-collection.columns.dtb-b1 .dt-button{flex:1 1 100%}@media screen and (max-width: 1024px){div.dt-button-collection.columns>:last-child{width:612px}}@media screen and (max-width: 640px){div.dt-button-collection.columns>:last-child{width:406px}div.dt-button-collection.columns.dtb-b3 .dt-button{flex:0 1 32%}}@media screen and (max-width: 460px){div.dt-button-collection.columns>:last-child{width:200px}}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;background:radial-gradient(ellipse farthest-corner at center,#0000004d,#000000b3);z-index:2001}.dt-button.processing{color:#0003}.dt-button.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:\" \";border:2px solid rgb(40,40,40);border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1.5s infinite linear;-o-animation:dtb-spinner 1.5s infinite linear;-ms-animation:dtb-spinner 1.5s infinite linear;-webkit-animation:dtb-spinner 1.5s infinite linear;-moz-animation:dtb-spinner 1.5s infinite linear}@media screen and (max-width: 640px){div.dt-buttons{float:none!important;text-align:center}}html.dark div.dt-buttons>.dt-button,html.dark div.dt-buttons>div.dt-button-split .dt-button{border:1px solid rgb(89,91,94);background:#ffffff26}html.dark div.dt-buttons>.dt-button.dt-button-active:not(.disabled),html.dark div.dt-buttons>div.dt-button-split .dt-button.dt-button-active:not(.disabled){background:#b3b3b326;box-shadow:inset 1px 1px 2px #000}html.dark div.dt-buttons>.dt-button.dt-button-active:not(.disabled):hover:not(.disabled),html.dark div.dt-buttons>div.dt-button-split .dt-button.dt-button-active:not(.disabled):hover:not(.disabled){background:#80808026;box-shadow:inset 1px 1px 3px #000}html.dark div.dt-buttons>.dt-button:hover:not(.disabled),html.dark div.dt-buttons>div.dt-button-split .dt-button:hover:not(.disabled){background:#b3b3b326}html.dark div.dt-buttons>.dt-button:focus:not(.disabled),html.dark div.dt-buttons>div.dt-button-split .dt-button:focus:not(.disabled){outline:2px solid rgb(110,168,254)}html.dark div.dt-buttons>div.dt-button-split .dt-button:first-child{border-right:1px solid rgba(255,255,255,.1)}html.dark div.dt-buttons>div.dt-button-split .dt-button:first-child:hover{border-right:1px solid rgb(89,91,94)}html.dark div.dt-buttons>div.dt-button-split .dt-button:last-child:hover{border-left:1px solid rgb(89,91,94)}html.dark div.dt-button-collection{border:1px solid rgba(255,255,255,.15);background-color:#212529;box-shadow:3px 4px 10px 1px #000c}table.dataTable thead tr>.dtfc-fixed-start,table.dataTable thead tr>.dtfc-fixed-end,table.dataTable tfoot tr>.dtfc-fixed-start,table.dataTable tfoot tr>.dtfc-fixed-end{top:0;bottom:0;z-index:3;background-color:#fff}table.dataTable tbody tr>.dtfc-fixed-start,table.dataTable tbody tr>.dtfc-fixed-end{z-index:1;background-color:#fff}table.dataTable tr>.dtfc-fixed-left:after,table.dataTable tr>.dtfc-fixed-right:after{position:absolute;top:0;bottom:0;width:10px;transition:box-shadow .3s;content:\"\";pointer-events:none}table.dataTable tr>.dtfc-fixed-left:after{right:0;transform:translate(100%)}table.dataTable tr>.dtfc-fixed-right:after{left:0;transform:translate(-80%)}table.dataTable.dtfc-scrolling-left tr>.dtfc-fixed-left:after{box-shadow:inset 10px 0 8px -8px #0003}table.dataTable.dtfc-scrolling-right tr>.dtfc-fixed-right:after{box-shadow:inset -10px 0 8px -8px #0003}table.dataTable.dtfc-scrolling-right tr>.dtfc-fixed-right+.dtfc-fixed-right:after{box-shadow:none}div.dt-scroll,div.dtfh-floatingparent{position:relative}div.dt-scroll div.dtfc-top-blocker,div.dt-scroll div.dtfc-bottom-blocker,div.dtfh-floatingparent div.dtfc-top-blocker,div.dtfh-floatingparent div.dtfc-bottom-blocker{position:absolute;background-color:#fff}html.dark table.dataTable thead tr>.dtfc-fixed-start,html.dark table.dataTable thead tr>.dtfc-fixed-end,html.dark table.dataTable tfoot tr>.dtfc-fixed-start,html.dark table.dataTable tfoot tr>.dtfc-fixed-end{background-color:var(--dt-html-background)}html.dark table.dataTable tbody tr>.dtfc-fixed-start,html.dark table.dataTable tbody tr>.dtfc-fixed-end{background-color:var(--dt-html-background)}html.dark table.dataTable.dtfc-scrolling-left tbody>tr>.dtfc-fixed-left:after{box-shadow:inset 10px 0 8px -8px #0000004d}html.dark table.dataTable.dtfc-scrolling-right tbody>tr>.dtfc-fixed-right:after{box-shadow:inset -10px 0 8px -8px #0000004d}html.dark table.dataTable.dtfc-scrolling-right tbody>tr>.dtfc-fixed-right+.dtfc-fixed-right:after{box-shadow:none}html.dark div.dtfc-top-blocker,html.dark div.dtfc-bottom-blocker{background-color:var(--dt-html-background)}table.dataTable tbody th.focus,table.dataTable tbody td.focus{outline:2px solid #36f;outline-offset:-2px}table.dataTable tbody tr.selected th.focus,table.dataTable tbody tr.selected td.focus{outline-color:#03c}div.dtk-focus-alt table.dataTable tbody th.focus,div.dtk-focus-alt table.dataTable tbody td.focus{outline:2px solid #ff8b33;outline-offset:-2px}html.dark table.dataTable tbody th.focus,html.dark table.dataTable tbody td.focus{outline-color:#0d6efd}html.dark table.dataTable tbody tr.selected th.focus,html.dark table.dataTable tbody tr.selected td.focus{outline-color:#0143a3}html.dark div.dtk-focus-alt table.dataTable tbody th.focus,html.dark div.dtk-focus-alt table.dataTable tbody td.focus{outline-color:#ff8b33}table.dataTable tr.dtrg-group th{background-color:#0000001a;text-align:left}table.dataTable tr.dtrg-group.dtrg-level-0 th{font-weight:700}table.dataTable tr.dtrg-group.dtrg-level-1 th,table.dataTable tr.dtrg-group.dtrg-level-2 th,table.dataTable tr.dtrg-group.dtrg-level-3 th,table.dataTable tr.dtrg-group.dtrg-level-4 th,table.dataTable tr.dtrg-group.dtrg-level-5 th{background-color:#0000000d;padding-top:.25em;padding-bottom:.25em;padding-left:2em;font-size:.9em}table.dataTable tr.dtrg-group.dtrg-level-2 th{background-color:#00000003;padding-left:2.5em}table.dataTable tr.dtrg-group.dtrg-level-3 th{background-color:#00000003;padding-left:3em}table.dataTable tr.dtrg-group.dtrg-level-4 th{background-color:#00000003;padding-left:3.5em}table.dataTable tr.dtrg-group.dtrg-level-5 th{background-color:#00000003;padding-left:4em}html.dark table.dataTable tr.dtrg-group th{background-color:#ffffff1a}html.dark table.dataTable tr.dtrg-group.dtrg-level-1 th{background-color:#ffffff0d}html.dark table.dataTable tr.dtrg-group.dtrg-level-2 th,html.dark table.dataTable tr.dtrg-group.dtrg-level-3 th,html.dark table.dataTable tr.dtrg-group.dtrg-level-4 th,html.dark table.dataTable tr.dtrg-group.dtrg-level-5 th{background-color:#ffffff03}div.dt-button-collection{overflow:visible!important;z-index:2002!important}div.dt-button-collection div.dtsb-searchBuilder{padding-left:1em!important;padding-right:1em!important}div.dt-button-collection.dtb-collection-closeable div.dtsb-titleRow{padding-right:40px}.dtsb-greyscale{border:1px solid #cecece!important}div.dtsb-logicContainer .dtsb-greyscale{border:none!important}div.dtsb-searchBuilder{justify-content:space-evenly;cursor:default;margin-bottom:1em;text-align:left}div.dtsb-searchBuilder button.dtsb-button,div.dtsb-searchBuilder select{font-size:1em}div.dtsb-searchBuilder div.dtsb-titleRow{justify-content:space-evenly;margin-bottom:.5em}div.dtsb-searchBuilder div.dtsb-titleRow div.dtsb-title{display:inline-block;padding-top:14px}div.dtsb-searchBuilder div.dtsb-titleRow div.dtsb-title:empty{display:inline}div.dtsb-searchBuilder div.dtsb-titleRow button.dtsb-clearAll{float:right;margin-bottom:.8em}div.dtsb-searchBuilder div.dtsb-vertical .dtsb-value,div.dtsb-searchBuilder div.dtsb-vertical .dtsb-data,div.dtsb-searchBuilder div.dtsb-vertical .dtsb-condition{display:block}div.dtsb-searchBuilder div.dtsb-group{position:relative;clear:both;margin-bottom:.8em}div.dtsb-searchBuilder div.dtsb-group button.dtsb-search{float:right}div.dtsb-searchBuilder div.dtsb-group button.dtsb-clearGroup{margin:2px;text-align:center;padding:0}div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);position:absolute;margin-top:.8em;margin-right:.8em}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria{margin-bottom:.8em;display:flex;justify-content:start;flex-flow:row wrap}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input{padding:.4em;margin-right:.8em;min-width:5em;max-width:20em;color:inherit;font-size:1em}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown option.dtsb-notItalic,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input option.dtsb-notItalic{font-style:normal}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-italic{font-style:italic}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont{flex:1;white-space:nowrap}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont span.dtsb-joiner{margin-right:.8em}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont input.dtsb-value{width:33%}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont select,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont input{height:100%;box-sizing:border-box}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer{margin-left:auto;display:inline-block}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-delete,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-right,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-left{margin-right:.8em}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-delete:last-child,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-right:last-child,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-left:last-child{margin-right:0}@media screen and (max-width: 550px){div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria{display:flex;flex-flow:none;flex-direction:column;justify-content:start;padding-right:calc(35px + .8em);margin-bottom:0}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:not(:first-child),div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:not(:nth-child(2)),div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:not(:last-child){padding-top:.8em}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:first-child,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:nth-child(2),div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:last-child{padding-top:0}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input{max-width:none;width:100%;margin-bottom:.8em;margin-right:.8em}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont{margin-right:.8em}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer{position:absolute;width:35px;display:flex;flex-wrap:wrap-reverse;right:0}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button{margin-right:0!important}}div.dtsb-searchBuilder button,div.dtsb-searchBuilder select.dtsb-dropDown,div.dtsb-searchBuilder input{background-color:#f9f9f9}div.dtsb-searchBuilder button.dtsb-button{position:relative;display:inline-block;box-sizing:border-box;padding:.5em 1em;border:1px solid rgba(0,0,0,.3);border-radius:2px;cursor:pointer;font-size:.88em;line-height:1.6em;color:inherit;white-space:nowrap;overflow:hidden;background-color:#0000001a;background:linear-gradient(to bottom,#e6e6e61a,#0000001a);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;outline:none;text-overflow:ellipsis}div.dtsb-searchBuilder button.dtsb-button:hover{background-color:#cecece;cursor:pointer}div.dtsb-searchBuilder div.dtsb-logicContainer{border:1px solid rgba(0,0,0,.3);background-color:#0000001a;background:linear-gradient(to right,#e6e6e61a,#0000001a)}div.dtsb-searchBuilder div.dtsb-logicContainer button{border:1px solid transparent;background:transparent}div.dtsb-searchBuilder button.dtsb-clearGroup{min-width:2em;padding:0}div.dtsb-searchBuilder button.dtsb-iptbtn{min-width:100px;text-align:left}div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer{border:1px solid;border-color:#cecece;border-radius:3px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer button.dtsb-logic{border:none;border-radius:0;flex-grow:1;flex-shrink:0;flex-basis:3em;margin:0}div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer button.dtsb-clearGroup{border:none;border-radius:0;width:2em;margin:0}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input{border:1px solid;border-radius:3px}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-condition{border-color:#48b13c}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-data{border-color:#e70f00}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-value,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-value{border-color:#0069ba}html.dark div.dtsb-searchBuilder button.dtsb-button,html.dark div.dtsb-searchBuilder select.dtsb-dropDown,html.dark div.dtsb-searchBuilder input.dtsb-input{background-color:#424549!important;color-scheme:dark}html.dark div.dtsb-searchBuilder button.dtsb-button{border:1px solid rgb(89,91,94);background:#ffffff26}html.dark div.dtsb-searchBuilder button.dtsb-button:hover{background:#b3b3b326}html.dark div.dtsb-searchBuilder div.dtsb-logicContainer{border:1px solid rgb(89,91,94)}html.dark div.dtsb-searchBuilder .dtsb-greyscale{border-color:#fff3!important}div.dtsp-topRow{display:flex;flex-direction:row;flex-wrap:nowrap;border:2px solid rgba(0,0,0,0);border-radius:3px;justify-content:space-around;align-content:flex-start;align-items:flex-start}div.dtsp-topRow input.dtsp-search{text-overflow:ellipsis;min-width:50px;flex-basis:90px;max-width:none}div.dtsp-topRow input.dtsp-search::placeholder{color:inherit}div.dtsp-topRow div.dtsp-subRow1{display:flex;flex-direction:row;flex-wrap:nowrap;flex:1 1 auto}div.dtsp-topRow div.dtsp-subRow1 div.dtsp-searchCont{position:relative;width:100%}div.dtsp-topRow div.dtsp-subRow1 input{padding-right:2em;width:100%!important;box-sizing:border-box;font-size:1em}div.dtsp-topRow div.dtsp-subRow1 input[disabled=disabled]{background-color:transparent;border:none;cursor:initial;box-shadow:none;padding-bottom:0;padding-top:0;min-height:1em;height:fit-content;box-sizing:content-box}div.dtsp-topRow div.dtsp-subRow1 input[disabled=disabled]::placeholder{color:initial;opacity:1}div.dtsp-topRow div.dtsp-subRow1 button.dtsp-searchIcon{position:absolute;top:0;right:0;bottom:0}div.dtsp-topRow div.dtsp-subRow1 button.dtsp-searchIcon span{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAABbmlDQ1BpY2MAACiRdZE7SwNBFIU/EyWikRRaiFhsoWKhEBREO42FTZAQFYza7G5eQhKX3QQJtoKNhWAh2vgq/AfaCrYKgqAIIhb+Al+NhPVOEkiQZJbZ+3FmzmXmDHjCGTPrtAYhm8vb0bmQthxb0Xzv+PHRxRSabjrWTCQSpun4eaRF1YdR1av5voajM55wTGhpF54wLTsvPC0c3sxbineFe8y0Hhc+ER6x5YDCt0o3KvymOFXhL8X2YnQWPKqnlqpjo47NtJ0VHhYeyGYKZvU86ib+RG5pQWqfzH4coswRQsOgwDoZ8oxKzUlmjX3Bsm+eDfGY8rcoYosjRVq8I6IWpGtCalL0hHwZiir3/3k6yfGxSnd/CNpeXfdzEHz7UNpz3d9T1y2dgfcFrnM1/4bkNPkt+l5NGziGwDZc3tQ04wCudqD32dJtvSx5ZXqSSfi4gK4YdN9Dx2olq+o650+wuCVPdAeHRzAk+wNrfw8JaBFXEnV+AAAACXBIWXMAAA9hAAAPYQGoP6dpAAABMUlEQVQoU6XRr0vDQRjH8akoM4iIjqGoOIZ5oIjB5XWxajaYDGLSIhhNYjcPRDSJwbQNw+L+BNGgYYo/5pT5/shz8vDlBgMPXux7z3N3z+25VOofYyCyd4ZYCavI4gXPsRp9LqiDdrEMH+8wv8Vh8gBfWclFPOEUN3hAHjlMoRa7wTzBS5xgKLFglPkZLjDic6HyDsEMNvGR2Nxifoci3tEI+X770JU0XmPXIlax+LTPh83fFox1X6kxyzdjm9UcdXi9S+Vti6svfyNULhNR9TVsYNhW6Ff9KKCNR7/Zv6eeaQ+6+qcdpu9BqGlp1HFgud+FYdzzUcUExu0Q/cdzHGEFetIlXKPjK/sbqYoOftMiS+j9jzEJPd1Wt+5+kdR/9EM9ucIC5jCbyPc01Q32kfsBppYz3hYFcCwAAAAASUVORK5CYII=)!important;background-repeat:no-repeat;background-position:center;background-size:12px}div.dtsp-topRow div.dtsp-subRow2{white-space:nowrap;flex:0 0 auto}div.dtsp-topRow button>span{display:inline-block;height:100%;width:100%}div.dtsp-topRow button.dtsp-nameButton span{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAABcGlDQ1BpY2MAACiRdZHNSwJBGMYftTDS8FCHkA57sOigIAXRMQzyYh3UIKvL7rirwe66zK6IdA26dBA6RF36OvQf1DXoWhAERRAR9B/0dQnZ3nEFJXSG2ffHs/O8zDwD+DM6M+yBJGCYDs+mU9JaYV0KviNMM4QoEjKzreXcUh59x88jfKI+JESv/vt6jlBRtRngGyKeYxZ3iBeIMzXHErxHPMbKcpH4hDjO6YDEt0JXPH4TXPL4SzDPZxcBv+gplbpY6WJW5gbxNHHM0KusfR5xk7BqruaoRmlNwEYWaaQgQUEVW9DhIEHVpMx6+5It3woq5GH0tVAHJ0cJZfLGSa1SV5WqRrpKU0dd5P4/T1ubnfG6h1PA4Kvrfk4CwX2g2XDd31PXbZ4BgRfg2uz4K5TT/DfpjY4WOwYiO8DlTUdTDoCrXWD82ZK53JICtPyaBnxcACMFYPQeGN7wsmr/x/kTkN+mJ7oDDo+AKdof2fwDCBRoDkL8UccAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAK2SURBVFgJ7ZY9j41BFICvryCExrJBQ6HyEYVEIREaUZDQIRoR2ViJKCioxV+gkVXYTVZEQiEUhG2EQnxUCh0FKolY4ut5XnM2cyfva3Pt5m7EPcmzZ2bemTNnzjkzd1utnvQi0IvAfxiBy5z5FoxO89kPY+8mbMjtzs47RXs5/WVpbAG6bWExt5PuIibvhVkwmC+ck3eK9ln6/fAddFojYzBVuYSBpcnIEvRaqOw2RcaN18FPuJH0JvRUxbT3wWf4ltiKPgfVidWlbGZgPozDFfgAC+EA/K2EI4cwcAJ+gPaeQ+VQU2SOMMGcPgPl/m/V2p50rrbRsRgt9Iv5h6xtpP22Bz7Ce1C+gFFxfKzOmShcU+Qmyh2w3w8rIJfddHTck66EukL/xPhj+JM8rHNmFys0Pg4v0up3aFNlwR9NYyodd3OL/C64zpsymcTFcf6ElM4YzjAWKYrJkaq8kE/yUYNP4BoYvS1QRo+hNtF5xfkTUjoTheukSFFMjlTFm6PjceOca/SMpKfeCR1L6Uzk/y2WIkVhNFJlJAZhP+hYns7b9D3IPuhY5mYrIv8OrQJvR5NYyNaW4jsU8pSGNySiVx4o5tXq3JkoXE/mg5R/M8dGJCJpKhaDcjBRdbI/Rm8g69c122om33BHmj2CHoV5qa9jUXBraJ+G1fAVjIBO1klc87ro1K4JZ/K35SWW3TwcyDd6TecqnAEd8cGq2+w84xvBm1n3vS0izKkkwh5XNC/GmFPqqAtPF89AOScKuemaNzoTV1SD5dtSbmLf1/RV+tC0WTgcj6R7HEtrVGWaqu/lYDZ/2pvxQ/kIyw/gFByHC9AHw910hv1aUUumyd8yy0QfhmEkfiNod0Xusct68J1qc8Tdux0Z97Q+hsDb+AYGYEbF/4Guw2Q/qDPqZG/zXgT+3Qj8AtKnfWhFwmuAAAAAAElFTkSuQmCC)!important;background-repeat:no-repeat;background-position:center;background-size:23px;vertical-align:bottom}div.dtsp-topRow button.dtsp-countButton span{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABcGlDQ1BpY2MAACiRdZHNSwJBGMYftTDS8FCHkA57sOigIAXRMQzyYh3UIKvL7rirwe66zK6IdA26dBA6RF36OvQf1DXoWhAERRAR9B/0dQnZ3nEFJXSG2ffHs/O8zDwD+DM6M+yBJGCYDs+mU9JaYV0KviNMM4QoEjKzreXcUh59x88jfKI+JESv/vt6jlBRtRngGyKeYxZ3iBeIMzXHErxHPMbKcpH4hDjO6YDEt0JXPH4TXPL4SzDPZxcBv+gplbpY6WJW5gbxNHHM0KusfR5xk7BqruaoRmlNwEYWaaQgQUEVW9DhIEHVpMx6+5It3woq5GH0tVAHJ0cJZfLGSa1SV5WqRrpKU0dd5P4/T1ubnfG6h1PA4Kvrfk4CwX2g2XDd31PXbZ4BgRfg2uz4K5TT/DfpjY4WOwYiO8DlTUdTDoCrXWD82ZK53JICtPyaBnxcACMFYPQeGN7wsmr/x/kTkN+mJ7oDDo+AKdof2fwDCBRoDkL8UccAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAG5SURBVEgN3VU9LwVBFF0fiYhofUSlEQkKhU7z/oBCQkIiGr9BgUbhVzy9BAnhFyjV/AYFiU5ICM7ZN+c5Zud5dm3lJmfmzrkz9+7cu3c3y/6jjOBSF8CxXS7FmTkbwqIJjDpJvTcmsJ4K3KPZUpyZsx0sxoB9J6mnAkyC7wGuuCFIipNtEcpcWExgXpOBc78vgj6N+QO4NVsjwdFM59tUIDxDrHMBOeIQ34C5ZDregXuAQm4YcI68nN9B3wr2PcwPAIPkN2EqtJH6b+QZm1ajjTx7BqwAr26Lb+C2Kvpbt0Mb2HAJ7NrGFGfmXO3DeA4UshDfQAVmH0gaUFg852TTTDvlxwBlCtxy9zXyBhQFaq0wMmIdRebrfgosA3zb2hKnqG0oqchp4QbuR8X0TjzABhbdOT8jnQ/atcgqpnfwOA7yqZyTU587ZkIGdesLTt2EkynOnbreMUUKMI/dA4B/QVOcO13CQh+5wWCgDwo/75u59odB/wjmfhbgvACcAOyZPHihMWAoIwxyCLgf1oxfgjzVbgBXSTzIN+f0pg6s5DkcesLMRpsBrgE2XO3CN64JFP7JtUeKHX4CKtRRXFZ+7dEAAAAASUVORK5CYII=)!important;background-repeat:no-repeat;background-position:center;background-size:18px;vertical-align:bottom}div.dtsp-topRow button.dtsp-collapseButton span.dtsp-caret{position:relative;top:9px;display:inline-block}div.dtsp-topRow button.dtsp-collapseButton.dtsp-rotated{transform:rotate(180deg)}div.dtsp-searchPane table thead th,div.dtsp-searchPane table thead td{width:100%!important}div.dt-button-collection{z-index:2002}div.dt-button-collection.dtb-collection-closeable div.dtsp-titleRow{padding-right:25px}div.dtsp-columns-1{max-width:100%;min-width:100%;margin:0!important}div.dtsp-columns-2{max-width:49%;min-width:49%;margin:0!important}div.dtsp-columns-3{max-width:32%;min-width:32%;margin:0!important}div.dtsp-columns-4{max-width:24%;min-width:24%;margin:0!important}div.dtsp-columns-5{max-width:19%;min-width:19%;margin:0!important}div.dtsp-columns-6{max-width:16%;min-width:16%;margin:0!important}div.dtsp-columns-7{max-width:14%;min-width:14%;margin:0!important}div.dtsp-columns-8{max-width:12%;min-width:12%;margin:0!important}div.dtsp-columns-9{max-width:10.5%;min-width:10.5%;margin:0!important}div.dtsp-narrow{flex-direction:column!important}div.dtsp-narrow div.dtsp-subRow1,div.dtsp-narrow div.dtsp-subRow2{width:100%}div.dtsp-narrow div.dtsp-subRow2 button{margin:0!important;width:25%!important}div.dt-button-collection div.dtsp-panesContainer{padding-left:1em;padding-right:1em;margin-bottom:0}div.dtsp-panesContainer{margin-bottom:1em}div.dtsp-searchPane div.dt-container,div.dtsp-searchPane div.dataTables_wrapper{width:100%}div.dtsp-searchPane div.dt-container div.dataTables_layout_cell,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_layout_cell{padding:0}div.dtsp-searchPane div.dt-container div.dt-scroll-head,div.dtsp-searchPane div.dt-container div.dataTables_scrollHead,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-head,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollHead{display:none!important}div.dtsp-searchPane div.dt-container div.dt-scroll-body,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody{background:#fff!important;border:none}div.dtsp-searchPane div.dt-container div.dt-scroll-body thead,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody thead,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body thead,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody thead{display:none}div.dtsp-searchPane div.dt-container div.dt-scroll-body table tr>th,div.dtsp-searchPane div.dt-container div.dt-scroll-body table tr>td,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody table tr>th,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody table tr>td,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body table tr>th,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body table tr>td,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody table tr>th,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody table tr>td{padding:5px 10px}div.dtsp-searchPane div.dt-container div.dt-scroll-body td.dtsp-nameColumn,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody td.dtsp-nameColumn,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body td.dtsp-nameColumn,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody td.dtsp-nameColumn{width:100%!important}div.dtsp-searchPane div.dt-container div.dt-scroll-body div.dtsp-nameCont,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody div.dtsp-nameCont,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body div.dtsp-nameCont,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody div.dtsp-nameCont{width:100%;display:flex;flex-direction:row;justify-content:flex-start;align-content:flex-start;align-items:flex-start}div.dtsp-searchPane div.dt-container div.dt-scroll-body div.dtsp-nameCont span.dtsp-name,div.dtsp-searchPane div.dt-container div.dt-scroll-body div.dtsp-nameCont span.dtsp-pill,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-name,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-pill,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body div.dtsp-nameCont span.dtsp-name,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body div.dtsp-nameCont span.dtsp-pill,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-name,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-pill{cursor:default}div.dtsp-searchPane div.dt-container div.dt-scroll-body div.dtsp-nameCont span.dtsp-name,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-name,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body div.dtsp-nameCont span.dtsp-name,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-name{text-overflow:ellipsis;overflow:hidden;display:inline-block;vertical-align:middle;white-space:nowrap;flex-grow:1;text-align:left}div.dtsp-searchPane div.dt-container div.dt-scroll-body div.dtsp-nameCont span.dtsp-pill,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-pill,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body div.dtsp-nameCont span.dtsp-pill,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-pill{display:inline-block;background-color:#cfcfcf;text-align:center;border-radius:10px;width:auto;min-width:30px;color:#000;font-size:.9em;padding:0 4px}div.dtsp-searchPane div.dt-container div.dt-scroll-body div.dtsp-nameCont span.dtsp-pill:empty,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-pill:empty,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body div.dtsp-nameCont span.dtsp-pill:empty,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-pill:empty{display:none}div.dtsp-panesContainer{clear:both;padding-left:0;padding-right:0;text-align:center}div.dtsp-panesContainer div.dtsp-searchPanes{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-content:flex-start;align-items:stretch;clear:both;text-align:left}div.dtsp-panesContainer div.dtsp-searchPanes div.dtsp-searchPane{flex-grow:1;flex-shrink:0;font-size:.9em;margin-top:15px!important}div.dtsp-panesContainer div.dtsp-searchPanes div.dtsp-searchPane div.dt-container,div.dtsp-panesContainer div.dtsp-searchPanes div.dtsp-searchPane div.dataTables_wrapper{flex:1;box-sizing:border-box}div.dtsp-panesContainer div.dtsp-searchPanes div.dtsp-searchPane div.dt-container div.dt-search,div.dtsp-panesContainer div.dtsp-searchPanes div.dtsp-searchPane div.dt-container div.dataTables_filter,div.dtsp-panesContainer div.dtsp-searchPanes div.dtsp-searchPane div.dataTables_wrapper div.dt-search,div.dtsp-panesContainer div.dtsp-searchPanes div.dtsp-searchPane div.dataTables_wrapper div.dataTables_filter{display:none}div.dtsp-panesContainer div.dtsp-title{float:left;padding:10px 0}div.dtsp-panesContainer button.dtsp-clearAll,div.dtsp-panesContainer button.dtsp-collapseAll,div.dtsp-panesContainer button.dtsp-showAll{float:right}div.dtsp-hidden{display:none!important}html.dark div.dtsp-topRow div.dtsp-subRow1 div.dtsp-searchCont input[disabled=disabled]::placeholder,html[data-bs-theme=dark] div.dtsp-topRow div.dtsp-subRow1 div.dtsp-searchCont input[disabled=disabled]::placeholder{color:#fff}div.dtsp-searchPane div.dt-container,div.dtsp-searchPane div.dataTables_wrapper{border:1px solid #f0f0f0;border-radius:4px;overflow:hidden}div.dtsp-searchPane div.dt-container:hover,div.dtsp-searchPane div.dataTables_wrapper:hover{border:1px solid #cfcfcf}div.dtsp-searchPane div.dt-container div.dt-scroll,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll{margin:-5px 0}div.dtsp-searchPane div.dt-container table.dataTable,div.dtsp-searchPane div.dataTables_wrapper table.dataTable{border-bottom:none!important}div.dtsp-searchPane div.dtsp-topRow{border:1px solid transparent}div.dtsp-searchPane div.dtsp-topRow div.dtsp-subRow1 input[disabled=disabled]{padding-bottom:5px}div.dtsp-searchPane div.dtsp-topRow div.dtsp-searchCont input.dtsp-search{border:none;padding-left:3px}div.dtsp-searchPane div.dtsp-topRow.dtsp-bordered{border:1px solid #f0f0f0;border-radius:3px}div.dtsp-searchPane div.dtsp-topRow.dtsp-bordered:hover{background-color:#f0f0f0}div.dtsp-searchPane input.dtsp-paneInputButton,div.dtsp-searchPane button.dtsp-paneButton{height:35px;width:35px;min-width:0;display:inline-block;margin:2px 2px 0;border:0px solid transparent;background-color:transparent}div.dtsp-searchPane input.dtsp-paneInputButton:hover,div.dtsp-searchPane button.dtsp-paneButton:hover{background-color:#f0f0f0;border-radius:2px;cursor:pointer}div.dtsp-searchPane button.dtsp-paneButton{vertical-align:middle;opacity:.6}div.dtsp-panesContainer button.dtsp-clearAll,div.dtsp-panesContainer button.dtsp-collapseAll,div.dtsp-panesContainer button.dtsp-showAll{border:1px solid transparent;background-color:transparent}div.dtsp-panesContainer button.dtsp-clearAll:hover,div.dtsp-panesContainer button.dtsp-collapseAll:hover,div.dtsp-panesContainer button.dtsp-showAll:hover{background-color:#f0f0f0;border-radius:2px;cursor:pointer}div.dtsp-panesContainer button.dtsp-disabledButton{cursor:default!important;color:#7c7c7c}div.dtsp-panesContainer button.dtsp-disabledButton:hover{background-color:transparent}div.dtsp-panesContainer button.dtsp-disabledButton:focus{outline:none}@media screen and (max-width: 767px){div.dtsp-columns-4,div.dtsp-columns-5,div.dtsp-columns-6{max-width:31%!important;min-width:31%!important}}@media screen and (max-width: 640px){div.dtsp-searchPanes{flex-direction:column!important}div.dtsp-searchPane{max-width:98%!important;min-width:98%!important}}html.dark div.dtsp-topRow div.dtsp-subRow1 button.dtsp-searchIcon span,html.dark div.dtsp-topRow button.dtsp-nameButton span,html.dark div.dtsp-topRow button.dtsp-countButton span{filter:invert(1)}html.dark div.dtsp-topRow input.dtsp-paneInputButton,html.dark div.dtsp-topRow button.dtsp-paneButton{color:inherit}html.dark div.dtsp-topRow input.dtsp-paneInputButton:hover,html.dark div.dtsp-topRow button.dtsp-paneButton:hover{background-color:#404549}html.dark div.dtsp-topRow.dtsp-bordered{border:1px solid rgba(255,255,255,.2);background:#2f3438!important}html.dark div.dtsp-topRow.dtsp-bordered:hover{border:1px solid rgba(255,255,255,.3)}html.dark div.dtsp-panesContainer button.dtsp-clearAll,html.dark div.dtsp-panesContainer button.dtsp-collapseAll,html.dark div.dtsp-panesContainer button.dtsp-showAll{color:inherit}html.dark div.dtsp-panesContainer button.dtsp-clearAll:hover,html.dark div.dtsp-panesContainer button.dtsp-collapseAll:hover,html.dark div.dtsp-panesContainer button.dtsp-showAll:hover{background-color:#404549}html.dark div.dtsp-panesContainer button.dtsp-disabledButton{color:#7c7c7c}html.dark div.dtsp-searchPane div.dt-container,html.dark div.dtsp-searchPane div.dataTables_wrapper{border:1px solid rgba(255,255,255,.2)}html.dark div.dtsp-searchPane div.dt-container:hover,html.dark div.dtsp-searchPane div.dataTables_wrapper:hover{border:1px solid rgba(255,255,255,.3)}html.dark div.dtsp-searchPane div.dt-container div.dt-scroll-body,html.dark div.dtsp-searchPane div.dt-container div.dataTables_scrollBody,html.dark div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body,html.dark div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody{background:#2f3438!important}html.dark div.dtsp-searchPane div.dt-container div.dt-scroll-body div.dtsp-nameCont span.dtsp-pill,html.dark div.dtsp-searchPane div.dt-container div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-pill,html.dark div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body div.dtsp-nameCont span.dtsp-pill,html.dark div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-pill{background-color:#212529;color:inherit}table.dataTable>tbody>tr>.selected{background-color:#0d6efde6;color:#fff}table.dataTable>tbody>tr>.dt-select{text-align:center;vertical-align:middle}table.dataTable>thead>tr>.dt-select{text-align:center}table.dataTable input.dt-select-checkbox{appearance:none;position:relative;display:inline-block;width:12px;height:12px;border:1px solid;border-radius:3px;vertical-align:middle;margin-top:1px;color:inherit;font-size:20px;line-height:1em}table.dataTable input.dt-select-checkbox:checked:after{display:block;content:\"\\2713\";margin-top:-8px}table.dataTable input.dt-select-checkbox:indeterminate:after{display:block;position:absolute;content:\" \";top:3px;left:3px;height:4px;width:4px;background-color:#000;border-radius:2px}table.dataTable>tbody>tr.selected input.dt-select-checkbox:checked{border:1px solid}table.dataTable>tbody>tr>td.select-checkbox,table.dataTable>tbody>tr>th.select-checkbox{position:relative}table.dataTable>tbody>tr>td.select-checkbox:before,table.dataTable>tbody>tr>th.select-checkbox:before{display:block;position:absolute;top:50%;left:50%;width:12px;height:12px;box-sizing:border-box;content:\" \";margin-top:-6px;margin-left:-6px;border:1px solid;border-radius:3px}table.dataTable>tbody>tr.selected>td.select-checkbox:before,table.dataTable>tbody>tr.selected>th.select-checkbox:before{border:1px solid;content:\"\\2713\";font-size:20px;line-height:6px;text-align:center}table.dataTable.compact>tbody>tr>td.select-checkbox:before,table.dataTable.compact>tbody>tr>th.select-checkbox:before{margin-top:-12px}table.dataTable.compact>tbody>tr.selected>td.select-checkbox:after,table.dataTable.compact>tbody>tr.selected>th.select-checkbox:after{margin-top:-16px}div.dt-container span.select-info,div.dt-container span.select-item{margin-left:.5em}html.dark table.dataTable input.dt-select-checkbox:indeterminate:after,html[data-bs-theme=dark] table.dataTable input.dt-select-checkbox:indeterminate:after{background-color:#fff}@media screen and (max-width: 640px){div.dt-container span.select-info,div.dt-container span.select-item{margin-left:0;display:block}}\n",
|
|
"</style>\n",
|
|
"<div id=\"itables_init_notebook_mode_60f285f6_4be0_46a1_8348_969204f52615\" style=\"vertical-align:middle; text-align:left\">\n",
|
|
"<div style=\"float:left; margin-right: 10px;\">\n",
|
|
"<a href=https://mwouts.github.io/itables/><svg class=\"main-svg\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
|
|
"width=\"64\" viewBox=\"0 0 500 400\" style=\"font-family: 'Droid Sans', sans-serif;\">\n",
|
|
" <g style=\"fill:#d9d7fc\">\n",
|
|
" <path d=\"M100,400H500V357H100Z\" />\n",
|
|
" <path d=\"M100,300H400V257H100Z\" />\n",
|
|
" <path d=\"M0,200H400V157H0Z\" />\n",
|
|
" <path d=\"M100,100H500V57H100Z\" />\n",
|
|
" <path d=\"M100,350H500V307H100Z\" />\n",
|
|
" <path d=\"M100,250H400V207H100Z\" />\n",
|
|
" <path d=\"M0,150H400V107H0Z\" />\n",
|
|
" <path d=\"M100,50H500V7H100Z\" />\n",
|
|
" </g>\n",
|
|
" <g style=\"fill:#1a1366;stroke:#1a1366;\">\n",
|
|
" <rect x=\"100\" y=\"7\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"0\" y=\"107\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"0;0;400\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"207\" width=\"300\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;300;0\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;400\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"307\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <g style=\"fill:transparent;stroke-width:8; stroke-linejoin:round\" rx=\"5\">\n",
|
|
" <g transform=\"translate(45 50) rotate(-45)\">\n",
|
|
" <circle r=\"33\" cx=\"0\" cy=\"0\" />\n",
|
|
" <rect x=\"-8\" y=\"32\" width=\"16\" height=\"30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(450 152)\">\n",
|
|
" <polyline points=\"-15,-20 -35,-20 -35,40 25,40 25,20\" />\n",
|
|
" <rect x=\"-15\" y=\"-40\" width=\"60\" height=\"60\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(50 352)\">\n",
|
|
" <polygon points=\"-35,-5 0,-40 35,-5\" />\n",
|
|
" <polygon points=\"-35,10 0,45 35,10\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(75 250)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(425 250) rotate(180)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
"</svg>\n",
|
|
"</a>\n",
|
|
"</div>\n",
|
|
"<div>\n",
|
|
"This is the <code>init_notebook_mode</code> cell from ITables v2.0.1<br>\n",
|
|
"(you should not see this message - is your notebook <it>trusted</it>?)\n",
|
|
"</div>\n",
|
|
"</div>\n",
|
|
"<script>\n",
|
|
"window._datatables_src_for_itables_2_0_1 = \"data:text/javascript;base64,dmFyIE5vPU9iamVjdC5jcmVhdGU7dmFyIF9hPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgRW89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgT289T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIFJvPU9iamVjdC5nZXRQcm90b3R5cGVPZixMbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBXcj0odD0+dHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6dHlwZW9mIFByb3h5PCJ1Ij9uZXcgUHJveHkodCx7Z2V0OihlLHIpPT4odHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6ZSlbcl19KTp0KShmdW5jdGlvbih0KXtpZih0eXBlb2YgcmVxdWlyZTwidSIpcmV0dXJuIHJlcXVpcmUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3Rocm93IEVycm9yKCdEeW5hbWljIHJlcXVpcmUgb2YgIicrdCsnIiBpcyBub3Qgc3VwcG9ydGVkJyl9KTt2YXIgQ2E9KHQsZSk9PigpPT4oZXx8dCgoZT17ZXhwb3J0czp7fX0pLmV4cG9ydHMsZSksZS5leHBvcnRzKTt2YXIgem89KHQsZSxyLG4pPT57aWYoZSYmdHlwZW9mIGU9PSJvYmplY3QifHx0eXBlb2YgZT09ImZ1bmN0aW9uIilmb3IobGV0IHMgb2YgT28oZSkpIUxvLmNhbGwodCxzKSYmcyE9PXImJl9hKHQscyx7Z2V0OigpPT5lW3NdLGVudW1lcmFibGU6IShuPUVvKGUscykpfHxuLmVudW1lcmFibGV9KTtyZXR1cm4gdH07dmFyIG5lPSh0LGUscik9PihyPXQhPW51bGw/Tm8oUm8odCkpOnt9LHpvKGV8fCF0fHwhdC5fX2VzTW9kdWxlP19hKHIsImRlZmF1bHQiLHt2YWx1ZTp0LGVudW1lcmFibGU6ITB9KTpyLHQpKTt2YXIga2E9Q2EoKFRhLGlpKT0+eyhmdW5jdGlvbih0KXt0eXBlb2YgVGE9PSJvYmplY3QiJiZ0eXBlb2YgaWk8InUiP2lpLmV4cG9ydHM9dCgpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKFtdLHQpOih0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLkpTWmlwPXQoKX0pKGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIHQoZSxyLG4pe2Z1bmN0aW9uIHMoYyxwKXtpZighcltjXSl7aWYoIWVbY10pe3ZhciBiPXR5cGVvZiBXcj09ImZ1bmN0aW9uIiYmV3I7aWYoIXAmJmIpcmV0dXJuIGIoYywhMCk7aWYoYSlyZXR1cm4gYShjLCEwKTt2YXIgbT1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitjKyInIik7dGhyb3cgbS5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixtfXZhciB5PXJbY109e2V4cG9ydHM6e319O2VbY11bMF0uY2FsbCh5LmV4cG9ydHMsZnVuY3Rpb24oVCl7dmFyIHc9ZVtjXVsxXVtUXTtyZXR1cm4gcyh3fHxUKX0seSx5LmV4cG9ydHMsdCxlLHIsbil9cmV0dXJuIHJbY10uZXhwb3J0c31mb3IodmFyIGE9dHlwZW9mIFdyPT0iZnVuY3Rpb24iJiZXcixsPTA7bDxuLmxlbmd0aDtsKyspcyhuW2xdKTtyZXR1cm4gc30oezE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi91dGlscyIpLHM9dCgiLi9zdXBwb3J0IiksYT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iO3IuZW5jb2RlPWZ1bmN0aW9uKGwpe2Zvcih2YXIgYyxwLGIsbSx5LFQsdyxrPVtdLFA9MCxGPWwubGVuZ3RoLGg9RixvPW4uZ2V0VHlwZU9mKGwpIT09InN0cmluZyI7UDxsLmxlbmd0aDspaD1GLVAsYj1vPyhjPWxbUCsrXSxwPVA8Rj9sW1ArK106MCxQPEY/bFtQKytdOjApOihjPWwuY2hhckNvZGVBdChQKyspLHA9UDxGP2wuY2hhckNvZGVBdChQKyspOjAsUDxGP2wuY2hhckNvZGVBdChQKyspOjApLG09Yz4+Mix5PSgzJmMpPDw0fHA+PjQsVD0xPGg/KDE1JnApPDwyfGI+PjY6NjQsdz0yPGg/NjMmYjo2NCxrLnB1c2goYS5jaGFyQXQobSkrYS5jaGFyQXQoeSkrYS5jaGFyQXQoVCkrYS5jaGFyQXQodykpO3JldHVybiBrLmpvaW4oIiIpfSxyLmRlY29kZT1mdW5jdGlvbihsKXt2YXIgYyxwLGIsbSx5LFQsdz0wLGs9MCxQPSJkYXRhOiI7aWYobC5zdWJzdHIoMCxQLmxlbmd0aCk9PT1QKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBiYXNlNjQgaW5wdXQsIGl0IGxvb2tzIGxpa2UgYSBkYXRhIHVybC4iKTt2YXIgRixoPTMqKGw9bC5yZXBsYWNlKC9bXkEtWmEtejAtOSsvPV0vZywiIikpLmxlbmd0aC80O2lmKGwuY2hhckF0KGwubGVuZ3RoLTEpPT09YS5jaGFyQXQoNjQpJiZoLS0sbC5jaGFyQXQobC5sZW5ndGgtMik9PT1hLmNoYXJBdCg2NCkmJmgtLSxoJTEhPTApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGJhc2U2NCBpbnB1dCwgYmFkIGNvbnRlbnQgbGVuZ3RoLiIpO2ZvcihGPXMudWludDhhcnJheT9uZXcgVWludDhBcnJheSgwfGgpOm5ldyBBcnJheSgwfGgpO3c8bC5sZW5ndGg7KWM9YS5pbmRleE9mKGwuY2hhckF0KHcrKykpPDwyfChtPWEuaW5kZXhPZihsLmNoYXJBdCh3KyspKSk+PjQscD0oMTUmbSk8PDR8KHk9YS5pbmRleE9mKGwuY2hhckF0KHcrKykpKT4+MixiPSgzJnkpPDw2fChUPWEuaW5kZXhPZihsLmNoYXJBdCh3KyspKSksRltrKytdPWMseSE9PTY0JiYoRltrKytdPXApLFQhPT02NCYmKEZbaysrXT1iKTtyZXR1cm4gRn19LHsiLi9zdXBwb3J0IjozMCwiLi91dGlscyI6MzJ9XSwyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vZXh0ZXJuYWwiKSxzPXQoIi4vc3RyZWFtL0RhdGFXb3JrZXIiKSxhPXQoIi4vc3RyZWFtL0NyYzMyUHJvYmUiKSxsPXQoIi4vc3RyZWFtL0RhdGFMZW5ndGhQcm9iZSIpO2Z1bmN0aW9uIGMocCxiLG0seSxUKXt0aGlzLmNvbXByZXNzZWRTaXplPXAsdGhpcy51bmNvbXByZXNzZWRTaXplPWIsdGhpcy5jcmMzMj1tLHRoaXMuY29tcHJlc3Npb249eSx0aGlzLmNvbXByZXNzZWRDb250ZW50PVR9Yy5wcm90b3R5cGU9e2dldENvbnRlbnRXb3JrZXI6ZnVuY3Rpb24oKXt2YXIgcD1uZXcgcyhuLlByb21pc2UucmVzb2x2ZSh0aGlzLmNvbXByZXNzZWRDb250ZW50KSkucGlwZSh0aGlzLmNvbXByZXNzaW9uLnVuY29tcHJlc3NXb3JrZXIoKSkucGlwZShuZXcgbCgiZGF0YV9sZW5ndGgiKSksYj10aGlzO3JldHVybiBwLm9uKCJlbmQiLGZ1bmN0aW9uKCl7aWYodGhpcy5zdHJlYW1JbmZvLmRhdGFfbGVuZ3RoIT09Yi51bmNvbXByZXNzZWRTaXplKXRocm93IG5ldyBFcnJvcigiQnVnIDogdW5jb21wcmVzc2VkIGRhdGEgc2l6ZSBtaXNtYXRjaCIpfSkscH0sZ2V0Q29tcHJlc3NlZFdvcmtlcjpmdW5jdGlvbigpe3JldHVybiBuZXcgcyhuLlByb21pc2UucmVzb2x2ZSh0aGlzLmNvbXByZXNzZWRDb250ZW50KSkud2l0aFN0cmVhbUluZm8oImNvbXByZXNzZWRTaXplIix0aGlzLmNvbXByZXNzZWRTaXplKS53aXRoU3RyZWFtSW5mbygidW5jb21wcmVzc2VkU2l6ZSIsdGhpcy51bmNvbXByZXNzZWRTaXplKS53aXRoU3RyZWFtSW5mbygiY3JjMzIiLHRoaXMuY3JjMzIpLndpdGhTdHJlYW1JbmZvKCJjb21wcmVzc2lvbiIsdGhpcy5jb21wcmVzc2lvbil9fSxjLmNyZWF0ZVdvcmtlckZyb209ZnVuY3Rpb24ocCxiLG0pe3JldHVybiBwLnBpcGUobmV3IGEpLnBpcGUobmV3IGwoInVuY29tcHJlc3NlZFNpemUiKSkucGlwZShiLmNvbXByZXNzV29ya2VyKG0pKS5waXBlKG5ldyBsKCJjb21wcmVzc2VkU2l6ZSIpKS53aXRoU3RyZWFtSW5mbygiY29tcHJlc3Npb24iLGIpfSxlLmV4cG9ydHM9Y30seyIuL2V4dGVybmFsIjo2LCIuL3N0cmVhbS9DcmMzMlByb2JlIjoyNSwiLi9zdHJlYW0vRGF0YUxlbmd0aFByb2JlIjoyNiwiLi9zdHJlYW0vRGF0YVdvcmtlciI6Mjd9XSwzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vc3RyZWFtL0dlbmVyaWNXb3JrZXIiKTtyLlNUT1JFPXttYWdpYzoiXDBcMCIsY29tcHJlc3NXb3JrZXI6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG4oIlNUT1JFIGNvbXByZXNzaW9uIil9LHVuY29tcHJlc3NXb3JrZXI6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG4oIlNUT1JFIGRlY29tcHJlc3Npb24iKX19LHIuREVGTEFURT10KCIuL2ZsYXRlIil9LHsiLi9mbGF0ZSI6NywiLi9zdHJlYW0vR2VuZXJpY1dvcmtlciI6Mjh9XSw0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vdXRpbHMiKSxzPWZ1bmN0aW9uKCl7Zm9yKHZhciBhLGw9W10sYz0wO2M8MjU2O2MrKyl7YT1jO2Zvcih2YXIgcD0wO3A8ODtwKyspYT0xJmE/Mzk4ODI5MjM4NF5hPj4+MTphPj4+MTtsW2NdPWF9cmV0dXJuIGx9KCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGEsbCl7cmV0dXJuIGEhPT12b2lkIDAmJmEubGVuZ3RoP24uZ2V0VHlwZU9mKGEpIT09InN0cmluZyI/ZnVuY3Rpb24oYyxwLGIsbSl7dmFyIHk9cyxUPW0rYjtjXj0tMTtmb3IodmFyIHc9bTt3PFQ7dysrKWM9Yz4+PjheeVsyNTUmKGNecFt3XSldO3JldHVybi0xXmN9KDB8bCxhLGEubGVuZ3RoLDApOmZ1bmN0aW9uKGMscCxiLG0pe3ZhciB5PXMsVD1tK2I7Y149LTE7Zm9yKHZhciB3PW07dzxUO3crKyljPWM+Pj44XnlbMjU1JihjXnAuY2hhckNvZGVBdCh3KSldO3JldHVybi0xXmN9KDB8bCxhLGEubGVuZ3RoLDApOjB9fSx7Ii4vdXRpbHMiOjMyfV0sNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmJhc2U2ND0hMSxyLmJpbmFyeT0hMSxyLmRpcj0hMSxyLmNyZWF0ZUZvbGRlcnM9ITAsci5kYXRlPW51bGwsci5jb21wcmVzc2lvbj1udWxsLHIuY29tcHJlc3Npb25PcHRpb25zPW51bGwsci5jb21tZW50PW51bGwsci51bml4UGVybWlzc2lvbnM9bnVsbCxyLmRvc1Blcm1pc3Npb25zPW51bGx9LHt9XSw2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPW51bGw7bj10eXBlb2YgUHJvbWlzZTwidSI/UHJvbWlzZTp0KCJsaWUiKSxlLmV4cG9ydHM9e1Byb21pc2U6bn19LHtsaWU6Mzd9XSw3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXR5cGVvZiBVaW50OEFycmF5PCJ1IiYmdHlwZW9mIFVpbnQxNkFycmF5PCJ1IiYmdHlwZW9mIFVpbnQzMkFycmF5PCJ1IixzPXQoInBha28iKSxhPXQoIi4vdXRpbHMiKSxsPXQoIi4vc3RyZWFtL0dlbmVyaWNXb3JrZXIiKSxjPW4/InVpbnQ4YXJyYXkiOiJhcnJheSI7ZnVuY3Rpb24gcChiLG0pe2wuY2FsbCh0aGlzLCJGbGF0ZVdvcmtlci8iK2IpLHRoaXMuX3Bha289bnVsbCx0aGlzLl9wYWtvQWN0aW9uPWIsdGhpcy5fcGFrb09wdGlvbnM9bSx0aGlzLm1ldGE9e319ci5tYWdpYz0iXGJcMCIsYS5pbmhlcml0cyhwLGwpLHAucHJvdG90eXBlLnByb2Nlc3NDaHVuaz1mdW5jdGlvbihiKXt0aGlzLm1ldGE9Yi5tZXRhLHRoaXMuX3Bha289PT1udWxsJiZ0aGlzLl9jcmVhdGVQYWtvKCksdGhpcy5fcGFrby5wdXNoKGEudHJhbnNmb3JtVG8oYyxiLmRhdGEpLCExKX0scC5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtsLnByb3RvdHlwZS5mbHVzaC5jYWxsKHRoaXMpLHRoaXMuX3Bha289PT1udWxsJiZ0aGlzLl9jcmVhdGVQYWtvKCksdGhpcy5fcGFrby5wdXNoKFtdLCEwKX0scC5wcm90b3R5cGUuY2xlYW5VcD1mdW5jdGlvbigpe2wucHJvdG90eXBlLmNsZWFuVXAuY2FsbCh0aGlzKSx0aGlzLl9wYWtvPW51bGx9LHAucHJvdG90eXBlLl9jcmVhdGVQYWtvPWZ1bmN0aW9uKCl7dGhpcy5fcGFrbz1uZXcgc1t0aGlzLl9wYWtvQWN0aW9uXSh7cmF3OiEwLGxldmVsOnRoaXMuX3Bha29PcHRpb25zLmxldmVsfHwtMX0pO3ZhciBiPXRoaXM7dGhpcy5fcGFrby5vbkRhdGE9ZnVuY3Rpb24obSl7Yi5wdXNoKHtkYXRhOm0sbWV0YTpiLm1ldGF9KX19LHIuY29tcHJlc3NXb3JrZXI9ZnVuY3Rpb24oYil7cmV0dXJuIG5ldyBwKCJEZWZsYXRlIixiKX0sci51bmNvbXByZXNzV29ya2VyPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBwKCJJbmZsYXRlIix7fSl9fSx7Ii4vc3RyZWFtL0dlbmVyaWNXb3JrZXIiOjI4LCIuL3V0aWxzIjozMixwYWtvOjM4fV0sODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHksVCl7dmFyIHcsaz0iIjtmb3Iodz0wO3c8VDt3Kyspays9U3RyaW5nLmZyb21DaGFyQ29kZSgyNTUmeSkseT4+Pj04O3JldHVybiBrfWZ1bmN0aW9uIHMoeSxULHcsayxQLEYpe3ZhciBoLG8sZj15LmZpbGUsQz15LmNvbXByZXNzaW9uLEI9RiE9PWMudXRmOGVuY29kZSx1PWEudHJhbnNmb3JtVG8oInN0cmluZyIsRihmLm5hbWUpKSx6PWEudHJhbnNmb3JtVG8oInN0cmluZyIsYy51dGY4ZW5jb2RlKGYubmFtZSkpLHE9Zi5jb21tZW50LGV0PWEudHJhbnNmb3JtVG8oInN0cmluZyIsRihxKSksTz1hLnRyYW5zZm9ybVRvKCJzdHJpbmciLGMudXRmOGVuY29kZShxKSksWj16Lmxlbmd0aCE9PWYubmFtZS5sZW5ndGgsZz1PLmxlbmd0aCE9PXEubGVuZ3RoLF89IiIsUz0iIixOPSIiLFI9Zi5kaXIsTD1mLmRhdGUsWD17Y3JjMzI6MCxjb21wcmVzc2VkU2l6ZTowLHVuY29tcHJlc3NlZFNpemU6MH07VCYmIXd8fChYLmNyYzMyPXkuY3JjMzIsWC5jb21wcmVzc2VkU2l6ZT15LmNvbXByZXNzZWRTaXplLFgudW5jb21wcmVzc2VkU2l6ZT15LnVuY29tcHJlc3NlZFNpemUpO3ZhciBqPTA7VCYmKGp8PTgpLEJ8fCFaJiYhZ3x8KGp8PTIwNDgpO3ZhciBHPTAsYXQ9MDtSJiYoR3w9MTYpLFA9PT0iVU5JWCI/KGF0PTc5OCxHfD1mdW5jdGlvbih0dCx5dCl7dmFyIFR0PXR0O3JldHVybiB0dHx8KFR0PXl0PzE2ODkzOjMzMjA0KSwoNjU1MzUmVHQpPDwxNn0oZi51bml4UGVybWlzc2lvbnMsUikpOihhdD0yMCxHfD1mdW5jdGlvbih0dCl7cmV0dXJuIDYzJih0dHx8MCl9KGYuZG9zUGVybWlzc2lvbnMpKSxoPUwuZ2V0VVRDSG91cnMoKSxoPDw9NixofD1MLmdldFVUQ01pbnV0ZXMoKSxoPDw9NSxofD1MLmdldFVUQ1NlY29uZHMoKS8yLG89TC5nZXRVVENGdWxsWWVhcigpLTE5ODAsbzw8PTQsb3w9TC5nZXRVVENNb250aCgpKzEsbzw8PTUsb3w9TC5nZXRVVENEYXRlKCksWiYmKFM9bigxLDEpK24ocCh1KSw0KSt6LF8rPSJ1cCIrbihTLmxlbmd0aCwyKStTKSxnJiYoTj1uKDEsMSkrbihwKGV0KSw0KStPLF8rPSJ1YyIrbihOLmxlbmd0aCwyKStOKTt2YXIgSj0iIjtyZXR1cm4gSis9YApcMGAsSis9bihqLDIpLEorPUMubWFnaWMsSis9bihoLDIpLEorPW4obywyKSxKKz1uKFguY3JjMzIsNCksSis9bihYLmNvbXByZXNzZWRTaXplLDQpLEorPW4oWC51bmNvbXByZXNzZWRTaXplLDQpLEorPW4odS5sZW5ndGgsMiksSis9bihfLmxlbmd0aCwyKSx7ZmlsZVJlY29yZDpiLkxPQ0FMX0ZJTEVfSEVBREVSK0ordStfLGRpclJlY29yZDpiLkNFTlRSQUxfRklMRV9IRUFERVIrbihhdCwyKStKK24oZXQubGVuZ3RoLDIpKyJcMFwwXDBcMCIrbihHLDQpK24oayw0KSt1K18rZXR9fXZhciBhPXQoIi4uL3V0aWxzIiksbD10KCIuLi9zdHJlYW0vR2VuZXJpY1dvcmtlciIpLGM9dCgiLi4vdXRmOCIpLHA9dCgiLi4vY3JjMzIiKSxiPXQoIi4uL3NpZ25hdHVyZSIpO2Z1bmN0aW9uIG0oeSxULHcsayl7bC5jYWxsKHRoaXMsIlppcEZpbGVXb3JrZXIiKSx0aGlzLmJ5dGVzV3JpdHRlbj0wLHRoaXMuemlwQ29tbWVudD1ULHRoaXMuemlwUGxhdGZvcm09dyx0aGlzLmVuY29kZUZpbGVOYW1lPWssdGhpcy5zdHJlYW1GaWxlcz15LHRoaXMuYWNjdW11bGF0ZT0hMSx0aGlzLmNvbnRlbnRCdWZmZXI9W10sdGhpcy5kaXJSZWNvcmRzPVtdLHRoaXMuY3VycmVudFNvdXJjZU9mZnNldD0wLHRoaXMuZW50cmllc0NvdW50PTAsdGhpcy5jdXJyZW50RmlsZT1udWxsLHRoaXMuX3NvdXJjZXM9W119YS5pbmhlcml0cyhtLGwpLG0ucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oeSl7dmFyIFQ9eS5tZXRhLnBlcmNlbnR8fDAsdz10aGlzLmVudHJpZXNDb3VudCxrPXRoaXMuX3NvdXJjZXMubGVuZ3RoO3RoaXMuYWNjdW11bGF0ZT90aGlzLmNvbnRlbnRCdWZmZXIucHVzaCh5KToodGhpcy5ieXRlc1dyaXR0ZW4rPXkuZGF0YS5sZW5ndGgsbC5wcm90b3R5cGUucHVzaC5jYWxsKHRoaXMse2RhdGE6eS5kYXRhLG1ldGE6e2N1cnJlbnRGaWxlOnRoaXMuY3VycmVudEZpbGUscGVyY2VudDp3PyhUKzEwMCoody1rLTEpKS93OjEwMH19KSl9LG0ucHJvdG90eXBlLm9wZW5lZFNvdXJjZT1mdW5jdGlvbih5KXt0aGlzLmN1cnJlbnRTb3VyY2VPZmZzZXQ9dGhpcy5ieXRlc1dyaXR0ZW4sdGhpcy5jdXJyZW50RmlsZT15LmZpbGUubmFtZTt2YXIgVD10aGlzLnN0cmVhbUZpbGVzJiYheS5maWxlLmRpcjtpZihUKXt2YXIgdz1zKHksVCwhMSx0aGlzLmN1cnJlbnRTb3VyY2VPZmZzZXQsdGhpcy56aXBQbGF0Zm9ybSx0aGlzLmVuY29kZUZpbGVOYW1lKTt0aGlzLnB1c2goe2RhdGE6dy5maWxlUmVjb3JkLG1ldGE6e3BlcmNlbnQ6MH19KX1lbHNlIHRoaXMuYWNjdW11bGF0ZT0hMH0sbS5wcm90b3R5cGUuY2xvc2VkU291cmNlPWZ1bmN0aW9uKHkpe3RoaXMuYWNjdW11bGF0ZT0hMTt2YXIgVD10aGlzLnN0cmVhbUZpbGVzJiYheS5maWxlLmRpcix3PXMoeSxULCEwLHRoaXMuY3VycmVudFNvdXJjZU9mZnNldCx0aGlzLnppcFBsYXRmb3JtLHRoaXMuZW5jb2RlRmlsZU5hbWUpO2lmKHRoaXMuZGlyUmVjb3Jkcy5wdXNoKHcuZGlyUmVjb3JkKSxUKXRoaXMucHVzaCh7ZGF0YTpmdW5jdGlvbihrKXtyZXR1cm4gYi5EQVRBX0RFU0NSSVBUT1IrbihrLmNyYzMyLDQpK24oay5jb21wcmVzc2VkU2l6ZSw0KStuKGsudW5jb21wcmVzc2VkU2l6ZSw0KX0oeSksbWV0YTp7cGVyY2VudDoxMDB9fSk7ZWxzZSBmb3IodGhpcy5wdXNoKHtkYXRhOncuZmlsZVJlY29yZCxtZXRhOntwZXJjZW50OjB9fSk7dGhpcy5jb250ZW50QnVmZmVyLmxlbmd0aDspdGhpcy5wdXNoKHRoaXMuY29udGVudEJ1ZmZlci5zaGlmdCgpKTt0aGlzLmN1cnJlbnRGaWxlPW51bGx9LG0ucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciB5PXRoaXMuYnl0ZXNXcml0dGVuLFQ9MDtUPHRoaXMuZGlyUmVjb3Jkcy5sZW5ndGg7VCsrKXRoaXMucHVzaCh7ZGF0YTp0aGlzLmRpclJlY29yZHNbVF0sbWV0YTp7cGVyY2VudDoxMDB9fSk7dmFyIHc9dGhpcy5ieXRlc1dyaXR0ZW4teSxrPWZ1bmN0aW9uKFAsRixoLG8sZil7dmFyIEM9YS50cmFuc2Zvcm1Ubygic3RyaW5nIixmKG8pKTtyZXR1cm4gYi5DRU5UUkFMX0RJUkVDVE9SWV9FTkQrIlwwXDBcMFwwIituKFAsMikrbihQLDIpK24oRiw0KStuKGgsNCkrbihDLmxlbmd0aCwyKStDfSh0aGlzLmRpclJlY29yZHMubGVuZ3RoLHcseSx0aGlzLnppcENvbW1lbnQsdGhpcy5lbmNvZGVGaWxlTmFtZSk7dGhpcy5wdXNoKHtkYXRhOmssbWV0YTp7cGVyY2VudDoxMDB9fSl9LG0ucHJvdG90eXBlLnByZXBhcmVOZXh0U291cmNlPWZ1bmN0aW9uKCl7dGhpcy5wcmV2aW91cz10aGlzLl9zb3VyY2VzLnNoaWZ0KCksdGhpcy5vcGVuZWRTb3VyY2UodGhpcy5wcmV2aW91cy5zdHJlYW1JbmZvKSx0aGlzLmlzUGF1c2VkP3RoaXMucHJldmlvdXMucGF1c2UoKTp0aGlzLnByZXZpb3VzLnJlc3VtZSgpfSxtLnByb3RvdHlwZS5yZWdpc3RlclByZXZpb3VzPWZ1bmN0aW9uKHkpe3RoaXMuX3NvdXJjZXMucHVzaCh5KTt2YXIgVD10aGlzO3JldHVybiB5Lm9uKCJkYXRhIixmdW5jdGlvbih3KXtULnByb2Nlc3NDaHVuayh3KX0pLHkub24oImVuZCIsZnVuY3Rpb24oKXtULmNsb3NlZFNvdXJjZShULnByZXZpb3VzLnN0cmVhbUluZm8pLFQuX3NvdXJjZXMubGVuZ3RoP1QucHJlcGFyZU5leHRTb3VyY2UoKTpULmVuZCgpfSkseS5vbigiZXJyb3IiLGZ1bmN0aW9uKHcpe1QuZXJyb3Iodyl9KSx0aGlzfSxtLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXtyZXR1cm4hIWwucHJvdG90eXBlLnJlc3VtZS5jYWxsKHRoaXMpJiYoIXRoaXMucHJldmlvdXMmJnRoaXMuX3NvdXJjZXMubGVuZ3RoPyh0aGlzLnByZXBhcmVOZXh0U291cmNlKCksITApOnRoaXMucHJldmlvdXN8fHRoaXMuX3NvdXJjZXMubGVuZ3RofHx0aGlzLmdlbmVyYXRlZEVycm9yP3ZvaWQgMDoodGhpcy5lbmQoKSwhMCkpfSxtLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbih5KXt2YXIgVD10aGlzLl9zb3VyY2VzO2lmKCFsLnByb3RvdHlwZS5lcnJvci5jYWxsKHRoaXMseSkpcmV0dXJuITE7Zm9yKHZhciB3PTA7dzxULmxlbmd0aDt3KyspdHJ5e1Rbd10uZXJyb3IoeSl9Y2F0Y2h7fXJldHVybiEwfSxtLnByb3RvdHlwZS5sb2NrPWZ1bmN0aW9uKCl7bC5wcm90b3R5cGUubG9jay5jYWxsKHRoaXMpO2Zvcih2YXIgeT10aGlzLl9zb3VyY2VzLFQ9MDtUPHkubGVuZ3RoO1QrKyl5W1RdLmxvY2soKX0sZS5leHBvcnRzPW19LHsiLi4vY3JjMzIiOjQsIi4uL3NpZ25hdHVyZSI6MjMsIi4uL3N0cmVhbS9HZW5lcmljV29ya2VyIjoyOCwiLi4vdXRmOCI6MzEsIi4uL3V0aWxzIjozMn1dLDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vY29tcHJlc3Npb25zIikscz10KCIuL1ppcEZpbGVXb3JrZXIiKTtyLmdlbmVyYXRlV29ya2VyPWZ1bmN0aW9uKGEsbCxjKXt2YXIgcD1uZXcgcyhsLnN0cmVhbUZpbGVzLGMsbC5wbGF0Zm9ybSxsLmVuY29kZUZpbGVOYW1lKSxiPTA7dHJ5e2EuZm9yRWFjaChmdW5jdGlvbihtLHkpe2IrKzt2YXIgVD1mdW5jdGlvbihGLGgpe3ZhciBvPUZ8fGgsZj1uW29dO2lmKCFmKXRocm93IG5ldyBFcnJvcihvKyIgaXMgbm90IGEgdmFsaWQgY29tcHJlc3Npb24gbWV0aG9kICEiKTtyZXR1cm4gZn0oeS5vcHRpb25zLmNvbXByZXNzaW9uLGwuY29tcHJlc3Npb24pLHc9eS5vcHRpb25zLmNvbXByZXNzaW9uT3B0aW9uc3x8bC5jb21wcmVzc2lvbk9wdGlvbnN8fHt9LGs9eS5kaXIsUD15LmRhdGU7eS5fY29tcHJlc3NXb3JrZXIoVCx3KS53aXRoU3RyZWFtSW5mbygiZmlsZSIse25hbWU6bSxkaXI6ayxkYXRlOlAsY29tbWVudDp5LmNvbW1lbnR8fCIiLHVuaXhQZXJtaXNzaW9uczp5LnVuaXhQZXJtaXNzaW9ucyxkb3NQZXJtaXNzaW9uczp5LmRvc1Blcm1pc3Npb25zfSkucGlwZShwKX0pLHAuZW50cmllc0NvdW50PWJ9Y2F0Y2gobSl7cC5lcnJvcihtKX1yZXR1cm4gcH19LHsiLi4vY29tcHJlc3Npb25zIjozLCIuL1ppcEZpbGVXb3JrZXIiOjh9XSwxMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgbikpcmV0dXJuIG5ldyBuO2lmKGFyZ3VtZW50cy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJUaGUgY29uc3RydWN0b3Igd2l0aCBwYXJhbWV0ZXJzIGhhcyBiZWVuIHJlbW92ZWQgaW4gSlNaaXAgMy4wLCBwbGVhc2UgY2hlY2sgdGhlIHVwZ3JhZGUgZ3VpZGUuIik7dGhpcy5maWxlcz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuY29tbWVudD1udWxsLHRoaXMucm9vdD0iIix0aGlzLmNsb25lPWZ1bmN0aW9uKCl7dmFyIHM9bmV3IG47Zm9yKHZhciBhIGluIHRoaXMpdHlwZW9mIHRoaXNbYV0hPSJmdW5jdGlvbiImJihzW2FdPXRoaXNbYV0pO3JldHVybiBzfX0obi5wcm90b3R5cGU9dCgiLi9vYmplY3QiKSkubG9hZEFzeW5jPXQoIi4vbG9hZCIpLG4uc3VwcG9ydD10KCIuL3N1cHBvcnQiKSxuLmRlZmF1bHRzPXQoIi4vZGVmYXVsdHMiKSxuLnZlcnNpb249IjMuMTAuMSIsbi5sb2FkQXN5bmM9ZnVuY3Rpb24ocyxhKXtyZXR1cm4gbmV3IG4oKS5sb2FkQXN5bmMocyxhKX0sbi5leHRlcm5hbD10KCIuL2V4dGVybmFsIiksZS5leHBvcnRzPW59LHsiLi9kZWZhdWx0cyI6NSwiLi9leHRlcm5hbCI6NiwiLi9sb2FkIjoxMSwiLi9vYmplY3QiOjE1LCIuL3N1cHBvcnQiOjMwfV0sMTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi91dGlscyIpLHM9dCgiLi9leHRlcm5hbCIpLGE9dCgiLi91dGY4IiksbD10KCIuL3ppcEVudHJpZXMiKSxjPXQoIi4vc3RyZWFtL0NyYzMyUHJvYmUiKSxwPXQoIi4vbm9kZWpzVXRpbHMiKTtmdW5jdGlvbiBiKG0pe3JldHVybiBuZXcgcy5Qcm9taXNlKGZ1bmN0aW9uKHksVCl7dmFyIHc9bS5kZWNvbXByZXNzZWQuZ2V0Q29udGVudFdvcmtlcigpLnBpcGUobmV3IGMpO3cub24oImVycm9yIixmdW5jdGlvbihrKXtUKGspfSkub24oImVuZCIsZnVuY3Rpb24oKXt3LnN0cmVhbUluZm8uY3JjMzIhPT1tLmRlY29tcHJlc3NlZC5jcmMzMj9UKG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcCA6IENSQzMyIG1pc21hdGNoIikpOnkoKX0pLnJlc3VtZSgpfSl9ZS5leHBvcnRzPWZ1bmN0aW9uKG0seSl7dmFyIFQ9dGhpcztyZXR1cm4geT1uLmV4dGVuZCh5fHx7fSx7YmFzZTY0OiExLGNoZWNrQ1JDMzI6ITEsb3B0aW1pemVkQmluYXJ5U3RyaW5nOiExLGNyZWF0ZUZvbGRlcnM6ITEsZGVjb2RlRmlsZU5hbWU6YS51dGY4ZGVjb2RlfSkscC5pc05vZGUmJnAuaXNTdHJlYW0obSk/cy5Qcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIkpTWmlwIGNhbid0IGFjY2VwdCBhIHN0cmVhbSB3aGVuIGxvYWRpbmcgYSB6aXAgZmlsZS4iKSk6bi5wcmVwYXJlQ29udGVudCgidGhlIGxvYWRlZCB6aXAgZmlsZSIsbSwhMCx5Lm9wdGltaXplZEJpbmFyeVN0cmluZyx5LmJhc2U2NCkudGhlbihmdW5jdGlvbih3KXt2YXIgaz1uZXcgbCh5KTtyZXR1cm4gay5sb2FkKHcpLGt9KS50aGVuKGZ1bmN0aW9uKHcpe3ZhciBrPVtzLlByb21pc2UucmVzb2x2ZSh3KV0sUD13LmZpbGVzO2lmKHkuY2hlY2tDUkMzMilmb3IodmFyIEY9MDtGPFAubGVuZ3RoO0YrKylrLnB1c2goYihQW0ZdKSk7cmV0dXJuIHMuUHJvbWlzZS5hbGwoayl9KS50aGVuKGZ1bmN0aW9uKHcpe2Zvcih2YXIgaz13LnNoaWZ0KCksUD1rLmZpbGVzLEY9MDtGPFAubGVuZ3RoO0YrKyl7dmFyIGg9UFtGXSxvPWguZmlsZU5hbWVTdHIsZj1uLnJlc29sdmUoaC5maWxlTmFtZVN0cik7VC5maWxlKGYsaC5kZWNvbXByZXNzZWQse2JpbmFyeTohMCxvcHRpbWl6ZWRCaW5hcnlTdHJpbmc6ITAsZGF0ZTpoLmRhdGUsZGlyOmguZGlyLGNvbW1lbnQ6aC5maWxlQ29tbWVudFN0ci5sZW5ndGg/aC5maWxlQ29tbWVudFN0cjpudWxsLHVuaXhQZXJtaXNzaW9uczpoLnVuaXhQZXJtaXNzaW9ucyxkb3NQZXJtaXNzaW9uczpoLmRvc1Blcm1pc3Npb25zLGNyZWF0ZUZvbGRlcnM6eS5jcmVhdGVGb2xkZXJzfSksaC5kaXJ8fChULmZpbGUoZikudW5zYWZlT3JpZ2luYWxOYW1lPW8pfXJldHVybiBrLnppcENvbW1lbnQubGVuZ3RoJiYoVC5jb21tZW50PWsuemlwQ29tbWVudCksVH0pfX0seyIuL2V4dGVybmFsIjo2LCIuL25vZGVqc1V0aWxzIjoxNCwiLi9zdHJlYW0vQ3JjMzJQcm9iZSI6MjUsIi4vdXRmOCI6MzEsIi4vdXRpbHMiOjMyLCIuL3ppcEVudHJpZXMiOjMzfV0sMTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vdXRpbHMiKSxzPXQoIi4uL3N0cmVhbS9HZW5lcmljV29ya2VyIik7ZnVuY3Rpb24gYShsLGMpe3MuY2FsbCh0aGlzLCJOb2RlanMgc3RyZWFtIGlucHV0IGFkYXB0ZXIgZm9yICIrbCksdGhpcy5fdXBzdHJlYW1FbmRlZD0hMSx0aGlzLl9iaW5kU3RyZWFtKGMpfW4uaW5oZXJpdHMoYSxzKSxhLnByb3RvdHlwZS5fYmluZFN0cmVhbT1mdW5jdGlvbihsKXt2YXIgYz10aGlzOyh0aGlzLl9zdHJlYW09bCkucGF1c2UoKSxsLm9uKCJkYXRhIixmdW5jdGlvbihwKXtjLnB1c2goe2RhdGE6cCxtZXRhOntwZXJjZW50OjB9fSl9KS5vbigiZXJyb3IiLGZ1bmN0aW9uKHApe2MuaXNQYXVzZWQ/dGhpcy5nZW5lcmF0ZWRFcnJvcj1wOmMuZXJyb3IocCl9KS5vbigiZW5kIixmdW5jdGlvbigpe2MuaXNQYXVzZWQ/Yy5fdXBzdHJlYW1FbmRlZD0hMDpjLmVuZCgpfSl9LGEucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7cmV0dXJuISFzLnByb3RvdHlwZS5wYXVzZS5jYWxsKHRoaXMpJiYodGhpcy5fc3RyZWFtLnBhdXNlKCksITApfSxhLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXtyZXR1cm4hIXMucHJvdG90eXBlLnJlc3VtZS5jYWxsKHRoaXMpJiYodGhpcy5fdXBzdHJlYW1FbmRlZD90aGlzLmVuZCgpOnRoaXMuX3N0cmVhbS5yZXN1bWUoKSwhMCl9LGUuZXhwb3J0cz1hfSx7Ii4uL3N0cmVhbS9HZW5lcmljV29ya2VyIjoyOCwiLi4vdXRpbHMiOjMyfV0sMTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgicmVhZGFibGUtc3RyZWFtIikuUmVhZGFibGU7ZnVuY3Rpb24gcyhhLGwsYyl7bi5jYWxsKHRoaXMsbCksdGhpcy5faGVscGVyPWE7dmFyIHA9dGhpczthLm9uKCJkYXRhIixmdW5jdGlvbihiLG0pe3AucHVzaChiKXx8cC5faGVscGVyLnBhdXNlKCksYyYmYyhtKX0pLm9uKCJlcnJvciIsZnVuY3Rpb24oYil7cC5lbWl0KCJlcnJvciIsYil9KS5vbigiZW5kIixmdW5jdGlvbigpe3AucHVzaChudWxsKX0pfXQoIi4uL3V0aWxzIikuaW5oZXJpdHMocyxuKSxzLnByb3RvdHlwZS5fcmVhZD1mdW5jdGlvbigpe3RoaXMuX2hlbHBlci5yZXN1bWUoKX0sZS5leHBvcnRzPXN9LHsiLi4vdXRpbHMiOjMyLCJyZWFkYWJsZS1zdHJlYW0iOjE2fV0sMTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtpc05vZGU6dHlwZW9mIEJ1ZmZlcjwidSIsbmV3QnVmZmVyRnJvbTpmdW5jdGlvbihuLHMpe2lmKEJ1ZmZlci5mcm9tJiZCdWZmZXIuZnJvbSE9PVVpbnQ4QXJyYXkuZnJvbSlyZXR1cm4gQnVmZmVyLmZyb20obixzKTtpZih0eXBlb2Ygbj09Im51bWJlciIpdGhyb3cgbmV3IEVycm9yKCdUaGUgImRhdGEiIGFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyJyk7cmV0dXJuIG5ldyBCdWZmZXIobixzKX0sYWxsb2NCdWZmZXI6ZnVuY3Rpb24obil7aWYoQnVmZmVyLmFsbG9jKXJldHVybiBCdWZmZXIuYWxsb2Mobik7dmFyIHM9bmV3IEJ1ZmZlcihuKTtyZXR1cm4gcy5maWxsKDApLHN9LGlzQnVmZmVyOmZ1bmN0aW9uKG4pe3JldHVybiBCdWZmZXIuaXNCdWZmZXIobil9LGlzU3RyZWFtOmZ1bmN0aW9uKG4pe3JldHVybiBuJiZ0eXBlb2Ygbi5vbj09ImZ1bmN0aW9uIiYmdHlwZW9mIG4ucGF1c2U9PSJmdW5jdGlvbiImJnR5cGVvZiBuLnJlc3VtZT09ImZ1bmN0aW9uIn19fSx7fV0sMTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihmLEMsQil7dmFyIHUsej1hLmdldFR5cGVPZihDKSxxPWEuZXh0ZW5kKEJ8fHt9LHApO3EuZGF0ZT1xLmRhdGV8fG5ldyBEYXRlLHEuY29tcHJlc3Npb24hPT1udWxsJiYocS5jb21wcmVzc2lvbj1xLmNvbXByZXNzaW9uLnRvVXBwZXJDYXNlKCkpLHR5cGVvZiBxLnVuaXhQZXJtaXNzaW9ucz09InN0cmluZyImJihxLnVuaXhQZXJtaXNzaW9ucz1wYXJzZUludChxLnVuaXhQZXJtaXNzaW9ucyw4KSkscS51bml4UGVybWlzc2lvbnMmJjE2Mzg0JnEudW5peFBlcm1pc3Npb25zJiYocS5kaXI9ITApLHEuZG9zUGVybWlzc2lvbnMmJjE2JnEuZG9zUGVybWlzc2lvbnMmJihxLmRpcj0hMCkscS5kaXImJihmPVAoZikpLHEuY3JlYXRlRm9sZGVycyYmKHU9ayhmKSkmJkYuY2FsbCh0aGlzLHUsITApO3ZhciBldD16PT09InN0cmluZyImJnEuYmluYXJ5PT09ITEmJnEuYmFzZTY0PT09ITE7QiYmQi5iaW5hcnkhPT12b2lkIDB8fChxLmJpbmFyeT0hZXQpLChDIGluc3RhbmNlb2YgYiYmQy51bmNvbXByZXNzZWRTaXplPT09MHx8cS5kaXJ8fCFDfHxDLmxlbmd0aD09PTApJiYocS5iYXNlNjQ9ITEscS5iaW5hcnk9ITAsQz0iIixxLmNvbXByZXNzaW9uPSJTVE9SRSIsej0ic3RyaW5nIik7dmFyIE89bnVsbDtPPUMgaW5zdGFuY2VvZiBifHxDIGluc3RhbmNlb2YgbD9DOlQuaXNOb2RlJiZULmlzU3RyZWFtKEMpP25ldyB3KGYsQyk6YS5wcmVwYXJlQ29udGVudChmLEMscS5iaW5hcnkscS5vcHRpbWl6ZWRCaW5hcnlTdHJpbmcscS5iYXNlNjQpO3ZhciBaPW5ldyBtKGYsTyxxKTt0aGlzLmZpbGVzW2ZdPVp9dmFyIHM9dCgiLi91dGY4IiksYT10KCIuL3V0aWxzIiksbD10KCIuL3N0cmVhbS9HZW5lcmljV29ya2VyIiksYz10KCIuL3N0cmVhbS9TdHJlYW1IZWxwZXIiKSxwPXQoIi4vZGVmYXVsdHMiKSxiPXQoIi4vY29tcHJlc3NlZE9iamVjdCIpLG09dCgiLi96aXBPYmplY3QiKSx5PXQoIi4vZ2VuZXJhdGUiKSxUPXQoIi4vbm9kZWpzVXRpbHMiKSx3PXQoIi4vbm9kZWpzL05vZGVqc1N0cmVhbUlucHV0QWRhcHRlciIpLGs9ZnVuY3Rpb24oZil7Zi5zbGljZSgtMSk9PT0iLyImJihmPWYuc3Vic3RyaW5nKDAsZi5sZW5ndGgtMSkpO3ZhciBDPWYubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4gMDxDP2Yuc3Vic3RyaW5nKDAsQyk6IiJ9LFA9ZnVuY3Rpb24oZil7cmV0dXJuIGYuc2xpY2UoLTEpIT09Ii8iJiYoZis9Ii8iKSxmfSxGPWZ1bmN0aW9uKGYsQyl7cmV0dXJuIEM9QyE9PXZvaWQgMD9DOnAuY3JlYXRlRm9sZGVycyxmPVAoZiksdGhpcy5maWxlc1tmXXx8bi5jYWxsKHRoaXMsZixudWxsLHtkaXI6ITAsY3JlYXRlRm9sZGVyczpDfSksdGhpcy5maWxlc1tmXX07ZnVuY3Rpb24gaChmKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGYpPT09IltvYmplY3QgUmVnRXhwXSJ9dmFyIG89e2xvYWQ6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIlRoaXMgbWV0aG9kIGhhcyBiZWVuIHJlbW92ZWQgaW4gSlNaaXAgMy4wLCBwbGVhc2UgY2hlY2sgdGhlIHVwZ3JhZGUgZ3VpZGUuIil9LGZvckVhY2g6ZnVuY3Rpb24oZil7dmFyIEMsQix1O2ZvcihDIGluIHRoaXMuZmlsZXMpdT10aGlzLmZpbGVzW0NdLChCPUMuc2xpY2UodGhpcy5yb290Lmxlbmd0aCxDLmxlbmd0aCkpJiZDLnNsaWNlKDAsdGhpcy5yb290Lmxlbmd0aCk9PT10aGlzLnJvb3QmJmYoQix1KX0sZmlsdGVyOmZ1bmN0aW9uKGYpe3ZhciBDPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oQix1KXtmKEIsdSkmJkMucHVzaCh1KX0pLEN9LGZpbGU6ZnVuY3Rpb24oZixDLEIpe2lmKGFyZ3VtZW50cy5sZW5ndGghPT0xKXJldHVybiBmPXRoaXMucm9vdCtmLG4uY2FsbCh0aGlzLGYsQyxCKSx0aGlzO2lmKGgoZikpe3ZhciB1PWY7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKHEsZXQpe3JldHVybiFldC5kaXImJnUudGVzdChxKX0pfXZhciB6PXRoaXMuZmlsZXNbdGhpcy5yb290K2ZdO3JldHVybiB6JiYhei5kaXI/ejpudWxsfSxmb2xkZXI6ZnVuY3Rpb24oZil7aWYoIWYpcmV0dXJuIHRoaXM7aWYoaChmKSlyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oeixxKXtyZXR1cm4gcS5kaXImJmYudGVzdCh6KX0pO3ZhciBDPXRoaXMucm9vdCtmLEI9Ri5jYWxsKHRoaXMsQyksdT10aGlzLmNsb25lKCk7cmV0dXJuIHUucm9vdD1CLm5hbWUsdX0scmVtb3ZlOmZ1bmN0aW9uKGYpe2Y9dGhpcy5yb290K2Y7dmFyIEM9dGhpcy5maWxlc1tmXTtpZihDfHwoZi5zbGljZSgtMSkhPT0iLyImJihmKz0iLyIpLEM9dGhpcy5maWxlc1tmXSksQyYmIUMuZGlyKWRlbGV0ZSB0aGlzLmZpbGVzW2ZdO2Vsc2UgZm9yKHZhciBCPXRoaXMuZmlsdGVyKGZ1bmN0aW9uKHoscSl7cmV0dXJuIHEubmFtZS5zbGljZSgwLGYubGVuZ3RoKT09PWZ9KSx1PTA7dTxCLmxlbmd0aDt1KyspZGVsZXRlIHRoaXMuZmlsZXNbQlt1XS5uYW1lXTtyZXR1cm4gdGhpc30sZ2VuZXJhdGU6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIlRoaXMgbWV0aG9kIGhhcyBiZWVuIHJlbW92ZWQgaW4gSlNaaXAgMy4wLCBwbGVhc2UgY2hlY2sgdGhlIHVwZ3JhZGUgZ3VpZGUuIil9LGdlbmVyYXRlSW50ZXJuYWxTdHJlYW06ZnVuY3Rpb24oZil7dmFyIEMsQj17fTt0cnl7aWYoKEI9YS5leHRlbmQoZnx8e30se3N0cmVhbUZpbGVzOiExLGNvbXByZXNzaW9uOiJTVE9SRSIsY29tcHJlc3Npb25PcHRpb25zOm51bGwsdHlwZToiIixwbGF0Zm9ybToiRE9TIixjb21tZW50Om51bGwsbWltZVR5cGU6ImFwcGxpY2F0aW9uL3ppcCIsZW5jb2RlRmlsZU5hbWU6cy51dGY4ZW5jb2RlfSkpLnR5cGU9Qi50eXBlLnRvTG93ZXJDYXNlKCksQi5jb21wcmVzc2lvbj1CLmNvbXByZXNzaW9uLnRvVXBwZXJDYXNlKCksQi50eXBlPT09ImJpbmFyeXN0cmluZyImJihCLnR5cGU9InN0cmluZyIpLCFCLnR5cGUpdGhyb3cgbmV3IEVycm9yKCJObyBvdXRwdXQgdHlwZSBzcGVjaWZpZWQuIik7YS5jaGVja1N1cHBvcnQoQi50eXBlKSxCLnBsYXRmb3JtIT09ImRhcndpbiImJkIucGxhdGZvcm0hPT0iZnJlZWJzZCImJkIucGxhdGZvcm0hPT0ibGludXgiJiZCLnBsYXRmb3JtIT09InN1bm9zInx8KEIucGxhdGZvcm09IlVOSVgiKSxCLnBsYXRmb3JtPT09IndpbjMyIiYmKEIucGxhdGZvcm09IkRPUyIpO3ZhciB1PUIuY29tbWVudHx8dGhpcy5jb21tZW50fHwiIjtDPXkuZ2VuZXJhdGVXb3JrZXIodGhpcyxCLHUpfWNhdGNoKHopeyhDPW5ldyBsKCJlcnJvciIpKS5lcnJvcih6KX1yZXR1cm4gbmV3IGMoQyxCLnR5cGV8fCJzdHJpbmciLEIubWltZVR5cGUpfSxnZW5lcmF0ZUFzeW5jOmZ1bmN0aW9uKGYsQyl7cmV0dXJuIHRoaXMuZ2VuZXJhdGVJbnRlcm5hbFN0cmVhbShmKS5hY2N1bXVsYXRlKEMpfSxnZW5lcmF0ZU5vZGVTdHJlYW06ZnVuY3Rpb24oZixDKXtyZXR1cm4oZj1mfHx7fSkudHlwZXx8KGYudHlwZT0ibm9kZWJ1ZmZlciIpLHRoaXMuZ2VuZXJhdGVJbnRlcm5hbFN0cmVhbShmKS50b05vZGVqc1N0cmVhbShDKX19O2UuZXhwb3J0cz1vfSx7Ii4vY29tcHJlc3NlZE9iamVjdCI6MiwiLi9kZWZhdWx0cyI6NSwiLi9nZW5lcmF0ZSI6OSwiLi9ub2RlanMvTm9kZWpzU3RyZWFtSW5wdXRBZGFwdGVyIjoxMiwiLi9ub2RlanNVdGlscyI6MTQsIi4vc3RyZWFtL0dlbmVyaWNXb3JrZXIiOjI4LCIuL3N0cmVhbS9TdHJlYW1IZWxwZXIiOjI5LCIuL3V0ZjgiOjMxLCIuL3V0aWxzIjozMiwiLi96aXBPYmplY3QiOjM1fV0sMTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoInN0cmVhbSIpfSx7c3RyZWFtOnZvaWQgMH1dLDE3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vRGF0YVJlYWRlciIpO2Z1bmN0aW9uIHMoYSl7bi5jYWxsKHRoaXMsYSk7Zm9yKHZhciBsPTA7bDx0aGlzLmRhdGEubGVuZ3RoO2wrKylhW2xdPTI1NSZhW2xdfXQoIi4uL3V0aWxzIikuaW5oZXJpdHMocyxuKSxzLnByb3RvdHlwZS5ieXRlQXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZGF0YVt0aGlzLnplcm8rYV19LHMucHJvdG90eXBlLmxhc3RJbmRleE9mU2lnbmF0dXJlPWZ1bmN0aW9uKGEpe2Zvcih2YXIgbD1hLmNoYXJDb2RlQXQoMCksYz1hLmNoYXJDb2RlQXQoMSkscD1hLmNoYXJDb2RlQXQoMiksYj1hLmNoYXJDb2RlQXQoMyksbT10aGlzLmxlbmd0aC00OzA8PW07LS1tKWlmKHRoaXMuZGF0YVttXT09PWwmJnRoaXMuZGF0YVttKzFdPT09YyYmdGhpcy5kYXRhW20rMl09PT1wJiZ0aGlzLmRhdGFbbSszXT09PWIpcmV0dXJuIG0tdGhpcy56ZXJvO3JldHVybi0xfSxzLnByb3RvdHlwZS5yZWFkQW5kQ2hlY2tTaWduYXR1cmU9ZnVuY3Rpb24oYSl7dmFyIGw9YS5jaGFyQ29kZUF0KDApLGM9YS5jaGFyQ29kZUF0KDEpLHA9YS5jaGFyQ29kZUF0KDIpLGI9YS5jaGFyQ29kZUF0KDMpLG09dGhpcy5yZWFkRGF0YSg0KTtyZXR1cm4gbD09PW1bMF0mJmM9PT1tWzFdJiZwPT09bVsyXSYmYj09PW1bM119LHMucHJvdG90eXBlLnJlYWREYXRhPWZ1bmN0aW9uKGEpe2lmKHRoaXMuY2hlY2tPZmZzZXQoYSksYT09PTApcmV0dXJuW107dmFyIGw9dGhpcy5kYXRhLnNsaWNlKHRoaXMuemVybyt0aGlzLmluZGV4LHRoaXMuemVybyt0aGlzLmluZGV4K2EpO3JldHVybiB0aGlzLmluZGV4Kz1hLGx9LGUuZXhwb3J0cz1zfSx7Ii4uL3V0aWxzIjozMiwiLi9EYXRhUmVhZGVyIjoxOH1dLDE4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3V0aWxzIik7ZnVuY3Rpb24gcyhhKXt0aGlzLmRhdGE9YSx0aGlzLmxlbmd0aD1hLmxlbmd0aCx0aGlzLmluZGV4PTAsdGhpcy56ZXJvPTB9cy5wcm90b3R5cGU9e2NoZWNrT2Zmc2V0OmZ1bmN0aW9uKGEpe3RoaXMuY2hlY2tJbmRleCh0aGlzLmluZGV4K2EpfSxjaGVja0luZGV4OmZ1bmN0aW9uKGEpe2lmKHRoaXMubGVuZ3RoPHRoaXMuemVybythfHxhPDApdGhyb3cgbmV3IEVycm9yKCJFbmQgb2YgZGF0YSByZWFjaGVkIChkYXRhIGxlbmd0aCA9ICIrdGhpcy5sZW5ndGgrIiwgYXNrZWQgaW5kZXggPSAiK2ErIikuIENvcnJ1cHRlZCB6aXAgPyIpfSxzZXRJbmRleDpmdW5jdGlvbihhKXt0aGlzLmNoZWNrSW5kZXgoYSksdGhpcy5pbmRleD1hfSxza2lwOmZ1bmN0aW9uKGEpe3RoaXMuc2V0SW5kZXgodGhpcy5pbmRleCthKX0sYnl0ZUF0OmZ1bmN0aW9uKCl7fSxyZWFkSW50OmZ1bmN0aW9uKGEpe3ZhciBsLGM9MDtmb3IodGhpcy5jaGVja09mZnNldChhKSxsPXRoaXMuaW5kZXgrYS0xO2w+PXRoaXMuaW5kZXg7bC0tKWM9KGM8PDgpK3RoaXMuYnl0ZUF0KGwpO3JldHVybiB0aGlzLmluZGV4Kz1hLGN9LHJlYWRTdHJpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuIG4udHJhbnNmb3JtVG8oInN0cmluZyIsdGhpcy5yZWFkRGF0YShhKSl9LHJlYWREYXRhOmZ1bmN0aW9uKCl7fSxsYXN0SW5kZXhPZlNpZ25hdHVyZTpmdW5jdGlvbigpe30scmVhZEFuZENoZWNrU2lnbmF0dXJlOmZ1bmN0aW9uKCl7fSxyZWFkRGF0ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMucmVhZEludCg0KTtyZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEMoMTk4MCsoYT4+MjUmMTI3KSwoYT4+MjEmMTUpLTEsYT4+MTYmMzEsYT4+MTEmMzEsYT4+NSY2MywoMzEmYSk8PDEpKX19LGUuZXhwb3J0cz1zfSx7Ii4uL3V0aWxzIjozMn1dLDE5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vVWludDhBcnJheVJlYWRlciIpO2Z1bmN0aW9uIHMoYSl7bi5jYWxsKHRoaXMsYSl9dCgiLi4vdXRpbHMiKS5pbmhlcml0cyhzLG4pLHMucHJvdG90eXBlLnJlYWREYXRhPWZ1bmN0aW9uKGEpe3RoaXMuY2hlY2tPZmZzZXQoYSk7dmFyIGw9dGhpcy5kYXRhLnNsaWNlKHRoaXMuemVybyt0aGlzLmluZGV4LHRoaXMuemVybyt0aGlzLmluZGV4K2EpO3JldHVybiB0aGlzLmluZGV4Kz1hLGx9LGUuZXhwb3J0cz1zfSx7Ii4uL3V0aWxzIjozMiwiLi9VaW50OEFycmF5UmVhZGVyIjoyMX1dLDIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vRGF0YVJlYWRlciIpO2Z1bmN0aW9uIHMoYSl7bi5jYWxsKHRoaXMsYSl9dCgiLi4vdXRpbHMiKS5pbmhlcml0cyhzLG4pLHMucHJvdG90eXBlLmJ5dGVBdD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5kYXRhLmNoYXJDb2RlQXQodGhpcy56ZXJvK2EpfSxzLnByb3RvdHlwZS5sYXN0SW5kZXhPZlNpZ25hdHVyZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5kYXRhLmxhc3RJbmRleE9mKGEpLXRoaXMuemVyb30scy5wcm90b3R5cGUucmVhZEFuZENoZWNrU2lnbmF0dXJlPWZ1bmN0aW9uKGEpe3JldHVybiBhPT09dGhpcy5yZWFkRGF0YSg0KX0scy5wcm90b3R5cGUucmVhZERhdGE9ZnVuY3Rpb24oYSl7dGhpcy5jaGVja09mZnNldChhKTt2YXIgbD10aGlzLmRhdGEuc2xpY2UodGhpcy56ZXJvK3RoaXMuaW5kZXgsdGhpcy56ZXJvK3RoaXMuaW5kZXgrYSk7cmV0dXJuIHRoaXMuaW5kZXgrPWEsbH0sZS5leHBvcnRzPXN9LHsiLi4vdXRpbHMiOjMyLCIuL0RhdGFSZWFkZXIiOjE4fV0sMjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9BcnJheVJlYWRlciIpO2Z1bmN0aW9uIHMoYSl7bi5jYWxsKHRoaXMsYSl9dCgiLi4vdXRpbHMiKS5pbmhlcml0cyhzLG4pLHMucHJvdG90eXBlLnJlYWREYXRhPWZ1bmN0aW9uKGEpe2lmKHRoaXMuY2hlY2tPZmZzZXQoYSksYT09PTApcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO3ZhciBsPXRoaXMuZGF0YS5zdWJhcnJheSh0aGlzLnplcm8rdGhpcy5pbmRleCx0aGlzLnplcm8rdGhpcy5pbmRleCthKTtyZXR1cm4gdGhpcy5pbmRleCs9YSxsfSxlLmV4cG9ydHM9c30seyIuLi91dGlscyI6MzIsIi4vQXJyYXlSZWFkZXIiOjE3fV0sMjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vdXRpbHMiKSxzPXQoIi4uL3N1cHBvcnQiKSxhPXQoIi4vQXJyYXlSZWFkZXIiKSxsPXQoIi4vU3RyaW5nUmVhZGVyIiksYz10KCIuL05vZGVCdWZmZXJSZWFkZXIiKSxwPXQoIi4vVWludDhBcnJheVJlYWRlciIpO2UuZXhwb3J0cz1mdW5jdGlvbihiKXt2YXIgbT1uLmdldFR5cGVPZihiKTtyZXR1cm4gbi5jaGVja1N1cHBvcnQobSksbSE9PSJzdHJpbmcifHxzLnVpbnQ4YXJyYXk/bT09PSJub2RlYnVmZmVyIj9uZXcgYyhiKTpzLnVpbnQ4YXJyYXk/bmV3IHAobi50cmFuc2Zvcm1UbygidWludDhhcnJheSIsYikpOm5ldyBhKG4udHJhbnNmb3JtVG8oImFycmF5IixiKSk6bmV3IGwoYil9fSx7Ii4uL3N1cHBvcnQiOjMwLCIuLi91dGlscyI6MzIsIi4vQXJyYXlSZWFkZXIiOjE3LCIuL05vZGVCdWZmZXJSZWFkZXIiOjE5LCIuL1N0cmluZ1JlYWRlciI6MjAsIi4vVWludDhBcnJheVJlYWRlciI6MjF9XSwyMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLkxPQ0FMX0ZJTEVfSEVBREVSPSJQSwMEIixyLkNFTlRSQUxfRklMRV9IRUFERVI9IlBLAQIiLHIuQ0VOVFJBTF9ESVJFQ1RPUllfRU5EPSJQSwUGIixyLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0xPQ0FUT1I9IlBLBlx4MDciLHIuWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfRU5EPSJQSwYGIixyLkRBVEFfREVTQ1JJUFRPUj0iUEtceDA3XGIifSx7fV0sMjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9HZW5lcmljV29ya2VyIikscz10KCIuLi91dGlscyIpO2Z1bmN0aW9uIGEobCl7bi5jYWxsKHRoaXMsIkNvbnZlcnRXb3JrZXIgdG8gIitsKSx0aGlzLmRlc3RUeXBlPWx9cy5pbmhlcml0cyhhLG4pLGEucHJvdG90eXBlLnByb2Nlc3NDaHVuaz1mdW5jdGlvbihsKXt0aGlzLnB1c2goe2RhdGE6cy50cmFuc2Zvcm1Ubyh0aGlzLmRlc3RUeXBlLGwuZGF0YSksbWV0YTpsLm1ldGF9KX0sZS5leHBvcnRzPWF9LHsiLi4vdXRpbHMiOjMyLCIuL0dlbmVyaWNXb3JrZXIiOjI4fV0sMjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9HZW5lcmljV29ya2VyIikscz10KCIuLi9jcmMzMiIpO2Z1bmN0aW9uIGEoKXtuLmNhbGwodGhpcywiQ3JjMzJQcm9iZSIpLHRoaXMud2l0aFN0cmVhbUluZm8oImNyYzMyIiwwKX10KCIuLi91dGlscyIpLmluaGVyaXRzKGEsbiksYS5wcm90b3R5cGUucHJvY2Vzc0NodW5rPWZ1bmN0aW9uKGwpe3RoaXMuc3RyZWFtSW5mby5jcmMzMj1zKGwuZGF0YSx0aGlzLnN0cmVhbUluZm8uY3JjMzJ8fDApLHRoaXMucHVzaChsKX0sZS5leHBvcnRzPWF9LHsiLi4vY3JjMzIiOjQsIi4uL3V0aWxzIjozMiwiLi9HZW5lcmljV29ya2VyIjoyOH1dLDI2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3V0aWxzIikscz10KCIuL0dlbmVyaWNXb3JrZXIiKTtmdW5jdGlvbiBhKGwpe3MuY2FsbCh0aGlzLCJEYXRhTGVuZ3RoUHJvYmUgZm9yICIrbCksdGhpcy5wcm9wTmFtZT1sLHRoaXMud2l0aFN0cmVhbUluZm8obCwwKX1uLmluaGVyaXRzKGEscyksYS5wcm90b3R5cGUucHJvY2Vzc0NodW5rPWZ1bmN0aW9uKGwpe2lmKGwpe3ZhciBjPXRoaXMuc3RyZWFtSW5mb1t0aGlzLnByb3BOYW1lXXx8MDt0aGlzLnN0cmVhbUluZm9bdGhpcy5wcm9wTmFtZV09YytsLmRhdGEubGVuZ3RofXMucHJvdG90eXBlLnByb2Nlc3NDaHVuay5jYWxsKHRoaXMsbCl9LGUuZXhwb3J0cz1hfSx7Ii4uL3V0aWxzIjozMiwiLi9HZW5lcmljV29ya2VyIjoyOH1dLDI3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3V0aWxzIikscz10KCIuL0dlbmVyaWNXb3JrZXIiKTtmdW5jdGlvbiBhKGwpe3MuY2FsbCh0aGlzLCJEYXRhV29ya2VyIik7dmFyIGM9dGhpczt0aGlzLmRhdGFJc1JlYWR5PSExLHRoaXMuaW5kZXg9MCx0aGlzLm1heD0wLHRoaXMuZGF0YT1udWxsLHRoaXMudHlwZT0iIix0aGlzLl90aWNrU2NoZWR1bGVkPSExLGwudGhlbihmdW5jdGlvbihwKXtjLmRhdGFJc1JlYWR5PSEwLGMuZGF0YT1wLGMubWF4PXAmJnAubGVuZ3RofHwwLGMudHlwZT1uLmdldFR5cGVPZihwKSxjLmlzUGF1c2VkfHxjLl90aWNrQW5kUmVwZWF0KCl9LGZ1bmN0aW9uKHApe2MuZXJyb3IocCl9KX1uLmluaGVyaXRzKGEscyksYS5wcm90b3R5cGUuY2xlYW5VcD1mdW5jdGlvbigpe3MucHJvdG90eXBlLmNsZWFuVXAuY2FsbCh0aGlzKSx0aGlzLmRhdGE9bnVsbH0sYS5wcm90b3R5cGUucmVzdW1lPWZ1bmN0aW9uKCl7cmV0dXJuISFzLnByb3RvdHlwZS5yZXN1bWUuY2FsbCh0aGlzKSYmKCF0aGlzLl90aWNrU2NoZWR1bGVkJiZ0aGlzLmRhdGFJc1JlYWR5JiYodGhpcy5fdGlja1NjaGVkdWxlZD0hMCxuLmRlbGF5KHRoaXMuX3RpY2tBbmRSZXBlYXQsW10sdGhpcykpLCEwKX0sYS5wcm90b3R5cGUuX3RpY2tBbmRSZXBlYXQ9ZnVuY3Rpb24oKXt0aGlzLl90aWNrU2NoZWR1bGVkPSExLHRoaXMuaXNQYXVzZWR8fHRoaXMuaXNGaW5pc2hlZHx8KHRoaXMuX3RpY2soKSx0aGlzLmlzRmluaXNoZWR8fChuLmRlbGF5KHRoaXMuX3RpY2tBbmRSZXBlYXQsW10sdGhpcyksdGhpcy5fdGlja1NjaGVkdWxlZD0hMCkpfSxhLnByb3RvdHlwZS5fdGljaz1mdW5jdGlvbigpe2lmKHRoaXMuaXNQYXVzZWR8fHRoaXMuaXNGaW5pc2hlZClyZXR1cm4hMTt2YXIgbD1udWxsLGM9TWF0aC5taW4odGhpcy5tYXgsdGhpcy5pbmRleCsxNjM4NCk7aWYodGhpcy5pbmRleD49dGhpcy5tYXgpcmV0dXJuIHRoaXMuZW5kKCk7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZSJzdHJpbmciOmw9dGhpcy5kYXRhLnN1YnN0cmluZyh0aGlzLmluZGV4LGMpO2JyZWFrO2Nhc2UidWludDhhcnJheSI6bD10aGlzLmRhdGEuc3ViYXJyYXkodGhpcy5pbmRleCxjKTticmVhaztjYXNlImFycmF5IjpjYXNlIm5vZGVidWZmZXIiOmw9dGhpcy5kYXRhLnNsaWNlKHRoaXMuaW5kZXgsYyl9cmV0dXJuIHRoaXMuaW5kZXg9Yyx0aGlzLnB1c2goe2RhdGE6bCxtZXRhOntwZXJjZW50OnRoaXMubWF4P3RoaXMuaW5kZXgvdGhpcy5tYXgqMTAwOjB9fSl9LGUuZXhwb3J0cz1hfSx7Ii4uL3V0aWxzIjozMiwiLi9HZW5lcmljV29ya2VyIjoyOH1dLDI4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4ocyl7dGhpcy5uYW1lPXN8fCJkZWZhdWx0Iix0aGlzLnN0cmVhbUluZm89e30sdGhpcy5nZW5lcmF0ZWRFcnJvcj1udWxsLHRoaXMuZXh0cmFTdHJlYW1JbmZvPXt9LHRoaXMuaXNQYXVzZWQ9ITAsdGhpcy5pc0ZpbmlzaGVkPSExLHRoaXMuaXNMb2NrZWQ9ITEsdGhpcy5fbGlzdGVuZXJzPXtkYXRhOltdLGVuZDpbXSxlcnJvcjpbXX0sdGhpcy5wcmV2aW91cz1udWxsfW4ucHJvdG90eXBlPXtwdXNoOmZ1bmN0aW9uKHMpe3RoaXMuZW1pdCgiZGF0YSIscyl9LGVuZDpmdW5jdGlvbigpe2lmKHRoaXMuaXNGaW5pc2hlZClyZXR1cm4hMTt0aGlzLmZsdXNoKCk7dHJ5e3RoaXMuZW1pdCgiZW5kIiksdGhpcy5jbGVhblVwKCksdGhpcy5pc0ZpbmlzaGVkPSEwfWNhdGNoKHMpe3RoaXMuZW1pdCgiZXJyb3IiLHMpfXJldHVybiEwfSxlcnJvcjpmdW5jdGlvbihzKXtyZXR1cm4hdGhpcy5pc0ZpbmlzaGVkJiYodGhpcy5pc1BhdXNlZD90aGlzLmdlbmVyYXRlZEVycm9yPXM6KHRoaXMuaXNGaW5pc2hlZD0hMCx0aGlzLmVtaXQoImVycm9yIixzKSx0aGlzLnByZXZpb3VzJiZ0aGlzLnByZXZpb3VzLmVycm9yKHMpLHRoaXMuY2xlYW5VcCgpKSwhMCl9LG9uOmZ1bmN0aW9uKHMsYSl7cmV0dXJuIHRoaXMuX2xpc3RlbmVyc1tzXS5wdXNoKGEpLHRoaXN9LGNsZWFuVXA6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbUluZm89dGhpcy5nZW5lcmF0ZWRFcnJvcj10aGlzLmV4dHJhU3RyZWFtSW5mbz1udWxsLHRoaXMuX2xpc3RlbmVycz1bXX0sZW1pdDpmdW5jdGlvbihzLGEpe2lmKHRoaXMuX2xpc3RlbmVyc1tzXSlmb3IodmFyIGw9MDtsPHRoaXMuX2xpc3RlbmVyc1tzXS5sZW5ndGg7bCsrKXRoaXMuX2xpc3RlbmVyc1tzXVtsXS5jYWxsKHRoaXMsYSl9LHBpcGU6ZnVuY3Rpb24ocyl7cmV0dXJuIHMucmVnaXN0ZXJQcmV2aW91cyh0aGlzKX0scmVnaXN0ZXJQcmV2aW91czpmdW5jdGlvbihzKXtpZih0aGlzLmlzTG9ja2VkKXRocm93IG5ldyBFcnJvcigiVGhlIHN0cmVhbSAnIit0aGlzKyInIGhhcyBhbHJlYWR5IGJlZW4gdXNlZC4iKTt0aGlzLnN0cmVhbUluZm89cy5zdHJlYW1JbmZvLHRoaXMubWVyZ2VTdHJlYW1JbmZvKCksdGhpcy5wcmV2aW91cz1zO3ZhciBhPXRoaXM7cmV0dXJuIHMub24oImRhdGEiLGZ1bmN0aW9uKGwpe2EucHJvY2Vzc0NodW5rKGwpfSkscy5vbigiZW5kIixmdW5jdGlvbigpe2EuZW5kKCl9KSxzLm9uKCJlcnJvciIsZnVuY3Rpb24obCl7YS5lcnJvcihsKX0pLHRoaXN9LHBhdXNlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNQYXVzZWQmJiF0aGlzLmlzRmluaXNoZWQmJih0aGlzLmlzUGF1c2VkPSEwLHRoaXMucHJldmlvdXMmJnRoaXMucHJldmlvdXMucGF1c2UoKSwhMCl9LHJlc3VtZTpmdW5jdGlvbigpe2lmKCF0aGlzLmlzUGF1c2VkfHx0aGlzLmlzRmluaXNoZWQpcmV0dXJuITE7dmFyIHM9dGhpcy5pc1BhdXNlZD0hMTtyZXR1cm4gdGhpcy5nZW5lcmF0ZWRFcnJvciYmKHRoaXMuZXJyb3IodGhpcy5nZW5lcmF0ZWRFcnJvcikscz0hMCksdGhpcy5wcmV2aW91cyYmdGhpcy5wcmV2aW91cy5yZXN1bWUoKSwhc30sZmx1c2g6ZnVuY3Rpb24oKXt9LHByb2Nlc3NDaHVuazpmdW5jdGlvbihzKXt0aGlzLnB1c2gocyl9LHdpdGhTdHJlYW1JbmZvOmZ1bmN0aW9uKHMsYSl7cmV0dXJuIHRoaXMuZXh0cmFTdHJlYW1JbmZvW3NdPWEsdGhpcy5tZXJnZVN0cmVhbUluZm8oKSx0aGlzfSxtZXJnZVN0cmVhbUluZm86ZnVuY3Rpb24oKXtmb3IodmFyIHMgaW4gdGhpcy5leHRyYVN0cmVhbUluZm8pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuZXh0cmFTdHJlYW1JbmZvLHMpJiYodGhpcy5zdHJlYW1JbmZvW3NdPXRoaXMuZXh0cmFTdHJlYW1JbmZvW3NdKX0sbG9jazpmdW5jdGlvbigpe2lmKHRoaXMuaXNMb2NrZWQpdGhyb3cgbmV3IEVycm9yKCJUaGUgc3RyZWFtICciK3RoaXMrIicgaGFzIGFscmVhZHkgYmVlbiB1c2VkLiIpO3RoaXMuaXNMb2NrZWQ9ITAsdGhpcy5wcmV2aW91cyYmdGhpcy5wcmV2aW91cy5sb2NrKCl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIHM9IldvcmtlciAiK3RoaXMubmFtZTtyZXR1cm4gdGhpcy5wcmV2aW91cz90aGlzLnByZXZpb3VzKyIgLT4gIitzOnN9fSxlLmV4cG9ydHM9bn0se31dLDI5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3V0aWxzIikscz10KCIuL0NvbnZlcnRXb3JrZXIiKSxhPXQoIi4vR2VuZXJpY1dvcmtlciIpLGw9dCgiLi4vYmFzZTY0IiksYz10KCIuLi9zdXBwb3J0IikscD10KCIuLi9leHRlcm5hbCIpLGI9bnVsbDtpZihjLm5vZGVzdHJlYW0pdHJ5e2I9dCgiLi4vbm9kZWpzL05vZGVqc1N0cmVhbU91dHB1dEFkYXB0ZXIiKX1jYXRjaHt9ZnVuY3Rpb24gbShULHcpe3JldHVybiBuZXcgcC5Qcm9taXNlKGZ1bmN0aW9uKGssUCl7dmFyIEY9W10saD1ULl9pbnRlcm5hbFR5cGUsbz1ULl9vdXRwdXRUeXBlLGY9VC5fbWltZVR5cGU7VC5vbigiZGF0YSIsZnVuY3Rpb24oQyxCKXtGLnB1c2goQyksdyYmdyhCKX0pLm9uKCJlcnJvciIsZnVuY3Rpb24oQyl7Rj1bXSxQKEMpfSkub24oImVuZCIsZnVuY3Rpb24oKXt0cnl7dmFyIEM9ZnVuY3Rpb24oQix1LHope3N3aXRjaChCKXtjYXNlImJsb2IiOnJldHVybiBuLm5ld0Jsb2Iobi50cmFuc2Zvcm1UbygiYXJyYXlidWZmZXIiLHUpLHopO2Nhc2UiYmFzZTY0IjpyZXR1cm4gbC5lbmNvZGUodSk7ZGVmYXVsdDpyZXR1cm4gbi50cmFuc2Zvcm1UbyhCLHUpfX0obyxmdW5jdGlvbihCLHUpe3ZhciB6LHE9MCxldD1udWxsLE89MDtmb3Ioej0wO3o8dS5sZW5ndGg7eisrKU8rPXVbel0ubGVuZ3RoO3N3aXRjaChCKXtjYXNlInN0cmluZyI6cmV0dXJuIHUuam9pbigiIik7Y2FzZSJhcnJheSI6cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sdSk7Y2FzZSJ1aW50OGFycmF5Ijpmb3IoZXQ9bmV3IFVpbnQ4QXJyYXkoTyksej0wO3o8dS5sZW5ndGg7eisrKWV0LnNldCh1W3pdLHEpLHErPXVbel0ubGVuZ3RoO3JldHVybiBldDtjYXNlIm5vZGVidWZmZXIiOnJldHVybiBCdWZmZXIuY29uY2F0KHUpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJjb25jYXQgOiB1bnN1cHBvcnRlZCB0eXBlICciK0IrIiciKX19KGgsRiksZik7ayhDKX1jYXRjaChCKXtQKEIpfUY9W119KS5yZXN1bWUoKX0pfWZ1bmN0aW9uIHkoVCx3LGspe3ZhciBQPXc7c3dpdGNoKHcpe2Nhc2UiYmxvYiI6Y2FzZSJhcnJheWJ1ZmZlciI6UD0idWludDhhcnJheSI7YnJlYWs7Y2FzZSJiYXNlNjQiOlA9InN0cmluZyJ9dHJ5e3RoaXMuX2ludGVybmFsVHlwZT1QLHRoaXMuX291dHB1dFR5cGU9dyx0aGlzLl9taW1lVHlwZT1rLG4uY2hlY2tTdXBwb3J0KFApLHRoaXMuX3dvcmtlcj1ULnBpcGUobmV3IHMoUCkpLFQubG9jaygpfWNhdGNoKEYpe3RoaXMuX3dvcmtlcj1uZXcgYSgiZXJyb3IiKSx0aGlzLl93b3JrZXIuZXJyb3IoRil9fXkucHJvdG90eXBlPXthY2N1bXVsYXRlOmZ1bmN0aW9uKFQpe3JldHVybiBtKHRoaXMsVCl9LG9uOmZ1bmN0aW9uKFQsdyl7dmFyIGs9dGhpcztyZXR1cm4gVD09PSJkYXRhIj90aGlzLl93b3JrZXIub24oVCxmdW5jdGlvbihQKXt3LmNhbGwoayxQLmRhdGEsUC5tZXRhKX0pOnRoaXMuX3dvcmtlci5vbihULGZ1bmN0aW9uKCl7bi5kZWxheSh3LGFyZ3VtZW50cyxrKX0pLHRoaXN9LHJlc3VtZTpmdW5jdGlvbigpe3JldHVybiBuLmRlbGF5KHRoaXMuX3dvcmtlci5yZXN1bWUsW10sdGhpcy5fd29ya2VyKSx0aGlzfSxwYXVzZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3JrZXIucGF1c2UoKSx0aGlzfSx0b05vZGVqc1N0cmVhbTpmdW5jdGlvbihUKXtpZihuLmNoZWNrU3VwcG9ydCgibm9kZXN0cmVhbSIpLHRoaXMuX291dHB1dFR5cGUhPT0ibm9kZWJ1ZmZlciIpdGhyb3cgbmV3IEVycm9yKHRoaXMuX291dHB1dFR5cGUrIiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgbWV0aG9kIik7cmV0dXJuIG5ldyBiKHRoaXMse29iamVjdE1vZGU6dGhpcy5fb3V0cHV0VHlwZSE9PSJub2RlYnVmZmVyIn0sVCl9fSxlLmV4cG9ydHM9eX0seyIuLi9iYXNlNjQiOjEsIi4uL2V4dGVybmFsIjo2LCIuLi9ub2RlanMvTm9kZWpzU3RyZWFtT3V0cHV0QWRhcHRlciI6MTMsIi4uL3N1cHBvcnQiOjMwLCIuLi91dGlscyI6MzIsIi4vQ29udmVydFdvcmtlciI6MjQsIi4vR2VuZXJpY1dvcmtlciI6Mjh9XSwzMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtpZihyLmJhc2U2ND0hMCxyLmFycmF5PSEwLHIuc3RyaW5nPSEwLHIuYXJyYXlidWZmZXI9dHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmdHlwZW9mIFVpbnQ4QXJyYXk8InUiLHIubm9kZWJ1ZmZlcj10eXBlb2YgQnVmZmVyPCJ1IixyLnVpbnQ4YXJyYXk9dHlwZW9mIFVpbnQ4QXJyYXk8InUiLHR5cGVvZiBBcnJheUJ1ZmZlcj4idSIpci5ibG9iPSExO2Vsc2V7dmFyIG49bmV3IEFycmF5QnVmZmVyKDApO3RyeXtyLmJsb2I9bmV3IEJsb2IoW25dLHt0eXBlOiJhcHBsaWNhdGlvbi96aXAifSkuc2l6ZT09PTB9Y2F0Y2h7dHJ5e3ZhciBzPW5ldyhzZWxmLkJsb2JCdWlsZGVyfHxzZWxmLldlYktpdEJsb2JCdWlsZGVyfHxzZWxmLk1vekJsb2JCdWlsZGVyfHxzZWxmLk1TQmxvYkJ1aWxkZXIpO3MuYXBwZW5kKG4pLHIuYmxvYj1zLmdldEJsb2IoImFwcGxpY2F0aW9uL3ppcCIpLnNpemU9PT0wfWNhdGNoe3IuYmxvYj0hMX19fXRyeXtyLm5vZGVzdHJlYW09ISF0KCJyZWFkYWJsZS1zdHJlYW0iKS5SZWFkYWJsZX1jYXRjaHtyLm5vZGVzdHJlYW09ITF9fSx7InJlYWRhYmxlLXN0cmVhbSI6MTZ9XSwzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijtmb3IodmFyIG49dCgiLi91dGlscyIpLHM9dCgiLi9zdXBwb3J0IiksYT10KCIuL25vZGVqc1V0aWxzIiksbD10KCIuL3N0cmVhbS9HZW5lcmljV29ya2VyIiksYz1uZXcgQXJyYXkoMjU2KSxwPTA7cDwyNTY7cCsrKWNbcF09MjUyPD1wPzY6MjQ4PD1wPzU6MjQwPD1wPzQ6MjI0PD1wPzM6MTkyPD1wPzI6MTtjWzI1NF09Y1syNTRdPTE7ZnVuY3Rpb24gYigpe2wuY2FsbCh0aGlzLCJ1dGYtOCBkZWNvZGUiKSx0aGlzLmxlZnRPdmVyPW51bGx9ZnVuY3Rpb24gbSgpe2wuY2FsbCh0aGlzLCJ1dGYtOCBlbmNvZGUiKX1yLnV0ZjhlbmNvZGU9ZnVuY3Rpb24oeSl7cmV0dXJuIHMubm9kZWJ1ZmZlcj9hLm5ld0J1ZmZlckZyb20oeSwidXRmLTgiKTpmdW5jdGlvbihUKXt2YXIgdyxrLFAsRixoLG89VC5sZW5ndGgsZj0wO2ZvcihGPTA7RjxvO0YrKykoNjQ1MTImKGs9VC5jaGFyQ29kZUF0KEYpKSk9PTU1Mjk2JiZGKzE8byYmKDY0NTEyJihQPVQuY2hhckNvZGVBdChGKzEpKSk9PTU2MzIwJiYoaz02NTUzNisoay01NTI5Njw8MTApKyhQLTU2MzIwKSxGKyspLGYrPWs8MTI4PzE6azwyMDQ4PzI6azw2NTUzNj8zOjQ7Zm9yKHc9cy51aW50OGFycmF5P25ldyBVaW50OEFycmF5KGYpOm5ldyBBcnJheShmKSxGPWg9MDtoPGY7RisrKSg2NDUxMiYoaz1ULmNoYXJDb2RlQXQoRikpKT09NTUyOTYmJkYrMTxvJiYoNjQ1MTImKFA9VC5jaGFyQ29kZUF0KEYrMSkpKT09NTYzMjAmJihrPTY1NTM2KyhrLTU1Mjk2PDwxMCkrKFAtNTYzMjApLEYrKyksazwxMjg/d1toKytdPWs6KGs8MjA0OD93W2grK109MTkyfGs+Pj42OihrPDY1NTM2P3dbaCsrXT0yMjR8az4+PjEyOih3W2grK109MjQwfGs+Pj4xOCx3W2grK109MTI4fGs+Pj4xMiY2Myksd1toKytdPTEyOHxrPj4+NiY2Myksd1toKytdPTEyOHw2MyZrKTtyZXR1cm4gd30oeSl9LHIudXRmOGRlY29kZT1mdW5jdGlvbih5KXtyZXR1cm4gcy5ub2RlYnVmZmVyP24udHJhbnNmb3JtVG8oIm5vZGVidWZmZXIiLHkpLnRvU3RyaW5nKCJ1dGYtOCIpOmZ1bmN0aW9uKFQpe3ZhciB3LGssUCxGLGg9VC5sZW5ndGgsbz1uZXcgQXJyYXkoMipoKTtmb3Iodz1rPTA7dzxoOylpZigoUD1UW3crK10pPDEyOClvW2srK109UDtlbHNlIGlmKDQ8KEY9Y1tQXSkpb1trKytdPTY1NTMzLHcrPUYtMTtlbHNle2ZvcihQJj1GPT09Mj8zMTpGPT09Mz8xNTo3OzE8RiYmdzxoOylQPVA8PDZ8NjMmVFt3KytdLEYtLTsxPEY/b1trKytdPTY1NTMzOlA8NjU1MzY/b1trKytdPVA6KFAtPTY1NTM2LG9baysrXT01NTI5NnxQPj4xMCYxMDIzLG9baysrXT01NjMyMHwxMDIzJlApfXJldHVybiBvLmxlbmd0aCE9PWsmJihvLnN1YmFycmF5P289by5zdWJhcnJheSgwLGspOm8ubGVuZ3RoPWspLG4uYXBwbHlGcm9tQ2hhckNvZGUobyl9KHk9bi50cmFuc2Zvcm1UbyhzLnVpbnQ4YXJyYXk/InVpbnQ4YXJyYXkiOiJhcnJheSIseSkpfSxuLmluaGVyaXRzKGIsbCksYi5wcm90b3R5cGUucHJvY2Vzc0NodW5rPWZ1bmN0aW9uKHkpe3ZhciBUPW4udHJhbnNmb3JtVG8ocy51aW50OGFycmF5PyJ1aW50OGFycmF5IjoiYXJyYXkiLHkuZGF0YSk7aWYodGhpcy5sZWZ0T3ZlciYmdGhpcy5sZWZ0T3Zlci5sZW5ndGgpe2lmKHMudWludDhhcnJheSl7dmFyIHc9VDsoVD1uZXcgVWludDhBcnJheSh3Lmxlbmd0aCt0aGlzLmxlZnRPdmVyLmxlbmd0aCkpLnNldCh0aGlzLmxlZnRPdmVyLDApLFQuc2V0KHcsdGhpcy5sZWZ0T3Zlci5sZW5ndGgpfWVsc2UgVD10aGlzLmxlZnRPdmVyLmNvbmNhdChUKTt0aGlzLmxlZnRPdmVyPW51bGx9dmFyIGs9ZnVuY3Rpb24oRixoKXt2YXIgbztmb3IoKGg9aHx8Ri5sZW5ndGgpPkYubGVuZ3RoJiYoaD1GLmxlbmd0aCksbz1oLTE7MDw9byYmKDE5MiZGW29dKT09MTI4OylvLS07cmV0dXJuIG88MHx8bz09PTA/aDpvK2NbRltvXV0+aD9vOmh9KFQpLFA9VDtrIT09VC5sZW5ndGgmJihzLnVpbnQ4YXJyYXk/KFA9VC5zdWJhcnJheSgwLGspLHRoaXMubGVmdE92ZXI9VC5zdWJhcnJheShrLFQubGVuZ3RoKSk6KFA9VC5zbGljZSgwLGspLHRoaXMubGVmdE92ZXI9VC5zbGljZShrLFQubGVuZ3RoKSkpLHRoaXMucHVzaCh7ZGF0YTpyLnV0ZjhkZWNvZGUoUCksbWV0YTp5Lm1ldGF9KX0sYi5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXt0aGlzLmxlZnRPdmVyJiZ0aGlzLmxlZnRPdmVyLmxlbmd0aCYmKHRoaXMucHVzaCh7ZGF0YTpyLnV0ZjhkZWNvZGUodGhpcy5sZWZ0T3ZlciksbWV0YTp7fX0pLHRoaXMubGVmdE92ZXI9bnVsbCl9LHIuVXRmOERlY29kZVdvcmtlcj1iLG4uaW5oZXJpdHMobSxsKSxtLnByb3RvdHlwZS5wcm9jZXNzQ2h1bms9ZnVuY3Rpb24oeSl7dGhpcy5wdXNoKHtkYXRhOnIudXRmOGVuY29kZSh5LmRhdGEpLG1ldGE6eS5tZXRhfSl9LHIuVXRmOEVuY29kZVdvcmtlcj1tfSx7Ii4vbm9kZWpzVXRpbHMiOjE0LCIuL3N0cmVhbS9HZW5lcmljV29ya2VyIjoyOCwiLi9zdXBwb3J0IjozMCwiLi91dGlscyI6MzJ9XSwzMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL3N1cHBvcnQiKSxzPXQoIi4vYmFzZTY0IiksYT10KCIuL25vZGVqc1V0aWxzIiksbD10KCIuL2V4dGVybmFsIik7ZnVuY3Rpb24gYyh3KXtyZXR1cm4gd31mdW5jdGlvbiBwKHcsayl7Zm9yKHZhciBQPTA7UDx3Lmxlbmd0aDsrK1Apa1tQXT0yNTUmdy5jaGFyQ29kZUF0KFApO3JldHVybiBrfXQoInNldGltbWVkaWF0ZSIpLHIubmV3QmxvYj1mdW5jdGlvbih3LGspe3IuY2hlY2tTdXBwb3J0KCJibG9iIik7dHJ5e3JldHVybiBuZXcgQmxvYihbd10se3R5cGU6a30pfWNhdGNoe3RyeXt2YXIgUD1uZXcoc2VsZi5CbG9iQnVpbGRlcnx8c2VsZi5XZWJLaXRCbG9iQnVpbGRlcnx8c2VsZi5Nb3pCbG9iQnVpbGRlcnx8c2VsZi5NU0Jsb2JCdWlsZGVyKTtyZXR1cm4gUC5hcHBlbmQodyksUC5nZXRCbG9iKGspfWNhdGNoe3Rocm93IG5ldyBFcnJvcigiQnVnIDogY2FuJ3QgY29uc3RydWN0IHRoZSBCbG9iLiIpfX19O3ZhciBiPXtzdHJpbmdpZnlCeUNodW5rOmZ1bmN0aW9uKHcsayxQKXt2YXIgRj1bXSxoPTAsbz13Lmxlbmd0aDtpZihvPD1QKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsdyk7Zm9yKDtoPG87KWs9PT0iYXJyYXkifHxrPT09Im5vZGVidWZmZXIiP0YucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsdy5zbGljZShoLE1hdGgubWluKGgrUCxvKSkpKTpGLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLHcuc3ViYXJyYXkoaCxNYXRoLm1pbihoK1AsbykpKSksaCs9UDtyZXR1cm4gRi5qb2luKCIiKX0sc3RyaW5naWZ5QnlDaGFyOmZ1bmN0aW9uKHcpe2Zvcih2YXIgaz0iIixQPTA7UDx3Lmxlbmd0aDtQKyspays9U3RyaW5nLmZyb21DaGFyQ29kZSh3W1BdKTtyZXR1cm4ga30sYXBwbHlDYW5CZVVzZWQ6e3VpbnQ4YXJyYXk6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG4udWludDhhcnJheSYmU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG5ldyBVaW50OEFycmF5KDEpKS5sZW5ndGg9PT0xfWNhdGNoe3JldHVybiExfX0oKSxub2RlYnVmZmVyOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuLm5vZGVidWZmZXImJlN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxhLmFsbG9jQnVmZmVyKDEpKS5sZW5ndGg9PT0xfWNhdGNoe3JldHVybiExfX0oKX19O2Z1bmN0aW9uIG0odyl7dmFyIGs9NjU1MzYsUD1yLmdldFR5cGVPZih3KSxGPSEwO2lmKFA9PT0idWludDhhcnJheSI/Rj1iLmFwcGx5Q2FuQmVVc2VkLnVpbnQ4YXJyYXk6UD09PSJub2RlYnVmZmVyIiYmKEY9Yi5hcHBseUNhbkJlVXNlZC5ub2RlYnVmZmVyKSxGKWZvcig7MTxrOyl0cnl7cmV0dXJuIGIuc3RyaW5naWZ5QnlDaHVuayh3LFAsayl9Y2F0Y2h7az1NYXRoLmZsb29yKGsvMil9cmV0dXJuIGIuc3RyaW5naWZ5QnlDaGFyKHcpfWZ1bmN0aW9uIHkodyxrKXtmb3IodmFyIFA9MDtQPHcubGVuZ3RoO1ArKylrW1BdPXdbUF07cmV0dXJuIGt9ci5hcHBseUZyb21DaGFyQ29kZT1tO3ZhciBUPXt9O1Quc3RyaW5nPXtzdHJpbmc6YyxhcnJheTpmdW5jdGlvbih3KXtyZXR1cm4gcCh3LG5ldyBBcnJheSh3Lmxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpmdW5jdGlvbih3KXtyZXR1cm4gVC5zdHJpbmcudWludDhhcnJheSh3KS5idWZmZXJ9LHVpbnQ4YXJyYXk6ZnVuY3Rpb24odyl7cmV0dXJuIHAodyxuZXcgVWludDhBcnJheSh3Lmxlbmd0aCkpfSxub2RlYnVmZmVyOmZ1bmN0aW9uKHcpe3JldHVybiBwKHcsYS5hbGxvY0J1ZmZlcih3Lmxlbmd0aCkpfX0sVC5hcnJheT17c3RyaW5nOm0sYXJyYXk6YyxhcnJheWJ1ZmZlcjpmdW5jdGlvbih3KXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkodykuYnVmZmVyfSx1aW50OGFycmF5OmZ1bmN0aW9uKHcpe3JldHVybiBuZXcgVWludDhBcnJheSh3KX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbih3KXtyZXR1cm4gYS5uZXdCdWZmZXJGcm9tKHcpfX0sVC5hcnJheWJ1ZmZlcj17c3RyaW5nOmZ1bmN0aW9uKHcpe3JldHVybiBtKG5ldyBVaW50OEFycmF5KHcpKX0sYXJyYXk6ZnVuY3Rpb24odyl7cmV0dXJuIHkobmV3IFVpbnQ4QXJyYXkodyksbmV3IEFycmF5KHcuYnl0ZUxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpjLHVpbnQ4YXJyYXk6ZnVuY3Rpb24odyl7cmV0dXJuIG5ldyBVaW50OEFycmF5KHcpfSxub2RlYnVmZmVyOmZ1bmN0aW9uKHcpe3JldHVybiBhLm5ld0J1ZmZlckZyb20obmV3IFVpbnQ4QXJyYXkodykpfX0sVC51aW50OGFycmF5PXtzdHJpbmc6bSxhcnJheTpmdW5jdGlvbih3KXtyZXR1cm4geSh3LG5ldyBBcnJheSh3Lmxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpmdW5jdGlvbih3KXtyZXR1cm4gdy5idWZmZXJ9LHVpbnQ4YXJyYXk6Yyxub2RlYnVmZmVyOmZ1bmN0aW9uKHcpe3JldHVybiBhLm5ld0J1ZmZlckZyb20odyl9fSxULm5vZGVidWZmZXI9e3N0cmluZzptLGFycmF5OmZ1bmN0aW9uKHcpe3JldHVybiB5KHcsbmV3IEFycmF5KHcubGVuZ3RoKSl9LGFycmF5YnVmZmVyOmZ1bmN0aW9uKHcpe3JldHVybiBULm5vZGVidWZmZXIudWludDhhcnJheSh3KS5idWZmZXJ9LHVpbnQ4YXJyYXk6ZnVuY3Rpb24odyl7cmV0dXJuIHkodyxuZXcgVWludDhBcnJheSh3Lmxlbmd0aCkpfSxub2RlYnVmZmVyOmN9LHIudHJhbnNmb3JtVG89ZnVuY3Rpb24odyxrKXtpZihrPWt8fCIiLCF3KXJldHVybiBrO3IuY2hlY2tTdXBwb3J0KHcpO3ZhciBQPXIuZ2V0VHlwZU9mKGspO3JldHVybiBUW1BdW3ddKGspfSxyLnJlc29sdmU9ZnVuY3Rpb24odyl7Zm9yKHZhciBrPXcuc3BsaXQoIi8iKSxQPVtdLEY9MDtGPGsubGVuZ3RoO0YrKyl7dmFyIGg9a1tGXTtoPT09Ii4ifHxoPT09IiImJkYhPT0wJiZGIT09ay5sZW5ndGgtMXx8KGg9PT0iLi4iP1AucG9wKCk6UC5wdXNoKGgpKX1yZXR1cm4gUC5qb2luKCIvIil9LHIuZ2V0VHlwZU9mPWZ1bmN0aW9uKHcpe3JldHVybiB0eXBlb2Ygdz09InN0cmluZyI/InN0cmluZyI6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHcpPT09IltvYmplY3QgQXJyYXldIj8iYXJyYXkiOm4ubm9kZWJ1ZmZlciYmYS5pc0J1ZmZlcih3KT8ibm9kZWJ1ZmZlciI6bi51aW50OGFycmF5JiZ3IGluc3RhbmNlb2YgVWludDhBcnJheT8idWludDhhcnJheSI6bi5hcnJheWJ1ZmZlciYmdyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyPyJhcnJheWJ1ZmZlciI6dm9pZCAwfSxyLmNoZWNrU3VwcG9ydD1mdW5jdGlvbih3KXtpZighblt3LnRvTG93ZXJDYXNlKCldKXRocm93IG5ldyBFcnJvcih3KyIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIHBsYXRmb3JtIil9LHIuTUFYX1ZBTFVFXzE2QklUUz02NTUzNSxyLk1BWF9WQUxVRV8zMkJJVFM9LTEsci5wcmV0dHk9ZnVuY3Rpb24odyl7dmFyIGssUCxGPSIiO2ZvcihQPTA7UDwod3x8IiIpLmxlbmd0aDtQKyspRis9IlxceCIrKChrPXcuY2hhckNvZGVBdChQKSk8MTY/IjAiOiIiKStrLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiBGfSxyLmRlbGF5PWZ1bmN0aW9uKHcsayxQKXtzZXRJbW1lZGlhdGUoZnVuY3Rpb24oKXt3LmFwcGx5KFB8fG51bGwsa3x8W10pfSl9LHIuaW5oZXJpdHM9ZnVuY3Rpb24odyxrKXtmdW5jdGlvbiBQKCl7fVAucHJvdG90eXBlPWsucHJvdG90eXBlLHcucHJvdG90eXBlPW5ldyBQfSxyLmV4dGVuZD1mdW5jdGlvbigpe3ZhciB3LGssUD17fTtmb3Iodz0wO3c8YXJndW1lbnRzLmxlbmd0aDt3KyspZm9yKGsgaW4gYXJndW1lbnRzW3ddKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcmd1bWVudHNbd10saykmJlBba109PT12b2lkIDAmJihQW2tdPWFyZ3VtZW50c1t3XVtrXSk7cmV0dXJuIFB9LHIucHJlcGFyZUNvbnRlbnQ9ZnVuY3Rpb24odyxrLFAsRixoKXtyZXR1cm4gbC5Qcm9taXNlLnJlc29sdmUoaykudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gbi5ibG9iJiYobyBpbnN0YW5jZW9mIEJsb2J8fFsiW29iamVjdCBGaWxlXSIsIltvYmplY3QgQmxvYl0iXS5pbmRleE9mKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKSkhPT0tMSkmJnR5cGVvZiBGaWxlUmVhZGVyPCJ1Ij9uZXcgbC5Qcm9taXNlKGZ1bmN0aW9uKGYsQyl7dmFyIEI9bmV3IEZpbGVSZWFkZXI7Qi5vbmxvYWQ9ZnVuY3Rpb24odSl7Zih1LnRhcmdldC5yZXN1bHQpfSxCLm9uZXJyb3I9ZnVuY3Rpb24odSl7Qyh1LnRhcmdldC5lcnJvcil9LEIucmVhZEFzQXJyYXlCdWZmZXIobyl9KTpvfSkudGhlbihmdW5jdGlvbihvKXt2YXIgZj1yLmdldFR5cGVPZihvKTtyZXR1cm4gZj8oZj09PSJhcnJheWJ1ZmZlciI/bz1yLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixvKTpmPT09InN0cmluZyImJihoP289cy5kZWNvZGUobyk6UCYmRiE9PSEwJiYobz1mdW5jdGlvbihDKXtyZXR1cm4gcChDLG4udWludDhhcnJheT9uZXcgVWludDhBcnJheShDLmxlbmd0aCk6bmV3IEFycmF5KEMubGVuZ3RoKSl9KG8pKSksbyk6bC5Qcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIkNhbid0IHJlYWQgdGhlIGRhdGEgb2YgJyIrdysiJy4gSXMgaXQgaW4gYSBzdXBwb3J0ZWQgSmF2YVNjcmlwdCB0eXBlIChTdHJpbmcsIEJsb2IsIEFycmF5QnVmZmVyLCBldGMpID8iKSl9KX19LHsiLi9iYXNlNjQiOjEsIi4vZXh0ZXJuYWwiOjYsIi4vbm9kZWpzVXRpbHMiOjE0LCIuL3N1cHBvcnQiOjMwLHNldGltbWVkaWF0ZTo1NH1dLDMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vcmVhZGVyL3JlYWRlckZvciIpLHM9dCgiLi91dGlscyIpLGE9dCgiLi9zaWduYXR1cmUiKSxsPXQoIi4vemlwRW50cnkiKSxjPXQoIi4vc3VwcG9ydCIpO2Z1bmN0aW9uIHAoYil7dGhpcy5maWxlcz1bXSx0aGlzLmxvYWRPcHRpb25zPWJ9cC5wcm90b3R5cGU9e2NoZWNrU2lnbmF0dXJlOmZ1bmN0aW9uKGIpe2lmKCF0aGlzLnJlYWRlci5yZWFkQW5kQ2hlY2tTaWduYXR1cmUoYikpe3RoaXMucmVhZGVyLmluZGV4LT00O3ZhciBtPXRoaXMucmVhZGVyLnJlYWRTdHJpbmcoNCk7dGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIG9yIGJ1ZzogdW5leHBlY3RlZCBzaWduYXR1cmUgKCIrcy5wcmV0dHkobSkrIiwgZXhwZWN0ZWQgIitzLnByZXR0eShiKSsiKSIpfX0saXNTaWduYXR1cmU6ZnVuY3Rpb24oYixtKXt2YXIgeT10aGlzLnJlYWRlci5pbmRleDt0aGlzLnJlYWRlci5zZXRJbmRleChiKTt2YXIgVD10aGlzLnJlYWRlci5yZWFkU3RyaW5nKDQpPT09bTtyZXR1cm4gdGhpcy5yZWFkZXIuc2V0SW5kZXgoeSksVH0scmVhZEJsb2NrRW5kT2ZDZW50cmFsOmZ1bmN0aW9uKCl7dGhpcy5kaXNrTnVtYmVyPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5kaXNrV2l0aENlbnRyYWxEaXJTdGFydD10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuY2VudHJhbERpclJlY29yZHNPblRoaXNEaXNrPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5jZW50cmFsRGlyUmVjb3Jkcz10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuY2VudHJhbERpclNpemU9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLmNlbnRyYWxEaXJPZmZzZXQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLnppcENvbW1lbnRMZW5ndGg9dGhpcy5yZWFkZXIucmVhZEludCgyKTt2YXIgYj10aGlzLnJlYWRlci5yZWFkRGF0YSh0aGlzLnppcENvbW1lbnRMZW5ndGgpLG09Yy51aW50OGFycmF5PyJ1aW50OGFycmF5IjoiYXJyYXkiLHk9cy50cmFuc2Zvcm1UbyhtLGIpO3RoaXMuemlwQ29tbWVudD10aGlzLmxvYWRPcHRpb25zLmRlY29kZUZpbGVOYW1lKHkpfSxyZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJhbDpmdW5jdGlvbigpe3RoaXMuemlwNjRFbmRPZkNlbnRyYWxTaXplPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy5yZWFkZXIuc2tpcCg0KSx0aGlzLmRpc2tOdW1iZXI9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLmRpc2tXaXRoQ2VudHJhbERpclN0YXJ0PXRoaXMucmVhZGVyLnJlYWRJbnQoNCksdGhpcy5jZW50cmFsRGlyUmVjb3Jkc09uVGhpc0Rpc2s9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy5jZW50cmFsRGlyU2l6ZT10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuY2VudHJhbERpck9mZnNldD10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuemlwNjRFeHRlbnNpYmxlRGF0YT17fTtmb3IodmFyIGIsbSx5LFQ9dGhpcy56aXA2NEVuZE9mQ2VudHJhbFNpemUtNDQ7MDxUOyliPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksbT10aGlzLnJlYWRlci5yZWFkSW50KDQpLHk9dGhpcy5yZWFkZXIucmVhZERhdGEobSksdGhpcy56aXA2NEV4dGVuc2libGVEYXRhW2JdPXtpZDpiLGxlbmd0aDptLHZhbHVlOnl9fSxyZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJhbExvY2F0b3I6ZnVuY3Rpb24oKXtpZih0aGlzLmRpc2tXaXRoWmlwNjRDZW50cmFsRGlyU3RhcnQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLnJlbGF0aXZlT2Zmc2V0RW5kT2ZaaXA2NENlbnRyYWxEaXI9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLmRpc2tzQ291bnQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSwxPHRoaXMuZGlza3NDb3VudCl0aHJvdyBuZXcgRXJyb3IoIk11bHRpLXZvbHVtZXMgemlwIGFyZSBub3Qgc3VwcG9ydGVkIil9LHJlYWRMb2NhbEZpbGVzOmZ1bmN0aW9uKCl7dmFyIGIsbTtmb3IoYj0wO2I8dGhpcy5maWxlcy5sZW5ndGg7YisrKW09dGhpcy5maWxlc1tiXSx0aGlzLnJlYWRlci5zZXRJbmRleChtLmxvY2FsSGVhZGVyT2Zmc2V0KSx0aGlzLmNoZWNrU2lnbmF0dXJlKGEuTE9DQUxfRklMRV9IRUFERVIpLG0ucmVhZExvY2FsUGFydCh0aGlzLnJlYWRlciksbS5oYW5kbGVVVEY4KCksbS5wcm9jZXNzQXR0cmlidXRlcygpfSxyZWFkQ2VudHJhbERpcjpmdW5jdGlvbigpe3ZhciBiO2Zvcih0aGlzLnJlYWRlci5zZXRJbmRleCh0aGlzLmNlbnRyYWxEaXJPZmZzZXQpO3RoaXMucmVhZGVyLnJlYWRBbmRDaGVja1NpZ25hdHVyZShhLkNFTlRSQUxfRklMRV9IRUFERVIpOykoYj1uZXcgbCh7emlwNjQ6dGhpcy56aXA2NH0sdGhpcy5sb2FkT3B0aW9ucykpLnJlYWRDZW50cmFsUGFydCh0aGlzLnJlYWRlciksdGhpcy5maWxlcy5wdXNoKGIpO2lmKHRoaXMuY2VudHJhbERpclJlY29yZHMhPT10aGlzLmZpbGVzLmxlbmd0aCYmdGhpcy5jZW50cmFsRGlyUmVjb3JkcyE9PTAmJnRoaXMuZmlsZXMubGVuZ3RoPT09MCl0aHJvdyBuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXAgb3IgYnVnOiBleHBlY3RlZCAiK3RoaXMuY2VudHJhbERpclJlY29yZHMrIiByZWNvcmRzIGluIGNlbnRyYWwgZGlyLCBnb3QgIit0aGlzLmZpbGVzLmxlbmd0aCl9LHJlYWRFbmRPZkNlbnRyYWw6ZnVuY3Rpb24oKXt2YXIgYj10aGlzLnJlYWRlci5sYXN0SW5kZXhPZlNpZ25hdHVyZShhLkNFTlRSQUxfRElSRUNUT1JZX0VORCk7aWYoYjwwKXRocm93IHRoaXMuaXNTaWduYXR1cmUoMCxhLkxPQ0FMX0ZJTEVfSEVBREVSKT9uZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXA6IGNhbid0IGZpbmQgZW5kIG9mIGNlbnRyYWwgZGlyZWN0b3J5Iik6bmV3IEVycm9yKCJDYW4ndCBmaW5kIGVuZCBvZiBjZW50cmFsIGRpcmVjdG9yeSA6IGlzIHRoaXMgYSB6aXAgZmlsZSA/IElmIGl0IGlzLCBzZWUgaHR0cHM6Ly9zdHVrLmdpdGh1Yi5pby9qc3ppcC9kb2N1bWVudGF0aW9uL2hvd3RvL3JlYWRfemlwLmh0bWwiKTt0aGlzLnJlYWRlci5zZXRJbmRleChiKTt2YXIgbT1iO2lmKHRoaXMuY2hlY2tTaWduYXR1cmUoYS5DRU5UUkFMX0RJUkVDVE9SWV9FTkQpLHRoaXMucmVhZEJsb2NrRW5kT2ZDZW50cmFsKCksdGhpcy5kaXNrTnVtYmVyPT09cy5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmRpc2tXaXRoQ2VudHJhbERpclN0YXJ0PT09cy5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzT25UaGlzRGlzaz09PXMuTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5jZW50cmFsRGlyUmVjb3Jkcz09PXMuTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5jZW50cmFsRGlyU2l6ZT09PXMuTUFYX1ZBTFVFXzMyQklUU3x8dGhpcy5jZW50cmFsRGlyT2Zmc2V0PT09cy5NQVhfVkFMVUVfMzJCSVRTKXtpZih0aGlzLnppcDY0PSEwLChiPXRoaXMucmVhZGVyLmxhc3RJbmRleE9mU2lnbmF0dXJlKGEuWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfTE9DQVRPUikpPDApdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwOiBjYW4ndCBmaW5kIHRoZSBaSVA2NCBlbmQgb2YgY2VudHJhbCBkaXJlY3RvcnkgbG9jYXRvciIpO2lmKHRoaXMucmVhZGVyLnNldEluZGV4KGIpLHRoaXMuY2hlY2tTaWduYXR1cmUoYS5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9MT0NBVE9SKSx0aGlzLnJlYWRCbG9ja1ppcDY0RW5kT2ZDZW50cmFsTG9jYXRvcigpLCF0aGlzLmlzU2lnbmF0dXJlKHRoaXMucmVsYXRpdmVPZmZzZXRFbmRPZlppcDY0Q2VudHJhbERpcixhLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0VORCkmJih0aGlzLnJlbGF0aXZlT2Zmc2V0RW5kT2ZaaXA2NENlbnRyYWxEaXI9dGhpcy5yZWFkZXIubGFzdEluZGV4T2ZTaWduYXR1cmUoYS5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9FTkQpLHRoaXMucmVsYXRpdmVPZmZzZXRFbmRPZlppcDY0Q2VudHJhbERpcjwwKSl0aHJvdyBuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXA6IGNhbid0IGZpbmQgdGhlIFpJUDY0IGVuZCBvZiBjZW50cmFsIGRpcmVjdG9yeSIpO3RoaXMucmVhZGVyLnNldEluZGV4KHRoaXMucmVsYXRpdmVPZmZzZXRFbmRPZlppcDY0Q2VudHJhbERpciksdGhpcy5jaGVja1NpZ25hdHVyZShhLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0VORCksdGhpcy5yZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJhbCgpfXZhciB5PXRoaXMuY2VudHJhbERpck9mZnNldCt0aGlzLmNlbnRyYWxEaXJTaXplO3RoaXMuemlwNjQmJih5Kz0yMCx5Kz0xMit0aGlzLnppcDY0RW5kT2ZDZW50cmFsU2l6ZSk7dmFyIFQ9bS15O2lmKDA8VCl0aGlzLmlzU2lnbmF0dXJlKG0sYS5DRU5UUkFMX0ZJTEVfSEVBREVSKXx8KHRoaXMucmVhZGVyLnplcm89VCk7ZWxzZSBpZihUPDApdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwOiBtaXNzaW5nICIrTWF0aC5hYnMoVCkrIiBieXRlcy4iKX0scHJlcGFyZVJlYWRlcjpmdW5jdGlvbihiKXt0aGlzLnJlYWRlcj1uKGIpfSxsb2FkOmZ1bmN0aW9uKGIpe3RoaXMucHJlcGFyZVJlYWRlcihiKSx0aGlzLnJlYWRFbmRPZkNlbnRyYWwoKSx0aGlzLnJlYWRDZW50cmFsRGlyKCksdGhpcy5yZWFkTG9jYWxGaWxlcygpfX0sZS5leHBvcnRzPXB9LHsiLi9yZWFkZXIvcmVhZGVyRm9yIjoyMiwiLi9zaWduYXR1cmUiOjIzLCIuL3N1cHBvcnQiOjMwLCIuL3V0aWxzIjozMiwiLi96aXBFbnRyeSI6MzR9XSwzNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL3JlYWRlci9yZWFkZXJGb3IiKSxzPXQoIi4vdXRpbHMiKSxhPXQoIi4vY29tcHJlc3NlZE9iamVjdCIpLGw9dCgiLi9jcmMzMiIpLGM9dCgiLi91dGY4IikscD10KCIuL2NvbXByZXNzaW9ucyIpLGI9dCgiLi9zdXBwb3J0Iik7ZnVuY3Rpb24gbSh5LFQpe3RoaXMub3B0aW9ucz15LHRoaXMubG9hZE9wdGlvbnM9VH1tLnByb3RvdHlwZT17aXNFbmNyeXB0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4oMSZ0aGlzLmJpdEZsYWcpPT0xfSx1c2VVVEY4OmZ1bmN0aW9uKCl7cmV0dXJuKDIwNDgmdGhpcy5iaXRGbGFnKT09MjA0OH0scmVhZExvY2FsUGFydDpmdW5jdGlvbih5KXt2YXIgVCx3O2lmKHkuc2tpcCgyMiksdGhpcy5maWxlTmFtZUxlbmd0aD15LnJlYWRJbnQoMiksdz15LnJlYWRJbnQoMiksdGhpcy5maWxlTmFtZT15LnJlYWREYXRhKHRoaXMuZmlsZU5hbWVMZW5ndGgpLHkuc2tpcCh3KSx0aGlzLmNvbXByZXNzZWRTaXplPT09LTF8fHRoaXMudW5jb21wcmVzc2VkU2l6ZT09PS0xKXRocm93IG5ldyBFcnJvcigiQnVnIG9yIGNvcnJ1cHRlZCB6aXAgOiBkaWRuJ3QgZ2V0IGVub3VnaCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjZW50cmFsIGRpcmVjdG9yeSAoY29tcHJlc3NlZFNpemUgPT09IC0xIHx8IHVuY29tcHJlc3NlZFNpemUgPT09IC0xKSIpO2lmKChUPWZ1bmN0aW9uKGspe2Zvcih2YXIgUCBpbiBwKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwLFApJiZwW1BdLm1hZ2ljPT09aylyZXR1cm4gcFtQXTtyZXR1cm4gbnVsbH0odGhpcy5jb21wcmVzc2lvbk1ldGhvZCkpPT09bnVsbCl0aHJvdyBuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXAgOiBjb21wcmVzc2lvbiAiK3MucHJldHR5KHRoaXMuY29tcHJlc3Npb25NZXRob2QpKyIgdW5rbm93biAoaW5uZXIgZmlsZSA6ICIrcy50cmFuc2Zvcm1Ubygic3RyaW5nIix0aGlzLmZpbGVOYW1lKSsiKSIpO3RoaXMuZGVjb21wcmVzc2VkPW5ldyBhKHRoaXMuY29tcHJlc3NlZFNpemUsdGhpcy51bmNvbXByZXNzZWRTaXplLHRoaXMuY3JjMzIsVCx5LnJlYWREYXRhKHRoaXMuY29tcHJlc3NlZFNpemUpKX0scmVhZENlbnRyYWxQYXJ0OmZ1bmN0aW9uKHkpe3RoaXMudmVyc2lvbk1hZGVCeT15LnJlYWRJbnQoMikseS5za2lwKDIpLHRoaXMuYml0RmxhZz15LnJlYWRJbnQoMiksdGhpcy5jb21wcmVzc2lvbk1ldGhvZD15LnJlYWRTdHJpbmcoMiksdGhpcy5kYXRlPXkucmVhZERhdGUoKSx0aGlzLmNyYzMyPXkucmVhZEludCg0KSx0aGlzLmNvbXByZXNzZWRTaXplPXkucmVhZEludCg0KSx0aGlzLnVuY29tcHJlc3NlZFNpemU9eS5yZWFkSW50KDQpO3ZhciBUPXkucmVhZEludCgyKTtpZih0aGlzLmV4dHJhRmllbGRzTGVuZ3RoPXkucmVhZEludCgyKSx0aGlzLmZpbGVDb21tZW50TGVuZ3RoPXkucmVhZEludCgyKSx0aGlzLmRpc2tOdW1iZXJTdGFydD15LnJlYWRJbnQoMiksdGhpcy5pbnRlcm5hbEZpbGVBdHRyaWJ1dGVzPXkucmVhZEludCgyKSx0aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXM9eS5yZWFkSW50KDQpLHRoaXMubG9jYWxIZWFkZXJPZmZzZXQ9eS5yZWFkSW50KDQpLHRoaXMuaXNFbmNyeXB0ZWQoKSl0aHJvdyBuZXcgRXJyb3IoIkVuY3J5cHRlZCB6aXAgYXJlIG5vdCBzdXBwb3J0ZWQiKTt5LnNraXAoVCksdGhpcy5yZWFkRXh0cmFGaWVsZHMoeSksdGhpcy5wYXJzZVpJUDY0RXh0cmFGaWVsZCh5KSx0aGlzLmZpbGVDb21tZW50PXkucmVhZERhdGEodGhpcy5maWxlQ29tbWVudExlbmd0aCl9LHByb2Nlc3NBdHRyaWJ1dGVzOmZ1bmN0aW9uKCl7dGhpcy51bml4UGVybWlzc2lvbnM9bnVsbCx0aGlzLmRvc1Blcm1pc3Npb25zPW51bGw7dmFyIHk9dGhpcy52ZXJzaW9uTWFkZUJ5Pj44O3RoaXMuZGlyPSEhKDE2JnRoaXMuZXh0ZXJuYWxGaWxlQXR0cmlidXRlcykseT09MCYmKHRoaXMuZG9zUGVybWlzc2lvbnM9NjMmdGhpcy5leHRlcm5hbEZpbGVBdHRyaWJ1dGVzKSx5PT0zJiYodGhpcy51bml4UGVybWlzc2lvbnM9dGhpcy5leHRlcm5hbEZpbGVBdHRyaWJ1dGVzPj4xNiY2NTUzNSksdGhpcy5kaXJ8fHRoaXMuZmlsZU5hbWVTdHIuc2xpY2UoLTEpIT09Ii8ifHwodGhpcy5kaXI9ITApfSxwYXJzZVpJUDY0RXh0cmFGaWVsZDpmdW5jdGlvbigpe2lmKHRoaXMuZXh0cmFGaWVsZHNbMV0pe3ZhciB5PW4odGhpcy5leHRyYUZpZWxkc1sxXS52YWx1ZSk7dGhpcy51bmNvbXByZXNzZWRTaXplPT09cy5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy51bmNvbXByZXNzZWRTaXplPXkucmVhZEludCg4KSksdGhpcy5jb21wcmVzc2VkU2l6ZT09PXMuTUFYX1ZBTFVFXzMyQklUUyYmKHRoaXMuY29tcHJlc3NlZFNpemU9eS5yZWFkSW50KDgpKSx0aGlzLmxvY2FsSGVhZGVyT2Zmc2V0PT09cy5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5sb2NhbEhlYWRlck9mZnNldD15LnJlYWRJbnQoOCkpLHRoaXMuZGlza051bWJlclN0YXJ0PT09cy5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5kaXNrTnVtYmVyU3RhcnQ9eS5yZWFkSW50KDQpKX19LHJlYWRFeHRyYUZpZWxkczpmdW5jdGlvbih5KXt2YXIgVCx3LGssUD15LmluZGV4K3RoaXMuZXh0cmFGaWVsZHNMZW5ndGg7Zm9yKHRoaXMuZXh0cmFGaWVsZHN8fCh0aGlzLmV4dHJhRmllbGRzPXt9KTt5LmluZGV4KzQ8UDspVD15LnJlYWRJbnQoMiksdz15LnJlYWRJbnQoMiksaz15LnJlYWREYXRhKHcpLHRoaXMuZXh0cmFGaWVsZHNbVF09e2lkOlQsbGVuZ3RoOncsdmFsdWU6a307eS5zZXRJbmRleChQKX0saGFuZGxlVVRGODpmdW5jdGlvbigpe3ZhciB5PWIudWludDhhcnJheT8idWludDhhcnJheSI6ImFycmF5IjtpZih0aGlzLnVzZVVURjgoKSl0aGlzLmZpbGVOYW1lU3RyPWMudXRmOGRlY29kZSh0aGlzLmZpbGVOYW1lKSx0aGlzLmZpbGVDb21tZW50U3RyPWMudXRmOGRlY29kZSh0aGlzLmZpbGVDb21tZW50KTtlbHNle3ZhciBUPXRoaXMuZmluZEV4dHJhRmllbGRVbmljb2RlUGF0aCgpO2lmKFQhPT1udWxsKXRoaXMuZmlsZU5hbWVTdHI9VDtlbHNle3ZhciB3PXMudHJhbnNmb3JtVG8oeSx0aGlzLmZpbGVOYW1lKTt0aGlzLmZpbGVOYW1lU3RyPXRoaXMubG9hZE9wdGlvbnMuZGVjb2RlRmlsZU5hbWUodyl9dmFyIGs9dGhpcy5maW5kRXh0cmFGaWVsZFVuaWNvZGVDb21tZW50KCk7aWYoayE9PW51bGwpdGhpcy5maWxlQ29tbWVudFN0cj1rO2Vsc2V7dmFyIFA9cy50cmFuc2Zvcm1Ubyh5LHRoaXMuZmlsZUNvbW1lbnQpO3RoaXMuZmlsZUNvbW1lbnRTdHI9dGhpcy5sb2FkT3B0aW9ucy5kZWNvZGVGaWxlTmFtZShQKX19fSxmaW5kRXh0cmFGaWVsZFVuaWNvZGVQYXRoOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5leHRyYUZpZWxkc1syODc4OV07aWYoeSl7dmFyIFQ9bih5LnZhbHVlKTtyZXR1cm4gVC5yZWFkSW50KDEpIT09MXx8bCh0aGlzLmZpbGVOYW1lKSE9PVQucmVhZEludCg0KT9udWxsOmMudXRmOGRlY29kZShULnJlYWREYXRhKHkubGVuZ3RoLTUpKX1yZXR1cm4gbnVsbH0sZmluZEV4dHJhRmllbGRVbmljb2RlQ29tbWVudDpmdW5jdGlvbigpe3ZhciB5PXRoaXMuZXh0cmFGaWVsZHNbMjU0NjFdO2lmKHkpe3ZhciBUPW4oeS52YWx1ZSk7cmV0dXJuIFQucmVhZEludCgxKSE9PTF8fGwodGhpcy5maWxlQ29tbWVudCkhPT1ULnJlYWRJbnQoNCk/bnVsbDpjLnV0ZjhkZWNvZGUoVC5yZWFkRGF0YSh5Lmxlbmd0aC01KSl9cmV0dXJuIG51bGx9fSxlLmV4cG9ydHM9bX0seyIuL2NvbXByZXNzZWRPYmplY3QiOjIsIi4vY29tcHJlc3Npb25zIjozLCIuL2NyYzMyIjo0LCIuL3JlYWRlci9yZWFkZXJGb3IiOjIyLCIuL3N1cHBvcnQiOjMwLCIuL3V0ZjgiOjMxLCIuL3V0aWxzIjozMn1dLDM1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oVCx3LGspe3RoaXMubmFtZT1ULHRoaXMuZGlyPWsuZGlyLHRoaXMuZGF0ZT1rLmRhdGUsdGhpcy5jb21tZW50PWsuY29tbWVudCx0aGlzLnVuaXhQZXJtaXNzaW9ucz1rLnVuaXhQZXJtaXNzaW9ucyx0aGlzLmRvc1Blcm1pc3Npb25zPWsuZG9zUGVybWlzc2lvbnMsdGhpcy5fZGF0YT13LHRoaXMuX2RhdGFCaW5hcnk9ay5iaW5hcnksdGhpcy5vcHRpb25zPXtjb21wcmVzc2lvbjprLmNvbXByZXNzaW9uLGNvbXByZXNzaW9uT3B0aW9uczprLmNvbXByZXNzaW9uT3B0aW9uc319dmFyIHM9dCgiLi9zdHJlYW0vU3RyZWFtSGVscGVyIiksYT10KCIuL3N0cmVhbS9EYXRhV29ya2VyIiksbD10KCIuL3V0ZjgiKSxjPXQoIi4vY29tcHJlc3NlZE9iamVjdCIpLHA9dCgiLi9zdHJlYW0vR2VuZXJpY1dvcmtlciIpO24ucHJvdG90eXBlPXtpbnRlcm5hbFN0cmVhbTpmdW5jdGlvbihUKXt2YXIgdz1udWxsLGs9InN0cmluZyI7dHJ5e2lmKCFUKXRocm93IG5ldyBFcnJvcigiTm8gb3V0cHV0IHR5cGUgc3BlY2lmaWVkLiIpO3ZhciBQPShrPVQudG9Mb3dlckNhc2UoKSk9PT0ic3RyaW5nInx8az09PSJ0ZXh0IjtrIT09ImJpbmFyeXN0cmluZyImJmshPT0idGV4dCJ8fChrPSJzdHJpbmciKSx3PXRoaXMuX2RlY29tcHJlc3NXb3JrZXIoKTt2YXIgRj0hdGhpcy5fZGF0YUJpbmFyeTtGJiYhUCYmKHc9dy5waXBlKG5ldyBsLlV0ZjhFbmNvZGVXb3JrZXIpKSwhRiYmUCYmKHc9dy5waXBlKG5ldyBsLlV0ZjhEZWNvZGVXb3JrZXIpKX1jYXRjaChoKXsodz1uZXcgcCgiZXJyb3IiKSkuZXJyb3IoaCl9cmV0dXJuIG5ldyBzKHcsaywiIil9LGFzeW5jOmZ1bmN0aW9uKFQsdyl7cmV0dXJuIHRoaXMuaW50ZXJuYWxTdHJlYW0oVCkuYWNjdW11bGF0ZSh3KX0sbm9kZVN0cmVhbTpmdW5jdGlvbihULHcpe3JldHVybiB0aGlzLmludGVybmFsU3RyZWFtKFR8fCJub2RlYnVmZmVyIikudG9Ob2RlanNTdHJlYW0odyl9LF9jb21wcmVzc1dvcmtlcjpmdW5jdGlvbihULHcpe2lmKHRoaXMuX2RhdGEgaW5zdGFuY2VvZiBjJiZ0aGlzLl9kYXRhLmNvbXByZXNzaW9uLm1hZ2ljPT09VC5tYWdpYylyZXR1cm4gdGhpcy5fZGF0YS5nZXRDb21wcmVzc2VkV29ya2VyKCk7dmFyIGs9dGhpcy5fZGVjb21wcmVzc1dvcmtlcigpO3JldHVybiB0aGlzLl9kYXRhQmluYXJ5fHwoaz1rLnBpcGUobmV3IGwuVXRmOEVuY29kZVdvcmtlcikpLGMuY3JlYXRlV29ya2VyRnJvbShrLFQsdyl9LF9kZWNvbXByZXNzV29ya2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RhdGEgaW5zdGFuY2VvZiBjP3RoaXMuX2RhdGEuZ2V0Q29udGVudFdvcmtlcigpOnRoaXMuX2RhdGEgaW5zdGFuY2VvZiBwP3RoaXMuX2RhdGE6bmV3IGEodGhpcy5fZGF0YSl9fTtmb3IodmFyIGI9WyJhc1RleHQiLCJhc0JpbmFyeSIsImFzTm9kZUJ1ZmZlciIsImFzVWludDhBcnJheSIsImFzQXJyYXlCdWZmZXIiXSxtPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJUaGlzIG1ldGhvZCBoYXMgYmVlbiByZW1vdmVkIGluIEpTWmlwIDMuMCwgcGxlYXNlIGNoZWNrIHRoZSB1cGdyYWRlIGd1aWRlLiIpfSx5PTA7eTxiLmxlbmd0aDt5Kyspbi5wcm90b3R5cGVbYlt5XV09bTtlLmV4cG9ydHM9bn0seyIuL2NvbXByZXNzZWRPYmplY3QiOjIsIi4vc3RyZWFtL0RhdGFXb3JrZXIiOjI3LCIuL3N0cmVhbS9HZW5lcmljV29ya2VyIjoyOCwiLi9zdHJlYW0vU3RyZWFtSGVscGVyIjoyOSwiLi91dGY4IjozMX1dLDM2OltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcyxhLGw9bi5NdXRhdGlvbk9ic2VydmVyfHxuLldlYktpdE11dGF0aW9uT2JzZXJ2ZXI7aWYobCl7dmFyIGM9MCxwPW5ldyBsKFQpLGI9bi5kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIik7cC5vYnNlcnZlKGIse2NoYXJhY3RlckRhdGE6ITB9KSxzPWZ1bmN0aW9uKCl7Yi5kYXRhPWM9KytjJTJ9fWVsc2UgaWYobi5zZXRJbW1lZGlhdGV8fG4uTWVzc2FnZUNoYW5uZWw9PT12b2lkIDApcz0iZG9jdW1lbnQiaW4gbiYmIm9ucmVhZHlzdGF0ZWNoYW5nZSJpbiBuLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpP2Z1bmN0aW9uKCl7dmFyIHc9bi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTt3Lm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe1QoKSx3Lm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLHcucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh3KSx3PW51bGx9LG4uZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHcpfTpmdW5jdGlvbigpe3NldFRpbWVvdXQoVCwwKX07ZWxzZXt2YXIgbT1uZXcgbi5NZXNzYWdlQ2hhbm5lbDttLnBvcnQxLm9ubWVzc2FnZT1ULHM9ZnVuY3Rpb24oKXttLnBvcnQyLnBvc3RNZXNzYWdlKDApfX12YXIgeT1bXTtmdW5jdGlvbiBUKCl7dmFyIHcsazthPSEwO2Zvcih2YXIgUD15Lmxlbmd0aDtQOyl7Zm9yKGs9eSx5PVtdLHc9LTE7Kyt3PFA7KWtbd10oKTtQPXkubGVuZ3RofWE9ITF9ZS5leHBvcnRzPWZ1bmN0aW9uKHcpe3kucHVzaCh3KSE9PTF8fGF8fHMoKX19KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9LHt9XSwzNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJpbW1lZGlhdGUiKTtmdW5jdGlvbiBzKCl7fXZhciBhPXt9LGw9WyJSRUpFQ1RFRCJdLGM9WyJGVUxGSUxMRUQiXSxwPVsiUEVORElORyJdO2Z1bmN0aW9uIGIoUCl7aWYodHlwZW9mIFAhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigicmVzb2x2ZXIgbXVzdCBiZSBhIGZ1bmN0aW9uIik7dGhpcy5zdGF0ZT1wLHRoaXMucXVldWU9W10sdGhpcy5vdXRjb21lPXZvaWQgMCxQIT09cyYmdyh0aGlzLFApfWZ1bmN0aW9uIG0oUCxGLGgpe3RoaXMucHJvbWlzZT1QLHR5cGVvZiBGPT0iZnVuY3Rpb24iJiYodGhpcy5vbkZ1bGZpbGxlZD1GLHRoaXMuY2FsbEZ1bGZpbGxlZD10aGlzLm90aGVyQ2FsbEZ1bGZpbGxlZCksdHlwZW9mIGg9PSJmdW5jdGlvbiImJih0aGlzLm9uUmVqZWN0ZWQ9aCx0aGlzLmNhbGxSZWplY3RlZD10aGlzLm90aGVyQ2FsbFJlamVjdGVkKX1mdW5jdGlvbiB5KFAsRixoKXtuKGZ1bmN0aW9uKCl7dmFyIG87dHJ5e289RihoKX1jYXRjaChmKXtyZXR1cm4gYS5yZWplY3QoUCxmKX1vPT09UD9hLnJlamVjdChQLG5ldyBUeXBlRXJyb3IoIkNhbm5vdCByZXNvbHZlIHByb21pc2Ugd2l0aCBpdHNlbGYiKSk6YS5yZXNvbHZlKFAsbyl9KX1mdW5jdGlvbiBUKFApe3ZhciBGPVAmJlAudGhlbjtpZihQJiYodHlwZW9mIFA9PSJvYmplY3QifHx0eXBlb2YgUD09ImZ1bmN0aW9uIikmJnR5cGVvZiBGPT0iZnVuY3Rpb24iKXJldHVybiBmdW5jdGlvbigpe0YuYXBwbHkoUCxhcmd1bWVudHMpfX1mdW5jdGlvbiB3KFAsRil7dmFyIGg9ITE7ZnVuY3Rpb24gbyhCKXtofHwoaD0hMCxhLnJlamVjdChQLEIpKX1mdW5jdGlvbiBmKEIpe2h8fChoPSEwLGEucmVzb2x2ZShQLEIpKX12YXIgQz1rKGZ1bmN0aW9uKCl7RihmLG8pfSk7Qy5zdGF0dXM9PT0iZXJyb3IiJiZvKEMudmFsdWUpfWZ1bmN0aW9uIGsoUCxGKXt2YXIgaD17fTt0cnl7aC52YWx1ZT1QKEYpLGguc3RhdHVzPSJzdWNjZXNzIn1jYXRjaChvKXtoLnN0YXR1cz0iZXJyb3IiLGgudmFsdWU9b31yZXR1cm4gaH0oZS5leHBvcnRzPWIpLnByb3RvdHlwZS5maW5hbGx5PWZ1bmN0aW9uKFApe2lmKHR5cGVvZiBQIT0iZnVuY3Rpb24iKXJldHVybiB0aGlzO3ZhciBGPXRoaXMuY29uc3RydWN0b3I7cmV0dXJuIHRoaXMudGhlbihmdW5jdGlvbihoKXtyZXR1cm4gRi5yZXNvbHZlKFAoKSkudGhlbihmdW5jdGlvbigpe3JldHVybiBofSl9LGZ1bmN0aW9uKGgpe3JldHVybiBGLnJlc29sdmUoUCgpKS50aGVuKGZ1bmN0aW9uKCl7dGhyb3cgaH0pfSl9LGIucHJvdG90eXBlLmNhdGNoPWZ1bmN0aW9uKFApe3JldHVybiB0aGlzLnRoZW4obnVsbCxQKX0sYi5wcm90b3R5cGUudGhlbj1mdW5jdGlvbihQLEYpe2lmKHR5cGVvZiBQIT0iZnVuY3Rpb24iJiZ0aGlzLnN0YXRlPT09Y3x8dHlwZW9mIEYhPSJmdW5jdGlvbiImJnRoaXMuc3RhdGU9PT1sKXJldHVybiB0aGlzO3ZhciBoPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHMpO3JldHVybiB0aGlzLnN0YXRlIT09cD95KGgsdGhpcy5zdGF0ZT09PWM/UDpGLHRoaXMub3V0Y29tZSk6dGhpcy5xdWV1ZS5wdXNoKG5ldyBtKGgsUCxGKSksaH0sbS5wcm90b3R5cGUuY2FsbEZ1bGZpbGxlZD1mdW5jdGlvbihQKXthLnJlc29sdmUodGhpcy5wcm9taXNlLFApfSxtLnByb3RvdHlwZS5vdGhlckNhbGxGdWxmaWxsZWQ9ZnVuY3Rpb24oUCl7eSh0aGlzLnByb21pc2UsdGhpcy5vbkZ1bGZpbGxlZCxQKX0sbS5wcm90b3R5cGUuY2FsbFJlamVjdGVkPWZ1bmN0aW9uKFApe2EucmVqZWN0KHRoaXMucHJvbWlzZSxQKX0sbS5wcm90b3R5cGUub3RoZXJDYWxsUmVqZWN0ZWQ9ZnVuY3Rpb24oUCl7eSh0aGlzLnByb21pc2UsdGhpcy5vblJlamVjdGVkLFApfSxhLnJlc29sdmU9ZnVuY3Rpb24oUCxGKXt2YXIgaD1rKFQsRik7aWYoaC5zdGF0dXM9PT0iZXJyb3IiKXJldHVybiBhLnJlamVjdChQLGgudmFsdWUpO3ZhciBvPWgudmFsdWU7aWYobyl3KFAsbyk7ZWxzZXtQLnN0YXRlPWMsUC5vdXRjb21lPUY7Zm9yKHZhciBmPS0xLEM9UC5xdWV1ZS5sZW5ndGg7KytmPEM7KVAucXVldWVbZl0uY2FsbEZ1bGZpbGxlZChGKX1yZXR1cm4gUH0sYS5yZWplY3Q9ZnVuY3Rpb24oUCxGKXtQLnN0YXRlPWwsUC5vdXRjb21lPUY7Zm9yKHZhciBoPS0xLG89UC5xdWV1ZS5sZW5ndGg7KytoPG87KVAucXVldWVbaF0uY2FsbFJlamVjdGVkKEYpO3JldHVybiBQfSxiLnJlc29sdmU9ZnVuY3Rpb24oUCl7cmV0dXJuIFAgaW5zdGFuY2VvZiB0aGlzP1A6YS5yZXNvbHZlKG5ldyB0aGlzKHMpLFApfSxiLnJlamVjdD1mdW5jdGlvbihQKXt2YXIgRj1uZXcgdGhpcyhzKTtyZXR1cm4gYS5yZWplY3QoRixQKX0sYi5hbGw9ZnVuY3Rpb24oUCl7dmFyIEY9dGhpcztpZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUCkhPT0iW29iamVjdCBBcnJheV0iKXJldHVybiB0aGlzLnJlamVjdChuZXcgVHlwZUVycm9yKCJtdXN0IGJlIGFuIGFycmF5IikpO3ZhciBoPVAubGVuZ3RoLG89ITE7aWYoIWgpcmV0dXJuIHRoaXMucmVzb2x2ZShbXSk7Zm9yKHZhciBmPW5ldyBBcnJheShoKSxDPTAsQj0tMSx1PW5ldyB0aGlzKHMpOysrQjxoOyl6KFBbQl0sQik7cmV0dXJuIHU7ZnVuY3Rpb24geihxLGV0KXtGLnJlc29sdmUocSkudGhlbihmdW5jdGlvbihPKXtmW2V0XT1PLCsrQyE9PWh8fG98fChvPSEwLGEucmVzb2x2ZSh1LGYpKX0sZnVuY3Rpb24oTyl7b3x8KG89ITAsYS5yZWplY3QodSxPKSl9KX19LGIucmFjZT1mdW5jdGlvbihQKXt2YXIgRj10aGlzO2lmKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChQKSE9PSJbb2JqZWN0IEFycmF5XSIpcmV0dXJuIHRoaXMucmVqZWN0KG5ldyBUeXBlRXJyb3IoIm11c3QgYmUgYW4gYXJyYXkiKSk7dmFyIGg9UC5sZW5ndGgsbz0hMTtpZighaClyZXR1cm4gdGhpcy5yZXNvbHZlKFtdKTtmb3IodmFyIGY9LTEsQz1uZXcgdGhpcyhzKTsrK2Y8aDspQj1QW2ZdLEYucmVzb2x2ZShCKS50aGVuKGZ1bmN0aW9uKHUpe298fChvPSEwLGEucmVzb2x2ZShDLHUpKX0sZnVuY3Rpb24odSl7b3x8KG89ITAsYS5yZWplY3QoQyx1KSl9KTt2YXIgQjtyZXR1cm4gQ319LHtpbW1lZGlhdGU6MzZ9XSwzODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj17fTsoMCx0KCIuL2xpYi91dGlscy9jb21tb24iKS5hc3NpZ24pKG4sdCgiLi9saWIvZGVmbGF0ZSIpLHQoIi4vbGliL2luZmxhdGUiKSx0KCIuL2xpYi96bGliL2NvbnN0YW50cyIpKSxlLmV4cG9ydHM9bn0seyIuL2xpYi9kZWZsYXRlIjozOSwiLi9saWIvaW5mbGF0ZSI6NDAsIi4vbGliL3V0aWxzL2NvbW1vbiI6NDEsIi4vbGliL3psaWIvY29uc3RhbnRzIjo0NH1dLDM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vemxpYi9kZWZsYXRlIikscz10KCIuL3V0aWxzL2NvbW1vbiIpLGE9dCgiLi91dGlscy9zdHJpbmdzIiksbD10KCIuL3psaWIvbWVzc2FnZXMiKSxjPXQoIi4vemxpYi96c3RyZWFtIikscD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGI9MCxtPS0xLHk9MCxUPTg7ZnVuY3Rpb24gdyhQKXtpZighKHRoaXMgaW5zdGFuY2VvZiB3KSlyZXR1cm4gbmV3IHcoUCk7dGhpcy5vcHRpb25zPXMuYXNzaWduKHtsZXZlbDptLG1ldGhvZDpULGNodW5rU2l6ZToxNjM4NCx3aW5kb3dCaXRzOjE1LG1lbUxldmVsOjgsc3RyYXRlZ3k6eSx0bzoiIn0sUHx8e30pO3ZhciBGPXRoaXMub3B0aW9ucztGLnJhdyYmMDxGLndpbmRvd0JpdHM/Ri53aW5kb3dCaXRzPS1GLndpbmRvd0JpdHM6Ri5nemlwJiYwPEYud2luZG93Qml0cyYmRi53aW5kb3dCaXRzPDE2JiYoRi53aW5kb3dCaXRzKz0xNiksdGhpcy5lcnI9MCx0aGlzLm1zZz0iIix0aGlzLmVuZGVkPSExLHRoaXMuY2h1bmtzPVtdLHRoaXMuc3RybT1uZXcgYyx0aGlzLnN0cm0uYXZhaWxfb3V0PTA7dmFyIGg9bi5kZWZsYXRlSW5pdDIodGhpcy5zdHJtLEYubGV2ZWwsRi5tZXRob2QsRi53aW5kb3dCaXRzLEYubWVtTGV2ZWwsRi5zdHJhdGVneSk7aWYoaCE9PWIpdGhyb3cgbmV3IEVycm9yKGxbaF0pO2lmKEYuaGVhZGVyJiZuLmRlZmxhdGVTZXRIZWFkZXIodGhpcy5zdHJtLEYuaGVhZGVyKSxGLmRpY3Rpb25hcnkpe3ZhciBvO2lmKG89dHlwZW9mIEYuZGljdGlvbmFyeT09InN0cmluZyI/YS5zdHJpbmcyYnVmKEYuZGljdGlvbmFyeSk6cC5jYWxsKEYuZGljdGlvbmFyeSk9PT0iW29iamVjdCBBcnJheUJ1ZmZlcl0iP25ldyBVaW50OEFycmF5KEYuZGljdGlvbmFyeSk6Ri5kaWN0aW9uYXJ5LChoPW4uZGVmbGF0ZVNldERpY3Rpb25hcnkodGhpcy5zdHJtLG8pKSE9PWIpdGhyb3cgbmV3IEVycm9yKGxbaF0pO3RoaXMuX2RpY3Rfc2V0PSEwfX1mdW5jdGlvbiBrKFAsRil7dmFyIGg9bmV3IHcoRik7aWYoaC5wdXNoKFAsITApLGguZXJyKXRocm93IGgubXNnfHxsW2guZXJyXTtyZXR1cm4gaC5yZXN1bHR9dy5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihQLEYpe3ZhciBoLG8sZj10aGlzLnN0cm0sQz10aGlzLm9wdGlvbnMuY2h1bmtTaXplO2lmKHRoaXMuZW5kZWQpcmV0dXJuITE7bz1GPT09fn5GP0Y6Rj09PSEwPzQ6MCx0eXBlb2YgUD09InN0cmluZyI/Zi5pbnB1dD1hLnN0cmluZzJidWYoUCk6cC5jYWxsKFApPT09IltvYmplY3QgQXJyYXlCdWZmZXJdIj9mLmlucHV0PW5ldyBVaW50OEFycmF5KFApOmYuaW5wdXQ9UCxmLm5leHRfaW49MCxmLmF2YWlsX2luPWYuaW5wdXQubGVuZ3RoO2Rve2lmKGYuYXZhaWxfb3V0PT09MCYmKGYub3V0cHV0PW5ldyBzLkJ1ZjgoQyksZi5uZXh0X291dD0wLGYuYXZhaWxfb3V0PUMpLChoPW4uZGVmbGF0ZShmLG8pKSE9PTEmJmghPT1iKXJldHVybiB0aGlzLm9uRW5kKGgpLCEodGhpcy5lbmRlZD0hMCk7Zi5hdmFpbF9vdXQhPT0wJiYoZi5hdmFpbF9pbiE9PTB8fG8hPT00JiZvIT09Mil8fCh0aGlzLm9wdGlvbnMudG89PT0ic3RyaW5nIj90aGlzLm9uRGF0YShhLmJ1ZjJiaW5zdHJpbmcocy5zaHJpbmtCdWYoZi5vdXRwdXQsZi5uZXh0X291dCkpKTp0aGlzLm9uRGF0YShzLnNocmlua0J1ZihmLm91dHB1dCxmLm5leHRfb3V0KSkpfXdoaWxlKCgwPGYuYXZhaWxfaW58fGYuYXZhaWxfb3V0PT09MCkmJmghPT0xKTtyZXR1cm4gbz09PTQ/KGg9bi5kZWZsYXRlRW5kKHRoaXMuc3RybSksdGhpcy5vbkVuZChoKSx0aGlzLmVuZGVkPSEwLGg9PT1iKTpvIT09Mnx8KHRoaXMub25FbmQoYiksIShmLmF2YWlsX291dD0wKSl9LHcucHJvdG90eXBlLm9uRGF0YT1mdW5jdGlvbihQKXt0aGlzLmNodW5rcy5wdXNoKFApfSx3LnByb3RvdHlwZS5vbkVuZD1mdW5jdGlvbihQKXtQPT09YiYmKHRoaXMub3B0aW9ucy50bz09PSJzdHJpbmciP3RoaXMucmVzdWx0PXRoaXMuY2h1bmtzLmpvaW4oIiIpOnRoaXMucmVzdWx0PXMuZmxhdHRlbkNodW5rcyh0aGlzLmNodW5rcykpLHRoaXMuY2h1bmtzPVtdLHRoaXMuZXJyPVAsdGhpcy5tc2c9dGhpcy5zdHJtLm1zZ30sci5EZWZsYXRlPXcsci5kZWZsYXRlPWssci5kZWZsYXRlUmF3PWZ1bmN0aW9uKFAsRil7cmV0dXJuKEY9Rnx8e30pLnJhdz0hMCxrKFAsRil9LHIuZ3ppcD1mdW5jdGlvbihQLEYpe3JldHVybihGPUZ8fHt9KS5nemlwPSEwLGsoUCxGKX19LHsiLi91dGlscy9jb21tb24iOjQxLCIuL3V0aWxzL3N0cmluZ3MiOjQyLCIuL3psaWIvZGVmbGF0ZSI6NDYsIi4vemxpYi9tZXNzYWdlcyI6NTEsIi4vemxpYi96c3RyZWFtIjo1M31dLDQwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vemxpYi9pbmZsYXRlIikscz10KCIuL3V0aWxzL2NvbW1vbiIpLGE9dCgiLi91dGlscy9zdHJpbmdzIiksbD10KCIuL3psaWIvY29uc3RhbnRzIiksYz10KCIuL3psaWIvbWVzc2FnZXMiKSxwPXQoIi4vemxpYi96c3RyZWFtIiksYj10KCIuL3psaWIvZ3poZWFkZXIiKSxtPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24geSh3KXtpZighKHRoaXMgaW5zdGFuY2VvZiB5KSlyZXR1cm4gbmV3IHkodyk7dGhpcy5vcHRpb25zPXMuYXNzaWduKHtjaHVua1NpemU6MTYzODQsd2luZG93Qml0czowLHRvOiIifSx3fHx7fSk7dmFyIGs9dGhpcy5vcHRpb25zO2sucmF3JiYwPD1rLndpbmRvd0JpdHMmJmsud2luZG93Qml0czwxNiYmKGsud2luZG93Qml0cz0tay53aW5kb3dCaXRzLGsud2luZG93Qml0cz09PTAmJihrLndpbmRvd0JpdHM9LTE1KSksISgwPD1rLndpbmRvd0JpdHMmJmsud2luZG93Qml0czwxNil8fHcmJncud2luZG93Qml0c3x8KGsud2luZG93Qml0cys9MzIpLDE1PGsud2luZG93Qml0cyYmay53aW5kb3dCaXRzPDQ4JiYhKDE1Jmsud2luZG93Qml0cykmJihrLndpbmRvd0JpdHN8PTE1KSx0aGlzLmVycj0wLHRoaXMubXNnPSIiLHRoaXMuZW5kZWQ9ITEsdGhpcy5jaHVua3M9W10sdGhpcy5zdHJtPW5ldyBwLHRoaXMuc3RybS5hdmFpbF9vdXQ9MDt2YXIgUD1uLmluZmxhdGVJbml0Mih0aGlzLnN0cm0say53aW5kb3dCaXRzKTtpZihQIT09bC5aX09LKXRocm93IG5ldyBFcnJvcihjW1BdKTt0aGlzLmhlYWRlcj1uZXcgYixuLmluZmxhdGVHZXRIZWFkZXIodGhpcy5zdHJtLHRoaXMuaGVhZGVyKX1mdW5jdGlvbiBUKHcsayl7dmFyIFA9bmV3IHkoayk7aWYoUC5wdXNoKHcsITApLFAuZXJyKXRocm93IFAubXNnfHxjW1AuZXJyXTtyZXR1cm4gUC5yZXN1bHR9eS5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih3LGspe3ZhciBQLEYsaCxvLGYsQyxCPXRoaXMuc3RybSx1PXRoaXMub3B0aW9ucy5jaHVua1NpemUsej10aGlzLm9wdGlvbnMuZGljdGlvbmFyeSxxPSExO2lmKHRoaXMuZW5kZWQpcmV0dXJuITE7Rj1rPT09fn5rP2s6az09PSEwP2wuWl9GSU5JU0g6bC5aX05PX0ZMVVNILHR5cGVvZiB3PT0ic3RyaW5nIj9CLmlucHV0PWEuYmluc3RyaW5nMmJ1Zih3KTptLmNhbGwodyk9PT0iW29iamVjdCBBcnJheUJ1ZmZlcl0iP0IuaW5wdXQ9bmV3IFVpbnQ4QXJyYXkodyk6Qi5pbnB1dD13LEIubmV4dF9pbj0wLEIuYXZhaWxfaW49Qi5pbnB1dC5sZW5ndGg7ZG97aWYoQi5hdmFpbF9vdXQ9PT0wJiYoQi5vdXRwdXQ9bmV3IHMuQnVmOCh1KSxCLm5leHRfb3V0PTAsQi5hdmFpbF9vdXQ9dSksKFA9bi5pbmZsYXRlKEIsbC5aX05PX0ZMVVNIKSk9PT1sLlpfTkVFRF9ESUNUJiZ6JiYoQz10eXBlb2Ygej09InN0cmluZyI/YS5zdHJpbmcyYnVmKHopOm0uY2FsbCh6KT09PSJbb2JqZWN0IEFycmF5QnVmZmVyXSI/bmV3IFVpbnQ4QXJyYXkoeik6eixQPW4uaW5mbGF0ZVNldERpY3Rpb25hcnkodGhpcy5zdHJtLEMpKSxQPT09bC5aX0JVRl9FUlJPUiYmcT09PSEwJiYoUD1sLlpfT0sscT0hMSksUCE9PWwuWl9TVFJFQU1fRU5EJiZQIT09bC5aX09LKXJldHVybiB0aGlzLm9uRW5kKFApLCEodGhpcy5lbmRlZD0hMCk7Qi5uZXh0X291dCYmKEIuYXZhaWxfb3V0IT09MCYmUCE9PWwuWl9TVFJFQU1fRU5EJiYoQi5hdmFpbF9pbiE9PTB8fEYhPT1sLlpfRklOSVNIJiZGIT09bC5aX1NZTkNfRkxVU0gpfHwodGhpcy5vcHRpb25zLnRvPT09InN0cmluZyI/KGg9YS51dGY4Ym9yZGVyKEIub3V0cHV0LEIubmV4dF9vdXQpLG89Qi5uZXh0X291dC1oLGY9YS5idWYyc3RyaW5nKEIub3V0cHV0LGgpLEIubmV4dF9vdXQ9byxCLmF2YWlsX291dD11LW8sbyYmcy5hcnJheVNldChCLm91dHB1dCxCLm91dHB1dCxoLG8sMCksdGhpcy5vbkRhdGEoZikpOnRoaXMub25EYXRhKHMuc2hyaW5rQnVmKEIub3V0cHV0LEIubmV4dF9vdXQpKSkpLEIuYXZhaWxfaW49PT0wJiZCLmF2YWlsX291dD09PTAmJihxPSEwKX13aGlsZSgoMDxCLmF2YWlsX2lufHxCLmF2YWlsX291dD09PTApJiZQIT09bC5aX1NUUkVBTV9FTkQpO3JldHVybiBQPT09bC5aX1NUUkVBTV9FTkQmJihGPWwuWl9GSU5JU0gpLEY9PT1sLlpfRklOSVNIPyhQPW4uaW5mbGF0ZUVuZCh0aGlzLnN0cm0pLHRoaXMub25FbmQoUCksdGhpcy5lbmRlZD0hMCxQPT09bC5aX09LKTpGIT09bC5aX1NZTkNfRkxVU0h8fCh0aGlzLm9uRW5kKGwuWl9PSyksIShCLmF2YWlsX291dD0wKSl9LHkucHJvdG90eXBlLm9uRGF0YT1mdW5jdGlvbih3KXt0aGlzLmNodW5rcy5wdXNoKHcpfSx5LnByb3RvdHlwZS5vbkVuZD1mdW5jdGlvbih3KXt3PT09bC5aX09LJiYodGhpcy5vcHRpb25zLnRvPT09InN0cmluZyI/dGhpcy5yZXN1bHQ9dGhpcy5jaHVua3Muam9pbigiIik6dGhpcy5yZXN1bHQ9cy5mbGF0dGVuQ2h1bmtzKHRoaXMuY2h1bmtzKSksdGhpcy5jaHVua3M9W10sdGhpcy5lcnI9dyx0aGlzLm1zZz10aGlzLnN0cm0ubXNnfSxyLkluZmxhdGU9eSxyLmluZmxhdGU9VCxyLmluZmxhdGVSYXc9ZnVuY3Rpb24odyxrKXtyZXR1cm4oaz1rfHx7fSkucmF3PSEwLFQodyxrKX0sci51bmd6aXA9VH0seyIuL3V0aWxzL2NvbW1vbiI6NDEsIi4vdXRpbHMvc3RyaW5ncyI6NDIsIi4vemxpYi9jb25zdGFudHMiOjQ0LCIuL3psaWIvZ3poZWFkZXIiOjQ3LCIuL3psaWIvaW5mbGF0ZSI6NDksIi4vemxpYi9tZXNzYWdlcyI6NTEsIi4vemxpYi96c3RyZWFtIjo1M31dLDQxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXR5cGVvZiBVaW50OEFycmF5PCJ1IiYmdHlwZW9mIFVpbnQxNkFycmF5PCJ1IiYmdHlwZW9mIEludDMyQXJyYXk8InUiO3IuYXNzaWduPWZ1bmN0aW9uKGwpe2Zvcih2YXIgYz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSk7Yy5sZW5ndGg7KXt2YXIgcD1jLnNoaWZ0KCk7aWYocCl7aWYodHlwZW9mIHAhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IocCsibXVzdCBiZSBub24tb2JqZWN0Iik7Zm9yKHZhciBiIGluIHApcC5oYXNPd25Qcm9wZXJ0eShiKSYmKGxbYl09cFtiXSl9fXJldHVybiBsfSxyLnNocmlua0J1Zj1mdW5jdGlvbihsLGMpe3JldHVybiBsLmxlbmd0aD09PWM/bDpsLnN1YmFycmF5P2wuc3ViYXJyYXkoMCxjKToobC5sZW5ndGg9YyxsKX07dmFyIHM9e2FycmF5U2V0OmZ1bmN0aW9uKGwsYyxwLGIsbSl7aWYoYy5zdWJhcnJheSYmbC5zdWJhcnJheSlsLnNldChjLnN1YmFycmF5KHAscCtiKSxtKTtlbHNlIGZvcih2YXIgeT0wO3k8Yjt5KyspbFttK3ldPWNbcCt5XX0sZmxhdHRlbkNodW5rczpmdW5jdGlvbihsKXt2YXIgYyxwLGIsbSx5LFQ7Zm9yKGM9Yj0wLHA9bC5sZW5ndGg7YzxwO2MrKyliKz1sW2NdLmxlbmd0aDtmb3IoVD1uZXcgVWludDhBcnJheShiKSxjPW09MCxwPWwubGVuZ3RoO2M8cDtjKyspeT1sW2NdLFQuc2V0KHksbSksbSs9eS5sZW5ndGg7cmV0dXJuIFR9fSxhPXthcnJheVNldDpmdW5jdGlvbihsLGMscCxiLG0pe2Zvcih2YXIgeT0wO3k8Yjt5KyspbFttK3ldPWNbcCt5XX0sZmxhdHRlbkNodW5rczpmdW5jdGlvbihsKXtyZXR1cm5bXS5jb25jYXQuYXBwbHkoW10sbCl9fTtyLnNldFR5cGVkPWZ1bmN0aW9uKGwpe2w/KHIuQnVmOD1VaW50OEFycmF5LHIuQnVmMTY9VWludDE2QXJyYXksci5CdWYzMj1JbnQzMkFycmF5LHIuYXNzaWduKHIscykpOihyLkJ1Zjg9QXJyYXksci5CdWYxNj1BcnJheSxyLkJ1ZjMyPUFycmF5LHIuYXNzaWduKHIsYSkpfSxyLnNldFR5cGVkKG4pfSx7fV0sNDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb21tb24iKSxzPSEwLGE9ITA7dHJ5e1N0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxbMF0pfWNhdGNoe3M9ITF9dHJ5e1N0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxuZXcgVWludDhBcnJheSgxKSl9Y2F0Y2h7YT0hMX1mb3IodmFyIGw9bmV3IG4uQnVmOCgyNTYpLGM9MDtjPDI1NjtjKyspbFtjXT0yNTI8PWM/NjoyNDg8PWM/NToyNDA8PWM/NDoyMjQ8PWM/MzoxOTI8PWM/MjoxO2Z1bmN0aW9uIHAoYixtKXtpZihtPDY1NTM3JiYoYi5zdWJhcnJheSYmYXx8IWIuc3ViYXJyYXkmJnMpKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsbi5zaHJpbmtCdWYoYixtKSk7Zm9yKHZhciB5PSIiLFQ9MDtUPG07VCsrKXkrPVN0cmluZy5mcm9tQ2hhckNvZGUoYltUXSk7cmV0dXJuIHl9bFsyNTRdPWxbMjU0XT0xLHIuc3RyaW5nMmJ1Zj1mdW5jdGlvbihiKXt2YXIgbSx5LFQsdyxrLFA9Yi5sZW5ndGgsRj0wO2Zvcih3PTA7dzxQO3crKykoNjQ1MTImKHk9Yi5jaGFyQ29kZUF0KHcpKSk9PTU1Mjk2JiZ3KzE8UCYmKDY0NTEyJihUPWIuY2hhckNvZGVBdCh3KzEpKSk9PTU2MzIwJiYoeT02NTUzNisoeS01NTI5Njw8MTApKyhULTU2MzIwKSx3KyspLEYrPXk8MTI4PzE6eTwyMDQ4PzI6eTw2NTUzNj8zOjQ7Zm9yKG09bmV3IG4uQnVmOChGKSx3PWs9MDtrPEY7dysrKSg2NDUxMiYoeT1iLmNoYXJDb2RlQXQodykpKT09NTUyOTYmJncrMTxQJiYoNjQ1MTImKFQ9Yi5jaGFyQ29kZUF0KHcrMSkpKT09NTYzMjAmJih5PTY1NTM2Kyh5LTU1Mjk2PDwxMCkrKFQtNTYzMjApLHcrKykseTwxMjg/bVtrKytdPXk6KHk8MjA0OD9tW2srK109MTkyfHk+Pj42Oih5PDY1NTM2P21baysrXT0yMjR8eT4+PjEyOihtW2srK109MjQwfHk+Pj4xOCxtW2srK109MTI4fHk+Pj4xMiY2MyksbVtrKytdPTEyOHx5Pj4+NiY2MyksbVtrKytdPTEyOHw2MyZ5KTtyZXR1cm4gbX0sci5idWYyYmluc3RyaW5nPWZ1bmN0aW9uKGIpe3JldHVybiBwKGIsYi5sZW5ndGgpfSxyLmJpbnN0cmluZzJidWY9ZnVuY3Rpb24oYil7Zm9yKHZhciBtPW5ldyBuLkJ1ZjgoYi5sZW5ndGgpLHk9MCxUPW0ubGVuZ3RoO3k8VDt5KyspbVt5XT1iLmNoYXJDb2RlQXQoeSk7cmV0dXJuIG19LHIuYnVmMnN0cmluZz1mdW5jdGlvbihiLG0pe3ZhciB5LFQsdyxrLFA9bXx8Yi5sZW5ndGgsRj1uZXcgQXJyYXkoMipQKTtmb3IoeT1UPTA7eTxQOylpZigodz1iW3krK10pPDEyOClGW1QrK109dztlbHNlIGlmKDQ8KGs9bFt3XSkpRltUKytdPTY1NTMzLHkrPWstMTtlbHNle2Zvcih3Jj1rPT09Mj8zMTprPT09Mz8xNTo3OzE8ayYmeTxQOyl3PXc8PDZ8NjMmYlt5KytdLGstLTsxPGs/RltUKytdPTY1NTMzOnc8NjU1MzY/RltUKytdPXc6KHctPTY1NTM2LEZbVCsrXT01NTI5Nnx3Pj4xMCYxMDIzLEZbVCsrXT01NjMyMHwxMDIzJncpfXJldHVybiBwKEYsVCl9LHIudXRmOGJvcmRlcj1mdW5jdGlvbihiLG0pe3ZhciB5O2ZvcigobT1tfHxiLmxlbmd0aCk+Yi5sZW5ndGgmJihtPWIubGVuZ3RoKSx5PW0tMTswPD15JiYoMTkyJmJbeV0pPT0xMjg7KXktLTtyZXR1cm4geTwwfHx5PT09MD9tOnkrbFtiW3ldXT5tP3k6bX19LHsiLi9jb21tb24iOjQxfV0sNDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKG4scyxhLGwpe2Zvcih2YXIgYz02NTUzNSZufDAscD1uPj4+MTYmNjU1MzV8MCxiPTA7YSE9PTA7KXtmb3IoYS09Yj0yZTM8YT8yZTM6YTtwPXArKGM9YytzW2wrK118MCl8MCwtLWI7KTtjJT02NTUyMSxwJT02NTUyMX1yZXR1cm4gY3xwPDwxNnwwfX0se31dLDQ0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17Wl9OT19GTFVTSDowLFpfUEFSVElBTF9GTFVTSDoxLFpfU1lOQ19GTFVTSDoyLFpfRlVMTF9GTFVTSDozLFpfRklOSVNIOjQsWl9CTE9DSzo1LFpfVFJFRVM6NixaX09LOjAsWl9TVFJFQU1fRU5EOjEsWl9ORUVEX0RJQ1Q6MixaX0VSUk5POi0xLFpfU1RSRUFNX0VSUk9SOi0yLFpfREFUQV9FUlJPUjotMyxaX0JVRl9FUlJPUjotNSxaX05PX0NPTVBSRVNTSU9OOjAsWl9CRVNUX1NQRUVEOjEsWl9CRVNUX0NPTVBSRVNTSU9OOjksWl9ERUZBVUxUX0NPTVBSRVNTSU9OOi0xLFpfRklMVEVSRUQ6MSxaX0hVRkZNQU5fT05MWToyLFpfUkxFOjMsWl9GSVhFRDo0LFpfREVGQVVMVF9TVFJBVEVHWTowLFpfQklOQVJZOjAsWl9URVhUOjEsWl9VTktOT1dOOjIsWl9ERUZMQVRFRDo4fX0se31dLDQ1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPWZ1bmN0aW9uKCl7Zm9yKHZhciBzLGE9W10sbD0wO2w8MjU2O2wrKyl7cz1sO2Zvcih2YXIgYz0wO2M8ODtjKyspcz0xJnM/Mzk4ODI5MjM4NF5zPj4+MTpzPj4+MTthW2xdPXN9cmV0dXJuIGF9KCk7ZS5leHBvcnRzPWZ1bmN0aW9uKHMsYSxsLGMpe3ZhciBwPW4sYj1jK2w7c149LTE7Zm9yKHZhciBtPWM7bTxiO20rKylzPXM+Pj44XnBbMjU1JihzXmFbbV0pXTtyZXR1cm4tMV5zfX0se31dLDQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuLHM9dCgiLi4vdXRpbHMvY29tbW9uIiksYT10KCIuL3RyZWVzIiksbD10KCIuL2FkbGVyMzIiKSxjPXQoIi4vY3JjMzIiKSxwPXQoIi4vbWVzc2FnZXMiKSxiPTAsbT00LHk9MCxUPS0yLHc9LTEsaz00LFA9MixGPTgsaD05LG89Mjg2LGY9MzAsQz0xOSxCPTIqbysxLHU9MTUsej0zLHE9MjU4LGV0PXEreisxLE89NDIsWj0xMTMsZz0xLF89MixTPTMsTj00O2Z1bmN0aW9uIFIoRCx1dCl7cmV0dXJuIEQubXNnPXBbdXRdLHV0fWZ1bmN0aW9uIEwoRCl7cmV0dXJuKEQ8PDEpLSg0PEQ/OTowKX1mdW5jdGlvbiBYKEQpe2Zvcih2YXIgdXQ9RC5sZW5ndGg7MDw9LS11dDspRFt1dF09MH1mdW5jdGlvbiBqKEQpe3ZhciB1dD1ELnN0YXRlLG90PXV0LnBlbmRpbmc7b3Q+RC5hdmFpbF9vdXQmJihvdD1ELmF2YWlsX291dCksb3QhPT0wJiYocy5hcnJheVNldChELm91dHB1dCx1dC5wZW5kaW5nX2J1Zix1dC5wZW5kaW5nX291dCxvdCxELm5leHRfb3V0KSxELm5leHRfb3V0Kz1vdCx1dC5wZW5kaW5nX291dCs9b3QsRC50b3RhbF9vdXQrPW90LEQuYXZhaWxfb3V0LT1vdCx1dC5wZW5kaW5nLT1vdCx1dC5wZW5kaW5nPT09MCYmKHV0LnBlbmRpbmdfb3V0PTApKX1mdW5jdGlvbiBHKEQsdXQpe2EuX3RyX2ZsdXNoX2Jsb2NrKEQsMDw9RC5ibG9ja19zdGFydD9ELmJsb2NrX3N0YXJ0Oi0xLEQuc3Ryc3RhcnQtRC5ibG9ja19zdGFydCx1dCksRC5ibG9ja19zdGFydD1ELnN0cnN0YXJ0LGooRC5zdHJtKX1mdW5jdGlvbiBhdChELHV0KXtELnBlbmRpbmdfYnVmW0QucGVuZGluZysrXT11dH1mdW5jdGlvbiBKKEQsdXQpe0QucGVuZGluZ19idWZbRC5wZW5kaW5nKytdPXV0Pj4+OCYyNTUsRC5wZW5kaW5nX2J1ZltELnBlbmRpbmcrK109MjU1JnV0fWZ1bmN0aW9uIHR0KEQsdXQpe3ZhciBvdCxILE09RC5tYXhfY2hhaW5fbGVuZ3RoLFk9RC5zdHJzdGFydCxwdD1ELnByZXZfbGVuZ3RoLG10PUQubmljZV9tYXRjaCxydD1ELnN0cnN0YXJ0PkQud19zaXplLWV0P0Quc3Ryc3RhcnQtKEQud19zaXplLWV0KTowLGd0PUQud2luZG93LEN0PUQud19tYXNrLHh0PUQucHJldixidD1ELnN0cnN0YXJ0K3EsenQ9Z3RbWStwdC0xXSxVdD1ndFtZK3B0XTtELnByZXZfbGVuZ3RoPj1ELmdvb2RfbWF0Y2gmJihNPj49MiksbXQ+RC5sb29rYWhlYWQmJihtdD1ELmxvb2thaGVhZCk7ZG8gaWYoZ3RbKG90PXV0KStwdF09PT1VdCYmZ3Rbb3QrcHQtMV09PT16dCYmZ3Rbb3RdPT09Z3RbWV0mJmd0Wysrb3RdPT09Z3RbWSsxXSl7WSs9MixvdCsrO2RvO3doaWxlKGd0WysrWV09PT1ndFsrK290XSYmZ3RbKytZXT09PWd0Wysrb3RdJiZndFsrK1ldPT09Z3RbKytvdF0mJmd0WysrWV09PT1ndFsrK290XSYmZ3RbKytZXT09PWd0Wysrb3RdJiZndFsrK1ldPT09Z3RbKytvdF0mJmd0WysrWV09PT1ndFsrK290XSYmZ3RbKytZXT09PWd0Wysrb3RdJiZZPGJ0KTtpZihIPXEtKGJ0LVkpLFk9YnQtcSxwdDxIKXtpZihELm1hdGNoX3N0YXJ0PXV0LG10PD0ocHQ9SCkpYnJlYWs7enQ9Z3RbWStwdC0xXSxVdD1ndFtZK3B0XX19d2hpbGUoKHV0PXh0W3V0JkN0XSk+cnQmJi0tTSE9MCk7cmV0dXJuIHB0PD1ELmxvb2thaGVhZD9wdDpELmxvb2thaGVhZH1mdW5jdGlvbiB5dChEKXt2YXIgdXQsb3QsSCxNLFkscHQsbXQscnQsZ3QsQ3QseHQ9RC53X3NpemU7ZG97aWYoTT1ELndpbmRvd19zaXplLUQubG9va2FoZWFkLUQuc3Ryc3RhcnQsRC5zdHJzdGFydD49eHQrKHh0LWV0KSl7Zm9yKHMuYXJyYXlTZXQoRC53aW5kb3csRC53aW5kb3cseHQseHQsMCksRC5tYXRjaF9zdGFydC09eHQsRC5zdHJzdGFydC09eHQsRC5ibG9ja19zdGFydC09eHQsdXQ9b3Q9RC5oYXNoX3NpemU7SD1ELmhlYWRbLS11dF0sRC5oZWFkW3V0XT14dDw9SD9ILXh0OjAsLS1vdDspO2Zvcih1dD1vdD14dDtIPUQucHJldlstLXV0XSxELnByZXZbdXRdPXh0PD1IP0gteHQ6MCwtLW90Oyk7TSs9eHR9aWYoRC5zdHJtLmF2YWlsX2luPT09MClicmVhaztpZihwdD1ELnN0cm0sbXQ9RC53aW5kb3cscnQ9RC5zdHJzdGFydCtELmxvb2thaGVhZCxndD1NLEN0PXZvaWQgMCxDdD1wdC5hdmFpbF9pbixndDxDdCYmKEN0PWd0KSxvdD1DdD09PTA/MDoocHQuYXZhaWxfaW4tPUN0LHMuYXJyYXlTZXQobXQscHQuaW5wdXQscHQubmV4dF9pbixDdCxydCkscHQuc3RhdGUud3JhcD09PTE/cHQuYWRsZXI9bChwdC5hZGxlcixtdCxDdCxydCk6cHQuc3RhdGUud3JhcD09PTImJihwdC5hZGxlcj1jKHB0LmFkbGVyLG10LEN0LHJ0KSkscHQubmV4dF9pbis9Q3QscHQudG90YWxfaW4rPUN0LEN0KSxELmxvb2thaGVhZCs9b3QsRC5sb29rYWhlYWQrRC5pbnNlcnQ+PXopZm9yKFk9RC5zdHJzdGFydC1ELmluc2VydCxELmluc19oPUQud2luZG93W1ldLEQuaW5zX2g9KEQuaW5zX2g8PEQuaGFzaF9zaGlmdF5ELndpbmRvd1tZKzFdKSZELmhhc2hfbWFzaztELmluc2VydCYmKEQuaW5zX2g9KEQuaW5zX2g8PEQuaGFzaF9zaGlmdF5ELndpbmRvd1tZK3otMV0pJkQuaGFzaF9tYXNrLEQucHJldltZJkQud19tYXNrXT1ELmhlYWRbRC5pbnNfaF0sRC5oZWFkW0QuaW5zX2hdPVksWSsrLEQuaW5zZXJ0LS0sIShELmxvb2thaGVhZCtELmluc2VydDx6KSk7KTt9d2hpbGUoRC5sb29rYWhlYWQ8ZXQmJkQuc3RybS5hdmFpbF9pbiE9PTApfWZ1bmN0aW9uIFR0KEQsdXQpe2Zvcih2YXIgb3QsSDs7KXtpZihELmxvb2thaGVhZDxldCl7aWYoeXQoRCksRC5sb29rYWhlYWQ8ZXQmJnV0PT09YilyZXR1cm4gZztpZihELmxvb2thaGVhZD09PTApYnJlYWt9aWYob3Q9MCxELmxvb2thaGVhZD49eiYmKEQuaW5zX2g9KEQuaW5zX2g8PEQuaGFzaF9zaGlmdF5ELndpbmRvd1tELnN0cnN0YXJ0K3otMV0pJkQuaGFzaF9tYXNrLG90PUQucHJldltELnN0cnN0YXJ0JkQud19tYXNrXT1ELmhlYWRbRC5pbnNfaF0sRC5oZWFkW0QuaW5zX2hdPUQuc3Ryc3RhcnQpLG90IT09MCYmRC5zdHJzdGFydC1vdDw9RC53X3NpemUtZXQmJihELm1hdGNoX2xlbmd0aD10dChELG90KSksRC5tYXRjaF9sZW5ndGg+PXopaWYoSD1hLl90cl90YWxseShELEQuc3Ryc3RhcnQtRC5tYXRjaF9zdGFydCxELm1hdGNoX2xlbmd0aC16KSxELmxvb2thaGVhZC09RC5tYXRjaF9sZW5ndGgsRC5tYXRjaF9sZW5ndGg8PUQubWF4X2xhenlfbWF0Y2gmJkQubG9va2FoZWFkPj16KXtmb3IoRC5tYXRjaF9sZW5ndGgtLTtELnN0cnN0YXJ0KyssRC5pbnNfaD0oRC5pbnNfaDw8RC5oYXNoX3NoaWZ0XkQud2luZG93W0Quc3Ryc3RhcnQrei0xXSkmRC5oYXNoX21hc2ssb3Q9RC5wcmV2W0Quc3Ryc3RhcnQmRC53X21hc2tdPUQuaGVhZFtELmluc19oXSxELmhlYWRbRC5pbnNfaF09RC5zdHJzdGFydCwtLUQubWF0Y2hfbGVuZ3RoIT0wOyk7RC5zdHJzdGFydCsrfWVsc2UgRC5zdHJzdGFydCs9RC5tYXRjaF9sZW5ndGgsRC5tYXRjaF9sZW5ndGg9MCxELmluc19oPUQud2luZG93W0Quc3Ryc3RhcnRdLEQuaW5zX2g9KEQuaW5zX2g8PEQuaGFzaF9zaGlmdF5ELndpbmRvd1tELnN0cnN0YXJ0KzFdKSZELmhhc2hfbWFzaztlbHNlIEg9YS5fdHJfdGFsbHkoRCwwLEQud2luZG93W0Quc3Ryc3RhcnRdKSxELmxvb2thaGVhZC0tLEQuc3Ryc3RhcnQrKztpZihIJiYoRyhELCExKSxELnN0cm0uYXZhaWxfb3V0PT09MCkpcmV0dXJuIGd9cmV0dXJuIEQuaW5zZXJ0PUQuc3Ryc3RhcnQ8ei0xP0Quc3Ryc3RhcnQ6ei0xLHV0PT09bT8oRyhELCEwKSxELnN0cm0uYXZhaWxfb3V0PT09MD9TOk4pOkQubGFzdF9saXQmJihHKEQsITEpLEQuc3RybS5hdmFpbF9vdXQ9PT0wKT9nOl99ZnVuY3Rpb24gQXQoRCx1dCl7Zm9yKHZhciBvdCxILE07Oyl7aWYoRC5sb29rYWhlYWQ8ZXQpe2lmKHl0KEQpLEQubG9va2FoZWFkPGV0JiZ1dD09PWIpcmV0dXJuIGc7aWYoRC5sb29rYWhlYWQ9PT0wKWJyZWFrfWlmKG90PTAsRC5sb29rYWhlYWQ+PXomJihELmluc19oPShELmluc19oPDxELmhhc2hfc2hpZnReRC53aW5kb3dbRC5zdHJzdGFydCt6LTFdKSZELmhhc2hfbWFzayxvdD1ELnByZXZbRC5zdHJzdGFydCZELndfbWFza109RC5oZWFkW0QuaW5zX2hdLEQuaGVhZFtELmluc19oXT1ELnN0cnN0YXJ0KSxELnByZXZfbGVuZ3RoPUQubWF0Y2hfbGVuZ3RoLEQucHJldl9tYXRjaD1ELm1hdGNoX3N0YXJ0LEQubWF0Y2hfbGVuZ3RoPXotMSxvdCE9PTAmJkQucHJldl9sZW5ndGg8RC5tYXhfbGF6eV9tYXRjaCYmRC5zdHJzdGFydC1vdDw9RC53X3NpemUtZXQmJihELm1hdGNoX2xlbmd0aD10dChELG90KSxELm1hdGNoX2xlbmd0aDw9NSYmKEQuc3RyYXRlZ3k9PT0xfHxELm1hdGNoX2xlbmd0aD09PXomJjQwOTY8RC5zdHJzdGFydC1ELm1hdGNoX3N0YXJ0KSYmKEQubWF0Y2hfbGVuZ3RoPXotMSkpLEQucHJldl9sZW5ndGg+PXomJkQubWF0Y2hfbGVuZ3RoPD1ELnByZXZfbGVuZ3RoKXtmb3IoTT1ELnN0cnN0YXJ0K0QubG9va2FoZWFkLXosSD1hLl90cl90YWxseShELEQuc3Ryc3RhcnQtMS1ELnByZXZfbWF0Y2gsRC5wcmV2X2xlbmd0aC16KSxELmxvb2thaGVhZC09RC5wcmV2X2xlbmd0aC0xLEQucHJldl9sZW5ndGgtPTI7KytELnN0cnN0YXJ0PD1NJiYoRC5pbnNfaD0oRC5pbnNfaDw8RC5oYXNoX3NoaWZ0XkQud2luZG93W0Quc3Ryc3RhcnQrei0xXSkmRC5oYXNoX21hc2ssb3Q9RC5wcmV2W0Quc3Ryc3RhcnQmRC53X21hc2tdPUQuaGVhZFtELmluc19oXSxELmhlYWRbRC5pbnNfaF09RC5zdHJzdGFydCksLS1ELnByZXZfbGVuZ3RoIT0wOyk7aWYoRC5tYXRjaF9hdmFpbGFibGU9MCxELm1hdGNoX2xlbmd0aD16LTEsRC5zdHJzdGFydCsrLEgmJihHKEQsITEpLEQuc3RybS5hdmFpbF9vdXQ9PT0wKSlyZXR1cm4gZ31lbHNlIGlmKEQubWF0Y2hfYXZhaWxhYmxlKXtpZigoSD1hLl90cl90YWxseShELDAsRC53aW5kb3dbRC5zdHJzdGFydC0xXSkpJiZHKEQsITEpLEQuc3Ryc3RhcnQrKyxELmxvb2thaGVhZC0tLEQuc3RybS5hdmFpbF9vdXQ9PT0wKXJldHVybiBnfWVsc2UgRC5tYXRjaF9hdmFpbGFibGU9MSxELnN0cnN0YXJ0KyssRC5sb29rYWhlYWQtLX1yZXR1cm4gRC5tYXRjaF9hdmFpbGFibGUmJihIPWEuX3RyX3RhbGx5KEQsMCxELndpbmRvd1tELnN0cnN0YXJ0LTFdKSxELm1hdGNoX2F2YWlsYWJsZT0wKSxELmluc2VydD1ELnN0cnN0YXJ0PHotMT9ELnN0cnN0YXJ0OnotMSx1dD09PW0/KEcoRCwhMCksRC5zdHJtLmF2YWlsX291dD09PTA/UzpOKTpELmxhc3RfbGl0JiYoRyhELCExKSxELnN0cm0uYXZhaWxfb3V0PT09MCk/ZzpffWZ1bmN0aW9uIGt0KEQsdXQsb3QsSCxNKXt0aGlzLmdvb2RfbGVuZ3RoPUQsdGhpcy5tYXhfbGF6eT11dCx0aGlzLm5pY2VfbGVuZ3RoPW90LHRoaXMubWF4X2NoYWluPUgsdGhpcy5mdW5jPU19ZnVuY3Rpb24gTHQoKXt0aGlzLnN0cm09bnVsbCx0aGlzLnN0YXR1cz0wLHRoaXMucGVuZGluZ19idWY9bnVsbCx0aGlzLnBlbmRpbmdfYnVmX3NpemU9MCx0aGlzLnBlbmRpbmdfb3V0PTAsdGhpcy5wZW5kaW5nPTAsdGhpcy53cmFwPTAsdGhpcy5nemhlYWQ9bnVsbCx0aGlzLmd6aW5kZXg9MCx0aGlzLm1ldGhvZD1GLHRoaXMubGFzdF9mbHVzaD0tMSx0aGlzLndfc2l6ZT0wLHRoaXMud19iaXRzPTAsdGhpcy53X21hc2s9MCx0aGlzLndpbmRvdz1udWxsLHRoaXMud2luZG93X3NpemU9MCx0aGlzLnByZXY9bnVsbCx0aGlzLmhlYWQ9bnVsbCx0aGlzLmluc19oPTAsdGhpcy5oYXNoX3NpemU9MCx0aGlzLmhhc2hfYml0cz0wLHRoaXMuaGFzaF9tYXNrPTAsdGhpcy5oYXNoX3NoaWZ0PTAsdGhpcy5ibG9ja19zdGFydD0wLHRoaXMubWF0Y2hfbGVuZ3RoPTAsdGhpcy5wcmV2X21hdGNoPTAsdGhpcy5tYXRjaF9hdmFpbGFibGU9MCx0aGlzLnN0cnN0YXJ0PTAsdGhpcy5tYXRjaF9zdGFydD0wLHRoaXMubG9va2FoZWFkPTAsdGhpcy5wcmV2X2xlbmd0aD0wLHRoaXMubWF4X2NoYWluX2xlbmd0aD0wLHRoaXMubWF4X2xhenlfbWF0Y2g9MCx0aGlzLmxldmVsPTAsdGhpcy5zdHJhdGVneT0wLHRoaXMuZ29vZF9tYXRjaD0wLHRoaXMubmljZV9tYXRjaD0wLHRoaXMuZHluX2x0cmVlPW5ldyBzLkJ1ZjE2KDIqQiksdGhpcy5keW5fZHRyZWU9bmV3IHMuQnVmMTYoMiooMipmKzEpKSx0aGlzLmJsX3RyZWU9bmV3IHMuQnVmMTYoMiooMipDKzEpKSxYKHRoaXMuZHluX2x0cmVlKSxYKHRoaXMuZHluX2R0cmVlKSxYKHRoaXMuYmxfdHJlZSksdGhpcy5sX2Rlc2M9bnVsbCx0aGlzLmRfZGVzYz1udWxsLHRoaXMuYmxfZGVzYz1udWxsLHRoaXMuYmxfY291bnQ9bmV3IHMuQnVmMTYodSsxKSx0aGlzLmhlYXA9bmV3IHMuQnVmMTYoMipvKzEpLFgodGhpcy5oZWFwKSx0aGlzLmhlYXBfbGVuPTAsdGhpcy5oZWFwX21heD0wLHRoaXMuZGVwdGg9bmV3IHMuQnVmMTYoMipvKzEpLFgodGhpcy5kZXB0aCksdGhpcy5sX2J1Zj0wLHRoaXMubGl0X2J1ZnNpemU9MCx0aGlzLmxhc3RfbGl0PTAsdGhpcy5kX2J1Zj0wLHRoaXMub3B0X2xlbj0wLHRoaXMuc3RhdGljX2xlbj0wLHRoaXMubWF0Y2hlcz0wLHRoaXMuaW5zZXJ0PTAsdGhpcy5iaV9idWY9MCx0aGlzLmJpX3ZhbGlkPTB9ZnVuY3Rpb24gQnQoRCl7dmFyIHV0O3JldHVybiBEJiZELnN0YXRlPyhELnRvdGFsX2luPUQudG90YWxfb3V0PTAsRC5kYXRhX3R5cGU9UCwodXQ9RC5zdGF0ZSkucGVuZGluZz0wLHV0LnBlbmRpbmdfb3V0PTAsdXQud3JhcDwwJiYodXQud3JhcD0tdXQud3JhcCksdXQuc3RhdHVzPXV0LndyYXA/TzpaLEQuYWRsZXI9dXQud3JhcD09PTI/MDoxLHV0Lmxhc3RfZmx1c2g9YixhLl90cl9pbml0KHV0KSx5KTpSKEQsVCl9ZnVuY3Rpb24gJHQoRCl7dmFyIHV0PUJ0KEQpO3JldHVybiB1dD09PXkmJmZ1bmN0aW9uKG90KXtvdC53aW5kb3dfc2l6ZT0yKm90Lndfc2l6ZSxYKG90LmhlYWQpLG90Lm1heF9sYXp5X21hdGNoPW5bb3QubGV2ZWxdLm1heF9sYXp5LG90Lmdvb2RfbWF0Y2g9bltvdC5sZXZlbF0uZ29vZF9sZW5ndGgsb3QubmljZV9tYXRjaD1uW290LmxldmVsXS5uaWNlX2xlbmd0aCxvdC5tYXhfY2hhaW5fbGVuZ3RoPW5bb3QubGV2ZWxdLm1heF9jaGFpbixvdC5zdHJzdGFydD0wLG90LmJsb2NrX3N0YXJ0PTAsb3QubG9va2FoZWFkPTAsb3QuaW5zZXJ0PTAsb3QubWF0Y2hfbGVuZ3RoPW90LnByZXZfbGVuZ3RoPXotMSxvdC5tYXRjaF9hdmFpbGFibGU9MCxvdC5pbnNfaD0wfShELnN0YXRlKSx1dH1mdW5jdGlvbiBLdChELHV0LG90LEgsTSxZKXtpZighRClyZXR1cm4gVDt2YXIgcHQ9MTtpZih1dD09PXcmJih1dD02KSxIPDA/KHB0PTAsSD0tSCk6MTU8SCYmKHB0PTIsSC09MTYpLE08MXx8aDxNfHxvdCE9PUZ8fEg8OHx8MTU8SHx8dXQ8MHx8OTx1dHx8WTwwfHxrPFkpcmV0dXJuIFIoRCxUKTtIPT09OCYmKEg9OSk7dmFyIG10PW5ldyBMdDtyZXR1cm4oRC5zdGF0ZT1tdCkuc3RybT1ELG10LndyYXA9cHQsbXQuZ3poZWFkPW51bGwsbXQud19iaXRzPUgsbXQud19zaXplPTE8PG10LndfYml0cyxtdC53X21hc2s9bXQud19zaXplLTEsbXQuaGFzaF9iaXRzPU0rNyxtdC5oYXNoX3NpemU9MTw8bXQuaGFzaF9iaXRzLG10Lmhhc2hfbWFzaz1tdC5oYXNoX3NpemUtMSxtdC5oYXNoX3NoaWZ0PX5+KChtdC5oYXNoX2JpdHMrei0xKS96KSxtdC53aW5kb3c9bmV3IHMuQnVmOCgyKm10Lndfc2l6ZSksbXQuaGVhZD1uZXcgcy5CdWYxNihtdC5oYXNoX3NpemUpLG10LnByZXY9bmV3IHMuQnVmMTYobXQud19zaXplKSxtdC5saXRfYnVmc2l6ZT0xPDxNKzYsbXQucGVuZGluZ19idWZfc2l6ZT00Km10LmxpdF9idWZzaXplLG10LnBlbmRpbmdfYnVmPW5ldyBzLkJ1ZjgobXQucGVuZGluZ19idWZfc2l6ZSksbXQuZF9idWY9MSptdC5saXRfYnVmc2l6ZSxtdC5sX2J1Zj0zKm10LmxpdF9idWZzaXplLG10LmxldmVsPXV0LG10LnN0cmF0ZWd5PVksbXQubWV0aG9kPW90LCR0KEQpfW49W25ldyBrdCgwLDAsMCwwLGZ1bmN0aW9uKEQsdXQpe3ZhciBvdD02NTUzNTtmb3Iob3Q+RC5wZW5kaW5nX2J1Zl9zaXplLTUmJihvdD1ELnBlbmRpbmdfYnVmX3NpemUtNSk7Oyl7aWYoRC5sb29rYWhlYWQ8PTEpe2lmKHl0KEQpLEQubG9va2FoZWFkPT09MCYmdXQ9PT1iKXJldHVybiBnO2lmKEQubG9va2FoZWFkPT09MClicmVha31ELnN0cnN0YXJ0Kz1ELmxvb2thaGVhZCxELmxvb2thaGVhZD0wO3ZhciBIPUQuYmxvY2tfc3RhcnQrb3Q7aWYoKEQuc3Ryc3RhcnQ9PT0wfHxELnN0cnN0YXJ0Pj1IKSYmKEQubG9va2FoZWFkPUQuc3Ryc3RhcnQtSCxELnN0cnN0YXJ0PUgsRyhELCExKSxELnN0cm0uYXZhaWxfb3V0PT09MCl8fEQuc3Ryc3RhcnQtRC5ibG9ja19zdGFydD49RC53X3NpemUtZXQmJihHKEQsITEpLEQuc3RybS5hdmFpbF9vdXQ9PT0wKSlyZXR1cm4gZ31yZXR1cm4gRC5pbnNlcnQ9MCx1dD09PW0/KEcoRCwhMCksRC5zdHJtLmF2YWlsX291dD09PTA/UzpOKTooRC5zdHJzdGFydD5ELmJsb2NrX3N0YXJ0JiYoRyhELCExKSxELnN0cm0uYXZhaWxfb3V0KSxnKX0pLG5ldyBrdCg0LDQsOCw0LFR0KSxuZXcga3QoNCw1LDE2LDgsVHQpLG5ldyBrdCg0LDYsMzIsMzIsVHQpLG5ldyBrdCg0LDQsMTYsMTYsQXQpLG5ldyBrdCg4LDE2LDMyLDMyLEF0KSxuZXcga3QoOCwxNiwxMjgsMTI4LEF0KSxuZXcga3QoOCwzMiwxMjgsMjU2LEF0KSxuZXcga3QoMzIsMTI4LDI1OCwxMDI0LEF0KSxuZXcga3QoMzIsMjU4LDI1OCw0MDk2LEF0KV0sci5kZWZsYXRlSW5pdD1mdW5jdGlvbihELHV0KXtyZXR1cm4gS3QoRCx1dCxGLDE1LDgsMCl9LHIuZGVmbGF0ZUluaXQyPUt0LHIuZGVmbGF0ZVJlc2V0PSR0LHIuZGVmbGF0ZVJlc2V0S2VlcD1CdCxyLmRlZmxhdGVTZXRIZWFkZXI9ZnVuY3Rpb24oRCx1dCl7cmV0dXJuIEQmJkQuc3RhdGU/RC5zdGF0ZS53cmFwIT09Mj9UOihELnN0YXRlLmd6aGVhZD11dCx5KTpUfSxyLmRlZmxhdGU9ZnVuY3Rpb24oRCx1dCl7dmFyIG90LEgsTSxZO2lmKCFEfHwhRC5zdGF0ZXx8NTx1dHx8dXQ8MClyZXR1cm4gRD9SKEQsVCk6VDtpZihIPUQuc3RhdGUsIUQub3V0cHV0fHwhRC5pbnB1dCYmRC5hdmFpbF9pbiE9PTB8fEguc3RhdHVzPT09NjY2JiZ1dCE9PW0pcmV0dXJuIFIoRCxELmF2YWlsX291dD09PTA/LTU6VCk7aWYoSC5zdHJtPUQsb3Q9SC5sYXN0X2ZsdXNoLEgubGFzdF9mbHVzaD11dCxILnN0YXR1cz09PU8paWYoSC53cmFwPT09MilELmFkbGVyPTAsYXQoSCwzMSksYXQoSCwxMzkpLGF0KEgsOCksSC5nemhlYWQ/KGF0KEgsKEguZ3poZWFkLnRleHQ/MTowKSsoSC5nemhlYWQuaGNyYz8yOjApKyhILmd6aGVhZC5leHRyYT80OjApKyhILmd6aGVhZC5uYW1lPzg6MCkrKEguZ3poZWFkLmNvbW1lbnQ/MTY6MCkpLGF0KEgsMjU1JkguZ3poZWFkLnRpbWUpLGF0KEgsSC5nemhlYWQudGltZT4+OCYyNTUpLGF0KEgsSC5nemhlYWQudGltZT4+MTYmMjU1KSxhdChILEguZ3poZWFkLnRpbWU+PjI0JjI1NSksYXQoSCxILmxldmVsPT09OT8yOjI8PUguc3RyYXRlZ3l8fEgubGV2ZWw8Mj80OjApLGF0KEgsMjU1JkguZ3poZWFkLm9zKSxILmd6aGVhZC5leHRyYSYmSC5nemhlYWQuZXh0cmEubGVuZ3RoJiYoYXQoSCwyNTUmSC5nemhlYWQuZXh0cmEubGVuZ3RoKSxhdChILEguZ3poZWFkLmV4dHJhLmxlbmd0aD4+OCYyNTUpKSxILmd6aGVhZC5oY3JjJiYoRC5hZGxlcj1jKEQuYWRsZXIsSC5wZW5kaW5nX2J1ZixILnBlbmRpbmcsMCkpLEguZ3ppbmRleD0wLEguc3RhdHVzPTY5KTooYXQoSCwwKSxhdChILDApLGF0KEgsMCksYXQoSCwwKSxhdChILDApLGF0KEgsSC5sZXZlbD09PTk/MjoyPD1ILnN0cmF0ZWd5fHxILmxldmVsPDI/NDowKSxhdChILDMpLEguc3RhdHVzPVopO2Vsc2V7dmFyIHB0PUYrKEgud19iaXRzLTg8PDQpPDw4O3B0fD0oMjw9SC5zdHJhdGVneXx8SC5sZXZlbDwyPzA6SC5sZXZlbDw2PzE6SC5sZXZlbD09PTY/MjozKTw8NixILnN0cnN0YXJ0IT09MCYmKHB0fD0zMikscHQrPTMxLXB0JTMxLEguc3RhdHVzPVosSihILHB0KSxILnN0cnN0YXJ0IT09MCYmKEooSCxELmFkbGVyPj4+MTYpLEooSCw2NTUzNSZELmFkbGVyKSksRC5hZGxlcj0xfWlmKEguc3RhdHVzPT09NjkpaWYoSC5nemhlYWQuZXh0cmEpe2ZvcihNPUgucGVuZGluZztILmd6aW5kZXg8KDY1NTM1JkguZ3poZWFkLmV4dHJhLmxlbmd0aCkmJihILnBlbmRpbmchPT1ILnBlbmRpbmdfYnVmX3NpemV8fChILmd6aGVhZC5oY3JjJiZILnBlbmRpbmc+TSYmKEQuYWRsZXI9YyhELmFkbGVyLEgucGVuZGluZ19idWYsSC5wZW5kaW5nLU0sTSkpLGooRCksTT1ILnBlbmRpbmcsSC5wZW5kaW5nIT09SC5wZW5kaW5nX2J1Zl9zaXplKSk7KWF0KEgsMjU1JkguZ3poZWFkLmV4dHJhW0guZ3ppbmRleF0pLEguZ3ppbmRleCsrO0guZ3poZWFkLmhjcmMmJkgucGVuZGluZz5NJiYoRC5hZGxlcj1jKEQuYWRsZXIsSC5wZW5kaW5nX2J1ZixILnBlbmRpbmctTSxNKSksSC5nemluZGV4PT09SC5nemhlYWQuZXh0cmEubGVuZ3RoJiYoSC5nemluZGV4PTAsSC5zdGF0dXM9NzMpfWVsc2UgSC5zdGF0dXM9NzM7aWYoSC5zdGF0dXM9PT03MylpZihILmd6aGVhZC5uYW1lKXtNPUgucGVuZGluZztkb3tpZihILnBlbmRpbmc9PT1ILnBlbmRpbmdfYnVmX3NpemUmJihILmd6aGVhZC5oY3JjJiZILnBlbmRpbmc+TSYmKEQuYWRsZXI9YyhELmFkbGVyLEgucGVuZGluZ19idWYsSC5wZW5kaW5nLU0sTSkpLGooRCksTT1ILnBlbmRpbmcsSC5wZW5kaW5nPT09SC5wZW5kaW5nX2J1Zl9zaXplKSl7WT0xO2JyZWFrfVk9SC5nemluZGV4PEguZ3poZWFkLm5hbWUubGVuZ3RoPzI1NSZILmd6aGVhZC5uYW1lLmNoYXJDb2RlQXQoSC5nemluZGV4KyspOjAsYXQoSCxZKX13aGlsZShZIT09MCk7SC5nemhlYWQuaGNyYyYmSC5wZW5kaW5nPk0mJihELmFkbGVyPWMoRC5hZGxlcixILnBlbmRpbmdfYnVmLEgucGVuZGluZy1NLE0pKSxZPT09MCYmKEguZ3ppbmRleD0wLEguc3RhdHVzPTkxKX1lbHNlIEguc3RhdHVzPTkxO2lmKEguc3RhdHVzPT09OTEpaWYoSC5nemhlYWQuY29tbWVudCl7TT1ILnBlbmRpbmc7ZG97aWYoSC5wZW5kaW5nPT09SC5wZW5kaW5nX2J1Zl9zaXplJiYoSC5nemhlYWQuaGNyYyYmSC5wZW5kaW5nPk0mJihELmFkbGVyPWMoRC5hZGxlcixILnBlbmRpbmdfYnVmLEgucGVuZGluZy1NLE0pKSxqKEQpLE09SC5wZW5kaW5nLEgucGVuZGluZz09PUgucGVuZGluZ19idWZfc2l6ZSkpe1k9MTticmVha31ZPUguZ3ppbmRleDxILmd6aGVhZC5jb21tZW50Lmxlbmd0aD8yNTUmSC5nemhlYWQuY29tbWVudC5jaGFyQ29kZUF0KEguZ3ppbmRleCsrKTowLGF0KEgsWSl9d2hpbGUoWSE9PTApO0guZ3poZWFkLmhjcmMmJkgucGVuZGluZz5NJiYoRC5hZGxlcj1jKEQuYWRsZXIsSC5wZW5kaW5nX2J1ZixILnBlbmRpbmctTSxNKSksWT09PTAmJihILnN0YXR1cz0xMDMpfWVsc2UgSC5zdGF0dXM9MTAzO2lmKEguc3RhdHVzPT09MTAzJiYoSC5nemhlYWQuaGNyYz8oSC5wZW5kaW5nKzI+SC5wZW5kaW5nX2J1Zl9zaXplJiZqKEQpLEgucGVuZGluZysyPD1ILnBlbmRpbmdfYnVmX3NpemUmJihhdChILDI1NSZELmFkbGVyKSxhdChILEQuYWRsZXI+PjgmMjU1KSxELmFkbGVyPTAsSC5zdGF0dXM9WikpOkguc3RhdHVzPVopLEgucGVuZGluZyE9PTApe2lmKGooRCksRC5hdmFpbF9vdXQ9PT0wKXJldHVybiBILmxhc3RfZmx1c2g9LTEseX1lbHNlIGlmKEQuYXZhaWxfaW49PT0wJiZMKHV0KTw9TChvdCkmJnV0IT09bSlyZXR1cm4gUihELC01KTtpZihILnN0YXR1cz09PTY2NiYmRC5hdmFpbF9pbiE9PTApcmV0dXJuIFIoRCwtNSk7aWYoRC5hdmFpbF9pbiE9PTB8fEgubG9va2FoZWFkIT09MHx8dXQhPT1iJiZILnN0YXR1cyE9PTY2Nil7dmFyIG10PUguc3RyYXRlZ3k9PT0yP2Z1bmN0aW9uKHJ0LGd0KXtmb3IodmFyIEN0Ozspe2lmKHJ0Lmxvb2thaGVhZD09PTAmJih5dChydCkscnQubG9va2FoZWFkPT09MCkpe2lmKGd0PT09YilyZXR1cm4gZzticmVha31pZihydC5tYXRjaF9sZW5ndGg9MCxDdD1hLl90cl90YWxseShydCwwLHJ0LndpbmRvd1tydC5zdHJzdGFydF0pLHJ0Lmxvb2thaGVhZC0tLHJ0LnN0cnN0YXJ0KyssQ3QmJihHKHJ0LCExKSxydC5zdHJtLmF2YWlsX291dD09PTApKXJldHVybiBnfXJldHVybiBydC5pbnNlcnQ9MCxndD09PW0/KEcocnQsITApLHJ0LnN0cm0uYXZhaWxfb3V0PT09MD9TOk4pOnJ0Lmxhc3RfbGl0JiYoRyhydCwhMSkscnQuc3RybS5hdmFpbF9vdXQ9PT0wKT9nOl99KEgsdXQpOkguc3RyYXRlZ3k9PT0zP2Z1bmN0aW9uKHJ0LGd0KXtmb3IodmFyIEN0LHh0LGJ0LHp0LFV0PXJ0LndpbmRvdzs7KXtpZihydC5sb29rYWhlYWQ8PXEpe2lmKHl0KHJ0KSxydC5sb29rYWhlYWQ8PXEmJmd0PT09YilyZXR1cm4gZztpZihydC5sb29rYWhlYWQ9PT0wKWJyZWFrfWlmKHJ0Lm1hdGNoX2xlbmd0aD0wLHJ0Lmxvb2thaGVhZD49eiYmMDxydC5zdHJzdGFydCYmKHh0PVV0W2J0PXJ0LnN0cnN0YXJ0LTFdKT09PVV0WysrYnRdJiZ4dD09PVV0WysrYnRdJiZ4dD09PVV0WysrYnRdKXt6dD1ydC5zdHJzdGFydCtxO2RvO3doaWxlKHh0PT09VXRbKytidF0mJnh0PT09VXRbKytidF0mJnh0PT09VXRbKytidF0mJnh0PT09VXRbKytidF0mJnh0PT09VXRbKytidF0mJnh0PT09VXRbKytidF0mJnh0PT09VXRbKytidF0mJnh0PT09VXRbKytidF0mJmJ0PHp0KTtydC5tYXRjaF9sZW5ndGg9cS0oenQtYnQpLHJ0Lm1hdGNoX2xlbmd0aD5ydC5sb29rYWhlYWQmJihydC5tYXRjaF9sZW5ndGg9cnQubG9va2FoZWFkKX1pZihydC5tYXRjaF9sZW5ndGg+PXo/KEN0PWEuX3RyX3RhbGx5KHJ0LDEscnQubWF0Y2hfbGVuZ3RoLXopLHJ0Lmxvb2thaGVhZC09cnQubWF0Y2hfbGVuZ3RoLHJ0LnN0cnN0YXJ0Kz1ydC5tYXRjaF9sZW5ndGgscnQubWF0Y2hfbGVuZ3RoPTApOihDdD1hLl90cl90YWxseShydCwwLHJ0LndpbmRvd1tydC5zdHJzdGFydF0pLHJ0Lmxvb2thaGVhZC0tLHJ0LnN0cnN0YXJ0KyspLEN0JiYoRyhydCwhMSkscnQuc3RybS5hdmFpbF9vdXQ9PT0wKSlyZXR1cm4gZ31yZXR1cm4gcnQuaW5zZXJ0PTAsZ3Q9PT1tPyhHKHJ0LCEwKSxydC5zdHJtLmF2YWlsX291dD09PTA/UzpOKTpydC5sYXN0X2xpdCYmKEcocnQsITEpLHJ0LnN0cm0uYXZhaWxfb3V0PT09MCk/ZzpffShILHV0KTpuW0gubGV2ZWxdLmZ1bmMoSCx1dCk7aWYobXQhPT1TJiZtdCE9PU58fChILnN0YXR1cz02NjYpLG10PT09Z3x8bXQ9PT1TKXJldHVybiBELmF2YWlsX291dD09PTAmJihILmxhc3RfZmx1c2g9LTEpLHk7aWYobXQ9PT1fJiYodXQ9PT0xP2EuX3RyX2FsaWduKEgpOnV0IT09NSYmKGEuX3RyX3N0b3JlZF9ibG9jayhILDAsMCwhMSksdXQ9PT0zJiYoWChILmhlYWQpLEgubG9va2FoZWFkPT09MCYmKEguc3Ryc3RhcnQ9MCxILmJsb2NrX3N0YXJ0PTAsSC5pbnNlcnQ9MCkpKSxqKEQpLEQuYXZhaWxfb3V0PT09MCkpcmV0dXJuIEgubGFzdF9mbHVzaD0tMSx5fXJldHVybiB1dCE9PW0/eTpILndyYXA8PTA/MTooSC53cmFwPT09Mj8oYXQoSCwyNTUmRC5hZGxlciksYXQoSCxELmFkbGVyPj44JjI1NSksYXQoSCxELmFkbGVyPj4xNiYyNTUpLGF0KEgsRC5hZGxlcj4+MjQmMjU1KSxhdChILDI1NSZELnRvdGFsX2luKSxhdChILEQudG90YWxfaW4+PjgmMjU1KSxhdChILEQudG90YWxfaW4+PjE2JjI1NSksYXQoSCxELnRvdGFsX2luPj4yNCYyNTUpKTooSihILEQuYWRsZXI+Pj4xNiksSihILDY1NTM1JkQuYWRsZXIpKSxqKEQpLDA8SC53cmFwJiYoSC53cmFwPS1ILndyYXApLEgucGVuZGluZyE9PTA/eToxKX0sci5kZWZsYXRlRW5kPWZ1bmN0aW9uKEQpe3ZhciB1dDtyZXR1cm4gRCYmRC5zdGF0ZT8odXQ9RC5zdGF0ZS5zdGF0dXMpIT09TyYmdXQhPT02OSYmdXQhPT03MyYmdXQhPT05MSYmdXQhPT0xMDMmJnV0IT09WiYmdXQhPT02NjY/UihELFQpOihELnN0YXRlPW51bGwsdXQ9PT1aP1IoRCwtMyk6eSk6VH0sci5kZWZsYXRlU2V0RGljdGlvbmFyeT1mdW5jdGlvbihELHV0KXt2YXIgb3QsSCxNLFkscHQsbXQscnQsZ3QsQ3Q9dXQubGVuZ3RoO2lmKCFEfHwhRC5zdGF0ZXx8KFk9KG90PUQuc3RhdGUpLndyYXApPT09Mnx8WT09PTEmJm90LnN0YXR1cyE9PU98fG90Lmxvb2thaGVhZClyZXR1cm4gVDtmb3IoWT09PTEmJihELmFkbGVyPWwoRC5hZGxlcix1dCxDdCwwKSksb3Qud3JhcD0wLEN0Pj1vdC53X3NpemUmJihZPT09MCYmKFgob3QuaGVhZCksb3Quc3Ryc3RhcnQ9MCxvdC5ibG9ja19zdGFydD0wLG90Lmluc2VydD0wKSxndD1uZXcgcy5CdWY4KG90Lndfc2l6ZSkscy5hcnJheVNldChndCx1dCxDdC1vdC53X3NpemUsb3Qud19zaXplLDApLHV0PWd0LEN0PW90Lndfc2l6ZSkscHQ9RC5hdmFpbF9pbixtdD1ELm5leHRfaW4scnQ9RC5pbnB1dCxELmF2YWlsX2luPUN0LEQubmV4dF9pbj0wLEQuaW5wdXQ9dXQseXQob3QpO290Lmxvb2thaGVhZD49ejspe2ZvcihIPW90LnN0cnN0YXJ0LE09b3QubG9va2FoZWFkLSh6LTEpO290Lmluc19oPShvdC5pbnNfaDw8b3QuaGFzaF9zaGlmdF5vdC53aW5kb3dbSCt6LTFdKSZvdC5oYXNoX21hc2ssb3QucHJldltIJm90LndfbWFza109b3QuaGVhZFtvdC5pbnNfaF0sb3QuaGVhZFtvdC5pbnNfaF09SCxIKyssLS1NOyk7b3Quc3Ryc3RhcnQ9SCxvdC5sb29rYWhlYWQ9ei0xLHl0KG90KX1yZXR1cm4gb3Quc3Ryc3RhcnQrPW90Lmxvb2thaGVhZCxvdC5ibG9ja19zdGFydD1vdC5zdHJzdGFydCxvdC5pbnNlcnQ9b3QubG9va2FoZWFkLG90Lmxvb2thaGVhZD0wLG90Lm1hdGNoX2xlbmd0aD1vdC5wcmV2X2xlbmd0aD16LTEsb3QubWF0Y2hfYXZhaWxhYmxlPTAsRC5uZXh0X2luPW10LEQuaW5wdXQ9cnQsRC5hdmFpbF9pbj1wdCxvdC53cmFwPVkseX0sci5kZWZsYXRlSW5mbz0icGFrbyBkZWZsYXRlIChmcm9tIE5vZGVjYSBwcm9qZWN0KSJ9LHsiLi4vdXRpbHMvY29tbW9uIjo0MSwiLi9hZGxlcjMyIjo0MywiLi9jcmMzMiI6NDUsIi4vbWVzc2FnZXMiOjUxLCIuL3RyZWVzIjo1Mn1dLDQ3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbigpe3RoaXMudGV4dD0wLHRoaXMudGltZT0wLHRoaXMueGZsYWdzPTAsdGhpcy5vcz0wLHRoaXMuZXh0cmE9bnVsbCx0aGlzLmV4dHJhX2xlbj0wLHRoaXMubmFtZT0iIix0aGlzLmNvbW1lbnQ9IiIsdGhpcy5oY3JjPTAsdGhpcy5kb25lPSExfX0se31dLDQ4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihuLHMpe3ZhciBhLGwsYyxwLGIsbSx5LFQsdyxrLFAsRixoLG8sZixDLEIsdSx6LHEsZXQsTyxaLGcsXzthPW4uc3RhdGUsbD1uLm5leHRfaW4sZz1uLmlucHV0LGM9bCsobi5hdmFpbF9pbi01KSxwPW4ubmV4dF9vdXQsXz1uLm91dHB1dCxiPXAtKHMtbi5hdmFpbF9vdXQpLG09cCsobi5hdmFpbF9vdXQtMjU3KSx5PWEuZG1heCxUPWEud3NpemUsdz1hLndoYXZlLGs9YS53bmV4dCxQPWEud2luZG93LEY9YS5ob2xkLGg9YS5iaXRzLG89YS5sZW5jb2RlLGY9YS5kaXN0Y29kZSxDPSgxPDxhLmxlbmJpdHMpLTEsQj0oMTw8YS5kaXN0Yml0cyktMTt0OmRve2g8MTUmJihGKz1nW2wrK108PGgsaCs9OCxGKz1nW2wrK108PGgsaCs9OCksdT1vW0YmQ107ZTpmb3IoOzspe2lmKEY+Pj49ej11Pj4+MjQsaC09eiwoej11Pj4+MTYmMjU1KT09PTApX1twKytdPTY1NTM1JnU7ZWxzZXtpZighKDE2JnopKXtpZighKDY0JnopKXt1PW9bKDY1NTM1JnUpKyhGJigxPDx6KS0xKV07Y29udGludWUgZX1pZigzMiZ6KXthLm1vZGU9MTI7YnJlYWsgdH1uLm1zZz0iaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlIixhLm1vZGU9MzA7YnJlYWsgdH1xPTY1NTM1JnUsKHomPTE1KSYmKGg8eiYmKEYrPWdbbCsrXTw8aCxoKz04KSxxKz1GJigxPDx6KS0xLEY+Pj49eixoLT16KSxoPDE1JiYoRis9Z1tsKytdPDxoLGgrPTgsRis9Z1tsKytdPDxoLGgrPTgpLHU9ZltGJkJdO3I6Zm9yKDs7KXtpZihGPj4+PXo9dT4+PjI0LGgtPXosISgxNiYoej11Pj4+MTYmMjU1KSkpe2lmKCEoNjQmeikpe3U9ZlsoNjU1MzUmdSkrKEYmKDE8PHopLTEpXTtjb250aW51ZSByfW4ubXNnPSJpbnZhbGlkIGRpc3RhbmNlIGNvZGUiLGEubW9kZT0zMDticmVhayB0fWlmKGV0PTY1NTM1JnUsaDwoeiY9MTUpJiYoRis9Z1tsKytdPDxoLChoKz04KTx6JiYoRis9Z1tsKytdPDxoLGgrPTgpKSx5PChldCs9RiYoMTw8eiktMSkpe24ubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsYS5tb2RlPTMwO2JyZWFrIHR9aWYoRj4+Pj16LGgtPXosKHo9cC1iKTxldCl7aWYodzwoej1ldC16KSYmYS5zYW5lKXtuLm1zZz0iaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2siLGEubW9kZT0zMDticmVhayB0fWlmKFo9UCwoTz0wKT09PWspe2lmKE8rPVQteix6PHEpe2ZvcihxLT16O19bcCsrXT1QW08rK10sLS16Oyk7Tz1wLWV0LFo9X319ZWxzZSBpZihrPHope2lmKE8rPVQray16LCh6LT1rKTxxKXtmb3IocS09ejtfW3ArK109UFtPKytdLC0tejspO2lmKE89MCxrPHEpe2ZvcihxLT16PWs7X1twKytdPVBbTysrXSwtLXo7KTtPPXAtZXQsWj1ffX19ZWxzZSBpZihPKz1rLXosejxxKXtmb3IocS09ejtfW3ArK109UFtPKytdLC0tejspO089cC1ldCxaPV99Zm9yKDsyPHE7KV9bcCsrXT1aW08rK10sX1twKytdPVpbTysrXSxfW3ArK109WltPKytdLHEtPTM7cSYmKF9bcCsrXT1aW08rK10sMTxxJiYoX1twKytdPVpbTysrXSkpfWVsc2V7Zm9yKE89cC1ldDtfW3ArK109X1tPKytdLF9bcCsrXT1fW08rK10sX1twKytdPV9bTysrXSwyPChxLT0zKTspO3EmJihfW3ArK109X1tPKytdLDE8cSYmKF9bcCsrXT1fW08rK10pKX1icmVha319YnJlYWt9fXdoaWxlKGw8YyYmcDxtKTtsLT1xPWg+PjMsRiY9KDE8PChoLT1xPDwzKSktMSxuLm5leHRfaW49bCxuLm5leHRfb3V0PXAsbi5hdmFpbF9pbj1sPGM/Yy1sKzU6NS0obC1jKSxuLmF2YWlsX291dD1wPG0/bS1wKzI1NzoyNTctKHAtbSksYS5ob2xkPUYsYS5iaXRzPWh9fSx7fV0sNDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vdXRpbHMvY29tbW9uIikscz10KCIuL2FkbGVyMzIiKSxhPXQoIi4vY3JjMzIiKSxsPXQoIi4vaW5mZmFzdCIpLGM9dCgiLi9pbmZ0cmVlcyIpLHA9MSxiPTIsbT0wLHk9LTIsVD0xLHc9ODUyLGs9NTkyO2Z1bmN0aW9uIFAoTyl7cmV0dXJuKE8+Pj4yNCYyNTUpKyhPPj4+OCY2NTI4MCkrKCg2NTI4MCZPKTw8OCkrKCgyNTUmTyk8PDI0KX1mdW5jdGlvbiBGKCl7dGhpcy5tb2RlPTAsdGhpcy5sYXN0PSExLHRoaXMud3JhcD0wLHRoaXMuaGF2ZWRpY3Q9ITEsdGhpcy5mbGFncz0wLHRoaXMuZG1heD0wLHRoaXMuY2hlY2s9MCx0aGlzLnRvdGFsPTAsdGhpcy5oZWFkPW51bGwsdGhpcy53Yml0cz0wLHRoaXMud3NpemU9MCx0aGlzLndoYXZlPTAsdGhpcy53bmV4dD0wLHRoaXMud2luZG93PW51bGwsdGhpcy5ob2xkPTAsdGhpcy5iaXRzPTAsdGhpcy5sZW5ndGg9MCx0aGlzLm9mZnNldD0wLHRoaXMuZXh0cmE9MCx0aGlzLmxlbmNvZGU9bnVsbCx0aGlzLmRpc3Rjb2RlPW51bGwsdGhpcy5sZW5iaXRzPTAsdGhpcy5kaXN0Yml0cz0wLHRoaXMubmNvZGU9MCx0aGlzLm5sZW49MCx0aGlzLm5kaXN0PTAsdGhpcy5oYXZlPTAsdGhpcy5uZXh0PW51bGwsdGhpcy5sZW5zPW5ldyBuLkJ1ZjE2KDMyMCksdGhpcy53b3JrPW5ldyBuLkJ1ZjE2KDI4OCksdGhpcy5sZW5keW49bnVsbCx0aGlzLmRpc3RkeW49bnVsbCx0aGlzLnNhbmU9MCx0aGlzLmJhY2s9MCx0aGlzLndhcz0wfWZ1bmN0aW9uIGgoTyl7dmFyIFo7cmV0dXJuIE8mJk8uc3RhdGU/KFo9Ty5zdGF0ZSxPLnRvdGFsX2luPU8udG90YWxfb3V0PVoudG90YWw9MCxPLm1zZz0iIixaLndyYXAmJihPLmFkbGVyPTEmWi53cmFwKSxaLm1vZGU9VCxaLmxhc3Q9MCxaLmhhdmVkaWN0PTAsWi5kbWF4PTMyNzY4LFouaGVhZD1udWxsLFouaG9sZD0wLFouYml0cz0wLFoubGVuY29kZT1aLmxlbmR5bj1uZXcgbi5CdWYzMih3KSxaLmRpc3Rjb2RlPVouZGlzdGR5bj1uZXcgbi5CdWYzMihrKSxaLnNhbmU9MSxaLmJhY2s9LTEsbSk6eX1mdW5jdGlvbiBvKE8pe3ZhciBaO3JldHVybiBPJiZPLnN0YXRlPygoWj1PLnN0YXRlKS53c2l6ZT0wLFoud2hhdmU9MCxaLnduZXh0PTAsaChPKSk6eX1mdW5jdGlvbiBmKE8sWil7dmFyIGcsXztyZXR1cm4gTyYmTy5zdGF0ZT8oXz1PLnN0YXRlLFo8MD8oZz0wLFo9LVopOihnPTErKFo+PjQpLFo8NDgmJihaJj0xNSkpLFomJihaPDh8fDE1PFopP3k6KF8ud2luZG93IT09bnVsbCYmXy53Yml0cyE9PVomJihfLndpbmRvdz1udWxsKSxfLndyYXA9ZyxfLndiaXRzPVosbyhPKSkpOnl9ZnVuY3Rpb24gQyhPLFope3ZhciBnLF87cmV0dXJuIE8/KF89bmV3IEYsKE8uc3RhdGU9Xykud2luZG93PW51bGwsKGc9ZihPLFopKSE9PW0mJihPLnN0YXRlPW51bGwpLGcpOnl9dmFyIEIsdSx6PSEwO2Z1bmN0aW9uIHEoTyl7aWYoeil7dmFyIFo7Zm9yKEI9bmV3IG4uQnVmMzIoNTEyKSx1PW5ldyBuLkJ1ZjMyKDMyKSxaPTA7WjwxNDQ7KU8ubGVuc1taKytdPTg7Zm9yKDtaPDI1NjspTy5sZW5zW1orK109OTtmb3IoO1o8MjgwOylPLmxlbnNbWisrXT03O2Zvcig7WjwyODg7KU8ubGVuc1taKytdPTg7Zm9yKGMocCxPLmxlbnMsMCwyODgsQiwwLE8ud29yayx7Yml0czo5fSksWj0wO1o8MzI7KU8ubGVuc1taKytdPTU7YyhiLE8ubGVucywwLDMyLHUsMCxPLndvcmsse2JpdHM6NX0pLHo9ITF9Ty5sZW5jb2RlPUIsTy5sZW5iaXRzPTksTy5kaXN0Y29kZT11LE8uZGlzdGJpdHM9NX1mdW5jdGlvbiBldChPLFosZyxfKXt2YXIgUyxOPU8uc3RhdGU7cmV0dXJuIE4ud2luZG93PT09bnVsbCYmKE4ud3NpemU9MTw8Ti53Yml0cyxOLnduZXh0PTAsTi53aGF2ZT0wLE4ud2luZG93PW5ldyBuLkJ1ZjgoTi53c2l6ZSkpLF8+PU4ud3NpemU/KG4uYXJyYXlTZXQoTi53aW5kb3csWixnLU4ud3NpemUsTi53c2l6ZSwwKSxOLnduZXh0PTAsTi53aGF2ZT1OLndzaXplKTooXzwoUz1OLndzaXplLU4ud25leHQpJiYoUz1fKSxuLmFycmF5U2V0KE4ud2luZG93LFosZy1fLFMsTi53bmV4dCksKF8tPVMpPyhuLmFycmF5U2V0KE4ud2luZG93LFosZy1fLF8sMCksTi53bmV4dD1fLE4ud2hhdmU9Ti53c2l6ZSk6KE4ud25leHQrPVMsTi53bmV4dD09PU4ud3NpemUmJihOLnduZXh0PTApLE4ud2hhdmU8Ti53c2l6ZSYmKE4ud2hhdmUrPVMpKSksMH1yLmluZmxhdGVSZXNldD1vLHIuaW5mbGF0ZVJlc2V0Mj1mLHIuaW5mbGF0ZVJlc2V0S2VlcD1oLHIuaW5mbGF0ZUluaXQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEMoTywxNSl9LHIuaW5mbGF0ZUluaXQyPUMsci5pbmZsYXRlPWZ1bmN0aW9uKE8sWil7dmFyIGcsXyxTLE4sUixMLFgsaixHLGF0LEosdHQseXQsVHQsQXQsa3QsTHQsQnQsJHQsS3QsRCx1dCxvdCxILE09MCxZPW5ldyBuLkJ1ZjgoNCkscHQ9WzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdO2lmKCFPfHwhTy5zdGF0ZXx8IU8ub3V0cHV0fHwhTy5pbnB1dCYmTy5hdmFpbF9pbiE9PTApcmV0dXJuIHk7KGc9Ty5zdGF0ZSkubW9kZT09PTEyJiYoZy5tb2RlPTEzKSxSPU8ubmV4dF9vdXQsUz1PLm91dHB1dCxYPU8uYXZhaWxfb3V0LE49Ty5uZXh0X2luLF89Ty5pbnB1dCxMPU8uYXZhaWxfaW4saj1nLmhvbGQsRz1nLmJpdHMsYXQ9TCxKPVgsdXQ9bTt0OmZvcig7Oylzd2l0Y2goZy5tb2RlKXtjYXNlIFQ6aWYoZy53cmFwPT09MCl7Zy5tb2RlPTEzO2JyZWFrfWZvcig7RzwxNjspe2lmKEw9PT0wKWJyZWFrIHQ7TC0tLGorPV9bTisrXTw8RyxHKz04fWlmKDImZy53cmFwJiZqPT09MzU2MTUpe1lbZy5jaGVjaz0wXT0yNTUmaixZWzFdPWo+Pj44JjI1NSxnLmNoZWNrPWEoZy5jaGVjayxZLDIsMCksRz1qPTAsZy5tb2RlPTI7YnJlYWt9aWYoZy5mbGFncz0wLGcuaGVhZCYmKGcuaGVhZC5kb25lPSExKSwhKDEmZy53cmFwKXx8KCgoMjU1JmopPDw4KSsoaj4+OCkpJTMxKXtPLm1zZz0iaW5jb3JyZWN0IGhlYWRlciBjaGVjayIsZy5tb2RlPTMwO2JyZWFrfWlmKCgxNSZqKSE9OCl7Ty5tc2c9InVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIixnLm1vZGU9MzA7YnJlYWt9aWYoRy09NCxEPTgrKDE1JihqPj4+PTQpKSxnLndiaXRzPT09MClnLndiaXRzPUQ7ZWxzZSBpZihEPmcud2JpdHMpe08ubXNnPSJpbnZhbGlkIHdpbmRvdyBzaXplIixnLm1vZGU9MzA7YnJlYWt9Zy5kbWF4PTE8PEQsTy5hZGxlcj1nLmNoZWNrPTEsZy5tb2RlPTUxMiZqPzEwOjEyLEc9aj0wO2JyZWFrO2Nhc2UgMjpmb3IoO0c8MTY7KXtpZihMPT09MClicmVhayB0O0wtLSxqKz1fW04rK108PEcsRys9OH1pZihnLmZsYWdzPWosKDI1NSZnLmZsYWdzKSE9OCl7Ty5tc2c9InVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIixnLm1vZGU9MzA7YnJlYWt9aWYoNTczNDQmZy5mbGFncyl7Ty5tc2c9InVua25vd24gaGVhZGVyIGZsYWdzIHNldCIsZy5tb2RlPTMwO2JyZWFrfWcuaGVhZCYmKGcuaGVhZC50ZXh0PWo+PjgmMSksNTEyJmcuZmxhZ3MmJihZWzBdPTI1NSZqLFlbMV09aj4+PjgmMjU1LGcuY2hlY2s9YShnLmNoZWNrLFksMiwwKSksRz1qPTAsZy5tb2RlPTM7Y2FzZSAzOmZvcig7RzwzMjspe2lmKEw9PT0wKWJyZWFrIHQ7TC0tLGorPV9bTisrXTw8RyxHKz04fWcuaGVhZCYmKGcuaGVhZC50aW1lPWopLDUxMiZnLmZsYWdzJiYoWVswXT0yNTUmaixZWzFdPWo+Pj44JjI1NSxZWzJdPWo+Pj4xNiYyNTUsWVszXT1qPj4+MjQmMjU1LGcuY2hlY2s9YShnLmNoZWNrLFksNCwwKSksRz1qPTAsZy5tb2RlPTQ7Y2FzZSA0OmZvcig7RzwxNjspe2lmKEw9PT0wKWJyZWFrIHQ7TC0tLGorPV9bTisrXTw8RyxHKz04fWcuaGVhZCYmKGcuaGVhZC54ZmxhZ3M9MjU1JmosZy5oZWFkLm9zPWo+PjgpLDUxMiZnLmZsYWdzJiYoWVswXT0yNTUmaixZWzFdPWo+Pj44JjI1NSxnLmNoZWNrPWEoZy5jaGVjayxZLDIsMCkpLEc9aj0wLGcubW9kZT01O2Nhc2UgNTppZigxMDI0JmcuZmxhZ3Mpe2Zvcig7RzwxNjspe2lmKEw9PT0wKWJyZWFrIHQ7TC0tLGorPV9bTisrXTw8RyxHKz04fWcubGVuZ3RoPWosZy5oZWFkJiYoZy5oZWFkLmV4dHJhX2xlbj1qKSw1MTImZy5mbGFncyYmKFlbMF09MjU1JmosWVsxXT1qPj4+OCYyNTUsZy5jaGVjaz1hKGcuY2hlY2ssWSwyLDApKSxHPWo9MH1lbHNlIGcuaGVhZCYmKGcuaGVhZC5leHRyYT1udWxsKTtnLm1vZGU9NjtjYXNlIDY6aWYoMTAyNCZnLmZsYWdzJiYoTDwodHQ9Zy5sZW5ndGgpJiYodHQ9TCksdHQmJihnLmhlYWQmJihEPWcuaGVhZC5leHRyYV9sZW4tZy5sZW5ndGgsZy5oZWFkLmV4dHJhfHwoZy5oZWFkLmV4dHJhPW5ldyBBcnJheShnLmhlYWQuZXh0cmFfbGVuKSksbi5hcnJheVNldChnLmhlYWQuZXh0cmEsXyxOLHR0LEQpKSw1MTImZy5mbGFncyYmKGcuY2hlY2s9YShnLmNoZWNrLF8sdHQsTikpLEwtPXR0LE4rPXR0LGcubGVuZ3RoLT10dCksZy5sZW5ndGgpKWJyZWFrIHQ7Zy5sZW5ndGg9MCxnLm1vZGU9NztjYXNlIDc6aWYoMjA0OCZnLmZsYWdzKXtpZihMPT09MClicmVhayB0O2Zvcih0dD0wO0Q9X1tOK3R0KytdLGcuaGVhZCYmRCYmZy5sZW5ndGg8NjU1MzYmJihnLmhlYWQubmFtZSs9U3RyaW5nLmZyb21DaGFyQ29kZShEKSksRCYmdHQ8TDspO2lmKDUxMiZnLmZsYWdzJiYoZy5jaGVjaz1hKGcuY2hlY2ssXyx0dCxOKSksTC09dHQsTis9dHQsRClicmVhayB0fWVsc2UgZy5oZWFkJiYoZy5oZWFkLm5hbWU9bnVsbCk7Zy5sZW5ndGg9MCxnLm1vZGU9ODtjYXNlIDg6aWYoNDA5NiZnLmZsYWdzKXtpZihMPT09MClicmVhayB0O2Zvcih0dD0wO0Q9X1tOK3R0KytdLGcuaGVhZCYmRCYmZy5sZW5ndGg8NjU1MzYmJihnLmhlYWQuY29tbWVudCs9U3RyaW5nLmZyb21DaGFyQ29kZShEKSksRCYmdHQ8TDspO2lmKDUxMiZnLmZsYWdzJiYoZy5jaGVjaz1hKGcuY2hlY2ssXyx0dCxOKSksTC09dHQsTis9dHQsRClicmVhayB0fWVsc2UgZy5oZWFkJiYoZy5oZWFkLmNvbW1lbnQ9bnVsbCk7Zy5tb2RlPTk7Y2FzZSA5OmlmKDUxMiZnLmZsYWdzKXtmb3IoO0c8MTY7KXtpZihMPT09MClicmVhayB0O0wtLSxqKz1fW04rK108PEcsRys9OH1pZihqIT09KDY1NTM1JmcuY2hlY2spKXtPLm1zZz0iaGVhZGVyIGNyYyBtaXNtYXRjaCIsZy5tb2RlPTMwO2JyZWFrfUc9aj0wfWcuaGVhZCYmKGcuaGVhZC5oY3JjPWcuZmxhZ3M+PjkmMSxnLmhlYWQuZG9uZT0hMCksTy5hZGxlcj1nLmNoZWNrPTAsZy5tb2RlPTEyO2JyZWFrO2Nhc2UgMTA6Zm9yKDtHPDMyOyl7aWYoTD09PTApYnJlYWsgdDtMLS0sais9X1tOKytdPDxHLEcrPTh9Ty5hZGxlcj1nLmNoZWNrPVAoaiksRz1qPTAsZy5tb2RlPTExO2Nhc2UgMTE6aWYoZy5oYXZlZGljdD09PTApcmV0dXJuIE8ubmV4dF9vdXQ9UixPLmF2YWlsX291dD1YLE8ubmV4dF9pbj1OLE8uYXZhaWxfaW49TCxnLmhvbGQ9aixnLmJpdHM9RywyO08uYWRsZXI9Zy5jaGVjaz0xLGcubW9kZT0xMjtjYXNlIDEyOmlmKFo9PT01fHxaPT09NilicmVhayB0O2Nhc2UgMTM6aWYoZy5sYXN0KXtqPj4+PTcmRyxHLT03JkcsZy5tb2RlPTI3O2JyZWFrfWZvcig7RzwzOyl7aWYoTD09PTApYnJlYWsgdDtMLS0sais9X1tOKytdPDxHLEcrPTh9c3dpdGNoKGcubGFzdD0xJmosRy09MSwzJihqPj4+PTEpKXtjYXNlIDA6Zy5tb2RlPTE0O2JyZWFrO2Nhc2UgMTppZihxKGcpLGcubW9kZT0yMCxaIT09NilicmVhaztqPj4+PTIsRy09MjticmVhayB0O2Nhc2UgMjpnLm1vZGU9MTc7YnJlYWs7Y2FzZSAzOk8ubXNnPSJpbnZhbGlkIGJsb2NrIHR5cGUiLGcubW9kZT0zMH1qPj4+PTIsRy09MjticmVhaztjYXNlIDE0OmZvcihqPj4+PTcmRyxHLT03Jkc7RzwzMjspe2lmKEw9PT0wKWJyZWFrIHQ7TC0tLGorPV9bTisrXTw8RyxHKz04fWlmKCg2NTUzNSZqKSE9KGo+Pj4xNl42NTUzNSkpe08ubXNnPSJpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhzIixnLm1vZGU9MzA7YnJlYWt9aWYoZy5sZW5ndGg9NjU1MzUmaixHPWo9MCxnLm1vZGU9MTUsWj09PTYpYnJlYWsgdDtjYXNlIDE1OmcubW9kZT0xNjtjYXNlIDE2OmlmKHR0PWcubGVuZ3RoKXtpZihMPHR0JiYodHQ9TCksWDx0dCYmKHR0PVgpLHR0PT09MClicmVhayB0O24uYXJyYXlTZXQoUyxfLE4sdHQsUiksTC09dHQsTis9dHQsWC09dHQsUis9dHQsZy5sZW5ndGgtPXR0O2JyZWFrfWcubW9kZT0xMjticmVhaztjYXNlIDE3OmZvcig7RzwxNDspe2lmKEw9PT0wKWJyZWFrIHQ7TC0tLGorPV9bTisrXTw8RyxHKz04fWlmKGcubmxlbj0yNTcrKDMxJmopLGo+Pj49NSxHLT01LGcubmRpc3Q9MSsoMzEmaiksaj4+Pj01LEctPTUsZy5uY29kZT00KygxNSZqKSxqPj4+PTQsRy09NCwyODY8Zy5ubGVufHwzMDxnLm5kaXN0KXtPLm1zZz0idG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMiLGcubW9kZT0zMDticmVha31nLmhhdmU9MCxnLm1vZGU9MTg7Y2FzZSAxODpmb3IoO2cuaGF2ZTxnLm5jb2RlOyl7Zm9yKDtHPDM7KXtpZihMPT09MClicmVhayB0O0wtLSxqKz1fW04rK108PEcsRys9OH1nLmxlbnNbcHRbZy5oYXZlKytdXT03Jmosaj4+Pj0zLEctPTN9Zm9yKDtnLmhhdmU8MTk7KWcubGVuc1twdFtnLmhhdmUrK11dPTA7aWYoZy5sZW5jb2RlPWcubGVuZHluLGcubGVuYml0cz03LG90PXtiaXRzOmcubGVuYml0c30sdXQ9YygwLGcubGVucywwLDE5LGcubGVuY29kZSwwLGcud29yayxvdCksZy5sZW5iaXRzPW90LmJpdHMsdXQpe08ubXNnPSJpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQiLGcubW9kZT0zMDticmVha31nLmhhdmU9MCxnLm1vZGU9MTk7Y2FzZSAxOTpmb3IoO2cuaGF2ZTxnLm5sZW4rZy5uZGlzdDspe2Zvcig7a3Q9KE09Zy5sZW5jb2RlW2omKDE8PGcubGVuYml0cyktMV0pPj4+MTYmMjU1LEx0PTY1NTM1Jk0sISgoQXQ9TT4+PjI0KTw9Ryk7KXtpZihMPT09MClicmVhayB0O0wtLSxqKz1fW04rK108PEcsRys9OH1pZihMdDwxNilqPj4+PUF0LEctPUF0LGcubGVuc1tnLmhhdmUrK109THQ7ZWxzZXtpZihMdD09PTE2KXtmb3IoSD1BdCsyO0c8SDspe2lmKEw9PT0wKWJyZWFrIHQ7TC0tLGorPV9bTisrXTw8RyxHKz04fWlmKGo+Pj49QXQsRy09QXQsZy5oYXZlPT09MCl7Ty5tc2c9ImludmFsaWQgYml0IGxlbmd0aCByZXBlYXQiLGcubW9kZT0zMDticmVha31EPWcubGVuc1tnLmhhdmUtMV0sdHQ9MysoMyZqKSxqPj4+PTIsRy09Mn1lbHNlIGlmKEx0PT09MTcpe2ZvcihIPUF0KzM7RzxIOyl7aWYoTD09PTApYnJlYWsgdDtMLS0sais9X1tOKytdPDxHLEcrPTh9Ry09QXQsRD0wLHR0PTMrKDcmKGo+Pj49QXQpKSxqPj4+PTMsRy09M31lbHNle2ZvcihIPUF0Kzc7RzxIOyl7aWYoTD09PTApYnJlYWsgdDtMLS0sais9X1tOKytdPDxHLEcrPTh9Ry09QXQsRD0wLHR0PTExKygxMjcmKGo+Pj49QXQpKSxqPj4+PTcsRy09N31pZihnLmhhdmUrdHQ+Zy5ubGVuK2cubmRpc3Qpe08ubXNnPSJpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0IixnLm1vZGU9MzA7YnJlYWt9Zm9yKDt0dC0tOylnLmxlbnNbZy5oYXZlKytdPUR9fWlmKGcubW9kZT09PTMwKWJyZWFrO2lmKGcubGVuc1syNTZdPT09MCl7Ty5tc2c9ImludmFsaWQgY29kZSAtLSBtaXNzaW5nIGVuZC1vZi1ibG9jayIsZy5tb2RlPTMwO2JyZWFrfWlmKGcubGVuYml0cz05LG90PXtiaXRzOmcubGVuYml0c30sdXQ9YyhwLGcubGVucywwLGcubmxlbixnLmxlbmNvZGUsMCxnLndvcmssb3QpLGcubGVuYml0cz1vdC5iaXRzLHV0KXtPLm1zZz0iaW52YWxpZCBsaXRlcmFsL2xlbmd0aHMgc2V0IixnLm1vZGU9MzA7YnJlYWt9aWYoZy5kaXN0Yml0cz02LGcuZGlzdGNvZGU9Zy5kaXN0ZHluLG90PXtiaXRzOmcuZGlzdGJpdHN9LHV0PWMoYixnLmxlbnMsZy5ubGVuLGcubmRpc3QsZy5kaXN0Y29kZSwwLGcud29yayxvdCksZy5kaXN0Yml0cz1vdC5iaXRzLHV0KXtPLm1zZz0iaW52YWxpZCBkaXN0YW5jZXMgc2V0IixnLm1vZGU9MzA7YnJlYWt9aWYoZy5tb2RlPTIwLFo9PT02KWJyZWFrIHQ7Y2FzZSAyMDpnLm1vZGU9MjE7Y2FzZSAyMTppZig2PD1MJiYyNTg8PVgpe08ubmV4dF9vdXQ9UixPLmF2YWlsX291dD1YLE8ubmV4dF9pbj1OLE8uYXZhaWxfaW49TCxnLmhvbGQ9aixnLmJpdHM9RyxsKE8sSiksUj1PLm5leHRfb3V0LFM9Ty5vdXRwdXQsWD1PLmF2YWlsX291dCxOPU8ubmV4dF9pbixfPU8uaW5wdXQsTD1PLmF2YWlsX2luLGo9Zy5ob2xkLEc9Zy5iaXRzLGcubW9kZT09PTEyJiYoZy5iYWNrPS0xKTticmVha31mb3IoZy5iYWNrPTA7a3Q9KE09Zy5sZW5jb2RlW2omKDE8PGcubGVuYml0cyktMV0pPj4+MTYmMjU1LEx0PTY1NTM1Jk0sISgoQXQ9TT4+PjI0KTw9Ryk7KXtpZihMPT09MClicmVhayB0O0wtLSxqKz1fW04rK108PEcsRys9OH1pZihrdCYmISgyNDAma3QpKXtmb3IoQnQ9QXQsJHQ9a3QsS3Q9THQ7a3Q9KE09Zy5sZW5jb2RlW0t0KygoaiYoMTw8QnQrJHQpLTEpPj5CdCldKT4+PjE2JjI1NSxMdD02NTUzNSZNLCEoQnQrKEF0PU0+Pj4yNCk8PUcpOyl7aWYoTD09PTApYnJlYWsgdDtMLS0sais9X1tOKytdPDxHLEcrPTh9aj4+Pj1CdCxHLT1CdCxnLmJhY2srPUJ0fWlmKGo+Pj49QXQsRy09QXQsZy5iYWNrKz1BdCxnLmxlbmd0aD1MdCxrdD09PTApe2cubW9kZT0yNjticmVha31pZigzMiZrdCl7Zy5iYWNrPS0xLGcubW9kZT0xMjticmVha31pZig2NCZrdCl7Ty5tc2c9ImludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZSIsZy5tb2RlPTMwO2JyZWFrfWcuZXh0cmE9MTUma3QsZy5tb2RlPTIyO2Nhc2UgMjI6aWYoZy5leHRyYSl7Zm9yKEg9Zy5leHRyYTtHPEg7KXtpZihMPT09MClicmVhayB0O0wtLSxqKz1fW04rK108PEcsRys9OH1nLmxlbmd0aCs9aiYoMTw8Zy5leHRyYSktMSxqPj4+PWcuZXh0cmEsRy09Zy5leHRyYSxnLmJhY2srPWcuZXh0cmF9Zy53YXM9Zy5sZW5ndGgsZy5tb2RlPTIzO2Nhc2UgMjM6Zm9yKDtrdD0oTT1nLmRpc3Rjb2RlW2omKDE8PGcuZGlzdGJpdHMpLTFdKT4+PjE2JjI1NSxMdD02NTUzNSZNLCEoKEF0PU0+Pj4yNCk8PUcpOyl7aWYoTD09PTApYnJlYWsgdDtMLS0sais9X1tOKytdPDxHLEcrPTh9aWYoISgyNDAma3QpKXtmb3IoQnQ9QXQsJHQ9a3QsS3Q9THQ7a3Q9KE09Zy5kaXN0Y29kZVtLdCsoKGomKDE8PEJ0KyR0KS0xKT4+QnQpXSk+Pj4xNiYyNTUsTHQ9NjU1MzUmTSwhKEJ0KyhBdD1NPj4+MjQpPD1HKTspe2lmKEw9PT0wKWJyZWFrIHQ7TC0tLGorPV9bTisrXTw8RyxHKz04fWo+Pj49QnQsRy09QnQsZy5iYWNrKz1CdH1pZihqPj4+PUF0LEctPUF0LGcuYmFjays9QXQsNjQma3Qpe08ubXNnPSJpbnZhbGlkIGRpc3RhbmNlIGNvZGUiLGcubW9kZT0zMDticmVha31nLm9mZnNldD1MdCxnLmV4dHJhPTE1Jmt0LGcubW9kZT0yNDtjYXNlIDI0OmlmKGcuZXh0cmEpe2ZvcihIPWcuZXh0cmE7RzxIOyl7aWYoTD09PTApYnJlYWsgdDtMLS0sais9X1tOKytdPDxHLEcrPTh9Zy5vZmZzZXQrPWomKDE8PGcuZXh0cmEpLTEsaj4+Pj1nLmV4dHJhLEctPWcuZXh0cmEsZy5iYWNrKz1nLmV4dHJhfWlmKGcub2Zmc2V0PmcuZG1heCl7Ty5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixnLm1vZGU9MzA7YnJlYWt9Zy5tb2RlPTI1O2Nhc2UgMjU6aWYoWD09PTApYnJlYWsgdDtpZih0dD1KLVgsZy5vZmZzZXQ+dHQpe2lmKCh0dD1nLm9mZnNldC10dCk+Zy53aGF2ZSYmZy5zYW5lKXtPLm1zZz0iaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2siLGcubW9kZT0zMDticmVha315dD10dD5nLnduZXh0Pyh0dC09Zy53bmV4dCxnLndzaXplLXR0KTpnLnduZXh0LXR0LHR0PmcubGVuZ3RoJiYodHQ9Zy5sZW5ndGgpLFR0PWcud2luZG93fWVsc2UgVHQ9Uyx5dD1SLWcub2Zmc2V0LHR0PWcubGVuZ3RoO2ZvcihYPHR0JiYodHQ9WCksWC09dHQsZy5sZW5ndGgtPXR0O1NbUisrXT1UdFt5dCsrXSwtLXR0Oyk7Zy5sZW5ndGg9PT0wJiYoZy5tb2RlPTIxKTticmVhaztjYXNlIDI2OmlmKFg9PT0wKWJyZWFrIHQ7U1tSKytdPWcubGVuZ3RoLFgtLSxnLm1vZGU9MjE7YnJlYWs7Y2FzZSAyNzppZihnLndyYXApe2Zvcig7RzwzMjspe2lmKEw9PT0wKWJyZWFrIHQ7TC0tLGp8PV9bTisrXTw8RyxHKz04fWlmKEotPVgsTy50b3RhbF9vdXQrPUosZy50b3RhbCs9SixKJiYoTy5hZGxlcj1nLmNoZWNrPWcuZmxhZ3M/YShnLmNoZWNrLFMsSixSLUopOnMoZy5jaGVjayxTLEosUi1KKSksSj1YLChnLmZsYWdzP2o6UChqKSkhPT1nLmNoZWNrKXtPLm1zZz0iaW5jb3JyZWN0IGRhdGEgY2hlY2siLGcubW9kZT0zMDticmVha31HPWo9MH1nLm1vZGU9Mjg7Y2FzZSAyODppZihnLndyYXAmJmcuZmxhZ3Mpe2Zvcig7RzwzMjspe2lmKEw9PT0wKWJyZWFrIHQ7TC0tLGorPV9bTisrXTw8RyxHKz04fWlmKGohPT0oNDI5NDk2NzI5NSZnLnRvdGFsKSl7Ty5tc2c9ImluY29ycmVjdCBsZW5ndGggY2hlY2siLGcubW9kZT0zMDticmVha31HPWo9MH1nLm1vZGU9Mjk7Y2FzZSAyOTp1dD0xO2JyZWFrIHQ7Y2FzZSAzMDp1dD0tMzticmVhayB0O2Nhc2UgMzE6cmV0dXJuLTQ7Y2FzZSAzMjpkZWZhdWx0OnJldHVybiB5fXJldHVybiBPLm5leHRfb3V0PVIsTy5hdmFpbF9vdXQ9WCxPLm5leHRfaW49TixPLmF2YWlsX2luPUwsZy5ob2xkPWosZy5iaXRzPUcsKGcud3NpemV8fEohPT1PLmF2YWlsX291dCYmZy5tb2RlPDMwJiYoZy5tb2RlPDI3fHxaIT09NCkpJiZldChPLE8ub3V0cHV0LE8ubmV4dF9vdXQsSi1PLmF2YWlsX291dCk/KGcubW9kZT0zMSwtNCk6KGF0LT1PLmF2YWlsX2luLEotPU8uYXZhaWxfb3V0LE8udG90YWxfaW4rPWF0LE8udG90YWxfb3V0Kz1KLGcudG90YWwrPUosZy53cmFwJiZKJiYoTy5hZGxlcj1nLmNoZWNrPWcuZmxhZ3M/YShnLmNoZWNrLFMsSixPLm5leHRfb3V0LUopOnMoZy5jaGVjayxTLEosTy5uZXh0X291dC1KKSksTy5kYXRhX3R5cGU9Zy5iaXRzKyhnLmxhc3Q/NjQ6MCkrKGcubW9kZT09PTEyPzEyODowKSsoZy5tb2RlPT09MjB8fGcubW9kZT09PTE1PzI1NjowKSwoYXQ9PTAmJko9PT0wfHxaPT09NCkmJnV0PT09bSYmKHV0PS01KSx1dCl9LHIuaW5mbGF0ZUVuZD1mdW5jdGlvbihPKXtpZighT3x8IU8uc3RhdGUpcmV0dXJuIHk7dmFyIFo9Ty5zdGF0ZTtyZXR1cm4gWi53aW5kb3cmJihaLndpbmRvdz1udWxsKSxPLnN0YXRlPW51bGwsbX0sci5pbmZsYXRlR2V0SGVhZGVyPWZ1bmN0aW9uKE8sWil7dmFyIGc7cmV0dXJuIE8mJk8uc3RhdGUmJjImKGc9Ty5zdGF0ZSkud3JhcD8oKGcuaGVhZD1aKS5kb25lPSExLG0pOnl9LHIuaW5mbGF0ZVNldERpY3Rpb25hcnk9ZnVuY3Rpb24oTyxaKXt2YXIgZyxfPVoubGVuZ3RoO3JldHVybiBPJiZPLnN0YXRlPyhnPU8uc3RhdGUpLndyYXAhPT0wJiZnLm1vZGUhPT0xMT95OmcubW9kZT09PTExJiZzKDEsWixfLDApIT09Zy5jaGVjaz8tMzpldChPLFosXyxfKT8oZy5tb2RlPTMxLC00KTooZy5oYXZlZGljdD0xLG0pOnl9LHIuaW5mbGF0ZUluZm89InBha28gaW5mbGF0ZSAoZnJvbSBOb2RlY2EgcHJvamVjdCkifSx7Ii4uL3V0aWxzL2NvbW1vbiI6NDEsIi4vYWRsZXIzMiI6NDMsIi4vY3JjMzIiOjQ1LCIuL2luZmZhc3QiOjQ4LCIuL2luZnRyZWVzIjo1MH1dLDUwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3V0aWxzL2NvbW1vbiIpLHM9WzMsNCw1LDYsNyw4LDksMTAsMTEsMTMsMTUsMTcsMTksMjMsMjcsMzEsMzUsNDMsNTEsNTksNjcsODMsOTksMTE1LDEzMSwxNjMsMTk1LDIyNywyNTgsMCwwXSxhPVsxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNywxNywxNywxNywxOCwxOCwxOCwxOCwxOSwxOSwxOSwxOSwyMCwyMCwyMCwyMCwyMSwyMSwyMSwyMSwxNiw3Miw3OF0sbD1bMSwyLDMsNCw1LDcsOSwxMywxNywyNSwzMyw0OSw2NSw5NywxMjksMTkzLDI1NywzODUsNTEzLDc2OSwxMDI1LDE1MzcsMjA0OSwzMDczLDQwOTcsNjE0NSw4MTkzLDEyMjg5LDE2Mzg1LDI0NTc3LDAsMF0sYz1bMTYsMTYsMTYsMTYsMTcsMTcsMTgsMTgsMTksMTksMjAsMjAsMjEsMjEsMjIsMjIsMjMsMjMsMjQsMjQsMjUsMjUsMjYsMjYsMjcsMjcsMjgsMjgsMjksMjksNjQsNjRdO2UuZXhwb3J0cz1mdW5jdGlvbihwLGIsbSx5LFQsdyxrLFApe3ZhciBGLGgsbyxmLEMsQix1LHoscSxldD1QLmJpdHMsTz0wLFo9MCxnPTAsXz0wLFM9MCxOPTAsUj0wLEw9MCxYPTAsaj0wLEc9bnVsbCxhdD0wLEo9bmV3IG4uQnVmMTYoMTYpLHR0PW5ldyBuLkJ1ZjE2KDE2KSx5dD1udWxsLFR0PTA7Zm9yKE89MDtPPD0xNTtPKyspSltPXT0wO2ZvcihaPTA7Wjx5O1orKylKW2JbbStaXV0rKztmb3IoUz1ldCxfPTE1OzE8PV8mJkpbX109PT0wO18tLSk7aWYoXzxTJiYoUz1fKSxfPT09MClyZXR1cm4gVFt3KytdPTIwOTcxNTIwLFRbdysrXT0yMDk3MTUyMCxQLmJpdHM9MSwwO2ZvcihnPTE7ZzxfJiZKW2ddPT09MDtnKyspO2ZvcihTPGcmJihTPWcpLE89TD0xO088PTE1O08rKylpZihMPDw9MSwoTC09SltPXSk8MClyZXR1cm4tMTtpZigwPEwmJihwPT09MHx8XyE9PTEpKXJldHVybi0xO2Zvcih0dFsxXT0wLE89MTtPPDE1O08rKyl0dFtPKzFdPXR0W09dK0pbT107Zm9yKFo9MDtaPHk7WisrKWJbbStaXSE9PTAmJihrW3R0W2JbbStaXV0rK109Wik7aWYoQj1wPT09MD8oRz15dD1rLDE5KTpwPT09MT8oRz1zLGF0LT0yNTcseXQ9YSxUdC09MjU3LDI1Nik6KEc9bCx5dD1jLC0xKSxPPWcsQz13LFI9Wj1qPTAsbz0tMSxmPShYPTE8PChOPVMpKS0xLHA9PT0xJiY4NTI8WHx8cD09PTImJjU5MjxYKXJldHVybiAxO2Zvcig7Oyl7Zm9yKHU9Ty1SLHE9a1taXTxCPyh6PTAsa1taXSk6a1taXT5CPyh6PXl0W1R0K2tbWl1dLEdbYXQra1taXV0pOih6PTk2LDApLEY9MTw8Ty1SLGc9aD0xPDxOO1RbQysoaj4+UikrKGgtPUYpXT11PDwyNHx6PDwxNnxxfDAsaCE9PTA7KTtmb3IoRj0xPDxPLTE7aiZGOylGPj49MTtpZihGIT09MD8oaiY9Ri0xLGorPUYpOmo9MCxaKyssLS1KW09dPT0wKXtpZihPPT09XylicmVhaztPPWJbbStrW1pdXX1pZihTPE8mJihqJmYpIT09byl7Zm9yKFI9PT0wJiYoUj1TKSxDKz1nLEw9MTw8KE49Ty1SKTtOK1I8XyYmISgoTC09SltOK1JdKTw9MCk7KU4rKyxMPDw9MTtpZihYKz0xPDxOLHA9PT0xJiY4NTI8WHx8cD09PTImJjU5MjxYKXJldHVybiAxO1Rbbz1qJmZdPVM8PDI0fE48PDE2fEMtd3wwfX1yZXR1cm4gaiE9PTAmJihUW0Mral09Ty1SPDwyNHw2NDw8MTZ8MCksUC5iaXRzPVMsMH19LHsiLi4vdXRpbHMvY29tbW9uIjo0MX1dLDUxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17MjoibmVlZCBkaWN0aW9uYXJ5IiwxOiJzdHJlYW0gZW5kIiwwOiIiLCItMSI6ImZpbGUgZXJyb3IiLCItMiI6InN0cmVhbSBlcnJvciIsIi0zIjoiZGF0YSBlcnJvciIsIi00IjoiaW5zdWZmaWNpZW50IG1lbW9yeSIsIi01IjoiYnVmZmVyIGVycm9yIiwiLTYiOiJpbmNvbXBhdGlibGUgdmVyc2lvbiJ9fSx7fV0sNTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vdXRpbHMvY29tbW9uIikscz0wLGE9MTtmdW5jdGlvbiBsKE0pe2Zvcih2YXIgWT1NLmxlbmd0aDswPD0tLVk7KU1bWV09MH12YXIgYz0wLHA9MjksYj0yNTYsbT1iKzErcCx5PTMwLFQ9MTksdz0yKm0rMSxrPTE1LFA9MTYsRj03LGg9MjU2LG89MTYsZj0xNyxDPTE4LEI9WzAsMCwwLDAsMCwwLDAsMCwxLDEsMSwxLDIsMiwyLDIsMywzLDMsMyw0LDQsNCw0LDUsNSw1LDUsMF0sdT1bMCwwLDAsMCwxLDEsMiwyLDMsMyw0LDQsNSw1LDYsNiw3LDcsOCw4LDksOSwxMCwxMCwxMSwxMSwxMiwxMiwxMywxM10sej1bMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyLDMsN10scT1bMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV0sZXQ9bmV3IEFycmF5KDIqKG0rMikpO2woZXQpO3ZhciBPPW5ldyBBcnJheSgyKnkpO2woTyk7dmFyIFo9bmV3IEFycmF5KDUxMik7bChaKTt2YXIgZz1uZXcgQXJyYXkoMjU2KTtsKGcpO3ZhciBfPW5ldyBBcnJheShwKTtsKF8pO3ZhciBTLE4sUixMPW5ldyBBcnJheSh5KTtmdW5jdGlvbiBYKE0sWSxwdCxtdCxydCl7dGhpcy5zdGF0aWNfdHJlZT1NLHRoaXMuZXh0cmFfYml0cz1ZLHRoaXMuZXh0cmFfYmFzZT1wdCx0aGlzLmVsZW1zPW10LHRoaXMubWF4X2xlbmd0aD1ydCx0aGlzLmhhc19zdHJlZT1NJiZNLmxlbmd0aH1mdW5jdGlvbiBqKE0sWSl7dGhpcy5keW5fdHJlZT1NLHRoaXMubWF4X2NvZGU9MCx0aGlzLnN0YXRfZGVzYz1ZfWZ1bmN0aW9uIEcoTSl7cmV0dXJuIE08MjU2P1pbTV06WlsyNTYrKE0+Pj43KV19ZnVuY3Rpb24gYXQoTSxZKXtNLnBlbmRpbmdfYnVmW00ucGVuZGluZysrXT0yNTUmWSxNLnBlbmRpbmdfYnVmW00ucGVuZGluZysrXT1ZPj4+OCYyNTV9ZnVuY3Rpb24gSihNLFkscHQpe00uYmlfdmFsaWQ+UC1wdD8oTS5iaV9idWZ8PVk8PE0uYmlfdmFsaWQmNjU1MzUsYXQoTSxNLmJpX2J1ZiksTS5iaV9idWY9WT4+UC1NLmJpX3ZhbGlkLE0uYmlfdmFsaWQrPXB0LVApOihNLmJpX2J1Znw9WTw8TS5iaV92YWxpZCY2NTUzNSxNLmJpX3ZhbGlkKz1wdCl9ZnVuY3Rpb24gdHQoTSxZLHB0KXtKKE0scHRbMipZXSxwdFsyKlkrMV0pfWZ1bmN0aW9uIHl0KE0sWSl7Zm9yKHZhciBwdD0wO3B0fD0xJk0sTT4+Pj0xLHB0PDw9MSwwPC0tWTspO3JldHVybiBwdD4+PjF9ZnVuY3Rpb24gVHQoTSxZLHB0KXt2YXIgbXQscnQsZ3Q9bmV3IEFycmF5KGsrMSksQ3Q9MDtmb3IobXQ9MTttdDw9azttdCsrKWd0W210XT1DdD1DdCtwdFttdC0xXTw8MTtmb3IocnQ9MDtydDw9WTtydCsrKXt2YXIgeHQ9TVsyKnJ0KzFdO3h0IT09MCYmKE1bMipydF09eXQoZ3RbeHRdKysseHQpKX19ZnVuY3Rpb24gQXQoTSl7dmFyIFk7Zm9yKFk9MDtZPG07WSsrKU0uZHluX2x0cmVlWzIqWV09MDtmb3IoWT0wO1k8eTtZKyspTS5keW5fZHRyZWVbMipZXT0wO2ZvcihZPTA7WTxUO1krKylNLmJsX3RyZWVbMipZXT0wO00uZHluX2x0cmVlWzIqaF09MSxNLm9wdF9sZW49TS5zdGF0aWNfbGVuPTAsTS5sYXN0X2xpdD1NLm1hdGNoZXM9MH1mdW5jdGlvbiBrdChNKXs4PE0uYmlfdmFsaWQ/YXQoTSxNLmJpX2J1Zik6MDxNLmJpX3ZhbGlkJiYoTS5wZW5kaW5nX2J1ZltNLnBlbmRpbmcrK109TS5iaV9idWYpLE0uYmlfYnVmPTAsTS5iaV92YWxpZD0wfWZ1bmN0aW9uIEx0KE0sWSxwdCxtdCl7dmFyIHJ0PTIqWSxndD0yKnB0O3JldHVybiBNW3J0XTxNW2d0XXx8TVtydF09PT1NW2d0XSYmbXRbWV08PW10W3B0XX1mdW5jdGlvbiBCdChNLFkscHQpe2Zvcih2YXIgbXQ9TS5oZWFwW3B0XSxydD1wdDw8MTtydDw9TS5oZWFwX2xlbiYmKHJ0PE0uaGVhcF9sZW4mJkx0KFksTS5oZWFwW3J0KzFdLE0uaGVhcFtydF0sTS5kZXB0aCkmJnJ0KyssIUx0KFksbXQsTS5oZWFwW3J0XSxNLmRlcHRoKSk7KU0uaGVhcFtwdF09TS5oZWFwW3J0XSxwdD1ydCxydDw8PTE7TS5oZWFwW3B0XT1tdH1mdW5jdGlvbiAkdChNLFkscHQpe3ZhciBtdCxydCxndCxDdCx4dD0wO2lmKE0ubGFzdF9saXQhPT0wKWZvcig7bXQ9TS5wZW5kaW5nX2J1ZltNLmRfYnVmKzIqeHRdPDw4fE0ucGVuZGluZ19idWZbTS5kX2J1ZisyKnh0KzFdLHJ0PU0ucGVuZGluZ19idWZbTS5sX2J1Zit4dF0seHQrKyxtdD09PTA/dHQoTSxydCxZKToodHQoTSwoZ3Q9Z1tydF0pK2IrMSxZKSwoQ3Q9QltndF0pIT09MCYmSihNLHJ0LT1fW2d0XSxDdCksdHQoTSxndD1HKC0tbXQpLHB0KSwoQ3Q9dVtndF0pIT09MCYmSihNLG10LT1MW2d0XSxDdCkpLHh0PE0ubGFzdF9saXQ7KTt0dChNLGgsWSl9ZnVuY3Rpb24gS3QoTSxZKXt2YXIgcHQsbXQscnQsZ3Q9WS5keW5fdHJlZSxDdD1ZLnN0YXRfZGVzYy5zdGF0aWNfdHJlZSx4dD1ZLnN0YXRfZGVzYy5oYXNfc3RyZWUsYnQ9WS5zdGF0X2Rlc2MuZWxlbXMsenQ9LTE7Zm9yKE0uaGVhcF9sZW49MCxNLmhlYXBfbWF4PXcscHQ9MDtwdDxidDtwdCsrKWd0WzIqcHRdIT09MD8oTS5oZWFwWysrTS5oZWFwX2xlbl09enQ9cHQsTS5kZXB0aFtwdF09MCk6Z3RbMipwdCsxXT0wO2Zvcig7TS5oZWFwX2xlbjwyOylndFsyKihydD1NLmhlYXBbKytNLmhlYXBfbGVuXT16dDwyPysrenQ6MCldPTEsTS5kZXB0aFtydF09MCxNLm9wdF9sZW4tLSx4dCYmKE0uc3RhdGljX2xlbi09Q3RbMipydCsxXSk7Zm9yKFkubWF4X2NvZGU9enQscHQ9TS5oZWFwX2xlbj4+MTsxPD1wdDtwdC0tKUJ0KE0sZ3QscHQpO2ZvcihydD1idDtwdD1NLmhlYXBbMV0sTS5oZWFwWzFdPU0uaGVhcFtNLmhlYXBfbGVuLS1dLEJ0KE0sZ3QsMSksbXQ9TS5oZWFwWzFdLE0uaGVhcFstLU0uaGVhcF9tYXhdPXB0LE0uaGVhcFstLU0uaGVhcF9tYXhdPW10LGd0WzIqcnRdPWd0WzIqcHRdK2d0WzIqbXRdLE0uZGVwdGhbcnRdPShNLmRlcHRoW3B0XT49TS5kZXB0aFttdF0/TS5kZXB0aFtwdF06TS5kZXB0aFttdF0pKzEsZ3RbMipwdCsxXT1ndFsyKm10KzFdPXJ0LE0uaGVhcFsxXT1ydCsrLEJ0KE0sZ3QsMSksMjw9TS5oZWFwX2xlbjspO00uaGVhcFstLU0uaGVhcF9tYXhdPU0uaGVhcFsxXSxmdW5jdGlvbihVdCxwZSl7dmFyIHNyLHdlLFllLHRlLGJlLE9lLGRlPXBlLmR5bl90cmVlLHRuPXBlLm1heF9jb2RlLGdyPXBlLnN0YXRfZGVzYy5zdGF0aWNfdHJlZSxlbj1wZS5zdGF0X2Rlc2MuaGFzX3N0cmVlLHJuPXBlLnN0YXRfZGVzYy5leHRyYV9iaXRzLG5uPXBlLnN0YXRfZGVzYy5leHRyYV9iYXNlLFRlPXBlLnN0YXRfZGVzYy5tYXhfbGVuZ3RoLGplPTA7Zm9yKHRlPTA7dGU8PWs7dGUrKylVdC5ibF9jb3VudFt0ZV09MDtmb3IoZGVbMipVdC5oZWFwW1V0LmhlYXBfbWF4XSsxXT0wLHNyPVV0LmhlYXBfbWF4KzE7c3I8dztzcisrKVRlPCh0ZT1kZVsyKmRlWzIqKHdlPVV0LmhlYXBbc3JdKSsxXSsxXSsxKSYmKHRlPVRlLGplKyspLGRlWzIqd2UrMV09dGUsdG48d2V8fChVdC5ibF9jb3VudFt0ZV0rKyxiZT0wLG5uPD13ZSYmKGJlPXJuW3dlLW5uXSksT2U9ZGVbMip3ZV0sVXQub3B0X2xlbis9T2UqKHRlK2JlKSxlbiYmKFV0LnN0YXRpY19sZW4rPU9lKihnclsyKndlKzFdK2JlKSkpO2lmKGplIT09MCl7ZG97Zm9yKHRlPVRlLTE7VXQuYmxfY291bnRbdGVdPT09MDspdGUtLTtVdC5ibF9jb3VudFt0ZV0tLSxVdC5ibF9jb3VudFt0ZSsxXSs9MixVdC5ibF9jb3VudFtUZV0tLSxqZS09Mn13aGlsZSgwPGplKTtmb3IodGU9VGU7dGUhPT0wO3RlLS0pZm9yKHdlPVV0LmJsX2NvdW50W3RlXTt3ZSE9PTA7KXRuPChZZT1VdC5oZWFwWy0tc3JdKXx8KGRlWzIqWWUrMV0hPT10ZSYmKFV0Lm9wdF9sZW4rPSh0ZS1kZVsyKlllKzFdKSpkZVsyKlllXSxkZVsyKlllKzFdPXRlKSx3ZS0tKX19KE0sWSksVHQoZ3QsenQsTS5ibF9jb3VudCl9ZnVuY3Rpb24gRChNLFkscHQpe3ZhciBtdCxydCxndD0tMSxDdD1ZWzFdLHh0PTAsYnQ9Nyx6dD00O2ZvcihDdD09PTAmJihidD0xMzgsenQ9MyksWVsyKihwdCsxKSsxXT02NTUzNSxtdD0wO210PD1wdDttdCsrKXJ0PUN0LEN0PVlbMioobXQrMSkrMV0sKyt4dDxidCYmcnQ9PT1DdHx8KHh0PHp0P00uYmxfdHJlZVsyKnJ0XSs9eHQ6cnQhPT0wPyhydCE9PWd0JiZNLmJsX3RyZWVbMipydF0rKyxNLmJsX3RyZWVbMipvXSsrKTp4dDw9MTA/TS5ibF90cmVlWzIqZl0rKzpNLmJsX3RyZWVbMipDXSsrLGd0PXJ0LHp0PSh4dD0wKT09PUN0PyhidD0xMzgsMyk6cnQ9PT1DdD8oYnQ9NiwzKTooYnQ9Nyw0KSl9ZnVuY3Rpb24gdXQoTSxZLHB0KXt2YXIgbXQscnQsZ3Q9LTEsQ3Q9WVsxXSx4dD0wLGJ0PTcsenQ9NDtmb3IoQ3Q9PT0wJiYoYnQ9MTM4LHp0PTMpLG10PTA7bXQ8PXB0O210KyspaWYocnQ9Q3QsQ3Q9WVsyKihtdCsxKSsxXSwhKCsreHQ8YnQmJnJ0PT09Q3QpKXtpZih4dDx6dClmb3IoO3R0KE0scnQsTS5ibF90cmVlKSwtLXh0IT0wOyk7ZWxzZSBydCE9PTA/KHJ0IT09Z3QmJih0dChNLHJ0LE0uYmxfdHJlZSkseHQtLSksdHQoTSxvLE0uYmxfdHJlZSksSihNLHh0LTMsMikpOnh0PD0xMD8odHQoTSxmLE0uYmxfdHJlZSksSihNLHh0LTMsMykpOih0dChNLEMsTS5ibF90cmVlKSxKKE0seHQtMTEsNykpO2d0PXJ0LHp0PSh4dD0wKT09PUN0PyhidD0xMzgsMyk6cnQ9PT1DdD8oYnQ9NiwzKTooYnQ9Nyw0KX19bChMKTt2YXIgb3Q9ITE7ZnVuY3Rpb24gSChNLFkscHQsbXQpe0ooTSwoYzw8MSkrKG10PzE6MCksMyksZnVuY3Rpb24ocnQsZ3QsQ3QseHQpe2t0KHJ0KSx4dCYmKGF0KHJ0LEN0KSxhdChydCx+Q3QpKSxuLmFycmF5U2V0KHJ0LnBlbmRpbmdfYnVmLHJ0LndpbmRvdyxndCxDdCxydC5wZW5kaW5nKSxydC5wZW5kaW5nKz1DdH0oTSxZLHB0LCEwKX1yLl90cl9pbml0PWZ1bmN0aW9uKE0pe290fHwoZnVuY3Rpb24oKXt2YXIgWSxwdCxtdCxydCxndCxDdD1uZXcgQXJyYXkoaysxKTtmb3IocnQ9bXQ9MDtydDxwLTE7cnQrKylmb3IoX1tydF09bXQsWT0wO1k8MTw8QltydF07WSsrKWdbbXQrK109cnQ7Zm9yKGdbbXQtMV09cnQscnQ9Z3Q9MDtydDwxNjtydCsrKWZvcihMW3J0XT1ndCxZPTA7WTwxPDx1W3J0XTtZKyspWltndCsrXT1ydDtmb3IoZ3Q+Pj03O3J0PHk7cnQrKylmb3IoTFtydF09Z3Q8PDcsWT0wO1k8MTw8dVtydF0tNztZKyspWlsyNTYrZ3QrK109cnQ7Zm9yKHB0PTA7cHQ8PWs7cHQrKylDdFtwdF09MDtmb3IoWT0wO1k8PTE0MzspZXRbMipZKzFdPTgsWSsrLEN0WzhdKys7Zm9yKDtZPD0yNTU7KWV0WzIqWSsxXT05LFkrKyxDdFs5XSsrO2Zvcig7WTw9Mjc5OylldFsyKlkrMV09NyxZKyssQ3RbN10rKztmb3IoO1k8PTI4NzspZXRbMipZKzFdPTgsWSsrLEN0WzhdKys7Zm9yKFR0KGV0LG0rMSxDdCksWT0wO1k8eTtZKyspT1syKlkrMV09NSxPWzIqWV09eXQoWSw1KTtTPW5ldyBYKGV0LEIsYisxLG0sayksTj1uZXcgWChPLHUsMCx5LGspLFI9bmV3IFgobmV3IEFycmF5KDApLHosMCxULEYpfSgpLG90PSEwKSxNLmxfZGVzYz1uZXcgaihNLmR5bl9sdHJlZSxTKSxNLmRfZGVzYz1uZXcgaihNLmR5bl9kdHJlZSxOKSxNLmJsX2Rlc2M9bmV3IGooTS5ibF90cmVlLFIpLE0uYmlfYnVmPTAsTS5iaV92YWxpZD0wLEF0KE0pfSxyLl90cl9zdG9yZWRfYmxvY2s9SCxyLl90cl9mbHVzaF9ibG9jaz1mdW5jdGlvbihNLFkscHQsbXQpe3ZhciBydCxndCxDdD0wOzA8TS5sZXZlbD8oTS5zdHJtLmRhdGFfdHlwZT09PTImJihNLnN0cm0uZGF0YV90eXBlPWZ1bmN0aW9uKHh0KXt2YXIgYnQsenQ9NDA5MzYyNDQ0Nztmb3IoYnQ9MDtidDw9MzE7YnQrKyx6dD4+Pj0xKWlmKDEmenQmJnh0LmR5bl9sdHJlZVsyKmJ0XSE9PTApcmV0dXJuIHM7aWYoeHQuZHluX2x0cmVlWzE4XSE9PTB8fHh0LmR5bl9sdHJlZVsyMF0hPT0wfHx4dC5keW5fbHRyZWVbMjZdIT09MClyZXR1cm4gYTtmb3IoYnQ9MzI7YnQ8YjtidCsrKWlmKHh0LmR5bl9sdHJlZVsyKmJ0XSE9PTApcmV0dXJuIGE7cmV0dXJuIHN9KE0pKSxLdChNLE0ubF9kZXNjKSxLdChNLE0uZF9kZXNjKSxDdD1mdW5jdGlvbih4dCl7dmFyIGJ0O2ZvcihEKHh0LHh0LmR5bl9sdHJlZSx4dC5sX2Rlc2MubWF4X2NvZGUpLEQoeHQseHQuZHluX2R0cmVlLHh0LmRfZGVzYy5tYXhfY29kZSksS3QoeHQseHQuYmxfZGVzYyksYnQ9VC0xOzM8PWJ0JiZ4dC5ibF90cmVlWzIqcVtidF0rMV09PT0wO2J0LS0pO3JldHVybiB4dC5vcHRfbGVuKz0zKihidCsxKSs1KzUrNCxidH0oTSkscnQ9TS5vcHRfbGVuKzMrNz4+PjMsKGd0PU0uc3RhdGljX2xlbiszKzc+Pj4zKTw9cnQmJihydD1ndCkpOnJ0PWd0PXB0KzUscHQrNDw9cnQmJlkhPT0tMT9IKE0sWSxwdCxtdCk6TS5zdHJhdGVneT09PTR8fGd0PT09cnQ/KEooTSwyKyhtdD8xOjApLDMpLCR0KE0sZXQsTykpOihKKE0sNCsobXQ/MTowKSwzKSxmdW5jdGlvbih4dCxidCx6dCxVdCl7dmFyIHBlO2ZvcihKKHh0LGJ0LTI1Nyw1KSxKKHh0LHp0LTEsNSksSih4dCxVdC00LDQpLHBlPTA7cGU8VXQ7cGUrKylKKHh0LHh0LmJsX3RyZWVbMipxW3BlXSsxXSwzKTt1dCh4dCx4dC5keW5fbHRyZWUsYnQtMSksdXQoeHQseHQuZHluX2R0cmVlLHp0LTEpfShNLE0ubF9kZXNjLm1heF9jb2RlKzEsTS5kX2Rlc2MubWF4X2NvZGUrMSxDdCsxKSwkdChNLE0uZHluX2x0cmVlLE0uZHluX2R0cmVlKSksQXQoTSksbXQmJmt0KE0pfSxyLl90cl90YWxseT1mdW5jdGlvbihNLFkscHQpe3JldHVybiBNLnBlbmRpbmdfYnVmW00uZF9idWYrMipNLmxhc3RfbGl0XT1ZPj4+OCYyNTUsTS5wZW5kaW5nX2J1ZltNLmRfYnVmKzIqTS5sYXN0X2xpdCsxXT0yNTUmWSxNLnBlbmRpbmdfYnVmW00ubF9idWYrTS5sYXN0X2xpdF09MjU1JnB0LE0ubGFzdF9saXQrKyxZPT09MD9NLmR5bl9sdHJlZVsyKnB0XSsrOihNLm1hdGNoZXMrKyxZLS0sTS5keW5fbHRyZWVbMiooZ1twdF0rYisxKV0rKyxNLmR5bl9kdHJlZVsyKkcoWSldKyspLE0ubGFzdF9saXQ9PT1NLmxpdF9idWZzaXplLTF9LHIuX3RyX2FsaWduPWZ1bmN0aW9uKE0pe0ooTSwyLDMpLHR0KE0saCxldCksZnVuY3Rpb24oWSl7WS5iaV92YWxpZD09PTE2PyhhdChZLFkuYmlfYnVmKSxZLmJpX2J1Zj0wLFkuYmlfdmFsaWQ9MCk6ODw9WS5iaV92YWxpZCYmKFkucGVuZGluZ19idWZbWS5wZW5kaW5nKytdPTI1NSZZLmJpX2J1ZixZLmJpX2J1Zj4+PTgsWS5iaV92YWxpZC09OCl9KE0pfX0seyIuLi91dGlscy9jb21tb24iOjQxfV0sNTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dGhpcy5pbnB1dD1udWxsLHRoaXMubmV4dF9pbj0wLHRoaXMuYXZhaWxfaW49MCx0aGlzLnRvdGFsX2luPTAsdGhpcy5vdXRwdXQ9bnVsbCx0aGlzLm5leHRfb3V0PTAsdGhpcy5hdmFpbF9vdXQ9MCx0aGlzLnRvdGFsX291dD0wLHRoaXMubXNnPSIiLHRoaXMuc3RhdGU9bnVsbCx0aGlzLmRhdGFfdHlwZT0yLHRoaXMuYWRsZXI9MH19LHt9XSw1NDpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihuKXsoZnVuY3Rpb24ocyxhKXsidXNlIHN0cmljdCI7aWYoIXMuc2V0SW1tZWRpYXRlKXt2YXIgbCxjLHAsYixtPTEseT17fSxUPSExLHc9cy5kb2N1bWVudCxrPU9iamVjdC5nZXRQcm90b3R5cGVPZiYmT2JqZWN0LmdldFByb3RvdHlwZU9mKHMpO2s9ayYmay5zZXRUaW1lb3V0P2s6cyxsPXt9LnRvU3RyaW5nLmNhbGwocy5wcm9jZXNzKT09PSJbb2JqZWN0IHByb2Nlc3NdIj9mdW5jdGlvbihvKXtwcm9jZXNzLm5leHRUaWNrKGZ1bmN0aW9uKCl7RihvKX0pfTpmdW5jdGlvbigpe2lmKHMucG9zdE1lc3NhZ2UmJiFzLmltcG9ydFNjcmlwdHMpe3ZhciBvPSEwLGY9cy5vbm1lc3NhZ2U7cmV0dXJuIHMub25tZXNzYWdlPWZ1bmN0aW9uKCl7bz0hMX0scy5wb3N0TWVzc2FnZSgiIiwiKiIpLHMub25tZXNzYWdlPWYsb319KCk/KGI9InNldEltbWVkaWF0ZSQiK01hdGgucmFuZG9tKCkrIiQiLHMuYWRkRXZlbnRMaXN0ZW5lcj9zLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGgsITEpOnMuYXR0YWNoRXZlbnQoIm9ubWVzc2FnZSIsaCksZnVuY3Rpb24obyl7cy5wb3N0TWVzc2FnZShiK28sIioiKX0pOnMuTWVzc2FnZUNoYW5uZWw/KChwPW5ldyBNZXNzYWdlQ2hhbm5lbCkucG9ydDEub25tZXNzYWdlPWZ1bmN0aW9uKG8pe0Yoby5kYXRhKX0sZnVuY3Rpb24obyl7cC5wb3J0Mi5wb3N0TWVzc2FnZShvKX0pOncmJiJvbnJlYWR5c3RhdGVjaGFuZ2UiaW4gdy5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKT8oYz13LmRvY3VtZW50RWxlbWVudCxmdW5jdGlvbihvKXt2YXIgZj13LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2Yub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7RihvKSxmLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGMucmVtb3ZlQ2hpbGQoZiksZj1udWxsfSxjLmFwcGVuZENoaWxkKGYpfSk6ZnVuY3Rpb24obyl7c2V0VGltZW91dChGLDAsbyl9LGsuc2V0SW1tZWRpYXRlPWZ1bmN0aW9uKG8pe3R5cGVvZiBvIT0iZnVuY3Rpb24iJiYobz1uZXcgRnVuY3Rpb24oIiIrbykpO2Zvcih2YXIgZj1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKSxDPTA7QzxmLmxlbmd0aDtDKyspZltDXT1hcmd1bWVudHNbQysxXTt2YXIgQj17Y2FsbGJhY2s6byxhcmdzOmZ9O3JldHVybiB5W21dPUIsbChtKSxtKyt9LGsuY2xlYXJJbW1lZGlhdGU9UH1mdW5jdGlvbiBQKG8pe2RlbGV0ZSB5W29dfWZ1bmN0aW9uIEYobyl7aWYoVClzZXRUaW1lb3V0KEYsMCxvKTtlbHNle3ZhciBmPXlbb107aWYoZil7VD0hMDt0cnl7KGZ1bmN0aW9uKEMpe3ZhciBCPUMuY2FsbGJhY2ssdT1DLmFyZ3M7c3dpdGNoKHUubGVuZ3RoKXtjYXNlIDA6QigpO2JyZWFrO2Nhc2UgMTpCKHVbMF0pO2JyZWFrO2Nhc2UgMjpCKHVbMF0sdVsxXSk7YnJlYWs7Y2FzZSAzOkIodVswXSx1WzFdLHVbMl0pO2JyZWFrO2RlZmF1bHQ6Qi5hcHBseShhLHUpfX0pKGYpfWZpbmFsbHl7UChvKSxUPSExfX19fWZ1bmN0aW9uIGgobyl7by5zb3VyY2U9PT1zJiZ0eXBlb2Ygby5kYXRhPT0ic3RyaW5nIiYmby5kYXRhLmluZGV4T2YoYik9PT0wJiZGKCtvLmRhdGEuc2xpY2UoYi5sZW5ndGgpKX19KSh0eXBlb2Ygc2VsZj4idSI/bj09PXZvaWQgMD90aGlzOm46c2VsZil9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9LHt9XX0se30sWzEwXSkoMTApfSl9KTt2YXIgaWU9Q2EoKFNhLGhuKT0+eyhmdW5jdGlvbih0LGUpeyJ1c2Ugc3RyaWN0Ijt0eXBlb2YgaG49PSJvYmplY3QiJiZ0eXBlb2YgaG4uZXhwb3J0cz09Im9iamVjdCI/aG4uZXhwb3J0cz10LmRvY3VtZW50P2UodCwhMCk6ZnVuY3Rpb24ocil7aWYoIXIuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIGUocil9OmUodCl9KSh0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6U2EsZnVuY3Rpb24odCxlKXsidXNlIHN0cmljdCI7dmFyIHI9W10sbj1PYmplY3QuZ2V0UHJvdG90eXBlT2Yscz1yLnNsaWNlLGE9ci5mbGF0P2Z1bmN0aW9uKGkpe3JldHVybiByLmZsYXQuY2FsbChpKX06ZnVuY3Rpb24oaSl7cmV0dXJuIHIuY29uY2F0LmFwcGx5KFtdLGkpfSxsPXIucHVzaCxjPXIuaW5kZXhPZixwPXt9LGI9cC50b1N0cmluZyxtPXAuaGFzT3duUHJvcGVydHkseT1tLnRvU3RyaW5nLFQ9eS5jYWxsKE9iamVjdCksdz17fSxrPWZ1bmN0aW9uKGQpe3JldHVybiB0eXBlb2YgZD09ImZ1bmN0aW9uIiYmdHlwZW9mIGQubm9kZVR5cGUhPSJudW1iZXIiJiZ0eXBlb2YgZC5pdGVtIT0iZnVuY3Rpb24ifSxQPWZ1bmN0aW9uKGQpe3JldHVybiBkIT1udWxsJiZkPT09ZC53aW5kb3d9LEY9dC5kb2N1bWVudCxoPXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH07ZnVuY3Rpb24gbyhpLGQsdil7dj12fHxGO3ZhciB4LEEsST12LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKEkudGV4dD1pLGQpZm9yKHggaW4gaClBPWRbeF18fGQuZ2V0QXR0cmlidXRlJiZkLmdldEF0dHJpYnV0ZSh4KSxBJiZJLnNldEF0dHJpYnV0ZSh4LEEpO3YuaGVhZC5hcHBlbmRDaGlsZChJKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKEkpfWZ1bmN0aW9uIGYoaSl7cmV0dXJuIGk9PW51bGw/aSsiIjp0eXBlb2YgaT09Im9iamVjdCJ8fHR5cGVvZiBpPT0iZnVuY3Rpb24iP3BbYi5jYWxsKGkpXXx8Im9iamVjdCI6dHlwZW9mIGl9dmFyIEM9IjMuNy4xIixCPS9IVE1MJC9pLHU9ZnVuY3Rpb24oaSxkKXtyZXR1cm4gbmV3IHUuZm4uaW5pdChpLGQpfTt1LmZuPXUucHJvdG90eXBlPXtqcXVlcnk6Qyxjb25zdHJ1Y3Rvcjp1LGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gcy5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oaSl7cmV0dXJuIGk9PW51bGw/cy5jYWxsKHRoaXMpOmk8MD90aGlzW2krdGhpcy5sZW5ndGhdOnRoaXNbaV19LHB1c2hTdGFjazpmdW5jdGlvbihpKXt2YXIgZD11Lm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxpKTtyZXR1cm4gZC5wcmV2T2JqZWN0PXRoaXMsZH0sZWFjaDpmdW5jdGlvbihpKXtyZXR1cm4gdS5lYWNoKHRoaXMsaSl9LG1hcDpmdW5jdGlvbihpKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sodS5tYXAodGhpcyxmdW5jdGlvbihkLHYpe3JldHVybiBpLmNhbGwoZCx2LGQpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhzLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGV2ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sodS5ncmVwKHRoaXMsZnVuY3Rpb24oaSxkKXtyZXR1cm4oZCsxKSUyfSkpfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sodS5ncmVwKHRoaXMsZnVuY3Rpb24oaSxkKXtyZXR1cm4gZCUyfSkpfSxlcTpmdW5jdGlvbihpKXt2YXIgZD10aGlzLmxlbmd0aCx2PStpKyhpPDA/ZDowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2sodj49MCYmdjxkP1t0aGlzW3ZdXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDpsLHNvcnQ6ci5zb3J0LHNwbGljZTpyLnNwbGljZX0sdS5leHRlbmQ9dS5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgaSxkLHYseCxBLEksRT1hcmd1bWVudHNbMF18fHt9LCQ9MSxVPWFyZ3VtZW50cy5sZW5ndGgsUT0hMTtmb3IodHlwZW9mIEU9PSJib29sZWFuIiYmKFE9RSxFPWFyZ3VtZW50c1skXXx8e30sJCsrKSx0eXBlb2YgRSE9Im9iamVjdCImJiFrKEUpJiYoRT17fSksJD09PVUmJihFPXRoaXMsJC0tKTskPFU7JCsrKWlmKChpPWFyZ3VtZW50c1skXSkhPW51bGwpZm9yKGQgaW4gaSl4PWlbZF0sIShkPT09Il9fcHJvdG9fXyJ8fEU9PT14KSYmKFEmJngmJih1LmlzUGxhaW5PYmplY3QoeCl8fChBPUFycmF5LmlzQXJyYXkoeCkpKT8odj1FW2RdLEEmJiFBcnJheS5pc0FycmF5KHYpP0k9W106IUEmJiF1LmlzUGxhaW5PYmplY3Qodik/ST17fTpJPXYsQT0hMSxFW2RdPXUuZXh0ZW5kKFEsSSx4KSk6eCE9PXZvaWQgMCYmKEVbZF09eCkpO3JldHVybiBFfSx1LmV4dGVuZCh7ZXhwYW5kbzoialF1ZXJ5IisoQytNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKC9cRC9nLCIiKSxpc1JlYWR5OiEwLGVycm9yOmZ1bmN0aW9uKGkpe3Rocm93IG5ldyBFcnJvcihpKX0sbm9vcDpmdW5jdGlvbigpe30saXNQbGFpbk9iamVjdDpmdW5jdGlvbihpKXt2YXIgZCx2O3JldHVybiFpfHxiLmNhbGwoaSkhPT0iW29iamVjdCBPYmplY3RdIj8hMTooZD1uKGkpLGQ/KHY9bS5jYWxsKGQsImNvbnN0cnVjdG9yIikmJmQuY29uc3RydWN0b3IsdHlwZW9mIHY9PSJmdW5jdGlvbiImJnkuY2FsbCh2KT09PVQpOiEwKX0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihpKXt2YXIgZDtmb3IoZCBpbiBpKXJldHVybiExO3JldHVybiEwfSxnbG9iYWxFdmFsOmZ1bmN0aW9uKGksZCx2KXtvKGkse25vbmNlOmQmJmQubm9uY2V9LHYpfSxlYWNoOmZ1bmN0aW9uKGksZCl7dmFyIHYseD0wO2lmKHooaSkpZm9yKHY9aS5sZW5ndGg7eDx2JiZkLmNhbGwoaVt4XSx4LGlbeF0pIT09ITE7eCsrKTtlbHNlIGZvcih4IGluIGkpaWYoZC5jYWxsKGlbeF0seCxpW3hdKT09PSExKWJyZWFrO3JldHVybiBpfSx0ZXh0OmZ1bmN0aW9uKGkpe3ZhciBkLHY9IiIseD0wLEE9aS5ub2RlVHlwZTtpZighQSlmb3IoO2Q9aVt4KytdOyl2Kz11LnRleHQoZCk7cmV0dXJuIEE9PT0xfHxBPT09MTE/aS50ZXh0Q29udGVudDpBPT09OT9pLmRvY3VtZW50RWxlbWVudC50ZXh0Q29udGVudDpBPT09M3x8QT09PTQ/aS5ub2RlVmFsdWU6dn0sbWFrZUFycmF5OmZ1bmN0aW9uKGksZCl7dmFyIHY9ZHx8W107cmV0dXJuIGkhPW51bGwmJih6KE9iamVjdChpKSk/dS5tZXJnZSh2LHR5cGVvZiBpPT0ic3RyaW5nIj9baV06aSk6bC5jYWxsKHYsaSkpLHZ9LGluQXJyYXk6ZnVuY3Rpb24oaSxkLHYpe3JldHVybiBkPT1udWxsPy0xOmMuY2FsbChkLGksdil9LGlzWE1MRG9jOmZ1bmN0aW9uKGkpe3ZhciBkPWkmJmkubmFtZXNwYWNlVVJJLHY9aSYmKGkub3duZXJEb2N1bWVudHx8aSkuZG9jdW1lbnRFbGVtZW50O3JldHVybiFCLnRlc3QoZHx8diYmdi5ub2RlTmFtZXx8IkhUTUwiKX0sbWVyZ2U6ZnVuY3Rpb24oaSxkKXtmb3IodmFyIHY9K2QubGVuZ3RoLHg9MCxBPWkubGVuZ3RoO3g8djt4KyspaVtBKytdPWRbeF07cmV0dXJuIGkubGVuZ3RoPUEsaX0sZ3JlcDpmdW5jdGlvbihpLGQsdil7Zm9yKHZhciB4LEE9W10sST0wLEU9aS5sZW5ndGgsJD0hdjtJPEU7SSsrKXg9IWQoaVtJXSxJKSx4IT09JCYmQS5wdXNoKGlbSV0pO3JldHVybiBBfSxtYXA6ZnVuY3Rpb24oaSxkLHYpe3ZhciB4LEEsST0wLEU9W107aWYoeihpKSlmb3IoeD1pLmxlbmd0aDtJPHg7SSsrKUE9ZChpW0ldLEksdiksQSE9bnVsbCYmRS5wdXNoKEEpO2Vsc2UgZm9yKEkgaW4gaSlBPWQoaVtJXSxJLHYpLEEhPW51bGwmJkUucHVzaChBKTtyZXR1cm4gYShFKX0sZ3VpZDoxLHN1cHBvcnQ6d30pLHR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJih1LmZuW1N5bWJvbC5pdGVyYXRvcl09cltTeW1ib2wuaXRlcmF0b3JdKSx1LmVhY2goIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3QgRXJyb3IgU3ltYm9sIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGksZCl7cFsiW29iamVjdCAiK2QrIl0iXT1kLnRvTG93ZXJDYXNlKCl9KTtmdW5jdGlvbiB6KGkpe3ZhciBkPSEhaSYmImxlbmd0aCJpbiBpJiZpLmxlbmd0aCx2PWYoaSk7cmV0dXJuIGsoaSl8fFAoaSk/ITE6dj09PSJhcnJheSJ8fGQ9PT0wfHx0eXBlb2YgZD09Im51bWJlciImJmQ+MCYmZC0xIGluIGl9ZnVuY3Rpb24gcShpLGQpe3JldHVybiBpLm5vZGVOYW1lJiZpLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1kLnRvTG93ZXJDYXNlKCl9dmFyIGV0PXIucG9wLE89ci5zb3J0LFo9ci5zcGxpY2UsZz0iW1xceDIwXFx0XFxyXFxuXFxmXSIsXz1uZXcgUmVnRXhwKCJeIitnKyIrfCgoPzpefFteXFxcXF0pKD86XFxcXC4pKikiK2crIiskIiwiZyIpO3UuY29udGFpbnM9ZnVuY3Rpb24oaSxkKXt2YXIgdj1kJiZkLnBhcmVudE5vZGU7cmV0dXJuIGk9PT12fHwhISh2JiZ2Lm5vZGVUeXBlPT09MSYmKGkuY29udGFpbnM/aS5jb250YWlucyh2KTppLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiZpLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHYpJjE2KSl9O3ZhciBTPS8oW1wwLVx4MWZceDdmXXxeLT9cZCl8Xi0kfFteXHg4MC1cdUZGRkZcdy1dL2c7ZnVuY3Rpb24gTihpLGQpe3JldHVybiBkP2k9PT0iXDAiPyJcdUZGRkQiOmkuc2xpY2UoMCwtMSkrIlxcIitpLmNoYXJDb2RlQXQoaS5sZW5ndGgtMSkudG9TdHJpbmcoMTYpKyIgIjoiXFwiK2l9dS5lc2NhcGVTZWxlY3Rvcj1mdW5jdGlvbihpKXtyZXR1cm4oaSsiIikucmVwbGFjZShTLE4pfTt2YXIgUj1GLEw9bDsoZnVuY3Rpb24oKXt2YXIgaSxkLHYseCxBLEk9TCxFLCQsVSxRLGR0LGZ0PXUuZXhwYW5kbyxpdD0wLHd0PTAsRXQ9ZG4oKSxHdD1kbigpLE10PWRuKCksbGU9ZG4oKSxzZT1mdW5jdGlvbihWLEspe3JldHVybiBWPT09SyYmKEE9ITApLDB9LE1lPSJjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZCIsVmU9Iig/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9IitnKyI/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXDAtXFx4N2ZdKSsiLHF0PSJcXFsiK2crIiooIitWZSsiKSg/OiIrZysiKihbKl4kfCF+XT89KSIrZytgKig/OicoKD86XFxcXC58W15cXFxcJ10pKiknfCIoKD86XFxcXC58W15cXFxcIl0pKikifChgK1ZlKyIpKXwpIitnKyIqXFxdIixkcj0iOigiK1ZlK2ApKD86XFwoKCgnKCg/OlxcXFwufFteXFxcXCddKSopJ3wiKCg/OlxcXFwufFteXFxcXCJdKSopIil8KCg/OlxcXFwufFteXFxcXCgpW1xcXV18YCtxdCsiKSopfC4qKVxcKXwpIixYdD1uZXcgUmVnRXhwKGcrIisiLCJnIikscmU9bmV3IFJlZ0V4cCgiXiIrZysiKiwiK2crIioiKSxNcj1uZXcgUmVnRXhwKCJeIitnKyIqKFs+K35dfCIrZysiKSIrZysiKiIpLFluPW5ldyBSZWdFeHAoZysifD4iKSxIZT1uZXcgUmVnRXhwKGRyKSxWcj1uZXcgUmVnRXhwKCJeIitWZSsiJCIpLFdlPXtJRDpuZXcgUmVnRXhwKCJeIygiK1ZlKyIpIiksQ0xBU1M6bmV3IFJlZ0V4cCgiXlxcLigiK1ZlKyIpIiksVEFHOm5ldyBSZWdFeHAoIl4oIitWZSsifFsqXSkiKSxBVFRSOm5ldyBSZWdFeHAoIl4iK3F0KSxQU0VVRE86bmV3IFJlZ0V4cCgiXiIrZHIpLENISUxEOm5ldyBSZWdFeHAoIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcKCIrZysiKihldmVufG9kZHwoKFsrLV18KShcXGQqKW58KSIrZysiKig/OihbKy1dfCkiK2crIiooXFxkKyl8KSkiK2crIipcXCl8KSIsImkiKSxib29sOm5ldyBSZWdFeHAoIl4oPzoiK01lKyIpJCIsImkiKSxuZWVkc0NvbnRleHQ6bmV3IFJlZ0V4cCgiXiIrZysiKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFwoIitnKyIqKCg/Oi1cXGQpP1xcZCopIitnKyIqXFwpfCkoPz1bXi1dfCQpIiwiaSIpfSxRZT0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLEplPS9eaFxkJC9pLFNlPS9eKD86IyhbXHctXSspfChcdyspfFwuKFtcdy1dKykpJC8sUW49L1srfl0vLFhlPW5ldyBSZWdFeHAoIlxcXFxbXFxkYS1mQS1GXXsxLDZ9IitnKyI/fFxcXFwoW15cXHJcXG5cXGZdKSIsImciKSwkZT1mdW5jdGlvbihWLEspe3ZhciBudD0iMHgiK1Yuc2xpY2UoMSktNjU1MzY7cmV0dXJuIEt8fChudDwwP1N0cmluZy5mcm9tQ2hhckNvZGUobnQrNjU1MzYpOlN0cmluZy5mcm9tQ2hhckNvZGUobnQ+PjEwfDU1Mjk2LG50JjEwMjN8NTYzMjApKX0sU289ZnVuY3Rpb24oKXt0cigpfSxEbz1jbihmdW5jdGlvbihWKXtyZXR1cm4gVi5kaXNhYmxlZD09PSEwJiZxKFYsImZpZWxkc2V0Iil9LHtkaXI6InBhcmVudE5vZGUiLG5leHQ6ImxlZ2VuZCJ9KTtmdW5jdGlvbiBBbygpe3RyeXtyZXR1cm4gRS5hY3RpdmVFbGVtZW50fWNhdGNoe319dHJ5e0kuYXBwbHkocj1zLmNhbGwoUi5jaGlsZE5vZGVzKSxSLmNoaWxkTm9kZXMpLHJbUi5jaGlsZE5vZGVzLmxlbmd0aF0ubm9kZVR5cGV9Y2F0Y2h7ST17YXBwbHk6ZnVuY3Rpb24oSyxudCl7TC5hcHBseShLLHMuY2FsbChudCkpfSxjYWxsOmZ1bmN0aW9uKEspe0wuYXBwbHkoSyxzLmNhbGwoYXJndW1lbnRzLDEpKX19fWZ1bmN0aW9uIFl0KFYsSyxudCxsdCl7dmFyIGN0LF90LFN0LFB0LER0LFZ0LE50LE90PUsmJksub3duZXJEb2N1bWVudCxIdD1LP0subm9kZVR5cGU6OTtpZihudD1udHx8W10sdHlwZW9mIFYhPSJzdHJpbmcifHwhVnx8SHQhPT0xJiZIdCE9PTkmJkh0IT09MTEpcmV0dXJuIG50O2lmKCFsdCYmKHRyKEspLEs9S3x8RSxVKSl7aWYoSHQhPT0xMSYmKER0PVNlLmV4ZWMoVikpKWlmKGN0PUR0WzFdKXtpZihIdD09PTkpaWYoU3Q9Sy5nZXRFbGVtZW50QnlJZChjdCkpe2lmKFN0LmlkPT09Y3QpcmV0dXJuIEkuY2FsbChudCxTdCksbnR9ZWxzZSByZXR1cm4gbnQ7ZWxzZSBpZihPdCYmKFN0PU90LmdldEVsZW1lbnRCeUlkKGN0KSkmJll0LmNvbnRhaW5zKEssU3QpJiZTdC5pZD09PWN0KXJldHVybiBJLmNhbGwobnQsU3QpLG50fWVsc2V7aWYoRHRbMl0pcmV0dXJuIEkuYXBwbHkobnQsSy5nZXRFbGVtZW50c0J5VGFnTmFtZShWKSksbnQ7aWYoKGN0PUR0WzNdKSYmSy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXJldHVybiBJLmFwcGx5KG50LEsuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShjdCkpLG50fWlmKCFsZVtWKyIgIl0mJighUXx8IVEudGVzdChWKSkpe2lmKE50PVYsT3Q9SyxIdD09PTEmJihZbi50ZXN0KFYpfHxNci50ZXN0KFYpKSl7Zm9yKE90PVFuLnRlc3QoVikmJkpuKEsucGFyZW50Tm9kZSl8fEssKE90IT1LfHwhdy5zY29wZSkmJigoUHQ9Sy5nZXRBdHRyaWJ1dGUoImlkIikpP1B0PXUuZXNjYXBlU2VsZWN0b3IoUHQpOksuc2V0QXR0cmlidXRlKCJpZCIsUHQ9ZnQpKSxWdD1IcihWKSxfdD1WdC5sZW5ndGg7X3QtLTspVnRbX3RdPShQdD8iIyIrUHQ6IjpzY29wZSIpKyIgIit1bihWdFtfdF0pO050PVZ0LmpvaW4oIiwiKX10cnl7cmV0dXJuIEkuYXBwbHkobnQsT3QucXVlcnlTZWxlY3RvckFsbChOdCkpLG50fWNhdGNoe2xlKFYsITApfWZpbmFsbHl7UHQ9PT1mdCYmSy5yZW1vdmVBdHRyaWJ1dGUoImlkIil9fX1yZXR1cm4geGEoVi5yZXBsYWNlKF8sIiQxIiksSyxudCxsdCl9ZnVuY3Rpb24gZG4oKXt2YXIgVj1bXTtmdW5jdGlvbiBLKG50LGx0KXtyZXR1cm4gVi5wdXNoKG50KyIgIik+ZC5jYWNoZUxlbmd0aCYmZGVsZXRlIEtbVi5zaGlmdCgpXSxLW250KyIgIl09bHR9cmV0dXJuIEt9ZnVuY3Rpb24gTGUoVil7cmV0dXJuIFZbZnRdPSEwLFZ9ZnVuY3Rpb24gQ3IoVil7dmFyIEs9RS5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpO3RyeXtyZXR1cm4hIVYoSyl9Y2F0Y2h7cmV0dXJuITF9ZmluYWxseXtLLnBhcmVudE5vZGUmJksucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChLKSxLPW51bGx9fWZ1bmN0aW9uIElvKFYpe3JldHVybiBmdW5jdGlvbihLKXtyZXR1cm4gcShLLCJpbnB1dCIpJiZLLnR5cGU9PT1WfX1mdW5jdGlvbiBQbyhWKXtyZXR1cm4gZnVuY3Rpb24oSyl7cmV0dXJuKHEoSywiaW5wdXQiKXx8cShLLCJidXR0b24iKSkmJksudHlwZT09PVZ9fWZ1bmN0aW9uIHlhKFYpe3JldHVybiBmdW5jdGlvbihLKXtyZXR1cm4iZm9ybSJpbiBLP0sucGFyZW50Tm9kZSYmSy5kaXNhYmxlZD09PSExPyJsYWJlbCJpbiBLPyJsYWJlbCJpbiBLLnBhcmVudE5vZGU/Sy5wYXJlbnROb2RlLmRpc2FibGVkPT09VjpLLmRpc2FibGVkPT09VjpLLmlzRGlzYWJsZWQ9PT1WfHxLLmlzRGlzYWJsZWQhPT0hViYmRG8oSyk9PT1WOksuZGlzYWJsZWQ9PT1WOiJsYWJlbCJpbiBLP0suZGlzYWJsZWQ9PT1WOiExfX1mdW5jdGlvbiB1cihWKXtyZXR1cm4gTGUoZnVuY3Rpb24oSyl7cmV0dXJuIEs9K0ssTGUoZnVuY3Rpb24obnQsbHQpe2Zvcih2YXIgY3QsX3Q9VihbXSxudC5sZW5ndGgsSyksU3Q9X3QubGVuZ3RoO1N0LS07KW50W2N0PV90W1N0XV0mJihudFtjdF09IShsdFtjdF09bnRbY3RdKSl9KX0pfWZ1bmN0aW9uIEpuKFYpe3JldHVybiBWJiZ0eXBlb2YgVi5nZXRFbGVtZW50c0J5VGFnTmFtZTwidSImJlZ9ZnVuY3Rpb24gdHIoVil7dmFyIEssbnQ9Vj9WLm93bmVyRG9jdW1lbnR8fFY6UjtyZXR1cm4gbnQ9PUV8fG50Lm5vZGVUeXBlIT09OXx8IW50LmRvY3VtZW50RWxlbWVudHx8KEU9bnQsJD1FLmRvY3VtZW50RWxlbWVudCxVPSF1LmlzWE1MRG9jKEUpLGR0PSQubWF0Y2hlc3x8JC53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fCQubXNNYXRjaGVzU2VsZWN0b3IsJC5tc01hdGNoZXNTZWxlY3RvciYmUiE9RSYmKEs9RS5kZWZhdWx0VmlldykmJksudG9wIT09SyYmSy5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLFNvKSx3LmdldEJ5SWQ9Q3IoZnVuY3Rpb24obHQpe3JldHVybiAkLmFwcGVuZENoaWxkKGx0KS5pZD11LmV4cGFuZG8sIUUuZ2V0RWxlbWVudHNCeU5hbWV8fCFFLmdldEVsZW1lbnRzQnlOYW1lKHUuZXhwYW5kbykubGVuZ3RofSksdy5kaXNjb25uZWN0ZWRNYXRjaD1DcihmdW5jdGlvbihsdCl7cmV0dXJuIGR0LmNhbGwobHQsIioiKX0pLHcuc2NvcGU9Q3IoZnVuY3Rpb24oKXtyZXR1cm4gRS5xdWVyeVNlbGVjdG9yQWxsKCI6c2NvcGUiKX0pLHcuY3NzSGFzPUNyKGZ1bmN0aW9uKCl7dHJ5e3JldHVybiBFLnF1ZXJ5U2VsZWN0b3IoIjpoYXMoKiw6anFmYWtlKSIpLCExfWNhdGNoe3JldHVybiEwfX0pLHcuZ2V0QnlJZD8oZC5maWx0ZXIuSUQ9ZnVuY3Rpb24obHQpe3ZhciBjdD1sdC5yZXBsYWNlKFhlLCRlKTtyZXR1cm4gZnVuY3Rpb24oX3Qpe3JldHVybiBfdC5nZXRBdHRyaWJ1dGUoImlkIik9PT1jdH19LGQuZmluZC5JRD1mdW5jdGlvbihsdCxjdCl7aWYodHlwZW9mIGN0LmdldEVsZW1lbnRCeUlkPCJ1IiYmVSl7dmFyIF90PWN0LmdldEVsZW1lbnRCeUlkKGx0KTtyZXR1cm4gX3Q/W190XTpbXX19KTooZC5maWx0ZXIuSUQ9ZnVuY3Rpb24obHQpe3ZhciBjdD1sdC5yZXBsYWNlKFhlLCRlKTtyZXR1cm4gZnVuY3Rpb24oX3Qpe3ZhciBTdD10eXBlb2YgX3QuZ2V0QXR0cmlidXRlTm9kZTwidSImJl90LmdldEF0dHJpYnV0ZU5vZGUoImlkIik7cmV0dXJuIFN0JiZTdC52YWx1ZT09PWN0fX0sZC5maW5kLklEPWZ1bmN0aW9uKGx0LGN0KXtpZih0eXBlb2YgY3QuZ2V0RWxlbWVudEJ5SWQ8InUiJiZVKXt2YXIgX3QsU3QsUHQsRHQ9Y3QuZ2V0RWxlbWVudEJ5SWQobHQpO2lmKER0KXtpZihfdD1EdC5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpLF90JiZfdC52YWx1ZT09PWx0KXJldHVybltEdF07Zm9yKFB0PWN0LmdldEVsZW1lbnRzQnlOYW1lKGx0KSxTdD0wO0R0PVB0W1N0KytdOylpZihfdD1EdC5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpLF90JiZfdC52YWx1ZT09PWx0KXJldHVybltEdF19cmV0dXJuW119fSksZC5maW5kLlRBRz1mdW5jdGlvbihsdCxjdCl7cmV0dXJuIHR5cGVvZiBjdC5nZXRFbGVtZW50c0J5VGFnTmFtZTwidSI/Y3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUobHQpOmN0LnF1ZXJ5U2VsZWN0b3JBbGwobHQpfSxkLmZpbmQuQ0xBU1M9ZnVuY3Rpb24obHQsY3Qpe2lmKHR5cGVvZiBjdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lPCJ1IiYmVSlyZXR1cm4gY3QuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShsdCl9LFE9W10sQ3IoZnVuY3Rpb24obHQpe3ZhciBjdDskLmFwcGVuZENoaWxkKGx0KS5pbm5lckhUTUw9IjxhIGlkPSciK2Z0KyInIGhyZWY9JycgZGlzYWJsZWQ9J2Rpc2FibGVkJz48L2E+PHNlbGVjdCBpZD0nIitmdCsiLVxyXFwnIGRpc2FibGVkPSdkaXNhYmxlZCc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD4iLGx0LnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fFEucHVzaCgiXFxbIitnKyIqKD86dmFsdWV8IitNZSsiKSIpLGx0LnF1ZXJ5U2VsZWN0b3JBbGwoIltpZH49IitmdCsiLV0iKS5sZW5ndGh8fFEucHVzaCgifj0iKSxsdC5xdWVyeVNlbGVjdG9yQWxsKCJhIyIrZnQrIisqIikubGVuZ3RofHxRLnB1c2goIi4jLitbK35dIiksbHQucXVlcnlTZWxlY3RvckFsbCgiOmNoZWNrZWQiKS5sZW5ndGh8fFEucHVzaCgiOmNoZWNrZWQiKSxjdD1FLmNyZWF0ZUVsZW1lbnQoImlucHV0IiksY3Quc2V0QXR0cmlidXRlKCJ0eXBlIiwiaGlkZGVuIiksbHQuYXBwZW5kQ2hpbGQoY3QpLnNldEF0dHJpYnV0ZSgibmFtZSIsIkQiKSwkLmFwcGVuZENoaWxkKGx0KS5kaXNhYmxlZD0hMCxsdC5xdWVyeVNlbGVjdG9yQWxsKCI6ZGlzYWJsZWQiKS5sZW5ndGghPT0yJiZRLnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIiksY3Q9RS5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLGN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIiIpLGx0LmFwcGVuZENoaWxkKGN0KSxsdC5xdWVyeVNlbGVjdG9yQWxsKCJbbmFtZT0nJ10iKS5sZW5ndGh8fFEucHVzaCgiXFxbIitnKyIqbmFtZSIrZysiKj0iK2crYCooPzonJ3wiIilgKX0pLHcuY3NzSGFzfHxRLnB1c2goIjpoYXMiKSxRPVEubGVuZ3RoJiZuZXcgUmVnRXhwKFEuam9pbigifCIpKSxzZT1mdW5jdGlvbihsdCxjdCl7aWYobHQ9PT1jdClyZXR1cm4gQT0hMCwwO3ZhciBfdD0hbHQuY29tcGFyZURvY3VtZW50UG9zaXRpb24tIWN0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uO3JldHVybiBfdHx8KF90PShsdC5vd25lckRvY3VtZW50fHxsdCk9PShjdC5vd25lckRvY3VtZW50fHxjdCk/bHQuY29tcGFyZURvY3VtZW50UG9zaXRpb24oY3QpOjEsX3QmMXx8IXcuc29ydERldGFjaGVkJiZjdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihsdCk9PT1fdD9sdD09PUV8fGx0Lm93bmVyRG9jdW1lbnQ9PVImJll0LmNvbnRhaW5zKFIsbHQpPy0xOmN0PT09RXx8Y3Qub3duZXJEb2N1bWVudD09UiYmWXQuY29udGFpbnMoUixjdCk/MTp4P2MuY2FsbCh4LGx0KS1jLmNhbGwoeCxjdCk6MDpfdCY0Py0xOjEpfSksRX1ZdC5tYXRjaGVzPWZ1bmN0aW9uKFYsSyl7cmV0dXJuIFl0KFYsbnVsbCxudWxsLEspfSxZdC5tYXRjaGVzU2VsZWN0b3I9ZnVuY3Rpb24oVixLKXtpZih0cihWKSxVJiYhbGVbSysiICJdJiYoIVF8fCFRLnRlc3QoSykpKXRyeXt2YXIgbnQ9ZHQuY2FsbChWLEspO2lmKG50fHx3LmRpc2Nvbm5lY3RlZE1hdGNofHxWLmRvY3VtZW50JiZWLmRvY3VtZW50Lm5vZGVUeXBlIT09MTEpcmV0dXJuIG50fWNhdGNoe2xlKEssITApfXJldHVybiBZdChLLEUsbnVsbCxbVl0pLmxlbmd0aD4wfSxZdC5jb250YWlucz1mdW5jdGlvbihWLEspe3JldHVybihWLm93bmVyRG9jdW1lbnR8fFYpIT1FJiZ0cihWKSx1LmNvbnRhaW5zKFYsSyl9LFl0LmF0dHI9ZnVuY3Rpb24oVixLKXsoVi5vd25lckRvY3VtZW50fHxWKSE9RSYmdHIoVik7dmFyIG50PWQuYXR0ckhhbmRsZVtLLnRvTG93ZXJDYXNlKCldLGx0PW50JiZtLmNhbGwoZC5hdHRySGFuZGxlLEsudG9Mb3dlckNhc2UoKSk/bnQoVixLLCFVKTp2b2lkIDA7cmV0dXJuIGx0IT09dm9pZCAwP2x0OlYuZ2V0QXR0cmlidXRlKEspfSxZdC5lcnJvcj1mdW5jdGlvbihWKXt0aHJvdyBuZXcgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrVil9LHUudW5pcXVlU29ydD1mdW5jdGlvbihWKXt2YXIgSyxudD1bXSxsdD0wLGN0PTA7aWYoQT0hdy5zb3J0U3RhYmxlLHg9IXcuc29ydFN0YWJsZSYmcy5jYWxsKFYsMCksTy5jYWxsKFYsc2UpLEEpe2Zvcig7Sz1WW2N0KytdOylLPT09VltjdF0mJihsdD1udC5wdXNoKGN0KSk7Zm9yKDtsdC0tOylaLmNhbGwoVixudFtsdF0sMSl9cmV0dXJuIHg9bnVsbCxWfSx1LmZuLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sodS51bmlxdWVTb3J0KHMuYXBwbHkodGhpcykpKX0sZD11LmV4cHI9e2NhY2hlTGVuZ3RoOjUwLGNyZWF0ZVBzZXVkbzpMZSxtYXRjaDpXZSxhdHRySGFuZGxlOnt9LGZpbmQ6e30scmVsYXRpdmU6eyI+Ijp7ZGlyOiJwYXJlbnROb2RlIixmaXJzdDohMH0sIiAiOntkaXI6InBhcmVudE5vZGUifSwiKyI6e2RpcjoicHJldmlvdXNTaWJsaW5nIixmaXJzdDohMH0sIn4iOntkaXI6InByZXZpb3VzU2libGluZyJ9fSxwcmVGaWx0ZXI6e0FUVFI6ZnVuY3Rpb24oVil7cmV0dXJuIFZbMV09VlsxXS5yZXBsYWNlKFhlLCRlKSxWWzNdPShWWzNdfHxWWzRdfHxWWzVdfHwiIikucmVwbGFjZShYZSwkZSksVlsyXT09PSJ+PSImJihWWzNdPSIgIitWWzNdKyIgIiksVi5zbGljZSgwLDQpfSxDSElMRDpmdW5jdGlvbihWKXtyZXR1cm4gVlsxXT1WWzFdLnRvTG93ZXJDYXNlKCksVlsxXS5zbGljZSgwLDMpPT09Im50aCI/KFZbM118fFl0LmVycm9yKFZbMF0pLFZbNF09KyhWWzRdP1ZbNV0rKFZbNl18fDEpOjIqKFZbM109PT0iZXZlbiJ8fFZbM109PT0ib2RkIikpLFZbNV09KyhWWzddK1ZbOF18fFZbM109PT0ib2RkIikpOlZbM10mJll0LmVycm9yKFZbMF0pLFZ9LFBTRVVETzpmdW5jdGlvbihWKXt2YXIgSyxudD0hVls2XSYmVlsyXTtyZXR1cm4gV2UuQ0hJTEQudGVzdChWWzBdKT9udWxsOihWWzNdP1ZbMl09Vls0XXx8Vls1XXx8IiI6bnQmJkhlLnRlc3QobnQpJiYoSz1IcihudCwhMCkpJiYoSz1udC5pbmRleE9mKCIpIixudC5sZW5ndGgtSyktbnQubGVuZ3RoKSYmKFZbMF09VlswXS5zbGljZSgwLEspLFZbMl09bnQuc2xpY2UoMCxLKSksVi5zbGljZSgwLDMpKX19LGZpbHRlcjp7VEFHOmZ1bmN0aW9uKFYpe3ZhciBLPVYucmVwbGFjZShYZSwkZSkudG9Mb3dlckNhc2UoKTtyZXR1cm4gVj09PSIqIj9mdW5jdGlvbigpe3JldHVybiEwfTpmdW5jdGlvbihudCl7cmV0dXJuIHEobnQsSyl9fSxDTEFTUzpmdW5jdGlvbihWKXt2YXIgSz1FdFtWKyIgIl07cmV0dXJuIEt8fChLPW5ldyBSZWdFeHAoIihefCIrZysiKSIrVisiKCIrZysifCQpIikpJiZFdChWLGZ1bmN0aW9uKG50KXtyZXR1cm4gSy50ZXN0KHR5cGVvZiBudC5jbGFzc05hbWU9PSJzdHJpbmciJiZudC5jbGFzc05hbWV8fHR5cGVvZiBudC5nZXRBdHRyaWJ1dGU8InUiJiZudC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX0pfSxBVFRSOmZ1bmN0aW9uKFYsSyxudCl7cmV0dXJuIGZ1bmN0aW9uKGx0KXt2YXIgY3Q9WXQuYXR0cihsdCxWKTtyZXR1cm4gY3Q9PW51bGw/Sz09PSIhPSI6Sz8oY3QrPSIiLEs9PT0iPSI/Y3Q9PT1udDpLPT09IiE9Ij9jdCE9PW50Oks9PT0iXj0iP250JiZjdC5pbmRleE9mKG50KT09PTA6Sz09PSIqPSI/bnQmJmN0LmluZGV4T2YobnQpPi0xOks9PT0iJD0iP250JiZjdC5zbGljZSgtbnQubGVuZ3RoKT09PW50Oks9PT0ifj0iPygiICIrY3QucmVwbGFjZShYdCwiICIpKyIgIikuaW5kZXhPZihudCk+LTE6Sz09PSJ8PSI/Y3Q9PT1udHx8Y3Quc2xpY2UoMCxudC5sZW5ndGgrMSk9PT1udCsiLSI6ITEpOiEwfX0sQ0hJTEQ6ZnVuY3Rpb24oVixLLG50LGx0LGN0KXt2YXIgX3Q9Vi5zbGljZSgwLDMpIT09Im50aCIsU3Q9Vi5zbGljZSgtNCkhPT0ibGFzdCIsUHQ9Sz09PSJvZi10eXBlIjtyZXR1cm4gbHQ9PT0xJiZjdD09PTA/ZnVuY3Rpb24oRHQpe3JldHVybiEhRHQucGFyZW50Tm9kZX06ZnVuY3Rpb24oRHQsVnQsTnQpe3ZhciBPdCxIdCxGdCxlZSxnZSx1ZT1fdCE9PVN0PyJuZXh0U2libGluZyI6InByZXZpb3VzU2libGluZyIsRGU9RHQucGFyZW50Tm9kZSxVZT1QdCYmRHQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxUcj0hTnQmJiFQdCxjZT0hMTtpZihEZSl7aWYoX3Qpe2Zvcig7dWU7KXtmb3IoRnQ9RHQ7RnQ9RnRbdWVdOylpZihQdD9xKEZ0LFVlKTpGdC5ub2RlVHlwZT09PTEpcmV0dXJuITE7Z2U9dWU9Vj09PSJvbmx5IiYmIWdlJiYibmV4dFNpYmxpbmcifXJldHVybiEwfWlmKGdlPVtTdD9EZS5maXJzdENoaWxkOkRlLmxhc3RDaGlsZF0sU3QmJlRyKXtmb3IoSHQ9RGVbZnRdfHwoRGVbZnRdPXt9KSxPdD1IdFtWXXx8W10sZWU9T3RbMF09PT1pdCYmT3RbMV0sY2U9ZWUmJk90WzJdLEZ0PWVlJiZEZS5jaGlsZE5vZGVzW2VlXTtGdD0rK2VlJiZGdCYmRnRbdWVdfHwoY2U9ZWU9MCl8fGdlLnBvcCgpOylpZihGdC5ub2RlVHlwZT09PTEmJisrY2UmJkZ0PT09RHQpe0h0W1ZdPVtpdCxlZSxjZV07YnJlYWt9fWVsc2UgaWYoVHImJihIdD1EdFtmdF18fChEdFtmdF09e30pLE90PUh0W1ZdfHxbXSxlZT1PdFswXT09PWl0JiZPdFsxXSxjZT1lZSksY2U9PT0hMSlmb3IoOyhGdD0rK2VlJiZGdCYmRnRbdWVdfHwoY2U9ZWU9MCl8fGdlLnBvcCgpKSYmISgoUHQ/cShGdCxVZSk6RnQubm9kZVR5cGU9PT0xKSYmKytjZSYmKFRyJiYoSHQ9RnRbZnRdfHwoRnRbZnRdPXt9KSxIdFtWXT1baXQsY2VdKSxGdD09PUR0KSk7KTtyZXR1cm4gY2UtPWN0LGNlPT09bHR8fGNlJWx0PT09MCYmY2UvbHQ+PTB9fX0sUFNFVURPOmZ1bmN0aW9uKFYsSyl7dmFyIG50LGx0PWQucHNldWRvc1tWXXx8ZC5zZXRGaWx0ZXJzW1YudG9Mb3dlckNhc2UoKV18fFl0LmVycm9yKCJ1bnN1cHBvcnRlZCBwc2V1ZG86ICIrVik7cmV0dXJuIGx0W2Z0XT9sdChLKTpsdC5sZW5ndGg+MT8obnQ9W1YsViwiIixLXSxkLnNldEZpbHRlcnMuaGFzT3duUHJvcGVydHkoVi50b0xvd2VyQ2FzZSgpKT9MZShmdW5jdGlvbihjdCxfdCl7Zm9yKHZhciBTdCxQdD1sdChjdCxLKSxEdD1QdC5sZW5ndGg7RHQtLTspU3Q9Yy5jYWxsKGN0LFB0W0R0XSksY3RbU3RdPSEoX3RbU3RdPVB0W0R0XSl9KTpmdW5jdGlvbihjdCl7cmV0dXJuIGx0KGN0LDAsbnQpfSk6bHR9fSxwc2V1ZG9zOntub3Q6TGUoZnVuY3Rpb24oVil7dmFyIEs9W10sbnQ9W10sbHQ9bmkoVi5yZXBsYWNlKF8sIiQxIikpO3JldHVybiBsdFtmdF0/TGUoZnVuY3Rpb24oY3QsX3QsU3QsUHQpe2Zvcih2YXIgRHQsVnQ9bHQoY3QsbnVsbCxQdCxbXSksTnQ9Y3QubGVuZ3RoO050LS07KShEdD1WdFtOdF0pJiYoY3RbTnRdPSEoX3RbTnRdPUR0KSl9KTpmdW5jdGlvbihjdCxfdCxTdCl7cmV0dXJuIEtbMF09Y3QsbHQoSyxudWxsLFN0LG50KSxLWzBdPW51bGwsIW50LnBvcCgpfX0pLGhhczpMZShmdW5jdGlvbihWKXtyZXR1cm4gZnVuY3Rpb24oSyl7cmV0dXJuIFl0KFYsSykubGVuZ3RoPjB9fSksY29udGFpbnM6TGUoZnVuY3Rpb24oVil7cmV0dXJuIFY9Vi5yZXBsYWNlKFhlLCRlKSxmdW5jdGlvbihLKXtyZXR1cm4oSy50ZXh0Q29udGVudHx8dS50ZXh0KEspKS5pbmRleE9mKFYpPi0xfX0pLGxhbmc6TGUoZnVuY3Rpb24oVil7cmV0dXJuIFZyLnRlc3QoVnx8IiIpfHxZdC5lcnJvcigidW5zdXBwb3J0ZWQgbGFuZzogIitWKSxWPVYucmVwbGFjZShYZSwkZSkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihLKXt2YXIgbnQ7ZG8gaWYobnQ9VT9LLmxhbmc6Sy5nZXRBdHRyaWJ1dGUoInhtbDpsYW5nIil8fEsuZ2V0QXR0cmlidXRlKCJsYW5nIikpcmV0dXJuIG50PW50LnRvTG93ZXJDYXNlKCksbnQ9PT1WfHxudC5pbmRleE9mKFYrIi0iKT09PTA7d2hpbGUoKEs9Sy5wYXJlbnROb2RlKSYmSy5ub2RlVHlwZT09PTEpO3JldHVybiExfX0pLHRhcmdldDpmdW5jdGlvbihWKXt2YXIgSz10LmxvY2F0aW9uJiZ0LmxvY2F0aW9uLmhhc2g7cmV0dXJuIEsmJksuc2xpY2UoMSk9PT1WLmlkfSxyb290OmZ1bmN0aW9uKFYpe3JldHVybiBWPT09JH0sZm9jdXM6ZnVuY3Rpb24oVil7cmV0dXJuIFY9PT1BbygpJiZFLmhhc0ZvY3VzKCkmJiEhKFYudHlwZXx8Vi5ocmVmfHx+Vi50YWJJbmRleCl9LGVuYWJsZWQ6eWEoITEpLGRpc2FibGVkOnlhKCEwKSxjaGVja2VkOmZ1bmN0aW9uKFYpe3JldHVybiBxKFYsImlucHV0IikmJiEhVi5jaGVja2VkfHxxKFYsIm9wdGlvbiIpJiYhIVYuc2VsZWN0ZWR9LHNlbGVjdGVkOmZ1bmN0aW9uKFYpe3JldHVybiBWLnBhcmVudE5vZGUmJlYucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LFYuc2VsZWN0ZWQ9PT0hMH0sZW1wdHk6ZnVuY3Rpb24oVil7Zm9yKFY9Vi5maXJzdENoaWxkO1Y7Vj1WLm5leHRTaWJsaW5nKWlmKFYubm9kZVR5cGU8NilyZXR1cm4hMTtyZXR1cm4hMH0scGFyZW50OmZ1bmN0aW9uKFYpe3JldHVybiFkLnBzZXVkb3MuZW1wdHkoVil9LGhlYWRlcjpmdW5jdGlvbihWKXtyZXR1cm4gSmUudGVzdChWLm5vZGVOYW1lKX0saW5wdXQ6ZnVuY3Rpb24oVil7cmV0dXJuIFFlLnRlc3QoVi5ub2RlTmFtZSl9LGJ1dHRvbjpmdW5jdGlvbihWKXtyZXR1cm4gcShWLCJpbnB1dCIpJiZWLnR5cGU9PT0iYnV0dG9uInx8cShWLCJidXR0b24iKX0sdGV4dDpmdW5jdGlvbihWKXt2YXIgSztyZXR1cm4gcShWLCJpbnB1dCIpJiZWLnR5cGU9PT0idGV4dCImJigoSz1WLmdldEF0dHJpYnV0ZSgidHlwZSIpKT09bnVsbHx8Sy50b0xvd2VyQ2FzZSgpPT09InRleHQiKX0sZmlyc3Q6dXIoZnVuY3Rpb24oKXtyZXR1cm5bMF19KSxsYXN0OnVyKGZ1bmN0aW9uKFYsSyl7cmV0dXJuW0stMV19KSxlcTp1cihmdW5jdGlvbihWLEssbnQpe3JldHVybltudDwwP250K0s6bnRdfSksZXZlbjp1cihmdW5jdGlvbihWLEspe2Zvcih2YXIgbnQ9MDtudDxLO250Kz0yKVYucHVzaChudCk7cmV0dXJuIFZ9KSxvZGQ6dXIoZnVuY3Rpb24oVixLKXtmb3IodmFyIG50PTE7bnQ8SztudCs9MilWLnB1c2gobnQpO3JldHVybiBWfSksbHQ6dXIoZnVuY3Rpb24oVixLLG50KXt2YXIgbHQ7Zm9yKG50PDA/bHQ9bnQrSzpudD5LP2x0PUs6bHQ9bnQ7LS1sdD49MDspVi5wdXNoKGx0KTtyZXR1cm4gVn0pLGd0OnVyKGZ1bmN0aW9uKFYsSyxudCl7Zm9yKHZhciBsdD1udDwwP250K0s6bnQ7KytsdDxLOylWLnB1c2gobHQpO3JldHVybiBWfSl9fSxkLnBzZXVkb3MubnRoPWQucHNldWRvcy5lcTtmb3IoaSBpbntyYWRpbzohMCxjaGVja2JveDohMCxmaWxlOiEwLHBhc3N3b3JkOiEwLGltYWdlOiEwfSlkLnBzZXVkb3NbaV09SW8oaSk7Zm9yKGkgaW57c3VibWl0OiEwLHJlc2V0OiEwfSlkLnBzZXVkb3NbaV09UG8oaSk7ZnVuY3Rpb24gd2EoKXt9d2EucHJvdG90eXBlPWQuZmlsdGVycz1kLnBzZXVkb3MsZC5zZXRGaWx0ZXJzPW5ldyB3YTtmdW5jdGlvbiBIcihWLEspe3ZhciBudCxsdCxjdCxfdCxTdCxQdCxEdCxWdD1HdFtWKyIgIl07aWYoVnQpcmV0dXJuIEs/MDpWdC5zbGljZSgwKTtmb3IoU3Q9VixQdD1bXSxEdD1kLnByZUZpbHRlcjtTdDspeyghbnR8fChsdD1yZS5leGVjKFN0KSkpJiYobHQmJihTdD1TdC5zbGljZShsdFswXS5sZW5ndGgpfHxTdCksUHQucHVzaChjdD1bXSkpLG50PSExLChsdD1Nci5leGVjKFN0KSkmJihudD1sdC5zaGlmdCgpLGN0LnB1c2goe3ZhbHVlOm50LHR5cGU6bHRbMF0ucmVwbGFjZShfLCIgIil9KSxTdD1TdC5zbGljZShudC5sZW5ndGgpKTtmb3IoX3QgaW4gZC5maWx0ZXIpKGx0PVdlW190XS5leGVjKFN0KSkmJighRHRbX3RdfHwobHQ9RHRbX3RdKGx0KSkpJiYobnQ9bHQuc2hpZnQoKSxjdC5wdXNoKHt2YWx1ZTpudCx0eXBlOl90LG1hdGNoZXM6bHR9KSxTdD1TdC5zbGljZShudC5sZW5ndGgpKTtpZighbnQpYnJlYWt9cmV0dXJuIEs/U3QubGVuZ3RoOlN0P1l0LmVycm9yKFYpOkd0KFYsUHQpLnNsaWNlKDApfWZ1bmN0aW9uIHVuKFYpe2Zvcih2YXIgSz0wLG50PVYubGVuZ3RoLGx0PSIiO0s8bnQ7SysrKWx0Kz1WW0tdLnZhbHVlO3JldHVybiBsdH1mdW5jdGlvbiBjbihWLEssbnQpe3ZhciBsdD1LLmRpcixjdD1LLm5leHQsX3Q9Y3R8fGx0LFN0PW50JiZfdD09PSJwYXJlbnROb2RlIixQdD13dCsrO3JldHVybiBLLmZpcnN0P2Z1bmN0aW9uKER0LFZ0LE50KXtmb3IoO0R0PUR0W2x0XTspaWYoRHQubm9kZVR5cGU9PT0xfHxTdClyZXR1cm4gVihEdCxWdCxOdCk7cmV0dXJuITF9OmZ1bmN0aW9uKER0LFZ0LE50KXt2YXIgT3QsSHQsRnQ9W2l0LFB0XTtpZihOdCl7Zm9yKDtEdD1EdFtsdF07KWlmKChEdC5ub2RlVHlwZT09PTF8fFN0KSYmVihEdCxWdCxOdCkpcmV0dXJuITB9ZWxzZSBmb3IoO0R0PUR0W2x0XTspaWYoRHQubm9kZVR5cGU9PT0xfHxTdClpZihIdD1EdFtmdF18fChEdFtmdF09e30pLGN0JiZxKER0LGN0KSlEdD1EdFtsdF18fER0O2Vsc2V7aWYoKE90PUh0W190XSkmJk90WzBdPT09aXQmJk90WzFdPT09UHQpcmV0dXJuIEZ0WzJdPU90WzJdO2lmKEh0W190XT1GdCxGdFsyXT1WKER0LFZ0LE50KSlyZXR1cm4hMH1yZXR1cm4hMX19ZnVuY3Rpb24gdGkoVil7cmV0dXJuIFYubGVuZ3RoPjE/ZnVuY3Rpb24oSyxudCxsdCl7Zm9yKHZhciBjdD1WLmxlbmd0aDtjdC0tOylpZighVltjdF0oSyxudCxsdCkpcmV0dXJuITE7cmV0dXJuITB9OlZbMF19ZnVuY3Rpb24gRm8oVixLLG50KXtmb3IodmFyIGx0PTAsY3Q9Sy5sZW5ndGg7bHQ8Y3Q7bHQrKylZdChWLEtbbHRdLG50KTtyZXR1cm4gbnR9ZnVuY3Rpb24gZm4oVixLLG50LGx0LGN0KXtmb3IodmFyIF90LFN0PVtdLFB0PTAsRHQ9Vi5sZW5ndGgsVnQ9SyE9bnVsbDtQdDxEdDtQdCsrKShfdD1WW1B0XSkmJighbnR8fG50KF90LGx0LGN0KSkmJihTdC5wdXNoKF90KSxWdCYmSy5wdXNoKFB0KSk7cmV0dXJuIFN0fWZ1bmN0aW9uIGVpKFYsSyxudCxsdCxjdCxfdCl7cmV0dXJuIGx0JiYhbHRbZnRdJiYobHQ9ZWkobHQpKSxjdCYmIWN0W2Z0XSYmKGN0PWVpKGN0LF90KSksTGUoZnVuY3Rpb24oU3QsUHQsRHQsVnQpe3ZhciBOdCxPdCxIdCxGdCxlZT1bXSxnZT1bXSx1ZT1QdC5sZW5ndGgsRGU9U3R8fEZvKEt8fCIqIixEdC5ub2RlVHlwZT9bRHRdOkR0LFtdKSxVZT1WJiYoU3R8fCFLKT9mbihEZSxlZSxWLER0LFZ0KTpEZTtpZihudD8oRnQ9Y3R8fChTdD9WOnVlfHxsdCk/W106UHQsbnQoVWUsRnQsRHQsVnQpKTpGdD1VZSxsdClmb3IoTnQ9Zm4oRnQsZ2UpLGx0KE50LFtdLER0LFZ0KSxPdD1OdC5sZW5ndGg7T3QtLTspKEh0PU50W090XSkmJihGdFtnZVtPdF1dPSEoVWVbZ2VbT3RdXT1IdCkpO2lmKFN0KXtpZihjdHx8Vil7aWYoY3Qpe2ZvcihOdD1bXSxPdD1GdC5sZW5ndGg7T3QtLTspKEh0PUZ0W090XSkmJk50LnB1c2goVWVbT3RdPUh0KTtjdChudWxsLEZ0PVtdLE50LFZ0KX1mb3IoT3Q9RnQubGVuZ3RoO090LS07KShIdD1GdFtPdF0pJiYoTnQ9Y3Q/Yy5jYWxsKFN0LEh0KTplZVtPdF0pPi0xJiYoU3RbTnRdPSEoUHRbTnRdPUh0KSl9fWVsc2UgRnQ9Zm4oRnQ9PT1QdD9GdC5zcGxpY2UodWUsRnQubGVuZ3RoKTpGdCksY3Q/Y3QobnVsbCxQdCxGdCxWdCk6SS5hcHBseShQdCxGdCl9KX1mdW5jdGlvbiByaShWKXtmb3IodmFyIEssbnQsbHQsY3Q9Vi5sZW5ndGgsX3Q9ZC5yZWxhdGl2ZVtWWzBdLnR5cGVdLFN0PV90fHxkLnJlbGF0aXZlWyIgIl0sUHQ9X3Q/MTowLER0PWNuKGZ1bmN0aW9uKE90KXtyZXR1cm4gT3Q9PT1LfSxTdCwhMCksVnQ9Y24oZnVuY3Rpb24oT3Qpe3JldHVybiBjLmNhbGwoSyxPdCk+LTF9LFN0LCEwKSxOdD1bZnVuY3Rpb24oT3QsSHQsRnQpe3ZhciBlZT0hX3QmJihGdHx8SHQhPXYpfHwoKEs9SHQpLm5vZGVUeXBlP0R0KE90LEh0LEZ0KTpWdChPdCxIdCxGdCkpO3JldHVybiBLPW51bGwsZWV9XTtQdDxjdDtQdCsrKWlmKG50PWQucmVsYXRpdmVbVltQdF0udHlwZV0pTnQ9W2NuKHRpKE50KSxudCldO2Vsc2V7aWYobnQ9ZC5maWx0ZXJbVltQdF0udHlwZV0uYXBwbHkobnVsbCxWW1B0XS5tYXRjaGVzKSxudFtmdF0pe2ZvcihsdD0rK1B0O2x0PGN0JiYhZC5yZWxhdGl2ZVtWW2x0XS50eXBlXTtsdCsrKTtyZXR1cm4gZWkoUHQ+MSYmdGkoTnQpLFB0PjEmJnVuKFYuc2xpY2UoMCxQdC0xKS5jb25jYXQoe3ZhbHVlOlZbUHQtMl0udHlwZT09PSIgIj8iKiI6IiJ9KSkucmVwbGFjZShfLCIkMSIpLG50LFB0PGx0JiZyaShWLnNsaWNlKFB0LGx0KSksbHQ8Y3QmJnJpKFY9Vi5zbGljZShsdCkpLGx0PGN0JiZ1bihWKSl9TnQucHVzaChudCl9cmV0dXJuIHRpKE50KX1mdW5jdGlvbiBCbyhWLEspe3ZhciBudD1LLmxlbmd0aD4wLGx0PVYubGVuZ3RoPjAsY3Q9ZnVuY3Rpb24oX3QsU3QsUHQsRHQsVnQpe3ZhciBOdCxPdCxIdCxGdD0wLGVlPSIwIixnZT1fdCYmW10sdWU9W10sRGU9dixVZT1fdHx8bHQmJmQuZmluZC5UQUcoIioiLFZ0KSxUcj1pdCs9RGU9PW51bGw/MTpNYXRoLnJhbmRvbSgpfHwuMSxjZT1VZS5sZW5ndGg7Zm9yKFZ0JiYodj1TdD09RXx8U3R8fFZ0KTtlZSE9PWNlJiYoTnQ9VWVbZWVdKSE9bnVsbDtlZSsrKXtpZihsdCYmTnQpe2ZvcihPdD0wLCFTdCYmTnQub3duZXJEb2N1bWVudCE9RSYmKHRyKE50KSxQdD0hVSk7SHQ9VltPdCsrXTspaWYoSHQoTnQsU3R8fEUsUHQpKXtJLmNhbGwoRHQsTnQpO2JyZWFrfVZ0JiYoaXQ9VHIpfW50JiYoKE50PSFIdCYmTnQpJiZGdC0tLF90JiZnZS5wdXNoKE50KSl9aWYoRnQrPWVlLG50JiZlZSE9PUZ0KXtmb3IoT3Q9MDtIdD1LW090KytdOylIdChnZSx1ZSxTdCxQdCk7aWYoX3Qpe2lmKEZ0PjApZm9yKDtlZS0tOylnZVtlZV18fHVlW2VlXXx8KHVlW2VlXT1ldC5jYWxsKER0KSk7dWU9Zm4odWUpfUkuYXBwbHkoRHQsdWUpLFZ0JiYhX3QmJnVlLmxlbmd0aD4wJiZGdCtLLmxlbmd0aD4xJiZ1LnVuaXF1ZVNvcnQoRHQpfXJldHVybiBWdCYmKGl0PVRyLHY9RGUpLGdlfTtyZXR1cm4gbnQ/TGUoY3QpOmN0fWZ1bmN0aW9uIG5pKFYsSyl7dmFyIG50LGx0PVtdLGN0PVtdLF90PU10W1YrIiAiXTtpZighX3Qpe2ZvcihLfHwoSz1IcihWKSksbnQ9Sy5sZW5ndGg7bnQtLTspX3Q9cmkoS1tudF0pLF90W2Z0XT9sdC5wdXNoKF90KTpjdC5wdXNoKF90KTtfdD1NdChWLEJvKGN0LGx0KSksX3Quc2VsZWN0b3I9Vn1yZXR1cm4gX3R9ZnVuY3Rpb24geGEoVixLLG50LGx0KXt2YXIgY3QsX3QsU3QsUHQsRHQsVnQ9dHlwZW9mIFY9PSJmdW5jdGlvbiImJlYsTnQ9IWx0JiZIcihWPVZ0LnNlbGVjdG9yfHxWKTtpZihudD1udHx8W10sTnQubGVuZ3RoPT09MSl7aWYoX3Q9TnRbMF09TnRbMF0uc2xpY2UoMCksX3QubGVuZ3RoPjImJihTdD1fdFswXSkudHlwZT09PSJJRCImJksubm9kZVR5cGU9PT05JiZVJiZkLnJlbGF0aXZlW190WzFdLnR5cGVdKXtpZihLPShkLmZpbmQuSUQoU3QubWF0Y2hlc1swXS5yZXBsYWNlKFhlLCRlKSxLKXx8W10pWzBdLEspVnQmJihLPUsucGFyZW50Tm9kZSk7ZWxzZSByZXR1cm4gbnQ7Vj1WLnNsaWNlKF90LnNoaWZ0KCkudmFsdWUubGVuZ3RoKX1mb3IoY3Q9V2UubmVlZHNDb250ZXh0LnRlc3QoVik/MDpfdC5sZW5ndGg7Y3QtLSYmKFN0PV90W2N0XSwhZC5yZWxhdGl2ZVtQdD1TdC50eXBlXSk7KWlmKChEdD1kLmZpbmRbUHRdKSYmKGx0PUR0KFN0Lm1hdGNoZXNbMF0ucmVwbGFjZShYZSwkZSksUW4udGVzdChfdFswXS50eXBlKSYmSm4oSy5wYXJlbnROb2RlKXx8SykpKXtpZihfdC5zcGxpY2UoY3QsMSksVj1sdC5sZW5ndGgmJnVuKF90KSwhVilyZXR1cm4gSS5hcHBseShudCxsdCksbnQ7YnJlYWt9fXJldHVybihWdHx8bmkoVixOdCkpKGx0LEssIVUsbnQsIUt8fFFuLnRlc3QoVikmJkpuKEsucGFyZW50Tm9kZSl8fEspLG50fXcuc29ydFN0YWJsZT1mdC5zcGxpdCgiIikuc29ydChzZSkuam9pbigiIik9PT1mdCx0cigpLHcuc29ydERldGFjaGVkPUNyKGZ1bmN0aW9uKFYpe3JldHVybiBWLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKEUuY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKSkmMX0pLHUuZmluZD1ZdCx1LmV4cHJbIjoiXT11LmV4cHIucHNldWRvcyx1LnVuaXF1ZT11LnVuaXF1ZVNvcnQsWXQuY29tcGlsZT1uaSxZdC5zZWxlY3Q9eGEsWXQuc2V0RG9jdW1lbnQ9dHIsWXQudG9rZW5pemU9SHIsWXQuZXNjYXBlPXUuZXNjYXBlU2VsZWN0b3IsWXQuZ2V0VGV4dD11LnRleHQsWXQuaXNYTUw9dS5pc1hNTERvYyxZdC5zZWxlY3RvcnM9dS5leHByLFl0LnN1cHBvcnQ9dS5zdXBwb3J0LFl0LnVuaXF1ZVNvcnQ9dS51bmlxdWVTb3J0fSkoKTt2YXIgWD1mdW5jdGlvbihpLGQsdil7Zm9yKHZhciB4PVtdLEE9diE9PXZvaWQgMDsoaT1pW2RdKSYmaS5ub2RlVHlwZSE9PTk7KWlmKGkubm9kZVR5cGU9PT0xKXtpZihBJiZ1KGkpLmlzKHYpKWJyZWFrO3gucHVzaChpKX1yZXR1cm4geH0saj1mdW5jdGlvbihpLGQpe2Zvcih2YXIgdj1bXTtpO2k9aS5uZXh0U2libGluZylpLm5vZGVUeXBlPT09MSYmaSE9PWQmJnYucHVzaChpKTtyZXR1cm4gdn0sRz11LmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LGF0PS9ePChbYS16XVteXC9cMD46XHgyMFx0XHJcblxmXSopW1x4MjBcdFxyXG5cZl0qXC8/Pig/OjxcL1wxPnwpJC9pO2Z1bmN0aW9uIEooaSxkLHYpe3JldHVybiBrKGQpP3UuZ3JlcChpLGZ1bmN0aW9uKHgsQSl7cmV0dXJuISFkLmNhbGwoeCxBLHgpIT09dn0pOmQubm9kZVR5cGU/dS5ncmVwKGksZnVuY3Rpb24oeCl7cmV0dXJuIHg9PT1kIT09dn0pOnR5cGVvZiBkIT0ic3RyaW5nIj91LmdyZXAoaSxmdW5jdGlvbih4KXtyZXR1cm4gYy5jYWxsKGQseCk+LTEhPT12fSk6dS5maWx0ZXIoZCxpLHYpfXUuZmlsdGVyPWZ1bmN0aW9uKGksZCx2KXt2YXIgeD1kWzBdO3JldHVybiB2JiYoaT0iOm5vdCgiK2krIikiKSxkLmxlbmd0aD09PTEmJngubm9kZVR5cGU9PT0xP3UuZmluZC5tYXRjaGVzU2VsZWN0b3IoeCxpKT9beF06W106dS5maW5kLm1hdGNoZXMoaSx1LmdyZXAoZCxmdW5jdGlvbihBKXtyZXR1cm4gQS5ub2RlVHlwZT09PTF9KSl9LHUuZm4uZXh0ZW5kKHtmaW5kOmZ1bmN0aW9uKGkpe3ZhciBkLHYseD10aGlzLmxlbmd0aCxBPXRoaXM7aWYodHlwZW9mIGkhPSJzdHJpbmciKXJldHVybiB0aGlzLnB1c2hTdGFjayh1KGkpLmZpbHRlcihmdW5jdGlvbigpe2ZvcihkPTA7ZDx4O2QrKylpZih1LmNvbnRhaW5zKEFbZF0sdGhpcykpcmV0dXJuITB9KSk7Zm9yKHY9dGhpcy5wdXNoU3RhY2soW10pLGQ9MDtkPHg7ZCsrKXUuZmluZChpLEFbZF0sdik7cmV0dXJuIHg+MT91LnVuaXF1ZVNvcnQodik6dn0sZmlsdGVyOmZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLnB1c2hTdGFjayhKKHRoaXMsaXx8W10sITEpKX0sbm90OmZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLnB1c2hTdGFjayhKKHRoaXMsaXx8W10sITApKX0saXM6ZnVuY3Rpb24oaSl7cmV0dXJuISFKKHRoaXMsdHlwZW9mIGk9PSJzdHJpbmciJiZHLnRlc3QoaSk/dShpKTppfHxbXSwhMSkubGVuZ3RofX0pO3ZhciB0dCx5dD0vXig/OlxzKig8W1x3XFddKz4pW14+XSp8IyhbXHctXSspKSQvLFR0PXUuZm4uaW5pdD1mdW5jdGlvbihpLGQsdil7dmFyIHgsQTtpZighaSlyZXR1cm4gdGhpcztpZih2PXZ8fHR0LHR5cGVvZiBpPT0ic3RyaW5nIilpZihpWzBdPT09IjwiJiZpW2kubGVuZ3RoLTFdPT09Ij4iJiZpLmxlbmd0aD49Mz94PVtudWxsLGksbnVsbF06eD15dC5leGVjKGkpLHgmJih4WzFdfHwhZCkpaWYoeFsxXSl7aWYoZD1kIGluc3RhbmNlb2YgdT9kWzBdOmQsdS5tZXJnZSh0aGlzLHUucGFyc2VIVE1MKHhbMV0sZCYmZC5ub2RlVHlwZT9kLm93bmVyRG9jdW1lbnR8fGQ6RiwhMCkpLGF0LnRlc3QoeFsxXSkmJnUuaXNQbGFpbk9iamVjdChkKSlmb3IoeCBpbiBkKWsodGhpc1t4XSk/dGhpc1t4XShkW3hdKTp0aGlzLmF0dHIoeCxkW3hdKTtyZXR1cm4gdGhpc31lbHNlIHJldHVybiBBPUYuZ2V0RWxlbWVudEJ5SWQoeFsyXSksQSYmKHRoaXNbMF09QSx0aGlzLmxlbmd0aD0xKSx0aGlzO2Vsc2UgcmV0dXJuIWR8fGQuanF1ZXJ5PyhkfHx2KS5maW5kKGkpOnRoaXMuY29uc3RydWN0b3IoZCkuZmluZChpKTtlbHNle2lmKGkubm9kZVR5cGUpcmV0dXJuIHRoaXNbMF09aSx0aGlzLmxlbmd0aD0xLHRoaXM7aWYoayhpKSlyZXR1cm4gdi5yZWFkeSE9PXZvaWQgMD92LnJlYWR5KGkpOmkodSl9cmV0dXJuIHUubWFrZUFycmF5KGksdGhpcyl9O1R0LnByb3RvdHlwZT11LmZuLHR0PXUoRik7dmFyIEF0PS9eKD86cGFyZW50c3xwcmV2KD86VW50aWx8QWxsKSkvLGt0PXtjaGlsZHJlbjohMCxjb250ZW50czohMCxuZXh0OiEwLHByZXY6ITB9O3UuZm4uZXh0ZW5kKHtoYXM6ZnVuY3Rpb24oaSl7dmFyIGQ9dShpLHRoaXMpLHY9ZC5sZW5ndGg7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKHZhciB4PTA7eDx2O3grKylpZih1LmNvbnRhaW5zKHRoaXMsZFt4XSkpcmV0dXJuITB9KX0sY2xvc2VzdDpmdW5jdGlvbihpLGQpe3ZhciB2LHg9MCxBPXRoaXMubGVuZ3RoLEk9W10sRT10eXBlb2YgaSE9InN0cmluZyImJnUoaSk7aWYoIUcudGVzdChpKSl7Zm9yKDt4PEE7eCsrKWZvcih2PXRoaXNbeF07diYmdiE9PWQ7dj12LnBhcmVudE5vZGUpaWYodi5ub2RlVHlwZTwxMSYmKEU/RS5pbmRleCh2KT4tMTp2Lm5vZGVUeXBlPT09MSYmdS5maW5kLm1hdGNoZXNTZWxlY3Rvcih2LGkpKSl7SS5wdXNoKHYpO2JyZWFrfX1yZXR1cm4gdGhpcy5wdXNoU3RhY2soSS5sZW5ndGg+MT91LnVuaXF1ZVNvcnQoSSk6SSl9LGluZGV4OmZ1bmN0aW9uKGkpe3JldHVybiBpP3R5cGVvZiBpPT0ic3RyaW5nIj9jLmNhbGwodShpKSx0aGlzWzBdKTpjLmNhbGwodGhpcyxpLmpxdWVyeT9pWzBdOmkpOnRoaXNbMF0mJnRoaXNbMF0ucGFyZW50Tm9kZT90aGlzLmZpcnN0KCkucHJldkFsbCgpLmxlbmd0aDotMX0sYWRkOmZ1bmN0aW9uKGksZCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHUudW5pcXVlU29ydCh1Lm1lcmdlKHRoaXMuZ2V0KCksdShpLGQpKSkpfSxhZGRCYWNrOmZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLmFkZChpPT1udWxsP3RoaXMucHJldk9iamVjdDp0aGlzLnByZXZPYmplY3QuZmlsdGVyKGkpKX19KTtmdW5jdGlvbiBMdChpLGQpe2Zvcig7KGk9aVtkXSkmJmkubm9kZVR5cGUhPT0xOyk7cmV0dXJuIGl9dS5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24oaSl7dmFyIGQ9aS5wYXJlbnROb2RlO3JldHVybiBkJiZkLm5vZGVUeXBlIT09MTE/ZDpudWxsfSxwYXJlbnRzOmZ1bmN0aW9uKGkpe3JldHVybiBYKGksInBhcmVudE5vZGUiKX0scGFyZW50c1VudGlsOmZ1bmN0aW9uKGksZCx2KXtyZXR1cm4gWChpLCJwYXJlbnROb2RlIix2KX0sbmV4dDpmdW5jdGlvbihpKXtyZXR1cm4gTHQoaSwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihpKXtyZXR1cm4gTHQoaSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRBbGw6ZnVuY3Rpb24oaSl7cmV0dXJuIFgoaSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihpKXtyZXR1cm4gWChpLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dFVudGlsOmZ1bmN0aW9uKGksZCx2KXtyZXR1cm4gWChpLCJuZXh0U2libGluZyIsdil9LHByZXZVbnRpbDpmdW5jdGlvbihpLGQsdil7cmV0dXJuIFgoaSwicHJldmlvdXNTaWJsaW5nIix2KX0sc2libGluZ3M6ZnVuY3Rpb24oaSl7cmV0dXJuIGooKGkucGFyZW50Tm9kZXx8e30pLmZpcnN0Q2hpbGQsaSl9LGNoaWxkcmVuOmZ1bmN0aW9uKGkpe3JldHVybiBqKGkuZmlyc3RDaGlsZCl9LGNvbnRlbnRzOmZ1bmN0aW9uKGkpe3JldHVybiBpLmNvbnRlbnREb2N1bWVudCE9bnVsbCYmbihpLmNvbnRlbnREb2N1bWVudCk/aS5jb250ZW50RG9jdW1lbnQ6KHEoaSwidGVtcGxhdGUiKSYmKGk9aS5jb250ZW50fHxpKSx1Lm1lcmdlKFtdLGkuY2hpbGROb2RlcykpfX0sZnVuY3Rpb24oaSxkKXt1LmZuW2ldPWZ1bmN0aW9uKHYseCl7dmFyIEE9dS5tYXAodGhpcyxkLHYpO3JldHVybiBpLnNsaWNlKC01KSE9PSJVbnRpbCImJih4PXYpLHgmJnR5cGVvZiB4PT0ic3RyaW5nIiYmKEE9dS5maWx0ZXIoeCxBKSksdGhpcy5sZW5ndGg+MSYmKGt0W2ldfHx1LnVuaXF1ZVNvcnQoQSksQXQudGVzdChpKSYmQS5yZXZlcnNlKCkpLHRoaXMucHVzaFN0YWNrKEEpfX0pO3ZhciBCdD0vW15ceDIwXHRcclxuXGZdKy9nO2Z1bmN0aW9uICR0KGkpe3ZhciBkPXt9O3JldHVybiB1LmVhY2goaS5tYXRjaChCdCl8fFtdLGZ1bmN0aW9uKHYseCl7ZFt4XT0hMH0pLGR9dS5DYWxsYmFja3M9ZnVuY3Rpb24oaSl7aT10eXBlb2YgaT09InN0cmluZyI/JHQoaSk6dS5leHRlbmQoe30saSk7dmFyIGQsdix4LEEsST1bXSxFPVtdLCQ9LTEsVT1mdW5jdGlvbigpe2ZvcihBPUF8fGkub25jZSx4PWQ9ITA7RS5sZW5ndGg7JD0tMSlmb3Iodj1FLnNoaWZ0KCk7KyskPEkubGVuZ3RoOylJWyRdLmFwcGx5KHZbMF0sdlsxXSk9PT0hMSYmaS5zdG9wT25GYWxzZSYmKCQ9SS5sZW5ndGgsdj0hMSk7aS5tZW1vcnl8fCh2PSExKSxkPSExLEEmJih2P0k9W106ST0iIil9LFE9e2FkZDpmdW5jdGlvbigpe3JldHVybiBJJiYodiYmIWQmJigkPUkubGVuZ3RoLTEsRS5wdXNoKHYpKSxmdW5jdGlvbiBkdChmdCl7dS5lYWNoKGZ0LGZ1bmN0aW9uKGl0LHd0KXtrKHd0KT8oIWkudW5pcXVlfHwhUS5oYXMod3QpKSYmSS5wdXNoKHd0KTp3dCYmd3QubGVuZ3RoJiZmKHd0KSE9PSJzdHJpbmciJiZkdCh3dCl9KX0oYXJndW1lbnRzKSx2JiYhZCYmVSgpKSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gdS5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbihkdCxmdCl7Zm9yKHZhciBpdDsoaXQ9dS5pbkFycmF5KGZ0LEksaXQpKT4tMTspSS5zcGxpY2UoaXQsMSksaXQ8PSQmJiQtLX0pLHRoaXN9LGhhczpmdW5jdGlvbihkdCl7cmV0dXJuIGR0P3UuaW5BcnJheShkdCxJKT4tMTpJLmxlbmd0aD4wfSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBJJiYoST1bXSksdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBBPUU9W10sST12PSIiLHRoaXN9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIUl9LGxvY2s6ZnVuY3Rpb24oKXtyZXR1cm4gQT1FPVtdLCF2JiYhZCYmKEk9dj0iIiksdGhpc30sbG9ja2VkOmZ1bmN0aW9uKCl7cmV0dXJuISFBfSxmaXJlV2l0aDpmdW5jdGlvbihkdCxmdCl7cmV0dXJuIEF8fChmdD1mdHx8W10sZnQ9W2R0LGZ0LnNsaWNlP2Z0LnNsaWNlKCk6ZnRdLEUucHVzaChmdCksZHx8VSgpKSx0aGlzfSxmaXJlOmZ1bmN0aW9uKCl7cmV0dXJuIFEuZmlyZVdpdGgodGhpcyxhcmd1bWVudHMpLHRoaXN9LGZpcmVkOmZ1bmN0aW9uKCl7cmV0dXJuISF4fX07cmV0dXJuIFF9O2Z1bmN0aW9uIEt0KGkpe3JldHVybiBpfWZ1bmN0aW9uIEQoaSl7dGhyb3cgaX1mdW5jdGlvbiB1dChpLGQsdix4KXt2YXIgQTt0cnl7aSYmayhBPWkucHJvbWlzZSk/QS5jYWxsKGkpLmRvbmUoZCkuZmFpbCh2KTppJiZrKEE9aS50aGVuKT9BLmNhbGwoaSxkLHYpOmQuYXBwbHkodm9pZCAwLFtpXS5zbGljZSh4KSl9Y2F0Y2goSSl7di5hcHBseSh2b2lkIDAsW0ldKX19dS5leHRlbmQoe0RlZmVycmVkOmZ1bmN0aW9uKGkpe3ZhciBkPVtbIm5vdGlmeSIsInByb2dyZXNzIix1LkNhbGxiYWNrcygibWVtb3J5IiksdS5DYWxsYmFja3MoIm1lbW9yeSIpLDJdLFsicmVzb2x2ZSIsImRvbmUiLHUuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLHUuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLDAsInJlc29sdmVkIl0sWyJyZWplY3QiLCJmYWlsIix1LkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSx1LkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwxLCJyZWplY3RlZCJdXSx2PSJwZW5kaW5nIix4PXtzdGF0ZTpmdW5jdGlvbigpe3JldHVybiB2fSxhbHdheXM6ZnVuY3Rpb24oKXtyZXR1cm4gQS5kb25lKGFyZ3VtZW50cykuZmFpbChhcmd1bWVudHMpLHRoaXN9LGNhdGNoOmZ1bmN0aW9uKEkpe3JldHVybiB4LnRoZW4obnVsbCxJKX0scGlwZTpmdW5jdGlvbigpe3ZhciBJPWFyZ3VtZW50cztyZXR1cm4gdS5EZWZlcnJlZChmdW5jdGlvbihFKXt1LmVhY2goZCxmdW5jdGlvbigkLFUpe3ZhciBRPWsoSVtVWzRdXSkmJklbVVs0XV07QVtVWzFdXShmdW5jdGlvbigpe3ZhciBkdD1RJiZRLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtkdCYmayhkdC5wcm9taXNlKT9kdC5wcm9taXNlKCkucHJvZ3Jlc3MoRS5ub3RpZnkpLmRvbmUoRS5yZXNvbHZlKS5mYWlsKEUucmVqZWN0KTpFW1VbMF0rIldpdGgiXSh0aGlzLFE/W2R0XTphcmd1bWVudHMpfSl9KSxJPW51bGx9KS5wcm9taXNlKCl9LHRoZW46ZnVuY3Rpb24oSSxFLCQpe3ZhciBVPTA7ZnVuY3Rpb24gUShkdCxmdCxpdCx3dCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEV0PXRoaXMsR3Q9YXJndW1lbnRzLE10PWZ1bmN0aW9uKCl7dmFyIHNlLE1lO2lmKCEoZHQ8VSkpe2lmKHNlPWl0LmFwcGx5KEV0LEd0KSxzZT09PWZ0LnByb21pc2UoKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGVuYWJsZSBzZWxmLXJlc29sdXRpb24iKTtNZT1zZSYmKHR5cGVvZiBzZT09Im9iamVjdCJ8fHR5cGVvZiBzZT09ImZ1bmN0aW9uIikmJnNlLnRoZW4sayhNZSk/d3Q/TWUuY2FsbChzZSxRKFUsZnQsS3Qsd3QpLFEoVSxmdCxELHd0KSk6KFUrKyxNZS5jYWxsKHNlLFEoVSxmdCxLdCx3dCksUShVLGZ0LEQsd3QpLFEoVSxmdCxLdCxmdC5ub3RpZnlXaXRoKSkpOihpdCE9PUt0JiYoRXQ9dm9pZCAwLEd0PVtzZV0pLCh3dHx8ZnQucmVzb2x2ZVdpdGgpKEV0LEd0KSl9fSxsZT13dD9NdDpmdW5jdGlvbigpe3RyeXtNdCgpfWNhdGNoKHNlKXt1LkRlZmVycmVkLmV4Y2VwdGlvbkhvb2smJnUuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayhzZSxsZS5lcnJvciksZHQrMT49VSYmKGl0IT09RCYmKEV0PXZvaWQgMCxHdD1bc2VdKSxmdC5yZWplY3RXaXRoKEV0LEd0KSl9fTtkdD9sZSgpOih1LkRlZmVycmVkLmdldEVycm9ySG9vaz9sZS5lcnJvcj11LkRlZmVycmVkLmdldEVycm9ySG9vaygpOnUuRGVmZXJyZWQuZ2V0U3RhY2tIb29rJiYobGUuZXJyb3I9dS5EZWZlcnJlZC5nZXRTdGFja0hvb2soKSksdC5zZXRUaW1lb3V0KGxlKSl9fXJldHVybiB1LkRlZmVycmVkKGZ1bmN0aW9uKGR0KXtkWzBdWzNdLmFkZChRKDAsZHQsaygkKT8kOkt0LGR0Lm5vdGlmeVdpdGgpKSxkWzFdWzNdLmFkZChRKDAsZHQsayhJKT9JOkt0KSksZFsyXVszXS5hZGQoUSgwLGR0LGsoRSk/RTpEKSl9KS5wcm9taXNlKCl9LHByb21pc2U6ZnVuY3Rpb24oSSl7cmV0dXJuIEkhPW51bGw/dS5leHRlbmQoSSx4KTp4fX0sQT17fTtyZXR1cm4gdS5lYWNoKGQsZnVuY3Rpb24oSSxFKXt2YXIgJD1FWzJdLFU9RVs1XTt4W0VbMV1dPSQuYWRkLFUmJiQuYWRkKGZ1bmN0aW9uKCl7dj1VfSxkWzMtSV1bMl0uZGlzYWJsZSxkWzMtSV1bM10uZGlzYWJsZSxkWzBdWzJdLmxvY2ssZFswXVszXS5sb2NrKSwkLmFkZChFWzNdLmZpcmUpLEFbRVswXV09ZnVuY3Rpb24oKXtyZXR1cm4gQVtFWzBdKyJXaXRoIl0odGhpcz09PUE/dm9pZCAwOnRoaXMsYXJndW1lbnRzKSx0aGlzfSxBW0VbMF0rIldpdGgiXT0kLmZpcmVXaXRofSkseC5wcm9taXNlKEEpLGkmJmkuY2FsbChBLEEpLEF9LHdoZW46ZnVuY3Rpb24oaSl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aCx2PWQseD1BcnJheSh2KSxBPXMuY2FsbChhcmd1bWVudHMpLEk9dS5EZWZlcnJlZCgpLEU9ZnVuY3Rpb24oJCl7cmV0dXJuIGZ1bmN0aW9uKFUpe3hbJF09dGhpcyxBWyRdPWFyZ3VtZW50cy5sZW5ndGg+MT9zLmNhbGwoYXJndW1lbnRzKTpVLC0tZHx8SS5yZXNvbHZlV2l0aCh4LEEpfX07aWYoZDw9MSYmKHV0KGksSS5kb25lKEUodikpLnJlc29sdmUsSS5yZWplY3QsIWQpLEkuc3RhdGUoKT09PSJwZW5kaW5nInx8ayhBW3ZdJiZBW3ZdLnRoZW4pKSlyZXR1cm4gSS50aGVuKCk7Zm9yKDt2LS07KXV0KEFbdl0sRSh2KSxJLnJlamVjdCk7cmV0dXJuIEkucHJvbWlzZSgpfX0pO3ZhciBvdD0vXihFdmFsfEludGVybmFsfFJhbmdlfFJlZmVyZW5jZXxTeW50YXh8VHlwZXxVUkkpRXJyb3IkLzt1LkRlZmVycmVkLmV4Y2VwdGlvbkhvb2s9ZnVuY3Rpb24oaSxkKXt0LmNvbnNvbGUmJnQuY29uc29sZS53YXJuJiZpJiZvdC50ZXN0KGkubmFtZSkmJnQuY29uc29sZS53YXJuKCJqUXVlcnkuRGVmZXJyZWQgZXhjZXB0aW9uOiAiK2kubWVzc2FnZSxpLnN0YWNrLGQpfSx1LnJlYWR5RXhjZXB0aW9uPWZ1bmN0aW9uKGkpe3Quc2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGl9KX07dmFyIEg9dS5EZWZlcnJlZCgpO3UuZm4ucmVhZHk9ZnVuY3Rpb24oaSl7cmV0dXJuIEgudGhlbihpKS5jYXRjaChmdW5jdGlvbihkKXt1LnJlYWR5RXhjZXB0aW9uKGQpfSksdGhpc30sdS5leHRlbmQoe2lzUmVhZHk6ITEscmVhZHlXYWl0OjEscmVhZHk6ZnVuY3Rpb24oaSl7KGk9PT0hMD8tLXUucmVhZHlXYWl0OnUuaXNSZWFkeSl8fCh1LmlzUmVhZHk9ITAsIShpIT09ITAmJi0tdS5yZWFkeVdhaXQ+MCkmJkgucmVzb2x2ZVdpdGgoRixbdV0pKX19KSx1LnJlYWR5LnRoZW49SC50aGVuO2Z1bmN0aW9uIE0oKXtGLnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLE0pLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsTSksdS5yZWFkeSgpfUYucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSJ8fEYucmVhZHlTdGF0ZSE9PSJsb2FkaW5nIiYmIUYuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsP3Quc2V0VGltZW91dCh1LnJlYWR5KTooRi5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixNKSx0LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLE0pKTt2YXIgWT1mdW5jdGlvbihpLGQsdix4LEEsSSxFKXt2YXIgJD0wLFU9aS5sZW5ndGgsUT12PT1udWxsO2lmKGYodik9PT0ib2JqZWN0Iil7QT0hMDtmb3IoJCBpbiB2KVkoaSxkLCQsdlskXSwhMCxJLEUpfWVsc2UgaWYoeCE9PXZvaWQgMCYmKEE9ITAsayh4KXx8KEU9ITApLFEmJihFPyhkLmNhbGwoaSx4KSxkPW51bGwpOihRPWQsZD1mdW5jdGlvbihkdCxmdCxpdCl7cmV0dXJuIFEuY2FsbCh1KGR0KSxpdCl9KSksZCkpZm9yKDskPFU7JCsrKWQoaVskXSx2LEU/eDp4LmNhbGwoaVskXSwkLGQoaVskXSx2KSkpO3JldHVybiBBP2k6UT9kLmNhbGwoaSk6VT9kKGlbMF0sdik6SX0scHQ9L14tbXMtLyxtdD0vLShbYS16XSkvZztmdW5jdGlvbiBydChpLGQpe3JldHVybiBkLnRvVXBwZXJDYXNlKCl9ZnVuY3Rpb24gZ3QoaSl7cmV0dXJuIGkucmVwbGFjZShwdCwibXMtIikucmVwbGFjZShtdCxydCl9dmFyIEN0PWZ1bmN0aW9uKGkpe3JldHVybiBpLm5vZGVUeXBlPT09MXx8aS5ub2RlVHlwZT09PTl8fCEraS5ub2RlVHlwZX07ZnVuY3Rpb24geHQoKXt0aGlzLmV4cGFuZG89dS5leHBhbmRvK3h0LnVpZCsrfXh0LnVpZD0xLHh0LnByb3RvdHlwZT17Y2FjaGU6ZnVuY3Rpb24oaSl7dmFyIGQ9aVt0aGlzLmV4cGFuZG9dO3JldHVybiBkfHwoZD17fSxDdChpKSYmKGkubm9kZVR5cGU/aVt0aGlzLmV4cGFuZG9dPWQ6T2JqZWN0LmRlZmluZVByb3BlcnR5KGksdGhpcy5leHBhbmRvLHt2YWx1ZTpkLGNvbmZpZ3VyYWJsZTohMH0pKSksZH0sc2V0OmZ1bmN0aW9uKGksZCx2KXt2YXIgeCxBPXRoaXMuY2FjaGUoaSk7aWYodHlwZW9mIGQ9PSJzdHJpbmciKUFbZ3QoZCldPXY7ZWxzZSBmb3IoeCBpbiBkKUFbZ3QoeCldPWRbeF07cmV0dXJuIEF9LGdldDpmdW5jdGlvbihpLGQpe3JldHVybiBkPT09dm9pZCAwP3RoaXMuY2FjaGUoaSk6aVt0aGlzLmV4cGFuZG9dJiZpW3RoaXMuZXhwYW5kb11bZ3QoZCldfSxhY2Nlc3M6ZnVuY3Rpb24oaSxkLHYpe3JldHVybiBkPT09dm9pZCAwfHxkJiZ0eXBlb2YgZD09InN0cmluZyImJnY9PT12b2lkIDA/dGhpcy5nZXQoaSxkKToodGhpcy5zZXQoaSxkLHYpLHYhPT12b2lkIDA/djpkKX0scmVtb3ZlOmZ1bmN0aW9uKGksZCl7dmFyIHYseD1pW3RoaXMuZXhwYW5kb107aWYoeCE9PXZvaWQgMCl7aWYoZCE9PXZvaWQgMClmb3IoQXJyYXkuaXNBcnJheShkKT9kPWQubWFwKGd0KTooZD1ndChkKSxkPWQgaW4geD9bZF06ZC5tYXRjaChCdCl8fFtdKSx2PWQubGVuZ3RoO3YtLTspZGVsZXRlIHhbZFt2XV07KGQ9PT12b2lkIDB8fHUuaXNFbXB0eU9iamVjdCh4KSkmJihpLm5vZGVUeXBlP2lbdGhpcy5leHBhbmRvXT12b2lkIDA6ZGVsZXRlIGlbdGhpcy5leHBhbmRvXSl9fSxoYXNEYXRhOmZ1bmN0aW9uKGkpe3ZhciBkPWlbdGhpcy5leHBhbmRvXTtyZXR1cm4gZCE9PXZvaWQgMCYmIXUuaXNFbXB0eU9iamVjdChkKX19O3ZhciBidD1uZXcgeHQsenQ9bmV3IHh0LFV0PS9eKD86XHtbXHdcV10qXH18XFtbXHdcV10qXF0pJC8scGU9L1tBLVpdL2c7ZnVuY3Rpb24gc3IoaSl7cmV0dXJuIGk9PT0idHJ1ZSI/ITA6aT09PSJmYWxzZSI/ITE6aT09PSJudWxsIj9udWxsOmk9PT0raSsiIj8raTpVdC50ZXN0KGkpP0pTT04ucGFyc2UoaSk6aX1mdW5jdGlvbiB3ZShpLGQsdil7dmFyIHg7aWYodj09PXZvaWQgMCYmaS5ub2RlVHlwZT09PTEpaWYoeD0iZGF0YS0iK2QucmVwbGFjZShwZSwiLSQmIikudG9Mb3dlckNhc2UoKSx2PWkuZ2V0QXR0cmlidXRlKHgpLHR5cGVvZiB2PT0ic3RyaW5nIil7dHJ5e3Y9c3Iodil9Y2F0Y2h7fXp0LnNldChpLGQsdil9ZWxzZSB2PXZvaWQgMDtyZXR1cm4gdn11LmV4dGVuZCh7aGFzRGF0YTpmdW5jdGlvbihpKXtyZXR1cm4genQuaGFzRGF0YShpKXx8YnQuaGFzRGF0YShpKX0sZGF0YTpmdW5jdGlvbihpLGQsdil7cmV0dXJuIHp0LmFjY2VzcyhpLGQsdil9LHJlbW92ZURhdGE6ZnVuY3Rpb24oaSxkKXt6dC5yZW1vdmUoaSxkKX0sX2RhdGE6ZnVuY3Rpb24oaSxkLHYpe3JldHVybiBidC5hY2Nlc3MoaSxkLHYpfSxfcmVtb3ZlRGF0YTpmdW5jdGlvbihpLGQpe2J0LnJlbW92ZShpLGQpfX0pLHUuZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGksZCl7dmFyIHYseCxBLEk9dGhpc1swXSxFPUkmJkkuYXR0cmlidXRlcztpZihpPT09dm9pZCAwKXtpZih0aGlzLmxlbmd0aCYmKEE9enQuZ2V0KEkpLEkubm9kZVR5cGU9PT0xJiYhYnQuZ2V0KEksImhhc0RhdGFBdHRycyIpKSl7Zm9yKHY9RS5sZW5ndGg7di0tOylFW3ZdJiYoeD1FW3ZdLm5hbWUseC5pbmRleE9mKCJkYXRhLSIpPT09MCYmKHg9Z3QoeC5zbGljZSg1KSksd2UoSSx4LEFbeF0pKSk7YnQuc2V0KEksImhhc0RhdGFBdHRycyIsITApfXJldHVybiBBfXJldHVybiB0eXBlb2YgaT09Im9iamVjdCI/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7enQuc2V0KHRoaXMsaSl9KTpZKHRoaXMsZnVuY3Rpb24oJCl7dmFyIFU7aWYoSSYmJD09PXZvaWQgMClyZXR1cm4gVT16dC5nZXQoSSxpKSxVIT09dm9pZCAwfHwoVT13ZShJLGkpLFUhPT12b2lkIDApP1U6dm9pZCAwO3RoaXMuZWFjaChmdW5jdGlvbigpe3p0LnNldCh0aGlzLGksJCl9KX0sbnVsbCxkLGFyZ3VtZW50cy5sZW5ndGg+MSxudWxsLCEwKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihpKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7enQucmVtb3ZlKHRoaXMsaSl9KX19KSx1LmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oaSxkLHYpe3ZhciB4O2lmKGkpcmV0dXJuIGQ9KGR8fCJmeCIpKyJxdWV1ZSIseD1idC5nZXQoaSxkKSx2JiYoIXh8fEFycmF5LmlzQXJyYXkodik/eD1idC5hY2Nlc3MoaSxkLHUubWFrZUFycmF5KHYpKTp4LnB1c2godikpLHh8fFtdfSxkZXF1ZXVlOmZ1bmN0aW9uKGksZCl7ZD1kfHwiZngiO3ZhciB2PXUucXVldWUoaSxkKSx4PXYubGVuZ3RoLEE9di5zaGlmdCgpLEk9dS5fcXVldWVIb29rcyhpLGQpLEU9ZnVuY3Rpb24oKXt1LmRlcXVldWUoaSxkKX07QT09PSJpbnByb2dyZXNzIiYmKEE9di5zaGlmdCgpLHgtLSksQSYmKGQ9PT0iZngiJiZ2LnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgSS5zdG9wLEEuY2FsbChpLEUsSSkpLCF4JiZJJiZJLmVtcHR5LmZpcmUoKX0sX3F1ZXVlSG9va3M6ZnVuY3Rpb24oaSxkKXt2YXIgdj1kKyJxdWV1ZUhvb2tzIjtyZXR1cm4gYnQuZ2V0KGksdil8fGJ0LmFjY2VzcyhpLHYse2VtcHR5OnUuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLmFkZChmdW5jdGlvbigpe2J0LnJlbW92ZShpLFtkKyJxdWV1ZSIsdl0pfSl9KX19KSx1LmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oaSxkKXt2YXIgdj0yO3JldHVybiB0eXBlb2YgaSE9InN0cmluZyImJihkPWksaT0iZngiLHYtLSksYXJndW1lbnRzLmxlbmd0aDx2P3UucXVldWUodGhpc1swXSxpKTpkPT09dm9pZCAwP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHg9dS5xdWV1ZSh0aGlzLGksZCk7dS5fcXVldWVIb29rcyh0aGlzLGkpLGk9PT0iZngiJiZ4WzBdIT09ImlucHJvZ3Jlc3MiJiZ1LmRlcXVldWUodGhpcyxpKX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt1LmRlcXVldWUodGhpcyxpKX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLnF1ZXVlKGl8fCJmeCIsW10pfSxwcm9taXNlOmZ1bmN0aW9uKGksZCl7dmFyIHYseD0xLEE9dS5EZWZlcnJlZCgpLEk9dGhpcyxFPXRoaXMubGVuZ3RoLCQ9ZnVuY3Rpb24oKXstLXh8fEEucmVzb2x2ZVdpdGgoSSxbSV0pfTtmb3IodHlwZW9mIGkhPSJzdHJpbmciJiYoZD1pLGk9dm9pZCAwKSxpPWl8fCJmeCI7RS0tOyl2PWJ0LmdldChJW0VdLGkrInF1ZXVlSG9va3MiKSx2JiZ2LmVtcHR5JiYoeCsrLHYuZW1wdHkuYWRkKCQpKTtyZXR1cm4gJCgpLEEucHJvbWlzZShkKX19KTt2YXIgWWU9L1srLV0/KD86XGQqXC58KVxkKyg/OltlRV1bKy1dP1xkK3wpLy5zb3VyY2UsdGU9bmV3IFJlZ0V4cCgiXig/OihbKy1dKT18KSgiK1llKyIpKFthLXolXSopJCIsImkiKSxiZT1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLE9lPUYuZG9jdW1lbnRFbGVtZW50LGRlPWZ1bmN0aW9uKGkpe3JldHVybiB1LmNvbnRhaW5zKGkub3duZXJEb2N1bWVudCxpKX0sdG49e2NvbXBvc2VkOiEwfTtPZS5nZXRSb290Tm9kZSYmKGRlPWZ1bmN0aW9uKGkpe3JldHVybiB1LmNvbnRhaW5zKGkub3duZXJEb2N1bWVudCxpKXx8aS5nZXRSb290Tm9kZSh0bik9PT1pLm93bmVyRG9jdW1lbnR9KTt2YXIgZ3I9ZnVuY3Rpb24oaSxkKXtyZXR1cm4gaT1kfHxpLGkuc3R5bGUuZGlzcGxheT09PSJub25lInx8aS5zdHlsZS5kaXNwbGF5PT09IiImJmRlKGkpJiZ1LmNzcyhpLCJkaXNwbGF5Iik9PT0ibm9uZSJ9O2Z1bmN0aW9uIGVuKGksZCx2LHgpe3ZhciBBLEksRT0yMCwkPXg/ZnVuY3Rpb24oKXtyZXR1cm4geC5jdXIoKX06ZnVuY3Rpb24oKXtyZXR1cm4gdS5jc3MoaSxkLCIiKX0sVT0kKCksUT12JiZ2WzNdfHwodS5jc3NOdW1iZXJbZF0/IiI6InB4IiksZHQ9aS5ub2RlVHlwZSYmKHUuY3NzTnVtYmVyW2RdfHxRIT09InB4IiYmK1UpJiZ0ZS5leGVjKHUuY3NzKGksZCkpO2lmKGR0JiZkdFszXSE9PVEpe2ZvcihVPVUvMixRPVF8fGR0WzNdLGR0PStVfHwxO0UtLTspdS5zdHlsZShpLGQsZHQrUSksKDEtSSkqKDEtKEk9JCgpL1V8fC41KSk8PTAmJihFPTApLGR0PWR0L0k7ZHQ9ZHQqMix1LnN0eWxlKGksZCxkdCtRKSx2PXZ8fFtdfXJldHVybiB2JiYoZHQ9K2R0fHwrVXx8MCxBPXZbMV0/ZHQrKHZbMV0rMSkqdlsyXTordlsyXSx4JiYoeC51bml0PVEseC5zdGFydD1kdCx4LmVuZD1BKSksQX12YXIgcm49e307ZnVuY3Rpb24gbm4oaSl7dmFyIGQsdj1pLm93bmVyRG9jdW1lbnQseD1pLm5vZGVOYW1lLEE9cm5beF07cmV0dXJuIEF8fChkPXYuYm9keS5hcHBlbmRDaGlsZCh2LmNyZWF0ZUVsZW1lbnQoeCkpLEE9dS5jc3MoZCwiZGlzcGxheSIpLGQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChkKSxBPT09Im5vbmUiJiYoQT0iYmxvY2siKSxyblt4XT1BLEEpfWZ1bmN0aW9uIFRlKGksZCl7Zm9yKHZhciB2LHgsQT1bXSxJPTAsRT1pLmxlbmd0aDtJPEU7SSsrKXg9aVtJXSx4LnN0eWxlJiYodj14LnN0eWxlLmRpc3BsYXksZD8odj09PSJub25lIiYmKEFbSV09YnQuZ2V0KHgsImRpc3BsYXkiKXx8bnVsbCxBW0ldfHwoeC5zdHlsZS5kaXNwbGF5PSIiKSkseC5zdHlsZS5kaXNwbGF5PT09IiImJmdyKHgpJiYoQVtJXT1ubih4KSkpOnYhPT0ibm9uZSImJihBW0ldPSJub25lIixidC5zZXQoeCwiZGlzcGxheSIsdikpKTtmb3IoST0wO0k8RTtJKyspQVtJXSE9bnVsbCYmKGlbSV0uc3R5bGUuZGlzcGxheT1BW0ldKTtyZXR1cm4gaX11LmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbigpe3JldHVybiBUZSh0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiBUZSh0aGlzKX0sdG9nZ2xlOmZ1bmN0aW9uKGkpe3JldHVybiB0eXBlb2YgaT09ImJvb2xlYW4iP2k/dGhpcy5zaG93KCk6dGhpcy5oaWRlKCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7Z3IodGhpcyk/dSh0aGlzKS5zaG93KCk6dSh0aGlzKS5oaWRlKCl9KX19KTt2YXIgamU9L14oPzpjaGVja2JveHxyYWRpbykkL2ksR2k9LzwoW2Etel1bXlwvXDA+XHgyMFx0XHJcblxmXSopL2ksWGk9L14kfF5tb2R1bGUkfFwvKD86amF2YXxlY21hKXNjcmlwdC9pOyhmdW5jdGlvbigpe3ZhciBpPUYuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGQ9aS5hcHBlbmRDaGlsZChGLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSx2PUYuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTt2LnNldEF0dHJpYnV0ZSgidHlwZSIsInJhZGlvIiksdi5zZXRBdHRyaWJ1dGUoImNoZWNrZWQiLCJjaGVja2VkIiksdi5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJ0IiksZC5hcHBlbmRDaGlsZCh2KSx3LmNoZWNrQ2xvbmU9ZC5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQsZC5pbm5lckhUTUw9Ijx0ZXh0YXJlYT54PC90ZXh0YXJlYT4iLHcubm9DbG9uZUNoZWNrZWQ9ISFkLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZSxkLmlubmVySFRNTD0iPG9wdGlvbj48L29wdGlvbj4iLHcub3B0aW9uPSEhZC5sYXN0Q2hpbGR9KSgpO3ZhciBrZT17dGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLGNvbDpbMiwiPHRhYmxlPjxjb2xncm91cD4iLCI8L2NvbGdyb3VwPjwvdGFibGU+Il0sdHI6WzIsIjx0YWJsZT48dGJvZHk+IiwiPC90Ym9keT48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxfZGVmYXVsdDpbMCwiIiwiIl19O2tlLnRib2R5PWtlLnRmb290PWtlLmNvbGdyb3VwPWtlLmNhcHRpb249a2UudGhlYWQsa2UudGg9a2UudGQsdy5vcHRpb258fChrZS5vcHRncm91cD1rZS5vcHRpb249WzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSk7ZnVuY3Rpb24gdmUoaSxkKXt2YXIgdjtyZXR1cm4gdHlwZW9mIGkuZ2V0RWxlbWVudHNCeVRhZ05hbWU8InUiP3Y9aS5nZXRFbGVtZW50c0J5VGFnTmFtZShkfHwiKiIpOnR5cGVvZiBpLnF1ZXJ5U2VsZWN0b3JBbGw8InUiP3Y9aS5xdWVyeVNlbGVjdG9yQWxsKGR8fCIqIik6dj1bXSxkPT09dm9pZCAwfHxkJiZxKGksZCk/dS5tZXJnZShbaV0sdik6dn1mdW5jdGlvbiBMbihpLGQpe2Zvcih2YXIgdj0wLHg9aS5sZW5ndGg7djx4O3YrKylidC5zZXQoaVt2XSwiZ2xvYmFsRXZhbCIsIWR8fGJ0LmdldChkW3ZdLCJnbG9iYWxFdmFsIikpfXZhciBxcz0vPHwmIz9cdys7LztmdW5jdGlvbiAkaShpLGQsdix4LEEpe2Zvcih2YXIgSSxFLCQsVSxRLGR0LGZ0PWQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGl0PVtdLHd0PTAsRXQ9aS5sZW5ndGg7d3Q8RXQ7d3QrKylpZihJPWlbd3RdLEl8fEk9PT0wKWlmKGYoSSk9PT0ib2JqZWN0Iil1Lm1lcmdlKGl0LEkubm9kZVR5cGU/W0ldOkkpO2Vsc2UgaWYoIXFzLnRlc3QoSSkpaXQucHVzaChkLmNyZWF0ZVRleHROb2RlKEkpKTtlbHNle2ZvcihFPUV8fGZ0LmFwcGVuZENoaWxkKGQuY3JlYXRlRWxlbWVudCgiZGl2IikpLCQ9KEdpLmV4ZWMoSSl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCksVT1rZVskXXx8a2UuX2RlZmF1bHQsRS5pbm5lckhUTUw9VVsxXSt1Lmh0bWxQcmVmaWx0ZXIoSSkrVVsyXSxkdD1VWzBdO2R0LS07KUU9RS5sYXN0Q2hpbGQ7dS5tZXJnZShpdCxFLmNoaWxkTm9kZXMpLEU9ZnQuZmlyc3RDaGlsZCxFLnRleHRDb250ZW50PSIifWZvcihmdC50ZXh0Q29udGVudD0iIix3dD0wO0k9aXRbd3QrK107KXtpZih4JiZ1LmluQXJyYXkoSSx4KT4tMSl7QSYmQS5wdXNoKEkpO2NvbnRpbnVlfWlmKFE9ZGUoSSksRT12ZShmdC5hcHBlbmRDaGlsZChJKSwic2NyaXB0IiksUSYmTG4oRSksdilmb3IoZHQ9MDtJPUVbZHQrK107KVhpLnRlc3QoSS50eXBlfHwiIikmJnYucHVzaChJKX1yZXR1cm4gZnR9dmFyIFppPS9eKFteLl0qKSg/OlwuKC4rKXwpLztmdW5jdGlvbiB5cigpe3JldHVybiEwfWZ1bmN0aW9uIHdyKCl7cmV0dXJuITF9ZnVuY3Rpb24gem4oaSxkLHYseCxBLEkpe3ZhciBFLCQ7aWYodHlwZW9mIGQ9PSJvYmplY3QiKXt0eXBlb2YgdiE9InN0cmluZyImJih4PXh8fHYsdj12b2lkIDApO2ZvcigkIGluIGQpem4oaSwkLHYseCxkWyRdLEkpO3JldHVybiBpfWlmKHg9PW51bGwmJkE9PW51bGw/KEE9dix4PXY9dm9pZCAwKTpBPT1udWxsJiYodHlwZW9mIHY9PSJzdHJpbmciPyhBPXgseD12b2lkIDApOihBPXgseD12LHY9dm9pZCAwKSksQT09PSExKUE9d3I7ZWxzZSBpZighQSlyZXR1cm4gaTtyZXR1cm4gST09PTEmJihFPUEsQT1mdW5jdGlvbihVKXtyZXR1cm4gdSgpLm9mZihVKSxFLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sQS5ndWlkPUUuZ3VpZHx8KEUuZ3VpZD11Lmd1aWQrKykpLGkuZWFjaChmdW5jdGlvbigpe3UuZXZlbnQuYWRkKHRoaXMsZCxBLHgsdil9KX11LmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKGksZCx2LHgsQSl7dmFyIEksRSwkLFUsUSxkdCxmdCxpdCx3dCxFdCxHdCxNdD1idC5nZXQoaSk7aWYoQ3QoaSkpZm9yKHYuaGFuZGxlciYmKEk9dix2PUkuaGFuZGxlcixBPUkuc2VsZWN0b3IpLEEmJnUuZmluZC5tYXRjaGVzU2VsZWN0b3IoT2UsQSksdi5ndWlkfHwodi5ndWlkPXUuZ3VpZCsrKSwoVT1NdC5ldmVudHMpfHwoVT1NdC5ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSksKEU9TXQuaGFuZGxlKXx8KEU9TXQuaGFuZGxlPWZ1bmN0aW9uKGxlKXtyZXR1cm4gdHlwZW9mIHU8InUiJiZ1LmV2ZW50LnRyaWdnZXJlZCE9PWxlLnR5cGU/dS5ldmVudC5kaXNwYXRjaC5hcHBseShpLGFyZ3VtZW50cyk6dm9pZCAwfSksZD0oZHx8IiIpLm1hdGNoKEJ0KXx8WyIiXSxRPWQubGVuZ3RoO1EtLTspJD1aaS5leGVjKGRbUV0pfHxbXSx3dD1HdD0kWzFdLEV0PSgkWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksd3QmJihmdD11LmV2ZW50LnNwZWNpYWxbd3RdfHx7fSx3dD0oQT9mdC5kZWxlZ2F0ZVR5cGU6ZnQuYmluZFR5cGUpfHx3dCxmdD11LmV2ZW50LnNwZWNpYWxbd3RdfHx7fSxkdD11LmV4dGVuZCh7dHlwZTp3dCxvcmlnVHlwZTpHdCxkYXRhOngsaGFuZGxlcjp2LGd1aWQ6di5ndWlkLHNlbGVjdG9yOkEsbmVlZHNDb250ZXh0OkEmJnUuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdChBKSxuYW1lc3BhY2U6RXQuam9pbigiLiIpfSxJKSwoaXQ9VVt3dF0pfHwoaXQ9VVt3dF09W10saXQuZGVsZWdhdGVDb3VudD0wLCghZnQuc2V0dXB8fGZ0LnNldHVwLmNhbGwoaSx4LEV0LEUpPT09ITEpJiZpLmFkZEV2ZW50TGlzdGVuZXImJmkuYWRkRXZlbnRMaXN0ZW5lcih3dCxFKSksZnQuYWRkJiYoZnQuYWRkLmNhbGwoaSxkdCksZHQuaGFuZGxlci5ndWlkfHwoZHQuaGFuZGxlci5ndWlkPXYuZ3VpZCkpLEE/aXQuc3BsaWNlKGl0LmRlbGVnYXRlQ291bnQrKywwLGR0KTppdC5wdXNoKGR0KSx1LmV2ZW50Lmdsb2JhbFt3dF09ITApfSxyZW1vdmU6ZnVuY3Rpb24oaSxkLHYseCxBKXt2YXIgSSxFLCQsVSxRLGR0LGZ0LGl0LHd0LEV0LEd0LE10PWJ0Lmhhc0RhdGEoaSkmJmJ0LmdldChpKTtpZighKCFNdHx8IShVPU10LmV2ZW50cykpKXtmb3IoZD0oZHx8IiIpLm1hdGNoKEJ0KXx8WyIiXSxRPWQubGVuZ3RoO1EtLTspe2lmKCQ9WmkuZXhlYyhkW1FdKXx8W10sd3Q9R3Q9JFsxXSxFdD0oJFsyXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpLCF3dCl7Zm9yKHd0IGluIFUpdS5ldmVudC5yZW1vdmUoaSx3dCtkW1FdLHYseCwhMCk7Y29udGludWV9Zm9yKGZ0PXUuZXZlbnQuc3BlY2lhbFt3dF18fHt9LHd0PSh4P2Z0LmRlbGVnYXRlVHlwZTpmdC5iaW5kVHlwZSl8fHd0LGl0PVVbd3RdfHxbXSwkPSRbMl0mJm5ldyBSZWdFeHAoIihefFxcLikiK0V0LmpvaW4oIlxcLig/Oi4qXFwufCkiKSsiKFxcLnwkKSIpLEU9ST1pdC5sZW5ndGg7SS0tOylkdD1pdFtJXSwoQXx8R3Q9PT1kdC5vcmlnVHlwZSkmJighdnx8di5ndWlkPT09ZHQuZ3VpZCkmJighJHx8JC50ZXN0KGR0Lm5hbWVzcGFjZSkpJiYoIXh8fHg9PT1kdC5zZWxlY3Rvcnx8eD09PSIqKiImJmR0LnNlbGVjdG9yKSYmKGl0LnNwbGljZShJLDEpLGR0LnNlbGVjdG9yJiZpdC5kZWxlZ2F0ZUNvdW50LS0sZnQucmVtb3ZlJiZmdC5yZW1vdmUuY2FsbChpLGR0KSk7RSYmIWl0Lmxlbmd0aCYmKCghZnQudGVhcmRvd258fGZ0LnRlYXJkb3duLmNhbGwoaSxFdCxNdC5oYW5kbGUpPT09ITEpJiZ1LnJlbW92ZUV2ZW50KGksd3QsTXQuaGFuZGxlKSxkZWxldGUgVVt3dF0pfXUuaXNFbXB0eU9iamVjdChVKSYmYnQucmVtb3ZlKGksImhhbmRsZSBldmVudHMiKX19LGRpc3BhdGNoOmZ1bmN0aW9uKGkpe3ZhciBkLHYseCxBLEksRSwkPW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoKSxVPXUuZXZlbnQuZml4KGkpLFE9KGJ0LmdldCh0aGlzLCJldmVudHMiKXx8T2JqZWN0LmNyZWF0ZShudWxsKSlbVS50eXBlXXx8W10sZHQ9dS5ldmVudC5zcGVjaWFsW1UudHlwZV18fHt9O2ZvcigkWzBdPVUsZD0xO2Q8YXJndW1lbnRzLmxlbmd0aDtkKyspJFtkXT1hcmd1bWVudHNbZF07aWYoVS5kZWxlZ2F0ZVRhcmdldD10aGlzLCEoZHQucHJlRGlzcGF0Y2gmJmR0LnByZURpc3BhdGNoLmNhbGwodGhpcyxVKT09PSExKSl7Zm9yKEU9dS5ldmVudC5oYW5kbGVycy5jYWxsKHRoaXMsVSxRKSxkPTA7KEE9RVtkKytdKSYmIVUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKTspZm9yKFUuY3VycmVudFRhcmdldD1BLmVsZW0sdj0wOyhJPUEuaGFuZGxlcnNbdisrXSkmJiFVLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCk7KSghVS5ybmFtZXNwYWNlfHxJLm5hbWVzcGFjZT09PSExfHxVLnJuYW1lc3BhY2UudGVzdChJLm5hbWVzcGFjZSkpJiYoVS5oYW5kbGVPYmo9SSxVLmRhdGE9SS5kYXRhLHg9KCh1LmV2ZW50LnNwZWNpYWxbSS5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fEkuaGFuZGxlcikuYXBwbHkoQS5lbGVtLCQpLHghPT12b2lkIDAmJihVLnJlc3VsdD14KT09PSExJiYoVS5wcmV2ZW50RGVmYXVsdCgpLFUuc3RvcFByb3BhZ2F0aW9uKCkpKTtyZXR1cm4gZHQucG9zdERpc3BhdGNoJiZkdC5wb3N0RGlzcGF0Y2guY2FsbCh0aGlzLFUpLFUucmVzdWx0fX0saGFuZGxlcnM6ZnVuY3Rpb24oaSxkKXt2YXIgdix4LEEsSSxFLCQ9W10sVT1kLmRlbGVnYXRlQ291bnQsUT1pLnRhcmdldDtpZihVJiZRLm5vZGVUeXBlJiYhKGkudHlwZT09PSJjbGljayImJmkuYnV0dG9uPj0xKSl7Zm9yKDtRIT09dGhpcztRPVEucGFyZW50Tm9kZXx8dGhpcylpZihRLm5vZGVUeXBlPT09MSYmIShpLnR5cGU9PT0iY2xpY2siJiZRLmRpc2FibGVkPT09ITApKXtmb3IoST1bXSxFPXt9LHY9MDt2PFU7disrKXg9ZFt2XSxBPXguc2VsZWN0b3IrIiAiLEVbQV09PT12b2lkIDAmJihFW0FdPXgubmVlZHNDb250ZXh0P3UoQSx0aGlzKS5pbmRleChRKT4tMTp1LmZpbmQoQSx0aGlzLG51bGwsW1FdKS5sZW5ndGgpLEVbQV0mJkkucHVzaCh4KTtJLmxlbmd0aCYmJC5wdXNoKHtlbGVtOlEsaGFuZGxlcnM6SX0pfX1yZXR1cm4gUT10aGlzLFU8ZC5sZW5ndGgmJiQucHVzaCh7ZWxlbTpRLGhhbmRsZXJzOmQuc2xpY2UoVSl9KSwkfSxhZGRQcm9wOmZ1bmN0aW9uKGksZCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHUuRXZlbnQucHJvdG90eXBlLGkse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDprKGQpP2Z1bmN0aW9uKCl7aWYodGhpcy5vcmlnaW5hbEV2ZW50KXJldHVybiBkKHRoaXMub3JpZ2luYWxFdmVudCl9OmZ1bmN0aW9uKCl7aWYodGhpcy5vcmlnaW5hbEV2ZW50KXJldHVybiB0aGlzLm9yaWdpbmFsRXZlbnRbaV19LHNldDpmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxpLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp2fSl9fSl9LGZpeDpmdW5jdGlvbihpKXtyZXR1cm4gaVt1LmV4cGFuZG9dP2k6bmV3IHUuRXZlbnQoaSl9LHNwZWNpYWw6e2xvYWQ6e25vQnViYmxlOiEwfSxjbGljazp7c2V0dXA6ZnVuY3Rpb24oaSl7dmFyIGQ9dGhpc3x8aTtyZXR1cm4gamUudGVzdChkLnR5cGUpJiZkLmNsaWNrJiZxKGQsImlucHV0IikmJmFuKGQsImNsaWNrIiwhMCksITF9LHRyaWdnZXI6ZnVuY3Rpb24oaSl7dmFyIGQ9dGhpc3x8aTtyZXR1cm4gamUudGVzdChkLnR5cGUpJiZkLmNsaWNrJiZxKGQsImlucHV0IikmJmFuKGQsImNsaWNrIiksITB9LF9kZWZhdWx0OmZ1bmN0aW9uKGkpe3ZhciBkPWkudGFyZ2V0O3JldHVybiBqZS50ZXN0KGQudHlwZSkmJmQuY2xpY2smJnEoZCwiaW5wdXQiKSYmYnQuZ2V0KGQsImNsaWNrIil8fHEoZCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oaSl7aS5yZXN1bHQhPT12b2lkIDAmJmkub3JpZ2luYWxFdmVudCYmKGkub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1pLnJlc3VsdCl9fX19O2Z1bmN0aW9uIGFuKGksZCx2KXtpZighdil7YnQuZ2V0KGksZCk9PT12b2lkIDAmJnUuZXZlbnQuYWRkKGksZCx5cik7cmV0dXJufWJ0LnNldChpLGQsITEpLHUuZXZlbnQuYWRkKGksZCx7bmFtZXNwYWNlOiExLGhhbmRsZXI6ZnVuY3Rpb24oeCl7dmFyIEEsST1idC5nZXQodGhpcyxkKTtpZih4LmlzVHJpZ2dlciYxJiZ0aGlzW2RdKXtpZihJKSh1LmV2ZW50LnNwZWNpYWxbZF18fHt9KS5kZWxlZ2F0ZVR5cGUmJnguc3RvcFByb3BhZ2F0aW9uKCk7ZWxzZSBpZihJPXMuY2FsbChhcmd1bWVudHMpLGJ0LnNldCh0aGlzLGQsSSksdGhpc1tkXSgpLEE9YnQuZ2V0KHRoaXMsZCksYnQuc2V0KHRoaXMsZCwhMSksSSE9PUEpcmV0dXJuIHguc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkseC5wcmV2ZW50RGVmYXVsdCgpLEF9ZWxzZSBJJiYoYnQuc2V0KHRoaXMsZCx1LmV2ZW50LnRyaWdnZXIoSVswXSxJLnNsaWNlKDEpLHRoaXMpKSx4LnN0b3BQcm9wYWdhdGlvbigpLHguaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9eXIpfX0pfXUucmVtb3ZlRXZlbnQ9ZnVuY3Rpb24oaSxkLHYpe2kucmVtb3ZlRXZlbnRMaXN0ZW5lciYmaS5yZW1vdmVFdmVudExpc3RlbmVyKGQsdil9LHUuRXZlbnQ9ZnVuY3Rpb24oaSxkKXtpZighKHRoaXMgaW5zdGFuY2VvZiB1LkV2ZW50KSlyZXR1cm4gbmV3IHUuRXZlbnQoaSxkKTtpJiZpLnR5cGU/KHRoaXMub3JpZ2luYWxFdmVudD1pLHRoaXMudHlwZT1pLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9aS5kZWZhdWx0UHJldmVudGVkfHxpLmRlZmF1bHRQcmV2ZW50ZWQ9PT12b2lkIDAmJmkucmV0dXJuVmFsdWU9PT0hMT95cjp3cix0aGlzLnRhcmdldD1pLnRhcmdldCYmaS50YXJnZXQubm9kZVR5cGU9PT0zP2kudGFyZ2V0LnBhcmVudE5vZGU6aS50YXJnZXQsdGhpcy5jdXJyZW50VGFyZ2V0PWkuY3VycmVudFRhcmdldCx0aGlzLnJlbGF0ZWRUYXJnZXQ9aS5yZWxhdGVkVGFyZ2V0KTp0aGlzLnR5cGU9aSxkJiZ1LmV4dGVuZCh0aGlzLGQpLHRoaXMudGltZVN0YW1wPWkmJmkudGltZVN0YW1wfHxEYXRlLm5vdygpLHRoaXNbdS5leHBhbmRvXT0hMH0sdS5FdmVudC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnUuRXZlbnQsaXNEZWZhdWx0UHJldmVudGVkOndyLGlzUHJvcGFnYXRpb25TdG9wcGVkOndyLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOndyLGlzU2ltdWxhdGVkOiExLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPXlyLGkmJiF0aGlzLmlzU2ltdWxhdGVkJiZpLnByZXZlbnREZWZhdWx0KCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBpPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXlyLGkmJiF0aGlzLmlzU2ltdWxhdGVkJiZpLnN0b3BQcm9wYWdhdGlvbigpfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgaT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD15cixpJiYhdGhpcy5pc1NpbXVsYXRlZCYmaS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0sdS5lYWNoKHthbHRLZXk6ITAsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGNoYW5nZWRUb3VjaGVzOiEwLGN0cmxLZXk6ITAsZGV0YWlsOiEwLGV2ZW50UGhhc2U6ITAsbWV0YUtleTohMCxwYWdlWDohMCxwYWdlWTohMCxzaGlmdEtleTohMCx2aWV3OiEwLGNoYXI6ITAsY29kZTohMCxjaGFyQ29kZTohMCxrZXk6ITAsa2V5Q29kZTohMCxidXR0b246ITAsYnV0dG9uczohMCxjbGllbnRYOiEwLGNsaWVudFk6ITAsb2Zmc2V0WDohMCxvZmZzZXRZOiEwLHBvaW50ZXJJZDohMCxwb2ludGVyVHlwZTohMCxzY3JlZW5YOiEwLHNjcmVlblk6ITAsdGFyZ2V0VG91Y2hlczohMCx0b0VsZW1lbnQ6ITAsdG91Y2hlczohMCx3aGljaDohMH0sdS5ldmVudC5hZGRQcm9wKSx1LmVhY2goe2ZvY3VzOiJmb2N1c2luIixibHVyOiJmb2N1c291dCJ9LGZ1bmN0aW9uKGksZCl7ZnVuY3Rpb24gdih4KXtpZihGLmRvY3VtZW50TW9kZSl7dmFyIEE9YnQuZ2V0KHRoaXMsImhhbmRsZSIpLEk9dS5ldmVudC5maXgoeCk7SS50eXBlPXgudHlwZT09PSJmb2N1c2luIj8iZm9jdXMiOiJibHVyIixJLmlzU2ltdWxhdGVkPSEwLEEoeCksSS50YXJnZXQ9PT1JLmN1cnJlbnRUYXJnZXQmJkEoSSl9ZWxzZSB1LmV2ZW50LnNpbXVsYXRlKGQseC50YXJnZXQsdS5ldmVudC5maXgoeCkpfXUuZXZlbnQuc3BlY2lhbFtpXT17c2V0dXA6ZnVuY3Rpb24oKXt2YXIgeDtpZihhbih0aGlzLGksITApLEYuZG9jdW1lbnRNb2RlKXg9YnQuZ2V0KHRoaXMsZCkseHx8dGhpcy5hZGRFdmVudExpc3RlbmVyKGQsdiksYnQuc2V0KHRoaXMsZCwoeHx8MCkrMSk7ZWxzZSByZXR1cm4hMX0sdHJpZ2dlcjpmdW5jdGlvbigpe3JldHVybiBhbih0aGlzLGkpLCEwfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciB4O2lmKEYuZG9jdW1lbnRNb2RlKXg9YnQuZ2V0KHRoaXMsZCktMSx4P2J0LnNldCh0aGlzLGQseCk6KHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihkLHYpLGJ0LnJlbW92ZSh0aGlzLGQpKTtlbHNlIHJldHVybiExfSxfZGVmYXVsdDpmdW5jdGlvbih4KXtyZXR1cm4gYnQuZ2V0KHgudGFyZ2V0LGkpfSxkZWxlZ2F0ZVR5cGU6ZH0sdS5ldmVudC5zcGVjaWFsW2RdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciB4PXRoaXMub3duZXJEb2N1bWVudHx8dGhpcy5kb2N1bWVudHx8dGhpcyxBPUYuZG9jdW1lbnRNb2RlP3RoaXM6eCxJPWJ0LmdldChBLGQpO0l8fChGLmRvY3VtZW50TW9kZT90aGlzLmFkZEV2ZW50TGlzdGVuZXIoZCx2KTp4LmFkZEV2ZW50TGlzdGVuZXIoaSx2LCEwKSksYnQuc2V0KEEsZCwoSXx8MCkrMSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcy5vd25lckRvY3VtZW50fHx0aGlzLmRvY3VtZW50fHx0aGlzLEE9Ri5kb2N1bWVudE1vZGU/dGhpczp4LEk9YnQuZ2V0KEEsZCktMTtJP2J0LnNldChBLGQsSSk6KEYuZG9jdW1lbnRNb2RlP3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihkLHYpOngucmVtb3ZlRXZlbnRMaXN0ZW5lcihpLHYsITApLGJ0LnJlbW92ZShBLGQpKX19fSksdS5lYWNoKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0Iixwb2ludGVyZW50ZXI6InBvaW50ZXJvdmVyIixwb2ludGVybGVhdmU6InBvaW50ZXJvdXQifSxmdW5jdGlvbihpLGQpe3UuZXZlbnQuc3BlY2lhbFtpXT17ZGVsZWdhdGVUeXBlOmQsYmluZFR5cGU6ZCxoYW5kbGU6ZnVuY3Rpb24odil7dmFyIHgsQT10aGlzLEk9di5yZWxhdGVkVGFyZ2V0LEU9di5oYW5kbGVPYmo7cmV0dXJuKCFJfHxJIT09QSYmIXUuY29udGFpbnMoQSxJKSkmJih2LnR5cGU9RS5vcmlnVHlwZSx4PUUuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdi50eXBlPWQpLHh9fX0pLHUuZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbihpLGQsdix4KXtyZXR1cm4gem4odGhpcyxpLGQsdix4KX0sb25lOmZ1bmN0aW9uKGksZCx2LHgpe3JldHVybiB6bih0aGlzLGksZCx2LHgsMSl9LG9mZjpmdW5jdGlvbihpLGQsdil7dmFyIHgsQTtpZihpJiZpLnByZXZlbnREZWZhdWx0JiZpLmhhbmRsZU9iailyZXR1cm4geD1pLmhhbmRsZU9iaix1KGkuZGVsZWdhdGVUYXJnZXQpLm9mZih4Lm5hbWVzcGFjZT94Lm9yaWdUeXBlKyIuIit4Lm5hbWVzcGFjZTp4Lm9yaWdUeXBlLHguc2VsZWN0b3IseC5oYW5kbGVyKSx0aGlzO2lmKHR5cGVvZiBpPT0ib2JqZWN0Iil7Zm9yKEEgaW4gaSl0aGlzLm9mZihBLGQsaVtBXSk7cmV0dXJuIHRoaXN9cmV0dXJuKGQ9PT0hMXx8dHlwZW9mIGQ9PSJmdW5jdGlvbiIpJiYodj1kLGQ9dm9pZCAwKSx2PT09ITEmJih2PXdyKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt1LmV2ZW50LnJlbW92ZSh0aGlzLGksdixkKX0pfX0pO3ZhciBHcz0vPHNjcmlwdHw8c3R5bGV8PGxpbmsvaSxYcz0vY2hlY2tlZFxzKig/OltePV18PVxzKi5jaGVja2VkLikvaSwkcz0vXlxzKjwhXFtDREFUQVxbfFxdXF0+XHMqJC9nO2Z1bmN0aW9uIEtpKGksZCl7cmV0dXJuIHEoaSwidGFibGUiKSYmcShkLm5vZGVUeXBlIT09MTE/ZDpkLmZpcnN0Q2hpbGQsInRyIikmJnUoaSkuY2hpbGRyZW4oInRib2R5IilbMF18fGl9ZnVuY3Rpb24gWnMoaSl7cmV0dXJuIGkudHlwZT0oaS5nZXRBdHRyaWJ1dGUoInR5cGUiKSE9PW51bGwpKyIvIitpLnR5cGUsaX1mdW5jdGlvbiBLcyhpKXtyZXR1cm4oaS50eXBlfHwiIikuc2xpY2UoMCw1KT09PSJ0cnVlLyI/aS50eXBlPWkudHlwZS5zbGljZSg1KTppLnJlbW92ZUF0dHJpYnV0ZSgidHlwZSIpLGl9ZnVuY3Rpb24gWWkoaSxkKXt2YXIgdix4LEEsSSxFLCQsVTtpZihkLm5vZGVUeXBlPT09MSl7aWYoYnQuaGFzRGF0YShpKSYmKEk9YnQuZ2V0KGkpLFU9SS5ldmVudHMsVSkpe2J0LnJlbW92ZShkLCJoYW5kbGUgZXZlbnRzIik7Zm9yKEEgaW4gVSlmb3Iodj0wLHg9VVtBXS5sZW5ndGg7djx4O3YrKyl1LmV2ZW50LmFkZChkLEEsVVtBXVt2XSl9enQuaGFzRGF0YShpKSYmKEU9enQuYWNjZXNzKGkpLCQ9dS5leHRlbmQoe30sRSksenQuc2V0KGQsJCkpfX1mdW5jdGlvbiBZcyhpLGQpe3ZhciB2PWQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTt2PT09ImlucHV0IiYmamUudGVzdChpLnR5cGUpP2QuY2hlY2tlZD1pLmNoZWNrZWQ6KHY9PT0iaW5wdXQifHx2PT09InRleHRhcmVhIikmJihkLmRlZmF1bHRWYWx1ZT1pLmRlZmF1bHRWYWx1ZSl9ZnVuY3Rpb24geHIoaSxkLHYseCl7ZD1hKGQpO3ZhciBBLEksRSwkLFUsUSxkdD0wLGZ0PWkubGVuZ3RoLGl0PWZ0LTEsd3Q9ZFswXSxFdD1rKHd0KTtpZihFdHx8ZnQ+MSYmdHlwZW9mIHd0PT0ic3RyaW5nIiYmIXcuY2hlY2tDbG9uZSYmWHMudGVzdCh3dCkpcmV0dXJuIGkuZWFjaChmdW5jdGlvbihHdCl7dmFyIE10PWkuZXEoR3QpO0V0JiYoZFswXT13dC5jYWxsKHRoaXMsR3QsTXQuaHRtbCgpKSkseHIoTXQsZCx2LHgpfSk7aWYoZnQmJihBPSRpKGQsaVswXS5vd25lckRvY3VtZW50LCExLGkseCksST1BLmZpcnN0Q2hpbGQsQS5jaGlsZE5vZGVzLmxlbmd0aD09PTEmJihBPUkpLEl8fHgpKXtmb3IoRT11Lm1hcCh2ZShBLCJzY3JpcHQiKSxacyksJD1FLmxlbmd0aDtkdDxmdDtkdCsrKVU9QSxkdCE9PWl0JiYoVT11LmNsb25lKFUsITAsITApLCQmJnUubWVyZ2UoRSx2ZShVLCJzY3JpcHQiKSkpLHYuY2FsbChpW2R0XSxVLGR0KTtpZigkKWZvcihRPUVbRS5sZW5ndGgtMV0ub3duZXJEb2N1bWVudCx1Lm1hcChFLEtzKSxkdD0wO2R0PCQ7ZHQrKylVPUVbZHRdLFhpLnRlc3QoVS50eXBlfHwiIikmJiFidC5hY2Nlc3MoVSwiZ2xvYmFsRXZhbCIpJiZ1LmNvbnRhaW5zKFEsVSkmJihVLnNyYyYmKFUudHlwZXx8IiIpLnRvTG93ZXJDYXNlKCkhPT0ibW9kdWxlIj91Ll9ldmFsVXJsJiYhVS5ub01vZHVsZSYmdS5fZXZhbFVybChVLnNyYyx7bm9uY2U6VS5ub25jZXx8VS5nZXRBdHRyaWJ1dGUoIm5vbmNlIil9LFEpOm8oVS50ZXh0Q29udGVudC5yZXBsYWNlKCRzLCIiKSxVLFEpKX1yZXR1cm4gaX1mdW5jdGlvbiBRaShpLGQsdil7Zm9yKHZhciB4LEE9ZD91LmZpbHRlcihkLGkpOmksST0wOyh4PUFbSV0pIT1udWxsO0krKykhdiYmeC5ub2RlVHlwZT09PTEmJnUuY2xlYW5EYXRhKHZlKHgpKSx4LnBhcmVudE5vZGUmJih2JiZkZSh4KSYmTG4odmUoeCwic2NyaXB0IikpLHgucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh4KSk7cmV0dXJuIGl9dS5leHRlbmQoe2h0bWxQcmVmaWx0ZXI6ZnVuY3Rpb24oaSl7cmV0dXJuIGl9LGNsb25lOmZ1bmN0aW9uKGksZCx2KXt2YXIgeCxBLEksRSwkPWkuY2xvbmVOb2RlKCEwKSxVPWRlKGkpO2lmKCF3Lm5vQ2xvbmVDaGVja2VkJiYoaS5ub2RlVHlwZT09PTF8fGkubm9kZVR5cGU9PT0xMSkmJiF1LmlzWE1MRG9jKGkpKWZvcihFPXZlKCQpLEk9dmUoaSkseD0wLEE9SS5sZW5ndGg7eDxBO3grKylZcyhJW3hdLEVbeF0pO2lmKGQpaWYodilmb3IoST1JfHx2ZShpKSxFPUV8fHZlKCQpLHg9MCxBPUkubGVuZ3RoO3g8QTt4KyspWWkoSVt4XSxFW3hdKTtlbHNlIFlpKGksJCk7cmV0dXJuIEU9dmUoJCwic2NyaXB0IiksRS5sZW5ndGg+MCYmTG4oRSwhVSYmdmUoaSwic2NyaXB0IikpLCR9LGNsZWFuRGF0YTpmdW5jdGlvbihpKXtmb3IodmFyIGQsdix4LEE9dS5ldmVudC5zcGVjaWFsLEk9MDsodj1pW0ldKSE9PXZvaWQgMDtJKyspaWYoQ3Qodikpe2lmKGQ9dltidC5leHBhbmRvXSl7aWYoZC5ldmVudHMpZm9yKHggaW4gZC5ldmVudHMpQVt4XT91LmV2ZW50LnJlbW92ZSh2LHgpOnUucmVtb3ZlRXZlbnQodix4LGQuaGFuZGxlKTt2W2J0LmV4cGFuZG9dPXZvaWQgMH12W3p0LmV4cGFuZG9dJiYodlt6dC5leHBhbmRvXT12b2lkIDApfX19KSx1LmZuLmV4dGVuZCh7ZGV0YWNoOmZ1bmN0aW9uKGkpe3JldHVybiBRaSh0aGlzLGksITApfSxyZW1vdmU6ZnVuY3Rpb24oaSl7cmV0dXJuIFFpKHRoaXMsaSl9LHRleHQ6ZnVuY3Rpb24oaSl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihkKXtyZXR1cm4gZD09PXZvaWQgMD91LnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmVhY2goZnVuY3Rpb24oKXsodGhpcy5ub2RlVHlwZT09PTF8fHRoaXMubm9kZVR5cGU9PT0xMXx8dGhpcy5ub2RlVHlwZT09PTkpJiYodGhpcy50ZXh0Q29udGVudD1kKX0pfSxudWxsLGksYXJndW1lbnRzLmxlbmd0aCl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiB4cih0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihpKXtpZih0aGlzLm5vZGVUeXBlPT09MXx8dGhpcy5ub2RlVHlwZT09PTExfHx0aGlzLm5vZGVUeXBlPT09OSl7dmFyIGQ9S2kodGhpcyxpKTtkLmFwcGVuZENoaWxkKGkpfX0pfSxwcmVwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHhyKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGkpe2lmKHRoaXMubm9kZVR5cGU9PT0xfHx0aGlzLm5vZGVUeXBlPT09MTF8fHRoaXMubm9kZVR5cGU9PT05KXt2YXIgZD1LaSh0aGlzLGkpO2QuaW5zZXJ0QmVmb3JlKGksZC5maXJzdENoaWxkKX19KX0sYmVmb3JlOmZ1bmN0aW9uKCl7cmV0dXJuIHhyKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGkpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpLHRoaXMpfSl9LGFmdGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHhyKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGkpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpLHRoaXMubmV4dFNpYmxpbmcpfSl9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciBpLGQ9MDsoaT10aGlzW2RdKSE9bnVsbDtkKyspaS5ub2RlVHlwZT09PTEmJih1LmNsZWFuRGF0YSh2ZShpLCExKSksaS50ZXh0Q29udGVudD0iIik7cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGksZCl7cmV0dXJuIGk9aT8/ITEsZD1kPz9pLHRoaXMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHUuY2xvbmUodGhpcyxpLGQpfSl9LGh0bWw6ZnVuY3Rpb24oaSl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihkKXt2YXIgdj10aGlzWzBdfHx7fSx4PTAsQT10aGlzLmxlbmd0aDtpZihkPT09dm9pZCAwJiZ2Lm5vZGVUeXBlPT09MSlyZXR1cm4gdi5pbm5lckhUTUw7aWYodHlwZW9mIGQ9PSJzdHJpbmciJiYhR3MudGVzdChkKSYmIWtlWyhHaS5leGVjKGQpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSl7ZD11Lmh0bWxQcmVmaWx0ZXIoZCk7dHJ5e2Zvcig7eDxBO3grKyl2PXRoaXNbeF18fHt9LHYubm9kZVR5cGU9PT0xJiYodS5jbGVhbkRhdGEodmUodiwhMSkpLHYuaW5uZXJIVE1MPWQpO3Y9MH1jYXRjaHt9fXYmJnRoaXMuZW1wdHkoKS5hcHBlbmQoZCl9LG51bGwsaSxhcmd1bWVudHMubGVuZ3RoKX0scmVwbGFjZVdpdGg6ZnVuY3Rpb24oKXt2YXIgaT1bXTtyZXR1cm4geHIodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oZCl7dmFyIHY9dGhpcy5wYXJlbnROb2RlO3UuaW5BcnJheSh0aGlzLGkpPDAmJih1LmNsZWFuRGF0YSh2ZSh0aGlzKSksdiYmdi5yZXBsYWNlQ2hpbGQoZCx0aGlzKSl9LGkpfX0pLHUuZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIscHJlcGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1bmN0aW9uKGksZCl7dS5mbltpXT1mdW5jdGlvbih2KXtmb3IodmFyIHgsQT1bXSxJPXUodiksRT1JLmxlbmd0aC0xLCQ9MDskPD1FOyQrKyl4PSQ9PT1FP3RoaXM6dGhpcy5jbG9uZSghMCksdShJWyRdKVtkXSh4KSxsLmFwcGx5KEEseC5nZXQoKSk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKEEpfX0pO3ZhciBqbj1uZXcgUmVnRXhwKCJeKCIrWWUrIikoPyFweClbYS16JV0rJCIsImkiKSxNbj0vXi0tLyxzbj1mdW5jdGlvbihpKXt2YXIgZD1pLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7cmV0dXJuKCFkfHwhZC5vcGVuZXIpJiYoZD10KSxkLmdldENvbXB1dGVkU3R5bGUoaSl9LEppPWZ1bmN0aW9uKGksZCx2KXt2YXIgeCxBLEk9e307Zm9yKEEgaW4gZClJW0FdPWkuc3R5bGVbQV0saS5zdHlsZVtBXT1kW0FdO3g9di5jYWxsKGkpO2ZvcihBIGluIGQpaS5zdHlsZVtBXT1JW0FdO3JldHVybiB4fSxRcz1uZXcgUmVnRXhwKGJlLmpvaW4oInwiKSwiaSIpOyhmdW5jdGlvbigpe2Z1bmN0aW9uIGkoKXtpZihRKXtVLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7d2lkdGg6NjBweDttYXJnaW4tdG9wOjFweDtwYWRkaW5nOjA7Ym9yZGVyOjAiLFEuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6c2Nyb2xsO21hcmdpbjphdXRvO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NjAlO3RvcDoxJSIsT2UuYXBwZW5kQ2hpbGQoVSkuYXBwZW5kQ2hpbGQoUSk7dmFyIGR0PXQuZ2V0Q29tcHV0ZWRTdHlsZShRKTt2PWR0LnRvcCE9PSIxJSIsJD1kKGR0Lm1hcmdpbkxlZnQpPT09MTIsUS5zdHlsZS5yaWdodD0iNjAlIixJPWQoZHQucmlnaHQpPT09MzYseD1kKGR0LndpZHRoKT09PTM2LFEuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixBPWQoUS5vZmZzZXRXaWR0aC8zKT09PTEyLE9lLnJlbW92ZUNoaWxkKFUpLFE9bnVsbH19ZnVuY3Rpb24gZChkdCl7cmV0dXJuIE1hdGgucm91bmQocGFyc2VGbG9hdChkdCkpfXZhciB2LHgsQSxJLEUsJCxVPUYuY3JlYXRlRWxlbWVudCgiZGl2IiksUT1GLmNyZWF0ZUVsZW1lbnQoImRpdiIpO1Euc3R5bGUmJihRLnN0eWxlLmJhY2tncm91bmRDbGlwPSJjb250ZW50LWJveCIsUS5jbG9uZU5vZGUoITApLnN0eWxlLmJhY2tncm91bmRDbGlwPSIiLHcuY2xlYXJDbG9uZVN0eWxlPVEuc3R5bGUuYmFja2dyb3VuZENsaXA9PT0iY29udGVudC1ib3giLHUuZXh0ZW5kKHcse2JveFNpemluZ1JlbGlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGkoKSx4fSxwaXhlbEJveFN0eWxlczpmdW5jdGlvbigpe3JldHVybiBpKCksSX0scGl4ZWxQb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybiBpKCksdn0scmVsaWFibGVNYXJnaW5MZWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIGkoKSwkfSxzY3JvbGxib3hTaXplOmZ1bmN0aW9uKCl7cmV0dXJuIGkoKSxBfSxyZWxpYWJsZVRyRGltZW5zaW9uczpmdW5jdGlvbigpe3ZhciBkdCxmdCxpdCx3dDtyZXR1cm4gRT09bnVsbCYmKGR0PUYuY3JlYXRlRWxlbWVudCgidGFibGUiKSxmdD1GLmNyZWF0ZUVsZW1lbnQoInRyIiksaXQ9Ri5jcmVhdGVFbGVtZW50KCJkaXYiKSxkdC5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZSIsZnQuc3R5bGUuY3NzVGV4dD0iYm94LXNpemluZzpjb250ZW50LWJveDtib3JkZXI6MXB4IHNvbGlkIixmdC5zdHlsZS5oZWlnaHQ9IjFweCIsaXQuc3R5bGUuaGVpZ2h0PSI5cHgiLGl0LnN0eWxlLmRpc3BsYXk9ImJsb2NrIixPZS5hcHBlbmRDaGlsZChkdCkuYXBwZW5kQ2hpbGQoZnQpLmFwcGVuZENoaWxkKGl0KSx3dD10LmdldENvbXB1dGVkU3R5bGUoZnQpLEU9cGFyc2VJbnQod3QuaGVpZ2h0LDEwKStwYXJzZUludCh3dC5ib3JkZXJUb3BXaWR0aCwxMCkrcGFyc2VJbnQod3QuYm9yZGVyQm90dG9tV2lkdGgsMTApPT09ZnQub2Zmc2V0SGVpZ2h0LE9lLnJlbW92ZUNoaWxkKGR0KSksRX19KSl9KSgpO2Z1bmN0aW9uIFJyKGksZCx2KXt2YXIgeCxBLEksRSwkPU1uLnRlc3QoZCksVT1pLnN0eWxlO3JldHVybiB2PXZ8fHNuKGkpLHYmJihFPXYuZ2V0UHJvcGVydHlWYWx1ZShkKXx8dltkXSwkJiZFJiYoRT1FLnJlcGxhY2UoXywiJDEiKXx8dm9pZCAwKSxFPT09IiImJiFkZShpKSYmKEU9dS5zdHlsZShpLGQpKSwhdy5waXhlbEJveFN0eWxlcygpJiZqbi50ZXN0KEUpJiZRcy50ZXN0KGQpJiYoeD1VLndpZHRoLEE9VS5taW5XaWR0aCxJPVUubWF4V2lkdGgsVS5taW5XaWR0aD1VLm1heFdpZHRoPVUud2lkdGg9RSxFPXYud2lkdGgsVS53aWR0aD14LFUubWluV2lkdGg9QSxVLm1heFdpZHRoPUkpKSxFIT09dm9pZCAwP0UrIiI6RX1mdW5jdGlvbiB0YShpLGQpe3JldHVybntnZXQ6ZnVuY3Rpb24oKXtpZihpKCkpe2RlbGV0ZSB0aGlzLmdldDtyZXR1cm59cmV0dXJuKHRoaXMuZ2V0PWQpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19fXZhciBlYT1bIldlYmtpdCIsIk1veiIsIm1zIl0scmE9Ri5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZSxuYT17fTtmdW5jdGlvbiBKcyhpKXtmb3IodmFyIGQ9aVswXS50b1VwcGVyQ2FzZSgpK2kuc2xpY2UoMSksdj1lYS5sZW5ndGg7di0tOylpZihpPWVhW3ZdK2QsaSBpbiByYSlyZXR1cm4gaX1mdW5jdGlvbiBWbihpKXt2YXIgZD11LmNzc1Byb3BzW2ldfHxuYVtpXTtyZXR1cm4gZHx8KGkgaW4gcmE/aTpuYVtpXT1KcyhpKXx8aSl9dmFyIHRvPS9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxlbz17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0saWE9e2xldHRlclNwYWNpbmc6IjAiLGZvbnRXZWlnaHQ6IjQwMCJ9O2Z1bmN0aW9uIGFhKGksZCx2KXt2YXIgeD10ZS5leGVjKGQpO3JldHVybiB4P01hdGgubWF4KDAseFsyXS0odnx8MCkpKyh4WzNdfHwicHgiKTpkfWZ1bmN0aW9uIEhuKGksZCx2LHgsQSxJKXt2YXIgRT1kPT09IndpZHRoIj8xOjAsJD0wLFU9MCxRPTA7aWYodj09PSh4PyJib3JkZXIiOiJjb250ZW50IikpcmV0dXJuIDA7Zm9yKDtFPDQ7RSs9Mil2PT09Im1hcmdpbiImJihRKz11LmNzcyhpLHYrYmVbRV0sITAsQSkpLHg/KHY9PT0iY29udGVudCImJihVLT11LmNzcyhpLCJwYWRkaW5nIitiZVtFXSwhMCxBKSksdiE9PSJtYXJnaW4iJiYoVS09dS5jc3MoaSwiYm9yZGVyIitiZVtFXSsiV2lkdGgiLCEwLEEpKSk6KFUrPXUuY3NzKGksInBhZGRpbmciK2JlW0VdLCEwLEEpLHYhPT0icGFkZGluZyI/VSs9dS5jc3MoaSwiYm9yZGVyIitiZVtFXSsiV2lkdGgiLCEwLEEpOiQrPXUuY3NzKGksImJvcmRlciIrYmVbRV0rIldpZHRoIiwhMCxBKSk7cmV0dXJuIXgmJkk+PTAmJihVKz1NYXRoLm1heCgwLE1hdGguY2VpbChpWyJvZmZzZXQiK2RbMF0udG9VcHBlckNhc2UoKStkLnNsaWNlKDEpXS1JLVUtJC0uNSkpfHwwKSxVK1F9ZnVuY3Rpb24gc2EoaSxkLHYpe3ZhciB4PXNuKGkpLEE9IXcuYm94U2l6aW5nUmVsaWFibGUoKXx8dixJPUEmJnUuY3NzKGksImJveFNpemluZyIsITEseCk9PT0iYm9yZGVyLWJveCIsRT1JLCQ9UnIoaSxkLHgpLFU9Im9mZnNldCIrZFswXS50b1VwcGVyQ2FzZSgpK2Quc2xpY2UoMSk7aWYoam4udGVzdCgkKSl7aWYoIXYpcmV0dXJuICQ7JD0iYXV0byJ9cmV0dXJuKCF3LmJveFNpemluZ1JlbGlhYmxlKCkmJkl8fCF3LnJlbGlhYmxlVHJEaW1lbnNpb25zKCkmJnEoaSwidHIiKXx8JD09PSJhdXRvInx8IXBhcnNlRmxvYXQoJCkmJnUuY3NzKGksImRpc3BsYXkiLCExLHgpPT09ImlubGluZSIpJiZpLmdldENsaWVudFJlY3RzKCkubGVuZ3RoJiYoST11LmNzcyhpLCJib3hTaXppbmciLCExLHgpPT09ImJvcmRlci1ib3giLEU9VSBpbiBpLEUmJigkPWlbVV0pKSwkPXBhcnNlRmxvYXQoJCl8fDAsJCtIbihpLGQsdnx8KEk/ImJvcmRlciI6ImNvbnRlbnQiKSxFLHgsJCkrInB4In11LmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihpLGQpe2lmKGQpe3ZhciB2PVJyKGksIm9wYWNpdHkiKTtyZXR1cm4gdj09PSIiPyIxIjp2fX19fSxjc3NOdW1iZXI6e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGFzcGVjdFJhdGlvOiEwLGJvcmRlckltYWdlU2xpY2U6ITAsY29sdW1uQ291bnQ6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGdyaWRBcmVhOiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTdGFydDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCxzY2FsZTohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITAsZmlsbE9wYWNpdHk6ITAsZmxvb2RPcGFjaXR5OiEwLHN0b3BPcGFjaXR5OiEwLHN0cm9rZU1pdGVybGltaXQ6ITAsc3Ryb2tlT3BhY2l0eTohMH0sY3NzUHJvcHM6e30sc3R5bGU6ZnVuY3Rpb24oaSxkLHYseCl7aWYoISghaXx8aS5ub2RlVHlwZT09PTN8fGkubm9kZVR5cGU9PT04fHwhaS5zdHlsZSkpe3ZhciBBLEksRSwkPWd0KGQpLFU9TW4udGVzdChkKSxRPWkuc3R5bGU7aWYoVXx8KGQ9Vm4oJCkpLEU9dS5jc3NIb29rc1tkXXx8dS5jc3NIb29rc1skXSx2IT09dm9pZCAwKXtpZihJPXR5cGVvZiB2LEk9PT0ic3RyaW5nIiYmKEE9dGUuZXhlYyh2KSkmJkFbMV0mJih2PWVuKGksZCxBKSxJPSJudW1iZXIiKSx2PT1udWxsfHx2IT09dilyZXR1cm47ST09PSJudW1iZXIiJiYhVSYmKHYrPUEmJkFbM118fCh1LmNzc051bWJlclskXT8iIjoicHgiKSksIXcuY2xlYXJDbG9uZVN0eWxlJiZ2PT09IiImJmQuaW5kZXhPZigiYmFja2dyb3VuZCIpPT09MCYmKFFbZF09ImluaGVyaXQiKSwoIUV8fCEoInNldCJpbiBFKXx8KHY9RS5zZXQoaSx2LHgpKSE9PXZvaWQgMCkmJihVP1Euc2V0UHJvcGVydHkoZCx2KTpRW2RdPXYpfWVsc2UgcmV0dXJuIEUmJiJnZXQiaW4gRSYmKEE9RS5nZXQoaSwhMSx4KSkhPT12b2lkIDA/QTpRW2RdfX0sY3NzOmZ1bmN0aW9uKGksZCx2LHgpe3ZhciBBLEksRSwkPWd0KGQpLFU9TW4udGVzdChkKTtyZXR1cm4gVXx8KGQ9Vm4oJCkpLEU9dS5jc3NIb29rc1tkXXx8dS5jc3NIb29rc1skXSxFJiYiZ2V0ImluIEUmJihBPUUuZ2V0KGksITAsdikpLEE9PT12b2lkIDAmJihBPVJyKGksZCx4KSksQT09PSJub3JtYWwiJiZkIGluIGlhJiYoQT1pYVtkXSksdj09PSIifHx2PyhJPXBhcnNlRmxvYXQoQSksdj09PSEwfHxpc0Zpbml0ZShJKT9JfHwwOkEpOkF9fSksdS5lYWNoKFsiaGVpZ2h0Iiwid2lkdGgiXSxmdW5jdGlvbihpLGQpe3UuY3NzSG9va3NbZF09e2dldDpmdW5jdGlvbih2LHgsQSl7aWYoeClyZXR1cm4gdG8udGVzdCh1LmNzcyh2LCJkaXNwbGF5IikpJiYoIXYuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGh8fCF2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKT9KaSh2LGVvLGZ1bmN0aW9uKCl7cmV0dXJuIHNhKHYsZCxBKX0pOnNhKHYsZCxBKX0sc2V0OmZ1bmN0aW9uKHYseCxBKXt2YXIgSSxFPXNuKHYpLCQ9IXcuc2Nyb2xsYm94U2l6ZSgpJiZFLnBvc2l0aW9uPT09ImFic29sdXRlIixVPSR8fEEsUT1VJiZ1LmNzcyh2LCJib3hTaXppbmciLCExLEUpPT09ImJvcmRlci1ib3giLGR0PUE/SG4odixkLEEsUSxFKTowO3JldHVybiBRJiYkJiYoZHQtPU1hdGguY2VpbCh2WyJvZmZzZXQiK2RbMF0udG9VcHBlckNhc2UoKStkLnNsaWNlKDEpXS1wYXJzZUZsb2F0KEVbZF0pLUhuKHYsZCwiYm9yZGVyIiwhMSxFKS0uNSkpLGR0JiYoST10ZS5leGVjKHgpKSYmKElbM118fCJweCIpIT09InB4IiYmKHYuc3R5bGVbZF09eCx4PXUuY3NzKHYsZCkpLGFhKHYseCxkdCl9fX0pLHUuY3NzSG9va3MubWFyZ2luTGVmdD10YSh3LnJlbGlhYmxlTWFyZ2luTGVmdCxmdW5jdGlvbihpLGQpe2lmKGQpcmV0dXJuKHBhcnNlRmxvYXQoUnIoaSwibWFyZ2luTGVmdCIpKXx8aS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LUppKGkse21hcmdpbkxlZnQ6MH0sZnVuY3Rpb24oKXtyZXR1cm4gaS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fSkpKyJweCJ9KSx1LmVhY2goe21hcmdpbjoiIixwYWRkaW5nOiIiLGJvcmRlcjoiV2lkdGgifSxmdW5jdGlvbihpLGQpe3UuY3NzSG9va3NbaStkXT17ZXhwYW5kOmZ1bmN0aW9uKHYpe2Zvcih2YXIgeD0wLEE9e30sST10eXBlb2Ygdj09InN0cmluZyI/di5zcGxpdCgiICIpOlt2XTt4PDQ7eCsrKUFbaStiZVt4XStkXT1JW3hdfHxJW3gtMl18fElbMF07cmV0dXJuIEF9fSxpIT09Im1hcmdpbiImJih1LmNzc0hvb2tzW2krZF0uc2V0PWFhKX0pLHUuZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oaSxkKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKHYseCxBKXt2YXIgSSxFLCQ9e30sVT0wO2lmKEFycmF5LmlzQXJyYXkoeCkpe2ZvcihJPXNuKHYpLEU9eC5sZW5ndGg7VTxFO1UrKykkW3hbVV1dPXUuY3NzKHYseFtVXSwhMSxJKTtyZXR1cm4gJH1yZXR1cm4gQSE9PXZvaWQgMD91LnN0eWxlKHYseCxBKTp1LmNzcyh2LHgpfSxpLGQsYXJndW1lbnRzLmxlbmd0aD4xKX19KTtmdW5jdGlvbiBtZShpLGQsdix4LEEpe3JldHVybiBuZXcgbWUucHJvdG90eXBlLmluaXQoaSxkLHYseCxBKX11LlR3ZWVuPW1lLG1lLnByb3RvdHlwZT17Y29uc3RydWN0b3I6bWUsaW5pdDpmdW5jdGlvbihpLGQsdix4LEEsSSl7dGhpcy5lbGVtPWksdGhpcy5wcm9wPXYsdGhpcy5lYXNpbmc9QXx8dS5lYXNpbmcuX2RlZmF1bHQsdGhpcy5vcHRpb25zPWQsdGhpcy5zdGFydD10aGlzLm5vdz10aGlzLmN1cigpLHRoaXMuZW5kPXgsdGhpcy51bml0PUl8fCh1LmNzc051bWJlclt2XT8iIjoicHgiKX0sY3VyOmZ1bmN0aW9uKCl7dmFyIGk9bWUucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIGkmJmkuZ2V0P2kuZ2V0KHRoaXMpOm1lLnByb3BIb29rcy5fZGVmYXVsdC5nZXQodGhpcyl9LHJ1bjpmdW5jdGlvbihpKXt2YXIgZCx2PW1lLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0aGlzLm9wdGlvbnMuZHVyYXRpb24/dGhpcy5wb3M9ZD11LmVhc2luZ1t0aGlzLmVhc2luZ10oaSx0aGlzLm9wdGlvbnMuZHVyYXRpb24qaSwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTp0aGlzLnBvcz1kPWksdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKmQrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksdiYmdi5zZXQ/di5zZXQodGhpcyk6bWUucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0sbWUucHJvdG90eXBlLmluaXQucHJvdG90eXBlPW1lLnByb3RvdHlwZSxtZS5wcm9wSG9va3M9e19kZWZhdWx0OntnZXQ6ZnVuY3Rpb24oaSl7dmFyIGQ7cmV0dXJuIGkuZWxlbS5ub2RlVHlwZSE9PTF8fGkuZWxlbVtpLnByb3BdIT1udWxsJiZpLmVsZW0uc3R5bGVbaS5wcm9wXT09bnVsbD9pLmVsZW1baS5wcm9wXTooZD11LmNzcyhpLmVsZW0saS5wcm9wLCIiKSwhZHx8ZD09PSJhdXRvIj8wOmQpfSxzZXQ6ZnVuY3Rpb24oaSl7dS5meC5zdGVwW2kucHJvcF0/dS5meC5zdGVwW2kucHJvcF0oaSk6aS5lbGVtLm5vZGVUeXBlPT09MSYmKHUuY3NzSG9va3NbaS5wcm9wXXx8aS5lbGVtLnN0eWxlW1ZuKGkucHJvcCldIT1udWxsKT91LnN0eWxlKGkuZWxlbSxpLnByb3AsaS5ub3craS51bml0KTppLmVsZW1baS5wcm9wXT1pLm5vd319fSxtZS5wcm9wSG9va3Muc2Nyb2xsVG9wPW1lLnByb3BIb29rcy5zY3JvbGxMZWZ0PXtzZXQ6ZnVuY3Rpb24oaSl7aS5lbGVtLm5vZGVUeXBlJiZpLmVsZW0ucGFyZW50Tm9kZSYmKGkuZWxlbVtpLnByb3BdPWkubm93KX19LHUuZWFzaW5nPXtsaW5lYXI6ZnVuY3Rpb24oaSl7cmV0dXJuIGl9LHN3aW5nOmZ1bmN0aW9uKGkpe3JldHVybiAuNS1NYXRoLmNvcyhpKk1hdGguUEkpLzJ9LF9kZWZhdWx0OiJzd2luZyJ9LHUuZng9bWUucHJvdG90eXBlLmluaXQsdS5meC5zdGVwPXt9O3ZhciBfcixvbixybz0vXig/OnRvZ2dsZXxzaG93fGhpZGUpJC8sbm89L3F1ZXVlSG9va3MkLztmdW5jdGlvbiBXbigpe29uJiYoRi5oaWRkZW49PT0hMSYmdC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/dC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoV24pOnQuc2V0VGltZW91dChXbix1LmZ4LmludGVydmFsKSx1LmZ4LnRpY2soKSl9ZnVuY3Rpb24gb2EoKXtyZXR1cm4gdC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7X3I9dm9pZCAwfSksX3I9RGF0ZS5ub3coKX1mdW5jdGlvbiBsbihpLGQpe3ZhciB2LHg9MCxBPXtoZWlnaHQ6aX07Zm9yKGQ9ZD8xOjA7eDw0O3grPTItZCl2PWJlW3hdLEFbIm1hcmdpbiIrdl09QVsicGFkZGluZyIrdl09aTtyZXR1cm4gZCYmKEEub3BhY2l0eT1BLndpZHRoPWkpLEF9ZnVuY3Rpb24gbGEoaSxkLHYpe2Zvcih2YXIgeCxBPShSZS50d2VlbmVyc1tkXXx8W10pLmNvbmNhdChSZS50d2VlbmVyc1siKiJdKSxJPTAsRT1BLmxlbmd0aDtJPEU7SSsrKWlmKHg9QVtJXS5jYWxsKHYsZCxpKSlyZXR1cm4geH1mdW5jdGlvbiBpbyhpLGQsdil7dmFyIHgsQSxJLEUsJCxVLFEsZHQsZnQ9IndpZHRoImluIGR8fCJoZWlnaHQiaW4gZCxpdD10aGlzLHd0PXt9LEV0PWkuc3R5bGUsR3Q9aS5ub2RlVHlwZSYmZ3IoaSksTXQ9YnQuZ2V0KGksImZ4c2hvdyIpO3YucXVldWV8fChFPXUuX3F1ZXVlSG9va3MoaSwiZngiKSxFLnVucXVldWVkPT1udWxsJiYoRS51bnF1ZXVlZD0wLCQ9RS5lbXB0eS5maXJlLEUuZW1wdHkuZmlyZT1mdW5jdGlvbigpe0UudW5xdWV1ZWR8fCQoKX0pLEUudW5xdWV1ZWQrKyxpdC5hbHdheXMoZnVuY3Rpb24oKXtpdC5hbHdheXMoZnVuY3Rpb24oKXtFLnVucXVldWVkLS0sdS5xdWV1ZShpLCJmeCIpLmxlbmd0aHx8RS5lbXB0eS5maXJlKCl9KX0pKTtmb3IoeCBpbiBkKWlmKEE9ZFt4XSxyby50ZXN0KEEpKXtpZihkZWxldGUgZFt4XSxJPUl8fEE9PT0idG9nZ2xlIixBPT09KEd0PyJoaWRlIjoic2hvdyIpKWlmKEE9PT0ic2hvdyImJk10JiZNdFt4XSE9PXZvaWQgMClHdD0hMDtlbHNlIGNvbnRpbnVlO3d0W3hdPU10JiZNdFt4XXx8dS5zdHlsZShpLHgpfWlmKFU9IXUuaXNFbXB0eU9iamVjdChkKSwhKCFVJiZ1LmlzRW1wdHlPYmplY3Qod3QpKSl7ZnQmJmkubm9kZVR5cGU9PT0xJiYodi5vdmVyZmxvdz1bRXQub3ZlcmZsb3csRXQub3ZlcmZsb3dYLEV0Lm92ZXJmbG93WV0sUT1NdCYmTXQuZGlzcGxheSxRPT1udWxsJiYoUT1idC5nZXQoaSwiZGlzcGxheSIpKSxkdD11LmNzcyhpLCJkaXNwbGF5IiksZHQ9PT0ibm9uZSImJihRP2R0PVE6KFRlKFtpXSwhMCksUT1pLnN0eWxlLmRpc3BsYXl8fFEsZHQ9dS5jc3MoaSwiZGlzcGxheSIpLFRlKFtpXSkpKSwoZHQ9PT0iaW5saW5lInx8ZHQ9PT0iaW5saW5lLWJsb2NrIiYmUSE9bnVsbCkmJnUuY3NzKGksImZsb2F0Iik9PT0ibm9uZSImJihVfHwoaXQuZG9uZShmdW5jdGlvbigpe0V0LmRpc3BsYXk9UX0pLFE9PW51bGwmJihkdD1FdC5kaXNwbGF5LFE9ZHQ9PT0ibm9uZSI/IiI6ZHQpKSxFdC5kaXNwbGF5PSJpbmxpbmUtYmxvY2siKSksdi5vdmVyZmxvdyYmKEV0Lm92ZXJmbG93PSJoaWRkZW4iLGl0LmFsd2F5cyhmdW5jdGlvbigpe0V0Lm92ZXJmbG93PXYub3ZlcmZsb3dbMF0sRXQub3ZlcmZsb3dYPXYub3ZlcmZsb3dbMV0sRXQub3ZlcmZsb3dZPXYub3ZlcmZsb3dbMl19KSksVT0hMTtmb3IoeCBpbiB3dClVfHwoTXQ/ImhpZGRlbiJpbiBNdCYmKEd0PU10LmhpZGRlbik6TXQ9YnQuYWNjZXNzKGksImZ4c2hvdyIse2Rpc3BsYXk6UX0pLEkmJihNdC5oaWRkZW49IUd0KSxHdCYmVGUoW2ldLCEwKSxpdC5kb25lKGZ1bmN0aW9uKCl7R3R8fFRlKFtpXSksYnQucmVtb3ZlKGksImZ4c2hvdyIpO2Zvcih4IGluIHd0KXUuc3R5bGUoaSx4LHd0W3hdKX0pKSxVPWxhKEd0P010W3hdOjAseCxpdCkseCBpbiBNdHx8KE10W3hdPVUuc3RhcnQsR3QmJihVLmVuZD1VLnN0YXJ0LFUuc3RhcnQ9MCkpfX1mdW5jdGlvbiBhbyhpLGQpe3ZhciB2LHgsQSxJLEU7Zm9yKHYgaW4gaSlpZih4PWd0KHYpLEE9ZFt4XSxJPWlbdl0sQXJyYXkuaXNBcnJheShJKSYmKEE9SVsxXSxJPWlbdl09SVswXSksdiE9PXgmJihpW3hdPUksZGVsZXRlIGlbdl0pLEU9dS5jc3NIb29rc1t4XSxFJiYiZXhwYW5kImluIEUpe0k9RS5leHBhbmQoSSksZGVsZXRlIGlbeF07Zm9yKHYgaW4gSSl2IGluIGl8fChpW3ZdPUlbdl0sZFt2XT1BKX1lbHNlIGRbeF09QX1mdW5jdGlvbiBSZShpLGQsdil7dmFyIHgsQSxJPTAsRT1SZS5wcmVmaWx0ZXJzLmxlbmd0aCwkPXUuRGVmZXJyZWQoKS5hbHdheXMoZnVuY3Rpb24oKXtkZWxldGUgVS5lbGVtfSksVT1mdW5jdGlvbigpe2lmKEEpcmV0dXJuITE7Zm9yKHZhciBmdD1fcnx8b2EoKSxpdD1NYXRoLm1heCgwLFEuc3RhcnRUaW1lK1EuZHVyYXRpb24tZnQpLHd0PWl0L1EuZHVyYXRpb258fDAsRXQ9MS13dCxHdD0wLE10PVEudHdlZW5zLmxlbmd0aDtHdDxNdDtHdCsrKVEudHdlZW5zW0d0XS5ydW4oRXQpO3JldHVybiAkLm5vdGlmeVdpdGgoaSxbUSxFdCxpdF0pLEV0PDEmJk10P2l0OihNdHx8JC5ub3RpZnlXaXRoKGksW1EsMSwwXSksJC5yZXNvbHZlV2l0aChpLFtRXSksITEpfSxRPSQucHJvbWlzZSh7ZWxlbTppLHByb3BzOnUuZXh0ZW5kKHt9LGQpLG9wdHM6dS5leHRlbmQoITAse3NwZWNpYWxFYXNpbmc6e30sZWFzaW5nOnUuZWFzaW5nLl9kZWZhdWx0fSx2KSxvcmlnaW5hbFByb3BlcnRpZXM6ZCxvcmlnaW5hbE9wdGlvbnM6dixzdGFydFRpbWU6X3J8fG9hKCksZHVyYXRpb246di5kdXJhdGlvbix0d2VlbnM6W10sY3JlYXRlVHdlZW46ZnVuY3Rpb24oZnQsaXQpe3ZhciB3dD11LlR3ZWVuKGksUS5vcHRzLGZ0LGl0LFEub3B0cy5zcGVjaWFsRWFzaW5nW2Z0XXx8US5vcHRzLmVhc2luZyk7cmV0dXJuIFEudHdlZW5zLnB1c2god3QpLHd0fSxzdG9wOmZ1bmN0aW9uKGZ0KXt2YXIgaXQ9MCx3dD1mdD9RLnR3ZWVucy5sZW5ndGg6MDtpZihBKXJldHVybiB0aGlzO2ZvcihBPSEwO2l0PHd0O2l0KyspUS50d2VlbnNbaXRdLnJ1bigxKTtyZXR1cm4gZnQ/KCQubm90aWZ5V2l0aChpLFtRLDEsMF0pLCQucmVzb2x2ZVdpdGgoaSxbUSxmdF0pKTokLnJlamVjdFdpdGgoaSxbUSxmdF0pLHRoaXN9fSksZHQ9US5wcm9wcztmb3IoYW8oZHQsUS5vcHRzLnNwZWNpYWxFYXNpbmcpO0k8RTtJKyspaWYoeD1SZS5wcmVmaWx0ZXJzW0ldLmNhbGwoUSxpLGR0LFEub3B0cykseClyZXR1cm4gayh4LnN0b3ApJiYodS5fcXVldWVIb29rcyhRLmVsZW0sUS5vcHRzLnF1ZXVlKS5zdG9wPXguc3RvcC5iaW5kKHgpKSx4O3JldHVybiB1Lm1hcChkdCxsYSxRKSxrKFEub3B0cy5zdGFydCkmJlEub3B0cy5zdGFydC5jYWxsKGksUSksUS5wcm9ncmVzcyhRLm9wdHMucHJvZ3Jlc3MpLmRvbmUoUS5vcHRzLmRvbmUsUS5vcHRzLmNvbXBsZXRlKS5mYWlsKFEub3B0cy5mYWlsKS5hbHdheXMoUS5vcHRzLmFsd2F5cyksdS5meC50aW1lcih1LmV4dGVuZChVLHtlbGVtOmksYW5pbTpRLHF1ZXVlOlEub3B0cy5xdWV1ZX0pKSxRfXUuQW5pbWF0aW9uPXUuZXh0ZW5kKFJlLHt0d2VlbmVyczp7IioiOltmdW5jdGlvbihpLGQpe3ZhciB2PXRoaXMuY3JlYXRlVHdlZW4oaSxkKTtyZXR1cm4gZW4odi5lbGVtLGksdGUuZXhlYyhkKSx2KSx2fV19LHR3ZWVuZXI6ZnVuY3Rpb24oaSxkKXtrKGkpPyhkPWksaT1bIioiXSk6aT1pLm1hdGNoKEJ0KTtmb3IodmFyIHYseD0wLEE9aS5sZW5ndGg7eDxBO3grKyl2PWlbeF0sUmUudHdlZW5lcnNbdl09UmUudHdlZW5lcnNbdl18fFtdLFJlLnR3ZWVuZXJzW3ZdLnVuc2hpZnQoZCl9LHByZWZpbHRlcnM6W2lvXSxwcmVmaWx0ZXI6ZnVuY3Rpb24oaSxkKXtkP1JlLnByZWZpbHRlcnMudW5zaGlmdChpKTpSZS5wcmVmaWx0ZXJzLnB1c2goaSl9fSksdS5zcGVlZD1mdW5jdGlvbihpLGQsdil7dmFyIHg9aSYmdHlwZW9mIGk9PSJvYmplY3QiP3UuZXh0ZW5kKHt9LGkpOntjb21wbGV0ZTp2fHwhdiYmZHx8ayhpKSYmaSxkdXJhdGlvbjppLGVhc2luZzp2JiZkfHxkJiYhayhkKSYmZH07cmV0dXJuIHUuZngub2ZmP3guZHVyYXRpb249MDp0eXBlb2YgeC5kdXJhdGlvbiE9Im51bWJlciImJih4LmR1cmF0aW9uIGluIHUuZnguc3BlZWRzP3guZHVyYXRpb249dS5meC5zcGVlZHNbeC5kdXJhdGlvbl06eC5kdXJhdGlvbj11LmZ4LnNwZWVkcy5fZGVmYXVsdCksKHgucXVldWU9PW51bGx8fHgucXVldWU9PT0hMCkmJih4LnF1ZXVlPSJmeCIpLHgub2xkPXguY29tcGxldGUseC5jb21wbGV0ZT1mdW5jdGlvbigpe2soeC5vbGQpJiZ4Lm9sZC5jYWxsKHRoaXMpLHgucXVldWUmJnUuZGVxdWV1ZSh0aGlzLHgucXVldWUpfSx4fSx1LmZuLmV4dGVuZCh7ZmFkZVRvOmZ1bmN0aW9uKGksZCx2LHgpe3JldHVybiB0aGlzLmZpbHRlcihncikuY3NzKCJvcGFjaXR5IiwwKS5zaG93KCkuZW5kKCkuYW5pbWF0ZSh7b3BhY2l0eTpkfSxpLHYseCl9LGFuaW1hdGU6ZnVuY3Rpb24oaSxkLHYseCl7dmFyIEE9dS5pc0VtcHR5T2JqZWN0KGkpLEk9dS5zcGVlZChkLHYseCksRT1mdW5jdGlvbigpe3ZhciAkPVJlKHRoaXMsdS5leHRlbmQoe30saSksSSk7KEF8fGJ0LmdldCh0aGlzLCJmaW5pc2giKSkmJiQuc3RvcCghMCl9O3JldHVybiBFLmZpbmlzaD1FLEF8fEkucXVldWU9PT0hMT90aGlzLmVhY2goRSk6dGhpcy5xdWV1ZShJLnF1ZXVlLEUpfSxzdG9wOmZ1bmN0aW9uKGksZCx2KXt2YXIgeD1mdW5jdGlvbihBKXt2YXIgST1BLnN0b3A7ZGVsZXRlIEEuc3RvcCxJKHYpfTtyZXR1cm4gdHlwZW9mIGkhPSJzdHJpbmciJiYodj1kLGQ9aSxpPXZvaWQgMCksZCYmdGhpcy5xdWV1ZShpfHwiZngiLFtdKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgQT0hMCxJPWkhPW51bGwmJmkrInF1ZXVlSG9va3MiLEU9dS50aW1lcnMsJD1idC5nZXQodGhpcyk7aWYoSSkkW0ldJiYkW0ldLnN0b3AmJngoJFtJXSk7ZWxzZSBmb3IoSSBpbiAkKSRbSV0mJiRbSV0uc3RvcCYmbm8udGVzdChJKSYmeCgkW0ldKTtmb3IoST1FLmxlbmd0aDtJLS07KUVbSV0uZWxlbT09PXRoaXMmJihpPT1udWxsfHxFW0ldLnF1ZXVlPT09aSkmJihFW0ldLmFuaW0uc3RvcCh2KSxBPSExLEUuc3BsaWNlKEksMSkpOyhBfHwhdikmJnUuZGVxdWV1ZSh0aGlzLGkpfSl9LGZpbmlzaDpmdW5jdGlvbihpKXtyZXR1cm4gaSE9PSExJiYoaT1pfHwiZngiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZCx2PWJ0LmdldCh0aGlzKSx4PXZbaSsicXVldWUiXSxBPXZbaSsicXVldWVIb29rcyJdLEk9dS50aW1lcnMsRT14P3gubGVuZ3RoOjA7Zm9yKHYuZmluaXNoPSEwLHUucXVldWUodGhpcyxpLFtdKSxBJiZBLnN0b3AmJkEuc3RvcC5jYWxsKHRoaXMsITApLGQ9SS5sZW5ndGg7ZC0tOylJW2RdLmVsZW09PT10aGlzJiZJW2RdLnF1ZXVlPT09aSYmKElbZF0uYW5pbS5zdG9wKCEwKSxJLnNwbGljZShkLDEpKTtmb3IoZD0wO2Q8RTtkKyspeFtkXSYmeFtkXS5maW5pc2gmJnhbZF0uZmluaXNoLmNhbGwodGhpcyk7ZGVsZXRlIHYuZmluaXNofSl9fSksdS5lYWNoKFsidG9nZ2xlIiwic2hvdyIsImhpZGUiXSxmdW5jdGlvbihpLGQpe3ZhciB2PXUuZm5bZF07dS5mbltkXT1mdW5jdGlvbih4LEEsSSl7cmV0dXJuIHg9PW51bGx8fHR5cGVvZiB4PT0iYm9vbGVhbiI/di5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dGhpcy5hbmltYXRlKGxuKGQsITApLHgsQSxJKX19KSx1LmVhY2goe3NsaWRlRG93bjpsbigic2hvdyIpLHNsaWRlVXA6bG4oImhpZGUiKSxzbGlkZVRvZ2dsZTpsbigidG9nZ2xlIiksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9LGZhZGVUb2dnbGU6e29wYWNpdHk6InRvZ2dsZSJ9fSxmdW5jdGlvbihpLGQpe3UuZm5baV09ZnVuY3Rpb24odix4LEEpe3JldHVybiB0aGlzLmFuaW1hdGUoZCx2LHgsQSl9fSksdS50aW1lcnM9W10sdS5meC50aWNrPWZ1bmN0aW9uKCl7dmFyIGksZD0wLHY9dS50aW1lcnM7Zm9yKF9yPURhdGUubm93KCk7ZDx2Lmxlbmd0aDtkKyspaT12W2RdLCFpKCkmJnZbZF09PT1pJiZ2LnNwbGljZShkLS0sMSk7di5sZW5ndGh8fHUuZnguc3RvcCgpLF9yPXZvaWQgMH0sdS5meC50aW1lcj1mdW5jdGlvbihpKXt1LnRpbWVycy5wdXNoKGkpLHUuZnguc3RhcnQoKX0sdS5meC5pbnRlcnZhbD0xMyx1LmZ4LnN0YXJ0PWZ1bmN0aW9uKCl7b258fChvbj0hMCxXbigpKX0sdS5meC5zdG9wPWZ1bmN0aW9uKCl7b249bnVsbH0sdS5meC5zcGVlZHM9e3Nsb3c6NjAwLGZhc3Q6MjAwLF9kZWZhdWx0OjQwMH0sdS5mbi5kZWxheT1mdW5jdGlvbihpLGQpe3JldHVybiBpPXUuZngmJnUuZnguc3BlZWRzW2ldfHxpLGQ9ZHx8ImZ4Iix0aGlzLnF1ZXVlKGQsZnVuY3Rpb24odix4KXt2YXIgQT10LnNldFRpbWVvdXQodixpKTt4LnN0b3A9ZnVuY3Rpb24oKXt0LmNsZWFyVGltZW91dChBKX19KX0sZnVuY3Rpb24oKXt2YXIgaT1GLmNyZWF0ZUVsZW1lbnQoImlucHV0IiksZD1GLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLHY9ZC5hcHBlbmRDaGlsZChGLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpKTtpLnR5cGU9ImNoZWNrYm94Iix3LmNoZWNrT249aS52YWx1ZSE9PSIiLHcub3B0U2VsZWN0ZWQ9di5zZWxlY3RlZCxpPUYuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxpLnZhbHVlPSJ0IixpLnR5cGU9InJhZGlvIix3LnJhZGlvVmFsdWU9aS52YWx1ZT09PSJ0In0oKTt2YXIgZGEsTHI9dS5leHByLmF0dHJIYW5kbGU7dS5mbi5leHRlbmQoe2F0dHI6ZnVuY3Rpb24oaSxkKXtyZXR1cm4gWSh0aGlzLHUuYXR0cixpLGQsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihpKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dS5yZW1vdmVBdHRyKHRoaXMsaSl9KX19KSx1LmV4dGVuZCh7YXR0cjpmdW5jdGlvbihpLGQsdil7dmFyIHgsQSxJPWkubm9kZVR5cGU7aWYoIShJPT09M3x8ST09PTh8fEk9PT0yKSl7aWYodHlwZW9mIGkuZ2V0QXR0cmlidXRlPiJ1IilyZXR1cm4gdS5wcm9wKGksZCx2KTtpZigoSSE9PTF8fCF1LmlzWE1MRG9jKGkpKSYmKEE9dS5hdHRySG9va3NbZC50b0xvd2VyQ2FzZSgpXXx8KHUuZXhwci5tYXRjaC5ib29sLnRlc3QoZCk/ZGE6dm9pZCAwKSksdiE9PXZvaWQgMCl7aWYodj09PW51bGwpe3UucmVtb3ZlQXR0cihpLGQpO3JldHVybn1yZXR1cm4gQSYmInNldCJpbiBBJiYoeD1BLnNldChpLHYsZCkpIT09dm9pZCAwP3g6KGkuc2V0QXR0cmlidXRlKGQsdisiIiksdil9cmV0dXJuIEEmJiJnZXQiaW4gQSYmKHg9QS5nZXQoaSxkKSkhPT1udWxsP3g6KHg9dS5maW5kLmF0dHIoaSxkKSx4Pz92b2lkIDApfX0sYXR0ckhvb2tzOnt0eXBlOntzZXQ6ZnVuY3Rpb24oaSxkKXtpZighdy5yYWRpb1ZhbHVlJiZkPT09InJhZGlvIiYmcShpLCJpbnB1dCIpKXt2YXIgdj1pLnZhbHVlO3JldHVybiBpLnNldEF0dHJpYnV0ZSgidHlwZSIsZCksdiYmKGkudmFsdWU9diksZH19fX0scmVtb3ZlQXR0cjpmdW5jdGlvbihpLGQpe3ZhciB2LHg9MCxBPWQmJmQubWF0Y2goQnQpO2lmKEEmJmkubm9kZVR5cGU9PT0xKWZvcig7dj1BW3grK107KWkucmVtb3ZlQXR0cmlidXRlKHYpfX0pLGRhPXtzZXQ6ZnVuY3Rpb24oaSxkLHYpe3JldHVybiBkPT09ITE/dS5yZW1vdmVBdHRyKGksdik6aS5zZXRBdHRyaWJ1dGUodix2KSx2fX0sdS5lYWNoKHUuZXhwci5tYXRjaC5ib29sLnNvdXJjZS5tYXRjaCgvXHcrL2cpLGZ1bmN0aW9uKGksZCl7dmFyIHY9THJbZF18fHUuZmluZC5hdHRyO0xyW2RdPWZ1bmN0aW9uKHgsQSxJKXt2YXIgRSwkLFU9QS50b0xvd2VyQ2FzZSgpO3JldHVybiBJfHwoJD1McltVXSxMcltVXT1FLEU9dih4LEEsSSkhPW51bGw/VTpudWxsLExyW1VdPSQpLEV9fSk7dmFyIHNvPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksb289L14oPzphfGFyZWEpJC9pO3UuZm4uZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGksZCl7cmV0dXJuIFkodGhpcyx1LnByb3AsaSxkLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZVByb3A6ZnVuY3Rpb24oaSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW3UucHJvcEZpeFtpXXx8aV19KX19KSx1LmV4dGVuZCh7cHJvcDpmdW5jdGlvbihpLGQsdil7dmFyIHgsQSxJPWkubm9kZVR5cGU7aWYoIShJPT09M3x8ST09PTh8fEk9PT0yKSlyZXR1cm4oSSE9PTF8fCF1LmlzWE1MRG9jKGkpKSYmKGQ9dS5wcm9wRml4W2RdfHxkLEE9dS5wcm9wSG9va3NbZF0pLHYhPT12b2lkIDA/QSYmInNldCJpbiBBJiYoeD1BLnNldChpLHYsZCkpIT09dm9pZCAwP3g6aVtkXT12OkEmJiJnZXQiaW4gQSYmKHg9QS5nZXQoaSxkKSkhPT1udWxsP3g6aVtkXX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGkpe3ZhciBkPXUuZmluZC5hdHRyKGksInRhYmluZGV4Iik7cmV0dXJuIGQ/cGFyc2VJbnQoZCwxMCk6c28udGVzdChpLm5vZGVOYW1lKXx8b28udGVzdChpLm5vZGVOYW1lKSYmaS5ocmVmPzA6LTF9fX0scHJvcEZpeDp7Zm9yOiJodG1sRm9yIixjbGFzczoiY2xhc3NOYW1lIn19KSx3Lm9wdFNlbGVjdGVkfHwodS5wcm9wSG9va3Muc2VsZWN0ZWQ9e2dldDpmdW5jdGlvbihpKXt2YXIgZD1pLnBhcmVudE5vZGU7cmV0dXJuIGQmJmQucGFyZW50Tm9kZSYmZC5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsbnVsbH0sc2V0OmZ1bmN0aW9uKGkpe3ZhciBkPWkucGFyZW50Tm9kZTtkJiYoZC5zZWxlY3RlZEluZGV4LGQucGFyZW50Tm9kZSYmZC5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgpfX0pLHUuZWFjaChbInRhYkluZGV4IiwicmVhZE9ubHkiLCJtYXhMZW5ndGgiLCJjZWxsU3BhY2luZyIsImNlbGxQYWRkaW5nIiwicm93U3BhbiIsImNvbFNwYW4iLCJ1c2VNYXAiLCJmcmFtZUJvcmRlciIsImNvbnRlbnRFZGl0YWJsZSJdLGZ1bmN0aW9uKCl7dS5wcm9wRml4W3RoaXMudG9Mb3dlckNhc2UoKV09dGhpc30pO2Z1bmN0aW9uIG9yKGkpe3ZhciBkPWkubWF0Y2goQnQpfHxbXTtyZXR1cm4gZC5qb2luKCIgIil9ZnVuY3Rpb24gbHIoaSl7cmV0dXJuIGkuZ2V0QXR0cmlidXRlJiZpLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiJ9ZnVuY3Rpb24gVW4oaSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoaSk/aTp0eXBlb2YgaT09InN0cmluZyI/aS5tYXRjaChCdCl8fFtdOltdfXUuZm4uZXh0ZW5kKHthZGRDbGFzczpmdW5jdGlvbihpKXt2YXIgZCx2LHgsQSxJLEU7cmV0dXJuIGsoaSk/dGhpcy5lYWNoKGZ1bmN0aW9uKCQpe3UodGhpcykuYWRkQ2xhc3MoaS5jYWxsKHRoaXMsJCxscih0aGlzKSkpfSk6KGQ9VW4oaSksZC5sZW5ndGg/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoeD1scih0aGlzKSx2PXRoaXMubm9kZVR5cGU9PT0xJiYiICIrb3IoeCkrIiAiLHYpe2ZvcihJPTA7STxkLmxlbmd0aDtJKyspQT1kW0ldLHYuaW5kZXhPZigiICIrQSsiICIpPDAmJih2Kz1BKyIgIik7RT1vcih2KSx4IT09RSYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixFKX19KTp0aGlzKX0scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oaSl7dmFyIGQsdix4LEEsSSxFO3JldHVybiBrKGkpP3RoaXMuZWFjaChmdW5jdGlvbigkKXt1KHRoaXMpLnJlbW92ZUNsYXNzKGkuY2FsbCh0aGlzLCQsbHIodGhpcykpKX0pOmFyZ3VtZW50cy5sZW5ndGg/KGQ9VW4oaSksZC5sZW5ndGg/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoeD1scih0aGlzKSx2PXRoaXMubm9kZVR5cGU9PT0xJiYiICIrb3IoeCkrIiAiLHYpe2ZvcihJPTA7STxkLmxlbmd0aDtJKyspZm9yKEE9ZFtJXTt2LmluZGV4T2YoIiAiK0ErIiAiKT4tMTspdj12LnJlcGxhY2UoIiAiK0ErIiAiLCIgIik7RT1vcih2KSx4IT09RSYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixFKX19KTp0aGlzKTp0aGlzLmF0dHIoImNsYXNzIiwiIil9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKGksZCl7dmFyIHYseCxBLEksRT10eXBlb2YgaSwkPUU9PT0ic3RyaW5nInx8QXJyYXkuaXNBcnJheShpKTtyZXR1cm4gayhpKT90aGlzLmVhY2goZnVuY3Rpb24oVSl7dSh0aGlzKS50b2dnbGVDbGFzcyhpLmNhbGwodGhpcyxVLGxyKHRoaXMpLGQpLGQpfSk6dHlwZW9mIGQ9PSJib29sZWFuIiYmJD9kP3RoaXMuYWRkQ2xhc3MoaSk6dGhpcy5yZW1vdmVDbGFzcyhpKToodj1VbihpKSx0aGlzLmVhY2goZnVuY3Rpb24oKXtpZigkKWZvcihJPXUodGhpcyksQT0wO0E8di5sZW5ndGg7QSsrKXg9dltBXSxJLmhhc0NsYXNzKHgpP0kucmVtb3ZlQ2xhc3MoeCk6SS5hZGRDbGFzcyh4KTtlbHNlKGk9PT12b2lkIDB8fEU9PT0iYm9vbGVhbiIpJiYoeD1scih0aGlzKSx4JiZidC5zZXQodGhpcywiX19jbGFzc05hbWVfXyIseCksdGhpcy5zZXRBdHRyaWJ1dGUmJnRoaXMuc2V0QXR0cmlidXRlKCJjbGFzcyIseHx8aT09PSExPyIiOmJ0LmdldCh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKSl9KSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGkpe3ZhciBkLHYseD0wO2ZvcihkPSIgIitpKyIgIjt2PXRoaXNbeCsrXTspaWYodi5ub2RlVHlwZT09PTEmJigiICIrb3IobHIodikpKyIgIikuaW5kZXhPZihkKT4tMSlyZXR1cm4hMDtyZXR1cm4hMX19KTt2YXIgbG89L1xyL2c7dS5mbi5leHRlbmQoe3ZhbDpmdW5jdGlvbihpKXt2YXIgZCx2LHgsQT10aGlzWzBdO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh4PWsoaSksdGhpcy5lYWNoKGZ1bmN0aW9uKEkpe3ZhciBFO3RoaXMubm9kZVR5cGU9PT0xJiYoeD9FPWkuY2FsbCh0aGlzLEksdSh0aGlzKS52YWwoKSk6RT1pLEU9PW51bGw/RT0iIjp0eXBlb2YgRT09Im51bWJlciI/RSs9IiI6QXJyYXkuaXNBcnJheShFKSYmKEU9dS5tYXAoRSxmdW5jdGlvbigkKXtyZXR1cm4gJD09bnVsbD8iIjokKyIifSkpLGQ9dS52YWxIb29rc1t0aGlzLnR5cGVdfHx1LnZhbEhvb2tzW3RoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0sKCFkfHwhKCJzZXQiaW4gZCl8fGQuc2V0KHRoaXMsRSwidmFsdWUiKT09PXZvaWQgMCkmJih0aGlzLnZhbHVlPUUpKX0pKTpBPyhkPXUudmFsSG9va3NbQS50eXBlXXx8dS52YWxIb29rc1tBLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLGQmJiJnZXQiaW4gZCYmKHY9ZC5nZXQoQSwidmFsdWUiKSkhPT12b2lkIDA/djoodj1BLnZhbHVlLHR5cGVvZiB2PT0ic3RyaW5nIj92LnJlcGxhY2UobG8sIiIpOnY/PyIiKSk6dm9pZCAwfX0pLHUuZXh0ZW5kKHt2YWxIb29rczp7b3B0aW9uOntnZXQ6ZnVuY3Rpb24oaSl7dmFyIGQ9dS5maW5kLmF0dHIoaSwidmFsdWUiKTtyZXR1cm4gZD8/b3IodS50ZXh0KGkpKX19LHNlbGVjdDp7Z2V0OmZ1bmN0aW9uKGkpe3ZhciBkLHYseCxBPWkub3B0aW9ucyxJPWkuc2VsZWN0ZWRJbmRleCxFPWkudHlwZT09PSJzZWxlY3Qtb25lIiwkPUU/bnVsbDpbXSxVPUU/SSsxOkEubGVuZ3RoO2ZvcihJPDA/eD1VOng9RT9JOjA7eDxVO3grKylpZih2PUFbeF0sKHYuc2VsZWN0ZWR8fHg9PT1JKSYmIXYuZGlzYWJsZWQmJighdi5wYXJlbnROb2RlLmRpc2FibGVkfHwhcSh2LnBhcmVudE5vZGUsIm9wdGdyb3VwIikpKXtpZihkPXUodikudmFsKCksRSlyZXR1cm4gZDskLnB1c2goZCl9cmV0dXJuICR9LHNldDpmdW5jdGlvbihpLGQpe2Zvcih2YXIgdix4LEE9aS5vcHRpb25zLEk9dS5tYWtlQXJyYXkoZCksRT1BLmxlbmd0aDtFLS07KXg9QVtFXSwoeC5zZWxlY3RlZD11LmluQXJyYXkodS52YWxIb29rcy5vcHRpb24uZ2V0KHgpLEkpPi0xKSYmKHY9ITApO3JldHVybiB2fHwoaS5zZWxlY3RlZEluZGV4PS0xKSxJfX19fSksdS5lYWNoKFsicmFkaW8iLCJjaGVja2JveCJdLGZ1bmN0aW9uKCl7dS52YWxIb29rc1t0aGlzXT17c2V0OmZ1bmN0aW9uKGksZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gaS5jaGVja2VkPXUuaW5BcnJheSh1KGkpLnZhbCgpLGQpPi0xfX0sdy5jaGVja09ufHwodS52YWxIb29rc1t0aGlzXS5nZXQ9ZnVuY3Rpb24oaSl7cmV0dXJuIGkuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpPT09bnVsbD8ib24iOmkudmFsdWV9KX0pO3ZhciB6cj10LmxvY2F0aW9uLHVhPXtndWlkOkRhdGUubm93KCl9LHFuPS9cPy87dS5wYXJzZVhNTD1mdW5jdGlvbihpKXt2YXIgZCx2O2lmKCFpfHx0eXBlb2YgaSE9InN0cmluZyIpcmV0dXJuIG51bGw7dHJ5e2Q9bmV3IHQuRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGksInRleHQveG1sIil9Y2F0Y2h7fXJldHVybiB2PWQmJmQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcnNlcmVycm9yIilbMF0sKCFkfHx2KSYmdS5lcnJvcigiSW52YWxpZCBYTUw6ICIrKHY/dS5tYXAodi5jaGlsZE5vZGVzLGZ1bmN0aW9uKHgpe3JldHVybiB4LnRleHRDb250ZW50fSkuam9pbihgCmApOmkpKSxkfTt2YXIgY2E9L14oPzpmb2N1c2luZm9jdXN8Zm9jdXNvdXRibHVyKSQvLGZhPWZ1bmN0aW9uKGkpe2kuc3RvcFByb3BhZ2F0aW9uKCl9O3UuZXh0ZW5kKHUuZXZlbnQse3RyaWdnZXI6ZnVuY3Rpb24oaSxkLHYseCl7dmFyIEEsSSxFLCQsVSxRLGR0LGZ0LGl0PVt2fHxGXSx3dD1tLmNhbGwoaSwidHlwZSIpP2kudHlwZTppLEV0PW0uY2FsbChpLCJuYW1lc3BhY2UiKT9pLm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKEk9ZnQ9RT12PXZ8fEYsISh2Lm5vZGVUeXBlPT09M3x8di5ub2RlVHlwZT09PTgpJiYhY2EudGVzdCh3dCt1LmV2ZW50LnRyaWdnZXJlZCkmJih3dC5pbmRleE9mKCIuIik+LTEmJihFdD13dC5zcGxpdCgiLiIpLHd0PUV0LnNoaWZ0KCksRXQuc29ydCgpKSxVPXd0LmluZGV4T2YoIjoiKTwwJiYib24iK3d0LGk9aVt1LmV4cGFuZG9dP2k6bmV3IHUuRXZlbnQod3QsdHlwZW9mIGk9PSJvYmplY3QiJiZpKSxpLmlzVHJpZ2dlcj14PzI6MyxpLm5hbWVzcGFjZT1FdC5qb2luKCIuIiksaS5ybmFtZXNwYWNlPWkubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK0V0LmpvaW4oIlxcLig/Oi4qXFwufCkiKSsiKFxcLnwkKSIpOm51bGwsaS5yZXN1bHQ9dm9pZCAwLGkudGFyZ2V0fHwoaS50YXJnZXQ9diksZD1kPT1udWxsP1tpXTp1Lm1ha2VBcnJheShkLFtpXSksZHQ9dS5ldmVudC5zcGVjaWFsW3d0XXx8e30sISgheCYmZHQudHJpZ2dlciYmZHQudHJpZ2dlci5hcHBseSh2LGQpPT09ITEpKSl7aWYoIXgmJiFkdC5ub0J1YmJsZSYmIVAodikpe2ZvcigkPWR0LmRlbGVnYXRlVHlwZXx8d3QsY2EudGVzdCgkK3d0KXx8KEk9SS5wYXJlbnROb2RlKTtJO0k9SS5wYXJlbnROb2RlKWl0LnB1c2goSSksRT1JO0U9PT0odi5vd25lckRvY3VtZW50fHxGKSYmaXQucHVzaChFLmRlZmF1bHRWaWV3fHxFLnBhcmVudFdpbmRvd3x8dCl9Zm9yKEE9MDsoST1pdFtBKytdKSYmIWkuaXNQcm9wYWdhdGlvblN0b3BwZWQoKTspZnQ9SSxpLnR5cGU9QT4xPyQ6ZHQuYmluZFR5cGV8fHd0LFE9KGJ0LmdldChJLCJldmVudHMiKXx8T2JqZWN0LmNyZWF0ZShudWxsKSlbaS50eXBlXSYmYnQuZ2V0KEksImhhbmRsZSIpLFEmJlEuYXBwbHkoSSxkKSxRPVUmJklbVV0sUSYmUS5hcHBseSYmQ3QoSSkmJihpLnJlc3VsdD1RLmFwcGx5KEksZCksaS5yZXN1bHQ9PT0hMSYmaS5wcmV2ZW50RGVmYXVsdCgpKTtyZXR1cm4gaS50eXBlPXd0LCF4JiYhaS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmKCFkdC5fZGVmYXVsdHx8ZHQuX2RlZmF1bHQuYXBwbHkoaXQucG9wKCksZCk9PT0hMSkmJkN0KHYpJiZVJiZrKHZbd3RdKSYmIVAodikmJihFPXZbVV0sRSYmKHZbVV09bnVsbCksdS5ldmVudC50cmlnZ2VyZWQ9d3QsaS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZmdC5hZGRFdmVudExpc3RlbmVyKHd0LGZhKSx2W3d0XSgpLGkuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSYmZnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih3dCxmYSksdS5ldmVudC50cmlnZ2VyZWQ9dm9pZCAwLEUmJih2W1VdPUUpKSxpLnJlc3VsdH19LHNpbXVsYXRlOmZ1bmN0aW9uKGksZCx2KXt2YXIgeD11LmV4dGVuZChuZXcgdS5FdmVudCx2LHt0eXBlOmksaXNTaW11bGF0ZWQ6ITB9KTt1LmV2ZW50LnRyaWdnZXIoeCxudWxsLGQpfX0pLHUuZm4uZXh0ZW5kKHt0cmlnZ2VyOmZ1bmN0aW9uKGksZCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3UuZXZlbnQudHJpZ2dlcihpLGQsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oaSxkKXt2YXIgdj10aGlzWzBdO2lmKHYpcmV0dXJuIHUuZXZlbnQudHJpZ2dlcihpLGQsdiwhMCl9fSk7dmFyIHVvPS9cW1xdJC8saGE9L1xyP1xuL2csY289L14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLGZvPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGtleWdlbikvaTtmdW5jdGlvbiBHbihpLGQsdix4KXt2YXIgQTtpZihBcnJheS5pc0FycmF5KGQpKXUuZWFjaChkLGZ1bmN0aW9uKEksRSl7dnx8dW8udGVzdChpKT94KGksRSk6R24oaSsiWyIrKHR5cGVvZiBFPT0ib2JqZWN0IiYmRSE9bnVsbD9JOiIiKSsiXSIsRSx2LHgpfSk7ZWxzZSBpZighdiYmZihkKT09PSJvYmplY3QiKWZvcihBIGluIGQpR24oaSsiWyIrQSsiXSIsZFtBXSx2LHgpO2Vsc2UgeChpLGQpfXUucGFyYW09ZnVuY3Rpb24oaSxkKXt2YXIgdix4PVtdLEE9ZnVuY3Rpb24oSSxFKXt2YXIgJD1rKEUpP0UoKTpFO3hbeC5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudChJKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KCQ/PyIiKX07aWYoaT09bnVsbClyZXR1cm4iIjtpZihBcnJheS5pc0FycmF5KGkpfHxpLmpxdWVyeSYmIXUuaXNQbGFpbk9iamVjdChpKSl1LmVhY2goaSxmdW5jdGlvbigpe0EodGhpcy5uYW1lLHRoaXMudmFsdWUpfSk7ZWxzZSBmb3IodiBpbiBpKUduKHYsaVt2XSxkLEEpO3JldHVybiB4LmpvaW4oIiYiKX0sdS5mbi5leHRlbmQoe3NlcmlhbGl6ZTpmdW5jdGlvbigpe3JldHVybiB1LnBhcmFtKHRoaXMuc2VyaWFsaXplQXJyYXkoKSl9LHNlcmlhbGl6ZUFycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIGk9dS5wcm9wKHRoaXMsImVsZW1lbnRzIik7cmV0dXJuIGk/dS5tYWtlQXJyYXkoaSk6dGhpc30pLmZpbHRlcihmdW5jdGlvbigpe3ZhciBpPXRoaXMudHlwZTtyZXR1cm4gdGhpcy5uYW1lJiYhdSh0aGlzKS5pcygiOmRpc2FibGVkIikmJmZvLnRlc3QodGhpcy5ub2RlTmFtZSkmJiFjby50ZXN0KGkpJiYodGhpcy5jaGVja2VkfHwhamUudGVzdChpKSl9KS5tYXAoZnVuY3Rpb24oaSxkKXt2YXIgdj11KHRoaXMpLnZhbCgpO3JldHVybiB2PT1udWxsP251bGw6QXJyYXkuaXNBcnJheSh2KT91Lm1hcCh2LGZ1bmN0aW9uKHgpe3JldHVybntuYW1lOmQubmFtZSx2YWx1ZTp4LnJlcGxhY2UoaGEsYFxyCmApfX0pOntuYW1lOmQubmFtZSx2YWx1ZTp2LnJlcGxhY2UoaGEsYFxyCmApfX0pLmdldCgpfX0pO3ZhciBobz0vJTIwL2cscG89LyMuKiQvLGJvPS8oWz8mXSlfPVteJl0qLyx2bz0vXiguKj8pOlsgXHRdKihbXlxyXG5dKikkL21nLG1vPS9eKD86YWJvdXR8YXBwfGFwcC1zdG9yYWdlfC4rLWV4dGVuc2lvbnxmaWxlfHJlc3x3aWRnZXQpOiQvLGdvPS9eKD86R0VUfEhFQUQpJC8seW89L15cL1wvLyxwYT17fSxYbj17fSxiYT0iKi8iLmNvbmNhdCgiKiIpLCRuPUYuY3JlYXRlRWxlbWVudCgiYSIpOyRuLmhyZWY9enIuaHJlZjtmdW5jdGlvbiB2YShpKXtyZXR1cm4gZnVuY3Rpb24oZCx2KXt0eXBlb2YgZCE9InN0cmluZyImJih2PWQsZD0iKiIpO3ZhciB4LEE9MCxJPWQudG9Mb3dlckNhc2UoKS5tYXRjaChCdCl8fFtdO2lmKGsodikpZm9yKDt4PUlbQSsrXTspeFswXT09PSIrIj8oeD14LnNsaWNlKDEpfHwiKiIsKGlbeF09aVt4XXx8W10pLnVuc2hpZnQodikpOihpW3hdPWlbeF18fFtdKS5wdXNoKHYpfX1mdW5jdGlvbiBtYShpLGQsdix4KXt2YXIgQT17fSxJPWk9PT1YbjtmdW5jdGlvbiBFKCQpe3ZhciBVO3JldHVybiBBWyRdPSEwLHUuZWFjaChpWyRdfHxbXSxmdW5jdGlvbihRLGR0KXt2YXIgZnQ9ZHQoZCx2LHgpO2lmKHR5cGVvZiBmdD09InN0cmluZyImJiFJJiYhQVtmdF0pcmV0dXJuIGQuZGF0YVR5cGVzLnVuc2hpZnQoZnQpLEUoZnQpLCExO2lmKEkpcmV0dXJuIShVPWZ0KX0pLFV9cmV0dXJuIEUoZC5kYXRhVHlwZXNbMF0pfHwhQVsiKiJdJiZFKCIqIil9ZnVuY3Rpb24gWm4oaSxkKXt2YXIgdix4LEE9dS5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2Zvcih2IGluIGQpZFt2XSE9PXZvaWQgMCYmKChBW3ZdP2k6eHx8KHg9e30pKVt2XT1kW3ZdKTtyZXR1cm4geCYmdS5leHRlbmQoITAsaSx4KSxpfWZ1bmN0aW9uIHdvKGksZCx2KXtmb3IodmFyIHgsQSxJLEUsJD1pLmNvbnRlbnRzLFU9aS5kYXRhVHlwZXM7VVswXT09PSIqIjspVS5zaGlmdCgpLHg9PT12b2lkIDAmJih4PWkubWltZVR5cGV8fGQuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZih4KXtmb3IoQSBpbiAkKWlmKCRbQV0mJiRbQV0udGVzdCh4KSl7VS51bnNoaWZ0KEEpO2JyZWFrfX1pZihVWzBdaW4gdilJPVVbMF07ZWxzZXtmb3IoQSBpbiB2KXtpZighVVswXXx8aS5jb252ZXJ0ZXJzW0ErIiAiK1VbMF1dKXtJPUE7YnJlYWt9RXx8KEU9QSl9ST1JfHxFfWlmKEkpcmV0dXJuIEkhPT1VWzBdJiZVLnVuc2hpZnQoSSksdltJXX1mdW5jdGlvbiB4byhpLGQsdix4KXt2YXIgQSxJLEUsJCxVLFE9e30sZHQ9aS5kYXRhVHlwZXMuc2xpY2UoKTtpZihkdFsxXSlmb3IoRSBpbiBpLmNvbnZlcnRlcnMpUVtFLnRvTG93ZXJDYXNlKCldPWkuY29udmVydGVyc1tFXTtmb3IoST1kdC5zaGlmdCgpO0k7KWlmKGkucmVzcG9uc2VGaWVsZHNbSV0mJih2W2kucmVzcG9uc2VGaWVsZHNbSV1dPWQpLCFVJiZ4JiZpLmRhdGFGaWx0ZXImJihkPWkuZGF0YUZpbHRlcihkLGkuZGF0YVR5cGUpKSxVPUksST1kdC5zaGlmdCgpLEkpe2lmKEk9PT0iKiIpST1VO2Vsc2UgaWYoVSE9PSIqIiYmVSE9PUkpe2lmKEU9UVtVKyIgIitJXXx8UVsiKiAiK0ldLCFFKXtmb3IoQSBpbiBRKWlmKCQ9QS5zcGxpdCgiICIpLCRbMV09PT1JJiYoRT1RW1UrIiAiKyRbMF1dfHxRWyIqICIrJFswXV0sRSkpe0U9PT0hMD9FPVFbQV06UVtBXSE9PSEwJiYoST0kWzBdLGR0LnVuc2hpZnQoJFsxXSkpO2JyZWFrfX1pZihFIT09ITApaWYoRSYmaS50aHJvd3MpZD1FKGQpO2Vsc2UgdHJ5e2Q9RShkKX1jYXRjaChmdCl7cmV0dXJue3N0YXRlOiJwYXJzZXJlcnJvciIsZXJyb3I6RT9mdDoiTm8gY29udmVyc2lvbiBmcm9tICIrVSsiIHRvICIrSX19fX1yZXR1cm57c3RhdGU6InN1Y2Nlc3MiLGRhdGE6ZH19dS5leHRlbmQoe2FjdGl2ZTowLGxhc3RNb2RpZmllZDp7fSxldGFnOnt9LGFqYXhTZXR0aW5nczp7dXJsOnpyLmhyZWYsdHlwZToiR0VUIixpc0xvY2FsOm1vLnRlc3QoenIucHJvdG9jb2wpLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04IixhY2NlcHRzOnsiKiI6YmEsdGV4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIix4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCJ9LGNvbnRlbnRzOnt4bWw6L1xieG1sXGIvLGh0bWw6L1xiaHRtbC8sanNvbjovXGJqc29uXGIvfSxyZXNwb25zZUZpZWxkczp7eG1sOiJyZXNwb25zZVhNTCIsdGV4dDoicmVzcG9uc2VUZXh0Iixqc29uOiJyZXNwb25zZUpTT04ifSxjb252ZXJ0ZXJzOnsiKiB0ZXh0IjpTdHJpbmcsInRleHQgaHRtbCI6ITAsInRleHQganNvbiI6SlNPTi5wYXJzZSwidGV4dCB4bWwiOnUucGFyc2VYTUx9LGZsYXRPcHRpb25zOnt1cmw6ITAsY29udGV4dDohMH19LGFqYXhTZXR1cDpmdW5jdGlvbihpLGQpe3JldHVybiBkP1puKFpuKGksdS5hamF4U2V0dGluZ3MpLGQpOlpuKHUuYWpheFNldHRpbmdzLGkpfSxhamF4UHJlZmlsdGVyOnZhKHBhKSxhamF4VHJhbnNwb3J0OnZhKFhuKSxhamF4OmZ1bmN0aW9uKGksZCl7dHlwZW9mIGk9PSJvYmplY3QiJiYoZD1pLGk9dm9pZCAwKSxkPWR8fHt9O3ZhciB2LHgsQSxJLEUsJCxVLFEsZHQsZnQsaXQ9dS5hamF4U2V0dXAoe30sZCksd3Q9aXQuY29udGV4dHx8aXQsRXQ9aXQuY29udGV4dCYmKHd0Lm5vZGVUeXBlfHx3dC5qcXVlcnkpP3Uod3QpOnUuZXZlbnQsR3Q9dS5EZWZlcnJlZCgpLE10PXUuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLGxlPWl0LnN0YXR1c0NvZGV8fHt9LHNlPXt9LE1lPXt9LFZlPSJjYW5jZWxlZCIscXQ9e3JlYWR5U3RhdGU6MCxnZXRSZXNwb25zZUhlYWRlcjpmdW5jdGlvbihYdCl7dmFyIHJlO2lmKFUpe2lmKCFJKWZvcihJPXt9O3JlPXZvLmV4ZWMoQSk7KUlbcmVbMV0udG9Mb3dlckNhc2UoKSsiICJdPShJW3JlWzFdLnRvTG93ZXJDYXNlKCkrIiAiXXx8W10pLmNvbmNhdChyZVsyXSk7cmU9SVtYdC50b0xvd2VyQ2FzZSgpKyIgIl19cmV0dXJuIHJlPT1udWxsP251bGw6cmUuam9pbigiLCAiKX0sZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIFU/QTpudWxsfSxzZXRSZXF1ZXN0SGVhZGVyOmZ1bmN0aW9uKFh0LHJlKXtyZXR1cm4gVT09bnVsbCYmKFh0PU1lW1h0LnRvTG93ZXJDYXNlKCldPU1lW1h0LnRvTG93ZXJDYXNlKCldfHxYdCxzZVtYdF09cmUpLHRoaXN9LG92ZXJyaWRlTWltZVR5cGU6ZnVuY3Rpb24oWHQpe3JldHVybiBVPT1udWxsJiYoaXQubWltZVR5cGU9WHQpLHRoaXN9LHN0YXR1c0NvZGU6ZnVuY3Rpb24oWHQpe3ZhciByZTtpZihYdClpZihVKXF0LmFsd2F5cyhYdFtxdC5zdGF0dXNdKTtlbHNlIGZvcihyZSBpbiBYdClsZVtyZV09W2xlW3JlXSxYdFtyZV1dO3JldHVybiB0aGlzfSxhYm9ydDpmdW5jdGlvbihYdCl7dmFyIHJlPVh0fHxWZTtyZXR1cm4gdiYmdi5hYm9ydChyZSksZHIoMCxyZSksdGhpc319O2lmKEd0LnByb21pc2UocXQpLGl0LnVybD0oKGl8fGl0LnVybHx8enIuaHJlZikrIiIpLnJlcGxhY2UoeW8senIucHJvdG9jb2wrIi8vIiksaXQudHlwZT1kLm1ldGhvZHx8ZC50eXBlfHxpdC5tZXRob2R8fGl0LnR5cGUsaXQuZGF0YVR5cGVzPShpdC5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKEJ0KXx8WyIiXSxpdC5jcm9zc0RvbWFpbj09bnVsbCl7JD1GLmNyZWF0ZUVsZW1lbnQoImEiKTt0cnl7JC5ocmVmPWl0LnVybCwkLmhyZWY9JC5ocmVmLGl0LmNyb3NzRG9tYWluPSRuLnByb3RvY29sKyIvLyIrJG4uaG9zdCE9JC5wcm90b2NvbCsiLy8iKyQuaG9zdH1jYXRjaHtpdC5jcm9zc0RvbWFpbj0hMH19aWYoaXQuZGF0YSYmaXQucHJvY2Vzc0RhdGEmJnR5cGVvZiBpdC5kYXRhIT0ic3RyaW5nIiYmKGl0LmRhdGE9dS5wYXJhbShpdC5kYXRhLGl0LnRyYWRpdGlvbmFsKSksbWEocGEsaXQsZCxxdCksVSlyZXR1cm4gcXQ7UT11LmV2ZW50JiZpdC5nbG9iYWwsUSYmdS5hY3RpdmUrKz09PTAmJnUuZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0IiksaXQudHlwZT1pdC50eXBlLnRvVXBwZXJDYXNlKCksaXQuaGFzQ29udGVudD0hZ28udGVzdChpdC50eXBlKSx4PWl0LnVybC5yZXBsYWNlKHBvLCIiKSxpdC5oYXNDb250ZW50P2l0LmRhdGEmJml0LnByb2Nlc3NEYXRhJiYoaXQuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT09PTAmJihpdC5kYXRhPWl0LmRhdGEucmVwbGFjZShobywiKyIpKTooZnQ9aXQudXJsLnNsaWNlKHgubGVuZ3RoKSxpdC5kYXRhJiYoaXQucHJvY2Vzc0RhdGF8fHR5cGVvZiBpdC5kYXRhPT0ic3RyaW5nIikmJih4Kz0ocW4udGVzdCh4KT8iJiI6Ij8iKStpdC5kYXRhLGRlbGV0ZSBpdC5kYXRhKSxpdC5jYWNoZT09PSExJiYoeD14LnJlcGxhY2UoYm8sIiQxIiksZnQ9KHFuLnRlc3QoeCk/IiYiOiI/IikrIl89Iit1YS5ndWlkKysrZnQpLGl0LnVybD14K2Z0KSxpdC5pZk1vZGlmaWVkJiYodS5sYXN0TW9kaWZpZWRbeF0mJnF0LnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIix1Lmxhc3RNb2RpZmllZFt4XSksdS5ldGFnW3hdJiZxdC5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Ob25lLU1hdGNoIix1LmV0YWdbeF0pKSwoaXQuZGF0YSYmaXQuaGFzQ29udGVudCYmaXQuY29udGVudFR5cGUhPT0hMXx8ZC5jb250ZW50VHlwZSkmJnF0LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsaXQuY29udGVudFR5cGUpLHF0LnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsaXQuZGF0YVR5cGVzWzBdJiZpdC5hY2NlcHRzW2l0LmRhdGFUeXBlc1swXV0/aXQuYWNjZXB0c1tpdC5kYXRhVHlwZXNbMF1dKyhpdC5kYXRhVHlwZXNbMF0hPT0iKiI/IiwgIitiYSsiOyBxPTAuMDEiOiIiKTppdC5hY2NlcHRzWyIqIl0pO2ZvcihkdCBpbiBpdC5oZWFkZXJzKXF0LnNldFJlcXVlc3RIZWFkZXIoZHQsaXQuaGVhZGVyc1tkdF0pO2lmKGl0LmJlZm9yZVNlbmQmJihpdC5iZWZvcmVTZW5kLmNhbGwod3QscXQsaXQpPT09ITF8fFUpKXJldHVybiBxdC5hYm9ydCgpO2lmKFZlPSJhYm9ydCIsTXQuYWRkKGl0LmNvbXBsZXRlKSxxdC5kb25lKGl0LnN1Y2Nlc3MpLHF0LmZhaWwoaXQuZXJyb3IpLHY9bWEoWG4saXQsZCxxdCksIXYpZHIoLTEsIk5vIFRyYW5zcG9ydCIpO2Vsc2V7aWYocXQucmVhZHlTdGF0ZT0xLFEmJkV0LnRyaWdnZXIoImFqYXhTZW5kIixbcXQsaXRdKSxVKXJldHVybiBxdDtpdC5hc3luYyYmaXQudGltZW91dD4wJiYoRT10LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtxdC5hYm9ydCgidGltZW91dCIpfSxpdC50aW1lb3V0KSk7dHJ5e1U9ITEsdi5zZW5kKHNlLGRyKX1jYXRjaChYdCl7aWYoVSl0aHJvdyBYdDtkcigtMSxYdCl9fWZ1bmN0aW9uIGRyKFh0LHJlLE1yLFluKXt2YXIgSGUsVnIsV2UsUWUsSmUsU2U9cmU7VXx8KFU9ITAsRSYmdC5jbGVhclRpbWVvdXQoRSksdj12b2lkIDAsQT1Zbnx8IiIscXQucmVhZHlTdGF0ZT1YdD4wPzQ6MCxIZT1YdD49MjAwJiZYdDwzMDB8fFh0PT09MzA0LE1yJiYoUWU9d28oaXQscXQsTXIpKSwhSGUmJnUuaW5BcnJheSgic2NyaXB0IixpdC5kYXRhVHlwZXMpPi0xJiZ1LmluQXJyYXkoImpzb24iLGl0LmRhdGFUeXBlcyk8MCYmKGl0LmNvbnZlcnRlcnNbInRleHQgc2NyaXB0Il09ZnVuY3Rpb24oKXt9KSxRZT14byhpdCxRZSxxdCxIZSksSGU/KGl0LmlmTW9kaWZpZWQmJihKZT1xdC5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpLEplJiYodS5sYXN0TW9kaWZpZWRbeF09SmUpLEplPXF0LmdldFJlc3BvbnNlSGVhZGVyKCJldGFnIiksSmUmJih1LmV0YWdbeF09SmUpKSxYdD09PTIwNHx8aXQudHlwZT09PSJIRUFEIj9TZT0ibm9jb250ZW50IjpYdD09PTMwND9TZT0ibm90bW9kaWZpZWQiOihTZT1RZS5zdGF0ZSxWcj1RZS5kYXRhLFdlPVFlLmVycm9yLEhlPSFXZSkpOihXZT1TZSwoWHR8fCFTZSkmJihTZT0iZXJyb3IiLFh0PDAmJihYdD0wKSkpLHF0LnN0YXR1cz1YdCxxdC5zdGF0dXNUZXh0PShyZXx8U2UpKyIiLEhlP0d0LnJlc29sdmVXaXRoKHd0LFtWcixTZSxxdF0pOkd0LnJlamVjdFdpdGgod3QsW3F0LFNlLFdlXSkscXQuc3RhdHVzQ29kZShsZSksbGU9dm9pZCAwLFEmJkV0LnRyaWdnZXIoSGU/ImFqYXhTdWNjZXNzIjoiYWpheEVycm9yIixbcXQsaXQsSGU/VnI6V2VdKSxNdC5maXJlV2l0aCh3dCxbcXQsU2VdKSxRJiYoRXQudHJpZ2dlcigiYWpheENvbXBsZXRlIixbcXQsaXRdKSwtLXUuYWN0aXZlfHx1LmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIikpKX1yZXR1cm4gcXR9LGdldEpTT046ZnVuY3Rpb24oaSxkLHYpe3JldHVybiB1LmdldChpLGQsdiwianNvbiIpfSxnZXRTY3JpcHQ6ZnVuY3Rpb24oaSxkKXtyZXR1cm4gdS5nZXQoaSx2b2lkIDAsZCwic2NyaXB0Iil9fSksdS5lYWNoKFsiZ2V0IiwicG9zdCJdLGZ1bmN0aW9uKGksZCl7dVtkXT1mdW5jdGlvbih2LHgsQSxJKXtyZXR1cm4gayh4KSYmKEk9SXx8QSxBPXgseD12b2lkIDApLHUuYWpheCh1LmV4dGVuZCh7dXJsOnYsdHlwZTpkLGRhdGFUeXBlOkksZGF0YTp4LHN1Y2Nlc3M6QX0sdS5pc1BsYWluT2JqZWN0KHYpJiZ2KSl9fSksdS5hamF4UHJlZmlsdGVyKGZ1bmN0aW9uKGkpe3ZhciBkO2ZvcihkIGluIGkuaGVhZGVycylkLnRvTG93ZXJDYXNlKCk9PT0iY29udGVudC10eXBlIiYmKGkuY29udGVudFR5cGU9aS5oZWFkZXJzW2RdfHwiIil9KSx1Ll9ldmFsVXJsPWZ1bmN0aW9uKGksZCx2KXtyZXR1cm4gdS5hamF4KHt1cmw6aSx0eXBlOiJHRVQiLGRhdGFUeXBlOiJzY3JpcHQiLGNhY2hlOiEwLGFzeW5jOiExLGdsb2JhbDohMSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKCl7fX0sZGF0YUZpbHRlcjpmdW5jdGlvbih4KXt1Lmdsb2JhbEV2YWwoeCxkLHYpfX0pfSx1LmZuLmV4dGVuZCh7d3JhcEFsbDpmdW5jdGlvbihpKXt2YXIgZDtyZXR1cm4gdGhpc1swXSYmKGsoaSkmJihpPWkuY2FsbCh0aGlzWzBdKSksZD11KGksdGhpc1swXS5vd25lckRvY3VtZW50KS5lcSgwKS5jbG9uZSghMCksdGhpc1swXS5wYXJlbnROb2RlJiZkLmluc2VydEJlZm9yZSh0aGlzWzBdKSxkLm1hcChmdW5jdGlvbigpe2Zvcih2YXIgdj10aGlzO3YuZmlyc3RFbGVtZW50Q2hpbGQ7KXY9di5maXJzdEVsZW1lbnRDaGlsZDtyZXR1cm4gdn0pLmFwcGVuZCh0aGlzKSksdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKGkpe3JldHVybiBrKGkpP3RoaXMuZWFjaChmdW5jdGlvbihkKXt1KHRoaXMpLndyYXBJbm5lcihpLmNhbGwodGhpcyxkKSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD11KHRoaXMpLHY9ZC5jb250ZW50cygpO3YubGVuZ3RoP3Yud3JhcEFsbChpKTpkLmFwcGVuZChpKX0pfSx3cmFwOmZ1bmN0aW9uKGkpe3ZhciBkPWsoaSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbih2KXt1KHRoaXMpLndyYXBBbGwoZD9pLmNhbGwodGhpcyx2KTppKX0pfSx1bndyYXA6ZnVuY3Rpb24oaSl7cmV0dXJuIHRoaXMucGFyZW50KGkpLm5vdCgiYm9keSIpLmVhY2goZnVuY3Rpb24oKXt1KHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KSx0aGlzfX0pLHUuZXhwci5wc2V1ZG9zLmhpZGRlbj1mdW5jdGlvbihpKXtyZXR1cm4hdS5leHByLnBzZXVkb3MudmlzaWJsZShpKX0sdS5leHByLnBzZXVkb3MudmlzaWJsZT1mdW5jdGlvbihpKXtyZXR1cm4hIShpLm9mZnNldFdpZHRofHxpLm9mZnNldEhlaWdodHx8aS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9LHUuYWpheFNldHRpbmdzLnhocj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IHQuWE1MSHR0cFJlcXVlc3R9Y2F0Y2h7fX07dmFyIF9vPXswOjIwMCwxMjIzOjIwNH0sanI9dS5hamF4U2V0dGluZ3MueGhyKCk7dy5jb3JzPSEhanImJiJ3aXRoQ3JlZGVudGlhbHMiaW4ganIsdy5hamF4PWpyPSEhanIsdS5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGkpe3ZhciBkLHY7aWYody5jb3JzfHxqciYmIWkuY3Jvc3NEb21haW4pcmV0dXJue3NlbmQ6ZnVuY3Rpb24oeCxBKXt2YXIgSSxFPWkueGhyKCk7aWYoRS5vcGVuKGkudHlwZSxpLnVybCxpLmFzeW5jLGkudXNlcm5hbWUsaS5wYXNzd29yZCksaS54aHJGaWVsZHMpZm9yKEkgaW4gaS54aHJGaWVsZHMpRVtJXT1pLnhockZpZWxkc1tJXTtpLm1pbWVUeXBlJiZFLm92ZXJyaWRlTWltZVR5cGUmJkUub3ZlcnJpZGVNaW1lVHlwZShpLm1pbWVUeXBlKSwhaS5jcm9zc0RvbWFpbiYmIXhbIlgtUmVxdWVzdGVkLVdpdGgiXSYmKHhbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKTtmb3IoSSBpbiB4KUUuc2V0UmVxdWVzdEhlYWRlcihJLHhbSV0pO2Q9ZnVuY3Rpb24oJCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZCYmKGQ9dj1FLm9ubG9hZD1FLm9uZXJyb3I9RS5vbmFib3J0PUUub250aW1lb3V0PUUub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsJD09PSJhYm9ydCI/RS5hYm9ydCgpOiQ9PT0iZXJyb3IiP3R5cGVvZiBFLnN0YXR1cyE9Im51bWJlciI/QSgwLCJlcnJvciIpOkEoRS5zdGF0dXMsRS5zdGF0dXNUZXh0KTpBKF9vW0Uuc3RhdHVzXXx8RS5zdGF0dXMsRS5zdGF0dXNUZXh0LChFLnJlc3BvbnNlVHlwZXx8InRleHQiKSE9PSJ0ZXh0Inx8dHlwZW9mIEUucmVzcG9uc2VUZXh0IT0ic3RyaW5nIj97YmluYXJ5OkUucmVzcG9uc2V9Ont0ZXh0OkUucmVzcG9uc2VUZXh0fSxFLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSl9fSxFLm9ubG9hZD1kKCksdj1FLm9uZXJyb3I9RS5vbnRpbWVvdXQ9ZCgiZXJyb3IiKSxFLm9uYWJvcnQhPT12b2lkIDA/RS5vbmFib3J0PXY6RS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtFLnJlYWR5U3RhdGU9PT00JiZ0LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtkJiZ2KCl9KX0sZD1kKCJhYm9ydCIpO3RyeXtFLnNlbmQoaS5oYXNDb250ZW50JiZpLmRhdGF8fG51bGwpfWNhdGNoKCQpe2lmKGQpdGhyb3cgJH19LGFib3J0OmZ1bmN0aW9uKCl7ZCYmZCgpfX19KSx1LmFqYXhQcmVmaWx0ZXIoZnVuY3Rpb24oaSl7aS5jcm9zc0RvbWFpbiYmKGkuY29udGVudHMuc2NyaXB0PSExKX0pLHUuYWpheFNldHVwKHthY2NlcHRzOntzY3JpcHQ6InRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCwgYXBwbGljYXRpb24vZWNtYXNjcmlwdCwgYXBwbGljYXRpb24veC1lY21hc2NyaXB0In0sY29udGVudHM6e3NjcmlwdDovXGIoPzpqYXZhfGVjbWEpc2NyaXB0XGIvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKGkpe3JldHVybiB1Lmdsb2JhbEV2YWwoaSksaX19fSksdS5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKGkpe2kuY2FjaGU9PT12b2lkIDAmJihpLmNhY2hlPSExKSxpLmNyb3NzRG9tYWluJiYoaS50eXBlPSJHRVQiKX0pLHUuYWpheFRyYW5zcG9ydCgic2NyaXB0IixmdW5jdGlvbihpKXtpZihpLmNyb3NzRG9tYWlufHxpLnNjcmlwdEF0dHJzKXt2YXIgZCx2O3JldHVybntzZW5kOmZ1bmN0aW9uKHgsQSl7ZD11KCI8c2NyaXB0PiIpLmF0dHIoaS5zY3JpcHRBdHRyc3x8e30pLnByb3Aoe2NoYXJzZXQ6aS5zY3JpcHRDaGFyc2V0LHNyYzppLnVybH0pLm9uKCJsb2FkIGVycm9yIix2PWZ1bmN0aW9uKEkpe2QucmVtb3ZlKCksdj1udWxsLEkmJkEoSS50eXBlPT09ImVycm9yIj80MDQ6MjAwLEkudHlwZSl9KSxGLmhlYWQuYXBwZW5kQ2hpbGQoZFswXSl9LGFib3J0OmZ1bmN0aW9uKCl7diYmdigpfX19fSk7dmFyIGdhPVtdLEtuPS8oPSlcPyg/PSZ8JCl8XD9cPy87dS5hamF4U2V0dXAoe2pzb25wOiJjYWxsYmFjayIsanNvbnBDYWxsYmFjazpmdW5jdGlvbigpe3ZhciBpPWdhLnBvcCgpfHx1LmV4cGFuZG8rIl8iK3VhLmd1aWQrKztyZXR1cm4gdGhpc1tpXT0hMCxpfX0pLHUuYWpheFByZWZpbHRlcigianNvbiBqc29ucCIsZnVuY3Rpb24oaSxkLHYpe3ZhciB4LEEsSSxFPWkuanNvbnAhPT0hMSYmKEtuLnRlc3QoaS51cmwpPyJ1cmwiOnR5cGVvZiBpLmRhdGE9PSJzdHJpbmciJiYoaS5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPT09MCYmS24udGVzdChpLmRhdGEpJiYiZGF0YSIpO2lmKEV8fGkuZGF0YVR5cGVzWzBdPT09Impzb25wIilyZXR1cm4geD1pLmpzb25wQ2FsbGJhY2s9ayhpLmpzb25wQ2FsbGJhY2spP2kuanNvbnBDYWxsYmFjaygpOmkuanNvbnBDYWxsYmFjayxFP2lbRV09aVtFXS5yZXBsYWNlKEtuLCIkMSIreCk6aS5qc29ucCE9PSExJiYoaS51cmwrPShxbi50ZXN0KGkudXJsKT8iJiI6Ij8iKStpLmpzb25wKyI9Iit4KSxpLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtyZXR1cm4gSXx8dS5lcnJvcih4KyIgd2FzIG5vdCBjYWxsZWQiKSxJWzBdfSxpLmRhdGFUeXBlc1swXT0ianNvbiIsQT10W3hdLHRbeF09ZnVuY3Rpb24oKXtJPWFyZ3VtZW50c30sdi5hbHdheXMoZnVuY3Rpb24oKXtBPT09dm9pZCAwP3UodCkucmVtb3ZlUHJvcCh4KTp0W3hdPUEsaVt4XSYmKGkuanNvbnBDYWxsYmFjaz1kLmpzb25wQ2FsbGJhY2ssZ2EucHVzaCh4KSksSSYmayhBKSYmQShJWzBdKSxJPUE9dm9pZCAwfSksInNjcmlwdCJ9KSx3LmNyZWF0ZUhUTUxEb2N1bWVudD1mdW5jdGlvbigpe3ZhciBpPUYuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKS5ib2R5O3JldHVybiBpLmlubmVySFRNTD0iPGZvcm0+PC9mb3JtPjxmb3JtPjwvZm9ybT4iLGkuY2hpbGROb2Rlcy5sZW5ndGg9PT0yfSgpLHUucGFyc2VIVE1MPWZ1bmN0aW9uKGksZCx2KXtpZih0eXBlb2YgaSE9InN0cmluZyIpcmV0dXJuW107dHlwZW9mIGQ9PSJib29sZWFuIiYmKHY9ZCxkPSExKTt2YXIgeCxBLEk7cmV0dXJuIGR8fCh3LmNyZWF0ZUhUTUxEb2N1bWVudD8oZD1GLmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIikseD1kLmNyZWF0ZUVsZW1lbnQoImJhc2UiKSx4LmhyZWY9Ri5sb2NhdGlvbi5ocmVmLGQuaGVhZC5hcHBlbmRDaGlsZCh4KSk6ZD1GKSxBPWF0LmV4ZWMoaSksST0hdiYmW10sQT9bZC5jcmVhdGVFbGVtZW50KEFbMV0pXTooQT0kaShbaV0sZCxJKSxJJiZJLmxlbmd0aCYmdShJKS5yZW1vdmUoKSx1Lm1lcmdlKFtdLEEuY2hpbGROb2RlcykpfSx1LmZuLmxvYWQ9ZnVuY3Rpb24oaSxkLHYpe3ZhciB4LEEsSSxFPXRoaXMsJD1pLmluZGV4T2YoIiAiKTtyZXR1cm4gJD4tMSYmKHg9b3IoaS5zbGljZSgkKSksaT1pLnNsaWNlKDAsJCkpLGsoZCk/KHY9ZCxkPXZvaWQgMCk6ZCYmdHlwZW9mIGQ9PSJvYmplY3QiJiYoQT0iUE9TVCIpLEUubGVuZ3RoPjAmJnUuYWpheCh7dXJsOmksdHlwZTpBfHwiR0VUIixkYXRhVHlwZToiaHRtbCIsZGF0YTpkfSkuZG9uZShmdW5jdGlvbihVKXtJPWFyZ3VtZW50cyxFLmh0bWwoeD91KCI8ZGl2PiIpLmFwcGVuZCh1LnBhcnNlSFRNTChVKSkuZmluZCh4KTpVKX0pLmFsd2F5cyh2JiZmdW5jdGlvbihVLFEpe0UuZWFjaChmdW5jdGlvbigpe3YuYXBwbHkodGhpcyxJfHxbVS5yZXNwb25zZVRleHQsUSxVXSl9KX0pLHRoaXN9LHUuZXhwci5wc2V1ZG9zLmFuaW1hdGVkPWZ1bmN0aW9uKGkpe3JldHVybiB1LmdyZXAodS50aW1lcnMsZnVuY3Rpb24oZCl7cmV0dXJuIGk9PT1kLmVsZW19KS5sZW5ndGh9LHUub2Zmc2V0PXtzZXRPZmZzZXQ6ZnVuY3Rpb24oaSxkLHYpe3ZhciB4LEEsSSxFLCQsVSxRLGR0PXUuY3NzKGksInBvc2l0aW9uIiksZnQ9dShpKSxpdD17fTtkdD09PSJzdGF0aWMiJiYoaS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKSwkPWZ0Lm9mZnNldCgpLEk9dS5jc3MoaSwidG9wIiksVT11LmNzcyhpLCJsZWZ0IiksUT0oZHQ9PT0iYWJzb2x1dGUifHxkdD09PSJmaXhlZCIpJiYoSStVKS5pbmRleE9mKCJhdXRvIik+LTEsUT8oeD1mdC5wb3NpdGlvbigpLEU9eC50b3AsQT14LmxlZnQpOihFPXBhcnNlRmxvYXQoSSl8fDAsQT1wYXJzZUZsb2F0KFUpfHwwKSxrKGQpJiYoZD1kLmNhbGwoaSx2LHUuZXh0ZW5kKHt9LCQpKSksZC50b3AhPW51bGwmJihpdC50b3A9ZC50b3AtJC50b3ArRSksZC5sZWZ0IT1udWxsJiYoaXQubGVmdD1kLmxlZnQtJC5sZWZ0K0EpLCJ1c2luZyJpbiBkP2QudXNpbmcuY2FsbChpLGl0KTpmdC5jc3MoaXQpfX0sdS5mbi5leHRlbmQoe29mZnNldDpmdW5jdGlvbihpKXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiBpPT09dm9pZCAwP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKEEpe3Uub2Zmc2V0LnNldE9mZnNldCh0aGlzLGksQSl9KTt2YXIgZCx2LHg9dGhpc1swXTtpZih4KXJldHVybiB4LmdldENsaWVudFJlY3RzKCkubGVuZ3RoPyhkPXguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdj14Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcse3RvcDpkLnRvcCt2LnBhZ2VZT2Zmc2V0LGxlZnQ6ZC5sZWZ0K3YucGFnZVhPZmZzZXR9KTp7dG9wOjAsbGVmdDowfX0scG9zaXRpb246ZnVuY3Rpb24oKXtpZih0aGlzWzBdKXt2YXIgaSxkLHYseD10aGlzWzBdLEE9e3RvcDowLGxlZnQ6MH07aWYodS5jc3MoeCwicG9zaXRpb24iKT09PSJmaXhlZCIpZD14LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2Vsc2V7Zm9yKGQ9dGhpcy5vZmZzZXQoKSx2PXgub3duZXJEb2N1bWVudCxpPXgub2Zmc2V0UGFyZW50fHx2LmRvY3VtZW50RWxlbWVudDtpJiYoaT09PXYuYm9keXx8aT09PXYuZG9jdW1lbnRFbGVtZW50KSYmdS5jc3MoaSwicG9zaXRpb24iKT09PSJzdGF0aWMiOylpPWkucGFyZW50Tm9kZTtpJiZpIT09eCYmaS5ub2RlVHlwZT09PTEmJihBPXUoaSkub2Zmc2V0KCksQS50b3ArPXUuY3NzKGksImJvcmRlclRvcFdpZHRoIiwhMCksQS5sZWZ0Kz11LmNzcyhpLCJib3JkZXJMZWZ0V2lkdGgiLCEwKSl9cmV0dXJue3RvcDpkLnRvcC1BLnRvcC11LmNzcyh4LCJtYXJnaW5Ub3AiLCEwKSxsZWZ0OmQubGVmdC1BLmxlZnQtdS5jc3MoeCwibWFyZ2luTGVmdCIsITApfX19LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe2Zvcih2YXIgaT10aGlzLm9mZnNldFBhcmVudDtpJiZ1LmNzcyhpLCJwb3NpdGlvbiIpPT09InN0YXRpYyI7KWk9aS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGl8fE9lfSl9fSksdS5lYWNoKHtzY3JvbGxMZWZ0OiJwYWdlWE9mZnNldCIsc2Nyb2xsVG9wOiJwYWdlWU9mZnNldCJ9LGZ1bmN0aW9uKGksZCl7dmFyIHY9ZD09PSJwYWdlWU9mZnNldCI7dS5mbltpXT1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKEEsSSxFKXt2YXIgJDtpZihQKEEpPyQ9QTpBLm5vZGVUeXBlPT09OSYmKCQ9QS5kZWZhdWx0VmlldyksRT09PXZvaWQgMClyZXR1cm4gJD8kW2RdOkFbSV07JD8kLnNjcm9sbFRvKHY/JC5wYWdlWE9mZnNldDpFLHY/RTokLnBhZ2VZT2Zmc2V0KTpBW0ldPUV9LGkseCxhcmd1bWVudHMubGVuZ3RoKX19KSx1LmVhY2goWyJ0b3AiLCJsZWZ0Il0sZnVuY3Rpb24oaSxkKXt1LmNzc0hvb2tzW2RdPXRhKHcucGl4ZWxQb3NpdGlvbixmdW5jdGlvbih2LHgpe2lmKHgpcmV0dXJuIHg9UnIodixkKSxqbi50ZXN0KHgpP3UodikucG9zaXRpb24oKVtkXSsicHgiOnh9KX0pLHUuZWFjaCh7SGVpZ2h0OiJoZWlnaHQiLFdpZHRoOiJ3aWR0aCJ9LGZ1bmN0aW9uKGksZCl7dS5lYWNoKHtwYWRkaW5nOiJpbm5lciIraSxjb250ZW50OmQsIiI6Im91dGVyIitpfSxmdW5jdGlvbih2LHgpe3UuZm5beF09ZnVuY3Rpb24oQSxJKXt2YXIgRT1hcmd1bWVudHMubGVuZ3RoJiYodnx8dHlwZW9mIEEhPSJib29sZWFuIiksJD12fHwoQT09PSEwfHxJPT09ITA/Im1hcmdpbiI6ImJvcmRlciIpO3JldHVybiBZKHRoaXMsZnVuY3Rpb24oVSxRLGR0KXt2YXIgZnQ7cmV0dXJuIFAoVSk/eC5pbmRleE9mKCJvdXRlciIpPT09MD9VWyJpbm5lciIraV06VS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIraV06VS5ub2RlVHlwZT09PTk/KGZ0PVUuZG9jdW1lbnRFbGVtZW50LE1hdGgubWF4KFUuYm9keVsic2Nyb2xsIitpXSxmdFsic2Nyb2xsIitpXSxVLmJvZHlbIm9mZnNldCIraV0sZnRbIm9mZnNldCIraV0sZnRbImNsaWVudCIraV0pKTpkdD09PXZvaWQgMD91LmNzcyhVLFEsJCk6dS5zdHlsZShVLFEsZHQsJCl9LGQsRT9BOnZvaWQgMCxFKX19KX0pLHUuZWFjaChbImFqYXhTdGFydCIsImFqYXhTdG9wIiwiYWpheENvbXBsZXRlIiwiYWpheEVycm9yIiwiYWpheFN1Y2Nlc3MiLCJhamF4U2VuZCJdLGZ1bmN0aW9uKGksZCl7dS5mbltkXT1mdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5vbihkLHYpfX0pLHUuZm4uZXh0ZW5kKHtiaW5kOmZ1bmN0aW9uKGksZCx2KXtyZXR1cm4gdGhpcy5vbihpLG51bGwsZCx2KX0sdW5iaW5kOmZ1bmN0aW9uKGksZCl7cmV0dXJuIHRoaXMub2ZmKGksbnVsbCxkKX0sZGVsZWdhdGU6ZnVuY3Rpb24oaSxkLHYseCl7cmV0dXJuIHRoaXMub24oZCxpLHYseCl9LHVuZGVsZWdhdGU6ZnVuY3Rpb24oaSxkLHYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT90aGlzLm9mZihpLCIqKiIpOnRoaXMub2ZmKGQsaXx8IioqIix2KX0saG92ZXI6ZnVuY3Rpb24oaSxkKXtyZXR1cm4gdGhpcy5vbigibW91c2VlbnRlciIsaSkub24oIm1vdXNlbGVhdmUiLGR8fGkpfX0pLHUuZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbihpLGQpe3UuZm5bZF09ZnVuY3Rpb24odix4KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wP3RoaXMub24oZCxudWxsLHYseCk6dGhpcy50cmlnZ2VyKGQpfX0pO3ZhciBDbz0vXltcc1x1RkVGRlx4QTBdK3woW15cc1x1RkVGRlx4QTBdKVtcc1x1RkVGRlx4QTBdKyQvZzt1LnByb3h5PWZ1bmN0aW9uKGksZCl7dmFyIHYseCxBO2lmKHR5cGVvZiBkPT0ic3RyaW5nIiYmKHY9aVtkXSxkPWksaT12KSwhIWsoaSkpcmV0dXJuIHg9cy5jYWxsKGFyZ3VtZW50cywyKSxBPWZ1bmN0aW9uKCl7cmV0dXJuIGkuYXBwbHkoZHx8dGhpcyx4LmNvbmNhdChzLmNhbGwoYXJndW1lbnRzKSkpfSxBLmd1aWQ9aS5ndWlkPWkuZ3VpZHx8dS5ndWlkKyssQX0sdS5ob2xkUmVhZHk9ZnVuY3Rpb24oaSl7aT91LnJlYWR5V2FpdCsrOnUucmVhZHkoITApfSx1LmlzQXJyYXk9QXJyYXkuaXNBcnJheSx1LnBhcnNlSlNPTj1KU09OLnBhcnNlLHUubm9kZU5hbWU9cSx1LmlzRnVuY3Rpb249ayx1LmlzV2luZG93PVAsdS5jYW1lbENhc2U9Z3QsdS50eXBlPWYsdS5ub3c9RGF0ZS5ub3csdS5pc051bWVyaWM9ZnVuY3Rpb24oaSl7dmFyIGQ9dS50eXBlKGkpO3JldHVybihkPT09Im51bWJlciJ8fGQ9PT0ic3RyaW5nIikmJiFpc05hTihpLXBhcnNlRmxvYXQoaSkpfSx1LnRyaW09ZnVuY3Rpb24oaSl7cmV0dXJuIGk9PW51bGw/IiI6KGkrIiIpLnJlcGxhY2UoQ28sIiQxIil9LHR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQmJmRlZmluZSgianF1ZXJ5IixbXSxmdW5jdGlvbigpe3JldHVybiB1fSk7dmFyIFRvPXQualF1ZXJ5LGtvPXQuJDtyZXR1cm4gdS5ub0NvbmZsaWN0PWZ1bmN0aW9uKGkpe3JldHVybiB0LiQ9PT11JiYodC4kPWtvKSxpJiZ0LmpRdWVyeT09PXUmJih0LmpRdWVyeT1UbyksdX0sdHlwZW9mIGU+InUiJiYodC5qUXVlcnk9dC4kPXUpLHV9KX0pO3ZhciBVcz1uZShrYSgpKSxHbD1uZShpZSgpKTt2YXIgRGw9bmUoaWUoKSwxKTt2YXIgamE9bmUoaWUoKSwxKTt2YXIgVz1qYS5kZWZhdWx0LHZ0PWZ1bmN0aW9uKHQsZSl7aWYodnQuZmFjdG9yeSh0LGUpKXJldHVybiB2dDtpZih0aGlzIGluc3RhbmNlb2YgdnQpcmV0dXJuIFcodCkuRGF0YVRhYmxlKGUpO2U9dDt2YXIgcj10aGlzLG49ZT09PXZvaWQgMCxzPXRoaXMubGVuZ3RoO3JldHVybiBuJiYoZT17fSksdGhpcy5hcGk9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFd0KHRoaXMpfSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYT17fSxsPXM+MT9PYShhLGUsITApOmUsYz0wLHAsYj10aGlzLmdldEF0dHJpYnV0ZSgiaWQiKSxtPSExLHk9dnQuZGVmYXVsdHMsVD1XKHRoaXMpO2lmKHRoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKSE9InRhYmxlIil7UGUobnVsbCwwLCJOb24tdGFibGUgbm9kZSBpbml0aWFsaXNhdGlvbiAoIit0aGlzLm5vZGVOYW1lKyIpIiwyKTtyZXR1cm59Vyh0aGlzKS50cmlnZ2VyKCJvcHRpb25zLmR0IixsKSxEYSh5KSxVYSh5LmNvbHVtbiksZXIoeSx5LCEwKSxlcih5LmNvbHVtbix5LmNvbHVtbiwhMCksZXIoeSxXLmV4dGVuZChsLFQuZGF0YSgpKSwhMCk7dmFyIHc9dnQuc2V0dGluZ3M7Zm9yKGM9MCxwPXcubGVuZ3RoO2M8cDtjKyspe3ZhciBrPXdbY107aWYoay5uVGFibGU9PXRoaXN8fGsublRIZWFkJiZrLm5USGVhZC5wYXJlbnROb2RlPT10aGlzfHxrLm5URm9vdCYmay5uVEZvb3QucGFyZW50Tm9kZT09dGhpcyl7dmFyIFA9bC5iUmV0cmlldmUhPT12b2lkIDA/bC5iUmV0cmlldmU6eS5iUmV0cmlldmUsRj1sLmJEZXN0cm95IT09dm9pZCAwP2wuYkRlc3Ryb3k6eS5iRGVzdHJveTtpZihufHxQKXJldHVybiBrLm9JbnN0YW5jZTtpZihGKXtuZXcgdnQuQXBpKGspLmRlc3Ryb3koKTticmVha31lbHNle1BlKGssMCwiQ2Fubm90IHJlaW5pdGlhbGlzZSBEYXRhVGFibGUiLDMpO3JldHVybn19aWYoay5zVGFibGVJZD09dGhpcy5pZCl7dy5zcGxpY2UoYywxKTticmVha319KGI9PT1udWxsfHxiPT09IiIpJiYoYj0iRGF0YVRhYmxlc19UYWJsZV8iK3Z0LmV4dC5fdW5pcXVlKyssdGhpcy5pZD1iKTt2YXIgaD1XLmV4dGVuZCghMCx7fSx2dC5tb2RlbHMub1NldHRpbmdzLHtzRGVzdHJveVdpZHRoOlRbMF0uc3R5bGUud2lkdGgsc0luc3RhbmNlOmIsc1RhYmxlSWQ6Yixjb2xncm91cDpXKCI8Y29sZ3JvdXA+IikucHJlcGVuZFRvKHRoaXMpLGZhc3REYXRhOmZ1bmN0aW9uKFosZyxfKXtyZXR1cm4gTmUoaCxaLGcsXyl9fSk7aC5uVGFibGU9dGhpcyxoLm9Jbml0PWwsdy5wdXNoKGgpLGguYXBpPW5ldyBXdChoKSxoLm9JbnN0YW5jZT1yLmxlbmd0aD09PTE/cjpULmRhdGFUYWJsZSgpLERhKGwpLGwuYUxlbmd0aE1lbnUmJiFsLmlEaXNwbGF5TGVuZ3RoJiYobC5pRGlzcGxheUxlbmd0aD1BcnJheS5pc0FycmF5KGwuYUxlbmd0aE1lbnVbMF0pP2wuYUxlbmd0aE1lbnVbMF1bMF06Vy5pc1BsYWluT2JqZWN0KGwuYUxlbmd0aE1lbnVbMF0pP2wuYUxlbmd0aE1lbnVbMF0udmFsdWU6bC5hTGVuZ3RoTWVudVswXSksbD1PYShXLmV4dGVuZCghMCx7fSx5KSxsKSxucihoLm9GZWF0dXJlcyxsLFsiYlBhZ2luYXRlIiwiYkxlbmd0aENoYW5nZSIsImJGaWx0ZXIiLCJiU29ydCIsImJTb3J0TXVsdGkiLCJiSW5mbyIsImJQcm9jZXNzaW5nIiwiYkF1dG9XaWR0aCIsImJTb3J0Q2xhc3NlcyIsImJTZXJ2ZXJTaWRlIiwiYkRlZmVyUmVuZGVyIl0pLG5yKGgsbCxbImFqYXgiLCJmbkZvcm1hdE51bWJlciIsInNTZXJ2ZXJNZXRob2QiLCJhYVNvcnRpbmciLCJhYVNvcnRpbmdGaXhlZCIsImFMZW5ndGhNZW51Iiwic1BhZ2luYXRpb25UeXBlIiwiaVN0YXRlRHVyYXRpb24iLCJiU29ydENlbGxzVG9wIiwiaVRhYkluZGV4Iiwic0RvbSIsImZuU3RhdGVMb2FkQ2FsbGJhY2siLCJmblN0YXRlU2F2ZUNhbGxiYWNrIiwicmVuZGVyZXIiLCJzZWFyY2hEZWxheSIsInJvd0lkIiwiY2FwdGlvbiIsImxheW91dCIsWyJpQ29va2llRHVyYXRpb24iLCJpU3RhdGVEdXJhdGlvbiJdLFsib1NlYXJjaCIsIm9QcmV2aW91c1NlYXJjaCJdLFsiYW9TZWFyY2hDb2xzIiwiYW9QcmVTZWFyY2hDb2xzIl0sWyJpRGlzcGxheUxlbmd0aCIsIl9pRGlzcGxheUxlbmd0aCJdXSksbnIoaC5vU2Nyb2xsLGwsW1sic1Njcm9sbFgiLCJzWCJdLFsic1Njcm9sbFhJbm5lciIsInNYSW5uZXIiXSxbInNTY3JvbGxZIiwic1kiXSxbImJTY3JvbGxDb2xsYXBzZSIsImJDb2xsYXBzZSJdXSksbnIoaC5vTGFuZ3VhZ2UsbCwiZm5JbmZvQ2FsbGJhY2siKSxBZShoLCJhb0RyYXdDYWxsYmFjayIsbC5mbkRyYXdDYWxsYmFjayksQWUoaCwiYW9TdGF0ZVNhdmVQYXJhbXMiLGwuZm5TdGF0ZVNhdmVQYXJhbXMpLEFlKGgsImFvU3RhdGVMb2FkUGFyYW1zIixsLmZuU3RhdGVMb2FkUGFyYW1zKSxBZShoLCJhb1N0YXRlTG9hZGVkIixsLmZuU3RhdGVMb2FkZWQpLEFlKGgsImFvUm93Q2FsbGJhY2siLGwuZm5Sb3dDYWxsYmFjayksQWUoaCwiYW9Sb3dDcmVhdGVkQ2FsbGJhY2siLGwuZm5DcmVhdGVkUm93KSxBZShoLCJhb0hlYWRlckNhbGxiYWNrIixsLmZuSGVhZGVyQ2FsbGJhY2spLEFlKGgsImFvRm9vdGVyQ2FsbGJhY2siLGwuZm5Gb290ZXJDYWxsYmFjayksQWUoaCwiYW9Jbml0Q29tcGxldGUiLGwuZm5Jbml0Q29tcGxldGUpLEFlKGgsImFvUHJlRHJhd0NhbGxiYWNrIixsLmZuUHJlRHJhd0NhbGxiYWNrKSxoLnJvd0lkRm49SXIobC5yb3dJZCkscW8oaCk7dmFyIG89aC5vQ2xhc3NlcztXLmV4dGVuZChvLHZ0LmV4dC5jbGFzc2VzLGwub0NsYXNzZXMpLFQuYWRkQ2xhc3Moby50YWJsZSksaC5vRmVhdHVyZXMuYlBhZ2luYXRlfHwobC5pRGlzcGxheVN0YXJ0PTApLGguaUluaXREaXNwbGF5U3RhcnQ9PT12b2lkIDAmJihoLmlJbml0RGlzcGxheVN0YXJ0PWwuaURpc3BsYXlTdGFydCxoLl9pRGlzcGxheVN0YXJ0PWwuaURpc3BsYXlTdGFydCk7dmFyIGY9aC5vTGFuZ3VhZ2U7Vy5leHRlbmQoITAsZixsLm9MYW5ndWFnZSksZi5zVXJsPyhXLmFqYXgoe2RhdGFUeXBlOiJqc29uIix1cmw6Zi5zVXJsLHN1Y2Nlc3M6ZnVuY3Rpb24oWil7ZXIoeS5vTGFuZ3VhZ2UsWiksVy5leHRlbmQoITAsZixaLGgub0luaXQub0xhbmd1YWdlKSxadChoLG51bGwsImkxOG4iLFtoXSwhMCksdm4oaCl9LGVycm9yOmZ1bmN0aW9uKCl7UGUoaCwwLCJpMThuIGZpbGUgbG9hZGluZyBlcnJvciIsMjEpLHZuKGgpfX0pLG09ITApOlp0KGgsbnVsbCwiaTE4biIsW2hdKTt2YXIgQz1bXSxCPXRoaXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRoZWFkIiksdT1ZYShoLEJbMF0pO2lmKGwuYW9Db2x1bW5zKUM9bC5hb0NvbHVtbnM7ZWxzZSBpZih1Lmxlbmd0aClmb3IoYz0wLHA9dVswXS5sZW5ndGg7YzxwO2MrKylDLnB1c2gobnVsbCk7Zm9yKGM9MCxwPUMubGVuZ3RoO2M8cDtjKyspcWEoaCk7JG8oaCxsLmFvQ29sdW1uRGVmcyxDLHUsZnVuY3Rpb24oWixnKXt1aShoLFosZyl9KTt2YXIgej1ULmNoaWxkcmVuKCJ0Ym9keSIpLmZpbmQoInRyIikuZXEoMCk7aWYoei5sZW5ndGgpe3ZhciBxPWZ1bmN0aW9uKFosZyl7cmV0dXJuIFouZ2V0QXR0cmlidXRlKCJkYXRhLSIrZykhPT1udWxsP2c6bnVsbH07Vyh6WzBdKS5jaGlsZHJlbigidGgsIHRkIikuZWFjaChmdW5jdGlvbihaLGcpe3ZhciBfPWguYW9Db2x1bW5zW1pdO2lmKF98fFBlKGgsMCwiSW5jb3JyZWN0IGNvbHVtbiBjb3VudCIsMTgpLF8ubURhdGE9PT1aKXt2YXIgUz1xKGcsInNvcnQiKXx8cShnLCJvcmRlciIpLE49cShnLCJmaWx0ZXIiKXx8cShnLCJzZWFyY2giKTsoUyE9PW51bGx8fE4hPT1udWxsKSYmKF8ubURhdGE9e186WisiLmRpc3BsYXkiLHNvcnQ6UyE9PW51bGw/WisiLkBkYXRhLSIrUzp2b2lkIDAsdHlwZTpTIT09bnVsbD9aKyIuQGRhdGEtIitTOnZvaWQgMCxmaWx0ZXI6TiE9PW51bGw/WisiLkBkYXRhLSIrTjp2b2lkIDB9LF8uX2lzQXJyYXlIb3N0PSEwLHVpKGgsWikpfX0pfXZhciBldD1oLm9GZWF0dXJlcyxPPWZ1bmN0aW9uKCl7aWYobC5hYVNvcnRpbmc9PT12b2lkIDApe3ZhciBaPWguYWFTb3J0aW5nO2ZvcihjPTAscD1aLmxlbmd0aDtjPHA7YysrKVpbY11bMV09aC5hb0NvbHVtbnNbY10uYXNTb3J0aW5nWzBdfWZpKGgpLEFlKGgsImFvRHJhd0NhbGxiYWNrIixmdW5jdGlvbigpeyhoLmJTb3J0ZWR8fEJlKGgpPT09InNzcCJ8fGV0LmJEZWZlclJlbmRlcikmJmZpKGgpfSk7dmFyIGc9VC5jaGlsZHJlbigiY2FwdGlvbiIpO2guY2FwdGlvbiYmKGcubGVuZ3RoPT09MCYmKGc9VygiPGNhcHRpb24vPiIpLmFwcGVuZFRvKFQpKSxnLmh0bWwoaC5jYXB0aW9uKSksZy5sZW5ndGgmJihnWzBdLl9jYXB0aW9uU2lkZT1nLmNzcygiY2FwdGlvbi1zaWRlIiksaC5jYXB0aW9uTm9kZT1nWzBdKSxCLmxlbmd0aD09PTAmJihCPVcoIjx0aGVhZC8+IikuYXBwZW5kVG8oVCkpLGgublRIZWFkPUJbMF0sVygidHIiLEIpLmFkZENsYXNzKG8udGhlYWQucm93KTt2YXIgXz1ULmNoaWxkcmVuKCJ0Ym9keSIpO18ubGVuZ3RoPT09MCYmKF89VygiPHRib2R5Lz4iKS5pbnNlcnRBZnRlcihCKSksaC5uVEJvZHk9X1swXTt2YXIgUz1ULmNoaWxkcmVuKCJ0Zm9vdCIpO2lmKFMubGVuZ3RoPT09MCYmKFM9VygiPHRmb290Lz4iKS5hcHBlbmRUbyhUKSksaC5uVEZvb3Q9U1swXSxXKCJ0ciIsUykuYWRkQ2xhc3Moby50Zm9vdC5yb3cpLGwuYWFEYXRhKWZvcihjPTA7YzxsLmFhRGF0YS5sZW5ndGg7YysrKWJyKGgsbC5hYURhdGFbY10pO2Vsc2UgQmUoaCk9PSJkb20iJiZfaShoLFcoaC5uVEJvZHkpLmNoaWxkcmVuKCJ0ciIpKTtoLmFpRGlzcGxheT1oLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpLGguYkluaXRpYWxpc2VkPSEwLG09PT0hMSYmdm4oaCl9O0FlKGgsImFvRHJhd0NhbGxiYWNrIixJbiksbC5iU3RhdGVTYXZlPyhldC5iU3RhdGVTYXZlPSEwLGZsKGgsbCxPKSk6TygpfSkscj1udWxsLHRoaXN9O3Z0LmV4dD1vZT17YnV0dG9uczp7fSxjbGFzc2VzOnt9LGJ1aWxkZXI6Ii1zb3VyY2UtIixlcnJNb2RlOiJhbGVydCIsZmVhdHVyZTpbXSxmZWF0dXJlczp7fSxzZWFyY2g6W10sc2VsZWN0b3I6e2NlbGw6W10sY29sdW1uOltdLHJvdzpbXX0sbGVnYWN5OnthamF4Om51bGx9LHBhZ2VyOnt9LHJlbmRlcmVyOntwYWdlQnV0dG9uOnt9LGhlYWRlcjp7fX0sb3JkZXI6e30sdHlwZTp7Y2xhc3NOYW1lOnt9LGRldGVjdDpbXSxyZW5kZXI6e30sc2VhcmNoOnt9LG9yZGVyOnt9fSxfdW5pcXVlOjAsZm5WZXJzaW9uQ2hlY2s6dnQuZm5WZXJzaW9uQ2hlY2ssaUFwaUluZGV4OjAsc1ZlcnNpb246dnQudmVyc2lvbn07Vy5leHRlbmQob2Use2FmbkZpbHRlcmluZzpvZS5zZWFyY2gsYVR5cGVzOm9lLnR5cGUuZGV0ZWN0LG9mblNlYXJjaDpvZS50eXBlLnNlYXJjaCxvU29ydDpvZS50eXBlLm9yZGVyLGFmblNvcnREYXRhOm9lLm9yZGVyLGFvRmVhdHVyZXM6b2UuZmVhdHVyZSxvU3RkQ2xhc3NlczpvZS5jbGFzc2VzLG9QYWdpbmF0aW9uOm9lLnBhZ2VyfSk7Vy5leHRlbmQodnQuZXh0LmNsYXNzZXMse2NvbnRhaW5lcjoiZHQtY29udGFpbmVyIixlbXB0eTp7cm93OiJkdC1lbXB0eSJ9LGluZm86e2NvbnRhaW5lcjoiZHQtaW5mbyJ9LGxlbmd0aDp7Y29udGFpbmVyOiJkdC1sZW5ndGgiLHNlbGVjdDoiZHQtaW5wdXQifSxvcmRlcjp7Y2FuQXNjOiJkdC1vcmRlcmFibGUtYXNjIixjYW5EZXNjOiJkdC1vcmRlcmFibGUtZGVzYyIsaXNBc2M6ImR0LW9yZGVyaW5nLWFzYyIsaXNEZXNjOiJkdC1vcmRlcmluZy1kZXNjIixub25lOiJkdC1vcmRlcmFibGUtbm9uZSIscG9zaXRpb246InNvcnRpbmdfIn0scHJvY2Vzc2luZzp7Y29udGFpbmVyOiJkdC1wcm9jZXNzaW5nIn0sc2Nyb2xsaW5nOntib2R5OiJkdC1zY3JvbGwtYm9keSIsY29udGFpbmVyOiJkdC1zY3JvbGwiLGZvb3Rlcjp7c2VsZjoiZHQtc2Nyb2xsLWZvb3QiLGlubmVyOiJkdC1zY3JvbGwtZm9vdElubmVyIn0saGVhZGVyOntzZWxmOiJkdC1zY3JvbGwtaGVhZCIsaW5uZXI6ImR0LXNjcm9sbC1oZWFkSW5uZXIifX0sc2VhcmNoOntjb250YWluZXI6ImR0LXNlYXJjaCIsaW5wdXQ6ImR0LWlucHV0In0sdGFibGU6ImRhdGFUYWJsZSIsdGJvZHk6e2NlbGw6IiIscm93OiIifSx0aGVhZDp7Y2VsbDoiIixyb3c6IiJ9LHRmb290OntjZWxsOiIiLHJvdzoiIn0scGFnaW5nOnthY3RpdmU6ImN1cnJlbnQiLGJ1dHRvbjoiZHQtcGFnaW5nLWJ1dHRvbiIsY29udGFpbmVyOiJkdC1wYWdpbmciLGRpc2FibGVkOiJkaXNhYmxlZCJ9fSk7dmFyIG9lLFd0LEl0LFF0LGFpPXt9LGpvPS9bXHJcblx1MjAyOF0vZyxwaT0vPChbXj5dKj4pL2csTW89TWF0aC5wb3coMiwyOCksVm89L15cZHsyLDR9Wy4vLV1cZHsxLDJ9Wy4vLV1cZHsxLDJ9KFtUIF17MX1cZHsxLDJ9WzouXVxkezJ9KFsuOl1cZHsyfSk/KT8kLyxIbz1uZXcgUmVnRXhwKCIoXFwiK1siLyIsIi4iLCIqIiwiKyIsIj8iLCJ8IiwiKCIsIikiLCJbIiwiXSIsInsiLCJ9IiwiXFwiLCIkIiwiXiIsIi0iXS5qb2luKCJ8XFwiKSsiKSIsImciKSxiaT0vWydcdTAwQTAsJMKj4oKswqUlXHUyMDA5XHUyMDJGXHUyMEJEXHUyMGE5XHUyMEJBcmZryYPOnl0vZ2ksWmU9ZnVuY3Rpb24odCl7cmV0dXJuIXR8fHQ9PT0hMHx8dD09PSItIn0sTWE9ZnVuY3Rpb24odCl7dmFyIGU9cGFyc2VJbnQodCwxMCk7cmV0dXJuIWlzTmFOKGUpJiZpc0Zpbml0ZSh0KT9lOm51bGx9LFZhPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGFpW2VdfHwoYWlbZV09bmV3IFJlZ0V4cChjaShlKSwiZyIpKSx0eXBlb2YgdD09InN0cmluZyImJmUhPT0iLiI/dC5yZXBsYWNlKC9cLi9nLCIiKS5yZXBsYWNlKGFpW2VdLCIuIik6dH0sdmk9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXR5cGVvZiB0LHM9bj09PSJzdHJpbmciO3JldHVybiBuPT09Im51bWJlciJ8fG49PT0iYmlnaW50Inx8WmUodCk/ITA6KGUmJnMmJih0PVZhKHQsZSkpLHImJnMmJih0PXQucmVwbGFjZShiaSwiIikpLCFpc05hTihwYXJzZUZsb2F0KHQpKSYmaXNGaW5pdGUodCkpfSxXbz1mdW5jdGlvbih0KXtyZXR1cm4gWmUodCl8fHR5cGVvZiB0PT0ic3RyaW5nIn0sSGE9ZnVuY3Rpb24odCxlLHIpe2lmKFplKHQpKXJldHVybiEwO2lmKHR5cGVvZiB0PT0ic3RyaW5nIiYmdC5tYXRjaCgvPChpbnB1dHxzZWxlY3QpL2kpKXJldHVybiBudWxsO3ZhciBuPVdvKHQpO3JldHVybiBuJiZ2aShocih0KSxlLHIpPyEwOm51bGx9LHhlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1bXSxzPTAsYT10Lmxlbmd0aDtpZihyIT09dm9pZCAwKWZvcig7czxhO3MrKyl0W3NdJiZ0W3NdW2VdJiZuLnB1c2godFtzXVtlXVtyXSk7ZWxzZSBmb3IoO3M8YTtzKyspdFtzXSYmbi5wdXNoKHRbc11bZV0pO3JldHVybiBufSxYcj1mdW5jdGlvbih0LGUscixuKXt2YXIgcz1bXSxhPTAsbD1lLmxlbmd0aDtpZihuIT09dm9pZCAwKWZvcig7YTxsO2ErKyl0W2VbYV1dW3JdJiZzLnB1c2godFtlW2FdXVtyXVtuXSk7ZWxzZSBmb3IoO2E8bDthKyspdFtlW2FdXSYmcy5wdXNoKHRbZVthXV1bcl0pO3JldHVybiBzfSxjcj1mdW5jdGlvbih0LGUpe3ZhciByPVtdLG47ZT09PXZvaWQgMD8oZT0wLG49dCk6KG49ZSxlPXQpO2Zvcih2YXIgcz1lO3M8bjtzKyspci5wdXNoKHMpO3JldHVybiByfSxXYT1mdW5jdGlvbih0KXtmb3IodmFyIGU9W10scj0wLG49dC5sZW5ndGg7cjxuO3IrKyl0W3JdJiZlLnB1c2godFtyXSk7cmV0dXJuIGV9LGhyPWZ1bmN0aW9uKHQpe2lmKHQubGVuZ3RoPk1vKXRocm93IG5ldyBFcnJvcigiRXhjZWVkZWQgbWF4IHN0ciBsZW4iKTt2YXIgZTt0PXQucmVwbGFjZShwaSwiIik7ZG8gZT10LHQ9dC5yZXBsYWNlKC88c2NyaXB0L2ksIiIpO3doaWxlKHQhPT1lKTtyZXR1cm4gZX0sRHI9ZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCkmJih0PXQuam9pbigiLCIpKSx0eXBlb2YgdD09InN0cmluZyI/dC5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKTp0fSxtbj1mdW5jdGlvbih0LGUpe2lmKHR5cGVvZiB0IT0ic3RyaW5nIilyZXR1cm4gdDt2YXIgcj10Lm5vcm1hbGl6ZSgiTkZEIik7cmV0dXJuIHIubGVuZ3RoIT09dC5sZW5ndGg/KGU9PT0hMD90KyIgIjoiIikrci5yZXBsYWNlKC9bXHUwMzAwLVx1MDM2Zl0vZywiIik6cn0sVW89ZnVuY3Rpb24odCl7aWYodC5sZW5ndGg8MilyZXR1cm4hMDtmb3IodmFyIGU9dC5zbGljZSgpLnNvcnQoKSxyPWVbMF0sbj0xLHM9ZS5sZW5ndGg7bjxzO24rKyl7aWYoZVtuXT09PXIpcmV0dXJuITE7cj1lW25dfXJldHVybiEwfSxwcj1mdW5jdGlvbih0KXtpZihBcnJheS5mcm9tJiZTZXQpcmV0dXJuIEFycmF5LmZyb20obmV3IFNldCh0KSk7aWYoVW8odCkpcmV0dXJuIHQuc2xpY2UoKTt2YXIgZT1bXSxyLG4scz10Lmxlbmd0aCxhLGw9MDt0OmZvcihuPTA7bjxzO24rKyl7Zm9yKHI9dFtuXSxhPTA7YTxsO2ErKylpZihlW2FdPT09ciljb250aW51ZSB0O2UucHVzaChyKSxsKyt9cmV0dXJuIGV9LG1pPWZ1bmN0aW9uKHQsZSl7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyltaSh0LGVbcl0pO2Vsc2UgdC5wdXNoKGUpO3JldHVybiB0fTtmdW5jdGlvbiBBcih0LGUpe2UmJmUuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3ImJnQuY2xhc3NMaXN0LmFkZChyKX0pfXZ0LnV0aWw9e2RpYWNyaXRpY3M6ZnVuY3Rpb24odCxlKXt2YXIgcj10eXBlb2YgdDtpZihyIT09ImZ1bmN0aW9uIilyZXR1cm4gbW4odCxlKTttbj10fSxkZWJvdW5jZTpmdW5jdGlvbih0LGUpe3ZhciByO3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXRoaXMscz1hcmd1bWVudHM7Y2xlYXJUaW1lb3V0KHIpLHI9c2V0VGltZW91dChmdW5jdGlvbigpe3QuYXBwbHkobixzKX0sZXx8MjUwKX19LHRocm90dGxlOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZSE9PXZvaWQgMD9lOjIwMCxuLHM7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxsPStuZXcgRGF0ZSxjPWFyZ3VtZW50cztuJiZsPG4rcj8oY2xlYXJUaW1lb3V0KHMpLHM9c2V0VGltZW91dChmdW5jdGlvbigpe249dm9pZCAwLHQuYXBwbHkoYSxjKX0scikpOihuPWwsdC5hcHBseShhLGMpKX19LGVzY2FwZVJlZ2V4OmZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoSG8sIlxcJDEiKX0sc2V0OmZ1bmN0aW9uKHQpe2lmKFcuaXNQbGFpbk9iamVjdCh0KSlyZXR1cm4gdnQudXRpbC5zZXQodC5fKTtpZih0PT09bnVsbClyZXR1cm4gZnVuY3Rpb24oKXt9O2lmKHR5cGVvZiB0PT0iZnVuY3Rpb24iKXJldHVybiBmdW5jdGlvbihyLG4scyl7dChyLCJzZXQiLG4scyl9O2lmKHR5cGVvZiB0PT0ic3RyaW5nIiYmKHQuaW5kZXhPZigiLiIpIT09LTF8fHQuaW5kZXhPZigiWyIpIT09LTF8fHQuaW5kZXhPZigiKCIpIT09LTEpKXt2YXIgZT1mdW5jdGlvbihyLG4scyl7Zm9yKHZhciBhPUlhKHMpLGwsYz1hW2EubGVuZ3RoLTFdLHAsYixtLHksVD0wLHc9YS5sZW5ndGgtMTtUPHc7VCsrKXtpZihhW1RdPT09Il9fcHJvdG9fXyJ8fGFbVF09PT0iY29uc3RydWN0b3IiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNldCBwcm90b3R5cGUgdmFsdWVzIik7aWYocD1hW1RdLm1hdGNoKFVyKSxiPWFbVF0ubWF0Y2goa3IpLHApe2lmKGFbVF09YVtUXS5yZXBsYWNlKFVyLCIiKSxyW2FbVF1dPVtdLGw9YS5zbGljZSgpLGwuc3BsaWNlKDAsVCsxKSx5PWwuam9pbigiLiIpLEFycmF5LmlzQXJyYXkobikpZm9yKHZhciBrPTAsUD1uLmxlbmd0aDtrPFA7aysrKW09e30sZShtLG5ba10seSksclthW1RdXS5wdXNoKG0pO2Vsc2UgclthW1RdXT1uO3JldHVybn1lbHNlIGImJihhW1RdPWFbVF0ucmVwbGFjZShrciwiIikscj1yW2FbVF1dKG4pKTsoclthW1RdXT09PW51bGx8fHJbYVtUXV09PT12b2lkIDApJiYoclthW1RdXT17fSkscj1yW2FbVF1dfWMubWF0Y2goa3IpP3I9cltjLnJlcGxhY2Uoa3IsIiIpXShuKTpyW2MucmVwbGFjZShVciwiIildPW59O3JldHVybiBmdW5jdGlvbihyLG4pe3JldHVybiBlKHIsbix0KX19ZWxzZSByZXR1cm4gZnVuY3Rpb24ocixuKXtyW3RdPW59fSxnZXQ6ZnVuY3Rpb24odCl7aWYoVy5pc1BsYWluT2JqZWN0KHQpKXt2YXIgZT17fTtyZXR1cm4gVy5lYWNoKHQsZnVuY3Rpb24obixzKXtzJiYoZVtuXT12dC51dGlsLmdldChzKSl9KSxmdW5jdGlvbihuLHMsYSxsKXt2YXIgYz1lW3NdfHxlLl87cmV0dXJuIGMhPT12b2lkIDA/YyhuLHMsYSxsKTpufX1lbHNle2lmKHQ9PT1udWxsKXJldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gbn07aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpcmV0dXJuIGZ1bmN0aW9uKG4scyxhLGwpe3JldHVybiB0KG4scyxhLGwpfTtpZih0eXBlb2YgdD09InN0cmluZyImJih0LmluZGV4T2YoIi4iKSE9PS0xfHx0LmluZGV4T2YoIlsiKSE9PS0xfHx0LmluZGV4T2YoIigiKSE9PS0xKSl7dmFyIHI9ZnVuY3Rpb24obixzLGEpe3ZhciBsLGMscCxiO2lmKGEhPT0iIilmb3IodmFyIG09SWEoYSkseT0wLFQ9bS5sZW5ndGg7eTxUO3krKyl7aWYobD1tW3ldLm1hdGNoKFVyKSxjPW1beV0ubWF0Y2goa3IpLGwpe2lmKG1beV09bVt5XS5yZXBsYWNlKFVyLCIiKSxtW3ldIT09IiImJihuPW5bbVt5XV0pLHA9W10sbS5zcGxpY2UoMCx5KzEpLGI9bS5qb2luKCIuIiksQXJyYXkuaXNBcnJheShuKSlmb3IodmFyIHc9MCxrPW4ubGVuZ3RoO3c8azt3KyspcC5wdXNoKHIoblt3XSxzLGIpKTt2YXIgUD1sWzBdLnN1YnN0cmluZygxLGxbMF0ubGVuZ3RoLTEpO249UD09PSIiP3A6cC5qb2luKFApO2JyZWFrfWVsc2UgaWYoYyl7bVt5XT1tW3ldLnJlcGxhY2Uoa3IsIiIpLG49blttW3ldXSgpO2NvbnRpbnVlfWlmKG49PT1udWxsfHxuW21beV1dPT09bnVsbClyZXR1cm4gbnVsbDtpZihuPT09dm9pZCAwfHxuW21beV1dPT09dm9pZCAwKXJldHVybjtuPW5bbVt5XV19cmV0dXJuIG59O3JldHVybiBmdW5jdGlvbihuLHMpe3JldHVybiByKG4scyx0KX19ZWxzZSByZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG5bdF19fX0sc3RyaXBIdG1sOmZ1bmN0aW9uKHQpe3ZhciBlPXR5cGVvZiB0O2lmKGU9PT0iZnVuY3Rpb24iKXtocj10O3JldHVybn1lbHNlIGlmKGU9PT0ic3RyaW5nIilyZXR1cm4gaHIodCk7cmV0dXJuIHR9LGVzY2FwZUh0bWw6ZnVuY3Rpb24odCl7dmFyIGU9dHlwZW9mIHQ7aWYoZT09PSJmdW5jdGlvbiIpe0RyPXQ7cmV0dXJufWVsc2UgaWYoZT09PSJzdHJpbmcifHxBcnJheS5pc0FycmF5KHQpKXJldHVybiBEcih0KTtyZXR1cm4gdH0sdW5pcXVlOnByfTtmdW5jdGlvbiBDbih0KXt2YXIgZT0iYSBhYSBhaSBhbyBhcyBiIGZuIGkgbSBvIHMgIixyLG4scz17fTtXLmVhY2godCxmdW5jdGlvbihhKXtyPWEubWF0Y2goL14oW15BLVpdKz8pKFtBLVpdKS8pLHImJmUuaW5kZXhPZihyWzFdKyIgIikhPT0tMSYmKG49YS5yZXBsYWNlKHJbMF0sclsyXS50b0xvd2VyQ2FzZSgpKSxzW25dPWEsclsxXT09PSJvIiYmQ24odFthXSkpfSksdC5faHVuZ2FyaWFuTWFwPXN9ZnVuY3Rpb24gZXIodCxlLHIpe3QuX2h1bmdhcmlhbk1hcHx8Q24odCk7dmFyIG47Vy5lYWNoKGUsZnVuY3Rpb24ocyl7bj10Ll9odW5nYXJpYW5NYXBbc10sbiE9PXZvaWQgMCYmKHJ8fGVbbl09PT12b2lkIDApJiYobi5jaGFyQXQoMCk9PT0ibyI/KGVbbl18fChlW25dPXt9KSxXLmV4dGVuZCghMCxlW25dLGVbc10pLGVyKHRbbl0sZVtuXSxyKSk6ZVtuXT1lW3NdKX0pfXZhciB5ZT1mdW5jdGlvbih0LGUscil7dFtlXSE9PXZvaWQgMCYmKHRbcl09dFtlXSl9O2Z1bmN0aW9uIERhKHQpe3llKHQsIm9yZGVyaW5nIiwiYlNvcnQiKSx5ZSh0LCJvcmRlck11bHRpIiwiYlNvcnRNdWx0aSIpLHllKHQsIm9yZGVyQ2xhc3NlcyIsImJTb3J0Q2xhc3NlcyIpLHllKHQsIm9yZGVyQ2VsbHNUb3AiLCJiU29ydENlbGxzVG9wIikseWUodCwib3JkZXIiLCJhYVNvcnRpbmciKSx5ZSh0LCJvcmRlckZpeGVkIiwiYWFTb3J0aW5nRml4ZWQiKSx5ZSh0LCJwYWdpbmciLCJiUGFnaW5hdGUiKSx5ZSh0LCJwYWdpbmdUeXBlIiwic1BhZ2luYXRpb25UeXBlIikseWUodCwicGFnZUxlbmd0aCIsImlEaXNwbGF5TGVuZ3RoIikseWUodCwic2VhcmNoaW5nIiwiYkZpbHRlciIpLHR5cGVvZiB0LnNTY3JvbGxYPT0iYm9vbGVhbiImJih0LnNTY3JvbGxYPXQuc1Njcm9sbFg/IjEwMCUiOiIiKSx0eXBlb2YgdC5zY3JvbGxYPT0iYm9vbGVhbiImJih0LnNjcm9sbFg9dC5zY3JvbGxYPyIxMDAlIjoiIik7dmFyIGU9dC5hb1NlYXJjaENvbHM7aWYoZSlmb3IodmFyIHI9MCxuPWUubGVuZ3RoO3I8bjtyKyspZVtyXSYmZXIodnQubW9kZWxzLm9TZWFyY2gsZVtyXSk7dC5zZXJ2ZXJTaWRlJiYhdC5zZWFyY2hEZWxheSYmKHQuc2VhcmNoRGVsYXk9NDAwKX1mdW5jdGlvbiBVYSh0KXt5ZSh0LCJvcmRlcmFibGUiLCJiU29ydGFibGUiKSx5ZSh0LCJvcmRlckRhdGEiLCJhRGF0YVNvcnQiKSx5ZSh0LCJvcmRlclNlcXVlbmNlIiwiYXNTb3J0aW5nIikseWUodCwib3JkZXJEYXRhVHlwZSIsInNvcnREYXRhVHlwZSIpO3ZhciBlPXQuYURhdGFTb3J0O3R5cGVvZiBlPT0ibnVtYmVyIiYmIUFycmF5LmlzQXJyYXkoZSkmJih0LmFEYXRhU29ydD1bZV0pfWZ1bmN0aW9uIHFvKHQpe2lmKCF2dC5fX2Jyb3dzZXIpe3ZhciBlPXt9O3Z0Ll9fYnJvd3Nlcj1lO3ZhciByPVcoIjxkaXYvPiIpLmNzcyh7cG9zaXRpb246ImZpeGVkIix0b3A6MCxsZWZ0Oi0xKndpbmRvdy5wYWdlWE9mZnNldCxoZWlnaHQ6MSx3aWR0aDoxLG92ZXJmbG93OiJoaWRkZW4ifSkuYXBwZW5kKFcoIjxkaXYvPiIpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIix0b3A6MSxsZWZ0OjEsd2lkdGg6MTAwLG92ZXJmbG93OiJzY3JvbGwifSkuYXBwZW5kKFcoIjxkaXYvPiIpLmNzcyh7d2lkdGg6IjEwMCUiLGhlaWdodDoxMH0pKSkuYXBwZW5kVG8oImJvZHkiKSxuPXIuY2hpbGRyZW4oKSxzPW4uY2hpbGRyZW4oKTtlLmJhcldpZHRoPW5bMF0ub2Zmc2V0V2lkdGgtblswXS5jbGllbnRXaWR0aCxlLmJTY3JvbGxiYXJMZWZ0PU1hdGgucm91bmQocy5vZmZzZXQoKS5sZWZ0KSE9PTEsci5yZW1vdmUoKX1XLmV4dGVuZCh0Lm9Ccm93c2VyLHZ0Ll9fYnJvd3NlciksdC5vU2Nyb2xsLmlCYXJXaWR0aD12dC5fX2Jyb3dzZXIuYmFyV2lkdGh9ZnVuY3Rpb24gcWEodCl7dmFyIGU9dnQuZGVmYXVsdHMuY29sdW1uLHI9dC5hb0NvbHVtbnMubGVuZ3RoLG49Vy5leHRlbmQoe30sdnQubW9kZWxzLm9Db2x1bW4sZSx7YURhdGFTb3J0OmUuYURhdGFTb3J0P2UuYURhdGFTb3J0OltyXSxtRGF0YTplLm1EYXRhP2UubURhdGE6cixpZHg6cixzZWFyY2hGaXhlZDp7fSxjb2xFbDpXKCI8Y29sPiIpLmF0dHIoImRhdGEtZHQtY29sdW1uIixyKX0pO3QuYW9Db2x1bW5zLnB1c2gobik7dmFyIHM9dC5hb1ByZVNlYXJjaENvbHM7c1tyXT1XLmV4dGVuZCh7fSx2dC5tb2RlbHMub1NlYXJjaCxzW3JdKX1mdW5jdGlvbiB1aSh0LGUscil7dmFyIG49dC5hb0NvbHVtbnNbZV07aWYociE9bnVsbCl7VWEociksZXIodnQuZGVmYXVsdHMuY29sdW1uLHIsITApLHIubURhdGFQcm9wIT09dm9pZCAwJiYhci5tRGF0YSYmKHIubURhdGE9ci5tRGF0YVByb3ApLHIuc1R5cGUmJihuLl9zTWFudWFsVHlwZT1yLnNUeXBlKSxyLmNsYXNzTmFtZSYmIXIuc0NsYXNzJiYoci5zQ2xhc3M9ci5jbGFzc05hbWUpO3ZhciBzPW4uc0NsYXNzO1cuZXh0ZW5kKG4sciksbnIobixyLCJzV2lkdGgiLCJzV2lkdGhPcmlnIikscyE9PW4uc0NsYXNzJiYobi5zQ2xhc3M9cysiICIrbi5zQ2xhc3MpLHIuaURhdGFTb3J0IT09dm9pZCAwJiYobi5hRGF0YVNvcnQ9W3IuaURhdGFTb3J0XSksbnIobixyLCJhRGF0YVNvcnQiKX12YXIgYT1uLm1EYXRhLGw9SXIoYSk7aWYobi5tUmVuZGVyJiZBcnJheS5pc0FycmF5KG4ubVJlbmRlcikpe3ZhciBjPW4ubVJlbmRlci5zbGljZSgpLHA9Yy5zaGlmdCgpO24ubVJlbmRlcj12dC5yZW5kZXJbcF0uYXBwbHkod2luZG93LGMpfW4uX3JlbmRlcj1uLm1SZW5kZXI/SXIobi5tUmVuZGVyKTpudWxsO3ZhciBiPWZ1bmN0aW9uKG0pe3JldHVybiB0eXBlb2YgbT09InN0cmluZyImJm0uaW5kZXhPZigiQCIpIT09LTF9O24uX2JBdHRyU3JjPVcuaXNQbGFpbk9iamVjdChhKSYmKGIoYS5zb3J0KXx8YihhLnR5cGUpfHxiKGEuZmlsdGVyKSksbi5fc2V0dGVyPW51bGwsbi5mbkdldERhdGE9ZnVuY3Rpb24obSx5LFQpe3ZhciB3PWwobSx5LHZvaWQgMCxUKTtyZXR1cm4gbi5fcmVuZGVyJiZ5P24uX3JlbmRlcih3LHksbSxUKTp3fSxuLmZuU2V0RGF0YT1mdW5jdGlvbihtLHksVCl7cmV0dXJuIGZyKGEpKG0seSxUKX0sdHlwZW9mIGEhPSJudW1iZXIiJiYhbi5faXNBcnJheUhvc3QmJih0Ll9yb3dSZWFkT2JqZWN0PSEwKSx0Lm9GZWF0dXJlcy5iU29ydHx8KG4uYlNvcnRhYmxlPSExKX1mdW5jdGlvbiBUbih0KXtvbCh0KSxHbyh0KTt2YXIgZT10Lm9TY3JvbGw7KGUuc1khPT0iInx8ZS5zWCE9PSIiKSYmdHModCksWnQodCxudWxsLCJjb2x1bW4tc2l6aW5nIixbdF0pfWZ1bmN0aW9uIEdvKHQpe2Zvcih2YXIgZT10LmFvQ29sdW1ucyxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPUdhKHQsW3JdLCExLCExKTtlW3JdLmNvbEVsLmNzcygid2lkdGgiLG4pfX1mdW5jdGlvbiBnaSh0LGUpe3ZhciByPXlpKHQsImJWaXNpYmxlIik7cmV0dXJuIHR5cGVvZiByW2VdPT0ibnVtYmVyIj9yW2VdOm51bGx9ZnVuY3Rpb24gJHIodCxlKXt2YXIgcj15aSh0LCJiVmlzaWJsZSIpLG49ci5pbmRleE9mKGUpO3JldHVybiBuIT09LTE/bjpudWxsfWZ1bmN0aW9uIGtuKHQpe3ZhciBlPXQuYW9IZWFkZXIscj10LmFvQ29sdW1ucyxuPTA7aWYoZS5sZW5ndGgpZm9yKHZhciBzPTAsYT1lWzBdLmxlbmd0aDtzPGE7cysrKXJbc10uYlZpc2libGUmJlcoZVswXVtzXS5jZWxsKS5jc3MoImRpc3BsYXkiKSE9PSJub25lIiYmbisrO3JldHVybiBufWZ1bmN0aW9uIHlpKHQsZSl7dmFyIHI9W107cmV0dXJuIHQuYW9Db2x1bW5zLm1hcChmdW5jdGlvbihuLHMpe25bZV0mJnIucHVzaChzKX0pLHJ9ZnVuY3Rpb24gd2kodCl7dmFyIGU9dC5hb0NvbHVtbnMscj10LmFvRGF0YSxuPXZ0LmV4dC50eXBlLmRldGVjdCxzLGEsbCxjLHAsYixtLHksVDtmb3Iocz0wLGE9ZS5sZW5ndGg7czxhO3MrKyl7aWYobT1lW3NdLFQ9W10sIW0uc1R5cGUmJm0uX3NNYW51YWxUeXBlKW0uc1R5cGU9bS5fc01hbnVhbFR5cGU7ZWxzZSBpZighbS5zVHlwZSl7Zm9yKGw9MCxjPW4ubGVuZ3RoO2w8YztsKyspe2ZvcihwPTAsYj1yLmxlbmd0aDtwPGImJiEocltwXSYmKFRbcF09PT12b2lkIDAmJihUW3BdPU5lKHQscCxzLCJ0eXBlIikpLHk9bltsXShUW3BdLHQpLCF5JiZsIT09bi5sZW5ndGgtMnx8eT09PSJodG1sIiYmIVplKFRbcF0pKSk7cCsrKTtpZih5KXttLnNUeXBlPXk7YnJlYWt9fW0uc1R5cGV8fChtLnNUeXBlPSJzdHJpbmciKX12YXIgdz1vZS50eXBlLmNsYXNzTmFtZVttLnNUeXBlXTt3JiYoQWEodC5hb0hlYWRlcixzLHcpLEFhKHQuYW9Gb290ZXIscyx3KSk7dmFyIGs9b2UudHlwZS5yZW5kZXJbbS5zVHlwZV07ayYmIW0uX3JlbmRlciYmKG0uX3JlbmRlcj12dC51dGlsLmdldChrKSxYbyh0LHMpKX19ZnVuY3Rpb24gWG8odCxlKXtmb3IodmFyIHI9dC5hb0RhdGEsbj0wO248ci5sZW5ndGg7bisrKWlmKHJbbl0ublRyKXt2YXIgcz1OZSh0LG4sZSwiZGlzcGxheSIpO3Jbbl0uZGlzcGxheURhdGFbZV09cyxnbihyW25dLmFuQ2VsbHNbZV0scyl9fWZ1bmN0aW9uIEFhKHQsZSxyKXt0LmZvckVhY2goZnVuY3Rpb24obil7bltlXSYmbltlXS51bmlxdWUmJkFyKG5bZV0uY2VsbCxyKX0pfWZ1bmN0aW9uICRvKHQsZSxyLG4scyl7dmFyIGEsbCxjLHAsYixtLHksVD10LmFvQ29sdW1ucztpZihyKWZvcihhPTAsbD1yLmxlbmd0aDthPGw7YSsrKXJbYV0mJnJbYV0ubmFtZSYmKFRbYV0uc05hbWU9clthXS5uYW1lKTtpZihlKWZvcihhPWUubGVuZ3RoLTE7YT49MDthLS0pe3k9ZVthXTt2YXIgdz15LnRhcmdldCE9PXZvaWQgMD95LnRhcmdldDp5LnRhcmdldHMhPT12b2lkIDA/eS50YXJnZXRzOnkuYVRhcmdldHM7Zm9yKEFycmF5LmlzQXJyYXkodyl8fCh3PVt3XSksYz0wLHA9dy5sZW5ndGg7YzxwO2MrKyl7dmFyIGs9d1tjXTtpZih0eXBlb2Ygaz09Im51bWJlciImJms+PTApe2Zvcig7VC5sZW5ndGg8PWs7KXFhKHQpO3Moayx5KX1lbHNlIGlmKHR5cGVvZiBrPT0ibnVtYmVyIiYmazwwKXMoVC5sZW5ndGgrayx5KTtlbHNlIGlmKHR5cGVvZiBrPT0ic3RyaW5nIilmb3IoYj0wLG09VC5sZW5ndGg7YjxtO2IrKylrPT09Il9hbGwiP3MoYix5KTprLmluZGV4T2YoIjpuYW1lIikhPT0tMT9UW2JdLnNOYW1lPT09ay5yZXBsYWNlKCI6bmFtZSIsIiIpJiZzKGIseSk6bi5mb3JFYWNoKGZ1bmN0aW9uKFApe2lmKFBbYl0pe3ZhciBGPVcoUFtiXS5jZWxsKTtrLm1hdGNoKC9eW2Etel1bXHctXSokL2kpJiYoaz0iLiIrayksRi5pcyhrKSYmcyhiLHkpfX0pfX1pZihyKWZvcihhPTAsbD1yLmxlbmd0aDthPGw7YSsrKXMoYSxyW2FdKX1mdW5jdGlvbiBHYSh0LGUscixuKXtBcnJheS5pc0FycmF5KGUpfHwoZT14aShlKSk7Zm9yKHZhciBzPTAsYSxsPXQuYW9Db2x1bW5zLGM9MCxwPWUubGVuZ3RoO2M8cDtjKyspe3ZhciBiPWxbZVtjXV0sbT1yP2Iuc1dpZHRoT3JpZzpiLnNXaWR0aDtpZighKCFuJiZiLmJWaXNpYmxlPT09ITEpKXtpZihtPT1udWxsKXJldHVybiBudWxsO2lmKHR5cGVvZiBtPT0ibnVtYmVyIilhPSJweCIscys9bTtlbHNle3ZhciB5PW0ubWF0Y2goLyhbXGRcLl0rKShbXlxkXSopLyk7eSYmKHMrPXlbMV0qMSxhPXkubGVuZ3RoPT09Mz95WzJdOiJweCIpfX19cmV0dXJuIHMrYX1mdW5jdGlvbiB4aSh0KXt2YXIgZT1XKHQpLmNsb3Nlc3QoIltkYXRhLWR0LWNvbHVtbl0iKS5hdHRyKCJkYXRhLWR0LWNvbHVtbiIpO3JldHVybiBlP2Uuc3BsaXQoIiwiKS5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIHIqMX0pOltdfWZ1bmN0aW9uIGJyKHQsZSxyLG4pe3ZhciBzPXQuYW9EYXRhLmxlbmd0aCxhPVcuZXh0ZW5kKCEwLHt9LHZ0Lm1vZGVscy5vUm93LHtzcmM6cj8iZG9tIjoiZGF0YSIsaWR4OnN9KTthLl9hRGF0YT1lLHQuYW9EYXRhLnB1c2goYSk7Zm9yKHZhciBsPXQuYW9Db2x1bW5zLGM9MCxwPWwubGVuZ3RoO2M8cDtjKyspbFtjXS5zVHlwZT1udWxsO3QuYWlEaXNwbGF5TWFzdGVyLnB1c2gocyk7dmFyIGI9dC5yb3dJZEZuKGUpO3JldHVybiBiIT09dm9pZCAwJiYodC5hSWRzW2JdPWEpLChyfHwhdC5vRmVhdHVyZXMuYkRlZmVyUmVuZGVyKSYmJGEodCxzLHIsbiksc31mdW5jdGlvbiBfaSh0LGUpe3ZhciByO3JldHVybiBlIGluc3RhbmNlb2YgV3x8KGU9VyhlKSksZS5tYXAoZnVuY3Rpb24obixzKXtyZXR1cm4gcj1YYSh0LHMpLGJyKHQsci5kYXRhLHMsci5jZWxscyl9KX1mdW5jdGlvbiBOZSh0LGUscixuKXtuPT09InNlYXJjaCI/bj0iZmlsdGVyIjpuPT09Im9yZGVyIiYmKG49InNvcnQiKTt2YXIgcz10LmFvRGF0YVtlXTtpZihzKXt2YXIgYT10LmlEcmF3LGw9dC5hb0NvbHVtbnNbcl0sYz1zLl9hRGF0YSxwPWwuc0RlZmF1bHRDb250ZW50LGI9bC5mbkdldERhdGEoYyxuLHtzZXR0aW5nczp0LHJvdzplLGNvbDpyfSk7aWYobiE9PSJkaXNwbGF5IiYmYiYmdHlwZW9mIGI9PSJvYmplY3QiJiZiLm5vZGVOYW1lJiYoYj1iLmlubmVySFRNTCksYj09PXZvaWQgMClyZXR1cm4gdC5pRHJhd0Vycm9yIT1hJiZwPT09bnVsbCYmKFBlKHQsMCwiUmVxdWVzdGVkIHVua25vd24gcGFyYW1ldGVyICIrKHR5cGVvZiBsLm1EYXRhPT0iZnVuY3Rpb24iPyJ7ZnVuY3Rpb259IjoiJyIrbC5tRGF0YSsiJyIpKyIgZm9yIHJvdyAiK2UrIiwgY29sdW1uICIrciw0KSx0LmlEcmF3RXJyb3I9YSkscDtpZigoYj09PWN8fGI9PT1udWxsKSYmcCE9PW51bGwmJm4hPT12b2lkIDApYj1wO2Vsc2UgaWYodHlwZW9mIGI9PSJmdW5jdGlvbiIpcmV0dXJuIGIuY2FsbChjKTtpZihiPT09bnVsbCYmbj09PSJkaXNwbGF5IilyZXR1cm4iIjtpZihuPT09ImZpbHRlciIpe3ZhciBtPXZ0LmV4dC50eXBlLnNlYXJjaDttW2wuc1R5cGVdJiYoYj1tW2wuc1R5cGVdKGIpKX1yZXR1cm4gYn19ZnVuY3Rpb24gWm8odCxlLHIsbil7dmFyIHM9dC5hb0NvbHVtbnNbcl0sYT10LmFvRGF0YVtlXS5fYURhdGE7cy5mblNldERhdGEoYSxuLHtzZXR0aW5nczp0LHJvdzplLGNvbDpyfSl9ZnVuY3Rpb24gZ24odCxlKXtlJiZ0eXBlb2YgZT09Im9iamVjdCImJmUubm9kZU5hbWU/Vyh0KS5lbXB0eSgpLmFwcGVuZChlKTp0LmlubmVySFRNTD1lfXZhciBVcj0vXFsuKj9cXSQvLGtyPS9cKFwpJC87ZnVuY3Rpb24gSWEodCl7dmFyIGU9dC5tYXRjaCgvKFxcLnxbXi5dKSsvZyl8fFsiIl07cmV0dXJuIGUubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByLnJlcGxhY2UoL1xcXC4vZywiLiIpfSl9dmFyIElyPXZ0LnV0aWwuZ2V0LGZyPXZ0LnV0aWwuc2V0O2Z1bmN0aW9uIFBhKHQpe3JldHVybiB4ZSh0LmFvRGF0YSwiX2FEYXRhIil9ZnVuY3Rpb24gQ2kodCl7dC5hb0RhdGEubGVuZ3RoPTAsdC5haURpc3BsYXlNYXN0ZXIubGVuZ3RoPTAsdC5haURpc3BsYXkubGVuZ3RoPTAsdC5hSWRzPXt9fWZ1bmN0aW9uIFNuKHQsZSxyLG4pe3ZhciBzPXQuYW9EYXRhW2VdLGEsbDtpZihzLl9hU29ydERhdGE9bnVsbCxzLl9hRmlsdGVyRGF0YT1udWxsLHMuZGlzcGxheURhdGE9bnVsbCxyPT09ImRvbSJ8fCghcnx8cj09PSJhdXRvIikmJnMuc3JjPT09ImRvbSIpcy5fYURhdGE9WGEodCxzLG4sbj09PXZvaWQgMD92b2lkIDA6cy5fYURhdGEpLmRhdGE7ZWxzZXt2YXIgYz1zLmFuQ2VsbHMscD1UaSh0LGUpO2lmKGMpaWYobiE9PXZvaWQgMClnbihjW25dLHBbbl0pO2Vsc2UgZm9yKGE9MCxsPWMubGVuZ3RoO2E8bDthKyspZ24oY1thXSxwW2FdKX12YXIgYj10LmFvQ29sdW1ucztpZihuIT09dm9pZCAwKWJbbl0uc1R5cGU9bnVsbCxiW25dLm1heExlblN0cmluZz1udWxsO2Vsc2V7Zm9yKGE9MCxsPWIubGVuZ3RoO2E8bDthKyspYlthXS5zVHlwZT1udWxsLGJbYV0ubWF4TGVuU3RyaW5nPW51bGw7WmEodCxzKX19ZnVuY3Rpb24gWGEodCxlLHIsbil7dmFyIHM9W10sYT1lLmZpcnN0Q2hpbGQsbCxjLHA9MCxiLG09dC5hb0NvbHVtbnMseT10Ll9yb3dSZWFkT2JqZWN0O249biE9PXZvaWQgMD9uOnk/e306W107dmFyIFQ9ZnVuY3Rpb24obyxmKXtpZih0eXBlb2Ygbz09InN0cmluZyIpe3ZhciBDPW8uaW5kZXhPZigiQCIpO2lmKEMhPT0tMSl7dmFyIEI9by5zdWJzdHJpbmcoQysxKSx1PWZyKG8pO3UobixmLmdldEF0dHJpYnV0ZShCKSl9fX0sdz1mdW5jdGlvbihvKXtpZihyPT09dm9pZCAwfHxyPT09cClpZihjPW1bcF0sYj1vLmlubmVySFRNTC50cmltKCksYyYmYy5fYkF0dHJTcmMpe3ZhciBmPWZyKGMubURhdGEuXyk7ZihuLGIpLFQoYy5tRGF0YS5zb3J0LG8pLFQoYy5tRGF0YS50eXBlLG8pLFQoYy5tRGF0YS5maWx0ZXIsbyl9ZWxzZSB5PyhjLl9zZXR0ZXJ8fChjLl9zZXR0ZXI9ZnIoYy5tRGF0YSkpLGMuX3NldHRlcihuLGIpKTpuW3BdPWI7cCsrfTtpZihhKWZvcig7YTspbD1hLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCksKGw9PSJURCJ8fGw9PSJUSCIpJiYodyhhKSxzLnB1c2goYSkpLGE9YS5uZXh0U2libGluZztlbHNle3M9ZS5hbkNlbGxzO2Zvcih2YXIgaz0wLFA9cy5sZW5ndGg7azxQO2srKyl3KHNba10pfXZhciBGPWUuZmlyc3RDaGlsZD9lOmUublRyO2lmKEYpe3ZhciBoPUYuZ2V0QXR0cmlidXRlKCJpZCIpO2gmJmZyKHQucm93SWQpKG4saCl9cmV0dXJue2RhdGE6bixjZWxsczpzfX1mdW5jdGlvbiBUaSh0LGUpe2xldCByPXQuYW9EYXRhW2VdLG49dC5hb0NvbHVtbnM7aWYoIXIuZGlzcGxheURhdGEpe3IuZGlzcGxheURhdGE9W107Zm9yKHZhciBzPTAsYT1uLmxlbmd0aDtzPGE7cysrKXIuZGlzcGxheURhdGEucHVzaChOZSh0LGUscywiZGlzcGxheSIpKX1yZXR1cm4gci5kaXNwbGF5RGF0YX1mdW5jdGlvbiAkYSh0LGUscixuKXt2YXIgcz10LmFvRGF0YVtlXSxhPXMuX2FEYXRhLGw9W10sYyxwLGIsbSx5LFQsdz10Lm9DbGFzc2VzLnRib2R5LnJvdztpZihzLm5Ucj09PW51bGwpe2ZvcihjPXJ8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIikscy5uVHI9YyxzLmFuQ2VsbHM9bCxBcihjLHcpLGMuX0RUX1Jvd0luZGV4PWUsWmEodCxzKSxtPTAseT10LmFvQ29sdW1ucy5sZW5ndGg7bTx5O20rKyl7Yj10LmFvQ29sdW1uc1ttXSxUPSEociYmblttXSkscD1UP2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYi5zQ2VsbFR5cGUpOm5bbV0scHx8UGUodCwwLCJJbmNvcnJlY3QgY29sdW1uIGNvdW50IiwxOCkscC5fRFRfQ2VsbEluZGV4PXtyb3c6ZSxjb2x1bW46bX0sbC5wdXNoKHApO3ZhciBrPVRpKHQsZSk7KFR8fChiLm1SZW5kZXJ8fGIubURhdGEhPT1tKSYmKCFXLmlzUGxhaW5PYmplY3QoYi5tRGF0YSl8fGIubURhdGEuXyE9PW0rIi5kaXNwbGF5IikpJiZnbihwLGtbbV0pLGIuYlZpc2libGUmJlQ/Yy5hcHBlbmRDaGlsZChwKTohYi5iVmlzaWJsZSYmIVQmJnAucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChwKSxiLmZuQ3JlYXRlZENlbGwmJmIuZm5DcmVhdGVkQ2VsbC5jYWxsKHQub0luc3RhbmNlLHAsTmUodCxlLG0pLGEsZSxtKX1adCh0LCJhb1Jvd0NyZWF0ZWRDYWxsYmFjayIsInJvdy1jcmVhdGVkIixbYyxhLGUsbF0pfWVsc2UgQXIocy5uVHIsdyl9ZnVuY3Rpb24gWmEodCxlKXt2YXIgcj1lLm5UcixuPWUuX2FEYXRhO2lmKHIpe3ZhciBzPXQucm93SWRGbihuKTtpZihzJiYoci5pZD1zKSxuLkRUX1Jvd0NsYXNzKXt2YXIgYT1uLkRUX1Jvd0NsYXNzLnNwbGl0KCIgIik7ZS5fX3Jvd2M9ZS5fX3Jvd2M/cHIoZS5fX3Jvd2MuY29uY2F0KGEpKTphLFcocikucmVtb3ZlQ2xhc3MoZS5fX3Jvd2Muam9pbigiICIpKS5hZGRDbGFzcyhuLkRUX1Jvd0NsYXNzKX1uLkRUX1Jvd0F0dHImJlcocikuYXR0cihuLkRUX1Jvd0F0dHIpLG4uRFRfUm93RGF0YSYmVyhyKS5kYXRhKG4uRFRfUm93RGF0YSl9fWZ1bmN0aW9uIEZhKHQsZSl7dmFyIHI9dC5vQ2xhc3NlcyxuPXQuYW9Db2x1bW5zLHMsYSxsLGM9ZT09PSJoZWFkZXIiP3QublRIZWFkOnQublRGb290LHA9ZT09PSJoZWFkZXIiPyJzVGl0bGUiOmU7aWYoYyl7aWYoKGU9PT0iaGVhZGVyInx8eGUodC5hb0NvbHVtbnMscCkuam9pbigiIikpJiYobD1XKCJ0ciIsYyksbC5sZW5ndGh8fChsPVcoIjx0ci8+IikuYXBwZW5kVG8oYykpLGwubGVuZ3RoPT09MSkpe3ZhciBiPVcoInRkLCB0aCIsbCk7Zm9yKHM9Yi5sZW5ndGgsYT1uLmxlbmd0aDtzPGE7cysrKVcoIjx0aC8+IikuaHRtbChuW3NdW3BdfHwiIikuYXBwZW5kVG8obCl9dmFyIG09WWEodCxjLCEwKTtlPT09ImhlYWRlciI/dC5hb0hlYWRlcj1tOnQuYW9Gb290ZXI9bSxXKGMpLmNoaWxkcmVuKCJ0ciIpLmF0dHIoInJvbGUiLCJyb3ciKSxXKGMpLmNoaWxkcmVuKCJ0ciIpLmNoaWxkcmVuKCJ0aCwgdGQiKS5lYWNoKGZ1bmN0aW9uKCl7eG4odCxlKSh0LFcodGhpcykscil9KX19ZnVuY3Rpb24gS2EodCxlLHIpe3ZhciBuLHMsYSxsPVtdLGM9W10scD10LmFvQ29sdW1ucyxiPXAubGVuZ3RoLG0seTtpZihlKXtmb3Iocnx8KHI9Y3IoYikuZmlsdGVyKGZ1bmN0aW9uKGspe3JldHVybiBwW2tdLmJWaXNpYmxlfSkpLG49MDtuPGUubGVuZ3RoO24rKylsW25dPWVbbl0uc2xpY2UoKS5maWx0ZXIoZnVuY3Rpb24oayxQKXtyZXR1cm4gci5pbmNsdWRlcyhQKX0pLGMucHVzaChbXSk7Zm9yKG49MDtuPGwubGVuZ3RoO24rKylmb3Iocz0wO3M8bFtuXS5sZW5ndGg7cysrKWlmKG09MSx5PTEsY1tuXVtzXT09PXZvaWQgMCl7Zm9yKGE9bFtuXVtzXS5jZWxsO2xbbittXSE9PXZvaWQgMCYmbFtuXVtzXS5jZWxsPT1sW24rbV1bc10uY2VsbDspY1tuK21dW3NdPW51bGwsbSsrO2Zvcig7bFtuXVtzK3ldIT09dm9pZCAwJiZsW25dW3NdLmNlbGw9PWxbbl1bcyt5XS5jZWxsOyl7Zm9yKHZhciBUPTA7VDxtO1QrKyljW24rVF1bcyt5XT1udWxsO3krK312YXIgdz1XKCJzcGFuLmR0LWNvbHVtbi10aXRsZSIsYSk7Y1tuXVtzXT17Y2VsbDphLGNvbHNwYW46eSxyb3dzcGFuOm0sdGl0bGU6dy5sZW5ndGg/dy5odG1sKCk6VyhhKS5odG1sKCl9fXJldHVybiBjfX1mdW5jdGlvbiB5bih0LGUpe2Zvcih2YXIgcj1LYSh0LGUpLG4scyxhPTA7YTxlLmxlbmd0aDthKyspe2lmKG49ZVthXS5yb3csbilmb3IoO3M9bi5maXJzdENoaWxkOyluLnJlbW92ZUNoaWxkKHMpO2Zvcih2YXIgbD0wO2w8clthXS5sZW5ndGg7bCsrKXt2YXIgYz1yW2FdW2xdO2MmJlcoYy5jZWxsKS5hcHBlbmRUbyhuKS5hdHRyKCJyb3dzcGFuIixjLnJvd3NwYW4pLmF0dHIoImNvbHNwYW4iLGMuY29sc3Bhbil9fX1mdW5jdGlvbiBGcih0LGUpe1FvKHQpO3ZhciByPVp0KHQsImFvUHJlRHJhd0NhbGxiYWNrIiwicHJlRHJhdyIsW3RdKTtpZihyLmluZGV4T2YoITEpIT09LTEpe0ZlKHQsITEpO3JldHVybn12YXIgbj1bXSxzPTAsYT1CZSh0KT09InNzcCIsbD10LmFpRGlzcGxheSxjPXQuX2lEaXNwbGF5U3RhcnQscD10LmZuRGlzcGxheUVuZCgpLGI9dC5hb0NvbHVtbnMsbT1XKHQublRCb2R5KTtpZih0LmJEcmF3aW5nPSEwLCFhKXQuaURyYXcrKztlbHNlIGlmKCF0LmJEZXN0cm95aW5nJiYhZSl7dC5pRHJhdz09PTAmJm0uZW1wdHkoKS5hcHBlbmQoQmEodCkpLEpvKHQpO3JldHVybn1pZihsLmxlbmd0aCE9PTApZm9yKHZhciB5PWE/MDpjLFQ9YT90LmFvRGF0YS5sZW5ndGg6cCx3PXk7dzxUO3crKyl7dmFyIGs9bFt3XSxQPXQuYW9EYXRhW2tdO1AublRyPT09bnVsbCYmJGEodCxrKTtmb3IodmFyIEY9UC5uVHIsaD0wO2g8Yi5sZW5ndGg7aCsrKXt2YXIgbz1iW2hdLGY9UC5hbkNlbGxzW2hdO0FyKGYsb2UudHlwZS5jbGFzc05hbWVbby5zVHlwZV0pLEFyKGYsby5zQ2xhc3MpLEFyKGYsdC5vQ2xhc3Nlcy50Ym9keS5jZWxsKX1adCh0LCJhb1Jvd0NhbGxiYWNrIixudWxsLFtGLFAuX2FEYXRhLHMsdyxrXSksbi5wdXNoKEYpLHMrK31lbHNlIG5bMF09QmEodCk7WnQodCwiYW9IZWFkZXJDYWxsYmFjayIsImhlYWRlciIsW1codC5uVEhlYWQpLmNoaWxkcmVuKCJ0ciIpWzBdLFBhKHQpLGMscCxsXSksWnQodCwiYW9Gb290ZXJDYWxsYmFjayIsImZvb3RlciIsW1codC5uVEZvb3QpLmNoaWxkcmVuKCJ0ciIpWzBdLFBhKHQpLGMscCxsXSksbVswXS5yZXBsYWNlQ2hpbGRyZW4/bVswXS5yZXBsYWNlQ2hpbGRyZW4uYXBwbHkobVswXSxuKToobS5jaGlsZHJlbigpLmRldGFjaCgpLG0uYXBwZW5kKFcobikpKSxXKHQublRhYmxlV3JhcHBlcikudG9nZ2xlQ2xhc3MoImR0LWVtcHR5LWZvb3RlciIsVygidHIiLHQublRGb290KS5sZW5ndGg9PT0wKSxadCh0LCJhb0RyYXdDYWxsYmFjayIsImRyYXciLFt0XSwhMCksdC5iU29ydGVkPSExLHQuYkZpbHRlcmVkPSExLHQuYkRyYXdpbmc9ITF9ZnVuY3Rpb24gUHIodCxlLHIpe3ZhciBuPXQub0ZlYXR1cmVzLHM9bi5iU29ydCxhPW4uYkZpbHRlcjsocj09PXZvaWQgMHx8cj09PSEwKSYmKHMmJkRpKHQpLGE/R3IodCx0Lm9QcmV2aW91c1NlYXJjaCk6dC5haURpc3BsYXk9dC5haURpc3BsYXlNYXN0ZXIuc2xpY2UoKSksZSE9PSEwJiYodC5faURpc3BsYXlTdGFydD0wKSx0Ll9kcmF3SG9sZD1lLEZyKHQpLHQuX2RyYXdIb2xkPSExfWZ1bmN0aW9uIEJhKHQpe3ZhciBlPXQub0xhbmd1YWdlLHI9ZS5zWmVyb1JlY29yZHMsbj1CZSh0KTtyZXR1cm4gdC5pRHJhdzwxJiZuPT09InNzcCJ8fHQuaURyYXc8PTEmJm49PT0iYWpheCI/cj1lLnNMb2FkaW5nUmVjb3JkczplLnNFbXB0eVRhYmxlJiZ0LmZuUmVjb3Jkc1RvdGFsKCk9PT0wJiYocj1lLnNFbXB0eVRhYmxlKSxXKCI8dHIvPiIpLmFwcGVuZChXKCI8dGQgLz4iLHtjb2xTcGFuOmtuKHQpLGNsYXNzOnQub0NsYXNzZXMuZW1wdHkucm93fSkuaHRtbChyKSlbMF19ZnVuY3Rpb24gTmEodCxlLHIpe3ZhciBuPXt9O1cuZWFjaChlLGZ1bmN0aW9uKHAsYil7aWYoYiE9PW51bGwpe3ZhciBtPXAucmVwbGFjZSgvKFtBLVpdKS9nLCIgJDEiKS5zcGxpdCgiICIpO25bbVswXV18fChuW21bMF1dPXt9KTt2YXIgeT1tLmxlbmd0aD09PTE/ImZ1bGwiOm1bMV0udG9Mb3dlckNhc2UoKSxUPW5bbVswXV0sdz1mdW5jdGlvbihQLEYpe1cuaXNQbGFpbk9iamVjdChGKT9PYmplY3Qua2V5cyhGKS5tYXAoZnVuY3Rpb24oaCl7UC5wdXNoKHtmZWF0dXJlOmgsb3B0czpGW2hdfSl9KTpQLnB1c2goRil9O2lmKCghVFt5XXx8IVRbeV0uY29udGVudHMpJiYoVFt5XT17Y29udGVudHM6W119KSxBcnJheS5pc0FycmF5KGIpKWZvcih2YXIgaz0wO2s8Yi5sZW5ndGg7aysrKXcoVFt5XS5jb250ZW50cyxiW2tdKTtlbHNlIHcoVFt5XS5jb250ZW50cyxiKTtBcnJheS5pc0FycmF5KFRbeV0uY29udGVudHMpfHwoVFt5XS5jb250ZW50cz1bVFt5XS5jb250ZW50c10pfX0pO3ZhciBzPU9iamVjdC5rZXlzKG4pLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gcC5pbmRleE9mKHIpIT09MD9udWxsOntuYW1lOnAsdmFsOm5bcF19fSkuZmlsdGVyKGZ1bmN0aW9uKHApe3JldHVybiBwIT09bnVsbH0pO3Muc29ydChmdW5jdGlvbihwLGIpe3ZhciBtPXAubmFtZS5yZXBsYWNlKC9bXjAtOV0vZywiIikqMSx5PWIubmFtZS5yZXBsYWNlKC9bXjAtOV0vZywiIikqMTtyZXR1cm4geS1tfSkscj09PSJib3R0b20iJiZzLnJldmVyc2UoKTtmb3IodmFyIGE9W10sbD0wLGM9cy5sZW5ndGg7bDxjO2wrKylzW2xdLnZhbC5mdWxsJiYoYS5wdXNoKHtmdWxsOnNbbF0udmFsLmZ1bGx9KSxFYSh0LGFbYS5sZW5ndGgtMV0pLGRlbGV0ZSBzW2xdLnZhbC5mdWxsKSxPYmplY3Qua2V5cyhzW2xdLnZhbCkubGVuZ3RoJiYoYS5wdXNoKHNbbF0udmFsKSxFYSh0LGFbYS5sZW5ndGgtMV0pKTtyZXR1cm4gYX1mdW5jdGlvbiBFYSh0LGUpe3ZhciByPWZ1bmN0aW9uKHMsYSl7cmV0dXJuIG9lLmZlYXR1cmVzW3NdfHxQZSh0LDAsIlVua25vd24gZmVhdHVyZTogIitzKSxvZS5mZWF0dXJlc1tzXS5hcHBseSh0aGlzLFt0LGFdKX0sbj1mdW5jdGlvbihzKXtmb3IodmFyIGE9ZVtzXS5jb250ZW50cyxsPTAsYz1hLmxlbmd0aDtsPGM7bCsrKWlmKGFbbF0pe2lmKHR5cGVvZiBhW2xdPT0ic3RyaW5nIilhW2xdPXIoYVtsXSxudWxsKTtlbHNlIGlmKFcuaXNQbGFpbk9iamVjdChhW2xdKSlhW2xdPXIoYVtsXS5mZWF0dXJlLGFbbF0ub3B0cyk7ZWxzZSBpZih0eXBlb2YgYVtsXS5ub2RlPT0iZnVuY3Rpb24iKWFbbF09YVtsXS5ub2RlKHQpO2Vsc2UgaWYodHlwZW9mIGFbbF09PSJmdW5jdGlvbiIpe3ZhciBwPWFbbF0odCk7YVtsXT10eXBlb2YgcC5ub2RlPT0iZnVuY3Rpb24iP3Aubm9kZSgpOnB9fWVsc2UgY29udGludWV9O1cuZWFjaChlLGZ1bmN0aW9uKHMpe24ocyl9KX1mdW5jdGlvbiBLbyh0KXt2YXIgZT10Lm9DbGFzc2VzLHI9Vyh0Lm5UYWJsZSksbj1XKCI8ZGl2Lz4iKS5hdHRyKHtpZDp0LnNUYWJsZUlkKyJfd3JhcHBlciIsY2xhc3M6ZS5jb250YWluZXJ9KS5pbnNlcnRCZWZvcmUocik7aWYodC5uVGFibGVXcmFwcGVyPW5bMF0sdC5zRG9tKVlvKHQsdC5zRG9tLG4pO2Vsc2V7dmFyIHM9TmEodCx0LmxheW91dCwidG9wIiksYT1OYSh0LHQubGF5b3V0LCJib3R0b20iKSxsPXhuKHQsImxheW91dCIpO3MuZm9yRWFjaChmdW5jdGlvbihjKXtsKHQsbixjKX0pLGwodCxuLHtmdWxsOnt0YWJsZTohMCxjb250ZW50czpbSmEodCldfX0pLGEuZm9yRWFjaChmdW5jdGlvbihjKXtsKHQsbixjKX0pfXNsKHQpfWZ1bmN0aW9uIFlvKHQsZSxyKXtmb3IodmFyIG49ZS5tYXRjaCgvKCIuKj8iKXwoJy4qPycpfC4vZykscyxhLGwsYyxwLGI9MDtiPG4ubGVuZ3RoO2IrKyl7aWYocz1udWxsLGE9bltiXSxhPT0iPCIpe2lmKGw9VygiPGRpdi8+IiksYz1uW2IrMV0sY1swXT09IicifHxjWzBdPT0nIicpe3A9Yy5yZXBsYWNlKC9bJyJdL2csIiIpO3ZhciBtPSIiLHk7aWYocC5pbmRleE9mKCIuIikhPS0xKXt2YXIgVD1wLnNwbGl0KCIuIik7bT1UWzBdLHk9VFsxXX1lbHNlIHBbMF09PSIjIj9tPXA6eT1wO2wuYXR0cigiaWQiLG0uc3Vic3RyaW5nKDEpKS5hZGRDbGFzcyh5KSxiKyt9ci5hcHBlbmQobCkscj1sfWVsc2UgYT09Ij4iP3I9ci5wYXJlbnQoKTphPT0idCI/cz1KYSh0KTp2dC5leHQuZmVhdHVyZS5mb3JFYWNoKGZ1bmN0aW9uKHcpe2E9PXcuY0ZlYXR1cmUmJihzPXcuZm5Jbml0KHQpKX0pO3MmJnIuYXBwZW5kKHMpfX1mdW5jdGlvbiBZYSh0LGUscil7dmFyIG49dC5hb0NvbHVtbnMscz1XKGUpLmNoaWxkcmVuKCJ0ciIpLGEsbCxjLHAsYixtLHksVCx3LGssUD1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0idGhlYWQiLEY9W10saCxvPWZ1bmN0aW9uKHoscSxldCl7Zm9yKHZhciBPPXpbcV07T1tldF07KWV0Kys7cmV0dXJuIGV0fTtmb3IoYz0wLG09cy5sZW5ndGg7YzxtO2MrKylGLnB1c2goW10pO2ZvcihjPTAsbT1zLmxlbmd0aDtjPG07YysrKWZvcihhPXNbY10sVD0wLGw9YS5maXJzdENoaWxkO2w7KXtpZihsLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk9PSJURCJ8fGwubm9kZU5hbWUudG9VcHBlckNhc2UoKT09IlRIIil7dmFyIGY9W107aWYodz1sLmdldEF0dHJpYnV0ZSgiY29sc3BhbiIpKjEsaz1sLmdldEF0dHJpYnV0ZSgicm93c3BhbiIpKjEsdz0hd3x8dz09PTB8fHc9PT0xPzE6dyxrPSFrfHxrPT09MHx8az09PTE/MTprLHk9byhGLGMsVCksaD13PT09MSxyKXtpZihoKXt1aSh0LHksVyhsKS5kYXRhKCkpO3ZhciBDPW5beV0sQj1sLmdldEF0dHJpYnV0ZSgid2lkdGgiKXx8bnVsbCx1PWwuc3R5bGUud2lkdGgubWF0Y2goL3dpZHRoOlxzKihcZCtbcHhlbSVdKykvKTt1JiYoQj11WzFdKSxDLnNXaWR0aE9yaWc9Qy5zV2lkdGh8fEIsUD8oQy5zVGl0bGUhPT1udWxsJiYhQy5hdXRvVGl0bGUmJihsLmlubmVySFRNTD1DLnNUaXRsZSksIUMuc1RpdGxlJiZoJiYoQy5zVGl0bGU9aHIobC5pbm5lckhUTUwpLEMuYXV0b1RpdGxlPSEwKSk6Qy5mb290ZXImJihsLmlubmVySFRNTD1DLmZvb3RlciksQy5hcmlhVGl0bGV8fChDLmFyaWFUaXRsZT1XKGwpLmF0dHIoImFyaWEtbGFiZWwiKXx8Qy5zVGl0bGUpLEMuY2xhc3NOYW1lJiZXKGwpLmFkZENsYXNzKEMuY2xhc3NOYW1lKX1XKCJzcGFuLmR0LWNvbHVtbi10aXRsZSIsbCkubGVuZ3RoPT09MCYmVygiPHNwYW4+IikuYWRkQ2xhc3MoImR0LWNvbHVtbi10aXRsZSIpLmFwcGVuZChsLmNoaWxkTm9kZXMpLmFwcGVuZFRvKGwpLFAmJlcoInNwYW4uZHQtY29sdW1uLW9yZGVyIixsKS5sZW5ndGg9PT0wJiZXKCI8c3Bhbj4iKS5hZGRDbGFzcygiZHQtY29sdW1uLW9yZGVyIikuYXBwZW5kVG8obCl9Zm9yKGI9MDtiPHc7YisrKXtmb3IocD0wO3A8aztwKyspRltjK3BdW3krYl09e2NlbGw6bCx1bmlxdWU6aH0sRltjK3BdLnJvdz1hO2YucHVzaCh5K2IpfWwuc2V0QXR0cmlidXRlKCJkYXRhLWR0LWNvbHVtbiIscHIoZikuam9pbigiLCIpKX1sPWwubmV4dFNpYmxpbmd9cmV0dXJuIEZ9ZnVuY3Rpb24gUW8odCl7dmFyIGU9QmUodCk9PSJzc3AiLHI9dC5pSW5pdERpc3BsYXlTdGFydDtyIT09dm9pZCAwJiZyIT09LTEmJih0Ll9pRGlzcGxheVN0YXJ0PWU/cjpyPj10LmZuUmVjb3Jkc0Rpc3BsYXkoKT8wOnIsdC5pSW5pdERpc3BsYXlTdGFydD0tMSl9ZnVuY3Rpb24ga2kodCxlLHIpe3ZhciBuLHM9dC5hamF4LGE9dC5vSW5zdGFuY2UsbD1mdW5jdGlvbihtKXt2YXIgeT10LmpxWEhSP3QuanFYSFIuc3RhdHVzOm51bGw7KG09PT1udWxsfHx0eXBlb2YgeT09Im51bWJlciImJnk9PTIwNCkmJihtPXt9LERuKHQsbSxbXSkpO3ZhciBUPW0uZXJyb3J8fG0uc0Vycm9yO1QmJlBlKHQsMCxUKSx0Lmpzb249bSxadCh0LG51bGwsInhociIsW3QsbSx0LmpxWEhSXSwhMCkscihtKX07aWYoVy5pc1BsYWluT2JqZWN0KHMpJiZzLmRhdGEpe249cy5kYXRhO3ZhciBjPXR5cGVvZiBuPT0iZnVuY3Rpb24iP24oZSx0KTpuO2U9dHlwZW9mIG49PSJmdW5jdGlvbiImJmM/YzpXLmV4dGVuZCghMCxlLGMpLGRlbGV0ZSBzLmRhdGF9dmFyIHA9e3VybDp0eXBlb2Ygcz09InN0cmluZyI/czoiIixkYXRhOmUsc3VjY2VzczpsLGRhdGFUeXBlOiJqc29uIixjYWNoZTohMSx0eXBlOnQuc1NlcnZlck1ldGhvZCxlcnJvcjpmdW5jdGlvbihtLHkpe3ZhciBUPVp0KHQsbnVsbCwieGhyIixbdCxudWxsLHQuanFYSFJdLCEwKTtULmluZGV4T2YoITApPT09LTEmJih5PT0icGFyc2VyZXJyb3IiP1BlKHQsMCwiSW52YWxpZCBKU09OIHJlc3BvbnNlIiwxKTptLnJlYWR5U3RhdGU9PT00JiZQZSh0LDAsIkFqYXggZXJyb3IiLDcpKSxGZSh0LCExKX19O2lmKFcuaXNQbGFpbk9iamVjdChzKSYmVy5leHRlbmQocCxzKSx0Lm9BamF4RGF0YT1lLFp0KHQsbnVsbCwicHJlWGhyIixbdCxlLHBdLCEwKSx0eXBlb2Ygcz09ImZ1bmN0aW9uIil0LmpxWEhSPXMuY2FsbChhLGUsbCx0KTtlbHNlIGlmKHMudXJsPT09IiIpe3ZhciBiPXt9O3Z0LnV0aWwuc2V0KHMuZGF0YVNyYykoYixbXSksbChiKX1lbHNlIHQuanFYSFI9Vy5hamF4KHApLG4mJihzLmRhdGE9bil9ZnVuY3Rpb24gSm8odCl7dC5pRHJhdysrLEZlKHQsITApLGtpKHQsdGwodCksZnVuY3Rpb24oZSl7ZWwodCxlKX0pfWZ1bmN0aW9uIHRsKHQpe3ZhciBlPXQuYW9Db2x1bW5zLHI9dC5vRmVhdHVyZXMsbj10Lm9QcmV2aW91c1NlYXJjaCxzPXQuYW9QcmVTZWFyY2hDb2xzLGE9ZnVuY3Rpb24obCxjKXtyZXR1cm4gdHlwZW9mIGVbbF1bY109PSJmdW5jdGlvbiI/ImZ1bmN0aW9uIjplW2xdW2NdfTtyZXR1cm57ZHJhdzp0LmlEcmF3LGNvbHVtbnM6ZS5tYXAoZnVuY3Rpb24obCxjKXtyZXR1cm57ZGF0YTphKGMsIm1EYXRhIiksbmFtZTpsLnNOYW1lLHNlYXJjaGFibGU6bC5iU2VhcmNoYWJsZSxvcmRlcmFibGU6bC5iU29ydGFibGUsc2VhcmNoOnt2YWx1ZTpzW2NdLnNlYXJjaCxyZWdleDpzW2NdLnJlZ2V4LGZpeGVkOk9iamVjdC5rZXlzKGwuc2VhcmNoRml4ZWQpLm1hcChmdW5jdGlvbihwKXtyZXR1cm57bmFtZTpwLHRlcm06bC5zZWFyY2hGaXhlZFtwXS50b1N0cmluZygpfX0pfX19KSxvcmRlcjpBbih0KS5tYXAoZnVuY3Rpb24obCl7cmV0dXJue2NvbHVtbjpsLmNvbCxkaXI6bC5kaXIsbmFtZTphKGwuY29sLCJzTmFtZSIpfX0pLHN0YXJ0OnQuX2lEaXNwbGF5U3RhcnQsbGVuZ3RoOnIuYlBhZ2luYXRlP3QuX2lEaXNwbGF5TGVuZ3RoOi0xLHNlYXJjaDp7dmFsdWU6bi5zZWFyY2gscmVnZXg6bi5yZWdleCxmaXhlZDpPYmplY3Qua2V5cyh0LnNlYXJjaEZpeGVkKS5tYXAoZnVuY3Rpb24obCl7cmV0dXJue25hbWU6bCx0ZXJtOnQuc2VhcmNoRml4ZWRbbF0udG9TdHJpbmcoKX19KX19fWZ1bmN0aW9uIGVsKHQsZSl7dmFyIHI9RG4odCxlKSxuPXNpKHQsImRyYXciLGUpLHM9c2kodCwicmVjb3Jkc1RvdGFsIixlKSxhPXNpKHQsInJlY29yZHNGaWx0ZXJlZCIsZSk7aWYobiE9PXZvaWQgMCl7aWYobioxPHQuaURyYXcpcmV0dXJuO3QuaURyYXc9bioxfXJ8fChyPVtdKSxDaSh0KSx0Ll9pUmVjb3Jkc1RvdGFsPXBhcnNlSW50KHMsMTApLHQuX2lSZWNvcmRzRGlzcGxheT1wYXJzZUludChhLDEwKTtmb3IodmFyIGw9MCxjPXIubGVuZ3RoO2w8YztsKyspYnIodCxyW2xdKTt0LmFpRGlzcGxheT10LmFpRGlzcGxheU1hc3Rlci5zbGljZSgpLEZyKHQsITApLHduKHQpLEZlKHQsITEpfWZ1bmN0aW9uIERuKHQsZSxyKXt2YXIgbj0iZGF0YSI7aWYoVy5pc1BsYWluT2JqZWN0KHQuYWpheCkmJnQuYWpheC5kYXRhU3JjIT09dm9pZCAwKXt2YXIgcz10LmFqYXguZGF0YVNyYzt0eXBlb2Ygcz09InN0cmluZyJ8fHR5cGVvZiBzPT0iZnVuY3Rpb24iP249czpzLmRhdGEhPT12b2lkIDAmJihuPXMuZGF0YSl9aWYoIXIpcmV0dXJuIG49PT0iZGF0YSI/ZS5hYURhdGF8fGVbbl06biE9PSIiP0lyKG4pKGUpOmU7ZnIobikoZSxyKX1mdW5jdGlvbiBzaSh0LGUscil7dmFyIG49Vy5pc1BsYWluT2JqZWN0KHQuYWpheCk/dC5hamF4LmRhdGFTcmM6bnVsbDtpZihuJiZuW2VdKXJldHVybiBJcihuW2VdKShyKTt2YXIgcz0iIjtyZXR1cm4gZT09PSJkcmF3Ij9zPSJzRWNobyI6ZT09PSJyZWNvcmRzVG90YWwiP3M9ImlUb3RhbFJlY29yZHMiOmU9PT0icmVjb3Jkc0ZpbHRlcmVkIiYmKHM9ImlUb3RhbERpc3BsYXlSZWNvcmRzIikscltzXSE9PXZvaWQgMD9yW3NdOnJbZV19ZnVuY3Rpb24gR3IodCxlKXt2YXIgcj10LmFvUHJlU2VhcmNoQ29scztpZih3aSh0KSxCZSh0KSE9InNzcCIpe2FsKHQpLHQuYWlEaXNwbGF5PXQuYWlEaXNwbGF5TWFzdGVyLnNsaWNlKCkscG4odC5haURpc3BsYXksdCxlLnNlYXJjaCxlKSxXLmVhY2godC5zZWFyY2hGaXhlZCxmdW5jdGlvbihhLGwpe3BuKHQuYWlEaXNwbGF5LHQsbCx7fSl9KTtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIHM9cltuXTtwbih0LmFpRGlzcGxheSx0LHMuc2VhcmNoLHMsbiksVy5lYWNoKHQuYW9Db2x1bW5zW25dLnNlYXJjaEZpeGVkLGZ1bmN0aW9uKGEsbCl7cG4odC5haURpc3BsYXksdCxsLHt9LG4pfSl9cmwodCl9dC5iRmlsdGVyZWQ9ITAsWnQodCxudWxsLCJzZWFyY2giLFt0XSl9ZnVuY3Rpb24gcmwodCl7Zm9yKHZhciBlPXZ0LmV4dC5zZWFyY2gscj10LmFpRGlzcGxheSxuLHMsYT0wLGw9ZS5sZW5ndGg7YTxsO2ErKyl7Zm9yKHZhciBjPVtdLHA9MCxiPXIubGVuZ3RoO3A8YjtwKyspcz1yW3BdLG49dC5hb0RhdGFbc10sZVthXSh0LG4uX2FGaWx0ZXJEYXRhLHMsbi5fYURhdGEscCkmJmMucHVzaChzKTtyLmxlbmd0aD0wLHIucHVzaC5hcHBseShyLGMpfX1mdW5jdGlvbiBwbih0LGUscixuLHMpe2lmKHIhPT0iIilmb3IodmFyIGE9MCxsPXR5cGVvZiByPT0iZnVuY3Rpb24iP3I6bnVsbCxjPXIgaW5zdGFuY2VvZiBSZWdFeHA/cjpsP251bGw6bmwocixuKTthPHQubGVuZ3RoOyl7dmFyIHA9ZS5hb0RhdGFbdFthXV0sYj1zPT09dm9pZCAwP3AuX3NGaWx0ZXJSb3c6cC5fYUZpbHRlckRhdGFbc107KGwmJiFsKGIscC5fYURhdGEsdFthXSxzKXx8YyYmIWMudGVzdChiKSkmJih0LnNwbGljZShhLDEpLGEtLSksYSsrfX1mdW5jdGlvbiBubCh0LGUpe3ZhciByPVtdLG49Vy5leHRlbmQoe30se2JvdW5kYXJ5OiExLGNhc2VJbnNlbnNpdGl2ZTohMCxleGFjdDohMSxyZWdleDohMSxzbWFydDohMH0sZSk7aWYodHlwZW9mIHQhPSJzdHJpbmciJiYodD10LnRvU3RyaW5nKCkpLHQ9bW4odCksbi5leGFjdClyZXR1cm4gbmV3IFJlZ0V4cCgiXiIrY2kodCkrIiQiLG4uY2FzZUluc2Vuc2l0aXZlPyJpIjoiIik7aWYodD1uLnJlZ2V4P3Q6Y2kodCksbi5zbWFydCl7dmFyIHM9dC5tYXRjaCgvIT9bIlx1MjAxQ11bXiJcdTIwMURdK1siXHUyMDFEXXxbXiBdKy9nKXx8WyIiXSxhPXMubWFwKGZ1bmN0aW9uKHApe3ZhciBiPSExLG07cmV0dXJuIHAuY2hhckF0KDApPT09IiEiJiYoYj0hMCxwPXAuc3Vic3RyaW5nKDEpKSxwLmNoYXJBdCgwKT09PSciJz8obT1wLm1hdGNoKC9eIiguKikiJC8pLHA9bT9tWzFdOnApOnAuY2hhckF0KDApPT09Ilx1MjAxQyImJihtPXAubWF0Y2goL15cdTIwMUMoLiopXHUyMDFEJC8pLHA9bT9tWzFdOnApLGImJihwLmxlbmd0aD4xJiZyLnB1c2goIig/ISIrcCsiKSIpLHA9IiIpLHAucmVwbGFjZSgvIi9nLCIiKX0pLGw9ci5sZW5ndGg/ci5qb2luKCIiKToiIixjPW4uYm91bmRhcnk/IlxcYiI6IiI7dD0iXig/PS4qPyIrYythLmpvaW4oIikoPz0uKj8iK2MpKyIpKCIrbCsiLikqJCJ9cmV0dXJuIG5ldyBSZWdFeHAodCxuLmNhc2VJbnNlbnNpdGl2ZT8iaSI6IiIpfXZhciBjaT12dC51dGlsLmVzY2FwZVJlZ2V4LGJuPVcoIjxkaXY+IilbMF0saWw9Ym4udGV4dENvbnRlbnQhPT12b2lkIDA7ZnVuY3Rpb24gYWwodCl7Zm9yKHZhciBlPXQuYW9Db2x1bW5zLHI9dC5hb0RhdGEsbixzLGEsbCxjLHAsYj0hMSxtPTA7bTxyLmxlbmd0aDttKyspaWYoclttXSYmKHA9clttXSwhcC5fYUZpbHRlckRhdGEpKXtmb3IobD1bXSxzPTAsYT1lLmxlbmd0aDtzPGE7cysrKW49ZVtzXSxuLmJTZWFyY2hhYmxlPyhjPU5lKHQsbSxzLCJmaWx0ZXIiKSxjPT09bnVsbCYmKGM9IiIpLHR5cGVvZiBjIT0ic3RyaW5nIiYmYy50b1N0cmluZyYmKGM9Yy50b1N0cmluZygpKSk6Yz0iIixjLmluZGV4T2YmJmMuaW5kZXhPZigiJiIpIT09LTEmJihibi5pbm5lckhUTUw9YyxjPWlsP2JuLnRleHRDb250ZW50OmJuLmlubmVyVGV4dCksYy5yZXBsYWNlJiYoYz1jLnJlcGxhY2UoL1tcclxuXHUyMDI4XS9nLCIiKSksbC5wdXNoKGMpO3AuX2FGaWx0ZXJEYXRhPWwscC5fc0ZpbHRlclJvdz1sLmpvaW4oIiAgIiksYj0hMH1yZXR1cm4gYn1mdW5jdGlvbiB2bih0KXt2YXIgZSxyPXQuaUluaXREaXNwbGF5U3RhcnQ7aWYoIXQuYkluaXRpYWxpc2VkKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dm4odCl9LDIwMCk7cmV0dXJufUZhKHQsImhlYWRlciIpLEZhKHQsImZvb3RlciIpLHluKHQsdC5hb0hlYWRlcikseW4odCx0LmFvRm9vdGVyKSxLbyh0KSxkbCh0KSxlcyh0KSxGZSh0LCEwKSxadCh0LG51bGwsInByZUluaXQiLFt0XSwhMCksUHIodCk7dmFyIG49QmUodCk7biE9InNzcCImJihuPT0iYWpheCI/a2kodCx7fSxmdW5jdGlvbihzKXt2YXIgYT1Ebih0LHMpO2ZvcihlPTA7ZTxhLmxlbmd0aDtlKyspYnIodCxhW2VdKTt0LmlJbml0RGlzcGxheVN0YXJ0PXIsUHIodCksRmUodCwhMSksd24odCl9LHQpOih3bih0KSxGZSh0LCExKSkpfWZ1bmN0aW9uIHduKHQpe2lmKCF0Ll9iSW5pdENvbXBsZXRlKXt2YXIgZT1bdCx0Lmpzb25dO3QuX2JJbml0Q29tcGxldGU9ITAsVG4odCksWnQodCxudWxsLCJwbHVnaW4taW5pdCIsZSwhMCksWnQodCwiYW9Jbml0Q29tcGxldGUiLCJpbml0IixlLCEwKX19ZnVuY3Rpb24gUWEodCxlKXt2YXIgcj1wYXJzZUludChlLDEwKTt0Ll9pRGlzcGxheUxlbmd0aD1yLGFzKHQpLFp0KHQsbnVsbCwibGVuZ3RoIixbdCxyXSl9ZnVuY3Rpb24gU2kodCxlLHIpe3ZhciBuPXQuX2lEaXNwbGF5U3RhcnQscz10Ll9pRGlzcGxheUxlbmd0aCxhPXQuZm5SZWNvcmRzRGlzcGxheSgpO2lmKGE9PT0wfHxzPT09LTEpbj0wO2Vsc2UgaWYodHlwZW9mIGU9PSJudW1iZXIiKW49ZSpzLG4+YSYmKG49MCk7ZWxzZSBpZihlPT0iZmlyc3QiKW49MDtlbHNlIGlmKGU9PSJwcmV2aW91cyIpbj1zPj0wP24tczowLG48MCYmKG49MCk7ZWxzZSBpZihlPT0ibmV4dCIpbitzPGEmJihuKz1zKTtlbHNlIGlmKGU9PSJsYXN0IiluPU1hdGguZmxvb3IoKGEtMSkvcykqcztlbHNle2lmKGU9PT0iZWxsaXBzaXMiKXJldHVybjtQZSh0LDAsIlVua25vd24gcGFnaW5nIGFjdGlvbjogIitlLDUpfXZhciBsPXQuX2lEaXNwbGF5U3RhcnQhPT1uO3JldHVybiB0Ll9pRGlzcGxheVN0YXJ0PW4sWnQodCxudWxsLGw/InBhZ2UiOiJwYWdlLW5jIixbdF0pLGwmJnImJkZyKHQpLGx9ZnVuY3Rpb24gc2wodCl7dmFyIGU9dC5uVGFibGU7aWYodC5vRmVhdHVyZXMuYlByb2Nlc3Npbmcpe3ZhciByPVcoIjxkaXYvPiIse2lkOnQuc1RhYmxlSWQrIl9wcm9jZXNzaW5nIixjbGFzczp0Lm9DbGFzc2VzLnByb2Nlc3NpbmcuY29udGFpbmVyLHJvbGU6InN0YXR1cyJ9KS5odG1sKHQub0xhbmd1YWdlLnNQcm9jZXNzaW5nKS5hcHBlbmQoIjxkaXY+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48L2Rpdj4iKS5pbnNlcnRCZWZvcmUoZSk7VyhlKS5vbigicHJvY2Vzc2luZy5kdC5EVCIsZnVuY3Rpb24obixzLGEpe3IuY3NzKCJkaXNwbGF5IixhPyJibG9jayI6Im5vbmUiKX0pfX1mdW5jdGlvbiBGZSh0LGUpe1p0KHQsbnVsbCwicHJvY2Vzc2luZyIsW3QsZV0pfWZ1bmN0aW9uIEphKHQpe3ZhciBlPVcodC5uVGFibGUpLHI9dC5vU2Nyb2xsO2lmKHIuc1g9PT0iIiYmci5zWT09PSIiKXJldHVybiB0Lm5UYWJsZTt2YXIgbj1yLnNYLHM9ci5zWSxhPXQub0NsYXNzZXMuc2Nyb2xsaW5nLGw9dC5jYXB0aW9uTm9kZSxjPWw/bC5fY2FwdGlvblNpZGU6bnVsbCxwPVcoZVswXS5jbG9uZU5vZGUoITEpKSxiPVcoZVswXS5jbG9uZU5vZGUoITEpKSxtPWUuY2hpbGRyZW4oInRmb290IikseT0iPGRpdi8+IixUPWZ1bmN0aW9uKG8pe3JldHVybiBvP3JyKG8pOm51bGx9O20ubGVuZ3RofHwobT1udWxsKTt2YXIgdz1XKHkse2NsYXNzOmEuY29udGFpbmVyfSkuYXBwZW5kKFcoeSx7Y2xhc3M6YS5oZWFkZXIuc2VsZn0pLmNzcyh7b3ZlcmZsb3c6ImhpZGRlbiIscG9zaXRpb246InJlbGF0aXZlIixib3JkZXI6MCx3aWR0aDpuP1Qobik6IjEwMCUifSkuYXBwZW5kKFcoeSx7Y2xhc3M6YS5oZWFkZXIuaW5uZXJ9KS5jc3MoeyJib3gtc2l6aW5nIjoiY29udGVudC1ib3giLHdpZHRoOnIuc1hJbm5lcnx8IjEwMCUifSkuYXBwZW5kKHAucmVtb3ZlQXR0cigiaWQiKS5jc3MoIm1hcmdpbi1sZWZ0IiwwKS5hcHBlbmQoYz09PSJ0b3AiP2w6bnVsbCkuYXBwZW5kKGUuY2hpbGRyZW4oInRoZWFkIikpKSkpLmFwcGVuZChXKHkse2NsYXNzOmEuYm9keX0pLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIixvdmVyZmxvdzoiYXV0byIsd2lkdGg6VChuKX0pLmFwcGVuZChlKSk7bSYmdy5hcHBlbmQoVyh5LHtjbGFzczphLmZvb3Rlci5zZWxmfSkuY3NzKHtvdmVyZmxvdzoiaGlkZGVuIixib3JkZXI6MCx3aWR0aDpuP1Qobik6IjEwMCUifSkuYXBwZW5kKFcoeSx7Y2xhc3M6YS5mb290ZXIuaW5uZXJ9KS5hcHBlbmQoYi5yZW1vdmVBdHRyKCJpZCIpLmNzcygibWFyZ2luLWxlZnQiLDApLmFwcGVuZChjPT09ImJvdHRvbSI/bDpudWxsKS5hcHBlbmQoZS5jaGlsZHJlbigidGZvb3QiKSkpKSk7dmFyIGs9dy5jaGlsZHJlbigpLFA9a1swXSxGPWtbMV0saD1tP2tbMl06bnVsbDtyZXR1cm4gVyhGKS5vbigic2Nyb2xsLkRUIixmdW5jdGlvbigpe3ZhciBvPXRoaXMuc2Nyb2xsTGVmdDtQLnNjcm9sbExlZnQ9byxtJiYoaC5zY3JvbGxMZWZ0PW8pfSksVygidGgsIHRkIixQKS5vbigiZm9jdXMiLGZ1bmN0aW9uKCl7dmFyIG89UC5zY3JvbGxMZWZ0O0Yuc2Nyb2xsTGVmdD1vLG0mJihGLnNjcm9sbExlZnQ9byl9KSxXKEYpLmNzcygibWF4LWhlaWdodCIscyksci5iQ29sbGFwc2V8fFcoRikuY3NzKCJoZWlnaHQiLHMpLHQublNjcm9sbEhlYWQ9UCx0Lm5TY3JvbGxCb2R5PUYsdC5uU2Nyb2xsRm9vdD1oLHQuYW9EcmF3Q2FsbGJhY2sucHVzaCh0cyksd1swXX1mdW5jdGlvbiB0cyh0KXt2YXIgZT10Lm9TY3JvbGwscj1lLmlCYXJXaWR0aCxuPVcodC5uU2Nyb2xsSGVhZCkscz1uLmNoaWxkcmVuKCJkaXYiKSxhPXMuY2hpbGRyZW4oInRhYmxlIiksbD10Lm5TY3JvbGxCb2R5LGM9VyhsKSxwPVcodC5uU2Nyb2xsRm9vdCksYj1wLmNoaWxkcmVuKCJkaXYiKSxtPWIuY2hpbGRyZW4oInRhYmxlIikseT1XKHQublRIZWFkKSxUPVcodC5uVGFibGUpLHc9dC5uVEZvb3QmJlcoInRoLCB0ZCIsdC5uVEZvb3QpLmxlbmd0aD9XKHQublRGb290KTpudWxsLGs9dC5vQnJvd3NlcixQLEYsaD1sLnNjcm9sbEhlaWdodD5sLmNsaWVudEhlaWdodDtpZih0LnNjcm9sbEJhclZpcyE9PWgmJnQuc2Nyb2xsQmFyVmlzIT09dm9pZCAwKXt0LnNjcm9sbEJhclZpcz1oLFRuKHQpO3JldHVybn1lbHNlIHQuc2Nyb2xsQmFyVmlzPWg7aWYoVC5jaGlsZHJlbigidGhlYWQsIHRmb290IikucmVtb3ZlKCksUD15LmNsb25lKCkucHJlcGVuZFRvKFQpLFAuZmluZCgidGgsIHRkIikucmVtb3ZlQXR0cigidGFiaW5kZXgiKSxQLmZpbmQoIltpZF0iKS5yZW1vdmVBdHRyKCJpZCIpLHcmJihGPXcuY2xvbmUoKS5wcmVwZW5kVG8oVCksRi5maW5kKCJbaWRdIikucmVtb3ZlQXR0cigiaWQiKSksdC5haURpc3BsYXkubGVuZ3RoKWZvcih2YXIgbz1ULmZpbmQoInRib2R5IHRyIikuZXEoMCkuZmluZCgidGgsIHRkIikubWFwKGZ1bmN0aW9uKGV0KXtyZXR1cm57aWR4OmdpKHQsZXQpLHdpZHRoOlcodGhpcykub3V0ZXJXaWR0aCgpfX0pLGY9MDtmPG8ubGVuZ3RoO2YrKyl7dmFyIEM9dC5hb0NvbHVtbnNbb1tmXS5pZHhdLmNvbEVsWzBdLEI9Qy5zdHlsZS53aWR0aC5yZXBsYWNlKCJweCIsIiIpO0IhPT1vW2ZdLndpZHRoJiYoQy5zdHlsZS53aWR0aD1vW2ZdLndpZHRoKyJweCIpfWEuZmluZCgiY29sZ3JvdXAiKS5yZW1vdmUoKSxhLmFwcGVuZCh0LmNvbGdyb3VwLmNsb25lKCkpLHcmJihtLmZpbmQoImNvbGdyb3VwIikucmVtb3ZlKCksbS5hcHBlbmQodC5jb2xncm91cC5jbG9uZSgpKSksVygidGgsIHRkIixQKS5lYWNoKGZ1bmN0aW9uKCl7Vyh0aGlzLmNoaWxkTm9kZXMpLndyYXBBbGwoJzxkaXYgY2xhc3M9ImR0LXNjcm9sbC1zaXppbmciPicpfSksdyYmVygidGgsIHRkIixGKS5lYWNoKGZ1bmN0aW9uKCl7Vyh0aGlzLmNoaWxkTm9kZXMpLndyYXBBbGwoJzxkaXYgY2xhc3M9ImR0LXNjcm9sbC1zaXppbmciPicpfSk7dmFyIHU9TWF0aC5mbG9vcihULmhlaWdodCgpKT5sLmNsaWVudEhlaWdodHx8Yy5jc3MoIm92ZXJmbG93LXkiKT09InNjcm9sbCIsej0icGFkZGluZyIrKGsuYlNjcm9sbGJhckxlZnQ/IkxlZnQiOiJSaWdodCIpLHE9VC5vdXRlcldpZHRoKCk7YS5jc3MoIndpZHRoIixycihxKSkscy5jc3MoIndpZHRoIixycihxKSkuY3NzKHosdT9yKyJweCI6IjBweCIpLHcmJihtLmNzcygid2lkdGgiLHJyKHEpKSxiLmNzcygid2lkdGgiLHJyKHEpKS5jc3Moeix1P3IrInB4IjoiMHB4IikpLFQuY2hpbGRyZW4oImNvbGdyb3VwIikucHJlcGVuZFRvKFQpLGMudHJpZ2dlcigic2Nyb2xsIiksKHQuYlNvcnRlZHx8dC5iRmlsdGVyZWQpJiYhdC5fZHJhd0hvbGQmJihsLnNjcm9sbFRvcD0wKX1mdW5jdGlvbiBvbCh0KXtpZih0Lm9GZWF0dXJlcy5iQXV0b1dpZHRoKXt2YXIgZT10Lm5UYWJsZSxyPXQuYW9Db2x1bW5zLG49dC5vU2Nyb2xsLHM9bi5zWSxhPW4uc1gsbD1uLnNYSW5uZXIsYz15aSh0LCJiVmlzaWJsZSIpLHA9ZS5nZXRBdHRyaWJ1dGUoIndpZHRoIiksYj1lLnBhcmVudE5vZGUsbSx5LFQsdz1lLnN0eWxlLndpZHRoO3cmJncuaW5kZXhPZigiJSIpIT09LTEmJihwPXcpLFp0KHQsbnVsbCwiY29sdW1uLWNhbGMiLHt2aXNpYmxlOmN9LCExKTt2YXIgaz1XKGUuY2xvbmVOb2RlKCkpLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpLnJlbW92ZUF0dHIoImlkIik7ay5hcHBlbmQoIjx0Ym9keT4iKTt2YXIgUD1XKCI8dHIvPiIpLmFwcGVuZFRvKGsuZmluZCgidGJvZHkiKSk7Zm9yKGsuYXBwZW5kKFcodC5uVEhlYWQpLmNsb25lKCkpLmFwcGVuZChXKHQublRGb290KS5jbG9uZSgpKSxrLmZpbmQoInRmb290IHRoLCB0Zm9vdCB0ZCIpLmNzcygid2lkdGgiLCIiKSxrLmZpbmQoInRoZWFkIHRoLCB0aGVhZCB0ZCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZXQ9R2EodCx0aGlzLCEwLCExKTtldD8odGhpcy5zdHlsZS53aWR0aD1ldCxhJiZXKHRoaXMpLmFwcGVuZChXKCI8ZGl2Lz4iKS5jc3Moe3dpZHRoOmV0LG1hcmdpbjowLHBhZGRpbmc6MCxib3JkZXI6MCxoZWlnaHQ6MX0pKSk6dGhpcy5zdHlsZS53aWR0aD0iIn0pLG09MDttPGMubGVuZ3RoO20rKyl7VD1jW21dLHk9cltUXTt2YXIgRj1sbCh0LFQpLGg9b2UudHlwZS5jbGFzc05hbWVbeS5zVHlwZV0sbz1GK3kuc0NvbnRlbnRQYWRkaW5nLGY9Ri5pbmRleE9mKCI8Iik9PT0tMT9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShvKTpvO1coIjx0ZC8+IikuYWRkQ2xhc3MoaCkuYWRkQ2xhc3MoeS5zQ2xhc3MpLmFwcGVuZChmKS5hcHBlbmRUbyhQKX1XKCJbbmFtZV0iLGspLnJlbW92ZUF0dHIoIm5hbWUiKTt2YXIgQz1XKCI8ZGl2Lz4iKS5jc3MoYXx8cz97cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0OjAsaGVpZ2h0OjEscmlnaHQ6MCxvdmVyZmxvdzoiaGlkZGVuIn06e30pLmFwcGVuZChrKS5hcHBlbmRUbyhiKTthJiZsP2sud2lkdGgobCk6YT8oay5jc3MoIndpZHRoIiwiYXV0byIpLGsucmVtb3ZlQXR0cigid2lkdGgiKSxrLndpZHRoKCk8Yi5jbGllbnRXaWR0aCYmcCYmay53aWR0aChiLmNsaWVudFdpZHRoKSk6cz9rLndpZHRoKGIuY2xpZW50V2lkdGgpOnAmJmsud2lkdGgocCk7dmFyIEI9MCx1PWsuZmluZCgidGJvZHkgdHIiKS5lcSgwKS5jaGlsZHJlbigpO2ZvcihtPTA7bTxjLmxlbmd0aDttKyspe3ZhciB6PXVbbV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7Qis9eixyW2NbbV1dLnNXaWR0aD1ycih6KX1pZihlLnN0eWxlLndpZHRoPXJyKEIpLEMucmVtb3ZlKCkscCYmKGUuc3R5bGUud2lkdGg9cnIocCkpLChwfHxhKSYmIXQuX3Jlc3pFdnQpe3ZhciBxPWZ1bmN0aW9uKCl7Vyh3aW5kb3cpLm9uKCJyZXNpemUuRFQtIit0LnNJbnN0YW5jZSx2dC51dGlsLnRocm90dGxlKGZ1bmN0aW9uKCl7dC5iRGVzdHJveWluZ3x8VG4odCl9KSl9O3EoKSx0Ll9yZXN6RXZ0PSEwfX19ZnVuY3Rpb24gbGwodCxlKXt2YXIgcj10LmFvQ29sdW1uc1tlXTtpZighci5tYXhMZW5TdHJpbmcpe2Zvcih2YXIgbixzPSIiLGE9LTEsbD0wLGM9dC5haURpc3BsYXlNYXN0ZXIubGVuZ3RoO2w8YztsKyspe3ZhciBwPXQuYWlEaXNwbGF5TWFzdGVyW2xdLGI9VGkodCxwKVtlXSxtPWImJnR5cGVvZiBiPT0ib2JqZWN0IiYmYi5ub2RlVHlwZT9iLmlubmVySFRNTDpiKyIiO209bS5yZXBsYWNlKC9pZD0iLio/Ii9nLCIiKS5yZXBsYWNlKC9uYW1lPSIuKj8iL2csIiIpLG49aHIobSkucmVwbGFjZSgvJm5ic3A7L2csIiAiKSxuLmxlbmd0aD5hJiYocz1tLGE9bi5sZW5ndGgpfXIubWF4TGVuU3RyaW5nPXN9cmV0dXJuIHIubWF4TGVuU3RyaW5nfWZ1bmN0aW9uIHJyKHQpe3JldHVybiB0PT09bnVsbD8iMHB4Ijp0eXBlb2YgdD09Im51bWJlciI/dDwwPyIwcHgiOnQrInB4Ijp0Lm1hdGNoKC9cZCQvKT90KyJweCI6dH1mdW5jdGlvbiBlcyh0KXt2YXIgZT10LmFvQ29sdW1ucztmb3IodC5jb2xncm91cC5lbXB0eSgpLEllPTA7SWU8ZS5sZW5ndGg7SWUrKyllW0llXS5iVmlzaWJsZSYmdC5jb2xncm91cC5hcHBlbmQoZVtJZV0uY29sRWwpfWZ1bmN0aW9uIGRsKHQpe3ZhciBlPXQublRIZWFkLHI9ZS5xdWVyeVNlbGVjdG9yQWxsKCJ0ciIpLG49dC5iU29ydENlbGxzVG9wLHM9Jzpub3QoW2RhdGEtZHQtb3JkZXI9ImRpc2FibGUiXSk6bm90KFtkYXRhLWR0LW9yZGVyPSJpY29uLW9ubHkiXSknO249PT0hMD9lPXJbMF06bj09PSExJiYoZT1yW3IubGVuZ3RoLTFdKSxycyh0LGUsZT09PXQublRIZWFkPyJ0ciIrcysiIHRoIitzKyIsIHRyIitzKyIgdGQiK3M6InRoIitzKyIsIHRkIitzKTt2YXIgYT1bXTtxcih0LGEsdC5hYVNvcnRpbmcpLHQuYWFTb3J0aW5nPWF9ZnVuY3Rpb24gcnModCxlLHIsbixzKXtpcyhlLHIsZnVuY3Rpb24oYSl7dmFyIGw9ITEsYz1uPT09dm9pZCAwP3hpKGEudGFyZ2V0KTpbbl07aWYoYy5sZW5ndGgpe2Zvcih2YXIgcD0wLGI9Yy5sZW5ndGg7cDxiO3ArKyl7dmFyIG09dWwodCxjW3BdLHAsYS5zaGlmdEtleSk7aWYobSE9PSExJiYobD0hMCksdC5hYVNvcnRpbmcubGVuZ3RoPT09MSYmdC5hYVNvcnRpbmdbMF1bMV09PT0iIilicmVha31sJiYoRmUodCwhMCksc2V0VGltZW91dChmdW5jdGlvbigpe0RpKHQpLG5zKHQsdC5haURpc3BsYXkpLEZlKHQsITEpLFByKHQsITEsITEpLHMmJnMoKX0sMCkpfX0pfWZ1bmN0aW9uIG5zKHQsZSl7dmFyIHI9dC5haURpc3BsYXlNYXN0ZXIsbj17fSxzPXt9LGE7Zm9yKGE9MDthPHIubGVuZ3RoO2ErKyluW3JbYV1dPWE7Zm9yKGE9MDthPGUubGVuZ3RoO2ErKylzW2VbYV1dPW5bZVthXV07ZS5zb3J0KGZ1bmN0aW9uKGwsYyl7cmV0dXJuIHNbbF0tc1tjXX0pfWZ1bmN0aW9uIHFyKHQsZSxyKXt2YXIgbj1mdW5jdGlvbihhKXtpZihXLmlzUGxhaW5PYmplY3QoYSkpe2lmKGEuaWR4IT09dm9pZCAwKWUucHVzaChbYS5pZHgsYS5kaXJdKTtlbHNlIGlmKGEubmFtZSl7dmFyIGw9eGUodC5hb0NvbHVtbnMsInNOYW1lIiksYz1sLmluZGV4T2YoYS5uYW1lKTtjIT09LTEmJmUucHVzaChbYyxhLmRpcl0pfX1lbHNlIGUucHVzaChhKX07aWYoVy5pc1BsYWluT2JqZWN0KHIpKW4ocik7ZWxzZSBpZihyLmxlbmd0aCYmdHlwZW9mIHJbMF09PSJudW1iZXIiKW4ocik7ZWxzZSBpZihyLmxlbmd0aClmb3IodmFyIHM9MDtzPHIubGVuZ3RoO3MrKyluKHJbc10pfWZ1bmN0aW9uIEFuKHQpe3ZhciBlLHIsbixzPVtdLGE9dnQuZXh0LnR5cGUub3JkZXIsbD10LmFvQ29sdW1ucyxjLHAsYixtLHk9dC5hYVNvcnRpbmdGaXhlZCxUPVcuaXNQbGFpbk9iamVjdCh5KSx3PVtdO2lmKCF0Lm9GZWF0dXJlcy5iU29ydClyZXR1cm4gcztmb3IoQXJyYXkuaXNBcnJheSh5KSYmcXIodCx3LHkpLFQmJnkucHJlJiZxcih0LHcseS5wcmUpLHFyKHQsdyx0LmFhU29ydGluZyksVCYmeS5wb3N0JiZxcih0LHcseS5wb3N0KSxlPTA7ZTx3Lmxlbmd0aDtlKyspaWYobT13W2VdWzBdLGxbbV0pZm9yKGM9bFttXS5hRGF0YVNvcnQscj0wLG49Yy5sZW5ndGg7cjxuO3IrKylwPWNbcl0sYj1sW3BdLnNUeXBlfHwic3RyaW5nIix3W2VdLl9pZHg9PT12b2lkIDAmJih3W2VdLl9pZHg9bFtwXS5hc1NvcnRpbmcuaW5kZXhPZih3W2VdWzFdKSksd1tlXVsxXSYmcy5wdXNoKHtzcmM6bSxjb2w6cCxkaXI6d1tlXVsxXSxpbmRleDp3W2VdLl9pZHgsdHlwZTpiLGZvcm1hdHRlcjphW2IrIi1wcmUiXSxzb3J0ZXI6YVtiKyItIit3W2VdWzFdXX0pO3JldHVybiBzfWZ1bmN0aW9uIERpKHQsZSxyKXt2YXIgbixzLGEsbD1bXSxjPXZ0LmV4dC50eXBlLm9yZGVyLHA9dC5hb0RhdGEsYixtPXQuYWlEaXNwbGF5TWFzdGVyLHk7aWYod2kodCksZSE9PXZvaWQgMCl7dmFyIFQ9dC5hb0NvbHVtbnNbZV07eT1be3NyYzplLGNvbDplLGRpcjpyLGluZGV4OjAsdHlwZTpULnNUeXBlLGZvcm1hdHRlcjpjW1Quc1R5cGUrIi1wcmUiXSxzb3J0ZXI6Y1tULnNUeXBlKyItIityXX1dLG09bS5zbGljZSgpfWVsc2UgeT1Bbih0KTtmb3Iobj0wLHM9eS5sZW5ndGg7bjxzO24rKyliPXlbbl0sY2wodCxiLmNvbCk7aWYoQmUodCkhPSJzc3AiJiZ5Lmxlbmd0aCE9PTApe2ZvcihuPTAsYT1tLmxlbmd0aDtuPGE7bisrKWxbbl09bjt5Lmxlbmd0aCYmeVswXS5kaXI9PT0iZGVzYyImJmwucmV2ZXJzZSgpLG0uc29ydChmdW5jdGlvbih3LGspe3ZhciBQLEYsaCxvLGYsQz15Lmxlbmd0aCxCPXBbd10uX2FTb3J0RGF0YSx1PXBba10uX2FTb3J0RGF0YTtmb3IoaD0wO2g8QztoKyspaWYoZj15W2hdLFA9QltmLmNvbF0sRj11W2YuY29sXSxmLnNvcnRlcil7aWYobz1mLnNvcnRlcihQLEYpLG8hPT0wKXJldHVybiBvfWVsc2UgaWYobz1QPEY/LTE6UD5GPzE6MCxvIT09MClyZXR1cm4gZi5kaXI9PT0iYXNjIj9vOi1vO3JldHVybiBQPWxbd10sRj1sW2tdLFA8Rj8tMTpQPkY/MTowfSl9ZWxzZSB5Lmxlbmd0aD09PTAmJm0uc29ydChmdW5jdGlvbih3LGspe3JldHVybiB3PGs/LTE6dz5rPzE6MH0pO3JldHVybiBlPT09dm9pZCAwJiYodC5iU29ydGVkPSEwLFp0KHQsbnVsbCwib3JkZXIiLFt0LHldKSksbX1mdW5jdGlvbiB1bCh0LGUscixuKXt2YXIgcz10LmFvQ29sdW1uc1tlXSxhPXQuYWFTb3J0aW5nLGw9cy5hc1NvcnRpbmcsYyxwPWZ1bmN0aW9uKG0seSl7dmFyIFQ9bS5faWR4O3JldHVybiBUPT09dm9pZCAwJiYoVD1sLmluZGV4T2YobVsxXSkpLFQrMTxsLmxlbmd0aD9UKzE6eT9udWxsOjB9O2lmKCFzLmJTb3J0YWJsZSlyZXR1cm4hMTtpZih0eXBlb2YgYVswXT09Im51bWJlciImJihhPXQuYWFTb3J0aW5nPVthXSksKG58fHIpJiZ0Lm9GZWF0dXJlcy5iU29ydE11bHRpKXt2YXIgYj14ZShhLCIwIikuaW5kZXhPZihlKTtiIT09LTE/KGM9cChhW2JdLCEwKSxjPT09bnVsbCYmYS5sZW5ndGg9PT0xJiYoYz0wKSxjPT09bnVsbD9hLnNwbGljZShiLDEpOihhW2JdWzFdPWxbY10sYVtiXS5faWR4PWMpKTpuPyhhLnB1c2goW2UsbFswXSwwXSksYVthLmxlbmd0aC0xXS5faWR4PTApOihhLnB1c2goW2UsYVswXVsxXSwwXSksYVthLmxlbmd0aC0xXS5faWR4PTApfWVsc2UgYS5sZW5ndGgmJmFbMF1bMF09PWU/KGM9cChhWzBdKSxhLmxlbmd0aD0xLGFbMF1bMV09bFtjXSxhWzBdLl9pZHg9Yyk6KGEubGVuZ3RoPTAsYS5wdXNoKFtlLGxbMF1dKSxhWzBdLl9pZHg9MCl9ZnVuY3Rpb24gZmkodCl7dmFyIGU9dC5hTGFzdFNvcnQscj10Lm9DbGFzc2VzLm9yZGVyLnBvc2l0aW9uLG49QW4odCkscz10Lm9GZWF0dXJlcyxhLGwsYztpZihzLmJTb3J0JiZzLmJTb3J0Q2xhc3Nlcyl7Zm9yKGE9MCxsPWUubGVuZ3RoO2E8bDthKyspYz1lW2FdLnNyYyxXKHhlKHQuYW9EYXRhLCJhbkNlbGxzIixjKSkucmVtb3ZlQ2xhc3MocisoYTwyP2ErMTozKSk7Zm9yKGE9MCxsPW4ubGVuZ3RoO2E8bDthKyspYz1uW2FdLnNyYyxXKHhlKHQuYW9EYXRhLCJhbkNlbGxzIixjKSkuYWRkQ2xhc3MocisoYTwyP2ErMTozKSl9dC5hTGFzdFNvcnQ9bn1mdW5jdGlvbiBjbCh0LGUpe3ZhciByPXQuYW9Db2x1bW5zW2VdLG49dnQuZXh0Lm9yZGVyW3Iuc1NvcnREYXRhVHlwZV0scztuJiYocz1uLmNhbGwodC5vSW5zdGFuY2UsdCxlLCRyKHQsZSkpKTtmb3IodmFyIGEsbCxjPXZ0LmV4dC50eXBlLm9yZGVyW3Iuc1R5cGUrIi1wcmUiXSxwPXQuYW9EYXRhLGI9MDtiPHAubGVuZ3RoO2IrKylwW2JdJiYoYT1wW2JdLGEuX2FTb3J0RGF0YXx8KGEuX2FTb3J0RGF0YT1bXSksKCFhLl9hU29ydERhdGFbZV18fG4pJiYobD1uP3NbYl06TmUodCxiLGUsInNvcnQiKSxhLl9hU29ydERhdGFbZV09Yz9jKGwsdCk6bCkpfWZ1bmN0aW9uIEluKHQpe2lmKCF0Ll9iTG9hZGluZ1N0YXRlKXt2YXIgZT17dGltZTorbmV3IERhdGUsc3RhcnQ6dC5faURpc3BsYXlTdGFydCxsZW5ndGg6dC5faURpc3BsYXlMZW5ndGgsb3JkZXI6Vy5leHRlbmQoITAsW10sdC5hYVNvcnRpbmcpLHNlYXJjaDpXLmV4dGVuZCh7fSx0Lm9QcmV2aW91c1NlYXJjaCksY29sdW1uczp0LmFvQ29sdW1ucy5tYXAoZnVuY3Rpb24ocixuKXtyZXR1cm57dmlzaWJsZTpyLmJWaXNpYmxlLHNlYXJjaDpXLmV4dGVuZCh7fSx0LmFvUHJlU2VhcmNoQ29sc1tuXSl9fSl9O3Qub1NhdmVkU3RhdGU9ZSxadCh0LCJhb1N0YXRlU2F2ZVBhcmFtcyIsInN0YXRlU2F2ZVBhcmFtcyIsW3QsZV0pLHQub0ZlYXR1cmVzLmJTdGF0ZVNhdmUmJiF0LmJEZXN0cm95aW5nJiZ0LmZuU3RhdGVTYXZlQ2FsbGJhY2suY2FsbCh0Lm9JbnN0YW5jZSx0LGUpfX1mdW5jdGlvbiBmbCh0LGUscil7aWYoIXQub0ZlYXR1cmVzLmJTdGF0ZVNhdmUpe3IoKTtyZXR1cm59dmFyIG49ZnVuY3Rpb24oYSl7aGkodCxhLHIpfSxzPXQuZm5TdGF0ZUxvYWRDYWxsYmFjay5jYWxsKHQub0luc3RhbmNlLHQsbik7cmV0dXJuIHMhPT12b2lkIDAmJmhpKHQscyxyKSwhMH1mdW5jdGlvbiBoaSh0LGUscil7dmFyIG4scyxhPXQuYW9Db2x1bW5zO3QuX2JMb2FkaW5nU3RhdGU9ITA7dmFyIGw9dC5fYkluaXRDb21wbGV0ZT9uZXcgdnQuQXBpKHQpOm51bGw7aWYoIWV8fCFlLnRpbWUpe3QuX2JMb2FkaW5nU3RhdGU9ITEscigpO3JldHVybn12YXIgYz10LmlTdGF0ZUR1cmF0aW9uO2lmKGM+MCYmZS50aW1lPCtuZXcgRGF0ZS1jKjFlMyl7dC5fYkxvYWRpbmdTdGF0ZT0hMSxyKCk7cmV0dXJufXZhciBwPVp0KHQsImFvU3RhdGVMb2FkUGFyYW1zIiwic3RhdGVMb2FkUGFyYW1zIixbdCxlXSk7aWYocC5pbmRleE9mKCExKSE9PS0xKXt0Ll9iTG9hZGluZ1N0YXRlPSExLHIoKTtyZXR1cm59aWYoZS5jb2x1bW5zJiZhLmxlbmd0aCE9PWUuY29sdW1ucy5sZW5ndGgpe3QuX2JMb2FkaW5nU3RhdGU9ITEscigpO3JldHVybn1pZih0Lm9Mb2FkZWRTdGF0ZT1XLmV4dGVuZCghMCx7fSxlKSxadCh0LG51bGwsInN0YXRlTG9hZEluaXQiLFt0LGVdLCEwKSxlLmxlbmd0aCE9PXZvaWQgMCYmKGw/bC5wYWdlLmxlbihlLmxlbmd0aCk6dC5faURpc3BsYXlMZW5ndGg9ZS5sZW5ndGgpLGUuc3RhcnQhPT12b2lkIDAmJihsPT09bnVsbD8odC5faURpc3BsYXlTdGFydD1lLnN0YXJ0LHQuaUluaXREaXNwbGF5U3RhcnQ9ZS5zdGFydCk6U2kodCxlLnN0YXJ0L3QuX2lEaXNwbGF5TGVuZ3RoKSksZS5vcmRlciE9PXZvaWQgMCYmKHQuYWFTb3J0aW5nPVtdLFcuZWFjaChlLm9yZGVyLGZ1bmN0aW9uKG0seSl7dC5hYVNvcnRpbmcucHVzaCh5WzBdPj1hLmxlbmd0aD9bMCx5WzFdXTp5KX0pKSxlLnNlYXJjaCE9PXZvaWQgMCYmVy5leHRlbmQodC5vUHJldmlvdXNTZWFyY2gsZS5zZWFyY2gpLGUuY29sdW1ucyl7Zm9yKG49MCxzPWUuY29sdW1ucy5sZW5ndGg7bjxzO24rKyl7dmFyIGI9ZS5jb2x1bW5zW25dO2IudmlzaWJsZSE9PXZvaWQgMCYmKGw/bC5jb2x1bW4obikudmlzaWJsZShiLnZpc2libGUsITEpOmFbbl0uYlZpc2libGU9Yi52aXNpYmxlKSxiLnNlYXJjaCE9PXZvaWQgMCYmVy5leHRlbmQodC5hb1ByZVNlYXJjaENvbHNbbl0sYi5zZWFyY2gpfWwmJmwuY29sdW1ucy5hZGp1c3QoKX10Ll9iTG9hZGluZ1N0YXRlPSExLFp0KHQsImFvU3RhdGVMb2FkZWQiLCJzdGF0ZUxvYWRlZCIsW3QsZV0pLHIoKX1mdW5jdGlvbiBQZSh0LGUscixuKXtpZihyPSJEYXRhVGFibGVzIHdhcm5pbmc6ICIrKHQ/InRhYmxlIGlkPSIrdC5zVGFibGVJZCsiIC0gIjoiIikrcixuJiYocis9Ii4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBlcnJvciwgcGxlYXNlIHNlZSBodHRwczovL2RhdGF0YWJsZXMubmV0L3RuLyIrbiksZSl3aW5kb3cuY29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKHIpO2Vsc2V7dmFyIHM9dnQuZXh0LGE9cy5zRXJyTW9kZXx8cy5lcnJNb2RlO2lmKHQmJlp0KHQsbnVsbCwiZHQtZXJyb3IiLFt0LG4scl0sITApLGE9PSJhbGVydCIpYWxlcnQocik7ZWxzZXtpZihhPT0idGhyb3ciKXRocm93IG5ldyBFcnJvcihyKTt0eXBlb2YgYT09ImZ1bmN0aW9uIiYmYSh0LG4scil9fX1mdW5jdGlvbiBucih0LGUscixuKXtpZihBcnJheS5pc0FycmF5KHIpKXtXLmVhY2gocixmdW5jdGlvbihzLGEpe0FycmF5LmlzQXJyYXkoYSk/bnIodCxlLGFbMF0sYVsxXSk6bnIodCxlLGEpfSk7cmV0dXJufW49PT12b2lkIDAmJihuPXIpLGVbcl0hPT12b2lkIDAmJih0W25dPWVbcl0pfWZ1bmN0aW9uIE9hKHQsZSxyKXt2YXIgbjtmb3IodmFyIHMgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxzKSYmKG49ZVtzXSxXLmlzUGxhaW5PYmplY3Qobik/KFcuaXNQbGFpbk9iamVjdCh0W3NdKXx8KHRbc109e30pLFcuZXh0ZW5kKCEwLHRbc10sbikpOnImJnMhPT0iZGF0YSImJnMhPT0iYWFEYXRhIiYmQXJyYXkuaXNBcnJheShuKT90W3NdPW4uc2xpY2UoKTp0W3NdPW4pO3JldHVybiB0fWZ1bmN0aW9uIGlzKHQsZSxyKXtXKHQpLm9uKCJjbGljay5EVCIsZSxmdW5jdGlvbihuKXtyKG4pfSkub24oImtleXByZXNzLkRUIixlLGZ1bmN0aW9uKG4pe24ud2hpY2g9PT0xMyYmKG4ucHJldmVudERlZmF1bHQoKSxyKG4pKX0pLm9uKCJzZWxlY3RzdGFydC5EVCIsZSxmdW5jdGlvbigpe3JldHVybiExfSl9ZnVuY3Rpb24gQWUodCxlLHIpe3ImJnRbZV0ucHVzaChyKX1mdW5jdGlvbiBadCh0LGUscixuLHMpe3ZhciBhPVtdO2lmKGUmJihhPXRbZV0uc2xpY2UoKS5yZXZlcnNlKCkubWFwKGZ1bmN0aW9uKHApe3JldHVybiBwLmFwcGx5KHQub0luc3RhbmNlLG4pfSkpLHIhPT1udWxsKXt2YXIgbD1XLkV2ZW50KHIrIi5kdCIpLGM9Vyh0Lm5UYWJsZSk7bC5kdD10LmFwaSxjW3M/InRyaWdnZXIiOiJ0cmlnZ2VySGFuZGxlciJdKGwsbikscyYmYy5wYXJlbnRzKCJib2R5IikubGVuZ3RoPT09MCYmVygiYm9keSIpLnRyaWdnZXIobCxuKSxhLnB1c2gobC5yZXN1bHQpfXJldHVybiBhfWZ1bmN0aW9uIGFzKHQpe3ZhciBlPXQuX2lEaXNwbGF5U3RhcnQscj10LmZuRGlzcGxheUVuZCgpLG49dC5faURpc3BsYXlMZW5ndGg7ZT49ciYmKGU9ci1uKSxlLT1lJW4sKG49PT0tMXx8ZTwwKSYmKGU9MCksdC5faURpc3BsYXlTdGFydD1lfWZ1bmN0aW9uIHhuKHQsZSl7dmFyIHI9dC5yZW5kZXJlcixuPXZ0LmV4dC5yZW5kZXJlcltlXTtyZXR1cm4gVy5pc1BsYWluT2JqZWN0KHIpJiZyW2VdP25bcltlXV18fG4uXzp0eXBlb2Ygcj09InN0cmluZyImJm5bcl18fG4uX31mdW5jdGlvbiBCZSh0KXtyZXR1cm4gdC5vRmVhdHVyZXMuYlNlcnZlclNpZGU/InNzcCI6dC5hamF4PyJhamF4IjoiZG9tIn1mdW5jdGlvbiBBaSh0LGUscil7dmFyIG49dC5mbkZvcm1hdE51bWJlcixzPXQuX2lEaXNwbGF5U3RhcnQrMSxhPXQuX2lEaXNwbGF5TGVuZ3RoLGw9dC5mblJlY29yZHNEaXNwbGF5KCksYz10LmZuUmVjb3Jkc1RvdGFsKCkscD1hPT09LTE7cmV0dXJuIGUucmVwbGFjZSgvX1NUQVJUXy9nLG4uY2FsbCh0LHMpKS5yZXBsYWNlKC9fRU5EXy9nLG4uY2FsbCh0LHQuZm5EaXNwbGF5RW5kKCkpKS5yZXBsYWNlKC9fTUFYXy9nLG4uY2FsbCh0LGMpKS5yZXBsYWNlKC9fVE9UQUxfL2csbi5jYWxsKHQsbCkpLnJlcGxhY2UoL19QQUdFXy9nLG4uY2FsbCh0LHA/MTpNYXRoLmNlaWwocy9hKSkpLnJlcGxhY2UoL19QQUdFU18vZyxuLmNhbGwodCxwPzE6TWF0aC5jZWlsKGwvYSkpKS5yZXBsYWNlKC9fRU5UUklFU18vZyx0LmFwaS5pMThuKCJlbnRyaWVzIiwiIixyKSkucmVwbGFjZSgvX0VOVFJJRVMtTUFYXy9nLHQuYXBpLmkxOG4oImVudHJpZXMiLCIiLGMpKS5yZXBsYWNlKC9fRU5UUklFUy1UT1RBTF8vZyx0LmFwaS5pMThuKCJlbnRyaWVzIiwiIixsKSl9dmFyIElpPVtdLGZlPUFycmF5LnByb3RvdHlwZSxobD1mdW5jdGlvbih0KXt2YXIgZSxyLG49dnQuc2V0dGluZ3Mscz14ZShuLCJuVGFibGUiKTtpZih0KXtpZih0Lm5UYWJsZSYmdC5vRmVhdHVyZXMpcmV0dXJuW3RdO2lmKHQubm9kZU5hbWUmJnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJ0YWJsZSIpcmV0dXJuIGU9cy5pbmRleE9mKHQpLGUhPT0tMT9bbltlXV06bnVsbDtpZih0JiZ0eXBlb2YgdC5zZXR0aW5ncz09ImZ1bmN0aW9uIilyZXR1cm4gdC5zZXR0aW5ncygpLnRvQXJyYXkoKTt0eXBlb2YgdD09InN0cmluZyI/cj1XKHQpLmdldCgpOnQgaW5zdGFuY2VvZiBXJiYocj10LmdldCgpKX1lbHNlIHJldHVybltdO2lmKHIpcmV0dXJuIG4uZmlsdGVyKGZ1bmN0aW9uKGEsbCl7cmV0dXJuIHIuaW5jbHVkZXMoc1tsXSl9KX07V3Q9ZnVuY3Rpb24odCxlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBXdCkpcmV0dXJuIG5ldyBXdCh0LGUpO3ZhciByPVtdLG49ZnVuY3Rpb24obCl7dmFyIGM9aGwobCk7YyYmci5wdXNoLmFwcGx5KHIsYyl9O2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKHZhciBzPTAsYT10Lmxlbmd0aDtzPGE7cysrKW4odFtzXSk7ZWxzZSBuKHQpO3RoaXMuY29udGV4dD1yLmxlbmd0aD4xP3ByKHIpOnIsZSYmdGhpcy5wdXNoLmFwcGx5KHRoaXMsZSksdGhpcy5zZWxlY3Rvcj17cm93czpudWxsLGNvbHM6bnVsbCxvcHRzOm51bGx9LFd0LmV4dGVuZCh0aGlzLHRoaXMsSWkpfTt2dC5BcGk9V3Q7Vy5leHRlbmQoV3QucHJvdG90eXBlLHthbnk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb3VudCgpIT09MH0sY29udGV4dDpbXSxjb3VudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZsYXR0ZW4oKS5sZW5ndGh9LGVhY2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj10aGlzLmxlbmd0aDtlPHI7ZSsrKXQuY2FsbCh0aGlzLHRoaXNbZV0sZSx0aGlzKTtyZXR1cm4gdGhpc30sZXE6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jb250ZXh0O3JldHVybiBlLmxlbmd0aD50P25ldyBXdChlW3RdLHRoaXNbdF0pOm51bGx9LGZpbHRlcjpmdW5jdGlvbih0KXt2YXIgZT1mZS5maWx0ZXIuY2FsbCh0aGlzLHQsdGhpcyk7cmV0dXJuIG5ldyBXdCh0aGlzLmNvbnRleHQsZSl9LGZsYXR0ZW46ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gbmV3IFd0KHRoaXMuY29udGV4dCx0LmNvbmNhdC5hcHBseSh0LHRoaXMudG9BcnJheSgpKSl9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpc1t0XX0sam9pbjpmZS5qb2luLGluY2x1ZGVzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmluZGV4T2YodCkhPT0tMX0saW5kZXhPZjpmZS5pbmRleE9mLGl0ZXJhdG9yOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBzPVtdLGEsbCxjLHAsYixtPXRoaXMuY29udGV4dCx5LFQsdyxrPXRoaXMuc2VsZWN0b3I7Zm9yKHR5cGVvZiB0PT0ic3RyaW5nIiYmKG49cixyPWUsZT10LHQ9ITEpLGw9MCxjPW0ubGVuZ3RoO2w8YztsKyspe3ZhciBQPW5ldyBXdChtW2xdKTtpZihlPT09InRhYmxlIilhPXIuY2FsbChQLG1bbF0sbCksYSE9PXZvaWQgMCYmcy5wdXNoKGEpO2Vsc2UgaWYoZT09PSJjb2x1bW5zInx8ZT09PSJyb3dzIilhPXIuY2FsbChQLG1bbF0sdGhpc1tsXSxsKSxhIT09dm9pZCAwJiZzLnB1c2goYSk7ZWxzZSBpZihlPT09ImV2ZXJ5Inx8ZT09PSJjb2x1bW4ifHxlPT09ImNvbHVtbi1yb3dzInx8ZT09PSJyb3cifHxlPT09ImNlbGwiKWZvcihUPXRoaXNbbF0sZT09PSJjb2x1bW4tcm93cyImJih5PVBuKG1bbF0say5vcHRzKSkscD0wLGI9VC5sZW5ndGg7cDxiO3ArKyl3PVRbcF0sZT09PSJjZWxsIj9hPXIuY2FsbChQLG1bbF0sdy5yb3csdy5jb2x1bW4sbCxwKTphPXIuY2FsbChQLG1bbF0sdyxsLHAseSksYSE9PXZvaWQgMCYmcy5wdXNoKGEpfWlmKHMubGVuZ3RofHxuKXt2YXIgRj1uZXcgV3QobSx0P3MuY29uY2F0LmFwcGx5KFtdLHMpOnMpLGg9Ri5zZWxlY3RvcjtyZXR1cm4gaC5yb3dzPWsucm93cyxoLmNvbHM9ay5jb2xzLGgub3B0cz1rLm9wdHMsRn1yZXR1cm4gdGhpc30sbGFzdEluZGV4T2Y6ZmUubGFzdEluZGV4T2YsbGVuZ3RoOjAsbWFwOmZ1bmN0aW9uKHQpe3ZhciBlPWZlLm1hcC5jYWxsKHRoaXMsdCx0aGlzKTtyZXR1cm4gbmV3IFd0KHRoaXMuY29udGV4dCxlKX0scGx1Y2s6ZnVuY3Rpb24odCl7dmFyIGU9dnQudXRpbC5nZXQodCk7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKHIpe3JldHVybiBlKHIpfSl9LHBvcDpmZS5wb3AscHVzaDpmZS5wdXNoLHJlZHVjZTpmZS5yZWR1Y2UscmVkdWNlUmlnaHQ6ZmUucmVkdWNlUmlnaHQscmV2ZXJzZTpmZS5yZXZlcnNlLHNlbGVjdG9yOm51bGwsc2hpZnQ6ZmUuc2hpZnQsc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFd0KHRoaXMuY29udGV4dCx0aGlzKX0sc29ydDpmZS5zb3J0LHNwbGljZTpmZS5zcGxpY2UsdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiBmZS5zbGljZS5jYWxsKHRoaXMpfSx0byQ6ZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzKX0sdG9KUXVlcnk6ZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzKX0sdW5pcXVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBXdCh0aGlzLmNvbnRleHQscHIodGhpcy50b0FycmF5KCkpKX0sdW5zaGlmdDpmZS51bnNoaWZ0fSk7ZnVuY3Rpb24gcGwodCxlLHIpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodHx8dGhpcyxhcmd1bWVudHMpO3JldHVybiBXdC5leHRlbmQobixuLHIubWV0aG9kRXh0KSxufX1mdW5jdGlvbiBibCh0LGUpe2Zvcih2YXIgcj0wLG49dC5sZW5ndGg7cjxuO3IrKylpZih0W3JdLm5hbWU9PT1lKXJldHVybiB0W3JdO3JldHVybiBudWxsfXdpbmRvdy5fX2FwaVN0cnVjdD1JaTtXdC5leHRlbmQ9ZnVuY3Rpb24odCxlLHIpe2lmKCEoIXIubGVuZ3RofHwhZXx8IShlIGluc3RhbmNlb2YgV3QpJiYhZS5fX2R0X3dyYXBwZXIpKXt2YXIgbixzLGE7Zm9yKG49MCxzPXIubGVuZ3RoO248cztuKyspYT1yW25dLGEubmFtZSE9PSJfX3Byb3RvX18iJiYoZVthLm5hbWVdPWEudHlwZT09PSJmdW5jdGlvbiI/cGwodCxhLnZhbCxhKTphLnR5cGU9PT0ib2JqZWN0Ij97fTphLnZhbCxlW2EubmFtZV0uX19kdF93cmFwcGVyPSEwLFd0LmV4dGVuZCh0LGVbYS5uYW1lXSxhLnByb3BFeHQpKX19O1d0LnJlZ2lzdGVyPUl0PWZ1bmN0aW9uKHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0KSl7Zm9yKHZhciByPTAsbj10Lmxlbmd0aDtyPG47cisrKVd0LnJlZ2lzdGVyKHRbcl0sZSk7cmV0dXJufXZhciBzLGEsbD10LnNwbGl0KCIuIiksYz1JaSxwLGI7Zm9yKHM9MCxhPWwubGVuZ3RoO3M8YTtzKyspe2I9bFtzXS5pbmRleE9mKCIoKSIpIT09LTEscD1iP2xbc10ucmVwbGFjZSgiKCkiLCIiKTpsW3NdO3ZhciBtPWJsKGMscCk7bXx8KG09e25hbWU6cCx2YWw6e30sbWV0aG9kRXh0OltdLHByb3BFeHQ6W10sdHlwZToib2JqZWN0In0sYy5wdXNoKG0pKSxzPT09YS0xPyhtLnZhbD1lLG0udHlwZT10eXBlb2YgZT09ImZ1bmN0aW9uIj8iZnVuY3Rpb24iOlcuaXNQbGFpbk9iamVjdChlKT8ib2JqZWN0Ijoib3RoZXIiKTpjPWI/bS5tZXRob2RFeHQ6bS5wcm9wRXh0fX07V3QucmVnaXN0ZXJQbHVyYWw9UXQ9ZnVuY3Rpb24odCxlLHIpe1d0LnJlZ2lzdGVyKHQsciksV3QucmVnaXN0ZXIoZSxmdW5jdGlvbigpe3ZhciBuPXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBuPT09dGhpcz90aGlzOm4gaW5zdGFuY2VvZiBXdD9uLmxlbmd0aD9BcnJheS5pc0FycmF5KG5bMF0pP25ldyBXdChuLmNvbnRleHQsblswXSk6blswXTp2b2lkIDA6bn0pfTt2YXIgc3M9ZnVuY3Rpb24odCxlKXtpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgcj1bXTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHMpe3ZhciBhPXNzKHMsZSk7ci5wdXNoLmFwcGx5KHIsYSl9KSxyLmZpbHRlcihmdW5jdGlvbihzKXtyZXR1cm4gc30pfWlmKHR5cGVvZiB0PT0ibnVtYmVyIilyZXR1cm5bZVt0XV07dmFyIG49ZS5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIHMublRhYmxlfSk7cmV0dXJuIFcobikuZmlsdGVyKHQpLm1hcChmdW5jdGlvbigpe3ZhciBzPW4uaW5kZXhPZih0aGlzKTtyZXR1cm4gZVtzXX0pLnRvQXJyYXkoKX07SXQoInRhYmxlcygpIixmdW5jdGlvbih0KXtyZXR1cm4gdCE9bnVsbD9uZXcgV3Qoc3ModCx0aGlzLmNvbnRleHQpKTp0aGlzfSk7SXQoInRhYmxlKCkiLGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudGFibGVzKHQpLHI9ZS5jb250ZXh0O3JldHVybiByLmxlbmd0aD9uZXcgV3QoclswXSk6ZX0pO1tbIm5vZGVzIiwibm9kZSIsIm5UYWJsZSJdLFsiYm9keSIsImJvZHkiLCJuVEJvZHkiXSxbImhlYWRlciIsImhlYWRlciIsIm5USGVhZCJdLFsiZm9vdGVyIiwiZm9vdGVyIiwiblRGb290Il1dLmZvckVhY2goZnVuY3Rpb24odCl7UXQoInRhYmxlcygpLiIrdFswXSsiKCkiLCJ0YWJsZSgpLiIrdFsxXSsiKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlKXtyZXR1cm4gZVt0WzJdXX0sMSl9KX0pO1tbImhlYWRlciIsImFvSGVhZGVyIl0sWyJmb290ZXIiLCJhb0Zvb3RlciJdXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe0l0KCJ0YWJsZSgpLiIrdFswXSsiLnN0cnVjdHVyZSgpIixmdW5jdGlvbihlKXt2YXIgcj10aGlzLmNvbHVtbnMoZSkuaW5kZXhlcygpLmZsYXR0ZW4oKSxuPXRoaXMuY29udGV4dFswXTtyZXR1cm4gS2EobixuW3RbMV1dLHIpfSl9KTtRdCgidGFibGVzKCkuY29udGFpbmVycygpIiwidGFibGUoKS5jb250YWluZXIoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5UYWJsZVdyYXBwZXJ9LDEpfSk7SXQoInRhYmxlcygpLmV2ZXJ5KCkiLGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihyLG4pe3QuY2FsbChlLnRhYmxlKG4pLG4pfSl9KTtJdCgiY2FwdGlvbigpIixmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuY29udGV4dDtpZih0PT09dm9pZCAwKXt2YXIgbj1yWzBdLmNhcHRpb25Ob2RlO3JldHVybiBuJiZyLmxlbmd0aD9uLmlubmVySFRNTDpudWxsfXJldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24ocyl7dmFyIGE9VyhzLm5UYWJsZSksbD1XKHMuY2FwdGlvbk5vZGUpLGM9VyhzLm5UYWJsZVdyYXBwZXIpO2lmKGwubGVuZ3RofHwobD1XKCI8Y2FwdGlvbi8+IikuaHRtbCh0KSxzLmNhcHRpb25Ob2RlPWxbMF0sZXx8KGEucHJlcGVuZChsKSxlPWwuY3NzKCJjYXB0aW9uLXNpZGUiKSkpLGwuaHRtbCh0KSxlJiYobC5jc3MoImNhcHRpb24tc2lkZSIsZSksbFswXS5fY2FwdGlvblNpZGU9ZSksYy5maW5kKCJkaXYuZGF0YVRhYmxlc19zY3JvbGwiKS5sZW5ndGgpe3ZhciBwPWU9PT0idG9wIj8iSGVhZCI6IkZvb3QiO2MuZmluZCgiZGl2LmRhdGFUYWJsZXNfc2Nyb2xsIitwKyIgdGFibGUiKS5wcmVwZW5kKGwpfWVsc2UgYS5wcmVwZW5kKGwpfSwxKX0pO0l0KCJjYXB0aW9uLm5vZGUoKSIsZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbnRleHQ7cmV0dXJuIHQubGVuZ3RoP3RbMF0uY2FwdGlvbk5vZGU6bnVsbH0pO0l0KCJkcmF3KCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oZSl7dD09PSJwYWdlIj9GcihlKToodHlwZW9mIHQ9PSJzdHJpbmciJiYodD10IT09ImZ1bGwtaG9sZCIpLFByKGUsdD09PSExKSl9KX0pO0l0KCJwYWdlKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0PT09dm9pZCAwP3RoaXMucGFnZS5pbmZvKCkucGFnZTp0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oZSl7U2koZSx0KX0pfSk7SXQoInBhZ2UuaW5mbygpIixmdW5jdGlvbigpe2lmKHRoaXMuY29udGV4dC5sZW5ndGghPT0wKXt2YXIgdD10aGlzLmNvbnRleHRbMF0sZT10Ll9pRGlzcGxheVN0YXJ0LHI9dC5vRmVhdHVyZXMuYlBhZ2luYXRlP3QuX2lEaXNwbGF5TGVuZ3RoOi0xLG49dC5mblJlY29yZHNEaXNwbGF5KCkscz1yPT09LTE7cmV0dXJue3BhZ2U6cz8wOk1hdGguZmxvb3IoZS9yKSxwYWdlczpzPzE6TWF0aC5jZWlsKG4vciksc3RhcnQ6ZSxlbmQ6dC5mbkRpc3BsYXlFbmQoKSxsZW5ndGg6cixyZWNvcmRzVG90YWw6dC5mblJlY29yZHNUb3RhbCgpLHJlY29yZHNEaXNwbGF5Om4sc2VydmVyU2lkZTpCZSh0KT09PSJzc3AifX19KTtJdCgicGFnZS5sZW4oKSIsZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT12b2lkIDA/dGhpcy5jb250ZXh0Lmxlbmd0aCE9PTA/dGhpcy5jb250ZXh0WzBdLl9pRGlzcGxheUxlbmd0aDp2b2lkIDA6dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGUpe1FhKGUsdCl9KX0pO3ZhciBvcz1mdW5jdGlvbih0LGUscil7aWYocil7dmFyIG49bmV3IFd0KHQpO24ub25lKCJkcmF3IixmdW5jdGlvbigpe3Iobi5hamF4Lmpzb24oKSl9KX1pZihCZSh0KT09InNzcCIpUHIodCxlKTtlbHNle0ZlKHQsITApO3ZhciBzPXQuanFYSFI7cyYmcy5yZWFkeVN0YXRlIT09NCYmcy5hYm9ydCgpLGtpKHQse30sZnVuY3Rpb24oYSl7Q2kodCk7Zm9yKHZhciBsPURuKHQsYSksYz0wLHA9bC5sZW5ndGg7YzxwO2MrKylicih0LGxbY10pO1ByKHQsZSksd24odCksRmUodCwhMSl9KX19O0l0KCJhamF4Lmpzb24oKSIsZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbnRleHQ7aWYodC5sZW5ndGg+MClyZXR1cm4gdFswXS5qc29ufSk7SXQoImFqYXgucGFyYW1zKCkiLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250ZXh0O2lmKHQubGVuZ3RoPjApcmV0dXJuIHRbMF0ub0FqYXhEYXRhfSk7SXQoImFqYXgucmVsb2FkKCkiLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihyKXtvcyhyLGU9PT0hMSx0KX0pfSk7SXQoImFqYXgudXJsKCkiLGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29udGV4dDtyZXR1cm4gdD09PXZvaWQgMD9lLmxlbmd0aD09PTA/dm9pZCAwOihlPWVbMF0sVy5pc1BsYWluT2JqZWN0KGUuYWpheCk/ZS5hamF4LnVybDplLmFqYXgpOnRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihyKXtXLmlzUGxhaW5PYmplY3Qoci5hamF4KT9yLmFqYXgudXJsPXQ6ci5hamF4PXR9KX0pO0l0KCJhamF4LnVybCgpLmxvYWQoKSIsZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHIpe29zKHIsZT09PSExLHQpfSl9KTt2YXIgUGk9ZnVuY3Rpb24odCxlLHIsbixzKXt2YXIgYT1bXSxsLGMscCxiLG0seSxUPXR5cGVvZiBlO2ZvcigoIWV8fFQ9PT0ic3RyaW5nInx8VD09PSJmdW5jdGlvbiJ8fGUubGVuZ3RoPT09dm9pZCAwKSYmKGU9W2VdKSxwPTAsYj1lLmxlbmd0aDtwPGI7cCsrKWZvcihjPWVbcF0mJmVbcF0uc3BsaXQmJiFlW3BdLm1hdGNoKC9bWyg6XS8pP2VbcF0uc3BsaXQoIiwiKTpbZVtwXV0sbT0wLHk9Yy5sZW5ndGg7bTx5O20rKylsPXIodHlwZW9mIGNbbV09PSJzdHJpbmciP2NbbV0udHJpbSgpOmNbbV0pLGw9bC5maWx0ZXIoZnVuY3Rpb24oayl7cmV0dXJuIGshPW51bGx9KSxsJiZsLmxlbmd0aCYmKGE9YS5jb25jYXQobCkpO3ZhciB3PW9lLnNlbGVjdG9yW3RdO2lmKHcubGVuZ3RoKWZvcihwPTAsYj13Lmxlbmd0aDtwPGI7cCsrKWE9d1twXShuLHMsYSk7cmV0dXJuIHByKGEpfSxGaT1mdW5jdGlvbih0KXtyZXR1cm4gdHx8KHQ9e30pLHQuZmlsdGVyJiZ0LnNlYXJjaD09PXZvaWQgMCYmKHQuc2VhcmNoPXQuZmlsdGVyKSxXLmV4dGVuZCh7c2VhcmNoOiJub25lIixvcmRlcjoiY3VycmVudCIscGFnZToiYWxsIn0sdCl9LEJpPWZ1bmN0aW9uKHQpe2xldCBlPW5ldyBXdCh0LmNvbnRleHRbMF0pO3JldHVybiB0Lmxlbmd0aCYmZS5wdXNoKHRbMF0pLGUuc2VsZWN0b3I9dC5zZWxlY3RvcixlLmxlbmd0aCYmZVswXS5sZW5ndGg+MSYmZVswXS5zcGxpY2UoMSksZX0sUG49ZnVuY3Rpb24odCxlKXt2YXIgcixuLHMsYT1bXSxsPXQuYWlEaXNwbGF5LGM9dC5haURpc3BsYXlNYXN0ZXIscD1lLnNlYXJjaCxiPWUub3JkZXIsbT1lLnBhZ2U7aWYobT09ImN1cnJlbnQiKWZvcihyPXQuX2lEaXNwbGF5U3RhcnQsbj10LmZuRGlzcGxheUVuZCgpO3I8bjtyKyspYS5wdXNoKGxbcl0pO2Vsc2UgaWYoYj09ImN1cnJlbnQifHxiPT0iYXBwbGllZCIpe2lmKHA9PSJub25lIilhPWMuc2xpY2UoKTtlbHNlIGlmKHA9PSJhcHBsaWVkIilhPWwuc2xpY2UoKTtlbHNlIGlmKHA9PSJyZW1vdmVkIil7dmFyIHk9e307Zm9yKHI9MCxuPWwubGVuZ3RoO3I8bjtyKyspeVtsW3JdXT1udWxsO2MuZm9yRWFjaChmdW5jdGlvbih3KXtPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoeSx3KXx8YS5wdXNoKHcpfSl9fWVsc2UgaWYoYj09ImluZGV4Inx8Yj09Im9yaWdpbmFsIilmb3Iocj0wLG49dC5hb0RhdGEubGVuZ3RoO3I8bjtyKyspdC5hb0RhdGFbcl0mJihwPT0ibm9uZSI/YS5wdXNoKHIpOihzPWwuaW5kZXhPZihyKSwocz09PS0xJiZwPT0icmVtb3ZlZCJ8fHM+PTAmJnA9PSJhcHBsaWVkIikmJmEucHVzaChyKSkpO2Vsc2UgaWYodHlwZW9mIGI9PSJudW1iZXIiKXt2YXIgVD1EaSh0LGIsImFzYyIpO2lmKHA9PT0ibm9uZSIpYT1UO2Vsc2UgZm9yKHI9MDtyPFQubGVuZ3RoO3IrKylzPWwuaW5kZXhPZihUW3JdKSwocz09PS0xJiZwPT0icmVtb3ZlZCJ8fHM+PTAmJnA9PSJhcHBsaWVkIikmJmEucHVzaChUW3JdKX1yZXR1cm4gYX0sdmw9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLHM9ZnVuY3Rpb24obCl7dmFyIGM9TWEobCkscD10LmFvRGF0YTtpZihjIT09bnVsbCYmIXIpcmV0dXJuW2NdO2lmKG58fChuPVBuKHQscikpLGMhPT1udWxsJiZuLmluZGV4T2YoYykhPT0tMSlyZXR1cm5bY107aWYobD09bnVsbHx8bD09PSIiKXJldHVybiBuO2lmKHR5cGVvZiBsPT0iZnVuY3Rpb24iKXJldHVybiBuLm1hcChmdW5jdGlvbihrKXt2YXIgUD1wW2tdO3JldHVybiBsKGssUC5fYURhdGEsUC5uVHIpP2s6bnVsbH0pO2lmKGwubm9kZU5hbWUpe3ZhciBiPWwuX0RUX1Jvd0luZGV4LG09bC5fRFRfQ2VsbEluZGV4O2lmKGIhPT12b2lkIDApcmV0dXJuIHBbYl0mJnBbYl0ublRyPT09bD9bYl06W107aWYobSlyZXR1cm4gcFttLnJvd10mJnBbbS5yb3ddLm5Ucj09PWwucGFyZW50Tm9kZT9bbS5yb3ddOltdO3ZhciB5PVcobCkuY2xvc2VzdCgiKltkYXRhLWR0LXJvd10iKTtyZXR1cm4geS5sZW5ndGg/W3kuZGF0YSgiZHQtcm93IildOltdfWlmKHR5cGVvZiBsPT0ic3RyaW5nIiYmbC5jaGFyQXQoMCk9PT0iIyIpe3ZhciBUPXQuYUlkc1tsLnJlcGxhY2UoL14jLywiIildO2lmKFQhPT12b2lkIDApcmV0dXJuW1QuaWR4XX12YXIgdz1XYShYcih0LmFvRGF0YSxuLCJuVHIiKSk7cmV0dXJuIFcodykuZmlsdGVyKGwpLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLl9EVF9Sb3dJbmRleH0pLnRvQXJyYXkoKX0sYT1QaSgicm93IixlLHMsdCxyKTtyZXR1cm4oci5vcmRlcj09PSJjdXJyZW50Inx8ci5vcmRlcj09PSJhcHBsaWVkIikmJm5zKHQsYSksYX07SXQoInJvd3MoKSIsZnVuY3Rpb24odCxlKXt0PT09dm9pZCAwP3Q9IiI6Vy5pc1BsYWluT2JqZWN0KHQpJiYoZT10LHQ9IiIpLGU9RmkoZSk7dmFyIHI9dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKG4pe3JldHVybiB2bChuLHQsZSl9LDEpO3JldHVybiByLnNlbGVjdG9yLnJvd3M9dCxyLnNlbGVjdG9yLm9wdHM9ZSxyfSk7SXQoInJvd3MoKS5ub2RlcygpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJyb3ciLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuYW9EYXRhW2VdLm5Ucnx8dm9pZCAwfSwxKX0pO0l0KCJyb3dzKCkuZGF0YSgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCEwLCJyb3dzIixmdW5jdGlvbih0LGUpe3JldHVybiBYcih0LmFvRGF0YSxlLCJfYURhdGEiKX0sMSl9KTtRdCgicm93cygpLmNhY2hlKCkiLCJyb3coKS5jYWNoZSgpIixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pdGVyYXRvcigicm93IixmdW5jdGlvbihlLHIpe3ZhciBuPWUuYW9EYXRhW3JdO3JldHVybiB0PT09InNlYXJjaCI/bi5fYUZpbHRlckRhdGE6bi5fYVNvcnREYXRhfSwxKX0pO1F0KCJyb3dzKCkuaW52YWxpZGF0ZSgpIiwicm93KCkuaW52YWxpZGF0ZSgpIixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pdGVyYXRvcigicm93IixmdW5jdGlvbihlLHIpe1NuKGUscix0KX0pfSk7UXQoInJvd3MoKS5pbmRleGVzKCkiLCJyb3coKS5pbmRleCgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJyb3ciLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9LDEpfSk7UXQoInJvd3MoKS5pZHMoKSIsInJvdygpLmlkKCkiLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxyPXRoaXMuY29udGV4dCxuPTAscz1yLmxlbmd0aDtuPHM7bisrKWZvcih2YXIgYT0wLGw9dGhpc1tuXS5sZW5ndGg7YTxsO2ErKyl7dmFyIGM9cltuXS5yb3dJZEZuKHJbbl0uYW9EYXRhW3RoaXNbbl1bYV1dLl9hRGF0YSk7ZS5wdXNoKCh0PT09ITA/IiMiOiIiKStjKX1yZXR1cm4gbmV3IFd0KHIsZSl9KTtRdCgicm93cygpLnJlbW92ZSgpIiwicm93KCkucmVtb3ZlKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInJvdyIsZnVuY3Rpb24odCxlKXt2YXIgcj10LmFvRGF0YSxuPXJbZV0scz10LmFpRGlzcGxheU1hc3Rlci5pbmRleE9mKGUpO3MhPT0tMSYmdC5haURpc3BsYXlNYXN0ZXIuc3BsaWNlKHMsMSksdC5faVJlY29yZHNEaXNwbGF5PjAmJnQuX2lSZWNvcmRzRGlzcGxheS0tLGFzKHQpO3ZhciBhPXQucm93SWRGbihuLl9hRGF0YSk7YSE9PXZvaWQgMCYmZGVsZXRlIHQuYUlkc1thXSxyW2VdPW51bGx9KSx0aGlzfSk7SXQoInJvd3MuYWRkKCkiLGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihuKXt2YXIgcyxhLGwsYz1bXTtmb3IoYT0wLGw9dC5sZW5ndGg7YTxsO2ErKylzPXRbYV0scy5ub2RlTmFtZSYmcy5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpPT09IlRSIj9jLnB1c2goX2kobixzKVswXSk6Yy5wdXNoKGJyKG4scykpO3JldHVybiBjfSwxKSxyPXRoaXMucm93cygtMSk7cmV0dXJuIHIucG9wKCksci5wdXNoLmFwcGx5KHIsZSkscn0pO0l0KCJyb3coKSIsZnVuY3Rpb24odCxlKXtyZXR1cm4gQmkodGhpcy5yb3dzKHQsZSkpfSk7SXQoInJvdygpLmRhdGEoKSIsZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jb250ZXh0O2lmKHQ9PT12b2lkIDApcmV0dXJuIGUubGVuZ3RoJiZ0aGlzLmxlbmd0aCYmdGhpc1swXS5sZW5ndGg/ZVswXS5hb0RhdGFbdGhpc1swXV0uX2FEYXRhOnZvaWQgMDt2YXIgcj1lWzBdLmFvRGF0YVt0aGlzWzBdXTtyZXR1cm4gci5fYURhdGE9dCxBcnJheS5pc0FycmF5KHQpJiZyLm5UciYmci5uVHIuaWQmJmZyKGVbMF0ucm93SWQpKHQsci5uVHIuaWQpLFNuKGVbMF0sdGhpc1swXSwiZGF0YSIpLHRoaXN9KTtJdCgicm93KCkubm9kZSgpIixmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29udGV4dDtyZXR1cm4gdC5sZW5ndGgmJnRoaXMubGVuZ3RoJiZ0aGlzWzBdLmxlbmd0aCYmdFswXS5hb0RhdGFbdGhpc1swXV0ublRyfHxudWxsfSk7SXQoInJvdy5hZGQoKSIsZnVuY3Rpb24odCl7dCBpbnN0YW5jZW9mIFcmJnQubGVuZ3RoJiYodD10WzBdKTt2YXIgZT10aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24ocil7cmV0dXJuIHQubm9kZU5hbWUmJnQubm9kZU5hbWUudG9VcHBlckNhc2UoKT09PSJUUiI/X2kocix0KVswXTpicihyLHQpfSk7cmV0dXJuIHRoaXMucm93KGVbMF0pfSk7Vyhkb2N1bWVudCkub24oInBsdWdpbi1pbml0LmR0IixmdW5jdGlvbih0LGUpe3ZhciByPW5ldyBXdChlKTtyLm9uKCJzdGF0ZVNhdmVQYXJhbXMuRFQiLGZ1bmN0aW9uKG4scyxhKXtmb3IodmFyIGw9cy5yb3dJZEZuLGM9cy5haURpc3BsYXlNYXN0ZXIscD1bXSxiPTA7YjxjLmxlbmd0aDtiKyspe3ZhciBtPWNbYl0seT1zLmFvRGF0YVttXTt5Ll9kZXRhaWxzU2hvdyYmcC5wdXNoKCIjIitsKHkuX2FEYXRhKSl9YS5jaGlsZFJvd3M9cH0pLHIub24oInN0YXRlTG9hZGVkLkRUIixmdW5jdGlvbihuLHMsYSl7UmEocixhKX0pLFJhKHIsci5zdGF0ZS5sb2FkZWQoKSl9KTt2YXIgUmE9ZnVuY3Rpb24odCxlKXtlJiZlLmNoaWxkUm93cyYmdC5yb3dzKGUuY2hpbGRSb3dzLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gci5yZXBsYWNlKC8oPzwhXFwpOi9nLCJcXDoiKX0pKS5ldmVyeShmdW5jdGlvbigpe1p0KHQuc2V0dGluZ3MoKVswXSxudWxsLCJyZXF1ZXN0Q2hpbGQiLFt0aGlzXSl9KX0sbWw9ZnVuY3Rpb24odCxlLHIsbil7dmFyIHM9W10sYT1mdW5jdGlvbihsLGMpe2lmKEFycmF5LmlzQXJyYXkobCl8fGwgaW5zdGFuY2VvZiBXKXtmb3IodmFyIHA9MCxiPWwubGVuZ3RoO3A8YjtwKyspYShsW3BdLGMpO3JldHVybn1pZihsLm5vZGVOYW1lJiZsLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0idHIiKWwuc2V0QXR0cmlidXRlKCJkYXRhLWR0LXJvdyIsZS5pZHgpLHMucHVzaChsKTtlbHNle3ZhciBtPVcoIjx0cj48dGQ+PC90ZD48L3RyPiIpLmF0dHIoImRhdGEtZHQtcm93IixlLmlkeCkuYWRkQ2xhc3MoYyk7VygidGQiLG0pLmFkZENsYXNzKGMpLmh0bWwobClbMF0uY29sU3Bhbj1rbih0KSxzLnB1c2gobVswXSl9fTthKHIsbiksZS5fZGV0YWlscyYmZS5fZGV0YWlscy5kZXRhY2goKSxlLl9kZXRhaWxzPVcocyksZS5fZGV0YWlsc1Nob3cmJmUuX2RldGFpbHMuaW5zZXJ0QWZ0ZXIoZS5uVHIpfSxscz12dC51dGlsLnRocm90dGxlKGZ1bmN0aW9uKHQpe0luKHRbMF0pfSw1MDApLE5pPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5jb250ZXh0O2lmKHIubGVuZ3RoKXt2YXIgbj1yWzBdLmFvRGF0YVtlIT09dm9pZCAwP2U6dFswXV07biYmbi5fZGV0YWlscyYmKG4uX2RldGFpbHMucmVtb3ZlKCksbi5fZGV0YWlsc1Nob3c9dm9pZCAwLG4uX2RldGFpbHM9dm9pZCAwLFcobi5uVHIpLnJlbW92ZUNsYXNzKCJkdC1oYXNDaGlsZCIpLGxzKHIpKX19LGRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5jb250ZXh0O2lmKHIubGVuZ3RoJiZ0Lmxlbmd0aCl7dmFyIG49clswXS5hb0RhdGFbdFswXV07bi5fZGV0YWlscyYmKG4uX2RldGFpbHNTaG93PWUsZT8obi5fZGV0YWlscy5pbnNlcnRBZnRlcihuLm5UciksVyhuLm5UcikuYWRkQ2xhc3MoImR0LWhhc0NoaWxkIikpOihuLl9kZXRhaWxzLmRldGFjaCgpLFcobi5uVHIpLnJlbW92ZUNsYXNzKCJkdC1oYXNDaGlsZCIpKSxadChyWzBdLG51bGwsImNoaWxkUm93IixbZSx0LnJvdyh0WzBdKV0pLGdsKHJbMF0pLGxzKHIpKX19LGdsPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBXdCh0KSxyPSIuZHQuRFRfZGV0YWlscyIsbj0iZHJhdyIrcixzPSJjb2x1bW4tc2l6aW5nIityLGE9ImRlc3Ryb3kiK3IsbD10LmFvRGF0YTtlLm9mZihuKyIgIitzKyIgIithKSx4ZShsLCJfZGV0YWlscyIpLmxlbmd0aD4wJiYoZS5vbihuLGZ1bmN0aW9uKGMscCl7dD09PXAmJmUucm93cyh7cGFnZToiY3VycmVudCJ9KS5lcSgwKS5lYWNoKGZ1bmN0aW9uKGIpe3ZhciBtPWxbYl07bS5fZGV0YWlsc1Nob3cmJm0uX2RldGFpbHMuaW5zZXJ0QWZ0ZXIobS5uVHIpfSl9KSxlLm9uKHMsZnVuY3Rpb24oYyxwKXtpZih0PT09cClmb3IodmFyIGIsbT1rbihwKSx5PTAsVD1sLmxlbmd0aDt5PFQ7eSsrKWI9bFt5XSxiJiZiLl9kZXRhaWxzJiZiLl9kZXRhaWxzLmVhY2goZnVuY3Rpb24oKXt2YXIgdz1XKHRoaXMpLmNoaWxkcmVuKCJ0ZCIpO3cubGVuZ3RoPT0xJiZ3LmF0dHIoImNvbHNwYW4iLG0pfSl9KSxlLm9uKGEsZnVuY3Rpb24oYyxwKXtpZih0PT09cClmb3IodmFyIGI9MCxtPWwubGVuZ3RoO2I8bTtiKyspbFtiXSYmbFtiXS5fZGV0YWlscyYmTmkoZSxiKX0pKX0seWw9IiIsWnI9eWwrInJvdygpLmNoaWxkIixGbj1acisiKCkiO0l0KEZuLGZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5jb250ZXh0O3JldHVybiB0PT09dm9pZCAwP3IubGVuZ3RoJiZ0aGlzLmxlbmd0aCYmclswXS5hb0RhdGFbdGhpc1swXV0/clswXS5hb0RhdGFbdGhpc1swXV0uX2RldGFpbHM6dm9pZCAwOih0PT09ITA/dGhpcy5jaGlsZC5zaG93KCk6dD09PSExP05pKHRoaXMpOnIubGVuZ3RoJiZ0aGlzLmxlbmd0aCYmbWwoclswXSxyWzBdLmFvRGF0YVt0aGlzWzBdXSx0LGUpLHRoaXMpfSk7SXQoW1pyKyIuc2hvdygpIixGbisiLnNob3coKSJdLGZ1bmN0aW9uKCl7cmV0dXJuIGRzKHRoaXMsITApLHRoaXN9KTtJdChbWnIrIi5oaWRlKCkiLEZuKyIuaGlkZSgpIl0sZnVuY3Rpb24oKXtyZXR1cm4gZHModGhpcywhMSksdGhpc30pO0l0KFtacisiLnJlbW92ZSgpIixGbisiLnJlbW92ZSgpIl0sZnVuY3Rpb24oKXtyZXR1cm4gTmkodGhpcyksdGhpc30pO0l0KFpyKyIuaXNTaG93bigpIixmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29udGV4dDtyZXR1cm4gdC5sZW5ndGgmJnRoaXMubGVuZ3RoJiZ0WzBdLmFvRGF0YVt0aGlzWzBdXS5fZGV0YWlsc1Nob3d8fCExfSk7dmFyIHdsPS9eKFteOl0rKToobmFtZXx0aXRsZXx2aXNJZHh8dmlzaWJsZSkkLyxFaT1mdW5jdGlvbih0LGUscixuLHMsYSl7Zm9yKHZhciBsPVtdLGM9MCxwPXMubGVuZ3RoO2M8cDtjKyspbC5wdXNoKE5lKHQsc1tjXSxlLGEpKTtyZXR1cm4gbH0sdXM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQuYW9IZWFkZXIscz1yIT09dm9pZCAwP3I6dC5iU29ydENlbGxzVG9wPzA6bi5sZW5ndGgtMTtyZXR1cm4gbltzXVtlXS5jZWxsfSx4bD1mdW5jdGlvbih0LGUscil7dmFyIG49dC5hb0NvbHVtbnMscz14ZShuLCJzTmFtZSIpLGE9eGUobiwic1RpdGxlIiksbD12dC51dGlsLmdldCgiW10uW10uY2VsbCIpKHQuYW9IZWFkZXIpLGM9cHIobWkoW10sbCkpLHA9ZnVuY3Rpb24oYil7dmFyIG09TWEoYik7aWYoYj09PSIiKXJldHVybiBjcihuLmxlbmd0aCk7aWYobSE9PW51bGwpcmV0dXJuW20+PTA/bTpuLmxlbmd0aCttXTtpZih0eXBlb2YgYj09ImZ1bmN0aW9uIil7dmFyIHk9UG4odCxyKTtyZXR1cm4gbi5tYXAoZnVuY3Rpb24oaCxvKXtyZXR1cm4gYihvLEVpKHQsbywwLDAseSksdXModCxvKSk/bzpudWxsfSl9dmFyIFQ9dHlwZW9mIGI9PSJzdHJpbmciP2IubWF0Y2god2wpOiIiO2lmKFQpc3dpdGNoKFRbMl0pe2Nhc2UidmlzSWR4IjpjYXNlInZpc2libGUiOnZhciB3PXBhcnNlSW50KFRbMV0sMTApO2lmKHc8MCl7dmFyIGs9bi5tYXAoZnVuY3Rpb24oaCxvKXtyZXR1cm4gaC5iVmlzaWJsZT9vOm51bGx9KTtyZXR1cm5ba1trLmxlbmd0aCt3XV19cmV0dXJuW2dpKHQsdyldO2Nhc2UibmFtZSI6cmV0dXJuIHMubWFwKGZ1bmN0aW9uKGgsbyl7cmV0dXJuIGg9PT1UWzFdP286bnVsbH0pO2Nhc2UidGl0bGUiOnJldHVybiBhLm1hcChmdW5jdGlvbihoLG8pe3JldHVybiBoPT09VFsxXT9vOm51bGx9KTtkZWZhdWx0OnJldHVybltdfWlmKGIubm9kZU5hbWUmJmIuX0RUX0NlbGxJbmRleClyZXR1cm5bYi5fRFRfQ2VsbEluZGV4LmNvbHVtbl07dmFyIFA9VyhjKS5maWx0ZXIoYikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHhpKHRoaXMpfSkudG9BcnJheSgpO2lmKFAubGVuZ3RofHwhYi5ub2RlTmFtZSlyZXR1cm4gUDt2YXIgRj1XKGIpLmNsb3Nlc3QoIipbZGF0YS1kdC1jb2x1bW5dIik7cmV0dXJuIEYubGVuZ3RoP1tGLmRhdGEoImR0LWNvbHVtbiIpXTpbXX07cmV0dXJuIFBpKCJjb2x1bW4iLGUscCx0LHIpfSxfbD1mdW5jdGlvbih0LGUscil7dmFyIG49dC5hb0NvbHVtbnMscz1uW2VdLGE9dC5hb0RhdGEsbCxjLHAsYjtpZihyPT09dm9pZCAwKXJldHVybiBzLmJWaXNpYmxlO2lmKHMuYlZpc2libGU9PT1yKXJldHVybiExO2lmKHIpe3ZhciBtPXhlKG4sImJWaXNpYmxlIikuaW5kZXhPZighMCxlKzEpO2ZvcihjPTAscD1hLmxlbmd0aDtjPHA7YysrKWFbY10mJihiPWFbY10ublRyLGw9YVtjXS5hbkNlbGxzLGImJmIuaW5zZXJ0QmVmb3JlKGxbZV0sbFttXXx8bnVsbCkpfWVsc2UgVyh4ZSh0LmFvRGF0YSwiYW5DZWxscyIsZSkpLmRldGFjaCgpO3JldHVybiBzLmJWaXNpYmxlPXIsZXModCksITB9O0l0KCJjb2x1bW5zKCkiLGZ1bmN0aW9uKHQsZSl7dD09PXZvaWQgMD90PSIiOlcuaXNQbGFpbk9iamVjdCh0KSYmKGU9dCx0PSIiKSxlPUZpKGUpO3ZhciByPXRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihuKXtyZXR1cm4geGwobix0LGUpfSwxKTtyZXR1cm4gci5zZWxlY3Rvci5jb2xzPXQsci5zZWxlY3Rvci5vcHRzPWUscn0pO1F0KCJjb2x1bW5zKCkuaGVhZGVyKCkiLCJjb2x1bW4oKS5oZWFkZXIoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24oZSxyKXtyZXR1cm4gdXMoZSxyLHQpfSwxKX0pO1F0KCJjb2x1bW5zKCkuZm9vdGVyKCkiLCJjb2x1bW4oKS5mb290ZXIoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24oZSxyKXt2YXIgbj1lLmFvRm9vdGVyO3JldHVybiBuLmxlbmd0aD9lLmFvRm9vdGVyW3QhPT12b2lkIDA/dDowXVtyXS5jZWxsOm51bGx9LDEpfSk7UXQoImNvbHVtbnMoKS5kYXRhKCkiLCJjb2x1bW4oKS5kYXRhKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbi1yb3dzIixFaSwxKX0pO1F0KCJjb2x1bW5zKCkucmVuZGVyKCkiLCJjb2x1bW4oKS5yZW5kZXIoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbi1yb3dzIixmdW5jdGlvbihlLHIsbixzLGEpe3JldHVybiBFaShlLHIsbixzLGEsdCl9LDEpfSk7UXQoImNvbHVtbnMoKS5kYXRhU3JjKCkiLCJjb2x1bW4oKS5kYXRhU3JjKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5hb0NvbHVtbnNbZV0ubURhdGF9LDEpfSk7UXQoImNvbHVtbnMoKS5jYWNoZSgpIiwiY29sdW1uKCkuY2FjaGUoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbi1yb3dzIixmdW5jdGlvbihlLHIsbixzLGEpe3JldHVybiBYcihlLmFvRGF0YSxhLHQ9PT0ic2VhcmNoIj8iX2FGaWx0ZXJEYXRhIjoiX2FTb3J0RGF0YSIscil9LDEpfSk7UXQoImNvbHVtbnMoKS5pbml0KCkiLCJjb2x1bW4oKS5pbml0KCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5hb0NvbHVtbnNbZV19LDEpfSk7UXQoImNvbHVtbnMoKS5ub2RlcygpIiwiY29sdW1uKCkubm9kZXMoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY29sdW1uLXJvd3MiLGZ1bmN0aW9uKHQsZSxyLG4scyl7cmV0dXJuIFhyKHQuYW9EYXRhLHMsImFuQ2VsbHMiLGUpfSwxKX0pO1F0KCJjb2x1bW5zKCkudGl0bGVzKCkiLCJjb2x1bW4oKS50aXRsZSgpIixmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKHIsbil7dHlwZW9mIHQ9PSJudW1iZXIiJiYoZT10LHQ9dm9pZCAwKTt2YXIgcz1XKCJzcGFuLmR0LWNvbHVtbi10aXRsZSIsdGhpcy5jb2x1bW4obikuaGVhZGVyKGUpKTtyZXR1cm4gdCE9PXZvaWQgMD8ocy5odG1sKHQpLHRoaXMpOnMuaHRtbCgpfSwxKX0pO1F0KCJjb2x1bW5zKCkudHlwZXMoKSIsImNvbHVtbigpLnR5cGUoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY29sdW1uIixmdW5jdGlvbih0LGUpe3ZhciByPXQuYW9Db2x1bW5zW2VdLnNUeXBlO3JldHVybiByfHx3aSh0KSxyfSwxKX0pO1F0KCJjb2x1bW5zKCkudmlzaWJsZSgpIiwiY29sdW1uKCkudmlzaWJsZSgpIixmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMsbj1bXSxzPXRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24oYSxsKXtpZih0PT09dm9pZCAwKXJldHVybiBhLmFvQ29sdW1uc1tsXS5iVmlzaWJsZTtfbChhLGwsdCkmJm4ucHVzaChsKX0pO3JldHVybiB0IT09dm9pZCAwJiZ0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7eW4oYSxhLmFvSGVhZGVyKSx5bihhLGEuYW9Gb290ZXIpLGEuYWlEaXNwbGF5Lmxlbmd0aHx8VyhhLm5UQm9keSkuZmluZCgidGRbY29sc3Bhbl0iKS5hdHRyKCJjb2xzcGFuIixrbihhKSksSW4oYSksci5pdGVyYXRvcigiY29sdW1uIixmdW5jdGlvbihsLGMpe24uaW5jbHVkZXMoYykmJlp0KGwsbnVsbCwiY29sdW1uLXZpc2liaWxpdHkiLFtsLGMsdCxlXSl9KSxuLmxlbmd0aCYmKGU9PT12b2lkIDB8fGUpJiZyLmNvbHVtbnMuYWRqdXN0KCl9KSxzfSk7UXQoImNvbHVtbnMoKS53aWR0aHMoKSIsImNvbHVtbigpLndpZHRoKCkiLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb2x1bW5zKCI6dmlzaWJsZSIpLmNvdW50KCksZT1XKCI8dHI+IikuaHRtbCgiPHRkPiIrQXJyYXkodCkuam9pbigiPC90ZD48dGQ+IikrIjwvdGQ+Iik7Vyh0aGlzLnRhYmxlKCkuYm9keSgpKS5hcHBlbmQoZSk7dmFyIHI9ZS5jaGlsZHJlbigpLm1hcChmdW5jdGlvbigpe3JldHVybiBXKHRoaXMpLm91dGVyV2lkdGgoKX0pO3JldHVybiBlLnJlbW92ZSgpLHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24obixzKXt2YXIgYT0kcihuLHMpO3JldHVybiBhIT09bnVsbD9yW2FdOjB9LDEpfSk7UXQoImNvbHVtbnMoKS5pbmRleGVzKCkiLCJjb2x1bW4oKS5pbmRleCgpIixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY29sdW1uIixmdW5jdGlvbihlLHIpe3JldHVybiB0PT09InZpc2libGUiPyRyKGUscik6cn0sMSl9KTtJdCgiY29sdW1ucy5hZGp1c3QoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHQpe1RuKHQpfSwxKX0pO0l0KCJjb2x1bW4uaW5kZXgoKSIsZnVuY3Rpb24odCxlKXtpZih0aGlzLmNvbnRleHQubGVuZ3RoIT09MCl7dmFyIHI9dGhpcy5jb250ZXh0WzBdO2lmKHQ9PT0iZnJvbVZpc2libGUifHx0PT09InRvRGF0YSIpcmV0dXJuIGdpKHIsZSk7aWYodD09PSJmcm9tRGF0YSJ8fHQ9PT0idG9WaXNpYmxlIilyZXR1cm4gJHIocixlKX19KTtJdCgiY29sdW1uKCkiLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIEJpKHRoaXMuY29sdW1ucyh0LGUpKX0pO3ZhciBDbD1mdW5jdGlvbih0LGUscil7dmFyIG49dC5hb0RhdGEscz1Qbih0LHIpLGE9V2EoWHIobixzLCJhbkNlbGxzIikpLGw9VyhtaShbXSxhKSksYyxwPXQuYW9Db2x1bW5zLmxlbmd0aCxiLG0seSxULHcsayxQPWZ1bmN0aW9uKEYpe3ZhciBoPXR5cGVvZiBGPT0iZnVuY3Rpb24iO2lmKEY9PW51bGx8fGgpe2ZvcihiPVtdLG09MCx5PXMubGVuZ3RoO208eTttKyspZm9yKGM9c1ttXSxUPTA7VDxwO1QrKyl3PXtyb3c6Yyxjb2x1bW46VH0saD8oaz1uW2NdLEYodyxOZSh0LGMsVCksay5hbkNlbGxzP2suYW5DZWxsc1tUXTpudWxsKSYmYi5wdXNoKHcpKTpiLnB1c2godyk7cmV0dXJuIGJ9aWYoVy5pc1BsYWluT2JqZWN0KEYpKXJldHVybiBGLmNvbHVtbiE9PXZvaWQgMCYmRi5yb3chPT12b2lkIDAmJnMuaW5kZXhPZihGLnJvdykhPT0tMT9bRl06W107dmFyIG89bC5maWx0ZXIoRikubWFwKGZ1bmN0aW9uKGYsQyl7cmV0dXJue3JvdzpDLl9EVF9DZWxsSW5kZXgucm93LGNvbHVtbjpDLl9EVF9DZWxsSW5kZXguY29sdW1ufX0pLnRvQXJyYXkoKTtyZXR1cm4gby5sZW5ndGh8fCFGLm5vZGVOYW1lP286KGs9VyhGKS5jbG9zZXN0KCIqW2RhdGEtZHQtcm93XSIpLGsubGVuZ3RoP1t7cm93OmsuZGF0YSgiZHQtcm93IiksY29sdW1uOmsuZGF0YSgiZHQtY29sdW1uIil9XTpbXSl9O3JldHVybiBQaSgiY2VsbCIsZSxQLHQscil9O0l0KCJjZWxscygpIixmdW5jdGlvbih0LGUscil7aWYoVy5pc1BsYWluT2JqZWN0KHQpJiYodC5yb3c9PT12b2lkIDA/KHI9dCx0PW51bGwpOihyPWUsZT1udWxsKSksVy5pc1BsYWluT2JqZWN0KGUpJiYocj1lLGU9bnVsbCksZT09bnVsbClyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKFQpe3JldHVybiBDbChULHQsRmkocikpfSk7dmFyIG49cj97cGFnZTpyLnBhZ2Usb3JkZXI6ci5vcmRlcixzZWFyY2g6ci5zZWFyY2h9Ont9LHM9dGhpcy5jb2x1bW5zKGUsbiksYT10aGlzLnJvd3ModCxuKSxsLGMscCxiLG09dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKFQsdyl7dmFyIGs9W107Zm9yKGw9MCxjPWFbd10ubGVuZ3RoO2w8YztsKyspZm9yKHA9MCxiPXNbd10ubGVuZ3RoO3A8YjtwKyspay5wdXNoKHtyb3c6YVt3XVtsXSxjb2x1bW46c1t3XVtwXX0pO3JldHVybiBrfSwxKSx5PXImJnIuc2VsZWN0ZWQ/dGhpcy5jZWxscyhtLHIpOm07cmV0dXJuIFcuZXh0ZW5kKHkuc2VsZWN0b3Ise2NvbHM6ZSxyb3dzOnQsb3B0czpyfSkseX0pO1F0KCJjZWxscygpLm5vZGVzKCkiLCJjZWxsKCkubm9kZSgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjZWxsIixmdW5jdGlvbih0LGUscil7dmFyIG49dC5hb0RhdGFbZV07cmV0dXJuIG4mJm4uYW5DZWxscz9uLmFuQ2VsbHNbcl06dm9pZCAwfSwxKX0pO0l0KCJjZWxscygpLmRhdGEoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY2VsbCIsZnVuY3Rpb24odCxlLHIpe3JldHVybiBOZSh0LGUscil9LDEpfSk7UXQoImNlbGxzKCkuY2FjaGUoKSIsImNlbGwoKS5jYWNoZSgpIixmdW5jdGlvbih0KXtyZXR1cm4gdD10PT09InNlYXJjaCI/Il9hRmlsdGVyRGF0YSI6Il9hU29ydERhdGEiLHRoaXMuaXRlcmF0b3IoImNlbGwiLGZ1bmN0aW9uKGUscixuKXtyZXR1cm4gZS5hb0RhdGFbcl1bdF1bbl19LDEpfSk7UXQoImNlbGxzKCkucmVuZGVyKCkiLCJjZWxsKCkucmVuZGVyKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjZWxsIixmdW5jdGlvbihlLHIsbil7cmV0dXJuIE5lKGUscixuLHQpfSwxKX0pO1F0KCJjZWxscygpLmluZGV4ZXMoKSIsImNlbGwoKS5pbmRleCgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjZWxsIixmdW5jdGlvbih0LGUscil7cmV0dXJue3JvdzplLGNvbHVtbjpyLGNvbHVtblZpc2libGU6JHIodCxyKX19LDEpfSk7UXQoImNlbGxzKCkuaW52YWxpZGF0ZSgpIiwiY2VsbCgpLmludmFsaWRhdGUoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNlbGwiLGZ1bmN0aW9uKGUscixuKXtTbihlLHIsdCxuKX0pfSk7SXQoImNlbGwoKSIsZnVuY3Rpb24odCxlLHIpe3JldHVybiBCaSh0aGlzLmNlbGxzKHQsZSxyKSl9KTtJdCgiY2VsbCgpLmRhdGEoKSIsZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jb250ZXh0LHI9dGhpc1swXTtyZXR1cm4gdD09PXZvaWQgMD9lLmxlbmd0aCYmci5sZW5ndGg/TmUoZVswXSxyWzBdLnJvdyxyWzBdLmNvbHVtbik6dm9pZCAwOihabyhlWzBdLHJbMF0ucm93LHJbMF0uY29sdW1uLHQpLFNuKGVbMF0sclswXS5yb3csImRhdGEiLHJbMF0uY29sdW1uKSx0aGlzKX0pO0l0KCJvcmRlcigpIixmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuY29udGV4dCxuPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT12b2lkIDA/ci5sZW5ndGghPT0wP3JbMF0uYWFTb3J0aW5nOnZvaWQgMDoodHlwZW9mIHQ9PSJudW1iZXIiP3Q9W1t0LGVdXTpuLmxlbmd0aD4xJiYodD1uKSx0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24ocyl7cy5hYVNvcnRpbmc9QXJyYXkuaXNBcnJheSh0KT90LnNsaWNlKCk6dH0pKX0pO0l0KCJvcmRlci5saXN0ZW5lcigpIixmdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihuKXtycyhuLHQse30sZSxyKX0pfSk7SXQoIm9yZGVyLmZpeGVkKCkiLGZ1bmN0aW9uKHQpe2lmKCF0KXt2YXIgZT10aGlzLmNvbnRleHQscj1lLmxlbmd0aD9lWzBdLmFhU29ydGluZ0ZpeGVkOnZvaWQgMDtyZXR1cm4gQXJyYXkuaXNBcnJheShyKT97cHJlOnJ9OnJ9cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihuKXtuLmFhU29ydGluZ0ZpeGVkPVcuZXh0ZW5kKCEwLHt9LHQpfSl9KTtJdChbImNvbHVtbnMoKS5vcmRlcigpIiwiY29sdW1uKCkub3JkZXIoKSJdLGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQ/dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHIsbil7ci5hYVNvcnRpbmc9ZVtuXS5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuW3MsdF19KX0pOnRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24ocixuKXtmb3IodmFyIHM9QW4ociksYT0wLGw9cy5sZW5ndGg7YTxsO2ErKylpZihzW2FdLmNvbD09PW4pcmV0dXJuIHNbYV0uZGlyO3JldHVybiBudWxsfSwxKX0pO1F0KCJjb2x1bW5zKCkub3JkZXJhYmxlKCkiLCJjb2x1bW4oKS5vcmRlcmFibGUoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24oZSxyKXt2YXIgbj1lLmFvQ29sdW1uc1tyXTtyZXR1cm4gdD9uLmFzU29ydGluZzpuLmJTb3J0YWJsZX0sMSl9KTtJdCgicHJvY2Vzc2luZygpIixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGUpe0ZlKGUsdCl9KX0pO0l0KCJzZWFyY2goKSIsZnVuY3Rpb24odCxlLHIsbil7dmFyIHM9dGhpcy5jb250ZXh0O3JldHVybiB0PT09dm9pZCAwP3MubGVuZ3RoIT09MD9zWzBdLm9QcmV2aW91c1NlYXJjaC5zZWFyY2g6dm9pZCAwOnRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihhKXthLm9GZWF0dXJlcy5iRmlsdGVyJiYodHlwZW9mIGU9PSJvYmplY3QiP0dyKGEsVy5leHRlbmQoYS5vUHJldmlvdXNTZWFyY2gsZSx7c2VhcmNoOnR9KSk6R3IoYSxXLmV4dGVuZChhLm9QcmV2aW91c1NlYXJjaCx7c2VhcmNoOnQscmVnZXg6ZT09PW51bGw/ITE6ZSxzbWFydDpyPT09bnVsbD8hMDpyLGNhc2VJbnNlbnNpdGl2ZTpuPT09bnVsbD8hMDpufSkpKX0pfSk7SXQoInNlYXJjaC5maXhlZCgpIixmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuaXRlcmF0b3IoITAsInRhYmxlIixmdW5jdGlvbihuKXt2YXIgcz1uLnNlYXJjaEZpeGVkO2lmKHQpe2lmKGU9PT12b2lkIDApcmV0dXJuIHNbdF07ZT09PW51bGw/ZGVsZXRlIHNbdF06c1t0XT1lfWVsc2UgcmV0dXJuIE9iamVjdC5rZXlzKHMpO3JldHVybiB0aGlzfSk7cmV0dXJuIHQhPT12b2lkIDAmJmU9PT12b2lkIDA/clswXTpyfSk7UXQoImNvbHVtbnMoKS5zZWFyY2goKSIsImNvbHVtbigpLnNlYXJjaCgpIixmdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY29sdW1uIixmdW5jdGlvbihzLGEpe3ZhciBsPXMuYW9QcmVTZWFyY2hDb2xzO2lmKHQ9PT12b2lkIDApcmV0dXJuIGxbYV0uc2VhcmNoO3Mub0ZlYXR1cmVzLmJGaWx0ZXImJih0eXBlb2YgZT09Im9iamVjdCI/Vy5leHRlbmQobFthXSxlLHtzZWFyY2g6dH0pOlcuZXh0ZW5kKGxbYV0se3NlYXJjaDp0LHJlZ2V4OmU9PT1udWxsPyExOmUsc21hcnQ6cj09PW51bGw/ITA6cixjYXNlSW5zZW5zaXRpdmU6bj09PW51bGw/ITA6bn0pLEdyKHMscy5vUHJldmlvdXNTZWFyY2gpKX0pfSk7SXQoWyJjb2x1bW5zKCkuc2VhcmNoLmZpeGVkKCkiLCJjb2x1bW4oKS5zZWFyY2guZml4ZWQoKSJdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5pdGVyYXRvcighMCwiY29sdW1uIixmdW5jdGlvbihuLHMpe3ZhciBhPW4uYW9Db2x1bW5zW3NdLnNlYXJjaEZpeGVkO2lmKHQpe2lmKGU9PT12b2lkIDApcmV0dXJuIGFbdF07ZT09PW51bGw/ZGVsZXRlIGFbdF06YVt0XT1lfWVsc2UgcmV0dXJuIE9iamVjdC5rZXlzKGEpO3JldHVybiB0aGlzfSk7cmV0dXJuIHQhPT12b2lkIDAmJmU9PT12b2lkIDA/clswXTpyfSk7SXQoInN0YXRlKCkiLGZ1bmN0aW9uKHQsZSl7aWYoIXQpcmV0dXJuIHRoaXMuY29udGV4dC5sZW5ndGg/dGhpcy5jb250ZXh0WzBdLm9TYXZlZFN0YXRlOm51bGw7dmFyIHI9Vy5leHRlbmQoITAse30sdCk7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihuKXtlIT09ITEmJihyLnRpbWU9K25ldyBEYXRlKzEwMCksaGkobixyLGZ1bmN0aW9uKCl7fSl9KX0pO0l0KCJzdGF0ZS5jbGVhcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24odCl7dC5mblN0YXRlU2F2ZUNhbGxiYWNrLmNhbGwodC5vSW5zdGFuY2UsdCx7fSl9KX0pO0l0KCJzdGF0ZS5sb2FkZWQoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZXh0Lmxlbmd0aD90aGlzLmNvbnRleHRbMF0ub0xvYWRlZFN0YXRlOm51bGx9KTtJdCgic3RhdGUuc2F2ZSgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24odCl7SW4odCl9KX0pO3Z0LnVzZT1mdW5jdGlvbih0LGUpe2U9PT0ibGliInx8dC5mbj9XPXQ6ZT09IndpbiJ8fHQuZG9jdW1lbnQ/KHdpbmRvdz10LGRvY3VtZW50PXQuZG9jdW1lbnQpOihlPT09ImRhdGV0aW1lInx8dC50eXBlPT09IkRhdGVUaW1lIikmJih2dC5EYXRlVGltZT10KX07dnQuZmFjdG9yeT1mdW5jdGlvbih0LGUpe3ZhciByPSExO3JldHVybiB0JiZ0LmRvY3VtZW50JiYod2luZG93PXQsZG9jdW1lbnQ9dC5kb2N1bWVudCksZSYmZS5mbiYmZS5mbi5qcXVlcnkmJihXPWUscj0hMCkscn07dnQudmVyc2lvbkNoZWNrPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWU/ZS5zcGxpdCgiLiIpOnZ0LnZlcnNpb24uc3BsaXQoIi4iKSxuPXQuc3BsaXQoIi4iKSxzLGEsbD0wLGM9bi5sZW5ndGg7bDxjO2wrKylpZihzPXBhcnNlSW50KHJbbF0sMTApfHwwLGE9cGFyc2VJbnQobltsXSwxMCl8fDAscyE9PWEpcmV0dXJuIHM+YTtyZXR1cm4hMH07dnQuaXNEYXRhVGFibGU9ZnVuY3Rpb24odCl7dmFyIGU9Vyh0KS5nZXQoMCkscj0hMTtyZXR1cm4gdCBpbnN0YW5jZW9mIHZ0LkFwaT8hMDooVy5lYWNoKHZ0LnNldHRpbmdzLGZ1bmN0aW9uKG4scyl7dmFyIGE9cy5uU2Nyb2xsSGVhZD9XKCJ0YWJsZSIscy5uU2Nyb2xsSGVhZClbMF06bnVsbCxsPXMublNjcm9sbEZvb3Q/VygidGFibGUiLHMublNjcm9sbEZvb3QpWzBdOm51bGw7KHMublRhYmxlPT09ZXx8YT09PWV8fGw9PT1lKSYmKHI9ITApfSkscil9O3Z0LnRhYmxlcz1mdW5jdGlvbih0KXt2YXIgZT0hMTtXLmlzUGxhaW5PYmplY3QodCkmJihlPXQuYXBpLHQ9dC52aXNpYmxlKTt2YXIgcj12dC5zZXR0aW5ncy5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuISEoIXR8fHQmJlcobi5uVGFibGUpLmlzKCI6dmlzaWJsZSIpKX0pLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi5uVGFibGV9KTtyZXR1cm4gZT9uZXcgV3Qocik6cn07dnQuY2FtZWxUb0h1bmdhcmlhbj1lcjtJdCgiJCgpIixmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMucm93cyhlKS5ub2RlcygpLG49VyhyKTtyZXR1cm4gVyhbXS5jb25jYXQobi5maWx0ZXIodCkudG9BcnJheSgpLG4uZmluZCh0KS50b0FycmF5KCkpKX0pO1cuZWFjaChbIm9uIiwib25lIiwib2ZmIl0sZnVuY3Rpb24odCxlKXtJdChlKyIoKSIsZnVuY3Rpb24oKXt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3JbMF09clswXS5zcGxpdCgvXHMvKS5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIHMubWF0Y2goL1wuZHRcYi8pP3M6cysiLmR0In0pLmpvaW4oIiAiKTt2YXIgbj1XKHRoaXMudGFibGVzKCkubm9kZXMoKSk7cmV0dXJuIG5bZV0uYXBwbHkobixyKSx0aGlzfSl9KTtJdCgiY2xlYXIoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHQpe0NpKHQpfSl9KTtJdCgiZXJyb3IoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlKXtQZShlLDAsdCl9KX0pO0l0KCJzZXR0aW5ncygpIixmdW5jdGlvbigpe3JldHVybiBuZXcgV3QodGhpcy5jb250ZXh0LHRoaXMuY29udGV4dCl9KTtJdCgiaW5pdCgpIixmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29udGV4dDtyZXR1cm4gdC5sZW5ndGg/dFswXS5vSW5pdDpudWxsfSk7SXQoImRhdGEoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHQpe3JldHVybiB4ZSh0LmFvRGF0YSwiX2FEYXRhIil9KS5mbGF0dGVuKCl9KTtJdCgidHJpZ2dlcigpIixmdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihuKXtyZXR1cm4gWnQobixudWxsLHQsZSxyKX0pLmZsYXR0ZW4oKX0pO0l0KCJyZWFkeSgpIixmdW5jdGlvbih0KXt2YXIgZT10aGlzLmNvbnRleHQ7cmV0dXJuIHQ/dGhpcy50YWJsZXMoKS5ldmVyeShmdW5jdGlvbigpe3RoaXMuY29udGV4dFswXS5fYkluaXRDb21wbGV0ZT90LmNhbGwodGhpcyk6dGhpcy5vbigiaW5pdCIsZnVuY3Rpb24oKXt0LmNhbGwodGhpcyl9KX0pOmUubGVuZ3RoP2VbMF0uX2JJbml0Q29tcGxldGV8fCExOm51bGx9KTtJdCgiZGVzdHJveSgpIixmdW5jdGlvbih0KXtyZXR1cm4gdD10fHwhMSx0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oZSl7dmFyIHI9ZS5vQ2xhc3NlcyxuPWUublRhYmxlLHM9ZS5uVEJvZHksYT1lLm5USGVhZCxsPWUublRGb290LGM9VyhuKSxwPVcocyksYj1XKGUublRhYmxlV3JhcHBlciksbT1lLmFvRGF0YS5tYXAoZnVuY3Rpb24oRil7cmV0dXJuIEY/Ri5uVHI6bnVsbH0pLHk9ci5vcmRlcjtlLmJEZXN0cm95aW5nPSEwLFp0KGUsImFvRGVzdHJveUNhbGxiYWNrIiwiZGVzdHJveSIsW2VdLCEwKSx0fHxuZXcgV3QoZSkuY29sdW1ucygpLnZpc2libGUoITApLGIub2ZmKCIuRFQiKS5maW5kKCI6bm90KHRib2R5ICopIikub2ZmKCIuRFQiKSxXKHdpbmRvdykub2ZmKCIuRFQtIitlLnNJbnN0YW5jZSksbiE9YS5wYXJlbnROb2RlJiYoYy5jaGlsZHJlbigidGhlYWQiKS5kZXRhY2goKSxjLmFwcGVuZChhKSksbCYmbiE9bC5wYXJlbnROb2RlJiYoYy5jaGlsZHJlbigidGZvb3QiKS5kZXRhY2goKSxjLmFwcGVuZChsKSksZS5jb2xncm91cC5yZW1vdmUoKSxlLmFhU29ydGluZz1bXSxlLmFhU29ydGluZ0ZpeGVkPVtdLGZpKGUpLFcoInRoLCB0ZCIsYSkucmVtb3ZlQ2xhc3MoeS5jYW5Bc2MrIiAiK3kuY2FuRGVzYysiICIreS5pc0FzYysiICIreS5pc0Rlc2MpLmNzcygid2lkdGgiLCIiKSxwLmNoaWxkcmVuKCkuZGV0YWNoKCkscC5hcHBlbmQobSk7dmFyIFQ9ZS5uVGFibGVXcmFwcGVyLnBhcmVudE5vZGUsdz1lLm5UYWJsZVdyYXBwZXIubmV4dFNpYmxpbmcsaz10PyJyZW1vdmUiOiJkZXRhY2giO2Nba10oKSxiW2tdKCksIXQmJlQmJihULmluc2VydEJlZm9yZShuLHcpLGMuY3NzKCJ3aWR0aCIsZS5zRGVzdHJveVdpZHRoKS5yZW1vdmVDbGFzcyhyLnRhYmxlKSk7dmFyIFA9dnQuc2V0dGluZ3MuaW5kZXhPZihlKTtQIT09LTEmJnZ0LnNldHRpbmdzLnNwbGljZShQLDEpfSl9KTtXLmVhY2goWyJjb2x1bW4iLCJyb3ciLCJjZWxsIl0sZnVuY3Rpb24odCxlKXtJdChlKyJzKCkuZXZlcnkoKSIsZnVuY3Rpb24ocil7dmFyIG49dGhpcy5zZWxlY3Rvci5vcHRzLHM9dGhpcyxhLGw9MDtyZXR1cm4gdGhpcy5pdGVyYXRvcigiZXZlcnkiLGZ1bmN0aW9uKGMscCxiKXthPXNbZV0ocCxuKSxlPT09ImNlbGwiP3IuY2FsbChhLGFbMF1bMF0ucm93LGFbMF1bMF0uY29sdW1uLGIsbCk6ci5jYWxsKGEscCxiLGwpLGwrK30pfSl9KTtJdCgiaTE4bigpIixmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5jb250ZXh0WzBdLHM9SXIodCkobi5vTGFuZ3VhZ2UpO3JldHVybiBzPT09dm9pZCAwJiYocz1lKSxXLmlzUGxhaW5PYmplY3QocykmJihzPXIhPT12b2lkIDAmJnNbcl0hPT12b2lkIDA/c1tyXTpzLl8pLHR5cGVvZiBzPT0ic3RyaW5nIj9zLnJlcGxhY2UoIiVkIixyKTpzfSk7dnQudmVyc2lvbj0iMi4wLjUiO3Z0LnNldHRpbmdzPVtdO3Z0Lm1vZGVscz17fTt2dC5tb2RlbHMub1NlYXJjaD17Y2FzZUluc2Vuc2l0aXZlOiEwLHNlYXJjaDoiIixyZWdleDohMSxzbWFydDohMCxyZXR1cm46ITF9O3Z0Lm1vZGVscy5vUm93PXtuVHI6bnVsbCxhbkNlbGxzOm51bGwsX2FEYXRhOltdLF9hU29ydERhdGE6bnVsbCxfYUZpbHRlckRhdGE6bnVsbCxfc0ZpbHRlclJvdzpudWxsLHNyYzpudWxsLGlkeDotMSxkaXNwbGF5RGF0YTpudWxsfTt2dC5tb2RlbHMub0NvbHVtbj17aWR4Om51bGwsYURhdGFTb3J0Om51bGwsYXNTb3J0aW5nOm51bGwsYlNlYXJjaGFibGU6bnVsbCxiU29ydGFibGU6bnVsbCxiVmlzaWJsZTpudWxsLF9zTWFudWFsVHlwZTpudWxsLF9iQXR0clNyYzohMSxmbkNyZWF0ZWRDZWxsOm51bGwsZm5HZXREYXRhOm51bGwsZm5TZXREYXRhOm51bGwsbURhdGE6bnVsbCxtUmVuZGVyOm51bGwsc0NsYXNzOm51bGwsc0NvbnRlbnRQYWRkaW5nOm51bGwsc0RlZmF1bHRDb250ZW50Om51bGwsc05hbWU6bnVsbCxzU29ydERhdGFUeXBlOiJzdGQiLHNTb3J0aW5nQ2xhc3M6bnVsbCxzVGl0bGU6bnVsbCxzVHlwZTpudWxsLHNXaWR0aDpudWxsLHNXaWR0aE9yaWc6bnVsbCxtYXhMZW5TdHJpbmc6bnVsbCxzZWFyY2hGaXhlZDpudWxsfTt2dC5kZWZhdWx0cz17YWFEYXRhOm51bGwsYWFTb3J0aW5nOltbMCwiYXNjIl1dLGFhU29ydGluZ0ZpeGVkOltdLGFqYXg6bnVsbCxhTGVuZ3RoTWVudTpbMTAsMjUsNTAsMTAwXSxhb0NvbHVtbnM6bnVsbCxhb0NvbHVtbkRlZnM6bnVsbCxhb1NlYXJjaENvbHM6W10sYkF1dG9XaWR0aDohMCxiRGVmZXJSZW5kZXI6ITAsYkRlc3Ryb3k6ITEsYkZpbHRlcjohMCxiSW5mbzohMCxiTGVuZ3RoQ2hhbmdlOiEwLGJQYWdpbmF0ZTohMCxiUHJvY2Vzc2luZzohMSxiUmV0cmlldmU6ITEsYlNjcm9sbENvbGxhcHNlOiExLGJTZXJ2ZXJTaWRlOiExLGJTb3J0OiEwLGJTb3J0TXVsdGk6ITAsYlNvcnRDZWxsc1RvcDpudWxsLGJTb3J0Q2xhc3NlczohMCxiU3RhdGVTYXZlOiExLGZuQ3JlYXRlZFJvdzpudWxsLGZuRHJhd0NhbGxiYWNrOm51bGwsZm5Gb290ZXJDYWxsYmFjazpudWxsLGZuRm9ybWF0TnVtYmVyOmZ1bmN0aW9uKHQpe3JldHVybiB0LnRvU3RyaW5nKCkucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg/IVxkKSkvZyx0aGlzLm9MYW5ndWFnZS5zVGhvdXNhbmRzKX0sZm5IZWFkZXJDYWxsYmFjazpudWxsLGZuSW5mb0NhbGxiYWNrOm51bGwsZm5Jbml0Q29tcGxldGU6bnVsbCxmblByZURyYXdDYWxsYmFjazpudWxsLGZuUm93Q2FsbGJhY2s6bnVsbCxmblN0YXRlTG9hZENhbGxiYWNrOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gSlNPTi5wYXJzZSgodC5pU3RhdGVEdXJhdGlvbj09PS0xP3Nlc3Npb25TdG9yYWdlOmxvY2FsU3RvcmFnZSkuZ2V0SXRlbSgiRGF0YVRhYmxlc18iK3Quc0luc3RhbmNlKyJfIitsb2NhdGlvbi5wYXRobmFtZSkpfWNhdGNoe3JldHVybnt9fX0sZm5TdGF0ZUxvYWRQYXJhbXM6bnVsbCxmblN0YXRlTG9hZGVkOm51bGwsZm5TdGF0ZVNhdmVDYWxsYmFjazpmdW5jdGlvbih0LGUpe3RyeXsodC5pU3RhdGVEdXJhdGlvbj09PS0xP3Nlc3Npb25TdG9yYWdlOmxvY2FsU3RvcmFnZSkuc2V0SXRlbSgiRGF0YVRhYmxlc18iK3Quc0luc3RhbmNlKyJfIitsb2NhdGlvbi5wYXRobmFtZSxKU09OLnN0cmluZ2lmeShlKSl9Y2F0Y2h7fX0sZm5TdGF0ZVNhdmVQYXJhbXM6bnVsbCxpU3RhdGVEdXJhdGlvbjo3MjAwLGlEaXNwbGF5TGVuZ3RoOjEwLGlEaXNwbGF5U3RhcnQ6MCxpVGFiSW5kZXg6MCxvQ2xhc3Nlczp7fSxvTGFuZ3VhZ2U6e29BcmlhOntvcmRlcmFibGU6IjogQWN0aXZhdGUgdG8gc29ydCIsb3JkZXJhYmxlUmV2ZXJzZToiOiBBY3RpdmF0ZSB0byBpbnZlcnQgc29ydGluZyIsb3JkZXJhYmxlUmVtb3ZlOiI6IEFjdGl2YXRlIHRvIHJlbW92ZSBzb3J0aW5nIixwYWdpbmF0ZTp7Zmlyc3Q6IkZpcnN0IixsYXN0OiJMYXN0IixuZXh0OiJOZXh0IixwcmV2aW91czoiUHJldmlvdXMifX0sb1BhZ2luYXRlOntzRmlyc3Q6Ilx4QUIiLHNMYXN0OiJceEJCIixzTmV4dDoiXHUyMDNBIixzUHJldmlvdXM6Ilx1MjAzOSJ9LGVudHJpZXM6e186ImVudHJpZXMiLDE6ImVudHJ5In0sc0VtcHR5VGFibGU6Ik5vIGRhdGEgYXZhaWxhYmxlIGluIHRhYmxlIixzSW5mbzoiU2hvd2luZyBfU1RBUlRfIHRvIF9FTkRfIG9mIF9UT1RBTF8gX0VOVFJJRVMtVE9UQUxfIixzSW5mb0VtcHR5OiJTaG93aW5nIDAgdG8gMCBvZiAwIF9FTlRSSUVTLVRPVEFMXyIsc0luZm9GaWx0ZXJlZDoiKGZpbHRlcmVkIGZyb20gX01BWF8gdG90YWwgX0VOVFJJRVMtTUFYXykiLHNJbmZvUG9zdEZpeDoiIixzRGVjaW1hbDoiIixzVGhvdXNhbmRzOiIsIixzTGVuZ3RoTWVudToiX01FTlVfIF9FTlRSSUVTXyBwZXIgcGFnZSIsc0xvYWRpbmdSZWNvcmRzOiJMb2FkaW5nLi4uIixzUHJvY2Vzc2luZzoiIixzU2VhcmNoOiJTZWFyY2g6IixzU2VhcmNoUGxhY2Vob2xkZXI6IiIsc1VybDoiIixzWmVyb1JlY29yZHM6Ik5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQifSxvU2VhcmNoOlcuZXh0ZW5kKHt9LHZ0Lm1vZGVscy5vU2VhcmNoKSxsYXlvdXQ6e3RvcFN0YXJ0OiJwYWdlTGVuZ3RoIix0b3BFbmQ6InNlYXJjaCIsYm90dG9tU3RhcnQ6ImluZm8iLGJvdHRvbUVuZDoicGFnaW5nIn0sc0RvbTpudWxsLHNlYXJjaERlbGF5Om51bGwsc1BhZ2luYXRpb25UeXBlOiJmdWxsX251bWJlcnMiLHNTY3JvbGxYOiIiLHNTY3JvbGxYSW5uZXI6IiIsc1Njcm9sbFk6IiIsc1NlcnZlck1ldGhvZDoiR0VUIixyZW5kZXJlcjpudWxsLHJvd0lkOiJEVF9Sb3dJZCIsY2FwdGlvbjpudWxsfTtDbih2dC5kZWZhdWx0cyk7dnQuZGVmYXVsdHMuY29sdW1uPXthRGF0YVNvcnQ6bnVsbCxpRGF0YVNvcnQ6LTEsYXJpYVRpdGxlOiIiLGFzU29ydGluZzpbImFzYyIsImRlc2MiLCIiXSxiU2VhcmNoYWJsZTohMCxiU29ydGFibGU6ITAsYlZpc2libGU6ITAsZm5DcmVhdGVkQ2VsbDpudWxsLG1EYXRhOm51bGwsbVJlbmRlcjpudWxsLHNDZWxsVHlwZToidGQiLHNDbGFzczoiIixzQ29udGVudFBhZGRpbmc6IiIsc0RlZmF1bHRDb250ZW50Om51bGwsc05hbWU6IiIsc1NvcnREYXRhVHlwZToic3RkIixzVGl0bGU6bnVsbCxzVHlwZTpudWxsLHNXaWR0aDpudWxsfTtDbih2dC5kZWZhdWx0cy5jb2x1bW4pO3Z0Lm1vZGVscy5vU2V0dGluZ3M9e29GZWF0dXJlczp7YkF1dG9XaWR0aDpudWxsLGJEZWZlclJlbmRlcjpudWxsLGJGaWx0ZXI6bnVsbCxiSW5mbzohMCxiTGVuZ3RoQ2hhbmdlOiEwLGJQYWdpbmF0ZTpudWxsLGJQcm9jZXNzaW5nOm51bGwsYlNlcnZlclNpZGU6bnVsbCxiU29ydDpudWxsLGJTb3J0TXVsdGk6bnVsbCxiU29ydENsYXNzZXM6bnVsbCxiU3RhdGVTYXZlOm51bGx9LG9TY3JvbGw6e2JDb2xsYXBzZTpudWxsLGlCYXJXaWR0aDowLHNYOm51bGwsc1hJbm5lcjpudWxsLHNZOm51bGx9LG9MYW5ndWFnZTp7Zm5JbmZvQ2FsbGJhY2s6bnVsbH0sb0Jyb3dzZXI6e2JTY3JvbGxiYXJMZWZ0OiExLGJhcldpZHRoOjB9LGFqYXg6bnVsbCxhYW5GZWF0dXJlczpbXSxhb0RhdGE6W10sYWlEaXNwbGF5OltdLGFpRGlzcGxheU1hc3RlcjpbXSxhSWRzOnt9LGFvQ29sdW1uczpbXSxhb0hlYWRlcjpbXSxhb0Zvb3RlcjpbXSxvUHJldmlvdXNTZWFyY2g6e30sc2VhcmNoRml4ZWQ6e30sYW9QcmVTZWFyY2hDb2xzOltdLGFhU29ydGluZzpudWxsLGFhU29ydGluZ0ZpeGVkOltdLHNEZXN0cm95V2lkdGg6MCxhb1Jvd0NhbGxiYWNrOltdLGFvSGVhZGVyQ2FsbGJhY2s6W10sYW9Gb290ZXJDYWxsYmFjazpbXSxhb0RyYXdDYWxsYmFjazpbXSxhb1Jvd0NyZWF0ZWRDYWxsYmFjazpbXSxhb1ByZURyYXdDYWxsYmFjazpbXSxhb0luaXRDb21wbGV0ZTpbXSxhb1N0YXRlU2F2ZVBhcmFtczpbXSxhb1N0YXRlTG9hZFBhcmFtczpbXSxhb1N0YXRlTG9hZGVkOltdLHNUYWJsZUlkOiIiLG5UYWJsZTpudWxsLG5USGVhZDpudWxsLG5URm9vdDpudWxsLG5UQm9keTpudWxsLG5UYWJsZVdyYXBwZXI6bnVsbCxiSW5pdGlhbGlzZWQ6ITEsYW9PcGVuUm93czpbXSxzRG9tOm51bGwsc2VhcmNoRGVsYXk6bnVsbCxzUGFnaW5hdGlvblR5cGU6InR3b19idXR0b24iLHBhZ2luZ0NvbnRyb2xzOjAsaVN0YXRlRHVyYXRpb246MCxhb1N0YXRlU2F2ZTpbXSxhb1N0YXRlTG9hZDpbXSxvU2F2ZWRTdGF0ZTpudWxsLG9Mb2FkZWRTdGF0ZTpudWxsLGJBamF4RGF0YUdldDohMCxqcVhIUjpudWxsLGpzb246dm9pZCAwLG9BamF4RGF0YTp2b2lkIDAsc1NlcnZlck1ldGhvZDpudWxsLGZuRm9ybWF0TnVtYmVyOm51bGwsYUxlbmd0aE1lbnU6bnVsbCxpRHJhdzowLGJEcmF3aW5nOiExLGlEcmF3RXJyb3I6LTEsX2lEaXNwbGF5TGVuZ3RoOjEwLF9pRGlzcGxheVN0YXJ0OjAsX2lSZWNvcmRzVG90YWw6MCxfaVJlY29yZHNEaXNwbGF5OjAsb0NsYXNzZXM6e30sYkZpbHRlcmVkOiExLGJTb3J0ZWQ6ITEsYlNvcnRDZWxsc1RvcDpudWxsLG9Jbml0Om51bGwsYW9EZXN0cm95Q2FsbGJhY2s6W10sZm5SZWNvcmRzVG90YWw6ZnVuY3Rpb24oKXtyZXR1cm4gQmUodGhpcyk9PSJzc3AiP3RoaXMuX2lSZWNvcmRzVG90YWwqMTp0aGlzLmFpRGlzcGxheU1hc3Rlci5sZW5ndGh9LGZuUmVjb3Jkc0Rpc3BsYXk6ZnVuY3Rpb24oKXtyZXR1cm4gQmUodGhpcyk9PSJzc3AiP3RoaXMuX2lSZWNvcmRzRGlzcGxheSoxOnRoaXMuYWlEaXNwbGF5Lmxlbmd0aH0sZm5EaXNwbGF5RW5kOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5faURpc3BsYXlMZW5ndGgsZT10aGlzLl9pRGlzcGxheVN0YXJ0LHI9ZSt0LG49dGhpcy5haURpc3BsYXkubGVuZ3RoLHM9dGhpcy5vRmVhdHVyZXMsYT1zLmJQYWdpbmF0ZTtyZXR1cm4gcy5iU2VydmVyU2lkZT9hPT09ITF8fHQ9PT0tMT9lK246TWF0aC5taW4oZSt0LHRoaXMuX2lSZWNvcmRzRGlzcGxheSk6IWF8fHI+bnx8dD09PS0xP246cn0sb0luc3RhbmNlOm51bGwsc0luc3RhbmNlOm51bGwsaVRhYkluZGV4OjAsblNjcm9sbEhlYWQ6bnVsbCxuU2Nyb2xsRm9vdDpudWxsLGFMYXN0U29ydDpbXSxvUGx1Z2luczp7fSxyb3dJZEZuOm51bGwscm93SWQ6bnVsbCxjYXB0aW9uOiIiLGNhcHRpb25Ob2RlOm51bGwsY29sZ3JvdXA6bnVsbH07dmFyIFRsPXZ0LmV4dC5wYWdlcjtXLmV4dGVuZChUbCx7c2ltcGxlOmZ1bmN0aW9uKCl7cmV0dXJuWyJwcmV2aW91cyIsIm5leHQiXX0sZnVsbDpmdW5jdGlvbigpe3JldHVyblsiZmlyc3QiLCJwcmV2aW91cyIsIm5leHQiLCJsYXN0Il19LG51bWJlcnM6ZnVuY3Rpb24oKXtyZXR1cm5bIm51bWJlcnMiXX0sc2ltcGxlX251bWJlcnM6ZnVuY3Rpb24oKXtyZXR1cm5bInByZXZpb3VzIiwibnVtYmVycyIsIm5leHQiXX0sZnVsbF9udW1iZXJzOmZ1bmN0aW9uKCl7cmV0dXJuWyJmaXJzdCIsInByZXZpb3VzIiwibnVtYmVycyIsIm5leHQiLCJsYXN0Il19LGZpcnN0X2xhc3Q6ZnVuY3Rpb24oKXtyZXR1cm5bImZpcnN0IiwibGFzdCJdfSxmaXJzdF9sYXN0X251bWJlcnM6ZnVuY3Rpb24oKXtyZXR1cm5bImZpcnN0IiwibnVtYmVycyIsImxhc3QiXX0sX251bWJlcnM6YnMsbnVtYmVyc19sZW5ndGg6N30pO1cuZXh0ZW5kKCEwLHZ0LmV4dC5yZW5kZXJlcix7cGFnaW5nQnV0dG9uOntfOmZ1bmN0aW9uKHQsZSxyLG4scyl7dmFyIGE9dC5vQ2xhc3Nlcy5wYWdpbmcsbD1bYS5idXR0b25dLGM7cmV0dXJuIG4mJmwucHVzaChhLmFjdGl2ZSkscyYmbC5wdXNoKGEuZGlzYWJsZWQpLGU9PT0iZWxsaXBzaXMiP2M9VygnPHNwYW4gY2xhc3M9ImVsbGlwc2lzIj48L3NwYW4+JykuaHRtbChyKVswXTpjPVcoIjxidXR0b24+Iix7Y2xhc3M6bC5qb2luKCIgIikscm9sZToibGluayIsdHlwZToiYnV0dG9uIn0pLmh0bWwocikse2Rpc3BsYXk6YyxjbGlja2VyOmN9fX0scGFnaW5nQ29udGFpbmVyOntfOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9fX0pO3ZhciBCbj1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gWmUocil8fHR5cGVvZiByIT0ic3RyaW5nInx8KHI9ci5yZXBsYWNlKGpvLCIgIiksdCYmKHI9aHIocikpLGUmJihyPW1uKHIsITEpKSkscn19O2Z1bmN0aW9uIGNzKHQpe3JldHVybiB0LnJlcGxhY2UoL1tcV10vZywiXyIpfWZ1bmN0aW9uIExhKHQsZSxyLG4scyl7cmV0dXJuIHdpbmRvdy5tb21lbnQ/dFtlXShzKTp3aW5kb3cubHV4b24/dFtyXShzKTpuP3Rbbl0ocyk6dH12YXIgemE9ITE7ZnVuY3Rpb24gX24odCxlLHIpe3ZhciBuO2lmKHdpbmRvdy5tb21lbnQpe2lmKG49d2luZG93Lm1vbWVudC51dGModCxlLHIsITApLCFuLmlzVmFsaWQoKSlyZXR1cm4gbnVsbH1lbHNlIGlmKHdpbmRvdy5sdXhvbil7aWYobj1lJiZ0eXBlb2YgdD09InN0cmluZyI/d2luZG93Lmx1eG9uLkRhdGVUaW1lLmZyb21Gb3JtYXQodCxlKTp3aW5kb3cubHV4b24uRGF0ZVRpbWUuZnJvbUlTTyh0KSwhbi5pc1ZhbGlkKXJldHVybiBudWxsO24uc2V0TG9jYWxlKHIpfWVsc2UgZT8oemF8fGFsZXJ0KCJEYXRhVGFibGVzIHdhcm5pbmc6IEZvcm1hdHRlZCBkYXRlIHdpdGhvdXQgTW9tZW50LmpzIG9yIEx1eG9uIC0gaHR0cHM6Ly9kYXRhdGFibGVzLm5ldC90bi8xNyIpLHphPSEwKTpuPW5ldyBEYXRlKHQpO3JldHVybiBufWZ1bmN0aW9uIG9pKHQpe3JldHVybiBmdW5jdGlvbihlLHIsbixzKXthcmd1bWVudHMubGVuZ3RoPT09MD8obj0iZW4iLHI9bnVsbCxlPW51bGwpOmFyZ3VtZW50cy5sZW5ndGg9PT0xPyhuPSJlbiIscj1lLGU9bnVsbCk6YXJndW1lbnRzLmxlbmd0aD09PTImJihuPXIscj1lLGU9bnVsbCk7dmFyIGE9ImRhdGV0aW1lIisocj8iLSIrY3Mocik6IiIpO3JldHVybiB2dC5leHQudHlwZS5vcmRlclthXXx8dnQudHlwZShhLHtkZXRlY3Q6ZnVuY3Rpb24obCl7cmV0dXJuIGw9PT1hP2E6ITF9LG9yZGVyOntwcmU6ZnVuY3Rpb24obCl7cmV0dXJuIGwudmFsdWVPZigpfX0sY2xhc3NOYW1lOiJkdC1yaWdodCJ9KSxmdW5jdGlvbihsLGMpe2lmKGw9PW51bGwpaWYocz09PSItLW5vdyIpe3ZhciBwPW5ldyBEYXRlO2w9bmV3IERhdGUoRGF0ZS5VVEMocC5nZXRGdWxsWWVhcigpLHAuZ2V0TW9udGgoKSxwLmdldERhdGUoKSxwLmdldEhvdXJzKCkscC5nZXRNaW51dGVzKCkscC5nZXRTZWNvbmRzKCkpKX1lbHNlIGw9IiI7aWYoYz09PSJ0eXBlIilyZXR1cm4gYTtpZihsPT09IiIpcmV0dXJuIGMhPT0ic29ydCI/IiI6X24oIjAwMDAtMDEtMDEgMDA6MDA6MDAiLG51bGwsbik7aWYociE9PW51bGwmJmU9PT1yJiZjIT09InNvcnQiJiZjIT09InR5cGUiJiYhKGwgaW5zdGFuY2VvZiBEYXRlKSlyZXR1cm4gbDt2YXIgYj1fbihsLGUsbik7aWYoYj09PW51bGwpcmV0dXJuIGw7aWYoYz09PSJzb3J0IilyZXR1cm4gYjt2YXIgbT1yPT09bnVsbD9MYShiLCJ0b0RhdGUiLCJ0b0pTRGF0ZSIsIiIpW3RdKCk6TGEoYiwiZm9ybWF0IiwidG9Gb3JtYXQiLCJ0b0lTT1N0cmluZyIscik7cmV0dXJuIGM9PT0iZGlzcGxheSI/RHIobSk6bX19fXZhciBmcz0iLCIsaHM9Ii4iO2lmKHdpbmRvdy5JbnRsIT09dm9pZCAwKXRyeXtmb3IoU3I9bmV3IEludGwuTnVtYmVyRm9ybWF0KCkuZm9ybWF0VG9QYXJ0cygxMDAwMDAuMSksSWU9MDtJZTxTci5sZW5ndGg7SWUrKylTcltJZV0udHlwZT09PSJncm91cCI/ZnM9U3JbSWVdLnZhbHVlOlNyW0llXS50eXBlPT09ImRlY2ltYWwiJiYoaHM9U3JbSWVdLnZhbHVlKX1jYXRjaHt9dmFyIFNyLEllO3Z0LmRhdGV0aW1lPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ImRhdGV0aW1lLWRldGVjdC0iK2NzKHQpO2V8fChlPSJlbiIpLHZ0LmV4dC50eXBlLm9yZGVyW3JdfHx2dC50eXBlKHIse2RldGVjdDpmdW5jdGlvbihuKXt2YXIgcz1fbihuLHQsZSk7cmV0dXJuIG49PT0iInx8cz9yOiExfSxvcmRlcjp7cHJlOmZ1bmN0aW9uKG4pe3JldHVybiBfbihuLHQsZSl8fDB9fSxjbGFzc05hbWU6ImR0LXJpZ2h0In0pfTt2dC5yZW5kZXI9e2RhdGU6b2koInRvTG9jYWxlRGF0ZVN0cmluZyIpLGRhdGV0aW1lOm9pKCJ0b0xvY2FsZVN0cmluZyIpLHRpbWU6b2koInRvTG9jYWxlVGltZVN0cmluZyIpLG51bWJlcjpmdW5jdGlvbih0LGUscixuLHMpe3JldHVybiB0PT1udWxsJiYodD1mcyksZT09bnVsbCYmKGU9aHMpLHtkaXNwbGF5OmZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT0ibnVtYmVyIiYmdHlwZW9mIGEhPSJzdHJpbmcifHxhPT09IiJ8fGE9PT1udWxsKXJldHVybiBhO3ZhciBsPWE8MD8iLSI6IiIsYz1wYXJzZUZsb2F0KGEpLHA9TWF0aC5hYnMoYyk7aWYocD49MWUxMXx8cDwxZS00JiZwIT09MCl7dmFyIGI9Yy50b0V4cG9uZW50aWFsKHIpLnNwbGl0KC9lXCs/Lyk7cmV0dXJuIGJbMF0rIiB4IDEwPHN1cD4iK2JbMV0rIjwvc3VwPiJ9aWYoaXNOYU4oYykpcmV0dXJuIERyKGEpO2M9Yy50b0ZpeGVkKHIpLGE9TWF0aC5hYnMoYyk7dmFyIG09cGFyc2VJbnQoYSwxMCkseT1yP2UrKGEtbSkudG9GaXhlZChyKS5zdWJzdHJpbmcoMik6IiI7cmV0dXJuIG09PT0wJiZwYXJzZUZsb2F0KHkpPT09MCYmKGw9IiIpLGwrKG58fCIiKSttLnRvU3RyaW5nKCkucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg/IVxkKSkvZyx0KSt5KyhzfHwiIil9fX0sdGV4dDpmdW5jdGlvbigpe3JldHVybntkaXNwbGF5OkRyLGZpbHRlcjpEcn19fTt2YXIgaGU9dnQuZXh0LnR5cGU7dnQudHlwZT1mdW5jdGlvbih0LGUscil7aWYoIWUpcmV0dXJue2NsYXNzTmFtZTpoZS5jbGFzc05hbWVbdF0sZGV0ZWN0OmhlLmRldGVjdC5maW5kKGZ1bmN0aW9uKGwpe3JldHVybiBsLm5hbWU9PT10fSksb3JkZXI6e3ByZTpoZS5vcmRlclt0KyItcHJlIl0sYXNjOmhlLm9yZGVyW3QrIi1hc2MiXSxkZXNjOmhlLm9yZGVyW3QrIi1kZXNjIl19LHJlbmRlcjpoZS5yZW5kZXJbdF0sc2VhcmNoOmhlLnNlYXJjaFt0XX07dmFyIG49ZnVuY3Rpb24obCxjKXtoZVtsXVt0XT1jfSxzPWZ1bmN0aW9uKGwpe3ZhciBjPWZ1bmN0aW9uKGIsbSl7dmFyIHk9bChiLG0pO3JldHVybiB5PT09ITA/dDp5fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoYywibmFtZSIse3ZhbHVlOnR9KTt2YXIgcD1oZS5kZXRlY3QuZmluZEluZGV4KGZ1bmN0aW9uKGIpe3JldHVybiBiLm5hbWU9PT10fSk7cD09PS0xP2hlLmRldGVjdC51bnNoaWZ0KGMpOmhlLmRldGVjdC5zcGxpY2UocCwxLGMpfSxhPWZ1bmN0aW9uKGwpe2hlLm9yZGVyW3QrIi1wcmUiXT1sLnByZSxoZS5vcmRlclt0KyItYXNjIl09bC5hc2MsaGUub3JkZXJbdCsiLWRlc2MiXT1sLmRlc2N9O3I9PT12b2lkIDAmJihyPWUsZT1udWxsKSxlPT09ImNsYXNzTmFtZSI/bigiY2xhc3NOYW1lIixyKTplPT09ImRldGVjdCI/cyhyKTplPT09Im9yZGVyIj9hKHIpOmU9PT0icmVuZGVyIj9uKCJyZW5kZXIiLHIpOmU9PT0ic2VhcmNoIj9uKCJzZWFyY2giLHIpOmV8fChyLmNsYXNzTmFtZSYmbigiY2xhc3NOYW1lIixyLmNsYXNzTmFtZSksci5kZXRlY3QhPT12b2lkIDAmJnMoci5kZXRlY3QpLHIub3JkZXImJmEoci5vcmRlciksci5yZW5kZXIhPT12b2lkIDAmJm4oInJlbmRlciIsci5yZW5kZXIpLHIuc2VhcmNoIT09dm9pZCAwJiZuKCJzZWFyY2giLHIuc2VhcmNoKSl9O3Z0LnR5cGVzPWZ1bmN0aW9uKCl7cmV0dXJuIGhlLmRldGVjdC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQubmFtZX0pfTt2dC50eXBlKCJzdHJpbmciLHtkZXRlY3Q6ZnVuY3Rpb24oKXtyZXR1cm4ic3RyaW5nIn0sb3JkZXI6e3ByZTpmdW5jdGlvbih0KXtyZXR1cm4gWmUodCk/IiI6dHlwZW9mIHQ9PSJzdHJpbmciP3QudG9Mb3dlckNhc2UoKTp0LnRvU3RyaW5nP3QudG9TdHJpbmcoKToiIn19LHNlYXJjaDpCbighMSwhMCl9KTt2dC50eXBlKCJodG1sIix7ZGV0ZWN0OmZ1bmN0aW9uKHQpe3JldHVybiBaZSh0KXx8dHlwZW9mIHQ9PSJzdHJpbmciJiZ0LmluZGV4T2YoIjwiKSE9PS0xPyJodG1sIjpudWxsfSxvcmRlcjp7cHJlOmZ1bmN0aW9uKHQpe3JldHVybiBaZSh0KT8iIjp0LnJlcGxhY2U/aHIodCkudHJpbSgpLnRvTG93ZXJDYXNlKCk6dCsiIn19LHNlYXJjaDpCbighMCwhMCl9KTt2dC50eXBlKCJkYXRlIix7Y2xhc3NOYW1lOiJkdC10eXBlLWRhdGUiLGRldGVjdDpmdW5jdGlvbih0KXtpZih0JiYhKHQgaW5zdGFuY2VvZiBEYXRlKSYmIVZvLnRlc3QodCkpcmV0dXJuIG51bGw7dmFyIGU9RGF0ZS5wYXJzZSh0KTtyZXR1cm4gZSE9PW51bGwmJiFpc05hTihlKXx8WmUodCk/ImRhdGUiOm51bGx9LG9yZGVyOntwcmU6ZnVuY3Rpb24odCl7dmFyIGU9RGF0ZS5wYXJzZSh0KTtyZXR1cm4gaXNOYU4oZSk/LTEvMDplfX19KTt2dC50eXBlKCJodG1sLW51bS1mbXQiLHtjbGFzc05hbWU6ImR0LXR5cGUtbnVtZXJpYyIsZGV0ZWN0OmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5vTGFuZ3VhZ2Uuc0RlY2ltYWw7cmV0dXJuIEhhKHQsciwhMCk/Imh0bWwtbnVtLWZtdCI6bnVsbH0sb3JkZXI6e3ByZTpmdW5jdGlvbih0LGUpe3ZhciByPWUub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBObih0LHIscGksYmkpfX0sc2VhcmNoOkJuKCEwLCEwKX0pO3Z0LnR5cGUoImh0bWwtbnVtIix7Y2xhc3NOYW1lOiJkdC10eXBlLW51bWVyaWMiLGRldGVjdDpmdW5jdGlvbih0LGUpe3ZhciByPWUub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBIYSh0LHIpPyJodG1sLW51bSI6bnVsbH0sb3JkZXI6e3ByZTpmdW5jdGlvbih0LGUpe3ZhciByPWUub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBObih0LHIscGkpfX0sc2VhcmNoOkJuKCEwLCEwKX0pO3Z0LnR5cGUoIm51bS1mbXQiLHtjbGFzc05hbWU6ImR0LXR5cGUtbnVtZXJpYyIsZGV0ZWN0OmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5vTGFuZ3VhZ2Uuc0RlY2ltYWw7cmV0dXJuIHZpKHQsciwhMCk/Im51bS1mbXQiOm51bGx9LG9yZGVyOntwcmU6ZnVuY3Rpb24odCxlKXt2YXIgcj1lLm9MYW5ndWFnZS5zRGVjaW1hbDtyZXR1cm4gTm4odCxyLGJpKX19fSk7dnQudHlwZSgibnVtIix7Y2xhc3NOYW1lOiJkdC10eXBlLW51bWVyaWMiLGRldGVjdDpmdW5jdGlvbih0LGUpe3ZhciByPWUub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiB2aSh0LHIpPyJudW0iOm51bGx9LG9yZGVyOntwcmU6ZnVuY3Rpb24odCxlKXt2YXIgcj1lLm9MYW5ndWFnZS5zRGVjaW1hbDtyZXR1cm4gTm4odCxyKX19fSk7dmFyIE5uPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHQhPT0wJiYoIXR8fHQ9PT0iLSIpKXJldHVybi0xLzA7dmFyIHM9dHlwZW9mIHQ7cmV0dXJuIHM9PT0ibnVtYmVyInx8cz09PSJiaWdpbnQiP3Q6KGUmJih0PVZhKHQsZSkpLHQucmVwbGFjZSYmKHImJih0PXQucmVwbGFjZShyLCIiKSksbiYmKHQ9dC5yZXBsYWNlKG4sIiIpKSksdCoxKX07Vy5leHRlbmQoITAsdnQuZXh0LnJlbmRlcmVyLHtmb290ZXI6e186ZnVuY3Rpb24odCxlLHIpe2UuYWRkQ2xhc3Moci50Zm9vdC5jZWxsKX19LGhlYWRlcjp7XzpmdW5jdGlvbih0LGUscil7ZS5hZGRDbGFzcyhyLnRoZWFkLmNlbGwpLHQub0ZlYXR1cmVzLmJTb3J0fHxlLmFkZENsYXNzKHIub3JkZXIubm9uZSk7dmFyIG49dC5iU29ydENlbGxzVG9wLHM9ZS5jbG9zZXN0KCJ0aGVhZCIpLmZpbmQoInRyIiksYT1lLnBhcmVudCgpLmluZGV4KCk7ZS5hdHRyKCJkYXRhLWR0LW9yZGVyIik9PT0iZGlzYWJsZSJ8fGUucGFyZW50KCkuYXR0cigiZGF0YS1kdC1vcmRlciIpPT09ImRpc2FibGUifHxuPT09ITAmJmEhPT0wfHxuPT09ITEmJmEhPT1zLmxlbmd0aC0xfHxXKHQublRhYmxlKS5vbigib3JkZXIuZHQuRFQiLGZ1bmN0aW9uKGwsYyxwKXtpZih0PT09Yyl7dmFyIGI9ci5vcmRlcixtPWMuYXBpLmNvbHVtbnMoZSkseT10LmFvQ29sdW1uc1ttLmZsYXR0ZW4oKVswXV0sVD1tLm9yZGVyYWJsZSgpLmluY2x1ZGVzKCEwKSx3PSIiLGs9bS5pbmRleGVzKCksUD1tLm9yZGVyYWJsZSghMCkuZmxhdHRlbigpLEY9IiwiK3AubWFwKGZ1bmN0aW9uKEIpe3JldHVybiBCLmNvbH0pLmpvaW4oIiwiKSsiLCI7ZS5yZW1vdmVDbGFzcyhiLmlzQXNjKyIgIitiLmlzRGVzYykudG9nZ2xlQ2xhc3MoYi5ub25lLCFUKS50b2dnbGVDbGFzcyhiLmNhbkFzYyxUJiZQLmluY2x1ZGVzKCJhc2MiKSkudG9nZ2xlQ2xhc3MoYi5jYW5EZXNjLFQmJlAuaW5jbHVkZXMoImRlc2MiKSk7dmFyIGg9Ri5pbmRleE9mKCIsIitrLnRvQXJyYXkoKS5qb2luKCIsIikrIiwiKTtpZihoIT09LTEpe3ZhciBvPW0ub3JkZXIoKTtlLmFkZENsYXNzKG8uaW5jbHVkZXMoImFzYyIpP2IuaXNBc2M6IiIrby5pbmNsdWRlcygiZGVzYyIpP2IuaXNEZXNjOiIiKX1pZihoPT09MCl7dmFyIGY9cFswXSxDPXkuYXNTb3J0aW5nO2UuYXR0cigiYXJpYS1zb3J0IixmLmRpcj09PSJhc2MiPyJhc2NlbmRpbmciOiJkZXNjZW5kaW5nIiksdz1DW2YuaW5kZXgrMV0/IlJldmVyc2UiOiJSZW1vdmUifWVsc2UgZS5yZW1vdmVBdHRyKCJhcmlhLXNvcnQiKTtlLmF0dHIoImFyaWEtbGFiZWwiLFQ/eS5hcmlhVGl0bGUrYy5hcGkuaTE4bigib0FyaWEub3JkZXJhYmxlIit3KTp5LmFyaWFUaXRsZSksVCYmKGUuZmluZCgiLmR0LWNvbHVtbi10aXRsZSIpLmF0dHIoInJvbGUiLCJidXR0b24iKSxlLmF0dHIoInRhYmluZGV4IiwwKSl9fSl9fSxsYXlvdXQ6e186ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVcoIjxkaXYvPiIpLmFkZENsYXNzKCJkdC1sYXlvdXQtcm93IikuYXBwZW5kVG8oZSk7Vy5lYWNoKHIsZnVuY3Rpb24ocyxhKXt2YXIgbD1hLnRhYmxlPyIiOiJkdC0iK3MrIiAiO2EudGFibGUmJm4uYWRkQ2xhc3MoImR0LWxheW91dC10YWJsZSIpLFcoIjxkaXYvPiIpLmF0dHIoe2lkOmEuaWR8fG51bGwsY2xhc3M6ImR0LWxheW91dC1jZWxsICIrbCsoYS5jbGFzc05hbWV8fCIiKX0pLmFwcGVuZChhLmNvbnRlbnRzKS5hcHBlbmRUbyhuKX0pfX19KTt2dC5mZWF0dXJlPXt9O3Z0LmZlYXR1cmUucmVnaXN0ZXI9ZnVuY3Rpb24odCxlLHIpe3Z0LmV4dC5mZWF0dXJlc1t0XT1lLHImJm9lLmZlYXR1cmUucHVzaCh7Y0ZlYXR1cmU6cixmbkluaXQ6ZX0pfTt2dC5mZWF0dXJlLnJlZ2lzdGVyKCJpbmZvIixmdW5jdGlvbih0LGUpe2lmKCF0Lm9GZWF0dXJlcy5iSW5mbylyZXR1cm4gbnVsbDt2YXIgcj10Lm9MYW5ndWFnZSxuPXQuc1RhYmxlSWQscz1XKCI8ZGl2Lz4iLHtjbGFzczp0Lm9DbGFzc2VzLmluZm8uY29udGFpbmVyfSk7cmV0dXJuIGU9Vy5leHRlbmQoe2NhbGxiYWNrOnIuZm5JbmZvQ2FsbGJhY2ssZW1wdHk6ci5zSW5mb0VtcHR5LHBvc3RmaXg6ci5zSW5mb1Bvc3RGaXgsc2VhcmNoOnIuc0luZm9GaWx0ZXJlZCx0ZXh0OnIuc0luZm99LGUpLHQuYW9EcmF3Q2FsbGJhY2sucHVzaChmdW5jdGlvbihhKXtrbChhLGUscyl9KSx0Ll9pbmZvRWx8fChzLmF0dHIoeyJhcmlhLWxpdmUiOiJwb2xpdGUiLGlkOm4rIl9pbmZvIixyb2xlOiJzdGF0dXMifSksVyh0Lm5UYWJsZSkuYXR0cigiYXJpYS1kZXNjcmliZWRieSIsbisiX2luZm8iKSx0Ll9pbmZvRWw9cyksc30sImkiKTtmdW5jdGlvbiBrbCh0LGUscil7dmFyIG49dC5faURpc3BsYXlTdGFydCsxLHM9dC5mbkRpc3BsYXlFbmQoKSxhPXQuZm5SZWNvcmRzVG90YWwoKSxsPXQuZm5SZWNvcmRzRGlzcGxheSgpLGM9bD9lLnRleHQ6ZS5lbXB0eTtsIT09YSYmKGMrPSIgIitlLnNlYXJjaCksYys9ZS5wb3N0Zml4LGM9QWkodCxjKSxlLmNhbGxiYWNrJiYoYz1lLmNhbGxiYWNrLmNhbGwodC5vSW5zdGFuY2UsdCxuLHMsYSxsLGMpKSxyLmh0bWwoYyksWnQodCxudWxsLCJpbmZvIixbdCxyWzBdLGNdKX12YXIgbGk9MDt2dC5mZWF0dXJlLnJlZ2lzdGVyKCJzZWFyY2giLGZ1bmN0aW9uKHQsZSl7aWYoIXQub0ZlYXR1cmVzLmJGaWx0ZXIpcmV0dXJuIG51bGw7dmFyIHI9dC5vQ2xhc3Nlcy5zZWFyY2gsbj10LnNUYWJsZUlkLHM9dC5vTGFuZ3VhZ2UsYT10Lm9QcmV2aW91c1NlYXJjaCxsPSc8aW5wdXQgdHlwZT0ic2VhcmNoIiBjbGFzcz0iJytyLmlucHV0KyciLz4nO2U9Vy5leHRlbmQoe3BsYWNlaG9sZGVyOnMuc1NlYXJjaFBsYWNlaG9sZGVyLHRleHQ6cy5zU2VhcmNofSxlKSxlLnRleHQuaW5kZXhPZigiX0lOUFVUXyIpPT09LTEmJihlLnRleHQrPSJfSU5QVVRfIiksZS50ZXh0PUFpKHQsZS50ZXh0KTt2YXIgYz1lLnRleHQubWF0Y2goL19JTlBVVF8kLykscD1lLnRleHQubWF0Y2goL15fSU5QVVRfLyksYj1lLnRleHQucmVwbGFjZSgvX0lOUFVUXy8sIiIpLG09IjxsYWJlbD4iK2UudGV4dCsiPC9sYWJlbD4iO3A/bT0iX0lOUFVUXzxsYWJlbD4iK2IrIjwvbGFiZWw+IjpjJiYobT0iPGxhYmVsPiIrYisiPC9sYWJlbD5fSU5QVVRfIik7dmFyIHk9VygiPGRpdj4iKS5hZGRDbGFzcyhyLmNvbnRhaW5lcikuYXBwZW5kKG0ucmVwbGFjZSgvX0lOUFVUXy8sbCkpO3kuZmluZCgibGFiZWwiKS5hdHRyKCJmb3IiLCJkdC1zZWFyY2gtIitsaSkseS5maW5kKCJpbnB1dCIpLmF0dHIoImlkIiwiZHQtc2VhcmNoLSIrbGkpLGxpKys7dmFyIFQ9ZnVuY3Rpb24oUCl7dmFyIEY9dGhpcy52YWx1ZTthLnJldHVybiYmUC5rZXkhPT0iRW50ZXIifHxGIT1hLnNlYXJjaCYmKGEuc2VhcmNoPUYsR3IodCxhKSx0Ll9pRGlzcGxheVN0YXJ0PTAsRnIodCkpfSx3PXQuc2VhcmNoRGVsYXkhPT1udWxsP3Quc2VhcmNoRGVsYXk6MCxrPVcoImlucHV0Iix5KS52YWwoYS5zZWFyY2gpLmF0dHIoInBsYWNlaG9sZGVyIixlLnBsYWNlaG9sZGVyKS5vbigia2V5dXAuRFQgc2VhcmNoLkRUIGlucHV0LkRUIHBhc3RlLkRUIGN1dC5EVCIsdz92dC51dGlsLmRlYm91bmNlKFQsdyk6VCkub24oIm1vdXNldXAuRFQiLGZ1bmN0aW9uKFApe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtULmNhbGwoa1swXSxQKX0sMTApfSkub24oImtleXByZXNzLkRUIixmdW5jdGlvbihQKXtpZihQLmtleUNvZGU9PTEzKXJldHVybiExfSkuYXR0cigiYXJpYS1jb250cm9scyIsbik7cmV0dXJuIFcodC5uVGFibGUpLm9uKCJzZWFyY2guZHQuRFQiLGZ1bmN0aW9uKFAsRil7dD09PUYmJmtbMF0hPT1kb2N1bWVudC5hY3RpdmVFbGVtZW50JiZrLnZhbCh0eXBlb2YgYS5zZWFyY2ghPSJmdW5jdGlvbiI/YS5zZWFyY2g6IiIpfSkseX0sImYiKTt2dC5mZWF0dXJlLnJlZ2lzdGVyKCJwYWdpbmciLGZ1bmN0aW9uKHQsZSl7aWYoIXQub0ZlYXR1cmVzLmJQYWdpbmF0ZSlyZXR1cm4gbnVsbDtlPVcuZXh0ZW5kKHtidXR0b25zOnZ0LmV4dC5wYWdlci5udW1iZXJzX2xlbmd0aCx0eXBlOnQuc1BhZ2luYXRpb25UeXBlLGJvdW5kYXJ5TnVtYmVyczohMH0sZSksZS5udW1iZXJzJiYoZS5idXR0b25zPWUubnVtYmVycyk7dmFyIHI9VygiPGRpdi8+IikuYWRkQ2xhc3ModC5vQ2xhc3Nlcy5wYWdpbmcuY29udGFpbmVyKyIgcGFnaW5nXyIrZS50eXBlKSxuPWZ1bmN0aW9uKCl7cHModCxyLGUpfTtyZXR1cm4gdC5hb0RyYXdDYWxsYmFjay5wdXNoKG4pLFcodC5uVGFibGUpLm9uKCJjb2x1bW4tc2l6aW5nLmR0LkRUIixuKSxyfSwicCIpO2Z1bmN0aW9uIHBzKHQsZSxyKXtpZih0Ll9iSW5pdENvbXBsZXRlKXtmb3IodmFyIG49dnQuZXh0LnBhZ2VyW3IudHlwZV0scz10Lm9MYW5ndWFnZS5vQXJpYS5wYWdpbmF0ZXx8e30sYT10Ll9pRGlzcGxheVN0YXJ0LGw9dC5faURpc3BsYXlMZW5ndGgsYz10LmZuUmVjb3Jkc0Rpc3BsYXkoKSxwPWw9PT0tMSxiPXA/MDpNYXRoLmNlaWwoYS9sKSxtPXA/MTpNYXRoLmNlaWwoYy9sKSx5PW4oKS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuIGY9PT0ibnVtYmVycyI/YnMoYixtLHIuYnV0dG9ucyxyLmJvdW5kYXJ5TnVtYmVycyk6Zn0pLmZsYXQoKSxUPVtdLHc9MDt3PHkubGVuZ3RoO3crKyl7dmFyIGs9eVt3XSxQPVNsKHQsayxiLG0pLEY9eG4odCwicGFnaW5nQnV0dG9uIikodCxrLFAuZGlzcGxheSxQLmFjdGl2ZSxQLmRpc2FibGVkKTtXKEYuY2xpY2tlcikuYXR0cih7ImFyaWEtY29udHJvbHMiOnQuc1RhYmxlSWQsImFyaWEtZGlzYWJsZWQiOlAuZGlzYWJsZWQ/InRydWUiOm51bGwsImFyaWEtY3VycmVudCI6UC5hY3RpdmU/InBhZ2UiOm51bGwsImFyaWEtbGFiZWwiOnNba10sImRhdGEtZHQtaWR4IjprLHRhYkluZGV4OlAuZGlzYWJsZWQ/LTE6dC5pVGFiSW5kZXh9KSx0eXBlb2YgayE9Im51bWJlciImJlcoRi5jbGlja2VyKS5hZGRDbGFzcyhrKSxpcyhGLmNsaWNrZXIse2FjdGlvbjprfSxmdW5jdGlvbihmKXtmLnByZXZlbnREZWZhdWx0KCksU2kodCxmLmRhdGEuYWN0aW9uLCEwKX0pLFQucHVzaChGLmRpc3BsYXkpfXZhciBoPXhuKHQsInBhZ2luZ0NvbnRhaW5lciIpKHQsVCksbz1lLmZpbmQoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkuZGF0YSgiZHQtaWR4Iik7ZS5lbXB0eSgpLmFwcGVuZChoKSxvIT09dm9pZCAwJiZlLmZpbmQoIltkYXRhLWR0LWlkeD0iK28rIl0iKS50cmlnZ2VyKCJmb2N1cyIpLFQubGVuZ3RoJiZyLm51bWJlcnM+MSYmVyhlKS5oZWlnaHQoKT49VyhUWzBdKS5vdXRlckhlaWdodCgpKjItMTAmJnBzKHQsZSxXLmV4dGVuZCh7fSxyLHtudW1iZXJzOnIubnVtYmVycy0yfSkpfX1mdW5jdGlvbiBTbCh0LGUscixuKXt2YXIgcz10Lm9MYW5ndWFnZS5vUGFnaW5hdGUsYT17ZGlzcGxheToiIixhY3RpdmU6ITEsZGlzYWJsZWQ6ITF9O3N3aXRjaChlKXtjYXNlImVsbGlwc2lzIjphLmRpc3BsYXk9IiYjeDIwMjY7IixhLmRpc2FibGVkPSEwO2JyZWFrO2Nhc2UiZmlyc3QiOmEuZGlzcGxheT1zLnNGaXJzdCxyPT09MCYmKGEuZGlzYWJsZWQ9ITApO2JyZWFrO2Nhc2UicHJldmlvdXMiOmEuZGlzcGxheT1zLnNQcmV2aW91cyxyPT09MCYmKGEuZGlzYWJsZWQ9ITApO2JyZWFrO2Nhc2UibmV4dCI6YS5kaXNwbGF5PXMuc05leHQsKG49PT0wfHxyPT09bi0xKSYmKGEuZGlzYWJsZWQ9ITApO2JyZWFrO2Nhc2UibGFzdCI6YS5kaXNwbGF5PXMuc0xhc3QsKG49PT0wfHxyPT09bi0xKSYmKGEuZGlzYWJsZWQ9ITApO2JyZWFrO2RlZmF1bHQ6dHlwZW9mIGU9PSJudW1iZXIiJiYoYS5kaXNwbGF5PXQuZm5Gb3JtYXROdW1iZXIoZSsxKSxyPT09ZSYmKGEuYWN0aXZlPSEwKSk7YnJlYWt9cmV0dXJuIGF9ZnVuY3Rpb24gYnModCxlLHIsbil7dmFyIHM9W10sYT1NYXRoLmZsb29yKHIvMiksbD1uPzI6MSxjPW4/MTowO3JldHVybiBlPD1yP3M9Y3IoMCxlKTpyPT09MT9zPVt0XTpyPT09Mz90PD0xP3M9WzAsMSwiZWxsaXBzaXMiXTp0Pj1lLTI/KHM9Y3IoZS0yLGUpLHMudW5zaGlmdCgiZWxsaXBzaXMiKSk6cz1bImVsbGlwc2lzIix0LCJlbGxpcHNpcyJdOnQ8PWE/KHM9Y3IoMCxyLWwpLHMucHVzaCgiZWxsaXBzaXMiKSxuJiZzLnB1c2goZS0xKSk6dD49ZS0xLWE/KHM9Y3IoZS0oci1sKSxlKSxzLnVuc2hpZnQoImVsbGlwc2lzIiksbiYmcy51bnNoaWZ0KDApKToocz1jcih0LWErbCx0K2EtYykscy5wdXNoKCJlbGxpcHNpcyIpLHMudW5zaGlmdCgiZWxsaXBzaXMiKSxuJiYocy5wdXNoKGUtMSkscy51bnNoaWZ0KDApKSksc312YXIgZGk9MDt2dC5mZWF0dXJlLnJlZ2lzdGVyKCJwYWdlTGVuZ3RoIixmdW5jdGlvbih0LGUpe3ZhciByPXQub0ZlYXR1cmVzO2lmKCFyLmJQYWdpbmF0ZXx8IXIuYkxlbmd0aENoYW5nZSlyZXR1cm4gbnVsbDtlPVcuZXh0ZW5kKHttZW51OnQuYUxlbmd0aE1lbnUsdGV4dDp0Lm9MYW5ndWFnZS5zTGVuZ3RoTWVudX0sZSk7dmFyIG49dC5vQ2xhc3Nlcy5sZW5ndGgscz10LnNUYWJsZUlkLGE9ZS5tZW51LGw9W10sYz1bXSxwO2lmKEFycmF5LmlzQXJyYXkoYVswXSkpbD1hWzBdLGM9YVsxXTtlbHNlIGZvcihwPTA7cDxhLmxlbmd0aDtwKyspVy5pc1BsYWluT2JqZWN0KGFbcF0pPyhsLnB1c2goYVtwXS52YWx1ZSksYy5wdXNoKGFbcF0ubGFiZWwpKToobC5wdXNoKGFbcF0pLGMucHVzaChhW3BdKSk7dmFyIGI9ZS50ZXh0Lm1hdGNoKC9fTUVOVV8kLyksbT1lLnRleHQubWF0Y2goL15fTUVOVV8vKSx5PWUudGV4dC5yZXBsYWNlKC9fTUVOVV8vLCIiKSxUPSI8bGFiZWw+IitlLnRleHQrIjwvbGFiZWw+IjttP1Q9Il9NRU5VXzxsYWJlbD4iK3krIjwvbGFiZWw+IjpiJiYoVD0iPGxhYmVsPiIreSsiPC9sYWJlbD5fTUVOVV8iKTt2YXIgdz1XKCI8ZGl2Lz4iKS5hZGRDbGFzcyhuLmNvbnRhaW5lcikuYXBwZW5kKFQucmVwbGFjZSgiX01FTlVfIiwiPHNwYW4+PC9zcGFuPiIpKSxrPVtdO3cuZmluZCgibGFiZWwiKVswXS5jaGlsZE5vZGVzLmZvckVhY2goZnVuY3Rpb24oaCl7aC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiZrLnB1c2goe2VsOmgsdGV4dDpoLnRleHRDb250ZW50fSl9KTt2YXIgUD1mdW5jdGlvbihoKXtrLmZvckVhY2goZnVuY3Rpb24obyl7by5lbC50ZXh0Q29udGVudD1BaSh0LG8udGV4dCxoKX0pfSxGPVcoIjxzZWxlY3QvPiIse25hbWU6cysiX2xlbmd0aCIsImFyaWEtY29udHJvbHMiOnMsY2xhc3M6bi5zZWxlY3R9KTtmb3IocD0wO3A8bC5sZW5ndGg7cCsrKUZbMF1bcF09bmV3IE9wdGlvbih0eXBlb2YgY1twXT09Im51bWJlciI/dC5mbkZvcm1hdE51bWJlcihjW3BdKTpjW3BdLGxbcF0pO3JldHVybiB3LmZpbmQoImxhYmVsIikuYXR0cigiZm9yIiwiZHQtbGVuZ3RoLSIrZGkpLEYuYXR0cigiaWQiLCJkdC1sZW5ndGgtIitkaSksZGkrKyx3LmZpbmQoInNwYW4iKS5yZXBsYWNlV2l0aChGKSxXKCJzZWxlY3QiLHcpLnZhbCh0Ll9pRGlzcGxheUxlbmd0aCkub24oImNoYW5nZS5EVCIsZnVuY3Rpb24oKXtRYSh0LFcodGhpcykudmFsKCkpLEZyKHQpfSksVyh0Lm5UYWJsZSkub24oImxlbmd0aC5kdC5EVCIsZnVuY3Rpb24oaCxvLGYpe3Q9PT1vJiYoVygic2VsZWN0Iix3KS52YWwoZiksUChmKSl9KSxQKHQuX2lEaXNwbGF5TGVuZ3RoKSx3fSwibCIpO1cuZm4uZGF0YVRhYmxlPXZ0O3Z0LiQ9VztXLmZuLmRhdGFUYWJsZVNldHRpbmdzPXZ0LnNldHRpbmdzO1cuZm4uZGF0YVRhYmxlRXh0PXZ0LmV4dDtXLmZuLkRhdGFUYWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gVyh0aGlzKS5kYXRhVGFibGUodCkuYXBpKCl9O1cuZWFjaCh2dCxmdW5jdGlvbih0LGUpe1cuZm4uRGF0YVRhYmxlW3RdPWV9KTt2YXIgc3Q9dnQ7dmFyIEtlPXN0O3ZhciBObD1uZShpZSgpLDEpO3ZhciB5cz1uZShpZSgpLDEpO3ZhciBodD15cy5kZWZhdWx0LEFsPTAsSWw9MCxfZT1zdC5leHQuYnV0dG9ucyxPaT1udWxsO2Z1bmN0aW9uIFJpKHQsZSxyKXtodC5mbi5hbmltYXRlP3Quc3RvcCgpLmZhZGVJbihlLHIpOih0LmNzcygiZGlzcGxheSIsImJsb2NrIiksciYmci5jYWxsKHQpKX1mdW5jdGlvbiBMaSh0LGUscil7aHQuZm4uYW5pbWF0ZT90LnN0b3AoKS5mYWRlT3V0KGUscik6KHQuY3NzKCJkaXNwbGF5Iiwibm9uZSIpLHImJnIuY2FsbCh0KSl9dmFyIEp0PWZ1bmN0aW9uKHQsZSl7aWYoIXN0LnZlcnNpb25DaGVjaygiMiIpKXRocm93Ildhcm5pbmc6IEJ1dHRvbnMgcmVxdWlyZXMgRGF0YVRhYmxlcyAyIG9yIG5ld2VyIjtpZighKHRoaXMgaW5zdGFuY2VvZiBKdCkpcmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBuZXcgSnQocix0KS5jb250YWluZXIoKX07dHlwZW9mIGU+InUiJiYoZT17fSksZT09PSEwJiYoZT17fSksQXJyYXkuaXNBcnJheShlKSYmKGU9e2J1dHRvbnM6ZX0pLHRoaXMuYz1odC5leHRlbmQoITAse30sSnQuZGVmYXVsdHMsZSksZS5idXR0b25zJiYodGhpcy5jLmJ1dHRvbnM9ZS5idXR0b25zKSx0aGlzLnM9e2R0Om5ldyBzdC5BcGkodCksYnV0dG9uczpbXSxsaXN0ZW5LZXlzOiIiLG5hbWVzcGFjZToiZHRiIitBbCsrfSx0aGlzLmRvbT17Y29udGFpbmVyOmh0KCI8Iit0aGlzLmMuZG9tLmNvbnRhaW5lci50YWcrIi8+IikuYWRkQ2xhc3ModGhpcy5jLmRvbS5jb250YWluZXIuY2xhc3NOYW1lKX0sdGhpcy5fY29uc3RydWN0b3IoKX07aHQuZXh0ZW5kKEp0LnByb3RvdHlwZSx7YWN0aW9uOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fbm9kZVRvQnV0dG9uKHQpO3JldHVybiBlPT09dm9pZCAwP3IuY29uZi5hY3Rpb246KHIuY29uZi5hY3Rpb249ZSx0aGlzKX0sYWN0aXZlOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fbm9kZVRvQnV0dG9uKHQpLG49dGhpcy5jLmRvbS5idXR0b24uYWN0aXZlLHM9aHQoci5ub2RlKTtyZXR1cm4gci5pbkNvbGxlY3Rpb24mJnRoaXMuYy5kb20uY29sbGVjdGlvbi5idXR0b24mJnRoaXMuYy5kb20uY29sbGVjdGlvbi5idXR0b24uYWN0aXZlIT09dm9pZCAwJiYobj10aGlzLmMuZG9tLmNvbGxlY3Rpb24uYnV0dG9uLmFjdGl2ZSksZT09PXZvaWQgMD9zLmhhc0NsYXNzKG4pOihzLnRvZ2dsZUNsYXNzKG4sZT09PXZvaWQgMD8hMDplKSx0aGlzKX0sYWRkOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLnMuYnV0dG9ucztpZih0eXBlb2YgZT09InN0cmluZyIpe2Zvcih2YXIgcz1lLnNwbGl0KCItIiksYT10aGlzLnMsbD0wLGM9cy5sZW5ndGgtMTtsPGM7bCsrKWE9YS5idXR0b25zW3NbbF0qMV07bj1hLmJ1dHRvbnMsZT1zW3MubGVuZ3RoLTFdKjF9cmV0dXJuIHRoaXMuX2V4cGFuZEJ1dHRvbihuLHQsdCE9PXZvaWQgMD90LnNwbGl0OnZvaWQgMCwodD09PXZvaWQgMHx8dC5zcGxpdD09PXZvaWQgMHx8dC5zcGxpdC5sZW5ndGg9PT0wKSYmYSE9PXZvaWQgMCwhMSxlKSwocj09PXZvaWQgMHx8cj09PSEwKSYmdGhpcy5fZHJhdygpLHRoaXN9LGNvbGxlY3Rpb25SZWJ1aWxkOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fbm9kZVRvQnV0dG9uKHQpO2lmKGUhPT12b2lkIDApe3ZhciBuO2ZvcihuPXIuYnV0dG9ucy5sZW5ndGgtMTtuPj0wO24tLSl0aGlzLnJlbW92ZShyLmJ1dHRvbnNbbl0ubm9kZSk7Zm9yKHIuY29uZi5wcmVmaXhCdXR0b25zJiZlLnVuc2hpZnQuYXBwbHkoZSxyLmNvbmYucHJlZml4QnV0dG9ucyksci5jb25mLnBvc3RmaXhCdXR0b25zJiZlLnB1c2guYXBwbHkoZSxyLmNvbmYucG9zdGZpeEJ1dHRvbnMpLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHM9ZVtuXTt0aGlzLl9leHBhbmRCdXR0b24oci5idXR0b25zLHMscyE9PXZvaWQgMCYmcy5jb25maWchPT12b2lkIDAmJnMuY29uZmlnLnNwbGl0IT09dm9pZCAwLCEwLHMucGFyZW50Q29uZiE9PXZvaWQgMCYmcy5wYXJlbnRDb25mLnNwbGl0IT09dm9pZCAwLG51bGwscy5wYXJlbnRDb25mKX19dGhpcy5fZHJhdyhyLmNvbGxlY3Rpb24sci5idXR0b25zKX0sY29udGFpbmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tLmNvbnRhaW5lcn0sZGlzYWJsZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9ub2RlVG9CdXR0b24odCk7cmV0dXJuIGh0KGUubm9kZSkuYWRkQ2xhc3ModGhpcy5jLmRvbS5idXR0b24uZGlzYWJsZWQpLnByb3AoImRpc2FibGVkIiwhMCksdGhpc30sZGVzdHJveTpmdW5jdGlvbigpe2h0KCJib2R5Iikub2ZmKCJrZXl1cC4iK3RoaXMucy5uYW1lc3BhY2UpO3ZhciB0PXRoaXMucy5idXR0b25zLnNsaWNlKCksZSxyO2ZvcihlPTAscj10Lmxlbmd0aDtlPHI7ZSsrKXRoaXMucmVtb3ZlKHRbZV0ubm9kZSk7dGhpcy5kb20uY29udGFpbmVyLnJlbW92ZSgpO3ZhciBuPXRoaXMucy5kdC5zZXR0aW5ncygpWzBdO2ZvcihlPTAscj1uLmxlbmd0aDtlPHI7ZSsrKWlmKG4uaW5zdD09PXRoaXMpe24uc3BsaWNlKGUsMSk7YnJlYWt9cmV0dXJuIHRoaXN9LGVuYWJsZTpmdW5jdGlvbih0LGUpe2lmKGU9PT0hMSlyZXR1cm4gdGhpcy5kaXNhYmxlKHQpO3ZhciByPXRoaXMuX25vZGVUb0J1dHRvbih0KTtyZXR1cm4gaHQoci5ub2RlKS5yZW1vdmVDbGFzcyh0aGlzLmMuZG9tLmJ1dHRvbi5kaXNhYmxlZCkucHJvcCgiZGlzYWJsZWQiLCExKSx0aGlzfSxpbmRleDpmdW5jdGlvbih0LGUscil7ZXx8KGU9IiIscj10aGlzLnMuYnV0dG9ucyk7Zm9yKHZhciBuPTAscz1yLmxlbmd0aDtuPHM7bisrKXt2YXIgYT1yW25dLmJ1dHRvbnM7aWYocltuXS5ub2RlPT09dClyZXR1cm4gZStuO2lmKGEmJmEubGVuZ3RoKXt2YXIgbD10aGlzLmluZGV4KHQsbisiLSIsYSk7aWYobCE9PW51bGwpcmV0dXJuIGx9fXJldHVybiBudWxsfSxuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYy5uYW1lfSxub2RlOmZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiB0aGlzLmRvbS5jb250YWluZXI7dmFyIGU9dGhpcy5fbm9kZVRvQnV0dG9uKHQpO3JldHVybiBodChlLm5vZGUpfSxwcm9jZXNzaW5nOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5zLmR0LG49dGhpcy5fbm9kZVRvQnV0dG9uKHQpO3JldHVybiBlPT09dm9pZCAwP2h0KG4ubm9kZSkuaGFzQ2xhc3MoInByb2Nlc3NpbmciKTooaHQobi5ub2RlKS50b2dnbGVDbGFzcygicHJvY2Vzc2luZyIsZSksaHQoci50YWJsZSgpLm5vZGUoKSkudHJpZ2dlckhhbmRsZXIoImJ1dHRvbnMtcHJvY2Vzc2luZy5kdCIsW2Usci5idXR0b24odCkscixodCh0KSxuLmNvbmZdKSx0aGlzKX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX25vZGVUb0J1dHRvbih0KSxyPXRoaXMuX25vZGVUb0hvc3QodCksbj10aGlzLnMuZHQ7aWYoZS5idXR0b25zLmxlbmd0aClmb3IodmFyIHM9ZS5idXR0b25zLmxlbmd0aC0xO3M+PTA7cy0tKXRoaXMucmVtb3ZlKGUuYnV0dG9uc1tzXS5ub2RlKTtlLmNvbmYuZGVzdHJveWluZz0hMCxlLmNvbmYuZGVzdHJveSYmZS5jb25mLmRlc3Ryb3kuY2FsbChuLmJ1dHRvbih0KSxuLGh0KHQpLGUuY29uZiksdGhpcy5fcmVtb3ZlS2V5KGUuY29uZiksaHQoZS5ub2RlKS5yZW1vdmUoKTt2YXIgYT1odC5pbkFycmF5KGUscik7cmV0dXJuIHIuc3BsaWNlKGEsMSksdGhpc30sdGV4dDpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX25vZGVUb0J1dHRvbih0KSxuPXIudGV4dE5vZGUscz10aGlzLnMuZHQsYT1odChyLm5vZGUpLGw9ZnVuY3Rpb24oYyl7cmV0dXJuIHR5cGVvZiBjPT0iZnVuY3Rpb24iP2MocyxhLHIuY29uZik6Y307cmV0dXJuIGU9PT12b2lkIDA/bChyLmNvbmYudGV4dCk6KHIuY29uZi50ZXh0PWUsbi5odG1sKGwoZSkpLHRoaXMpfSxfY29uc3RydWN0b3I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5zLmR0LHI9ZS5zZXR0aW5ncygpWzBdLG49dGhpcy5jLmJ1dHRvbnM7ci5fYnV0dG9uc3x8KHIuX2J1dHRvbnM9W10pLHIuX2J1dHRvbnMucHVzaCh7aW5zdDp0aGlzLG5hbWU6dGhpcy5jLm5hbWV9KTtmb3IodmFyIHM9MCxhPW4ubGVuZ3RoO3M8YTtzKyspdGhpcy5hZGQobltzXSk7ZS5vbigiZGVzdHJveSIsZnVuY3Rpb24obCxjKXtjPT09ciYmdC5kZXN0cm95KCl9KSxodCgiYm9keSIpLm9uKCJrZXl1cC4iK3RoaXMucy5uYW1lc3BhY2UsZnVuY3Rpb24obCl7aWYoIWRvY3VtZW50LmFjdGl2ZUVsZW1lbnR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1kb2N1bWVudC5ib2R5KXt2YXIgYz1TdHJpbmcuZnJvbUNoYXJDb2RlKGwua2V5Q29kZSkudG9Mb3dlckNhc2UoKTt0LnMubGlzdGVuS2V5cy50b0xvd2VyQ2FzZSgpLmluZGV4T2YoYykhPT0tMSYmdC5fa2V5cHJlc3MoYyxsKX19KX0sX2FkZEtleTpmdW5jdGlvbih0KXt0LmtleSYmKHRoaXMucy5saXN0ZW5LZXlzKz1odC5pc1BsYWluT2JqZWN0KHQua2V5KT90LmtleS5rZXk6dC5rZXkpfSxfZHJhdzpmdW5jdGlvbih0LGUpe3R8fCh0PXRoaXMuZG9tLmNvbnRhaW5lcixlPXRoaXMucy5idXR0b25zKSx0LmNoaWxkcmVuKCkuZGV0YWNoKCk7Zm9yKHZhciByPTAsbj1lLmxlbmd0aDtyPG47cisrKXQuYXBwZW5kKGVbcl0uaW5zZXJ0ZXIpLHQuYXBwZW5kKCIgIiksZVtyXS5idXR0b25zJiZlW3JdLmJ1dHRvbnMubGVuZ3RoJiZ0aGlzLl9kcmF3KGVbcl0uY29sbGVjdGlvbixlW3JdLmJ1dHRvbnMpfSxfZXhwYW5kQnV0dG9uOmZ1bmN0aW9uKHQsZSxyLG4scyxhLGwpe3ZhciBjPXRoaXMucy5kdCxwPSExLGI9dGhpcy5jLmRvbS5jb2xsZWN0aW9uLG09QXJyYXkuaXNBcnJheShlKT9lOltlXTtlPT09dm9pZCAwJiYobT1BcnJheS5pc0FycmF5KHIpP3I6W3JdKTtmb3IodmFyIHk9MCxUPW0ubGVuZ3RoO3k8VDt5Kyspe3ZhciB3PXRoaXMuX3Jlc29sdmVFeHRlbmRzKG1beV0pO2lmKHcpe2lmKHA9ISEody5jb25maWcmJncuY29uZmlnLnNwbGl0KSxBcnJheS5pc0FycmF5KHcpKXt0aGlzLl9leHBhbmRCdXR0b24odCx3LGshPT12b2lkIDAmJmsuY29uZiE9PXZvaWQgMD9rLmNvbmYuc3BsaXQ6dm9pZCAwLG4sbCE9PXZvaWQgMCYmbC5zcGxpdCE9PXZvaWQgMCxhLGwpO2NvbnRpbnVlfXZhciBrPXRoaXMuX2J1aWxkQnV0dG9uKHcsbix3LnNwbGl0IT09dm9pZCAwfHx3LmNvbmZpZyE9PXZvaWQgMCYmdy5jb25maWcuc3BsaXQhPT12b2lkIDAscyk7aWYoayl7aWYoYSE9bnVsbD8odC5zcGxpY2UoYSwwLGspLGErKyk6dC5wdXNoKGspLGsuY29uZi5idXR0b25zJiYoay5jb2xsZWN0aW9uPWh0KCI8IitiLmNvbnRhaW5lci5jb250ZW50LnRhZysiLz4iKSxrLmNvbmYuX2NvbGxlY3Rpb249ay5jb2xsZWN0aW9uLGh0KGsubm9kZSkuYXBwZW5kKGIuYWN0aW9uLmRyb3BIdG1sKSx0aGlzLl9leHBhbmRCdXR0b24oay5idXR0b25zLGsuY29uZi5idXR0b25zLGsuY29uZi5zcGxpdCwhcCxwLGEsay5jb25mKSksay5jb25mLnNwbGl0KXtrLmNvbGxlY3Rpb249aHQoIjwiK2IuY29udGFpbmVyLnRhZysiLz4iKSxrLmNvbmYuX2NvbGxlY3Rpb249ay5jb2xsZWN0aW9uO2Zvcih2YXIgUD0wO1A8ay5jb25mLnNwbGl0Lmxlbmd0aDtQKyspe3ZhciBGPWsuY29uZi5zcGxpdFtQXTt0eXBlb2YgRj09Im9iamVjdCImJihGLnBhcmVudD1sLEYuY29sbGVjdGlvbkxheW91dD09PXZvaWQgMCYmKEYuY29sbGVjdGlvbkxheW91dD1rLmNvbmYuY29sbGVjdGlvbkxheW91dCksRi5kcm9wdXA9PT12b2lkIDAmJihGLmRyb3B1cD1rLmNvbmYuZHJvcHVwKSxGLmZhZGU9PT12b2lkIDAmJihGLmZhZGU9ay5jb25mLmZhZGUpKX10aGlzLl9leHBhbmRCdXR0b24oay5idXR0b25zLGsuY29uZi5idXR0b25zLGsuY29uZi5zcGxpdCwhcCxwLGEsay5jb25mKX1rLmNvbmYucGFyZW50PWwsdy5pbml0JiZ3LmluaXQuY2FsbChjLmJ1dHRvbihrLm5vZGUpLGMsaHQoay5ub2RlKSx3KX19fX0sX2J1aWxkQnV0dG9uOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBzPXRoaXMsYT10aGlzLmMuZG9tLGwsYz10aGlzLnMuZHQscD1mdW5jdGlvbihldCl7cmV0dXJuIHR5cGVvZiBldD09ImZ1bmN0aW9uIj9ldChjLHksdCk6ZXR9LGI9aHQuZXh0ZW5kKCEwLHt9LGEuYnV0dG9uKTtpZihlJiZyJiZhLmNvbGxlY3Rpb24uc3BsaXQ/aHQuZXh0ZW5kKCEwLGIsYS5jb2xsZWN0aW9uLnNwbGl0LmFjdGlvbik6bnx8ZT9odC5leHRlbmQoITAsYixhLmNvbGxlY3Rpb24uYnV0dG9uKTpyJiZodC5leHRlbmQoITAsYixhLnNwbGl0LmJ1dHRvbiksdC5zcGFjZXIpe3ZhciBtPWh0KCI8IitiLnNwYWNlci50YWcrIi8+IikuYWRkQ2xhc3MoImR0LWJ1dHRvbi1zcGFjZXIgIit0LnN0eWxlKyIgIitiLnNwYWNlci5jbGFzc05hbWUpLmh0bWwocCh0LnRleHQpKTtyZXR1cm57Y29uZjp0LG5vZGU6bSxpbnNlcnRlcjptLGJ1dHRvbnM6W10saW5Db2xsZWN0aW9uOmUsaXNTcGxpdDpyLGNvbGxlY3Rpb246bnVsbCx0ZXh0Tm9kZTptfX1pZih0LmF2YWlsYWJsZSYmIXQuYXZhaWxhYmxlKGMsdCkmJiF0Lmh0bWwpcmV0dXJuITE7dmFyIHk7aWYodC5odG1sKXk9aHQodC5odG1sKTtlbHNle3ZhciBUPWZ1bmN0aW9uKGV0LE8sWixnLF8pe2cuYWN0aW9uLmNhbGwoTy5idXR0b24oWiksZXQsTyxaLGcsXyksaHQoTy50YWJsZSgpLm5vZGUoKSkudHJpZ2dlckhhbmRsZXIoImJ1dHRvbnMtYWN0aW9uLmR0IixbTy5idXR0b24oWiksTyxaLGddKX0sdz1mdW5jdGlvbihldCxPLFosZyl7Zy5hc3luYz8ocy5wcm9jZXNzaW5nKFpbMF0sITApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtUKGV0LE8sWixnLGZ1bmN0aW9uKCl7cy5wcm9jZXNzaW5nKFpbMF0sITEpfSl9LGcuYXN5bmMpKTpUKGV0LE8sWixnLGZ1bmN0aW9uKCl7fSl9LGs9dC50YWd8fGIudGFnLFA9dC5jbGlja0JsdXJzPT09dm9pZCAwPyEwOnQuY2xpY2tCbHVycztpZih5PWh0KCI8IitrKyIvPiIpLmFkZENsYXNzKGIuY2xhc3NOYW1lKS5hdHRyKCJ0YWJpbmRleCIsdGhpcy5zLmR0LnNldHRpbmdzKClbMF0uaVRhYkluZGV4KS5hdHRyKCJhcmlhLWNvbnRyb2xzIix0aGlzLnMuZHQudGFibGUoKS5ub2RlKCkuaWQpLm9uKCJjbGljay5kdGIiLGZ1bmN0aW9uKGV0KXtldC5wcmV2ZW50RGVmYXVsdCgpLCF5Lmhhc0NsYXNzKGIuZGlzYWJsZWQpJiZ0LmFjdGlvbiYmdyhldCxjLHksdCksUCYmeS50cmlnZ2VyKCJibHVyIil9KS5vbigia2V5cHJlc3MuZHRiIixmdW5jdGlvbihldCl7ZXQua2V5Q29kZT09PTEzJiYoZXQucHJldmVudERlZmF1bHQoKSwheS5oYXNDbGFzcyhiLmRpc2FibGVkKSYmdC5hY3Rpb24mJncoZXQsYyx5LHQpKX0pLGsudG9Mb3dlckNhc2UoKT09PSJhIiYmeS5hdHRyKCJocmVmIiwiIyIpLGsudG9Mb3dlckNhc2UoKT09PSJidXR0b24iJiZ5LmF0dHIoInR5cGUiLCJidXR0b24iKSxiLmxpbmVyLnRhZyl7dmFyIEY9aHQoIjwiK2IubGluZXIudGFnKyIvPiIpLmh0bWwocCh0LnRleHQpKS5hZGRDbGFzcyhiLmxpbmVyLmNsYXNzTmFtZSk7Yi5saW5lci50YWcudG9Mb3dlckNhc2UoKT09PSJhIiYmRi5hdHRyKCJocmVmIiwiIyIpLHkuYXBwZW5kKEYpLGw9Rn1lbHNlIHkuaHRtbChwKHQudGV4dCkpLGw9eTt0LmVuYWJsZWQ9PT0hMSYmeS5hZGRDbGFzcyhiLmRpc2FibGVkKSx0LmNsYXNzTmFtZSYmeS5hZGRDbGFzcyh0LmNsYXNzTmFtZSksdC50aXRsZUF0dHImJnkuYXR0cigidGl0bGUiLHAodC50aXRsZUF0dHIpKSx0LmF0dHImJnkuYXR0cih0LmF0dHIpLHQubmFtZXNwYWNlfHwodC5uYW1lc3BhY2U9Ii5kdC1idXR0b24tIitJbCsrKSx0LmNvbmZpZyE9PXZvaWQgMCYmdC5jb25maWcuc3BsaXQmJih0LnNwbGl0PXQuY29uZmlnLnNwbGl0KX12YXIgaD10aGlzLmMuZG9tLmJ1dHRvbkNvbnRhaW5lcixvO2gmJmgudGFnP289aHQoIjwiK2gudGFnKyIvPiIpLmFkZENsYXNzKGguY2xhc3NOYW1lKS5hcHBlbmQoeSk6bz15LHRoaXMuX2FkZEtleSh0KSx0aGlzLmMuYnV0dG9uQ3JlYXRlZCYmKG89dGhpcy5jLmJ1dHRvbkNyZWF0ZWQodCxvKSk7dmFyIGY7aWYocil7dmFyIEM9ZT9odC5leHRlbmQoITAsdGhpcy5jLmRvbS5zcGxpdCx0aGlzLmMuZG9tLmNvbGxlY3Rpb24uc3BsaXQpOnRoaXMuYy5kb20uc3BsaXQsQj1DLndyYXBwZXI7Zj1odCgiPCIrQi50YWcrIi8+IikuYWRkQ2xhc3MoQi5jbGFzc05hbWUpLmFwcGVuZCh5KTt2YXIgdT1odC5leHRlbmQodCx7YWxpZ246Qy5kcm9wZG93bi5hbGlnbixhdHRyOnsiYXJpYS1oYXNwb3B1cCI6ImRpYWxvZyIsImFyaWEtZXhwYW5kZWQiOiExfSxjbGFzc05hbWU6Qy5kcm9wZG93bi5jbGFzc05hbWUsY2xvc2VCdXR0b246ITEsc3BsaXRBbGlnbkNsYXNzOkMuZHJvcGRvd24uc3BsaXRBbGlnbkNsYXNzLHRleHQ6Qy5kcm9wZG93bi50ZXh0fSk7dGhpcy5fYWRkS2V5KHUpO3ZhciB6PWZ1bmN0aW9uKGV0LE8sWixnKXtfZS5zcGxpdC5hY3Rpb24uY2FsbChPLmJ1dHRvbihmKSxldCxPLFosZyksaHQoTy50YWJsZSgpLm5vZGUoKSkudHJpZ2dlckhhbmRsZXIoImJ1dHRvbnMtYWN0aW9uLmR0IixbTy5idXR0b24oWiksTyxaLGddKSxaLmF0dHIoImFyaWEtZXhwYW5kZWQiLCEwKX0scT1odCgnPGJ1dHRvbiBjbGFzcz0iJytDLmRyb3Bkb3duLmNsYXNzTmFtZSsnIGR0LWJ1dHRvbiI+PC9idXR0b24+JykuaHRtbChDLmRyb3Bkb3duLmRyb3BIdG1sKS5vbigiY2xpY2suZHRiIixmdW5jdGlvbihldCl7ZXQucHJldmVudERlZmF1bHQoKSxldC5zdG9wUHJvcGFnYXRpb24oKSxxLmhhc0NsYXNzKGIuZGlzYWJsZWQpfHx6KGV0LGMscSx1KSxQJiZxLnRyaWdnZXIoImJsdXIiKX0pLm9uKCJrZXlwcmVzcy5kdGIiLGZ1bmN0aW9uKGV0KXtldC5rZXlDb2RlPT09MTMmJihldC5wcmV2ZW50RGVmYXVsdCgpLHEuaGFzQ2xhc3MoYi5kaXNhYmxlZCl8fHooZXQsYyxxLHUpKX0pO3Quc3BsaXQubGVuZ3RoPT09MCYmcS5hZGRDbGFzcygiZHRiLWhpZGUtZHJvcCIpLGYuYXBwZW5kKHEpLmF0dHIodS5hdHRyKX1yZXR1cm57Y29uZjp0LG5vZGU6cj9mLmdldCgwKTp5LmdldCgwKSxpbnNlcnRlcjpyP2Y6byxidXR0b25zOltdLGluQ29sbGVjdGlvbjplLGlzU3BsaXQ6cixpblNwbGl0Om4sY29sbGVjdGlvbjpudWxsLHRleHROb2RlOmx9fSxfbm9kZVRvQnV0dG9uOmZ1bmN0aW9uKHQsZSl7ZXx8KGU9dGhpcy5zLmJ1dHRvbnMpO2Zvcih2YXIgcj0wLG49ZS5sZW5ndGg7cjxuO3IrKyl7aWYoZVtyXS5ub2RlPT09dClyZXR1cm4gZVtyXTtpZihlW3JdLmJ1dHRvbnMubGVuZ3RoKXt2YXIgcz10aGlzLl9ub2RlVG9CdXR0b24odCxlW3JdLmJ1dHRvbnMpO2lmKHMpcmV0dXJuIHN9fX0sX25vZGVUb0hvc3Q6ZnVuY3Rpb24odCxlKXtlfHwoZT10aGlzLnMuYnV0dG9ucyk7Zm9yKHZhciByPTAsbj1lLmxlbmd0aDtyPG47cisrKXtpZihlW3JdLm5vZGU9PT10KXJldHVybiBlO2lmKGVbcl0uYnV0dG9ucy5sZW5ndGgpe3ZhciBzPXRoaXMuX25vZGVUb0hvc3QodCxlW3JdLmJ1dHRvbnMpO2lmKHMpcmV0dXJuIHN9fX0sX2tleXByZXNzOmZ1bmN0aW9uKHQsZSl7aWYoIWUuX2J1dHRvbnNIYW5kbGVkKXt2YXIgcj1mdW5jdGlvbihzLGEpe2lmKHMua2V5KXtpZihzLmtleT09PXQpZS5fYnV0dG9uc0hhbmRsZWQ9ITAsaHQoYSkuY2xpY2soKTtlbHNlIGlmKGh0LmlzUGxhaW5PYmplY3Qocy5rZXkpKXtpZihzLmtleS5rZXkhPT10fHxzLmtleS5zaGlmdEtleSYmIWUuc2hpZnRLZXl8fHMua2V5LmFsdEtleSYmIWUuYWx0S2V5fHxzLmtleS5jdHJsS2V5JiYhZS5jdHJsS2V5fHxzLmtleS5tZXRhS2V5JiYhZS5tZXRhS2V5KXJldHVybjtlLl9idXR0b25zSGFuZGxlZD0hMCxodChhKS5jbGljaygpfX19LG49ZnVuY3Rpb24ocyl7Zm9yKHZhciBhPTAsbD1zLmxlbmd0aDthPGw7YSsrKXIoc1thXS5jb25mLHNbYV0ubm9kZSksc1thXS5idXR0b25zLmxlbmd0aCYmbihzW2FdLmJ1dHRvbnMpfTtuKHRoaXMucy5idXR0b25zKX19LF9yZW1vdmVLZXk6ZnVuY3Rpb24odCl7aWYodC5rZXkpe3ZhciBlPWh0LmlzUGxhaW5PYmplY3QodC5rZXkpP3Qua2V5LmtleTp0LmtleSxyPXRoaXMucy5saXN0ZW5LZXlzLnNwbGl0KCIiKSxuPWh0LmluQXJyYXkoZSxyKTtyLnNwbGljZShuLDEpLHRoaXMucy5saXN0ZW5LZXlzPXIuam9pbigiIil9fSxfcmVzb2x2ZUV4dGVuZHM6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxyPXRoaXMucy5kdCxuLHMsYT1mdW5jdGlvbihtKXtmb3IodmFyIHk9MDshaHQuaXNQbGFpbk9iamVjdChtKSYmIUFycmF5LmlzQXJyYXkobSk7KXtpZihtPT09dm9pZCAwKXJldHVybjtpZih0eXBlb2YgbT09ImZ1bmN0aW9uIil7aWYobT1tLmNhbGwoZSxyLHQpLCFtKXJldHVybiExfWVsc2UgaWYodHlwZW9mIG09PSJzdHJpbmciKXtpZighX2VbbV0pcmV0dXJue2h0bWw6bX07bT1fZVttXX1pZih5KysseT4zMCl0aHJvdyJCdXR0b25zOiBUb28gbWFueSBpdGVyYXRpb25zIn1yZXR1cm4gQXJyYXkuaXNBcnJheShtKT9tOmh0LmV4dGVuZCh7fSxtKX07Zm9yKHQ9YSh0KTt0JiZ0LmV4dGVuZDspe2lmKCFfZVt0LmV4dGVuZF0pdGhyb3ciQ2Fubm90IGV4dGVuZCB1bmtub3duIGJ1dHRvbiB0eXBlOiAiK3QuZXh0ZW5kO3ZhciBsPWEoX2VbdC5leHRlbmRdKTtpZihBcnJheS5pc0FycmF5KGwpKXJldHVybiBsO2lmKCFsKXJldHVybiExO3ZhciBjPWwuY2xhc3NOYW1lO3QuY29uZmlnIT09dm9pZCAwJiZsLmNvbmZpZyE9PXZvaWQgMCYmKHQuY29uZmlnPWh0LmV4dGVuZCh7fSxsLmNvbmZpZyx0LmNvbmZpZykpLHQ9aHQuZXh0ZW5kKHt9LGwsdCksYyYmdC5jbGFzc05hbWUhPT1jJiYodC5jbGFzc05hbWU9YysiICIrdC5jbGFzc05hbWUpLHQuZXh0ZW5kPWwuZXh0ZW5kfXZhciBwPXQucG9zdGZpeEJ1dHRvbnM7aWYocClmb3IodC5idXR0b25zfHwodC5idXR0b25zPVtdKSxuPTAscz1wLmxlbmd0aDtuPHM7bisrKXQuYnV0dG9ucy5wdXNoKHBbbl0pO3ZhciBiPXQucHJlZml4QnV0dG9ucztpZihiKWZvcih0LmJ1dHRvbnN8fCh0LmJ1dHRvbnM9W10pLG49MCxzPWIubGVuZ3RoO248cztuKyspdC5idXR0b25zLnNwbGljZShuLDAsYltuXSk7cmV0dXJuIHR9LF9wb3BvdmVyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lLHM9dGhpcy5jLGE9ITEsbD1odC5leHRlbmQoe2FsaWduOiJidXR0b24tbGVmdCIsYXV0b0Nsb3NlOiExLGJhY2tncm91bmQ6ITAsYmFja2dyb3VuZENsYXNzTmFtZToiZHQtYnV0dG9uLWJhY2tncm91bmQiLGNsb3NlQnV0dG9uOiEwLGNvbnRhaW5lckNsYXNzTmFtZTpzLmRvbS5jb2xsZWN0aW9uLmNvbnRhaW5lci5jbGFzc05hbWUsY29udGVudENsYXNzTmFtZTpzLmRvbS5jb2xsZWN0aW9uLmNvbnRhaW5lci5jb250ZW50LmNsYXNzTmFtZSxjb2xsZWN0aW9uTGF5b3V0OiIiLGNvbGxlY3Rpb25UaXRsZToiIixkcm9wdXA6ITEsZmFkZTo0MDAscG9wb3ZlclRpdGxlOiIiLHJpZ2h0QWxpZ25DbGFzc05hbWU6ImR0LWJ1dHRvbi1yaWdodCIsdGFnOnMuZG9tLmNvbGxlY3Rpb24uY29udGFpbmVyLnRhZ30sciksYz1sLnRhZysiLiIrbC5jb250YWluZXJDbGFzc05hbWUucmVwbGFjZSgvIC9nLCIuIikscD1lLm5vZGUoKSxiPWZ1bmN0aW9uKCl7YT0hMCxMaShodChjKSxsLmZhZGUsZnVuY3Rpb24oKXtodCh0aGlzKS5kZXRhY2goKX0pLGh0KG4uYnV0dG9ucygnW2FyaWEtaGFzcG9wdXA9ImRpYWxvZyJdW2FyaWEtZXhwYW5kZWQ9InRydWUiXScpLm5vZGVzKCkpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLGh0KCJkaXYuZHQtYnV0dG9uLWJhY2tncm91bmQiKS5vZmYoImNsaWNrLmR0Yi1jb2xsZWN0aW9uIiksSnQuYmFja2dyb3VuZCghMSxsLmJhY2tncm91bmRDbGFzc05hbWUsbC5mYWRlLHApLGh0KHdpbmRvdykub2ZmKCJyZXNpemUucmVzaXplLmR0Yi1jb2xsZWN0aW9uIiksaHQoImJvZHkiKS5vZmYoIi5kdGItY29sbGVjdGlvbiIpLG4ub2ZmKCJidXR0b25zLWFjdGlvbi5iLWludGVybmFsIiksbi5vZmYoImRlc3Ryb3kiKX07aWYodD09PSExKXtiKCk7cmV0dXJufXZhciBtPWh0KG4uYnV0dG9ucygnW2FyaWEtaGFzcG9wdXA9ImRpYWxvZyJdW2FyaWEtZXhwYW5kZWQ9InRydWUiXScpLm5vZGVzKCkpO20ubGVuZ3RoJiYocC5jbG9zZXN0KGMpLmxlbmd0aCYmKHA9bS5lcSgwKSksYigpKTt2YXIgeT1odCgiLmR0LWJ1dHRvbiIsdCkubGVuZ3RoLFQ9IiI7eT09PTM/VD0iZHRiLWIzIjp5PT09Mj9UPSJkdGItYjIiOnk9PT0xJiYoVD0iZHRiLWIxIik7dmFyIHc9aHQoIjwiK2wudGFnKyIvPiIpLmFkZENsYXNzKGwuY29udGFpbmVyQ2xhc3NOYW1lKS5hZGRDbGFzcyhsLmNvbGxlY3Rpb25MYXlvdXQpLmFkZENsYXNzKGwuc3BsaXRBbGlnbkNsYXNzKS5hZGRDbGFzcyhUKS5jc3MoImRpc3BsYXkiLCJub25lIikuYXR0cih7ImFyaWEtbW9kYWwiOiEwLHJvbGU6ImRpYWxvZyJ9KTt0PWh0KHQpLmFkZENsYXNzKGwuY29udGVudENsYXNzTmFtZSkuYXR0cigicm9sZSIsIm1lbnUiKS5hcHBlbmRUbyh3KSxwLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJ0cnVlIikscC5wYXJlbnRzKCJib2R5IilbMF0hPT1kb2N1bWVudC5ib2R5JiYocD1kb2N1bWVudC5ib2R5Lmxhc3RDaGlsZCksbC5wb3BvdmVyVGl0bGU/dy5wcmVwZW5kKCc8ZGl2IGNsYXNzPSJkdC1idXR0b24tY29sbGVjdGlvbi10aXRsZSI+JytsLnBvcG92ZXJUaXRsZSsiPC9kaXY+Iik6bC5jb2xsZWN0aW9uVGl0bGUmJncucHJlcGVuZCgnPGRpdiBjbGFzcz0iZHQtYnV0dG9uLWNvbGxlY3Rpb24tdGl0bGUiPicrbC5jb2xsZWN0aW9uVGl0bGUrIjwvZGl2PiIpLGwuY2xvc2VCdXR0b24mJncucHJlcGVuZCgnPGRpdiBjbGFzcz0iZHRiLXBvcG92ZXItY2xvc2UiPiZ0aW1lczs8L2Rpdj4nKS5hZGRDbGFzcygiZHRiLWNvbGxlY3Rpb24tY2xvc2VhYmxlIiksUmkody5pbnNlcnRBZnRlcihwKSxsLmZhZGUpO3ZhciBrPWh0KGUudGFibGUoKS5jb250YWluZXIoKSksUD13LmNzcygicG9zaXRpb24iKTtpZigobC5zcGFuPT09ImNvbnRhaW5lciJ8fGwuYWxpZ249PT0iZHQtY29udGFpbmVyIikmJihwPXAucGFyZW50KCksdy5jc3MoIndpZHRoIixrLndpZHRoKCkpKSxQPT09ImFic29sdXRlIil7dmFyIEY9aHQocFswXS5vZmZzZXRQYXJlbnQpLGg9cC5wb3NpdGlvbigpLG89cC5vZmZzZXQoKSxmPUYub2Zmc2V0KCksQz1GLnBvc2l0aW9uKCksQj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShGWzBdKTtmLmhlaWdodD1GLm91dGVySGVpZ2h0KCksZi53aWR0aD1GLndpZHRoKCkrcGFyc2VGbG9hdChCLnBhZGRpbmdMZWZ0KSxmLnJpZ2h0PWYubGVmdCtmLndpZHRoLGYuYm90dG9tPWYudG9wK2YuaGVpZ2h0O3ZhciB1PWgudG9wK3Aub3V0ZXJIZWlnaHQoKSx6PWgubGVmdDt3LmNzcyh7dG9wOnUsbGVmdDp6fSksQj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh3WzBdKTt2YXIgcT13Lm9mZnNldCgpO3EuaGVpZ2h0PXcub3V0ZXJIZWlnaHQoKSxxLndpZHRoPXcub3V0ZXJXaWR0aCgpLHEucmlnaHQ9cS5sZWZ0K3Eud2lkdGgscS5ib3R0b209cS50b3ArcS5oZWlnaHQscS5tYXJnaW5Ub3A9cGFyc2VGbG9hdChCLm1hcmdpblRvcCkscS5tYXJnaW5Cb3R0b209cGFyc2VGbG9hdChCLm1hcmdpbkJvdHRvbSksbC5kcm9wdXAmJih1PWgudG9wLXEuaGVpZ2h0LXEubWFyZ2luVG9wLXEubWFyZ2luQm90dG9tKSwobC5hbGlnbj09PSJidXR0b24tcmlnaHQifHx3Lmhhc0NsYXNzKGwucmlnaHRBbGlnbkNsYXNzTmFtZSkpJiYoej1oLmxlZnQtcS53aWR0aCtwLm91dGVyV2lkdGgoKSksKGwuYWxpZ249PT0iZHQtY29udGFpbmVyInx8bC5hbGlnbj09PSJjb250YWluZXIiKSYmejxoLmxlZnQmJih6PS1oLmxlZnQpLEMubGVmdCt6K3Eud2lkdGg+aHQod2luZG93KS53aWR0aCgpJiYoej1odCh3aW5kb3cpLndpZHRoKCktcS53aWR0aC1DLmxlZnQpLG8ubGVmdCt6PDAmJih6PS1vLmxlZnQpLEMudG9wK3UrcS5oZWlnaHQ+aHQod2luZG93KS5oZWlnaHQoKStodCh3aW5kb3cpLnNjcm9sbFRvcCgpJiYodT1oLnRvcC1xLmhlaWdodC1xLm1hcmdpblRvcC1xLm1hcmdpbkJvdHRvbSksQy50b3ArdTxodCh3aW5kb3cpLnNjcm9sbFRvcCgpJiYodT1oLnRvcCtwLm91dGVySGVpZ2h0KCkpLHcuY3NzKHt0b3A6dSxsZWZ0Onp9KX1lbHNle3ZhciBldD1mdW5jdGlvbigpe3ZhciBPPWh0KHdpbmRvdykuaGVpZ2h0KCkvMixaPXcuaGVpZ2h0KCkvMjtaPk8mJihaPU8pLHcuY3NzKCJtYXJnaW5Ub3AiLFoqLTEpfTtldCgpLGh0KHdpbmRvdykub24oInJlc2l6ZS5kdGItY29sbGVjdGlvbiIsZnVuY3Rpb24oKXtldCgpfSl9bC5iYWNrZ3JvdW5kJiZKdC5iYWNrZ3JvdW5kKCEwLGwuYmFja2dyb3VuZENsYXNzTmFtZSxsLmZhZGUsbC5iYWNrZ3JvdW5kSG9zdHx8cCksaHQoImRpdi5kdC1idXR0b24tYmFja2dyb3VuZCIpLm9uKCJjbGljay5kdGItY29sbGVjdGlvbiIsZnVuY3Rpb24oKXt9KSxsLmF1dG9DbG9zZSYmc2V0VGltZW91dChmdW5jdGlvbigpe24ub24oImJ1dHRvbnMtYWN0aW9uLmItaW50ZXJuYWwiLGZ1bmN0aW9uKE8sWixnLF8pe19bMF0hPT1wWzBdJiZiKCl9KX0sMCksaHQodykudHJpZ2dlcigiYnV0dG9ucy1wb3BvdmVyLmR0Iiksbi5vbigiZGVzdHJveSIsYiksc2V0VGltZW91dChmdW5jdGlvbigpe2E9ITEsaHQoImJvZHkiKS5vbigiY2xpY2suZHRiLWNvbGxlY3Rpb24iLGZ1bmN0aW9uKE8pe2lmKCFhKXt2YXIgWj1odC5mbi5hZGRCYWNrPyJhZGRCYWNrIjoiYW5kU2VsZiIsZz1odChPLnRhcmdldCkucGFyZW50KClbMF07KCFodChPLnRhcmdldCkucGFyZW50cygpW1pdKCkuZmlsdGVyKHQpLmxlbmd0aCYmIWh0KGcpLmhhc0NsYXNzKCJkdC1idXR0b25zIil8fGh0KE8udGFyZ2V0KS5oYXNDbGFzcygiZHQtYnV0dG9uLWJhY2tncm91bmQiKSkmJmIoKX19KS5vbigia2V5dXAuZHRiLWNvbGxlY3Rpb24iLGZ1bmN0aW9uKE8pe08ua2V5Q29kZT09PTI3JiZiKCl9KS5vbigia2V5ZG93bi5kdGItY29sbGVjdGlvbiIsZnVuY3Rpb24oTyl7dmFyIFo9aHQoImEsIGJ1dHRvbiIsdCksZz1kb2N1bWVudC5hY3RpdmVFbGVtZW50O08ua2V5Q29kZT09PTkmJihaLmluZGV4KGcpPT09LTE/KFouZmlyc3QoKS5mb2N1cygpLE8ucHJldmVudERlZmF1bHQoKSk6Ty5zaGlmdEtleT9nPT09WlswXSYmKFoubGFzdCgpLmZvY3VzKCksTy5wcmV2ZW50RGVmYXVsdCgpKTpnPT09Wi5sYXN0KClbMF0mJihaLmZpcnN0KCkuZm9jdXMoKSxPLnByZXZlbnREZWZhdWx0KCkpKX0pfSwwKX19KTtKdC5iYWNrZ3JvdW5kPWZ1bmN0aW9uKHQsZSxyLG4pe3I9PT12b2lkIDAmJihyPTQwMCksbnx8KG49ZG9jdW1lbnQuYm9keSksdD9SaShodCgiPGRpdi8+IikuYWRkQ2xhc3MoZSkuY3NzKCJkaXNwbGF5Iiwibm9uZSIpLmluc2VydEFmdGVyKG4pLHIpOkxpKGh0KCJkaXYuIitlKSxyLGZ1bmN0aW9uKCl7aHQodGhpcykucmVtb3ZlQ2xhc3MoZSkucmVtb3ZlKCl9KX07SnQuaW5zdGFuY2VTZWxlY3Rvcj1mdW5jdGlvbih0LGUpe2lmKHQ9PW51bGwpcmV0dXJuIGh0Lm1hcChlLGZ1bmN0aW9uKGEpe3JldHVybiBhLmluc3R9KTt2YXIgcj1bXSxuPWh0Lm1hcChlLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5hbWV9KSxzPWZ1bmN0aW9uKGEpe2lmKEFycmF5LmlzQXJyYXkoYSkpe2Zvcih2YXIgbD0wLGM9YS5sZW5ndGg7bDxjO2wrKylzKGFbbF0pO3JldHVybn1pZih0eXBlb2YgYT09InN0cmluZyIpaWYoYS5pbmRleE9mKCIsIikhPT0tMSlzKGEuc3BsaXQoIiwiKSk7ZWxzZXt2YXIgcD1odC5pbkFycmF5KGEudHJpbSgpLG4pO3AhPT0tMSYmci5wdXNoKGVbcF0uaW5zdCl9ZWxzZSBpZih0eXBlb2YgYT09Im51bWJlciIpci5wdXNoKGVbYV0uaW5zdCk7ZWxzZSBpZih0eXBlb2YgYT09Im9iamVjdCImJmEubm9kZU5hbWUpZm9yKHZhciBiPTA7YjxlLmxlbmd0aDtiKyspZVtiXS5pbnN0LmRvbS5jb250YWluZXJbMF09PT1hJiZyLnB1c2goZVtiXS5pbnN0KTtlbHNlIHR5cGVvZiBhPT0ib2JqZWN0IiYmci5wdXNoKGEpfTtyZXR1cm4gcyh0KSxyfTtKdC5idXR0b25TZWxlY3Rvcj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1bXSxuPWZ1bmN0aW9uKHAsYixtKXtmb3IodmFyIHksVCx3PTAsaz1iLmxlbmd0aDt3PGs7dysrKXk9Ylt3XSx5JiYoVD1tIT09dm9pZCAwP20rdzp3KyIiLHAucHVzaCh7bm9kZTp5Lm5vZGUsbmFtZTp5LmNvbmYubmFtZSxpZHg6VH0pLHkuYnV0dG9ucyYmbihwLHkuYnV0dG9ucyxUKyItIikpfSxzPWZ1bmN0aW9uKHAsYil7dmFyIG0seSxUPVtdO24oVCxiLnMuYnV0dG9ucyk7dmFyIHc9aHQubWFwKFQsZnVuY3Rpb24obyl7cmV0dXJuIG8ubm9kZX0pO2lmKEFycmF5LmlzQXJyYXkocCl8fHAgaW5zdGFuY2VvZiBodCl7Zm9yKG09MCx5PXAubGVuZ3RoO208eTttKyspcyhwW21dLGIpO3JldHVybn1pZihwPT1udWxsfHxwPT09IioiKWZvcihtPTAseT1ULmxlbmd0aDttPHk7bSsrKXIucHVzaCh7aW5zdDpiLG5vZGU6VFttXS5ub2RlfSk7ZWxzZSBpZih0eXBlb2YgcD09Im51bWJlciIpYi5zLmJ1dHRvbnNbcF0mJnIucHVzaCh7aW5zdDpiLG5vZGU6Yi5zLmJ1dHRvbnNbcF0ubm9kZX0pO2Vsc2UgaWYodHlwZW9mIHA9PSJzdHJpbmciKWlmKHAuaW5kZXhPZigiLCIpIT09LTEpe3ZhciBrPXAuc3BsaXQoIiwiKTtmb3IobT0wLHk9ay5sZW5ndGg7bTx5O20rKylzKGtbbV0udHJpbSgpLGIpfWVsc2UgaWYocC5tYXRjaCgvXlxkKyhcLVxkKykqJC8pKXt2YXIgUD1odC5tYXAoVCxmdW5jdGlvbihvKXtyZXR1cm4gby5pZHh9KTtyLnB1c2goe2luc3Q6Yixub2RlOlRbaHQuaW5BcnJheShwLFApXS5ub2RlfSl9ZWxzZSBpZihwLmluZGV4T2YoIjpuYW1lIikhPT0tMSl7dmFyIEY9cC5yZXBsYWNlKCI6bmFtZSIsIiIpO2ZvcihtPTAseT1ULmxlbmd0aDttPHk7bSsrKVRbbV0ubmFtZT09PUYmJnIucHVzaCh7aW5zdDpiLG5vZGU6VFttXS5ub2RlfSl9ZWxzZSBodCh3KS5maWx0ZXIocCkuZWFjaChmdW5jdGlvbigpe3IucHVzaCh7aW5zdDpiLG5vZGU6dGhpc30pfSk7ZWxzZSBpZih0eXBlb2YgcD09Im9iamVjdCImJnAubm9kZU5hbWUpe3ZhciBoPWh0LmluQXJyYXkocCx3KTtoIT09LTEmJnIucHVzaCh7aW5zdDpiLG5vZGU6d1toXX0pfX0sYT0wLGw9dC5sZW5ndGg7YTxsO2ErKyl7dmFyIGM9dFthXTtzKGUsYyl9cmV0dXJuIHJ9O0p0LnN0cmlwRGF0YT1mdW5jdGlvbih0LGUpe3JldHVybiB0eXBlb2YgdCE9InN0cmluZyJ8fCh0PUp0LnN0cmlwSHRtbFNjcmlwdCh0KSx0PUp0LnN0cmlwSHRtbENvbW1lbnRzKHQpLCghZXx8ZS5zdHJpcEh0bWwpJiYodD1zdC51dGlsLnN0cmlwSHRtbCh0KSksKCFlfHxlLnRyaW0pJiYodD10LnRyaW0oKSksKCFlfHxlLnN0cmlwTmV3bGluZXMpJiYodD10LnJlcGxhY2UoL1xuL2csIiAiKSksKCFlfHxlLmRlY29kZUVudGl0aWVzKSYmKE9pP3Q9T2kodCk6KG1zLmlubmVySFRNTD10LHQ9bXMudmFsdWUpKSksdH07SnQuZW50aXR5RGVjb2Rlcj1mdW5jdGlvbih0KXtPaT10fTtKdC5zdHJpcEh0bWxDb21tZW50cz1mdW5jdGlvbih0KXt2YXIgZTtkbyBlPXQsdD10LnJlcGxhY2UoLyg8IS0tLio/LS0hPz4pfCg8IS0tW1xTXHNdKz8tLSE/Pil8KDwhLS1bXFNcc10qPyQpL2csIiIpO3doaWxlKHQhPT1lKTtyZXR1cm4gdH07SnQuc3RyaXBIdG1sU2NyaXB0PWZ1bmN0aW9uKHQpe3ZhciBlO2RvIGU9dCx0PXQucmVwbGFjZSgvPHNjcmlwdFxiW148XSooPzooPyE8XC9zY3JpcHRbXj5dKj4pPFtePF0qKSo8XC9zY3JpcHRbXj5dKj4vZ2ksIiIpO3doaWxlKHQhPT1lKTtyZXR1cm4gdH07SnQuZGVmYXVsdHM9e2J1dHRvbnM6WyJjb3B5IiwiZXhjZWwiLCJjc3YiLCJwZGYiLCJwcmludCJdLG5hbWU6Im1haW4iLHRhYkluZGV4OjAsZG9tOntjb250YWluZXI6e3RhZzoiZGl2IixjbGFzc05hbWU6ImR0LWJ1dHRvbnMifSxjb2xsZWN0aW9uOnthY3Rpb246e2Ryb3BIdG1sOic8c3BhbiBjbGFzcz0iZHQtYnV0dG9uLWRvd24tYXJyb3ciPiYjeDI1QkM7PC9zcGFuPid9LGNvbnRhaW5lcjp7Y2xhc3NOYW1lOiJkdC1idXR0b24tY29sbGVjdGlvbiIsY29udGVudDp7Y2xhc3NOYW1lOiIiLHRhZzoiZGl2In0sdGFnOiJkaXYifX0sYnV0dG9uOnt0YWc6ImJ1dHRvbiIsY2xhc3NOYW1lOiJkdC1idXR0b24iLGFjdGl2ZToiZHQtYnV0dG9uLWFjdGl2ZSIsZGlzYWJsZWQ6ImRpc2FibGVkIixzcGFjZXI6e2NsYXNzTmFtZToiZHQtYnV0dG9uLXNwYWNlciIsdGFnOiJzcGFuIn0sbGluZXI6e3RhZzoic3BhbiIsY2xhc3NOYW1lOiIifX0sc3BsaXQ6e2FjdGlvbjp7Y2xhc3NOYW1lOiJkdC1idXR0b24tc3BsaXQtZHJvcC1idXR0b24gZHQtYnV0dG9uIix0YWc6ImJ1dHRvbiJ9LGRyb3Bkb3duOnthbGlnbjoic3BsaXQtcmlnaHQiLGNsYXNzTmFtZToiZHQtYnV0dG9uLXNwbGl0LWRyb3AiLGRyb3BIdG1sOic8c3BhbiBjbGFzcz0iZHQtYnV0dG9uLWRvd24tYXJyb3ciPiYjeDI1QkM7PC9zcGFuPicsc3BsaXRBbGlnbkNsYXNzOiJkdC1idXR0b24tc3BsaXQtbGVmdCIsdGFnOiJidXR0b24ifSx3cmFwcGVyOntjbGFzc05hbWU6ImR0LWJ1dHRvbi1zcGxpdCIsdGFnOiJkaXYifX19fTtKdC52ZXJzaW9uPSIzLjAuMiI7aHQuZXh0ZW5kKF9lLHtjb2xsZWN0aW9uOnt0ZXh0OmZ1bmN0aW9uKHQpe3JldHVybiB0LmkxOG4oImJ1dHRvbnMuY29sbGVjdGlvbiIsIkNvbGxlY3Rpb24iKX0sY2xhc3NOYW1lOiJidXR0b25zLWNvbGxlY3Rpb24iLGNsb3NlQnV0dG9uOiExLGluaXQ6ZnVuY3Rpb24odCxlKXtlLmF0dHIoImFyaWEtZXhwYW5kZWQiLCExKX0sYWN0aW9uOmZ1bmN0aW9uKHQsZSxyLG4pe24uX2NvbGxlY3Rpb24ucGFyZW50cygiYm9keSIpLmxlbmd0aD90aGlzLnBvcG92ZXIoITEsbik6dGhpcy5wb3BvdmVyKG4uX2NvbGxlY3Rpb24sbiksdC50eXBlPT09ImtleXByZXNzIiYmaHQoImEsIGJ1dHRvbiIsbi5fY29sbGVjdGlvbikuZXEoMCkuZm9jdXMoKX0sYXR0cjp7ImFyaWEtaGFzcG9wdXAiOiJkaWFsb2cifX0sc3BsaXQ6e3RleHQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQuaTE4bigiYnV0dG9ucy5zcGxpdCIsIlNwbGl0Iil9LGNsYXNzTmFtZToiYnV0dG9ucy1zcGxpdCIsY2xvc2VCdXR0b246ITEsaW5pdDpmdW5jdGlvbih0LGUpe3JldHVybiBlLmF0dHIoImFyaWEtZXhwYW5kZWQiLCExKX0sYWN0aW9uOmZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMucG9wb3ZlcihuLl9jb2xsZWN0aW9uLG4pfSxhdHRyOnsiYXJpYS1oYXNwb3B1cCI6ImRpYWxvZyJ9fSxjb3B5OmZ1bmN0aW9uKCl7aWYoX2UuY29weUh0bWw1KXJldHVybiJjb3B5SHRtbDUifSxjc3Y6ZnVuY3Rpb24odCxlKXtpZihfZS5jc3ZIdG1sNSYmX2UuY3N2SHRtbDUuYXZhaWxhYmxlKHQsZSkpcmV0dXJuImNzdkh0bWw1In0sZXhjZWw6ZnVuY3Rpb24odCxlKXtpZihfZS5leGNlbEh0bWw1JiZfZS5leGNlbEh0bWw1LmF2YWlsYWJsZSh0LGUpKXJldHVybiJleGNlbEh0bWw1In0scGRmOmZ1bmN0aW9uKHQsZSl7aWYoX2UucGRmSHRtbDUmJl9lLnBkZkh0bWw1LmF2YWlsYWJsZSh0LGUpKXJldHVybiJwZGZIdG1sNSJ9LHBhZ2VMZW5ndGg6ZnVuY3Rpb24odCl7dmFyIGU9dC5zZXR0aW5ncygpWzBdLmFMZW5ndGhNZW51LHI9W10sbj1bXSxzPWZ1bmN0aW9uKGMpe3JldHVybiBjLmkxOG4oImJ1dHRvbnMucGFnZUxlbmd0aCIseyItMSI6IlNob3cgYWxsIHJvd3MiLF86IlNob3cgJWQgcm93cyJ9LGMucGFnZS5sZW4oKSl9O2lmKEFycmF5LmlzQXJyYXkoZVswXSkpcj1lWzBdLG49ZVsxXTtlbHNlIGZvcih2YXIgYT0wO2E8ZS5sZW5ndGg7YSsrKXt2YXIgbD1lW2FdO2h0LmlzUGxhaW5PYmplY3QobCk/KHIucHVzaChsLnZhbHVlKSxuLnB1c2gobC5sYWJlbCkpOihyLnB1c2gobCksbi5wdXNoKGwpKX1yZXR1cm57ZXh0ZW5kOiJjb2xsZWN0aW9uIix0ZXh0OnMsY2xhc3NOYW1lOiJidXR0b25zLXBhZ2UtbGVuZ3RoIixhdXRvQ2xvc2U6ITAsYnV0dG9uczpodC5tYXAocixmdW5jdGlvbihjLHApe3JldHVybnt0ZXh0Om5bcF0sY2xhc3NOYW1lOiJidXR0b24tcGFnZS1sZW5ndGgiLGFjdGlvbjpmdW5jdGlvbihiLG0pe20ucGFnZS5sZW4oYykuZHJhdygpfSxpbml0OmZ1bmN0aW9uKGIsbSx5KXt2YXIgVD10aGlzLHc9ZnVuY3Rpb24oKXtULmFjdGl2ZShiLnBhZ2UubGVuKCk9PT1jKX07Yi5vbigibGVuZ3RoLmR0Iit5Lm5hbWVzcGFjZSx3KSx3KCl9LGRlc3Ryb3k6ZnVuY3Rpb24oYixtLHkpe2Iub2ZmKCJsZW5ndGguZHQiK3kubmFtZXNwYWNlKX19fSksaW5pdDpmdW5jdGlvbihjLHAsYil7dmFyIG09dGhpcztjLm9uKCJsZW5ndGguZHQiK2IubmFtZXNwYWNlLGZ1bmN0aW9uKCl7bS50ZXh0KGIudGV4dCl9KX0sZGVzdHJveTpmdW5jdGlvbihjLHAsYil7Yy5vZmYoImxlbmd0aC5kdCIrYi5uYW1lc3BhY2UpfX19LHNwYWNlcjp7c3R5bGU6ImVtcHR5IixzcGFjZXI6ITAsdGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gdC5pMThuKCJidXR0b25zLnNwYWNlciIsIiIpfX19KTtzdC5BcGkucmVnaXN0ZXIoImJ1dHRvbnMoKSIsZnVuY3Rpb24odCxlKXtlPT09dm9pZCAwJiYoZT10LHQ9dm9pZCAwKSx0aGlzLnNlbGVjdG9yLmJ1dHRvbkdyb3VwPXQ7dmFyIHI9dGhpcy5pdGVyYXRvcighMCwidGFibGUiLGZ1bmN0aW9uKG4pe2lmKG4uX2J1dHRvbnMpcmV0dXJuIEp0LmJ1dHRvblNlbGVjdG9yKEp0Lmluc3RhbmNlU2VsZWN0b3IodCxuLl9idXR0b25zKSxlKX0sITApO3JldHVybiByLl9ncm91cFNlbGVjdG9yPXQscn0pO3N0LkFwaS5yZWdpc3RlcigiYnV0dG9uKCkiLGZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5idXR0b25zKHQsZSk7cmV0dXJuIHIubGVuZ3RoPjEmJnIuc3BsaWNlKDEsci5sZW5ndGgpLHJ9KTtzdC5BcGkucmVnaXN0ZXJQbHVyYWwoImJ1dHRvbnMoKS5hY3RpdmUoKSIsImJ1dHRvbigpLmFjdGl2ZSgpIixmdW5jdGlvbih0KXtyZXR1cm4gdD09PXZvaWQgMD90aGlzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5pbnN0LmFjdGl2ZShlLm5vZGUpfSk6dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe2UuaW5zdC5hY3RpdmUoZS5ub2RlLHQpfSl9KTtzdC5BcGkucmVnaXN0ZXJQbHVyYWwoImJ1dHRvbnMoKS5hY3Rpb24oKSIsImJ1dHRvbigpLmFjdGlvbigpIixmdW5jdGlvbih0KXtyZXR1cm4gdD09PXZvaWQgMD90aGlzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5pbnN0LmFjdGlvbihlLm5vZGUpfSk6dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe2UuaW5zdC5hY3Rpb24oZS5ub2RlLHQpfSl9KTtzdC5BcGkucmVnaXN0ZXJQbHVyYWwoImJ1dHRvbnMoKS5jb2xsZWN0aW9uUmVidWlsZCgpIiwiYnV0dG9uKCkuY29sbGVjdGlvblJlYnVpbGQoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl0eXBlb2YgdFtyXT09Im9iamVjdCImJih0W3JdLnBhcmVudENvbmY9ZSk7ZS5pbnN0LmNvbGxlY3Rpb25SZWJ1aWxkKGUubm9kZSx0KX0pfSk7c3QuQXBpLnJlZ2lzdGVyKFsiYnV0dG9ucygpLmVuYWJsZSgpIiwiYnV0dG9uKCkuZW5hYmxlKCkiXSxmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGUpe2UuaW5zdC5lbmFibGUoZS5ub2RlLHQpfSl9KTtzdC5BcGkucmVnaXN0ZXIoWyJidXR0b25zKCkuZGlzYWJsZSgpIiwiYnV0dG9uKCkuZGlzYWJsZSgpIl0sZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe3QuaW5zdC5kaXNhYmxlKHQubm9kZSl9KX0pO3N0LkFwaS5yZWdpc3RlcigiYnV0dG9uKCkuaW5kZXgoKSIsZnVuY3Rpb24oKXt2YXIgdD1udWxsO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oZSl7dmFyIHI9ZS5pbnN0LmluZGV4KGUubm9kZSk7ciE9PW51bGwmJih0PXIpfSksdH0pO3N0LkFwaS5yZWdpc3RlclBsdXJhbCgiYnV0dG9ucygpLm5vZGVzKCkiLCJidXR0b24oKS5ub2RlKCkiLGZ1bmN0aW9uKCl7dmFyIHQ9aHQoKTtyZXR1cm4gaHQodGhpcy5lYWNoKGZ1bmN0aW9uKGUpe3Q9dC5hZGQoZS5pbnN0Lm5vZGUoZS5ub2RlKSl9KSksdH0pO3N0LkFwaS5yZWdpc3RlclBsdXJhbCgiYnV0dG9ucygpLnByb2Nlc3NpbmcoKSIsImJ1dHRvbigpLnByb2Nlc3NpbmcoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT12b2lkIDA/dGhpcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5zdC5wcm9jZXNzaW5nKGUubm9kZSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oZSl7ZS5pbnN0LnByb2Nlc3NpbmcoZS5ub2RlLHQpfSl9KTtzdC5BcGkucmVnaXN0ZXJQbHVyYWwoImJ1dHRvbnMoKS50ZXh0KCkiLCJidXR0b24oKS50ZXh0KCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0PT09dm9pZCAwP3RoaXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLmluc3QudGV4dChlLm5vZGUpfSk6dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe2UuaW5zdC50ZXh0KGUubm9kZSx0KX0pfSk7c3QuQXBpLnJlZ2lzdGVyUGx1cmFsKCJidXR0b25zKCkudHJpZ2dlcigpIiwiYnV0dG9uKCkudHJpZ2dlcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24odCl7dC5pbnN0Lm5vZGUodC5ub2RlKS50cmlnZ2VyKCJjbGljayIpfSl9KTtzdC5BcGkucmVnaXN0ZXIoImJ1dHRvbigpLnBvcG92ZXIoKSIsZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIHIuaW5zdC5fcG9wb3Zlcih0LHRoaXMuYnV0dG9uKHRoaXNbMF0ubm9kZSksZSl9KX0pO3N0LkFwaS5yZWdpc3RlcigiYnV0dG9ucygpLmNvbnRhaW5lcnMoKSIsZnVuY3Rpb24oKXt2YXIgdD1odCgpLGU9dGhpcy5fZ3JvdXBTZWxlY3RvcjtyZXR1cm4gdGhpcy5pdGVyYXRvcighMCwidGFibGUiLGZ1bmN0aW9uKHIpe2lmKHIuX2J1dHRvbnMpZm9yKHZhciBuPUp0Lmluc3RhbmNlU2VsZWN0b3IoZSxyLl9idXR0b25zKSxzPTAsYT1uLmxlbmd0aDtzPGE7cysrKXQ9dC5hZGQobltzXS5jb250YWluZXIoKSl9KSx0fSk7c3QuQXBpLnJlZ2lzdGVyKCJidXR0b25zKCkuY29udGFpbmVyKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGFpbmVycygpLmVxKDApfSk7c3QuQXBpLnJlZ2lzdGVyKCJidXR0b24oKS5hZGQoKSIsZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMuY29udGV4dDtpZihuLmxlbmd0aCl7dmFyIHM9SnQuaW5zdGFuY2VTZWxlY3Rvcih0aGlzLl9ncm91cFNlbGVjdG9yLG5bMF0uX2J1dHRvbnMpO3MubGVuZ3RoJiZzWzBdLmFkZChlLHQscil9cmV0dXJuIHRoaXMuYnV0dG9uKHRoaXMuX2dyb3VwU2VsZWN0b3IsdCl9KTtzdC5BcGkucmVnaXN0ZXIoImJ1dHRvbnMoKS5kZXN0cm95KCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGx1Y2soImluc3QiKS51bmlxdWUoKS5lYWNoKGZ1bmN0aW9uKHQpe3QuZGVzdHJveSgpfSksdGhpc30pO3N0LkFwaS5yZWdpc3RlclBsdXJhbCgiYnV0dG9ucygpLnJlbW92ZSgpIiwiYnV0dG9ucygpLnJlbW92ZSgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24odCl7dC5pbnN0LnJlbW92ZSh0Lm5vZGUpfSksdGhpc30pO3ZhciBLcjtzdC5BcGkucmVnaXN0ZXIoImJ1dHRvbnMuaW5mbygpIixmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcztyZXR1cm4gdD09PSExPyh0aGlzLm9mZigiZGVzdHJveS5idG4taW5mbyIpLExpKGh0KCIjZGF0YXRhYmxlc19idXR0b25zX2luZm8iKSw0MDAsZnVuY3Rpb24oKXtodCh0aGlzKS5yZW1vdmUoKX0pLGNsZWFyVGltZW91dChLciksS3I9bnVsbCx0aGlzKTooS3ImJmNsZWFyVGltZW91dChLciksaHQoIiNkYXRhdGFibGVzX2J1dHRvbnNfaW5mbyIpLmxlbmd0aCYmaHQoIiNkYXRhdGFibGVzX2J1dHRvbnNfaW5mbyIpLnJlbW92ZSgpLHQ9dD8iPGgyPiIrdCsiPC9oMj4iOiIiLFJpKGh0KCc8ZGl2IGlkPSJkYXRhdGFibGVzX2J1dHRvbnNfaW5mbyIgY2xhc3M9ImR0LWJ1dHRvbi1pbmZvIi8+JykuaHRtbCh0KS5hcHBlbmQoaHQoIjxkaXYvPiIpW3R5cGVvZiBlPT0ic3RyaW5nIj8iaHRtbCI6ImFwcGVuZCJdKGUpKS5jc3MoImRpc3BsYXkiLCJub25lIikuYXBwZW5kVG8oImJvZHkiKSksciE9PXZvaWQgMCYmciE9PTAmJihLcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bi5idXR0b25zLmluZm8oITEpfSxyKSksdGhpcy5vbigiZGVzdHJveS5idG4taW5mbyIsZnVuY3Rpb24oKXtuLmJ1dHRvbnMuaW5mbyghMSl9KSx0aGlzKX0pO3N0LkFwaS5yZWdpc3RlcigiYnV0dG9ucy5leHBvcnREYXRhKCkiLGZ1bmN0aW9uKHQpe2lmKHRoaXMuY29udGV4dC5sZW5ndGgpcmV0dXJuIEJsKG5ldyBzdC5BcGkodGhpcy5jb250ZXh0WzBdKSx0KX0pO3N0LkFwaS5yZWdpc3RlcigiYnV0dG9ucy5leHBvcnRJbmZvKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0fHwodD17fSkse2ZpbGVuYW1lOlBsKHQsdGhpcyksdGl0bGU6RmwodCx0aGlzKSxtZXNzYWdlVG9wOnZzKHRoaXMsdCx0Lm1lc3NhZ2V8fHQubWVzc2FnZVRvcCwidG9wIiksbWVzc2FnZUJvdHRvbTp2cyh0aGlzLHQsdC5tZXNzYWdlQm90dG9tLCJib3R0b20iKX19KTt2YXIgUGw9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmZpbGVuYW1lPT09IioiJiZ0LnRpdGxlIT09IioiJiZ0LnRpdGxlIT09dm9pZCAwJiZ0LnRpdGxlIT09bnVsbCYmdC50aXRsZSE9PSIiP3QudGl0bGU6dC5maWxlbmFtZTtpZih0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmKHI9cih0LGUpKSxyPT1udWxsKXJldHVybiBudWxsO3IuaW5kZXhPZigiKiIpIT09LTEmJihyPXIucmVwbGFjZSgvXCovZyxodCgiaGVhZCA+IHRpdGxlIikudGV4dCgpKS50cmltKCkpLHI9ci5yZXBsYWNlKC9bXmEtekEtWjAtOV9cdTAwQTEtXHVGRkZGXC4sXC1fICFcKFwpXS9nLCIiKTt2YXIgbj16aSh0LmV4dGVuc2lvbix0LGUpO3JldHVybiBufHwobj0iIikscitufSx6aT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9PW51bGw/bnVsbDp0eXBlb2YgdD09ImZ1bmN0aW9uIj90KGUscik6dH0sRmw9ZnVuY3Rpb24odCxlKXt2YXIgcj16aSh0LnRpdGxlLHQsZSk7cmV0dXJuIHI9PT1udWxsP251bGw6ci5pbmRleE9mKCIqIikhPT0tMT9yLnJlcGxhY2UoL1wqL2csaHQoImhlYWQgPiB0aXRsZSIpLnRleHQoKXx8IkV4cG9ydGVkIGRhdGEiKTpyfSx2cz1mdW5jdGlvbih0LGUscixuKXt2YXIgcz16aShyLGUsdCk7aWYocz09PW51bGwpcmV0dXJuIG51bGw7dmFyIGE9aHQoImNhcHRpb24iLHQudGFibGUoKS5jb250YWluZXIoKSkuZXEoMCk7aWYocz09PSIqIil7dmFyIGw9YS5jc3MoImNhcHRpb24tc2lkZSIpO3JldHVybiBsIT09bj9udWxsOmEubGVuZ3RoP2EudGV4dCgpOiIifXJldHVybiBzfSxtcz1odCgiPHRleHRhcmVhLz4iKVswXSxCbD1mdW5jdGlvbih0LGUpe3ZhciByPWh0LmV4dGVuZCghMCx7fSx7cm93czpudWxsLGNvbHVtbnM6IiIsbW9kaWZpZXI6e3NlYXJjaDoiYXBwbGllZCIsb3JkZXI6ImFwcGxpZWQifSxvcnRob2dvbmFsOiJkaXNwbGF5IixzdHJpcEh0bWw6ITAsc3RyaXBOZXdsaW5lczohMCxkZWNvZGVFbnRpdGllczohMCx0cmltOiEwLGZvcm1hdDp7aGVhZGVyOmZ1bmN0aW9uKEMpe3JldHVybiBKdC5zdHJpcERhdGEoQyxyKX0sZm9vdGVyOmZ1bmN0aW9uKEMpe3JldHVybiBKdC5zdHJpcERhdGEoQyxyKX0sYm9keTpmdW5jdGlvbihDKXtyZXR1cm4gSnQuc3RyaXBEYXRhKEMscil9fSxjdXN0b21pemVEYXRhOm51bGwsY3VzdG9taXplWmlwOm51bGx9LGUpLG49dC5jb2x1bW5zKHIuY29sdW1ucykuaW5kZXhlcygpLm1hcChmdW5jdGlvbihDKXt2YXIgQj10LmNvbHVtbihDKTtyZXR1cm4gci5mb3JtYXQuaGVhZGVyKEIudGl0bGUoKSxDLEIuaGVhZGVyKCkpfSkudG9BcnJheSgpLHM9dC50YWJsZSgpLmZvb3RlcigpP3QuY29sdW1ucyhyLmNvbHVtbnMpLmluZGV4ZXMoKS5tYXAoZnVuY3Rpb24oQyl7dmFyIEI9dC5jb2x1bW4oQykuZm9vdGVyKCksdT0iIjtpZihCKXt2YXIgej1odCgiLmR0LWNvbHVtbi10aXRsZSIsQik7dT16Lmxlbmd0aD96Lmh0bWwoKTpodChCKS5odG1sKCl9cmV0dXJuIHIuZm9ybWF0LmZvb3Rlcih1LEMsQil9KS50b0FycmF5KCk6bnVsbCxhPWh0LmV4dGVuZCh7fSxyLm1vZGlmaWVyKTt0LnNlbGVjdCYmdHlwZW9mIHQuc2VsZWN0LmluZm89PSJmdW5jdGlvbiImJmEuc2VsZWN0ZWQ9PT12b2lkIDAmJnQucm93cyhyLnJvd3MsaHQuZXh0ZW5kKHtzZWxlY3RlZDohMH0sYSkpLmFueSgpJiZodC5leHRlbmQoYSx7c2VsZWN0ZWQ6ITB9KTtmb3IodmFyIGw9dC5yb3dzKHIucm93cyxhKS5pbmRleGVzKCkudG9BcnJheSgpLGM9dC5jZWxscyhsLHIuY29sdW1ucyx7b3JkZXI6YS5vcmRlcn0pLHA9Yy5yZW5kZXIoci5vcnRob2dvbmFsKS50b0FycmF5KCksYj1jLm5vZGVzKCkudG9BcnJheSgpLG09Yy5pbmRleGVzKCkudG9BcnJheSgpLHk9dC5jb2x1bW5zKHIuY29sdW1ucykuY291bnQoKSxUPXk+MD9wLmxlbmd0aC95OjAsdz1bXSxrPTAsUD0wLEY9VDtQPEY7UCsrKXtmb3IodmFyIGg9W3ldLG89MDtvPHk7bysrKWhbb109ci5mb3JtYXQuYm9keShwW2tdLG1ba10ucm93LG1ba10uY29sdW1uLGJba10pLGsrKzt3W1BdPWh9dmFyIGY9e2hlYWRlcjpuLGhlYWRlclN0cnVjdHVyZTpncyhyLmZvcm1hdC5oZWFkZXIsdC50YWJsZSgpLmhlYWRlci5zdHJ1Y3R1cmUoci5jb2x1bW5zKSksZm9vdGVyOnMsZm9vdGVyU3RydWN0dXJlOmdzKHIuZm9ybWF0LmZvb3Rlcix0LnRhYmxlKCkuZm9vdGVyLnN0cnVjdHVyZShyLmNvbHVtbnMpKSxib2R5Ond9O3JldHVybiByLmN1c3RvbWl6ZURhdGEmJnIuY3VzdG9taXplRGF0YShmKSxmfTtmdW5jdGlvbiBncyh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWZvcih2YXIgbj0wO248ZVtyXS5sZW5ndGg7bisrKXt2YXIgcz1lW3JdW25dO3MmJihzLnRpdGxlPXQocy50aXRsZSxuLHMuY2VsbCkpfXJldHVybiBlfWh0LmZuLmRhdGFUYWJsZS5CdXR0b25zPUp0O2h0LmZuLkRhdGFUYWJsZS5CdXR0b25zPUp0O2h0KGRvY3VtZW50KS5vbigiaW5pdC5kdCBwbHVnaW4taW5pdC5kdCIsZnVuY3Rpb24odCxlKXtpZih0Lm5hbWVzcGFjZT09PSJkdCIpe3ZhciByPWUub0luaXQuYnV0dG9uc3x8c3QuZGVmYXVsdHMuYnV0dG9ucztyJiYhZS5fYnV0dG9ucyYmbmV3IEp0KGUscikuY29udGFpbmVyKCl9fSk7ZnVuY3Rpb24gd3ModCxlKXt2YXIgcj1uZXcgc3QuQXBpKHQpLG49ZXx8ci5pbml0KCkuYnV0dG9uc3x8c3QuZGVmYXVsdHMuYnV0dG9ucztyZXR1cm4gbmV3IEp0KHIsbikuY29udGFpbmVyKCl9c3QuZXh0LmZlYXR1cmUucHVzaCh7Zm5Jbml0OndzLGNGZWF0dXJlOiJCIn0pO3N0LmZlYXR1cmUmJnN0LmZlYXR1cmUucmVnaXN0ZXIoImJ1dHRvbnMiLHdzKTt2YXIgQ3M9bmUoaWUoKSwxKTt2YXIgYWU9Q3MuZGVmYXVsdCxUcyxrcztmdW5jdGlvbiBqaSgpe3JldHVybiBUc3x8d2luZG93LkpTWmlwfWZ1bmN0aW9uIE1pKCl7cmV0dXJuIGtzfHx3aW5kb3cucGRmTWFrZX1zdC5CdXR0b25zLnBkZk1ha2U9ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIE1pKCk7a3M9dH07c3QuQnV0dG9ucy5qc3ppcD1mdW5jdGlvbih0KXtpZighdClyZXR1cm4gamkoKTtUcz10fTt2YXIgT249ZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO2lmKCEodHlwZW9mIHQ+InUifHx0eXBlb2YgbmF2aWdhdG9yPCJ1IiYmL01TSUUgWzEtOV1cLi8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkpe3ZhciBlPXQuZG9jdW1lbnQscj1mdW5jdGlvbigpe3JldHVybiB0LlVSTHx8dC53ZWJraXRVUkx8fHR9LG49ZS5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJhIikscz0iZG93bmxvYWQiaW4gbixhPWZ1bmN0aW9uKGgpe3ZhciBvPW5ldyBNb3VzZUV2ZW50KCJjbGljayIpO2guZGlzcGF0Y2hFdmVudChvKX0sbD0vY29uc3RydWN0b3IvaS50ZXN0KHQuSFRNTEVsZW1lbnQpfHx0LnNhZmFyaSxjPS9DcmlPU1wvW1xkXSsvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkscD1mdW5jdGlvbihoKXsodC5zZXRJbW1lZGlhdGV8fHQuc2V0VGltZW91dCkoZnVuY3Rpb24oKXt0aHJvdyBofSwwKX0sYj0iYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIixtPTFlMyo0MCx5PWZ1bmN0aW9uKGgpe3ZhciBvPWZ1bmN0aW9uKCl7dHlwZW9mIGg9PSJzdHJpbmciP3IoKS5yZXZva2VPYmplY3RVUkwoaCk6aC5yZW1vdmUoKX07c2V0VGltZW91dChvLG0pfSxUPWZ1bmN0aW9uKGgsbyxmKXtvPVtdLmNvbmNhdChvKTtmb3IodmFyIEM9by5sZW5ndGg7Qy0tOyl7dmFyIEI9aFsib24iK29bQ11dO2lmKHR5cGVvZiBCPT0iZnVuY3Rpb24iKXRyeXtCLmNhbGwoaCxmfHxoKX1jYXRjaCh1KXtwKHUpfX19LHc9ZnVuY3Rpb24oaCl7cmV0dXJuL15ccyooPzp0ZXh0XC9cUyp8YXBwbGljYXRpb25cL3htbHxcUypcL1xTKlwreG1sKVxzKjsuKmNoYXJzZXRccyo9XHMqdXRmLTgvaS50ZXN0KGgudHlwZSk/bmV3IEJsb2IoWyJcdUZFRkYiLGhdLHt0eXBlOmgudHlwZX0pOmh9LGs9ZnVuY3Rpb24oaCxvLGYpe2Z8fChoPXcoaCkpO3ZhciBDPXRoaXMsQj1oLnR5cGUsdT1CPT09Yix6LHE9ZnVuY3Rpb24oKXtUKEMsIndyaXRlc3RhcnQgcHJvZ3Jlc3Mgd3JpdGUgd3JpdGVlbmQiLnNwbGl0KCIgIikpfSxldD1mdW5jdGlvbigpe2lmKChjfHx1JiZsKSYmdC5GaWxlUmVhZGVyKXt2YXIgTz1uZXcgRmlsZVJlYWRlcjtPLm9ubG9hZGVuZD1mdW5jdGlvbigpe3ZhciBnPWM/Ty5yZXN1bHQ6Ty5yZXN1bHQucmVwbGFjZSgvXmRhdGE6W147XSo7LywiZGF0YTphdHRhY2htZW50L2ZpbGU7IiksXz10Lm9wZW4oZywiX2JsYW5rIik7X3x8KHQubG9jYXRpb24uaHJlZj1nKSxnPXZvaWQgMCxDLnJlYWR5U3RhdGU9Qy5ET05FLHEoKX0sTy5yZWFkQXNEYXRhVVJMKGgpLEMucmVhZHlTdGF0ZT1DLklOSVQ7cmV0dXJufWlmKHp8fCh6PXIoKS5jcmVhdGVPYmplY3RVUkwoaCkpLHUpdC5sb2NhdGlvbi5ocmVmPXo7ZWxzZXt2YXIgWj10Lm9wZW4oeiwiX2JsYW5rIik7Wnx8KHQubG9jYXRpb24uaHJlZj16KX1DLnJlYWR5U3RhdGU9Qy5ET05FLHEoKSx5KHopfTtpZihDLnJlYWR5U3RhdGU9Qy5JTklULHMpe3o9cigpLmNyZWF0ZU9iamVjdFVSTChoKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bi5ocmVmPXosbi5kb3dubG9hZD1vLGEobikscSgpLHkoeiksQy5yZWFkeVN0YXRlPUMuRE9ORX0pO3JldHVybn1ldCgpfSxQPWsucHJvdG90eXBlLEY9ZnVuY3Rpb24oaCxvLGYpe3JldHVybiBuZXcgayhoLG98fGgubmFtZXx8ImRvd25sb2FkIixmKX07cmV0dXJuIHR5cGVvZiBuYXZpZ2F0b3I8InUiJiZuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYj9mdW5jdGlvbihoLG8sZil7cmV0dXJuIG89b3x8aC5uYW1lfHwiZG93bmxvYWQiLGZ8fChoPXcoaCkpLG5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKGgsbyl9OihQLmFib3J0PWZ1bmN0aW9uKCl7fSxQLnJlYWR5U3RhdGU9UC5JTklUPTAsUC5XUklUSU5HPTEsUC5ET05FPTIsUC5lcnJvcj1QLm9ud3JpdGVzdGFydD1QLm9ucHJvZ3Jlc3M9UC5vbndyaXRlPVAub25hYm9ydD1QLm9uZXJyb3I9UC5vbndyaXRlZW5kPW51bGwsRil9fSh0eXBlb2Ygc2VsZjwidSImJnNlbGZ8fHR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3d8fCh2b2lkIDApLmNvbnRlbnQpO3N0LmZpbGVTYXZlPU9uO3ZhciB4cz1mdW5jdGlvbih0KXt2YXIgZT0iU2hlZXQxIjtyZXR1cm4gdC5zaGVldE5hbWUmJihlPXQuc2hlZXROYW1lLnJlcGxhY2UoL1tcW1xdXCpcL1xcXD9cOl0vZywiIikpLGV9LFNzPWZ1bmN0aW9uKHQpe3JldHVybiB0Lm5ld2xpbmU/dC5uZXdsaW5lOm5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL1dpbmRvd3MvKT9gXHIKYDpgCmB9LERzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9U3MoZSksbj10LmJ1dHRvbnMuZXhwb3J0RGF0YShlLmV4cG9ydE9wdGlvbnMpLHM9ZS5maWVsZEJvdW5kYXJ5LGE9ZS5maWVsZFNlcGFyYXRvcixsPW5ldyBSZWdFeHAocywiZyIpLGM9ZS5lc2NhcGVDaGFyIT09dm9pZCAwP2UuZXNjYXBlQ2hhcjoiXFwiLHA9ZnVuY3Rpb24oayl7Zm9yKHZhciBQPSIiLEY9MCxoPWsubGVuZ3RoO0Y8aDtGKyspRj4wJiYoUCs9YSksUCs9cz9zKygiIitrW0ZdKS5yZXBsYWNlKGwsYytzKStzOmtbRl07cmV0dXJuIFB9LGI9IiIsbT0iIix5PVtdO2UuaGVhZGVyJiYoYj1uLmhlYWRlclN0cnVjdHVyZS5tYXAoZnVuY3Rpb24oayl7cmV0dXJuIHAoay5tYXAoZnVuY3Rpb24oUCl7cmV0dXJuIFA/UC50aXRsZToiIn0pKX0pLmpvaW4ocikrciksZS5mb290ZXImJm4uZm9vdGVyJiYobT1uLmZvb3RlclN0cnVjdHVyZS5tYXAoZnVuY3Rpb24oayl7cmV0dXJuIHAoay5tYXAoZnVuY3Rpb24oUCl7cmV0dXJuIFA/UC50aXRsZToiIn0pKX0pLmpvaW4ocikrcik7Zm9yKHZhciBUPTAsdz1uLmJvZHkubGVuZ3RoO1Q8dztUKyspeS5wdXNoKHAobi5ib2R5W1RdKSk7cmV0dXJue3N0cjpiK3kuam9pbihyKStyK20scm93czp5Lmxlbmd0aH19LEFzPWZ1bmN0aW9uKCl7dmFyIHQ9bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJTYWZhcmkiKSE9PS0xJiZuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkNocm9tZSIpPT09LTEmJm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiT3BlcmEiKT09PS0xO2lmKCF0KXJldHVybiExO3ZhciBlPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0FwcGxlV2ViS2l0XC8oXGQrXC5cZCspLyk7cmV0dXJuISEoZSYmZS5sZW5ndGg+MSYmZVsxXSoxPDYwMy4xKX07ZnVuY3Rpb24gUXIodCl7Zm9yKHZhciBlPTY1LHI9OTAsbj1yLWUrMSxzPSIiO3Q+PTA7KXM9U3RyaW5nLmZyb21DaGFyQ29kZSh0JW4rZSkrcyx0PU1hdGguZmxvb3IodC9uKS0xO3JldHVybiBzfXRyeXtSbj1uZXcgWE1MU2VyaWFsaXplcn1jYXRjaHt9dmFyIFJuLFlyO2Z1bmN0aW9uIElzKHQsZSl7WXI9PT12b2lkIDAmJihZcj1Sbi5zZXJpYWxpemVUb1N0cmluZyhuZXcgd2luZG93LkRPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhQc1sieGwvd29ya3NoZWV0cy9zaGVldDEueG1sIl0sInRleHQveG1sIikpLmluZGV4T2YoInhtbG5zOnIiKT09PS0xKSxhZS5lYWNoKGUsZnVuY3Rpb24ocixuKXtpZihhZS5pc1BsYWluT2JqZWN0KG4pKXt2YXIgcz10LmZvbGRlcihyKTtJcyhzLG4pfWVsc2V7aWYoWXIpe3ZhciBhPW4uY2hpbGROb2Rlc1swXSxsLGMscD1bXTtmb3IobD1hLmF0dHJpYnV0ZXMubGVuZ3RoLTE7bD49MDtsLS0pe3ZhciBiPWEuYXR0cmlidXRlc1tsXS5ub2RlTmFtZSxtPWEuYXR0cmlidXRlc1tsXS5ub2RlVmFsdWU7Yi5pbmRleE9mKCI6IikhPT0tMSYmKHAucHVzaCh7bmFtZTpiLHZhbHVlOm19KSxhLnJlbW92ZUF0dHJpYnV0ZShiKSl9Zm9yKGw9MCxjPXAubGVuZ3RoO2w8YztsKyspe3ZhciB5PW4uY3JlYXRlQXR0cmlidXRlKHBbbF0ubmFtZS5yZXBsYWNlKCI6IiwiX2R0X2JfbmFtZXNwYWNlX3Rva2VuXyIpKTt5LnZhbHVlPXBbbF0udmFsdWUsYS5zZXRBdHRyaWJ1dGVOb2RlKHkpfX12YXIgVD1Sbi5zZXJpYWxpemVUb1N0cmluZyhuKTtZciYmKFQuaW5kZXhPZigiPD94bWwiKT09PS0xJiYoVD0nPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PicrVCksVD1ULnJlcGxhY2UoL19kdF9iX25hbWVzcGFjZV90b2tlbl8vZywiOiIpLFQ9VC5yZXBsYWNlKC94bWxuczpOU1tcZF0rPSIiIE5TW1xkXSs6L2csIiIpKSxUPVQucmVwbGFjZSgvPChbXjw+XSo/KSB4bWxucz0iIihbXjw+XSo/KT4vZywiPCQxICQyPiIpLHQuZmlsZShyLFQpfX0pfWZ1bmN0aW9uIENlKHQsZSxyKXt2YXIgbj10LmNyZWF0ZUVsZW1lbnQoZSk7cmV0dXJuIHImJihyLmF0dHImJmFlKG4pLmF0dHIoci5hdHRyKSxyLmNoaWxkcmVuJiZhZS5lYWNoKHIuY2hpbGRyZW4sZnVuY3Rpb24ocyxhKXtuLmFwcGVuZENoaWxkKGEpfSksci50ZXh0IT09bnVsbCYmci50ZXh0IT09dm9pZCAwJiZuLmFwcGVuZENoaWxkKHQuY3JlYXRlVGV4dE5vZGUoci50ZXh0KSkpLG59ZnVuY3Rpb24gRWwodCxlKXt2YXIgcj10LmhlYWRlcltlXS5sZW5ndGgsbixzLGE7dC5mb290ZXImJnQuZm9vdGVyW2VdJiZ0LmZvb3RlcltlXS5sZW5ndGg+ciYmKHI9dC5mb290ZXJbZV0ubGVuZ3RoKTtmb3IodmFyIGw9MCxjPXQuYm9keS5sZW5ndGg7bDxjO2wrKyl7dmFyIHA9dC5ib2R5W2xdW2VdO2lmKGE9cCE9bnVsbD9wLnRvU3RyaW5nKCk6IiIsYS5pbmRleE9mKGAKYCkhPT0tMT8ocz1hLnNwbGl0KGAKYCkscy5zb3J0KGZ1bmN0aW9uKGIsbSl7cmV0dXJuIG0ubGVuZ3RoLWIubGVuZ3RofSksbj1zWzBdLmxlbmd0aCk6bj1hLmxlbmd0aCxuPnImJihyPW4pLHI+NDApcmV0dXJuIDU0fXJldHVybiByKj0xLjM1LHI+Nj9yOjZ9dmFyIFBzPXsiX3JlbHMvLnJlbHMiOic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+PFJlbGF0aW9uc2hpcHMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcyI+PFJlbGF0aW9uc2hpcCBJZD0icklkMSIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9vZmZpY2VEb2N1bWVudCIgVGFyZ2V0PSJ4bC93b3JrYm9vay54bWwiLz48L1JlbGF0aW9uc2hpcHM+JywieGwvX3JlbHMvd29ya2Jvb2sueG1sLnJlbHMiOic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+PFJlbGF0aW9uc2hpcHMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcyI+PFJlbGF0aW9uc2hpcCBJZD0icklkMSIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy93b3Jrc2hlZXQiIFRhcmdldD0id29ya3NoZWV0cy9zaGVldDEueG1sIi8+PFJlbGF0aW9uc2hpcCBJZD0icklkMiIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9zdHlsZXMiIFRhcmdldD0ic3R5bGVzLnhtbCIvPjwvUmVsYXRpb25zaGlwcz4nLCJbQ29udGVudF9UeXBlc10ueG1sIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxUeXBlcyB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9jb250ZW50LXR5cGVzIj48RGVmYXVsdCBFeHRlbnNpb249InhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3htbCIgLz48RGVmYXVsdCBFeHRlbnNpb249InJlbHMiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5yZWxhdGlvbnNoaXBzK3htbCIgLz48RGVmYXVsdCBFeHRlbnNpb249ImpwZWciIENvbnRlbnRUeXBlPSJpbWFnZS9qcGVnIiAvPjxPdmVycmlkZSBQYXJ0TmFtZT0iL3hsL3dvcmtib29rLnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Lm1haW4reG1sIiAvPjxPdmVycmlkZSBQYXJ0TmFtZT0iL3hsL3dvcmtzaGVldHMvc2hlZXQxLnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLndvcmtzaGVldCt4bWwiIC8+PE92ZXJyaWRlIFBhcnROYW1lPSIveGwvc3R5bGVzLnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnN0eWxlcyt4bWwiIC8+PC9UeXBlcz4nLCJ4bC93b3JrYm9vay54bWwiOic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+PHdvcmtib29rIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvc3ByZWFkc2hlZXRtbC8yMDA2L21haW4iIHhtbG5zOnI9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMiPjxmaWxlVmVyc2lvbiBhcHBOYW1lPSJ4bCIgbGFzdEVkaXRlZD0iNSIgbG93ZXN0RWRpdGVkPSI1IiBydXBCdWlsZD0iMjQ4MTYiLz48d29ya2Jvb2tQciBzaG93SW5rQW5ub3RhdGlvbj0iMCIgYXV0b0NvbXByZXNzUGljdHVyZXM9IjAiLz48Ym9va1ZpZXdzPjx3b3JrYm9va1ZpZXcgeFdpbmRvdz0iMCIgeVdpbmRvdz0iMCIgd2luZG93V2lkdGg9IjI1NjAwIiB3aW5kb3dIZWlnaHQ9IjE5MDIwIiB0YWJSYXRpbz0iNTAwIi8+PC9ib29rVmlld3M+PHNoZWV0cz48c2hlZXQgbmFtZT0iU2hlZXQxIiBzaGVldElkPSIxIiByOmlkPSJySWQxIi8+PC9zaGVldHM+PGRlZmluZWROYW1lcy8+PC93b3JrYm9vaz4nLCJ4bC93b3Jrc2hlZXRzL3NoZWV0MS54bWwiOic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+PHdvcmtzaGVldCB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiB4bWxuczpyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIiB4bWxuczptYz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYiIG1jOklnbm9yYWJsZT0ieDE0YWMiIHhtbG5zOngxNGFjPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMDkvOS9hYyI+PHNoZWV0RGF0YS8+PG1lcmdlQ2VsbHMgY291bnQ9IjAiLz48L3dvcmtzaGVldD4nLCJ4bC9zdHlsZXMueG1sIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3R5bGVTaGVldCB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiB4bWxuczptYz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYiIG1jOklnbm9yYWJsZT0ieDE0YWMiIHhtbG5zOngxNGFjPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMDkvOS9hYyI+PG51bUZtdHMgY291bnQ9IjYiPjxudW1GbXQgbnVtRm10SWQ9IjE2NCIgZm9ybWF0Q29kZT0iWyQkLTQwOV0jLCMjMC4wMDstWyQkLTQwOV0jLCMjMC4wMCIvPjxudW1GbXQgbnVtRm10SWQ9IjE2NSIgZm9ybWF0Q29kZT0iJnF1b3Q7XHhBMyZxdW90OyMsIyMwLjAwIi8+PG51bUZtdCBudW1GbXRJZD0iMTY2IiBmb3JtYXRDb2RlPSJbJFx1MjBBQy0yXSAjLCMjMC4wMCIvPjxudW1GbXQgbnVtRm10SWQ9IjE2NyIgZm9ybWF0Q29kZT0iMC4wJSIvPjxudW1GbXQgbnVtRm10SWQ9IjE2OCIgZm9ybWF0Q29kZT0iIywjIzA7KCMsIyMwKSIvPjxudW1GbXQgbnVtRm10SWQ9IjE2OSIgZm9ybWF0Q29kZT0iIywjIzAuMDA7KCMsIyMwLjAwKSIvPjwvbnVtRm10cz48Zm9udHMgY291bnQ9IjUiIHgxNGFjOmtub3duRm9udHM9IjEiPjxmb250PjxzeiB2YWw9IjExIiAvPjxuYW1lIHZhbD0iQ2FsaWJyaSIgLz48L2ZvbnQ+PGZvbnQ+PHN6IHZhbD0iMTEiIC8+PG5hbWUgdmFsPSJDYWxpYnJpIiAvPjxjb2xvciByZ2I9IkZGRkZGRkZGIiAvPjwvZm9udD48Zm9udD48c3ogdmFsPSIxMSIgLz48bmFtZSB2YWw9IkNhbGlicmkiIC8+PGIgLz48L2ZvbnQ+PGZvbnQ+PHN6IHZhbD0iMTEiIC8+PG5hbWUgdmFsPSJDYWxpYnJpIiAvPjxpIC8+PC9mb250Pjxmb250PjxzeiB2YWw9IjExIiAvPjxuYW1lIHZhbD0iQ2FsaWJyaSIgLz48dSAvPjwvZm9udD48L2ZvbnRzPjxmaWxscyBjb3VudD0iNiI+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPSJub25lIiAvPjwvZmlsbD48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9Im5vbmUiIC8+PC9maWxsPjxmaWxsPjxwYXR0ZXJuRmlsbCBwYXR0ZXJuVHlwZT0ic29saWQiPjxmZ0NvbG9yIHJnYj0iRkZEOUQ5RDkiIC8+PGJnQ29sb3IgaW5kZXhlZD0iNjQiIC8+PC9wYXR0ZXJuRmlsbD48L2ZpbGw+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPSJzb2xpZCI+PGZnQ29sb3IgcmdiPSJGRkQ5OTc5NSIgLz48YmdDb2xvciBpbmRleGVkPSI2NCIgLz48L3BhdHRlcm5GaWxsPjwvZmlsbD48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9InNvbGlkIj48ZmdDb2xvciByZ2I9ImZmYzZlZmNlIiAvPjxiZ0NvbG9yIGluZGV4ZWQ9IjY0IiAvPjwvcGF0dGVybkZpbGw+PC9maWxsPjxmaWxsPjxwYXR0ZXJuRmlsbCBwYXR0ZXJuVHlwZT0ic29saWQiPjxmZ0NvbG9yIHJnYj0iZmZjNmNmZWYiIC8+PGJnQ29sb3IgaW5kZXhlZD0iNjQiIC8+PC9wYXR0ZXJuRmlsbD48L2ZpbGw+PC9maWxscz48Ym9yZGVycyBjb3VudD0iMiI+PGJvcmRlcj48bGVmdCAvPjxyaWdodCAvPjx0b3AgLz48Ym90dG9tIC8+PGRpYWdvbmFsIC8+PC9ib3JkZXI+PGJvcmRlciBkaWFnb25hbFVwPSJmYWxzZSIgZGlhZ29uYWxEb3duPSJmYWxzZSI+PGxlZnQgc3R5bGU9InRoaW4iPjxjb2xvciBhdXRvPSIxIiAvPjwvbGVmdD48cmlnaHQgc3R5bGU9InRoaW4iPjxjb2xvciBhdXRvPSIxIiAvPjwvcmlnaHQ+PHRvcCBzdHlsZT0idGhpbiI+PGNvbG9yIGF1dG89IjEiIC8+PC90b3A+PGJvdHRvbSBzdHlsZT0idGhpbiI+PGNvbG9yIGF1dG89IjEiIC8+PC9ib3R0b20+PGRpYWdvbmFsIC8+PC9ib3JkZXI+PC9ib3JkZXJzPjxjZWxsU3R5bGVYZnMgY291bnQ9IjEiPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiAvPjwvY2VsbFN0eWxlWGZzPjxjZWxsWGZzIGNvdW50PSI2OCI+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIyIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSIyIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSIzIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSIzIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSI0IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSI1IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSI1IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSIwIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSIyIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIzIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSIzIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSI0IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSI0IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSI1IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseUFsaWdubWVudD0iMSI+PGFsaWdubWVudCBob3Jpem9udGFsPSJsZWZ0Ii8+PC94Zj48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseUFsaWdubWVudD0iMSI+PGFsaWdubWVudCBob3Jpem9udGFsPSJjZW50ZXIiLz48L3hmPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5QWxpZ25tZW50PSIxIj48YWxpZ25tZW50IGhvcml6b250YWw9InJpZ2h0Ii8+PC94Zj48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseUFsaWdubWVudD0iMSI+PGFsaWdubWVudCBob3Jpem9udGFsPSJmaWxsIi8+PC94Zj48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseUFsaWdubWVudD0iMSI+PGFsaWdubWVudCB0ZXh0Um90YXRpb249IjkwIi8+PC94Zj48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseUFsaWdubWVudD0iMSI+PGFsaWdubWVudCB3cmFwVGV4dD0iMSIvPjwveGY+PHhmIG51bUZtdElkPSI5IiAgIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iMTY0IiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjE2NSIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSIxNjYiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iMTY3IiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjE2OCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSIxNjkiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iMyIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSI0IiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjEiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iMiIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSIxNCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PC9jZWxsWGZzPjxjZWxsU3R5bGVzIGNvdW50PSIxIj48Y2VsbFN0eWxlIG5hbWU9Ik5vcm1hbCIgeGZJZD0iMCIgYnVpbHRpbklkPSIwIiAvPjwvY2VsbFN0eWxlcz48ZHhmcyBjb3VudD0iMCIgLz48dGFibGVTdHlsZXMgY291bnQ9IjAiIGRlZmF1bHRUYWJsZVN0eWxlPSJUYWJsZVN0eWxlTWVkaXVtOSIgZGVmYXVsdFBpdm90U3R5bGU9IlBpdm90U3R5bGVNZWRpdW00IiAvPjwvc3R5bGVTaGVldD4nfSxfcz1be21hdGNoOi9eXC0/XGQrXC5cZCUkLyxzdHlsZTo2MCxmbXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQvMTAwfX0se21hdGNoOi9eXC0/XGQrXC4/XGQqJSQvLHN0eWxlOjU2LGZtdDpmdW5jdGlvbih0KXtyZXR1cm4gdC8xMDB9fSx7bWF0Y2g6L15cLT9cJFtcZCxdKy4/XGQqJC8sc3R5bGU6NTd9LHttYXRjaDovXlwtP8KjW1xkLF0rLj9cZCokLyxzdHlsZTo1OH0se21hdGNoOi9eXC0/4oKsW1xkLF0rLj9cZCokLyxzdHlsZTo1OX0se21hdGNoOi9eXC0/XGQrJC8sc3R5bGU6NjV9LHttYXRjaDovXlwtP1xkK1wuXGR7Mn0kLyxzdHlsZTo2Nn0se21hdGNoOi9eXChbXGQsXStcKSQvLHN0eWxlOjYxLGZtdDpmdW5jdGlvbih0KXtyZXR1cm4tMSp0LnJlcGxhY2UoL1tcKFwpXS9nLCIiKX19LHttYXRjaDovXlwoW1xkLF0rXC5cZHsyfVwpJC8sc3R5bGU6NjIsZm10OmZ1bmN0aW9uKHQpe3JldHVybi0xKnQucmVwbGFjZSgvW1woXCldL2csIiIpfX0se21hdGNoOi9eXC0/W1xkLF0rJC8sc3R5bGU6NjN9LHttYXRjaDovXlwtP1tcZCxdK1wuXGR7Mn0kLyxzdHlsZTo2NH0se21hdGNoOi9eW1xkXXs0fVwtWzAxXVtcZF1cLVswMTIzXVtcZF0kLyxzdHlsZTo2NyxmbXQ6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQoMjU1NjkrRGF0ZS5wYXJzZSh0KS8oODY0MDAqMWUzKSl9fV0sRW49ZnVuY3Rpb24odCxlLHIsbixzKXt2YXIgYT1hZSgibWVyZ2VDZWxscyIsdCk7YVswXS5hcHBlbmRDaGlsZChDZSh0LCJtZXJnZUNlbGwiLHthdHRyOntyZWY6UXIocikrZSsiOiIrUXIocitzLTEpKyhlK24tMSl9fSkpLGEuYXR0cigiY291bnQiLHBhcnNlRmxvYXQoYS5hdHRyKCJjb3VudCIpKSsxKX07c3QuZXh0LmJ1dHRvbnMuY29weUh0bWw1PXtjbGFzc05hbWU6ImJ1dHRvbnMtY29weSBidXR0b25zLWh0bWw1Iix0ZXh0OmZ1bmN0aW9uKHQpe3JldHVybiB0LmkxOG4oImJ1dHRvbnMuY29weSIsIkNvcHkiKX0sYWN0aW9uOmZ1bmN0aW9uKHQsZSxyLG4scyl7dmFyIGE9RHMoZSxuKSxsPWUuYnV0dG9ucy5leHBvcnRJbmZvKG4pLGM9U3MobikscD1hLnN0cixiPWFlKCI8ZGl2Lz4iKS5jc3Moe2hlaWdodDoxLHdpZHRoOjEsb3ZlcmZsb3c6ImhpZGRlbiIscG9zaXRpb246ImZpeGVkIix0b3A6MCxsZWZ0OjB9KTtsLnRpdGxlJiYocD1sLnRpdGxlK2MrYytwKSxsLm1lc3NhZ2VUb3AmJihwPWwubWVzc2FnZVRvcCtjK2MrcCksbC5tZXNzYWdlQm90dG9tJiYocD1wK2MrYytsLm1lc3NhZ2VCb3R0b20pLG4uY3VzdG9taXplJiYocD1uLmN1c3RvbWl6ZShwLG4sZSkpO3ZhciBtPWFlKCI8dGV4dGFyZWEgcmVhZG9ubHkvPiIpLnZhbChwKS5hcHBlbmRUbyhiKTtpZihkb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQoImNvcHkiKSl7Yi5hcHBlbmRUbyhlLnRhYmxlKCkuY29udGFpbmVyKCkpLG1bMF0uZm9jdXMoKSxtWzBdLnNlbGVjdCgpO3RyeXt2YXIgeT1kb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpO2lmKGIucmVtb3ZlKCkseSl7ZS5idXR0b25zLmluZm8oZS5pMThuKCJidXR0b25zLmNvcHlUaXRsZSIsIkNvcHkgdG8gY2xpcGJvYXJkIiksZS5pMThuKCJidXR0b25zLmNvcHlTdWNjZXNzIix7MToiQ29waWVkIG9uZSByb3cgdG8gY2xpcGJvYXJkIixfOiJDb3BpZWQgJWQgcm93cyB0byBjbGlwYm9hcmQifSxhLnJvd3MpLDJlMykscygpO3JldHVybn19Y2F0Y2h7fX12YXIgVD1hZSgiPHNwYW4+IitlLmkxOG4oImJ1dHRvbnMuY29weUtleXMiLCJQcmVzcyA8aT5jdHJsPC9pPiBvciA8aT5cdTIzMTg8L2k+ICsgPGk+QzwvaT4gdG8gY29weSB0aGUgdGFibGUgZGF0YTxicj50byB5b3VyIHN5c3RlbSBjbGlwYm9hcmQuPGJyPjxicj5UbyBjYW5jZWwsIGNsaWNrIHRoaXMgbWVzc2FnZSBvciBwcmVzcyBlc2NhcGUuIikrIjwvc3Bhbj4iKS5hcHBlbmQoYik7ZS5idXR0b25zLmluZm8oZS5pMThuKCJidXR0b25zLmNvcHlUaXRsZSIsIkNvcHkgdG8gY2xpcGJvYXJkIiksVCwwKSxtWzBdLmZvY3VzKCksbVswXS5zZWxlY3QoKTt2YXIgdz1hZShUKS5jbG9zZXN0KCIuZHQtYnV0dG9uLWluZm8iKSxrPWZ1bmN0aW9uKCl7dy5vZmYoImNsaWNrLmJ1dHRvbnMtY29weSIpLGFlKGRvY3VtZW50KS5vZmYoIi5idXR0b25zLWNvcHkiKSxlLmJ1dHRvbnMuaW5mbyghMSl9O3cub24oImNsaWNrLmJ1dHRvbnMtY29weSIsayksYWUoZG9jdW1lbnQpLm9uKCJrZXlkb3duLmJ1dHRvbnMtY29weSIsZnVuY3Rpb24oUCl7UC5rZXlDb2RlPT09MjcmJihrKCkscygpKX0pLm9uKCJjb3B5LmJ1dHRvbnMtY29weSBjdXQuYnV0dG9ucy1jb3B5IixmdW5jdGlvbigpe2soKSxzKCl9KX0sYXN5bmM6MTAwLGV4cG9ydE9wdGlvbnM6e30sZmllbGRTZXBhcmF0b3I6IgkiLGZpZWxkQm91bmRhcnk6IiIsaGVhZGVyOiEwLGZvb3RlcjohMCx0aXRsZToiKiIsbWVzc2FnZVRvcDoiKiIsbWVzc2FnZUJvdHRvbToiKiJ9O3N0LmV4dC5idXR0b25zLmNzdkh0bWw1PXtib206ITEsY2xhc3NOYW1lOiJidXR0b25zLWNzdiBidXR0b25zLWh0bWw1IixhdmFpbGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LkZpbGVSZWFkZXIhPT12b2lkIDAmJndpbmRvdy5CbG9ifSx0ZXh0OmZ1bmN0aW9uKHQpe3JldHVybiB0LmkxOG4oImJ1dHRvbnMuY3N2IiwiQ1NWIil9LGFjdGlvbjpmdW5jdGlvbih0LGUscixuLHMpe3ZhciBhPURzKGUsbikuc3RyLGw9ZS5idXR0b25zLmV4cG9ydEluZm8obiksYz1uLmNoYXJzZXQ7bi5jdXN0b21pemUmJihhPW4uY3VzdG9taXplKGEsbixlKSksYyE9PSExPyhjfHwoYz1kb2N1bWVudC5jaGFyYWN0ZXJTZXR8fGRvY3VtZW50LmNoYXJzZXQpLGMmJihjPSI7Y2hhcnNldD0iK2MpKTpjPSIiLG4uYm9tJiYoYT0iXHVGRUZGIithKSxPbihuZXcgQmxvYihbYV0se3R5cGU6InRleHQvY3N2IitjfSksbC5maWxlbmFtZSwhMCkscygpfSxhc3luYzoxMDAsZmlsZW5hbWU6IioiLGV4dGVuc2lvbjoiLmNzdiIsZXhwb3J0T3B0aW9uczp7fSxmaWVsZFNlcGFyYXRvcjoiLCIsZmllbGRCb3VuZGFyeTonIicsZXNjYXBlQ2hhcjonIicsY2hhcnNldDpudWxsLGhlYWRlcjohMCxmb290ZXI6ITB9O3N0LmV4dC5idXR0b25zLmV4Y2VsSHRtbDU9e2NsYXNzTmFtZToiYnV0dG9ucy1leGNlbCBidXR0b25zLWh0bWw1IixhdmFpbGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LkZpbGVSZWFkZXIhPT12b2lkIDAmJmppKCkhPT12b2lkIDAmJiFBcygpJiZSbn0sdGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gdC5pMThuKCJidXR0b25zLmV4Y2VsIiwiRXhjZWwiKX0sYWN0aW9uOmZ1bmN0aW9uKHQsZSxyLG4scyl7dmFyIGE9MCxsLGMscD1mdW5jdGlvbihnKXt2YXIgXz1Qc1tnXTtyZXR1cm4gYWUucGFyc2VYTUwoXyl9LGI9cCgieGwvd29ya3NoZWV0cy9zaGVldDEueG1sIiksbT1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzaGVldERhdGEiKVswXSx5PXtfcmVsczp7Ii5yZWxzIjpwKCJfcmVscy8ucmVscyIpfSx4bDp7X3JlbHM6eyJ3b3JrYm9vay54bWwucmVscyI6cCgieGwvX3JlbHMvd29ya2Jvb2sueG1sLnJlbHMiKX0sIndvcmtib29rLnhtbCI6cCgieGwvd29ya2Jvb2sueG1sIiksInN0eWxlcy54bWwiOnAoInhsL3N0eWxlcy54bWwiKSx3b3Jrc2hlZXRzOnsic2hlZXQxLnhtbCI6Yn19LCJbQ29udGVudF9UeXBlc10ueG1sIjpwKCJbQ29udGVudF9UeXBlc10ueG1sIil9LFQ9ZS5idXR0b25zLmV4cG9ydERhdGEobi5leHBvcnRPcHRpb25zKSx3LGssUD1mdW5jdGlvbihnKXt3PWErMSxrPUNlKGIsInJvdyIse2F0dHI6e3I6d319KTtmb3IodmFyIF89MCxTPWcubGVuZ3RoO188UztfKyspe3ZhciBOPVFyKF8pKyIiK3csUj1udWxsO2lmKGdbX109PT1udWxsfHxnW19dPT09dm9pZCAwfHxnW19dPT09IiIpaWYobi5jcmVhdGVFbXB0eUNlbGxzPT09ITApZ1tfXT0iIjtlbHNlIGNvbnRpbnVlO3ZhciBMPWdbX107Z1tfXT10eXBlb2YgZ1tfXS50cmltPT0iZnVuY3Rpb24iP2dbX10udHJpbSgpOmdbX107Zm9yKHZhciBYPTAsaj1fcy5sZW5ndGg7WDxqO1grKyl7dmFyIEc9X3NbWF07aWYoZ1tfXS5tYXRjaCYmIWdbX10ubWF0Y2goL14wXGQrLykmJmdbX10ubWF0Y2goRy5tYXRjaCkpe3ZhciBhdD1nW19dLnJlcGxhY2UoL1teXGRcLlwtXS9nLCIiKTtHLmZtdCYmKGF0PUcuZm10KGF0KSksUj1DZShiLCJjIix7YXR0cjp7cjpOLHM6Ry5zdHlsZX0sY2hpbGRyZW46W0NlKGIsInYiLHt0ZXh0OmF0fSldfSk7YnJlYWt9fWlmKCFSKWlmKHR5cGVvZiBnW19dPT0ibnVtYmVyInx8Z1tfXS5tYXRjaCYmZ1tfXS5tYXRjaCgvXi0/XGQrKFwuXGQrKT8oW2VFXVwtP1xkKyk/JC8pJiYhZ1tfXS5tYXRjaCgvXjBcZCsvKSlSPUNlKGIsImMiLHthdHRyOnt0OiJuIixyOk59LGNoaWxkcmVuOltDZShiLCJ2Iix7dGV4dDpnW19dfSldfSk7ZWxzZXt2YXIgSj1MLnJlcGxhY2U/TC5yZXBsYWNlKC9bXHgwMC1ceDA5XHgwQlx4MENceDBFLVx4MUZceDdGLVx4OUZdL2csIiIpOkw7Uj1DZShiLCJjIix7YXR0cjp7dDoiaW5saW5lU3RyIixyOk59LGNoaWxkcmVuOntyb3c6Q2UoYiwiaXMiLHtjaGlsZHJlbjp7cm93OkNlKGIsInQiLHt0ZXh0OkosYXR0cjp7InhtbDpzcGFjZSI6InByZXNlcnZlIn19KX19KX19KX1rLmFwcGVuZENoaWxkKFIpfW0uYXBwZW5kQ2hpbGQoayksYSsrfSxGPWZ1bmN0aW9uKGcpe2cuZm9yRWFjaChmdW5jdGlvbihfKXtQKF8ubWFwKGZ1bmN0aW9uKFMpe3JldHVybiBTP1MudGl0bGU6IiJ9KSxhKSxhZSgicm93Omxhc3QgYyIsYikuYXR0cigicyIsIjIiKSxfLmZvckVhY2goZnVuY3Rpb24oUyxOKXtTJiYoUy5jb2xTcGFuPjF8fFMucm93U3Bhbj4xKSYmRW4oYixhLE4sUy5yb3dTcGFuLFMuY29sU3Bhbil9KX0pfTtuLmN1c3RvbWl6ZURhdGEmJm4uY3VzdG9taXplRGF0YShUKTt2YXIgaD1lLmJ1dHRvbnMuZXhwb3J0SW5mbyhuKTtoLnRpdGxlJiYoUChbaC50aXRsZV0sYSksRW4oYixhLDAsMSxULmhlYWRlci5sZW5ndGgpLGFlKCJyb3c6bGFzdCBjIixiKS5hdHRyKCJzIiwiNTEiKSksaC5tZXNzYWdlVG9wJiYoUChbaC5tZXNzYWdlVG9wXSxhKSxFbihiLGEsMCwxLFQuaGVhZGVyLmxlbmd0aCkpLG4uaGVhZGVyJiZGKFQuaGVhZGVyU3RydWN0dXJlKSxsPWE7Zm9yKHZhciBvPTAsZj1ULmJvZHkubGVuZ3RoO288ZjtvKyspUChULmJvZHlbb10sYSk7Yz1hLG4uZm9vdGVyJiZULmZvb3RlciYmRihULmZvb3RlclN0cnVjdHVyZSksaC5tZXNzYWdlQm90dG9tJiYoUChbaC5tZXNzYWdlQm90dG9tXSxhKSxFbihiLGEsMCwxLFQuaGVhZGVyLmxlbmd0aCkpO3ZhciBDPUNlKGIsImNvbHMiKTthZSgid29ya3NoZWV0IixiKS5wcmVwZW5kKEMpO2Zvcih2YXIgQj0wLHU9VC5oZWFkZXIubGVuZ3RoO0I8dTtCKyspQy5hcHBlbmRDaGlsZChDZShiLCJjb2wiLHthdHRyOnttaW46QisxLG1heDpCKzEsd2lkdGg6RWwoVCxCKSxjdXN0b21XaWR0aDoxfX0pKTt2YXIgej15LnhsWyJ3b3JrYm9vay54bWwiXTthZSgic2hlZXRzIHNoZWV0Iix6KS5hdHRyKCJuYW1lIix4cyhuKSksbi5hdXRvRmlsdGVyJiYoYWUoIm1lcmdlQ2VsbHMiLGIpLmJlZm9yZShDZShiLCJhdXRvRmlsdGVyIix7YXR0cjp7cmVmOiJBIitsKyI6IitRcihULmhlYWRlci5sZW5ndGgtMSkrY319KSksYWUoImRlZmluZWROYW1lcyIseikuYXBwZW5kKENlKHosImRlZmluZWROYW1lIix7YXR0cjp7bmFtZToiX3hsbm0uX0ZpbHRlckRhdGFiYXNlIixsb2NhbFNoZWV0SWQ6IjAiLGhpZGRlbjoxfSx0ZXh0OiInIit4cyhuKS5yZXBsYWNlKC8nL2csIicnIikrIichJEEkIitsKyI6IitRcihULmhlYWRlci5sZW5ndGgtMSkrY30pKSksbi5jdXN0b21pemUmJm4uY3VzdG9taXplKHksbixlKSxhZSgibWVyZ2VDZWxscyIsYikuY2hpbGRyZW4oKS5sZW5ndGg9PT0wJiZhZSgibWVyZ2VDZWxscyIsYikucmVtb3ZlKCk7dmFyIHE9amkoKSxldD1uZXcgcSxPPXtjb21wcmVzc2lvbjoiREVGTEFURSIsdHlwZToiYmxvYiIsbWltZVR5cGU6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0In07SXMoZXQseSk7dmFyIFo9aC5maWxlbmFtZTtaPjE3NSYmKFo9Wi5zdWJzdHIoMCwxNzUpKSxuLmN1c3RvbWl6ZVppcCYmbi5jdXN0b21pemVaaXAoZXQsVCxaKSxldC5nZW5lcmF0ZUFzeW5jP2V0LmdlbmVyYXRlQXN5bmMoTykudGhlbihmdW5jdGlvbihnKXtPbihnLFopLHMoKX0pOihPbihldC5nZW5lcmF0ZShPKSxaKSxzKCkpfSxhc3luYzoxMDAsZmlsZW5hbWU6IioiLGV4dGVuc2lvbjoiLnhsc3giLGV4cG9ydE9wdGlvbnM6e30saGVhZGVyOiEwLGZvb3RlcjohMCx0aXRsZToiKiIsbWVzc2FnZVRvcDoiKiIsbWVzc2FnZUJvdHRvbToiKiIsY3JlYXRlRW1wdHlDZWxsczohMSxhdXRvRmlsdGVyOiExLHNoZWV0TmFtZToiIn07c3QuZXh0LmJ1dHRvbnMucGRmSHRtbDU9e2NsYXNzTmFtZToiYnV0dG9ucy1wZGYgYnV0dG9ucy1odG1sNSIsYXZhaWxhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5GaWxlUmVhZGVyIT09dm9pZCAwJiZNaSgpfSx0ZXh0OmZ1bmN0aW9uKHQpe3JldHVybiB0LmkxOG4oImJ1dHRvbnMucGRmIiwiUERGIil9LGFjdGlvbjpmdW5jdGlvbih0LGUscixuLHMpe3ZhciBhPWUuYnV0dG9ucy5leHBvcnREYXRhKG4uZXhwb3J0T3B0aW9ucyksbD1lLmJ1dHRvbnMuZXhwb3J0SW5mbyhuKSxjPVtdO24uaGVhZGVyJiZhLmhlYWRlclN0cnVjdHVyZS5mb3JFYWNoKGZ1bmN0aW9uKFQpe2MucHVzaChULm1hcChmdW5jdGlvbih3KXtyZXR1cm4gdz97dGV4dDp3LnRpdGxlLGNvbFNwYW46dy5jb2xzcGFuLHJvd1NwYW46dy5yb3dzcGFuLHN0eWxlOiJ0YWJsZUhlYWRlciJ9Ont9fSkpfSk7Zm9yKHZhciBwPTAsYj1hLmJvZHkubGVuZ3RoO3A8YjtwKyspYy5wdXNoKGEuYm9keVtwXS5tYXAoZnVuY3Rpb24oVCl7cmV0dXJue3RleHQ6VD09bnVsbD8iIjp0eXBlb2YgVD09InN0cmluZyI/VDpULnRvU3RyaW5nKCl9fSkpO24uZm9vdGVyJiZhLmZvb3RlclN0cnVjdHVyZS5mb3JFYWNoKGZ1bmN0aW9uKFQpe2MucHVzaChULm1hcChmdW5jdGlvbih3KXtyZXR1cm4gdz97dGV4dDp3LnRpdGxlLGNvbFNwYW46dy5jb2xzcGFuLHJvd1NwYW46dy5yb3dzcGFuLHN0eWxlOiJ0YWJsZUhlYWRlciJ9Ont9fSkpfSk7dmFyIG09e3BhZ2VTaXplOm4ucGFnZVNpemUscGFnZU9yaWVudGF0aW9uOm4ub3JpZW50YXRpb24sY29udGVudDpbe3N0eWxlOiJ0YWJsZSIsdGFibGU6e2hlYWRlclJvd3M6YS5oZWFkZXJTdHJ1Y3R1cmUubGVuZ3RoLGZvb3RlclJvd3M6YS5mb290ZXJTdHJ1Y3R1cmUubGVuZ3RoLGJvZHk6Y30sbGF5b3V0OntoTGluZVdpZHRoOmZ1bmN0aW9uKFQsdyl7cmV0dXJuIFQ9PT0wfHxUPT09dy50YWJsZS5ib2R5Lmxlbmd0aD8wOi41fSx2TGluZVdpZHRoOmZ1bmN0aW9uKCl7cmV0dXJuIDB9LGhMaW5lQ29sb3I6ZnVuY3Rpb24oVCx3KXtyZXR1cm4gVD09PXcudGFibGUuaGVhZGVyUm93c3x8VD09PXcudGFibGUuYm9keS5sZW5ndGgtdy50YWJsZS5mb290ZXJSb3dzPyIjMzMzIjoiI2RkZCJ9LGZpbGxDb2xvcjpmdW5jdGlvbihUKXtyZXR1cm4gVDxhLmhlYWRlclN0cnVjdHVyZS5sZW5ndGg/IiNmZmYiOlQlMj09PTA/IiNmM2YzZjMiOm51bGx9LHBhZGRpbmdUb3A6ZnVuY3Rpb24oKXtyZXR1cm4gNX0scGFkZGluZ0JvdHRvbTpmdW5jdGlvbigpe3JldHVybiA1fX19XSxzdHlsZXM6e3RhYmxlSGVhZGVyOntib2xkOiEwLGZvbnRTaXplOjExLGFsaWdubWVudDoiY2VudGVyIn0sdGFibGVGb290ZXI6e2JvbGQ6ITAsZm9udFNpemU6MTF9LHRhYmxlOnttYXJnaW46WzAsNSwwLDVdfSx0aXRsZTp7YWxpZ25tZW50OiJjZW50ZXIiLGZvbnRTaXplOjEzfSxtZXNzYWdlOnt9fSxkZWZhdWx0U3R5bGU6e2ZvbnRTaXplOjEwfX07bC5tZXNzYWdlVG9wJiZtLmNvbnRlbnQudW5zaGlmdCh7dGV4dDpsLm1lc3NhZ2VUb3Asc3R5bGU6Im1lc3NhZ2UiLG1hcmdpbjpbMCwwLDAsMTJdfSksbC5tZXNzYWdlQm90dG9tJiZtLmNvbnRlbnQucHVzaCh7dGV4dDpsLm1lc3NhZ2VCb3R0b20sc3R5bGU6Im1lc3NhZ2UiLG1hcmdpbjpbMCwwLDAsMTJdfSksbC50aXRsZSYmbS5jb250ZW50LnVuc2hpZnQoe3RleHQ6bC50aXRsZSxzdHlsZToidGl0bGUiLG1hcmdpbjpbMCwwLDAsMTJdfSksbi5jdXN0b21pemUmJm4uY3VzdG9taXplKG0sbixlKTt2YXIgeT1NaSgpLmNyZWF0ZVBkZihtKTtuLmRvd25sb2FkPT09Im9wZW4iJiYhQXMoKT95Lm9wZW4oKTp5LmRvd25sb2FkKGwuZmlsZW5hbWUpLHMoKX0sYXN5bmM6MTAwLHRpdGxlOiIqIixmaWxlbmFtZToiKiIsZXh0ZW5zaW9uOiIucGRmIixleHBvcnRPcHRpb25zOnt9LG9yaWVudGF0aW9uOiJwb3J0cmFpdCIscGFnZVNpemU6bmF2aWdhdG9yLmxhbmd1YWdlPT09ImVuLVVTInx8bmF2aWdhdG9yLmxhbmd1YWdlPT09ImVuLUNBIj8iTEVUVEVSIjoiQTQiLGhlYWRlcjohMCxmb290ZXI6ITAsbWVzc2FnZVRvcDoiKiIsbWVzc2FnZUJvdHRvbToiKiIsY3VzdG9taXplOm51bGwsZG93bmxvYWQ6ImRvd25sb2FkIn07dmFyIEZzPW5lKGllKCksMSk7dmFyIE5yPUZzLmRlZmF1bHQsQnI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLE9sPWZ1bmN0aW9uKHQpe3ZhciBlPU5yKHQpLmNsb25lKClbMF07cmV0dXJuIGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJsaW5rIiYmKGUuaHJlZj1CcyhlLmhyZWYpKSxlLm91dGVySFRNTH0sQnM9ZnVuY3Rpb24odCl7QnIuaHJlZj10O3ZhciBlPUJyLmhvc3Q7cmV0dXJuIGUuaW5kZXhPZigiLyIpPT09LTEmJkJyLnBhdGhuYW1lLmluZGV4T2YoIi8iKSE9PTAmJihlKz0iLyIpLEJyLnByb3RvY29sKyIvLyIrZStCci5wYXRobmFtZStCci5zZWFyY2h9O3N0LmV4dC5idXR0b25zLnByaW50PXtjbGFzc05hbWU6ImJ1dHRvbnMtcHJpbnQiLHRleHQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQuaTE4bigiYnV0dG9ucy5wcmludCIsIlByaW50Iil9LGFjdGlvbjpmdW5jdGlvbih0LGUscixuLHMpe3ZhciBhPWUuYnV0dG9ucy5leHBvcnREYXRhKE5yLmV4dGVuZCh7ZGVjb2RlRW50aXRpZXM6ITF9LG4uZXhwb3J0T3B0aW9ucykpLGw9ZS5idXR0b25zLmV4cG9ydEluZm8obiksYz1lLmNvbHVtbnMobi5leHBvcnRPcHRpb25zLmNvbHVtbnMpLm5vZGVzKCkubWFwKGZ1bmN0aW9uKGgpe3JldHVybiBoLmNsYXNzTmFtZX0pLnRvQXJyYXkoKSxwPWZ1bmN0aW9uKGgsbyl7Zm9yKHZhciBmPSI8dHI+IixDPTAsQj1oLmxlbmd0aDtDPEI7QysrKXt2YXIgdT1oW0NdPT09bnVsbHx8aFtDXT09PXZvaWQgMD8iIjpoW0NdLHo9Y1tDXT8nY2xhc3M9IicrY1tDXSsnIic6IiI7Zis9IjwiK28rIiAiK3orIj4iK3UrIjwvIitvKyI+In1yZXR1cm4gZisiPC90cj4ifSxiPSc8dGFibGUgY2xhc3M9IicrZS50YWJsZSgpLm5vZGUoKS5jbGFzc05hbWUrJyI+JztpZihuLmhlYWRlcil7dmFyIG09YS5oZWFkZXJTdHJ1Y3R1cmUubWFwKGZ1bmN0aW9uKGgpe3JldHVybiI8dHI+IitoLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gbz8nPHRoIGNvbHNwYW49Iicrby5jb2xzcGFuKyciIHJvd3NwYW49Iicrby5yb3dzcGFuKyciPicrby50aXRsZSsiPC90aD4iOiIifSkuam9pbigiIikrIjwvdHI+In0pO2IrPSI8dGhlYWQ+IittLmpvaW4oIiIpKyI8L3RoZWFkPiJ9Yis9Ijx0Ym9keT4iO2Zvcih2YXIgeT0wLFQ9YS5ib2R5Lmxlbmd0aDt5PFQ7eSsrKWIrPXAoYS5ib2R5W3ldLCJ0ZCIpO2lmKGIrPSI8L3Rib2R5PiIsbi5mb290ZXImJmEuZm9vdGVyKXt2YXIgdz1hLmZvb3RlclN0cnVjdHVyZS5tYXAoZnVuY3Rpb24oaCl7cmV0dXJuIjx0cj4iK2gubWFwKGZ1bmN0aW9uKG8pe3JldHVybiBvPyc8dGggY29sc3Bhbj0iJytvLmNvbHNwYW4rJyIgcm93c3Bhbj0iJytvLnJvd3NwYW4rJyI+JytvLnRpdGxlKyI8L3RoPiI6IiJ9KS5qb2luKCIiKSsiPC90cj4ifSk7Yis9Ijx0Zm9vdD4iK3cuam9pbigiIikrIjwvdGZvb3Q+In1iKz0iPC90YWJsZT4iO3ZhciBrPXdpbmRvdy5vcGVuKCIiLCIiKTtpZighayl7ZS5idXR0b25zLmluZm8oZS5pMThuKCJidXR0b25zLnByaW50RXJyb3JUaXRsZSIsIlVuYWJsZSB0byBvcGVuIHByaW50IHZpZXciKSxlLmkxOG4oImJ1dHRvbnMucHJpbnRFcnJvck1zZyIsIlBsZWFzZSBhbGxvdyBwb3B1cHMgaW4geW91ciBicm93c2VyIGZvciB0aGlzIHNpdGUgdG8gYmUgYWJsZSB0byB2aWV3IHRoZSBwcmludCB2aWV3LiIpLDVlMyk7cmV0dXJufWsuZG9jdW1lbnQuY2xvc2UoKTt2YXIgUD0iPHRpdGxlPiIrbC50aXRsZSsiPC90aXRsZT4iO05yKCJzdHlsZSwgbGluayIpLmVhY2goZnVuY3Rpb24oKXtQKz1PbCh0aGlzKX0pO3RyeXtrLmRvY3VtZW50LmhlYWQuaW5uZXJIVE1MPVB9Y2F0Y2h7TnIoay5kb2N1bWVudC5oZWFkKS5odG1sKFApfWsuZG9jdW1lbnQuYm9keS5pbm5lckhUTUw9IjxoMT4iK2wudGl0bGUrIjwvaDE+PGRpdj4iKyhsLm1lc3NhZ2VUb3B8fCIiKSsiPC9kaXY+IitiKyI8ZGl2PiIrKGwubWVzc2FnZUJvdHRvbXx8IiIpKyI8L2Rpdj4iLE5yKGsuZG9jdW1lbnQuYm9keSkuYWRkQ2xhc3MoImR0LXByaW50LXZpZXciKSxOcigiaW1nIixrLmRvY3VtZW50LmJvZHkpLmVhY2goZnVuY3Rpb24oaCxvKXtvLnNldEF0dHJpYnV0ZSgic3JjIixCcyhvLmdldEF0dHJpYnV0ZSgic3JjIikpKX0pLG4uY3VzdG9taXplJiZuLmN1c3RvbWl6ZShrLG4sZSk7dmFyIEY9ZnVuY3Rpb24oKXtuLmF1dG9QcmludCYmKGsucHJpbnQoKSxrLmNsb3NlKCkpfTtrLnNldFRpbWVvdXQoRiwxZTMpLHMoKX0sYXN5bmM6MTAwLHRpdGxlOiIqIixtZXNzYWdlVG9wOiIqIixtZXNzYWdlQm90dG9tOiIqIixleHBvcnRPcHRpb25zOnt9LGhlYWRlcjohMCxmb290ZXI6ITAsYXV0b1ByaW50OiEwLGN1c3RvbWl6ZTpudWxsfTt2YXIgUmw9bmUoaWUoKSwxKTt2YXIgTnM9bmUoaWUoKSwxKTt2YXIgaXI9TnMuZGVmYXVsdDsoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHQsZTtmdW5jdGlvbiByKGwpe3Q9bCxlPXQuZm4uZGF0YVRhYmxlfXZhciBuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbChjLHApe3ZhciBiPXRoaXM7aWYoIWV8fCFlLnZlcnNpb25DaGVja3x8IWUudmVyc2lvbkNoZWNrKCIyIikpdGhyb3cgbmV3IEVycm9yKCJGaXhlZENvbHVtbnMgcmVxdWlyZXMgRGF0YVRhYmxlcyAyIG9yIG5ld2VyIik7dmFyIG09bmV3IGUuQXBpKGMpO3RoaXMuY2xhc3Nlcz10LmV4dGVuZCghMCx7fSxsLmNsYXNzZXMpLHRoaXMuYz10LmV4dGVuZCghMCx7fSxsLmRlZmF1bHRzLHApLHRoaXMucz17ZHQ6bSxydGw6dChtLnRhYmxlKCkubm9kZSgpKS5jc3MoImRpcmVjdGlvbiIpPT09InJ0bCJ9LHAmJnAubGVmdENvbHVtbnMhPT12b2lkIDAmJihwLmxlZnQ9cC5sZWZ0Q29sdW1ucykscCYmcC5sZWZ0IT09dm9pZCAwJiYodGhpcy5jW3RoaXMucy5ydGw/ImVuZCI6InN0YXJ0Il09cC5sZWZ0KSxwJiZwLnJpZ2h0Q29sdW1ucyE9PXZvaWQgMCYmKHAucmlnaHQ9cC5yaWdodENvbHVtbnMpLHAmJnAucmlnaHQhPT12b2lkIDAmJih0aGlzLmNbdGhpcy5zLnJ0bD8ic3RhcnQiOiJlbmQiXT1wLnJpZ2h0KSx0aGlzLmRvbT17Ym90dG9tQmxvY2tlcjp0KCI8ZGl2PiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5ib3R0b21CbG9ja2VyKSx0b3BCbG9ja2VyOnQoIjxkaXY+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnRvcEJsb2NrZXIpLHNjcm9sbGVyOnQoImRpdi5kdC1zY3JvbGwtYm9keSIsdGhpcy5zLmR0LnRhYmxlKCkuY29udGFpbmVyKCkpfSx0aGlzLnMuZHQuc2V0dGluZ3MoKVswXS5fYkluaXRDb21wbGV0ZT8odGhpcy5fYWRkU3R5bGVzKCksdGhpcy5fc2V0S2V5VGFibGVMaXN0ZW5lcigpKTptLm9uZSgiaW5pdC5kdC5kdGZjIixmdW5jdGlvbigpe2IuX2FkZFN0eWxlcygpLGIuX3NldEtleVRhYmxlTGlzdGVuZXIoKX0pLG0ub24oImNvbHVtbi1zaXppbmcuZHQuZHRmYyBjb2x1bW4tcmVvcmRlci5kdC5kdGZjIGRyYXcuZHQuZHRmYyIsZnVuY3Rpb24oKXtyZXR1cm4gYi5fYWRkU3R5bGVzKCl9KTt2YXIgeT1lLnV0aWwuZGVib3VuY2UoZnVuY3Rpb24oKXtiLl9hZGRTdHlsZXMoKX0sNTApO3JldHVybiBtLm9uKCJjb2x1bW4tdmlzaWJpbGl0eS5kdC5kdGZjIixmdW5jdGlvbigpe3koKX0pLHRoaXMuZG9tLnNjcm9sbGVyLm9uKCJzY3JvbGwuZHRmYyIsZnVuY3Rpb24oKXtyZXR1cm4gYi5fc2Nyb2xsKCl9KSx0aGlzLl9zY3JvbGwoKSxtLnNldHRpbmdzKClbMF0uX2ZpeGVkQ29sdW1ucz10aGlzLG0ub24oImRlc3Ryb3kiLGZ1bmN0aW9uKCl7cmV0dXJuIGIuX2Rlc3Ryb3koKX0pLHRoaXN9cmV0dXJuIGwucHJvdG90eXBlLmVuZD1mdW5jdGlvbihjKXtyZXR1cm4gYyE9PXZvaWQgMD8oYz49MCYmYzw9dGhpcy5zLmR0LmNvbHVtbnMoKS5jb3VudCgpJiYodGhpcy5jLmVuZD1jLHRoaXMuX2FkZFN0eWxlcygpKSx0aGlzKTp0aGlzLmMuZW5kfSxsLnByb3RvdHlwZS5sZWZ0PWZ1bmN0aW9uKGMpe3JldHVybiB0aGlzLnMucnRsP3RoaXMuZW5kKGMpOnRoaXMuc3RhcnQoYyl9LGwucHJvdG90eXBlLnJpZ2h0PWZ1bmN0aW9uKGMpe3JldHVybiB0aGlzLnMucnRsP3RoaXMuc3RhcnQoYyk6dGhpcy5lbmQoYyl9LGwucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKGMpe3JldHVybiBjIT09dm9pZCAwPyhjPj0wJiZjPD10aGlzLnMuZHQuY29sdW1ucygpLmNvdW50KCkmJih0aGlzLmMuc3RhcnQ9Yyx0aGlzLl9hZGRTdHlsZXMoKSksdGhpcyk6dGhpcy5jLnN0YXJ0fSxsLnByb3RvdHlwZS5fYWRkU3R5bGVzPWZ1bmN0aW9uKCl7dmFyIGM9dGhpcy5zLmR0LHA9dGhpcyxiPXRoaXMucy5kdC5jb2x1bW5zKCI6dmlzaWJsZSIpLmNvdW50KCksbT1jLnRhYmxlKCkuaGVhZGVyLnN0cnVjdHVyZSgiOnZpc2libGUiKSx5PWMudGFibGUoKS5mb290ZXIuc3RydWN0dXJlKCI6dmlzaWJsZSIpLFQ9Yy5jb2x1bW5zKCI6dmlzaWJsZSIpLndpZHRocygpLnRvQXJyYXkoKSx3PXQoYy50YWJsZSgpLm5vZGUoKSkuY2xvc2VzdCgiZGl2LmR0LXNjcm9sbCIpLGs9dChjLnRhYmxlKCkubm9kZSgpKS5jbG9zZXN0KCJkaXYuZHQtc2Nyb2xsLWJvZHkiKVswXSxQPXRoaXMucy5ydGwsRj10aGlzLmMuc3RhcnQsaD10aGlzLmMuZW5kLG89UD9oOkYsZj1QP0Y6aCxDPWMuc2V0dGluZ3MoKVswXS5vQnJvd3Nlci5iYXJXaWR0aDtpZih3Lmxlbmd0aD09PTApcmV0dXJuIHRoaXM7ay5vZmZzZXRXaWR0aD09PWsuY2xpZW50V2lkdGgmJihDPTApLGMuY29sdW1ucygiOnZpc2libGUiKS5ldmVyeShmdW5jdGlvbihldCl7dmFyIE89Yy5jb2x1bW4uaW5kZXgoInRvVmlzaWJsZSIsZXQpLFo7TzxGPyhaPXAuX3N1bShULE8pLHAuX2ZpeENvbHVtbihPLFosInN0YXJ0IixtLHksQykpOk8+PWItaD8oWj1wLl9zdW0oVCxiLU8tMSwhMCkscC5fZml4Q29sdW1uKE8sWiwiZW5kIixtLHksQykpOnAuX2ZpeENvbHVtbihPLDAsIm5vbmUiLG0seSxDKX0pLHQoYy50YWJsZSgpLm5vZGUoKSkudG9nZ2xlQ2xhc3MocC5jbGFzc2VzLnRhYmxlRml4ZWRTdGFydCxGPjApLnRvZ2dsZUNsYXNzKHAuY2xhc3Nlcy50YWJsZUZpeGVkRW5kLGg+MCkudG9nZ2xlQ2xhc3MocC5jbGFzc2VzLnRhYmxlRml4ZWRMZWZ0LG8+MCkudG9nZ2xlQ2xhc3MocC5jbGFzc2VzLnRhYmxlRml4ZWRSaWdodCxmPjApO3ZhciBCPWMudGFibGUoKS5oZWFkZXIoKSx1PWMudGFibGUoKS5mb290ZXIoKSx6PXQoQikub3V0ZXJIZWlnaHQoKSxxPXQodSkub3V0ZXJIZWlnaHQoKTt0aGlzLmRvbS50b3BCbG9ja2VyLmFwcGVuZFRvKHcpLmNzcygidG9wIiwwKS5jc3ModGhpcy5zLnJ0bD8ibGVmdCI6InJpZ2h0IiwwKS5jc3MoImhlaWdodCIseikuY3NzKCJ3aWR0aCIsQysxKS5jc3MoImRpc3BsYXkiLEM/ImJsb2NrIjoibm9uZSIpLHUmJnRoaXMuZG9tLmJvdHRvbUJsb2NrZXIuYXBwZW5kVG8odykuY3NzKCJib3R0b20iLDApLmNzcyh0aGlzLnMucnRsPyJsZWZ0IjoicmlnaHQiLDApLmNzcygiaGVpZ2h0IixxKS5jc3MoIndpZHRoIixDKzEpLmNzcygiZGlzcGxheSIsQz8iYmxvY2siOiJub25lIil9LGwucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5zLmR0Lm9mZigiLmR0ZmMiKSx0aGlzLmRvbS5zY3JvbGxlci5vZmYoIi5kdGZjIiksdCh0aGlzLnMuZHQudGFibGUoKS5ub2RlKCkpLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy50YWJsZVNjcm9sbGluZ0VuZCsiICIrdGhpcy5jbGFzc2VzLnRhYmxlU2Nyb2xsaW5nTGVmdCsiICIrdGhpcy5jbGFzc2VzLnRhYmxlU2Nyb2xsaW5nU3RhcnQrIiAiK3RoaXMuY2xhc3Nlcy50YWJsZVNjcm9sbGluZ1JpZ2h0KSx0aGlzLmRvbS5ib3R0b21CbG9ja2VyLnJlbW92ZSgpLHRoaXMuZG9tLnRvcEJsb2NrZXIucmVtb3ZlKCl9LGwucHJvdG90eXBlLl9maXhDb2x1bW49ZnVuY3Rpb24oYyxwLGIsbSx5LFQpe3ZhciB3PXRoaXMsaz10aGlzLnMuZHQsUD1mdW5jdGlvbihGLGgpe2lmKGI9PT0ibm9uZSIpRi5jc3MoInBvc2l0aW9uIiwiIikuY3NzKCJsZWZ0IiwiIikuY3NzKCJyaWdodCIsIiIpLnJlbW92ZUNsYXNzKHcuY2xhc3Nlcy5maXhlZEVuZCsiICIrdy5jbGFzc2VzLmZpeGVkTGVmdCsiICIrdy5jbGFzc2VzLmZpeGVkUmlnaHQrIiAiK3cuY2xhc3Nlcy5maXhlZFN0YXJ0KTtlbHNle3ZhciBvPWI9PT0ic3RhcnQiPyJsZWZ0IjoicmlnaHQiO3cucy5ydGwmJihvPWI9PT0ic3RhcnQiPyJyaWdodCI6ImxlZnQiKTt2YXIgZj1wO2I9PT0iZW5kIiYmKGg9PT0iaGVhZGVyInx8aD09PSJmb290ZXIiKSYmKGYrPVQpLEYuY3NzKCJwb3NpdGlvbiIsInN0aWNreSIpLmNzcyhvLGYpLmFkZENsYXNzKGI9PT0ic3RhcnQiP3cuY2xhc3Nlcy5maXhlZFN0YXJ0OncuY2xhc3Nlcy5maXhlZEVuZCkuYWRkQ2xhc3Mobz09PSJsZWZ0Ij93LmNsYXNzZXMuZml4ZWRMZWZ0OncuY2xhc3Nlcy5maXhlZFJpZ2h0KX19O20uZm9yRWFjaChmdW5jdGlvbihGKXtGW2NdJiZQKHQoRltjXS5jZWxsKSwiaGVhZGVyIil9KSxQKGsuY29sdW1uKGMrIjp2aXNpYmxlIix7cGFnZToiY3VycmVudCJ9KS5ub2RlcygpLnRvJCgpLCJib2R5IikseSYmeS5mb3JFYWNoKGZ1bmN0aW9uKEYpe0ZbY10mJlAodChGW2NdLmNlbGwpLCJmb290ZXIiKX0pfSxsLnByb3RvdHlwZS5fc2Nyb2xsPWZ1bmN0aW9uKCl7dmFyIGM9dGhpcy5kb20uc2Nyb2xsZXJbMF07aWYoYyl7dmFyIHA9dCh0aGlzLnMuZHQudGFibGUoKS5ub2RlKCkpLmFkZCh0aGlzLnMuZHQudGFibGUoKS5oZWFkZXIoKS5wYXJlbnROb2RlKS5hZGQodGhpcy5zLmR0LnRhYmxlKCkuZm9vdGVyKCkucGFyZW50Tm9kZSkuYWRkKCJkaXYuZHQtc2Nyb2xsLWhlYWRJbm5lciB0YWJsZSIsdGhpcy5zLmR0LnRhYmxlKCkuY29udGFpbmVyKCkpLmFkZCgiZGl2LmR0LXNjcm9sbC1mb290SW5uZXIgdGFibGUiLHRoaXMucy5kdC50YWJsZSgpLmNvbnRhaW5lcigpKSxiPWMuc2Nyb2xsTGVmdCxtPSF0aGlzLnMucnRsLHk9YiE9PTAsVD1jLnNjcm9sbFdpZHRoPmMuY2xpZW50V2lkdGgrTWF0aC5hYnMoYikrMTtwLnRvZ2dsZUNsYXNzKHRoaXMuY2xhc3Nlcy50YWJsZVNjcm9sbGluZ1N0YXJ0LHkpLHAudG9nZ2xlQ2xhc3ModGhpcy5jbGFzc2VzLnRhYmxlU2Nyb2xsaW5nRW5kLFQpLHAudG9nZ2xlQ2xhc3ModGhpcy5jbGFzc2VzLnRhYmxlU2Nyb2xsaW5nTGVmdCx5JiZtfHxUJiYhbSkscC50b2dnbGVDbGFzcyh0aGlzLmNsYXNzZXMudGFibGVTY3JvbGxpbmdSaWdodCxUJiZtfHx5JiYhbSl9fSxsLnByb3RvdHlwZS5fc2V0S2V5VGFibGVMaXN0ZW5lcj1mdW5jdGlvbigpe3ZhciBjPXRoaXM7dGhpcy5zLmR0Lm9uKCJrZXktZm9jdXMuZHQuZHRmYyIsZnVuY3Rpb24ocCxiLG0pe3ZhciB5LFQ9dChtLm5vZGUoKSkub2Zmc2V0KCksdz1jLmRvbS5zY3JvbGxlclswXSxrPXQodChjLnMuZHQudGFibGUoKS5ub2RlKCkpLmNsb3Nlc3QoImRpdi5kdC1zY3JvbGwtYm9keSIpKTtpZihjLmMuc3RhcnQ+MCl7dmFyIFA9dChjLnMuZHQuY29sdW1uKGMuYy5zdGFydC0xKS5oZWFkZXIoKSksRj1QLm9mZnNldCgpLGg9UC5vdXRlcldpZHRoKCk7dChtLm5vZGUoKSkuaGFzQ2xhc3MoYy5jbGFzc2VzLmZpeGVkTGVmdCk/ay5zY3JvbGxMZWZ0KDApOlQubGVmdDxGLmxlZnQraCYmKHk9ay5zY3JvbGxMZWZ0KCksay5zY3JvbGxMZWZ0KHktKEYubGVmdCtoLVQubGVmdCkpKX1pZihjLmMuZW5kPjApe3ZhciBvPWMucy5kdC5jb2x1bW5zKCkuZGF0YSgpLnRvQXJyYXkoKS5sZW5ndGgsZj10KG0ubm9kZSgpKS5vdXRlcldpZHRoKCksQz10KGMucy5kdC5jb2x1bW4oby1jLmMuZW5kKS5oZWFkZXIoKSksQj1DLm9mZnNldCgpO3QobS5ub2RlKCkpLmhhc0NsYXNzKGMuY2xhc3Nlcy5maXhlZFJpZ2h0KT9rLnNjcm9sbExlZnQody5zY3JvbGxXaWR0aC13LmNsaWVudFdpZHRoKTpULmxlZnQrZj5CLmxlZnQmJih5PWsuc2Nyb2xsTGVmdCgpLGsuc2Nyb2xsTGVmdCh5LShCLmxlZnQtKFQubGVmdCtmKSkpKX19KX0sbC5wcm90b3R5cGUuX3N1bT1mdW5jdGlvbihjLHAsYil7cmV0dXJuIGI9PT12b2lkIDAmJihiPSExKSxiJiYoYz1jLnNsaWNlKCkucmV2ZXJzZSgpKSxjLnNsaWNlKDAscCkucmVkdWNlKGZ1bmN0aW9uKG0seSl7cmV0dXJuIG0reX0sMCl9LGwudmVyc2lvbj0iNS4wLjAiLGwuY2xhc3Nlcz17Ym90dG9tQmxvY2tlcjoiZHRmYy1ib3R0b20tYmxvY2tlciIsZml4ZWRFbmQ6ImR0ZmMtZml4ZWQtZW5kIixmaXhlZExlZnQ6ImR0ZmMtZml4ZWQtbGVmdCIsZml4ZWRSaWdodDoiZHRmYy1maXhlZC1yaWdodCIsZml4ZWRTdGFydDoiZHRmYy1maXhlZC1zdGFydCIsdGFibGVGaXhlZEVuZDoiZHRmYy1oYXMtZW5kIix0YWJsZUZpeGVkTGVmdDoiZHRmYy1oYXMtbGVmdCIsdGFibGVGaXhlZFJpZ2h0OiJkdGZjLWhhcy1yaWdodCIsdGFibGVGaXhlZFN0YXJ0OiJkdGZjLWhhcy1zdGFydCIsdGFibGVTY3JvbGxpbmdFbmQ6ImR0ZmMtc2Nyb2xsaW5nLWVuZCIsdGFibGVTY3JvbGxpbmdMZWZ0OiJkdGZjLXNjcm9sbGluZy1sZWZ0Iix0YWJsZVNjcm9sbGluZ1JpZ2h0OiJkdGZjLXNjcm9sbGluZy1yaWdodCIsdGFibGVTY3JvbGxpbmdTdGFydDoiZHRmYy1zY3JvbGxpbmctc3RhcnQiLHRvcEJsb2NrZXI6ImR0ZmMtdG9wLWJsb2NrZXIifSxsLmRlZmF1bHRzPXtpMThuOntidXR0b246IkZpeGVkQ29sdW1ucyJ9LHN0YXJ0OjEsZW5kOjB9LGx9KCk7cihpciksaXIuZm4uZGF0YVRhYmxlLkZpeGVkQ29sdW1ucz1uLGlyLmZuLkRhdGFUYWJsZS5GaXhlZENvbHVtbnM9bjt2YXIgcz1zdC5BcGkucmVnaXN0ZXI7cygiZml4ZWRDb2x1bW5zKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxzKCJmaXhlZENvbHVtbnMoKS5zdGFydCgpIixmdW5jdGlvbihsKXt2YXIgYz10aGlzLmNvbnRleHRbMF07cmV0dXJuIGwhPT12b2lkIDA/KGMuX2ZpeGVkQ29sdW1ucy5zdGFydChsKSx0aGlzKTpjLl9maXhlZENvbHVtbnMuc3RhcnQoKX0pLHMoImZpeGVkQ29sdW1ucygpLmVuZCgpIixmdW5jdGlvbihsKXt2YXIgYz10aGlzLmNvbnRleHRbMF07cmV0dXJuIGwhPT12b2lkIDA/KGMuX2ZpeGVkQ29sdW1ucy5lbmQobCksdGhpcyk6Yy5fZml4ZWRDb2x1bW5zLmVuZCgpfSkscygiZml4ZWRDb2x1bW5zKCkubGVmdCgpIixmdW5jdGlvbihsKXt2YXIgYz10aGlzLmNvbnRleHRbMF07cmV0dXJuIGwhPT12b2lkIDA/KGMuX2ZpeGVkQ29sdW1ucy5sZWZ0KGwpLHRoaXMpOmMuX2ZpeGVkQ29sdW1ucy5sZWZ0KCl9KSxzKCJmaXhlZENvbHVtbnMoKS5yaWdodCgpIixmdW5jdGlvbihsKXt2YXIgYz10aGlzLmNvbnRleHRbMF07cmV0dXJuIGwhPT12b2lkIDA/KGMuX2ZpeGVkQ29sdW1ucy5yaWdodChsKSx0aGlzKTpjLl9maXhlZENvbHVtbnMucmlnaHQoKX0pLHN0LmV4dC5idXR0b25zLmZpeGVkQ29sdW1ucz17YWN0aW9uOmZ1bmN0aW9uKGwsYyxwLGIpe2lyKHApLmF0dHIoImFjdGl2ZSIpPyhpcihwKS5yZW1vdmVBdHRyKCJhY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIiksYy5maXhlZENvbHVtbnMoKS5zdGFydCgwKSxjLmZpeGVkQ29sdW1ucygpLmVuZCgwKSk6KGlyKHApLmF0dHIoImFjdGl2ZSIsInRydWUiKS5hZGRDbGFzcygiYWN0aXZlIiksYy5maXhlZENvbHVtbnMoKS5zdGFydChiLmNvbmZpZy5zdGFydCksYy5maXhlZENvbHVtbnMoKS5lbmQoYi5jb25maWcuZW5kKSl9LGNvbmZpZzp7c3RhcnQ6MSxlbmQ6MH0saW5pdDpmdW5jdGlvbihsLGMscCl7bC5zZXR0aW5ncygpWzBdLl9maXhlZENvbHVtbnM9PT12b2lkIDAmJmEobC5zZXR0aW5ncygpLHApLGlyKGMpLmF0dHIoImFjdGl2ZSIsInRydWUiKS5hZGRDbGFzcygiYWN0aXZlIiksbC5idXR0b24oYykudGV4dChwLnRleHR8fGwuaTE4bigiYnV0dG9ucy5maXhlZENvbHVtbnMiLGwuc2V0dGluZ3MoKVswXS5fZml4ZWRDb2x1bW5zLmMuaTE4bi5idXR0b24pKX0sdGV4dDpudWxsfTtmdW5jdGlvbiBhKGwsYyl7Yz09PXZvaWQgMCYmKGM9bnVsbCk7dmFyIHA9bmV3IHN0LkFwaShsKSxiPWN8fHAuaW5pdCgpLmZpeGVkQ29sdW1uc3x8c3QuZGVmYXVsdHMuZml4ZWRDb2x1bW5zLG09bmV3IG4ocCxiKTtyZXR1cm4gbX1pcihkb2N1bWVudCkub24oInBsdWdpbi1pbml0LmR0IixmdW5jdGlvbihsLGMpe2wubmFtZXNwYWNlPT09ImR0IiYmKGMub0luaXQuZml4ZWRDb2x1bW5zfHxzdC5kZWZhdWx0cy5maXhlZENvbHVtbnMpJiYoYy5fZml4ZWRDb2x1bW5zfHxhKGMsbnVsbCkpfSl9KSgpO3ZhciBqbD1uZShpZSgpLDEpO3ZhciBFcz1uZShpZSgpLDEpO3ZhciBqdD1Fcy5kZWZhdWx0LExsPTAsemw9MCx2cj1mdW5jdGlvbih0LGUpe2lmKCFzdC52ZXJzaW9uQ2hlY2t8fCFzdC52ZXJzaW9uQ2hlY2soIjEuMTAuOCIpKXRocm93IktleVRhYmxlIHJlcXVpcmVzIERhdGFUYWJsZXMgMS4xMC44IG9yIG5ld2VyIjt0aGlzLmM9anQuZXh0ZW5kKCEwLHt9LHN0LmRlZmF1bHRzLmtleVRhYmxlLHZyLmRlZmF1bHRzLGUpLHRoaXMucz17ZHQ6bmV3IHN0LkFwaSh0KSxkdERyYXdpbmc6ITEsZW5hYmxlOiEwLGZvY3VzRHJhdzohMSx3YWl0aW5nRm9yRHJhdzohMSxsYXN0Rm9jdXM6bnVsbCxuYW1lc3BhY2U6Ii5rZXlUYWJsZS0iK0xsKyssdGFiSW5wdXQ6bnVsbH0sdGhpcy5kb209e307dmFyIHI9dGhpcy5zLmR0LnNldHRpbmdzKClbMF0sbj1yLmtleXRhYmxlO2lmKG4pcmV0dXJuIG47ci5rZXl0YWJsZT10aGlzLHRoaXMuX2NvbnN0cnVjdG9yKCl9O2p0LmV4dGVuZCh2ci5wcm90b3R5cGUse2JsdXI6ZnVuY3Rpb24oKXt0aGlzLl9ibHVyKCl9LGVuYWJsZTpmdW5jdGlvbih0KXt0aGlzLnMuZW5hYmxlPXR9LGVuYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zLmVuYWJsZX0sZm9jdXM6ZnVuY3Rpb24odCxlKXt0aGlzLl9mb2N1cyh0aGlzLnMuZHQuY2VsbCh0LGUpKX0sZm9jdXNlZDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnMubGFzdEZvY3VzO2lmKCFlKXJldHVybiExO3ZhciByPXRoaXMucy5sYXN0Rm9jdXMuY2VsbC5pbmRleCgpO3JldHVybiB0LnJvdz09PXIucm93JiZ0LmNvbHVtbj09PXIuY29sdW1ufSxfY29uc3RydWN0b3I6ZnVuY3Rpb24oKXt0aGlzLl90YWJJbnB1dCgpO3ZhciB0PXRoaXMsZT10aGlzLnMuZHQscj1qdChlLnRhYmxlKCkubm9kZSgpKSxuPXRoaXMucy5uYW1lc3BhY2Uscz0hMTtpZihyLmNzcygicG9zaXRpb24iKT09PSJzdGF0aWMiJiZyLmNzcygicG9zaXRpb24iLCJyZWxhdGl2ZSIpLGp0KGUudGFibGUoKS5ib2R5KCkpLm9uKCJjbGljayIrbiwidGgsIHRkIixmdW5jdGlvbihjKXtpZih0LnMuZW5hYmxlIT09ITEpe3ZhciBwPWUuY2VsbCh0aGlzKTtwLmFueSgpJiZ0Ll9mb2N1cyhwLG51bGwsITEsYyl9fSksanQoZG9jdW1lbnQpLm9uKCJrZXlkb3duIituLGZ1bmN0aW9uKGMpeyFzJiYhdC5zLmR0RHJhd2luZz90Ll9rZXkoYyk6Yy5wcmV2ZW50RGVmYXVsdCgpfSksdGhpcy5jLmJsdXJhYmxlJiZqdChkb2N1bWVudCkub24oIm1vdXNlZG93biIrbixmdW5jdGlvbihjKXtqdChjLnRhcmdldCkucGFyZW50cygiLmRhdGFUYWJsZXNfZmlsdGVyLCAuZHQtc2VhcmNoIikubGVuZ3RoJiZ0Ll9ibHVyKCksIWp0KGMudGFyZ2V0KS5wYXJlbnRzKCkuZmlsdGVyKGUudGFibGUoKS5jb250YWluZXIoKSkubGVuZ3RoJiYoanQoYy50YXJnZXQpLnBhcmVudHMoImRpdi5EVEUiKS5sZW5ndGh8fGp0KGMudGFyZ2V0KS5wYXJlbnRzKCJkaXYuZWRpdG9yLWRhdGV0aW1lIikubGVuZ3RofHxqdChjLnRhcmdldCkucGFyZW50cygiZGl2LmR0LWRhdGV0aW1lIikubGVuZ3RofHxqdChjLnRhcmdldCkucGFyZW50cygpLmZpbHRlcigiLkRURkNfQ2xvbmVkIikubGVuZ3RofHx0Ll9ibHVyKCkpfSksdGhpcy5jLmVkaXRvcil7dmFyIGE9dGhpcy5jLmVkaXRvcjthLm9uKCJvcGVuLmtleVRhYmxlTWFpbiIsZnVuY3Rpb24oYyxwLGIpe3AhPT0iaW5saW5lIiYmdC5zLmVuYWJsZSYmKHQuZW5hYmxlKCExKSxhLm9uZSgiY2xvc2UiK24sZnVuY3Rpb24oKXt0LmVuYWJsZSghMCl9KSl9KSx0aGlzLmMuZWRpdE9uRm9jdXMmJmUub24oImtleS1mb2N1cyIrbisiIGtleS1yZWZvY3VzIituLGZ1bmN0aW9uKGMscCxiLG0pe3QuX2VkaXRvcihudWxsLG0sITApfSksZS5vbigia2V5IituLGZ1bmN0aW9uKGMscCxiLG0seSl7dC5fZWRpdG9yKGIseSwhMSl9KSxqdChlLnRhYmxlKCkuYm9keSgpKS5vbigiZGJsY2xpY2siK24sInRoLCB0ZCIsZnVuY3Rpb24oYyl7aWYodC5zLmVuYWJsZSE9PSExKXt2YXIgcD1lLmNlbGwodGhpcyk7cC5hbnkoKSYmKHQucy5sYXN0Rm9jdXMmJnRoaXMhPT10LnMubGFzdEZvY3VzLmNlbGwubm9kZSgpfHx0Ll9lZGl0b3IobnVsbCxjLCEwKSl9fSksYS5vbigicHJlU3VibWl0IixmdW5jdGlvbigpe3M9ITB9KS5vbigicHJlU3VibWl0Q2FuY2VsbGVkIixmdW5jdGlvbigpe3M9ITF9KS5vbigic3VibWl0Q29tcGxldGUiLGZ1bmN0aW9uKCl7cz0hMX0pfWUub24oInN0YXRlU2F2ZVBhcmFtcyIrbixmdW5jdGlvbihjLHAsYil7Yi5rZXlUYWJsZT10LnMubGFzdEZvY3VzP3Qucy5sYXN0Rm9jdXMuY2VsbC5pbmRleCgpOm51bGx9KSxlLm9uKCJjb2x1bW4tdmlzaWJpbGl0eSIrbixmdW5jdGlvbihjKXt0Ll90YWJJbnB1dCgpfSksZS5vbigiY29sdW1uLXJlb3JkZXIiK24sZnVuY3Rpb24oYyxwLGIpe3ZhciBtPXQucy5sYXN0Rm9jdXM7aWYobSYmbS5jZWxsKXt2YXIgeT1tLnJlbGF0aXZlLmNvbHVtbjttLmNlbGxbMF1bMF0uY29sdW1uPWIubWFwcGluZy5pbmRleE9mKHkpLG0ucmVsYXRpdmUuY29sdW1uPWIubWFwcGluZy5pbmRleE9mKHkpfX0pLGUub24oInByZURyYXciK24rIiBzY3JvbGxlci13aWxsLWRyYXciK24sZnVuY3Rpb24oYyl7dC5zLmR0RHJhd2luZz0hMH0pLGUub24oImRyYXciK24sZnVuY3Rpb24oYyl7aWYodC5zLmR0RHJhd2luZz0hMSx0Ll90YWJJbnB1dCgpLCF0LnMuZm9jdXNEcmF3KXt2YXIgcD10LnMubGFzdEZvY3VzO2lmKHApe3ZhciBiPXQucy5sYXN0Rm9jdXMucmVsYXRpdmUsbT1lLnBhZ2UuaW5mbygpLHk9Yi5yb3c7aWYobS5yZWNvcmRzRGlzcGxheT09PTB8fHk8bS5zdGFydHx8eT5tLnN0YXJ0K20ubGVuZ3RoKXJldHVybjt5Pj1tLnJlY29yZHNEaXNwbGF5JiYoeT1tLnJlY29yZHNEaXNwbGF5LTEpLHQuX2ZvY3VzKHksYi5jb2x1bW4sITAsYyl9fX0pLHRoaXMuYy5jbGlwYm9hcmQmJnRoaXMuX2NsaXBib2FyZCgpLGUub24oImRlc3Ryb3kiK24sZnVuY3Rpb24oKXt0Ll9ibHVyKCEwKSxlLm9mZihuKSxqdChlLnRhYmxlKCkuYm9keSgpKS5vZmYoImNsaWNrIituLCJ0aCwgdGQiKS5vZmYoImRibGNsaWNrIituLCJ0aCwgdGQiKSxqdChkb2N1bWVudCkub2ZmKCJtb3VzZWRvd24iK24pLm9mZigia2V5ZG93biIrbikub2ZmKCJjb3B5IituKS5vZmYoInBhc3RlIituKX0pO3ZhciBsPWUuc3RhdGUubG9hZGVkKCk7bCYmbC5rZXlUYWJsZT9lLm9uZSgiaW5pdCIsZnVuY3Rpb24oKXt2YXIgYz1lLmNlbGwobC5rZXlUYWJsZSk7Yy5hbnkoKSYmYy5mb2N1cygpfSk6dGhpcy5jLmZvY3VzJiZlLmNlbGwodGhpcy5jLmZvY3VzKS5mb2N1cygpfSxfYmx1cjpmdW5jdGlvbih0KXtpZighKCF0aGlzLnMuZW5hYmxlfHwhdGhpcy5zLmxhc3RGb2N1cykpe3ZhciBlPXRoaXMucy5sYXN0Rm9jdXMuY2VsbDtqdChlLm5vZGUoKSkucmVtb3ZlQ2xhc3ModGhpcy5jLmNsYXNzTmFtZSksdGhpcy5zLmxhc3RGb2N1cz1udWxsLHR8fCh0aGlzLl91cGRhdGVGaXhlZENvbHVtbnMoZS5pbmRleCgpLmNvbHVtbiksdGhpcy5fZW1pdEV2ZW50KCJrZXktYmx1ciIsW3RoaXMucy5kdCxlXSkpfX0sX2NsaXBib2FyZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMucy5kdCxlPXRoaXMscj10aGlzLnMubmFtZXNwYWNlLG49dGhpcy5jLmNsaXBib2FyZDt3aW5kb3cuZ2V0U2VsZWN0aW9uJiYoKG49PT0hMHx8bi5jb3B5KSYmanQoZG9jdW1lbnQpLm9uKCJjb3B5IityLGZ1bmN0aW9uKHMpe3ZhciBhPXMub3JpZ2luYWxFdmVudCxsPXdpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpLGM9ZS5zLmxhc3RGb2N1czshbCYmYyYmKGEuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJ0ZXh0L3BsYWluIixjLmNlbGwucmVuZGVyKGUuYy5jbGlwYm9hcmRPcnRob2dvbmFsKSksYS5wcmV2ZW50RGVmYXVsdCgpKX0pLChuPT09ITB8fG4ucGFzdGUpJiZqdChkb2N1bWVudCkub24oInBhc3RlIityLGZ1bmN0aW9uKHMpe3ZhciBhPXMub3JpZ2luYWxFdmVudCxsPWUucy5sYXN0Rm9jdXMsYz1kb2N1bWVudC5hY3RpdmVFbGVtZW50LHA9ZS5jLmVkaXRvcixiO2lmKGwmJighY3x8Yy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09ImJvZHkiKSlpZihhLnByZXZlbnREZWZhdWx0KCksd2luZG93LmNsaXBib2FyZERhdGEmJndpbmRvdy5jbGlwYm9hcmREYXRhLmdldERhdGE/Yj13aW5kb3cuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCJUZXh0Iik6YS5jbGlwYm9hcmREYXRhJiZhLmNsaXBib2FyZERhdGEuZ2V0RGF0YSYmKGI9YS5jbGlwYm9hcmREYXRhLmdldERhdGEoInRleHQvcGxhaW4iKSkscCl7dmFyIG09ZS5faW5saW5lT3B0aW9ucyhsLmNlbGwuaW5kZXgoKSk7cC5pbmxpbmUobS5jZWxsLG0uZmllbGQsbS5vcHRpb25zKS5zZXQocC5kaXNwbGF5ZWQoKVswXSxiKS5zdWJtaXQoKX1lbHNlIGwuY2VsbC5kYXRhKGIpLHQuZHJhdyghMSl9KSl9LF9jb2x1bW5zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zLmR0LGU9dC5jb2x1bW5zKHRoaXMuYy5jb2x1bW5zKS5pbmRleGVzKCkscj1bXTtyZXR1cm4gdC5jb2x1bW5zKCI6dmlzaWJsZSIpLmV2ZXJ5KGZ1bmN0aW9uKG4pe2UuaW5kZXhPZihuKSE9PS0xJiZyLnB1c2gobil9KSxyfSxfZWRpdG9yOmZ1bmN0aW9uKHQsZSxyKXtpZih0aGlzLnMubGFzdEZvY3VzJiYhKGUmJmUudHlwZT09PSJkcmF3Iikpe3ZhciBuPXRoaXMscz10aGlzLnMuZHQsYT10aGlzLmMuZWRpdG9yLGw9dGhpcy5zLmxhc3RGb2N1cy5jZWxsLGM9dGhpcy5zLm5hbWVzcGFjZSsiZSIremwrKztpZighanQoImRpdi5EVEUiLGwubm9kZSgpKS5sZW5ndGgmJiEodCE9PW51bGwmJih0Pj0wJiZ0PD05fHx0PT09MTF8fHQ9PT0xMnx8dD49MTQmJnQ8PTMxfHx0Pj0xMTImJnQ8PTEyM3x8dD49MTI3JiZ0PD0xNTkpKSl7ZSYmKGUuc3RvcFByb3BhZ2F0aW9uKCksdD09PTEzJiZlLnByZXZlbnREZWZhdWx0KCkpO3ZhciBwPWZ1bmN0aW9uKCl7dmFyIGI9bi5faW5saW5lT3B0aW9ucyhsLmluZGV4KCkpO2Eub25lKCJvcGVuIitjLGZ1bmN0aW9uKCl7YS5vZmYoImNhbmNlbE9wZW4iK2MpLHJ8fGp0KCJkaXYuRFRFX0ZpZWxkX0lucHV0Q29udHJvbCBpbnB1dCwgZGl2LkRURV9GaWVsZF9JbnB1dENvbnRyb2wgdGV4dGFyZWEiKS5zZWxlY3QoKSxzLmtleXMuZW5hYmxlKHI/InRhYi1vbmx5IjoibmF2aWdhdGlvbi1vbmx5Iikscy5vbigia2V5LWJsdXIuZWRpdG9yIixmdW5jdGlvbihtLHksVCl7YS5zLmVkaXRPcHRzLm9uQmx1ciE9PSJzdWJtaXQiJiZhLmRpc3BsYXllZCgpJiZULm5vZGUoKT09PWwubm9kZSgpJiZhLnN1Ym1pdCgpfSksciYmanQocy50YWJsZSgpLmNvbnRhaW5lcigpKS5hZGRDbGFzcygiZHRrLWZvY3VzLWFsdCIpLGEub24oInByZVN1Ym1pdENhbmNlbGxlZCIrYyxmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtuLl9mb2N1cyhsLG51bGwsITEpfSw1MCl9KSxhLm9uKCJzdWJtaXRVbnN1Y2Nlc3NmdWwiK2MsZnVuY3Rpb24oKXtuLl9mb2N1cyhsLG51bGwsITEpfSksYS5vbmUoImNsb3NlIitjLGZ1bmN0aW9uKCl7cy5rZXlzLmVuYWJsZSghMCkscy5vZmYoImtleS1ibHVyLmVkaXRvciIpLGEub2ZmKGMpLGp0KHMudGFibGUoKS5jb250YWluZXIoKSkucmVtb3ZlQ2xhc3MoImR0ay1mb2N1cy1hbHQiKSxuLnMucmV0dXJuU3VibWl0JiYobi5zLnJldHVyblN1Ym1pdD0hMSxuLl9lbWl0RXZlbnQoImtleS1yZXR1cm4tc3VibWl0IixbcyxsXSkpfSl9KS5vbmUoImNhbmNlbE9wZW4iK2MsZnVuY3Rpb24oKXthLm9mZihjKX0pLmlubGluZShiLmNlbGwsYi5maWVsZCxiLm9wdGlvbnMpfTt0PT09MTM/KHI9ITAsanQoZG9jdW1lbnQpLm9uZSgia2V5dXAiLGZ1bmN0aW9uKCl7cCgpfSkpOnAoKX19fSxfaW5saW5lT3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jLmVkaXRvck9wdGlvbnM/dGhpcy5jLmVkaXRvck9wdGlvbnModCk6e2NlbGw6dCxmaWVsZDp2b2lkIDAsb3B0aW9uczp2b2lkIDB9fSxfZW1pdEV2ZW50OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMucy5kdC5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHIsbil7cmV0dXJuIGp0KHIublRhYmxlKS50cmlnZ2VySGFuZGxlcih0LGUpfSl9LF9mb2N1czpmdW5jdGlvbih0LGUscixuKXt2YXIgcz10aGlzLGE9dGhpcy5zLmR0LGw9YS5wYWdlLmluZm8oKSxjPXRoaXMucy5sYXN0Rm9jdXM7aWYobnx8KG49bnVsbCksISF0aGlzLnMuZW5hYmxlKXtpZih0eXBlb2YgdCE9Im51bWJlciIpe2lmKCF0LmFueSgpKXJldHVybjt2YXIgcD10LmluZGV4KCk7aWYoZT1wLmNvbHVtbix0PWEucm93cyh7ZmlsdGVyOiJhcHBsaWVkIixvcmRlcjoiYXBwbGllZCJ9KS5pbmRleGVzKCkuaW5kZXhPZihwLnJvdyksdDwwKXJldHVybjtsLnNlcnZlclNpZGUmJih0Kz1sLnN0YXJ0KX1pZihsLmxlbmd0aCE9PS0xJiYodDxsLnN0YXJ0fHx0Pj1sLnN0YXJ0K2wubGVuZ3RoKSl7dGhpcy5zLmZvY3VzRHJhdz0hMCx0aGlzLnMud2FpdGluZ0ZvckRyYXc9ITAsYS5vbmUoImRyYXciLGZ1bmN0aW9uKCl7cy5zLmZvY3VzRHJhdz0hMSxzLnMud2FpdGluZ0ZvckRyYXc9ITEscy5fZm9jdXModCxlLHZvaWQgMCxuKX0pLnBhZ2UoTWF0aC5mbG9vcih0L2wubGVuZ3RoKSkuZHJhdyghMSk7cmV0dXJufWlmKGp0LmluQXJyYXkoZSx0aGlzLl9jb2x1bW5zKCkpIT09LTEpe2wuc2VydmVyU2lkZSYmKHQtPWwuc3RhcnQpO3ZhciBiPWEuY2VsbHMobnVsbCxlLHtzZWFyY2g6ImFwcGxpZWQiLG9yZGVyOiJhcHBsaWVkIn0pLmZsYXR0ZW4oKSxtPWEuY2VsbChiW3RdKSx5PXRoaXMuX2VtaXRFdmVudCgia2V5LXByZWZvY3VzIixbdGhpcy5zLmR0LG0sbnx8bnVsbF0pO2lmKHkuaW5kZXhPZighMSk9PT0tMSl7aWYoYyl7aWYoYy5ub2RlPT09bS5ub2RlKCkpe3RoaXMuX2VtaXRFdmVudCgia2V5LXJlZm9jdXMiLFt0aGlzLnMuZHQsbSxufHxudWxsXSk7cmV0dXJufXRoaXMuX2JsdXIoKX10aGlzLl9yZW1vdmVPdGhlckZvY3VzKCk7dmFyIFQ9anQobS5ub2RlKCkpO2lmKFQuYWRkQ2xhc3ModGhpcy5jLmNsYXNzTmFtZSksdGhpcy5fdXBkYXRlRml4ZWRDb2x1bW5zKGUpLHI9PT12b2lkIDB8fHI9PT0hMCl7dGhpcy5fc2Nyb2xsKGp0KHdpbmRvdyksanQoZG9jdW1lbnQuYm9keSksVCwib2Zmc2V0Iik7dmFyIHc9YS50YWJsZSgpLmJvZHkoKS5wYXJlbnROb2RlO2lmKHchPT1hLnRhYmxlKCkuaGVhZGVyKCkucGFyZW50Tm9kZSl7dmFyIGs9anQody5wYXJlbnROb2RlKTt0aGlzLl9zY3JvbGwoayxrLFQsInBvc2l0aW9uIil9fXZhciBQPWEucGFnZS5pbmZvKCk7dGhpcy5zLmxhc3RGb2N1cz17Y2VsbDptLG5vZGU6bS5ub2RlKCkscmVsYXRpdmU6e3JvdzpQLnN0YXJ0K2Eucm93cyh7cGFnZToiY3VycmVudCJ9KS5pbmRleGVzKCkuaW5kZXhPZihtLmluZGV4KCkucm93KSxjb2x1bW46bS5pbmRleCgpLmNvbHVtbn19LHRoaXMuX2VtaXRFdmVudCgia2V5LWZvY3VzIixbdGhpcy5zLmR0LG0sbnx8bnVsbF0pLGEuc3RhdGUuc2F2ZSgpfX19fSxfa2V5OmZ1bmN0aW9uKHQpe2lmKHRoaXMucy53YWl0aW5nRm9yRHJhdyl7dC5wcmV2ZW50RGVmYXVsdCgpO3JldHVybn1pZighanQodC50YXJnZXQpLmNsb3Nlc3QoIi5kdGUtaW5saW5lQWRkIikubGVuZ3RoKXt2YXIgZT10aGlzLnMuZW5hYmxlO3RoaXMucy5yZXR1cm5TdWJtaXQ9KGU9PT0ibmF2aWdhdGlvbi1vbmx5Inx8ZT09PSJ0YWItb25seSIpJiZ0LmtleUNvZGU9PT0xMzt2YXIgcj1lPT09ITB8fGU9PT0ibmF2aWdhdGlvbi1vbmx5IjtpZihlJiYhKCh0LmtleUNvZGU9PT0wfHx0LmN0cmxLZXl8fHQubWV0YUtleXx8dC5hbHRLZXkpJiYhKHQuY3RybEtleSYmdC5hbHRLZXkpKSl7dmFyIG49dGhpcy5zLmxhc3RGb2N1cztpZihuKXtpZighdGhpcy5zLmR0LmNlbGwobi5ub2RlKS5hbnkoKSl7dGhpcy5zLmxhc3RGb2N1cz1udWxsO3JldHVybn12YXIgcz10aGlzLGE9dGhpcy5zLmR0LGw9ISF0aGlzLnMuZHQuc2V0dGluZ3MoKVswXS5vU2Nyb2xsLnNZO2lmKCEodGhpcy5jLmtleXMmJmp0LmluQXJyYXkodC5rZXlDb2RlLHRoaXMuYy5rZXlzKT09PS0xKSlzd2l0Y2godC5rZXlDb2RlKXtjYXNlIDk6dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2tleUFjdGlvbihmdW5jdGlvbigpe3MuX3NoaWZ0KHQsdC5zaGlmdEtleT8ibGVmdCI6InJpZ2h0IiwhMCl9KTticmVhaztjYXNlIDI3OmlmKGp0KG4ubm9kZSkuZmluZCgiZGl2LkRURSIpLmxlbmd0aClyZXR1cm47dGhpcy5jLmJsdXJhYmxlJiZlPT09ITAmJnRoaXMuX2JsdXIoKTticmVhaztjYXNlIDMzOmNhc2UgMzQ6ciYmIWwmJih0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fa2V5QWN0aW9uKGZ1bmN0aW9uKCl7YS5wYWdlKHQua2V5Q29kZT09PTMzPyJwcmV2aW91cyI6Im5leHQiKS5kcmF3KCExKX0pKTticmVhaztjYXNlIDM1OmNhc2UgMzY6ciYmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLl9rZXlBY3Rpb24oZnVuY3Rpb24oKXt2YXIgYz1hLmNlbGxzKHtwYWdlOiJjdXJyZW50In0pLmluZGV4ZXMoKSxwPXMuX2NvbHVtbnMoKTtzLl9mb2N1cyhhLmNlbGwoY1t0LmtleUNvZGU9PT0zNT9jLmxlbmd0aC0xOnBbMF1dKSxudWxsLCEwLHQpfSkpO2JyZWFrO2Nhc2UgMzc6ciYmdGhpcy5fa2V5QWN0aW9uKGZ1bmN0aW9uKCl7cy5fc2hpZnQodCwibGVmdCIpfSk7YnJlYWs7Y2FzZSAzODpyJiZ0aGlzLl9rZXlBY3Rpb24oZnVuY3Rpb24oKXtzLl9zaGlmdCh0LCJ1cCIpfSk7YnJlYWs7Y2FzZSAzOTpyJiZ0aGlzLl9rZXlBY3Rpb24oZnVuY3Rpb24oKXtzLl9zaGlmdCh0LCJyaWdodCIpfSk7YnJlYWs7Y2FzZSA0MDpyJiZ0aGlzLl9rZXlBY3Rpb24oZnVuY3Rpb24oKXtzLl9zaGlmdCh0LCJkb3duIil9KTticmVhaztjYXNlIDExMzppZih0aGlzLmMuZWRpdG9yKXt0aGlzLl9lZGl0b3IobnVsbCx0LCEwKTticmVha31kZWZhdWx0OmU9PT0hMCYmdGhpcy5fZW1pdEV2ZW50KCJrZXkiLFthLHQua2V5Q29kZSx0aGlzLnMubGFzdEZvY3VzLmNlbGwsdF0pO2JyZWFrfX19fX0sX2tleUFjdGlvbjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmMuZWRpdG9yO2UmJmUubW9kZSgpP2Uuc3VibWl0KHQpOnQoKX0sX3JlbW92ZU90aGVyRm9jdXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnMuZHQudGFibGUoKS5ub2RlKCk7anQuZm4uZGF0YVRhYmxlLnRhYmxlcyh7YXBpOiEwfSkuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlKXt0aGlzLnRhYmxlKCkubm9kZSgpIT09dCYmdGhpcy5jZWxsLmJsdXIoKX0pfSxfc2Nyb2xsOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBzPXJbbl0oKSxhPXIub3V0ZXJIZWlnaHQoKSxsPXIub3V0ZXJXaWR0aCgpLGM9ZS5zY3JvbGxUb3AoKSxwPWUuc2Nyb2xsTGVmdCgpLGI9dC5oZWlnaHQoKSxtPXQud2lkdGgoKTtuPT09InBvc2l0aW9uIiYmKHMudG9wKz1wYXJzZUludChyLmNsb3Nlc3QoInRhYmxlIikuY3NzKCJ0b3AiKSwxMCkpLHMudG9wPGMmJnMudG9wK2E+Yy01JiZlLnNjcm9sbFRvcChzLnRvcCkscy5sZWZ0PHAmJmUuc2Nyb2xsTGVmdChzLmxlZnQpLHMudG9wK2E+YytiJiZzLnRvcDxjK2IrNSYmYTxiJiZlLnNjcm9sbFRvcChzLnRvcCthLWIpLHMubGVmdCtsPnArbSYmbDxtJiZlLnNjcm9sbExlZnQocy5sZWZ0K2wtbSl9LF9zaGlmdDpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5zLmR0LHM9bi5wYWdlLmluZm8oKSxhPXMucmVjb3Jkc0Rpc3BsYXksbD10aGlzLl9jb2x1bW5zKCksYz10aGlzLnMubGFzdEZvY3VzO2lmKGMpe3ZhciBwPWMuY2VsbDtpZihwKXt2YXIgYj1uLnJvd3Moe2ZpbHRlcjoiYXBwbGllZCIsb3JkZXI6ImFwcGxpZWQifSkuaW5kZXhlcygpLmluZGV4T2YocC5pbmRleCgpLnJvdyk7cy5zZXJ2ZXJTaWRlJiYoYis9cy5zdGFydCk7dmFyIG09bi5jb2x1bW5zKGwpLmluZGV4ZXMoKS5pbmRleE9mKHAuaW5kZXgoKS5jb2x1bW4pLHk9YixUPWxbbV07anQobi50YWJsZSgpLm5vZGUoKSkuY3NzKCJkaXJlY3Rpb24iKT09PSJydGwiJiYoZT09PSJyaWdodCI/ZT0ibGVmdCI6ZT09PSJsZWZ0IiYmKGU9InJpZ2h0IikpLGU9PT0icmlnaHQiP20+PWwubGVuZ3RoLTE/KHkrKyxUPWxbMF0pOlQ9bFttKzFdOmU9PT0ibGVmdCI/bT09PTA/KHktLSxUPWxbbC5sZW5ndGgtMV0pOlQ9bFttLTFdOmU9PT0idXAiP3ktLTplPT09ImRvd24iJiZ5KysseT49MCYmeTxhJiZqdC5pbkFycmF5KFQsbCkhPT0tMT8odCYmdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzKHksVCwhMCx0KSk6IXJ8fCF0aGlzLmMuYmx1cmFibGU/dCYmdC5wcmV2ZW50RGVmYXVsdCgpOnRoaXMuX2JsdXIoKX19fSxfdGFiSW5wdXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5zLmR0LHI9dGhpcy5jLnRhYkluZGV4IT09bnVsbD90aGlzLmMudGFiSW5kZXg6ZS5zZXR0aW5ncygpWzBdLmlUYWJJbmRleDtpZihyIT0tMSl7aWYoIXRoaXMucy50YWJJbnB1dCl7dmFyIG49anQoJzxkaXY+PGlucHV0IHR5cGU9InRleHQiIHRhYmluZGV4PSInK3IrJyIvPjwvZGl2PicpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIixoZWlnaHQ6MSx3aWR0aDowLG92ZXJmbG93OiJoaWRkZW4ifSk7bi5jaGlsZHJlbigpLm9uKCJmb2N1cyIsZnVuY3Rpb24oYSl7dmFyIGw9ZS5jZWxsKCI6ZXEoMCkiLHQuX2NvbHVtbnMoKSx7cGFnZToiY3VycmVudCJ9KTtsLmFueSgpJiZ0Ll9mb2N1cyhsLG51bGwsITAsYSl9KSx0aGlzLnMudGFiSW5wdXQ9bn12YXIgcz10aGlzLnMuZHQuY2VsbCgiOmVxKDApIiwiMDp2aXNpYmxlIix7cGFnZToiY3VycmVudCIsb3JkZXI6ImN1cnJlbnQifSkubm9kZSgpO3MmJmp0KHMpLnByZXBlbmQodGhpcy5zLnRhYklucHV0KX19LF91cGRhdGVGaXhlZENvbHVtbnM6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zLmR0LHI9ZS5zZXR0aW5ncygpWzBdO2lmKHIuX29GaXhlZENvbHVtbnMpe3ZhciBuPXIuX29GaXhlZENvbHVtbnMucy5pTGVmdENvbHVtbnMscz1yLmFvQ29sdW1ucy5sZW5ndGgtci5fb0ZpeGVkQ29sdW1ucy5zLmlSaWdodENvbHVtbnM7KHQ8bnx8dD49cykmJmUuZml4ZWRDb2x1bW5zKCkudXBkYXRlKCl9fX0pO3ZyLmRlZmF1bHRzPXtibHVyYWJsZTohMCxjbGFzc05hbWU6ImZvY3VzIixjbGlwYm9hcmQ6ITAsY2xpcGJvYXJkT3J0aG9nb25hbDoiZGlzcGxheSIsY29sdW1uczoiIixlZGl0b3I6bnVsbCxlZGl0T25Gb2N1czohMSxlZGl0b3JPcHRpb25zOm51bGwsZm9jdXM6bnVsbCxrZXlzOm51bGwsdGFiSW5kZXg6bnVsbH07dnIudmVyc2lvbj0iMi4xMi4wIjtqdC5mbi5kYXRhVGFibGUuS2V5VGFibGU9dnI7anQuZm4uRGF0YVRhYmxlLktleVRhYmxlPXZyO3N0LkFwaS5yZWdpc3RlcigiY2VsbC5ibHVyKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbih0KXt0LmtleXRhYmxlJiZ0LmtleXRhYmxlLmJsdXIoKX0pfSk7c3QuQXBpLnJlZ2lzdGVyKCJjZWxsKCkuZm9jdXMoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY2VsbCIsZnVuY3Rpb24odCxlLHIpe3Qua2V5dGFibGUmJnQua2V5dGFibGUuZm9jdXMoZSxyKX0pfSk7c3QuQXBpLnJlZ2lzdGVyKCJrZXlzLmRpc2FibGUoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHQpe3Qua2V5dGFibGUmJnQua2V5dGFibGUuZW5hYmxlKCExKX0pfSk7c3QuQXBpLnJlZ2lzdGVyKCJrZXlzLmVuYWJsZSgpIixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGUpe2Uua2V5dGFibGUmJmUua2V5dGFibGUuZW5hYmxlKHQ9PT12b2lkIDA/ITA6dCl9KX0pO3N0LkFwaS5yZWdpc3Rlcigia2V5cy5lbmFibGVkKCkiLGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29udGV4dDtyZXR1cm4gZS5sZW5ndGgmJmVbMF0ua2V5dGFibGU/ZVswXS5rZXl0YWJsZS5lbmFibGVkKCk6ITF9KTtzdC5BcGkucmVnaXN0ZXIoImtleXMubW92ZSgpIixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGUpe2Uua2V5dGFibGUmJmUua2V5dGFibGUuX3NoaWZ0KG51bGwsdCwhMSl9KX0pO3N0LmV4dC5zZWxlY3Rvci5jZWxsLnB1c2goZnVuY3Rpb24odCxlLHIpe3ZhciBuPWUuZm9jdXNlZCxzPXQua2V5dGFibGUsYT1bXTtpZighc3x8bj09PXZvaWQgMClyZXR1cm4gcjtmb3IodmFyIGw9MCxjPXIubGVuZ3RoO2w8YztsKyspKG49PT0hMCYmcy5mb2N1c2VkKHJbbF0pfHxuPT09ITEmJiFzLmZvY3VzZWQocltsXSkpJiZhLnB1c2gocltsXSk7cmV0dXJuIGF9KTtqdChkb2N1bWVudCkub24oInByZUluaXQuZHQuZHRrIixmdW5jdGlvbih0LGUscil7aWYodC5uYW1lc3BhY2U9PT0iZHQiKXt2YXIgbj1lLm9Jbml0LmtleXMscz1zdC5kZWZhdWx0cy5rZXlzO2lmKG58fHMpe3ZhciBhPWp0LmV4dGVuZCh7fSxzLG4pO24hPT0hMSYmbmV3IHZyKGUsYSl9fX0pO3ZhciBNbD1uZShpZSgpLDEpO3ZhciBPcz1uZShpZSgpLDEpO3ZhciBFZT1Pcy5kZWZhdWx0LG1yPWZ1bmN0aW9uKHQsZSl7aWYoIXN0LnZlcnNpb25DaGVja3x8IXN0LnZlcnNpb25DaGVjaygiMS4xMSIpKXRocm93IlJvd0dyb3VwIHJlcXVpcmVzIERhdGFUYWJsZXMgMS4xMSBvciBuZXdlciI7dGhpcy5jPUVlLmV4dGVuZCghMCx7fSxzdC5kZWZhdWx0cy5yb3dHcm91cCxtci5kZWZhdWx0cyxlKSx0aGlzLnM9e2R0Om5ldyBzdC5BcGkodCl9LHRoaXMuZG9tPXt9O3ZhciByPXRoaXMucy5kdC5zZXR0aW5ncygpWzBdLG49ci5yb3dHcm91cDtpZihuKXJldHVybiBuO3Iucm93R3JvdXA9dGhpcyx0aGlzLl9jb25zdHJ1Y3RvcigpfTtFZS5leHRlbmQobXIucHJvdG90eXBlLHtkYXRhU3JjOmZ1bmN0aW9uKHQpe2lmKHQ9PT12b2lkIDApcmV0dXJuIHRoaXMuYy5kYXRhU3JjO3ZhciBlPXRoaXMucy5kdDtyZXR1cm4gdGhpcy5jLmRhdGFTcmM9dCxFZShlLnRhYmxlKCkubm9kZSgpKS50cmlnZ2VySGFuZGxlcigicm93Z3JvdXAtZGF0YXNyYy5kdCIsW2UsdF0pLHRoaXN9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jLmVuYWJsZT0hMSx0aGlzfSxlbmFibGU6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT0hMT90aGlzLmRpc2FibGUoKToodGhpcy5jLmVuYWJsZT0hMCx0aGlzKX0sZW5hYmxlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmMuZW5hYmxlfSxfY29uc3RydWN0b3I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5zLmR0LHI9ZS5zZXR0aW5ncygpWzBdO2Uub24oImRyYXcuZHRyZyIsZnVuY3Rpb24obixzKXt0LmMuZW5hYmxlJiZyPT09cyYmdC5fZHJhdygpfSksZS5vbigiY29sdW1uLXZpc2liaWxpdHkuZHQuZHRyZyByZXNwb25zaXZlLXJlc2l6ZS5kdC5kdHJnIixmdW5jdGlvbigpe3QuX2FkanVzdENvbHNwYW4oKX0pLGUub24oImRlc3Ryb3kiLGZ1bmN0aW9uKCl7ZS5vZmYoIi5kdHJnIil9KX0sX2FkanVzdENvbHNwYW46ZnVuY3Rpb24oKXtFZSgidHIuIit0aGlzLmMuY2xhc3NOYW1lLHRoaXMucy5kdC50YWJsZSgpLmJvZHkoKSkuZmluZCgidGg6dmlzaWJsZSwgdGQ6dmlzaWJsZSIpLmF0dHIoImNvbHNwYW4iLHRoaXMuX2NvbHNwYW4oKSl9LF9jb2xzcGFuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucy5kdC5jb2x1bW5zKCkudmlzaWJsZSgpLnJlZHVjZShmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LDApfSxfZHJhdzpmdW5jdGlvbigpe3ZhciB0PXRoaXMucy5kdCxlPXRoaXMuX2dyb3VwKDAsdC5yb3dzKHtwYWdlOiJjdXJyZW50In0pLmluZGV4ZXMoKSk7dGhpcy5fZ3JvdXBEaXNwbGF5KDAsZSl9LF9ncm91cDpmdW5jdGlvbih0LGUpe3ZhciByPUFycmF5LmlzQXJyYXkodGhpcy5jLmRhdGFTcmMpP3RoaXMuYy5kYXRhU3JjOlt0aGlzLmMuZGF0YVNyY10sbj1zdC51dGlsLmdldChyW3RdKSxzPXRoaXMucy5kdCxhLGwsYyxwLGI9W10sbT10aGlzO2ZvcihjPTAscD1lLmxlbmd0aDtjPHA7YysrKXt2YXIgeT1lW2NdLFQ9cy5yb3coeSkuZGF0YSgpO2E9bihULHQpLGE9PW51bGwmJihhPW0uYy5lbXB0eURhdGFHcm91cCksKGw9PT12b2lkIDB8fGEhPT1sKSYmKGIucHVzaCh7ZGF0YVBvaW50OmEscm93czpbXX0pLGw9YSksYltiLmxlbmd0aC0xXS5yb3dzLnB1c2goeSl9aWYoclt0KzFdIT09dm9pZCAwKWZvcihjPTAscD1iLmxlbmd0aDtjPHA7YysrKWJbY10uY2hpbGRyZW49dGhpcy5fZ3JvdXAodCsxLGJbY10ucm93cyk7cmV0dXJuIGJ9LF9ncm91cERpc3BsYXk6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dGhpcy5zLmR0LG4scz0wLGE9ZS5sZW5ndGg7czxhO3MrKyl7dmFyIGw9ZVtzXSxjPWwuZGF0YVBvaW50LHAsYj1sLnJvd3M7dGhpcy5jLnN0YXJ0UmVuZGVyJiYobj10aGlzLmMuc3RhcnRSZW5kZXIuY2FsbCh0aGlzLHIucm93cyhiKSxjLHQpLHA9dGhpcy5fcm93V3JhcChuLHRoaXMuYy5zdGFydENsYXNzTmFtZSx0KSxwJiZwLmluc2VydEJlZm9yZShyLnJvdyhiWzBdKS5ub2RlKCkpKSx0aGlzLmMuZW5kUmVuZGVyJiYobj10aGlzLmMuZW5kUmVuZGVyLmNhbGwodGhpcyxyLnJvd3MoYiksYyx0KSxwPXRoaXMuX3Jvd1dyYXAobix0aGlzLmMuZW5kQ2xhc3NOYW1lLHQpLHAmJnAuaW5zZXJ0QWZ0ZXIoci5yb3coYltiLmxlbmd0aC0xXSkubm9kZSgpKSksbC5jaGlsZHJlbiYmdGhpcy5fZ3JvdXBEaXNwbGF5KHQrMSxsLmNoaWxkcmVuKX19LF9yb3dXcmFwOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbjtyZXR1cm4odD09PW51bGx8fHQ9PT0iIikmJih0PXRoaXMuYy5lbXB0eURhdGFHcm91cCksdD09bnVsbD9udWxsOih0eXBlb2YgdD09Im9iamVjdCImJnQubm9kZU5hbWUmJnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJ0ciI/bj1FZSh0KTp0IGluc3RhbmNlb2YgRWUmJnQubGVuZ3RoJiZ0WzBdLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0idHIiP249dDpuPUVlKCI8dHIvPiIpLmFwcGVuZChFZSgiPHRoLz4iKS5hdHRyKCJjb2xzcGFuIix0aGlzLl9jb2xzcGFuKCkpLmF0dHIoInNjb3BlIiwicm93IikuYXBwZW5kKHQpKSxuLmFkZENsYXNzKHRoaXMuYy5jbGFzc05hbWUpLmFkZENsYXNzKGUpLmFkZENsYXNzKCJkdHJnLWxldmVsLSIrcikpfX0pO21yLmRlZmF1bHRzPXtjbGFzc05hbWU6ImR0cmctZ3JvdXAiLGRhdGFTcmM6MCxlbXB0eURhdGFHcm91cDoiTm8gZ3JvdXAiLGVuYWJsZTohMCxlbmRDbGFzc05hbWU6ImR0cmctZW5kIixlbmRSZW5kZXI6bnVsbCxzdGFydENsYXNzTmFtZToiZHRyZy1zdGFydCIsc3RhcnRSZW5kZXI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZX19O21yLnZlcnNpb249IjEuNS4wIjtFZS5mbi5kYXRhVGFibGUuUm93R3JvdXA9bXI7RWUuZm4uRGF0YVRhYmxlLlJvd0dyb3VwPW1yO3N0LkFwaS5yZWdpc3Rlcigicm93R3JvdXAoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pO3N0LkFwaS5yZWdpc3Rlcigicm93R3JvdXAoKS5kaXNhYmxlKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbih0KXt0LnJvd0dyb3VwJiZ0LnJvd0dyb3VwLmVuYWJsZSghMSl9KX0pO3N0LkFwaS5yZWdpc3Rlcigicm93R3JvdXAoKS5lbmFibGUoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlKXtlLnJvd0dyb3VwJiZlLnJvd0dyb3VwLmVuYWJsZSh0PT09dm9pZCAwPyEwOnQpfSl9KTtzdC5BcGkucmVnaXN0ZXIoInJvd0dyb3VwKCkuZW5hYmxlZCgpIixmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29udGV4dDtyZXR1cm4gdC5sZW5ndGgmJnRbMF0ucm93R3JvdXA/dFswXS5yb3dHcm91cC5lbmFibGVkKCk6ITF9KTtzdC5BcGkucmVnaXN0ZXIoInJvd0dyb3VwKCkuZGF0YVNyYygpIixmdW5jdGlvbih0KXtyZXR1cm4gdD09PXZvaWQgMD90aGlzLmNvbnRleHRbMF0ucm93R3JvdXAuZGF0YVNyYygpOnRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlKXtlLnJvd0dyb3VwJiZlLnJvd0dyb3VwLmRhdGFTcmModCl9KX0pO0VlKGRvY3VtZW50KS5vbigicHJlSW5pdC5kdC5kdHJnIixmdW5jdGlvbih0LGUscil7aWYodC5uYW1lc3BhY2U9PT0iZHQiKXt2YXIgbj1lLm9Jbml0LnJvd0dyb3VwLHM9c3QuZGVmYXVsdHMucm93R3JvdXA7aWYobnx8cyl7dmFyIGE9RWUuZXh0ZW5kKHt9LHMsbik7biE9PSExJiZuZXcgbXIoZSxhKX19fSk7dmFyIFZsPW5lKGllKCksMSk7dmFyIFJzPW5lKGllKCksMSk7dmFyIGFyPVJzLmRlZmF1bHQ7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciB0LGU7ZnVuY3Rpb24gcigpe3JldHVybiB3aW5kb3cubW9tZW50fWZ1bmN0aW9uIG4oKXtyZXR1cm4gd2luZG93Lmx1eG9ufWZ1bmN0aW9uIHMoaCl7dD1oLGU9aC5mbi5kYXRhVGFibGV9dmFyIGE9ZnVuY3Rpb24oKXtmdW5jdGlvbiBoKG8sZixDLEIsdSx6LHEpe0I9PT12b2lkIDAmJihCPTApLHU9PT12b2lkIDAmJih1PTEpLHo9PT12b2lkIDAmJih6PXZvaWQgMCkscT09PXZvaWQgMCYmKHE9ITEpO3ZhciBldD10aGlzO2lmKCFlfHwhZS52ZXJzaW9uQ2hlY2t8fCFlLnZlcnNpb25DaGVjaygiMS4xMC4wIikpdGhyb3cgbmV3IEVycm9yKCJTZWFyY2hQYW5lIHJlcXVpcmVzIERhdGFUYWJsZXMgMS4xMCBvciBuZXdlciIpO3RoaXMuY2xhc3Nlcz10LmV4dGVuZCghMCx7fSxoLmNsYXNzZXMpLHRoaXMuYz10LmV4dGVuZCghMCx7fSxoLmRlZmF1bHRzLHQuZm4uZGF0YVRhYmxlLmV4dC5zZWFyY2hCdWlsZGVyLGYpO3ZhciBPPXRoaXMuYy5pMThuO2lmKHRoaXMucz17Y29uZGl0aW9uOnZvaWQgMCxjb25kaXRpb25zOnt9LGRhdGE6dm9pZCAwLGRhdGFJZHg6LTEsZGF0YVBvaW50czpbXSxkYXRlRm9ybWF0OiExLGRlcHRoOnUsZHQ6byxmaWxsZWQ6ITEsaW5kZXg6QixsaXZlU2VhcmNoOnEsb3JpZ0RhdGE6dm9pZCAwLHByZXZlbnRSZWRyYXc6ITEsc2VydmVyRGF0YTp6LHRvcEdyb3VwOkMsdHlwZToiIix2YWx1ZTpbXX0sdGhpcy5kb209e2J1dHRvbnM6dCgiPGRpdi8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmJ1dHRvbkNvbnRhaW5lciksY29uZGl0aW9uOnQoIjxzZWxlY3QgZGlzYWJsZWQvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5jb25kaXRpb24pLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5kcm9wRG93bikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLml0YWxpYykuYXR0cigiYXV0b2NvbXBsZXRlIiwiaGFja2luZyIpLGNvbmRpdGlvblRpdGxlOnQoJzxvcHRpb24gdmFsdWU9IiIgZGlzYWJsZWQgc2VsZWN0ZWQgaGlkZGVuLz4nKS5odG1sKHRoaXMucy5kdC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbiIsTy5jb25kaXRpb24pKSxjb250YWluZXI6dCgiPGRpdi8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmNvbnRhaW5lciksZGF0YTp0KCI8c2VsZWN0Lz4iKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuZGF0YSkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmRyb3BEb3duKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuaXRhbGljKSxkYXRhVGl0bGU6dCgnPG9wdGlvbiB2YWx1ZT0iIiBkaXNhYmxlZCBzZWxlY3RlZCBoaWRkZW4vPicpLmh0bWwodGhpcy5zLmR0LmkxOG4oInNlYXJjaEJ1aWxkZXIuZGF0YSIsTy5kYXRhKSksZGVmYXVsdFZhbHVlOnQoIjxzZWxlY3QgZGlzYWJsZWQvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy52YWx1ZSkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmRyb3BEb3duKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuc2VsZWN0KS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuaXRhbGljKSxkZWxldGU6dCgiPGJ1dHRvbi8+IikuaHRtbCh0aGlzLnMuZHQuaTE4bigic2VhcmNoQnVpbGRlci5kZWxldGUiLE8uZGVsZXRlKSkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmRlbGV0ZSkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmJ1dHRvbikuYXR0cigidGl0bGUiLHRoaXMucy5kdC5pMThuKCJzZWFyY2hCdWlsZGVyLmRlbGV0ZVRpdGxlIixPLmRlbGV0ZVRpdGxlKSkuYXR0cigidHlwZSIsImJ1dHRvbiIpLGlucHV0Q29udDp0KCI8ZGl2Lz4iKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuaW5wdXRDb250KSxsZWZ0OnQoIjxidXR0b24vPiIpLmh0bWwodGhpcy5zLmR0LmkxOG4oInNlYXJjaEJ1aWxkZXIubGVmdCIsTy5sZWZ0KSkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmxlZnQpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5idXR0b24pLmF0dHIoInRpdGxlIix0aGlzLnMuZHQuaTE4bigic2VhcmNoQnVpbGRlci5sZWZ0VGl0bGUiLE8ubGVmdFRpdGxlKSkuYXR0cigidHlwZSIsImJ1dHRvbiIpLHJpZ2h0OnQoIjxidXR0b24vPiIpLmh0bWwodGhpcy5zLmR0LmkxOG4oInNlYXJjaEJ1aWxkZXIucmlnaHQiLE8ucmlnaHQpKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMucmlnaHQpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5idXR0b24pLmF0dHIoInRpdGxlIix0aGlzLnMuZHQuaTE4bigic2VhcmNoQnVpbGRlci5yaWdodFRpdGxlIixPLnJpZ2h0VGl0bGUpKS5hdHRyKCJ0eXBlIiwiYnV0dG9uIiksdmFsdWU6W3QoIjxzZWxlY3QgZGlzYWJsZWQvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy52YWx1ZSkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmRyb3BEb3duKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuaXRhbGljKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuc2VsZWN0KV0sdmFsdWVUaXRsZTp0KCc8b3B0aW9uIHZhbHVlPSItLXZhbHVlVGl0bGUtLSIgZGlzYWJsZWQgc2VsZWN0ZWQgaGlkZGVuLz4nKS5odG1sKHRoaXMucy5kdC5pMThuKCJzZWFyY2hCdWlsZGVyLnZhbHVlIixPLnZhbHVlKSl9LHRoaXMuYy5ncmV5c2NhbGUpe3RoaXMuZG9tLmRhdGEuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmdyZXlzY2FsZSksdGhpcy5kb20uY29uZGl0aW9uLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5ncmV5c2NhbGUpLHRoaXMuZG9tLmRlZmF1bHRWYWx1ZS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuZ3JleXNjYWxlKTtmb3IodmFyIFo9MCxnPXRoaXMuZG9tLnZhbHVlO1o8Zy5sZW5ndGg7WisrKXt2YXIgXz1nW1pdO18uYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmdyZXlzY2FsZSl9fXJldHVybiB0KHdpbmRvdykub24oInJlc2l6ZS5kdHNiIixlLnV0aWwudGhyb3R0bGUoZnVuY3Rpb24oKXtldC5zLnRvcEdyb3VwLnRyaWdnZXIoImR0c2ItcmVkcmF3TG9naWMiKX0pKSx0aGlzLl9idWlsZENyaXRlcmlhKCksdGhpc31yZXR1cm4gaC5fZXNjYXBlSFRNTD1mdW5jdGlvbihvKXtyZXR1cm4gby50b1N0cmluZygpLnJlcGxhY2UoLyZsdDsvZywiPCIpLnJlcGxhY2UoLyZndDsvZywiPiIpLnJlcGxhY2UoLyZxdW90Oy9nLCciJykucmVwbGFjZSgvJmFtcDsvZywiJiIpfSxoLnByb3RvdHlwZS5kb1NlYXJjaD1mdW5jdGlvbigpe3RoaXMuYy5saXZlU2VhcmNoJiZ0aGlzLnMuZHQuZHJhdygpfSxoLnBhcnNlTnVtRm10PWZ1bmN0aW9uKG8pe3JldHVybitvLnJlcGxhY2UoLyg/IV4tKVteMC05Ll0vZywiIil9LGgucHJvdG90eXBlLnVwZGF0ZUFycm93cz1mdW5jdGlvbihvKXtvPT09dm9pZCAwJiYobz0hMSksdGhpcy5kb20uY29udGFpbmVyLmNoaWxkcmVuKCkuZGV0YWNoKCksdGhpcy5kb20uY29udGFpbmVyLmFwcGVuZCh0aGlzLmRvbS5kYXRhKS5hcHBlbmQodGhpcy5kb20uY29uZGl0aW9uKS5hcHBlbmQodGhpcy5kb20uaW5wdXRDb250KSx0aGlzLnNldExpc3RlbmVycygpLHRoaXMuZG9tLnZhbHVlWzBdIT09dm9pZCAwJiZ0KHRoaXMuZG9tLnZhbHVlWzBdKS50cmlnZ2VyKCJkdHNiLWluc2VydGVkIik7Zm9yKHZhciBmPTE7Zjx0aGlzLmRvbS52YWx1ZS5sZW5ndGg7ZisrKXRoaXMuZG9tLmlucHV0Q29udC5hcHBlbmQodGhpcy5kb20udmFsdWVbZl0pLHQodGhpcy5kb20udmFsdWVbZl0pLnRyaWdnZXIoImR0c2ItaW5zZXJ0ZWQiKTt0aGlzLnMuZGVwdGg+MSYmdGhpcy5kb20uYnV0dG9ucy5hcHBlbmQodGhpcy5kb20ubGVmdCksKHRoaXMuYy5kZXB0aExpbWl0PT09ITF8fHRoaXMucy5kZXB0aDx0aGlzLmMuZGVwdGhMaW1pdCkmJm8/dGhpcy5kb20uYnV0dG9ucy5hcHBlbmQodGhpcy5kb20ucmlnaHQpOnRoaXMuZG9tLnJpZ2h0LnJlbW92ZSgpLHRoaXMuZG9tLmJ1dHRvbnMuYXBwZW5kKHRoaXMuZG9tLmRlbGV0ZSksdGhpcy5kb20uY29udGFpbmVyLmFwcGVuZCh0aGlzLmRvbS5idXR0b25zKX0saC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuZG9tLmRhdGEub2ZmKCIuZHRzYiIpLHRoaXMuZG9tLmNvbmRpdGlvbi5vZmYoIi5kdHNiIiksdGhpcy5kb20uZGVsZXRlLm9mZigiLmR0c2IiKTtmb3IodmFyIG89MCxmPXRoaXMuZG9tLnZhbHVlO288Zi5sZW5ndGg7bysrKXt2YXIgQz1mW29dO0Mub2ZmKCIuZHRzYiIpfXRoaXMuZG9tLmNvbnRhaW5lci5yZW1vdmUoKX0saC5wcm90b3R5cGUuc2VhcmNoPWZ1bmN0aW9uKG8sZil7dmFyIEM9dGhpcy5zLmR0LnNldHRpbmdzKClbMF0sQj10aGlzLnMuY29uZGl0aW9uc1t0aGlzLnMuY29uZGl0aW9uXTtpZih0aGlzLnMuY29uZGl0aW9uIT09dm9pZCAwJiZCIT09dm9pZCAwKXt2YXIgdT1vW3RoaXMucy5kYXRhSWR4XTtpZih0aGlzLnMudHlwZS5pbmNsdWRlcygibnVtIikmJihDLm9MYW5ndWFnZS5zRGVjaW1hbCE9PSIifHxDLm9MYW5ndWFnZS5zVGhvdXNhbmRzIT09IiIpKXt2YXIgej1bb1t0aGlzLnMuZGF0YUlkeF1dO2lmKEMub0xhbmd1YWdlLnNEZWNpbWFsIT09IiImJih6PW9bdGhpcy5zLmRhdGFJZHhdLnNwbGl0KEMub0xhbmd1YWdlLnNEZWNpbWFsKSksQy5vTGFuZ3VhZ2Uuc1Rob3VzYW5kcyE9PSIiKWZvcih2YXIgcT0wO3E8ei5sZW5ndGg7cSsrKXpbcV09eltxXS5yZXBsYWNlKEMub0xhbmd1YWdlLnNUaG91c2FuZHMsIiwiKTt1PXouam9pbigiLiIpfWlmKHRoaXMuYy5vcnRob2dvbmFsLnNlYXJjaCE9PSJmaWx0ZXIiJiYodT1DLmZhc3REYXRhKGYsdGhpcy5zLmRhdGFJZHgsdHlwZW9mIHRoaXMuYy5vcnRob2dvbmFsPT0ic3RyaW5nIj90aGlzLmMub3J0aG9nb25hbDp0aGlzLmMub3J0aG9nb25hbC5zZWFyY2gpKSx0aGlzLnMudHlwZT09PSJhcnJheSIpe0FycmF5LmlzQXJyYXkodSl8fCh1PVt1XSksdS5zb3J0KCk7Zm9yKHZhciBldD0wLE89dTtldDxPLmxlbmd0aDtldCsrKXt2YXIgWj1PW2V0XTtaJiZ0eXBlb2YgWj09InN0cmluZyImJihaPVoucmVwbGFjZSgvW1xyXG5cdTIwMjhdL2csIiAiKSl9fWVsc2UgdSE9PW51bGwmJnR5cGVvZiB1PT0ic3RyaW5nIiYmKHU9dS5yZXBsYWNlKC9bXHJcblx1MjAyOF0vZywiICIpKTtyZXR1cm4gdGhpcy5zLnR5cGUuaW5jbHVkZXMoImh0bWwiKSYmdHlwZW9mIHU9PSJzdHJpbmciJiYodT11LnJlcGxhY2UoLyg8KFtePl0rKT4pL2lnLCIiKSksdT09PW51bGwmJih1PSIiKSxCLnNlYXJjaCh1LHRoaXMucy52YWx1ZSx0aGlzKX19LGgucHJvdG90eXBlLmdldERldGFpbHM9ZnVuY3Rpb24obyl7bz09PXZvaWQgMCYmKG89ITEpO3ZhciBmLEM9dGhpcy5zLmR0LnNldHRpbmdzKClbMF07aWYodGhpcy5zLnR5cGUhPT1udWxsJiZ0aGlzLnMudHlwZS5pbmNsdWRlcygibnVtIikmJihDLm9MYW5ndWFnZS5zRGVjaW1hbCE9PSIifHxDLm9MYW5ndWFnZS5zVGhvdXNhbmRzIT09IiIpKWZvcihmPTA7Zjx0aGlzLnMudmFsdWUubGVuZ3RoO2YrKyl7dmFyIEI9W3RoaXMucy52YWx1ZVtmXS50b1N0cmluZygpXTtpZihDLm9MYW5ndWFnZS5zRGVjaW1hbCE9PSIiJiYoQj10aGlzLnMudmFsdWVbZl0uc3BsaXQoQy5vTGFuZ3VhZ2Uuc0RlY2ltYWwpKSxDLm9MYW5ndWFnZS5zVGhvdXNhbmRzIT09IiIpZm9yKHZhciB1PTA7dTxCLmxlbmd0aDt1KyspQlt1XT1CW3VdLnJlcGxhY2UoQy5vTGFuZ3VhZ2Uuc1Rob3VzYW5kcywiLCIpO3RoaXMucy52YWx1ZVtmXT1CLmpvaW4oIi4iKX1lbHNlIGlmKHRoaXMucy50eXBlIT09bnVsbCYmbyl7aWYodGhpcy5zLnR5cGUuaW5jbHVkZXMoImRhdGUiKXx8dGhpcy5zLnR5cGUuaW5jbHVkZXMoInRpbWUiKSlmb3IoZj0wO2Y8dGhpcy5zLnZhbHVlLmxlbmd0aDtmKyspdGhpcy5zLnZhbHVlW2ZdLm1hdGNoKC9eXGR7NH0tKFswXVxkfDFbMC0yXSktKFswLTJdXGR8M1swMV0pJC9nKT09PW51bGwmJih0aGlzLnMudmFsdWVbZl09IiIpO2Vsc2UgaWYodGhpcy5zLnR5cGUuaW5jbHVkZXMoIm1vbWVudCIpKWZvcihmPTA7Zjx0aGlzLnMudmFsdWUubGVuZ3RoO2YrKyl0aGlzLnMudmFsdWVbZl0mJnRoaXMucy52YWx1ZVtmXS5sZW5ndGg+MCYmcigpKHRoaXMucy52YWx1ZVtmXSx0aGlzLnMuZGF0ZUZvcm1hdCwhMCkuaXNWYWxpZCgpJiYodGhpcy5zLnZhbHVlW2ZdPXIoKSh0aGlzLnMudmFsdWVbZl0sdGhpcy5zLmRhdGVGb3JtYXQpLmZvcm1hdCgiWVlZWS1NTS1ERCBISDptbTpzcyIpKTtlbHNlIGlmKHRoaXMucy50eXBlLmluY2x1ZGVzKCJsdXhvbiIpKWZvcihmPTA7Zjx0aGlzLnMudmFsdWUubGVuZ3RoO2YrKyl0aGlzLnMudmFsdWVbZl0mJnRoaXMucy52YWx1ZVtmXS5sZW5ndGg+MCYmbigpLkRhdGVUaW1lLmZyb21Gb3JtYXQodGhpcy5zLnZhbHVlW2ZdLHRoaXMucy5kYXRlRm9ybWF0KS5pbnZhbGlkPT09bnVsbCYmKHRoaXMucy52YWx1ZVtmXT1uKCkuRGF0ZVRpbWUuZnJvbUZvcm1hdCh0aGlzLnMudmFsdWVbZl0sdGhpcy5zLmRhdGVGb3JtYXQpLnRvRm9ybWF0KCJ5eXl5LU1NLWRkIEhIOm1tOnNzIikpfWlmKHRoaXMucy50eXBlLmluY2x1ZGVzKCJudW0iKSYmdGhpcy5zLmR0LnBhZ2UuaW5mbygpLnNlcnZlclNpZGUpZm9yKGY9MDtmPHRoaXMucy52YWx1ZS5sZW5ndGg7ZisrKXRoaXMucy52YWx1ZVtmXT10aGlzLnMudmFsdWVbZl0ucmVwbGFjZSgvW14wLTkuXC1dL2csIiIpO3JldHVybntjb25kaXRpb246dGhpcy5zLmNvbmRpdGlvbixkYXRhOnRoaXMucy5kYXRhLG9yaWdEYXRhOnRoaXMucy5vcmlnRGF0YSx0eXBlOnRoaXMucy50eXBlLHZhbHVlOnRoaXMucy52YWx1ZS5tYXAoZnVuY3Rpb24oeil7cmV0dXJuIHohPW51bGw/ei50b1N0cmluZygpOnp9KX19LGgucHJvdG90eXBlLmdldE5vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb20uY29udGFpbmVyfSxoLnByb3RvdHlwZS5wYXJzZU51bWJlcj1mdW5jdGlvbihvKXt2YXIgZj10aGlzLnMuZHQuaTE4bigiZGVjaW1hbCIpO3JldHVybiBmJiZmIT09Ii4iJiYobz1vLnJlcGxhY2UoL1wuL2csIiIpLnJlcGxhY2UoZiwiLiIpKSwrby5yZXBsYWNlKC8oPyFeLSlbXjAtOS5dL2csIiIpfSxoLnByb3RvdHlwZS5wb3B1bGF0ZT1mdW5jdGlvbigpe3RoaXMuX3BvcHVsYXRlRGF0YSgpLHRoaXMucy5kYXRhSWR4IT09LTEmJih0aGlzLl9wb3B1bGF0ZUNvbmRpdGlvbigpLHRoaXMucy5jb25kaXRpb24hPT12b2lkIDAmJnRoaXMuX3BvcHVsYXRlVmFsdWUoKSl9LGgucHJvdG90eXBlLnJlYnVpbGQ9ZnVuY3Rpb24obyl7dmFyIGY9ITEsQyxCO2lmKHRoaXMuX3BvcHVsYXRlRGF0YSgpLG8uZGF0YSE9PXZvaWQgMCl7dmFyIHU9dGhpcy5jbGFzc2VzLml0YWxpYyx6PXRoaXMuZG9tLmRhdGE7dGhpcy5kb20uZGF0YS5jaGlsZHJlbigib3B0aW9uIikuZWFjaChmdW5jdGlvbigpeyFmJiYodCh0aGlzKS50ZXh0KCk9PT1vLmRhdGF8fG8ub3JpZ0RhdGEmJnQodGhpcykucHJvcCgib3JpZ0RhdGEiKT09PW8ub3JpZ0RhdGEpPyh0KHRoaXMpLnByb3AoInNlbGVjdGVkIiwhMCksei5yZW1vdmVDbGFzcyh1KSxmPSEwLEM9cGFyc2VJbnQodCh0aGlzKS52YWwoKSwxMCkpOnQodGhpcykucmVtb3ZlUHJvcCgic2VsZWN0ZWQiKX0pfWlmKGYpe3RoaXMucy5kYXRhPW8uZGF0YSx0aGlzLnMub3JpZ0RhdGE9by5vcmlnRGF0YSx0aGlzLnMuZGF0YUlkeD1DLHRoaXMuYy5vcnRob2dvbmFsPXRoaXMuX2dldE9wdGlvbnMoKS5vcnRob2dvbmFsLHRoaXMuZG9tLmRhdGFUaXRsZS5yZW1vdmUoKSx0aGlzLl9wb3B1bGF0ZUNvbmRpdGlvbigpLHRoaXMuZG9tLmNvbmRpdGlvblRpdGxlLnJlbW92ZSgpO3ZhciBxPXZvaWQgMCxldD10aGlzLmRvbS5jb25kaXRpb24uY2hpbGRyZW4oIm9wdGlvbiIpO2ZvcihCPTA7QjxldC5sZW5ndGg7QisrKXt2YXIgTz10KGV0W0JdKTtvLmNvbmRpdGlvbiE9PXZvaWQgMCYmTy52YWwoKT09PW8uY29uZGl0aW9uJiZ0eXBlb2Ygby5jb25kaXRpb249PSJzdHJpbmciPyhPLnByb3AoInNlbGVjdGVkIiwhMCkscT1PLnZhbCgpKTpPLnJlbW92ZVByb3AoInNlbGVjdGVkIil9aWYodGhpcy5zLmNvbmRpdGlvbj1xLHRoaXMucy5jb25kaXRpb24hPT12b2lkIDApe2Zvcih0aGlzLmRvbS5jb25kaXRpb25UaXRsZS5yZW1vdmVQcm9wKCJzZWxlY3RlZCIpLHRoaXMuZG9tLmNvbmRpdGlvblRpdGxlLnJlbW92ZSgpLHRoaXMuZG9tLmNvbmRpdGlvbi5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMuaXRhbGljKSxCPTA7QjxldC5sZW5ndGg7QisrKXt2YXIgWj10KGV0W0JdKTtaLnZhbCgpIT09dGhpcy5zLmNvbmRpdGlvbiYmWi5yZW1vdmVQcm9wKCJzZWxlY3RlZCIpfXRoaXMuX3BvcHVsYXRlVmFsdWUobyl9ZWxzZSB0aGlzLmRvbS5jb25kaXRpb25UaXRsZS5wcmVwZW5kVG8odGhpcy5kb20uY29uZGl0aW9uKS5wcm9wKCJzZWxlY3RlZCIsITApfX0saC5wcm90b3R5cGUuc2V0TGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIG89dGhpczt0aGlzLmRvbS5kYXRhLnVuYmluZCgiY2hhbmdlIikub24oImNoYW5nZS5kdHNiIixmdW5jdGlvbigpe28uZG9tLmRhdGFUaXRsZS5yZW1vdmVQcm9wKCJzZWxlY3RlZCIpO2Zvcih2YXIgZj1vLmRvbS5kYXRhLmNoaWxkcmVuKCJvcHRpb24uIitvLmNsYXNzZXMub3B0aW9uKSxDPTA7QzxmLmxlbmd0aDtDKyspe3ZhciBCPXQoZltDXSk7Qi52YWwoKT09PW8uZG9tLmRhdGEudmFsKCk/KG8uZG9tLmRhdGEucmVtb3ZlQ2xhc3Moby5jbGFzc2VzLml0YWxpYyksQi5wcm9wKCJzZWxlY3RlZCIsITApLG8ucy5kYXRhSWR4PStCLnZhbCgpLG8ucy5kYXRhPUIudGV4dCgpLG8ucy5vcmlnRGF0YT1CLnByb3AoIm9yaWdEYXRhIiksby5jLm9ydGhvZ29uYWw9by5fZ2V0T3B0aW9ucygpLm9ydGhvZ29uYWwsby5fY2xlYXJDb25kaXRpb24oKSxvLl9jbGVhclZhbHVlKCksby5fcG9wdWxhdGVDb25kaXRpb24oKSxvLnMuZmlsbGVkJiYoby5zLmZpbGxlZD0hMSxvLmRvU2VhcmNoKCksby5zZXRMaXN0ZW5lcnMoKSksby5zLmR0LnN0YXRlLnNhdmUoKSk6Qi5yZW1vdmVQcm9wKCJzZWxlY3RlZCIpfX0pLHRoaXMuZG9tLmNvbmRpdGlvbi51bmJpbmQoImNoYW5nZSIpLm9uKCJjaGFuZ2UuZHRzYiIsZnVuY3Rpb24oKXtvLmRvbS5jb25kaXRpb25UaXRsZS5yZW1vdmVQcm9wKCJzZWxlY3RlZCIpO2Zvcih2YXIgZj1vLmRvbS5jb25kaXRpb24uY2hpbGRyZW4oIm9wdGlvbi4iK28uY2xhc3Nlcy5vcHRpb24pLEM9MDtDPGYubGVuZ3RoO0MrKyl7dmFyIEI9dChmW0NdKTtpZihCLnZhbCgpPT09by5kb20uY29uZGl0aW9uLnZhbCgpKXtvLmRvbS5jb25kaXRpb24ucmVtb3ZlQ2xhc3Moby5jbGFzc2VzLml0YWxpYyksQi5wcm9wKCJzZWxlY3RlZCIsITApO2Zvcih2YXIgdT1CLnZhbCgpLHo9MCxxPU9iamVjdC5rZXlzKG8ucy5jb25kaXRpb25zKTt6PHEubGVuZ3RoO3orKyl7dmFyIGV0PXFbel07aWYoZXQ9PT11KXtvLnMuY29uZGl0aW9uPXU7YnJlYWt9fW8uX2NsZWFyVmFsdWUoKSxvLl9wb3B1bGF0ZVZhbHVlKCk7Zm9yKHZhciBPPTAsWj1vLmRvbS52YWx1ZTtPPFoubGVuZ3RoO08rKyl7dmFyIGc9WltPXTtvLnMuZmlsbGVkJiZnIT09dm9pZCAwJiZvLmRvbS5pbnB1dENvbnQuaGFzKGdbMF0pLmxlbmd0aCE9PTAmJihvLnMuZmlsbGVkPSExLG8uZG9TZWFyY2goKSxvLnNldExpc3RlbmVycygpKX0oby5kb20udmFsdWUubGVuZ3RoPT09MHx8by5kb20udmFsdWUubGVuZ3RoPT09MSYmby5kb20udmFsdWVbMF09PT12b2lkIDApJiZvLmRvU2VhcmNoKCl9ZWxzZSBCLnJlbW92ZVByb3AoInNlbGVjdGVkIil9fSl9LGgucHJvdG90eXBlLnNldHVwQnV0dG9ucz1mdW5jdGlvbigpe2lmKHdpbmRvdy5pbm5lcldpZHRoPjU1MCl7dGhpcy5kb20uY29udGFpbmVyLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy52ZXJ0aWNhbCksdGhpcy5kb20uYnV0dG9ucy5jc3MoImxlZnQiLG51bGwpLHRoaXMuZG9tLmJ1dHRvbnMuY3NzKCJ0b3AiLG51bGwpO3JldHVybn10aGlzLmRvbS5jb250YWluZXIuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnZlcnRpY2FsKSx0aGlzLmRvbS5idXR0b25zLmNzcygibGVmdCIsdGhpcy5kb20uZGF0YS5pbm5lcldpZHRoKCkpLHRoaXMuZG9tLmJ1dHRvbnMuY3NzKCJ0b3AiLHRoaXMuZG9tLmRhdGEucG9zaXRpb24oKS50b3ApfSxoLnByb3RvdHlwZS5fYnVpbGRDcml0ZXJpYT1mdW5jdGlvbigpe3RoaXMuZG9tLmRhdGEuYXBwZW5kKHRoaXMuZG9tLmRhdGFUaXRsZSksdGhpcy5kb20uY29uZGl0aW9uLmFwcGVuZCh0aGlzLmRvbS5jb25kaXRpb25UaXRsZSksdGhpcy5kb20uY29udGFpbmVyLmFwcGVuZCh0aGlzLmRvbS5kYXRhKS5hcHBlbmQodGhpcy5kb20uY29uZGl0aW9uKSx0aGlzLmRvbS5pbnB1dENvbnQuZW1wdHkoKTtmb3IodmFyIG89MCxmPXRoaXMuZG9tLnZhbHVlO288Zi5sZW5ndGg7bysrKXt2YXIgQz1mW29dO0MuYXBwZW5kKHRoaXMuZG9tLnZhbHVlVGl0bGUpLHRoaXMuZG9tLmlucHV0Q29udC5hcHBlbmQoQyl9dGhpcy5kb20uYnV0dG9ucy5hcHBlbmQodGhpcy5kb20uZGVsZXRlKS5hcHBlbmQodGhpcy5kb20ucmlnaHQpLHRoaXMuZG9tLmNvbnRhaW5lci5hcHBlbmQodGhpcy5kb20uaW5wdXRDb250KS5hcHBlbmQodGhpcy5kb20uYnV0dG9ucyksdGhpcy5zZXRMaXN0ZW5lcnMoKX0saC5wcm90b3R5cGUuX2NsZWFyQ29uZGl0aW9uPWZ1bmN0aW9uKCl7dGhpcy5kb20uY29uZGl0aW9uLmVtcHR5KCksdGhpcy5kb20uY29uZGl0aW9uVGl0bGUucHJvcCgic2VsZWN0ZWQiLCEwKS5hdHRyKCJkaXNhYmxlZCIsInRydWUiKSx0aGlzLmRvbS5jb25kaXRpb24ucHJlcGVuZCh0aGlzLmRvbS5jb25kaXRpb25UaXRsZSkucHJvcCgic2VsZWN0ZWRJbmRleCIsMCksdGhpcy5zLmNvbmRpdGlvbnM9e30sdGhpcy5zLmNvbmRpdGlvbj12b2lkIDB9LGgucHJvdG90eXBlLl9jbGVhclZhbHVlPWZ1bmN0aW9uKCl7dmFyIG87aWYodGhpcy5zLmNvbmRpdGlvbiE9PXZvaWQgMCl7aWYodGhpcy5kb20udmFsdWUubGVuZ3RoPjAmJnRoaXMuZG9tLnZhbHVlWzBdIT09dm9pZCAwKWZvcih2YXIgZj0wLEM9dGhpcy5kb20udmFsdWU7ZjxDLmxlbmd0aDtmKyspbz1DW2ZdLG8hPT12b2lkIDAmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtvLnJlbW92ZSgpfSw1MCk7aWYodGhpcy5kb20udmFsdWU9W10uY29uY2F0KHRoaXMucy5jb25kaXRpb25zW3RoaXMucy5jb25kaXRpb25dLmluaXQodGhpcyxoLnVwZGF0ZUxpc3RlbmVyKSksdGhpcy5kb20udmFsdWUubGVuZ3RoPjAmJnRoaXMuZG9tLnZhbHVlWzBdIT09dm9pZCAwKXt0aGlzLmRvbS5pbnB1dENvbnQuZW1wdHkoKS5hcHBlbmQodGhpcy5kb20udmFsdWVbMF0pLmluc2VydEFmdGVyKHRoaXMuZG9tLmNvbmRpdGlvbiksdCh0aGlzLmRvbS52YWx1ZVswXSkudHJpZ2dlcigiZHRzYi1pbnNlcnRlZCIpO2Zvcih2YXIgQj0xO0I8dGhpcy5kb20udmFsdWUubGVuZ3RoO0IrKyl0aGlzLmRvbS5pbnB1dENvbnQuYXBwZW5kKHRoaXMuZG9tLnZhbHVlW0JdKSx0KHRoaXMuZG9tLnZhbHVlW0JdKS50cmlnZ2VyKCJkdHNiLWluc2VydGVkIil9fWVsc2V7Zm9yKHZhciB1PTAsej10aGlzLmRvbS52YWx1ZTt1PHoubGVuZ3RoO3UrKylvPXpbdV0sbyE9PXZvaWQgMCYmc2V0VGltZW91dChmdW5jdGlvbigpe28ucmVtb3ZlKCl9LDUwKTt0aGlzLmRvbS52YWx1ZVRpdGxlLnByb3AoInNlbGVjdGVkIiwhMCksdGhpcy5kb20uZGVmYXVsdFZhbHVlLmFwcGVuZCh0aGlzLmRvbS52YWx1ZVRpdGxlKS5pbnNlcnRBZnRlcih0aGlzLmRvbS5jb25kaXRpb24pfXRoaXMucy52YWx1ZT1bXSx0aGlzLmRvbS52YWx1ZT1bdCgiPHNlbGVjdCBkaXNhYmxlZC8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnZhbHVlKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuZHJvcERvd24pLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5pdGFsaWMpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5zZWxlY3QpLmFwcGVuZCh0aGlzLmRvbS52YWx1ZVRpdGxlLmNsb25lKCkpXX0saC5wcm90b3R5cGUuX2dldE9wdGlvbnM9ZnVuY3Rpb24oKXt2YXIgbz10aGlzLnMuZHQ7cmV0dXJuIHQuZXh0ZW5kKCEwLHt9LGguZGVmYXVsdHMsby5zZXR0aW5ncygpWzBdLmFvQ29sdW1uc1t0aGlzLnMuZGF0YUlkeF0uc2VhcmNoQnVpbGRlcil9LGgucHJvdG90eXBlLl9wb3B1bGF0ZUNvbmRpdGlvbj1mdW5jdGlvbigpe3ZhciBvPVtdLGY9T2JqZWN0LmtleXModGhpcy5zLmNvbmRpdGlvbnMpLmxlbmd0aCxDPXRoaXMucy5kdC5zZXR0aW5ncygpWzBdLmFvQ29sdW1ucyxCPSt0aGlzLmRvbS5kYXRhLmNoaWxkcmVuKCJvcHRpb246c2VsZWN0ZWQiKS52YWwoKSx1LHo7aWYoZj09PTApe2lmKHRoaXMucy50eXBlPXRoaXMucy5kdC5jb2x1bW4oQikudHlwZSgpLEMhPT12b2lkIDApe3ZhciBxPUNbQl07cS5zZWFyY2hCdWlsZGVyVHlwZSE9PXZvaWQgMCYmcS5zZWFyY2hCdWlsZGVyVHlwZSE9PW51bGw/dGhpcy5zLnR5cGU9cS5zZWFyY2hCdWlsZGVyVHlwZToodGhpcy5zLnR5cGU9PT12b2lkIDB8fHRoaXMucy50eXBlPT09bnVsbCkmJih0aGlzLnMudHlwZT1xLnNUeXBlKX0odGhpcy5zLnR5cGU9PT1udWxsfHx0aGlzLnMudHlwZT09PXZvaWQgMCkmJih0LmZuLmRhdGFUYWJsZS5leHQub0FwaSYmdC5mbi5kYXRhVGFibGUuZXh0Lm9BcGkuX2ZuQ29sdW1uVHlwZXModGhpcy5zLmR0LnNldHRpbmdzKClbMF0pLHRoaXMucy50eXBlPXRoaXMucy5kdC5jb2x1bW4oQikudHlwZSgpKSx0aGlzLmRvbS5jb25kaXRpb24ucmVtb3ZlQXR0cigiZGlzYWJsZWQiKS5lbXB0eSgpLmFwcGVuZCh0aGlzLmRvbS5jb25kaXRpb25UaXRsZSkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLml0YWxpYyksdGhpcy5kb20uY29uZGl0aW9uVGl0bGUucHJvcCgic2VsZWN0ZWQiLCEwKTt2YXIgZXQ9dGhpcy5zLmR0LnNldHRpbmdzKClbMF0ub0xhbmd1YWdlLnNEZWNpbWFsO2V0IT09IiImJnRoaXMucy50eXBlLmluZGV4T2YoZXQpPT09dGhpcy5zLnR5cGUubGVuZ3RoLWV0Lmxlbmd0aCYmKHRoaXMucy50eXBlLmluY2x1ZGVzKCJudW0tZm10Iik/dGhpcy5zLnR5cGU9dGhpcy5zLnR5cGUucmVwbGFjZShldCwiIik6dGhpcy5zLnR5cGUuaW5jbHVkZXMoIm51bSIpJiYodGhpcy5zLnR5cGU9dGhpcy5zLnR5cGUucmVwbGFjZShldCwiIikpKTt2YXIgTz10aGlzLmMuY29uZGl0aW9uc1t0aGlzLnMudHlwZV0hPT12b2lkIDA/dGhpcy5jLmNvbmRpdGlvbnNbdGhpcy5zLnR5cGVdOnRoaXMucy50eXBlLmluY2x1ZGVzKCJtb21lbnQiKT90aGlzLmMuY29uZGl0aW9ucy5tb21lbnQ6dGhpcy5zLnR5cGUuaW5jbHVkZXMoImx1eG9uIik/dGhpcy5jLmNvbmRpdGlvbnMubHV4b246dGhpcy5jLmNvbmRpdGlvbnMuc3RyaW5nO3RoaXMucy50eXBlLmluY2x1ZGVzKCJtb21lbnQiKT90aGlzLnMuZGF0ZUZvcm1hdD10aGlzLnMudHlwZS5yZXBsYWNlKC9tb21lbnQtL2csIiIpOnRoaXMucy50eXBlLmluY2x1ZGVzKCJsdXhvbiIpJiYodGhpcy5zLmRhdGVGb3JtYXQ9dGhpcy5zLnR5cGUucmVwbGFjZSgvbHV4b24tL2csIiIpKTtmb3IodmFyIFo9MCxnPU9iamVjdC5rZXlzKE8pO1o8Zy5sZW5ndGg7WisrKWlmKHU9Z1taXSxPW3VdIT09bnVsbCl7aWYodGhpcy5zLmR0LnBhZ2UuaW5mbygpLnNlcnZlclNpZGUmJk9bdV0uaW5pdD09PWguaW5pdFNlbGVjdCl7dmFyIF89Q1tCXTt0aGlzLnMuc2VydmVyRGF0YSYmdGhpcy5zLnNlcnZlckRhdGFbXy5kYXRhXT8oT1t1XS5pbml0PWguaW5pdFNlbGVjdFNTUCxPW3VdLmlucHV0VmFsdWU9aC5pbnB1dFZhbHVlU2VsZWN0LE9bdV0uaXNJbnB1dFZhbGlkPWguaXNJbnB1dFZhbGlkU2VsZWN0KTooT1t1XS5pbml0PWguaW5pdElucHV0LE9bdV0uaW5wdXRWYWx1ZT1oLmlucHV0VmFsdWVJbnB1dCxPW3VdLmlzSW5wdXRWYWxpZD1oLmlzSW5wdXRWYWxpZElucHV0KX10aGlzLnMuY29uZGl0aW9uc1t1XT1PW3VdLHo9T1t1XS5jb25kaXRpb25OYW1lLHR5cGVvZiB6PT0iZnVuY3Rpb24iJiYoej16KHRoaXMucy5kdCx0aGlzLmMuaTE4bikpLG8ucHVzaCh0KCI8b3B0aW9uPiIse3RleHQ6eix2YWx1ZTp1fSkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLm9wdGlvbikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLm5vdEl0YWxpYykpfX1lbHNlIGlmKGY+MCl7dGhpcy5kb20uY29uZGl0aW9uLmVtcHR5KCkucmVtb3ZlQXR0cigiZGlzYWJsZWQiKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuaXRhbGljKTtmb3IodmFyIFM9MCxOPU9iamVjdC5rZXlzKHRoaXMucy5jb25kaXRpb25zKTtTPE4ubGVuZ3RoO1MrKyl7dT1OW1NdO3ZhciBSPXRoaXMucy5jb25kaXRpb25zW3VdLmNvbmRpdGlvbk5hbWU7dHlwZW9mIFI9PSJmdW5jdGlvbiImJihSPVIodGhpcy5zLmR0LHRoaXMuYy5pMThuKSk7dmFyIEw9dCgiPG9wdGlvbj4iLHt0ZXh0OlIsdmFsdWU6dX0pLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5vcHRpb24pLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5ub3RJdGFsaWMpO3RoaXMucy5jb25kaXRpb24hPT12b2lkIDAmJnRoaXMucy5jb25kaXRpb249PT1SJiYoTC5wcm9wKCJzZWxlY3RlZCIsITApLHRoaXMuZG9tLmNvbmRpdGlvbi5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMuaXRhbGljKSksby5wdXNoKEwpfX1lbHNle3RoaXMuZG9tLmNvbmRpdGlvbi5hdHRyKCJkaXNhYmxlZCIsInRydWUiKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuaXRhbGljKTtyZXR1cm59Zm9yKHZhciBYPTAsaj1vO1g8ai5sZW5ndGg7WCsrKXt2YXIgRz1qW1hdO3RoaXMuZG9tLmNvbmRpdGlvbi5hcHBlbmQoRyl9aWYoQ1tCXS5zZWFyY2hCdWlsZGVyJiZDW0JdLnNlYXJjaEJ1aWxkZXIuZGVmYXVsdENvbmRpdGlvbil7dmFyIGF0PUNbQl0uc2VhcmNoQnVpbGRlci5kZWZhdWx0Q29uZGl0aW9uO2lmKHR5cGVvZiBhdD09Im51bWJlciIpdGhpcy5kb20uY29uZGl0aW9uLnByb3AoInNlbGVjdGVkSW5kZXgiLGF0KSx0aGlzLmRvbS5jb25kaXRpb24udHJpZ2dlcigiY2hhbmdlIik7ZWxzZSBpZih0eXBlb2YgYXQ9PSJzdHJpbmciKWZvcih2YXIgSj0wO0o8by5sZW5ndGg7SisrKWZvcih2YXIgdHQ9MCx5dD1PYmplY3Qua2V5cyh0aGlzLnMuY29uZGl0aW9ucyk7dHQ8eXQubGVuZ3RoO3R0Kyspe3ZhciBUdD15dFt0dF07aWYoej10aGlzLnMuY29uZGl0aW9uc1tUdF0uY29uZGl0aW9uTmFtZSwodHlwZW9mIHo9PSJzdHJpbmciP3o6eih0aGlzLnMuZHQsdGhpcy5jLmkxOG4pKT09PW9bSl0udGV4dCgpJiZUdD09PWF0KXt0aGlzLmRvbS5jb25kaXRpb24ucHJvcCgic2VsZWN0ZWRJbmRleCIsdGhpcy5kb20uY29uZGl0aW9uLmNoaWxkcmVuKCkudG9BcnJheSgpLmluZGV4T2Yob1tKXVswXSkpLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy5pdGFsaWMpLHRoaXMuZG9tLmNvbmRpdGlvbi50cmlnZ2VyKCJjaGFuZ2UiKSxKPW8ubGVuZ3RoO2JyZWFrfX19ZWxzZSB0aGlzLmRvbS5jb25kaXRpb24ucHJvcCgic2VsZWN0ZWRJbmRleCIsMCl9LGgucHJvdG90eXBlLl9wb3B1bGF0ZURhdGE9ZnVuY3Rpb24oKXt2YXIgbz10aGlzLnMuZHQuc2V0dGluZ3MoKVswXS5hb0NvbHVtbnMsZj10aGlzLnMuZHQuY29sdW1ucyh0aGlzLmMuY29sdW1ucykuaW5kZXhlcygpLnRvQXJyYXkoKTt0aGlzLmRvbS5kYXRhLmVtcHR5KCkuYXBwZW5kKHRoaXMuZG9tLmRhdGFUaXRsZSk7Zm9yKHZhciBDPTA7QzxvLmxlbmd0aDtDKyspaWYodGhpcy5jLmNvbHVtbnM9PT0hMHx8Zi5pbmNsdWRlcyhDKSl7dmFyIEI9b1tDXSx1PXtpbmRleDpDLG9yaWdEYXRhOkIuZGF0YSx0ZXh0OihCLnNlYXJjaEJ1aWxkZXJUaXRsZXx8Qi5zVGl0bGUpLnJlcGxhY2UoLyg8KFtePl0rKT4pL2lnLCIiKX07dGhpcy5kb20uZGF0YS5hcHBlbmQodCgiPG9wdGlvbj4iLHt0ZXh0OnUudGV4dCx2YWx1ZTp1LmluZGV4fSkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLm9wdGlvbikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLm5vdEl0YWxpYykucHJvcCgib3JpZ0RhdGEiLEIuZGF0YSkucHJvcCgic2VsZWN0ZWQiLHRoaXMucy5kYXRhSWR4PT09dS5pbmRleCkpLHRoaXMucy5kYXRhSWR4PT09dS5pbmRleCYmdGhpcy5kb20uZGF0YVRpdGxlLnJlbW92ZVByb3AoInNlbGVjdGVkIil9fSxoLnByb3RvdHlwZS5fcG9wdWxhdGVWYWx1ZT1mdW5jdGlvbihvKXt2YXIgZj10aGlzLEM9dGhpcy5zLmZpbGxlZCxCO3RoaXMucy5maWxsZWQ9ITEsc2V0VGltZW91dChmdW5jdGlvbigpe2YuZG9tLmRlZmF1bHRWYWx1ZS5yZW1vdmUoKX0sNTApO2Zvcih2YXIgdT1mdW5jdGlvbihaKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7WiE9PXZvaWQgMCYmWi5yZW1vdmUoKX0sNTApfSx6PTAscT10aGlzLmRvbS52YWx1ZTt6PHEubGVuZ3RoO3orKyl7dmFyIGV0PXFbel07dShldCl9dmFyIE89dGhpcy5kb20uaW5wdXRDb250LmNoaWxkcmVuKCk7aWYoTy5sZW5ndGg+MSlmb3IoQj0wO0I8Ty5sZW5ndGg7QisrKXQoT1tCXSkucmVtb3ZlKCk7Zm9yKG8hPT12b2lkIDAmJnRoaXMucy5kdC5jb2x1bW5zKCkuZXZlcnkoZnVuY3Rpb24oWil7Zi5zLmR0LnNldHRpbmdzKClbMF0uYW9Db2x1bW5zW1pdLnNUaXRsZT09PW8uZGF0YSYmKGYucy5kYXRhSWR4PVopfSksdGhpcy5kb20udmFsdWU9W10uY29uY2F0KHRoaXMucy5jb25kaXRpb25zW3RoaXMucy5jb25kaXRpb25dLmluaXQodGhpcyxoLnVwZGF0ZUxpc3RlbmVyLG8hPT12b2lkIDA/by52YWx1ZTp2b2lkIDApKSxvIT09dm9pZCAwJiZvLnZhbHVlIT09dm9pZCAwJiYodGhpcy5zLnZhbHVlPW8udmFsdWUpLHRoaXMuZG9tLmlucHV0Q29udC5lbXB0eSgpLHRoaXMuZG9tLnZhbHVlWzBdIT09dm9pZCAwJiZ0KHRoaXMuZG9tLnZhbHVlWzBdKS5hcHBlbmRUbyh0aGlzLmRvbS5pbnB1dENvbnQpLnRyaWdnZXIoImR0c2ItaW5zZXJ0ZWQiKSxCPTE7Qjx0aGlzLmRvbS52YWx1ZS5sZW5ndGg7QisrKXQodGhpcy5kb20udmFsdWVbQl0pLmluc2VydEFmdGVyKHRoaXMuZG9tLnZhbHVlW0ItMV0pLnRyaWdnZXIoImR0c2ItaW5zZXJ0ZWQiKTt0aGlzLnMuZmlsbGVkPXRoaXMucy5jb25kaXRpb25zW3RoaXMucy5jb25kaXRpb25dLmlzSW5wdXRWYWxpZCh0aGlzLmRvbS52YWx1ZSx0aGlzKSx0aGlzLnNldExpc3RlbmVycygpLCF0aGlzLnMucHJldmVudFJlZHJhdyYmQyE9PXRoaXMucy5maWxsZWQmJih0aGlzLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZXx8dGhpcy5kb1NlYXJjaCgpLHRoaXMuc2V0TGlzdGVuZXJzKCkpfSxoLnByb3RvdHlwZS5fdGhyb3R0bGU9ZnVuY3Rpb24obyxmKXtmPT09dm9pZCAwJiYoZj0yMDApO3ZhciBDPW51bGwsQj1udWxsLHU9dGhpcztyZXR1cm4gZj09PW51bGwmJihmPTIwMCksZnVuY3Rpb24oKXtmb3IodmFyIHo9W10scT0wO3E8YXJndW1lbnRzLmxlbmd0aDtxKyspeltxXT1hcmd1bWVudHNbcV07dmFyIGV0PStuZXcgRGF0ZTtDIT09bnVsbCYmZXQ8QytmP2NsZWFyVGltZW91dChCKTpDPWV0LEI9c2V0VGltZW91dChmdW5jdGlvbigpe0M9bnVsbCxvLmFwcGx5KHUseil9LGYpfX0saC52ZXJzaW9uPSIxLjEuMCIsaC5jbGFzc2VzPXtidXR0b246ImR0c2ItYnV0dG9uIixidXR0b25Db250YWluZXI6ImR0c2ItYnV0dG9uQ29udGFpbmVyIixjb25kaXRpb246ImR0c2ItY29uZGl0aW9uIixjb250YWluZXI6ImR0c2ItY3JpdGVyaWEiLGRhdGE6ImR0c2ItZGF0YSIsZGVsZXRlOiJkdHNiLWRlbGV0ZSIsZHJvcERvd246ImR0c2ItZHJvcERvd24iLGdyZXlzY2FsZToiZHRzYi1ncmV5c2NhbGUiLGlucHV0OiJkdHNiLWlucHV0IixpbnB1dENvbnQ6ImR0c2ItaW5wdXRDb250IixpdGFsaWM6ImR0c2ItaXRhbGljIixqb2luZXI6ImR0c2Itam9pbmVyIixsZWZ0OiJkdHNiLWxlZnQiLG5vdEl0YWxpYzoiZHRzYi1ub3RJdGFsaWMiLG9wdGlvbjoiZHRzYi1vcHRpb24iLHJpZ2h0OiJkdHNiLXJpZ2h0IixzZWxlY3Q6ImR0c2Itc2VsZWN0Iix2YWx1ZToiZHRzYi12YWx1ZSIsdmVydGljYWw6ImR0c2ItdmVydGljYWwifSxoLmluaXRTZWxlY3Q9ZnVuY3Rpb24obyxmLEMsQil7Qz09PXZvaWQgMCYmKEM9bnVsbCksQj09PXZvaWQgMCYmKEI9ITEpO3ZhciB1PW8uZG9tLmRhdGEuY2hpbGRyZW4oIm9wdGlvbjpzZWxlY3RlZCIpLnZhbCgpLHo9by5zLmR0LnJvd3MoKS5pbmRleGVzKCkudG9BcnJheSgpLHE9by5zLmR0LnNldHRpbmdzKClbMF0uZmFzdERhdGE7by5kb20udmFsdWVUaXRsZS5wcm9wKCJzZWxlY3RlZCIsITApO3ZhciBldD10KCI8c2VsZWN0Lz4iKS5hZGRDbGFzcyhoLmNsYXNzZXMudmFsdWUpLmFkZENsYXNzKGguY2xhc3Nlcy5kcm9wRG93bikuYWRkQ2xhc3MoaC5jbGFzc2VzLml0YWxpYykuYWRkQ2xhc3MoaC5jbGFzc2VzLnNlbGVjdCkuYXBwZW5kKG8uZG9tLnZhbHVlVGl0bGUpLm9uKCJjaGFuZ2UuZHRzYiIsZnVuY3Rpb24oKXt0KHRoaXMpLnJlbW92ZUNsYXNzKGguY2xhc3Nlcy5pdGFsaWMpLGYobyx0aGlzKX0pO28uYy5ncmV5c2NhbGUmJmV0LmFkZENsYXNzKGguY2xhc3Nlcy5ncmV5c2NhbGUpO2Zvcih2YXIgTz1bXSxaPVtdLGc9MCxfPXo7ZzxfLmxlbmd0aDtnKyspe3ZhciBTPV9bZ10sTj1xKFMsdSx0eXBlb2Ygby5jLm9ydGhvZ29uYWw9PSJzdHJpbmciP28uYy5vcnRob2dvbmFsOm8uYy5vcnRob2dvbmFsLnNlYXJjaCksUj17ZmlsdGVyOnR5cGVvZiBOPT0ic3RyaW5nIj9OLnJlcGxhY2UoL1tcclxuXHUyMDI4XS9nLCIgIik6TixpbmRleDpTLHRleHQ6cShTLHUsdHlwZW9mIG8uYy5vcnRob2dvbmFsPT0ic3RyaW5nIj9vLmMub3J0aG9nb25hbDpvLmMub3J0aG9nb25hbC5kaXNwbGF5KX07by5zLnR5cGU9PT0iYXJyYXkiJiYoUi5maWx0ZXI9QXJyYXkuaXNBcnJheShSLmZpbHRlcik/Ui5maWx0ZXI6W1IuZmlsdGVyXSxSLnRleHQ9QXJyYXkuaXNBcnJheShSLnRleHQpP1IudGV4dDpbUi50ZXh0XSk7dmFyIEw9ZnVuY3Rpb24oSix0dCl7by5zLnR5cGUuaW5jbHVkZXMoImh0bWwiKSYmSiE9PW51bGwmJnR5cGVvZiBKPT0ic3RyaW5nIiYmSi5yZXBsYWNlKC8oPChbXj5dKyk+KS9pZywiIik7dmFyIHl0PXQoIjxvcHRpb24+Iix7dHlwZTpBcnJheS5pc0FycmF5KEopPyJBcnJheSI6IlN0cmluZyIsdmFsdWU6Sn0pLmRhdGEoInNidiIsSikuYWRkQ2xhc3Moby5jbGFzc2VzLm9wdGlvbikuYWRkQ2xhc3Moby5jbGFzc2VzLm5vdEl0YWxpYykuaHRtbCh0eXBlb2YgdHQ9PSJzdHJpbmciP3R0LnJlcGxhY2UoLyg8KFtePl0rKT4pL2lnLCIiKTp0dCksVHQ9eXQudmFsKCk7Ty5pbmRleE9mKFR0KT09PS0xJiYoTy5wdXNoKFR0KSxaLnB1c2goeXQpLEMhPT1udWxsJiZBcnJheS5pc0FycmF5KENbMF0pJiYoQ1swXT1DWzBdLnNvcnQoKS5qb2luKCIsIikpLEMhPT1udWxsJiZ5dC52YWwoKT09PUNbMF0mJih5dC5wcm9wKCJzZWxlY3RlZCIsITApLGV0LnJlbW92ZUNsYXNzKGguY2xhc3Nlcy5pdGFsaWMpLG8uZG9tLnZhbHVlVGl0bGUucmVtb3ZlUHJvcCgic2VsZWN0ZWQiKSkpfTtpZihCKWZvcih2YXIgWD0wO1g8Ui5maWx0ZXIubGVuZ3RoO1grKylMKFIuZmlsdGVyW1hdLFIudGV4dFtYXSk7ZWxzZSBMKFIuZmlsdGVyLEFycmF5LmlzQXJyYXkoUi50ZXh0KT9SLnRleHQuam9pbigiLCAiKTpSLnRleHQpfVouc29ydChmdW5jdGlvbihKLHR0KXtpZihvLnMudHlwZT09PSJhcnJheSJ8fG8ucy50eXBlPT09InN0cmluZyJ8fG8ucy50eXBlPT09Imh0bWwiKXJldHVybiBKLnZhbCgpPHR0LnZhbCgpPy0xOkoudmFsKCk+dHQudmFsKCk/MTowO2lmKG8ucy50eXBlPT09Im51bSJ8fG8ucy50eXBlPT09Imh0bWwtbnVtIilyZXR1cm4rSi52YWwoKS5yZXBsYWNlKC8oPChbXj5dKyk+KS9pZywiIik8K3R0LnZhbCgpLnJlcGxhY2UoLyg8KFtePl0rKT4pL2lnLCIiKT8tMTorSi52YWwoKS5yZXBsYWNlKC8oPChbXj5dKyk+KS9pZywiIik+K3R0LnZhbCgpLnJlcGxhY2UoLyg8KFtePl0rKT4pL2lnLCIiKT8xOjA7aWYoby5zLnR5cGU9PT0ibnVtLWZtdCJ8fG8ucy50eXBlPT09Imh0bWwtbnVtLWZtdCIpcmV0dXJuK0oudmFsKCkucmVwbGFjZSgvW14wLTkuXS9nLCIiKTwrdHQudmFsKCkucmVwbGFjZSgvW14wLTkuXS9nLCIiKT8tMTorSi52YWwoKS5yZXBsYWNlKC9bXjAtOS5dL2csIiIpPit0dC52YWwoKS5yZXBsYWNlKC9bXjAtOS5dL2csIiIpPzE6MH0pO2Zvcih2YXIgaj0wLEc9WjtqPEcubGVuZ3RoO2orKyl7dmFyIGF0PUdbal07ZXQuYXBwZW5kKGF0KX1yZXR1cm4gZXR9LGguaW5pdFNlbGVjdFNTUD1mdW5jdGlvbihvLGYsQyl7Qz09PXZvaWQgMCYmKEM9bnVsbCksby5kb20udmFsdWVUaXRsZS5wcm9wKCJzZWxlY3RlZCIsITApO3ZhciBCPXQoIjxzZWxlY3QvPiIpLmFkZENsYXNzKGguY2xhc3Nlcy52YWx1ZSkuYWRkQ2xhc3MoaC5jbGFzc2VzLmRyb3BEb3duKS5hZGRDbGFzcyhoLmNsYXNzZXMuaXRhbGljKS5hZGRDbGFzcyhoLmNsYXNzZXMuc2VsZWN0KS5hcHBlbmQoby5kb20udmFsdWVUaXRsZSkub24oImNoYW5nZS5kdHNiIixmdW5jdGlvbigpe3QodGhpcykucmVtb3ZlQ2xhc3MoaC5jbGFzc2VzLml0YWxpYyksZihvLHRoaXMpfSk7by5jLmdyZXlzY2FsZSYmQi5hZGRDbGFzcyhoLmNsYXNzZXMuZ3JleXNjYWxlKTtmb3IodmFyIHU9W10sej0wLHE9by5zLnNlcnZlckRhdGFbby5zLm9yaWdEYXRhXTt6PHEubGVuZ3RoO3orKyl7dmFyIGV0PXFbel0sTz1ldC52YWx1ZSxaPWV0LmxhYmVsLGc9ZnVuY3Rpb24oUixMKXtvLnMudHlwZS5pbmNsdWRlcygiaHRtbCIpJiZSIT09bnVsbCYmdHlwZW9mIFI9PSJzdHJpbmciJiZSLnJlcGxhY2UoLyg8KFtePl0rKT4pL2lnLCIiKTt2YXIgWD10KCI8b3B0aW9uPiIse3R5cGU6QXJyYXkuaXNBcnJheShSKT8iQXJyYXkiOiJTdHJpbmciLHZhbHVlOlJ9KS5kYXRhKCJzYnYiLFIpLmFkZENsYXNzKG8uY2xhc3Nlcy5vcHRpb24pLmFkZENsYXNzKG8uY2xhc3Nlcy5ub3RJdGFsaWMpLmh0bWwodHlwZW9mIEw9PSJzdHJpbmciP0wucmVwbGFjZSgvKDwoW14+XSspPikvaWcsIiIpOkwpO3UucHVzaChYKSxDIT09bnVsbCYmWC52YWwoKT09PUNbMF0mJihYLnByb3AoInNlbGVjdGVkIiwhMCksQi5yZW1vdmVDbGFzcyhoLmNsYXNzZXMuaXRhbGljKSxvLmRvbS52YWx1ZVRpdGxlLnJlbW92ZVByb3AoInNlbGVjdGVkIikpfTtnKE8sWil9Zm9yKHZhciBfPTAsUz11O188Uy5sZW5ndGg7XysrKXt2YXIgTj1TW19dO0IuYXBwZW5kKE4pfXJldHVybiBCfSxoLmluaXRTZWxlY3RBcnJheT1mdW5jdGlvbihvLGYsQyl7cmV0dXJuIEM9PT12b2lkIDAmJihDPW51bGwpLGguaW5pdFNlbGVjdChvLGYsQywhMCl9LGguaW5pdElucHV0PWZ1bmN0aW9uKG8sZixDKXtDPT09dm9pZCAwJiYoQz1udWxsKTt2YXIgQj1vLnMuZHQuc2V0dGluZ3MoKVswXS5zZWFyY2hEZWxheSx1PXQoIjxpbnB1dC8+IikuYWRkQ2xhc3MoaC5jbGFzc2VzLnZhbHVlKS5hZGRDbGFzcyhoLmNsYXNzZXMuaW5wdXQpLm9uKCJpbnB1dC5kdHNiIGtleXByZXNzLmR0c2IiLG8uX3Rocm90dGxlKGZ1bmN0aW9uKHope3ZhciBxPXoua2V5Q29kZXx8ei53aGljaDtyZXR1cm4gZihvLHRoaXMscSl9LEI9PT1udWxsPzEwMDpCKSk7cmV0dXJuIG8uYy5ncmV5c2NhbGUmJnUuYWRkQ2xhc3MoaC5jbGFzc2VzLmdyZXlzY2FsZSksQyE9PW51bGwmJnUudmFsKENbMF0pLG8ucy5kdC5vbmUoImRyYXcuZHRzYiIsZnVuY3Rpb24oKXtvLnMudG9wR3JvdXAudHJpZ2dlcigiZHRzYi1yZWRyYXdMb2dpYyIpfSksdX0saC5pbml0MklucHV0PWZ1bmN0aW9uKG8sZixDKXtDPT09dm9pZCAwJiYoQz1udWxsKTt2YXIgQj1vLnMuZHQuc2V0dGluZ3MoKVswXS5zZWFyY2hEZWxheSx1PVt0KCI8aW5wdXQvPiIpLmFkZENsYXNzKGguY2xhc3Nlcy52YWx1ZSkuYWRkQ2xhc3MoaC5jbGFzc2VzLmlucHV0KS5vbigiaW5wdXQuZHRzYiBrZXlwcmVzcy5kdHNiIixvLl90aHJvdHRsZShmdW5jdGlvbih6KXt2YXIgcT16LmtleUNvZGV8fHoud2hpY2g7cmV0dXJuIGYobyx0aGlzLHEpfSxCPT09bnVsbD8xMDA6QikpLHQoIjxzcGFuPiIpLmFkZENsYXNzKG8uY2xhc3Nlcy5qb2luZXIpLmh0bWwoby5zLmR0LmkxOG4oInNlYXJjaEJ1aWxkZXIudmFsdWVKb2luZXIiLG8uYy5pMThuLnZhbHVlSm9pbmVyKSksdCgiPGlucHV0Lz4iKS5hZGRDbGFzcyhoLmNsYXNzZXMudmFsdWUpLmFkZENsYXNzKGguY2xhc3Nlcy5pbnB1dCkub24oImlucHV0LmR0c2Iga2V5cHJlc3MuZHRzYiIsby5fdGhyb3R0bGUoZnVuY3Rpb24oeil7dmFyIHE9ei5rZXlDb2RlfHx6LndoaWNoO3JldHVybiBmKG8sdGhpcyxxKX0sQj09PW51bGw/MTAwOkIpKV07cmV0dXJuIG8uYy5ncmV5c2NhbGUmJih1WzBdLmFkZENsYXNzKGguY2xhc3Nlcy5ncmV5c2NhbGUpLHVbMl0uYWRkQ2xhc3MoaC5jbGFzc2VzLmdyZXlzY2FsZSkpLEMhPT1udWxsJiYodVswXS52YWwoQ1swXSksdVsyXS52YWwoQ1sxXSkpLG8ucy5kdC5vbmUoImRyYXcuZHRzYiIsZnVuY3Rpb24oKXtvLnMudG9wR3JvdXAudHJpZ2dlcigiZHRzYi1yZWRyYXdMb2dpYyIpfSksdX0saC5pbml0RGF0ZT1mdW5jdGlvbihvLGYsQyl7Qz09PXZvaWQgMCYmKEM9bnVsbCk7dmFyIEI9by5zLmR0LnNldHRpbmdzKClbMF0uc2VhcmNoRGVsYXksdT1vLnMuZHQuaTE4bigiZGF0ZXRpbWUiLHt9KSx6PXQoIjxpbnB1dC8+IikuYWRkQ2xhc3MoaC5jbGFzc2VzLnZhbHVlKS5hZGRDbGFzcyhoLmNsYXNzZXMuaW5wdXQpLmR0RGF0ZVRpbWUoe2F0dGFjaFRvOiJpbnB1dCIsZm9ybWF0Om8ucy5kYXRlRm9ybWF0P28ucy5kYXRlRm9ybWF0OnZvaWQgMCxpMThuOnV9KS5vbigiY2hhbmdlLmR0c2IiLG8uX3Rocm90dGxlKGZ1bmN0aW9uKCl7cmV0dXJuIGYobyx0aGlzKX0sQj09PW51bGw/MTAwOkIpKS5vbigiaW5wdXQuZHRzYiBrZXlwcmVzcy5kdHNiIixmdW5jdGlvbihxKXtvLl90aHJvdHRsZShmdW5jdGlvbigpe3ZhciBldD1xLmtleUNvZGV8fHEud2hpY2g7cmV0dXJuIGYobyx0aGlzLGV0KX0sQj09PW51bGw/MTAwOkIpfSk7cmV0dXJuIG8uYy5ncmV5c2NhbGUmJnouYWRkQ2xhc3MoaC5jbGFzc2VzLmdyZXlzY2FsZSksQyE9PW51bGwmJnoudmFsKENbMF0pLG8ucy5kdC5vbmUoImRyYXcuZHRzYiIsZnVuY3Rpb24oKXtvLnMudG9wR3JvdXAudHJpZ2dlcigiZHRzYi1yZWRyYXdMb2dpYyIpfSksen0saC5pbml0Tm9WYWx1ZT1mdW5jdGlvbihvKXtyZXR1cm4gby5zLmR0Lm9uZSgiZHJhdy5kdHNiIixmdW5jdGlvbigpe28ucy50b3BHcm91cC50cmlnZ2VyKCJkdHNiLXJlZHJhd0xvZ2ljIil9KSxbXX0saC5pbml0MkRhdGU9ZnVuY3Rpb24obyxmLEMpe3ZhciBCPXRoaXM7Qz09PXZvaWQgMCYmKEM9bnVsbCk7dmFyIHU9by5zLmR0LnNldHRpbmdzKClbMF0uc2VhcmNoRGVsYXksej1vLnMuZHQuaTE4bigiZGF0ZXRpbWUiLHt9KSxxPVt0KCI8aW5wdXQvPiIpLmFkZENsYXNzKGguY2xhc3Nlcy52YWx1ZSkuYWRkQ2xhc3MoaC5jbGFzc2VzLmlucHV0KS5kdERhdGVUaW1lKHthdHRhY2hUbzoiaW5wdXQiLGZvcm1hdDpvLnMuZGF0ZUZvcm1hdD9vLnMuZGF0ZUZvcm1hdDp2b2lkIDAsaTE4bjp6fSkub24oImNoYW5nZS5kdHNiIix1IT09bnVsbD9zdC51dGlsLnRocm90dGxlKGZ1bmN0aW9uKCl7cmV0dXJuIGYobyx0aGlzKX0sdSk6ZnVuY3Rpb24oKXtmKG8sQil9KS5vbigiaW5wdXQuZHRzYiBrZXlwcmVzcy5kdHNiIixmdW5jdGlvbihldCl7c3QudXRpbC50aHJvdHRsZShmdW5jdGlvbigpe3ZhciBPPWV0LmtleUNvZGV8fGV0LndoaWNoO3JldHVybiBmKG8sdGhpcyxPKX0sdT09PW51bGw/MDp1KX0pLHQoIjxzcGFuPiIpLmFkZENsYXNzKG8uY2xhc3Nlcy5qb2luZXIpLmh0bWwoby5zLmR0LmkxOG4oInNlYXJjaEJ1aWxkZXIudmFsdWVKb2luZXIiLG8uYy5pMThuLnZhbHVlSm9pbmVyKSksdCgiPGlucHV0Lz4iKS5hZGRDbGFzcyhoLmNsYXNzZXMudmFsdWUpLmFkZENsYXNzKGguY2xhc3Nlcy5pbnB1dCkuZHREYXRlVGltZSh7YXR0YWNoVG86ImlucHV0Iixmb3JtYXQ6by5zLmRhdGVGb3JtYXQ/by5zLmRhdGVGb3JtYXQ6dm9pZCAwLGkxOG46en0pLm9uKCJjaGFuZ2UuZHRzYiIsdSE9PW51bGw/c3QudXRpbC50aHJvdHRsZShmdW5jdGlvbigpe3JldHVybiBmKG8sdGhpcyl9LHUpOmZ1bmN0aW9uKCl7ZihvLEIpfSkub24oImlucHV0LmR0c2Iga2V5cHJlc3MuZHRzYiIsIW8uYy5lbnRlclNlYXJjaCYmIShvLnMuZHQuc2V0dGluZ3MoKVswXS5vSW5pdC5zZWFyY2ghPT12b2lkIDAmJm8ucy5kdC5zZXR0aW5ncygpWzBdLm9Jbml0LnNlYXJjaC5yZXR1cm4pJiZ1IT09bnVsbD9zdC51dGlsLnRocm90dGxlKGZ1bmN0aW9uKCl7cmV0dXJuIGYobyx0aGlzKX0sdSk6ZnVuY3Rpb24oZXQpe3ZhciBPPWV0LmtleUNvZGV8fGV0LndoaWNoO2YobyxCLE8pfSldO3JldHVybiBvLmMuZ3JleXNjYWxlJiYocVswXS5hZGRDbGFzcyhoLmNsYXNzZXMuZ3JleXNjYWxlKSxxWzJdLmFkZENsYXNzKGguY2xhc3Nlcy5ncmV5c2NhbGUpKSxDIT09bnVsbCYmQy5sZW5ndGg+MCYmKHFbMF0udmFsKENbMF0pLHFbMl0udmFsKENbMV0pKSxvLnMuZHQub25lKCJkcmF3LmR0c2IiLGZ1bmN0aW9uKCl7by5zLnRvcEdyb3VwLnRyaWdnZXIoImR0c2ItcmVkcmF3TG9naWMiKX0pLHF9LGguaXNJbnB1dFZhbGlkU2VsZWN0PWZ1bmN0aW9uKG8pe2Zvcih2YXIgZj0hMCxDPTAsQj1vO0M8Qi5sZW5ndGg7QysrKXt2YXIgdT1CW0NdO3UuY2hpbGRyZW4oIm9wdGlvbjpzZWxlY3RlZCIpLmxlbmd0aD09PXUuY2hpbGRyZW4oIm9wdGlvbiIpLmxlbmd0aC11LmNoaWxkcmVuKCJvcHRpb24uIitoLmNsYXNzZXMubm90SXRhbGljKS5sZW5ndGgmJnUuY2hpbGRyZW4oIm9wdGlvbjpzZWxlY3RlZCIpLmxlbmd0aD09PTEmJnUuY2hpbGRyZW4oIm9wdGlvbjpzZWxlY3RlZCIpWzBdPT09dS5jaGlsZHJlbigib3B0aW9uIilbMF0mJihmPSExKX1yZXR1cm4gZn0saC5pc0lucHV0VmFsaWRJbnB1dD1mdW5jdGlvbihvKXtmb3IodmFyIGY9ITAsQz0wLEI9bztDPEIubGVuZ3RoO0MrKyl7dmFyIHU9QltDXTt1LmlzKCJpbnB1dCIpJiZ1LnZhbCgpLmxlbmd0aD09PTAmJihmPSExKX1yZXR1cm4gZn0saC5pbnB1dFZhbHVlU2VsZWN0PWZ1bmN0aW9uKG8pe2Zvcih2YXIgZj1bXSxDPTAsQj1vO0M8Qi5sZW5ndGg7QysrKXt2YXIgdT1CW0NdO3UuaXMoInNlbGVjdCIpJiZmLnB1c2goaC5fZXNjYXBlSFRNTCh1LmNoaWxkcmVuKCJvcHRpb246c2VsZWN0ZWQiKS5kYXRhKCJzYnYiKSkpfXJldHVybiBmfSxoLmlucHV0VmFsdWVJbnB1dD1mdW5jdGlvbihvKXtmb3IodmFyIGY9W10sQz0wLEI9bztDPEIubGVuZ3RoO0MrKyl7dmFyIHU9QltDXTt1LmlzKCJpbnB1dCIpJiZmLnB1c2goaC5fZXNjYXBlSFRNTCh1LnZhbCgpKSl9cmV0dXJuIGZ9LGgudXBkYXRlTGlzdGVuZXI9ZnVuY3Rpb24obyxmLEMpe3ZhciBCPW8ucy5jb25kaXRpb25zW28ucy5jb25kaXRpb25dLHU7aWYoby5zLmZpbGxlZD1CLmlzSW5wdXRWYWxpZChvLmRvbS52YWx1ZSxvKSxvLnMudmFsdWU9Qi5pbnB1dFZhbHVlKG8uZG9tLnZhbHVlLG8pLCFvLnMuZmlsbGVkKXsoIW8uYy5lbnRlclNlYXJjaCYmIShvLnMuZHQuc2V0dGluZ3MoKVswXS5vSW5pdC5zZWFyY2ghPT12b2lkIDAmJm8ucy5kdC5zZXR0aW5ncygpWzBdLm9Jbml0LnNlYXJjaC5yZXR1cm4pfHxDPT09MTMpJiZvLmRvU2VhcmNoKCk7cmV0dXJufWZvcihBcnJheS5pc0FycmF5KG8ucy52YWx1ZSl8fChvLnMudmFsdWU9W28ucy52YWx1ZV0pLHU9MDt1PG8ucy52YWx1ZS5sZW5ndGg7dSsrKUFycmF5LmlzQXJyYXkoby5zLnZhbHVlW3VdKSYmby5zLnZhbHVlW3VdLnNvcnQoKTt2YXIgej1udWxsLHE9bnVsbDtmb3IodT0wO3U8by5kb20udmFsdWUubGVuZ3RoO3UrKylmPT09by5kb20udmFsdWVbdV1bMF0mJih6PXUsZi5zZWxlY3Rpb25TdGFydCE9PXZvaWQgMCYmKHE9Zi5zZWxlY3Rpb25TdGFydCkpOyghby5jLmVudGVyU2VhcmNoJiYhKG8ucy5kdC5zZXR0aW5ncygpWzBdLm9Jbml0LnNlYXJjaCE9PXZvaWQgMCYmby5zLmR0LnNldHRpbmdzKClbMF0ub0luaXQuc2VhcmNoLnJldHVybil8fEM9PT0xMykmJm8uZG9TZWFyY2goKSx6IT09bnVsbCYmKG8uZG9tLnZhbHVlW3pdLnJlbW92ZUNsYXNzKG8uY2xhc3Nlcy5pdGFsaWMpLG8uZG9tLnZhbHVlW3pdLmZvY3VzKCkscSE9PW51bGwmJm8uZG9tLnZhbHVlW3pdWzBdLnNldFNlbGVjdGlvblJhbmdlKHEscSkpfSxoLmRhdGVDb25kaXRpb25zPXsiPSI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obyxmKXtyZXR1cm4gby5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuZGF0ZS5lcXVhbHMiLGYuY29uZGl0aW9ucy5kYXRlLmVxdWFscyl9LGluaXQ6aC5pbml0RGF0ZSxpbnB1dFZhbHVlOmguaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpoLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihvLGYpe3JldHVybiBvPW8ucmVwbGFjZSgvKFwvfC18LCkvZywiLSIpLG89PT1mWzBdfX0sIiE9Ijp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5kYXRlLm5vdCIsZi5jb25kaXRpb25zLmRhdGUubm90KX0saW5pdDpoLmluaXREYXRlLGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmguaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG89by5yZXBsYWNlKC8oXC98LXwsKS9nLCItIiksbyE9PWZbMF19fSwiPCI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obyxmKXtyZXR1cm4gby5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuZGF0ZS5iZWZvcmUiLGYuY29uZGl0aW9ucy5kYXRlLmJlZm9yZSl9LGluaXQ6aC5pbml0RGF0ZSxpbnB1dFZhbHVlOmguaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpoLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihvLGYpe3JldHVybiBvPW8ucmVwbGFjZSgvKFwvfC18LCkvZywiLSIpLG88ZlswXX19LCI+Ijp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5kYXRlLmFmdGVyIixmLmNvbmRpdGlvbnMuZGF0ZS5hZnRlcil9LGluaXQ6aC5pbml0RGF0ZSxpbnB1dFZhbHVlOmguaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpoLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihvLGYpe3JldHVybiBvPW8ucmVwbGFjZSgvKFwvfC18LCkvZywiLSIpLG8+ZlswXX19LGJldHdlZW46e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obyxmKXtyZXR1cm4gby5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuZGF0ZS5iZXR3ZWVuIixmLmNvbmRpdGlvbnMuZGF0ZS5iZXR3ZWVuKX0saW5pdDpoLmluaXQyRGF0ZSxpbnB1dFZhbHVlOmguaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpoLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihvLGYpe3JldHVybiBvPW8ucmVwbGFjZSgvKFwvfC18LCkvZywiLSIpLGZbMF08ZlsxXT9mWzBdPD1vJiZvPD1mWzFdOmZbMV08PW8mJm88PWZbMF19fSwiIWJldHdlZW4iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmRhdGUubm90QmV0d2VlbiIsZi5jb25kaXRpb25zLmRhdGUubm90QmV0d2Vlbil9LGluaXQ6aC5pbml0MkRhdGUsaW5wdXRWYWx1ZTpoLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6aC5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obyxmKXtyZXR1cm4gbz1vLnJlcGxhY2UoLyhcL3wtfCwpL2csIi0iKSxmWzBdPGZbMV0/IShmWzBdPD1vJiZvPD1mWzFdKTohKGZbMV08PW8mJm88PWZbMF0pfX0sbnVsbDp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5kYXRlLmVtcHR5IixmLmNvbmRpdGlvbnMuZGF0ZS5lbXB0eSl9LGluaXQ6aC5pbml0Tm9WYWx1ZSxpbnB1dFZhbHVlOmZ1bmN0aW9uKCl7fSxpc0lucHV0VmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sc2VhcmNoOmZ1bmN0aW9uKG8pe3JldHVybiBvPT1udWxsfHxvLmxlbmd0aD09PTB9fSwiIW51bGwiOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmRhdGUubm90RW1wdHkiLGYuY29uZGl0aW9ucy5kYXRlLm5vdEVtcHR5KX0saW5pdDpoLmluaXROb1ZhbHVlLGlucHV0VmFsdWU6ZnVuY3Rpb24oKXt9LGlzSW5wdXRWYWxpZDpmdW5jdGlvbigpe3JldHVybiEwfSxzZWFyY2g6ZnVuY3Rpb24obyl7cmV0dXJuIShvPT1udWxsfHxvLmxlbmd0aD09PTApfX19LGgubW9tZW50RGF0ZUNvbmRpdGlvbnM9eyI9Ijp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5kYXRlLmVxdWFscyIsZi5jb25kaXRpb25zLmRhdGUuZXF1YWxzKX0saW5pdDpoLmluaXREYXRlLGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmguaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKG8sZixDKXtyZXR1cm4gcigpKG8sQy5zLmRhdGVGb3JtYXQpLnZhbHVlT2YoKT09PXIoKShmWzBdLEMucy5kYXRlRm9ybWF0KS52YWx1ZU9mKCl9fSwiIT0iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmRhdGUubm90IixmLmNvbmRpdGlvbnMuZGF0ZS5ub3QpfSxpbml0OmguaW5pdERhdGUsaW5wdXRWYWx1ZTpoLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6aC5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obyxmLEMpe3JldHVybiByKCkobyxDLnMuZGF0ZUZvcm1hdCkudmFsdWVPZigpIT09cigpKGZbMF0sQy5zLmRhdGVGb3JtYXQpLnZhbHVlT2YoKX19LCI8Ijp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5kYXRlLmJlZm9yZSIsZi5jb25kaXRpb25zLmRhdGUuYmVmb3JlKX0saW5pdDpoLmluaXREYXRlLGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmguaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKG8sZixDKXtyZXR1cm4gcigpKG8sQy5zLmRhdGVGb3JtYXQpLnZhbHVlT2YoKTxyKCkoZlswXSxDLnMuZGF0ZUZvcm1hdCkudmFsdWVPZigpfX0sIj4iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmRhdGUuYWZ0ZXIiLGYuY29uZGl0aW9ucy5kYXRlLmFmdGVyKX0saW5pdDpoLmluaXREYXRlLGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmguaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKG8sZixDKXtyZXR1cm4gcigpKG8sQy5zLmRhdGVGb3JtYXQpLnZhbHVlT2YoKT5yKCkoZlswXSxDLnMuZGF0ZUZvcm1hdCkudmFsdWVPZigpfX0sYmV0d2Vlbjp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5kYXRlLmJldHdlZW4iLGYuY29uZGl0aW9ucy5kYXRlLmJldHdlZW4pfSxpbml0OmguaW5pdDJEYXRlLGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmguaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKG8sZixDKXt2YXIgQj1yKCkobyxDLnMuZGF0ZUZvcm1hdCkudmFsdWVPZigpLHU9cigpKGZbMF0sQy5zLmRhdGVGb3JtYXQpLnZhbHVlT2YoKSx6PXIoKShmWzFdLEMucy5kYXRlRm9ybWF0KS52YWx1ZU9mKCk7cmV0dXJuIHU8ej91PD1CJiZCPD16Ono8PUImJkI8PXV9fSwiIWJldHdlZW4iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmRhdGUubm90QmV0d2VlbiIsZi5jb25kaXRpb25zLmRhdGUubm90QmV0d2Vlbil9LGluaXQ6aC5pbml0MkRhdGUsaW5wdXRWYWx1ZTpoLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6aC5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obyxmLEMpe3ZhciBCPXIoKShvLEMucy5kYXRlRm9ybWF0KS52YWx1ZU9mKCksdT1yKCkoZlswXSxDLnMuZGF0ZUZvcm1hdCkudmFsdWVPZigpLHo9cigpKGZbMV0sQy5zLmRhdGVGb3JtYXQpLnZhbHVlT2YoKTtyZXR1cm4gdTx6PyEoK3U8PStCJiYrQjw9K3opOiEoK3o8PStCJiYrQjw9K3UpfX0sbnVsbDp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5kYXRlLmVtcHR5IixmLmNvbmRpdGlvbnMuZGF0ZS5lbXB0eSl9LGluaXQ6aC5pbml0Tm9WYWx1ZSxpbnB1dFZhbHVlOmZ1bmN0aW9uKCl7fSxpc0lucHV0VmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sc2VhcmNoOmZ1bmN0aW9uKG8pe3JldHVybiBvPT1udWxsfHxvLmxlbmd0aD09PTB9fSwiIW51bGwiOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmRhdGUubm90RW1wdHkiLGYuY29uZGl0aW9ucy5kYXRlLm5vdEVtcHR5KX0saW5pdDpoLmluaXROb1ZhbHVlLGlucHV0VmFsdWU6ZnVuY3Rpb24oKXt9LGlzSW5wdXRWYWxpZDpmdW5jdGlvbigpe3JldHVybiEwfSxzZWFyY2g6ZnVuY3Rpb24obyl7cmV0dXJuIShvPT1udWxsfHxvLmxlbmd0aD09PTApfX19LGgubHV4b25EYXRlQ29uZGl0aW9ucz17Ij0iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmRhdGUuZXF1YWxzIixmLmNvbmRpdGlvbnMuZGF0ZS5lcXVhbHMpfSxpbml0OmguaW5pdERhdGUsaW5wdXRWYWx1ZTpoLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6aC5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obyxmLEMpe3JldHVybiBuKCkuRGF0ZVRpbWUuZnJvbUZvcm1hdChvLEMucy5kYXRlRm9ybWF0KS50cz09PW4oKS5EYXRlVGltZS5mcm9tRm9ybWF0KGZbMF0sQy5zLmRhdGVGb3JtYXQpLnRzfX0sIiE9Ijp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5kYXRlLm5vdCIsZi5jb25kaXRpb25zLmRhdGUubm90KX0saW5pdDpoLmluaXREYXRlLGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmguaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKG8sZixDKXtyZXR1cm4gbigpLkRhdGVUaW1lLmZyb21Gb3JtYXQobyxDLnMuZGF0ZUZvcm1hdCkudHMhPT1uKCkuRGF0ZVRpbWUuZnJvbUZvcm1hdChmWzBdLEMucy5kYXRlRm9ybWF0KS50c319LCI8Ijp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5kYXRlLmJlZm9yZSIsZi5jb25kaXRpb25zLmRhdGUuYmVmb3JlKX0saW5pdDpoLmluaXREYXRlLGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmguaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKG8sZixDKXtyZXR1cm4gbigpLkRhdGVUaW1lLmZyb21Gb3JtYXQobyxDLnMuZGF0ZUZvcm1hdCkudHM8bigpLkRhdGVUaW1lLmZyb21Gb3JtYXQoZlswXSxDLnMuZGF0ZUZvcm1hdCkudHN9fSwiPiI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obyxmKXtyZXR1cm4gby5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuZGF0ZS5hZnRlciIsZi5jb25kaXRpb25zLmRhdGUuYWZ0ZXIpfSxpbml0OmguaW5pdERhdGUsaW5wdXRWYWx1ZTpoLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6aC5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obyxmLEMpe3JldHVybiBuKCkuRGF0ZVRpbWUuZnJvbUZvcm1hdChvLEMucy5kYXRlRm9ybWF0KS50cz5uKCkuRGF0ZVRpbWUuZnJvbUZvcm1hdChmWzBdLEMucy5kYXRlRm9ybWF0KS50c319LGJldHdlZW46e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obyxmKXtyZXR1cm4gby5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuZGF0ZS5iZXR3ZWVuIixmLmNvbmRpdGlvbnMuZGF0ZS5iZXR3ZWVuKX0saW5pdDpoLmluaXQyRGF0ZSxpbnB1dFZhbHVlOmguaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpoLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihvLGYsQyl7dmFyIEI9bigpLkRhdGVUaW1lLmZyb21Gb3JtYXQobyxDLnMuZGF0ZUZvcm1hdCkudHMsdT1uKCkuRGF0ZVRpbWUuZnJvbUZvcm1hdChmWzBdLEMucy5kYXRlRm9ybWF0KS50cyx6PW4oKS5EYXRlVGltZS5mcm9tRm9ybWF0KGZbMV0sQy5zLmRhdGVGb3JtYXQpLnRzO3JldHVybiB1PHo/dTw9QiYmQjw9ejp6PD1CJiZCPD11fX0sIiFiZXR3ZWVuIjp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5kYXRlLm5vdEJldHdlZW4iLGYuY29uZGl0aW9ucy5kYXRlLm5vdEJldHdlZW4pfSxpbml0OmguaW5pdDJEYXRlLGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmguaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKG8sZixDKXt2YXIgQj1uKCkuRGF0ZVRpbWUuZnJvbUZvcm1hdChvLEMucy5kYXRlRm9ybWF0KS50cyx1PW4oKS5EYXRlVGltZS5mcm9tRm9ybWF0KGZbMF0sQy5zLmRhdGVGb3JtYXQpLnRzLHo9bigpLkRhdGVUaW1lLmZyb21Gb3JtYXQoZlsxXSxDLnMuZGF0ZUZvcm1hdCkudHM7cmV0dXJuIHU8ej8hKCt1PD0rQiYmK0I8PSt6KTohKCt6PD0rQiYmK0I8PSt1KX19LG51bGw6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obyxmKXtyZXR1cm4gby5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuZGF0ZS5lbXB0eSIsZi5jb25kaXRpb25zLmRhdGUuZW1wdHkpfSxpbml0OmguaW5pdE5vVmFsdWUsaW5wdXRWYWx1ZTpmdW5jdGlvbigpe30saXNJbnB1dFZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuITB9LHNlYXJjaDpmdW5jdGlvbihvKXtyZXR1cm4gbz09bnVsbHx8by5sZW5ndGg9PT0wfX0sIiFudWxsIjp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5kYXRlLm5vdEVtcHR5IixmLmNvbmRpdGlvbnMuZGF0ZS5ub3RFbXB0eSl9LGluaXQ6aC5pbml0Tm9WYWx1ZSxpbnB1dFZhbHVlOmZ1bmN0aW9uKCl7fSxpc0lucHV0VmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sc2VhcmNoOmZ1bmN0aW9uKG8pe3JldHVybiEobz09bnVsbHx8by5sZW5ndGg9PT0wKX19fSxoLm51bUNvbmRpdGlvbnM9eyI9Ijp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5udW1iZXIuZXF1YWxzIixmLmNvbmRpdGlvbnMubnVtYmVyLmVxdWFscyl9LGluaXQ6aC5pbml0U2VsZWN0LGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlU2VsZWN0LGlzSW5wdXRWYWxpZDpoLmlzSW5wdXRWYWxpZFNlbGVjdCxzZWFyY2g6ZnVuY3Rpb24obyxmKXtyZXR1cm4rbz09K2ZbMF19fSwiIT0iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLm51bWJlci5ub3QiLGYuY29uZGl0aW9ucy5udW1iZXIubm90KX0saW5pdDpoLmluaXRTZWxlY3QsaW5wdXRWYWx1ZTpoLmlucHV0VmFsdWVTZWxlY3QsaXNJbnB1dFZhbGlkOmguaXNJbnB1dFZhbGlkU2VsZWN0LHNlYXJjaDpmdW5jdGlvbihvLGYpe3JldHVybitvIT0rZlswXX19LCI8Ijp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5udW1iZXIubHQiLGYuY29uZGl0aW9ucy5udW1iZXIubHQpfSxpbml0OmguaW5pdElucHV0LGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmguaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKG8sZil7cmV0dXJuK288K2ZbMF19fSwiPD0iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLm51bWJlci5sdGUiLGYuY29uZGl0aW9ucy5udW1iZXIubHRlKX0saW5pdDpoLmluaXRJbnB1dCxpbnB1dFZhbHVlOmguaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpoLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihvLGYpe3JldHVybitvPD0rZlswXX19LCI+PSI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obyxmKXtyZXR1cm4gby5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMubnVtYmVyLmd0ZSIsZi5jb25kaXRpb25zLm51bWJlci5ndGUpfSxpbml0OmguaW5pdElucHV0LGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmguaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKG8sZil7cmV0dXJuK28+PStmWzBdfX0sIj4iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLm51bWJlci5ndCIsZi5jb25kaXRpb25zLm51bWJlci5ndCl9LGluaXQ6aC5pbml0SW5wdXQsaW5wdXRWYWx1ZTpoLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6aC5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obyxmKXtyZXR1cm4rbz4rZlswXX19LGJldHdlZW46e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obyxmKXtyZXR1cm4gby5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMubnVtYmVyLmJldHdlZW4iLGYuY29uZGl0aW9ucy5udW1iZXIuYmV0d2Vlbil9LGluaXQ6aC5pbml0MklucHV0LGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmguaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKG8sZil7cmV0dXJuK2ZbMF08K2ZbMV0/K2ZbMF08PStvJiYrbzw9K2ZbMV06K2ZbMV08PStvJiYrbzw9K2ZbMF19fSwiIWJldHdlZW4iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLm51bWJlci5ub3RCZXR3ZWVuIixmLmNvbmRpdGlvbnMubnVtYmVyLm5vdEJldHdlZW4pfSxpbml0OmguaW5pdDJJbnB1dCxpbnB1dFZhbHVlOmguaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpoLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihvLGYpe3JldHVybitmWzBdPCtmWzFdPyEoK2ZbMF08PStvJiYrbzw9K2ZbMV0pOiEoK2ZbMV08PStvJiYrbzw9K2ZbMF0pfX0sbnVsbDp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5udW1iZXIuZW1wdHkiLGYuY29uZGl0aW9ucy5udW1iZXIuZW1wdHkpfSxpbml0OmguaW5pdE5vVmFsdWUsaW5wdXRWYWx1ZTpmdW5jdGlvbigpe30saXNJbnB1dFZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuITB9LHNlYXJjaDpmdW5jdGlvbihvKXtyZXR1cm4gbz09bnVsbHx8by5sZW5ndGg9PT0wfX0sIiFudWxsIjp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5udW1iZXIubm90RW1wdHkiLGYuY29uZGl0aW9ucy5udW1iZXIubm90RW1wdHkpfSxpbml0OmguaW5pdE5vVmFsdWUsaW5wdXRWYWx1ZTpmdW5jdGlvbigpe30saXNJbnB1dFZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuITB9LHNlYXJjaDpmdW5jdGlvbihvKXtyZXR1cm4hKG89PW51bGx8fG8ubGVuZ3RoPT09MCl9fX0saC5udW1GbXRDb25kaXRpb25zPXsiPSI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obyxmKXtyZXR1cm4gby5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMubnVtYmVyLmVxdWFscyIsZi5jb25kaXRpb25zLm51bWJlci5lcXVhbHMpfSxpbml0OmguaW5pdFNlbGVjdCxpbnB1dFZhbHVlOmguaW5wdXRWYWx1ZVNlbGVjdCxpc0lucHV0VmFsaWQ6aC5pc0lucHV0VmFsaWRTZWxlY3Qsc2VhcmNoOmZ1bmN0aW9uKG8sZixDKXtyZXR1cm4gQy5wYXJzZU51bWJlcihvKT09PUMucGFyc2VOdW1iZXIoZlswXSl9fSwiIT0iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLm51bWJlci5ub3QiLGYuY29uZGl0aW9ucy5udW1iZXIubm90KX0saW5pdDpoLmluaXRTZWxlY3QsaW5wdXRWYWx1ZTpoLmlucHV0VmFsdWVTZWxlY3QsaXNJbnB1dFZhbGlkOmguaXNJbnB1dFZhbGlkU2VsZWN0LHNlYXJjaDpmdW5jdGlvbihvLGYsQyl7cmV0dXJuIEMucGFyc2VOdW1iZXIobykhPT1DLnBhcnNlTnVtYmVyKGZbMF0pfX0sIjwiOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLm51bWJlci5sdCIsZi5jb25kaXRpb25zLm51bWJlci5sdCl9LGluaXQ6aC5pbml0SW5wdXQsaW5wdXRWYWx1ZTpoLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6aC5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obyxmLEMpe3JldHVybiBDLnBhcnNlTnVtYmVyKG8pPEMucGFyc2VOdW1iZXIoZlswXSl9fSwiPD0iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLm51bWJlci5sdGUiLGYuY29uZGl0aW9ucy5udW1iZXIubHRlKX0saW5pdDpoLmluaXRJbnB1dCxpbnB1dFZhbHVlOmguaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpoLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihvLGYsQyl7cmV0dXJuIEMucGFyc2VOdW1iZXIobyk8PUMucGFyc2VOdW1iZXIoZlswXSl9fSwiPj0iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLm51bWJlci5ndGUiLGYuY29uZGl0aW9ucy5udW1iZXIuZ3RlKX0saW5pdDpoLmluaXRJbnB1dCxpbnB1dFZhbHVlOmguaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpoLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihvLGYsQyl7cmV0dXJuIEMucGFyc2VOdW1iZXIobyk+PUMucGFyc2VOdW1iZXIoZlswXSl9fSwiPiI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obyxmKXtyZXR1cm4gby5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMubnVtYmVyLmd0IixmLmNvbmRpdGlvbnMubnVtYmVyLmd0KX0saW5pdDpoLmluaXRJbnB1dCxpbnB1dFZhbHVlOmguaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpoLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihvLGYsQyl7cmV0dXJuIEMucGFyc2VOdW1iZXIobyk+Qy5wYXJzZU51bWJlcihmWzBdKX19LGJldHdlZW46e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obyxmKXtyZXR1cm4gby5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMubnVtYmVyLmJldHdlZW4iLGYuY29uZGl0aW9ucy5udW1iZXIuYmV0d2Vlbil9LGluaXQ6aC5pbml0MklucHV0LGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmguaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKG8sZixDKXt2YXIgQj1DLnBhcnNlTnVtYmVyKG8pLHU9Qy5wYXJzZU51bWJlcihmWzBdKSx6PUMucGFyc2VOdW1iZXIoZlsxXSk7cmV0dXJuK3U8K3o/K3U8PStCJiYrQjw9K3o6K3o8PStCJiYrQjw9K3V9fSwiIWJldHdlZW4iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLm51bWJlci5ub3RCZXR3ZWVuIixmLmNvbmRpdGlvbnMubnVtYmVyLm5vdEJldHdlZW4pfSxpbml0OmguaW5pdDJJbnB1dCxpbnB1dFZhbHVlOmguaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpoLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihvLGYsQyl7dmFyIEI9Qy5wYXJzZU51bWJlcihvKSx1PUMucGFyc2VOdW1iZXIoZlswXSksej1DLnBhcnNlTnVtYmVyKGZbMV0pO3JldHVybit1PCt6PyEoK3U8PStCJiYrQjw9K3opOiEoK3o8PStCJiYrQjw9K3UpfX0sbnVsbDp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5udW1iZXIuZW1wdHkiLGYuY29uZGl0aW9ucy5udW1iZXIuZW1wdHkpfSxpbml0OmguaW5pdE5vVmFsdWUsaW5wdXRWYWx1ZTpmdW5jdGlvbigpe30saXNJbnB1dFZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuITB9LHNlYXJjaDpmdW5jdGlvbihvKXtyZXR1cm4gbz09bnVsbHx8by5sZW5ndGg9PT0wfX0sIiFudWxsIjp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5udW1iZXIubm90RW1wdHkiLGYuY29uZGl0aW9ucy5udW1iZXIubm90RW1wdHkpfSxpbml0OmguaW5pdE5vVmFsdWUsaW5wdXRWYWx1ZTpmdW5jdGlvbigpe30saXNJbnB1dFZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuITB9LHNlYXJjaDpmdW5jdGlvbihvKXtyZXR1cm4hKG89PW51bGx8fG8ubGVuZ3RoPT09MCl9fX0saC5zdHJpbmdDb25kaXRpb25zPXsiPSI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obyxmKXtyZXR1cm4gby5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuc3RyaW5nLmVxdWFscyIsZi5jb25kaXRpb25zLnN0cmluZy5lcXVhbHMpfSxpbml0OmguaW5pdFNlbGVjdCxpbnB1dFZhbHVlOmguaW5wdXRWYWx1ZVNlbGVjdCxpc0lucHV0VmFsaWQ6aC5pc0lucHV0VmFsaWRTZWxlY3Qsc2VhcmNoOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG89PT1mWzBdfX0sIiE9Ijp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5zdHJpbmcubm90IixmLmNvbmRpdGlvbnMuc3RyaW5nLm5vdCl9LGluaXQ6aC5pbml0U2VsZWN0LGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlU2VsZWN0LGlzSW5wdXRWYWxpZDpoLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihvLGYpe3JldHVybiBvIT09ZlswXX19LHN0YXJ0czp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5zdHJpbmcuc3RhcnRzV2l0aCIsZi5jb25kaXRpb25zLnN0cmluZy5zdGFydHNXaXRoKX0saW5pdDpoLmluaXRJbnB1dCxpbnB1dFZhbHVlOmguaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpoLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihvLGYpe3JldHVybiBvLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihmWzBdLnRvTG93ZXJDYXNlKCkpPT09MH19LCIhc3RhcnRzIjp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5zdHJpbmcubm90U3RhcnRzV2l0aCIsZi5jb25kaXRpb25zLnN0cmluZy5ub3RTdGFydHNXaXRoKX0saW5pdDpoLmluaXRJbnB1dCxpbnB1dFZhbHVlOmguaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpoLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihvLGYpe3JldHVybiBvLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihmWzBdLnRvTG93ZXJDYXNlKCkpIT09MH19LGNvbnRhaW5zOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLnN0cmluZy5jb250YWlucyIsZi5jb25kaXRpb25zLnN0cmluZy5jb250YWlucyl9LGluaXQ6aC5pbml0SW5wdXQsaW5wdXRWYWx1ZTpoLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6aC5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obyxmKXtyZXR1cm4gby50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZbMF0udG9Mb3dlckNhc2UoKSl9fSwiIWNvbnRhaW5zIjp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5zdHJpbmcubm90Q29udGFpbnMiLGYuY29uZGl0aW9ucy5zdHJpbmcubm90Q29udGFpbnMpfSxpbml0OmguaW5pdElucHV0LGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmguaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKG8sZil7cmV0dXJuIW8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmWzBdLnRvTG93ZXJDYXNlKCkpfX0sZW5kczp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5zdHJpbmcuZW5kc1dpdGgiLGYuY29uZGl0aW9ucy5zdHJpbmcuZW5kc1dpdGgpfSxpbml0OmguaW5pdElucHV0LGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmguaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8udG9Mb3dlckNhc2UoKS5lbmRzV2l0aChmWzBdLnRvTG93ZXJDYXNlKCkpfX0sIiFlbmRzIjp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5zdHJpbmcubm90RW5kc1dpdGgiLGYuY29uZGl0aW9ucy5zdHJpbmcubm90RW5kc1dpdGgpfSxpbml0OmguaW5pdElucHV0LGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmguaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKG8sZil7cmV0dXJuIW8udG9Mb3dlckNhc2UoKS5lbmRzV2l0aChmWzBdLnRvTG93ZXJDYXNlKCkpfX0sbnVsbDp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5zdHJpbmcuZW1wdHkiLGYuY29uZGl0aW9ucy5zdHJpbmcuZW1wdHkpfSxpbml0OmguaW5pdE5vVmFsdWUsaW5wdXRWYWx1ZTpmdW5jdGlvbigpe30saXNJbnB1dFZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuITB9LHNlYXJjaDpmdW5jdGlvbihvKXtyZXR1cm4gbz09bnVsbHx8by5sZW5ndGg9PT0wfX0sIiFudWxsIjp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5zdHJpbmcubm90RW1wdHkiLGYuY29uZGl0aW9ucy5zdHJpbmcubm90RW1wdHkpfSxpbml0OmguaW5pdE5vVmFsdWUsaW5wdXRWYWx1ZTpmdW5jdGlvbigpe30saXNJbnB1dFZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuITB9LHNlYXJjaDpmdW5jdGlvbihvKXtyZXR1cm4hKG89PW51bGx8fG8ubGVuZ3RoPT09MCl9fX0saC5hcnJheUNvbmRpdGlvbnM9e2NvbnRhaW5zOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmFycmF5LmNvbnRhaW5zIixmLmNvbmRpdGlvbnMuYXJyYXkuY29udGFpbnMpfSxpbml0OmguaW5pdFNlbGVjdEFycmF5LGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlU2VsZWN0LGlzSW5wdXRWYWxpZDpoLmlzSW5wdXRWYWxpZFNlbGVjdCxzZWFyY2g6ZnVuY3Rpb24obyxmKXtyZXR1cm4gby5pbmNsdWRlcyhmWzBdKX19LHdpdGhvdXQ6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obyxmKXtyZXR1cm4gby5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuYXJyYXkud2l0aG91dCIsZi5jb25kaXRpb25zLmFycmF5LndpdGhvdXQpfSxpbml0OmguaW5pdFNlbGVjdEFycmF5LGlucHV0VmFsdWU6aC5pbnB1dFZhbHVlU2VsZWN0LGlzSW5wdXRWYWxpZDpoLmlzSW5wdXRWYWxpZFNlbGVjdCxzZWFyY2g6ZnVuY3Rpb24obyxmKXtyZXR1cm4gby5pbmRleE9mKGZbMF0pPT09LTF9fSwiPSI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obyxmKXtyZXR1cm4gby5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuYXJyYXkuZXF1YWxzIixmLmNvbmRpdGlvbnMuYXJyYXkuZXF1YWxzKX0saW5pdDpoLmluaXRTZWxlY3QsaW5wdXRWYWx1ZTpoLmlucHV0VmFsdWVTZWxlY3QsaXNJbnB1dFZhbGlkOmguaXNJbnB1dFZhbGlkU2VsZWN0LHNlYXJjaDpmdW5jdGlvbihvLGYpe2lmKG8ubGVuZ3RoPT09ZlswXS5sZW5ndGgpe2Zvcih2YXIgQz0wO0M8by5sZW5ndGg7QysrKWlmKG9bQ10hPT1mWzBdW0NdKXJldHVybiExO3JldHVybiEwfXJldHVybiExfX0sIiE9Ijp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5hcnJheS5ub3QiLGYuY29uZGl0aW9ucy5hcnJheS5ub3QpfSxpbml0OmguaW5pdFNlbGVjdCxpbnB1dFZhbHVlOmguaW5wdXRWYWx1ZVNlbGVjdCxpc0lucHV0VmFsaWQ6aC5pc0lucHV0VmFsaWRTZWxlY3Qsc2VhcmNoOmZ1bmN0aW9uKG8sZil7aWYoby5sZW5ndGg9PT1mWzBdLmxlbmd0aCl7Zm9yKHZhciBDPTA7QzxvLmxlbmd0aDtDKyspaWYob1tDXSE9PWZbMF1bQ10pcmV0dXJuITA7cmV0dXJuITF9cmV0dXJuITB9fSxudWxsOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKG8sZil7cmV0dXJuIG8uaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmFycmF5LmVtcHR5IixmLmNvbmRpdGlvbnMuYXJyYXkuZW1wdHkpfSxpbml0OmguaW5pdE5vVmFsdWUsaW5wdXRWYWx1ZTpmdW5jdGlvbigpe30saXNJbnB1dFZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuITB9LHNlYXJjaDpmdW5jdGlvbihvKXtyZXR1cm4gbz09bnVsbHx8by5sZW5ndGg9PT0wfX0sIiFudWxsIjp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihvLGYpe3JldHVybiBvLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5hcnJheS5ub3RFbXB0eSIsZi5jb25kaXRpb25zLmFycmF5Lm5vdEVtcHR5KX0saW5pdDpoLmluaXROb1ZhbHVlLGlucHV0VmFsdWU6ZnVuY3Rpb24oKXt9LGlzSW5wdXRWYWxpZDpmdW5jdGlvbigpe3JldHVybiEwfSxzZWFyY2g6ZnVuY3Rpb24obyl7cmV0dXJuIG8hPW51bGwmJm8ubGVuZ3RoIT09MH19fSxoLmRlZmF1bHRzPXtjb2x1bW5zOiEwLGNvbmRpdGlvbnM6e2FycmF5OmguYXJyYXlDb25kaXRpb25zLGRhdGU6aC5kYXRlQ29uZGl0aW9ucyxodG1sOmguc3RyaW5nQ29uZGl0aW9ucywiaHRtbC1udW0iOmgubnVtQ29uZGl0aW9ucywiaHRtbC1udW0tZm10IjpoLm51bUZtdENvbmRpdGlvbnMsbHV4b246aC5sdXhvbkRhdGVDb25kaXRpb25zLG1vbWVudDpoLm1vbWVudERhdGVDb25kaXRpb25zLG51bTpoLm51bUNvbmRpdGlvbnMsIm51bS1mbXQiOmgubnVtRm10Q29uZGl0aW9ucyxzdHJpbmc6aC5zdHJpbmdDb25kaXRpb25zfSxkZXB0aExpbWl0OiExLGVudGVyU2VhcmNoOiExLGZpbHRlckNoYW5nZWQ6dm9pZCAwLGdyZXlzY2FsZTohMSxpMThuOnthZGQ6IkFkZCBDb25kaXRpb24iLGJ1dHRvbjp7MDoiU2VhcmNoIEJ1aWxkZXIiLF86IlNlYXJjaCBCdWlsZGVyICglZCkifSxjbGVhckFsbDoiQ2xlYXIgQWxsIixjb25kaXRpb246IkNvbmRpdGlvbiIsZGF0YToiRGF0YSIsZGVsZXRlOiImdGltZXMiLGRlbGV0ZVRpdGxlOiJEZWxldGUgZmlsdGVyaW5nIHJ1bGUiLGxlZnQ6IjwiLGxlZnRUaXRsZToiT3V0ZGVudCBjcml0ZXJpYSIsbG9naWNBbmQ6IkFuZCIsbG9naWNPcjoiT3IiLHJpZ2h0OiI+IixyaWdodFRpdGxlOiJJbmRlbnQgY3JpdGVyaWEiLHNlYXJjaDoiU2VhcmNoIix0aXRsZTp7MDoiQ3VzdG9tIFNlYXJjaCBCdWlsZGVyIixfOiJDdXN0b20gU2VhcmNoIEJ1aWxkZXIgKCVkKSJ9LHZhbHVlOiJWYWx1ZSIsdmFsdWVKb2luZXI6ImFuZCJ9LGxpdmVTZWFyY2g6ITAsbG9naWM6IkFORCIsb3J0aG9nb25hbDp7ZGlzcGxheToiZGlzcGxheSIsc2VhcmNoOiJmaWx0ZXIifSxwcmVEZWZpbmVkOiExfSxofSgpLGwsYztmdW5jdGlvbiBwKGgpe2w9aCxjPWguZm4uZGF0YVRhYmxlfXZhciBiPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gaChvLGYsQyxCLHUseixxKXtpZihCPT09dm9pZCAwJiYoQj0wKSx1PT09dm9pZCAwJiYodT0hMSksej09PXZvaWQgMCYmKHo9MSkscT09PXZvaWQgMCYmKHE9dm9pZCAwKSwhY3x8IWMudmVyc2lvbkNoZWNrfHwhYy52ZXJzaW9uQ2hlY2soIjEuMTAuMCIpKXRocm93IG5ldyBFcnJvcigiU2VhcmNoQnVpbGRlciByZXF1aXJlcyBEYXRhVGFibGVzIDEuMTAgb3IgbmV3ZXIiKTtyZXR1cm4gdGhpcy5jbGFzc2VzPWwuZXh0ZW5kKCEwLHt9LGguY2xhc3NlcyksdGhpcy5jPWwuZXh0ZW5kKCEwLHt9LGguZGVmYXVsdHMsZiksdGhpcy5zPXtjcml0ZXJpYTpbXSxkZXB0aDp6LGR0Om8saW5kZXg6Qixpc0NoaWxkOnUsbG9naWM6dm9pZCAwLG9wdHM6ZixwcmV2ZW50UmVkcmF3OiExLHNlcnZlckRhdGE6cSx0b0Ryb3A6dm9pZCAwLHRvcEdyb3VwOkN9LHRoaXMuZG9tPXthZGQ6bCgiPGJ1dHRvbi8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmFkZCkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmJ1dHRvbikuYXR0cigidHlwZSIsImJ1dHRvbiIpLGNsZWFyOmwoIjxidXR0b24+JnRpbWVzPC9idXR0b24+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmJ1dHRvbikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmNsZWFyR3JvdXApLmF0dHIoInR5cGUiLCJidXR0b24iKSxjb250YWluZXI6bCgiPGRpdi8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmdyb3VwKSxsb2dpYzpsKCI8YnV0dG9uPjxkaXYvPjwvYnV0dG9uPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5sb2dpYykuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmJ1dHRvbikuYXR0cigidHlwZSIsImJ1dHRvbiIpLGxvZ2ljQ29udGFpbmVyOmwoIjxkaXYvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5sb2dpY0NvbnRhaW5lciksc2VhcmNoOmwoIjxidXR0b24vPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5zZWFyY2gpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5idXR0b24pLmF0dHIoInR5cGUiLCJidXR0b24iKS5jc3MoImRpc3BsYXkiLCJub25lIil9LHRoaXMucy50b3BHcm91cD09PXZvaWQgMCYmKHRoaXMucy50b3BHcm91cD10aGlzLmRvbS5jb250YWluZXIpLHRoaXMuX3NldHVwKCksdGhpc31yZXR1cm4gaC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuZG9tLmFkZC5vZmYoIi5kdHNiIiksdGhpcy5kb20ubG9naWMub2ZmKCIuZHRzYiIpLHRoaXMuZG9tLnNlYXJjaC5vZmYoIi5kdHNiIiksdGhpcy5kb20uY29udGFpbmVyLnRyaWdnZXIoImR0c2ItZGVzdHJveSIpLnJlbW92ZSgpLHRoaXMucy5jcml0ZXJpYT1bXX0saC5wcm90b3R5cGUuZ2V0RGV0YWlscz1mdW5jdGlvbihvKXtpZihvPT09dm9pZCAwJiYobz0hMSksdGhpcy5zLmNyaXRlcmlhLmxlbmd0aD09PTApcmV0dXJue307Zm9yKHZhciBmPXtjcml0ZXJpYTpbXSxsb2dpYzp0aGlzLnMubG9naWN9LEM9MCxCPXRoaXMucy5jcml0ZXJpYTtDPEIubGVuZ3RoO0MrKyl7dmFyIHU9QltDXTtmLmNyaXRlcmlhLnB1c2godS5jcml0ZXJpYS5nZXREZXRhaWxzKG8pKX1yZXR1cm4gZn0saC5wcm90b3R5cGUuZ2V0Tm9kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbS5jb250YWluZXJ9LGgucHJvdG90eXBlLnJlYnVpbGQ9ZnVuY3Rpb24obyl7dmFyIGY7aWYoIShvLmNyaXRlcmlhPT09dm9pZCAwfHxvLmNyaXRlcmlhPT09bnVsbHx8QXJyYXkuaXNBcnJheShvLmNyaXRlcmlhKSYmby5jcml0ZXJpYS5sZW5ndGg9PT0wKSl7aWYodGhpcy5zLmxvZ2ljPW8ubG9naWMsdGhpcy5kb20ubG9naWMuY2hpbGRyZW4oKS5maXJzdCgpLmh0bWwodGhpcy5zLmxvZ2ljPT09Ik9SIj90aGlzLnMuZHQuaTE4bigic2VhcmNoQnVpbGRlci5sb2dpY09yIix0aGlzLmMuaTE4bi5sb2dpY09yKTp0aGlzLnMuZHQuaTE4bigic2VhcmNoQnVpbGRlci5sb2dpY0FuZCIsdGhpcy5jLmkxOG4ubG9naWNBbmQpKSxBcnJheS5pc0FycmF5KG8uY3JpdGVyaWEpKWZvcih2YXIgQz0wLEI9by5jcml0ZXJpYTtDPEIubGVuZ3RoO0MrKylmPUJbQ10sZi5sb2dpYyE9PXZvaWQgMD90aGlzLl9hZGRQcmV2R3JvdXAoZik6Zi5sb2dpYz09PXZvaWQgMCYmdGhpcy5fYWRkUHJldkNyaXRlcmlhKGYpO2Zvcih2YXIgdT0wLHo9dGhpcy5zLmNyaXRlcmlhO3U8ei5sZW5ndGg7dSsrKWY9elt1XSxmLmNyaXRlcmlhIGluc3RhbmNlb2YgYSYmKGYuY3JpdGVyaWEudXBkYXRlQXJyb3dzKHRoaXMucy5jcml0ZXJpYS5sZW5ndGg+MSksdGhpcy5fc2V0Q3JpdGVyaWFMaXN0ZW5lcnMoZi5jcml0ZXJpYSkpfX0saC5wcm90b3R5cGUucmVkcmF3Q29udGVudHM9ZnVuY3Rpb24oKXtpZighdGhpcy5zLnByZXZlbnRSZWRyYXcpe3RoaXMuZG9tLmNvbnRhaW5lci5jaGlsZHJlbigpLmRldGFjaCgpLHRoaXMuZG9tLmNvbnRhaW5lci5hcHBlbmQodGhpcy5kb20ubG9naWNDb250YWluZXIpLmFwcGVuZCh0aGlzLmRvbS5hZGQpLHRoaXMuYy5saXZlU2VhcmNofHx0aGlzLmRvbS5jb250YWluZXIuYXBwZW5kKHRoaXMuZG9tLnNlYXJjaCksdGhpcy5zLmNyaXRlcmlhLnNvcnQoZnVuY3Rpb24oQyxCKXtyZXR1cm4gQy5jcml0ZXJpYS5zLmluZGV4PEIuY3JpdGVyaWEucy5pbmRleD8tMTpDLmNyaXRlcmlhLnMuaW5kZXg+Qi5jcml0ZXJpYS5zLmluZGV4PzE6MH0pLHRoaXMuc2V0TGlzdGVuZXJzKCk7Zm9yKHZhciBvPTA7bzx0aGlzLnMuY3JpdGVyaWEubGVuZ3RoO28rKyl7dmFyIGY9dGhpcy5zLmNyaXRlcmlhW29dLmNyaXRlcmlhO2YgaW5zdGFuY2VvZiBhPyh0aGlzLnMuY3JpdGVyaWFbb10uaW5kZXg9byx0aGlzLnMuY3JpdGVyaWFbb10uY3JpdGVyaWEucy5pbmRleD1vLHRoaXMucy5jcml0ZXJpYVtvXS5jcml0ZXJpYS5kb20uY29udGFpbmVyLmluc2VydEJlZm9yZSh0aGlzLmRvbS5hZGQpLHRoaXMuX3NldENyaXRlcmlhTGlzdGVuZXJzKGYpLHRoaXMucy5jcml0ZXJpYVtvXS5jcml0ZXJpYS5zLnByZXZlbnRSZWRyYXc9dGhpcy5zLnByZXZlbnRSZWRyYXcsdGhpcy5zLmNyaXRlcmlhW29dLmNyaXRlcmlhLnJlYnVpbGQodGhpcy5zLmNyaXRlcmlhW29dLmNyaXRlcmlhLmdldERldGFpbHMoKSksdGhpcy5zLmNyaXRlcmlhW29dLmNyaXRlcmlhLnMucHJldmVudFJlZHJhdz0hMSk6ZiBpbnN0YW5jZW9mIGgmJmYucy5jcml0ZXJpYS5sZW5ndGg+MD8odGhpcy5zLmNyaXRlcmlhW29dLmluZGV4PW8sdGhpcy5zLmNyaXRlcmlhW29dLmNyaXRlcmlhLnMuaW5kZXg9byx0aGlzLnMuY3JpdGVyaWFbb10uY3JpdGVyaWEuZG9tLmNvbnRhaW5lci5pbnNlcnRCZWZvcmUodGhpcy5kb20uYWRkKSxmLnMucHJldmVudFJlZHJhdz10aGlzLnMucHJldmVudFJlZHJhdyxmLnJlZHJhd0NvbnRlbnRzKCksZi5zLnByZXZlbnRSZWRyYXc9ITEsdGhpcy5fc2V0R3JvdXBMaXN0ZW5lcnMoZikpOih0aGlzLnMuY3JpdGVyaWEuc3BsaWNlKG8sMSksby0tKX10aGlzLnNldHVwTG9naWMoKX19LGgucHJvdG90eXBlLnJlZHJhd0xvZ2ljPWZ1bmN0aW9uKCl7Zm9yKHZhciBvPTAsZj10aGlzLnMuY3JpdGVyaWE7bzxmLmxlbmd0aDtvKyspe3ZhciBDPWZbb107Qy5jcml0ZXJpYSBpbnN0YW5jZW9mIGgmJkMuY3JpdGVyaWEucmVkcmF3TG9naWMoKX10aGlzLnNldHVwTG9naWMoKX0saC5wcm90b3R5cGUuc2VhcmNoPWZ1bmN0aW9uKG8sZil7cmV0dXJuIHRoaXMucy5sb2dpYz09PSJBTkQiP3RoaXMuX2FuZFNlYXJjaChvLGYpOnRoaXMucy5sb2dpYz09PSJPUiI/dGhpcy5fb3JTZWFyY2gobyxmKTohMH0saC5wcm90b3R5cGUuc2V0dXBMb2dpYz1mdW5jdGlvbigpe2lmKHRoaXMuZG9tLmxvZ2ljQ29udGFpbmVyLnJlbW92ZSgpLHRoaXMuZG9tLmNsZWFyLnJlbW92ZSgpLHRoaXMucy5jcml0ZXJpYS5sZW5ndGg8MSl7dGhpcy5zLmlzQ2hpbGR8fCh0aGlzLmRvbS5jb250YWluZXIudHJpZ2dlcigiZHRzYi1kZXN0cm95IiksdGhpcy5kb20uY29udGFpbmVyLmNzcygibWFyZ2luLWxlZnQiLDApKSx0aGlzLmRvbS5zZWFyY2guY3NzKCJkaXNwbGF5Iiwibm9uZSIpO3JldHVybn10aGlzLmRvbS5jbGVhci5oZWlnaHQoIjBweCIpLHRoaXMuZG9tLmxvZ2ljQ29udGFpbmVyLmFwcGVuZCh0aGlzLmRvbS5jbGVhciksdGhpcy5zLmlzQ2hpbGR8fHRoaXMuZG9tLnNlYXJjaC5jc3MoImRpc3BsYXkiLCJpbmxpbmUtYmxvY2siKSx0aGlzLmRvbS5jb250YWluZXIucHJlcGVuZCh0aGlzLmRvbS5sb2dpY0NvbnRhaW5lcik7Zm9yKHZhciBvPTAsZj10aGlzLnMuY3JpdGVyaWE7bzxmLmxlbmd0aDtvKyspe3ZhciBDPWZbb107Qy5jcml0ZXJpYSBpbnN0YW5jZW9mIGEmJkMuY3JpdGVyaWEuc2V0dXBCdXR0b25zKCl9dmFyIEI9dGhpcy5kb20uY29udGFpbmVyLm91dGVySGVpZ2h0KCktMTt0aGlzLmRvbS5sb2dpY0NvbnRhaW5lci53aWR0aChCKSx0aGlzLl9zZXRMb2dpY0xpc3RlbmVyKCksdGhpcy5kb20uY29udGFpbmVyLmNzcygibWFyZ2luLWxlZnQiLHRoaXMuZG9tLmxvZ2ljQ29udGFpbmVyLm91dGVySGVpZ2h0KCEwKSk7dmFyIHU9dGhpcy5kb20ubG9naWNDb250YWluZXIub2Zmc2V0KCksej11LmxlZnQscT10aGlzLmRvbS5jb250YWluZXIub2Zmc2V0KCkubGVmdCxldD16LXEsTz16LWV0LXRoaXMuZG9tLmxvZ2ljQ29udGFpbmVyLm91dGVySGVpZ2h0KCEwKTt0aGlzLmRvbS5sb2dpY0NvbnRhaW5lci5vZmZzZXQoe2xlZnQ6T30pO3ZhciBaPXRoaXMuZG9tLmxvZ2ljQ29udGFpbmVyLm5leHQoKSxnPXUudG9wLF89bChaKS5vZmZzZXQoKS50b3AsUz1nLV8sTj1nLVM7dGhpcy5kb20ubG9naWNDb250YWluZXIub2Zmc2V0KHt0b3A6Tn0pLHRoaXMuZG9tLmNsZWFyLm91dGVySGVpZ2h0KHRoaXMuZG9tLmxvZ2ljQ29udGFpbmVyLmhlaWdodCgpKSx0aGlzLl9zZXRDbGVhckxpc3RlbmVyKCl9LGgucHJvdG90eXBlLnNldExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciBvPXRoaXM7dGhpcy5kb20uYWRkLnVuYmluZCgiY2xpY2siKSx0aGlzLmRvbS5hZGQub24oImNsaWNrLmR0c2IiLGZ1bmN0aW9uKCl7cmV0dXJuIG8ucy5pc0NoaWxkfHxvLmRvbS5jb250YWluZXIucHJlcGVuZChvLmRvbS5sb2dpY0NvbnRhaW5lciksby5hZGRDcml0ZXJpYSgpLG8uZG9tLmNvbnRhaW5lci50cmlnZ2VyKCJkdHNiLWFkZCIpLG8ucy5kdC5zdGF0ZS5zYXZlKCksITF9KSx0aGlzLmRvbS5zZWFyY2gub2ZmKCJjbGljay5kdHNiIikub24oImNsaWNrLmR0c2IiLGZ1bmN0aW9uKCl7by5zLmR0LmRyYXcoKX0pO2Zvcih2YXIgZj0wLEM9dGhpcy5zLmNyaXRlcmlhO2Y8Qy5sZW5ndGg7ZisrKXt2YXIgQj1DW2ZdO0IuY3JpdGVyaWEuc2V0TGlzdGVuZXJzKCl9dGhpcy5fc2V0Q2xlYXJMaXN0ZW5lcigpLHRoaXMuX3NldExvZ2ljTGlzdGVuZXIoKX0saC5wcm90b3R5cGUuYWRkQ3JpdGVyaWE9ZnVuY3Rpb24obyl7bz09PXZvaWQgMCYmKG89bnVsbCk7dmFyIGY9bz09PW51bGw/dGhpcy5zLmNyaXRlcmlhLmxlbmd0aDpvLnMuaW5kZXgsQz1uZXcgYSh0aGlzLnMuZHQsdGhpcy5zLm9wdHMsdGhpcy5zLnRvcEdyb3VwLGYsdGhpcy5zLmRlcHRoLHRoaXMucy5zZXJ2ZXJEYXRhLHRoaXMuYy5saXZlU2VhcmNoKTtvIT09bnVsbCYmKEMuYz1vLmMsQy5zPW8ucyxDLnMuZGVwdGg9dGhpcy5zLmRlcHRoLEMuY2xhc3Nlcz1vLmNsYXNzZXMpLEMucG9wdWxhdGUoKTtmb3IodmFyIEI9ITEsdT0wO3U8dGhpcy5zLmNyaXRlcmlhLmxlbmd0aDt1KyspdT09PTAmJnRoaXMucy5jcml0ZXJpYVt1XS5jcml0ZXJpYS5zLmluZGV4PkMucy5pbmRleD8oQy5nZXROb2RlKCkuaW5zZXJ0QmVmb3JlKHRoaXMucy5jcml0ZXJpYVt1XS5jcml0ZXJpYS5kb20uY29udGFpbmVyKSxCPSEwKTp1PHRoaXMucy5jcml0ZXJpYS5sZW5ndGgtMSYmdGhpcy5zLmNyaXRlcmlhW3VdLmNyaXRlcmlhLnMuaW5kZXg8Qy5zLmluZGV4JiZ0aGlzLnMuY3JpdGVyaWFbdSsxXS5jcml0ZXJpYS5zLmluZGV4PkMucy5pbmRleCYmKEMuZ2V0Tm9kZSgpLmluc2VydEFmdGVyKHRoaXMucy5jcml0ZXJpYVt1XS5jcml0ZXJpYS5kb20uY29udGFpbmVyKSxCPSEwKTtCfHxDLmdldE5vZGUoKS5pbnNlcnRCZWZvcmUodGhpcy5kb20uYWRkKSx0aGlzLnMuY3JpdGVyaWEucHVzaCh7Y3JpdGVyaWE6QyxpbmRleDpmfSksdGhpcy5zLmNyaXRlcmlhPXRoaXMucy5jcml0ZXJpYS5zb3J0KGZ1bmN0aW9uKE8sWil7cmV0dXJuIE8uY3JpdGVyaWEucy5pbmRleC1aLmNyaXRlcmlhLnMuaW5kZXh9KTtmb3IodmFyIHo9MCxxPXRoaXMucy5jcml0ZXJpYTt6PHEubGVuZ3RoO3orKyl7dmFyIGV0PXFbel07ZXQuY3JpdGVyaWEgaW5zdGFuY2VvZiBhJiZldC5jcml0ZXJpYS51cGRhdGVBcnJvd3ModGhpcy5zLmNyaXRlcmlhLmxlbmd0aD4xKX10aGlzLl9zZXRDcml0ZXJpYUxpc3RlbmVycyhDKSxDLnNldExpc3RlbmVycygpLHRoaXMuc2V0dXBMb2dpYygpfSxoLnByb3RvdHlwZS5jaGVja0ZpbGxlZD1mdW5jdGlvbigpe2Zvcih2YXIgbz0wLGY9dGhpcy5zLmNyaXRlcmlhO288Zi5sZW5ndGg7bysrKXt2YXIgQz1mW29dO2lmKEMuY3JpdGVyaWEgaW5zdGFuY2VvZiBhJiZDLmNyaXRlcmlhLnMuZmlsbGVkfHxDLmNyaXRlcmlhIGluc3RhbmNlb2YgaCYmQy5jcml0ZXJpYS5jaGVja0ZpbGxlZCgpKXJldHVybiEwfXJldHVybiExfSxoLnByb3RvdHlwZS5jb3VudD1mdW5jdGlvbigpe2Zvcih2YXIgbz0wLGY9MCxDPXRoaXMucy5jcml0ZXJpYTtmPEMubGVuZ3RoO2YrKyl7dmFyIEI9Q1tmXTtCLmNyaXRlcmlhIGluc3RhbmNlb2YgaD9vKz1CLmNyaXRlcmlhLmNvdW50KCk6bysrfXJldHVybiBvfSxoLnByb3RvdHlwZS5fYWRkUHJldkdyb3VwPWZ1bmN0aW9uKG8pe3ZhciBmPXRoaXMucy5jcml0ZXJpYS5sZW5ndGgsQz1uZXcgaCh0aGlzLnMuZHQsdGhpcy5jLHRoaXMucy50b3BHcm91cCxmLCEwLHRoaXMucy5kZXB0aCsxLHRoaXMucy5zZXJ2ZXJEYXRhKTt0aGlzLnMuY3JpdGVyaWEucHVzaCh7Y3JpdGVyaWE6QyxpbmRleDpmLGxvZ2ljOkMucy5sb2dpY30pLEMucmVidWlsZChvKSx0aGlzLnMuY3JpdGVyaWFbZl0uY3JpdGVyaWE9Qyx0aGlzLnMudG9wR3JvdXAudHJpZ2dlcigiZHRzYi1yZWRyYXdDb250ZW50cyIpLHRoaXMuX3NldEdyb3VwTGlzdGVuZXJzKEMpfSxoLnByb3RvdHlwZS5fYWRkUHJldkNyaXRlcmlhPWZ1bmN0aW9uKG8pe3ZhciBmPXRoaXMucy5jcml0ZXJpYS5sZW5ndGgsQz1uZXcgYSh0aGlzLnMuZHQsdGhpcy5zLm9wdHMsdGhpcy5zLnRvcEdyb3VwLGYsdGhpcy5zLmRlcHRoLHRoaXMucy5zZXJ2ZXJEYXRhKTtDLnBvcHVsYXRlKCksdGhpcy5zLmNyaXRlcmlhLnB1c2goe2NyaXRlcmlhOkMsaW5kZXg6Zn0pLEMucy5wcmV2ZW50UmVkcmF3PXRoaXMucy5wcmV2ZW50UmVkcmF3LEMucmVidWlsZChvKSxDLnMucHJldmVudFJlZHJhdz0hMSx0aGlzLnMuY3JpdGVyaWFbZl0uY3JpdGVyaWE9Qyx0aGlzLnMucHJldmVudFJlZHJhd3x8dGhpcy5zLnRvcEdyb3VwLnRyaWdnZXIoImR0c2ItcmVkcmF3Q29udGVudHMiKX0saC5wcm90b3R5cGUuX2FuZFNlYXJjaD1mdW5jdGlvbihvLGYpe2lmKHRoaXMucy5jcml0ZXJpYS5sZW5ndGg9PT0wKXJldHVybiEwO2Zvcih2YXIgQz0wLEI9dGhpcy5zLmNyaXRlcmlhO0M8Qi5sZW5ndGg7QysrKXt2YXIgdT1CW0NdO2lmKCEodS5jcml0ZXJpYSBpbnN0YW5jZW9mIGEmJiF1LmNyaXRlcmlhLnMuZmlsbGVkKSYmIXUuY3JpdGVyaWEuc2VhcmNoKG8sZikpcmV0dXJuITF9cmV0dXJuITB9LGgucHJvdG90eXBlLl9vclNlYXJjaD1mdW5jdGlvbihvLGYpe2lmKHRoaXMucy5jcml0ZXJpYS5sZW5ndGg9PT0wKXJldHVybiEwO2Zvcih2YXIgQz0hMSxCPTAsdT10aGlzLnMuY3JpdGVyaWE7Qjx1Lmxlbmd0aDtCKyspe3ZhciB6PXVbQl07aWYoei5jcml0ZXJpYSBpbnN0YW5jZW9mIGEmJnouY3JpdGVyaWEucy5maWxsZWQpe2lmKEM9ITAsei5jcml0ZXJpYS5zZWFyY2gobyxmKSlyZXR1cm4hMH1lbHNlIGlmKHouY3JpdGVyaWEgaW5zdGFuY2VvZiBoJiZ6LmNyaXRlcmlhLmNoZWNrRmlsbGVkKCkmJihDPSEwLHouY3JpdGVyaWEuc2VhcmNoKG8sZikpKXJldHVybiEwfXJldHVybiFDfSxoLnByb3RvdHlwZS5fcmVtb3ZlQ3JpdGVyaWE9ZnVuY3Rpb24obyxmKXtmPT09dm9pZCAwJiYoZj0hMSk7dmFyIEM7aWYodGhpcy5zLmNyaXRlcmlhLmxlbmd0aDw9MSYmdGhpcy5zLmlzQ2hpbGQpdGhpcy5kZXN0cm95KCk7ZWxzZXt2YXIgQj12b2lkIDA7Zm9yKEM9MDtDPHRoaXMucy5jcml0ZXJpYS5sZW5ndGg7QysrKXRoaXMucy5jcml0ZXJpYVtDXS5pbmRleD09PW8ucy5pbmRleCYmKCFmfHx0aGlzLnMuY3JpdGVyaWFbQ10uY3JpdGVyaWEgaW5zdGFuY2VvZiBoKSYmKEI9Qyk7Zm9yKEIhPT12b2lkIDAmJnRoaXMucy5jcml0ZXJpYS5zcGxpY2UoQiwxKSxDPTA7Qzx0aGlzLnMuY3JpdGVyaWEubGVuZ3RoO0MrKyl0aGlzLnMuY3JpdGVyaWFbQ10uaW5kZXg9Qyx0aGlzLnMuY3JpdGVyaWFbQ10uY3JpdGVyaWEucy5pbmRleD1DfX0saC5wcm90b3R5cGUuX3NldENyaXRlcmlhTGlzdGVuZXJzPWZ1bmN0aW9uKG8pe3ZhciBmPXRoaXM7by5kb20uZGVsZXRlLnVuYmluZCgiY2xpY2siKS5vbigiY2xpY2suZHRzYiIsZnVuY3Rpb24oKXtmLl9yZW1vdmVDcml0ZXJpYShvKSxvLmRvbS5jb250YWluZXIucmVtb3ZlKCk7Zm9yKHZhciBDPTAsQj1mLnMuY3JpdGVyaWE7QzxCLmxlbmd0aDtDKyspe3ZhciB1PUJbQ107dS5jcml0ZXJpYSBpbnN0YW5jZW9mIGEmJnUuY3JpdGVyaWEudXBkYXRlQXJyb3dzKGYucy5jcml0ZXJpYS5sZW5ndGg+MSl9cmV0dXJuIG8uZGVzdHJveSgpLGYucy5kdC5kcmF3KCksZi5zLnRvcEdyb3VwLnRyaWdnZXIoImR0c2ItcmVkcmF3Q29udGVudHMiKSwhMX0pLG8uZG9tLnJpZ2h0LnVuYmluZCgiY2xpY2siKS5vbigiY2xpY2suZHRzYiIsZnVuY3Rpb24oKXt2YXIgQz1vLnMuaW5kZXgsQj1uZXcgaChmLnMuZHQsZi5zLm9wdHMsZi5zLnRvcEdyb3VwLG8ucy5pbmRleCwhMCxmLnMuZGVwdGgrMSxmLnMuc2VydmVyRGF0YSk7cmV0dXJuIEIuYWRkQ3JpdGVyaWEobyksZi5zLmNyaXRlcmlhW0NdLmNyaXRlcmlhPUIsZi5zLmNyaXRlcmlhW0NdLmxvZ2ljPSJBTkQiLGYucy50b3BHcm91cC50cmlnZ2VyKCJkdHNiLXJlZHJhd0NvbnRlbnRzIiksZi5fc2V0R3JvdXBMaXN0ZW5lcnMoQiksITF9KSxvLmRvbS5sZWZ0LnVuYmluZCgiY2xpY2siKS5vbigiY2xpY2suZHRzYiIsZnVuY3Rpb24oKXtmLnMudG9Ecm9wPW5ldyBhKGYucy5kdCxmLnMub3B0cyxmLnMudG9wR3JvdXAsby5zLmluZGV4LHZvaWQgMCxmLnMuc2VydmVyRGF0YSksZi5zLnRvRHJvcC5zPW8ucyxmLnMudG9Ecm9wLmM9by5jLGYucy50b0Ryb3AuY2xhc3Nlcz1vLmNsYXNzZXMsZi5zLnRvRHJvcC5wb3B1bGF0ZSgpO3ZhciBDPWYucy50b0Ryb3Aucy5pbmRleDtyZXR1cm4gZi5kb20uY29udGFpbmVyLnRyaWdnZXIoImR0c2ItZHJvcENyaXRlcmlhIiksby5zLmluZGV4PUMsZi5fcmVtb3ZlQ3JpdGVyaWEobyksZi5zLnRvcEdyb3VwLnRyaWdnZXIoImR0c2ItcmVkcmF3Q29udGVudHMiKSxmLnMuZHQuZHJhdygpLCExfSl9LGgucHJvdG90eXBlLl9zZXRDbGVhckxpc3RlbmVyPWZ1bmN0aW9uKCl7dmFyIG89dGhpczt0aGlzLmRvbS5jbGVhci51bmJpbmQoImNsaWNrIikub24oImNsaWNrLmR0c2IiLGZ1bmN0aW9uKCl7cmV0dXJuIG8ucy5pc0NoaWxkPyhvLmRlc3Ryb3koKSxvLnMudG9wR3JvdXAudHJpZ2dlcigiZHRzYi1yZWRyYXdDb250ZW50cyIpLCExKTooby5kb20uY29udGFpbmVyLnRyaWdnZXIoImR0c2ItY2xlYXJDb250ZW50cyIpLCExKX0pfSxoLnByb3RvdHlwZS5fc2V0R3JvdXBMaXN0ZW5lcnM9ZnVuY3Rpb24obyl7dmFyIGY9dGhpcztvLmRvbS5hZGQudW5iaW5kKCJjbGljayIpLm9uKCJjbGljay5kdHNiIixmdW5jdGlvbigpe3JldHVybiBmLnNldHVwTG9naWMoKSxmLmRvbS5jb250YWluZXIudHJpZ2dlcigiZHRzYi1hZGQiKSwhMX0pLG8uZG9tLmNvbnRhaW5lci51bmJpbmQoImR0c2ItYWRkIikub24oImR0c2ItYWRkLmR0c2IiLGZ1bmN0aW9uKCl7cmV0dXJuIGYuc2V0dXBMb2dpYygpLGYuZG9tLmNvbnRhaW5lci50cmlnZ2VyKCJkdHNiLWFkZCIpLCExfSksby5kb20uY29udGFpbmVyLnVuYmluZCgiZHRzYi1kZXN0cm95Iikub24oImR0c2ItZGVzdHJveS5kdHNiIixmdW5jdGlvbigpe3JldHVybiBmLl9yZW1vdmVDcml0ZXJpYShvLCEwKSxvLmRvbS5jb250YWluZXIucmVtb3ZlKCksZi5zZXR1cExvZ2ljKCksITF9KSxvLmRvbS5jb250YWluZXIudW5iaW5kKCJkdHNiLWRyb3BDcml0ZXJpYSIpLm9uKCJkdHNiLWRyb3BDcml0ZXJpYS5kdHNiIixmdW5jdGlvbigpe3ZhciBDPW8ucy50b0Ryb3A7cmV0dXJuIEMucy5pbmRleD1vLnMuaW5kZXgsQy51cGRhdGVBcnJvd3MoZi5zLmNyaXRlcmlhLmxlbmd0aD4xKSxmLmFkZENyaXRlcmlhKEMpLCExfSksby5zZXRMaXN0ZW5lcnMoKX0saC5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7dGhpcy5zZXRMaXN0ZW5lcnMoKSx0aGlzLmRvbS5hZGQuaHRtbCh0aGlzLnMuZHQuaTE4bigic2VhcmNoQnVpbGRlci5hZGQiLHRoaXMuYy5pMThuLmFkZCkpLHRoaXMuZG9tLnNlYXJjaC5odG1sKHRoaXMucy5kdC5pMThuKCJzZWFyY2hCdWlsZGVyLnNlYXJjaCIsdGhpcy5jLmkxOG4uc2VhcmNoKSksdGhpcy5kb20ubG9naWMuY2hpbGRyZW4oKS5maXJzdCgpLmh0bWwodGhpcy5jLmxvZ2ljPT09Ik9SIj90aGlzLnMuZHQuaTE4bigic2VhcmNoQnVpbGRlci5sb2dpY09yIix0aGlzLmMuaTE4bi5sb2dpY09yKTp0aGlzLnMuZHQuaTE4bigic2VhcmNoQnVpbGRlci5sb2dpY0FuZCIsdGhpcy5jLmkxOG4ubG9naWNBbmQpKSx0aGlzLnMubG9naWM9dGhpcy5jLmxvZ2ljPT09Ik9SIj8iT1IiOiJBTkQiLHRoaXMuYy5ncmV5c2NhbGUmJnRoaXMuZG9tLmxvZ2ljLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5ncmV5c2NhbGUpLHRoaXMuZG9tLmxvZ2ljQ29udGFpbmVyLmFwcGVuZCh0aGlzLmRvbS5sb2dpYykuYXBwZW5kKHRoaXMuZG9tLmNsZWFyKSx0aGlzLnMuaXNDaGlsZCYmdGhpcy5kb20uY29udGFpbmVyLmFwcGVuZCh0aGlzLmRvbS5sb2dpY0NvbnRhaW5lciksdGhpcy5kb20uY29udGFpbmVyLmFwcGVuZCh0aGlzLmRvbS5hZGQpLHRoaXMuYy5saXZlU2VhcmNofHx0aGlzLmRvbS5jb250YWluZXIuYXBwZW5kKHRoaXMuZG9tLnNlYXJjaCl9LGgucHJvdG90eXBlLl9zZXRMb2dpY0xpc3RlbmVyPWZ1bmN0aW9uKCl7dmFyIG89dGhpczt0aGlzLmRvbS5sb2dpYy51bmJpbmQoImNsaWNrIikub24oImNsaWNrLmR0c2IiLGZ1bmN0aW9uKCl7by5fdG9nZ2xlTG9naWMoKSxvLnMuZHQuZHJhdygpO2Zvcih2YXIgZj0wLEM9by5zLmNyaXRlcmlhO2Y8Qy5sZW5ndGg7ZisrKXt2YXIgQj1DW2ZdO0IuY3JpdGVyaWEuc2V0TGlzdGVuZXJzKCl9fSl9LGgucHJvdG90eXBlLl90b2dnbGVMb2dpYz1mdW5jdGlvbigpe3RoaXMucy5sb2dpYz09PSJPUiI/KHRoaXMucy5sb2dpYz0iQU5EIix0aGlzLmRvbS5sb2dpYy5jaGlsZHJlbigpLmZpcnN0KCkuaHRtbCh0aGlzLnMuZHQuaTE4bigic2VhcmNoQnVpbGRlci5sb2dpY0FuZCIsdGhpcy5jLmkxOG4ubG9naWNBbmQpKSk6dGhpcy5zLmxvZ2ljPT09IkFORCImJih0aGlzLnMubG9naWM9Ik9SIix0aGlzLmRvbS5sb2dpYy5jaGlsZHJlbigpLmZpcnN0KCkuaHRtbCh0aGlzLnMuZHQuaTE4bigic2VhcmNoQnVpbGRlci5sb2dpY09yIix0aGlzLmMuaTE4bi5sb2dpY09yKSkpfSxoLnZlcnNpb249IjEuMS4wIixoLmNsYXNzZXM9e2FkZDoiZHRzYi1hZGQiLGJ1dHRvbjoiZHRzYi1idXR0b24iLGNsZWFyR3JvdXA6ImR0c2ItY2xlYXJHcm91cCIsZ3JleXNjYWxlOiJkdHNiLWdyZXlzY2FsZSIsZ3JvdXA6ImR0c2ItZ3JvdXAiLGlucHV0QnV0dG9uOiJkdHNiLWlwdGJ0biIsbG9naWM6ImR0c2ItbG9naWMiLGxvZ2ljQ29udGFpbmVyOiJkdHNiLWxvZ2ljQ29udGFpbmVyIixzZWFyY2g6ImR0c2Itc2VhcmNoIn0saC5kZWZhdWx0cz17Y29sdW1uczohMCxjb25kaXRpb25zOntkYXRlOmEuZGF0ZUNvbmRpdGlvbnMsaHRtbDphLnN0cmluZ0NvbmRpdGlvbnMsImh0bWwtbnVtIjphLm51bUNvbmRpdGlvbnMsImh0bWwtbnVtLWZtdCI6YS5udW1GbXRDb25kaXRpb25zLGx1eG9uOmEubHV4b25EYXRlQ29uZGl0aW9ucyxtb21lbnQ6YS5tb21lbnREYXRlQ29uZGl0aW9ucyxudW06YS5udW1Db25kaXRpb25zLCJudW0tZm10IjphLm51bUZtdENvbmRpdGlvbnMsc3RyaW5nOmEuc3RyaW5nQ29uZGl0aW9uc30sZGVwdGhMaW1pdDohMSxlbnRlclNlYXJjaDohMSxmaWx0ZXJDaGFuZ2VkOnZvaWQgMCxncmV5c2NhbGU6ITEsbGl2ZVNlYXJjaDohMCxpMThuOnthZGQ6IkFkZCBDb25kaXRpb24iLGJ1dHRvbjp7MDoiU2VhcmNoIEJ1aWxkZXIiLF86IlNlYXJjaCBCdWlsZGVyICglZCkifSxjbGVhckFsbDoiQ2xlYXIgQWxsIixjb25kaXRpb246IkNvbmRpdGlvbiIsZGF0YToiRGF0YSIsZGVsZXRlOiImdGltZXMiLGRlbGV0ZVRpdGxlOiJEZWxldGUgZmlsdGVyaW5nIHJ1bGUiLGxlZnQ6IjwiLGxlZnRUaXRsZToiT3V0ZGVudCBjcml0ZXJpYSIsbG9naWNBbmQ6IkFuZCIsbG9naWNPcjoiT3IiLHJpZ2h0OiI+IixyaWdodFRpdGxlOiJJbmRlbnQgY3JpdGVyaWEiLHNlYXJjaDoiU2VhcmNoIix0aXRsZTp7MDoiQ3VzdG9tIFNlYXJjaCBCdWlsZGVyIixfOiJDdXN0b20gU2VhcmNoIEJ1aWxkZXIgKCVkKSJ9LHZhbHVlOiJWYWx1ZSIsdmFsdWVKb2luZXI6ImFuZCJ9LGxvZ2ljOiJBTkQiLG9ydGhvZ29uYWw6e2Rpc3BsYXk6ImRpc3BsYXkiLHNlYXJjaDoiZmlsdGVyIn0scHJlRGVmaW5lZDohMX0saH0oKSxtLHk7ZnVuY3Rpb24gVChoKXttPWgseT1oLmZuLkRhdGFUYWJsZX12YXIgdz1mdW5jdGlvbigpe2Z1bmN0aW9uIGgobyxmKXt2YXIgQz10aGlzO2lmKCF5fHwheS52ZXJzaW9uQ2hlY2t8fCF5LnZlcnNpb25DaGVjaygiMS4xMC4wIikpdGhyb3cgbmV3IEVycm9yKCJTZWFyY2hCdWlsZGVyIHJlcXVpcmVzIERhdGFUYWJsZXMgMS4xMCBvciBuZXdlciIpO3ZhciBCPW5ldyB5LkFwaShvKTtpZih0aGlzLmNsYXNzZXM9bS5leHRlbmQoITAse30saC5jbGFzc2VzKSx0aGlzLmM9bS5leHRlbmQoITAse30saC5kZWZhdWx0cyxmKSx0aGlzLmRvbT17Y2xlYXJBbGw6bSgnPGJ1dHRvbiB0eXBlPSJidXR0b24iPicrQi5pMThuKCJzZWFyY2hCdWlsZGVyLmNsZWFyQWxsIix0aGlzLmMuaTE4bi5jbGVhckFsbCkrIjwvYnV0dG9uPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5jbGVhckFsbCkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmJ1dHRvbikuYXR0cigidHlwZSIsImJ1dHRvbiIpLGNvbnRhaW5lcjptKCI8ZGl2Lz4iKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuY29udGFpbmVyKSx0aXRsZTptKCI8ZGl2Lz4iKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMudGl0bGUpLHRpdGxlUm93Om0oIjxkaXYvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy50aXRsZVJvdyksdG9wR3JvdXA6dm9pZCAwfSx0aGlzLnM9e2R0OkIsb3B0czpmLHNlYXJjaDp2b2lkIDAsc2VydmVyRGF0YTp2b2lkIDAsdG9wR3JvdXA6dm9pZCAwfSxCLnNldHRpbmdzKClbMF0uX3NlYXJjaEJ1aWxkZXI9PT12b2lkIDApcmV0dXJuIEIuc2V0dGluZ3MoKVswXS5fc2VhcmNoQnVpbGRlcj10aGlzLHRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlJiYodGhpcy5zLmR0Lm9uKCJwcmVYaHIuZHRzYiIsZnVuY3Rpb24odSx6LHEpe3ZhciBldD1DLnMuZHQuc3RhdGUubG9hZGVkKCk7ZXQmJmV0LnNlYXJjaEJ1aWxkZXImJihxLnNlYXJjaEJ1aWxkZXI9Qy5fY29sbGFwc2VBcnJheShldC5zZWFyY2hCdWlsZGVyKSl9KSx0aGlzLnMuZHQub24oInhoci5kdHNiIixmdW5jdGlvbih1LHoscSl7cSYmcS5zZWFyY2hCdWlsZGVyJiZxLnNlYXJjaEJ1aWxkZXIub3B0aW9ucyYmKEMucy5zZXJ2ZXJEYXRhPXEuc2VhcmNoQnVpbGRlci5vcHRpb25zKX0pKSx0aGlzLnMuZHQuc2V0dGluZ3MoKVswXS5fYkluaXRDb21wbGV0ZT90aGlzLl9zZXRVcCgpOkIub25lKCJpbml0LmR0IixmdW5jdGlvbigpe0MuX3NldFVwKCl9KSx0aGlzfXJldHVybiBoLnByb3RvdHlwZS5nZXREZXRhaWxzPWZ1bmN0aW9uKG8pe3JldHVybiBvPT09dm9pZCAwJiYobz0hMSksdGhpcy5zLnRvcEdyb3VwLmdldERldGFpbHMobyl9LGgucHJvdG90eXBlLmdldE5vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb20uY29udGFpbmVyfSxoLnByb3RvdHlwZS5yZWJ1aWxkPWZ1bmN0aW9uKG8pe3JldHVybiB0aGlzLmRvbS5jbGVhckFsbC5jbGljaygpLG89PW51bGw/dGhpczoodGhpcy5zLnRvcEdyb3VwLnMucHJldmVudFJlZHJhdz0hMCx0aGlzLnMudG9wR3JvdXAucmVidWlsZChvKSx0aGlzLnMudG9wR3JvdXAucy5wcmV2ZW50UmVkcmF3PSExLHRoaXMuX2NoZWNrQ2xlYXIoKSx0aGlzLl91cGRhdGVUaXRsZSh0aGlzLnMudG9wR3JvdXAuY291bnQoKSksdGhpcy5zLnRvcEdyb3VwLnJlZHJhd0NvbnRlbnRzKCksdGhpcy5zLmR0LmRyYXcoITEpLHRoaXMucy50b3BHcm91cC5zZXRMaXN0ZW5lcnMoKSx0aGlzKX0saC5wcm90b3R5cGUuX2FwcGx5UHJlRGVmRGVmYXVsdHM9ZnVuY3Rpb24obyl7dmFyIGY9dGhpcztvLmNyaXRlcmlhIT09dm9pZCAwJiZvLmxvZ2ljPT09dm9pZCAwJiYoby5sb2dpYz0iQU5EIik7Zm9yKHZhciBDPWZ1bmN0aW9uKGV0KXtldC5jcml0ZXJpYSE9PXZvaWQgMD9ldD1CLl9hcHBseVByZURlZkRlZmF1bHRzKGV0KTpCLnMuZHQuY29sdW1ucygpLmV2ZXJ5KGZ1bmN0aW9uKE8pe2Yucy5kdC5zZXR0aW5ncygpWzBdLmFvQ29sdW1uc1tPXS5zVGl0bGU9PT1ldC5kYXRhJiYoZXQuZGF0YUlkeD1PKX0pfSxCPXRoaXMsdT0wLHo9by5jcml0ZXJpYTt1PHoubGVuZ3RoO3UrKyl7dmFyIHE9elt1XTtDKHEpfXJldHVybiBvfSxoLnByb3RvdHlwZS5fc2V0VXA9ZnVuY3Rpb24obyl7dmFyIGY9dGhpcztpZihvPT09dm9pZCAwJiYobz0hMCksdHlwZW9mIHRoaXMucy5kdC5jb2x1bW4oKS50eXBlIT0iZnVuY3Rpb24iJiZzdC5BcGkucmVnaXN0ZXJQbHVyYWwoImNvbHVtbnMoKS50eXBlcygpIiwiY29sdW1uKCkudHlwZSgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKF8sUyl7cmV0dXJuIF8uYW9Db2x1bW5zW1NdLnNUeXBlfSwxKX0pLCF5LkRhdGVUaW1lKXt2YXIgQz10aGlzLnMuZHQuY29sdW1ucygpLnR5cGVzKCkudG9BcnJheSgpO2lmKEM9PT12b2lkIDB8fEMuaW5jbHVkZXModm9pZCAwKXx8Qy5pbmNsdWRlcyhudWxsKSl7Qz1bXTtmb3IodmFyIEI9MCx1PXRoaXMucy5kdC5zZXR0aW5ncygpWzBdLmFvQ29sdW1ucztCPHUubGVuZ3RoO0IrKyl7dmFyIHo9dVtCXTtDLnB1c2goei5zZWFyY2hCdWlsZGVyVHlwZSE9PXZvaWQgMD96LnNlYXJjaEJ1aWxkZXJUeXBlOnouc1R5cGUpfX12YXIgcT10aGlzLnMuZHQuY29sdW1ucygpLnRvQXJyYXkoKTsoQz09PXZvaWQgMHx8Qy5pbmNsdWRlcyh2b2lkIDApfHxDLmluY2x1ZGVzKG51bGwpKSYmKG0uZm4uZGF0YVRhYmxlLmV4dC5vQXBpJiZtLmZuLmRhdGFUYWJsZS5leHQub0FwaS5fZm5Db2x1bW5UeXBlcyh0aGlzLnMuZHQuc2V0dGluZ3MoKVswXSksQz10aGlzLnMuZHQuY29sdW1ucygpLnR5cGVzKCkudG9BcnJheSgpKTtmb3IodmFyIGV0PTA7ZXQ8cVswXS5sZW5ndGg7ZXQrKyl7dmFyIE89cVswXVtldF0sWj1DW09dO2lmKCh0aGlzLmMuY29sdW1ucz09PSEwfHxBcnJheS5pc0FycmF5KHRoaXMuYy5jb2x1bW5zKSYmdGhpcy5jLmNvbHVtbnMuaW5jbHVkZXMoZXQpKSYmKFouaW5jbHVkZXMoImRhdGUiKXx8Wi5pbmNsdWRlcygibW9tZW50Iil8fFouaW5jbHVkZXMoImx1eG9uIikpKXRocm93IGFsZXJ0KCJTZWFyY2hCdWlsZGVyIFJlcXVpcmVzIERhdGVUaW1lIHdoZW4gdXNlZCB3aXRoIGRhdGVzLiIpLG5ldyBFcnJvcigiU2VhcmNoQnVpbGRlciByZXF1aXJlcyBEYXRlVGltZSIpfX1pZih0aGlzLnMudG9wR3JvdXA9bmV3IGIodGhpcy5zLmR0LHRoaXMuYyx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdGhpcy5zLnNlcnZlckRhdGEpLHRoaXMuX3NldENsZWFyTGlzdGVuZXIoKSx0aGlzLnMuZHQub24oInN0YXRlU2F2ZVBhcmFtcy5kdHNiIixmdW5jdGlvbihfLFMsTil7Ti5zZWFyY2hCdWlsZGVyPWYuZ2V0RGV0YWlscygpLE4uc2Nyb2xsZXI/Ti5zdGFydD1mLnMuZHQuc3RhdGUoKS5zdGFydDpOLnBhZ2U9Zi5zLmR0LnBhZ2UoKX0pLHRoaXMucy5kdC5vbigic3RhdGVMb2FkUGFyYW1zLmR0c2IiLGZ1bmN0aW9uKF8sUyxOKXtmLnJlYnVpbGQoTi5zZWFyY2hCdWlsZGVyKX0pLHRoaXMuX2J1aWxkKCksdGhpcy5zLmR0Lm9uKCJwcmVYaHIuZHRzYiIsZnVuY3Rpb24oXyxTLE4pe2Yucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlJiYoTi5zZWFyY2hCdWlsZGVyPWYuX2NvbGxhcHNlQXJyYXkoZi5nZXREZXRhaWxzKCEwKSkpfSksdGhpcy5zLmR0Lm9uKHkudmVyc2lvbkNoZWNrKCIyIik/ImNvbHVtbnMtcmVvcmRlcmVkIjoiY29sdW1uLXJlb3JkZXIiLGZ1bmN0aW9uKCl7Zi5yZWJ1aWxkKGYuZ2V0RGV0YWlscygpKX0pLG8pe3ZhciBnPXRoaXMucy5kdC5zdGF0ZS5sb2FkZWQoKTtnIT09bnVsbCYmZy5zZWFyY2hCdWlsZGVyIT09dm9pZCAwPyh0aGlzLnMudG9wR3JvdXAucmVidWlsZChnLnNlYXJjaEJ1aWxkZXIpLHRoaXMucy50b3BHcm91cC5kb20uY29udGFpbmVyLnRyaWdnZXIoImR0c2ItcmVkcmF3Q29udGVudHMiKSx0aGlzLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZXx8KGcucGFnZT90aGlzLnMuZHQucGFnZShnLnBhZ2UpLmRyYXcoInBhZ2UiKTp0aGlzLnMuZHQuc2Nyb2xsZXImJmcuc2Nyb2xsZXImJnRoaXMucy5kdC5zY3JvbGxlcigpLnNjcm9sbFRvUm93KGcuc2Nyb2xsZXIudG9wUm93KSksdGhpcy5zLnRvcEdyb3VwLnNldExpc3RlbmVycygpKTp0aGlzLmMucHJlRGVmaW5lZCE9PSExJiYodGhpcy5jLnByZURlZmluZWQ9dGhpcy5fYXBwbHlQcmVEZWZEZWZhdWx0cyh0aGlzLmMucHJlRGVmaW5lZCksdGhpcy5yZWJ1aWxkKHRoaXMuYy5wcmVEZWZpbmVkKSl9dGhpcy5fc2V0RW1wdHlMaXN0ZW5lcigpLHRoaXMucy5kdC5zdGF0ZS5zYXZlKCl9LGgucHJvdG90eXBlLl9jb2xsYXBzZUFycmF5PWZ1bmN0aW9uKG8pe2lmKG8ubG9naWM9PT12b2lkIDApby52YWx1ZSE9PXZvaWQgMCYmKG8udmFsdWUuc29ydChmdW5jdGlvbihDLEIpe3JldHVybiBpc05hTigrQyl8fChDPStDLEI9K0IpLEM8Qj8tMTpCPEM/MTowfSksby52YWx1ZTE9by52YWx1ZVswXSxvLnZhbHVlMj1vLnZhbHVlWzFdKTtlbHNlIGZvcih2YXIgZj0wO2Y8by5jcml0ZXJpYS5sZW5ndGg7ZisrKW8uY3JpdGVyaWFbZl09dGhpcy5fY29sbGFwc2VBcnJheShvLmNyaXRlcmlhW2ZdKTtyZXR1cm4gb30saC5wcm90b3R5cGUuX3VwZGF0ZVRpdGxlPWZ1bmN0aW9uKG8pe3RoaXMuZG9tLnRpdGxlLmh0bWwodGhpcy5zLmR0LmkxOG4oInNlYXJjaEJ1aWxkZXIudGl0bGUiLHRoaXMuYy5pMThuLnRpdGxlLG8pKX0saC5wcm90b3R5cGUuX2J1aWxkPWZ1bmN0aW9uKCl7dmFyIG89dGhpczt0aGlzLmRvbS5jbGVhckFsbC5yZW1vdmUoKSx0aGlzLmRvbS5jb250YWluZXIuZW1wdHkoKTt2YXIgZj10aGlzLnMudG9wR3JvdXAuY291bnQoKTt0aGlzLl91cGRhdGVUaXRsZShmKSx0aGlzLmRvbS50aXRsZVJvdy5hcHBlbmQodGhpcy5kb20udGl0bGUpLHRoaXMuZG9tLmNvbnRhaW5lci5hcHBlbmQodGhpcy5kb20udGl0bGVSb3cpLHRoaXMuZG9tLnRvcEdyb3VwPXRoaXMucy50b3BHcm91cC5nZXROb2RlKCksdGhpcy5kb20uY29udGFpbmVyLmFwcGVuZCh0aGlzLmRvbS50b3BHcm91cCksdGhpcy5fc2V0UmVkcmF3TGlzdGVuZXIoKTt2YXIgQz10aGlzLnMuZHQudGFibGUoMCkubm9kZSgpO20uZm4uZGF0YVRhYmxlLmV4dC5zZWFyY2guaW5jbHVkZXModGhpcy5zLnNlYXJjaCl8fCh0aGlzLnMuc2VhcmNoPWZ1bmN0aW9uKEIsdSx6KXtyZXR1cm4gQi5uVGFibGUhPT1DPyEwOm8ucy50b3BHcm91cC5zZWFyY2godSx6KX0sbS5mbi5kYXRhVGFibGUuZXh0LnNlYXJjaC5wdXNoKHRoaXMucy5zZWFyY2gpKSx0aGlzLnMuZHQub24oImRlc3Ryb3kuZHRzYiIsZnVuY3Rpb24oKXtvLmRvbS5jb250YWluZXIucmVtb3ZlKCksby5kb20uY2xlYXJBbGwucmVtb3ZlKCk7Zm9yKHZhciBCPW0uZm4uZGF0YVRhYmxlLmV4dC5zZWFyY2guaW5kZXhPZihvLnMuc2VhcmNoKTtCIT09LTE7KW0uZm4uZGF0YVRhYmxlLmV4dC5zZWFyY2guc3BsaWNlKEIsMSksQj1tLmZuLmRhdGFUYWJsZS5leHQuc2VhcmNoLmluZGV4T2Yoby5zLnNlYXJjaCk7by5zLmR0Lm9mZigiLmR0c2IiKSxtKG8ucy5kdC50YWJsZSgpLm5vZGUoKSkub2ZmKCIuZHRzYiIpfSl9LGgucHJvdG90eXBlLl9jaGVja0NsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zLnRvcEdyb3VwLnMuY3JpdGVyaWEubGVuZ3RoPjA/KHRoaXMuZG9tLmNsZWFyQWxsLmluc2VydEFmdGVyKHRoaXMuZG9tLnRpdGxlKSx0aGlzLl9zZXRDbGVhckxpc3RlbmVyKCkpOnRoaXMuZG9tLmNsZWFyQWxsLnJlbW92ZSgpfSxoLnByb3RvdHlwZS5fZmlsdGVyQ2hhbmdlZD1mdW5jdGlvbihvKXt2YXIgZj10aGlzLmMuZmlsdGVyQ2hhbmdlZDt0eXBlb2YgZj09ImZ1bmN0aW9uIiYmZihvLHRoaXMucy5kdC5pMThuKCJzZWFyY2hCdWlsZGVyLmJ1dHRvbiIsdGhpcy5jLmkxOG4uYnV0dG9uLG8pKX0saC5wcm90b3R5cGUuX3NldENsZWFyTGlzdGVuZXI9ZnVuY3Rpb24oKXt2YXIgbz10aGlzO3RoaXMuZG9tLmNsZWFyQWxsLnVuYmluZCgiY2xpY2siKSx0aGlzLmRvbS5jbGVhckFsbC5vbigiY2xpY2suZHRzYiIsZnVuY3Rpb24oKXtyZXR1cm4gby5zLnRvcEdyb3VwPW5ldyBiKG8ucy5kdCxvLmMsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLG8ucy5zZXJ2ZXJEYXRhKSxvLl9idWlsZCgpLG8ucy5kdC5kcmF3KCksby5zLnRvcEdyb3VwLnNldExpc3RlbmVycygpLG8uZG9tLmNsZWFyQWxsLnJlbW92ZSgpLG8uX3NldEVtcHR5TGlzdGVuZXIoKSxvLl9maWx0ZXJDaGFuZ2VkKDApLCExfSl9LGgucHJvdG90eXBlLl9zZXRSZWRyYXdMaXN0ZW5lcj1mdW5jdGlvbigpe3ZhciBvPXRoaXM7dGhpcy5zLnRvcEdyb3VwLmRvbS5jb250YWluZXIudW5iaW5kKCJkdHNiLXJlZHJhd0NvbnRlbnRzIiksdGhpcy5zLnRvcEdyb3VwLmRvbS5jb250YWluZXIub24oImR0c2ItcmVkcmF3Q29udGVudHMuZHRzYiIsZnVuY3Rpb24oKXtvLl9jaGVja0NsZWFyKCksby5zLnRvcEdyb3VwLnJlZHJhd0NvbnRlbnRzKCksby5zLnRvcEdyb3VwLnNldHVwTG9naWMoKSxvLl9zZXRFbXB0eUxpc3RlbmVyKCk7dmFyIGY9by5zLnRvcEdyb3VwLmNvdW50KCk7by5fdXBkYXRlVGl0bGUoZiksby5fZmlsdGVyQ2hhbmdlZChmKSxvLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZXx8by5zLmR0LmRyYXcoKSxvLnMuZHQuc3RhdGUuc2F2ZSgpfSksdGhpcy5zLnRvcEdyb3VwLmRvbS5jb250YWluZXIudW5iaW5kKCJkdHNiLXJlZHJhd0NvbnRlbnRzLW5vRHJhdyIpLHRoaXMucy50b3BHcm91cC5kb20uY29udGFpbmVyLm9uKCJkdHNiLXJlZHJhd0NvbnRlbnRzLW5vRHJhdy5kdHNiIixmdW5jdGlvbigpe28uX2NoZWNrQ2xlYXIoKSxvLnMudG9wR3JvdXAucy5wcmV2ZW50UmVkcmF3PSEwLG8ucy50b3BHcm91cC5yZWRyYXdDb250ZW50cygpLG8ucy50b3BHcm91cC5zLnByZXZlbnRSZWRyYXc9ITEsby5zLnRvcEdyb3VwLnNldHVwTG9naWMoKSxvLl9zZXRFbXB0eUxpc3RlbmVyKCk7dmFyIGY9by5zLnRvcEdyb3VwLmNvdW50KCk7by5fdXBkYXRlVGl0bGUoZiksby5fZmlsdGVyQ2hhbmdlZChmKX0pLHRoaXMucy50b3BHcm91cC5kb20uY29udGFpbmVyLnVuYmluZCgiZHRzYi1yZWRyYXdMb2dpYyIpLHRoaXMucy50b3BHcm91cC5kb20uY29udGFpbmVyLm9uKCJkdHNiLXJlZHJhd0xvZ2ljLmR0c2IiLGZ1bmN0aW9uKCl7by5zLnRvcEdyb3VwLnJlZHJhd0xvZ2ljKCk7dmFyIGY9by5zLnRvcEdyb3VwLmNvdW50KCk7by5fdXBkYXRlVGl0bGUoZiksby5fZmlsdGVyQ2hhbmdlZChmKX0pLHRoaXMucy50b3BHcm91cC5kb20uY29udGFpbmVyLnVuYmluZCgiZHRzYi1hZGQiKSx0aGlzLnMudG9wR3JvdXAuZG9tLmNvbnRhaW5lci5vbigiZHRzYi1hZGQuZHRzYiIsZnVuY3Rpb24oKXt2YXIgZj1vLnMudG9wR3JvdXAuY291bnQoKTtvLl91cGRhdGVUaXRsZShmKSxvLl9maWx0ZXJDaGFuZ2VkKGYpLG8uX2NoZWNrQ2xlYXIoKX0pLHRoaXMucy5kdC5vbigicG9zdEVkaXQuZHRzYiBwb3N0Q3JlYXRlLmR0c2IgcG9zdFJlbW92ZS5kdHNiIixmdW5jdGlvbigpe28ucy50b3BHcm91cC5yZWRyYXdDb250ZW50cygpfSksdGhpcy5zLnRvcEdyb3VwLmRvbS5jb250YWluZXIudW5iaW5kKCJkdHNiLWNsZWFyQ29udGVudHMiKSx0aGlzLnMudG9wR3JvdXAuZG9tLmNvbnRhaW5lci5vbigiZHRzYi1jbGVhckNvbnRlbnRzLmR0c2IiLGZ1bmN0aW9uKCl7by5fc2V0VXAoITEpLG8uX2ZpbHRlckNoYW5nZWQoMCksby5zLmR0LmRyYXcoKX0pfSxoLnByb3RvdHlwZS5fc2V0RW1wdHlMaXN0ZW5lcj1mdW5jdGlvbigpe3ZhciBvPXRoaXM7dGhpcy5zLnRvcEdyb3VwLmRvbS5hZGQub24oImNsaWNrLmR0c2IiLGZ1bmN0aW9uKCl7by5fY2hlY2tDbGVhcigpfSksdGhpcy5zLnRvcEdyb3VwLmRvbS5jb250YWluZXIub24oImR0c2ItZGVzdHJveS5kdHNiIixmdW5jdGlvbigpe28uZG9tLmNsZWFyQWxsLnJlbW92ZSgpfSl9LGgudmVyc2lvbj0iMS43LjEiLGguY2xhc3Nlcz17YnV0dG9uOiJkdHNiLWJ1dHRvbiIsY2xlYXJBbGw6ImR0c2ItY2xlYXJBbGwiLGNvbnRhaW5lcjoiZHRzYi1zZWFyY2hCdWlsZGVyIixpbnB1dEJ1dHRvbjoiZHRzYi1pcHRidG4iLHRpdGxlOiJkdHNiLXRpdGxlIix0aXRsZVJvdzoiZHRzYi10aXRsZVJvdyJ9LGguZGVmYXVsdHM9e2NvbHVtbnM6ITAsY29uZGl0aW9uczp7ZGF0ZTphLmRhdGVDb25kaXRpb25zLGh0bWw6YS5zdHJpbmdDb25kaXRpb25zLCJodG1sLW51bSI6YS5udW1Db25kaXRpb25zLCJodG1sLW51bS1mbXQiOmEubnVtRm10Q29uZGl0aW9ucyxsdXhvbjphLmx1eG9uRGF0ZUNvbmRpdGlvbnMsbW9tZW50OmEubW9tZW50RGF0ZUNvbmRpdGlvbnMsbnVtOmEubnVtQ29uZGl0aW9ucywibnVtLWZtdCI6YS5udW1GbXRDb25kaXRpb25zLHN0cmluZzphLnN0cmluZ0NvbmRpdGlvbnN9LGRlcHRoTGltaXQ6ITEsZW50ZXJTZWFyY2g6ITEsZmlsdGVyQ2hhbmdlZDp2b2lkIDAsZ3JleXNjYWxlOiExLGxpdmVTZWFyY2g6ITAsaTE4bjp7YWRkOiJBZGQgQ29uZGl0aW9uIixidXR0b246ezA6IlNlYXJjaCBCdWlsZGVyIixfOiJTZWFyY2ggQnVpbGRlciAoJWQpIn0sY2xlYXJBbGw6IkNsZWFyIEFsbCIsY29uZGl0aW9uOiJDb25kaXRpb24iLGNvbmRpdGlvbnM6e2FycmF5Ontjb250YWluczoiQ29udGFpbnMiLGVtcHR5OiJFbXB0eSIsZXF1YWxzOiJFcXVhbHMiLG5vdDoiTm90Iixub3RFbXB0eToiTm90IEVtcHR5Iix3aXRob3V0OiJXaXRob3V0In0sZGF0ZTp7YWZ0ZXI6IkFmdGVyIixiZWZvcmU6IkJlZm9yZSIsYmV0d2VlbjoiQmV0d2VlbiIsZW1wdHk6IkVtcHR5IixlcXVhbHM6IkVxdWFscyIsbm90OiJOb3QiLG5vdEJldHdlZW46Ik5vdCBCZXR3ZWVuIixub3RFbXB0eToiTm90IEVtcHR5In0sbnVtYmVyOntiZXR3ZWVuOiJCZXR3ZWVuIixlbXB0eToiRW1wdHkiLGVxdWFsczoiRXF1YWxzIixndDoiR3JlYXRlciBUaGFuIixndGU6IkdyZWF0ZXIgVGhhbiBFcXVhbCBUbyIsbHQ6Ikxlc3MgVGhhbiIsbHRlOiJMZXNzIFRoYW4gRXF1YWwgVG8iLG5vdDoiTm90Iixub3RCZXR3ZWVuOiJOb3QgQmV0d2VlbiIsbm90RW1wdHk6Ik5vdCBFbXB0eSJ9LHN0cmluZzp7Y29udGFpbnM6IkNvbnRhaW5zIixlbXB0eToiRW1wdHkiLGVuZHNXaXRoOiJFbmRzIFdpdGgiLGVxdWFsczoiRXF1YWxzIixub3Q6Ik5vdCIsbm90Q29udGFpbnM6IkRvZXMgTm90IENvbnRhaW4iLG5vdEVtcHR5OiJOb3QgRW1wdHkiLG5vdEVuZHNXaXRoOiJEb2VzIE5vdCBFbmQgV2l0aCIsbm90U3RhcnRzV2l0aDoiRG9lcyBOb3QgU3RhcnQgV2l0aCIsc3RhcnRzV2l0aDoiU3RhcnRzIFdpdGgifX0sZGF0YToiRGF0YSIsZGVsZXRlOiImdGltZXMiLGRlbGV0ZVRpdGxlOiJEZWxldGUgZmlsdGVyaW5nIHJ1bGUiLGxlZnQ6IjwiLGxlZnRUaXRsZToiT3V0ZGVudCBjcml0ZXJpYSIsbG9naWNBbmQ6IkFuZCIsbG9naWNPcjoiT3IiLHJpZ2h0OiI+IixyaWdodFRpdGxlOiJJbmRlbnQgY3JpdGVyaWEiLHNlYXJjaDoiU2VhcmNoIix0aXRsZTp7MDoiQ3VzdG9tIFNlYXJjaCBCdWlsZGVyIixfOiJDdXN0b20gU2VhcmNoIEJ1aWxkZXIgKCVkKSJ9LHZhbHVlOiJWYWx1ZSIsdmFsdWVKb2luZXI6ImFuZCJ9LGxvZ2ljOiJBTkQiLG9ydGhvZ29uYWw6e2Rpc3BsYXk6ImRpc3BsYXkiLHNlYXJjaDoiZmlsdGVyIn0scHJlRGVmaW5lZDohMX0saH0oKTtUKGFyKSxwKGFyKSxzKGFyKTt2YXIgaz1hci5mbi5kYXRhVGFibGU7c3QuU2VhcmNoQnVpbGRlcj13LGsuU2VhcmNoQnVpbGRlcj13LHN0Lkdyb3VwPWIsay5Hcm91cD1iLHN0LkNyaXRlcmlhPWEsay5Dcml0ZXJpYT1hO3ZhciBQPXN0LkFwaS5yZWdpc3RlcjtzdC5leHQuc2VhcmNoQnVpbGRlcj17Y29uZGl0aW9uczp7fX0sc3QuZXh0LmJ1dHRvbnMuc2VhcmNoQnVpbGRlcj17YWN0aW9uOmZ1bmN0aW9uKGgsbyxmLEMpe3RoaXMucG9wb3ZlcihDLl9zZWFyY2hCdWlsZGVyLmdldE5vZGUoKSx7YWxpZ246ImNvbnRhaW5lciIsc3BhbjoiY29udGFpbmVyIn0pO3ZhciBCPUMuX3NlYXJjaEJ1aWxkZXIucy50b3BHcm91cDtCIT09dm9pZCAwJiZCLmRvbS5jb250YWluZXIudHJpZ2dlcigiZHRzYi1yZWRyYXdDb250ZW50cy1ub0RyYXciKSxCLnMuY3JpdGVyaWEubGVuZ3RoPT09MCYmYXIoIi4iK2FyLmZuLmRhdGFUYWJsZS5Hcm91cC5jbGFzc2VzLmFkZC5yZXBsYWNlKC8gL2csIi4iKSkuY2xpY2soKX0sY29uZmlnOnt9LGluaXQ6ZnVuY3Rpb24oaCxvLGYpe3ZhciBDPW5ldyBzdC5TZWFyY2hCdWlsZGVyKGgsYXIuZXh0ZW5kKHtmaWx0ZXJDaGFuZ2VkOmZ1bmN0aW9uKEIsdSl7aC5idXR0b24obykudGV4dCh1KX19LGYuY29uZmlnKSk7aC5idXR0b24obykudGV4dChmLnRleHR8fGguaTE4bigic2VhcmNoQnVpbGRlci5idXR0b24iLEMuYy5pMThuLmJ1dHRvbiwwKSksZi5fc2VhcmNoQnVpbGRlcj1DfSx0ZXh0Om51bGx9LFAoInNlYXJjaEJ1aWxkZXIuZ2V0RGV0YWlscygpIixmdW5jdGlvbihoKXtoPT09dm9pZCAwJiYoaD0hMSk7dmFyIG89dGhpcy5jb250ZXh0WzBdO3JldHVybiBvLl9zZWFyY2hCdWlsZGVyP28uX3NlYXJjaEJ1aWxkZXIuZ2V0RGV0YWlscyhoKTpudWxsfSksUCgic2VhcmNoQnVpbGRlci5yZWJ1aWxkKCkiLGZ1bmN0aW9uKGgpe3ZhciBvPXRoaXMuY29udGV4dFswXTtyZXR1cm4gby5fc2VhcmNoQnVpbGRlcj09PXZvaWQgMD9udWxsOihvLl9zZWFyY2hCdWlsZGVyLnJlYnVpbGQoaCksdGhpcyl9KSxQKCJzZWFyY2hCdWlsZGVyLmNvbnRhaW5lcigpIixmdW5jdGlvbigpe3ZhciBoPXRoaXMuY29udGV4dFswXTtyZXR1cm4gaC5fc2VhcmNoQnVpbGRlcj9oLl9zZWFyY2hCdWlsZGVyLmdldE5vZGUoKTpudWxsfSk7ZnVuY3Rpb24gRihoLG8pe3ZhciBmPW5ldyBzdC5BcGkoaCksQz1vfHxmLmluaXQoKS5zZWFyY2hCdWlsZGVyfHxzdC5kZWZhdWx0cy5zZWFyY2hCdWlsZGVyLEI9bmV3IHcoZixDKSx1PUIuZ2V0Tm9kZSgpO3JldHVybiB1fWFyKGRvY3VtZW50KS5vbigicHJlSW5pdC5kdC5kdHNwIixmdW5jdGlvbihoLG8pe2gubmFtZXNwYWNlPT09ImR0IiYmKG8ub0luaXQuc2VhcmNoQnVpbGRlcnx8c3QuZGVmYXVsdHMuc2VhcmNoQnVpbGRlcikmJihvLl9zZWFyY2hCdWlsZGVyfHxGKG8pKX0pLHN0LmV4dC5mZWF0dXJlLnB1c2goe2NGZWF0dXJlOiJRIixmbkluaXQ6Rn0pLHN0LmZlYXR1cmUmJnN0LmZlYXR1cmUucmVnaXN0ZXIoInNlYXJjaEJ1aWxkZXIiLEYpfSkoKTt2YXIgSGw9bmUoaWUoKSwxKTt2YXIgTHM9bmUoaWUoKSwxKTt2YXIgcWU9THMuZGVmYXVsdDsoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHQsZTtmdW5jdGlvbiByKGcpe3Q9ZyxlPWcuZm4uZGF0YVRhYmxlfXZhciBuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZyhfLFMsTixSLEwpe3ZhciBYPXRoaXM7aWYoTD09PXZvaWQgMCYmKEw9bnVsbCksIWV8fCFlLnZlcnNpb25DaGVja3x8IWUudmVyc2lvbkNoZWNrKCIxLjEwLjAiKSl0aHJvdyBuZXcgRXJyb3IoIlNlYXJjaFBhbmUgcmVxdWlyZXMgRGF0YVRhYmxlcyAxLjEwIG9yIG5ld2VyIik7aWYoIWUuc2VsZWN0KXRocm93IG5ldyBFcnJvcigiU2VhcmNoUGFuZSByZXF1aXJlcyBTZWxlY3QiKTt2YXIgaj1uZXcgZS5BcGkoXyk7dGhpcy5jbGFzc2VzPXQuZXh0ZW5kKCEwLHt9LGcuY2xhc3NlcyksdGhpcy5jPXQuZXh0ZW5kKCEwLHt9LGcuZGVmYXVsdHMsUyxMKSxTJiZTLmhpZGVDb3VudCYmUy52aWV3Q291bnQ9PT12b2lkIDAmJih0aGlzLmMudmlld0NvdW50PSF0aGlzLmMuaGlkZUNvdW50KTt2YXIgRz1qLmNvbHVtbnMoKS5lcSgwKS50b0FycmF5KCkubGVuZ3RoO3RoaXMucz17Y29sRXhpc3RzOk48Ryxjb2xPcHRzOnZvaWQgMCxjdXN0b21QYW5lU2V0dGluZ3M6TCxkaXNwbGF5ZWQ6ITEsZHQ6aixkdFBhbmU6dm9pZCAwLGZpcnN0U2V0OiEwLGluZGV4Ok4saW5kZXhlczpbXSxsaXN0U2V0OiExLG5hbWU6dm9pZCAwLHJvd0RhdGE6e2FycmF5RmlsdGVyOltdLGFycmF5T3JpZ2luYWw6W10sYmluczp7fSxiaW5zT3JpZ2luYWw6e30sZmlsdGVyTWFwOm5ldyBNYXAsdG90YWxPcHRpb25zOjB9LHNjcm9sbFRvcDowLHNlYXJjaEZ1bmN0aW9uOnZvaWQgMCxzZWxlY3Rpb25zOltdLHNlcnZlclNlbGVjdDpbXSxzZXJ2ZXJTZWxlY3Rpbmc6ITEsdGFibGVMZW5ndGg6bnVsbCx1cGRhdGluZzohMX0sdGhpcy5zLmNvbE9wdHM9dGhpcy5zLmNvbEV4aXN0cz90aGlzLl9nZXRPcHRpb25zKCk6dGhpcy5fZ2V0Qm9udXNPcHRpb25zKCksdGhpcy5kb209e2J1dHRvbkdyb3VwOnQoIjxkaXYvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5idXR0b25Hcm91cCksY2xlYXI6dCgnPGJ1dHRvbiB0eXBlPSJidXR0b24iPiYjMjE1OzwvYnV0dG9uPicpLmF0dHIoImRpc2FibGVkIiwidHJ1ZSIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnBhbmVCdXR0b24pLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5jbGVhckJ1dHRvbikuaHRtbCh0aGlzLnMuZHQuaTE4bigic2VhcmNoUGFuZXMuY2xlYXJQYW5lIix0aGlzLmMuaTE4bi5jbGVhclBhbmUpKSxjb2xsYXBzZUJ1dHRvbjp0KCc8YnV0dG9uIHR5cGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9IicrdGhpcy5jbGFzc2VzLmNhcmV0KyciPiYjeDVlOzwvc3Bhbj48L2J1dHRvbj4nKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMucGFuZUJ1dHRvbikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmNvbGxhcHNlQnV0dG9uKSxjb250YWluZXI6dCgiPGRpdi8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmNvbnRhaW5lcikuYWRkQ2xhc3ModGhpcy5zLmNvbE9wdHMuY2xhc3NOYW1lKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMubGF5b3V0KyhwYXJzZUludCh0aGlzLmMubGF5b3V0LnNwbGl0KCItIilbMV0sMTApPDEwP3RoaXMuYy5sYXlvdXQ6dGhpcy5jLmxheW91dC5zcGxpdCgiLSIpWzBdKyItOSIpKS5hZGRDbGFzcyh0aGlzLnMuY3VzdG9tUGFuZVNldHRpbmdzJiZ0aGlzLnMuY3VzdG9tUGFuZVNldHRpbmdzLmNsYXNzTmFtZT90aGlzLnMuY3VzdG9tUGFuZVNldHRpbmdzLmNsYXNzTmFtZToiIiksY291bnRCdXR0b246dCgnPGJ1dHRvbiB0eXBlPSJidXR0b24iPjxzcGFuPjwvc3Bhbj48L2J1dHRvbj4nKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMucGFuZUJ1dHRvbikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmNvdW50QnV0dG9uKSxkdFA6dCgnPHRhYmxlIHdpZHRoPSIxMDAlIj48dGhlYWQ+PHRyPjx0aD4nKyh0aGlzLnMuY29sRXhpc3RzP3QodGhpcy5zLmR0LmNvbHVtbih0aGlzLnMuaW5kZXgpLmhlYWRlcigpKS50ZXh0KCk6dGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncy5oZWFkZXJ8fCJDdXN0b20gUGFuZSIpKyI8L3RoPjx0aC8+PC90cj48L3RoZWFkPjwvdGFibGU+IiksbG93ZXI6dCgiPGRpdi8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnN1YlJvdzIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5uYXJyb3dCdXR0b24pLG5hbWVCdXR0b246dCgnPGJ1dHRvbiB0eXBlPSJidXR0b24iPjxzcGFuPjwvc3Bhbj48L2J1dHRvbj4nKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMucGFuZUJ1dHRvbikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLm5hbWVCdXR0b24pLHBhbmVzQ29udGFpbmVyOnQoUiksc2VhcmNoQm94OnQoIjxpbnB1dC8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnBhbmVJbnB1dEJ1dHRvbikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnNlYXJjaCksc2VhcmNoQnV0dG9uOnQoJzxidXR0b24gdHlwZT0iYnV0dG9uIj48c3Bhbj48L3NwYW4+PC9idXR0b24+JykuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnNlYXJjaEljb24pLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5wYW5lQnV0dG9uKSxzZWFyY2hDb250OnQoIjxkaXYvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5zZWFyY2hDb250KSxzZWFyY2hMYWJlbENvbnQ6dCgiPGRpdi8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnNlYXJjaExhYmVsQ29udCksdG9wUm93OnQoIjxkaXYvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy50b3BSb3cpLHVwcGVyOnQoIjxkaXYvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5zdWJSb3cxKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMubmFycm93U2VhcmNoKX0sdGhpcy5zLmNvbE9wdHMubmFtZT90aGlzLnMubmFtZT10aGlzLnMuY29sT3B0cy5uYW1lOnRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MmJnRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MubmFtZT90aGlzLnMubmFtZT10aGlzLnMuY3VzdG9tUGFuZVNldHRpbmdzLm5hbWU6dGhpcy5zLm5hbWU9dGhpcy5zLmNvbEV4aXN0cz90KHRoaXMucy5kdC5jb2x1bW4odGhpcy5zLmluZGV4KS5oZWFkZXIoKSkudGV4dCgpOnRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MuaGVhZGVyfHwiQ3VzdG9tIFBhbmUiO3ZhciBhdD10aGlzLnMuZHQudGFibGUoMCkubm9kZSgpO3JldHVybiB0aGlzLnMuc2VhcmNoRnVuY3Rpb249ZnVuY3Rpb24oSix0dCx5dCl7aWYoWC5zLnNlbGVjdGlvbnMubGVuZ3RoPT09MHx8Si5uVGFibGUhPT1hdClyZXR1cm4hMDt2YXIgVHQ9bnVsbDtyZXR1cm4gWC5zLmNvbEV4aXN0cyYmKFR0PXR0W1gucy5pbmRleF0sWC5zLmNvbE9wdHMub3J0aG9nb25hbC5maWx0ZXIhPT0iZmlsdGVyIiYmKFR0PVgucy5yb3dEYXRhLmZpbHRlck1hcC5nZXQoeXQpLFR0IGluc3RhbmNlb2YgdC5mbi5kYXRhVGFibGUuQXBpJiYoVHQ9VHQudG9BcnJheSgpKSkpLFguX3NlYXJjaChUdCx5dCl9LHQuZm4uZGF0YVRhYmxlLmV4dC5zZWFyY2gucHVzaCh0aGlzLnMuc2VhcmNoRnVuY3Rpb24pLHRoaXMuYy5jbGVhciYmdGhpcy5kb20uY2xlYXIub24oImNsaWNrLmR0c3AiLGZ1bmN0aW9uKCl7dmFyIEo9WC5kb20uY29udGFpbmVyLmZpbmQoIi4iK1guY2xhc3Nlcy5zZWFyY2gucmVwbGFjZSgvXHMrL2csIi4iKSk7Si5lYWNoKGZ1bmN0aW9uKCl7dCh0aGlzKS52YWwoIiIpLnRyaWdnZXIoImlucHV0Iil9KSxYLmNsZWFyUGFuZSgpfSksdGhpcy5zLmR0Lm9uKCJkcmF3LmR0c3AiLGZ1bmN0aW9uKCl7cmV0dXJuIFguYWRqdXN0VG9wUm93KCl9KSx0aGlzLnMuZHQub24oImJ1dHRvbnMtYWN0aW9uLmR0c3AiLGZ1bmN0aW9uKCl7cmV0dXJuIFguYWRqdXN0VG9wUm93KCl9KSx0aGlzLnMuZHQub24oImNvbHVtbi1yZW9yZGVyLmR0c3AiLGZ1bmN0aW9uKEosdHQseXQpe1gucy5pbmRleD15dC5tYXBwaW5nW1gucy5pbmRleF19KSx0aGlzfXJldHVybiBnLnByb3RvdHlwZS5hZGRSb3c9ZnVuY3Rpb24oXyxTLE4sUixMLFgsail7WHx8KFg9dGhpcy5zLnJvd0RhdGEuYmluc1tTXT90aGlzLnMucm93RGF0YS5iaW5zW1NdOjApLGp8fChqPXRoaXMuX2dldFNob3duKFMpKTtmb3IodmFyIEcsYXQ9MCxKPXRoaXMucy5pbmRleGVzO2F0PEoubGVuZ3RoO2F0Kyspe3ZhciB0dD1KW2F0XTt0dC5maWx0ZXI9PT1TJiYoRz10dC5pbmRleCl9cmV0dXJuIEc9PT12b2lkIDAmJihHPXRoaXMucy5pbmRleGVzLmxlbmd0aCx0aGlzLnMuaW5kZXhlcy5wdXNoKHtmaWx0ZXI6UyxpbmRleDpHfSkpLHRoaXMucy5kdFBhbmUucm93LmFkZCh7Y2xhc3NOYW1lOkwsZGlzcGxheTpfIT09IiI/Xzp0aGlzLmVtcHR5TWVzc2FnZSgpLGZpbHRlcjpTLGluZGV4Okcsc2hvd246aixzb3J0Ok4sdG90YWw6WCx0eXBlOlJ9KX0sZy5wcm90b3R5cGUuYWRqdXN0VG9wUm93PWZ1bmN0aW9uKCl7dmFyIF89dGhpcy5kb20uY29udGFpbmVyLmZpbmQoIi4iK3RoaXMuY2xhc3Nlcy5zdWJSb3dzQ29udGFpbmVyLnJlcGxhY2UoL1xzKy9nLCIuIikpLFM9dGhpcy5kb20uY29udGFpbmVyLmZpbmQoIi4iK3RoaXMuY2xhc3Nlcy5zdWJSb3cxLnJlcGxhY2UoL1xzKy9nLCIuIikpLE49dGhpcy5kb20uY29udGFpbmVyLmZpbmQoIi4iK3RoaXMuY2xhc3Nlcy5zdWJSb3cyLnJlcGxhY2UoL1xzKy9nLCIuIikpLFI9dGhpcy5kb20uY29udGFpbmVyLmZpbmQoIi4iK3RoaXMuY2xhc3Nlcy50b3BSb3cucmVwbGFjZSgvXHMrL2csIi4iKSk7KHQoX1swXSkud2lkdGgoKTwyNTJ8fHQoUlswXSkud2lkdGgoKTwyNTIpJiZ0KF9bMF0pLndpZHRoKCkhPT0wPyh0KF9bMF0pLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5uYXJyb3cpLHQoU1swXSkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLm5hcnJvd1N1YikucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLm5hcnJvd1NlYXJjaCksdChOWzBdKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMubmFycm93U3ViKS5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMubmFycm93QnV0dG9uKSk6KHQoX1swXSkucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLm5hcnJvdyksdChTWzBdKS5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMubmFycm93U3ViKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMubmFycm93U2VhcmNoKSx0KE5bMF0pLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy5uYXJyb3dTdWIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5uYXJyb3dCdXR0b24pKX0sZy5wcm90b3R5cGUuY2xlYXJEYXRhPWZ1bmN0aW9uKCl7dGhpcy5zLnJvd0RhdGE9e2FycmF5RmlsdGVyOltdLGFycmF5T3JpZ2luYWw6W10sYmluczp7fSxiaW5zT3JpZ2luYWw6e30sZmlsdGVyTWFwOm5ldyBNYXAsdG90YWxPcHRpb25zOjB9fSxnLnByb3RvdHlwZS5jbGVhclBhbmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zLmR0UGFuZS5yb3dzKHtzZWxlY3RlZDohMH0pLmRlc2VsZWN0KCksdGhpcy51cGRhdGVUYWJsZSgpLHRoaXN9LGcucHJvdG90eXBlLmNvbGxhcHNlPWZ1bmN0aW9uKCl7dmFyIF89dGhpczshdGhpcy5zLmRpc3BsYXllZHx8IXRoaXMuYy5jb2xsYXBzZSYmdGhpcy5zLmNvbE9wdHMuY29sbGFwc2UhPT0hMHx8dGhpcy5zLmNvbE9wdHMuY29sbGFwc2U9PT0hMXx8KHQodGhpcy5zLmR0UGFuZS50YWJsZSgpLmNvbnRhaW5lcigpKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuaGlkZGVuKSx0aGlzLmRvbS50b3BSb3cuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmJvcmRlcmVkKSx0aGlzLmRvbS5uYW1lQnV0dG9uLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbiksdGhpcy5kb20uY291bnRCdXR0b24uYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKSx0aGlzLmRvbS5zZWFyY2hCdXR0b24uYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKSx0aGlzLmRvbS5jb2xsYXBzZUJ1dHRvbi5hZGRDbGFzcyh0aGlzLmNsYXNzZXMucm90YXRlZCksdGhpcy5kb20udG9wUm93Lm9uZSgiY2xpY2suZHRzcCIsZnVuY3Rpb24oKXtyZXR1cm4gXy5zaG93KCl9KSx0aGlzLmRvbS50b3BSb3cudHJpZ2dlcigiY29sbGFwc2UuZHRzcHMiKSl9LGcucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLnMuZHRQYW5lJiZ0aGlzLnMuZHRQYW5lLm9mZigiLmR0c3AiKSx0aGlzLnMuZHQub2ZmKCIuZHRzcCIpLHRoaXMuZG9tLmNsZWFyLm9mZigiLmR0c3AiKSx0aGlzLmRvbS5uYW1lQnV0dG9uLm9mZigiLmR0c3AiKSx0aGlzLmRvbS5jb3VudEJ1dHRvbi5vZmYoIi5kdHNwIiksdGhpcy5kb20uc2VhcmNoQnV0dG9uLm9mZigiLmR0c3AiKSx0aGlzLmRvbS5jb2xsYXBzZUJ1dHRvbi5vZmYoIi5kdHNwIiksdCh0aGlzLnMuZHQudGFibGUoKS5ub2RlKCkpLm9mZigiLmR0c3AiKSx0aGlzLmRvbS5jb250YWluZXIuZGV0YWNoKCk7Zm9yKHZhciBfPXQuZm4uZGF0YVRhYmxlLmV4dC5zZWFyY2guaW5kZXhPZih0aGlzLnMuc2VhcmNoRnVuY3Rpb24pO18hPT0tMTspdC5mbi5kYXRhVGFibGUuZXh0LnNlYXJjaC5zcGxpY2UoXywxKSxfPXQuZm4uZGF0YVRhYmxlLmV4dC5zZWFyY2guaW5kZXhPZih0aGlzLnMuc2VhcmNoRnVuY3Rpb24pO3RoaXMucy5kdFBhbmUmJnRoaXMucy5kdFBhbmUuZGVzdHJveSgpLHRoaXMucy5saXN0U2V0PSExfSxnLnByb3RvdHlwZS5lbXB0eU1lc3NhZ2U9ZnVuY3Rpb24oKXt2YXIgXz10aGlzLmMuaTE4bi5lbXB0eU1lc3NhZ2U7cmV0dXJuIHRoaXMuYy5lbXB0eU1lc3NhZ2UmJihfPXRoaXMuYy5lbXB0eU1lc3NhZ2UpLHRoaXMucy5jb2xPcHRzLmVtcHR5TWVzc2FnZSE9PSExJiZ0aGlzLnMuY29sT3B0cy5lbXB0eU1lc3NhZ2UhPT1udWxsJiYoXz10aGlzLnMuY29sT3B0cy5lbXB0eU1lc3NhZ2UpLHRoaXMucy5kdC5pMThuKCJzZWFyY2hQYW5lcy5lbXB0eU1lc3NhZ2UiLF8pfSxnLnByb3RvdHlwZS5nZXRQYW5lQ291bnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zLmR0UGFuZT90aGlzLnMuZHRQYW5lLnJvd3Moe3NlbGVjdGVkOiEwfSkuZGF0YSgpLnRvQXJyYXkoKS5sZW5ndGg6MH0sZy5wcm90b3R5cGUucmVidWlsZFBhbmU9ZnVuY3Rpb24oXyxTKXtfPT09dm9pZCAwJiYoXz1udWxsKSxTPT09dm9pZCAwJiYoUz0hMSksdGhpcy5jbGVhckRhdGEoKTt2YXIgTj1bXTt0aGlzLnMuc2VydmVyU2VsZWN0PVtdO3ZhciBSPW51bGw7cmV0dXJuIHRoaXMucy5kdFBhbmUmJihTJiYodGhpcy5zLmR0LnBhZ2UuaW5mbygpLnNlcnZlclNpZGU/dGhpcy5zLnNlcnZlclNlbGVjdD10aGlzLnMuZHRQYW5lLnJvd3Moe3NlbGVjdGVkOiEwfSkuZGF0YSgpLnRvQXJyYXkoKTpOPXRoaXMucy5kdFBhbmUucm93cyh7c2VsZWN0ZWQ6ITB9KS5kYXRhKCkudG9BcnJheSgpKSx0aGlzLnMuZHRQYW5lLmNsZWFyKCkuZGVzdHJveSgpLFI9dGhpcy5kb20uY29udGFpbmVyLnByZXYoKSx0aGlzLmRlc3Ryb3koKSx0aGlzLnMuZHRQYW5lPXZvaWQgMCx0LmZuLmRhdGFUYWJsZS5leHQuc2VhcmNoLnB1c2godGhpcy5zLnNlYXJjaEZ1bmN0aW9uKSksdGhpcy5kb20uY29udGFpbmVyLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy5oaWRkZW4pLHRoaXMucy5kaXNwbGF5ZWQ9ITEsdGhpcy5fYnVpbGRQYW5lKHRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlP3RoaXMucy5zZXJ2ZXJTZWxlY3Q6TixfLFIpLHRoaXN9LGcucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbihfKXt0aGlzLmMubGF5b3V0PV8sdGhpcy5kb20uY29udGFpbmVyLnJlbW92ZUNsYXNzKCkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnNob3cpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5jb250YWluZXIpLmFkZENsYXNzKHRoaXMucy5jb2xPcHRzLmNsYXNzTmFtZSkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmxheW91dCsocGFyc2VJbnQoXy5zcGxpdCgiLSIpWzFdLDEwKTwxMD9fOl8uc3BsaXQoIi0iKVswXSsiLTkiKSkuYWRkQ2xhc3ModGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncyE9PW51bGwmJnRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MuY2xhc3NOYW1lP3RoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MuY2xhc3NOYW1lOiIiKSx0aGlzLmFkanVzdFRvcFJvdygpfSxnLnByb3RvdHlwZS5zZXRMaXN0ZW5lcnM9ZnVuY3Rpb24oKXt2YXIgXz10aGlzO3RoaXMucy5kdFBhbmUmJih0aGlzLnMuZHRQYW5lLm9mZigic2VsZWN0LmR0c3AiKS5vbigic2VsZWN0LmR0c3AiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KF8ucy5kZXNlbGVjdFRpbWVvdXQpLF8uX3VwZGF0ZVNlbGVjdGlvbighXy5zLnVwZGF0aW5nKSxfLmRvbS5jbGVhci5yZW1vdmVDbGFzcyhfLmNsYXNzZXMuZGlzYWJsZWRCdXR0b24pLnJlbW92ZUF0dHIoImRpc2FibGVkIil9KSx0aGlzLnMuZHRQYW5lLm9mZigiZGVzZWxlY3QuZHRzcCIpLm9uKCJkZXNlbGVjdC5kdHNwIixmdW5jdGlvbigpe18ucy5kZXNlbGVjdFRpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe18uX3VwZGF0ZVNlbGVjdGlvbighMCksXy5zLmR0UGFuZS5yb3dzKHtzZWxlY3RlZDohMH0pLmRhdGEoKS50b0FycmF5KCkubGVuZ3RoPT09MCYmXy5kb20uY2xlYXIuYWRkQ2xhc3MoXy5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKS5hdHRyKCJkaXNhYmxlZCIsInRydWUiKX0sNTApfSksdGhpcy5zLmZpcnN0U2V0JiYodGhpcy5zLmZpcnN0U2V0PSExLHRoaXMucy5kdC5vbigic3RhdGVTYXZlUGFyYW1zLmR0c3AiLGZ1bmN0aW9uKFMsTixSKXtpZih0LmlzRW1wdHlPYmplY3QoUikpe18ucy5kdFBhbmUuc3RhdGUuY2xlYXIoKTtyZXR1cm59dmFyIEwsWCxqPVtdLEcsYXQsSjtfLnMuZHRQYW5lJiYoaj1fLnMuZHRQYW5lLnJvd3Moe3NlbGVjdGVkOiEwfSkuZGF0YSgpLm1hcChmdW5jdGlvbih5dCl7cmV0dXJuIHl0LmZpbHRlciE9PW51bGw/eXQuZmlsdGVyLnRvU3RyaW5nKCk6bnVsbH0pLnRvQXJyYXkoKSxhdD1fLmRvbS5zZWFyY2hCb3gudmFsKCksWD1fLnMuZHRQYW5lLm9yZGVyKCksTD1fLnMucm93RGF0YS5iaW5zT3JpZ2luYWwsSj1fLnMucm93RGF0YS5hcnJheU9yaWdpbmFsLEc9Xy5kb20uY29sbGFwc2VCdXR0b24uaGFzQ2xhc3MoXy5jbGFzc2VzLnJvdGF0ZWQpKSxSLnNlYXJjaFBhbmVzPT09dm9pZCAwJiYoUi5zZWFyY2hQYW5lcz17fSksUi5zZWFyY2hQYW5lcy5wYW5lcz09PXZvaWQgMCYmKFIuc2VhcmNoUGFuZXMucGFuZXM9W10pO2Zvcih2YXIgdHQ9MDt0dDxSLnNlYXJjaFBhbmVzLnBhbmVzLmxlbmd0aDt0dCsrKVIuc2VhcmNoUGFuZXMucGFuZXNbdHRdLmlkPT09Xy5zLmluZGV4JiYoUi5zZWFyY2hQYW5lcy5wYW5lcy5zcGxpY2UodHQsMSksdHQtLSk7Ui5zZWFyY2hQYW5lcy5wYW5lcy5wdXNoKHthcnJheUZpbHRlcjpKLGJpbnM6TCxjb2xsYXBzZWQ6RyxpZDpfLnMuaW5kZXgsb3JkZXI6WCxzZWFyY2hUZXJtOmF0LHNlbGVjdGVkOmp9KX0pKSx0aGlzLnMuZHRQYW5lLm9mZigidXNlci1zZWxlY3QuZHRzcCIpLm9uKCJ1c2VyLXNlbGVjdC5kdHNwIixmdW5jdGlvbihTLE4sUixMLFgpe1guc3RvcFByb3BhZ2F0aW9uKCl9KSx0aGlzLnMuZHRQYW5lLm9mZigiZHJhdy5kdHNwIikub24oImRyYXcuZHRzcCIsZnVuY3Rpb24oKXtyZXR1cm4gXy5hZGp1c3RUb3BSb3coKX0pLHRoaXMuZG9tLm5hbWVCdXR0b24ub2ZmKCJjbGljay5kdHNwIikub24oImNsaWNrLmR0c3AiLGZ1bmN0aW9uKCl7dmFyIFM9Xy5zLmR0UGFuZS5vcmRlcigpWzBdWzFdO18ucy5kdFBhbmUub3JkZXIoWzAsUz09PSJhc2MiPyJkZXNjIjoiYXNjIl0pLmRyYXcoKSxfLnMuZHQuc3RhdGUuc2F2ZSgpfSksdGhpcy5kb20uY291bnRCdXR0b24ub2ZmKCJjbGljay5kdHNwIikub24oImNsaWNrLmR0c3AiLGZ1bmN0aW9uKCl7dmFyIFM9Xy5zLmR0UGFuZS5vcmRlcigpWzBdWzFdO18ucy5kdFBhbmUub3JkZXIoWzEsUz09PSJhc2MiPyJkZXNjIjoiYXNjIl0pLmRyYXcoKSxfLnMuZHQuc3RhdGUuc2F2ZSgpfSksdGhpcy5kb20uY29sbGFwc2VCdXR0b24ub2ZmKCJjbGljay5kdHNwIikub24oImNsaWNrLmR0c3AiLGZ1bmN0aW9uKFMpe1Muc3RvcFByb3BhZ2F0aW9uKCk7dmFyIE49dChfLnMuZHRQYW5lLnRhYmxlKCkuY29udGFpbmVyKCkpO04udG9nZ2xlQ2xhc3MoXy5jbGFzc2VzLmhpZGRlbiksXy5kb20udG9wUm93LnRvZ2dsZUNsYXNzKF8uY2xhc3Nlcy5ib3JkZXJlZCksXy5kb20ubmFtZUJ1dHRvbi50b2dnbGVDbGFzcyhfLmNsYXNzZXMuZGlzYWJsZWRCdXR0b24pLF8uZG9tLmNvdW50QnV0dG9uLnRvZ2dsZUNsYXNzKF8uY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbiksXy5kb20uc2VhcmNoQnV0dG9uLnRvZ2dsZUNsYXNzKF8uY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbiksXy5kb20uY29sbGFwc2VCdXR0b24udG9nZ2xlQ2xhc3MoXy5jbGFzc2VzLnJvdGF0ZWQpLE4uaGFzQ2xhc3MoXy5jbGFzc2VzLmhpZGRlbik/Xy5kb20udG9wUm93Lm9uKCJjbGljay5kdHNwIixmdW5jdGlvbigpe3JldHVybiBfLmRvbS5jb2xsYXBzZUJ1dHRvbi5jbGljaygpfSk6Xy5kb20udG9wUm93Lm9mZigiY2xpY2suZHRzcCIpLF8ucy5kdC5zdGF0ZS5zYXZlKCksXy5kb20udG9wUm93LnRyaWdnZXIoImNvbGxhcHNlLmR0c3BzIil9KSx0aGlzLmRvbS5jbGVhci5vZmYoImNsaWNrLmR0c3AiKS5vbigiY2xpY2suZHRzcCIsZnVuY3Rpb24oKXt2YXIgUz1fLmRvbS5jb250YWluZXIuZmluZCgiLiIrXy5jbGFzc2VzLnNlYXJjaC5yZXBsYWNlKC8gL2csIi4iKSk7Uy5lYWNoKGZ1bmN0aW9uKCl7dCh0aGlzKS52YWwoIiIpLnRyaWdnZXIoImlucHV0Iil9KSxfLmNsZWFyUGFuZSgpfSksdGhpcy5kb20uc2VhcmNoQnV0dG9uLm9mZigiY2xpY2suZHRzcCIpLm9uKCJjbGljay5kdHNwIixmdW5jdGlvbigpe3JldHVybiBfLmRvbS5zZWFyY2hCb3guZm9jdXMoKX0pLHRoaXMuZG9tLnNlYXJjaEJveC5vZmYoImNsaWNrLmR0c3AiKS5vbigiaW5wdXQuZHRzcCIsZnVuY3Rpb24oKXt2YXIgUz1fLmRvbS5zZWFyY2hCb3gudmFsKCk7Xy5zLmR0UGFuZS5zZWFyY2goUykuZHJhdygpLHR5cGVvZiBTPT0ic3RyaW5nIiYmKFMubGVuZ3RoPjB8fFMubGVuZ3RoPT09MCYmXy5zLmR0UGFuZS5yb3dzKHtzZWxlY3RlZDohMH0pLmRhdGEoKS50b0FycmF5KCkubGVuZ3RoPjApP18uZG9tLmNsZWFyLnJlbW92ZUNsYXNzKF8uY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbikucmVtb3ZlQXR0cigiZGlzYWJsZWQiKTpfLmRvbS5jbGVhci5hZGRDbGFzcyhfLmNsYXNzZXMuZGlzYWJsZWRCdXR0b24pLmF0dHIoImRpc2FibGVkIiwidHJ1ZSIpLF8ucy5kdC5zdGF0ZS5zYXZlKCl9KSx0aGlzLnMuZHRQYW5lLnNlbGVjdC5zdHlsZSh0aGlzLnMuY29sT3B0cy5kdE9wdHMmJnRoaXMucy5jb2xPcHRzLmR0T3B0cy5zZWxlY3QmJnRoaXMucy5jb2xPcHRzLmR0T3B0cy5zZWxlY3Quc3R5bGU/dGhpcy5zLmNvbE9wdHMuZHRPcHRzLnNlbGVjdC5zdHlsZTp0aGlzLmMuZHRPcHRzJiZ0aGlzLmMuZHRPcHRzLnNlbGVjdCYmdGhpcy5jLmR0T3B0cy5zZWxlY3Quc3R5bGU/dGhpcy5jLmR0T3B0cy5zZWxlY3Quc3R5bGU6Im9zIikpfSxnLnByb3RvdHlwZS5fc2VydmVyUG9wdWxhdGU9ZnVuY3Rpb24oXyl7Xy50YWJsZUxlbmd0aD8odGhpcy5zLnRhYmxlTGVuZ3RoPV8udGFibGVMZW5ndGgsdGhpcy5zLnJvd0RhdGEudG90YWxPcHRpb25zPXRoaXMucy50YWJsZUxlbmd0aCk6KHRoaXMucy50YWJsZUxlbmd0aD09PW51bGx8fHRoaXMucy5kdC5yb3dzKClbMF0ubGVuZ3RoPnRoaXMucy50YWJsZUxlbmd0aCkmJih0aGlzLnMudGFibGVMZW5ndGg9dGhpcy5zLmR0LnJvd3MoKVswXS5sZW5ndGgsdGhpcy5zLnJvd0RhdGEudG90YWxPcHRpb25zPXRoaXMucy50YWJsZUxlbmd0aCk7dmFyIFM9dGhpcy5zLmR0LmNvbHVtbih0aGlzLnMuaW5kZXgpLmRhdGFTcmMoKTtpZihfLnNlYXJjaFBhbmVzLm9wdGlvbnNbU10pZm9yKHZhciBOPTAsUj1fLnNlYXJjaFBhbmVzLm9wdGlvbnNbU107TjxSLmxlbmd0aDtOKyspe3ZhciBMPVJbTl07dGhpcy5zLnJvd0RhdGEuYXJyYXlGaWx0ZXIucHVzaCh7ZGlzcGxheTpMLmxhYmVsLGZpbHRlcjpMLnZhbHVlLHNvcnQ6TC5sYWJlbCx0eXBlOkwubGFiZWx9KSx0aGlzLnMucm93RGF0YS5iaW5zW0wudmFsdWVdPUwudG90YWx9dmFyIFg9T2JqZWN0LmtleXModGhpcy5zLnJvd0RhdGEuYmlucykubGVuZ3RoLGo9dGhpcy5fdW5pcXVlUmF0aW8oWCx0aGlzLnMudGFibGVMZW5ndGgpO2lmKHRoaXMucy5kaXNwbGF5ZWQ9PT0hMSYmKCh0aGlzLnMuY29sT3B0cy5zaG93PT09dm9pZCAwJiZ0aGlzLnMuY29sT3B0cy50aHJlc2hvbGQ9PT1udWxsP2o+dGhpcy5jLnRocmVzaG9sZDpqPnRoaXMucy5jb2xPcHRzLnRocmVzaG9sZCl8fHRoaXMucy5jb2xPcHRzLnNob3chPT0hMCYmWDw9MSkpe3RoaXMuZG9tLmNvbnRhaW5lci5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuaGlkZGVuKSx0aGlzLnMuZGlzcGxheWVkPSExO3JldHVybn10aGlzLnMucm93RGF0YS5hcnJheU9yaWdpbmFsPXRoaXMucy5yb3dEYXRhLmFycmF5RmlsdGVyLHRoaXMucy5yb3dEYXRhLmJpbnNPcmlnaW5hbD10aGlzLnMucm93RGF0YS5iaW5zLHRoaXMucy5kaXNwbGF5ZWQ9ITB9LGcucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oKXt0aGlzLnMuZGlzcGxheWVkJiYodGhpcy5kb20udG9wUm93LnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy5ib3JkZXJlZCksdGhpcy5kb20ubmFtZUJ1dHRvbi5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMuZGlzYWJsZWRCdXR0b24pLHRoaXMuZG9tLmNvdW50QnV0dG9uLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbiksdGhpcy5kb20uc2VhcmNoQnV0dG9uLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbiksdGhpcy5kb20uY29sbGFwc2VCdXR0b24ucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLnJvdGF0ZWQpLHQodGhpcy5zLmR0UGFuZS50YWJsZSgpLmNvbnRhaW5lcigpKS5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMuaGlkZGVuKSx0aGlzLmRvbS50b3BSb3cudHJpZ2dlcigiY29sbGFwc2UuZHRzcHMiKSl9LGcucHJvdG90eXBlLl91bmlxdWVSYXRpbz1mdW5jdGlvbihfLFMpe3JldHVybiBTPjAmJih0aGlzLnMucm93RGF0YS50b3RhbE9wdGlvbnM+MCYmIXRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlfHx0aGlzLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZSYmdGhpcy5zLnRhYmxlTGVuZ3RoPjApP18vdGhpcy5zLnJvd0RhdGEudG90YWxPcHRpb25zOjF9LGcucHJvdG90eXBlLnVwZGF0ZVRhYmxlPWZ1bmN0aW9uKCl7dmFyIF89dGhpcy5zLmR0UGFuZS5yb3dzKHtzZWxlY3RlZDohMH0pLmRhdGEoKS50b0FycmF5KCkubWFwKGZ1bmN0aW9uKFMpe3JldHVybiBTLmZpbHRlcn0pO3RoaXMucy5zZWxlY3Rpb25zPV8sdGhpcy5fc2VhcmNoRXh0cmFzKCl9LGcucHJvdG90eXBlLl9nZXRDb21wYXJpc29uUm93cz1mdW5jdGlvbigpe3ZhciBfPXRoaXMucy5jb2xPcHRzLm9wdGlvbnM/dGhpcy5zLmNvbE9wdHMub3B0aW9uczp0aGlzLnMuY3VzdG9tUGFuZVNldHRpbmdzJiZ0aGlzLnMuY3VzdG9tUGFuZVNldHRpbmdzLm9wdGlvbnM/dGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncy5vcHRpb25zOnZvaWQgMDtpZihfIT09dm9pZCAwKXt2YXIgUz10aGlzLnMuZHQucm93cygpLE49Uy5kYXRhKCkudG9BcnJheSgpLFI9W107dGhpcy5zLmR0UGFuZS5jbGVhcigpLHRoaXMucy5pbmRleGVzPVtdO2Zvcih2YXIgTD0wLFg9XztMPFgubGVuZ3RoO0wrKyl7dmFyIGo9WFtMXSxHPWoubGFiZWwhPT0iIj9qLmxhYmVsOnRoaXMuZW1wdHlNZXNzYWdlKCksYXQ9e2NsYXNzTmFtZTpqLmNsYXNzTmFtZSxkaXNwbGF5OkcsZmlsdGVyOnR5cGVvZiBqLnZhbHVlPT0iZnVuY3Rpb24iP2oudmFsdWU6W10sc29ydDpqLm9yZGVyIT09dm9pZCAwP2oub3JkZXI6Ryx0b3RhbDowLHR5cGU6R307aWYodHlwZW9mIGoudmFsdWU9PSJmdW5jdGlvbiIpe2Zvcih2YXIgSj0wO0o8Ti5sZW5ndGg7SisrKWoudmFsdWUuY2FsbCh0aGlzLnMuZHQsTltKXSxTWzBdW0pdKSYmYXQudG90YWwrKzt0eXBlb2YgYXQuZmlsdGVyIT0iZnVuY3Rpb24iJiZhdC5maWx0ZXIucHVzaChqLmZpbHRlcil9Ui5wdXNoKHRoaXMuYWRkUm93KGF0LmRpc3BsYXksYXQuZmlsdGVyLGF0LnNvcnQsYXQudHlwZSxhdC5jbGFzc05hbWUsYXQudG90YWwpKX1yZXR1cm4gUn19LGcucHJvdG90eXBlLl9nZXRNZXNzYWdlPWZ1bmN0aW9uKF8pe3JldHVybiB0aGlzLnMuZHQuaTE4bigic2VhcmNoUGFuZXMuY291bnQiLHRoaXMuYy5pMThuLmNvdW50KS5yZXBsYWNlKC97dG90YWx9L2csXy50b3RhbCl9LGcucHJvdG90eXBlLl9nZXRTaG93bj1mdW5jdGlvbihfKXt9LGcucHJvdG90eXBlLl9nZXRQYW5lQ29uZmlnPWZ1bmN0aW9uKCl7dmFyIF89dGhpcyxTPWUuU2Nyb2xsZXIsTj10aGlzLnMuZHQuc2V0dGluZ3MoKVswXS5vTGFuZ3VhZ2U7cmV0dXJuIE4udXJsPXZvaWQgMCxOLnNVcmw9dm9pZCAwLHtjb2x1bW5EZWZzOlt7Y2xhc3NOYW1lOiJkdHNwLW5hbWVDb2x1bW4iLGRhdGE6ImRpc3BsYXkiLHJlbmRlcjpmdW5jdGlvbihSLEwsWCl7aWYoTD09PSJzb3J0IilyZXR1cm4gWC5zb3J0O2lmKEw9PT0idHlwZSIpcmV0dXJuIFgudHlwZTt2YXIgaj1fLl9nZXRNZXNzYWdlKFgpLEc9JzxzcGFuIGNsYXNzPSInK18uY2xhc3Nlcy5waWxsKyciPicraisiPC9zcGFuPiI7cmV0dXJuKCFfLmMudmlld0NvdW50fHwhXy5zLmNvbE9wdHMudmlld0NvdW50KSYmKEc9IiIpLEw9PT0iZmlsdGVyIj90eXBlb2YgUj09InN0cmluZyImJlIubWF0Y2goLzxbXj5dKj4vKSE9PW51bGw/Ui5yZXBsYWNlKC88W14+XSo+L2csIiIpOlI6JzxkaXYgY2xhc3M9IicrXy5jbGFzc2VzLm5hbWVDb250KyciPjxzcGFuIHRpdGxlPSInKyh0eXBlb2YgUj09InN0cmluZyImJlIubWF0Y2goLzxbXj5dKj4vKSE9PW51bGw/Ui5yZXBsYWNlKC88W14+XSo+L2csIiIpOlIpKyciIGNsYXNzPSInK18uY2xhc3Nlcy5uYW1lKyciPicrUisiPC9zcGFuPiIrRysiPC9kaXY+In0sdGFyZ2V0czowLHR5cGU6dGhpcy5zLmR0LnNldHRpbmdzKClbMF0uYW9Db2x1bW5zW3RoaXMucy5pbmRleF0/dGhpcy5zLmR0LnNldHRpbmdzKClbMF0uYW9Db2x1bW5zW3RoaXMucy5pbmRleF0uX3NNYW51YWxUeXBlOm51bGx9LHtjbGFzc05hbWU6ImR0c3AtY291bnRDb2x1bW4gIit0aGlzLmNsYXNzZXMuYmFkZ2VQaWxsLGRhdGE6InRvdGFsIixzZWFyY2hhYmxlOiExLHRhcmdldHM6MSx2aXNpYmxlOiExfV0sZGVmZXJSZW5kZXI6ITAsaW5mbzohMSxsYW5ndWFnZTpOLHBhZ2luZzohIVMsc2Nyb2xsWDohMSxzY3JvbGxZOiIyMDBweCIsc2Nyb2xsZXI6ISFTLHNlbGVjdDohMCxzdGF0ZVNhdmU6ISF0aGlzLnMuZHQuc2V0dGluZ3MoKVswXS5vRmVhdHVyZXMuYlN0YXRlU2F2ZX19LGcucHJvdG90eXBlLl9tYWtlU2VsZWN0aW9uPWZ1bmN0aW9uKCl7dGhpcy51cGRhdGVUYWJsZSgpLHRoaXMucy51cGRhdGluZz0hMCx0aGlzLnMuZHQuZHJhdygpLHRoaXMucy51cGRhdGluZz0hMX0sZy5wcm90b3R5cGUuX3BvcHVsYXRlUGFuZUFycmF5PWZ1bmN0aW9uKF8sUyxOLFIpe1I9PT12b2lkIDAmJihSPXRoaXMucy5yb3dEYXRhLmJpbnMpO3ZhciBMPU4uZmFzdERhdGE7aWYodHlwZW9mIHRoaXMucy5jb2xPcHRzLm9ydGhvZ29uYWw9PSJzdHJpbmciKXt2YXIgWD1MKF8sdGhpcy5zLmluZGV4LHRoaXMucy5jb2xPcHRzLm9ydGhvZ29uYWwpO3RoaXMucy5yb3dEYXRhLmZpbHRlck1hcC5zZXQoXyxYKSx0aGlzLl9hZGRPcHRpb24oWCxYLFgsWCxTLFIpLHRoaXMucy5yb3dEYXRhLnRvdGFsT3B0aW9ucysrfWVsc2V7dmFyIGo9TChfLHRoaXMucy5pbmRleCx0aGlzLnMuY29sT3B0cy5vcnRob2dvbmFsLnNlYXJjaCk7aj09PW51bGwmJihqPSIiKSx0eXBlb2Ygaj09InN0cmluZyImJihqPWoucmVwbGFjZSgvPFtePl0qPi9nLCIiKSksdGhpcy5zLnJvd0RhdGEuZmlsdGVyTWFwLnNldChfLGopLFJbal0/KFJbal0rKyx0aGlzLnMucm93RGF0YS50b3RhbE9wdGlvbnMrKyk6KFJbal09MSx0aGlzLl9hZGRPcHRpb24oaixMKF8sdGhpcy5zLmluZGV4LHRoaXMucy5jb2xPcHRzLm9ydGhvZ29uYWwuZGlzcGxheSksTChfLHRoaXMucy5pbmRleCx0aGlzLnMuY29sT3B0cy5vcnRob2dvbmFsLnNvcnQpLEwoXyx0aGlzLnMuaW5kZXgsdGhpcy5zLmNvbE9wdHMub3J0aG9nb25hbC50eXBlKSxTLFIpLHRoaXMucy5yb3dEYXRhLnRvdGFsT3B0aW9ucysrKX19LGcucHJvdG90eXBlLl9yZWxvYWRTZWxlY3Q9ZnVuY3Rpb24oXyl7aWYoXyE9PXZvaWQgMCl7Zm9yKHZhciBTLE49MDtOPF8uc2VhcmNoUGFuZXMucGFuZXMubGVuZ3RoO04rKylpZihfLnNlYXJjaFBhbmVzLnBhbmVzW05dLmlkPT09dGhpcy5zLmluZGV4KXtTPU47YnJlYWt9aWYoUylmb3IodmFyIFI9dGhpcy5zLmR0UGFuZSxMPVIucm93cyh7b3JkZXI6ImluZGV4In0pLmRhdGEoKS5tYXAoZnVuY3Rpb24oSil7cmV0dXJuIEouZmlsdGVyIT09bnVsbD9KLmZpbHRlci50b1N0cmluZygpOm51bGx9KS50b0FycmF5KCksWD0wLGo9Xy5zZWFyY2hQYW5lcy5wYW5lc1tTXS5zZWxlY3RlZDtYPGoubGVuZ3RoO1grKyl7dmFyIEc9altYXSxhdD0tMTtHIT09bnVsbCYmKGF0PUwuaW5kZXhPZihHLnRvU3RyaW5nKCkpKSxhdD4tMSYmKHRoaXMucy5zZXJ2ZXJTZWxlY3Rpbmc9ITAsUi5yb3coYXQpLnNlbGVjdCgpLHRoaXMucy5zZXJ2ZXJTZWxlY3Rpbmc9ITEpfX19LGcucHJvdG90eXBlLl91cGRhdGVTZWxlY3Rpb249ZnVuY3Rpb24oXyl7dmFyIFM9dGhpcyxOPWZ1bmN0aW9uKEwpe2lmKHN0LnZlcnNpb25DaGVjaygiMiIpKVMucy5kdC5wcm9jZXNzaW5nKEwpO2Vsc2V7dmFyIFg9Uy5zLmR0LnNldHRpbmdzKClbMF0saj1YLm9BcGk7ai5fZm5Qcm9jZXNzaW5nRGlzcGxheShYLCExKX19LFI9ZnVuY3Rpb24oKXtTLnMuc2Nyb2xsVG9wPXQoUy5zLmR0UGFuZS50YWJsZSgpLm5vZGUoKSkucGFyZW50KClbMF0uc2Nyb2xsVG9wLFMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlJiYhUy5zLnVwZGF0aW5nP1Mucy5zZXJ2ZXJTZWxlY3Rpbmd8fChTLnMuc2VydmVyU2VsZWN0PVMucy5kdFBhbmUucm93cyh7c2VsZWN0ZWQ6ITB9KS5kYXRhKCkudG9BcnJheSgpLFMucy5kdC5kcmF3KCExKSk6XyYmUy5fbWFrZVNlbGVjdGlvbigpLE4oITEpfTtOKCEwKSxzZXRUaW1lb3V0KFIsMSl9LGcucHJvdG90eXBlLl9hZGRPcHRpb249ZnVuY3Rpb24oXyxTLE4sUixMLFgpe2lmKEFycmF5LmlzQXJyYXkoXyl8fF8gaW5zdGFuY2VvZiBlLkFwaSl7aWYoXyBpbnN0YW5jZW9mIGUuQXBpJiYoXz1fLnRvQXJyYXkoKSxTPVMudG9BcnJheSgpKSxfLmxlbmd0aD09PVMubGVuZ3RoKXtmb3IodmFyIGo9MDtqPF8ubGVuZ3RoO2orKylYW19bal1dP1hbX1tqXV0rKzooWFtfW2pdXT0xLEwucHVzaCh7ZGlzcGxheTpTW2pdLGZpbHRlcjpfW2pdLHNvcnQ6TltqXSx0eXBlOlJbal19KSksdGhpcy5zLnJvd0RhdGEudG90YWxPcHRpb25zKys7cmV0dXJufXRocm93IG5ldyBFcnJvcigiZGlzcGxheSBhbmQgZmlsdGVyIG5vdCB0aGUgc2FtZSBsZW5ndGgiKX1lbHNlIHR5cGVvZiB0aGlzLnMuY29sT3B0cy5vcnRob2dvbmFsPT0ic3RyaW5nIj9YW19dPyhYW19dKyssdGhpcy5zLnJvd0RhdGEudG90YWxPcHRpb25zKyspOihYW19dPTEsTC5wdXNoKHtkaXNwbGF5OlMsZmlsdGVyOl8sc29ydDpOLHR5cGU6Un0pLHRoaXMucy5yb3dEYXRhLnRvdGFsT3B0aW9ucysrKTpMLnB1c2goe2Rpc3BsYXk6UyxmaWx0ZXI6Xyxzb3J0Ok4sdHlwZTpSfSl9LGcucHJvdG90eXBlLl9idWlsZFBhbmU9ZnVuY3Rpb24oXyxTLE4pe3ZhciBSPXRoaXM7Xz09PXZvaWQgMCYmKF89W10pLFM9PT12b2lkIDAmJihTPW51bGwpLE49PT12b2lkIDAmJihOPW51bGwpLHRoaXMucy5zZWxlY3Rpb25zPVtdO3ZhciBMPXRoaXMucy5kdC5zdGF0ZS5sb2FkZWQoKSxYO2lmKHRoaXMucy5saXN0U2V0JiYoTD10aGlzLnMuZHQuc3RhdGUoKSksdGhpcy5zLmNvbEV4aXN0cyl7dmFyIGo9LTE7aWYoTCYmTC5zZWFyY2hQYW5lcyYmTC5zZWFyY2hQYW5lcy5wYW5lcyl7Zm9yKHZhciBHPTA7RzxMLnNlYXJjaFBhbmVzLnBhbmVzLmxlbmd0aDtHKyspaWYoTC5zZWFyY2hQYW5lcy5wYW5lc1tHXS5pZD09PXRoaXMucy5pbmRleCl7aj1HO2JyZWFrfX1pZigodGhpcy5zLmNvbE9wdHMuc2hvdz09PSExfHx0aGlzLnMuY29sT3B0cy5zaG93IT09dm9pZCAwJiZ0aGlzLnMuY29sT3B0cy5zaG93IT09ITApJiZqPT09LTEpcmV0dXJuIHRoaXMuZG9tLmNvbnRhaW5lci5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuaGlkZGVuKSx0aGlzLnMuZGlzcGxheWVkPSExLCExO2lmKCh0aGlzLnMuY29sT3B0cy5zaG93PT09ITB8fGohPT0tMSkmJih0aGlzLnMuZGlzcGxheWVkPSEwKSwhdGhpcy5zLmR0LnBhZ2UuaW5mbygpLnNlcnZlclNpZGUmJighU3x8IVMuc2VhcmNoUGFuZXN8fCFTLnNlYXJjaFBhbmVzLm9wdGlvbnMpKXt0aGlzLnMucm93RGF0YS5hcnJheUZpbHRlci5sZW5ndGg9PT0wJiYodGhpcy5zLnJvd0RhdGEudG90YWxPcHRpb25zPTAsdGhpcy5fcG9wdWxhdGVQYW5lKCksdGhpcy5zLnJvd0RhdGEuYXJyYXlPcmlnaW5hbD10aGlzLnMucm93RGF0YS5hcnJheUZpbHRlcix0aGlzLnMucm93RGF0YS5iaW5zT3JpZ2luYWw9dGhpcy5zLnJvd0RhdGEuYmlucyk7dmFyIGF0PU9iamVjdC5rZXlzKHRoaXMucy5yb3dEYXRhLmJpbnNPcmlnaW5hbCkubGVuZ3RoLEo9dGhpcy5fdW5pcXVlUmF0aW8oYXQsdGhpcy5zLmR0LnJvd3MoKVswXS5sZW5ndGgpO2lmKHRoaXMucy5kaXNwbGF5ZWQ9PT0hMSYmKCh0aGlzLnMuY29sT3B0cy5zaG93PT09dm9pZCAwJiZ0aGlzLnMuY29sT3B0cy50aHJlc2hvbGQ9PT1udWxsP0o+dGhpcy5jLnRocmVzaG9sZDpKPnRoaXMucy5jb2xPcHRzLnRocmVzaG9sZCl8fHRoaXMucy5jb2xPcHRzLnNob3chPT0hMCYmYXQ8PTEpKXt0aGlzLmRvbS5jb250YWluZXIuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmhpZGRlbiksdGhpcy5zLmRpc3BsYXllZD0hMTtyZXR1cm59dGhpcy5kb20uY29udGFpbmVyLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5zaG93KSx0aGlzLnMuZGlzcGxheWVkPSEwfWVsc2UgUyYmUy5zZWFyY2hQYW5lcyYmUy5zZWFyY2hQYW5lcy5vcHRpb25zJiZ0aGlzLl9zZXJ2ZXJQb3B1bGF0ZShTKX1lbHNlIHRoaXMucy5kaXNwbGF5ZWQ9ITA7dGhpcy5fZGlzcGxheVBhbmUoKSx0aGlzLnMubGlzdFNldHx8dGhpcy5kb20uZHRQLm9uKCJzdGF0ZUxvYWRQYXJhbXMuZHRzcCIsZnVuY3Rpb24ocHQsbXQscnQpe3QuaXNFbXB0eU9iamVjdChSLnMuZHQuc3RhdGUubG9hZGVkKCkpJiZ0LmVhY2gocnQsZnVuY3Rpb24oZ3Qpe2RlbGV0ZSBydFtndF19KX0pLE4hPT1udWxsJiZ0aGlzLmRvbS5wYW5lc0NvbnRhaW5lci5oYXMoTikubGVuZ3RoPjA/dGhpcy5kb20uY29udGFpbmVyLmluc2VydEFmdGVyKE4pOnRoaXMuZG9tLnBhbmVzQ29udGFpbmVyLnByZXBlbmQodGhpcy5kb20uY29udGFpbmVyKTt2YXIgdHQ9dC5mbi5kYXRhVGFibGUuZXh0LmVyck1vZGU7dC5mbi5kYXRhVGFibGUuZXh0LmVyck1vZGU9Im5vbmUiLHRoaXMuZG9tLmR0UC5vbigiaW5pdC5kdCIsZnVuY3Rpb24ocHQsbXQpe3ZhciBydD1SLmRvbS5kdFAuRGF0YVRhYmxlKCksZ3Q9cnQuc2VsZWN0LnN0eWxlKCk7cnQuc2VsZWN0LnN0eWxlKGd0KX0pLHRoaXMucy5kdFBhbmU9dGhpcy5kb20uZHRQLkRhdGFUYWJsZSh0LmV4dGVuZCghMCx0aGlzLl9nZXRQYW5lQ29uZmlnKCksdGhpcy5jLmR0T3B0cyx0aGlzLnMuY29sT3B0cz90aGlzLnMuY29sT3B0cy5kdE9wdHM6e30sdGhpcy5zLmNvbE9wdHMub3B0aW9uc3x8IXRoaXMucy5jb2xFeGlzdHM/e2NyZWF0ZWRSb3c6ZnVuY3Rpb24ocHQsbXQpe3QocHQpLmFkZENsYXNzKG10LmNsYXNzTmFtZSl9fTp2b2lkIDAsdGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncyE9PW51bGwmJnRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MuZHRPcHRzP3RoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MuZHRPcHRzOnt9LHQuZm4uZGF0YVRhYmxlLnZlcnNpb25DaGVjaygiMiIpP3tsYXlvdXQ6e2JvdHRvbVN0YXJ0Om51bGwsYm90dG9tRW5kOm51bGwsdG9wU3RhcnQ6bnVsbCx0b3BFbmQ6bnVsbH19Ontkb206InQifSkpLHRoaXMuZG9tLmR0UC5hZGRDbGFzcyh0aGlzLmNsYXNzZXMudGFibGUpO3ZhciB5dD0iQ3VzdG9tIFBhbmUiO2lmKHRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MmJnRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MuaGVhZGVyP3l0PXRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MuaGVhZGVyOnRoaXMucy5jb2xPcHRzLmhlYWRlcj95dD10aGlzLnMuY29sT3B0cy5oZWFkZXI6dGhpcy5zLmNvbEV4aXN0cyYmKHl0PXQuZm4uZGF0YVRhYmxlLnZlcnNpb25DaGVjaygiMiIpP3RoaXMucy5kdC5jb2x1bW4odGhpcy5zLmluZGV4KS50aXRsZSgpOnRoaXMucy5kdC5zZXR0aW5ncygpWzBdLmFvQ29sdW1uc1t0aGlzLnMuaW5kZXhdLnNUaXRsZSkseXQ9dGhpcy5fZXNjYXBlSFRNTCh5dCksdGhpcy5kb20uc2VhcmNoQm94LmF0dHIoInBsYWNlaG9sZGVyIix5dCksdC5mbi5kYXRhVGFibGUuZXh0LmVyck1vZGU9dHQsdGhpcy5zLmNvbEV4aXN0cylmb3IodmFyIFR0PTAsQXQ9dGhpcy5zLnJvd0RhdGEuYXJyYXlGaWx0ZXIubGVuZ3RoO1R0PEF0O1R0KyspaWYodGhpcy5zLmR0LnBhZ2UuaW5mbygpLnNlcnZlclNpZGUpe1g9dGhpcy5hZGRSb3codGhpcy5zLnJvd0RhdGEuYXJyYXlGaWx0ZXJbVHRdLmRpc3BsYXksdGhpcy5zLnJvd0RhdGEuYXJyYXlGaWx0ZXJbVHRdLmZpbHRlcix0aGlzLnMucm93RGF0YS5hcnJheUZpbHRlcltUdF0uc29ydCx0aGlzLnMucm93RGF0YS5hcnJheUZpbHRlcltUdF0udHlwZSk7Zm9yKHZhciBrdD0wLEx0PXRoaXMucy5zZXJ2ZXJTZWxlY3Q7a3Q8THQubGVuZ3RoO2t0Kyspe3ZhciBCdD1MdFtrdF07QnQuZmlsdGVyPT09dGhpcy5zLnJvd0RhdGEuYXJyYXlGaWx0ZXJbVHRdLmZpbHRlciYmKHRoaXMucy5zZXJ2ZXJTZWxlY3Rpbmc9ITAsWC5zZWxlY3QoKSx0aGlzLnMuc2VydmVyU2VsZWN0aW5nPSExKX19ZWxzZSF0aGlzLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZSYmdGhpcy5zLnJvd0RhdGEuYXJyYXlGaWx0ZXJbVHRdP3RoaXMuYWRkUm93KHRoaXMucy5yb3dEYXRhLmFycmF5RmlsdGVyW1R0XS5kaXNwbGF5LHRoaXMucy5yb3dEYXRhLmFycmF5RmlsdGVyW1R0XS5maWx0ZXIsdGhpcy5zLnJvd0RhdGEuYXJyYXlGaWx0ZXJbVHRdLnNvcnQsdGhpcy5zLnJvd0RhdGEuYXJyYXlGaWx0ZXJbVHRdLnR5cGUpOnRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlfHx0aGlzLmFkZFJvdygiIiwiIiwiIiwiIik7KHRoaXMucy5jb2xPcHRzLm9wdGlvbnN8fHRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MmJnRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3Mub3B0aW9ucykmJnRoaXMuX2dldENvbXBhcmlzb25Sb3dzKCksdGhpcy5zLmR0UGFuZS5kcmF3KCksdGhpcy5zLmR0UGFuZS50YWJsZSgpLm5vZGUoKS5wYXJlbnROb2RlLnNjcm9sbFRvcD10aGlzLnMuc2Nyb2xsVG9wLHRoaXMuYWRqdXN0VG9wUm93KCksdGhpcy5zZXRMaXN0ZW5lcnMoKSx0aGlzLnMubGlzdFNldD0hMDtmb3IodmFyICR0PTAsS3Q9XzskdDxLdC5sZW5ndGg7JHQrKyl7dmFyIEQ9S3RbJHRdO2lmKEQpZm9yKHZhciB1dD0wLG90PXRoaXMucy5kdFBhbmUucm93cygpLmluZGV4ZXMoKS50b0FycmF5KCk7dXQ8b3QubGVuZ3RoO3V0KyspWD1vdFt1dF0sdGhpcy5zLmR0UGFuZS5yb3coWCkuZGF0YSgpJiZELmZpbHRlcj09PXRoaXMucy5kdFBhbmUucm93KFgpLmRhdGEoKS5maWx0ZXImJih0aGlzLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZT8odGhpcy5zLnNlcnZlclNlbGVjdGluZz0hMCx0aGlzLnMuZHRQYW5lLnJvdyhYKS5zZWxlY3QoKSx0aGlzLnMuc2VydmVyU2VsZWN0aW5nPSExKTp0aGlzLnMuZHRQYW5lLnJvdyhYKS5zZWxlY3QoKSl9aWYodGhpcy5zLmR0LnBhZ2UuaW5mbygpLnNlcnZlclNpZGUmJnRoaXMucy5kdFBhbmUuc2VhcmNoKHRoaXMuZG9tLnNlYXJjaEJveC52YWwoKSkuZHJhdygpLCh0aGlzLmMuaW5pdENvbGxhcHNlZCYmdGhpcy5zLmNvbE9wdHMuaW5pdENvbGxhcHNlZCE9PSExfHx0aGlzLnMuY29sT3B0cy5pbml0Q29sbGFwc2VkKSYmKHRoaXMuYy5jb2xsYXBzZSYmdGhpcy5zLmNvbE9wdHMuY29sbGFwc2UhPT0hMXx8dGhpcy5zLmNvbE9wdHMuY29sbGFwc2UpJiYodGhpcy5zLmR0UGFuZS5zZXR0aW5ncygpWzBdLl9iSW5pdENvbXBsZXRlP3RoaXMuY29sbGFwc2UoKTp0aGlzLnMuZHRQYW5lLm9uZSgiaW5pdCIsZnVuY3Rpb24oKXtyZXR1cm4gUi5jb2xsYXBzZSgpfSkpLEwmJkwuc2VhcmNoUGFuZXMmJkwuc2VhcmNoUGFuZXMucGFuZXMmJighU3x8Uy5kcmF3PT09MSkpe3RoaXMuX3JlbG9hZFNlbGVjdChMKTtmb3IodmFyIEg9MCxNPUwuc2VhcmNoUGFuZXMucGFuZXM7SDxNLmxlbmd0aDtIKyspe3ZhciBZPU1bSF07WS5pZD09PXRoaXMucy5pbmRleCYmKFkuc2VhcmNoVGVybSYmWS5zZWFyY2hUZXJtLmxlbmd0aD4wJiZ0aGlzLmRvbS5zZWFyY2hCb3gudmFsKFkuc2VhcmNoVGVybSkudHJpZ2dlcigiaW5wdXQiKSxZLm9yZGVyJiZ0aGlzLnMuZHRQYW5lLm9yZGVyKFkub3JkZXIpLmRyYXcoKSxZLmNvbGxhcHNlZD90aGlzLmNvbGxhcHNlKCk6dGhpcy5zaG93KCkpfX1yZXR1cm4hMH0sZy5wcm90b3R5cGUuX2Rpc3BsYXlQYW5lPWZ1bmN0aW9uKCl7dGhpcy5kb20uZHRQLmVtcHR5KCksdGhpcy5kb20udG9wUm93LmVtcHR5KCkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnRvcFJvdykscGFyc2VJbnQodGhpcy5jLmxheW91dC5zcGxpdCgiLSIpWzFdLDEwKT4zJiZ0aGlzLmRvbS5jb250YWluZXIuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnNtYWxsR2FwKSx0aGlzLmRvbS50b3BSb3cuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnN1YlJvd3NDb250YWluZXIpLmFwcGVuZCh0aGlzLmRvbS51cHBlci5hcHBlbmQodGhpcy5kb20uc2VhcmNoQ29udCkpLmFwcGVuZCh0aGlzLmRvbS5sb3dlci5hcHBlbmQodGhpcy5kb20uYnV0dG9uR3JvdXApKSwodGhpcy5jLmR0T3B0cy5zZWFyY2hpbmc9PT0hMXx8dGhpcy5zLmNvbE9wdHMuZHRPcHRzJiZ0aGlzLnMuY29sT3B0cy5kdE9wdHMuc2VhcmNoaW5nPT09ITF8fCF0aGlzLmMuY29udHJvbHN8fCF0aGlzLnMuY29sT3B0cy5jb250cm9sc3x8dGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncyYmdGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncy5kdE9wdHMmJnRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MuZHRPcHRzLnNlYXJjaGluZyE9PXZvaWQgMCYmIXRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MuZHRPcHRzLnNlYXJjaGluZykmJnRoaXMuZG9tLnNlYXJjaEJveC5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMucGFuZUlucHV0QnV0dG9uKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuZGlzYWJsZWRCdXR0b24pLmF0dHIoImRpc2FibGVkIiwidHJ1ZSIpLHRoaXMuZG9tLnNlYXJjaEJveC5hcHBlbmRUbyh0aGlzLmRvbS5zZWFyY2hDb250KSx0aGlzLl9zZWFyY2hDb250U2V0dXAoKSx0aGlzLmMuY2xlYXImJnRoaXMuYy5jb250cm9scyYmdGhpcy5zLmNvbE9wdHMuY29udHJvbHMmJnRoaXMuZG9tLmNsZWFyLmFwcGVuZFRvKHRoaXMuZG9tLmJ1dHRvbkdyb3VwKSx0aGlzLmMub3JkZXJhYmxlJiZ0aGlzLnMuY29sT3B0cy5vcmRlcmFibGUmJnRoaXMuYy5jb250cm9scyYmdGhpcy5zLmNvbE9wdHMuY29udHJvbHMmJnRoaXMuZG9tLm5hbWVCdXR0b24uYXBwZW5kVG8odGhpcy5kb20uYnV0dG9uR3JvdXApLHRoaXMuYy52aWV3Q291bnQmJnRoaXMucy5jb2xPcHRzLnZpZXdDb3VudCYmdGhpcy5jLm9yZGVyYWJsZSYmdGhpcy5zLmNvbE9wdHMub3JkZXJhYmxlJiZ0aGlzLmMuY29udHJvbHMmJnRoaXMucy5jb2xPcHRzLmNvbnRyb2xzJiZ0aGlzLmRvbS5jb3VudEJ1dHRvbi5hcHBlbmRUbyh0aGlzLmRvbS5idXR0b25Hcm91cCksKHRoaXMuYy5jb2xsYXBzZSYmdGhpcy5zLmNvbE9wdHMuY29sbGFwc2UhPT0hMXx8dGhpcy5zLmNvbE9wdHMuY29sbGFwc2UpJiZ0aGlzLmMuY29udHJvbHMmJnRoaXMucy5jb2xPcHRzLmNvbnRyb2xzJiZ0aGlzLmRvbS5jb2xsYXBzZUJ1dHRvbi5hcHBlbmRUbyh0aGlzLmRvbS5idXR0b25Hcm91cCksdGhpcy5kb20uY29udGFpbmVyLnByZXBlbmQodGhpcy5kb20udG9wUm93KS5hcHBlbmQodGhpcy5kb20uZHRQKS5zaG93KCl9LGcucHJvdG90eXBlLl9lc2NhcGVIVE1MPWZ1bmN0aW9uKF8pe3JldHVybiBfLnRvU3RyaW5nKCkucmVwbGFjZSgvJmFtcDsvZywiJiIpLnJlcGxhY2UoLyZsdDsvZywiPCIpLnJlcGxhY2UoLyZndDsvZywiPiIpLnJlcGxhY2UoLyZxdW90Oy9nLCciJyl9LGcucHJvdG90eXBlLl9nZXRCb251c09wdGlvbnM9ZnVuY3Rpb24oKXt2YXIgXz17dGhyZXNob2xkOm51bGx9O3JldHVybiB0LmV4dGVuZCghMCx7fSxnLmRlZmF1bHRzLF8sdGhpcy5jP3RoaXMuYzp7fSl9LGcucHJvdG90eXBlLl9nZXRPcHRpb25zPWZ1bmN0aW9uKCl7dmFyIF89dGhpcy5zLmR0LFM9e2NvbGxhcHNlOm51bGwsZW1wdHlNZXNzYWdlOiExLGluaXRDb2xsYXBzZWQ6bnVsbCx0aHJlc2hvbGQ6bnVsbH0sTj1fLnNldHRpbmdzKClbMF0uYW9Db2x1bW5zW3RoaXMucy5pbmRleF0uc2VhcmNoUGFuZXMsUj10LmV4dGVuZCghMCx7fSxnLmRlZmF1bHRzLFMsTik7cmV0dXJuIE4mJk4uaGlkZUNvdW50JiZOLnZpZXdDb3VudD09PXZvaWQgMCYmKFIudmlld0NvdW50PSFOLmhpZGVDb3VudCksUn0sZy5wcm90b3R5cGUuX3BvcHVsYXRlUGFuZT1mdW5jdGlvbigpe3RoaXMucy5yb3dEYXRhLmFycmF5RmlsdGVyPVtdLHRoaXMucy5yb3dEYXRhLmJpbnM9e307dmFyIF89dGhpcy5zLmR0LmNvbnRleHRbMF07aWYoIXRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlKWZvcih2YXIgUz0wLE49dGhpcy5zLmR0LnJvd3MoKS5pbmRleGVzKCkudG9BcnJheSgpO1M8Ti5sZW5ndGg7UysrKXt2YXIgUj1OW1NdO3RoaXMuX3BvcHVsYXRlUGFuZUFycmF5KFIsdGhpcy5zLnJvd0RhdGEuYXJyYXlGaWx0ZXIsXyl9fSxnLnByb3RvdHlwZS5fc2VhcmNoPWZ1bmN0aW9uKF8sUyl7Zm9yKHZhciBOPXRoaXMucy5jb2xPcHRzLFI9dGhpcy5zLmR0LEw9MCxYPXRoaXMucy5zZWxlY3Rpb25zO0w8WC5sZW5ndGg7TCsrKXt2YXIgaj1YW0xdO2lmKHR5cGVvZiBqPT0ic3RyaW5nIiYmdHlwZW9mIF89PSJzdHJpbmciJiYoaj10aGlzLl9lc2NhcGVIVE1MKGopKSxBcnJheS5pc0FycmF5KF8pKXtpZihOLmNvbWJpbmVyPT09ImFuZCIpe2lmKCFfLmluY2x1ZGVzKGopKXJldHVybiExfWVsc2UgaWYoXy5pbmNsdWRlcyhqKSlyZXR1cm4hMH1lbHNlIGlmKHR5cGVvZiBqPT0iZnVuY3Rpb24iKXtpZihqLmNhbGwoUixSLnJvdyhTKS5kYXRhKCksUykpe2lmKE4uY29tYmluZXI9PT0ib3IiKXJldHVybiEwfWVsc2UgaWYoTi5jb21iaW5lcj09PSJhbmQiKXJldHVybiExfWVsc2UgaWYoXz09PWp8fCEodHlwZW9mIF89PSJzdHJpbmciJiZfLmxlbmd0aD09PTApJiZfPT1qfHxqPT09bnVsbCYmdHlwZW9mIF89PSJzdHJpbmciJiZfPT09IiIpcmV0dXJuITB9cmV0dXJuIE4uY29tYmluZXI9PT0iYW5kIn0sZy5wcm90b3R5cGUuX3NlYXJjaENvbnRTZXR1cD1mdW5jdGlvbigpe3RoaXMuYy5jb250cm9scyYmdGhpcy5zLmNvbE9wdHMuY29udHJvbHMmJnRoaXMuZG9tLnNlYXJjaEJ1dHRvbi5hcHBlbmRUbyh0aGlzLmRvbS5zZWFyY2hMYWJlbENvbnQpLHRoaXMuYy5kdE9wdHMuc2VhcmNoaW5nPT09ITF8fHRoaXMucy5jb2xPcHRzLmR0T3B0cy5zZWFyY2hpbmc9PT0hMXx8dGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncyYmdGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncy5kdE9wdHMmJnRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MuZHRPcHRzLnNlYXJjaGluZyE9PXZvaWQgMCYmIXRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MuZHRPcHRzLnNlYXJjaGluZ3x8dGhpcy5kb20uc2VhcmNoTGFiZWxDb250LmFwcGVuZFRvKHRoaXMuZG9tLnNlYXJjaENvbnQpfSxnLnByb3RvdHlwZS5fc2VhcmNoRXh0cmFzPWZ1bmN0aW9uKCl7dmFyIF89dGhpcy5zLnVwZGF0aW5nO3RoaXMucy51cGRhdGluZz0hMDt2YXIgUz10aGlzLnMuZHRQYW5lLnJvd3Moe3NlbGVjdGVkOiEwfSkuZGF0YSgpLnBsdWNrKCJmaWx0ZXIiKS50b0FycmF5KCksTj1TLmluZGV4T2YodGhpcy5lbXB0eU1lc3NhZ2UoKSksUj10KHRoaXMucy5kdFBhbmUudGFibGUoKS5jb250YWluZXIoKSk7Tj4tMSYmKFNbTl09IiIpLFMubGVuZ3RoPjA/Ui5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuc2VsZWN0ZWQpOlMubGVuZ3RoPT09MCYmUi5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMuc2VsZWN0ZWQpLHRoaXMucy51cGRhdGluZz1ffSxnLnZlcnNpb249IjIuMS4yIixnLmNsYXNzZXM9e2JvcmRlcmVkOiJkdHNwLWJvcmRlcmVkIixidXR0b25Hcm91cDoiZHRzcC1idXR0b25Hcm91cCIsYnV0dG9uU3ViOiJkdHNwLWJ1dHRvblN1YiIsY2FyZXQ6ImR0c3AtY2FyZXQiLGNsZWFyOiJkdHNwLWNsZWFyIixjbGVhckFsbDoiZHRzcC1jbGVhckFsbCIsY2xlYXJCdXR0b246ImNsZWFyQnV0dG9uIixjb2xsYXBzZUFsbDoiZHRzcC1jb2xsYXBzZUFsbCIsY29sbGFwc2VCdXR0b246ImR0c3AtY29sbGFwc2VCdXR0b24iLGNvbnRhaW5lcjoiZHRzcC1zZWFyY2hQYW5lIixjb3VudEJ1dHRvbjoiZHRzcC1jb3VudEJ1dHRvbiIsZGlzYWJsZWRCdXR0b246ImR0c3AtZGlzYWJsZWRCdXR0b24iLGhpZGRlbjoiZHRzcC1oaWRkZW4iLGhpZGU6ImR0c3AtaGlkZSIsbGF5b3V0OiJkdHNwLSIsbmFtZToiZHRzcC1uYW1lIixuYW1lQnV0dG9uOiJkdHNwLW5hbWVCdXR0b24iLG5hbWVDb250OiJkdHNwLW5hbWVDb250IixuYXJyb3c6ImR0c3AtbmFycm93IixwYW5lQnV0dG9uOiJkdHNwLXBhbmVCdXR0b24iLHBhbmVJbnB1dEJ1dHRvbjoiZHRzcC1wYW5lSW5wdXRCdXR0b24iLHBpbGw6ImR0c3AtcGlsbCIscm90YXRlZDoiZHRzcC1yb3RhdGVkIixzZWFyY2g6ImR0c3Atc2VhcmNoIixzZWFyY2hDb250OiJkdHNwLXNlYXJjaENvbnQiLHNlYXJjaEljb246ImR0c3Atc2VhcmNoSWNvbiIsc2VhcmNoTGFiZWxDb250OiJkdHNwLXNlYXJjaEJ1dHRvbkNvbnQiLHNlbGVjdGVkOiJkdHNwLXNlbGVjdGVkIixzbWFsbEdhcDoiZHRzcC1zbWFsbEdhcCIsc3ViUm93MToiZHRzcC1zdWJSb3cxIixzdWJSb3cyOiJkdHNwLXN1YlJvdzIiLHN1YlJvd3NDb250YWluZXI6ImR0c3Atc3ViUm93c0NvbnRhaW5lciIsdGl0bGU6ImR0c3AtdGl0bGUiLHRvcFJvdzoiZHRzcC10b3BSb3cifSxnLmRlZmF1bHRzPXtjbGVhcjohMCxjb2xsYXBzZTohMCxjb21iaW5lcjoib3IiLGNvbnRhaW5lcjpmdW5jdGlvbihfKXtyZXR1cm4gXy50YWJsZSgpLmNvbnRhaW5lcigpfSxjb250cm9sczohMCxkdE9wdHM6e30sZW1wdHlNZXNzYWdlOm51bGwsaGlkZUNvdW50OiExLGkxOG46e2NsZWFyUGFuZToiJnRpbWVzOyIsY291bnQ6Int0b3RhbH0iLGVtcHR5TWVzc2FnZToiPGVtPk5vIGRhdGE8L2VtPiJ9LGluaXRDb2xsYXBzZWQ6ITEsbGF5b3V0OiJhdXRvIixuYW1lOnZvaWQgMCxvcmRlcmFibGU6ITAsb3J0aG9nb25hbDp7ZGlzcGxheToiZGlzcGxheSIsZmlsdGVyOiJmaWx0ZXIiLGhpZGVDb3VudDohMSxzZWFyY2g6ImZpbHRlciIsc2hvdzp2b2lkIDAsc29ydDoic29ydCIsdGhyZXNob2xkOi42LHR5cGU6InR5cGUiLHZpZXdDb3VudDohMH0scHJlU2VsZWN0OltdLHRocmVzaG9sZDouNix2aWV3Q291bnQ6ITB9LGd9KCkscz13aW5kb3cmJndpbmRvdy5fX2V4dGVuZHN8fGZ1bmN0aW9uKCl7dmFyIGc9ZnVuY3Rpb24oXyxTKXtyZXR1cm4gZz1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oTixSKXtOLl9fcHJvdG9fXz1SfXx8ZnVuY3Rpb24oTixSKXtmb3IodmFyIEwgaW4gUilSLmhhc093blByb3BlcnR5KEwpJiYoTltMXT1SW0xdKX0sZyhfLFMpfTtyZXR1cm4gZnVuY3Rpb24oXyxTKXtnKF8sUyk7ZnVuY3Rpb24gTigpe3RoaXMuY29uc3RydWN0b3I9X31fLnByb3RvdHlwZT1TPT09bnVsbD9PYmplY3QuY3JlYXRlKFMpOihOLnByb3RvdHlwZT1TLnByb3RvdHlwZSxuZXcgTil9fSgpLGE9ZnVuY3Rpb24oZyl7cyhfLGcpO2Z1bmN0aW9uIF8oUyxOLFIsTCxYKXtyZXR1cm4gZy5jYWxsKHRoaXMsUyxOLFIsTCxYKXx8dGhpc31yZXR1cm4gXy5wcm90b3R5cGUuX2VtcHR5UGFuZT1mdW5jdGlvbigpe3ZhciBTPXRoaXMucy5kdFBhbmU7aWYoc3QudmVyc2lvbkNoZWNrKCIyIikpe3ZhciBOPVMuc2VsZWN0Lmxhc3QoKSxSO3JldHVybiBOJiZTLnJvdyhOLnJvdykuYW55KCkmJihSPVMucm93KE4ucm93KS5kYXRhKCkuaW5kZXgpLFMucm93cygpLnJlbW92ZSgpLGZ1bmN0aW9uKCl7aWYoUiE9PXZvaWQgMCl7dmFyIEw9Uy5yb3coZnVuY3Rpb24oWCxqKXtyZXR1cm4gai5pbmRleD09PVJ9KS5pbmRleCgpO1Muc2VsZWN0Lmxhc3Qoe3JvdzpMLGNvbHVtbjowfSl9fX1yZXR1cm4gUy5yb3dzKCkucmVtb3ZlKCksZnVuY3Rpb24oKXt9fSxfLnByb3RvdHlwZS5fc2VydmVyUG9wdWxhdGU9ZnVuY3Rpb24oUyl7dmFyIE4sUixMO3RoaXMucy5yb3dEYXRhLmJpbnNTaG93bj17fSx0aGlzLnMucm93RGF0YS5hcnJheUZpbHRlcj1bXSxTLnRhYmxlTGVuZ3RoIT09dm9pZCAwPyh0aGlzLnMudGFibGVMZW5ndGg9Uy50YWJsZUxlbmd0aCx0aGlzLnMucm93RGF0YS50b3RhbE9wdGlvbnM9dGhpcy5zLnRhYmxlTGVuZ3RoKToodGhpcy5zLnRhYmxlTGVuZ3RoPT09bnVsbHx8dGhpcy5zLmR0LnJvd3MoKVswXS5sZW5ndGg+dGhpcy5zLnRhYmxlTGVuZ3RoKSYmKHRoaXMucy50YWJsZUxlbmd0aD10aGlzLnMuZHQucm93cygpWzBdLmxlbmd0aCx0aGlzLnMucm93RGF0YS50b3RhbE9wdGlvbnM9dGhpcy5zLnRhYmxlTGVuZ3RoKTt2YXIgWD10aGlzLnMuZHQuY29sdW1uKHRoaXMucy5pbmRleCkuZGF0YVNyYygpO2lmKFMuc2VhcmNoUGFuZXMub3B0aW9uc1tYXSE9PXZvaWQgMClmb3IodmFyIGo9MCxHPVMuc2VhcmNoUGFuZXMub3B0aW9uc1tYXTtqPEcubGVuZ3RoO2orKyl7dmFyIGF0PUdbal07dGhpcy5zLnJvd0RhdGEuYXJyYXlGaWx0ZXIucHVzaCh7ZGlzcGxheTphdC5sYWJlbCxmaWx0ZXI6YXQudmFsdWUsc2hvd246K2F0LmNvdW50LHNvcnQ6YXQubGFiZWwsdG90YWw6K2F0LnRvdGFsLHR5cGU6YXQubGFiZWx9KSx0aGlzLnMucm93RGF0YS5iaW5zU2hvd25bYXQudmFsdWVdPSthdC5jb3VudCx0aGlzLnMucm93RGF0YS5iaW5zW2F0LnZhbHVlXT0rYXQudG90YWx9dmFyIEo9T2JqZWN0LmtleXModGhpcy5zLnJvd0RhdGEuYmlucykubGVuZ3RoLHR0PXRoaXMuX3VuaXF1ZVJhdGlvKEosdGhpcy5zLnRhYmxlTGVuZ3RoKTtpZighdGhpcy5zLmNvbE9wdHMuc2hvdyYmdGhpcy5zLmRpc3BsYXllZD09PSExJiYoKHRoaXMucy5jb2xPcHRzLnNob3c9PT12b2lkIDAmJnRoaXMucy5jb2xPcHRzLnRocmVzaG9sZD09PW51bGw/dHQ+dGhpcy5jLnRocmVzaG9sZDp0dD50aGlzLnMuY29sT3B0cy50aHJlc2hvbGQpfHx0aGlzLnMuY29sT3B0cy5zaG93IT09ITAmJko8PTEpKXt0aGlzLmRvbS5jb250YWluZXIuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmhpZGRlbiksdGhpcy5zLmRpc3BsYXllZD0hMTtyZXR1cm59aWYodGhpcy5zLnJvd0RhdGEuYXJyYXlPcmlnaW5hbD10aGlzLnMucm93RGF0YS5hcnJheUZpbHRlcix0aGlzLnMucm93RGF0YS5iaW5zT3JpZ2luYWw9dGhpcy5zLnJvd0RhdGEuYmlucyx0aGlzLnMuZGlzcGxheWVkPSEwLHRoaXMucy5kdFBhbmUpe2Zvcih2YXIgeXQ9dGhpcy5zLnNlcnZlclNlbGVjdCxUdD10aGlzLl9lbXB0eVBhbmUoKSxBdD0wLGt0PXRoaXMucy5yb3dEYXRhLmFycmF5RmlsdGVyO0F0PGt0Lmxlbmd0aDtBdCsrKWlmKEw9a3RbQXRdLHRoaXMuX3Nob3VsZEFkZFJvdyhMKSl7Uj10aGlzLmFkZFJvdyhMLmRpc3BsYXksTC5maWx0ZXIsTC5zb3J0LEwudHlwZSk7Zm9yKHZhciBMdD0wO0x0PHl0Lmxlbmd0aDtMdCsrKWlmKE49eXRbTHRdLE4uZmlsdGVyPT09TC5maWx0ZXIpe3RoaXMucy5zZXJ2ZXJTZWxlY3Rpbmc9ITAsUi5zZWxlY3QoKSx0aGlzLnMuc2VydmVyU2VsZWN0aW5nPSExLHl0LnNwbGljZShMdCwxKSx0aGlzLnMuc2VsZWN0aW9ucy5wdXNoKEwuZmlsdGVyKTticmVha319Zm9yKHZhciBCdD0wLCR0PXl0O0J0PCR0Lmxlbmd0aDtCdCsrKXtOPSR0W0J0XTtmb3IodmFyIEt0PTAsRD10aGlzLnMucm93RGF0YS5hcnJheU9yaWdpbmFsO0t0PEQubGVuZ3RoO0t0KyspTD1EW0t0XSxMLmZpbHRlcj09PU4uZmlsdGVyJiYoUj10aGlzLmFkZFJvdyhMLmRpc3BsYXksTC5maWx0ZXIsTC5zb3J0LEwudHlwZSksdGhpcy5zLnNlcnZlclNlbGVjdGluZz0hMCxSLnNlbGVjdCgpLHRoaXMucy5zZXJ2ZXJTZWxlY3Rpbmc9ITEsdGhpcy5zLnNlbGVjdGlvbnMucHVzaChMLmZpbHRlcikpfXRoaXMucy5zZXJ2ZXJTZWxlY3Q9dGhpcy5zLmR0UGFuZS5yb3dzKHtzZWxlY3RlZDohMH0pLmRhdGEoKS50b0FycmF5KCksdGhpcy5zLmR0UGFuZS5kcmF3KCksVHQoKX19LF8ucHJvdG90eXBlLnVwZGF0ZVJvd3M9ZnVuY3Rpb24oKXtpZighdGhpcy5zLmR0LnBhZ2UuaW5mbygpLnNlcnZlclNpZGUpe3RoaXMucy5yb3dEYXRhLmJpbnNTaG93bj17fTtmb3IodmFyIFM9MCxOPXRoaXMucy5kdC5yb3dzKHtzZWFyY2g6ImFwcGxpZWQifSkuaW5kZXhlcygpLnRvQXJyYXkoKTtTPE4ubGVuZ3RoO1MrKyl7dmFyIFI9TltTXTt0aGlzLl91cGRhdGVTaG93bihSLHRoaXMucy5kdC5zZXR0aW5ncygpWzBdLHRoaXMucy5yb3dEYXRhLmJpbnNTaG93bil9fWZvcih2YXIgTD1mdW5jdGlvbihKKXtKLnNob3duPXR5cGVvZiBYLnMucm93RGF0YS5iaW5zU2hvd25bSi5maWx0ZXJdPT0ibnVtYmVyIj9YLnMucm93RGF0YS5iaW5zU2hvd25bSi5maWx0ZXJdOjAsWC5zLmR0UGFuZS5yb3coZnVuY3Rpb24odHQseXQpe3JldHVybiB5dCYmeXQuaW5kZXg9PT1KLmluZGV4fSkuZGF0YShKKX0sWD10aGlzLGo9MCxHPXRoaXMucy5kdFBhbmUucm93cygpLmRhdGEoKS50b0FycmF5KCk7ajxHLmxlbmd0aDtqKyspe3ZhciBhdD1HW2pdO0woYXQpfXRoaXMucy5kdFBhbmUuZHJhdygpLHRoaXMucy5kdFBhbmUudGFibGUoKS5ub2RlKCkucGFyZW50Tm9kZS5zY3JvbGxUb3A9dGhpcy5zLnNjcm9sbFRvcH0sXy5wcm90b3R5cGUuX21ha2VTZWxlY3Rpb249ZnVuY3Rpb24oKXt9LF8ucHJvdG90eXBlLl9yZWxvYWRTZWxlY3Q9ZnVuY3Rpb24oKXt9LF8ucHJvdG90eXBlLl9zaG91bGRBZGRSb3c9ZnVuY3Rpb24oUyl7cmV0dXJuITB9LF8ucHJvdG90eXBlLl91cGRhdGVTZWxlY3Rpb249ZnVuY3Rpb24oKXt0aGlzLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZSYmIXRoaXMucy51cGRhdGluZyYmIXRoaXMucy5zZXJ2ZXJTZWxlY3RpbmcmJih0aGlzLnMuc2VydmVyU2VsZWN0PXRoaXMucy5kdFBhbmUucm93cyh7c2VsZWN0ZWQ6ITB9KS5kYXRhKCkudG9BcnJheSgpKX0sXy5wcm90b3R5cGUuX3VwZGF0ZVNob3duPWZ1bmN0aW9uKFMsTixSKXtSPT09dm9pZCAwJiYoUj10aGlzLnMucm93RGF0YS5iaW5zU2hvd24pO3ZhciBMPXR5cGVvZiB0aGlzLnMuY29sT3B0cy5vcnRob2dvbmFsPT0ic3RyaW5nIj90aGlzLnMuY29sT3B0cy5vcnRob2dvbmFsOnRoaXMucy5jb2xPcHRzLm9ydGhvZ29uYWwuc2VhcmNoLFg9dGhpcy5zLmR0LnNldHRpbmdzKClbMF0uZmFzdERhdGEsaj1YKFMsdGhpcy5zLmluZGV4LEwpLEc9ZnVuY3Rpb24oeXQpe1JbeXRdP1JbeXRdKys6Ult5dF09MX07aWYoQXJyYXkuaXNBcnJheShqKSlmb3IodmFyIGF0PTAsSj1qO2F0PEoubGVuZ3RoO2F0Kyspe3ZhciB0dD1KW2F0XTtHKHR0KX1lbHNlIEcoail9LF99KG4pLGw9d2luZG93JiZ3aW5kb3cuX19leHRlbmRzfHxmdW5jdGlvbigpe3ZhciBnPWZ1bmN0aW9uKF8sUyl7cmV0dXJuIGc9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKE4sUil7Ti5fX3Byb3RvX189Un18fGZ1bmN0aW9uKE4sUil7Zm9yKHZhciBMIGluIFIpUi5oYXNPd25Qcm9wZXJ0eShMKSYmKE5bTF09UltMXSl9LGcoXyxTKX07cmV0dXJuIGZ1bmN0aW9uKF8sUyl7ZyhfLFMpO2Z1bmN0aW9uIE4oKXt0aGlzLmNvbnN0cnVjdG9yPV99Xy5wcm90b3R5cGU9Uz09PW51bGw/T2JqZWN0LmNyZWF0ZShTKTooTi5wcm90b3R5cGU9Uy5wcm90b3R5cGUsbmV3IE4pfX0oKSxjO2Z1bmN0aW9uIHAoZyl7Yz1nfXZhciBiPWZ1bmN0aW9uKGcpe2woXyxnKTtmdW5jdGlvbiBfKFMsTixSLEwsWCl7dmFyIGo9dGhpcyxHPXtpMThuOntjb3VudEZpbHRlcmVkOiJ7c2hvd259ICh7dG90YWx9KSJ9fTtyZXR1cm4gaj1nLmNhbGwodGhpcyxTLGMuZXh0ZW5kKEcsTiksUixMLFgpfHx0aGlzLGp9cmV0dXJuIF8ucHJvdG90eXBlLl9nZXRNZXNzYWdlPWZ1bmN0aW9uKFMpe3ZhciBOPXRoaXMucy5kdC5pMThuKCJzZWFyY2hQYW5lcy5jb3VudCIsdGhpcy5jLmkxOG4uY291bnQpLFI9dGhpcy5zLmR0LmkxOG4oInNlYXJjaFBhbmVzLmNvdW50RmlsdGVyZWQiLHRoaXMuYy5pMThuLmNvdW50RmlsdGVyZWQpO3JldHVybih0aGlzLnMuZmlsdGVyaW5nQWN0aXZlP1I6TikucmVwbGFjZSgve3RvdGFsfS9nLFMudG90YWwpLnJlcGxhY2UoL3tzaG93bn0vZyxTLnNob3duKX0sXy5wcm90b3R5cGUuX2dldFNob3duPWZ1bmN0aW9uKFMpe3JldHVybiB0aGlzLnMucm93RGF0YS5iaW5zU2hvd24mJnRoaXMucy5yb3dEYXRhLmJpbnNTaG93bltTXT90aGlzLnMucm93RGF0YS5iaW5zU2hvd25bU106MH0sX30oYSksbT13aW5kb3cmJndpbmRvdy5fX2V4dGVuZHN8fGZ1bmN0aW9uKCl7dmFyIGc9ZnVuY3Rpb24oXyxTKXtyZXR1cm4gZz1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oTixSKXtOLl9fcHJvdG9fXz1SfXx8ZnVuY3Rpb24oTixSKXtmb3IodmFyIEwgaW4gUilSLmhhc093blByb3BlcnR5KEwpJiYoTltMXT1SW0xdKX0sZyhfLFMpfTtyZXR1cm4gZnVuY3Rpb24oXyxTKXtnKF8sUyk7ZnVuY3Rpb24gTigpe3RoaXMuY29uc3RydWN0b3I9X31fLnByb3RvdHlwZT1TPT09bnVsbD9PYmplY3QuY3JlYXRlKFMpOihOLnByb3RvdHlwZT1TLnByb3RvdHlwZSxuZXcgTil9fSgpLHk7ZnVuY3Rpb24gVChnKXt5PWd9dmFyIHc9ZnVuY3Rpb24oZyl7bShfLGcpO2Z1bmN0aW9uIF8oUyxOLFIsTCxYKXt2YXIgaj10aGlzLEc9e2kxOG46e2NvdW50OiJ7c2hvd259In19O3JldHVybiBqPWcuY2FsbCh0aGlzLFMseS5leHRlbmQoRyxOKSxSLEwsWCl8fHRoaXMsan1yZXR1cm4gXy5wcm90b3R5cGUudXBkYXRlUm93cz1mdW5jdGlvbigpe3ZhciBTPXRoaXMucy5kdFBhbmUucm93cyh7c2VsZWN0ZWQ6ITB9KS5kYXRhKCkudG9BcnJheSgpLE47aWYodGhpcy5zLmNvbE9wdHMub3B0aW9uc3x8dGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncyYmdGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncy5vcHRpb25zKXt0aGlzLl9nZXRDb21wYXJpc29uUm93cygpO2Zvcih2YXIgUj10aGlzLnMuZHRQYW5lLnJvd3MoKS50b0FycmF5KClbMF0sTD0wO0w8Ui5sZW5ndGg7TCsrKXt2YXIgWD10aGlzLnMuZHRQYW5lLnJvdyhSW0xdKSxqPVguZGF0YSgpO2lmKGohPT12b2lkIDApe2lmKGouc2hvd249PT0wKXtYLnJlbW92ZSgpLFI9dGhpcy5zLmR0UGFuZS5yb3dzKCkudG9BcnJheSgpWzBdLEwtLTtjb250aW51ZX1mb3IodmFyIEc9MCxhdD1TO0c8YXQubGVuZ3RoO0crKylpZihOPWF0W0ddLGouZmlsdGVyPT09Ti5maWx0ZXIpe1guc2VsZWN0KCksUy5zcGxpY2UoTCwxKSx0aGlzLnMuc2VsZWN0aW9ucy5wdXNoKGouZmlsdGVyKTticmVha319fX1lbHNle2lmKCF0aGlzLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZSl7dGhpcy5fYWN0aXZlUG9wdWxhdGVQYW5lKCksdGhpcy5zLnJvd0RhdGEuYmluc1Nob3duPXt9O2Zvcih2YXIgSj0wLHR0PXRoaXMucy5kdC5yb3dzKHtzZWFyY2g6ImFwcGxpZWQifSkuaW5kZXhlcygpLnRvQXJyYXkoKTtKPHR0Lmxlbmd0aDtKKyspe3ZhciB5dD10dFtKXTt0aGlzLl91cGRhdGVTaG93bih5dCx0aGlzLnMuZHQuc2V0dGluZ3MoKVswXSx0aGlzLnMucm93RGF0YS5iaW5zU2hvd24pfX10aGlzLnMuZHRQYW5lLnJvd3MoKS5yZW1vdmUoKTtmb3IodmFyIFR0PTAsQXQ9dGhpcy5zLnJvd0RhdGEuYXJyYXlGaWx0ZXI7VHQ8QXQubGVuZ3RoO1R0Kyspe3ZhciBrdD1BdFtUdF07aWYoa3Quc2hvd24hPT0wKWZvcih2YXIgTHQ9dGhpcy5hZGRSb3coa3QuZGlzcGxheSxrdC5maWx0ZXIsa3Quc29ydCxrdC50eXBlLHZvaWQgMCksQnQ9MDtCdDxTLmxlbmd0aDtCdCsrKXt2YXIgJHQ9U1tCdF07aWYoJHQuZmlsdGVyPT09a3QuZmlsdGVyKXtMdC5zZWxlY3QoKSxTLnNwbGljZShCdCwxKSx0aGlzLnMuc2VsZWN0aW9ucy5wdXNoKGt0LmZpbHRlcik7YnJlYWt9fX1mb3IodmFyIEt0PTAsRD1TO0t0PEQubGVuZ3RoO0t0Kyspe049RFtLdF07Zm9yKHZhciB1dD0wLG90PXRoaXMucy5yb3dEYXRhLmFycmF5T3JpZ2luYWw7dXQ8b3QubGVuZ3RoO3V0Kyspe3ZhciBIPW90W3V0XTtpZihILmZpbHRlcj09PU4uZmlsdGVyKXt2YXIgTT10aGlzLmFkZFJvdyhILmRpc3BsYXksSC5maWx0ZXIsSC5zb3J0LEgudHlwZSx2b2lkIDApO00uc2VsZWN0KCksdGhpcy5zLnNlbGVjdGlvbnMucHVzaChILmZpbHRlcil9fX19dGhpcy5zLmR0UGFuZS5kcmF3KCksdGhpcy5zLmR0UGFuZS50YWJsZSgpLm5vZGUoKS5wYXJlbnROb2RlLnNjcm9sbFRvcD10aGlzLnMuc2Nyb2xsVG9wLHRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlfHx0aGlzLnMuZHQuZHJhdyghMSl9LF8ucHJvdG90eXBlLl9hY3RpdmVQb3B1bGF0ZVBhbmU9ZnVuY3Rpb24oKXt0aGlzLnMucm93RGF0YS5hcnJheUZpbHRlcj1bXSx0aGlzLnMucm93RGF0YS5iaW5zPXt9O3ZhciBTPXRoaXMucy5kdC5zZXR0aW5ncygpWzBdO2lmKCF0aGlzLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZSlmb3IodmFyIE49MCxSPXRoaXMucy5kdC5yb3dzKHtzZWFyY2g6ImFwcGxpZWQifSkuaW5kZXhlcygpLnRvQXJyYXkoKTtOPFIubGVuZ3RoO04rKyl7dmFyIEw9UltOXTt0aGlzLl9wb3B1bGF0ZVBhbmVBcnJheShMLHRoaXMucy5yb3dEYXRhLmFycmF5RmlsdGVyLFMpfX0sXy5wcm90b3R5cGUuX2dldENvbXBhcmlzb25Sb3dzPWZ1bmN0aW9uKCl7dmFyIFM9dGhpcy5zLmNvbE9wdHMub3B0aW9ucz90aGlzLnMuY29sT3B0cy5vcHRpb25zOnRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MmJnRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3Mub3B0aW9ucz90aGlzLnMuY3VzdG9tUGFuZVNldHRpbmdzLm9wdGlvbnM6dm9pZCAwO2lmKFMhPT12b2lkIDApe3ZhciBOPXRoaXMucy5kdC5yb3dzKCksUj10aGlzLnMuZHQucm93cyh7c2VhcmNoOiJhcHBsaWVkIn0pLEw9Ti5kYXRhKCkudG9BcnJheSgpLFg9Ui5kYXRhKCkudG9BcnJheSgpLGo9W107dGhpcy5zLmR0UGFuZS5jbGVhcigpLHRoaXMucy5pbmRleGVzPVtdO2Zvcih2YXIgRz0wLGF0PVM7RzxhdC5sZW5ndGg7RysrKXt2YXIgSj1hdFtHXSx0dD1KLmxhYmVsIT09IiI/Si5sYWJlbDp0aGlzLmVtcHR5TWVzc2FnZSgpLHl0PXtjbGFzc05hbWU6Si5jbGFzc05hbWUsZGlzcGxheTp0dCxmaWx0ZXI6dHlwZW9mIEoudmFsdWU9PSJmdW5jdGlvbiI/Si52YWx1ZTpbXSxzaG93bjowLHNvcnQ6dHQsdG90YWw6MCx0eXBlOnR0fTtpZih0eXBlb2YgSi52YWx1ZT09ImZ1bmN0aW9uIil7Zm9yKHZhciBUdD0wO1R0PEwubGVuZ3RoO1R0KyspSi52YWx1ZS5jYWxsKHRoaXMucy5kdCxMW1R0XSxOWzBdW1R0XSkmJnl0LnRvdGFsKys7Zm9yKHZhciBBdD0wO0F0PFgubGVuZ3RoO0F0KyspSi52YWx1ZS5jYWxsKHRoaXMucy5kdCxYW0F0XSxSWzBdW0F0XSkmJnl0LnNob3duKys7dHlwZW9mIHl0LmZpbHRlciE9ImZ1bmN0aW9uIiYmeXQuZmlsdGVyLnB1c2goSi5maWx0ZXIpfWoucHVzaCh0aGlzLmFkZFJvdyh5dC5kaXNwbGF5LHl0LmZpbHRlcix5dC5zb3J0LHl0LnR5cGUseXQuY2xhc3NOYW1lLHl0LnRvdGFsLHl0LnNob3duKSl9cmV0dXJuIGp9fSxfLnByb3RvdHlwZS5fZ2V0TWVzc2FnZT1mdW5jdGlvbihTKXtyZXR1cm4gdGhpcy5zLmR0LmkxOG4oInNlYXJjaFBhbmVzLmNvdW50Iix0aGlzLmMuaTE4bi5jb3VudCkucmVwbGFjZSgve3RvdGFsfS9nLFMudG90YWwpLnJlcGxhY2UoL3tzaG93bn0vZyxTLnNob3duKX0sXy5wcm90b3R5cGUuX2dldFNob3duPWZ1bmN0aW9uKFMpe3JldHVybiB0aGlzLnMucm93RGF0YS5iaW5zU2hvd24mJnRoaXMucy5yb3dEYXRhLmJpbnNTaG93bltTXT90aGlzLnMucm93RGF0YS5iaW5zU2hvd25bU106MH0sXy5wcm90b3R5cGUuX3Nob3VsZEFkZFJvdz1mdW5jdGlvbihTKXtyZXR1cm4gUy5zaG93bj4wfSxffShhKSxrPXdpbmRvdyYmd2luZG93Ll9fZXh0ZW5kc3x8ZnVuY3Rpb24oKXt2YXIgZz1mdW5jdGlvbihfLFMpe3JldHVybiBnPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihOLFIpe04uX19wcm90b19fPVJ9fHxmdW5jdGlvbihOLFIpe2Zvcih2YXIgTCBpbiBSKVIuaGFzT3duUHJvcGVydHkoTCkmJihOW0xdPVJbTF0pfSxnKF8sUyl9O3JldHVybiBmdW5jdGlvbihfLFMpe2coXyxTKTtmdW5jdGlvbiBOKCl7dGhpcy5jb25zdHJ1Y3Rvcj1ffV8ucHJvdG90eXBlPVM9PT1udWxsP09iamVjdC5jcmVhdGUoUyk6KE4ucHJvdG90eXBlPVMucHJvdG90eXBlLG5ldyBOKX19KCksUDtmdW5jdGlvbiBGKGcpe1A9Z312YXIgaD1mdW5jdGlvbihnKXtrKF8sZyk7ZnVuY3Rpb24gXyhTLE4sUixMLFgpe3ZhciBqPXRoaXMsRz17aTE4bjp7Y291bnQ6Int0b3RhbH0iLGNvdW50RmlsdGVyZWQ6IntzaG93bn0gKHt0b3RhbH0pIn19O3JldHVybiBqPWcuY2FsbCh0aGlzLFMsUC5leHRlbmQoRyxOKSxSLEwsWCl8fHRoaXMsan1yZXR1cm4gXy5wcm90b3R5cGUuX2FjdGl2ZVBvcHVsYXRlUGFuZT1mdW5jdGlvbigpe3RoaXMucy5yb3dEYXRhLmFycmF5RmlsdGVyPVtdLHRoaXMucy5yb3dEYXRhLmJpbnNTaG93bj17fTt2YXIgUz10aGlzLnMuZHQuc2V0dGluZ3MoKVswXTtpZighdGhpcy5zLmR0LnBhZ2UuaW5mbygpLnNlcnZlclNpZGUpZm9yKHZhciBOPTAsUj10aGlzLnMuZHQucm93cyh7c2VhcmNoOiJhcHBsaWVkIn0pLmluZGV4ZXMoKS50b0FycmF5KCk7TjxSLmxlbmd0aDtOKyspe3ZhciBMPVJbTl07dGhpcy5fcG9wdWxhdGVQYW5lQXJyYXkoTCx0aGlzLnMucm93RGF0YS5hcnJheUZpbHRlcixTLHRoaXMucy5yb3dEYXRhLmJpbnNTaG93bil9fSxfLnByb3RvdHlwZS5fZ2V0TWVzc2FnZT1mdW5jdGlvbihTKXt2YXIgTj10aGlzLnMuZHQuaTE4bigic2VhcmNoUGFuZXMuY291bnQiLHRoaXMuYy5pMThuLmNvdW50KSxSPXRoaXMucy5kdC5pMThuKCJzZWFyY2hQYW5lcy5jb3VudEZpbHRlcmVkIix0aGlzLmMuaTE4bi5jb3VudEZpbHRlcmVkKTtyZXR1cm4odGhpcy5zLmZpbHRlcmluZ0FjdGl2ZT9SOk4pLnJlcGxhY2UoL3t0b3RhbH0vZyxTLnRvdGFsKS5yZXBsYWNlKC97c2hvd259L2csUy5zaG93bil9LF99KHcpLG8sZjtmdW5jdGlvbiBDKGcpe289ZyxmPWcuZm4uZGF0YVRhYmxlfXZhciBCPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZyhfLFMsTixSKXt2YXIgTD10aGlzO2lmKE49PT12b2lkIDAmJihOPSExKSxSPT09dm9pZCAwJiYoUj1uKSwhZnx8IWYudmVyc2lvbkNoZWNrfHwhZi52ZXJzaW9uQ2hlY2soIjEuMTAuMCIpKXRocm93IG5ldyBFcnJvcigiU2VhcmNoUGFuZSByZXF1aXJlcyBEYXRhVGFibGVzIDEuMTAgb3IgbmV3ZXIiKTtpZighZi5zZWxlY3QpdGhyb3cgbmV3IEVycm9yKCJTZWFyY2hQYW5lIHJlcXVpcmVzIFNlbGVjdCIpO3ZhciBYPW5ldyBmLkFwaShfKTtpZih0aGlzLmNsYXNzZXM9by5leHRlbmQoITAse30sZy5jbGFzc2VzKSx0aGlzLmM9by5leHRlbmQoITAse30sZy5kZWZhdWx0cyxTKSx0aGlzLmRvbT17Y2xlYXJBbGw6bygnPGJ1dHRvbiB0eXBlPSJidXR0b24iLz4nKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuY2xlYXJBbGwpLmh0bWwoWC5pMThuKCJzZWFyY2hQYW5lcy5jbGVhck1lc3NhZ2UiLHRoaXMuYy5pMThuLmNsZWFyTWVzc2FnZSkpLGNvbGxhcHNlQWxsOm8oJzxidXR0b24gdHlwZT0iYnV0dG9uIi8+JykuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmNvbGxhcHNlQWxsKS5odG1sKFguaTE4bigic2VhcmNoUGFuZXMuY29sbGFwc2VNZXNzYWdlIix0aGlzLmMuaTE4bi5jb2xsYXBzZU1lc3NhZ2UpKSxjb250YWluZXI6bygiPGRpdi8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnBhbmVzKS5odG1sKFguaTE4bigic2VhcmNoUGFuZXMubG9hZE1lc3NhZ2UiLHRoaXMuYy5pMThuLmxvYWRNZXNzYWdlKSksZW1wdHlNZXNzYWdlOm8oIjxkaXYvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5lbXB0eU1lc3NhZ2UpLHBhbmVzOm8oIjxkaXYvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5jb250YWluZXIpLHNob3dBbGw6bygnPGJ1dHRvbiB0eXBlPSJidXR0b24iLz4nKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuc2hvd0FsbCkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKS5hdHRyKCJkaXNhYmxlZCIsInRydWUiKS5odG1sKFguaTE4bigic2VhcmNoUGFuZXMuc2hvd01lc3NhZ2UiLHRoaXMuYy5pMThuLnNob3dNZXNzYWdlKSksdGl0bGU6bygiPGRpdi8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnRpdGxlKSx0aXRsZVJvdzpvKCI8ZGl2Lz4iKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMudGl0bGVSb3cpfSx0aGlzLnM9e2NvbE9wdHM6W10sZHQ6WCxmaWx0ZXJDb3VudDowLG1pblBhbmVXaWR0aDoyNjAscGFnZTowLHBhZ2luZzohMSxwYWdpbmdTVDohMSxwYW5lQ2xhc3M6UixwYW5lczpbXSxzZWxlY3Rpb25MaXN0OltdLHNlcnZlckRhdGE6e30sc3RhdGVSZWFkOiExLHVwZGF0aW5nOiExfSwhWC5zZXR0aW5ncygpWzBdLl9zZWFyY2hQYW5lcyl7aWYobyhkb2N1bWVudCkub24oImRyYXcuZHQiLGZ1bmN0aW9uKEcpe0wuZG9tLmNvbnRhaW5lci5maW5kKEcudGFyZ2V0KS5sZW5ndGgmJkwuX3VwZGF0ZUZpbHRlckNvdW50KCl9KSx0aGlzLl9nZXRTdGF0ZSgpLHRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlKXt2YXIgaj10aGlzLnMuZHQuc2V0dGluZ3MoKVswXTt0aGlzLnMuZHQub24oInByZVhoci5kdHNwcyIsZnVuY3Rpb24oRyxhdCxKKXtpZihqPT09YXQpe0ouc2VhcmNoUGFuZXM9PT12b2lkIDAmJihKLnNlYXJjaFBhbmVzPXt9KSxKLnNlYXJjaFBhbmVzX251bGw9PT12b2lkIDAmJihKLnNlYXJjaFBhbmVzX251bGw9e30pO2Zvcih2YXIgdHQseXQ9MCxUdD1MLnMuc2VsZWN0aW9uTGlzdDt5dDxUdC5sZW5ndGg7eXQrKyl7dmFyIEF0PVR0W3l0XTt0dD1MLnMuZHQuY29sdW1uKEF0LmNvbHVtbikuZGF0YVNyYygpLEouc2VhcmNoUGFuZXNbdHRdPT09dm9pZCAwJiYoSi5zZWFyY2hQYW5lc1t0dF09e30pLEouc2VhcmNoUGFuZXNfbnVsbFt0dF09PT12b2lkIDAmJihKLnNlYXJjaFBhbmVzX251bGxbdHRdPXt9KTtmb3IodmFyIGt0PTA7a3Q8QXQucm93cy5sZW5ndGg7a3QrKylKLnNlYXJjaFBhbmVzW3R0XVtrdF09QXQucm93c1trdF0sSi5zZWFyY2hQYW5lc1t0dF1ba3RdPT09bnVsbD9KLnNlYXJjaFBhbmVzX251bGxbdHRdW2t0XT0hMDpKLnNlYXJjaFBhbmVzX251bGxbdHRdW2t0XT0hMX1MLnMuc2VsZWN0aW9uTGlzdC5sZW5ndGg+MCYmKEouc2VhcmNoUGFuZXNMYXN0PXR0KSxKLnNlYXJjaFBhbmVzX29wdGlvbnM9e2Nhc2NhZGU6TC5jLmNhc2NhZGVQYW5lcyx2aWV3Q291bnQ6TC5jLnZpZXdDb3VudCx2aWV3VG90YWw6TC5jLnZpZXdUb3RhbH19fSl9cmV0dXJuIHRoaXMuX3NldFhIUigpLFguc2V0dGluZ3MoKVswXS5fc2VhcmNoUGFuZXM9dGhpcyx0aGlzLnMuZHQuc2V0dGluZ3MoKVswXS5fYkluaXRDb21wbGV0ZXx8Tj90aGlzLl9wYW5lRGVjbGFyZShYLF8sUyk6WC5vbmUoInByZUluaXQuZHRzcHMiLGZ1bmN0aW9uKCl7TC5fcGFuZURlY2xhcmUoWCxfLFMpfSksdGhpc319cmV0dXJuIGcucHJvdG90eXBlLmNsZWFyU2VsZWN0aW9ucz1mdW5jdGlvbigpe2Zvcih2YXIgXyxTPTAsTj10aGlzLnMucGFuZXM7UzxOLmxlbmd0aDtTKyspXz1OW1NdLF8ucy5kdFBhbmUmJihfLnMuc2Nyb2xsVG9wPV8ucy5kdFBhbmUudGFibGUoKS5ub2RlKCkucGFyZW50Tm9kZS5zY3JvbGxUb3ApO3ZhciBSPXRoaXMuZG9tLmNvbnRhaW5lci5maW5kKCIuIit0aGlzLmNsYXNzZXMuc2VhcmNoLnJlcGxhY2UoL1xzKy9nLCIuIikpO1IuZWFjaChmdW5jdGlvbigpe28odGhpcykudmFsKCIiKS50cmlnZ2VyKCJpbnB1dCIpfSksdGhpcy5zLnNlbGVjdGlvbkxpc3Q9W107Zm9yKHZhciBMPVtdLFg9MCxqPXRoaXMucy5wYW5lcztYPGoubGVuZ3RoO1grKylfPWpbWF0sXy5zLmR0UGFuZSYmTC5wdXNoKF8uY2xlYXJQYW5lKCkpO3JldHVybiBMfSxnLnByb3RvdHlwZS5nZXROb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tLmNvbnRhaW5lcn0sZy5wcm90b3R5cGUucmVidWlsZD1mdW5jdGlvbihfLFMpe189PT12b2lkIDAmJihfPSExKSxTPT09dm9pZCAwJiYoUz0hMSksdGhpcy5kb20uZW1wdHlNZXNzYWdlLmRldGFjaCgpLF89PT0hMSYmdGhpcy5kb20ucGFuZXMuZW1wdHkoKTtmb3IodmFyIE49W10sUj0wLEw9dGhpcy5zLnBhbmVzO1I8TC5sZW5ndGg7UisrKXt2YXIgWD1MW1JdOyhfPT09ITF8fFgucy5pbmRleD09PV8pJiYoWC5jbGVhckRhdGEoKSxYLnJlYnVpbGRQYW5lKHRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlP3RoaXMucy5zZXJ2ZXJEYXRhOnZvaWQgMCxTKSx0aGlzLmRvbS5wYW5lcy5hcHBlbmQoWC5kb20uY29udGFpbmVyKSxOLnB1c2goWCkpfXJldHVybiB0aGlzLl91cGRhdGVTZWxlY3Rpb24oKSx0aGlzLl91cGRhdGVGaWx0ZXJDb3VudCgpLHRoaXMuX2F0dGFjaFBhbmVDb250YWluZXIoKSx0aGlzLl9pbml0U2VsZWN0aW9uTGlzdGVuZXJzKCExKSx0aGlzLnMuZHQuZHJhdyghUyksdGhpcy5yZXNpemVQYW5lcygpLE4ubGVuZ3RoPT09MT9OWzBdOk59LGcucHJvdG90eXBlLnJlc2l6ZVBhbmVzPWZ1bmN0aW9uKCl7dmFyIF87aWYodGhpcy5jLmxheW91dD09PSJhdXRvIil7Zm9yKHZhciBTPW8odGhpcy5zLmR0LnNlYXJjaFBhbmVzLmNvbnRhaW5lcigpKS53aWR0aCgpLE49TWF0aC5mbG9vcihTL3RoaXMucy5taW5QYW5lV2lkdGgpLFI9MSxMPTAsWD1bXSxqPTAsRz10aGlzLnMucGFuZXM7ajxHLmxlbmd0aDtqKyspXz1HW2pdLF8ucy5kaXNwbGF5ZWQmJlgucHVzaChfLnMuaW5kZXgpO3ZhciBhdD1YLmxlbmd0aDtpZihOPT09YXQpUj1OO2Vsc2UgZm9yKHZhciBKPU47Sj4xO0otLSl7dmFyIHR0PWF0JUo7aWYodHQ9PT0wKXtSPUosTD0wO2JyZWFrfWVsc2UgdHQ+TCYmKFI9SixMPXR0KX12YXIgeXQ9TCE9PTA/WC5zbGljZShYLmxlbmd0aC1MLFgubGVuZ3RoKTpbXTt0aGlzLnMucGFuZXMuZm9yRWFjaChmdW5jdGlvbihrdCl7a3Qucy5kaXNwbGF5ZWQmJmt0LnJlc2l6ZSgiY29sdW1ucy0iKyh5dC5pbmNsdWRlcyhrdC5zLmluZGV4KT9MOlIpKX0pfWVsc2UgZm9yKHZhciBUdD0wLEF0PXRoaXMucy5wYW5lcztUdDxBdC5sZW5ndGg7VHQrKylfPUF0W1R0XSxfLmFkanVzdFRvcFJvdygpO3JldHVybiB0aGlzfSxnLnByb3RvdHlwZS5faW5pdFNlbGVjdGlvbkxpc3RlbmVycz1mdW5jdGlvbihfKXt9LGcucHJvdG90eXBlLl9zZXJ2ZXJUb3RhbHM9ZnVuY3Rpb24oKXt9LGcucHJvdG90eXBlLl9zZXRYSFI9ZnVuY3Rpb24oKXt2YXIgXz10aGlzLFM9dGhpcy5zLmR0LnNldHRpbmdzKClbMF0sTj1mdW5jdGlvbihSKXtSJiZSLnNlYXJjaFBhbmVzJiZSLnNlYXJjaFBhbmVzLm9wdGlvbnMmJihfLnMuc2VydmVyRGF0YT1SLF8ucy5zZXJ2ZXJEYXRhLnRhYmxlTGVuZ3RoPVIucmVjb3Jkc1RvdGFsLF8uX3NlcnZlclRvdGFscygpKX07dGhpcy5zLmR0Lm9uKCJ4aHIuZHRzcHMiLGZ1bmN0aW9uKFIsTCxYKXtTPT09TCYmTihYKX0pLE4odGhpcy5zLmR0LmFqYXguanNvbigpKX0sZy5wcm90b3R5cGUuX3N0YXRlTG9hZExpc3RlbmVyPWZ1bmN0aW9uKCl7dmFyIF89dGhpcyxTPXRoaXMucy5kdC5zZXR0aW5ncygpWzBdO3RoaXMucy5kdC5vbigic3RhdGVMb2FkUGFyYW1zLmR0c3BzIixmdW5jdGlvbihOLFIsTCl7aWYoIShMLnNlYXJjaFBhbmVzPT09dm9pZCAwfHxSIT09Uykpe2lmKF8uY2xlYXJTZWxlY3Rpb25zKCksXy5zLnNlbGVjdGlvbkxpc3Q9TC5zZWFyY2hQYW5lcy5zZWxlY3Rpb25MaXN0P0wuc2VhcmNoUGFuZXMuc2VsZWN0aW9uTGlzdDpbXSxMLnNlYXJjaFBhbmVzLnBhbmVzKWZvcih2YXIgWD0wLGo9TC5zZWFyY2hQYW5lcy5wYW5lcztYPGoubGVuZ3RoO1grKylmb3IodmFyIEc9altYXSxhdD0wLEo9Xy5zLnBhbmVzO2F0PEoubGVuZ3RoO2F0Kyspe3ZhciB0dD1KW2F0XTtHLmlkPT09dHQucy5pbmRleCYmdHQucy5kdFBhbmUmJih0dC5kb20uc2VhcmNoQm94LnZhbChHLnNlYXJjaFRlcm0pLHR0LnMuZHRQYW5lLm9yZGVyKEcub3JkZXIpKX1fLl9tYWtlU2VsZWN0aW9ucyhfLnMuc2VsZWN0aW9uTGlzdCl9fSl9LGcucHJvdG90eXBlLl91cGRhdGVTZWxlY3Rpb249ZnVuY3Rpb24oKXt0aGlzLnMuc2VsZWN0aW9uTGlzdD1bXTtmb3IodmFyIF89MCxTPXRoaXMucy5wYW5lcztfPFMubGVuZ3RoO18rKyl7dmFyIE49U1tfXTtpZihOLnMuZHRQYW5lKXt2YXIgUj1OLnMuZHRQYW5lLnJvd3Moe3NlbGVjdGVkOiEwfSkuZGF0YSgpLnRvQXJyYXkoKS5tYXAoZnVuY3Rpb24oTCl7cmV0dXJuIEwuZmlsdGVyfSk7Ui5sZW5ndGgmJnRoaXMucy5zZWxlY3Rpb25MaXN0LnB1c2goe2NvbHVtbjpOLnMuaW5kZXgscm93czpSfSl9fX0sZy5wcm90b3R5cGUuX2F0dGFjaD1mdW5jdGlvbigpe3ZhciBfPXRoaXM7dGhpcy5kb20udGl0bGVSb3cucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLmhpZGUpLmRldGFjaCgpLmFwcGVuZCh0aGlzLmRvbS50aXRsZSksdGhpcy5jLmNsZWFyJiZ0aGlzLmRvbS5jbGVhckFsbC5hcHBlbmRUbyh0aGlzLmRvbS50aXRsZVJvdykub2ZmKCJjbGljay5kdHNwcyIpLm9uKCJjbGljay5kdHNwcyIsZnVuY3Rpb24oKXtyZXR1cm4gXy5jbGVhclNlbGVjdGlvbnMoKX0pLHRoaXMuYy5jb2xsYXBzZSYmKHRoaXMuZG9tLnNob3dBbGwuYXBwZW5kVG8odGhpcy5kb20udGl0bGVSb3cpLHRoaXMuZG9tLmNvbGxhcHNlQWxsLmFwcGVuZFRvKHRoaXMuZG9tLnRpdGxlUm93KSx0aGlzLl9zZXRDb2xsYXBzZUxpc3RlbmVyKCkpO2Zvcih2YXIgUz0wLE49dGhpcy5zLnBhbmVzO1M8Ti5sZW5ndGg7UysrKXt2YXIgUj1OW1NdO3RoaXMuZG9tLnBhbmVzLmFwcGVuZChSLmRvbS5jb250YWluZXIpfXRoaXMuZG9tLmNvbnRhaW5lci50ZXh0KCIiKS5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMuaGlkZSkuYXBwZW5kKHRoaXMuZG9tLnRpdGxlUm93KS5hcHBlbmQodGhpcy5kb20ucGFuZXMpLHRoaXMucy5wYW5lcy5mb3JFYWNoKGZ1bmN0aW9uKEwpe3JldHVybiBMLnNldExpc3RlbmVycygpfSksbygiZGl2LiIrdGhpcy5jbGFzc2VzLmNvbnRhaW5lcikubGVuZ3RoPT09MCYmdGhpcy5kb20uY29udGFpbmVyLnByZXBlbmRUbyh0aGlzLnMuZHQpfSxnLnByb3RvdHlwZS5fYXR0YWNoTWVzc2FnZT1mdW5jdGlvbigpe3ZhciBfO3RyeXtfPXRoaXMucy5kdC5pMThuKCJzZWFyY2hQYW5lcy5lbXB0eVBhbmVzIix0aGlzLmMuaTE4bi5lbXB0eVBhbmVzKX1jYXRjaHtfPW51bGx9aWYoXz09PW51bGwpe3RoaXMuZG9tLmNvbnRhaW5lci5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuaGlkZSksdGhpcy5kb20udGl0bGVSb3cucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLmhpZGUpO3JldHVybn10aGlzLmRvbS5jb250YWluZXIucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLmhpZGUpLHRoaXMuZG9tLnRpdGxlUm93LmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5oaWRlKSx0aGlzLmRvbS5lbXB0eU1lc3NhZ2UuaHRtbChfKS5hcHBlbmRUbyh0aGlzLmRvbS5jb250YWluZXIpfSxnLnByb3RvdHlwZS5fYXR0YWNoUGFuZUNvbnRhaW5lcj1mdW5jdGlvbigpe2Zvcih2YXIgXz0wLFM9dGhpcy5zLnBhbmVzO188Uy5sZW5ndGg7XysrKXt2YXIgTj1TW19dO2lmKE4ucy5kaXNwbGF5ZWQ9PT0hMCl7dGhpcy5fYXR0YWNoKCk7cmV0dXJufX10aGlzLl9hdHRhY2hNZXNzYWdlKCl9LGcucHJvdG90eXBlLl9jaGVja0NvbGxhcHNlPWZ1bmN0aW9uKCl7Zm9yKHZhciBfPSEwLFM9ITAsTj0wLFI9dGhpcy5zLnBhbmVzO048Ui5sZW5ndGg7TisrKXt2YXIgTD1SW05dO0wucy5kaXNwbGF5ZWQmJihMLmRvbS5jb2xsYXBzZUJ1dHRvbi5oYXNDbGFzcyhMLmNsYXNzZXMucm90YXRlZCk/KHRoaXMuZG9tLnNob3dBbGwucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKS5yZW1vdmVBdHRyKCJkaXNhYmxlZCIpLFM9ITEpOih0aGlzLmRvbS5jb2xsYXBzZUFsbC5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMuZGlzYWJsZWRCdXR0b24pLnJlbW92ZUF0dHIoImRpc2FibGVkIiksXz0hMSkpfV8mJnRoaXMuZG9tLmNvbGxhcHNlQWxsLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbikuYXR0cigiZGlzYWJsZWQiLCJ0cnVlIiksUyYmdGhpcy5kb20uc2hvd0FsbC5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuZGlzYWJsZWRCdXR0b24pLmF0dHIoImRpc2FibGVkIiwidHJ1ZSIpfSxnLnByb3RvdHlwZS5fY2hlY2tNZXNzYWdlPWZ1bmN0aW9uKCl7Zm9yKHZhciBfPTAsUz10aGlzLnMucGFuZXM7XzxTLmxlbmd0aDtfKyspe3ZhciBOPVNbX107aWYoTi5zLmRpc3BsYXllZD09PSEwKXt0aGlzLmRvbS5lbXB0eU1lc3NhZ2UuZGV0YWNoKCksdGhpcy5kb20udGl0bGVSb3cucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLmhpZGUpO3JldHVybn19dGhpcy5fYXR0YWNoTWVzc2FnZSgpfSxnLnByb3RvdHlwZS5fY29sbGFwc2VBbGw9ZnVuY3Rpb24oKXtmb3IodmFyIF89MCxTPXRoaXMucy5wYW5lcztfPFMubGVuZ3RoO18rKyl7dmFyIE49U1tfXTtOLmNvbGxhcHNlKCl9fSxnLnByb3RvdHlwZS5fZmluZFBhbmU9ZnVuY3Rpb24oXyl7Zm9yKHZhciBTPTAsTj10aGlzLnMucGFuZXM7UzxOLmxlbmd0aDtTKyspe3ZhciBSPU5bU107aWYoXz09PVIucy5uYW1lKXJldHVybiBSfX0sZy5wcm90b3R5cGUuX2dldFN0YXRlPWZ1bmN0aW9uKCl7dmFyIF89dGhpcy5zLmR0LnN0YXRlLmxvYWRlZCgpO18mJl8uc2VhcmNoUGFuZXMmJl8uc2VhcmNoUGFuZXMuc2VsZWN0aW9uTGlzdCYmKHRoaXMucy5zZWxlY3Rpb25MaXN0PV8uc2VhcmNoUGFuZXMuc2VsZWN0aW9uTGlzdCl9LGcucHJvdG90eXBlLl9tYWtlU2VsZWN0aW9ucz1mdW5jdGlvbihfKXtmb3IodmFyIFM9MCxOPV87UzxOLmxlbmd0aDtTKyspe2Zvcih2YXIgUj1OW1NdLEw9dm9pZCAwLFg9MCxqPXRoaXMucy5wYW5lcztYPGoubGVuZ3RoO1grKyl7dmFyIEc9altYXTtpZihHLnMuaW5kZXg9PT1SLmNvbHVtbil7TD1HO2JyZWFrfX1pZihMJiZMLnMuZHRQYW5lKXtmb3IodmFyIGF0PTA7YXQ8TC5zLmR0UGFuZS5yb3dzKCkuZGF0YSgpLnRvQXJyYXkoKS5sZW5ndGg7YXQrKylSLnJvd3MuaW5jbHVkZXModHlwZW9mIEwucy5kdFBhbmUucm93KGF0KS5kYXRhKCkuZmlsdGVyPT0iZnVuY3Rpb24iP0wucy5kdFBhbmUuY2VsbChhdCwwKS5kYXRhKCk6TC5zLmR0UGFuZS5yb3coYXQpLmRhdGEoKS5maWx0ZXIpJiZMLnMuZHRQYW5lLnJvdyhhdCkuc2VsZWN0KCk7TC51cGRhdGVUYWJsZSgpfX19LGcucHJvdG90eXBlLl9wYW5lRGVjbGFyZT1mdW5jdGlvbihfLFMsTil7dmFyIFI9dGhpcztfLmNvbHVtbnModGhpcy5jLmNvbHVtbnMubGVuZ3RoPjA/dGhpcy5jLmNvbHVtbnM6dm9pZCAwKS5lcSgwKS5lYWNoKGZ1bmN0aW9uKEcpe1Iucy5wYW5lcy5wdXNoKG5ldyBSLnMucGFuZUNsYXNzKFMsTixHLFIuZG9tLnBhbmVzKSl9KTtmb3IodmFyIEw9Xy5jb2x1bW5zKCkuZXEoMCkudG9BcnJheSgpLmxlbmd0aCxYPTA7WDx0aGlzLmMucGFuZXMubGVuZ3RoO1grKyl7dmFyIGo9TCtYO3RoaXMucy5wYW5lcy5wdXNoKG5ldyB0aGlzLnMucGFuZUNsYXNzKFMsTixqLHRoaXMuZG9tLnBhbmVzLHRoaXMuYy5wYW5lc1tYXSkpfXRoaXMuYy5vcmRlci5sZW5ndGg+MCYmKHRoaXMucy5wYW5lcz10aGlzLmMub3JkZXIubWFwKGZ1bmN0aW9uKEcpe3JldHVybiBSLl9maW5kUGFuZShHKX0pKSx0aGlzLnMuZHQuc2V0dGluZ3MoKVswXS5fYkluaXRDb21wbGV0ZT90aGlzLl9zdGFydHVwKF8pOnRoaXMucy5kdC5zZXR0aW5ncygpWzBdLmFvSW5pdENvbXBsZXRlLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gUi5fc3RhcnR1cChfKX0pfSxnLnByb3RvdHlwZS5fc2V0Q29sbGFwc2VMaXN0ZW5lcj1mdW5jdGlvbigpe3ZhciBfPXRoaXM7dGhpcy5kb20uY29sbGFwc2VBbGwub2ZmKCJjbGljay5kdHNwcyIpLm9uKCJjbGljay5kdHNwcyIsZnVuY3Rpb24oKXtfLl9jb2xsYXBzZUFsbCgpLF8uZG9tLmNvbGxhcHNlQWxsLmFkZENsYXNzKF8uY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbikuYXR0cigiZGlzYWJsZWQiLCJ0cnVlIiksXy5kb20uc2hvd0FsbC5yZW1vdmVDbGFzcyhfLmNsYXNzZXMuZGlzYWJsZWRCdXR0b24pLnJlbW92ZUF0dHIoImRpc2FibGVkIiksXy5zLmR0LnN0YXRlLnNhdmUoKX0pLHRoaXMuZG9tLnNob3dBbGwub2ZmKCJjbGljay5kdHNwcyIpLm9uKCJjbGljay5kdHNwcyIsZnVuY3Rpb24oKXtfLl9zaG93QWxsKCksXy5kb20uc2hvd0FsbC5hZGRDbGFzcyhfLmNsYXNzZXMuZGlzYWJsZWRCdXR0b24pLmF0dHIoImRpc2FibGVkIiwidHJ1ZSIpLF8uZG9tLmNvbGxhcHNlQWxsLnJlbW92ZUNsYXNzKF8uY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbikucmVtb3ZlQXR0cigiZGlzYWJsZWQiKSxfLnMuZHQuc3RhdGUuc2F2ZSgpfSk7Zm9yKHZhciBTPTAsTj10aGlzLnMucGFuZXM7UzxOLmxlbmd0aDtTKyspe3ZhciBSPU5bU107Ui5kb20udG9wUm93Lm9mZigiY29sbGFwc2UuZHRzcHMiKS5vbigiY29sbGFwc2UuZHRzcHMiLGZ1bmN0aW9uKCl7cmV0dXJuIF8uX2NoZWNrQ29sbGFwc2UoKX0pfXRoaXMuX2NoZWNrQ29sbGFwc2UoKX0sZy5wcm90b3R5cGUuX3Nob3dBbGw9ZnVuY3Rpb24oKXtmb3IodmFyIF89MCxTPXRoaXMucy5wYW5lcztfPFMubGVuZ3RoO18rKyl7dmFyIE49U1tfXTtOLnNob3coKX19LGcucHJvdG90eXBlLl9zdGFydHVwPWZ1bmN0aW9uKF8pe3ZhciBTPXRoaXM7dGhpcy5fYXR0YWNoKCksdGhpcy5kb20ucGFuZXMuZW1wdHkoKTtmb3IodmFyIE49dGhpcy5zLmR0LnNldHRpbmdzKClbMF0sUj0wLEw9dGhpcy5zLnBhbmVzO1I8TC5sZW5ndGg7UisrKXt2YXIgWD1MW1JdO1gucmVidWlsZFBhbmUoT2JqZWN0LmtleXModGhpcy5zLnNlcnZlckRhdGEpLmxlbmd0aD4wP3RoaXMucy5zZXJ2ZXJEYXRhOnZvaWQgMCksdGhpcy5kb20ucGFuZXMuYXBwZW5kKFguZG9tLmNvbnRhaW5lcil9dGhpcy5jLmxheW91dD09PSJhdXRvIiYmdGhpcy5yZXNpemVQYW5lcygpO3ZhciBqPXRoaXMucy5kdC5zdGF0ZS5sb2FkZWQoKTshdGhpcy5zLnN0YXRlUmVhZCYmaiYmdGhpcy5zLmR0LnBhZ2Uoai5zdGFydC90aGlzLnMuZHQucGFnZS5sZW4oKSkuZHJhdygicGFnZSIpLHRoaXMucy5zdGF0ZVJlYWQ9ITAsdGhpcy5fY2hlY2tNZXNzYWdlKCksXy5vbigicHJlRHJhdy5kdHNwcyIsZnVuY3Rpb24oKXshUy5zLnVwZGF0aW5nJiYhUy5zLnBhZ2luZyYmKFMuX3VwZGF0ZUZpbHRlckNvdW50KCksUy5fdXBkYXRlU2VsZWN0aW9uKCkpLFMucy5wYWdpbmc9ITF9KSxvKHdpbmRvdykub24oInJlc2l6ZS5kdHNwcyIsZi51dGlsLnRocm90dGxlKGZ1bmN0aW9uKCl7cmV0dXJuIFMucmVzaXplUGFuZXMoKX0pKSx0aGlzLnMuZHQub24oInN0YXRlU2F2ZVBhcmFtcy5kdHNwcyIsZnVuY3Rpb24oYXQsSix0dCl7Sj09PU4mJih0dC5zZWFyY2hQYW5lcz09PXZvaWQgMCYmKHR0LnNlYXJjaFBhbmVzPXt9KSx0dC5zZWFyY2hQYW5lcy5zZWxlY3Rpb25MaXN0PVMucy5zZWxlY3Rpb25MaXN0KX0pLHRoaXMuX3N0YXRlTG9hZExpc3RlbmVyKCksXy5vZmYoInBhZ2UuZHRzcHMgcGFnZS1uYy5kdHNwcyIpLm9uKCJwYWdlLmR0c3BzIHBhZ2UtbmMuZHRzcHMiLGZ1bmN0aW9uKGF0LEope1Mucy5wYWdpbmc9ITAsUy5zLnBhZ2luZ1NUPSEwLFMucy5wYWdlPVMucy5kdC5wYWdlKCl9KSx0aGlzLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZT9fLm9mZigicHJlWGhyLmR0c3BzIikub24oInByZVhoci5kdHNwcyIsZnVuY3Rpb24oYXQsSix0dCl7aWYoSj09PU4pe3R0LnNlYXJjaFBhbmVzfHwodHQuc2VhcmNoUGFuZXM9e30pLHR0LnNlYXJjaFBhbmVzX251bGx8fCh0dC5zZWFyY2hQYW5lc19udWxsPXt9KTtmb3IodmFyIHl0PTAsVHQ9MCxBdD1TLnMucGFuZXM7VHQ8QXQubGVuZ3RoO1R0Kyspe3ZhciBrdD1BdFtUdF0sTHQ9Uy5zLmR0LmNvbHVtbihrdC5zLmluZGV4KS5kYXRhU3JjKCk7aWYodHQuc2VhcmNoUGFuZXNbTHRdfHwodHQuc2VhcmNoUGFuZXNbTHRdPXt9KSx0dC5zZWFyY2hQYW5lc19udWxsW0x0XXx8KHR0LnNlYXJjaFBhbmVzX251bGxbTHRdPXt9KSxrdC5zLmR0UGFuZSlmb3IodmFyIEJ0PWt0LnMuZHRQYW5lLnJvd3Moe3NlbGVjdGVkOiEwfSkuZGF0YSgpLnRvQXJyYXkoKSwkdD0wOyR0PEJ0Lmxlbmd0aDskdCsrKXR0LnNlYXJjaFBhbmVzW0x0XVskdF09QnRbJHRdLmZpbHRlcix0dC5zZWFyY2hQYW5lc1tMdF1bJHRdP3R0LnNlYXJjaFBhbmVzX251bGxbTHRdWyR0XT0hMTp0dC5zZWFyY2hQYW5lc19udWxsW0x0XVskdF09ITAseXQrK315dD4wJiYoeXQhPT1TLnMuZmlsdGVyQ291bnQ/KHR0LnN0YXJ0PTAsUy5zLnBhZ2U9MCk6dHQuc3RhcnQ9Uy5zLnBhZ2UqUy5zLmR0LnBhZ2UubGVuKCksUy5zLmR0LnBhZ2UoUy5zLnBhZ2UpLFMucy5maWx0ZXJDb3VudD15dCksUy5zLnNlbGVjdGlvbkxpc3QubGVuZ3RoPjAmJih0dC5zZWFyY2hQYW5lc0xhc3Q9Uy5zLmR0LmNvbHVtbihTLnMuc2VsZWN0aW9uTGlzdFtTLnMuc2VsZWN0aW9uTGlzdC5sZW5ndGgtMV0uY29sdW1uKS5kYXRhU3JjKCkpLHR0LnNlYXJjaFBhbmVzX29wdGlvbnM9e2Nhc2NhZGU6Uy5jLmNhc2NhZGVQYW5lcyx2aWV3Q291bnQ6Uy5jLnZpZXdDb3VudCx2aWV3VG90YWw6Uy5jLnZpZXdUb3RhbH19fSk6Xy5vbigicHJlWGhyLmR0c3BzIixmdW5jdGlvbigpe3JldHVybiBTLnMucGFuZXMuZm9yRWFjaChmdW5jdGlvbihhdCl7cmV0dXJuIGF0LmNsZWFyRGF0YSgpfSl9KSx0aGlzLnMuZHQub24oInhoci5kdHNwcyIsZnVuY3Rpb24oYXQsSil7aWYoSi5uVGFibGU9PT1TLnMuZHQudGFibGUoKS5ub2RlKCkmJiFTLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZSl7dmFyIHR0PSExO1Mucy5kdC5vbmUoInByZURyYXcuZHRzcHMiLGZ1bmN0aW9uKCl7aWYoIXR0KXt2YXIgeXQ9Uy5zLmR0LnBhZ2UoKTt0dD0hMCxTLnMudXBkYXRpbmc9ITAsUy5kb20ucGFuZXMuZW1wdHkoKTtmb3IodmFyIFR0PTAsQXQ9Uy5zLnBhbmVzO1R0PEF0Lmxlbmd0aDtUdCsrKXt2YXIga3Q9QXRbVHRdO2t0LmNsZWFyRGF0YSgpLGt0LnJlYnVpbGRQYW5lKHZvaWQgMCwhMCksUy5kb20ucGFuZXMuYXBwZW5kKGt0LmRvbS5jb250YWluZXIpfVMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlfHxTLnMuZHQuZHJhdygpLFMucy51cGRhdGluZz0hMSxTLl91cGRhdGVTZWxlY3Rpb24oKSxTLl9jaGVja01lc3NhZ2UoKSxTLnMuZHQub25lKCJkcmF3LmR0c3BzIixmdW5jdGlvbigpe1Mucy51cGRhdGluZz0hMCxTLnMuZHQucGFnZSh5dCkuZHJhdyghMSksUy5zLnVwZGF0aW5nPSExfSl9fSl9fSk7dmFyIEc9dGhpcy5jLnByZVNlbGVjdDtqJiZqLnNlYXJjaFBhbmVzJiZqLnNlYXJjaFBhbmVzLnNlbGVjdGlvbkxpc3QmJihHPWouc2VhcmNoUGFuZXMuc2VsZWN0aW9uTGlzdCksdGhpcy5fbWFrZVNlbGVjdGlvbnMoRyksdGhpcy5fdXBkYXRlRmlsdGVyQ291bnQoKSxfLm9uKCJkZXN0cm95LmR0c3BzIixmdW5jdGlvbihhdCxKKXtpZihKPT09Til7Zm9yKHZhciB0dD0wLHl0PVMucy5wYW5lczt0dDx5dC5sZW5ndGg7dHQrKyl7dmFyIFR0PXl0W3R0XTtUdC5kZXN0cm95KCl9Xy5vZmYoIi5kdHNwcyIpLFMuZG9tLnNob3dBbGwub2ZmKCIuZHRzcHMiKSxTLmRvbS5jbGVhckFsbC5vZmYoIi5kdHNwcyIpLFMuZG9tLmNvbGxhcHNlQWxsLm9mZigiLmR0c3BzIiksbyhfLnRhYmxlKCkubm9kZSgpKS5vZmYoIi5kdHNwcyIpLFMuZG9tLmNvbnRhaW5lci5kZXRhY2goKSxTLmNsZWFyU2VsZWN0aW9ucygpfX0pLHRoaXMuYy5jb2xsYXBzZSYmdGhpcy5fc2V0Q29sbGFwc2VMaXN0ZW5lcigpLHRoaXMuYy5jbGVhciYmdGhpcy5kb20uY2xlYXJBbGwub2ZmKCJjbGljay5kdHNwcyIpLm9uKCJjbGljay5kdHNwcyIsZnVuY3Rpb24oKXtyZXR1cm4gUy5jbGVhclNlbGVjdGlvbnMoKX0pLE4uX3NlYXJjaFBhbmVzPXRoaXMsdGhpcy5zLmR0LnN0YXRlLnNhdmUoKX0sZy5wcm90b3R5cGUuX3VwZGF0ZUZpbHRlckNvdW50PWZ1bmN0aW9uKCl7Zm9yKHZhciBfPTAsUz0wLE49MCxSPXRoaXMucy5wYW5lcztOPFIubGVuZ3RoO04rKyl7dmFyIEw9UltOXTtMLnMuZHRQYW5lJiYoXys9TC5nZXRQYW5lQ291bnQoKSxMLnMuZHRQYW5lLnNlYXJjaCgpJiZTKyspfXRoaXMuZG9tLnRpdGxlLmh0bWwodGhpcy5zLmR0LmkxOG4oInNlYXJjaFBhbmVzLnRpdGxlIix0aGlzLmMuaTE4bi50aXRsZSxfKSksdGhpcy5jLmZpbHRlckNoYW5nZWQmJnR5cGVvZiB0aGlzLmMuZmlsdGVyQ2hhbmdlZD09ImZ1bmN0aW9uIiYmdGhpcy5jLmZpbHRlckNoYW5nZWQuY2FsbCh0aGlzLnMuZHQsXyksXz09PTAmJlM9PT0wP3RoaXMuZG9tLmNsZWFyQWxsLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbikuYXR0cigiZGlzYWJsZWQiLCJ0cnVlIik6dGhpcy5kb20uY2xlYXJBbGwucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKS5yZW1vdmVBdHRyKCJkaXNhYmxlZCIpfSxnLnZlcnNpb249IjIuMy4wIixnLmNsYXNzZXM9e2NsZWFyOiJkdHNwLWNsZWFyIixjbGVhckFsbDoiZHRzcC1jbGVhckFsbCIsY29sbGFwc2VBbGw6ImR0c3AtY29sbGFwc2VBbGwiLGNvbnRhaW5lcjoiZHRzcC1zZWFyY2hQYW5lcyIsZGlzYWJsZWRCdXR0b246ImR0c3AtZGlzYWJsZWRCdXR0b24iLGVtcHR5TWVzc2FnZToiZHRzcC1lbXB0eU1lc3NhZ2UiLGhpZGU6ImR0c3AtaGlkZGVuIixwYW5lczoiZHRzcC1wYW5lc0NvbnRhaW5lciIsc2VhcmNoOiJkdHNwLXNlYXJjaCIsc2hvd0FsbDoiZHRzcC1zaG93QWxsIix0aXRsZToiZHRzcC10aXRsZSIsdGl0bGVSb3c6ImR0c3AtdGl0bGVSb3cifSxnLmRlZmF1bHRzPXtjYXNjYWRlUGFuZXM6ITEsY2xlYXI6ITAsY29sbGFwc2U6ITAsY29sdW1uczpbXSxjb250YWluZXI6ZnVuY3Rpb24oXyl7cmV0dXJuIF8udGFibGUoKS5jb250YWluZXIoKX0sZmlsdGVyQ2hhbmdlZDp2b2lkIDAsaTE4bjp7Y2xlYXJNZXNzYWdlOiJDbGVhciBBbGwiLGNsZWFyUGFuZToiJnRpbWVzOyIsY29sbGFwc2U6ezA6IlNlYXJjaFBhbmVzIixfOiJTZWFyY2hQYW5lcyAoJWQpIn0sY29sbGFwc2VNZXNzYWdlOiJDb2xsYXBzZSBBbGwiLGNvdW50OiJ7dG90YWx9IixlbXB0eU1lc3NhZ2U6IjxlbT5ObyBkYXRhPC9lbT4iLGVtcHR5UGFuZXM6Ik5vIFNlYXJjaFBhbmVzIixsb2FkTWVzc2FnZToiTG9hZGluZyBTZWFyY2ggUGFuZXMuLi4iLHNob3dNZXNzYWdlOiJTaG93IEFsbCIsdGl0bGU6IkZpbHRlcnMgQWN0aXZlIC0gJWQifSxsYXlvdXQ6ImF1dG8iLG9yZGVyOltdLHBhbmVzOltdLHByZVNlbGVjdDpbXSx2aWV3Q291bnQ6ITAsdmlld1RvdGFsOiExfSxnfSgpLHU9d2luZG93JiZ3aW5kb3cuX19leHRlbmRzfHxmdW5jdGlvbigpe3ZhciBnPWZ1bmN0aW9uKF8sUyl7cmV0dXJuIGc9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKE4sUil7Ti5fX3Byb3RvX189Un18fGZ1bmN0aW9uKE4sUil7Zm9yKHZhciBMIGluIFIpUi5oYXNPd25Qcm9wZXJ0eShMKSYmKE5bTF09UltMXSl9LGcoXyxTKX07cmV0dXJuIGZ1bmN0aW9uKF8sUyl7ZyhfLFMpO2Z1bmN0aW9uIE4oKXt0aGlzLmNvbnN0cnVjdG9yPV99Xy5wcm90b3R5cGU9Uz09PW51bGw/T2JqZWN0LmNyZWF0ZShTKTooTi5wcm90b3R5cGU9Uy5wcm90b3R5cGUsbmV3IE4pfX0oKSx6PWZ1bmN0aW9uKGcpe3UoXyxnKTtmdW5jdGlvbiBfKFMsTixSKXtSPT09dm9pZCAwJiYoUj0hMSk7dmFyIEw9dGhpcyxYO04uY2FzY2FkZVBhbmVzJiZOLnZpZXdUb3RhbD9YPWg6Ti5jYXNjYWRlUGFuZXM/WD13Ok4udmlld1RvdGFsJiYoWD1iKSxMPWcuY2FsbCh0aGlzLFMsTixSLFgpfHx0aGlzO3ZhciBqPUwucy5kdCxHPWouc3RhdGUubG9hZGVkKCksYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gTC5faW5pdFNlbGVjdGlvbkxpc3RlbmVycyghMCxHJiZHLnNlYXJjaFBhbmVzJiZHLnNlYXJjaFBhbmVzLnNlbGVjdGlvbkxpc3Q/Ry5zZWFyY2hQYW5lcy5zZWxlY3Rpb25MaXN0OkwuYy5wcmVTZWxlY3QpfTtyZXR1cm4gai5zZXR0aW5ncygpWzBdLl9iSW5pdENvbXBsZXRlP2F0KCk6ai5vZmYoImluaXQuZHRzcHMiKS5vbigiaW5pdC5kdHNwcyIsYXQpLEx9cmV0dXJuIF8ucHJvdG90eXBlLl9pbml0U2VsZWN0aW9uTGlzdGVuZXJzPWZ1bmN0aW9uKFMsTil7Uz09PXZvaWQgMCYmKFM9ITApLE49PT12b2lkIDAmJihOPVtdKSxTJiYodGhpcy5zLnNlbGVjdGlvbkxpc3Q9Tik7Zm9yKHZhciBSPTAsTD10aGlzLnMucGFuZXM7UjxMLmxlbmd0aDtSKyspe3ZhciBYPUxbUl07WC5zLmRpc3BsYXllZCYmWC5zLmR0UGFuZS5vZmYoInNlbGVjdC5kdHNwIikub24oInNlbGVjdC5kdHNwIix0aGlzLl91cGRhdGUoWCkpLm9mZigiZGVzZWxlY3QuZHRzcCIpLm9uKCJkZXNlbGVjdC5kdHNwIix0aGlzLl91cGRhdGVUaW1lb3V0KFgpKX10aGlzLnMuZHQub2ZmKCJkcmF3LmR0c3BzIikub24oImRyYXcuZHRzcHMiLHRoaXMuX3VwZGF0ZSgpKSx0aGlzLl91cGRhdGVTZWxlY3Rpb25MaXN0KCl9LF8ucHJvdG90eXBlLl9zZXJ2ZXJUb3RhbHM9ZnVuY3Rpb24oKXtmb3IodmFyIFM9MCxOPXRoaXMucy5wYW5lcztTPE4ubGVuZ3RoO1MrKyl7dmFyIFI9TltTXTtpZihSLnMuY29sT3B0cy5zaG93KXt2YXIgTD10aGlzLnMuZHQuY29sdW1uKFIucy5pbmRleCkuZGF0YVNyYygpLFg9ITA7aWYodGhpcy5zLnNlcnZlckRhdGEuc2VhcmNoUGFuZXMub3B0aW9uc1tMXSlmb3IodmFyIGo9MCxHPXRoaXMucy5zZXJ2ZXJEYXRhLnNlYXJjaFBhbmVzLm9wdGlvbnNbTF07ajxHLmxlbmd0aDtqKyspe3ZhciBhdD1HW2pdO2lmKGF0LnRvdGFsIT09YXQuY291bnQpe1g9ITE7YnJlYWt9fVIucy5maWx0ZXJpbmdBY3RpdmU9IVgsUi5fc2VydmVyUG9wdWxhdGUodGhpcy5zLnNlcnZlckRhdGEpfX19LF8ucHJvdG90eXBlLl9zdGF0ZUxvYWRMaXN0ZW5lcj1mdW5jdGlvbigpe3ZhciBTPXRoaXMsTj1mdW5jdGlvbihSLEwsWCl7aWYoWC5zZWFyY2hQYW5lcyE9PXZvaWQgMCl7aWYoUy5zLnNlbGVjdGlvbkxpc3Q9WC5zZWFyY2hQYW5lcy5zZWxlY3Rpb25MaXN0P1guc2VhcmNoUGFuZXMuc2VsZWN0aW9uTGlzdDpbXSxYLnNlYXJjaFBhbmVzLnBhbmVzKWZvcih2YXIgaj0wLEc9WC5zZWFyY2hQYW5lcy5wYW5lcztqPEcubGVuZ3RoO2orKylmb3IodmFyIGF0PUdbal0sSj0wLHR0PVMucy5wYW5lcztKPHR0Lmxlbmd0aDtKKyspe3ZhciB5dD10dFtKXTthdC5pZD09PXl0LnMuaW5kZXgmJnl0LnMuZHRQYW5lJiYoeXQuZG9tLnNlYXJjaEJveC52YWwoYXQuc2VhcmNoVGVybSkseXQucy5kdFBhbmUub3JkZXIoYXQub3JkZXIpKX1TLl91cGRhdGVTZWxlY3Rpb25MaXN0KCl9fTt0aGlzLnMuZHQub2ZmKCJzdGF0ZUxvYWRQYXJhbXMuZHRzcHMiLE4pLm9uKCJzdGF0ZUxvYWRQYXJhbXMuZHRzcHMiLE4pfSxfLnByb3RvdHlwZS5fdXBkYXRlU2VsZWN0aW9uPWZ1bmN0aW9uKCl7fSxfLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKFMpe3ZhciBOPXRoaXM7cmV0dXJuIFM9PT12b2lkIDAmJihTPXZvaWQgMCksZnVuY3Rpb24oKXtTJiZjbGVhclRpbWVvdXQoUy5zLmRlc2VsZWN0VGltZW91dCksTi5fdXBkYXRlU2VsZWN0aW9uTGlzdChTKX19LF8ucHJvdG90eXBlLl91cGRhdGVUaW1lb3V0PWZ1bmN0aW9uKFMpe3ZhciBOPXRoaXM7cmV0dXJuIFM9PT12b2lkIDAmJihTPXZvaWQgMCksZnVuY3Rpb24oKXtyZXR1cm4gUz9TLnMuZGVzZWxlY3RUaW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gTi5fdXBkYXRlU2VsZWN0aW9uTGlzdChTKX0sNTApOk4uX3VwZGF0ZVNlbGVjdGlvbkxpc3QoKX19LF8ucHJvdG90eXBlLl91cGRhdGVTZWxlY3Rpb25MaXN0PWZ1bmN0aW9uKFMpe2lmKFM9PT12b2lkIDAmJihTPXZvaWQgMCksdGhpcy5zLnBhZ2luZ1NUKXt0aGlzLnMucGFnaW5nU1Q9ITE7cmV0dXJufWVsc2UgaWYodGhpcy5zLnVwZGF0aW5nfHxTJiZTLnMuc2VydmVyU2VsZWN0aW5nKXJldHVybjtpZihTIT09dm9pZCAwKXt0aGlzLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZSYmUy5fdXBkYXRlU2VsZWN0aW9uKCk7dmFyIE49Uy5zLmR0UGFuZS5yb3dzKHtzZWxlY3RlZDohMH0pLmRhdGEoKS50b0FycmF5KCkubWFwKGZ1bmN0aW9uKFIpe3JldHVybiBSLmZpbHRlcn0pO3RoaXMucy5zZWxlY3Rpb25MaXN0PXRoaXMucy5zZWxlY3Rpb25MaXN0LmZpbHRlcihmdW5jdGlvbihSKXtyZXR1cm4gUi5jb2x1bW4hPT1TLnMuaW5kZXh9KSxOLmxlbmd0aD4wPyh0aGlzLnMuc2VsZWN0aW9uTGlzdC5wdXNoKHtjb2x1bW46Uy5zLmluZGV4LHJvd3M6Tn0pLFMuZG9tLmNsZWFyLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbikucmVtb3ZlQXR0cigiZGlzYWJsZWQiKSk6Uy5kb20uY2xlYXIuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKS5hdHRyKCJkaXNhYmxlZCIsInRydWUiKSx0aGlzLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZSYmdGhpcy5zLmR0LmRyYXcoITEpfXRoaXMuX3JlbWFrZVNlbGVjdGlvbnMoKSx0aGlzLl91cGRhdGVGaWx0ZXJDb3VudCgpfSxfLnByb3RvdHlwZS5fcmVtYWtlU2VsZWN0aW9ucz1mdW5jdGlvbigpe3ZhciBTLE47aWYodGhpcy5zLnVwZGF0aW5nPSEwLHRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlKXt0aGlzLnMuc2VsZWN0aW9uTGlzdC5sZW5ndGg+MCYmKE49dGhpcy5zLnBhbmVzW3RoaXMucy5zZWxlY3Rpb25MaXN0W3RoaXMucy5zZWxlY3Rpb25MaXN0Lmxlbmd0aC0xXS5jb2x1bW5dKTtmb3IodmFyIEN0PTAseHQ9dGhpcy5zLnBhbmVzO0N0PHh0Lmxlbmd0aDtDdCsrKVM9eHRbQ3RdLFMucy5kaXNwbGF5ZWQmJighTnx8Uy5zLmluZGV4IT09Ti5zLmluZGV4KSYmUy51cGRhdGVSb3dzKCl9ZWxzZXt2YXIgUj10aGlzLnMuc2VsZWN0aW9uTGlzdCxMPSExO3RoaXMuY2xlYXJTZWxlY3Rpb25zKCksdGhpcy5zLmR0LmRyYXcoITEpLHRoaXMucy5kdC5yb3dzKCkudG9BcnJheSgpWzBdLmxlbmd0aD50aGlzLnMuZHQucm93cyh7c2VhcmNoOiJhcHBsaWVkIn0pLnRvQXJyYXkoKVswXS5sZW5ndGgmJihMPSEwKSx0aGlzLnMuc2VsZWN0aW9uTGlzdD1SO2Zvcih2YXIgWD0wLGo9dGhpcy5zLnBhbmVzO1g8ai5sZW5ndGg7WCsrKU49altYXSxOLnMuZGlzcGxheWVkJiYoTi5zLmZpbHRlcmluZ0FjdGl2ZT1MLE4udXBkYXRlUm93cygpKTtmb3IodmFyIEc9MCxhdD10aGlzLnMuc2VsZWN0aW9uTGlzdDtHPGF0Lmxlbmd0aDtHKyspe3ZhciBKPWF0W0ddO049bnVsbDtmb3IodmFyIHR0PTAseXQ9dGhpcy5zLnBhbmVzO3R0PHl0Lmxlbmd0aDt0dCsrKXt2YXIgVHQ9eXRbdHRdO2lmKFR0LnMuaW5kZXg9PT1KLmNvbHVtbil7Tj1UdDticmVha319aWYoTi5zLmR0UGFuZSl7Zm9yKHZhciBBdD1OLnMuZHRQYW5lLnJvd3MoKS5pbmRleGVzKCkudG9BcnJheSgpLGt0PTA7a3Q8Si5yb3dzLmxlbmd0aDtrdCsrKXtmb3IodmFyIEx0PSExLEJ0PTAsJHQ9QXQ7QnQ8JHQubGVuZ3RoO0J0Kyspe3ZhciBLdD0kdFtCdF0sRD1OLnMuZHRQYW5lLnJvdyhLdCksdXQ9RC5kYXRhKCk7Si5yb3dzW2t0XT09PXV0LmZpbHRlciYmKEQuc2VsZWN0KCksTHQ9ITApfUx0fHwoSi5yb3dzLnNwbGljZShrdCwxKSxrdC0tKX1pZihOLnMuc2VsZWN0aW9ucz1KLnJvd3MsSi5yb3dzLmxlbmd0aCE9PTApe3RoaXMucy5kdC5kcmF3KCk7Zm9yKHZhciBvdD0hMSxIPTAsTT0wLFk9MCxwdD0wLG10PXRoaXMucy5wYW5lcztwdDxtdC5sZW5ndGg7cHQrKylTPW10W3B0XSxTLnMuZHRQYW5lJiYoSCs9Uy5nZXRQYW5lQ291bnQoKSxIPk0mJihZKyssTT1IKSk7b3Q9SD4wO2Zvcih2YXIgcnQ9MCxndD10aGlzLnMucGFuZXM7cnQ8Z3QubGVuZ3RoO3J0KyspUz1ndFtydF0sUy5zLmRpc3BsYXllZCYmKEx8fE4ucy5pbmRleCE9PVMucy5pbmRleHx8IW90P1Mucy5maWx0ZXJpbmdBY3RpdmU9b3R8fEw6WT09PTEmJihTLnMuZmlsdGVyaW5nQWN0aXZlPSExKSxTLnMuaW5kZXghPT1OLnMuaW5kZXgmJlMudXBkYXRlUm93cygpKX19fXRoaXMucy5kdC5kcmF3KCExKX10aGlzLnMudXBkYXRpbmc9ITF9LF99KEIpO3IocWUpLEMocWUpLHAocWUpLFQocWUpLEYocWUpO3ZhciBxPXFlLmZuLmRhdGFUYWJsZTtxLlNlYXJjaFBhbmVzPUIsc3QuU2VhcmNoUGFuZXM9QixxLlNlYXJjaFBhbmVzU1Q9eixzdC5TZWFyY2hQYW5lc1NUPXoscS5TZWFyY2hQYW5lPW4sc3QuU2VhcmNoUGFuZT1uLHEuU2VhcmNoUGFuZVZpZXdUb3RhbD1iLHN0LlNlYXJjaFBhbmVWaWV3VG90YWw9YixxLlNlYXJjaFBhbmVDYXNjYWRlPXcsc3QuU2VhcmNoUGFuZUNhc2NhZGU9dyxxLlNlYXJjaFBhbmVDYXNjYWRlVmlld1RvdGFsPWgsc3QuU2VhcmNoUGFuZUNhc2NhZGVWaWV3VG90YWw9aDt2YXIgZXQ9cWUuZm4uZGF0YVRhYmxlLkFwaS5yZWdpc3RlcjtldCgic2VhcmNoUGFuZXMoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGV0KCJzZWFyY2hQYW5lcy5jbGVhclNlbGVjdGlvbnMoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGcpe2cuX3NlYXJjaFBhbmVzJiZnLl9zZWFyY2hQYW5lcy5jbGVhclNlbGVjdGlvbnMoKX0pfSksZXQoInNlYXJjaFBhbmVzLnJlYnVpbGRQYW5lKCkiLGZ1bmN0aW9uKGcsXyl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihTKXtTLl9zZWFyY2hQYW5lcyYmUy5fc2VhcmNoUGFuZXMucmVidWlsZChnLF8pfSl9KSxldCgic2VhcmNoUGFuZXMucmVzaXplUGFuZXMoKSIsZnVuY3Rpb24oKXt2YXIgZz10aGlzLmNvbnRleHRbMF07cmV0dXJuIGcuX3NlYXJjaFBhbmVzP2cuX3NlYXJjaFBhbmVzLnJlc2l6ZVBhbmVzKCk6bnVsbH0pLGV0KCJzZWFyY2hQYW5lcy5jb250YWluZXIoKSIsZnVuY3Rpb24oKXt2YXIgZz10aGlzLmNvbnRleHRbMF07cmV0dXJuIGcuX3NlYXJjaFBhbmVzP2cuX3NlYXJjaFBhbmVzLmdldE5vZGUoKTpudWxsfSksc3QuZXh0LmJ1dHRvbnMuc2VhcmNoUGFuZXNDbGVhcj17YWN0aW9uOmZ1bmN0aW9uKGcsXyl7Xy5zZWFyY2hQYW5lcy5jbGVhclNlbGVjdGlvbnMoKX0sdGV4dDoiQ2xlYXIgUGFuZXMifSxzdC5leHQuYnV0dG9ucy5zZWFyY2hQYW5lcz17YWN0aW9uOmZ1bmN0aW9uKGcsXyxTLE4pe3ZhciBSPXRoaXMsTD10aGlzO04uX3BhbmVzPyh0aGlzLnBvcG92ZXIoTi5fcGFuZXMuZ2V0Tm9kZSgpLHthbGlnbjoiY29udGFpbmVyIixzcGFuOiJjb250YWluZXIifSksTi5fcGFuZXMucmVidWlsZCh2b2lkIDAsITApKToodGhpcy5wcm9jZXNzaW5nKCEwKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7TyhfLFMsTiksUi5wb3BvdmVyKE4uX3BhbmVzLmdldE5vZGUoKSx7YWxpZ246ImNvbnRhaW5lciIsc3BhbjoiY29udGFpbmVyIn0pLE4uX3BhbmVzLnJlYnVpbGQodm9pZCAwLCEwKSxxZSgidGFibGUuZGF0YVRhYmxlIixOLl9wYW5lcy5nZXROb2RlKCkpLkRhdGFUYWJsZSgpLmNvbHVtbnMuYWRqdXN0KCksTC5wcm9jZXNzaW5nKCExKX0sMTApKX0saW5pdDpmdW5jdGlvbihnLF8sUyl7Zy5idXR0b24oXykudGV4dChTLnRleHR8fGcuaTE4bigic2VhcmNoUGFuZXMuY29sbGFwc2UiLCJTZWFyY2hQYW5lcyIsMCkpLChnLmluaXQoKS5zdGF0ZVNhdmV8fFMuZGVsYXlJbml0PT09ITEpJiZPKGcsXyxTKX0sY29uZmlnOnt9LHRleHQ6IiIsZGVsYXlJbml0OiEwfTtmdW5jdGlvbiBPKGcsXyxTKXt2YXIgTj1xZS5leHRlbmQoe2ZpbHRlckNoYW5nZWQ6ZnVuY3Rpb24oTCl7Zy5idXR0b24oXykudGV4dChnLmkxOG4oInNlYXJjaFBhbmVzLmNvbGxhcHNlIixnLmNvbnRleHRbMF0ub0xhbmd1YWdlLnNlYXJjaFBhbmVzIT09dm9pZCAwP2cuY29udGV4dFswXS5vTGFuZ3VhZ2Uuc2VhcmNoUGFuZXMuY29sbGFwc2U6Zy5jb250ZXh0WzBdLl9zZWFyY2hQYW5lcy5jLmkxOG4uY29sbGFwc2UsTCkpfX0sUy5jb25maWcpLFI9TiYmKE4uY2FzY2FkZVBhbmVzfHxOLnZpZXdUb3RhbCk/bmV3IHN0LlNlYXJjaFBhbmVzU1QoZyxOKTpuZXcgc3QuU2VhcmNoUGFuZXMoZyxOKTtnLmJ1dHRvbihfKS50ZXh0KFMudGV4dHx8Zy5pMThuKCJzZWFyY2hQYW5lcy5jb2xsYXBzZSIsUi5jLmkxOG4uY29sbGFwc2UsMCkpLFMuX3BhbmVzPVJ9ZnVuY3Rpb24gWihnLF8sUyl7Xz09PXZvaWQgMCYmKF89bnVsbCksUz09PXZvaWQgMCYmKFM9ITEpO3ZhciBOPW5ldyBxLkFwaShnKSxSPV98fE4uaW5pdCgpLnNlYXJjaFBhbmVzfHxxLmRlZmF1bHRzLnNlYXJjaFBhbmVzLEw9UiYmKFIuY2FzY2FkZVBhbmVzfHxSLnZpZXdUb3RhbCk/bmV3IHooTixSLFMpOm5ldyBCKE4sUixTKSxYPUwuZ2V0Tm9kZSgpO3JldHVybiBYfXFlKGRvY3VtZW50KS5vbigicHJlSW5pdC5kdC5kdHNwIixmdW5jdGlvbihnLF8pe2cubmFtZXNwYWNlPT09ImR0IiYmKF8ub0luaXQuc2VhcmNoUGFuZXN8fHN0LmRlZmF1bHRzLnNlYXJjaFBhbmVzKSYmKF8uX3NlYXJjaFBhbmVzfHxaKF8sbnVsbCwhMCkpfSksc3QuZXh0LmZlYXR1cmUucHVzaCh7Y0ZlYXR1cmU6IlAiLGZuSW5pdDpafSksc3QuZmVhdHVyZSYmc3QuZmVhdHVyZS5yZWdpc3Rlcigic2VhcmNoUGFuZXMiLFopfSkoKTt2YXIgcWw9bmUoaWUoKSwxKTt2YXIgSHM9bmUoaWUoKSwxKTt2YXIgUnQ9SHMuZGVmYXVsdDtzdC5zZWxlY3Q9e307c3Quc2VsZWN0LnZlcnNpb249IjIuMC4xIjtzdC5zZWxlY3QuaW5pdD1mdW5jdGlvbih0KXt2YXIgZT10LnNldHRpbmdzKClbMF07aWYoIXN0LnZlcnNpb25DaGVjaygiMiIpKXRocm93Ildhcm5pbmc6IFNlbGVjdCByZXF1aXJlcyBEYXRhVGFibGVzIDIgb3IgbmV3ZXIiO2lmKCFlLl9zZWxlY3Qpe3ZhciByPXQuc3RhdGUubG9hZGVkKCksbj1mdW5jdGlvbihGLGgsbyl7aWYoIShvPT09bnVsbHx8by5zZWxlY3Q9PT12b2lkIDApKXtpZih0LnJvd3Moe3NlbGVjdGVkOiEwfSkuYW55KCkmJnQucm93cygpLmRlc2VsZWN0KCksby5zZWxlY3Qucm93cyE9PXZvaWQgMCYmdC5yb3dzKG8uc2VsZWN0LnJvd3MpLnNlbGVjdCgpLHQuY29sdW1ucyh7c2VsZWN0ZWQ6ITB9KS5hbnkoKSYmdC5jb2x1bW5zKCkuZGVzZWxlY3QoKSxvLnNlbGVjdC5jb2x1bW5zIT09dm9pZCAwJiZ0LmNvbHVtbnMoby5zZWxlY3QuY29sdW1ucykuc2VsZWN0KCksdC5jZWxscyh7c2VsZWN0ZWQ6ITB9KS5hbnkoKSYmdC5jZWxscygpLmRlc2VsZWN0KCksby5zZWxlY3QuY2VsbHMhPT12b2lkIDApZm9yKHZhciBmPTA7ZjxvLnNlbGVjdC5jZWxscy5sZW5ndGg7ZisrKXQuY2VsbChvLnNlbGVjdC5jZWxsc1tmXS5yb3csby5zZWxlY3QuY2VsbHNbZl0uY29sdW1uKS5zZWxlY3QoKTt0LnN0YXRlLnNhdmUoKX19O3Qub24oInN0YXRlU2F2ZVBhcmFtcyIsZnVuY3Rpb24oRixoLG8pe28uc2VsZWN0PXt9LG8uc2VsZWN0LnJvd3M9dC5yb3dzKHtzZWxlY3RlZDohMH0pLmlkcyghMCkudG9BcnJheSgpLG8uc2VsZWN0LmNvbHVtbnM9dC5jb2x1bW5zKHtzZWxlY3RlZDohMH0pWzBdLG8uc2VsZWN0LmNlbGxzPXQuY2VsbHMoe3NlbGVjdGVkOiEwfSlbMF0ubWFwKGZ1bmN0aW9uKGYpe3JldHVybntyb3c6dC5yb3coZi5yb3cpLmlkKCEwKSxjb2x1bW46Zi5jb2x1bW59fSl9KS5vbigic3RhdGVMb2FkUGFyYW1zIixuKS5vbmUoImluaXQiLGZ1bmN0aW9uKCl7bih2b2lkIDAsdm9pZCAwLHIpfSk7dmFyIHM9ZS5vSW5pdC5zZWxlY3QsYT1zdC5kZWZhdWx0cy5zZWxlY3QsbD1zPT09dm9pZCAwP2E6cyxjPSJyb3ciLHA9ImFwaSIsYj0hMSxtPSEwLHk9ITAsVD0idGQsIHRoIix3PSJzZWxlY3RlZCIsaz0hMCxQPSExO2UuX3NlbGVjdD17aW5mb0VsczpbXX0sbD09PSEwPyhwPSJvcyIsUD0hMCk6dHlwZW9mIGw9PSJzdHJpbmciPyhwPWwsUD0hMCk6UnQuaXNQbGFpbk9iamVjdChsKSYmKGwuYmx1cmFibGUhPT12b2lkIDAmJihiPWwuYmx1cmFibGUpLGwudG9nZ2xlYWJsZSE9PXZvaWQgMCYmKG09bC50b2dnbGVhYmxlKSxsLmluZm8hPT12b2lkIDAmJih5PWwuaW5mbyksbC5pdGVtcyE9PXZvaWQgMCYmKGM9bC5pdGVtcyksbC5zdHlsZSE9PXZvaWQgMD8ocD1sLnN0eWxlLFA9ITApOihwPSJvcyIsUD0hMCksbC5zZWxlY3RvciE9PXZvaWQgMCYmKFQ9bC5zZWxlY3RvciksbC5jbGFzc05hbWUhPT12b2lkIDAmJih3PWwuY2xhc3NOYW1lKSxsLmhlYWRlckNoZWNrYm94IT09dm9pZCAwJiYoaz1sLmhlYWRlckNoZWNrYm94KSksdC5zZWxlY3Quc2VsZWN0b3IoVCksdC5zZWxlY3QuaXRlbXMoYyksdC5zZWxlY3Quc3R5bGUocCksdC5zZWxlY3QuYmx1cmFibGUoYiksdC5zZWxlY3QudG9nZ2xlYWJsZShtKSx0LnNlbGVjdC5pbmZvKHkpLGUuX3NlbGVjdC5jbGFzc05hbWU9dywhUCYmUnQodC50YWJsZSgpLm5vZGUoKSkuaGFzQ2xhc3MoInNlbGVjdGFibGUiKSYmdC5zZWxlY3Quc3R5bGUoIm9zIiksayYmKE1zKHQpLHQub24oImluaXQiLGZ1bmN0aW9uKCl7TXModCl9KSl9fTtmdW5jdGlvbiB6cyh0LGUscil7dmFyIG4scyxhLGw9ZnVuY3Rpb24ocCxiKXtpZihwPmIpe3ZhciBtPWI7Yj1wLHA9bX12YXIgeT0hMTtyZXR1cm4gdC5jb2x1bW5zKCI6dmlzaWJsZSIpLmluZGV4ZXMoKS5maWx0ZXIoZnVuY3Rpb24oVCl7cmV0dXJuIFQ9PT1wJiYoeT0hMCksVD09PWI/KHk9ITEsITApOnl9KX0sYz1mdW5jdGlvbihwLGIpe3ZhciBtPXQucm93cyh7c2VhcmNoOiJhcHBsaWVkIn0pLmluZGV4ZXMoKTtpZihtLmluZGV4T2YocCk+bS5pbmRleE9mKGIpKXt2YXIgeT1iO2I9cCxwPXl9dmFyIFQ9ITE7cmV0dXJuIG0uZmlsdGVyKGZ1bmN0aW9uKHcpe3JldHVybiB3PT09cCYmKFQ9ITApLHc9PT1iPyhUPSExLCEwKTpUfSl9OyF0LmNlbGxzKHtzZWxlY3RlZDohMH0pLmFueSgpJiYhcj8ocz1sKDAsZS5jb2x1bW4pLGE9YygwLGUucm93KSk6KHM9bChyLmNvbHVtbixlLmNvbHVtbiksYT1jKHIucm93LGUucm93KSksbj10LmNlbGxzKGEscykuZmxhdHRlbigpLHQuY2VsbHMoZSx7c2VsZWN0ZWQ6ITB9KS5hbnkoKT90LmNlbGxzKG4pLmRlc2VsZWN0KCk6dC5jZWxscyhuKS5zZWxlY3QoKX1mdW5jdGlvbiBVaSh0KXt2YXIgZT10LnNldHRpbmdzKClbMF0scj1lLl9zZWxlY3Quc2VsZWN0b3I7UnQodC50YWJsZSgpLmNvbnRhaW5lcigpKS5vZmYoIm1vdXNlZG93bi5kdFNlbGVjdCIscikub2ZmKCJtb3VzZXVwLmR0U2VsZWN0IixyKS5vZmYoImNsaWNrLmR0U2VsZWN0IixyKSxSdCgiYm9keSIpLm9mZigiY2xpY2suZHRTZWxlY3QiK3FpKHQudGFibGUoKS5ub2RlKCkpKX1mdW5jdGlvbiBXcyh0KXt2YXIgZT1SdCh0LnRhYmxlKCkuY29udGFpbmVyKCkpLHI9dC5zZXR0aW5ncygpWzBdLG49ci5fc2VsZWN0LnNlbGVjdG9yLHM7ZS5vbigibW91c2Vkb3duLmR0U2VsZWN0IixuLGZ1bmN0aW9uKGEpeyhhLnNoaWZ0S2V5fHxhLm1ldGFLZXl8fGEuY3RybEtleSkmJmUuY3NzKCItbW96LXVzZXItc2VsZWN0Iiwibm9uZSIpLm9uZSgic2VsZWN0c3RhcnQuZHRTZWxlY3QiLG4sZnVuY3Rpb24oKXtyZXR1cm4hMX0pLHdpbmRvdy5nZXRTZWxlY3Rpb24mJihzPXdpbmRvdy5nZXRTZWxlY3Rpb24oKSl9KS5vbigibW91c2V1cC5kdFNlbGVjdCIsbixmdW5jdGlvbigpe2UuY3NzKCItbW96LXVzZXItc2VsZWN0IiwiIil9KS5vbigiY2xpY2suZHRTZWxlY3QiLG4sZnVuY3Rpb24oYSl7dmFyIGw9dC5zZWxlY3QuaXRlbXMoKSxjO2lmKHMpe3ZhciBwPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZigoIXAuYW5jaG9yTm9kZXx8UnQocC5hbmNob3JOb2RlKS5jbG9zZXN0KCJ0YWJsZSIpWzBdPT09dC50YWJsZSgpLm5vZGUoKSkmJnAhPT1zKXJldHVybn12YXIgYj10LnNldHRpbmdzKClbMF0sbT10LnRhYmxlKCkuY29udGFpbmVyKCk7aWYoUnQoYS50YXJnZXQpLmNsb3Nlc3QoImRpdi5kdC1jb250YWluZXIiKVswXT09bSl7dmFyIHk9dC5jZWxsKFJ0KGEudGFyZ2V0KS5jbG9zZXN0KCJ0ZCwgdGgiKSk7aWYoeS5hbnkoKSl7dmFyIFQ9UnQuRXZlbnQoInVzZXItc2VsZWN0LmR0Iik7aWYoR2UodCxULFtsLHksYV0pLCFULmlzRGVmYXVsdFByZXZlbnRlZCgpKXt2YXIgdz15LmluZGV4KCk7bD09PSJyb3ciPyhjPXcucm93LFZpKGEsdCxiLCJyb3ciLGMpKTpsPT09ImNvbHVtbiI/KGM9eS5pbmRleCgpLmNvbHVtbixWaShhLHQsYiwiY29sdW1uIixjKSk6bD09PSJjZWxsIiYmKGM9eS5pbmRleCgpLFZpKGEsdCxiLCJjZWxsIixjKSksYi5fc2VsZWN0X2xhc3RDZWxsPXd9fX19KSxSdCgiYm9keSIpLm9uKCJjbGljay5kdFNlbGVjdCIrcWkodC50YWJsZSgpLm5vZGUoKSksZnVuY3Rpb24oYSl7aWYoci5fc2VsZWN0LmJsdXJhYmxlKXtpZihSdChhLnRhcmdldCkucGFyZW50cygpLmZpbHRlcih0LnRhYmxlKCkuY29udGFpbmVyKCkpLmxlbmd0aHx8UnQoYS50YXJnZXQpLnBhcmVudHMoImh0bWwiKS5sZW5ndGg9PT0wfHxSdChhLnRhcmdldCkucGFyZW50cygiZGl2LkRURSIpLmxlbmd0aClyZXR1cm47dmFyIGw9UnQuRXZlbnQoInNlbGVjdC1ibHVyLmR0Iik7aWYoR2UodCxsLFthLnRhcmdldCxhXSksbC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSlyZXR1cm47SnIociwhMCl9fSl9ZnVuY3Rpb24gR2UodCxlLHIsbil7biYmIXQuZmxhdHRlbigpLmxlbmd0aHx8KHR5cGVvZiBlPT0ic3RyaW5nIiYmKGU9ZSsiLmR0Iiksci51bnNoaWZ0KHQpLFJ0KHQudGFibGUoKS5ub2RlKCkpLnRyaWdnZXIoZSxyKSl9ZnVuY3Rpb24ganModCxlKXtpZighKHQuc2VsZWN0LnN0eWxlKCk9PT0iYXBpInx8dC5zZWxlY3QuaW5mbygpPT09ITEpKXt2YXIgcj10LnJvd3Moe3NlbGVjdGVkOiEwfSkuZmxhdHRlbigpLmxlbmd0aCxuPXQuY29sdW1ucyh7c2VsZWN0ZWQ6ITB9KS5mbGF0dGVuKCkubGVuZ3RoLHM9dC5jZWxscyh7c2VsZWN0ZWQ6ITB9KS5mbGF0dGVuKCkubGVuZ3RoLGE9ZnVuY3Rpb24oYixtLHkpe2IuYXBwZW5kKFJ0KCc8c3BhbiBjbGFzcz0ic2VsZWN0LWl0ZW0iLz4nKS5hcHBlbmQodC5pMThuKCJzZWxlY3QuIittKyJzIix7XzoiJWQgIittKyJzIHNlbGVjdGVkIiwwOiIiLDE6IjEgIittKyIgc2VsZWN0ZWQifSx5KSkpfSxsPVJ0KGUpLGM9UnQoJzxzcGFuIGNsYXNzPSJzZWxlY3QtaW5mbyIvPicpO2EoYywicm93IixyKSxhKGMsImNvbHVtbiIsbiksYShjLCJjZWxsIixzKTt2YXIgcD1sLmNoaWxkcmVuKCJzcGFuLnNlbGVjdC1pbmZvIik7cC5sZW5ndGgmJnAucmVtb3ZlKCksYy50ZXh0KCkhPT0iIiYmbC5hcHBlbmQoYyl9fWZ1bmN0aW9uIE1zKHQpe3QuY29sdW1ucygiLmR0LXNlbGVjdCIpLmV2ZXJ5KGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5oZWFkZXIoKTtpZighUnQoImlucHV0IixlKS5sZW5ndGgpe3ZhciByPVJ0KCI8aW5wdXQ+IikuYXR0cih7Y2xhc3M6ImR0LXNlbGVjdC1jaGVja2JveCIsdHlwZToiY2hlY2tib3giLCJhcmlhLWxhYmVsIjp0LmkxOG4oInNlbGVjdC5hcmlhLmhlYWRlckNoZWNrYm94Iil8fCJTZWxlY3QgYWxsIHJvd3MifSkuYXBwZW5kVG8oZSkub24oImNoYW5nZSIsZnVuY3Rpb24oKXt0aGlzLmNoZWNrZWQ/dC5yb3dzKHtzZWFyY2g6ImFwcGxpZWQifSkuc2VsZWN0KCk6dC5yb3dzKHtzZWxlY3RlZDohMH0pLmRlc2VsZWN0KCl9KS5vbigiY2xpY2siLGZ1bmN0aW9uKG4pe24uc3RvcFByb3BhZ2F0aW9uKCl9KTt0Lm9uKCJkcmF3IHNlbGVjdCBkZXNlbGVjdCIsZnVuY3Rpb24obixzLGEpe2lmKGE9PT0icm93Inx8IWEpe3ZhciBsPXQucm93cyh7c2VsZWN0ZWQ6ITB9KS5jb3VudCgpLGM9dC5yb3dzKHtzZWFyY2g6ImFwcGxpZWQiLHNlbGVjdGVkOiEwfSkuY291bnQoKSxwPXQucm93cyh7c2VhcmNoOiJhcHBsaWVkIn0pLmNvdW50KCk7YyYmYzw9bCYmYz09PXA/ci5wcm9wKCJjaGVja2VkIiwhMCkucHJvcCgiaW5kZXRlcm1pbmF0ZSIsITEpOmM9PT0wJiZsPT09MD9yLnByb3AoImNoZWNrZWQiLCExKS5wcm9wKCJpbmRldGVybWluYXRlIiwhMSk6ci5wcm9wKCJjaGVja2VkIiwhMSkucHJvcCgiaW5kZXRlcm1pbmF0ZSIsITApfX0pfX0pfWZ1bmN0aW9uIFdsKHQpe3ZhciBlPW5ldyBzdC5BcGkodCk7dC5fc2VsZWN0X2luaXQ9ITAsdC5hb1Jvd0NyZWF0ZWRDYWxsYmFjay5wdXNoKGZ1bmN0aW9uKHIsbixzKXt2YXIgYSxsLGM9dC5hb0RhdGFbc107Zm9yKGMuX3NlbGVjdF9zZWxlY3RlZCYmUnQocikuYWRkQ2xhc3ModC5fc2VsZWN0LmNsYXNzTmFtZSkuZmluZCgiaW5wdXQuZHQtc2VsZWN0LWNoZWNrYm94IikucHJvcCgiY2hlY2tlZCIsITApLGE9MCxsPXQuYW9Db2x1bW5zLmxlbmd0aDthPGw7YSsrKSh0LmFvQ29sdW1uc1thXS5fc2VsZWN0X3NlbGVjdGVkfHxjLl9zZWxlY3RlZF9jZWxscyYmYy5fc2VsZWN0ZWRfY2VsbHNbYV0pJiZSdChjLmFuQ2VsbHNbYV0pLmFkZENsYXNzKHQuX3NlbGVjdC5jbGFzc05hbWUpfSksZS5vbigicHJlWGhyLmR0LmR0U2VsZWN0IixmdW5jdGlvbihyLG4pe2lmKG49PT1lLnNldHRpbmdzKClbMF0pe3ZhciBzPWUucm93cyh7c2VsZWN0ZWQ6ITB9KS5pZHMoITApLmZpbHRlcihmdW5jdGlvbihsKXtyZXR1cm4gbCE9PXZvaWQgMH0pLGE9ZS5jZWxscyh7c2VsZWN0ZWQ6ITB9KS5lcSgwKS5tYXAoZnVuY3Rpb24obCl7dmFyIGM9ZS5yb3cobC5yb3cpLmlkKCEwKTtyZXR1cm4gYz97cm93OmMsY29sdW1uOmwuY29sdW1ufTp2b2lkIDB9KS5maWx0ZXIoZnVuY3Rpb24obCl7cmV0dXJuIGwhPT12b2lkIDB9KTtlLm9uZSgiZHJhdy5kdC5kdFNlbGVjdCIsZnVuY3Rpb24oKXtlLnJvd3Mocykuc2VsZWN0KCksYS5hbnkoKSYmYS5lYWNoKGZ1bmN0aW9uKGwpe2UuY2VsbHMobC5yb3csbC5jb2x1bW4pLnNlbGVjdCgpfSl9KX19KSxlLm9uKCJpbmZvLmR0IixmdW5jdGlvbihyLG4scyl7bi5fc2VsZWN0LmluZm9FbHMuaW5jbHVkZXMocyl8fG4uX3NlbGVjdC5pbmZvRWxzLnB1c2gocyksanMoZSxzKX0pLGUub24oInNlbGVjdC5kdFNlbGVjdC5kdCBkZXNlbGVjdC5kdFNlbGVjdC5kdCIsZnVuY3Rpb24oKXt0Ll9zZWxlY3QuaW5mb0Vscy5mb3JFYWNoKGZ1bmN0aW9uKHIpe2pzKGUscil9KSxlLnN0YXRlLnNhdmUoKX0pLGUub24oImRlc3Ryb3kuZHRTZWxlY3QiLGZ1bmN0aW9uKCl7UnQoZS5yb3dzKHtzZWxlY3RlZDohMH0pLm5vZGVzKCkpLnJlbW92ZUNsYXNzKGUuc2V0dGluZ3MoKVswXS5fc2VsZWN0LmNsYXNzTmFtZSksVWkoZSksZS5vZmYoIi5kdFNlbGVjdCIpLFJ0KCJib2R5Iikub2ZmKCIuZHRTZWxlY3QiK3FpKGUudGFibGUoKS5ub2RlKCkpKX0pfWZ1bmN0aW9uIFZzKHQsZSxyLG4pe3ZhciBzPXRbZSsicyJdKHtzZWFyY2g6ImFwcGxpZWQifSkuaW5kZXhlcygpLGE9cy5pbmRleE9mKG4pLGw9cy5pbmRleE9mKHIpO2lmKCF0W2UrInMiXSh7c2VsZWN0ZWQ6ITB9KS5hbnkoKSYmYT09PS0xKXMuc3BsaWNlKHMuaW5kZXhPZihyKSsxLHMubGVuZ3RoKTtlbHNle2lmKGE+bCl7dmFyIGM9bDtsPWEsYT1jfXMuc3BsaWNlKGwrMSxzLmxlbmd0aCkscy5zcGxpY2UoMCxhKX10W2VdKHIse3NlbGVjdGVkOiEwfSkuYW55KCk/KHMuc3BsaWNlKHMuaW5kZXhPZihyKSwxKSx0W2UrInMiXShzKS5kZXNlbGVjdCgpKTp0W2UrInMiXShzKS5zZWxlY3QoKX1mdW5jdGlvbiBKcih0LGUpe2lmKGV8fHQuX3NlbGVjdC5zdHlsZT09PSJzaW5nbGUiKXt2YXIgcj1uZXcgc3QuQXBpKHQpO3Iucm93cyh7c2VsZWN0ZWQ6ITB9KS5kZXNlbGVjdCgpLHIuY29sdW1ucyh7c2VsZWN0ZWQ6ITB9KS5kZXNlbGVjdCgpLHIuY2VsbHMoe3NlbGVjdGVkOiEwfSkuZGVzZWxlY3QoKX19ZnVuY3Rpb24gVmkodCxlLHIsbixzKXt2YXIgYT1lLnNlbGVjdC5zdHlsZSgpLGw9ZS5zZWxlY3QudG9nZ2xlYWJsZSgpLGM9ZVtuXShzLHtzZWxlY3RlZDohMH0pLmFueSgpO2lmKCEoYyYmIWwpKWlmKGE9PT0ib3MiKWlmKHQuY3RybEtleXx8dC5tZXRhS2V5KWVbbl0ocykuc2VsZWN0KCFjKTtlbHNlIGlmKHQuc2hpZnRLZXkpbj09PSJjZWxsIj96cyhlLHMsci5fc2VsZWN0X2xhc3RDZWxsfHxudWxsKTpWcyhlLG4scyxyLl9zZWxlY3RfbGFzdENlbGw/ci5fc2VsZWN0X2xhc3RDZWxsW25dOm51bGwpO2Vsc2V7dmFyIHA9ZVtuKyJzIl0oe3NlbGVjdGVkOiEwfSk7YyYmcC5mbGF0dGVuKCkubGVuZ3RoPT09MT9lW25dKHMpLmRlc2VsZWN0KCk6KHAuZGVzZWxlY3QoKSxlW25dKHMpLnNlbGVjdCgpKX1lbHNlIGE9PSJtdWx0aStzaGlmdCImJnQuc2hpZnRLZXk/bj09PSJjZWxsIj96cyhlLHMsci5fc2VsZWN0X2xhc3RDZWxsfHxudWxsKTpWcyhlLG4scyxyLl9zZWxlY3RfbGFzdENlbGw/ci5fc2VsZWN0X2xhc3RDZWxsW25dOm51bGwpOmVbbl0ocykuc2VsZWN0KCFjKX1mdW5jdGlvbiBxaSh0KXtyZXR1cm4gdC5pZC5yZXBsYWNlKC9bXmEtekEtWjAtOVwtXF9dL2csIi0iKX1SdC5lYWNoKFt7dHlwZToicm93Iixwcm9wOiJhb0RhdGEifSx7dHlwZToiY29sdW1uIixwcm9wOiJhb0NvbHVtbnMifV0sZnVuY3Rpb24odCxlKXtzdC5leHQuc2VsZWN0b3JbZS50eXBlXS5wdXNoKGZ1bmN0aW9uKHIsbixzKXt2YXIgYT1uLnNlbGVjdGVkLGwsYz1bXTtpZihhIT09ITAmJmEhPT0hMSlyZXR1cm4gcztmb3IodmFyIHA9MCxiPXMubGVuZ3RoO3A8YjtwKyspbD1yW2UucHJvcF1bc1twXV0sbCYmKGE9PT0hMCYmbC5fc2VsZWN0X3NlbGVjdGVkPT09ITB8fGE9PT0hMSYmIWwuX3NlbGVjdF9zZWxlY3RlZCkmJmMucHVzaChzW3BdKTtyZXR1cm4gY30pfSk7c3QuZXh0LnNlbGVjdG9yLmNlbGwucHVzaChmdW5jdGlvbih0LGUscil7dmFyIG49ZS5zZWxlY3RlZCxzLGE9W107aWYobj09PXZvaWQgMClyZXR1cm4gcjtmb3IodmFyIGw9MCxjPXIubGVuZ3RoO2w8YztsKyspcz10LmFvRGF0YVtyW2xdLnJvd10scyYmKG49PT0hMCYmcy5fc2VsZWN0ZWRfY2VsbHMmJnMuX3NlbGVjdGVkX2NlbGxzW3JbbF0uY29sdW1uXT09PSEwfHxuPT09ITEmJighcy5fc2VsZWN0ZWRfY2VsbHN8fCFzLl9zZWxlY3RlZF9jZWxsc1tyW2xdLmNvbHVtbl0pKSYmYS5wdXNoKHJbbF0pO3JldHVybiBhfSk7dmFyIHplPXN0LkFwaS5yZWdpc3RlcixPcj1zdC5BcGkucmVnaXN0ZXJQbHVyYWw7emUoInNlbGVjdCgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24odCl7c3Quc2VsZWN0LmluaXQobmV3IHN0LkFwaSh0KSl9KX0pO3plKCJzZWxlY3QuYmx1cmFibGUoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT12b2lkIDA/dGhpcy5jb250ZXh0WzBdLl9zZWxlY3QuYmx1cmFibGU6dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGUpe2UuX3NlbGVjdC5ibHVyYWJsZT10fSl9KTt6ZSgic2VsZWN0LnRvZ2dsZWFibGUoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT12b2lkIDA/dGhpcy5jb250ZXh0WzBdLl9zZWxlY3QudG9nZ2xlYWJsZTp0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oZSl7ZS5fc2VsZWN0LnRvZ2dsZWFibGU9dH0pfSk7emUoInNlbGVjdC5pbmZvKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0PT09dm9pZCAwP3RoaXMuY29udGV4dFswXS5fc2VsZWN0LmluZm86dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGUpe2UuX3NlbGVjdC5pbmZvPXR9KX0pO3plKCJzZWxlY3QuaXRlbXMoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT12b2lkIDA/dGhpcy5jb250ZXh0WzBdLl9zZWxlY3QuaXRlbXM6dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGUpe2UuX3NlbGVjdC5pdGVtcz10LEdlKG5ldyBzdC5BcGkoZSksInNlbGVjdEl0ZW1zIixbdF0pfSl9KTt6ZSgic2VsZWN0LnN0eWxlKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0PT09dm9pZCAwP3RoaXMuY29udGV4dFswXS5fc2VsZWN0LnN0eWxlOnRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlKXtlLl9zZWxlY3R8fHN0LnNlbGVjdC5pbml0KG5ldyBzdC5BcGkoZSkpLGUuX3NlbGVjdF9pbml0fHxXbChlKSxlLl9zZWxlY3Quc3R5bGU9dDt2YXIgcj1uZXcgc3QuQXBpKGUpO1VpKHIpLHQhPT0iYXBpIiYmV3MociksR2UobmV3IHN0LkFwaShlKSwic2VsZWN0U3R5bGUiLFt0XSl9KX0pO3plKCJzZWxlY3Quc2VsZWN0b3IoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT12b2lkIDA/dGhpcy5jb250ZXh0WzBdLl9zZWxlY3Quc2VsZWN0b3I6dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGUpe1VpKG5ldyBzdC5BcGkoZSkpLGUuX3NlbGVjdC5zZWxlY3Rvcj10LGUuX3NlbGVjdC5zdHlsZSE9PSJhcGkiJiZXcyhuZXcgc3QuQXBpKGUpKX0pfSk7emUoInNlbGVjdC5sYXN0KCkiLGZ1bmN0aW9uKHQpe2xldCBlPXRoaXMuY29udGV4dFswXTtyZXR1cm4gdD8oZS5fc2VsZWN0X2xhc3RDZWxsPXQsdGhpcyk6ZS5fc2VsZWN0X2xhc3RDZWxsfSk7T3IoInJvd3MoKS5zZWxlY3QoKSIsInJvdygpLnNlbGVjdCgpIixmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0PT09ITE/dGhpcy5kZXNlbGVjdCgpOih0aGlzLml0ZXJhdG9yKCJyb3ciLGZ1bmN0aW9uKHIsbil7SnIocik7dmFyIHM9ci5hb0RhdGFbbl0sYT1yLmFvQ29sdW1ucztSdChzLm5UcikuYWRkQ2xhc3Moci5fc2VsZWN0LmNsYXNzTmFtZSkscy5fc2VsZWN0X3NlbGVjdGVkPSEwO2Zvcih2YXIgbD0wO2w8YS5sZW5ndGg7bCsrKXt2YXIgYz1hW2xdO2lmKGMuc1R5cGU9PT1udWxsJiZlLmNvbHVtbnMoKS50eXBlcygpLGMuc1R5cGU9PT0ic2VsZWN0LWNoZWNrYm94Iil7dmFyIHA9cy5hbkNlbGxzO3AmJnBbbF0mJlJ0KCJpbnB1dC5kdC1zZWxlY3QtY2hlY2tib3giLHBbbF0pLnByb3AoImNoZWNrZWQiLCEwKSxzLl9hU29ydERhdGEhPT1udWxsJiYocy5fYVNvcnREYXRhW2xdPW51bGwpfX19KSx0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24ocixuKXtHZShlLCJzZWxlY3QiLFsicm93IixlW25dXSwhMCl9KSx0aGlzKX0pO3plKCJyb3coKS5zZWxlY3RlZCgpIixmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29udGV4dFswXTtyZXR1cm4hISh0JiZ0aGlzLmxlbmd0aCYmdC5hb0RhdGFbdGhpc1swXV0mJnQuYW9EYXRhW3RoaXNbMF1dLl9zZWxlY3Rfc2VsZWN0ZWQpfSk7T3IoImNvbHVtbnMoKS5zZWxlY3QoKSIsImNvbHVtbigpLnNlbGVjdCgpIixmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0PT09ITE/dGhpcy5kZXNlbGVjdCgpOih0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKHIsbil7SnIociksci5hb0NvbHVtbnNbbl0uX3NlbGVjdF9zZWxlY3RlZD0hMDt2YXIgcz1uZXcgc3QuQXBpKHIpLmNvbHVtbihuKTtSdChzLmhlYWRlcigpKS5hZGRDbGFzcyhyLl9zZWxlY3QuY2xhc3NOYW1lKSxSdChzLmZvb3RlcigpKS5hZGRDbGFzcyhyLl9zZWxlY3QuY2xhc3NOYW1lKSxzLm5vZGVzKCkudG8kKCkuYWRkQ2xhc3Moci5fc2VsZWN0LmNsYXNzTmFtZSl9KSx0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24ocixuKXtHZShlLCJzZWxlY3QiLFsiY29sdW1uIixlW25dXSwhMCl9KSx0aGlzKX0pO3plKCJjb2x1bW4oKS5zZWxlY3RlZCgpIixmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29udGV4dFswXTtyZXR1cm4hISh0JiZ0aGlzLmxlbmd0aCYmdC5hb0NvbHVtbnNbdGhpc1swXV0mJnQuYW9Db2x1bW5zW3RoaXNbMF1dLl9zZWxlY3Rfc2VsZWN0ZWQpfSk7T3IoImNlbGxzKCkuc2VsZWN0KCkiLCJjZWxsKCkuc2VsZWN0KCkiLGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQ9PT0hMT90aGlzLmRlc2VsZWN0KCk6KHRoaXMuaXRlcmF0b3IoImNlbGwiLGZ1bmN0aW9uKHIsbixzKXtKcihyKTt2YXIgYT1yLmFvRGF0YVtuXTthLl9zZWxlY3RlZF9jZWxscz09PXZvaWQgMCYmKGEuX3NlbGVjdGVkX2NlbGxzPVtdKSxhLl9zZWxlY3RlZF9jZWxsc1tzXT0hMCxhLmFuQ2VsbHMmJlJ0KGEuYW5DZWxsc1tzXSkuYWRkQ2xhc3Moci5fc2VsZWN0LmNsYXNzTmFtZSl9KSx0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24ocixuKXtHZShlLCJzZWxlY3QiLFsiY2VsbCIsZS5jZWxscyhlW25dKS5pbmRleGVzKCkudG9BcnJheSgpXSwhMCl9KSx0aGlzKX0pO3plKCJjZWxsKCkuc2VsZWN0ZWQoKSIsZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbnRleHRbMF07aWYodCYmdGhpcy5sZW5ndGgpe3ZhciBlPXQuYW9EYXRhW3RoaXNbMF1bMF0ucm93XTtpZihlJiZlLl9zZWxlY3RlZF9jZWxscyYmZS5fc2VsZWN0ZWRfY2VsbHNbdGhpc1swXVswXS5jb2x1bW5dKXJldHVybiEwfXJldHVybiExfSk7T3IoInJvd3MoKS5kZXNlbGVjdCgpIiwicm93KCkuZGVzZWxlY3QoKSIsZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLml0ZXJhdG9yKCJyb3ciLGZ1bmN0aW9uKGUscil7dmFyIG49ZS5hb0RhdGFbcl0scz1lLmFvQ29sdW1ucztSdChuLm5UcikucmVtb3ZlQ2xhc3MoZS5fc2VsZWN0LmNsYXNzTmFtZSksbi5fc2VsZWN0X3NlbGVjdGVkPSExLGUuX3NlbGVjdF9sYXN0Q2VsbD1udWxsO2Zvcih2YXIgYT0wO2E8cy5sZW5ndGg7YSsrKXt2YXIgbD1zW2FdO2lmKGwuc1R5cGU9PT1udWxsJiZ0LmNvbHVtbnMoKS50eXBlcygpLGwuc1R5cGU9PT0ic2VsZWN0LWNoZWNrYm94Iil7dmFyIGM9bi5hbkNlbGxzO2MmJmNbYV0mJlJ0KCJpbnB1dC5kdC1zZWxlY3QtY2hlY2tib3giLG4uYW5DZWxsc1thXSkucHJvcCgiY2hlY2tlZCIsITEpLG4uX2FTb3J0RGF0YSE9PW51bGwmJihuLl9hU29ydERhdGFbYV09bnVsbCl9fX0pLHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlLHIpe0dlKHQsImRlc2VsZWN0IixbInJvdyIsdFtyXV0sITApfSksdGhpc30pO09yKCJjb2x1bW5zKCkuZGVzZWxlY3QoKSIsImNvbHVtbigpLmRlc2VsZWN0KCkiLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5pdGVyYXRvcigiY29sdW1uIixmdW5jdGlvbihlLHIpe2UuYW9Db2x1bW5zW3JdLl9zZWxlY3Rfc2VsZWN0ZWQ9ITE7dmFyIG49bmV3IHN0LkFwaShlKSxzPW4uY29sdW1uKHIpO1J0KHMuaGVhZGVyKCkpLnJlbW92ZUNsYXNzKGUuX3NlbGVjdC5jbGFzc05hbWUpLFJ0KHMuZm9vdGVyKCkpLnJlbW92ZUNsYXNzKGUuX3NlbGVjdC5jbGFzc05hbWUpLG4uY2VsbHMobnVsbCxyKS5pbmRleGVzKCkuZWFjaChmdW5jdGlvbihhKXt2YXIgbD1lLmFvRGF0YVthLnJvd10sYz1sLl9zZWxlY3RlZF9jZWxscztsLmFuQ2VsbHMmJighY3x8IWNbYS5jb2x1bW5dKSYmUnQobC5hbkNlbGxzW2EuY29sdW1uXSkucmVtb3ZlQ2xhc3MoZS5fc2VsZWN0LmNsYXNzTmFtZSl9KX0pLHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlLHIpe0dlKHQsImRlc2VsZWN0IixbImNvbHVtbiIsdFtyXV0sITApfSksdGhpc30pO09yKCJjZWxscygpLmRlc2VsZWN0KCkiLCJjZWxsKCkuZGVzZWxlY3QoKSIsZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLml0ZXJhdG9yKCJjZWxsIixmdW5jdGlvbihlLHIsbil7dmFyIHM9ZS5hb0RhdGFbcl07cy5fc2VsZWN0ZWRfY2VsbHMhPT12b2lkIDAmJihzLl9zZWxlY3RlZF9jZWxsc1tuXT0hMSkscy5hbkNlbGxzJiYhZS5hb0NvbHVtbnNbbl0uX3NlbGVjdF9zZWxlY3RlZCYmUnQocy5hbkNlbGxzW25dKS5yZW1vdmVDbGFzcyhlLl9zZWxlY3QuY2xhc3NOYW1lKX0pLHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlLHIpe0dlKHQsImRlc2VsZWN0IixbImNlbGwiLHRbcl1dLCEwKX0pLHRoaXN9KTtmdW5jdGlvbiBFcih0LGUpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gci5pMThuKCJidXR0b25zLiIrdCxlKX19ZnVuY3Rpb24gSGkodCl7dmFyIGU9dC5fZXZlbnROYW1lc3BhY2U7cmV0dXJuImRyYXcuZHQuRFQiK2UrIiBzZWxlY3QuZHQuRFQiK2UrIiBkZXNlbGVjdC5kdC5EVCIrZX1mdW5jdGlvbiBVbCh0LGUpe3JldHVybiEhKGUubGltaXRUby5pbmRleE9mKCJyb3dzIikhPT0tMSYmdC5yb3dzKHtzZWxlY3RlZDohMH0pLmFueSgpfHxlLmxpbWl0VG8uaW5kZXhPZigiY29sdW1ucyIpIT09LTEmJnQuY29sdW1ucyh7c2VsZWN0ZWQ6ITB9KS5hbnkoKXx8ZS5saW1pdFRvLmluZGV4T2YoImNlbGxzIikhPT0tMSYmdC5jZWxscyh7c2VsZWN0ZWQ6ITB9KS5hbnkoKSl9dmFyIFdpPTA7UnQuZXh0ZW5kKHN0LmV4dC5idXR0b25zLHtzZWxlY3RlZDp7dGV4dDpFcigic2VsZWN0ZWQiLCJTZWxlY3RlZCIpLGNsYXNzTmFtZToiYnV0dG9ucy1zZWxlY3RlZCIsbGltaXRUbzpbInJvd3MiLCJjb2x1bW5zIiwiY2VsbHMiXSxpbml0OmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzO3IuX2V2ZW50TmFtZXNwYWNlPSIuc2VsZWN0IitXaSsrLHQub24oSGkociksZnVuY3Rpb24oKXtuLmVuYWJsZShVbCh0LHIpKX0pLHRoaXMuZGlzYWJsZSgpfSxkZXN0cm95OmZ1bmN0aW9uKHQsZSxyKXt0Lm9mZihyLl9ldmVudE5hbWVzcGFjZSl9fSxzZWxlY3RlZFNpbmdsZTp7dGV4dDpFcigic2VsZWN0ZWRTaW5nbGUiLCJTZWxlY3RlZCBzaW5nbGUiKSxjbGFzc05hbWU6ImJ1dHRvbnMtc2VsZWN0ZWQtc2luZ2xlIixpbml0OmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzO3IuX2V2ZW50TmFtZXNwYWNlPSIuc2VsZWN0IitXaSsrLHQub24oSGkociksZnVuY3Rpb24oKXt2YXIgcz10LnJvd3Moe3NlbGVjdGVkOiEwfSkuZmxhdHRlbigpLmxlbmd0aCt0LmNvbHVtbnMoe3NlbGVjdGVkOiEwfSkuZmxhdHRlbigpLmxlbmd0aCt0LmNlbGxzKHtzZWxlY3RlZDohMH0pLmZsYXR0ZW4oKS5sZW5ndGg7bi5lbmFibGUocz09PTEpfSksdGhpcy5kaXNhYmxlKCl9LGRlc3Ryb3k6ZnVuY3Rpb24odCxlLHIpe3Qub2ZmKHIuX2V2ZW50TmFtZXNwYWNlKX19LHNlbGVjdEFsbDp7dGV4dDpFcigic2VsZWN0QWxsIiwiU2VsZWN0IGFsbCIpLGNsYXNzTmFtZToiYnV0dG9ucy1zZWxlY3QtYWxsIixhY3Rpb246ZnVuY3Rpb24odCxlLHIsbil7dmFyIHM9dGhpcy5zZWxlY3QuaXRlbXMoKSxhPW4uc2VsZWN0b3JNb2RpZmllcjthPyh0eXBlb2YgYT09ImZ1bmN0aW9uIiYmKGE9YS5jYWxsKGUsdCxlLHIsbikpLHRoaXNbcysicyJdKGEpLnNlbGVjdCgpKTp0aGlzW3MrInMiXSgpLnNlbGVjdCgpfX0sc2VsZWN0Tm9uZTp7dGV4dDpFcigic2VsZWN0Tm9uZSIsIkRlc2VsZWN0IGFsbCIpLGNsYXNzTmFtZToiYnV0dG9ucy1zZWxlY3Qtbm9uZSIsYWN0aW9uOmZ1bmN0aW9uKCl7SnIodGhpcy5zZXR0aW5ncygpWzBdLCEwKX0saW5pdDpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcztyLl9ldmVudE5hbWVzcGFjZT0iLnNlbGVjdCIrV2krKyx0Lm9uKEhpKHIpLGZ1bmN0aW9uKCl7dmFyIHM9dC5yb3dzKHtzZWxlY3RlZDohMH0pLmZsYXR0ZW4oKS5sZW5ndGgrdC5jb2x1bW5zKHtzZWxlY3RlZDohMH0pLmZsYXR0ZW4oKS5sZW5ndGgrdC5jZWxscyh7c2VsZWN0ZWQ6ITB9KS5mbGF0dGVuKCkubGVuZ3RoO24uZW5hYmxlKHM+MCl9KSx0aGlzLmRpc2FibGUoKX0sZGVzdHJveTpmdW5jdGlvbih0LGUscil7dC5vZmYoci5fZXZlbnROYW1lc3BhY2UpfX0sc2hvd1NlbGVjdGVkOnt0ZXh0OkVyKCJzaG93U2VsZWN0ZWQiLCJTaG93IG9ubHkgc2VsZWN0ZWQiKSxjbGFzc05hbWU6ImJ1dHRvbnMtc2hvdy1zZWxlY3RlZCIsYWN0aW9uOmZ1bmN0aW9uKHQsZSl7aWYoZS5zZWFyY2guZml4ZWQoImR0LXNlbGVjdCIpKWUuc2VhcmNoLmZpeGVkKCJkdC1zZWxlY3QiLG51bGwpLHRoaXMuYWN0aXZlKCExKTtlbHNle3ZhciByPWUuc2V0dGluZ3MoKVswXS5hb0RhdGE7ZS5zZWFyY2guZml4ZWQoImR0LXNlbGVjdCIsZnVuY3Rpb24obixzLGEpe3JldHVybiByW2FdLl9zZWxlY3Rfc2VsZWN0ZWR9KSx0aGlzLmFjdGl2ZSghMCl9ZS5kcmF3KCl9fX0pO1J0LmVhY2goWyJSb3ciLCJDb2x1bW4iLCJDZWxsIl0sZnVuY3Rpb24odCxlKXt2YXIgcj1lLnRvTG93ZXJDYXNlKCk7c3QuZXh0LmJ1dHRvbnNbInNlbGVjdCIrZSsicyJdPXt0ZXh0OkVyKCJzZWxlY3QiK2UrInMiLCJTZWxlY3QgIityKyJzIiksY2xhc3NOYW1lOiJidXR0b25zLXNlbGVjdC0iK3IrInMiLGFjdGlvbjpmdW5jdGlvbigpe3RoaXMuc2VsZWN0Lml0ZW1zKHIpfSxpbml0OmZ1bmN0aW9uKG4pe3ZhciBzPXRoaXM7bi5vbigic2VsZWN0SXRlbXMuZHQuRFQiLGZ1bmN0aW9uKGEsbCxjKXtzLmFjdGl2ZShjPT09cil9KX19fSk7c3QudHlwZSgic2VsZWN0LWNoZWNrYm94Iix7Y2xhc3NOYW1lOiJkdC1zZWxlY3QiLGRldGVjdDpmdW5jdGlvbih0KXtyZXR1cm4gdD09PSJzZWxlY3QtY2hlY2tib3giP3Q6ITF9LG9yZGVyOntwcmU6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT0iWCI/LTE6MH19fSk7UnQuZXh0ZW5kKCEwLHN0LmRlZmF1bHRzLm9MYW5ndWFnZSx7c2VsZWN0OnthcmlhOntyb3dDaGVja2JveDoiU2VsZWN0IHJvdyJ9fX0pO3N0LnJlbmRlci5zZWxlY3Q9ZnVuY3Rpb24odCxlKXt2YXIgcj10P3N0LnV0aWwuZ2V0KHQpOm51bGwsbj1lP3N0LnV0aWwuZ2V0KGUpOm51bGw7cmV0dXJuIGZ1bmN0aW9uKHMsYSxsLGMpe3ZhciBwPWMuc2V0dGluZ3MuYW9EYXRhW2Mucm93XSxiPXAuX3NlbGVjdF9zZWxlY3RlZCxtPWMuc2V0dGluZ3Mub0xhbmd1YWdlLnNlbGVjdC5hcmlhLnJvd0NoZWNrYm94O3JldHVybiBhPT09ImRpc3BsYXkiP1J0KCI8aW5wdXQ+IikuYXR0cih7ImFyaWEtbGFiZWwiOm0sY2xhc3M6ImR0LXNlbGVjdC1jaGVja2JveCIsbmFtZTpuP24obCk6bnVsbCx0eXBlOiJjaGVja2JveCIsdmFsdWU6cj9yKGwpOm51bGwsY2hlY2tlZDpifSlbMF06YT09PSJ0eXBlIj8ic2VsZWN0LWNoZWNrYm94IjphPT09ImZpbHRlciI/IiI6Yj8iWCI6IiJ9fTtzdC5leHQub3JkZXJbInNlbGVjdC1jaGVja2JveCJdPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYXBpKCkuY29sdW1uKGUse29yZGVyOiJpbmRleCJ9KS5ub2RlcygpLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gdC5fc2VsZWN0Lml0ZW1zPT09InJvdyI/UnQocikucGFyZW50KCkuaGFzQ2xhc3ModC5fc2VsZWN0LmNsYXNzTmFtZSk6dC5fc2VsZWN0Lml0ZW1zPT09ImNlbGwiP1J0KHIpLmhhc0NsYXNzKHQuX3NlbGVjdC5jbGFzc05hbWUpOiExfSl9O1J0LmZuLkRhdGFUYWJsZS5zZWxlY3Q9c3Quc2VsZWN0O1J0KGRvY3VtZW50KS5vbigicHJlSW5pdC5kdC5kdFNlbGVjdCIsZnVuY3Rpb24odCxlKXt0Lm5hbWVzcGFjZT09PSJkdCImJnN0LnNlbGVjdC5pbml0KG5ldyBzdC5BcGkoZSkpfSk7S2UuQnV0dG9ucy5qc3ppcChVcy5kZWZhdWx0KTt2YXIgZXhwb3J0X2pRdWVyeT1HbC5kZWZhdWx0O2V4cG9ydHtLZSBhcyBEYXRhVGFibGUsZXhwb3J0X2pRdWVyeSBhcyBqUXVlcnl9OwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKanN6aXAvZGlzdC9qc3ppcC5taW4uanM6CiAgKCohCiAgCiAgSlNaaXAgdjMuMTAuMSAtIEEgSmF2YVNjcmlwdCBjbGFzcyBmb3IgZ2VuZXJhdGluZyBhbmQgcmVhZGluZyB6aXAgZmlsZXMKICA8aHR0cDovL3N0dWFydGsuY29tL2pzemlwPgogIAogIChjKSAyMDA5LTIwMTYgU3R1YXJ0IEtuaWdodGxleSA8c3R1YXJ0IFthdF0gc3R1YXJ0ay5jb20+CiAgRHVhbCBsaWNlbmNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2Ugb3IgR1BMdjMuIFNlZSBodHRwczovL3Jhdy5naXRodWIuY29tL1N0dWsvanN6aXAvbWFpbi9MSUNFTlNFLm1hcmtkb3duLgogIAogIEpTWmlwIHVzZXMgdGhlIGxpYnJhcnkgcGFrbyByZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgOgogIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlY2EvcGFrby9ibG9iL21haW4vTElDRU5TRQogICopCgpqcXVlcnkvZGlzdC9qcXVlcnkuanM6CiAgKCohCiAgICogalF1ZXJ5IEphdmFTY3JpcHQgTGlicmFyeSB2My43LjEKICAgKiBodHRwczovL2pxdWVyeS5jb20vCiAgICoKICAgKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycwogICAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQogICAqIGh0dHBzOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAgICoKICAgKiBEYXRlOiAyMDIzLTA4LTI4VDEzOjM3WgogICAqKQoKZGF0YXRhYmxlcy5uZXQvanMvZGF0YVRhYmxlcy5tanM6CiAgKCohIERhdGFUYWJsZXMgMi4wLjUKICAgKiDCqSBTcHJ5TWVkaWEgTHRkIC0gZGF0YXRhYmxlcy5uZXQvbGljZW5zZQogICAqKQoKZGF0YXRhYmxlcy5uZXQtZHQvanMvZGF0YVRhYmxlcy5kYXRhVGFibGVzLm1qczoKICAoKiEgRGF0YVRhYmxlcyBzdHlsaW5nIGludGVncmF0aW9uCiAgICogwqkgU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UKICAgKikKCmRhdGF0YWJsZXMubmV0LWJ1dHRvbnMvanMvZGF0YVRhYmxlcy5idXR0b25zLm1qczoKICAoKiEgQnV0dG9ucyBmb3IgRGF0YVRhYmxlcyAzLjAuMgogICAqIMKpIFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiAgICopCgpkYXRhdGFibGVzLm5ldC1idXR0b25zLWR0L2pzL2J1dHRvbnMuZGF0YVRhYmxlcy5tanM6CiAgKCohIERhdGFUYWJsZXMgc3R5bGluZyB3cmFwcGVyIGZvciBCdXR0b25zCiAgICogwqkgU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UKICAgKikKCmRhdGF0YWJsZXMubmV0LWJ1dHRvbnMvanMvYnV0dG9ucy5odG1sNS5tanM6CiAgKCohCiAgICogSFRNTDUgZXhwb3J0IGJ1dHRvbnMgZm9yIEJ1dHRvbnMgYW5kIERhdGFUYWJsZXMuCiAgICogwqkgU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UKICAgKgogICAqIEZpbGVTYXZlci5qcyAoMS4zLjMpIC0gTUlUIGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgwqkgMjAxNiBFbGkgR3JleSAtIGh0dHA6Ly9lbGlncmV5LmNvbQogICAqKQoKZGF0YXRhYmxlcy5uZXQtYnV0dG9ucy9qcy9idXR0b25zLnByaW50Lm1qczoKICAoKiEKICAgKiBQcmludCBidXR0b24gZm9yIEJ1dHRvbnMgYW5kIERhdGFUYWJsZXMuCiAgICogwqkgU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UKICAgKikKCmRhdGF0YWJsZXMubmV0LWZpeGVkY29sdW1ucy9qcy9kYXRhVGFibGVzLmZpeGVkQ29sdW1ucy5tanM6CiAgKCohIEZpeGVkQ29sdW1ucyA1LjAuMAogICAqIMKpIFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiAgICopCgpkYXRhdGFibGVzLm5ldC1maXhlZGNvbHVtbnMtZHQvanMvZml4ZWRDb2x1bW5zLmRhdGFUYWJsZXMubWpzOgogICgqISBEYXRhVGFibGVzIGludGVncmF0aW9uIGZvciBEYXRhVGFibGVzJyBGaXhlZENvbHVtbnMKICAgKiDCqSBTcHJ5TWVkaWEgTHRkIC0gZGF0YXRhYmxlcy5uZXQvbGljZW5zZQogICAqKQoKZGF0YXRhYmxlcy5uZXQta2V5dGFibGUvanMvZGF0YVRhYmxlcy5rZXlUYWJsZS5tanM6CiAgKCohIEtleVRhYmxlIDIuMTIuMAogICAqIMKpIFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiAgICopCgpkYXRhdGFibGVzLm5ldC1rZXl0YWJsZS1kdC9qcy9rZXlUYWJsZS5kYXRhVGFibGVzLm1qczoKICAoKiEgRGF0YVRhYmxlcyBzdHlsaW5nIHdyYXBwZXIgZm9yIEtleVRhYmxlCiAgICogwqkgU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UKICAgKikKCmRhdGF0YWJsZXMubmV0LXJvd2dyb3VwL2pzL2RhdGFUYWJsZXMucm93R3JvdXAubWpzOgogICgqISBSb3dHcm91cCAxLjUuMAogICAqIMKpIFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiAgICopCgpkYXRhdGFibGVzLm5ldC1yb3dncm91cC1kdC9qcy9yb3dHcm91cC5kYXRhVGFibGVzLm1qczoKICAoKiEgRGF0YVRhYmxlcyBzdHlsaW5nIHdyYXBwZXIgZm9yIFJvd0dyb3VwCiAgICogwqkgU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UKICAgKikKCmRhdGF0YWJsZXMubmV0LXNlYXJjaGJ1aWxkZXIvanMvZGF0YVRhYmxlcy5zZWFyY2hCdWlsZGVyLm1qczoKICAoKiEgU2VhcmNoQnVpbGRlciAxLjcuMQogICAqIMKpU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UvbWl0CiAgICopCgpkYXRhdGFibGVzLm5ldC1zZWFyY2hidWlsZGVyLWR0L2pzL3NlYXJjaEJ1aWxkZXIuZGF0YVRhYmxlcy5tanM6CiAgKCohIERhdGFUYWJsZXMgaW50ZWdyYXRpb24gZm9yIERhdGFUYWJsZXMnIFNlYXJjaEJ1aWxkZXIKICAgKiDCqSBTcHJ5TWVkaWEgTHRkIC0gZGF0YXRhYmxlcy5uZXQvbGljZW5zZQogICAqKQoKZGF0YXRhYmxlcy5uZXQtc2VhcmNocGFuZXMvanMvZGF0YVRhYmxlcy5zZWFyY2hQYW5lcy5tanM6CiAgKCohIFNlYXJjaFBhbmVzIDIuMy4wCiAgICogwqkgU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UKICAgKikKCmRhdGF0YWJsZXMubmV0LXNlYXJjaHBhbmVzLWR0L2pzL3NlYXJjaFBhbmVzLmRhdGFUYWJsZXMubWpzOgogICgqISBCb290c3RyYXAgaW50ZWdyYXRpb24gZm9yIERhdGFUYWJsZXMnIFNlYXJjaFBhbmVzCiAgICogwqkgU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UKICAgKikKCmRhdGF0YWJsZXMubmV0LXNlbGVjdC9qcy9kYXRhVGFibGVzLnNlbGVjdC5tanM6CiAgKCohIFNlbGVjdCBmb3IgRGF0YVRhYmxlcyAyLjAuMQogICAqIMKpIFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlL21pdAogICAqKQoKZGF0YXRhYmxlcy5uZXQtc2VsZWN0LWR0L2pzL3NlbGVjdC5kYXRhVGFibGVzLm1qczoKICAoKiEgRGF0YVRhYmxlcyBzdHlsaW5nIHdyYXBwZXIgZm9yIFNlbGVjdAogICAqIMKpIFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiAgICopCiovCg==\";\n",
|
|
"document.querySelectorAll(\"#itables_init_notebook_mode_60f285f6_4be0_46a1_8348_969204f52615\").forEach(e => e.remove());\n",
|
|
"</script>\n"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"from v2realbot.tools.loadbatch import load_batch\n",
|
|
"from v2realbot.utils.utils import zoneNY\n",
|
|
"import pandas as pd\n",
|
|
"import numpy as np\n",
|
|
"from datetime import timedelta, datetime\n",
|
|
"import vectorbtpro as vbt\n",
|
|
"import os\n",
|
|
"from itables import init_notebook_mode, show\n",
|
|
"\n",
|
|
"init_notebook_mode(all_interactive=True)\n",
|
|
"\n",
|
|
"vbt.settings.set_theme(\"dark\")\n",
|
|
"vbt.settings['plotting']['layout']['width'] = 1280\n",
|
|
"vbt.settings.plotting.auto_rangebreaks = True\n",
|
|
"# Set the option to display with pagination\n",
|
|
"pd.set_option('display.notebook_repr_html', True)\n",
|
|
"pd.set_option('display.max_rows', 10) # Number of rows per page\n",
|
|
"\n",
|
|
"# Alpaca API credentials\n",
|
|
"ALPACA_API_KEY = os.environ.get('ACCOUNT1_PAPER_API_KEY')\n",
|
|
"ALPACA_API_SECRET = os.environ.get('ACCOUNT1_PAPER_SECRET_KEY')\n",
|
|
"\n",
|
|
"# Initialize Alpaca data client\n",
|
|
"alpaca_data = vbt.AlpacaData.set_custom_settings(client_config=dict(\n",
|
|
" api_key=ALPACA_API_KEY,\n",
|
|
" secret_key=ALPACA_API_SECRET\n",
|
|
" )\n",
|
|
")\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Fetch Data"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 80,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/vnd.jupyter.widget-view+json": {
|
|
"model_id": "27b8d22d4264407e8fd0858ef9649f2f",
|
|
"version_major": 2,
|
|
"version_minor": 0
|
|
},
|
|
"text/plain": [
|
|
" 0%| | 0/1 [00:00<?, ?it/s]"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Define the symbol, start, and end dates for your data\n",
|
|
"symbol = 'BAC'\n",
|
|
"start_date = datetime.now() - timedelta(days=10) # Last 30 days\n",
|
|
"end_date = datetime.now() - timedelta(days=1) # yesterday\n",
|
|
"time_interval = '1T' # 1-minute intervals '1 minute'\n",
|
|
"\n",
|
|
"basic_data = vbt.AlpacaData.pull([\"BAC\"], start=start_date, end=end_date, timeframe=time_interval, tz=\"America/New_York\")\n",
|
|
"basic_data = basic_data.transform(lambda x: x.between_time(\"9:30\",\"16:00\"))\n",
|
|
"#basic_data.data[\"BAC\"].vbt.ohlcv.plot()\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# filter dates"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 81,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<table id=\"itables_2282726d_ca1e_4211_a605_f1816c96f59e\" class=\"display nowrap\" data-quarto-disable-processing=\"true\" style=\"table-layout:auto;width:auto;margin:auto;caption-side:bottom\">\n",
|
|
"<thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Open</th>\n",
|
|
" <th>High</th>\n",
|
|
" <th>Low</th>\n",
|
|
" <th>Close</th>\n",
|
|
" <th>Volume</th>\n",
|
|
" <th>Trade count</th>\n",
|
|
" <th>VWAP</th>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Open time</th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" </tr>\n",
|
|
" </thead><tbody><tr>\n",
|
|
"<td style=\"vertical-align:middle; text-align:left\">\n",
|
|
"<div style=\"float:left; margin-right: 10px;\">\n",
|
|
"<a href=https://mwouts.github.io/itables/><svg class=\"main-svg\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
|
|
"width=\"64\" viewBox=\"0 0 500 400\" style=\"font-family: 'Droid Sans', sans-serif;\">\n",
|
|
" <g style=\"fill:#d9d7fc\">\n",
|
|
" <path d=\"M100,400H500V357H100Z\" />\n",
|
|
" <path d=\"M100,300H400V257H100Z\" />\n",
|
|
" <path d=\"M0,200H400V157H0Z\" />\n",
|
|
" <path d=\"M100,100H500V57H100Z\" />\n",
|
|
" <path d=\"M100,350H500V307H100Z\" />\n",
|
|
" <path d=\"M100,250H400V207H100Z\" />\n",
|
|
" <path d=\"M0,150H400V107H0Z\" />\n",
|
|
" <path d=\"M100,50H500V7H100Z\" />\n",
|
|
" </g>\n",
|
|
" <g style=\"fill:#1a1366;stroke:#1a1366;\">\n",
|
|
" <rect x=\"100\" y=\"7\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"0\" y=\"107\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"0;0;400\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"207\" width=\"300\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;300;0\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;400\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"307\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <g style=\"fill:transparent;stroke-width:8; stroke-linejoin:round\" rx=\"5\">\n",
|
|
" <g transform=\"translate(45 50) rotate(-45)\">\n",
|
|
" <circle r=\"33\" cx=\"0\" cy=\"0\" />\n",
|
|
" <rect x=\"-8\" y=\"32\" width=\"16\" height=\"30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(450 152)\">\n",
|
|
" <polyline points=\"-15,-20 -35,-20 -35,40 25,40 25,20\" />\n",
|
|
" <rect x=\"-15\" y=\"-40\" width=\"60\" height=\"60\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(50 352)\">\n",
|
|
" <polygon points=\"-35,-5 0,-40 35,-5\" />\n",
|
|
" <polygon points=\"-35,10 0,45 35,10\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(75 250)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(425 250) rotate(180)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
"</svg>\n",
|
|
"</a>\n",
|
|
"</div>\n",
|
|
"<div>\n",
|
|
"Loading ITables v2.0.1 from the <code>init_notebook_mode</code> cell...\n",
|
|
"(need <a href=https://mwouts.github.io/itables/troubleshooting.html>help</a>?)</td>\n",
|
|
"</div>\n",
|
|
"</tr></tbody>\n",
|
|
"\n",
|
|
"</table>\n",
|
|
"<script type=\"module\">\n",
|
|
" const { DataTable, jQuery: $ } = await import(window._datatables_src_for_itables_2_0_1);\n",
|
|
"\n",
|
|
" document.querySelectorAll(\"#itables_2282726d_ca1e_4211_a605_f1816c96f59e:not(.dataTable)\").forEach(table => {\n",
|
|
" // Define the table data\n",
|
|
" const data = [[\"2024-04-29 09:30:00-04:00\", 37.84, 37.94, 37.76, 37.87, 476819.0, 2738, 37.855352], [\"2024-04-29 09:31:00-04:00\", 37.875, 37.985, 37.78, 37.815, 147198.0, 975, 37.904413], [\"2024-04-29 09:32:00-04:00\", 37.805, 37.85, 37.775, 37.8, 107729.0, 875, 37.812062], [\"2024-04-29 09:33:00-04:00\", 37.7935, 37.88, 37.7935, 37.86, 52305.0, 517, 37.842597], [\"2024-04-29 09:34:00-04:00\", 37.86, 37.89, 37.835, 37.86, 41294.0, 403, 37.855641], [\"2024-04-29 09:35:00-04:00\", 37.86, 37.86, 37.7349, 37.78, 149136.0, 803, 37.770074], [\"2024-04-29 09:36:00-04:00\", 37.775, 37.83, 37.76, 37.815, 455714.0, 596, 37.774218], [\"2024-04-29 09:37:00-04:00\", 37.83, 37.895, 37.82, 37.8737, 158670.0, 831, 37.860748], [\"2024-04-29 09:38:00-04:00\", 37.875, 37.89, 37.83, 37.885, 100294.0, 654, 37.86373], [\"2024-04-29 09:39:00-04:00\", 37.885, 37.9, 37.87, 37.885, 52662.0, 384, 37.887771], [\"2024-04-29 09:40:00-04:00\", 37.89, 37.89, 37.825, 37.88, 60270.0, 565, 37.855779], [\"2024-04-29 09:41:00-04:00\", 37.88, 37.93, 37.875, 37.92, 81318.0, 566, 37.906973], [\"2024-04-29 09:42:00-04:00\", 37.92, 37.92, 37.845, 37.845, 88399.0, 745, 37.876201], [\"2024-04-29 09:43:00-04:00\", 37.84, 37.87, 37.82, 37.86, 56754.0, 564, 37.848724], [\"2024-04-29 09:44:00-04:00\", 37.86, 37.88, 37.84, 37.88, 69611.0, 530, 37.859682], [\"2024-04-29 09:45:00-04:00\", 37.875, 37.89, 37.865, 37.87, 43062.0, 443, 37.875443], [\"2024-04-29 09:46:00-04:00\", 37.87, 37.93, 37.8607, 37.93, 79043.0, 546, 37.899653], [\"2024-04-29 09:47:00-04:00\", 37.935, 37.965, 37.93, 37.96, 67572.0, 517, 37.944263], [\"2024-04-29 09:48:00-04:00\", 37.95, 37.97, 37.935, 37.9642, 107692.0, 890, 37.960533], [\"2024-04-29 09:49:00-04:00\", 37.9657, 37.99, 37.96, 37.985, 135780.0, 991, 37.970834], [\"2024-04-29 09:50:00-04:00\", 37.9893, 38.005, 37.965, 37.975, 107246.0, 766, 37.987834], [\"2024-04-29 09:51:00-04:00\", 37.97, 38.03, 37.955, 38.02, 76623.0, 722, 37.998838], [\"2024-04-29 09:52:00-04:00\", 38.03, 38.03, 37.995, 38.0, 67289.0, 602, 38.016398], [\"2024-04-29 09:53:00-04:00\", 37.99, 38.0, 37.96, 37.975, 78301.0, 910, 37.983403], [\"2024-04-29 09:54:00-04:00\", 37.98, 38.01, 37.98, 38.01, 32241.0, 563, 37.999532], [\"2024-04-29 09:55:00-04:00\", 38.005, 38.03, 37.99, 38.02, 37861.0, 561, 38.00963], [\"2024-04-29 09:56:00-04:00\", 38.0102, 38.0102, 37.9602, 37.985, 60979.0, 717, 37.991626], [\"2024-04-29 09:57:00-04:00\", 37.99, 38.01, 37.98, 38.0086, 25158.0, 461, 37.995722], [\"2024-04-29 09:58:00-04:00\", 38.0075, 38.0075, 37.96, 37.985, 57658.0, 651, 37.977867], [\"2024-04-29 09:59:00-04:00\", 37.9802, 37.99, 37.95, 37.985, 53533.0, 554, 37.971929], [\"2024-04-29 10:00:00-04:00\", 37.99, 38.01, 37.96, 38.0, 97239.0, 874, 37.987036], [\"2024-04-29 10:01:00-04:00\", 38.0, 38.04, 37.995, 38.025, 120687.0, 1006, 38.025978], [\"2024-04-29 10:02:00-04:00\", 38.025, 38.06, 38.025, 38.05, 73368.0, 581, 38.053043], [\"2024-04-29 10:03:00-04:00\", 38.04, 38.05, 38.025, 38.035, 47086.0, 568, 38.037631], [\"2024-04-29 10:04:00-04:00\", 38.03, 38.0389, 38.02, 38.03, 31035.0, 444, 38.028077], [\"2024-04-29 10:05:00-04:00\", 38.0276, 38.04, 38.015, 38.035, 30006.0, 482, 38.026364], [\"2024-04-29 10:06:00-04:00\", 38.031, 38.04, 38.005, 38.035, 167403.0, 870, 38.024733], [\"2024-04-29 10:07:00-04:00\", 38.035, 38.06, 38.03, 38.05, 76511.0, 656, 38.049114], [\"2024-04-29 10:08:00-04:00\", 38.05, 38.06, 38.01, 38.015, 55389.0, 640, 38.031222], [\"2024-04-29 10:09:00-04:00\", 38.01, 38.02, 38.0, 38.005, 50385.0, 642, 38.009904], [\"2024-04-29 10:10:00-04:00\", 38.0, 38.02, 37.99, 38.005, 47613.0, 647, 38.003099], [\"2024-04-29 10:11:00-04:00\", 38.01, 38.02, 38.0, 38.005, 24779.0, 467, 38.011361], [\"2024-04-29 10:12:00-04:00\", 38.0, 38.03, 38.0, 38.005, 44778.0, 520, 38.012485], [\"2024-04-29 10:13:00-04:00\", 38.005, 38.03, 38.005, 38.0166, 31130.0, 478, 38.017715], [\"2024-04-29 10:14:00-04:00\", 38.01, 38.015, 37.995, 38.0145, 36368.0, 480, 38.005924], [\"2024-04-29 10:15:00-04:00\", 38.01, 38.03, 38.01, 38.015, 26718.0, 340, 38.01892], [\"2024-04-29 10:16:00-04:00\", 38.014, 38.03, 38.01, 38.025, 30934.0, 254, 38.019485], [\"2024-04-29 10:17:00-04:00\", 38.025, 38.03, 38.015, 38.025, 30306.0, 196, 38.02408], [\"2024-04-29 10:18:00-04:00\", 38.02, 38.025, 38.0, 38.01, 40678.0, 249, 38.008497], [\"2024-04-29 10:19:00-04:00\", 38.01, 38.015, 38.0, 38.005, 28435.0, 211, 38.009751], [\"2024-04-29 10:20:00-04:00\", 38.01, 38.02, 37.975, 37.9799, 69089.0, 579, 37.996006], [\"2024-04-29 10:21:00-04:00\", 37.98, 37.995, 37.975, 37.985, 69599.0, 412, 37.986494], [\"2024-04-29 10:22:00-04:00\", 37.99, 38.0, 37.99, 38.0, 21039.0, 162, 37.995029], [\"2024-04-29 10:23:00-04:00\", 37.995, 38.005, 37.98, 38.0, 52290.0, 314, 37.994264], [\"2024-04-29 10:24:00-04:00\", 37.9991, 37.9991, 37.96, 37.9724, 72679.0, 536, 37.977046], [\"2024-04-29 10:25:00-04:00\", 37.97, 37.99, 37.96, 37.98, 38639.0, 328, 37.973426], [\"2024-04-29 10:26:00-04:00\", 37.975, 37.99, 37.97, 37.9775, 36759.0, 287, 37.980527], [\"2024-04-29 10:27:00-04:00\", 37.975, 37.99, 37.97, 37.975, 34346.0, 272, 37.97847], [\"2024-04-29 10:28:00-04:00\", 37.975, 37.98, 37.95, 37.95, 41839.0, 335, 37.961771], [\"2024-04-29 10:29:00-04:00\", 37.955, 37.97, 37.95, 37.965, 63734.0, 443, 37.960275], [\"2024-04-29 10:30:00-04:00\", 37.965, 37.97, 37.95, 37.95, 35529.0, 253, 37.960735], [\"2024-04-29 10:31:00-04:00\", 37.955, 37.9775, 37.955, 37.96, 49198.0, 387, 37.964343], [\"2024-04-29 10:32:00-04:00\", 37.96, 37.97, 37.95, 37.965, 34877.0, 271, 37.964032], [\"2024-04-29 10:33:00-04:00\", 37.97, 37.995, 37.97, 37.985, 45664.0, 360, 37.982237], [\"2024-04-29 10:34:00-04:00\", 37.985, 37.99, 37.97, 37.9877, 32861.0, 226, 37.980513], [\"2024-04-29 10:35:00-04:00\", 37.98, 37.9875, 37.97, 37.975, 21583.0, 157, 37.977573], [\"2024-04-29 10:36:00-04:00\", 37.97, 37.975, 37.95, 37.96, 77348.0, 554, 37.958767], [\"2024-04-29 10:37:00-04:00\", 37.96, 37.97, 37.96, 37.96, 16858.0, 105, 37.965123], [\"2024-04-29 10:38:00-04:00\", 37.97, 37.97, 37.925, 37.9301, 71059.0, 437, 37.941827], [\"2024-04-29 10:39:00-04:00\", 37.935, 37.95, 37.93, 37.94, 52007.0, 368, 37.940379], [\"2024-04-29 10:40:00-04:00\", 37.9498, 37.96, 37.94, 37.955, 30672.0, 197, 37.949539], [\"2024-04-29 10:41:00-04:00\", 37.955, 37.96, 37.95, 37.95, 77942.0, 320, 37.956397], [\"2024-04-29 10:42:00-04:00\", 37.9525, 37.96, 37.95, 37.955, 9282.0, 85, 37.954234], [\"2024-04-29 10:43:00-04:00\", 37.95, 37.96, 37.95, 37.9577, 15392.0, 163, 37.953786], [\"2024-04-29 10:44:00-04:00\", 37.955, 37.96, 37.95, 37.96, 47689.0, 356, 37.953656], [\"2024-04-29 10:45:00-04:00\", 37.96, 37.96, 37.95, 37.955, 45724.0, 239, 37.952351], [\"2024-04-29 10:46:00-04:00\", 37.95, 37.96, 37.93, 37.94, 53506.0, 330, 37.941743], [\"2024-04-29 10:47:00-04:00\", 37.94, 37.95, 37.93, 37.95, 26614.0, 228, 37.939923], [\"2024-04-29 10:48:00-04:00\", 37.9403, 37.97, 37.935, 37.965, 50597.0, 413, 37.947577], [\"2024-04-29 10:49:00-04:00\", 37.97, 37.97, 37.95, 37.96, 41559.0, 292, 37.962498], [\"2024-04-29 10:50:00-04:00\", 37.955, 37.96, 37.93, 37.955, 70104.0, 317, 37.948457], [\"2024-04-29 10:51:00-04:00\", 37.955, 37.96, 37.94, 37.9599, 22214.0, 169, 37.95164], [\"2024-04-29 10:52:00-04:00\", 37.955, 37.96, 37.935, 37.935, 29845.0, 201, 37.947674], [\"2024-04-29 10:53:00-04:00\", 37.935, 37.95, 37.93, 37.944, 60478.0, 268, 37.937955], [\"2024-04-29 10:54:00-04:00\", 37.945, 37.95, 37.94, 37.9439, 22542.0, 180, 37.944566], [\"2024-04-29 10:55:00-04:00\", 37.95, 37.95, 37.91, 37.9292, 60417.0, 290, 37.929997], [\"2024-04-29 10:56:00-04:00\", 37.93, 37.95, 37.93, 37.9301, 38050.0, 268, 37.93574], [\"2024-04-29 10:57:00-04:00\", 37.935, 37.95, 37.935, 37.95, 31725.0, 231, 37.941072], [\"2024-04-29 10:58:00-04:00\", 37.9499, 37.96, 37.94, 37.945, 19608.0, 175, 37.948784], [\"2024-04-29 10:59:00-04:00\", 37.95, 37.95, 37.93, 37.94, 46028.0, 330, 37.938114], [\"2024-04-29 11:00:00-04:00\", 37.93, 37.95, 37.93, 37.94, 59389.0, 360, 37.940085], [\"2024-04-29 11:01:00-04:00\", 37.945, 37.95, 37.935, 37.945, 22585.0, 152, 37.940684], [\"2024-04-29 11:02:00-04:00\", 37.9475, 37.96, 37.94, 37.96, 27395.0, 180, 37.949677], [\"2024-04-29 11:03:00-04:00\", 37.955, 37.96, 37.945, 37.945, 48142.0, 312, 37.956317], [\"2024-04-29 11:04:00-04:00\", 37.95, 37.95, 37.94, 37.94, 20314.0, 124, 37.94224], [\"2024-04-29 11:05:00-04:00\", 37.95, 37.95, 37.925, 37.95, 40527.0, 273, 37.936314], [\"2024-04-29 11:06:00-04:00\", 37.95, 37.96, 37.945, 37.95, 34800.0, 191, 37.950872], [\"2024-04-29 11:07:00-04:00\", 37.96, 37.96, 37.93, 37.935, 38290.0, 277, 37.942364], [\"2024-04-29 11:08:00-04:00\", 37.935, 37.95, 37.935, 37.945, 28319.0, 260, 37.940332], [\"2024-04-29 11:09:00-04:00\", 37.945, 37.95, 37.9345, 37.94, 31835.0, 231, 37.939776], [\"2024-04-29 11:10:00-04:00\", 37.945, 37.95, 37.94, 37.945, 14993.0, 116, 37.945031], [\"2024-04-29 11:11:00-04:00\", 37.9475, 37.95, 37.92, 37.92, 42023.0, 278, 37.938395], [\"2024-04-29 11:12:00-04:00\", 37.92, 37.93, 37.91, 37.915, 59221.0, 356, 37.917939], [\"2024-04-29 11:13:00-04:00\", 37.915, 37.92, 37.9, 37.92, 72413.0, 341, 37.912965], [\"2024-04-29 11:14:00-04:00\", 37.915, 37.92, 37.91, 37.915, 33672.0, 232, 37.915146], [\"2024-04-29 11:15:00-04:00\", 37.915, 37.9299, 37.91, 37.9101, 59806.0, 342, 37.915043], [\"2024-04-29 11:16:00-04:00\", 37.92, 37.93, 37.9137, 37.915, 30114.0, 212, 37.920673], [\"2024-04-29 11:17:00-04:00\", 37.915, 37.93, 37.915, 37.9244, 14228.0, 135, 37.923864], [\"2024-04-29 11:18:00-04:00\", 37.925, 37.93, 37.92, 37.925, 23988.0, 189, 37.921437], [\"2024-04-29 11:19:00-04:00\", 37.9234, 37.925, 37.905, 37.905, 18203.0, 198, 37.915986], [\"2024-04-29 11:20:00-04:00\", 37.905, 37.93, 37.905, 37.915, 40487.0, 256, 37.916824], [\"2024-04-29 11:21:00-04:00\", 37.915, 37.93, 37.91, 37.925, 45564.0, 174, 37.914521], [\"2024-04-29 11:22:00-04:00\", 37.92, 37.925, 37.88, 37.88, 93417.0, 432, 37.897437], [\"2024-04-29 11:23:00-04:00\", 37.888, 37.89, 37.87, 37.87, 40060.0, 311, 37.881162], [\"2024-04-29 11:24:00-04:00\", 37.87, 37.88, 37.87, 37.87, 50023.0, 284, 37.873388], [\"2024-04-29 11:25:00-04:00\", 37.87, 37.88, 37.86, 37.875, 67954.0, 366, 37.870395], [\"2024-04-29 11:26:00-04:00\", 37.87, 37.89, 37.87, 37.88, 36273.0, 257, 37.877729], [\"2024-04-29 11:27:00-04:00\", 37.885, 37.9, 37.88, 37.9, 47937.0, 276, 37.88533], [\"2024-04-29 11:28:00-04:00\", 37.9, 37.9, 37.885, 37.895, 38289.0, 208, 37.891136], [\"2024-04-29 11:29:00-04:00\", 37.895, 37.91, 37.8931, 37.8986, 78514.0, 417, 37.899906], [\"2024-04-29 11:30:00-04:00\", 37.895, 37.895, 37.88, 37.8862, 42365.0, 189, 37.885589], [\"2024-04-29 11:31:00-04:00\", 37.88, 37.885, 37.875, 37.88, 28995.0, 204, 37.880838], [\"2024-04-29 11:32:00-04:00\", 37.88, 37.91, 37.875, 37.905, 54015.0, 279, 37.891465], [\"2024-04-29 11:33:00-04:00\", 37.91, 37.91, 37.88, 37.885, 42232.0, 232, 37.895481], [\"2024-04-29 11:34:00-04:00\", 37.885, 37.8899, 37.875, 37.875, 16777.0, 145, 37.882283], [\"2024-04-29 11:35:00-04:00\", 37.875, 37.88, 37.865, 37.8763, 43652.0, 294, 37.870979], [\"2024-04-29 11:36:00-04:00\", 37.87, 37.9, 37.8648, 37.89, 49836.0, 327, 37.881413], [\"2024-04-29 11:37:00-04:00\", 37.9, 37.9, 37.885, 37.895, 16452.0, 138, 37.891938], [\"2024-04-29 11:38:00-04:00\", 37.8981, 37.9, 37.8801, 37.895, 17279.0, 180, 37.890568], [\"2024-04-29 11:39:00-04:00\", 37.8979, 37.9, 37.88, 37.88, 16837.0, 165, 37.892201], [\"2024-04-29 11:40:00-04:00\", 37.89, 37.89, 37.845, 37.8497, 47486.0, 345, 37.859607], [\"2024-04-29 11:41:00-04:00\", 37.85, 37.8599, 37.84, 37.8531, 16083.0, 137, 37.848905], [\"2024-04-29 11:42:00-04:00\", 37.86, 37.87, 37.85, 37.8601, 17527.0, 156, 37.865999], [\"2024-04-29 11:43:00-04:00\", 37.87, 37.87, 37.855, 37.855, 15116.0, 136, 37.862759], [\"2024-04-29 11:44:00-04:00\", 37.855, 37.856, 37.84, 37.845, 15741.0, 128, 37.846559], [\"2024-04-29 11:45:00-04:00\", 37.84, 37.8499, 37.83, 37.8499, 20396.0, 165, 37.838759], [\"2024-04-29 11:46:00-04:00\", 37.8445, 37.85, 37.8415, 37.845, 20592.0, 88, 37.847153], [\"2024-04-29 11:47:00-04:00\", 37.85, 37.85, 37.84, 37.85, 16901.0, 87, 37.847545], [\"2024-04-29 11:48:00-04:00\", 37.845, 37.85, 37.84, 37.84, 12092.0, 113, 37.844897], [\"2024-04-29 11:49:00-04:00\", 37.845, 37.85, 37.84, 37.845, 13361.0, 96, 37.846952], [\"2024-04-29 11:50:00-04:00\", 37.845, 37.86, 37.8401, 37.86, 31413.0, 229, 37.85013], [\"2024-04-29 11:51:00-04:00\", 37.855, 37.86, 37.85, 37.855, 11114.0, 99, 37.85545], [\"2024-04-29 11:52:00-04:00\", 37.85, 37.85, 37.84, 37.84, 28741.0, 228, 37.845198], [\"2024-04-29 11:53:00-04:00\", 37.845, 37.85, 37.83, 37.835, 21487.0, 147, 37.842892], [\"2024-04-29 11:54:00-04:00\", 37.835, 37.84, 37.825, 37.825, 28859.0, 271, 37.83271], [\"2024-04-29 11:55:00-04:00\", 37.825, 37.83, 37.82, 37.83, 18448.0, 170, 37.825254], [\"2024-04-29 11:56:00-04:00\", 37.825, 37.83, 37.81, 37.815, 77073.0, 362, 37.826291], [\"2024-04-29 11:57:00-04:00\", 37.815, 37.82, 37.8, 37.805, 46052.0, 226, 37.80871], [\"2024-04-29 11:58:00-04:00\", 37.81, 37.83, 37.8, 37.83, 67045.0, 309, 37.816387], [\"2024-04-29 11:59:00-04:00\", 37.83, 37.83, 37.8, 37.808, 118067.0, 473, 37.824424], [\"2024-04-29 12:00:00-04:00\", 37.8, 37.8, 37.785, 37.7961, 56556.0, 267, 37.794772], [\"2024-04-29 12:01:00-04:00\", 37.8, 37.8, 37.79, 37.7967, 15057.0, 109, 37.794683], [\"2024-04-29 12:02:00-04:00\", 37.795, 37.8, 37.784, 37.795, 83188.0, 362, 37.793817], [\"2024-04-29 12:03:00-04:00\", 37.7967, 37.8, 37.79, 37.79, 135518.0, 477, 37.797885], [\"2024-04-29 12:04:00-04:00\", 37.79, 37.8, 37.78, 37.8, 139890.0, 705, 37.798061], [\"2024-04-29 12:05:00-04:00\", 37.8, 37.8, 37.79, 37.7952, 23414.0, 131, 37.795694], [\"2024-04-29 12:06:00-04:00\", 37.795, 37.8, 37.79, 37.8, 19680.0, 144, 37.796992], [\"2024-04-29 12:07:00-04:00\", 37.7999, 37.8, 37.785, 37.7973, 49385.0, 284, 37.79323], [\"2024-04-29 12:08:00-04:00\", 37.795, 37.8, 37.7901, 37.7975, 6660.0, 86, 37.795626], [\"2024-04-29 12:09:00-04:00\", 37.7981, 37.8, 37.795, 37.795, 52212.0, 330, 37.798811], [\"2024-04-29 12:10:00-04:00\", 37.795, 37.8, 37.79, 37.79, 8552.0, 91, 37.794765], [\"2024-04-29 12:11:00-04:00\", 37.795, 37.8, 37.79, 37.795, 7977.0, 105, 37.797948], [\"2024-04-29 12:12:00-04:00\", 37.8, 37.8, 37.795, 37.795, 15671.0, 142, 37.798191], [\"2024-04-29 12:13:00-04:00\", 37.79, 37.8, 37.785, 37.785, 41986.0, 236, 37.791271], [\"2024-04-29 12:14:00-04:00\", 37.785, 37.8, 37.78, 37.795, 21919.0, 184, 37.789436], [\"2024-04-29 12:15:00-04:00\", 37.8, 37.8, 37.79, 37.8, 19962.0, 181, 37.798405], [\"2024-04-29 12:16:00-04:00\", 37.8, 37.8, 37.7912, 37.8, 13600.0, 85, 37.794409], [\"2024-04-29 12:17:00-04:00\", 37.795, 37.8, 37.79, 37.8, 6999.0, 85, 37.796789], [\"2024-04-29 12:18:00-04:00\", 37.795, 37.8, 37.78, 37.785, 34503.0, 192, 37.791461], [\"2024-04-29 12:19:00-04:00\", 37.785, 37.8, 37.785, 37.8, 19887.0, 191, 37.789856], [\"2024-04-29 12:20:00-04:00\", 37.7953, 37.8, 37.7901, 37.8, 3951.0, 62, 37.797189], [\"2024-04-29 12:21:00-04:00\", 37.7949, 37.8, 37.784, 37.79, 33568.0, 223, 37.790697], [\"2024-04-29 12:22:00-04:00\", 37.7962, 37.8, 37.79, 37.8, 14348.0, 91, 37.79171], [\"2024-04-29 12:23:00-04:00\", 37.79, 37.795, 37.79, 37.79, 4353.0, 74, 37.791697], [\"2024-04-29 12:24:00-04:00\", 37.79, 37.8, 37.7801, 37.785, 17498.0, 137, 37.78886], [\"2024-04-29 12:25:00-04:00\", 37.7899, 37.79, 37.77, 37.775, 14129.0, 142, 37.781012], [\"2024-04-29 12:26:00-04:00\", 37.7748, 37.78, 37.77, 37.78, 11322.0, 100, 37.774352], [\"2024-04-29 12:27:00-04:00\", 37.775, 37.78, 37.765, 37.775, 34725.0, 226, 37.77187], [\"2024-04-29 12:28:00-04:00\", 37.775, 37.78, 37.7724, 37.78, 4526.0, 77, 37.776036], [\"2024-04-29 12:29:00-04:00\", 37.78, 37.78, 37.76, 37.765, 33978.0, 232, 37.769412], [\"2024-04-29 12:30:00-04:00\", 37.765, 37.77, 37.75, 37.755, 74261.0, 276, 37.754594], [\"2024-04-29 12:31:00-04:00\", 37.755, 37.76, 37.75, 37.7535, 22462.0, 207, 37.755606], [\"2024-04-29 12:32:00-04:00\", 37.755, 37.78, 37.75, 37.775, 64747.0, 411, 37.767781], [\"2024-04-29 12:33:00-04:00\", 37.775, 37.79, 37.7701, 37.775, 27871.0, 224, 37.779393], [\"2024-04-29 12:34:00-04:00\", 37.7765, 37.79, 37.775, 37.78, 20470.0, 174, 37.781527], [\"2024-04-29 12:35:00-04:00\", 37.79, 37.8, 37.775, 37.7878, 59889.0, 346, 37.788869], [\"2024-04-29 12:36:00-04:00\", 37.784, 37.79, 37.78, 37.78, 10674.0, 88, 37.785214], [\"2024-04-29 12:37:00-04:00\", 37.785, 37.79, 37.78, 37.78, 17963.0, 101, 37.782875], [\"2024-04-29 12:38:00-04:00\", 37.78, 37.79, 37.78, 37.79, 20059.0, 108, 37.783163], [\"2024-04-29 12:39:00-04:00\", 37.785, 37.79, 37.78, 37.78, 28923.0, 136, 37.785041], [\"2024-04-29 12:40:00-04:00\", 37.785, 37.79, 37.7639, 37.77, 30766.0, 263, 37.774286], [\"2024-04-29 12:41:00-04:00\", 37.7671, 37.77, 37.755, 37.7552, 29717.0, 206, 37.764562], [\"2024-04-29 12:42:00-04:00\", 37.755, 37.78, 37.755, 37.7601, 67454.0, 349, 37.763336], [\"2024-04-29 12:43:00-04:00\", 37.76, 37.77, 37.76, 37.7669, 9203.0, 87, 37.765576], [\"2024-04-29 12:44:00-04:00\", 37.7601, 37.77, 37.75, 37.75, 27800.0, 170, 37.759318], [\"2024-04-29 12:45:00-04:00\", 37.76, 37.7674, 37.75, 37.76, 37744.0, 212, 37.756593], [\"2024-04-29 12:46:00-04:00\", 37.76, 37.77, 37.76, 37.76, 16297.0, 122, 37.763576], [\"2024-04-29 12:47:00-04:00\", 37.76, 37.77, 37.73, 37.735, 58832.0, 353, 37.749287], [\"2024-04-29 12:48:00-04:00\", 37.735, 37.74, 37.72, 37.74, 48529.0, 259, 37.731007], [\"2024-04-29 12:49:00-04:00\", 37.73, 37.74, 37.73, 37.735, 20942.0, 165, 37.734934], [\"2024-04-29 12:50:00-04:00\", 37.735, 37.74, 37.73, 37.74, 9022.0, 105, 37.737628], [\"2024-04-29 12:51:00-04:00\", 37.7399, 37.74, 37.7325, 37.735, 8733.0, 88, 37.737378], [\"2024-04-29 12:52:00-04:00\", 37.735, 37.74, 37.72, 37.7201, 54037.0, 250, 37.730258], [\"2024-04-29 12:53:00-04:00\", 37.72, 37.73, 37.71, 37.7201, 48058.0, 309, 37.718569], [\"2024-04-29 12:54:00-04:00\", 37.72, 37.726, 37.7148, 37.7169, 15693.0, 122, 37.718793], [\"2024-04-29 12:55:00-04:00\", 37.715, 37.72, 37.71, 37.71, 12567.0, 79, 37.716589], [\"2024-04-29 12:56:00-04:00\", 37.7172, 37.7299, 37.71, 37.715, 59758.0, 317, 37.718152], [\"2024-04-29 12:57:00-04:00\", 37.72, 37.72, 37.7125, 37.715, 5854.0, 87, 37.716864], [\"2024-04-29 12:58:00-04:00\", 37.72, 37.7299, 37.715, 37.725, 23945.0, 195, 37.721166], [\"2024-04-29 12:59:00-04:00\", 37.726, 37.73, 37.71, 37.715, 22763.0, 150, 37.718509], [\"2024-04-29 13:00:00-04:00\", 37.715, 37.72, 37.71, 37.7101, 28926.0, 153, 37.712085], [\"2024-04-29 13:01:00-04:00\", 37.715, 37.72, 37.71, 37.715, 30585.0, 238, 37.712136], [\"2024-04-29 13:02:00-04:00\", 37.72, 37.73, 37.715, 37.725, 21061.0, 195, 37.721867], [\"2024-04-29 13:03:00-04:00\", 37.73, 37.74, 37.725, 37.725, 69252.0, 381, 37.730401], [\"2024-04-29 13:04:00-04:00\", 37.725, 37.75, 37.725, 37.7499, 24167.0, 174, 37.739236], [\"2024-04-29 13:05:00-04:00\", 37.7449, 37.75, 37.73, 37.7301, 19885.0, 165, 37.738958], [\"2024-04-29 13:06:00-04:00\", 37.73, 37.74, 37.72, 37.7292, 16205.0, 135, 37.728585], [\"2024-04-29 13:07:00-04:00\", 37.729, 37.73, 37.7201, 37.7284, 15217.0, 109, 37.724525], [\"2024-04-29 13:08:00-04:00\", 37.7237, 37.74, 37.7225, 37.74, 16035.0, 150, 37.730921], [\"2024-04-29 13:09:00-04:00\", 37.734, 37.75, 37.734, 37.745, 53041.0, 258, 37.74032], [\"2024-04-29 13:10:00-04:00\", 37.7401, 37.75, 37.73, 37.73, 15123.0, 130, 37.740884], [\"2024-04-29 13:11:00-04:00\", 37.735, 37.74, 37.73, 37.7303, 49874.0, 150, 37.731287], [\"2024-04-29 13:12:00-04:00\", 37.74, 37.74, 37.73, 37.74, 14122.0, 139, 37.736556], [\"2024-04-29 13:13:00-04:00\", 37.74, 37.74, 37.73, 37.735, 13825.0, 112, 37.734818], [\"2024-04-29 13:14:00-04:00\", 37.735, 37.735, 37.71, 37.7149, 53262.0, 320, 37.72294], [\"2024-04-29 13:15:00-04:00\", 37.71, 37.72, 37.705, 37.71, 48999.0, 293, 37.7127], [\"2024-04-29 13:16:00-04:00\", 37.7195, 37.72, 37.71, 37.7174, 6357.0, 90, 37.71393], [\"2024-04-29 13:17:00-04:00\", 37.7177, 37.72, 37.704, 37.715, 34024.0, 240, 37.711641], [\"2024-04-29 13:18:00-04:00\", 37.715, 37.73, 37.715, 37.725, 20246.0, 154, 37.721176], [\"2024-04-29 13:19:00-04:00\", 37.724, 37.73, 37.71, 37.725, 34616.0, 220, 37.71968], [\"2024-04-29 13:20:00-04:00\", 37.725, 37.74, 37.725, 37.7383, 18452.0, 147, 37.730852], [\"2024-04-29 13:21:00-04:00\", 37.74, 37.75, 37.735, 37.7497, 29115.0, 163, 37.744402], [\"2024-04-29 13:22:00-04:00\", 37.75, 37.75, 37.74, 37.7403, 34171.0, 134, 37.742747], [\"2024-04-29 13:23:00-04:00\", 37.74, 37.7498, 37.74, 37.7423, 15956.0, 109, 37.742653], [\"2024-04-29 13:24:00-04:00\", 37.7433, 37.7484, 37.74, 37.745, 10157.0, 98, 37.742085], [\"2024-04-29 13:25:00-04:00\", 37.745, 37.75, 37.72, 37.725, 36631.0, 251, 37.737377], [\"2024-04-29 13:26:00-04:00\", 37.725, 37.75, 37.725, 37.74, 33061.0, 220, 37.732818], [\"2024-04-29 13:27:00-04:00\", 37.745, 37.75, 37.74, 37.7468, 15703.0, 93, 37.746356], [\"2024-04-29 13:28:00-04:00\", 37.75, 37.76, 37.74, 37.75, 35577.0, 246, 37.750481], [\"2024-04-29 13:29:00-04:00\", 37.745, 37.76, 37.74, 37.7582, 24346.0, 217, 37.747789], [\"2024-04-29 13:30:00-04:00\", 37.76, 37.76, 37.74, 37.7499, 30543.0, 199, 37.75095], [\"2024-04-29 13:31:00-04:00\", 37.745, 37.76, 37.74, 37.7564, 16975.0, 147, 37.748728], [\"2024-04-29 13:32:00-04:00\", 37.755, 37.77, 37.755, 37.765, 20090.0, 207, 37.762275], [\"2024-04-29 13:33:00-04:00\", 37.765, 37.77, 37.76, 37.7658, 8753.0, 110, 37.764164], [\"2024-04-29 13:34:00-04:00\", 37.765, 37.767, 37.76, 37.765, 10425.0, 150, 37.763098], [\"2024-04-29 13:35:00-04:00\", 37.765, 37.79, 37.765, 37.785, 84523.0, 327, 37.774276], [\"2024-04-29 13:36:00-04:00\", 37.79, 37.8, 37.7814, 37.7898, 49343.0, 250, 37.78959], [\"2024-04-29 13:37:00-04:00\", 37.79, 37.8, 37.784, 37.784, 31237.0, 210, 37.789695], [\"2024-04-29 13:38:00-04:00\", 37.7868, 37.7868, 37.775, 37.775, 25595.0, 135, 37.779846], [\"2024-04-29 13:39:00-04:00\", 37.775, 37.78, 37.77, 37.774, 22320.0, 167, 37.772207], [\"2024-04-29 13:40:00-04:00\", 37.775, 37.78, 37.77, 37.775, 4573.0, 90, 37.775953], [\"2024-04-29 13:41:00-04:00\", 37.775, 37.8, 37.77, 37.795, 29999.0, 200, 37.783715], [\"2024-04-29 13:42:00-04:00\", 37.7934, 37.7999, 37.7809, 37.79, 70394.0, 370, 37.790744], [\"2024-04-29 13:43:00-04:00\", 37.785, 37.8, 37.785, 37.791, 32995.0, 183, 37.791059], [\"2024-04-29 13:44:00-04:00\", 37.79, 37.7942, 37.775, 37.775, 37162.0, 237, 37.784437], [\"2024-04-29 13:45:00-04:00\", 37.78, 37.79, 37.774, 37.785, 21369.0, 150, 37.784566], [\"2024-04-29 13:46:00-04:00\", 37.7861, 37.79, 37.765, 37.7673, 66490.0, 297, 37.777711], [\"2024-04-29 13:47:00-04:00\", 37.76, 37.77, 37.745, 37.765, 350096.0, 425, 37.759324], [\"2024-04-29 13:48:00-04:00\", 37.76, 37.77, 37.754, 37.764, 42833.0, 249, 37.760006], [\"2024-04-29 13:49:00-04:00\", 37.76, 37.7674, 37.76, 37.7674, 16940.0, 148, 37.761158], [\"2024-04-29 13:50:00-04:00\", 37.76, 37.77, 37.76, 37.7671, 21313.0, 94, 37.761589], [\"2024-04-29 13:51:00-04:00\", 37.76, 37.78, 37.76, 37.775, 39980.0, 243, 37.771691], [\"2024-04-29 13:52:00-04:00\", 37.775, 37.78, 37.76, 37.7666, 42959.0, 225, 37.768421], [\"2024-04-29 13:53:00-04:00\", 37.7676, 37.7676, 37.75, 37.7548, 24088.0, 205, 37.757253], [\"2024-04-29 13:54:00-04:00\", 37.755, 37.77, 37.754, 37.765, 29939.0, 243, 37.761317], [\"2024-04-29 13:55:00-04:00\", 37.765, 37.765, 37.74, 37.75, 56440.0, 335, 37.753246], [\"2024-04-29 13:56:00-04:00\", 37.75, 37.77, 37.745, 37.76, 64681.0, 380, 37.755185], [\"2024-04-29 13:57:00-04:00\", 37.76, 37.76, 37.73, 37.731, 44343.0, 224, 37.741195], [\"2024-04-29 13:58:00-04:00\", 37.73, 37.74, 37.73, 37.73, 17926.0, 166, 37.732049], [\"2024-04-29 13:59:00-04:00\", 37.735, 37.735, 37.7, 37.705, 47183.0, 389, 37.713095], [\"2024-04-29 14:00:00-04:00\", 37.705, 37.72, 37.69, 37.715, 134625.0, 488, 37.701143], [\"2024-04-29 14:01:00-04:00\", 37.72, 37.73, 37.71, 37.725, 53180.0, 218, 37.718154], [\"2024-04-29 14:02:00-04:00\", 37.72, 37.73, 37.715, 37.725, 32903.0, 249, 37.722038], [\"2024-04-29 14:03:00-04:00\", 37.72, 37.74, 37.72, 37.725, 28196.0, 155, 37.728805], [\"2024-04-29 14:04:00-04:00\", 37.725, 37.73, 37.72, 37.725, 11231.0, 104, 37.7254], [\"2024-04-29 14:05:00-04:00\", 37.7288, 37.7288, 37.72, 37.725, 19274.0, 110, 37.723065], [\"2024-04-29 14:06:00-04:00\", 37.7267, 37.74, 37.725, 37.7344, 27815.0, 162, 37.734975], [\"2024-04-29 14:07:00-04:00\", 37.735, 37.75, 37.735, 37.745, 26354.0, 200, 37.743208], [\"2024-04-29 14:08:00-04:00\", 37.745, 37.75, 37.72, 37.7469, 309631.0, 377, 37.724926], [\"2024-04-29 14:09:00-04:00\", 37.745, 37.75, 37.74, 37.745, 11099.0, 101, 37.743342], [\"2024-04-29 14:10:00-04:00\", 37.75, 37.75, 37.7225, 37.7241, 46662.0, 274, 37.73414], [\"2024-04-29 14:11:00-04:00\", 37.7276, 37.73, 37.72, 37.725, 16969.0, 108, 37.722238], [\"2024-04-29 14:12:00-04:00\", 37.72, 37.74, 37.72, 37.735, 36066.0, 169, 37.730658], [\"2024-04-29 14:13:00-04:00\", 37.73, 37.76, 37.73, 37.755, 33716.0, 239, 37.746481], [\"2024-04-29 14:14:00-04:00\", 37.755, 37.76, 37.74, 37.75, 44196.0, 244, 37.750124], [\"2024-04-29 14:15:00-04:00\", 37.74, 37.75, 37.735, 37.7474, 26264.0, 178, 37.741416], [\"2024-04-29 14:16:00-04:00\", 37.745, 37.76, 37.745, 37.755, 37339.0, 267, 37.750196], [\"2024-04-29 14:17:00-04:00\", 37.75, 37.755, 37.73, 37.734, 28565.0, 255, 37.743532], [\"2024-04-29 14:18:00-04:00\", 37.74, 37.74, 37.73, 37.74, 36319.0, 165, 37.733403], [\"2024-04-29 14:19:00-04:00\", 37.735, 37.74, 37.72, 37.73, 61208.0, 282, 37.73203], [\"2024-04-29 14:20:00-04:00\", 37.74, 37.75, 37.73, 37.745, 34647.0, 204, 37.739131], [\"2024-04-29 14:21:00-04:00\", 37.745, 37.75, 37.74, 37.745, 11647.0, 102, 37.745613], [\"2024-04-29 14:22:00-04:00\", 37.745, 37.75, 37.72, 37.725, 52748.0, 305, 37.737441], [\"2024-04-29 14:23:00-04:00\", 37.72, 37.73, 37.72, 37.7268, 34795.0, 202, 37.723816], [\"2024-04-29 14:24:00-04:00\", 37.725, 37.73, 37.715, 37.72, 46719.0, 209, 37.720849], [\"2024-04-29 14:25:00-04:00\", 37.72, 37.74, 37.72, 37.72, 74603.0, 311, 37.727683], [\"2024-04-29 14:26:00-04:00\", 37.725, 37.73, 37.71, 37.71, 28496.0, 176, 37.716647], [\"2024-04-29 14:27:00-04:00\", 37.71, 37.72, 37.7, 37.705, 31141.0, 192, 37.71146], [\"2024-04-29 14:28:00-04:00\", 37.71, 37.72, 37.71, 37.71, 39582.0, 249, 37.712078], [\"2024-04-29 14:29:00-04:00\", 37.7151, 37.72, 37.71, 37.7138, 7069.0, 94, 37.712817], [\"2024-04-29 14:30:00-04:00\", 37.715, 37.715, 37.69, 37.695, 79325.0, 409, 37.700919], [\"2024-04-29 14:31:00-04:00\", 37.695, 37.7, 37.685, 37.6921, 58823.0, 397, 37.691206], [\"2024-04-29 14:32:00-04:00\", 37.69, 37.695, 37.62, 37.665, 116577.0, 641, 37.65831], [\"2024-04-29 14:33:00-04:00\", 37.6629, 37.6639, 37.64, 37.65, 45643.0, 249, 37.650183], [\"2024-04-29 14:34:00-04:00\", 37.645, 37.655, 37.63, 37.655, 60246.0, 304, 37.640527], [\"2024-04-29 14:35:00-04:00\", 37.655, 37.66, 37.6402, 37.65, 40670.0, 230, 37.653989], [\"2024-04-29 14:36:00-04:00\", 37.6577, 37.66, 37.64, 37.6476, 29921.0, 163, 37.648197], [\"2024-04-29 14:37:00-04:00\", 37.64, 37.66, 37.64, 37.6499, 37342.0, 241, 37.648523], [\"2024-04-29 14:38:00-04:00\", 37.64, 37.65, 37.62, 37.65, 323619.0, 494, 37.62456], [\"2024-04-29 14:39:00-04:00\", 37.645, 37.66, 37.645, 37.655, 36212.0, 232, 37.654006], [\"2024-04-29 14:40:00-04:00\", 37.66, 37.67, 37.66, 37.665, 34988.0, 225, 37.664119], [\"2024-04-29 14:41:00-04:00\", 37.6601, 37.68, 37.6601, 37.6792, 22681.0, 148, 37.672462], [\"2024-04-29 14:42:00-04:00\", 37.68, 37.68, 37.67, 37.675, 23164.0, 149, 37.677001], [\"2024-04-29 14:43:00-04:00\", 37.67, 37.69, 37.67, 37.685, 18411.0, 134, 37.680058], [\"2024-04-29 14:44:00-04:00\", 37.685, 37.695, 37.68, 37.6801, 27520.0, 196, 37.687669], [\"2024-04-29 14:45:00-04:00\", 37.685, 37.69, 37.67, 37.685, 31261.0, 223, 37.680004], [\"2024-04-29 14:46:00-04:00\", 37.6852, 37.69, 37.68, 37.6863, 9510.0, 82, 37.685214], [\"2024-04-29 14:47:00-04:00\", 37.69, 37.69, 37.68, 37.69, 70112.0, 167, 37.684653], [\"2024-04-29 14:48:00-04:00\", 37.685, 37.695, 37.68, 37.685, 36559.0, 196, 37.687895], [\"2024-04-29 14:49:00-04:00\", 37.685, 37.69, 37.685, 37.69, 10775.0, 85, 37.687073], [\"2024-04-29 14:50:00-04:00\", 37.69, 37.71, 37.68, 37.69, 85458.0, 451, 37.695328], [\"2024-04-29 14:51:00-04:00\", 37.685, 37.69, 37.6601, 37.67, 42005.0, 270, 37.676971], [\"2024-04-29 14:52:00-04:00\", 37.665, 37.68, 37.66, 37.68, 39172.0, 243, 37.66974], [\"2024-04-29 14:53:00-04:00\", 37.675, 37.68, 37.66, 37.665, 47271.0, 189, 37.665835], [\"2024-04-29 14:54:00-04:00\", 37.66, 37.665, 37.65, 37.66, 53073.0, 354, 37.658998], [\"2024-04-29 14:55:00-04:00\", 37.65, 37.67, 37.65, 37.665, 17599.0, 145, 37.658493], [\"2024-04-29 14:56:00-04:00\", 37.665, 37.67, 37.66, 37.66, 30613.0, 232, 37.661678], [\"2024-04-29 14:57:00-04:00\", 37.66, 37.6699, 37.64, 37.6401, 29909.0, 263, 37.656192], [\"2024-04-29 14:58:00-04:00\", 37.6442, 37.66, 37.635, 37.635, 54235.0, 380, 37.647351], [\"2024-04-29 14:59:00-04:00\", 37.64, 37.64, 37.62, 37.625, 29082.0, 244, 37.627622], [\"2024-04-29 15:00:00-04:00\", 37.62, 37.62, 37.56, 37.575, 159376.0, 618, 37.594006], [\"2024-04-29 15:01:00-04:00\", 37.57, 37.58, 37.55, 37.565, 78433.0, 437, 37.566987], [\"2024-04-29 15:02:00-04:00\", 37.565, 37.57, 37.53, 37.5382, 109489.0, 495, 37.552093], [\"2024-04-29 15:03:00-04:00\", 37.54, 37.54, 37.47, 37.5, 153972.0, 638, 37.499628], [\"2024-04-29 15:04:00-04:00\", 37.505, 37.52, 37.49, 37.495, 129055.0, 651, 37.504393], [\"2024-04-29 15:05:00-04:00\", 37.5, 37.5064, 37.48, 37.49, 105200.0, 507, 37.496434], [\"2024-04-29 15:06:00-04:00\", 37.5, 37.5, 37.45, 37.46, 129056.0, 726, 37.468767], [\"2024-04-29 15:07:00-04:00\", 37.455, 37.49, 37.455, 37.482, 89880.0, 470, 37.46874], [\"2024-04-29 15:08:00-04:00\", 37.49, 37.51, 37.48, 37.505, 76309.0, 434, 37.493949], [\"2024-04-29 15:09:00-04:00\", 37.5, 37.51, 37.49, 37.505, 79373.0, 359, 37.498835], [\"2024-04-29 15:10:00-04:00\", 37.51, 37.52, 37.504, 37.52, 141810.0, 521, 37.51546], [\"2024-04-29 15:11:00-04:00\", 37.51, 37.515, 37.45, 37.5, 318509.0, 404, 37.461928], [\"2024-04-29 15:12:00-04:00\", 37.5, 37.5, 37.48, 37.49, 63621.0, 381, 37.492527], [\"2024-04-29 15:13:00-04:00\", 37.485, 37.49, 37.46, 37.46, 63996.0, 363, 37.476269], [\"2024-04-29 15:14:00-04:00\", 37.47, 37.5, 37.46, 37.495, 48641.0, 228, 37.481483], [\"2024-04-29 15:15:00-04:00\", 37.5, 37.51, 37.49, 37.5, 63204.0, 352, 37.498], [\"2024-04-29 15:16:00-04:00\", 37.5, 37.52, 37.49, 37.52, 44451.0, 215, 37.502696], [\"2024-04-29 15:17:00-04:00\", 37.5191, 37.525, 37.51, 37.5162, 66855.0, 306, 37.513976], [\"2024-04-29 15:18:00-04:00\", 37.515, 37.525, 37.505, 37.525, 46777.0, 275, 37.512709], [\"2024-04-29 15:19:00-04:00\", 37.52, 37.53, 37.52, 37.53, 42359.0, 190, 37.52555], [\"2024-04-29 15:20:00-04:00\", 37.53, 37.55, 37.52, 37.545, 68592.0, 365, 37.540458], [\"2024-04-29 15:21:00-04:00\", 37.54, 37.56, 37.54, 37.555, 58275.0, 352, 37.549162], [\"2024-04-29 15:22:00-04:00\", 37.55, 37.56, 37.54, 37.545, 25519.0, 228, 37.548354], [\"2024-04-29 15:23:00-04:00\", 37.545, 37.55, 37.53, 37.53, 52202.0, 285, 37.538971], [\"2024-04-29 15:24:00-04:00\", 37.54, 37.54, 37.52, 37.52, 32129.0, 211, 37.525133], [\"2024-04-29 15:25:00-04:00\", 37.525, 37.535, 37.51, 37.51, 97663.0, 416, 37.526922], [\"2024-04-29 15:26:00-04:00\", 37.51, 37.52, 37.5, 37.5, 48184.0, 248, 37.507147], [\"2024-04-29 15:27:00-04:00\", 37.51, 37.52, 37.49, 37.5101, 71175.0, 344, 37.504765], [\"2024-04-29 15:28:00-04:00\", 37.51, 37.5101, 37.48, 37.485, 51149.0, 319, 37.494514], [\"2024-04-29 15:29:00-04:00\", 37.4843, 37.51, 37.48, 37.505, 103305.0, 375, 37.499573], [\"2024-04-29 15:30:00-04:00\", 37.505, 37.52, 37.49, 37.515, 91816.0, 455, 37.501771], [\"2024-04-29 15:31:00-04:00\", 37.51, 37.53, 37.51, 37.515, 45302.0, 246, 37.51897], [\"2024-04-29 15:32:00-04:00\", 37.52, 37.53, 37.5137, 37.525, 65654.0, 278, 37.520004], [\"2024-04-29 15:33:00-04:00\", 37.5262, 37.54, 37.52, 37.535, 41497.0, 308, 37.530077], [\"2024-04-29 15:34:00-04:00\", 37.535, 37.55, 37.525, 37.545, 66520.0, 341, 37.534122], [\"2024-04-29 15:35:00-04:00\", 37.545, 37.55, 37.52, 37.5283, 124492.0, 502, 37.534561], [\"2024-04-29 15:36:00-04:00\", 37.525, 37.525, 37.505, 37.525, 94009.0, 450, 37.516522], [\"2024-04-29 15:37:00-04:00\", 37.525, 37.55, 37.525, 37.545, 33478.0, 203, 37.539105], [\"2024-04-29 15:38:00-04:00\", 37.545, 37.56, 37.54, 37.5401, 101343.0, 473, 37.549504], [\"2024-04-29 15:39:00-04:00\", 37.545, 37.55, 37.52, 37.52, 65258.0, 384, 37.536109], [\"2024-04-29 15:40:00-04:00\", 37.525, 37.53, 37.5, 37.525, 75802.0, 412, 37.516641], [\"2024-04-29 15:41:00-04:00\", 37.525, 37.54, 37.5214, 37.535, 55601.0, 300, 37.527662], [\"2024-04-29 15:42:00-04:00\", 37.5375, 37.545, 37.5, 37.5, 109036.0, 593, 37.525753], [\"2024-04-29 15:43:00-04:00\", 37.505, 37.51, 37.49, 37.505, 87371.0, 439, 37.504209], [\"2024-04-29 15:44:00-04:00\", 37.505, 37.53, 37.5, 37.53, 200251.0, 922, 37.51707], [\"2024-04-29 15:45:00-04:00\", 37.525, 37.53, 37.48, 37.48, 111648.0, 576, 37.5078], [\"2024-04-29 15:46:00-04:00\", 37.485, 37.5, 37.48, 37.5, 93925.0, 424, 37.489056], [\"2024-04-29 15:47:00-04:00\", 37.5, 37.52, 37.49, 37.52, 56568.0, 447, 37.504501], [\"2024-04-29 15:48:00-04:00\", 37.515, 37.52, 37.5, 37.505, 133526.0, 562, 37.512926], [\"2024-04-29 15:49:00-04:00\", 37.5, 37.505, 37.47, 37.475, 149060.0, 705, 37.48553], [\"2024-04-29 15:50:00-04:00\", 37.47, 37.5, 37.47, 37.49, 258715.0, 1001, 37.485585], [\"2024-04-29 15:51:00-04:00\", 37.495, 37.5, 37.47, 37.485, 161292.0, 738, 37.483552], [\"2024-04-29 15:52:00-04:00\", 37.485, 37.5, 37.47, 37.495, 114314.0, 623, 37.486211], [\"2024-04-29 15:53:00-04:00\", 37.495, 37.5, 37.48, 37.495, 191636.0, 783, 37.489123], [\"2024-04-29 15:54:00-04:00\", 37.495, 37.52, 37.49, 37.515, 147194.0, 830, 37.506651], [\"2024-04-29 15:55:00-04:00\", 37.515, 37.55, 37.515, 37.525, 408496.0, 1313, 37.529308], [\"2024-04-29 15:56:00-04:00\", 37.525, 37.53, 37.51, 37.525, 214784.0, 913, 37.518646], [\"2024-04-29 15:57:00-04:00\", 37.525, 37.53, 37.51, 37.51, 165521.0, 862, 37.516656], [\"2024-04-29 15:58:00-04:00\", 37.514, 37.53, 37.51, 37.51, 378477.0, 1504, 37.519251], [\"2024-04-29 15:59:00-04:00\", 37.516, 37.56, 37.49, 37.56, 726992.0, 2516, 37.5223], [\"2024-04-29 16:00:00-04:00\", 37.55, 37.6, 37.55, 37.6, 3310067.0, 81, 37.550077], [\"2024-04-30 09:30:00-04:00\", 37.345, 37.52, 37.345, 37.4445, 522293.0, 2233, 37.406976], [\"2024-04-30 09:31:00-04:00\", 37.44, 37.515, 37.43, 37.5, 59784.0, 559, 37.48722], [\"2024-04-30 09:32:00-04:00\", 37.5, 37.5, 37.4108, 37.425, 90734.0, 758, 37.452895], [\"2024-04-30 09:33:00-04:00\", 37.425, 37.45, 37.3598, 37.385, 121649.0, 739, 37.395878], [\"2024-04-30 09:34:00-04:00\", 37.38, 37.4099, 37.36, 37.405, 59713.0, 609, 37.383685], [\"2024-04-30 09:35:00-04:00\", 37.4, 37.41, 37.32, 37.325, 131614.0, 1103, 37.360383], [\"2024-04-30 09:36:00-04:00\", 37.3203, 37.43, 37.31, 37.425, 78648.0, 683, 37.376299], [\"2024-04-30 09:37:00-04:00\", 37.425, 37.56, 37.42, 37.56, 157488.0, 754, 37.511865], [\"2024-04-30 09:38:00-04:00\", 37.555, 37.57, 37.4702, 37.485, 112401.0, 713, 37.514981], [\"2024-04-30 09:39:00-04:00\", 37.48, 37.485, 37.42, 37.47, 96554.0, 797, 37.452058], [\"2024-04-30 09:40:00-04:00\", 37.47, 37.51, 37.46, 37.51, 46447.0, 407, 37.47818], [\"2024-04-30 09:41:00-04:00\", 37.5058, 37.5258, 37.495, 37.505, 33230.0, 290, 37.508823], [\"2024-04-30 09:42:00-04:00\", 37.51, 37.54, 37.475, 37.51, 67952.0, 538, 37.507182], [\"2024-04-30 09:43:00-04:00\", 37.51, 37.51, 37.47, 37.5, 36464.0, 202, 37.496729], [\"2024-04-30 09:44:00-04:00\", 37.505, 37.57, 37.505, 37.545, 47554.0, 346, 37.527517], [\"2024-04-30 09:45:00-04:00\", 37.545, 37.565, 37.525, 37.535, 60602.0, 399, 37.550865], [\"2024-04-30 09:46:00-04:00\", 37.535, 37.58, 37.505, 37.55, 92745.0, 583, 37.554407], [\"2024-04-30 09:47:00-04:00\", 37.56, 37.565, 37.5, 37.515, 30513.0, 465, 37.534782], [\"2024-04-30 09:48:00-04:00\", 37.515, 37.535, 37.505, 37.505, 39917.0, 505, 37.517688], [\"2024-04-30 09:49:00-04:00\", 37.505, 37.53, 37.485, 37.485, 52179.0, 652, 37.506447], [\"2024-04-30 09:50:00-04:00\", 37.485, 37.51, 37.47, 37.475, 71313.0, 829, 37.488913], [\"2024-04-30 09:51:00-04:00\", 37.47, 37.52, 37.465, 37.505, 62066.0, 764, 37.496888], [\"2024-04-30 09:52:00-04:00\", 37.505, 37.505, 37.46, 37.47, 56060.0, 689, 37.478488], [\"2024-04-30 09:53:00-04:00\", 37.46, 37.47, 37.445, 37.455, 47661.0, 596, 37.458783], [\"2024-04-30 09:54:00-04:00\", 37.45, 37.45, 37.41, 37.415, 39575.0, 593, 37.429838], [\"2024-04-30 09:55:00-04:00\", 37.415, 37.42, 37.38, 37.395, 58158.0, 527, 37.39804], [\"2024-04-30 09:56:00-04:00\", 37.4, 37.43, 37.4, 37.425, 43982.0, 574, 37.411506], [\"2024-04-30 09:57:00-04:00\", 37.425, 37.425, 37.4, 37.415, 46101.0, 686, 37.411218], [\"2024-04-30 09:58:00-04:00\", 37.415, 37.43, 37.415, 37.425, 42954.0, 564, 37.42488], [\"2024-04-30 09:59:00-04:00\", 37.42, 37.45, 37.42, 37.435, 137060.0, 1124, 37.437265], [\"2024-04-30 10:00:00-04:00\", 37.43, 37.47, 37.405, 37.41, 94047.0, 1038, 37.433484], [\"2024-04-30 10:01:00-04:00\", 37.41, 37.44, 37.405, 37.415, 41018.0, 763, 37.426176], [\"2024-04-30 10:02:00-04:00\", 37.4135, 37.44, 37.385, 37.405, 64973.0, 723, 37.408971], [\"2024-04-30 10:03:00-04:00\", 37.405, 37.42, 37.385, 37.415, 65179.0, 619, 37.405559], [\"2024-04-30 10:04:00-04:00\", 37.42, 37.44, 37.415, 37.425, 61932.0, 523, 37.426214], [\"2024-04-30 10:05:00-04:00\", 37.43, 37.45, 37.43, 37.445, 40242.0, 460, 37.442205], [\"2024-04-30 10:06:00-04:00\", 37.445, 37.48, 37.445, 37.47, 47561.0, 577, 37.462645], [\"2024-04-30 10:07:00-04:00\", 37.475, 37.495, 37.46, 37.48, 52290.0, 607, 37.480187], [\"2024-04-30 10:08:00-04:00\", 37.48, 37.49, 37.45, 37.465, 52744.0, 553, 37.467414], [\"2024-04-30 10:09:00-04:00\", 37.46, 37.47, 37.455, 37.46, 57026.0, 536, 37.462023], [\"2024-04-30 10:10:00-04:00\", 37.47, 37.48, 37.46, 37.47, 34189.0, 329, 37.472381], [\"2024-04-30 10:11:00-04:00\", 37.48, 37.49, 37.46, 37.465, 58646.0, 277, 37.471202], [\"2024-04-30 10:12:00-04:00\", 37.46, 37.48, 37.45, 37.47, 48546.0, 435, 37.466945], [\"2024-04-30 10:13:00-04:00\", 37.48, 37.49, 37.46, 37.485, 37891.0, 271, 37.474812], [\"2024-04-30 10:14:00-04:00\", 37.485, 37.49, 37.46, 37.47, 39470.0, 254, 37.472618], [\"2024-04-30 10:15:00-04:00\", 37.474, 37.49, 37.455, 37.485, 48029.0, 324, 37.473336], [\"2024-04-30 10:16:00-04:00\", 37.4822, 37.49, 37.465, 37.49, 33446.0, 231, 37.476625], [\"2024-04-30 10:17:00-04:00\", 37.485, 37.53, 37.485, 37.5299, 71300.0, 322, 37.509494], [\"2024-04-30 10:18:00-04:00\", 37.53, 37.57, 37.53, 37.565, 91116.0, 342, 37.548666], [\"2024-04-30 10:19:00-04:00\", 37.5615, 37.565, 37.53, 37.53, 28531.0, 269, 37.548263], [\"2024-04-30 10:20:00-04:00\", 37.54, 37.56, 37.54, 37.5501, 19908.0, 186, 37.553076], [\"2024-04-30 10:21:00-04:00\", 37.55, 37.56, 37.54, 37.545, 52602.0, 323, 37.550922], [\"2024-04-30 10:22:00-04:00\", 37.545, 37.56, 37.53, 37.535, 33630.0, 248, 37.549801], [\"2024-04-30 10:23:00-04:00\", 37.53, 37.56, 37.525, 37.55, 21690.0, 200, 37.54182], [\"2024-04-30 10:24:00-04:00\", 37.56, 37.6, 37.55, 37.555, 209476.0, 451, 37.565436], [\"2024-04-30 10:25:00-04:00\", 37.555, 37.56, 37.5401, 37.55, 21479.0, 186, 37.552138], [\"2024-04-30 10:26:00-04:00\", 37.545, 37.565, 37.5301, 37.535, 36845.0, 266, 37.554018], [\"2024-04-30 10:27:00-04:00\", 37.54, 37.55, 37.53, 37.5486, 32158.0, 203, 37.542761], [\"2024-04-30 10:28:00-04:00\", 37.545, 37.55, 37.53, 37.535, 47868.0, 316, 37.540222], [\"2024-04-30 10:29:00-04:00\", 37.5338, 37.55, 37.48, 37.485, 52599.0, 339, 37.518573], [\"2024-04-30 10:30:00-04:00\", 37.485, 37.5, 37.47, 37.48, 46629.0, 403, 37.486626], [\"2024-04-30 10:31:00-04:00\", 37.475, 37.49, 37.45, 37.452, 97227.0, 498, 37.464709], [\"2024-04-30 10:32:00-04:00\", 37.455, 37.475, 37.45, 37.455, 70109.0, 327, 37.459783], [\"2024-04-30 10:33:00-04:00\", 37.4591, 37.4671, 37.455, 37.46, 44994.0, 263, 37.460936], [\"2024-04-30 10:34:00-04:00\", 37.4699, 37.485, 37.46, 37.4801, 28172.0, 243, 37.471557], [\"2024-04-30 10:35:00-04:00\", 37.485, 37.485, 37.45, 37.48, 55412.0, 363, 37.465595], [\"2024-04-30 10:36:00-04:00\", 37.48, 37.505, 37.47, 37.505, 35841.0, 267, 37.488893], [\"2024-04-30 10:37:00-04:00\", 37.5, 37.51, 37.49, 37.51, 33637.0, 247, 37.498716], [\"2024-04-30 10:38:00-04:00\", 37.5085, 37.51, 37.49, 37.5, 21455.0, 139, 37.50051], [\"2024-04-30 10:39:00-04:00\", 37.495, 37.52, 37.495, 37.515, 21281.0, 178, 37.507576], [\"2024-04-30 10:40:00-04:00\", 37.5101, 37.54, 37.51, 37.535, 39089.0, 285, 37.528317], [\"2024-04-30 10:41:00-04:00\", 37.535, 37.565, 37.535, 37.5582, 22926.0, 201, 37.553575], [\"2024-04-30 10:42:00-04:00\", 37.555, 37.57, 37.545, 37.56, 41951.0, 218, 37.54307], [\"2024-04-30 10:43:00-04:00\", 37.555, 37.59, 37.555, 37.585, 29728.0, 237, 37.574407], [\"2024-04-30 10:44:00-04:00\", 37.585, 37.59, 37.57, 37.585, 28369.0, 236, 37.579705], [\"2024-04-30 10:45:00-04:00\", 37.585, 37.615, 37.585, 37.6101, 55963.0, 274, 37.60293], [\"2024-04-30 10:46:00-04:00\", 37.6101, 37.6471, 37.61, 37.6433, 36980.0, 225, 37.624299], [\"2024-04-30 10:47:00-04:00\", 37.645, 37.65, 37.63, 37.63, 55088.0, 206, 37.63944], [\"2024-04-30 10:48:00-04:00\", 37.63, 37.64, 37.62, 37.635, 62972.0, 397, 37.631064], [\"2024-04-30 10:49:00-04:00\", 37.6337, 37.64, 37.62, 37.63, 51335.0, 276, 37.627269], [\"2024-04-30 10:50:00-04:00\", 37.63, 37.65, 37.63, 37.6392, 102958.0, 272, 37.638439], [\"2024-04-30 10:51:00-04:00\", 37.635, 37.67, 37.635, 37.66, 66434.0, 409, 37.661402], [\"2024-04-30 10:52:00-04:00\", 37.6601, 37.67, 37.65, 37.66, 74311.0, 343, 37.658196], [\"2024-04-30 10:53:00-04:00\", 37.655, 37.66, 37.635, 37.6369, 35422.0, 338, 37.645984], [\"2024-04-30 10:54:00-04:00\", 37.63, 37.67, 37.63, 37.66, 59389.0, 316, 37.652754], [\"2024-04-30 10:55:00-04:00\", 37.655, 37.655, 37.635, 37.6477, 37657.0, 245, 37.64302], [\"2024-04-30 10:56:00-04:00\", 37.6499, 37.66, 37.625, 37.6399, 36497.0, 260, 37.640527], [\"2024-04-30 10:57:00-04:00\", 37.63, 37.64, 37.62, 37.63, 43700.0, 272, 37.625385], [\"2024-04-30 10:58:00-04:00\", 37.63, 37.66, 37.625, 37.655, 45146.0, 209, 37.646482], [\"2024-04-30 10:59:00-04:00\", 37.66, 37.66, 37.64, 37.64, 34229.0, 248, 37.649089], [\"2024-04-30 11:00:00-04:00\", 37.645, 37.65, 37.635, 37.64, 29208.0, 225, 37.641562], [\"2024-04-30 11:01:00-04:00\", 37.6401, 37.6401, 37.62, 37.63, 35569.0, 270, 37.631436], [\"2024-04-30 11:02:00-04:00\", 37.62, 37.6399, 37.615, 37.6399, 37276.0, 227, 37.62491], [\"2024-04-30 11:03:00-04:00\", 37.63, 37.65, 37.63, 37.64, 38001.0, 237, 37.638224], [\"2024-04-30 11:04:00-04:00\", 37.635, 37.65, 37.63, 37.645, 18393.0, 164, 37.638959], [\"2024-04-30 11:05:00-04:00\", 37.65, 37.65, 37.61, 37.61, 97878.0, 352, 37.639638], [\"2024-04-30 11:06:00-04:00\", 37.62, 37.62, 37.58, 37.58, 67519.0, 429, 37.602066], [\"2024-04-30 11:07:00-04:00\", 37.575, 37.59, 37.575, 37.5829, 33942.0, 155, 37.584], [\"2024-04-30 11:08:00-04:00\", 37.585, 37.6, 37.555, 37.555, 80201.0, 267, 37.58978], [\"2024-04-30 11:09:00-04:00\", 37.55, 37.56, 37.535, 37.5403, 42870.0, 269, 37.545881], [\"2024-04-30 11:10:00-04:00\", 37.545, 37.545, 37.5301, 37.535, 40938.0, 209, 37.543414], [\"2024-04-30 11:11:00-04:00\", 37.54, 37.56, 37.54, 37.545, 98147.0, 629, 37.548652], [\"2024-04-30 11:12:00-04:00\", 37.55, 37.56, 37.515, 37.52, 72525.0, 326, 37.542987], [\"2024-04-30 11:13:00-04:00\", 37.51, 37.53, 37.495, 37.515, 58343.0, 420, 37.512859], [\"2024-04-30 11:14:00-04:00\", 37.5177, 37.52, 37.5, 37.5186, 22427.0, 163, 37.510964], [\"2024-04-30 11:15:00-04:00\", 37.52, 37.52, 37.485, 37.4919, 43234.0, 357, 37.503839], [\"2024-04-30 11:16:00-04:00\", 37.495, 37.56, 37.495, 37.55, 36284.0, 270, 37.532714], [\"2024-04-30 11:17:00-04:00\", 37.555, 37.57, 37.545, 37.57, 23898.0, 240, 37.558473], [\"2024-04-30 11:18:00-04:00\", 37.56, 37.58, 37.545, 37.548, 37983.0, 279, 37.563403], [\"2024-04-30 11:19:00-04:00\", 37.5499, 37.55, 37.535, 37.535, 13994.0, 104, 37.544738], [\"2024-04-30 11:20:00-04:00\", 37.535, 37.54, 37.52, 37.54, 21708.0, 133, 37.53592], [\"2024-04-30 11:21:00-04:00\", 37.535, 37.54, 37.525, 37.54, 27270.0, 211, 37.534133], [\"2024-04-30 11:22:00-04:00\", 37.54, 37.54, 37.53, 37.535, 16410.0, 139, 37.536525], [\"2024-04-30 11:23:00-04:00\", 37.53, 37.54, 37.53, 37.54, 21008.0, 130, 37.537739], [\"2024-04-30 11:24:00-04:00\", 37.535, 37.55, 37.53, 37.55, 21329.0, 163, 37.543336], [\"2024-04-30 11:25:00-04:00\", 37.5483, 37.555, 37.54, 37.55, 80410.0, 459, 37.543573], [\"2024-04-30 11:26:00-04:00\", 37.56, 37.56, 37.55, 37.555, 12425.0, 71, 37.554856], [\"2024-04-30 11:27:00-04:00\", 37.55, 37.55, 37.515, 37.515, 53421.0, 384, 37.534533], [\"2024-04-30 11:28:00-04:00\", 37.515, 37.545, 37.51, 37.535, 40966.0, 303, 37.533408], [\"2024-04-30 11:29:00-04:00\", 37.535, 37.535, 37.5001, 37.52, 27017.0, 245, 37.518447], [\"2024-04-30 11:30:00-04:00\", 37.52, 37.52, 37.5, 37.5, 45938.0, 364, 37.509059], [\"2024-04-30 11:31:00-04:00\", 37.51, 37.51, 37.485, 37.49, 51100.0, 326, 37.496302], [\"2024-04-30 11:32:00-04:00\", 37.4901, 37.4901, 37.4714, 37.49, 37102.0, 208, 37.483942], [\"2024-04-30 11:33:00-04:00\", 37.49, 37.5, 37.485, 37.485, 32125.0, 201, 37.493995], [\"2024-04-30 11:34:00-04:00\", 37.4873, 37.5, 37.48, 37.495, 20666.0, 164, 37.489012], [\"2024-04-30 11:35:00-04:00\", 37.5, 37.52, 37.5, 37.515, 34721.0, 221, 37.513668], [\"2024-04-30 11:36:00-04:00\", 37.51, 37.51, 37.485, 37.4964, 28346.0, 239, 37.498579], [\"2024-04-30 11:37:00-04:00\", 37.495, 37.51, 37.49, 37.51, 17067.0, 133, 37.500488], [\"2024-04-30 11:38:00-04:00\", 37.5, 37.52, 37.5, 37.5199, 11533.0, 108, 37.510731], [\"2024-04-30 11:39:00-04:00\", 37.5199, 37.52, 37.4945, 37.495, 29172.0, 180, 37.507239], [\"2024-04-30 11:40:00-04:00\", 37.495, 37.5077, 37.49, 37.5, 19692.0, 197, 37.497945], [\"2024-04-30 11:41:00-04:00\", 37.4967, 37.505, 37.49, 37.5, 13943.0, 155, 37.497919], [\"2024-04-30 11:42:00-04:00\", 37.495, 37.5, 37.485, 37.495, 32736.0, 246, 37.491301], [\"2024-04-30 11:43:00-04:00\", 37.4901, 37.5, 37.48, 37.485, 17499.0, 132, 37.492694], [\"2024-04-30 11:44:00-04:00\", 37.485, 37.49, 37.47, 37.48, 26987.0, 200, 37.48375], [\"2024-04-30 11:45:00-04:00\", 37.475, 37.49, 37.4715, 37.49, 23074.0, 173, 37.480229], [\"2024-04-30 11:46:00-04:00\", 37.4899, 37.4899, 37.46, 37.465, 57319.0, 179, 37.471], [\"2024-04-30 11:47:00-04:00\", 37.47, 37.4799, 37.46, 37.47, 38621.0, 210, 37.465755], [\"2024-04-30 11:48:00-04:00\", 37.4737, 37.4778, 37.4501, 37.46, 45858.0, 228, 37.462433], [\"2024-04-30 11:49:00-04:00\", 37.46, 37.47, 37.45, 37.455, 28319.0, 167, 37.45902], [\"2024-04-30 11:50:00-04:00\", 37.455, 37.46, 37.45, 37.4569, 32661.0, 247, 37.456128], [\"2024-04-30 11:51:00-04:00\", 37.45, 37.45, 37.44, 37.45, 18039.0, 117, 37.447044], [\"2024-04-30 11:52:00-04:00\", 37.445, 37.45, 37.42, 37.445, 31491.0, 230, 37.436566], [\"2024-04-30 11:53:00-04:00\", 37.45, 37.46, 37.435, 37.435, 21110.0, 200, 37.447446], [\"2024-04-30 11:54:00-04:00\", 37.445, 37.46, 37.44, 37.455, 12747.0, 98, 37.448957], [\"2024-04-30 11:55:00-04:00\", 37.454, 37.48, 37.454, 37.47, 18907.0, 184, 37.467246], [\"2024-04-30 11:56:00-04:00\", 37.47, 37.5, 37.47, 37.4901, 32118.0, 181, 37.484502], [\"2024-04-30 11:57:00-04:00\", 37.4984, 37.51, 37.49, 37.495, 34970.0, 148, 37.497932], [\"2024-04-30 11:58:00-04:00\", 37.495, 37.51, 37.49, 37.495, 62972.0, 393, 37.498425], [\"2024-04-30 11:59:00-04:00\", 37.4901, 37.495, 37.46, 37.465, 36963.0, 206, 37.478433], [\"2024-04-30 12:00:00-04:00\", 37.4601, 37.47, 37.455, 37.47, 29862.0, 234, 37.461942], [\"2024-04-30 12:01:00-04:00\", 37.46, 37.47, 37.43, 37.45, 39731.0, 219, 37.442634], [\"2024-04-30 12:02:00-04:00\", 37.445, 37.45, 37.44, 37.45, 19145.0, 136, 37.44708], [\"2024-04-30 12:03:00-04:00\", 37.445, 37.45, 37.44, 37.4483, 13668.0, 97, 37.453483], [\"2024-04-30 12:04:00-04:00\", 37.45, 37.45, 37.43, 37.43, 17239.0, 145, 37.437899], [\"2024-04-30 12:05:00-04:00\", 37.4301, 37.44, 37.41, 37.415, 41816.0, 178, 37.422095], [\"2024-04-30 12:06:00-04:00\", 37.415, 37.44, 37.415, 37.43, 22265.0, 179, 37.426628], [\"2024-04-30 12:07:00-04:00\", 37.4285, 37.44, 37.415, 37.435, 34354.0, 217, 37.428402], [\"2024-04-30 12:08:00-04:00\", 37.4301, 37.44, 37.43, 37.435, 26276.0, 95, 37.436732], [\"2024-04-30 12:09:00-04:00\", 37.4346, 37.445, 37.43, 37.44, 23062.0, 173, 37.437375], [\"2024-04-30 12:10:00-04:00\", 37.435, 37.44, 37.42, 37.435, 23490.0, 155, 37.431815], [\"2024-04-30 12:11:00-04:00\", 37.44, 37.45, 37.435, 37.4475, 18953.0, 106, 37.44302], [\"2024-04-30 12:12:00-04:00\", 37.45, 37.45, 37.43, 37.43, 22511.0, 115, 37.436495], [\"2024-04-30 12:13:00-04:00\", 37.4367, 37.44, 37.43, 37.435, 16734.0, 109, 37.435186], [\"2024-04-30 12:14:00-04:00\", 37.43, 37.45, 37.43, 37.45, 18210.0, 135, 37.441154], [\"2024-04-30 12:15:00-04:00\", 37.44, 37.445, 37.42, 37.44, 31050.0, 244, 37.434499], [\"2024-04-30 12:16:00-04:00\", 37.43, 37.44, 37.42, 37.4281, 14469.0, 106, 37.431143], [\"2024-04-30 12:17:00-04:00\", 37.425, 37.43, 37.42, 37.42, 41618.0, 224, 37.428358], [\"2024-04-30 12:18:00-04:00\", 37.4271, 37.43, 37.41, 37.415, 23304.0, 119, 37.420951], [\"2024-04-30 12:19:00-04:00\", 37.415, 37.42, 37.415, 37.42, 4676.0, 55, 37.416854], [\"2024-04-30 12:20:00-04:00\", 37.4176, 37.43, 37.4101, 37.4295, 21026.0, 100, 37.422761], [\"2024-04-30 12:21:00-04:00\", 37.4288, 37.445, 37.42, 37.4379, 30479.0, 148, 37.432179], [\"2024-04-30 12:22:00-04:00\", 37.44, 37.45, 37.43, 37.4401, 24978.0, 147, 37.44215], [\"2024-04-30 12:23:00-04:00\", 37.445, 37.445, 37.43, 37.44, 25233.0, 139, 37.43732], [\"2024-04-30 12:24:00-04:00\", 37.435, 37.44, 37.425, 37.43, 30422.0, 155, 37.430643], [\"2024-04-30 12:25:00-04:00\", 37.425, 37.465, 37.425, 37.455, 87671.0, 443, 37.451362], [\"2024-04-30 12:26:00-04:00\", 37.455, 37.46, 37.445, 37.445, 8154.0, 123, 37.450774], [\"2024-04-30 12:27:00-04:00\", 37.44, 37.445, 37.42, 37.4322, 38340.0, 205, 37.432369], [\"2024-04-30 12:28:00-04:00\", 37.43, 37.44, 37.43, 37.44, 8084.0, 92, 37.432808], [\"2024-04-30 12:29:00-04:00\", 37.43, 37.43, 37.4, 37.41, 97977.0, 328, 37.42504], [\"2024-04-30 12:30:00-04:00\", 37.41, 37.415, 37.37, 37.3771, 42593.0, 271, 37.38953], [\"2024-04-30 12:31:00-04:00\", 37.38, 37.39, 37.36, 37.37, 57405.0, 225, 37.415966], [\"2024-04-30 12:32:00-04:00\", 37.365, 37.38, 37.34, 37.34, 45626.0, 235, 37.359025], [\"2024-04-30 12:33:00-04:00\", 37.335, 37.34, 37.31, 37.32, 29054.0, 198, 37.323281], [\"2024-04-30 12:34:00-04:00\", 37.315, 37.315, 37.28, 37.29, 27368.0, 278, 37.29585], [\"2024-04-30 12:35:00-04:00\", 37.285, 37.3282, 37.2801, 37.315, 24549.0, 213, 37.306357], [\"2024-04-30 12:36:00-04:00\", 37.315, 37.32, 37.3, 37.31, 13389.0, 117, 37.310131], [\"2024-04-30 12:37:00-04:00\", 37.315, 37.34, 37.315, 37.33, 33288.0, 157, 37.331163], [\"2024-04-30 12:38:00-04:00\", 37.325, 37.34, 37.3101, 37.3179, 31604.0, 208, 37.326522], [\"2024-04-30 12:39:00-04:00\", 37.3199, 37.33, 37.314, 37.325, 18552.0, 147, 37.320908], [\"2024-04-30 12:40:00-04:00\", 37.325, 37.33, 37.32, 37.3299, 6833.0, 98, 37.325006], [\"2024-04-30 12:41:00-04:00\", 37.33, 37.34, 37.32, 37.3201, 38599.0, 216, 37.329325], [\"2024-04-30 12:42:00-04:00\", 37.32, 37.325, 37.29, 37.2999, 27428.0, 199, 37.31081], [\"2024-04-30 12:43:00-04:00\", 37.295, 37.3, 37.285, 37.29, 25077.0, 140, 37.293003], [\"2024-05-02 14:55:00-04:00\", 36.94, 36.96, 36.94, 36.9501, 27827.0, 239, 36.951089], [\"2024-05-02 14:56:00-04:00\", 36.96, 36.96, 36.95, 36.96, 50254.0, 241, 36.955904], [\"2024-05-02 14:57:00-04:00\", 36.955, 36.965, 36.95, 36.9538, 288029.0, 314, 36.956331], [\"2024-05-02 14:58:00-04:00\", 36.96, 36.98, 36.94, 36.94, 123861.0, 480, 36.958733], [\"2024-05-02 14:59:00-04:00\", 36.94, 36.95, 36.91, 36.915, 160232.0, 464, 36.929057], [\"2024-05-02 15:00:00-04:00\", 36.9118, 36.92, 36.88, 36.89, 183583.0, 586, 36.896841], [\"2024-05-02 15:01:00-04:00\", 36.89, 36.905, 36.885, 36.89, 55882.0, 426, 36.89564], [\"2024-05-02 15:02:00-04:00\", 36.89, 36.89, 36.835, 36.84, 127440.0, 608, 36.851916], [\"2024-05-02 15:03:00-04:00\", 36.84, 36.85, 36.82, 36.825, 63065.0, 372, 36.836838], [\"2024-05-02 15:04:00-04:00\", 36.8201, 36.8528, 36.82, 36.8528, 107326.0, 420, 36.839494], [\"2024-05-02 15:05:00-04:00\", 36.86, 36.89, 36.85, 36.89, 74923.0, 320, 36.87184], [\"2024-05-02 15:06:00-04:00\", 36.89, 36.91, 36.88, 36.895, 124055.0, 657, 36.895889], [\"2024-05-02 15:07:00-04:00\", 36.895, 36.92, 36.89, 36.915, 77201.0, 305, 36.901237], [\"2024-05-02 15:08:00-04:00\", 36.92, 36.95, 36.91, 36.95, 52067.0, 312, 36.928956], [\"2024-05-02 15:09:00-04:00\", 36.94, 36.96, 36.94, 36.96, 95203.0, 438, 36.951465], [\"2024-05-02 15:10:00-04:00\", 36.955, 36.97, 36.9401, 36.955, 103390.0, 510, 36.954545], [\"2024-05-02 15:11:00-04:00\", 36.955, 36.96, 36.935, 36.935, 65762.0, 307, 36.951469], [\"2024-05-02 15:12:00-04:00\", 36.935, 36.94, 36.88, 36.89, 55112.0, 371, 36.915107], [\"2024-05-02 15:13:00-04:00\", 36.89, 36.93, 36.885, 36.9075, 49062.0, 283, 36.907734], [\"2024-05-02 15:14:00-04:00\", 36.91, 36.91, 36.88, 36.885, 49907.0, 211, 36.892218], [\"2024-05-02 15:15:00-04:00\", 36.885, 36.896, 36.875, 36.896, 47329.0, 284, 36.883631], [\"2024-05-02 15:16:00-04:00\", 36.895, 36.916, 36.885, 36.905, 91767.0, 367, 36.898908], [\"2024-05-02 15:17:00-04:00\", 36.91, 36.9246, 36.87, 36.875, 94067.0, 483, 36.900536], [\"2024-05-02 15:18:00-04:00\", 36.87, 36.88, 36.85, 36.87, 278244.0, 500, 36.842901], [\"2024-05-02 15:19:00-04:00\", 36.865, 36.885, 36.8601, 36.8743, 134132.0, 471, 36.872897], [\"2024-05-02 15:20:00-04:00\", 36.88, 36.92, 36.88, 36.92, 80150.0, 248, 36.889564], [\"2024-05-02 15:21:00-04:00\", 36.91, 36.93, 36.91, 36.925, 36595.0, 242, 36.91875], [\"2024-05-02 15:22:00-04:00\", 36.925, 36.93, 36.905, 36.905, 61217.0, 340, 36.917447], [\"2024-05-02 15:23:00-04:00\", 36.905, 36.925, 36.905, 36.915, 49823.0, 290, 36.915208], [\"2024-05-02 15:24:00-04:00\", 36.92, 36.92, 36.9, 36.91, 153183.0, 341, 36.903865], [\"2024-05-02 15:25:00-04:00\", 36.91, 36.9205, 36.88, 36.89, 90449.0, 442, 36.90109], [\"2024-05-02 15:26:00-04:00\", 36.895, 36.905, 36.885, 36.895, 61746.0, 391, 36.893805], [\"2024-05-02 15:27:00-04:00\", 36.9, 36.9, 36.89, 36.9, 25226.0, 216, 36.897405], [\"2024-05-02 15:28:00-04:00\", 36.895, 36.906, 36.89, 36.905, 45224.0, 378, 36.897078], [\"2024-05-02 15:29:00-04:00\", 36.905, 36.91, 36.8749, 36.8778, 100292.0, 460, 36.891559], [\"2024-05-02 15:30:00-04:00\", 36.87, 36.875, 36.85, 36.8687, 141831.0, 349, 36.84773], [\"2024-05-02 15:31:00-04:00\", 36.865, 36.88, 36.86, 36.8791, 61020.0, 368, 36.874455], [\"2024-05-02 15:32:00-04:00\", 36.87, 36.88, 36.845, 36.855, 157491.0, 719, 36.858656], [\"2024-05-02 15:33:00-04:00\", 36.8541, 36.86, 36.84, 36.855, 72064.0, 407, 36.852559], [\"2024-05-02 15:34:00-04:00\", 36.86, 36.86, 36.83, 36.83, 110160.0, 546, 36.840027], [\"2024-05-02 15:35:00-04:00\", 36.83, 36.835, 36.78, 36.8, 152835.0, 890, 36.809467], [\"2024-05-02 15:36:00-04:00\", 36.8, 36.806, 36.78, 36.795, 75247.0, 500, 36.791176], [\"2024-05-02 15:37:00-04:00\", 36.79, 36.83, 36.79, 36.825, 79642.0, 540, 36.807512], [\"2024-05-02 15:38:00-04:00\", 36.825, 36.83, 36.81, 36.82, 232252.0, 545, 36.817352], [\"2024-05-02 15:39:00-04:00\", 36.815, 36.816, 36.8, 36.81, 99481.0, 666, 36.809074], [\"2024-05-02 15:40:00-04:00\", 36.81, 36.83, 36.81, 36.82, 92180.0, 508, 36.819044], [\"2024-05-02 15:41:00-04:00\", 36.8171, 36.82, 36.795, 36.795, 80936.0, 579, 36.808576], [\"2024-05-02 15:42:00-04:00\", 36.7996, 36.83, 36.7996, 36.825, 103966.0, 611, 36.806791], [\"2024-05-02 15:43:00-04:00\", 36.83, 36.83, 36.8, 36.825, 109719.0, 605, 36.814126], [\"2024-05-02 15:44:00-04:00\", 36.825, 36.84, 36.805, 36.805, 94363.0, 595, 36.827345], [\"2024-05-02 15:45:00-04:00\", 36.8, 36.81, 36.785, 36.805, 128230.0, 591, 36.79865], [\"2024-05-02 15:46:00-04:00\", 36.805, 36.84, 36.805, 36.84, 81590.0, 513, 36.826313], [\"2024-05-02 15:47:00-04:00\", 36.84, 36.845, 36.8237, 36.84, 108848.0, 637, 36.83406], [\"2024-05-02 15:48:00-04:00\", 36.84, 36.85, 36.84, 36.85, 95462.0, 527, 36.843124], [\"2024-05-02 15:49:00-04:00\", 36.85, 36.85, 36.83, 36.84, 189571.0, 685, 36.839302], [\"2024-05-02 15:50:00-04:00\", 36.83, 36.84, 36.8, 36.8, 273358.0, 1079, 36.827566], [\"2024-05-02 15:51:00-04:00\", 36.805, 36.82, 36.79, 36.82, 151716.0, 686, 36.801995], [\"2024-05-02 15:52:00-04:00\", 36.82, 36.84, 36.81, 36.825, 126119.0, 690, 36.823574], [\"2024-05-02 15:53:00-04:00\", 36.825, 36.84, 36.815, 36.84, 202146.0, 935, 36.826378], [\"2024-05-02 15:54:00-04:00\", 36.8341, 36.85, 36.8341, 36.85, 160679.0, 695, 36.842204], [\"2024-05-02 15:55:00-04:00\", 36.85, 36.865, 36.83, 36.86, 346944.0, 1452, 36.847033], [\"2024-05-02 15:56:00-04:00\", 36.86, 36.87, 36.84, 36.85, 164480.0, 852, 36.85394], [\"2024-05-02 15:57:00-04:00\", 36.85, 36.86, 36.84, 36.845, 236078.0, 1071, 36.84847], [\"2024-05-02 15:58:00-04:00\", 36.85, 36.85, 36.81, 36.83, 259056.0, 1338, 36.828303], [\"2024-05-02 15:59:00-04:00\", 36.825, 36.89, 36.825, 36.89, 853820.0, 2916, 36.855578], [\"2024-05-02 16:00:00-04:00\", 36.88, 36.88, 36.87, 36.88, 4431212.0, 80, 36.87787], [\"2024-05-03 09:30:00-04:00\", 37.25, 37.44, 37.23, 37.435, 704420.0, 2563, 37.287453], [\"2024-05-03 09:31:00-04:00\", 37.435, 37.53, 37.39, 37.49, 340392.0, 1606, 37.456466], [\"2024-05-03 09:32:00-04:00\", 37.495, 37.5, 37.36, 37.42, 482002.0, 2594, 37.425744], [\"2024-05-03 09:33:00-04:00\", 37.435, 37.47, 37.3, 37.375, 594378.0, 1590, 37.39854], [\"2024-05-03 09:34:00-04:00\", 37.3794, 37.4, 37.29, 37.3, 213113.0, 1405, 37.354424], [\"2024-05-03 09:35:00-04:00\", 37.3, 37.35, 37.26, 37.275, 314559.0, 1680, 37.321772], [\"2024-05-03 09:36:00-04:00\", 37.275, 37.33, 37.26, 37.305, 194405.0, 1444, 37.304794], [\"2024-05-03 09:37:00-04:00\", 37.31, 37.34, 37.23, 37.23, 290334.0, 1689, 37.287714], [\"2024-05-03 09:38:00-04:00\", 37.235, 37.27, 37.16, 37.255, 189339.0, 1115, 37.202193], [\"2024-05-03 09:39:00-04:00\", 37.255, 37.32, 37.23, 37.3111, 382039.0, 738, 37.24117], [\"2024-05-03 09:40:00-04:00\", 37.32, 37.36, 37.3, 37.3, 241225.0, 949, 37.33121], [\"2024-05-03 09:41:00-04:00\", 37.295, 37.355, 37.26, 37.35, 138942.0, 913, 37.313404], [\"2024-05-03 09:42:00-04:00\", 37.35, 37.355, 37.3, 37.325, 205664.0, 1005, 37.325231], [\"2024-05-03 09:43:00-04:00\", 37.33, 37.345, 37.25, 37.265, 171249.0, 1010, 37.296267], [\"2024-05-03 09:44:00-04:00\", 37.27, 37.31, 37.26, 37.29, 116590.0, 660, 37.290055], [\"2024-05-03 09:45:00-04:00\", 37.29, 37.3, 37.24, 37.285, 229905.0, 1479, 37.269933], [\"2024-05-03 09:46:00-04:00\", 37.285, 37.39, 37.26, 37.38, 221746.0, 1146, 37.311346], [\"2024-05-03 09:47:00-04:00\", 37.375, 37.4, 37.37, 37.385, 150749.0, 1026, 37.389848], [\"2024-05-03 09:48:00-04:00\", 37.39, 37.415, 37.38, 37.4, 260772.0, 1282, 37.396035], [\"2024-05-03 09:49:00-04:00\", 37.4, 37.435, 37.37, 37.4, 269441.0, 1296, 37.403315], [\"2024-05-03 09:50:00-04:00\", 37.4, 37.405, 37.35, 37.36, 163890.0, 1050, 37.371395], [\"2024-05-03 09:51:00-04:00\", 37.365, 37.39, 37.34, 37.38, 171539.0, 1376, 37.361099], [\"2024-05-03 09:52:00-04:00\", 37.38, 37.425, 37.375, 37.415, 111781.0, 857, 37.404034], [\"2024-05-03 09:53:00-04:00\", 37.42, 37.435, 37.4, 37.42, 100832.0, 967, 37.419549], [\"2024-05-03 09:54:00-04:00\", 37.425, 37.45, 37.41, 37.425, 130154.0, 921, 37.430522], [\"2024-05-03 09:55:00-04:00\", 37.42, 37.4585, 37.415, 37.455, 166581.0, 1281, 37.44238], [\"2024-05-03 09:56:00-04:00\", 37.455, 37.47, 37.43, 37.4479, 88080.0, 821, 37.448133], [\"2024-05-03 09:57:00-04:00\", 37.445, 37.46, 37.41, 37.445, 182482.0, 893, 37.436251], [\"2024-05-03 09:58:00-04:00\", 37.445, 37.46, 37.415, 37.42, 385126.0, 1749, 37.435905], [\"2024-05-03 09:59:00-04:00\", 37.415, 37.44, 37.4, 37.415, 204229.0, 1432, 37.418512], [\"2024-05-03 10:00:00-04:00\", 37.42, 37.52, 37.29, 37.32, 568176.0, 3492, 37.392109], [\"2024-05-03 10:01:00-04:00\", 37.33, 37.39, 37.28, 37.305, 222491.0, 1466, 37.320584], [\"2024-05-03 10:02:00-04:00\", 37.3, 37.335, 37.28, 37.32, 236605.0, 1414, 37.311852], [\"2024-05-03 10:03:00-04:00\", 37.325, 37.33, 37.27, 37.31, 145517.0, 1221, 37.307385], [\"2024-05-03 10:04:00-04:00\", 37.32, 37.335, 37.26, 37.27, 98877.0, 849, 37.307677], [\"2024-05-03 10:05:00-04:00\", 37.28, 37.3, 37.26, 37.285, 198465.0, 1215, 37.287631], [\"2024-05-03 10:06:00-04:00\", 37.285, 37.33, 37.28, 37.31, 160193.0, 945, 37.301323], [\"2024-05-03 10:07:00-04:00\", 37.305, 37.33, 37.24, 37.2491, 160617.0, 1079, 37.282621], [\"2024-05-03 10:08:00-04:00\", 37.245, 37.26, 37.22, 37.24, 179999.0, 1310, 37.243829], [\"2024-05-03 10:09:00-04:00\", 37.24, 37.27, 37.21, 37.27, 156834.0, 1203, 37.241574], [\"2024-05-03 10:10:00-04:00\", 37.27, 37.295, 37.25, 37.265, 118634.0, 783, 37.277862], [\"2024-05-03 10:11:00-04:00\", 37.265, 37.275, 37.24, 37.255, 107430.0, 873, 37.256522], [\"2024-05-03 10:12:00-04:00\", 37.26, 37.26, 37.22, 37.24, 130148.0, 751, 37.242311], [\"2024-05-03 10:13:00-04:00\", 37.235, 37.27, 37.22, 37.228, 191152.0, 539, 37.242012], [\"2024-05-03 10:14:00-04:00\", 37.225, 37.24, 37.18, 37.225, 107129.0, 623, 37.210649], [\"2024-05-03 10:15:00-04:00\", 37.225, 37.27, 37.22, 37.255, 89317.0, 688, 37.247303], [\"2024-05-03 10:16:00-04:00\", 37.255, 37.2678, 37.22, 37.22, 63390.0, 484, 37.242305], [\"2024-05-03 10:17:00-04:00\", 37.23, 37.27, 37.23, 37.24, 213839.0, 1133, 37.243163], [\"2024-05-03 10:18:00-04:00\", 37.235, 37.25, 37.22, 37.2299, 87581.0, 622, 37.232061], [\"2024-05-03 10:19:00-04:00\", 37.2208, 37.225, 37.17, 37.19, 67297.0, 542, 37.189928], [\"2024-05-03 10:20:00-04:00\", 37.2, 37.2, 37.15, 37.1697, 100147.0, 603, 37.162147], [\"2024-05-03 10:21:00-04:00\", 37.165, 37.18, 37.15, 37.17, 73661.0, 556, 37.163569], [\"2024-05-03 10:22:00-04:00\", 37.17, 37.17, 37.12, 37.13, 98449.0, 532, 37.145723], [\"2024-05-03 10:23:00-04:00\", 37.135, 37.14, 37.09, 37.095, 107983.0, 609, 37.113969], [\"2024-05-03 10:24:00-04:00\", 37.095, 37.16, 37.08, 37.155, 183456.0, 809, 37.122332], [\"2024-05-03 10:25:00-04:00\", 37.15, 37.16, 37.12, 37.12, 203112.0, 627, 37.145732], [\"2024-05-03 10:26:00-04:00\", 37.12, 37.15, 37.11, 37.145, 65564.0, 544, 37.131607], [\"2024-05-03 10:27:00-04:00\", 37.14, 37.14, 37.11, 37.135, 38120.0, 300, 37.12574], [\"2024-05-03 10:28:00-04:00\", 37.135, 37.18, 37.125, 37.1781, 82953.0, 533, 37.147893], [\"2024-05-03 10:29:00-04:00\", 37.1706, 37.2, 37.165, 37.165, 75066.0, 389, 37.185012], [\"2024-05-03 10:30:00-04:00\", 37.17, 37.23, 37.16, 37.225, 99911.0, 597, 37.203902], [\"2024-05-03 10:31:00-04:00\", 37.225, 37.24, 37.2, 37.2, 118338.0, 517, 37.225257], [\"2024-05-03 10:32:00-04:00\", 37.2175, 37.24, 37.18, 37.21, 72521.0, 458, 37.201973], [\"2024-05-03 10:33:00-04:00\", 37.205, 37.22, 37.1701, 37.175, 52290.0, 378, 37.196733], [\"2024-05-03 10:34:00-04:00\", 37.1799, 37.19, 37.16, 37.16, 77755.0, 414, 37.171578], [\"2024-05-03 10:35:00-04:00\", 37.16, 37.18, 37.15, 37.17, 139796.0, 486, 37.156658], [\"2024-05-03 10:36:00-04:00\", 37.17, 37.195, 37.15, 37.175, 51444.0, 420, 37.172457], [\"2024-05-03 10:37:00-04:00\", 37.18, 37.2, 37.17, 37.19, 73094.0, 443, 37.187777], [\"2024-05-03 10:38:00-04:00\", 37.2, 37.205, 37.15, 37.165, 69609.0, 458, 37.165979], [\"2024-05-03 10:39:00-04:00\", 37.17, 37.18, 37.15, 37.1603, 39670.0, 320, 37.164805], [\"2024-05-03 10:40:00-04:00\", 37.1625, 37.1957, 37.1625, 37.189, 35768.0, 270, 37.184693], [\"2024-05-03 10:41:00-04:00\", 37.19, 37.22, 37.18, 37.1925, 44493.0, 274, 37.201852], [\"2024-05-03 10:42:00-04:00\", 37.195, 37.2, 37.17, 37.195, 66628.0, 418, 37.188756], [\"2024-05-03 10:43:00-04:00\", 37.195, 37.21, 37.19, 37.2, 65705.0, 273, 37.198075], [\"2024-05-03 10:44:00-04:00\", 37.2, 37.23, 37.2, 37.225, 38457.0, 315, 37.21896], [\"2024-05-03 10:45:00-04:00\", 37.22, 37.24, 37.21, 37.2299, 63141.0, 381, 37.226623], [\"2024-05-03 10:46:00-04:00\", 37.225, 37.23, 37.21, 37.225, 42628.0, 298, 37.220754], [\"2024-05-03 10:47:00-04:00\", 37.22, 37.24, 37.215, 37.215, 26883.0, 253, 37.226981], [\"2024-05-03 10:48:00-04:00\", 37.215, 37.23, 37.2, 37.2299, 38533.0, 373, 37.214299], [\"2024-05-03 10:49:00-04:00\", 37.229, 37.2399, 37.2, 37.2101, 57400.0, 398, 37.219922], [\"2024-05-03 10:50:00-04:00\", 37.215, 37.22, 37.18, 37.185, 54696.0, 408, 37.198966], [\"2024-05-03 10:51:00-04:00\", 37.18, 37.2, 37.17, 37.195, 46404.0, 375, 37.184004], [\"2024-05-03 10:52:00-04:00\", 37.19, 37.195, 37.15, 37.155, 43690.0, 342, 37.179002], [\"2024-05-03 10:53:00-04:00\", 37.15, 37.175, 37.15, 37.17, 53226.0, 413, 37.159117], [\"2024-05-03 10:54:00-04:00\", 37.165, 37.18, 37.15, 37.1662, 58058.0, 406, 37.164644], [\"2024-05-03 10:55:00-04:00\", 37.1686, 37.2, 37.16, 37.195, 47748.0, 423, 37.178929], [\"2024-05-03 10:56:00-04:00\", 37.1999, 37.2, 37.16, 37.17, 51189.0, 331, 37.180587], [\"2024-05-03 10:57:00-04:00\", 37.17, 37.21, 37.16, 37.2, 49250.0, 383, 37.194197], [\"2024-05-03 10:58:00-04:00\", 37.201, 37.225, 37.19, 37.215, 35648.0, 303, 37.21022], [\"2024-05-03 10:59:00-04:00\", 37.215, 37.215, 37.18, 37.18, 57453.0, 398, 37.194416], [\"2024-05-03 11:00:00-04:00\", 37.195, 37.2276, 37.19, 37.225, 35660.0, 238, 37.209692], [\"2024-05-03 11:01:00-04:00\", 37.22, 37.23, 37.2, 37.205, 61424.0, 362, 37.211718], [\"2024-05-03 11:02:00-04:00\", 37.205, 37.225, 37.17, 37.1725, 68374.0, 467, 37.205166], [\"2024-05-03 11:03:00-04:00\", 37.178, 37.21, 37.17, 37.195, 54288.0, 429, 37.193251], [\"2024-05-03 11:04:00-04:00\", 37.195, 37.2, 37.18, 37.195, 23729.0, 199, 37.19168], [\"2024-05-03 11:05:00-04:00\", 37.195, 37.21, 37.18, 37.19, 57860.0, 440, 37.19562], [\"2024-05-03 11:06:00-04:00\", 37.195, 37.205, 37.18, 37.1908, 40111.0, 376, 37.194849], [\"2024-05-03 11:07:00-04:00\", 37.195, 37.24, 37.19, 37.235, 187321.0, 868, 37.213558], [\"2024-05-03 11:08:00-04:00\", 37.23, 37.23, 37.2, 37.205, 43104.0, 244, 37.216987], [\"2024-05-03 11:09:00-04:00\", 37.205, 37.225, 37.17, 37.205, 63670.0, 467, 37.201204], [\"2024-05-03 11:10:00-04:00\", 37.2001, 37.22, 37.18, 37.21, 59188.0, 368, 37.203837], [\"2024-05-03 11:11:00-04:00\", 37.2276, 37.24, 37.215, 37.235, 41256.0, 266, 37.225084], [\"2024-05-03 11:12:00-04:00\", 37.235, 37.235, 37.22, 37.2236, 28248.0, 259, 37.228977], [\"2024-05-03 11:13:00-04:00\", 37.22, 37.2271, 37.21, 37.21, 25928.0, 227, 37.217426], [\"2024-05-03 11:14:00-04:00\", 37.2125, 37.23, 37.21, 37.225, 27187.0, 267, 37.220437], [\"2024-05-03 11:15:00-04:00\", 37.22, 37.23, 37.21, 37.22, 42367.0, 323, 37.218687], [\"2024-05-03 11:16:00-04:00\", 37.2201, 37.23, 37.22, 37.225, 20249.0, 129, 37.224568], [\"2024-05-03 11:17:00-04:00\", 37.225, 37.23, 37.21, 37.21, 35042.0, 224, 37.21843], [\"2024-05-03 11:18:00-04:00\", 37.215, 37.22, 37.2, 37.215, 59092.0, 461, 37.209467], [\"2024-05-03 11:19:00-04:00\", 37.21, 37.21, 37.19, 37.205, 38622.0, 285, 37.203448], [\"2024-05-03 11:20:00-04:00\", 37.205, 37.21, 37.2, 37.205, 13327.0, 104, 37.205627], [\"2024-05-03 11:21:00-04:00\", 37.205, 37.21, 37.18, 37.19, 92540.0, 573, 37.196719], [\"2024-05-03 11:22:00-04:00\", 37.185, 37.2, 37.18, 37.2, 169789.0, 412, 37.19853], [\"2024-05-03 11:23:00-04:00\", 37.2, 37.21, 37.19, 37.205, 54675.0, 308, 37.199237], [\"2024-05-03 11:24:00-04:00\", 37.21, 37.21, 37.2, 37.21, 30138.0, 207, 37.206955], [\"2024-05-03 11:25:00-04:00\", 37.205, 37.22, 37.195, 37.2, 75871.0, 368, 37.204419], [\"2024-05-03 11:26:00-04:00\", 37.2, 37.2, 37.18, 37.19, 36613.0, 298, 37.191242], [\"2024-05-03 11:27:00-04:00\", 37.195, 37.22, 37.19, 37.22, 25024.0, 171, 37.21053], [\"2024-05-03 11:28:00-04:00\", 37.215, 37.235, 37.21, 37.225, 92339.0, 436, 37.226343], [\"2024-05-03 11:29:00-04:00\", 37.225, 37.225, 37.205, 37.205, 51587.0, 263, 37.215752], [\"2024-05-03 11:30:00-04:00\", 37.21, 37.22, 37.2, 37.215, 41077.0, 297, 37.209974], [\"2024-05-03 11:31:00-04:00\", 37.2173, 37.22, 37.2, 37.21, 39828.0, 258, 37.209802], [\"2024-05-03 11:32:00-04:00\", 37.215, 37.23, 37.21, 37.225, 14881.0, 122, 37.223244], [\"2024-05-03 11:33:00-04:00\", 37.22, 37.24, 37.22, 37.225, 46153.0, 304, 37.230335], [\"2024-05-03 11:34:00-04:00\", 37.22, 37.235, 37.21, 37.2283, 67114.0, 335, 37.225212], [\"2024-05-03 11:35:00-04:00\", 37.23, 37.24, 37.22, 37.23, 47139.0, 237, 37.229462], [\"2024-05-03 11:36:00-04:00\", 37.225, 37.235, 37.21, 37.215, 63177.0, 329, 37.223982], [\"2024-05-03 11:37:00-04:00\", 37.22, 37.23, 37.21, 37.2284, 34140.0, 204, 37.219897], [\"2024-05-03 11:38:00-04:00\", 37.225, 37.23, 37.21, 37.21, 31362.0, 203, 37.22181], [\"2024-05-03 11:39:00-04:00\", 37.215, 37.23, 37.21, 37.215, 97907.0, 482, 37.222254], [\"2024-05-03 11:40:00-04:00\", 37.215, 37.24, 37.21, 37.235, 45975.0, 329, 37.229104], [\"2024-05-03 11:41:00-04:00\", 37.24, 37.27, 37.23, 37.2572, 96997.0, 407, 37.24785], [\"2024-05-03 11:42:00-04:00\", 37.2501, 37.26, 37.24, 37.25, 93118.0, 251, 37.245959], [\"2024-05-03 11:43:00-04:00\", 37.255, 37.26, 37.245, 37.245, 21272.0, 167, 37.251127], [\"2024-05-03 11:44:00-04:00\", 37.2401, 37.25, 37.2, 37.205, 28214.0, 253, 37.219337], [\"2024-05-03 11:45:00-04:00\", 37.21, 37.23, 37.2, 37.224, 28038.0, 221, 37.215796], [\"2024-05-03 11:46:00-04:00\", 37.225, 37.25, 37.22, 37.24, 35448.0, 226, 37.236547], [\"2024-05-03 11:47:00-04:00\", 37.23, 37.24, 37.22, 37.2299, 41862.0, 306, 37.22916], [\"2024-05-03 11:48:00-04:00\", 37.225, 37.235, 37.19, 37.205, 59120.0, 360, 37.212404], [\"2024-05-03 11:49:00-04:00\", 37.205, 37.24, 37.2, 37.24, 35409.0, 278, 37.213603], [\"2024-05-03 11:50:00-04:00\", 37.24, 37.25, 37.23, 37.245, 22225.0, 146, 37.240117], [\"2024-05-03 11:51:00-04:00\", 37.2456, 37.255, 37.23, 37.2336, 95771.0, 356, 37.247403], [\"2024-05-03 11:52:00-04:00\", 37.235, 37.245, 37.23, 37.23, 31263.0, 181, 37.237968], [\"2024-05-03 11:53:00-04:00\", 37.235, 37.25, 37.22, 37.2481, 68003.0, 299, 37.239552], [\"2024-05-03 11:54:00-04:00\", 37.25, 37.255, 37.24, 37.24, 133859.0, 260, 37.248715], [\"2024-05-03 11:55:00-04:00\", 37.2425, 37.26, 37.23, 37.2425, 110624.0, 309, 37.245845], [\"2024-05-03 11:56:00-04:00\", 37.24, 37.245, 37.23, 37.235, 23522.0, 158, 37.238327], [\"2024-05-03 11:57:00-04:00\", 37.23, 37.25, 37.23, 37.245, 35395.0, 259, 37.242143], [\"2024-05-03 11:58:00-04:00\", 37.25, 37.25, 37.24, 37.245, 23898.0, 133, 37.245927], [\"2024-05-03 11:59:00-04:00\", 37.25, 37.25, 37.23, 37.235, 41785.0, 273, 37.240226], [\"2024-05-03 12:00:00-04:00\", 37.24, 37.26, 37.23, 37.245, 41237.0, 234, 37.244133], [\"2024-05-03 12:01:00-04:00\", 37.2401, 37.25, 37.24, 37.24, 22275.0, 78, 37.202563], [\"2024-05-03 12:02:00-04:00\", 37.245, 37.25, 37.22, 37.24, 275715.0, 302, 37.22209], [\"2024-05-03 12:03:00-04:00\", 37.2332, 37.24, 37.23, 37.235, 60934.0, 123, 37.232651], [\"2024-05-03 12:04:00-04:00\", 37.2397, 37.24, 37.22, 37.24, 37925.0, 309, 37.232611], [\"2024-05-03 12:05:00-04:00\", 37.2399, 37.25, 37.23, 37.24, 22520.0, 165, 37.240326], [\"2024-05-03 12:06:00-04:00\", 37.24, 37.245, 37.22, 37.235, 25630.0, 223, 37.233022], [\"2024-05-03 12:07:00-04:00\", 37.235, 37.24, 37.23, 37.2361, 6605.0, 60, 37.236646], [\"2024-05-03 12:08:00-04:00\", 37.23, 37.24, 37.22, 37.22, 25972.0, 204, 37.231589], [\"2024-05-03 12:09:00-04:00\", 37.22, 37.24, 37.22, 37.235, 40068.0, 278, 37.228966], [\"2024-05-03 12:10:00-04:00\", 37.2398, 37.25, 37.23, 37.24, 30593.0, 180, 37.240516], [\"2024-05-03 12:11:00-04:00\", 37.245, 37.25, 37.22, 37.23, 34806.0, 282, 37.231384], [\"2024-05-03 12:12:00-04:00\", 37.23, 37.231, 37.22, 37.2201, 22288.0, 148, 37.22479], [\"2024-05-03 12:13:00-04:00\", 37.22, 37.22, 37.2, 37.215, 33640.0, 291, 37.21109], [\"2024-05-03 12:14:00-04:00\", 37.21, 37.225, 37.21, 37.225, 31477.0, 227, 37.216879], [\"2024-05-03 12:15:00-04:00\", 37.225, 37.23, 37.22, 37.23, 18409.0, 124, 37.226349], [\"2024-05-03 12:16:00-04:00\", 37.225, 37.23, 37.22, 37.225, 7697.0, 93, 37.224971], [\"2024-05-03 12:17:00-04:00\", 37.23, 37.23, 37.22, 37.225, 22411.0, 105, 37.225622], [\"2024-05-03 12:18:00-04:00\", 37.225, 37.23, 37.2, 37.2094, 108342.0, 499, 37.211697], [\"2024-05-03 12:19:00-04:00\", 37.21, 37.21, 37.2, 37.21, 15287.0, 81, 37.20634], [\"2024-05-03 12:20:00-04:00\", 37.2085, 37.22, 37.2, 37.213, 21415.0, 213, 37.208026], [\"2024-05-03 12:21:00-04:00\", 37.2165, 37.22, 37.2, 37.2199, 51721.0, 296, 37.210501], [\"2024-05-03 12:22:00-04:00\", 37.2143, 37.22, 37.21, 37.22, 13746.0, 118, 37.215268], [\"2024-05-03 12:23:00-04:00\", 37.22, 37.2383, 37.21, 37.23, 42334.0, 303, 37.226437], [\"2024-05-03 12:24:00-04:00\", 37.2282, 37.235, 37.22, 37.235, 34562.0, 235, 37.229122], [\"2024-05-03 12:25:00-04:00\", 37.2399, 37.25, 37.23, 37.24, 27398.0, 171, 37.238858], [\"2024-05-03 12:26:00-04:00\", 37.25, 37.26, 37.24, 37.25, 45470.0, 263, 37.249362], [\"2024-05-03 12:27:00-04:00\", 37.245, 37.25, 37.235, 37.24, 16851.0, 155, 37.242556], [\"2024-05-03 12:28:00-04:00\", 37.2338, 37.25, 37.23, 37.25, 35886.0, 287, 37.242121], [\"2024-05-03 12:29:00-04:00\", 37.25, 37.25, 37.2425, 37.245, 24361.0, 135, 37.249032], [\"2024-05-03 12:30:00-04:00\", 37.24, 37.25, 37.24, 37.25, 327153.0, 197, 37.249885], [\"2024-05-03 12:31:00-04:00\", 37.25, 37.25, 37.2415, 37.245, 38933.0, 248, 37.249717], [\"2024-05-03 12:32:00-04:00\", 37.245, 37.2499, 37.23, 37.24, 25652.0, 236, 37.239131], [\"2024-05-03 12:33:00-04:00\", 37.245, 37.25, 37.24, 37.25, 43303.0, 293, 37.247932], [\"2024-05-03 12:34:00-04:00\", 37.25, 37.25, 37.24, 37.245, 9339.0, 81, 37.245721], [\"2024-05-03 12:35:00-04:00\", 37.25, 37.25, 37.24, 37.25, 15445.0, 114, 37.247126], [\"2024-05-03 12:36:00-04:00\", 37.25, 37.25, 37.24, 37.25, 8289.0, 99, 37.244615], [\"2024-05-03 12:37:00-04:00\", 37.25, 37.25, 37.23, 37.245, 41602.0, 284, 37.239671], [\"2024-05-03 12:38:00-04:00\", 37.25, 37.25, 37.24, 37.25, 40035.0, 211, 37.249804], [\"2024-05-03 12:39:00-04:00\", 37.25, 37.27, 37.24, 37.26, 51737.0, 271, 37.253638], [\"2024-05-03 12:40:00-04:00\", 37.27, 37.27, 37.245, 37.2475, 19869.0, 187, 37.25736], [\"2024-05-03 12:41:00-04:00\", 37.245, 37.25, 37.2425, 37.245, 5081.0, 75, 37.246976], [\"2024-05-03 12:42:00-04:00\", 37.245, 37.26, 37.24, 37.2541, 39144.0, 264, 37.250722], [\"2024-05-03 12:43:00-04:00\", 37.26, 37.275, 37.252, 37.265, 65140.0, 425, 37.26628], [\"2024-05-03 12:44:00-04:00\", 37.265, 37.27, 37.25, 37.2503, 13618.0, 136, 37.259557], [\"2024-05-03 12:45:00-04:00\", 37.255, 37.2599, 37.24, 37.25, 10182.0, 124, 37.249654], [\"2024-05-03 12:46:00-04:00\", 37.2499, 37.2499, 37.22, 37.235, 30835.0, 304, 37.230748], [\"2024-05-03 12:47:00-04:00\", 37.235, 37.2399, 37.2, 37.2, 42390.0, 264, 37.2136], [\"2024-05-03 12:48:00-04:00\", 37.215, 37.23, 37.21, 37.225, 11091.0, 113, 37.218263], [\"2024-05-03 12:49:00-04:00\", 37.2203, 37.2203, 37.21, 37.2161, 17229.0, 116, 37.221806], [\"2024-05-03 12:50:00-04:00\", 37.2125, 37.2257, 37.21, 37.215, 29926.0, 226, 37.218692], [\"2024-05-03 12:51:00-04:00\", 37.22, 37.22, 37.2, 37.2001, 19713.0, 169, 37.209886], [\"2024-05-03 12:52:00-04:00\", 37.205, 37.21, 37.19, 37.2074, 30411.0, 221, 37.200497], [\"2024-05-03 12:53:00-04:00\", 37.205, 37.21, 37.1828, 37.185, 22602.0, 193, 37.198204], [\"2024-05-03 12:54:00-04:00\", 37.19, 37.1975, 37.18, 37.1975, 20994.0, 153, 37.190296], [\"2024-05-03 12:55:00-04:00\", 37.19, 37.2, 37.18, 37.185, 51121.0, 268, 37.192169], [\"2024-05-03 12:56:00-04:00\", 37.19, 37.19, 37.185, 37.19, 11058.0, 77, 37.187837], [\"2024-05-03 12:57:00-04:00\", 37.185, 37.19, 37.18, 37.19, 5796.0, 60, 37.185333], [\"2024-05-03 12:58:00-04:00\", 37.185, 37.19, 37.18, 37.18, 36353.0, 162, 37.184794], [\"2024-05-03 12:59:00-04:00\", 37.18, 37.215, 37.17, 37.205, 96395.0, 602, 37.18996], [\"2024-05-03 13:00:00-04:00\", 37.21, 37.2199, 37.2, 37.205, 32062.0, 210, 37.206993], [\"2024-05-03 13:01:00-04:00\", 37.205, 37.21, 37.195, 37.2063, 71953.0, 343, 37.205479], [\"2024-05-03 13:02:00-04:00\", 37.2, 37.21, 37.195, 37.2075, 54626.0, 265, 37.20324], [\"2024-05-03 13:03:00-04:00\", 37.2, 37.2099, 37.18, 37.19, 35152.0, 294, 37.19291], [\"2024-05-03 13:04:00-04:00\", 37.195, 37.21, 37.19, 37.2019, 18019.0, 110, 37.200057], [\"2024-05-03 13:05:00-04:00\", 37.205, 37.205, 37.18, 37.195, 50815.0, 291, 37.191967], [\"2024-05-03 13:06:00-04:00\", 37.2, 37.2, 37.19, 37.2, 12511.0, 88, 37.193811], [\"2024-05-03 13:07:00-04:00\", 37.195, 37.21, 37.19, 37.21, 49093.0, 307, 37.203707], [\"2024-05-03 13:08:00-04:00\", 37.21, 37.215, 37.2, 37.21, 76197.0, 322, 37.209286], [\"2024-05-03 13:09:00-04:00\", 37.21, 37.21, 37.2, 37.205, 8176.0, 108, 37.205475], [\"2024-05-03 13:10:00-04:00\", 37.21, 37.21, 37.19, 37.19, 71997.0, 328, 37.204405], [\"2024-05-03 13:11:00-04:00\", 37.2, 37.2, 37.19, 37.195, 75276.0, 343, 37.197381], [\"2024-05-03 13:12:00-04:00\", 37.195, 37.24, 37.19, 37.215, 126823.0, 479, 37.217996], [\"2024-05-03 13:13:00-04:00\", 37.215, 37.215, 37.2, 37.2, 48792.0, 258, 37.207654], [\"2024-05-03 13:14:00-04:00\", 37.205, 37.22, 37.2, 37.215, 18916.0, 162, 37.208243], [\"2024-05-03 13:15:00-04:00\", 37.215, 37.23, 37.21, 37.215, 27560.0, 144, 37.218072], [\"2024-05-03 13:16:00-04:00\", 37.215, 37.22, 37.2, 37.21, 13105.0, 130, 37.20722], [\"2024-05-03 13:17:00-04:00\", 37.2099, 37.22, 37.2, 37.22, 39802.0, 281, 37.208971], [\"2024-05-03 13:18:00-04:00\", 37.215, 37.22, 37.21, 37.215, 9154.0, 95, 37.215378], [\"2024-05-03 13:19:00-04:00\", 37.215, 37.22, 37.172, 37.172, 79919.0, 353, 37.190504], [\"2024-05-03 13:20:00-04:00\", 37.174, 37.185, 37.16, 37.18, 56460.0, 308, 37.173192], [\"2024-05-03 13:21:00-04:00\", 37.175, 37.18, 37.17, 37.17, 9353.0, 86, 37.17766], [\"2024-05-03 13:22:00-04:00\", 37.175, 37.1799, 37.155, 37.16, 26471.0, 224, 37.165422], [\"2024-05-03 13:23:00-04:00\", 37.17, 37.17, 37.16, 37.165, 77196.0, 82, 37.16501], [\"2024-05-03 13:24:00-04:00\", 37.165, 37.165, 37.15, 37.15, 32230.0, 205, 37.158356], [\"2024-05-03 13:25:00-04:00\", 37.16, 37.1763, 37.15, 37.175, 33440.0, 301, 37.162354], [\"2024-05-03 13:26:00-04:00\", 37.175, 37.18, 37.17, 37.175, 6630.0, 88, 37.175696], [\"2024-05-03 13:27:00-04:00\", 37.18, 37.18, 37.16, 37.16, 44217.0, 245, 37.169636], [\"2024-05-03 13:28:00-04:00\", 37.165, 37.18, 37.16, 37.18, 31587.0, 249, 37.167591], [\"2024-05-03 13:29:00-04:00\", 37.1795, 37.19, 37.17, 37.18, 21359.0, 184, 37.180675], [\"2024-05-03 13:30:00-04:00\", 37.18, 37.2, 37.18, 37.195, 16358.0, 172, 37.18699], [\"2024-05-03 13:31:00-04:00\", 37.195, 37.2, 37.17, 37.1799, 45261.0, 220, 37.186265], [\"2024-05-03 13:32:00-04:00\", 37.175, 37.18, 37.16, 37.165, 58033.0, 311, 37.169625], [\"2024-05-03 13:33:00-04:00\", 37.165, 37.175, 37.16, 37.16, 22750.0, 210, 37.168336], [\"2024-05-03 13:34:00-04:00\", 37.175, 37.195, 37.17, 37.194, 15350.0, 167, 37.187406], [\"2024-05-03 13:35:00-04:00\", 37.195, 37.21, 37.19, 37.21, 35836.0, 175, 37.199679], [\"2024-05-03 13:36:00-04:00\", 37.21, 37.2188, 37.2, 37.21, 22296.0, 160, 37.212009], [\"2024-05-03 13:37:00-04:00\", 37.205, 37.21, 37.2025, 37.21, 2102.0, 50, 37.206909], [\"2024-05-03 13:38:00-04:00\", 37.2025, 37.22, 37.2, 37.22, 43644.0, 302, 37.209336], [\"2024-05-03 13:39:00-04:00\", 37.215, 37.23, 37.21, 37.23, 13065.0, 164, 37.217262], [\"2024-05-03 13:40:00-04:00\", 37.23, 37.24, 37.22, 37.24, 19901.0, 164, 37.233609], [\"2024-05-03 13:41:00-04:00\", 37.2369, 37.25, 37.23, 37.25, 28181.0, 204, 37.23938], [\"2024-05-03 13:42:00-04:00\", 37.2493, 37.2658, 37.24, 37.2627, 53722.0, 288, 37.251868], [\"2024-05-03 13:43:00-04:00\", 37.27, 37.27, 37.24, 37.2417, 27710.0, 189, 37.253913], [\"2024-05-03 13:44:00-04:00\", 37.25, 37.25, 37.24, 37.245, 7206.0, 67, 37.247061], [\"2024-05-03 13:45:00-04:00\", 37.24, 37.24, 37.23, 37.23, 23958.0, 166, 37.238224], [\"2024-05-03 13:46:00-04:00\", 37.24, 37.25, 37.23, 37.2425, 51876.0, 303, 37.24119], [\"2024-05-03 13:47:00-04:00\", 37.25, 37.25, 37.24, 37.2425, 14994.0, 102, 37.247228], [\"2024-05-03 13:48:00-04:00\", 37.245, 37.25, 37.24, 37.245, 10323.0, 93, 37.245962], [\"2024-05-03 13:49:00-04:00\", 37.25, 37.25, 37.24, 37.25, 19174.0, 179, 37.246338], [\"2024-05-03 13:50:00-04:00\", 37.25, 37.27, 37.24, 37.26, 46067.0, 219, 37.253765], [\"2024-05-03 13:51:00-04:00\", 37.26, 37.27, 37.25, 37.265, 68534.0, 309, 37.260921], [\"2024-05-03 13:52:00-04:00\", 37.265, 37.27, 37.25, 37.25, 42760.0, 156, 37.256662], [\"2024-05-03 13:53:00-04:00\", 37.255, 37.26, 37.25, 37.255, 11591.0, 101, 37.255741], [\"2024-05-03 13:54:00-04:00\", 37.255, 37.26, 37.25, 37.25, 6334.0, 110, 37.253741], [\"2024-05-03 13:55:00-04:00\", 37.255, 37.27, 37.25, 37.265, 45014.0, 358, 37.25852], [\"2024-05-03 13:56:00-04:00\", 37.27, 37.27, 37.26, 37.267, 9629.0, 84, 37.267786], [\"2024-05-03 13:57:00-04:00\", 37.27, 37.285, 37.255, 37.2599, 168856.0, 652, 37.270292], [\"2024-05-03 13:58:00-04:00\", 37.255, 37.265, 37.25, 37.255, 40843.0, 167, 37.259095], [\"2024-05-03 13:59:00-04:00\", 37.26, 37.26, 37.24, 37.24, 56391.0, 293, 37.249943], [\"2024-05-03 14:00:00-04:00\", 37.255, 37.26, 37.25, 37.255, 24967.0, 82, 37.255434], [\"2024-05-03 14:01:00-04:00\", 37.255, 37.26, 37.25, 37.26, 4363.0, 53, 37.255912], [\"2024-05-03 14:02:00-04:00\", 37.25, 37.26, 37.25, 37.255, 6905.0, 77, 37.257834], [\"2024-05-03 14:03:00-04:00\", 37.26, 37.26, 37.25, 37.255, 14019.0, 119, 37.255717], [\"2024-05-03 14:04:00-04:00\", 37.26, 37.27, 37.25, 37.27, 34014.0, 315, 37.257548], [\"2024-05-03 14:05:00-04:00\", 37.27, 37.28, 37.26, 37.277, 73564.0, 341, 37.270691], [\"2024-05-03 14:06:00-04:00\", 37.275, 37.28, 37.27, 37.27, 24942.0, 163, 37.273396], [\"2024-05-03 14:07:00-04:00\", 37.27, 37.28, 37.27, 37.27, 76503.0, 237, 37.274104], [\"2024-05-03 14:08:00-04:00\", 37.27, 37.285, 37.26, 37.265, 111873.0, 595, 37.274111], [\"2024-05-03 14:09:00-04:00\", 37.265, 37.27, 37.25, 37.265, 19535.0, 177, 37.258916], [\"2024-05-03 14:10:00-04:00\", 37.27, 37.27, 37.25, 37.255, 46125.0, 198, 37.260399], [\"2024-05-03 14:11:00-04:00\", 37.26, 37.26, 37.24, 37.24, 116281.0, 317, 37.253704], [\"2024-05-03 14:12:00-04:00\", 37.24, 37.26, 37.24, 37.255, 11788.0, 106, 37.250136], [\"2024-05-03 14:13:00-04:00\", 37.25, 37.255, 37.2324, 37.2324, 31078.0, 194, 37.24451], [\"2024-05-03 14:14:00-04:00\", 37.2399, 37.25, 37.23, 37.245, 56285.0, 355, 37.238409], [\"2024-05-03 14:15:00-04:00\", 37.245, 37.26, 37.24, 37.2501, 30694.0, 239, 37.250119], [\"2024-05-03 14:16:00-04:00\", 37.25, 37.25, 37.235, 37.235, 26079.0, 190, 37.245726], [\"2024-05-03 14:17:00-04:00\", 37.24, 37.25, 37.23, 37.24, 16578.0, 195, 37.239013], [\"2024-05-03 14:18:00-04:00\", 37.245, 37.255, 37.235, 37.235, 50147.0, 293, 37.245979], [\"2024-05-03 14:19:00-04:00\", 37.2361, 37.24, 37.2301, 37.235, 6625.0, 75, 37.235838], [\"2024-05-03 14:20:00-04:00\", 37.235, 37.2399, 37.22, 37.23, 40502.0, 300, 37.2295], [\"2024-05-03 14:21:00-04:00\", 37.2359, 37.24, 37.23, 37.24, 18908.0, 113, 37.23458], [\"2024-05-03 14:22:00-04:00\", 37.24, 37.25, 37.23, 37.245, 38987.0, 252, 37.238137], [\"2024-05-03 14:23:00-04:00\", 37.25, 37.25, 37.2301, 37.235, 67329.0, 254, 37.241489], [\"2024-05-03 14:24:00-04:00\", 37.2378, 37.24, 37.23, 37.24, 5771.0, 75, 37.235068], [\"2024-05-03 14:25:00-04:00\", 37.2328, 37.25, 37.23, 37.25, 59286.0, 321, 37.237433], [\"2024-05-03 14:26:00-04:00\", 37.25, 37.26, 37.24, 37.2413, 46253.0, 277, 37.249707], [\"2024-05-03 14:27:00-04:00\", 37.24, 37.2458, 37.23, 37.235, 22872.0, 184, 37.237779], [\"2024-05-03 14:28:00-04:00\", 37.2328, 37.24, 37.22, 37.235, 54713.0, 373, 37.229972], [\"2024-05-03 14:29:00-04:00\", 37.235, 37.245, 37.22, 37.235, 44149.0, 317, 37.232443], [\"2024-05-03 14:30:00-04:00\", 37.235, 37.24, 37.22, 37.2329, 34924.0, 250, 37.230157], [\"2024-05-03 14:31:00-04:00\", 37.235, 37.235, 37.22, 37.2299, 61502.0, 365, 37.229019], [\"2024-05-03 14:32:00-04:00\", 37.23, 37.23, 37.2201, 37.23, 13081.0, 113, 37.227979], [\"2024-05-03 14:33:00-04:00\", 37.2299, 37.23, 37.21, 37.225, 42908.0, 318, 37.220585], [\"2024-05-03 14:34:00-04:00\", 37.225, 37.225, 37.215, 37.215, 8761.0, 103, 37.219349], [\"2024-05-03 14:35:00-04:00\", 37.215, 37.23, 37.21, 37.23, 35476.0, 316, 37.219261], [\"2024-05-03 14:36:00-04:00\", 37.23, 37.23, 37.22, 37.22, 27356.0, 199, 37.221397], [\"2024-05-03 14:37:00-04:00\", 37.22, 37.23, 37.22, 37.2275, 7799.0, 65, 37.224737], [\"2024-05-03 14:38:00-04:00\", 37.22, 37.23, 37.21, 37.225, 38799.0, 320, 37.21924], [\"2024-05-03 14:39:00-04:00\", 37.225, 37.225, 37.21, 37.22, 16434.0, 164, 37.215885], [\"2024-05-03 14:40:00-04:00\", 37.215, 37.215, 37.19, 37.1967, 62035.0, 186, 37.199095], [\"2024-05-03 14:41:00-04:00\", 37.2, 37.22, 37.19, 37.21, 71548.0, 448, 37.209111], [\"2024-05-03 14:42:00-04:00\", 37.21, 37.215, 37.19, 37.19, 31175.0, 204, 37.205472], [\"2024-05-03 14:43:00-04:00\", 37.19, 37.2, 37.19, 37.195, 4532.0, 91, 37.194788], [\"2024-05-03 14:44:00-04:00\", 37.195, 37.2, 37.18, 37.185, 25448.0, 156, 37.189925], [\"2024-05-03 14:45:00-04:00\", 37.18, 37.19, 37.17, 37.17, 43268.0, 375, 37.178249], [\"2024-05-03 14:46:00-04:00\", 37.18, 37.2, 37.18, 37.195, 42586.0, 177, 37.192446], [\"2024-05-03 14:47:00-04:00\", 37.19, 37.21, 37.19, 37.205, 22909.0, 208, 37.197527], [\"2024-05-03 14:48:00-04:00\", 37.2, 37.21, 37.1842, 37.19, 36450.0, 233, 37.195835], [\"2024-05-03 14:49:00-04:00\", 37.185, 37.2, 37.18, 37.195, 17768.0, 181, 37.18982], [\"2024-05-03 14:50:00-04:00\", 37.2, 37.21, 37.19, 37.2, 20955.0, 196, 37.20007], [\"2024-05-03 14:51:00-04:00\", 37.205, 37.21, 37.2, 37.2055, 15692.0, 90, 37.202752], [\"2024-05-03 14:52:00-04:00\", 37.205, 37.21, 37.19, 37.2, 49081.0, 279, 37.201858], [\"2024-05-03 14:53:00-04:00\", 37.195, 37.2, 37.19, 37.19, 12224.0, 115, 37.195994], [\"2024-05-03 14:54:00-04:00\", 37.2, 37.2, 37.18, 37.19, 65355.0, 501, 37.18784], [\"2024-05-03 14:55:00-04:00\", 37.19, 37.2, 37.17, 37.2, 91336.0, 413, 37.187402], [\"2024-05-03 14:56:00-04:00\", 37.2, 37.2, 37.19, 37.195, 13644.0, 92, 37.193545], [\"2024-05-03 14:57:00-04:00\", 37.195, 37.21, 37.19, 37.205, 36530.0, 248, 37.200465], [\"2024-05-03 14:58:00-04:00\", 37.205, 37.21, 37.1901, 37.195, 32951.0, 179, 37.199778], [\"2024-05-03 14:59:00-04:00\", 37.195, 37.2, 37.19, 37.19, 18751.0, 146, 37.193154], [\"2024-05-03 15:00:00-04:00\", 37.19, 37.19, 37.17, 37.1711, 47799.0, 236, 37.181914], [\"2024-05-03 15:01:00-04:00\", 37.175, 37.175, 37.16, 37.16, 41366.0, 250, 37.165397], [\"2024-05-03 15:02:00-04:00\", 37.165, 37.17, 37.15, 37.16, 147436.0, 594, 37.157455], [\"2024-05-03 15:03:00-04:00\", 37.1566, 37.19, 37.15, 37.175, 67192.0, 368, 37.177087], [\"2024-05-03 15:04:00-04:00\", 37.175, 37.175, 37.155, 37.1601, 174256.0, 516, 37.165416], [\"2024-05-03 15:05:00-04:00\", 37.1659, 37.19, 37.16, 37.185, 69122.0, 300, 37.177805], [\"2024-05-03 15:06:00-04:00\", 37.18, 37.185, 37.17, 37.1732, 51374.0, 284, 37.178973], [\"2024-05-03 15:07:00-04:00\", 37.17, 37.175, 37.154, 37.155, 136602.0, 349, 37.163995], [\"2024-05-03 15:08:00-04:00\", 37.155, 37.18, 37.15, 37.17, 159773.0, 575, 37.157816], [\"2024-05-03 15:09:00-04:00\", 37.17, 37.18, 37.17, 37.18, 10843.0, 94, 37.17595], [\"2024-05-03 15:10:00-04:00\", 37.175, 37.18, 37.17, 37.175, 31390.0, 174, 37.177209], [\"2024-05-03 15:11:00-04:00\", 37.17, 37.175, 37.15, 37.155, 89165.0, 300, 37.162378], [\"2024-05-03 15:12:00-04:00\", 37.15, 37.1573, 37.13, 37.13, 30541.0, 241, 37.142295], [\"2024-05-03 15:13:00-04:00\", 37.13, 37.1357, 37.13, 37.13, 17912.0, 155, 37.132448], [\"2024-05-03 15:14:00-04:00\", 37.13, 37.14, 37.12, 37.14, 126685.0, 600, 37.133367], [\"2024-05-03 15:15:00-04:00\", 37.135, 37.15, 37.13, 37.14, 44852.0, 266, 37.145596], [\"2024-05-03 15:16:00-04:00\", 37.15, 37.166, 37.14, 37.155, 52191.0, 292, 37.158272], [\"2024-05-03 15:17:00-04:00\", 37.155, 37.155, 37.14, 37.15, 20961.0, 149, 37.149627], [\"2024-05-03 15:18:00-04:00\", 37.15, 37.16, 37.14, 37.154, 115283.0, 379, 37.14952], [\"2024-05-03 15:19:00-04:00\", 37.16, 37.18, 37.15, 37.1721, 51897.0, 270, 37.169476], [\"2024-05-03 15:20:00-04:00\", 37.18, 37.18, 37.17, 37.1701, 56599.0, 204, 37.170928], [\"2024-05-03 15:21:00-04:00\", 37.175, 37.175, 37.1623, 37.1623, 24616.0, 174, 37.170468], [\"2024-05-03 15:22:00-04:00\", 37.17, 37.17, 37.16, 37.16, 23842.0, 143, 37.164957], [\"2024-05-03 15:23:00-04:00\", 37.165, 37.18, 37.16, 37.18, 44103.0, 407, 37.167032], [\"2024-05-03 15:24:00-04:00\", 37.175, 37.19, 37.17, 37.185, 49206.0, 301, 37.178021], [\"2024-05-03 15:25:00-04:00\", 37.185, 37.2, 37.18, 37.2, 26751.0, 242, 37.190107], [\"2024-05-03 15:26:00-04:00\", 37.2, 37.2, 37.19, 37.2, 50605.0, 130, 37.192155], [\"2024-05-03 15:27:00-04:00\", 37.2, 37.21, 37.19, 37.205, 49449.0, 435, 37.198116], [\"2024-05-03 15:28:00-04:00\", 37.2, 37.2069, 37.19, 37.195, 35427.0, 199, 37.199788], [\"2024-05-03 15:29:00-04:00\", 37.195, 37.2, 37.19, 37.195, 7915.0, 110, 37.196661], [\"2024-05-03 15:30:00-04:00\", 37.19, 37.195, 37.16, 37.19, 139751.0, 818, 37.177476], [\"2024-05-03 15:31:00-04:00\", 37.1888, 37.19, 37.18, 37.18, 39948.0, 277, 37.187107], [\"2024-05-03 15:32:00-04:00\", 37.18, 37.19, 37.17, 37.175, 40158.0, 208, 37.17873], [\"2024-05-03 15:33:00-04:00\", 37.17, 37.18, 37.16, 37.16, 57549.0, 287, 37.167608], [\"2024-05-03 15:34:00-04:00\", 37.16, 37.17, 37.16, 37.16, 21125.0, 127, 37.162878], [\"2024-05-03 15:35:00-04:00\", 37.165, 37.17, 37.16, 37.1639, 42819.0, 320, 37.164828], [\"2024-05-03 15:36:00-04:00\", 37.165, 37.2, 37.16, 37.19, 96883.0, 678, 37.176447], [\"2024-05-03 15:37:00-04:00\", 37.195, 37.2, 37.18, 37.195, 77299.0, 469, 37.19044], [\"2024-05-03 15:38:00-04:00\", 37.195, 37.21, 37.19, 37.205, 55270.0, 187, 37.201891], [\"2024-05-03 15:39:00-04:00\", 37.205, 37.205, 37.19, 37.19, 51363.0, 298, 37.198984], [\"2024-05-03 15:40:00-04:00\", 37.2, 37.22, 37.19, 37.215, 99489.0, 488, 37.208925], [\"2024-05-03 15:41:00-04:00\", 37.215, 37.23, 37.21, 37.2225, 35961.0, 304, 37.223693], [\"2024-05-03 15:42:00-04:00\", 37.23, 37.23, 37.21, 37.215, 81146.0, 383, 37.220975], [\"2024-05-03 15:43:00-04:00\", 37.215, 37.22, 37.21, 37.215, 12206.0, 148, 37.213936], [\"2024-05-03 15:44:00-04:00\", 37.215, 37.22, 37.19, 37.205, 148752.0, 813, 37.203869], [\"2024-05-03 15:45:00-04:00\", 37.205, 37.21, 37.2, 37.21, 54537.0, 284, 37.204268], [\"2024-05-03 15:46:00-04:00\", 37.205, 37.22, 37.2, 37.215, 84856.0, 539, 37.210688], [\"2024-05-03 15:47:00-04:00\", 37.215, 37.22, 37.2, 37.2, 69586.0, 370, 37.208939], [\"2024-05-03 15:48:00-04:00\", 37.205, 37.235, 37.2, 37.23, 168111.0, 906, 37.219255], [\"2024-05-03 15:49:00-04:00\", 37.23, 37.23, 37.21, 37.215, 109873.0, 531, 37.220949], [\"2024-05-03 15:50:00-04:00\", 37.21, 37.23, 37.2, 37.23, 140730.0, 752, 37.218387], [\"2024-05-03 15:51:00-04:00\", 37.23, 37.23, 37.22, 37.23, 136291.0, 607, 37.229018], [\"2024-05-03 15:52:00-04:00\", 37.23, 37.25, 37.23, 37.245, 342943.0, 845, 37.236599], [\"2024-05-03 15:53:00-04:00\", 37.245, 37.25, 37.23, 37.25, 183122.0, 799, 37.242455], [\"2024-05-03 15:54:00-04:00\", 37.25, 37.25, 37.225, 37.245, 212707.0, 750, 37.240248], [\"2024-05-03 15:55:00-04:00\", 37.245, 37.25, 37.23, 37.25, 237412.0, 1017, 37.239737], [\"2024-05-03 15:56:00-04:00\", 37.245, 37.25, 37.24, 37.245, 229952.0, 756, 37.24818], [\"2024-05-03 15:57:00-04:00\", 37.245, 37.25, 37.23, 37.23, 223157.0, 1178, 37.240697], [\"2024-05-03 15:58:00-04:00\", 37.235, 37.25, 37.23, 37.245, 183872.0, 1188, 37.239081], [\"2024-05-03 15:59:00-04:00\", 37.24, 37.27, 37.23, 37.235, 665048.0, 2007, 37.254239], [\"2024-05-03 16:00:00-04:00\", 37.25, 37.25, 37.24, 37.24, 3493029.0, 87, 37.249996], [\"2024-05-06 09:30:00-04:00\", 37.66, 37.73, 37.66, 37.72, 528053.0, 1692, 37.679392], [\"2024-05-06 09:31:00-04:00\", 37.73, 37.775, 37.6701, 37.675, 137903.0, 776, 37.733782], [\"2024-05-06 09:32:00-04:00\", 37.67, 37.72, 37.62, 37.63, 71976.0, 635, 37.67961], [\"2024-05-06 09:33:00-04:00\", 37.62, 37.635, 37.571, 37.5742, 65537.0, 549, 37.61015], [\"2024-05-06 09:34:00-04:00\", 37.58, 37.6, 37.5336, 37.58, 54477.0, 431, 37.565584], [\"2024-05-06 09:35:00-04:00\", 37.59, 37.595, 37.42, 37.42, 105494.0, 941, 37.499825], [\"2024-05-06 09:36:00-04:00\", 37.42, 37.45, 37.41, 37.4111, 48078.0, 415, 37.423795], [\"2024-05-06 09:37:00-04:00\", 37.41, 37.415, 37.36, 37.4022, 98224.0, 817, 37.380505], [\"2024-05-06 09:38:00-04:00\", 37.4096, 37.4299, 37.3901, 37.42, 28525.0, 264, 37.412274], [\"2024-05-06 09:39:00-04:00\", 37.425, 37.45, 37.39, 37.43, 86647.0, 550, 37.426582], [\"2024-05-06 09:40:00-04:00\", 37.435, 37.46, 37.41, 37.44, 81039.0, 686, 37.442458], [\"2024-05-06 09:41:00-04:00\", 37.445, 37.4963, 37.445, 37.485, 34603.0, 340, 37.470951], [\"2024-05-06 09:42:00-04:00\", 37.48, 37.54, 37.48, 37.535, 52824.0, 467, 37.504931], [\"2024-05-06 09:43:00-04:00\", 37.54, 37.56, 37.51, 37.5508, 85830.0, 527, 37.542161], [\"2024-05-06 09:44:00-04:00\", 37.56, 37.56, 37.5, 37.525, 35402.0, 259, 37.521186], [\"2024-05-06 09:45:00-04:00\", 37.525, 37.53, 37.5, 37.53, 31282.0, 244, 37.518777], [\"2024-05-06 09:46:00-04:00\", 37.53, 37.545, 37.51, 37.5188, 51514.0, 510, 37.528074], [\"2024-05-06 09:47:00-04:00\", 37.515, 37.545, 37.5, 37.5299, 62585.0, 496, 37.523608], [\"2024-05-06 09:48:00-04:00\", 37.525, 37.53, 37.49, 37.5, 36953.0, 466, 37.503971], [\"2024-05-06 09:49:00-04:00\", 37.4971, 37.4971, 37.43, 37.435, 84718.0, 624, 37.456879], [\"2024-05-06 09:50:00-04:00\", 37.44, 37.47, 37.425, 37.465, 43653.0, 578, 37.439057], [\"2024-05-06 09:51:00-04:00\", 37.465, 37.48, 37.46, 37.475, 38067.0, 542, 37.470691], [\"2024-05-06 09:52:00-04:00\", 37.47, 37.5, 37.465, 37.495, 29885.0, 534, 37.481158], [\"2024-05-06 09:53:00-04:00\", 37.495, 37.508, 37.49, 37.495, 23496.0, 408, 37.498365], [\"2024-05-06 09:54:00-04:00\", 37.4959, 37.52, 37.49, 37.515, 27002.0, 439, 37.501893], [\"2024-05-06 09:55:00-04:00\", 37.515, 37.535, 37.515, 37.535, 69102.0, 532, 37.524603], [\"2024-05-06 09:56:00-04:00\", 37.535, 37.565, 37.52, 37.535, 146343.0, 692, 37.542184], [\"2024-05-06 09:57:00-04:00\", 37.5325, 37.55, 37.5201, 37.545, 50178.0, 514, 37.53488], [\"2024-05-06 09:58:00-04:00\", 37.545, 37.57, 37.5, 37.5, 259006.0, 1137, 37.529074], [\"2024-05-06 09:59:00-04:00\", 37.5, 37.51, 37.485, 37.49, 61642.0, 637, 37.496605], [\"2024-05-06 10:00:00-04:00\", 37.495, 37.51, 37.48, 37.48, 51664.0, 557, 37.492759], [\"2024-05-06 10:01:00-04:00\", 37.485, 37.5075, 37.47, 37.505, 37922.0, 548, 37.490171], [\"2024-05-06 10:02:00-04:00\", 37.5, 37.51, 37.49, 37.51, 59988.0, 559, 37.504451], [\"2024-05-06 10:03:00-04:00\", 37.505, 37.555, 37.5, 37.535, 122979.0, 794, 37.535975], [\"2024-05-06 10:04:00-04:00\", 37.53, 37.57, 37.53, 37.57, 122217.0, 656, 37.547546], [\"2024-05-06 10:05:00-04:00\", 37.57, 37.58, 37.55, 37.5701, 95666.0, 587, 37.560303], [\"2024-05-06 10:06:00-04:00\", 37.57, 37.59, 37.54, 37.565, 156640.0, 910, 37.562892], [\"2024-05-06 10:07:00-04:00\", 37.57, 37.58, 37.55, 37.58, 216270.0, 767, 37.558144], [\"2024-05-06 10:08:00-04:00\", 37.58, 37.595, 37.56, 37.59, 131920.0, 602, 37.578818], [\"2024-05-06 10:09:00-04:00\", 37.5975, 37.5975, 37.57, 37.58, 66794.0, 482, 37.581487], [\"2024-05-06 10:10:00-04:00\", 37.58, 37.59, 37.5699, 37.58, 75591.0, 584, 37.576531], [\"2024-05-06 10:11:00-04:00\", 37.58, 37.62, 37.57, 37.615, 103429.0, 677, 37.590424], [\"2024-05-06 10:12:00-04:00\", 37.62, 37.64, 37.61, 37.615, 70599.0, 597, 37.626177], [\"2024-05-06 10:13:00-04:00\", 37.615, 37.63, 37.61, 37.625, 55390.0, 492, 37.619613], [\"2024-05-06 10:14:00-04:00\", 37.625, 37.64, 37.62, 37.635, 53213.0, 521, 37.633573], [\"2024-05-06 10:15:00-04:00\", 37.635, 37.64, 37.63, 37.64, 73811.0, 525, 37.636658], [\"2024-05-06 10:16:00-04:00\", 37.635, 37.68, 37.63, 37.675, 154320.0, 836, 37.644881], [\"2024-05-06 10:17:00-04:00\", 37.68, 37.69, 37.63, 37.6388, 136844.0, 528, 37.664745], [\"2024-05-06 10:18:00-04:00\", 37.635, 37.66, 37.63, 37.66, 78184.0, 351, 37.65105], [\"2024-05-06 10:19:00-04:00\", 37.6586, 37.6586, 37.6, 37.605, 370349.0, 1266, 37.617067], [\"2024-05-06 10:20:00-04:00\", 37.61, 37.63, 37.591, 37.625, 45967.0, 326, 37.613028], [\"2024-05-06 10:21:00-04:00\", 37.6225, 37.645, 37.6225, 37.645, 54109.0, 341, 37.633083], [\"2024-05-06 10:22:00-04:00\", 37.64, 37.65, 37.6225, 37.63, 29164.0, 218, 37.636217], [\"2024-05-06 10:23:00-04:00\", 37.63, 37.64, 37.625, 37.6352, 47286.0, 297, 37.631399], [\"2024-05-06 10:24:00-04:00\", 37.636, 37.645, 37.61, 37.625, 188077.0, 685, 37.621165], [\"2024-05-06 10:25:00-04:00\", 37.63, 37.6463, 37.625, 37.6463, 53205.0, 226, 37.633405], [\"2024-05-06 10:26:00-04:00\", 37.64, 37.6499, 37.62, 37.635, 68606.0, 349, 37.63221], [\"2024-05-06 10:27:00-04:00\", 37.635, 37.65, 37.6, 37.6125, 193726.0, 680, 37.625863], [\"2024-05-06 10:28:00-04:00\", 37.615, 37.65, 37.61, 37.64, 51868.0, 351, 37.631374], [\"2024-05-06 10:29:00-04:00\", 37.635, 37.64, 37.62, 37.625, 47109.0, 331, 37.630553], [\"2024-05-06 10:30:00-04:00\", 37.6253, 37.6465, 37.6225, 37.6326, 60041.0, 358, 37.636871], [\"2024-05-06 10:31:00-04:00\", 37.64, 37.64, 37.59, 37.595, 109166.0, 569, 37.61069], [\"2024-05-06 10:32:00-04:00\", 37.59, 37.605, 37.58, 37.59, 140634.0, 592, 37.59493], [\"2024-05-06 10:33:00-04:00\", 37.595, 37.6, 37.58, 37.5928, 34806.0, 222, 37.588584], [\"2024-05-06 10:34:00-04:00\", 37.5944, 37.6, 37.59, 37.595, 24472.0, 181, 37.598044], [\"2024-05-06 10:35:00-04:00\", 37.6, 37.6, 37.58, 37.585, 73002.0, 403, 37.592228], [\"2024-05-06 10:36:00-04:00\", 37.585, 37.59, 37.565, 37.585, 42753.0, 270, 37.578347], [\"2024-05-06 10:37:00-04:00\", 37.58, 37.5999, 37.573, 37.595, 41170.0, 267, 37.584275], [\"2024-05-06 10:38:00-04:00\", 37.6, 37.63, 37.595, 37.615, 195626.0, 564, 37.604253], [\"2024-05-06 10:39:00-04:00\", 37.6117, 37.62, 37.6, 37.605, 24680.0, 173, 37.611025], [\"2024-05-06 10:40:00-04:00\", 37.6091, 37.62, 37.6024, 37.615, 46927.0, 224, 37.610859], [\"2024-05-06 10:41:00-04:00\", 37.6132, 37.62, 37.61, 37.615, 18069.0, 135, 37.613728], [\"2024-05-06 10:42:00-04:00\", 37.6102, 37.62, 37.6, 37.605, 40390.0, 205, 37.611228], [\"2024-05-06 10:43:00-04:00\", 37.6, 37.61, 37.575, 37.575, 32076.0, 223, 37.592903], [\"2024-05-06 10:44:00-04:00\", 37.575, 37.6, 37.5725, 37.5993, 42092.0, 282, 37.58569], [\"2024-05-06 10:45:00-04:00\", 37.5994, 37.6, 37.5801, 37.5924, 61458.0, 335, 37.590276], [\"2024-05-06 10:46:00-04:00\", 37.59, 37.6, 37.58, 37.59, 34244.0, 179, 37.592529], [\"2024-05-06 10:47:00-04:00\", 37.59, 37.6, 37.5781, 37.595, 45985.0, 292, 37.589028], [\"2024-05-06 10:48:00-04:00\", 37.5937, 37.615, 37.59, 37.595, 36241.0, 230, 37.603485], [\"2024-05-06 10:49:00-04:00\", 37.595, 37.62, 37.59, 37.595, 45751.0, 292, 37.602902], [\"2024-05-06 10:50:00-04:00\", 37.595, 37.6099, 37.59, 37.6, 33945.0, 217, 37.597478], [\"2024-05-06 10:51:00-04:00\", 37.59, 37.6, 37.565, 37.5799, 37035.0, 224, 37.581268], [\"2024-05-06 10:52:00-04:00\", 37.5795, 37.585, 37.56, 37.56, 38973.0, 303, 37.576168], [\"2024-05-06 10:53:00-04:00\", 37.565, 37.565, 37.55, 37.5515, 27892.0, 221, 37.556558], [\"2024-05-06 10:54:00-04:00\", 37.555, 37.57, 37.55, 37.5625, 30748.0, 190, 37.563593], [\"2024-05-06 10:55:00-04:00\", 37.5626, 37.58, 37.5625, 37.58, 23250.0, 203, 37.572773], [\"2024-05-06 10:56:00-04:00\", 37.575, 37.58, 37.54, 37.545, 60986.0, 298, 37.558354], [\"2024-05-06 10:57:00-04:00\", 37.54, 37.56, 37.54, 37.555, 38361.0, 236, 37.549699], [\"2024-05-06 10:58:00-04:00\", 37.555, 37.56, 37.54, 37.555, 95952.0, 333, 37.551387], [\"2024-05-06 10:59:00-04:00\", 37.55, 37.56, 37.55, 37.56, 15951.0, 112, 37.55684], [\"2024-05-06 11:00:00-04:00\", 37.56, 37.57, 37.55, 37.55, 56455.0, 323, 37.560951], [\"2024-05-06 11:01:00-04:00\", 37.555, 37.56, 37.545, 37.5599, 86502.0, 304, 37.552169], [\"2024-05-06 11:02:00-04:00\", 37.5589, 37.56, 37.54, 37.5402, 48779.0, 190, 37.551458], [\"2024-05-06 11:03:00-04:00\", 37.545, 37.55, 37.525, 37.535, 60161.0, 287, 37.539518], [\"2024-05-06 11:04:00-04:00\", 37.5378, 37.5479, 37.5301, 37.545, 38544.0, 216, 37.539582], [\"2024-05-06 11:05:00-04:00\", 37.54, 37.546, 37.51, 37.515, 70045.0, 337, 37.526255], [\"2024-05-06 11:06:00-04:00\", 37.51, 37.54, 37.51, 37.54, 34303.0, 220, 37.531502], [\"2024-05-06 11:07:00-04:00\", 37.54, 37.55, 37.535, 37.55, 41525.0, 132, 37.540788], [\"2024-05-06 11:08:00-04:00\", 37.55, 37.55, 37.53, 37.53, 38257.0, 202, 37.54043], [\"2024-05-06 11:09:00-04:00\", 37.53, 37.55, 37.53, 37.545, 27757.0, 200, 37.537852], [\"2024-05-06 11:10:00-04:00\", 37.55, 37.55, 37.53, 37.54, 37286.0, 224, 37.54249], [\"2024-05-06 11:11:00-04:00\", 37.535, 37.5487, 37.53, 37.5377, 44301.0, 228, 37.539067], [\"2024-05-06 11:12:00-04:00\", 37.535, 37.54, 37.53, 37.53, 13171.0, 141, 37.535498], [\"2024-05-06 11:13:00-04:00\", 37.54, 37.54, 37.52, 37.53, 38296.0, 226, 37.530477], [\"2024-05-06 11:14:00-04:00\", 37.535, 37.545, 37.53, 37.5343, 23827.0, 165, 37.538975], [\"2024-05-06 11:15:00-04:00\", 37.53, 37.555, 37.53, 37.555, 23269.0, 213, 37.54198], [\"2024-05-06 11:16:00-04:00\", 37.558, 37.56, 37.535, 37.54, 135625.0, 348, 37.544734], [\"2024-05-06 11:17:00-04:00\", 37.54, 37.5574, 37.53, 37.5376, 57068.0, 338, 37.545123], [\"2024-05-06 11:18:00-04:00\", 37.5382, 37.5394, 37.515, 37.52, 66888.0, 338, 37.52711], [\"2024-05-06 11:19:00-04:00\", 37.52, 37.54, 37.52, 37.5301, 36281.0, 148, 37.528228], [\"2024-05-06 11:20:00-04:00\", 37.535, 37.55, 37.53, 37.545, 68892.0, 293, 37.537478], [\"2024-05-06 11:21:00-04:00\", 37.5456, 37.55, 37.53, 37.545, 32164.0, 187, 37.54088], [\"2024-05-06 11:22:00-04:00\", 37.5409, 37.545, 37.51, 37.5177, 74526.0, 225, 37.524742], [\"2024-05-06 11:23:00-04:00\", 37.5199, 37.52, 37.5, 37.5, 29909.0, 142, 37.509872], [\"2024-05-06 11:24:00-04:00\", 37.5, 37.51, 37.49, 37.495, 79023.0, 298, 37.499907], [\"2024-05-06 11:25:00-04:00\", 37.495, 37.4986, 37.47, 37.4986, 39834.0, 239, 37.484951], [\"2024-05-06 11:26:00-04:00\", 37.4945, 37.505, 37.49, 37.4982, 47754.0, 281, 37.495652], [\"2024-05-06 11:27:00-04:00\", 37.495, 37.5, 37.47, 37.475, 64122.0, 222, 37.480864], [\"2024-05-06 11:28:00-04:00\", 37.47, 37.49, 37.465, 37.48, 69770.0, 347, 37.47696], [\"2024-05-06 11:29:00-04:00\", 37.485, 37.49, 37.47, 37.49, 45178.0, 278, 37.48198], [\"2024-05-06 11:30:00-04:00\", 37.495, 37.5, 37.4725, 37.4725, 19916.0, 150, 37.488973], [\"2024-05-06 11:31:00-04:00\", 37.4766, 37.4999, 37.4725, 37.48, 52485.0, 299, 37.486889], [\"2024-05-06 11:32:00-04:00\", 37.4825, 37.4873, 37.475, 37.485, 32775.0, 226, 37.480962], [\"2024-05-06 11:33:00-04:00\", 37.48, 37.485, 37.47, 37.475, 25795.0, 192, 37.4756], [\"2024-05-06 11:34:00-04:00\", 37.47, 37.49, 37.47, 37.485, 25650.0, 210, 37.481738], [\"2024-05-06 11:35:00-04:00\", 37.49, 37.525, 37.49, 37.5, 76940.0, 433, 37.506907], [\"2024-05-06 11:36:00-04:00\", 37.51, 37.51, 37.495, 37.505, 29354.0, 188, 37.501721], [\"2024-05-06 11:37:00-04:00\", 37.5, 37.511, 37.49, 37.505, 49202.0, 293, 37.505465]];\n",
|
|
"\n",
|
|
" // Define the dt_args\n",
|
|
" let dt_args = {\"layout\": {\"topStart\": \"pageLength\", \"topEnd\": \"search\", \"bottomStart\": \"info\", \"bottomEnd\": \"paging\"}, \"order\": [], \"warn_on_dom\": true, \"fnInfoCallback\": function (oSettings, iStart, iEnd, iMax, iTotal, sPre) { return sPre + ' (<a href=\"https://mwouts.github.io/itables/downsampling.html\">downsampled</a> from 2,083x7 to 1,170x7 as maxBytes=64KB)'; }};\n",
|
|
" dt_args[\"data\"] = data;\n",
|
|
"\n",
|
|
" \n",
|
|
" new DataTable(table, dt_args);\n",
|
|
" });\n",
|
|
"</script>\n"
|
|
],
|
|
"text/plain": [
|
|
" Open High Low Close Volume \\\n",
|
|
"Open time \n",
|
|
"2024-04-29 09:30:00-04:00 37.8400 37.940 37.7600 37.870 476819.0 \n",
|
|
"2024-04-29 09:31:00-04:00 37.8750 37.985 37.7800 37.815 147198.0 \n",
|
|
"2024-04-29 09:32:00-04:00 37.8050 37.850 37.7750 37.800 107729.0 \n",
|
|
"2024-04-29 09:33:00-04:00 37.7935 37.880 37.7935 37.860 52305.0 \n",
|
|
"2024-04-29 09:34:00-04:00 37.8600 37.890 37.8350 37.860 41294.0 \n",
|
|
"... ... ... ... ... ... \n",
|
|
"2024-05-06 11:33:00-04:00 37.4800 37.485 37.4700 37.475 25795.0 \n",
|
|
"2024-05-06 11:34:00-04:00 37.4700 37.490 37.4700 37.485 25650.0 \n",
|
|
"2024-05-06 11:35:00-04:00 37.4900 37.525 37.4900 37.500 76940.0 \n",
|
|
"2024-05-06 11:36:00-04:00 37.5100 37.510 37.4950 37.505 29354.0 \n",
|
|
"2024-05-06 11:37:00-04:00 37.5000 37.511 37.4900 37.505 49202.0 \n",
|
|
"\n",
|
|
" Trade count VWAP \n",
|
|
"Open time \n",
|
|
"2024-04-29 09:30:00-04:00 2738 37.855352 \n",
|
|
"2024-04-29 09:31:00-04:00 975 37.904413 \n",
|
|
"2024-04-29 09:32:00-04:00 875 37.812062 \n",
|
|
"2024-04-29 09:33:00-04:00 517 37.842597 \n",
|
|
"2024-04-29 09:34:00-04:00 403 37.855641 \n",
|
|
"... ... ... \n",
|
|
"2024-05-06 11:33:00-04:00 192 37.475600 \n",
|
|
"2024-05-06 11:34:00-04:00 210 37.481738 \n",
|
|
"2024-05-06 11:35:00-04:00 433 37.506907 \n",
|
|
"2024-05-06 11:36:00-04:00 188 37.501721 \n",
|
|
"2024-05-06 11:37:00-04:00 293 37.505465 \n",
|
|
"\n",
|
|
"[2083 rows x 7 columns]"
|
|
]
|
|
},
|
|
"execution_count": 81,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"#filter na dny\n",
|
|
"# dates_of_interest = pd.to_datetime(['2024-04-22', '2024-04-23']).tz_localize('US/Eastern')\n",
|
|
"# filtered_df = df.loc[df.index.normalize().isin(dates_of_interest)]\n",
|
|
"\n",
|
|
"# df = filtered_df\n",
|
|
"# df.info()\n",
|
|
"\n",
|
|
"basic_data.data[\"BAC\"]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 82,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<table id=\"itables_f9a051e7_0a8e_45f7_87c3_11e134516f20\" class=\"display nowrap\" data-quarto-disable-processing=\"true\" style=\"table-layout:auto;width:auto;margin:auto;caption-side:bottom\">\n",
|
|
"<thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Open</th>\n",
|
|
" <th>High</th>\n",
|
|
" <th>Low</th>\n",
|
|
" <th>Close</th>\n",
|
|
" <th>Volume</th>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Open time</th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" </tr>\n",
|
|
" </thead><tbody><tr>\n",
|
|
"<td style=\"vertical-align:middle; text-align:left\">\n",
|
|
"<div style=\"float:left; margin-right: 10px;\">\n",
|
|
"<a href=https://mwouts.github.io/itables/><svg class=\"main-svg\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
|
|
"width=\"64\" viewBox=\"0 0 500 400\" style=\"font-family: 'Droid Sans', sans-serif;\">\n",
|
|
" <g style=\"fill:#d9d7fc\">\n",
|
|
" <path d=\"M100,400H500V357H100Z\" />\n",
|
|
" <path d=\"M100,300H400V257H100Z\" />\n",
|
|
" <path d=\"M0,200H400V157H0Z\" />\n",
|
|
" <path d=\"M100,100H500V57H100Z\" />\n",
|
|
" <path d=\"M100,350H500V307H100Z\" />\n",
|
|
" <path d=\"M100,250H400V207H100Z\" />\n",
|
|
" <path d=\"M0,150H400V107H0Z\" />\n",
|
|
" <path d=\"M100,50H500V7H100Z\" />\n",
|
|
" </g>\n",
|
|
" <g style=\"fill:#1a1366;stroke:#1a1366;\">\n",
|
|
" <rect x=\"100\" y=\"7\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"0\" y=\"107\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"0;0;400\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"207\" width=\"300\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;300;0\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;400\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"307\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <g style=\"fill:transparent;stroke-width:8; stroke-linejoin:round\" rx=\"5\">\n",
|
|
" <g transform=\"translate(45 50) rotate(-45)\">\n",
|
|
" <circle r=\"33\" cx=\"0\" cy=\"0\" />\n",
|
|
" <rect x=\"-8\" y=\"32\" width=\"16\" height=\"30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(450 152)\">\n",
|
|
" <polyline points=\"-15,-20 -35,-20 -35,40 25,40 25,20\" />\n",
|
|
" <rect x=\"-15\" y=\"-40\" width=\"60\" height=\"60\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(50 352)\">\n",
|
|
" <polygon points=\"-35,-5 0,-40 35,-5\" />\n",
|
|
" <polygon points=\"-35,10 0,45 35,10\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(75 250)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(425 250) rotate(180)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
"</svg>\n",
|
|
"</a>\n",
|
|
"</div>\n",
|
|
"<div>\n",
|
|
"Loading ITables v2.0.1 from the <code>init_notebook_mode</code> cell...\n",
|
|
"(need <a href=https://mwouts.github.io/itables/troubleshooting.html>help</a>?)</td>\n",
|
|
"</div>\n",
|
|
"</tr></tbody>\n",
|
|
"\n",
|
|
"</table>\n",
|
|
"<script type=\"module\">\n",
|
|
" const { DataTable, jQuery: $ } = await import(window._datatables_src_for_itables_2_0_1);\n",
|
|
"\n",
|
|
" document.querySelectorAll(\"#itables_f9a051e7_0a8e_45f7_87c3_11e134516f20:not(.dataTable)\").forEach(table => {\n",
|
|
" // Define the table data\n",
|
|
" const data = [[\"2024-04-29 09:30:00-04:00\", 37.84, 37.985, 37.7349, 37.88, 2098173.0], [\"2024-04-29 09:45:00-04:00\", 37.875, 38.03, 37.8607, 37.985, 1030038.0], [\"2024-04-29 10:00:00-04:00\", 37.99, 38.06, 37.96, 38.0145, 933777.0], [\"2024-04-29 10:15:00-04:00\", 38.01, 38.03, 37.95, 37.965, 657084.0], [\"2024-04-29 10:30:00-04:00\", 37.965, 37.995, 37.925, 37.96, 617961.0], [\"2024-04-29 10:45:00-04:00\", 37.96, 37.97, 37.91, 37.94, 619011.0], [\"2024-04-29 11:00:00-04:00\", 37.93, 37.96, 37.9, 37.915, 573918.0], [\"2024-04-29 11:15:00-04:00\", 37.915, 37.93, 37.86, 37.8986, 684857.0], [\"2024-04-29 11:30:00-04:00\", 37.895, 37.91, 37.84, 37.845, 440393.0], [\"2024-04-29 11:45:00-04:00\", 37.84, 37.86, 37.8, 37.808, 531641.0], [\"2024-04-29 12:00:00-04:00\", 37.8, 37.8, 37.78, 37.795, 677665.0], [\"2024-04-29 12:15:00-04:00\", 37.8, 37.8, 37.76, 37.765, 267349.0], [\"2024-04-29 12:30:00-04:00\", 37.765, 37.8, 37.75, 37.75, 512259.0], [\"2024-04-29 12:45:00-04:00\", 37.76, 37.77, 37.71, 37.715, 442774.0], [\"2024-04-29 13:00:00-04:00\", 37.715, 37.75, 37.71, 37.7149, 440580.0], [\"2024-04-29 13:15:00-04:00\", 37.71, 37.76, 37.704, 37.7582, 397411.0], [\"2024-04-29 13:30:00-04:00\", 37.76, 37.8, 37.74, 37.775, 474927.0], [\"2024-04-29 13:45:00-04:00\", 37.78, 37.79, 37.7, 37.705, 886580.0], [\"2024-04-29 14:00:00-04:00\", 37.705, 37.76, 37.69, 37.75, 831917.0], [\"2024-04-29 14:15:00-04:00\", 37.74, 37.76, 37.7, 37.7138, 551142.0], [\"2024-04-29 14:30:00-04:00\", 37.715, 37.715, 37.62, 37.6801, 955142.0], [\"2024-04-29 14:45:00-04:00\", 37.685, 37.71, 37.62, 37.625, 586634.0], [\"2024-04-29 15:00:00-04:00\", 37.62, 37.62, 37.45, 37.495, 1746720.0], [\"2024-04-29 15:15:00-04:00\", 37.5, 37.56, 37.48, 37.505, 871839.0], [\"2024-04-29 15:30:00-04:00\", 37.505, 37.56, 37.49, 37.53, 1257430.0], [\"2024-04-29 15:45:00-04:00\", 37.525, 37.56, 37.47, 37.56, 3312148.0], [\"2024-04-30 09:30:00-04:00\", 37.345, 37.57, 37.31, 37.545, 1662525.0], [\"2024-04-30 09:45:00-04:00\", 37.545, 37.58, 37.38, 37.435, 880886.0], [\"2024-04-30 10:00:00-04:00\", 37.43, 37.495, 37.385, 37.47, 795754.0], [\"2024-04-30 10:15:00-04:00\", 37.474, 37.6, 37.455, 37.485, 800677.0], [\"2024-04-30 10:30:00-04:00\", 37.485, 37.59, 37.45, 37.585, 616820.0], [\"2024-04-30 10:45:00-04:00\", 37.585, 37.67, 37.585, 37.64, 798081.0], [\"2024-04-30 11:00:00-04:00\", 37.645, 37.65, 37.495, 37.5186, 773237.0], [\"2024-04-30 11:15:00-04:00\", 37.52, 37.58, 37.485, 37.52, 477357.0], [\"2024-04-30 11:30:00-04:00\", 37.52, 37.52, 37.47, 37.48, 418627.0], [\"2024-04-30 11:45:00-04:00\", 37.475, 37.51, 37.42, 37.465, 495169.0], [\"2024-04-30 12:00:00-04:00\", 37.4601, 37.47, 37.41, 37.45, 367316.0], [\"2024-04-30 12:15:00-04:00\", 37.44, 37.465, 37.4, 37.41, 487481.0], [\"2024-04-30 12:30:00-04:00\", 37.41, 37.415, 37.28, 37.305, 456521.0], [\"2024-04-30 12:45:00-04:00\", 37.305, 37.32, 37.27, 37.275, 570207.0], [\"2024-04-30 13:00:00-04:00\", 37.27, 37.32, 37.244, 37.28, 647498.0], [\"2024-04-30 13:15:00-04:00\", 37.27, 37.3, 37.255, 37.285, 681985.0], [\"2024-04-30 13:30:00-04:00\", 37.285, 37.35, 37.27, 37.34, 770360.0], [\"2024-04-30 13:45:00-04:00\", 37.3345, 37.37, 37.31, 37.365, 1103528.0], [\"2024-04-30 14:00:00-04:00\", 37.365, 37.37, 37.29, 37.2953, 627312.0], [\"2024-04-30 14:15:00-04:00\", 37.295, 37.31, 37.205, 37.235, 619771.0], [\"2024-04-30 14:30:00-04:00\", 37.235, 37.25, 37.17, 37.175, 2117471.0], [\"2024-04-30 14:45:00-04:00\", 37.18, 37.19, 37.1, 37.1395, 881318.0], [\"2024-04-30 15:00:00-04:00\", 37.135, 37.18, 37.1225, 37.125, 652789.0], [\"2024-04-30 15:15:00-04:00\", 37.125, 37.13, 37.07, 37.085, 983478.0], [\"2024-04-30 15:30:00-04:00\", 37.085, 37.1, 37.045, 37.07, 1149019.0], [\"2024-04-30 15:45:00-04:00\", 37.07, 37.09, 36.981, 37.01, 3839969.0], [\"2024-05-01 09:30:00-04:00\", 37.21, 37.41, 37.02, 37.1401, 1969775.0], [\"2024-05-01 09:45:00-04:00\", 37.1504, 37.16, 36.925, 37.045, 1358839.0], [\"2024-05-01 10:00:00-04:00\", 37.045, 37.15, 36.97, 37.115, 759705.0], [\"2024-05-01 10:15:00-04:00\", 37.11, 37.13, 37.03, 37.045, 522474.0], [\"2024-05-01 10:30:00-04:00\", 37.0404, 37.08, 37.01, 37.045, 481548.0], [\"2024-05-01 10:45:00-04:00\", 37.04, 37.09, 37.02, 37.08, 542179.0], [\"2024-05-01 11:00:00-04:00\", 37.08, 37.1, 37.01, 37.0286, 458967.0], [\"2024-05-01 11:15:00-04:00\", 37.025, 37.08, 37.0, 37.08, 450278.0], [\"2024-05-01 11:30:00-04:00\", 37.07, 37.09, 37.01, 37.0276, 772205.0], [\"2024-05-01 11:45:00-04:00\", 37.025, 37.075, 36.97, 37.055, 1314061.0], [\"2024-05-01 12:00:00-04:00\", 37.055, 37.07, 36.99, 37.025, 570263.0], [\"2024-05-01 12:15:00-04:00\", 37.03, 37.03, 36.92, 36.94, 595114.0], [\"2024-05-01 12:30:00-04:00\", 36.94, 36.97, 36.915, 36.935, 544042.0], [\"2024-05-01 12:45:00-04:00\", 36.94, 36.95, 36.91, 36.91, 342223.0], [\"2024-05-01 13:00:00-04:00\", 36.915, 36.93, 36.81, 36.8175, 681234.0], [\"2024-05-01 13:15:00-04:00\", 36.82, 36.89, 36.77, 36.875, 667912.0], [\"2024-05-01 13:30:00-04:00\", 36.8778, 37.01, 36.8733, 36.96, 451184.0], [\"2024-05-01 13:45:00-04:00\", 36.95, 36.96, 36.89, 36.935, 740108.0], [\"2024-05-01 14:00:00-04:00\", 36.94, 37.0, 36.89, 36.915, 873195.0], [\"2024-05-01 14:15:00-04:00\", 36.91, 37.04, 36.91, 37.035, 789907.0], [\"2024-05-01 14:30:00-04:00\", 37.035, 37.415, 36.89, 37.415, 2001542.0], [\"2024-05-01 14:45:00-04:00\", 37.415, 37.49, 37.275, 37.47, 1601771.0], [\"2024-05-01 15:00:00-04:00\", 37.48, 37.505, 37.33, 37.39, 1781770.0], [\"2024-05-01 15:15:00-04:00\", 37.4, 37.43, 37.265, 37.37, 1909248.0], [\"2024-05-01 15:30:00-04:00\", 37.365, 37.365, 37.11, 37.165, 2308846.0], [\"2024-05-01 15:45:00-04:00\", 37.165, 37.2, 36.93, 36.945, 3321566.0], [\"2024-05-02 09:30:00-04:00\", 37.37, 37.49, 37.085, 37.1, 1754673.0], [\"2024-05-02 09:45:00-04:00\", 37.11, 37.17, 37.035, 37.145, 1069209.0], [\"2024-05-02 10:00:00-04:00\", 37.148, 37.15, 36.91, 36.9621, 976657.0], [\"2024-05-02 10:15:00-04:00\", 36.97, 37.02, 36.89, 36.995, 1324885.0], [\"2024-05-02 10:30:00-04:00\", 36.995, 36.995, 36.81, 36.8258, 989839.0], [\"2024-05-02 10:45:00-04:00\", 36.825, 36.89, 36.81, 36.85, 930881.0], [\"2024-05-02 11:00:00-04:00\", 36.85, 36.935, 36.84, 36.875, 878167.0], [\"2024-05-02 11:15:00-04:00\", 36.875, 36.92, 36.8, 36.815, 823515.0], [\"2024-05-02 11:30:00-04:00\", 36.82, 36.83, 36.7, 36.76, 840682.0], [\"2024-05-02 11:45:00-04:00\", 36.755, 36.82, 36.755, 36.77, 555063.0], [\"2024-05-02 12:00:00-04:00\", 36.77, 36.77, 36.69, 36.705, 780673.0], [\"2024-05-02 12:15:00-04:00\", 36.705, 36.76, 36.69, 36.71, 716047.0], [\"2024-05-02 12:30:00-04:00\", 36.705, 36.75, 36.65, 36.75, 1093158.0], [\"2024-05-02 12:45:00-04:00\", 36.7527, 36.77, 36.73, 36.755, 498429.0], [\"2024-05-02 13:00:00-04:00\", 36.755, 36.885, 36.755, 36.8796, 493893.0], [\"2024-05-02 13:15:00-04:00\", 36.875, 36.92, 36.845, 36.9177, 823937.0], [\"2024-05-02 13:30:00-04:00\", 36.915, 36.92, 36.85, 36.875, 830182.0], [\"2024-05-02 13:45:00-04:00\", 36.875, 36.895, 36.8501, 36.875, 713023.0], [\"2024-05-02 14:00:00-04:00\", 36.88, 36.886, 36.83, 36.845, 2102963.0], [\"2024-05-02 14:15:00-04:00\", 36.84, 36.88, 36.79, 36.8701, 936843.0], [\"2024-05-02 14:30:00-04:00\", 36.875, 36.9607, 36.8601, 36.895, 1737102.0], [\"2024-05-02 14:45:00-04:00\", 36.9, 36.98, 36.87, 36.915, 1443014.0], [\"2024-05-02 15:00:00-04:00\", 36.9118, 36.97, 36.82, 36.885, 1283978.0], [\"2024-05-02 15:15:00-04:00\", 36.885, 36.93, 36.85, 36.8778, 1349444.0], [\"2024-05-02 15:30:00-04:00\", 36.87, 36.88, 36.78, 36.805, 1663187.0], [\"2024-05-02 15:45:00-04:00\", 36.8, 36.89, 36.785, 36.89, 3378097.0], [\"2024-05-03 09:30:00-04:00\", 37.25, 37.53, 37.16, 37.29, 4578651.0], [\"2024-05-03 09:45:00-04:00\", 37.29, 37.47, 37.24, 37.415, 2837307.0], [\"2024-05-03 10:00:00-04:00\", 37.42, 37.52, 37.18, 37.225, 2782267.0], [\"2024-05-03 10:15:00-04:00\", 37.225, 37.27, 37.08, 37.165, 1549935.0], [\"2024-05-03 10:30:00-04:00\", 37.17, 37.24, 37.15, 37.225, 1045479.0], [\"2024-05-03 10:45:00-04:00\", 37.22, 37.24, 37.15, 37.18, 725947.0], [\"2024-05-03 11:00:00-04:00\", 37.195, 37.24, 37.17, 37.225, 817348.0], [\"2024-05-03 11:15:00-04:00\", 37.22, 37.235, 37.18, 37.205, 837275.0], [\"2024-05-03 11:30:00-04:00\", 37.21, 37.27, 37.2, 37.205, 768354.0], [\"2024-05-03 11:45:00-04:00\", 37.21, 37.26, 37.19, 37.235, 786222.0], [\"2024-05-03 12:00:00-04:00\", 37.24, 37.26, 37.2, 37.225, 711685.0], [\"2024-05-03 12:15:00-04:00\", 37.225, 37.26, 37.2, 37.245, 485890.0], [\"2024-05-03 12:30:00-04:00\", 37.24, 37.275, 37.23, 37.2503, 744340.0], [\"2024-05-03 12:45:00-04:00\", 37.255, 37.2599, 37.17, 37.205, 436096.0], [\"2024-05-03 13:00:00-04:00\", 37.21, 37.24, 37.18, 37.215, 750408.0], [\"2024-05-03 13:15:00-04:00\", 37.215, 37.23, 37.15, 37.18, 508483.0], [\"2024-05-03 13:30:00-04:00\", 37.18, 37.27, 37.16, 37.245, 411415.0], [\"2024-05-03 13:45:00-04:00\", 37.24, 37.285, 37.23, 37.24, 616344.0], [\"2024-05-03 14:00:00-04:00\", 37.255, 37.285, 37.23, 37.245, 652242.0], [\"2024-05-03 14:15:00-04:00\", 37.245, 37.26, 37.22, 37.235, 528893.0], [\"2024-05-03 14:30:00-04:00\", 37.235, 37.24, 37.18, 37.185, 481778.0], [\"2024-05-03 14:45:00-04:00\", 37.18, 37.21, 37.17, 37.19, 519500.0], [\"2024-05-03 15:00:00-04:00\", 37.19, 37.19, 37.12, 37.14, 1201456.0], [\"2024-05-03 15:15:00-04:00\", 37.135, 37.21, 37.13, 37.195, 653697.0], [\"2024-05-03 15:30:00-04:00\", 37.19, 37.23, 37.16, 37.205, 999719.0], [\"2024-05-03 15:45:00-04:00\", 37.205, 37.27, 37.2, 37.235, 3042197.0], [\"2024-05-04 09:30:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 09:45:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 10:00:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 10:15:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 10:30:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 10:45:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 11:00:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 11:15:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 11:30:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 11:45:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 12:00:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 12:15:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 12:30:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 12:45:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 13:00:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 13:15:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 13:30:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 13:45:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 14:00:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 14:15:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 14:30:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 14:45:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 15:00:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 15:15:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 15:30:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-04 15:45:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 09:30:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 09:45:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 10:00:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 10:15:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 10:30:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 10:45:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 11:00:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 11:15:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 11:30:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 11:45:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 12:00:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 12:15:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 12:30:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 12:45:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 13:00:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 13:15:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 13:30:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 13:45:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 14:00:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 14:15:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 14:30:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 14:45:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 15:00:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 15:15:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 15:30:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-05 15:45:00-04:00\", NaN, NaN, NaN, NaN, NaN], [\"2024-05-06 09:30:00-04:00\", 37.66, 37.775, 37.36, 37.525, 1514612.0], [\"2024-05-06 09:45:00-04:00\", 37.525, 37.57, 37.425, 37.49, 1015426.0], [\"2024-05-06 10:00:00-04:00\", 37.495, 37.64, 37.47, 37.635, 1420282.0], [\"2024-05-06 10:15:00-04:00\", 37.635, 37.69, 37.591, 37.625, 1592625.0], [\"2024-05-06 10:30:00-04:00\", 37.6253, 37.6465, 37.565, 37.5993, 925904.0], [\"2024-05-06 10:45:00-04:00\", 37.5994, 37.62, 37.54, 37.56, 626772.0], [\"2024-05-06 11:00:00-04:00\", 37.56, 37.57, 37.51, 37.5343, 659209.0], [\"2024-05-06 11:15:00-04:00\", 37.53, 37.56, 37.465, 37.49, 870303.0], [\"2024-05-06 11:30:00-04:00\", 37.495, 37.525, 37.47, 37.505, 312117.0]];\n",
|
|
"\n",
|
|
" // Define the dt_args\n",
|
|
" let dt_args = {\"layout\": {\"topStart\": \"pageLength\", \"topEnd\": \"search\", \"bottomStart\": \"info\", \"bottomEnd\": \"paging\"}, \"order\": [], \"warn_on_dom\": true};\n",
|
|
" dt_args[\"data\"] = data;\n",
|
|
"\n",
|
|
" \n",
|
|
" new DataTable(table, dt_args);\n",
|
|
" });\n",
|
|
"</script>\n"
|
|
],
|
|
"text/plain": [
|
|
" Open High Low Close Volume\n",
|
|
"Open time \n",
|
|
"2024-04-29 09:30:00-04:00 37.8400 37.9850 37.7349 37.8800 2098173.0\n",
|
|
"2024-04-29 09:45:00-04:00 37.8750 38.0300 37.8607 37.9850 1030038.0\n",
|
|
"2024-04-29 10:00:00-04:00 37.9900 38.0600 37.9600 38.0145 933777.0\n",
|
|
"2024-04-29 10:15:00-04:00 38.0100 38.0300 37.9500 37.9650 657084.0\n",
|
|
"2024-04-29 10:30:00-04:00 37.9650 37.9950 37.9250 37.9600 617961.0\n",
|
|
"... ... ... ... ... ...\n",
|
|
"2024-05-06 10:30:00-04:00 37.6253 37.6465 37.5650 37.5993 925904.0\n",
|
|
"2024-05-06 10:45:00-04:00 37.5994 37.6200 37.5400 37.5600 626772.0\n",
|
|
"2024-05-06 11:00:00-04:00 37.5600 37.5700 37.5100 37.5343 659209.0\n",
|
|
"2024-05-06 11:15:00-04:00 37.5300 37.5600 37.4650 37.4900 870303.0\n",
|
|
"2024-05-06 11:30:00-04:00 37.4950 37.5250 37.4700 37.5050 312117.0\n",
|
|
"\n",
|
|
"[191 rows x 5 columns]"
|
|
]
|
|
},
|
|
"execution_count": 82,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"m1_data = basic_data[['Open', 'High', 'Low', 'Close', 'Volume']]\n",
|
|
"\n",
|
|
"m1_data.data[\"BAC\"]\n",
|
|
"#m5_data = m1_data.resample(\"5T\")\n",
|
|
"\n",
|
|
"#m5_data.data[\"BAC\"].head(10)\n",
|
|
"\n",
|
|
"m15_data = m1_data.resample(\"15T\")\n",
|
|
"\n",
|
|
"m15_data = m15_data.transform(lambda x: x.between_time(\"9:30\",\"15:59\"))\n",
|
|
"\n",
|
|
"m15 = m15_data.data[\"BAC\"]\n",
|
|
"\n",
|
|
"m15.vbt.ohlcv.plot()\n",
|
|
"\n",
|
|
"m15\n",
|
|
"\n",
|
|
"# m1_data.wrapper.index\n",
|
|
"\n",
|
|
"# m1_resampler = m1_data.wrapper.get_resampler(\"1T\")\n",
|
|
"# m1_resampler.index_difference(reverse=True)\n",
|
|
"\n",
|
|
"\n",
|
|
"# m5_resampler.prettify()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Calculate VWAP"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 94,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"VWAP.run(\n",
|
|
" high,\n",
|
|
" low,\n",
|
|
" close,\n",
|
|
" volume,\n",
|
|
" anchor=Default(value='D'),\n",
|
|
" short_name='vwap',\n",
|
|
" hide_params=None,\n",
|
|
" hide_default=True,\n",
|
|
" **kwargs\n",
|
|
"):\n",
|
|
" Run `VWAP` indicator.\n",
|
|
" \n",
|
|
" * Inputs: `high`, `low`, `close`, `volume`\n",
|
|
" * Parameters: `anchor`\n",
|
|
" * Outputs: `vwap`\n",
|
|
" \n",
|
|
" Pass a list of parameter names as `hide_params` to hide their column levels, or True to hide all.\n",
|
|
" Set `hide_default` to False to show the column levels of the parameters with a default value.\n",
|
|
" \n",
|
|
" Other keyword arguments are passed to `VWAP.run_pipeline`.\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"application/vnd.plotly.v1+json": {
|
|
"config": {
|
|
"plotlyServerURL": "https://plot.ly"
|
|
},
|
|
"data": [
|
|
{
|
|
"close": [
|
|
37.87,
|
|
37.815,
|
|
37.8,
|
|
37.86,
|
|
37.86,
|
|
37.78,
|
|
37.815,
|
|
37.8737,
|
|
37.885,
|
|
37.885,
|
|
37.88,
|
|
37.92,
|
|
37.845,
|
|
37.86,
|
|
37.88,
|
|
37.87,
|
|
37.93,
|
|
37.96,
|
|
37.9642,
|
|
37.985,
|
|
37.975,
|
|
38.02,
|
|
38,
|
|
37.975,
|
|
38.01,
|
|
38.02,
|
|
37.985,
|
|
38.0086,
|
|
37.985,
|
|
37.985,
|
|
38,
|
|
38.025,
|
|
38.05,
|
|
38.035,
|
|
38.03,
|
|
38.035,
|
|
38.035,
|
|
38.05,
|
|
38.015,
|
|
38.005,
|
|
38.005,
|
|
38.005,
|
|
38.005,
|
|
38.0166,
|
|
38.0145,
|
|
38.015,
|
|
38.025,
|
|
38.025,
|
|
38.01,
|
|
38.005,
|
|
37.9799,
|
|
37.985,
|
|
38,
|
|
38,
|
|
37.9724,
|
|
37.98,
|
|
37.9775,
|
|
37.975,
|
|
37.95,
|
|
37.965,
|
|
37.95,
|
|
37.96,
|
|
37.965,
|
|
37.985,
|
|
37.9877,
|
|
37.975,
|
|
37.96,
|
|
37.96,
|
|
37.9301,
|
|
37.94,
|
|
37.955,
|
|
37.95,
|
|
37.955,
|
|
37.9577,
|
|
37.96,
|
|
37.955,
|
|
37.94,
|
|
37.95,
|
|
37.965,
|
|
37.96,
|
|
37.955,
|
|
37.9599,
|
|
37.935,
|
|
37.944,
|
|
37.9439,
|
|
37.9292,
|
|
37.9301,
|
|
37.95,
|
|
37.945,
|
|
37.94,
|
|
37.94,
|
|
37.945,
|
|
37.96,
|
|
37.945,
|
|
37.94,
|
|
37.95,
|
|
37.95,
|
|
37.935,
|
|
37.945,
|
|
37.94,
|
|
37.945,
|
|
37.92,
|
|
37.915,
|
|
37.92,
|
|
37.915,
|
|
37.9101,
|
|
37.915,
|
|
37.9244,
|
|
37.925,
|
|
37.905,
|
|
37.915,
|
|
37.925,
|
|
37.88,
|
|
37.87,
|
|
37.87,
|
|
37.875,
|
|
37.88,
|
|
37.9,
|
|
37.895,
|
|
37.8986,
|
|
37.8862,
|
|
37.88,
|
|
37.905,
|
|
37.885,
|
|
37.875,
|
|
37.8763,
|
|
37.89,
|
|
37.895,
|
|
37.895,
|
|
37.88,
|
|
37.8497,
|
|
37.8531,
|
|
37.8601,
|
|
37.855,
|
|
37.845,
|
|
37.8499,
|
|
37.845,
|
|
37.85,
|
|
37.84,
|
|
37.845,
|
|
37.86,
|
|
37.855,
|
|
37.84,
|
|
37.835,
|
|
37.825,
|
|
37.83,
|
|
37.815,
|
|
37.805,
|
|
37.83,
|
|
37.808,
|
|
37.7961,
|
|
37.7967,
|
|
37.795,
|
|
37.79,
|
|
37.8,
|
|
37.7952,
|
|
37.8,
|
|
37.7973,
|
|
37.7975,
|
|
37.795,
|
|
37.79,
|
|
37.795,
|
|
37.795,
|
|
37.785,
|
|
37.795,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.785,
|
|
37.8,
|
|
37.8,
|
|
37.79,
|
|
37.8,
|
|
37.79,
|
|
37.785,
|
|
37.775,
|
|
37.78,
|
|
37.775,
|
|
37.78,
|
|
37.765,
|
|
37.755,
|
|
37.7535,
|
|
37.775,
|
|
37.775,
|
|
37.78,
|
|
37.7878,
|
|
37.78,
|
|
37.78,
|
|
37.79,
|
|
37.78,
|
|
37.77,
|
|
37.7552,
|
|
37.7601,
|
|
37.7669,
|
|
37.75,
|
|
37.76,
|
|
37.76,
|
|
37.735,
|
|
37.74,
|
|
37.735,
|
|
37.74,
|
|
37.735,
|
|
37.7201,
|
|
37.7201,
|
|
37.7169,
|
|
37.71,
|
|
37.715,
|
|
37.715,
|
|
37.725,
|
|
37.715,
|
|
37.7101,
|
|
37.715,
|
|
37.725,
|
|
37.725,
|
|
37.7499,
|
|
37.7301,
|
|
37.7292,
|
|
37.7284,
|
|
37.74,
|
|
37.745,
|
|
37.73,
|
|
37.7303,
|
|
37.74,
|
|
37.735,
|
|
37.7149,
|
|
37.71,
|
|
37.7174,
|
|
37.715,
|
|
37.725,
|
|
37.725,
|
|
37.7383,
|
|
37.7497,
|
|
37.7403,
|
|
37.7423,
|
|
37.745,
|
|
37.725,
|
|
37.74,
|
|
37.7468,
|
|
37.75,
|
|
37.7582,
|
|
37.7499,
|
|
37.7564,
|
|
37.765,
|
|
37.7658,
|
|
37.765,
|
|
37.785,
|
|
37.7898,
|
|
37.784,
|
|
37.775,
|
|
37.774,
|
|
37.775,
|
|
37.795,
|
|
37.79,
|
|
37.791,
|
|
37.775,
|
|
37.785,
|
|
37.7673,
|
|
37.765,
|
|
37.764,
|
|
37.7674,
|
|
37.7671,
|
|
37.775,
|
|
37.7666,
|
|
37.7548,
|
|
37.765,
|
|
37.75,
|
|
37.76,
|
|
37.731,
|
|
37.73,
|
|
37.705,
|
|
37.715,
|
|
37.725,
|
|
37.725,
|
|
37.725,
|
|
37.725,
|
|
37.725,
|
|
37.7344,
|
|
37.745,
|
|
37.7469,
|
|
37.745,
|
|
37.7241,
|
|
37.725,
|
|
37.735,
|
|
37.755,
|
|
37.75,
|
|
37.7474,
|
|
37.755,
|
|
37.734,
|
|
37.74,
|
|
37.73,
|
|
37.745,
|
|
37.745,
|
|
37.725,
|
|
37.7268,
|
|
37.72,
|
|
37.72,
|
|
37.71,
|
|
37.705,
|
|
37.71,
|
|
37.7138,
|
|
37.695,
|
|
37.6921,
|
|
37.665,
|
|
37.65,
|
|
37.655,
|
|
37.65,
|
|
37.6476,
|
|
37.6499,
|
|
37.65,
|
|
37.655,
|
|
37.665,
|
|
37.6792,
|
|
37.675,
|
|
37.685,
|
|
37.6801,
|
|
37.685,
|
|
37.6863,
|
|
37.69,
|
|
37.685,
|
|
37.69,
|
|
37.69,
|
|
37.67,
|
|
37.68,
|
|
37.665,
|
|
37.66,
|
|
37.665,
|
|
37.66,
|
|
37.6401,
|
|
37.635,
|
|
37.625,
|
|
37.575,
|
|
37.565,
|
|
37.5382,
|
|
37.5,
|
|
37.495,
|
|
37.49,
|
|
37.46,
|
|
37.482,
|
|
37.505,
|
|
37.505,
|
|
37.52,
|
|
37.5,
|
|
37.49,
|
|
37.46,
|
|
37.495,
|
|
37.5,
|
|
37.52,
|
|
37.5162,
|
|
37.525,
|
|
37.53,
|
|
37.545,
|
|
37.555,
|
|
37.545,
|
|
37.53,
|
|
37.52,
|
|
37.51,
|
|
37.5,
|
|
37.5101,
|
|
37.485,
|
|
37.505,
|
|
37.515,
|
|
37.515,
|
|
37.525,
|
|
37.535,
|
|
37.545,
|
|
37.5283,
|
|
37.525,
|
|
37.545,
|
|
37.5401,
|
|
37.52,
|
|
37.525,
|
|
37.535,
|
|
37.5,
|
|
37.505,
|
|
37.53,
|
|
37.48,
|
|
37.5,
|
|
37.52,
|
|
37.505,
|
|
37.475,
|
|
37.49,
|
|
37.485,
|
|
37.495,
|
|
37.495,
|
|
37.515,
|
|
37.525,
|
|
37.525,
|
|
37.51,
|
|
37.51,
|
|
37.56,
|
|
37.6,
|
|
37.4445,
|
|
37.5,
|
|
37.425,
|
|
37.385,
|
|
37.405,
|
|
37.325,
|
|
37.425,
|
|
37.56,
|
|
37.485,
|
|
37.47,
|
|
37.51,
|
|
37.505,
|
|
37.51,
|
|
37.5,
|
|
37.545,
|
|
37.535,
|
|
37.55,
|
|
37.515,
|
|
37.505,
|
|
37.485,
|
|
37.475,
|
|
37.505,
|
|
37.47,
|
|
37.455,
|
|
37.415,
|
|
37.395,
|
|
37.425,
|
|
37.415,
|
|
37.425,
|
|
37.435,
|
|
37.41,
|
|
37.415,
|
|
37.405,
|
|
37.415,
|
|
37.425,
|
|
37.445,
|
|
37.47,
|
|
37.48,
|
|
37.465,
|
|
37.46,
|
|
37.47,
|
|
37.465,
|
|
37.47,
|
|
37.485,
|
|
37.47,
|
|
37.485,
|
|
37.49,
|
|
37.5299,
|
|
37.565,
|
|
37.53,
|
|
37.5501,
|
|
37.545,
|
|
37.535,
|
|
37.55,
|
|
37.555,
|
|
37.55,
|
|
37.535,
|
|
37.5486,
|
|
37.535,
|
|
37.485,
|
|
37.48,
|
|
37.452,
|
|
37.455,
|
|
37.46,
|
|
37.4801,
|
|
37.48,
|
|
37.505,
|
|
37.51,
|
|
37.5,
|
|
37.515,
|
|
37.535,
|
|
37.5582,
|
|
37.56,
|
|
37.585,
|
|
37.585,
|
|
37.6101,
|
|
37.6433,
|
|
37.63,
|
|
37.635,
|
|
37.63,
|
|
37.6392,
|
|
37.66,
|
|
37.66,
|
|
37.6369,
|
|
37.66,
|
|
37.6477,
|
|
37.6399,
|
|
37.63,
|
|
37.655,
|
|
37.64,
|
|
37.64,
|
|
37.63,
|
|
37.6399,
|
|
37.64,
|
|
37.645,
|
|
37.61,
|
|
37.58,
|
|
37.5829,
|
|
37.555,
|
|
37.5403,
|
|
37.535,
|
|
37.545,
|
|
37.52,
|
|
37.515,
|
|
37.5186,
|
|
37.4919,
|
|
37.55,
|
|
37.57,
|
|
37.548,
|
|
37.535,
|
|
37.54,
|
|
37.54,
|
|
37.535,
|
|
37.54,
|
|
37.55,
|
|
37.55,
|
|
37.555,
|
|
37.515,
|
|
37.535,
|
|
37.52,
|
|
37.5,
|
|
37.49,
|
|
37.49,
|
|
37.485,
|
|
37.495,
|
|
37.515,
|
|
37.4964,
|
|
37.51,
|
|
37.5199,
|
|
37.495,
|
|
37.5,
|
|
37.5,
|
|
37.495,
|
|
37.485,
|
|
37.48,
|
|
37.49,
|
|
37.465,
|
|
37.47,
|
|
37.46,
|
|
37.455,
|
|
37.4569,
|
|
37.45,
|
|
37.445,
|
|
37.435,
|
|
37.455,
|
|
37.47,
|
|
37.4901,
|
|
37.495,
|
|
37.495,
|
|
37.465,
|
|
37.47,
|
|
37.45,
|
|
37.45,
|
|
37.4483,
|
|
37.43,
|
|
37.415,
|
|
37.43,
|
|
37.435,
|
|
37.435,
|
|
37.44,
|
|
37.435,
|
|
37.4475,
|
|
37.43,
|
|
37.435,
|
|
37.45,
|
|
37.44,
|
|
37.4281,
|
|
37.42,
|
|
37.415,
|
|
37.42,
|
|
37.4295,
|
|
37.4379,
|
|
37.4401,
|
|
37.44,
|
|
37.43,
|
|
37.455,
|
|
37.445,
|
|
37.4322,
|
|
37.44,
|
|
37.41,
|
|
37.3771,
|
|
37.37,
|
|
37.34,
|
|
37.32,
|
|
37.29,
|
|
37.315,
|
|
37.31,
|
|
37.33,
|
|
37.3179,
|
|
37.325,
|
|
37.3299,
|
|
37.3201,
|
|
37.2999,
|
|
37.29,
|
|
37.305,
|
|
37.28,
|
|
37.29,
|
|
37.2982,
|
|
37.295,
|
|
37.295,
|
|
37.315,
|
|
37.275,
|
|
37.2786,
|
|
37.2701,
|
|
37.275,
|
|
37.295,
|
|
37.295,
|
|
37.285,
|
|
37.2877,
|
|
37.275,
|
|
37.255,
|
|
37.26,
|
|
37.285,
|
|
37.3,
|
|
37.28,
|
|
37.285,
|
|
37.309,
|
|
37.32,
|
|
37.2929,
|
|
37.285,
|
|
37.29,
|
|
37.275,
|
|
37.265,
|
|
37.2586,
|
|
37.28,
|
|
37.265,
|
|
37.265,
|
|
37.2701,
|
|
37.2683,
|
|
37.28,
|
|
37.2999,
|
|
37.295,
|
|
37.29,
|
|
37.295,
|
|
37.285,
|
|
37.295,
|
|
37.295,
|
|
37.285,
|
|
37.2947,
|
|
37.285,
|
|
37.285,
|
|
37.285,
|
|
37.285,
|
|
37.29,
|
|
37.295,
|
|
37.295,
|
|
37.29,
|
|
37.292,
|
|
37.285,
|
|
37.295,
|
|
37.34,
|
|
37.31,
|
|
37.31,
|
|
37.335,
|
|
37.34,
|
|
37.32,
|
|
37.335,
|
|
37.32,
|
|
37.325,
|
|
37.3284,
|
|
37.3299,
|
|
37.345,
|
|
37.36,
|
|
37.36,
|
|
37.36,
|
|
37.35,
|
|
37.35,
|
|
37.365,
|
|
37.37,
|
|
37.365,
|
|
37.3672,
|
|
37.345,
|
|
37.35,
|
|
37.355,
|
|
37.355,
|
|
37.345,
|
|
37.335,
|
|
37.33,
|
|
37.325,
|
|
37.3,
|
|
37.32,
|
|
37.305,
|
|
37.295,
|
|
37.305,
|
|
37.2953,
|
|
37.295,
|
|
37.275,
|
|
37.28,
|
|
37.285,
|
|
37.285,
|
|
37.285,
|
|
37.285,
|
|
37.285,
|
|
37.271,
|
|
37.275,
|
|
37.265,
|
|
37.255,
|
|
37.233,
|
|
37.225,
|
|
37.235,
|
|
37.225,
|
|
37.21,
|
|
37.215,
|
|
37.2304,
|
|
37.215,
|
|
37.2301,
|
|
37.22,
|
|
37.2301,
|
|
37.245,
|
|
37.221,
|
|
37.2081,
|
|
37.204,
|
|
37.195,
|
|
37.195,
|
|
37.175,
|
|
37.1754,
|
|
37.19,
|
|
37.165,
|
|
37.145,
|
|
37.15,
|
|
37.1181,
|
|
37.11,
|
|
37.1267,
|
|
37.145,
|
|
37.145,
|
|
37.145,
|
|
37.145,
|
|
37.135,
|
|
37.13,
|
|
37.1395,
|
|
37.135,
|
|
37.145,
|
|
37.165,
|
|
37.155,
|
|
37.17,
|
|
37.18,
|
|
37.17,
|
|
37.155,
|
|
37.15,
|
|
37.155,
|
|
37.15,
|
|
37.1401,
|
|
37.14,
|
|
37.145,
|
|
37.125,
|
|
37.11,
|
|
37.095,
|
|
37.0977,
|
|
37.095,
|
|
37.085,
|
|
37.1267,
|
|
37.105,
|
|
37.1,
|
|
37.075,
|
|
37.085,
|
|
37.0967,
|
|
37.08,
|
|
37.095,
|
|
37.1017,
|
|
37.085,
|
|
37.085,
|
|
37.065,
|
|
37.08,
|
|
37.095,
|
|
37.085,
|
|
37.06,
|
|
37.065,
|
|
37.0601,
|
|
37.065,
|
|
37.075,
|
|
37.085,
|
|
37.0825,
|
|
37.085,
|
|
37.075,
|
|
37.07,
|
|
37.0557,
|
|
37.045,
|
|
37.0559,
|
|
37.07,
|
|
37.085,
|
|
37.09,
|
|
37.08,
|
|
37.08,
|
|
37.045,
|
|
37.05,
|
|
37.075,
|
|
37.05,
|
|
37.015,
|
|
37.02,
|
|
37.01,
|
|
37.01,
|
|
37.25,
|
|
37.33,
|
|
37.38,
|
|
37.31,
|
|
37.19,
|
|
37.15,
|
|
37.195,
|
|
37.21,
|
|
37.2079,
|
|
37.175,
|
|
37.145,
|
|
37.095,
|
|
37.09,
|
|
37.12,
|
|
37.1401,
|
|
37.115,
|
|
36.995,
|
|
36.99,
|
|
36.975,
|
|
36.9901,
|
|
36.975,
|
|
36.98,
|
|
36.94,
|
|
36.985,
|
|
36.96,
|
|
36.985,
|
|
37.0225,
|
|
37.01,
|
|
37.035,
|
|
37.045,
|
|
36.99,
|
|
37.03,
|
|
37.0406,
|
|
37.06,
|
|
37.075,
|
|
37.125,
|
|
37.105,
|
|
37.131,
|
|
37.11,
|
|
37.12,
|
|
37.11,
|
|
37.12,
|
|
37.095,
|
|
37.1282,
|
|
37.115,
|
|
37.115,
|
|
37.12,
|
|
37.11,
|
|
37.085,
|
|
37.075,
|
|
37.07,
|
|
37.06,
|
|
37.055,
|
|
37.06,
|
|
37.05,
|
|
37.055,
|
|
37.05,
|
|
37.065,
|
|
37.055,
|
|
37.045,
|
|
37.05,
|
|
37.045,
|
|
37.0456,
|
|
37.035,
|
|
37.05,
|
|
37.05,
|
|
37.05,
|
|
37.075,
|
|
37.07,
|
|
37.045,
|
|
37.05,
|
|
37.03,
|
|
37.01,
|
|
37.04,
|
|
37.045,
|
|
37.0313,
|
|
37.0365,
|
|
37.06,
|
|
37.07,
|
|
37.09,
|
|
37.0669,
|
|
37.04,
|
|
37.04,
|
|
37.055,
|
|
37.07,
|
|
37.07,
|
|
37.0795,
|
|
37.075,
|
|
37.0729,
|
|
37.08,
|
|
37.085,
|
|
37.0875,
|
|
37.08,
|
|
37.085,
|
|
37.09,
|
|
37.095,
|
|
37.09,
|
|
37.0912,
|
|
37.065,
|
|
37.061,
|
|
37.065,
|
|
37.0599,
|
|
37.04,
|
|
37.03,
|
|
37.0286,
|
|
37.015,
|
|
37.0237,
|
|
37.02,
|
|
37.03,
|
|
37.025,
|
|
37.04,
|
|
37.06,
|
|
37.0671,
|
|
37.055,
|
|
37.0479,
|
|
37.0664,
|
|
37.06,
|
|
37.065,
|
|
37.08,
|
|
37.08,
|
|
37.085,
|
|
37.0814,
|
|
37.0701,
|
|
37.065,
|
|
37.06,
|
|
37.0576,
|
|
37.04,
|
|
37.03,
|
|
37.0203,
|
|
37.035,
|
|
37.05,
|
|
37.042,
|
|
37.025,
|
|
37.015,
|
|
37.0276,
|
|
37.005,
|
|
37.016,
|
|
37.015,
|
|
37,
|
|
37.0077,
|
|
37,
|
|
36.9782,
|
|
36.9763,
|
|
36.985,
|
|
37,
|
|
36.9935,
|
|
37.0245,
|
|
37.04,
|
|
37.05,
|
|
37.055,
|
|
37.05,
|
|
37.06,
|
|
37.07,
|
|
37.0512,
|
|
37.04,
|
|
37.03,
|
|
37,
|
|
36.995,
|
|
36.9924,
|
|
37.0178,
|
|
37.0266,
|
|
37.03,
|
|
37.04,
|
|
37.04,
|
|
37.025,
|
|
37.01,
|
|
36.995,
|
|
36.995,
|
|
36.9899,
|
|
36.9799,
|
|
36.95,
|
|
36.94,
|
|
36.925,
|
|
36.95,
|
|
36.94,
|
|
36.93,
|
|
36.945,
|
|
36.94,
|
|
36.945,
|
|
36.94,
|
|
36.94,
|
|
36.935,
|
|
36.94,
|
|
36.9586,
|
|
36.945,
|
|
36.94,
|
|
36.94,
|
|
36.945,
|
|
36.94,
|
|
36.935,
|
|
36.925,
|
|
36.935,
|
|
36.915,
|
|
36.915,
|
|
36.935,
|
|
36.935,
|
|
36.945,
|
|
36.925,
|
|
36.925,
|
|
36.925,
|
|
36.92,
|
|
36.915,
|
|
36.93,
|
|
36.925,
|
|
36.925,
|
|
36.93,
|
|
36.9231,
|
|
36.92,
|
|
36.92,
|
|
36.91,
|
|
36.925,
|
|
36.915,
|
|
36.875,
|
|
36.865,
|
|
36.86,
|
|
36.8302,
|
|
36.8515,
|
|
36.825,
|
|
36.8316,
|
|
36.84,
|
|
36.85,
|
|
36.85,
|
|
36.845,
|
|
36.825,
|
|
36.8175,
|
|
36.8206,
|
|
36.805,
|
|
36.825,
|
|
36.83,
|
|
36.805,
|
|
36.815,
|
|
36.8126,
|
|
36.8528,
|
|
36.85,
|
|
36.855,
|
|
36.855,
|
|
36.855,
|
|
36.8799,
|
|
36.8864,
|
|
36.875,
|
|
36.8869,
|
|
36.8872,
|
|
36.92,
|
|
36.905,
|
|
36.945,
|
|
36.9767,
|
|
36.985,
|
|
36.995,
|
|
36.995,
|
|
36.9799,
|
|
36.98,
|
|
36.97,
|
|
36.9721,
|
|
36.955,
|
|
36.96,
|
|
36.95,
|
|
36.945,
|
|
36.945,
|
|
36.95,
|
|
36.935,
|
|
36.94,
|
|
36.925,
|
|
36.91,
|
|
36.89,
|
|
36.9,
|
|
36.905,
|
|
36.915,
|
|
36.93,
|
|
36.925,
|
|
36.935,
|
|
36.945,
|
|
36.9,
|
|
36.99,
|
|
36.96,
|
|
36.97,
|
|
36.93,
|
|
36.935,
|
|
36.9225,
|
|
36.98,
|
|
36.955,
|
|
36.935,
|
|
36.905,
|
|
36.9299,
|
|
36.915,
|
|
36.915,
|
|
36.92,
|
|
36.95,
|
|
36.935,
|
|
36.945,
|
|
36.9342,
|
|
36.92,
|
|
36.94,
|
|
36.935,
|
|
36.945,
|
|
36.945,
|
|
36.95,
|
|
37,
|
|
37.01,
|
|
37.025,
|
|
37.035,
|
|
37.045,
|
|
36.921,
|
|
36.965,
|
|
37.075,
|
|
37.13,
|
|
37,
|
|
37.04,
|
|
37.05,
|
|
37.1,
|
|
37.175,
|
|
37.27,
|
|
37.29,
|
|
37.245,
|
|
37.2818,
|
|
37.415,
|
|
37.325,
|
|
37.34,
|
|
37.37,
|
|
37.36,
|
|
37.42,
|
|
37.43,
|
|
37.4606,
|
|
37.43,
|
|
37.44,
|
|
37.47,
|
|
37.4401,
|
|
37.465,
|
|
37.435,
|
|
37.43,
|
|
37.47,
|
|
37.44,
|
|
37.48,
|
|
37.41,
|
|
37.4,
|
|
37.379,
|
|
37.39,
|
|
37.39,
|
|
37.38,
|
|
37.425,
|
|
37.3908,
|
|
37.39,
|
|
37.3642,
|
|
37.39,
|
|
37.395,
|
|
37.39,
|
|
37.375,
|
|
37.385,
|
|
37.38,
|
|
37.34,
|
|
37.375,
|
|
37.345,
|
|
37.32,
|
|
37.285,
|
|
37.35,
|
|
37.38,
|
|
37.3599,
|
|
37.38,
|
|
37.385,
|
|
37.355,
|
|
37.37,
|
|
37.275,
|
|
37.285,
|
|
37.25,
|
|
37.27,
|
|
37.215,
|
|
37.23,
|
|
37.19,
|
|
37.2,
|
|
37.16,
|
|
37.155,
|
|
37.195,
|
|
37.16,
|
|
37.14,
|
|
37.12,
|
|
37.165,
|
|
37.17,
|
|
37.18,
|
|
37.1301,
|
|
37.14,
|
|
37.17,
|
|
37.11,
|
|
37.05,
|
|
37.025,
|
|
37.01,
|
|
37.015,
|
|
36.995,
|
|
37.015,
|
|
36.955,
|
|
36.955,
|
|
36.945,
|
|
36.95,
|
|
37.46,
|
|
37.475,
|
|
37.4105,
|
|
37.4,
|
|
37.365,
|
|
37.3,
|
|
37.255,
|
|
37.175,
|
|
37.255,
|
|
37.245,
|
|
37.23,
|
|
37.265,
|
|
37.215,
|
|
37.145,
|
|
37.1,
|
|
37.13,
|
|
37.08,
|
|
37.1109,
|
|
37.1,
|
|
37.125,
|
|
37.12,
|
|
37.15,
|
|
37.115,
|
|
37.14,
|
|
37.12,
|
|
37.09,
|
|
37.12,
|
|
37.16,
|
|
37.11,
|
|
37.145,
|
|
37.1189,
|
|
37.04,
|
|
37.01,
|
|
37.0597,
|
|
37.025,
|
|
37.0506,
|
|
37.025,
|
|
37.045,
|
|
37.01,
|
|
36.9349,
|
|
36.97,
|
|
37,
|
|
37.0199,
|
|
36.97,
|
|
36.9621,
|
|
36.9799,
|
|
36.97,
|
|
36.935,
|
|
36.95,
|
|
36.9599,
|
|
36.895,
|
|
36.9099,
|
|
36.905,
|
|
36.959,
|
|
36.9529,
|
|
36.945,
|
|
36.985,
|
|
36.9818,
|
|
37.0053,
|
|
36.995,
|
|
36.98,
|
|
36.985,
|
|
36.9599,
|
|
36.975,
|
|
36.98,
|
|
36.955,
|
|
36.95,
|
|
36.98,
|
|
36.9767,
|
|
36.9639,
|
|
36.93,
|
|
36.905,
|
|
36.8399,
|
|
36.855,
|
|
36.8258,
|
|
36.8295,
|
|
36.825,
|
|
36.845,
|
|
36.855,
|
|
36.865,
|
|
36.8484,
|
|
36.87,
|
|
36.8731,
|
|
36.855,
|
|
36.835,
|
|
36.835,
|
|
36.875,
|
|
36.865,
|
|
36.875,
|
|
36.85,
|
|
36.8659,
|
|
36.855,
|
|
36.92,
|
|
36.9,
|
|
36.9,
|
|
36.895,
|
|
36.905,
|
|
36.915,
|
|
36.91,
|
|
36.92,
|
|
36.91,
|
|
36.915,
|
|
36.9,
|
|
36.89,
|
|
36.875,
|
|
36.8806,
|
|
36.875,
|
|
36.875,
|
|
36.885,
|
|
36.895,
|
|
36.88,
|
|
36.895,
|
|
36.9,
|
|
36.87,
|
|
36.87,
|
|
36.865,
|
|
36.83,
|
|
36.825,
|
|
36.8273,
|
|
36.815,
|
|
36.82,
|
|
36.785,
|
|
36.76,
|
|
36.795,
|
|
36.745,
|
|
36.7302,
|
|
36.74,
|
|
36.72,
|
|
36.74,
|
|
36.7207,
|
|
36.74,
|
|
36.755,
|
|
36.745,
|
|
36.76,
|
|
36.76,
|
|
36.765,
|
|
36.775,
|
|
36.79,
|
|
36.79,
|
|
36.785,
|
|
36.795,
|
|
36.8119,
|
|
36.81,
|
|
36.8,
|
|
36.8131,
|
|
36.795,
|
|
36.8,
|
|
36.7883,
|
|
36.79,
|
|
36.77,
|
|
36.745,
|
|
36.76,
|
|
36.76,
|
|
36.75,
|
|
36.745,
|
|
36.73,
|
|
36.745,
|
|
36.755,
|
|
36.715,
|
|
36.714,
|
|
36.715,
|
|
36.725,
|
|
36.705,
|
|
36.715,
|
|
36.705,
|
|
36.725,
|
|
36.7007,
|
|
36.705,
|
|
36.705,
|
|
36.715,
|
|
36.75,
|
|
36.7274,
|
|
36.75,
|
|
36.75,
|
|
36.7376,
|
|
36.715,
|
|
36.71,
|
|
36.715,
|
|
36.71,
|
|
36.71,
|
|
36.705,
|
|
36.685,
|
|
36.685,
|
|
36.69,
|
|
36.675,
|
|
36.6728,
|
|
36.66,
|
|
36.6715,
|
|
36.7,
|
|
36.715,
|
|
36.715,
|
|
36.735,
|
|
36.725,
|
|
36.735,
|
|
36.75,
|
|
36.75,
|
|
36.735,
|
|
36.75,
|
|
36.745,
|
|
36.75,
|
|
36.755,
|
|
36.76,
|
|
36.765,
|
|
36.765,
|
|
36.755,
|
|
36.75,
|
|
36.755,
|
|
36.74,
|
|
36.755,
|
|
36.755,
|
|
36.765,
|
|
36.78,
|
|
36.786,
|
|
36.775,
|
|
36.77,
|
|
36.7738,
|
|
36.7927,
|
|
36.804,
|
|
36.795,
|
|
36.805,
|
|
36.82,
|
|
36.83,
|
|
36.835,
|
|
36.876,
|
|
36.8796,
|
|
36.8997,
|
|
36.875,
|
|
36.86,
|
|
36.865,
|
|
36.8599,
|
|
36.86,
|
|
36.86,
|
|
36.86,
|
|
36.859,
|
|
36.892,
|
|
36.88,
|
|
36.86,
|
|
36.88,
|
|
36.91,
|
|
36.9177,
|
|
36.895,
|
|
36.895,
|
|
36.875,
|
|
36.87,
|
|
36.885,
|
|
36.875,
|
|
36.895,
|
|
36.885,
|
|
36.8704,
|
|
36.8633,
|
|
36.875,
|
|
36.85,
|
|
36.87,
|
|
36.875,
|
|
36.875,
|
|
36.87,
|
|
36.865,
|
|
36.8699,
|
|
36.87,
|
|
36.865,
|
|
36.875,
|
|
36.88,
|
|
36.885,
|
|
36.875,
|
|
36.8584,
|
|
36.875,
|
|
36.875,
|
|
36.875,
|
|
36.865,
|
|
36.875,
|
|
36.865,
|
|
36.845,
|
|
36.855,
|
|
36.865,
|
|
36.86,
|
|
36.865,
|
|
36.86,
|
|
36.874,
|
|
36.87,
|
|
36.865,
|
|
36.84,
|
|
36.835,
|
|
36.845,
|
|
36.845,
|
|
36.845,
|
|
36.835,
|
|
36.835,
|
|
36.8026,
|
|
36.805,
|
|
36.815,
|
|
36.8127,
|
|
36.815,
|
|
36.815,
|
|
36.83,
|
|
36.8346,
|
|
36.835,
|
|
36.85,
|
|
36.86,
|
|
36.86,
|
|
36.8701,
|
|
36.875,
|
|
36.8701,
|
|
36.875,
|
|
36.905,
|
|
36.8841,
|
|
36.895,
|
|
36.9145,
|
|
36.915,
|
|
36.945,
|
|
36.955,
|
|
36.925,
|
|
36.935,
|
|
36.915,
|
|
36.905,
|
|
36.895,
|
|
36.88,
|
|
36.906,
|
|
36.925,
|
|
36.96,
|
|
36.9577,
|
|
36.925,
|
|
36.92,
|
|
36.935,
|
|
36.96,
|
|
36.935,
|
|
36.9501,
|
|
36.96,
|
|
36.9538,
|
|
36.94,
|
|
36.915,
|
|
36.89,
|
|
36.89,
|
|
36.84,
|
|
36.825,
|
|
36.8528,
|
|
36.89,
|
|
36.895,
|
|
36.915,
|
|
36.95,
|
|
36.96,
|
|
36.955,
|
|
36.935,
|
|
36.89,
|
|
36.9075,
|
|
36.885,
|
|
36.896,
|
|
36.905,
|
|
36.875,
|
|
36.87,
|
|
36.8743,
|
|
36.92,
|
|
36.925,
|
|
36.905,
|
|
36.915,
|
|
36.91,
|
|
36.89,
|
|
36.895,
|
|
36.9,
|
|
36.905,
|
|
36.8778,
|
|
36.8687,
|
|
36.8791,
|
|
36.855,
|
|
36.855,
|
|
36.83,
|
|
36.8,
|
|
36.795,
|
|
36.825,
|
|
36.82,
|
|
36.81,
|
|
36.82,
|
|
36.795,
|
|
36.825,
|
|
36.825,
|
|
36.805,
|
|
36.805,
|
|
36.84,
|
|
36.84,
|
|
36.85,
|
|
36.84,
|
|
36.8,
|
|
36.82,
|
|
36.825,
|
|
36.84,
|
|
36.85,
|
|
36.86,
|
|
36.85,
|
|
36.845,
|
|
36.83,
|
|
36.89,
|
|
36.88,
|
|
37.435,
|
|
37.49,
|
|
37.42,
|
|
37.375,
|
|
37.3,
|
|
37.275,
|
|
37.305,
|
|
37.23,
|
|
37.255,
|
|
37.3111,
|
|
37.3,
|
|
37.35,
|
|
37.325,
|
|
37.265,
|
|
37.29,
|
|
37.285,
|
|
37.38,
|
|
37.385,
|
|
37.4,
|
|
37.4,
|
|
37.36,
|
|
37.38,
|
|
37.415,
|
|
37.42,
|
|
37.425,
|
|
37.455,
|
|
37.4479,
|
|
37.445,
|
|
37.42,
|
|
37.415,
|
|
37.32,
|
|
37.305,
|
|
37.32,
|
|
37.31,
|
|
37.27,
|
|
37.285,
|
|
37.31,
|
|
37.2491,
|
|
37.24,
|
|
37.27,
|
|
37.265,
|
|
37.255,
|
|
37.24,
|
|
37.228,
|
|
37.225,
|
|
37.255,
|
|
37.22,
|
|
37.24,
|
|
37.2299,
|
|
37.19,
|
|
37.1697,
|
|
37.17,
|
|
37.13,
|
|
37.095,
|
|
37.155,
|
|
37.12,
|
|
37.145,
|
|
37.135,
|
|
37.1781,
|
|
37.165,
|
|
37.225,
|
|
37.2,
|
|
37.21,
|
|
37.175,
|
|
37.16,
|
|
37.17,
|
|
37.175,
|
|
37.19,
|
|
37.165,
|
|
37.1603,
|
|
37.189,
|
|
37.1925,
|
|
37.195,
|
|
37.2,
|
|
37.225,
|
|
37.2299,
|
|
37.225,
|
|
37.215,
|
|
37.2299,
|
|
37.2101,
|
|
37.185,
|
|
37.195,
|
|
37.155,
|
|
37.17,
|
|
37.1662,
|
|
37.195,
|
|
37.17,
|
|
37.2,
|
|
37.215,
|
|
37.18,
|
|
37.225,
|
|
37.205,
|
|
37.1725,
|
|
37.195,
|
|
37.195,
|
|
37.19,
|
|
37.1908,
|
|
37.235,
|
|
37.205,
|
|
37.205,
|
|
37.21,
|
|
37.235,
|
|
37.2236,
|
|
37.21,
|
|
37.225,
|
|
37.22,
|
|
37.225,
|
|
37.21,
|
|
37.215,
|
|
37.205,
|
|
37.205,
|
|
37.19,
|
|
37.2,
|
|
37.205,
|
|
37.21,
|
|
37.2,
|
|
37.19,
|
|
37.22,
|
|
37.225,
|
|
37.205,
|
|
37.215,
|
|
37.21,
|
|
37.225,
|
|
37.225,
|
|
37.2283,
|
|
37.23,
|
|
37.215,
|
|
37.2284,
|
|
37.21,
|
|
37.215,
|
|
37.235,
|
|
37.2572,
|
|
37.25,
|
|
37.245,
|
|
37.205,
|
|
37.224,
|
|
37.24,
|
|
37.2299,
|
|
37.205,
|
|
37.24,
|
|
37.245,
|
|
37.2336,
|
|
37.23,
|
|
37.2481,
|
|
37.24,
|
|
37.2425,
|
|
37.235,
|
|
37.245,
|
|
37.245,
|
|
37.235,
|
|
37.245,
|
|
37.24,
|
|
37.24,
|
|
37.235,
|
|
37.24,
|
|
37.24,
|
|
37.235,
|
|
37.2361,
|
|
37.22,
|
|
37.235,
|
|
37.24,
|
|
37.23,
|
|
37.2201,
|
|
37.215,
|
|
37.225,
|
|
37.23,
|
|
37.225,
|
|
37.225,
|
|
37.2094,
|
|
37.21,
|
|
37.213,
|
|
37.2199,
|
|
37.22,
|
|
37.23,
|
|
37.235,
|
|
37.24,
|
|
37.25,
|
|
37.24,
|
|
37.25,
|
|
37.245,
|
|
37.25,
|
|
37.245,
|
|
37.24,
|
|
37.25,
|
|
37.245,
|
|
37.25,
|
|
37.25,
|
|
37.245,
|
|
37.25,
|
|
37.26,
|
|
37.2475,
|
|
37.245,
|
|
37.2541,
|
|
37.265,
|
|
37.2503,
|
|
37.25,
|
|
37.235,
|
|
37.2,
|
|
37.225,
|
|
37.2161,
|
|
37.215,
|
|
37.2001,
|
|
37.2074,
|
|
37.185,
|
|
37.1975,
|
|
37.185,
|
|
37.19,
|
|
37.19,
|
|
37.18,
|
|
37.205,
|
|
37.205,
|
|
37.2063,
|
|
37.2075,
|
|
37.19,
|
|
37.2019,
|
|
37.195,
|
|
37.2,
|
|
37.21,
|
|
37.21,
|
|
37.205,
|
|
37.19,
|
|
37.195,
|
|
37.215,
|
|
37.2,
|
|
37.215,
|
|
37.215,
|
|
37.21,
|
|
37.22,
|
|
37.215,
|
|
37.172,
|
|
37.18,
|
|
37.17,
|
|
37.16,
|
|
37.165,
|
|
37.15,
|
|
37.175,
|
|
37.175,
|
|
37.16,
|
|
37.18,
|
|
37.18,
|
|
37.195,
|
|
37.1799,
|
|
37.165,
|
|
37.16,
|
|
37.194,
|
|
37.21,
|
|
37.21,
|
|
37.21,
|
|
37.22,
|
|
37.23,
|
|
37.24,
|
|
37.25,
|
|
37.2627,
|
|
37.2417,
|
|
37.245,
|
|
37.23,
|
|
37.2425,
|
|
37.2425,
|
|
37.245,
|
|
37.25,
|
|
37.26,
|
|
37.265,
|
|
37.25,
|
|
37.255,
|
|
37.25,
|
|
37.265,
|
|
37.267,
|
|
37.2599,
|
|
37.255,
|
|
37.24,
|
|
37.255,
|
|
37.26,
|
|
37.255,
|
|
37.255,
|
|
37.27,
|
|
37.277,
|
|
37.27,
|
|
37.27,
|
|
37.265,
|
|
37.265,
|
|
37.255,
|
|
37.24,
|
|
37.255,
|
|
37.2324,
|
|
37.245,
|
|
37.2501,
|
|
37.235,
|
|
37.24,
|
|
37.235,
|
|
37.235,
|
|
37.23,
|
|
37.24,
|
|
37.245,
|
|
37.235,
|
|
37.24,
|
|
37.25,
|
|
37.2413,
|
|
37.235,
|
|
37.235,
|
|
37.235,
|
|
37.2329,
|
|
37.2299,
|
|
37.23,
|
|
37.225,
|
|
37.215,
|
|
37.23,
|
|
37.22,
|
|
37.2275,
|
|
37.225,
|
|
37.22,
|
|
37.1967,
|
|
37.21,
|
|
37.19,
|
|
37.195,
|
|
37.185,
|
|
37.17,
|
|
37.195,
|
|
37.205,
|
|
37.19,
|
|
37.195,
|
|
37.2,
|
|
37.2055,
|
|
37.2,
|
|
37.19,
|
|
37.19,
|
|
37.2,
|
|
37.195,
|
|
37.205,
|
|
37.195,
|
|
37.19,
|
|
37.1711,
|
|
37.16,
|
|
37.16,
|
|
37.175,
|
|
37.1601,
|
|
37.185,
|
|
37.1732,
|
|
37.155,
|
|
37.17,
|
|
37.18,
|
|
37.175,
|
|
37.155,
|
|
37.13,
|
|
37.13,
|
|
37.14,
|
|
37.14,
|
|
37.155,
|
|
37.15,
|
|
37.154,
|
|
37.1721,
|
|
37.1701,
|
|
37.1623,
|
|
37.16,
|
|
37.18,
|
|
37.185,
|
|
37.2,
|
|
37.2,
|
|
37.205,
|
|
37.195,
|
|
37.195,
|
|
37.19,
|
|
37.18,
|
|
37.175,
|
|
37.16,
|
|
37.16,
|
|
37.1639,
|
|
37.19,
|
|
37.195,
|
|
37.205,
|
|
37.19,
|
|
37.215,
|
|
37.2225,
|
|
37.215,
|
|
37.215,
|
|
37.205,
|
|
37.21,
|
|
37.215,
|
|
37.2,
|
|
37.23,
|
|
37.215,
|
|
37.23,
|
|
37.23,
|
|
37.245,
|
|
37.25,
|
|
37.245,
|
|
37.25,
|
|
37.245,
|
|
37.23,
|
|
37.245,
|
|
37.235,
|
|
37.24,
|
|
37.72,
|
|
37.675,
|
|
37.63,
|
|
37.5742,
|
|
37.58,
|
|
37.42,
|
|
37.4111,
|
|
37.4022,
|
|
37.42,
|
|
37.43,
|
|
37.44,
|
|
37.485,
|
|
37.535,
|
|
37.5508,
|
|
37.525,
|
|
37.53,
|
|
37.5188,
|
|
37.5299,
|
|
37.5,
|
|
37.435,
|
|
37.465,
|
|
37.475,
|
|
37.495,
|
|
37.495,
|
|
37.515,
|
|
37.535,
|
|
37.535,
|
|
37.545,
|
|
37.5,
|
|
37.49,
|
|
37.48,
|
|
37.505,
|
|
37.51,
|
|
37.535,
|
|
37.57,
|
|
37.5701,
|
|
37.565,
|
|
37.58,
|
|
37.59,
|
|
37.58,
|
|
37.58,
|
|
37.615,
|
|
37.615,
|
|
37.625,
|
|
37.635,
|
|
37.64,
|
|
37.675,
|
|
37.6388,
|
|
37.66,
|
|
37.605,
|
|
37.625,
|
|
37.645,
|
|
37.63,
|
|
37.6352,
|
|
37.625,
|
|
37.6463,
|
|
37.635,
|
|
37.6125,
|
|
37.64,
|
|
37.625,
|
|
37.6326,
|
|
37.595,
|
|
37.59,
|
|
37.5928,
|
|
37.595,
|
|
37.585,
|
|
37.585,
|
|
37.595,
|
|
37.615,
|
|
37.605,
|
|
37.615,
|
|
37.615,
|
|
37.605,
|
|
37.575,
|
|
37.5993,
|
|
37.5924,
|
|
37.59,
|
|
37.595,
|
|
37.595,
|
|
37.595,
|
|
37.6,
|
|
37.5799,
|
|
37.56,
|
|
37.5515,
|
|
37.5625,
|
|
37.58,
|
|
37.545,
|
|
37.555,
|
|
37.555,
|
|
37.56,
|
|
37.55,
|
|
37.5599,
|
|
37.5402,
|
|
37.535,
|
|
37.545,
|
|
37.515,
|
|
37.54,
|
|
37.55,
|
|
37.53,
|
|
37.545,
|
|
37.54,
|
|
37.5377,
|
|
37.53,
|
|
37.53,
|
|
37.5343,
|
|
37.555,
|
|
37.54,
|
|
37.5376,
|
|
37.52,
|
|
37.5301,
|
|
37.545,
|
|
37.545,
|
|
37.5177,
|
|
37.5,
|
|
37.495,
|
|
37.4986,
|
|
37.4982,
|
|
37.475,
|
|
37.48,
|
|
37.49,
|
|
37.4725,
|
|
37.48,
|
|
37.485,
|
|
37.475,
|
|
37.485,
|
|
37.5,
|
|
37.505,
|
|
37.505
|
|
],
|
|
"decreasing": {
|
|
"fillcolor": "#ee534f",
|
|
"line": {
|
|
"color": "#ee534f"
|
|
}
|
|
},
|
|
"high": [
|
|
37.94,
|
|
37.985,
|
|
37.85,
|
|
37.88,
|
|
37.89,
|
|
37.86,
|
|
37.83,
|
|
37.895,
|
|
37.89,
|
|
37.9,
|
|
37.89,
|
|
37.93,
|
|
37.92,
|
|
37.87,
|
|
37.88,
|
|
37.89,
|
|
37.93,
|
|
37.965,
|
|
37.97,
|
|
37.99,
|
|
38.005,
|
|
38.03,
|
|
38.03,
|
|
38,
|
|
38.01,
|
|
38.03,
|
|
38.0102,
|
|
38.01,
|
|
38.0075,
|
|
37.99,
|
|
38.01,
|
|
38.04,
|
|
38.06,
|
|
38.05,
|
|
38.0389,
|
|
38.04,
|
|
38.04,
|
|
38.06,
|
|
38.06,
|
|
38.02,
|
|
38.02,
|
|
38.02,
|
|
38.03,
|
|
38.03,
|
|
38.015,
|
|
38.03,
|
|
38.03,
|
|
38.03,
|
|
38.025,
|
|
38.015,
|
|
38.02,
|
|
37.995,
|
|
38,
|
|
38.005,
|
|
37.9991,
|
|
37.99,
|
|
37.99,
|
|
37.99,
|
|
37.98,
|
|
37.97,
|
|
37.97,
|
|
37.9775,
|
|
37.97,
|
|
37.995,
|
|
37.99,
|
|
37.9875,
|
|
37.975,
|
|
37.97,
|
|
37.97,
|
|
37.95,
|
|
37.96,
|
|
37.96,
|
|
37.96,
|
|
37.96,
|
|
37.96,
|
|
37.96,
|
|
37.96,
|
|
37.95,
|
|
37.97,
|
|
37.97,
|
|
37.96,
|
|
37.96,
|
|
37.96,
|
|
37.95,
|
|
37.95,
|
|
37.95,
|
|
37.95,
|
|
37.95,
|
|
37.96,
|
|
37.95,
|
|
37.95,
|
|
37.95,
|
|
37.96,
|
|
37.96,
|
|
37.95,
|
|
37.95,
|
|
37.96,
|
|
37.96,
|
|
37.95,
|
|
37.95,
|
|
37.95,
|
|
37.95,
|
|
37.93,
|
|
37.92,
|
|
37.92,
|
|
37.9299,
|
|
37.93,
|
|
37.93,
|
|
37.93,
|
|
37.925,
|
|
37.93,
|
|
37.93,
|
|
37.925,
|
|
37.89,
|
|
37.88,
|
|
37.88,
|
|
37.89,
|
|
37.9,
|
|
37.9,
|
|
37.91,
|
|
37.895,
|
|
37.885,
|
|
37.91,
|
|
37.91,
|
|
37.8899,
|
|
37.88,
|
|
37.9,
|
|
37.9,
|
|
37.9,
|
|
37.9,
|
|
37.89,
|
|
37.8599,
|
|
37.87,
|
|
37.87,
|
|
37.856,
|
|
37.8499,
|
|
37.85,
|
|
37.85,
|
|
37.85,
|
|
37.85,
|
|
37.86,
|
|
37.86,
|
|
37.85,
|
|
37.85,
|
|
37.84,
|
|
37.83,
|
|
37.83,
|
|
37.82,
|
|
37.83,
|
|
37.83,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.795,
|
|
37.8,
|
|
37.79,
|
|
37.78,
|
|
37.78,
|
|
37.78,
|
|
37.78,
|
|
37.77,
|
|
37.76,
|
|
37.78,
|
|
37.79,
|
|
37.79,
|
|
37.8,
|
|
37.79,
|
|
37.79,
|
|
37.79,
|
|
37.79,
|
|
37.79,
|
|
37.77,
|
|
37.78,
|
|
37.77,
|
|
37.77,
|
|
37.7674,
|
|
37.77,
|
|
37.77,
|
|
37.74,
|
|
37.74,
|
|
37.74,
|
|
37.74,
|
|
37.74,
|
|
37.73,
|
|
37.726,
|
|
37.72,
|
|
37.7299,
|
|
37.72,
|
|
37.7299,
|
|
37.73,
|
|
37.72,
|
|
37.72,
|
|
37.73,
|
|
37.74,
|
|
37.75,
|
|
37.75,
|
|
37.74,
|
|
37.73,
|
|
37.74,
|
|
37.75,
|
|
37.75,
|
|
37.74,
|
|
37.74,
|
|
37.74,
|
|
37.735,
|
|
37.72,
|
|
37.72,
|
|
37.72,
|
|
37.73,
|
|
37.73,
|
|
37.74,
|
|
37.75,
|
|
37.75,
|
|
37.7498,
|
|
37.7484,
|
|
37.75,
|
|
37.75,
|
|
37.75,
|
|
37.76,
|
|
37.76,
|
|
37.76,
|
|
37.76,
|
|
37.77,
|
|
37.77,
|
|
37.767,
|
|
37.79,
|
|
37.8,
|
|
37.8,
|
|
37.7868,
|
|
37.78,
|
|
37.78,
|
|
37.8,
|
|
37.7999,
|
|
37.8,
|
|
37.7942,
|
|
37.79,
|
|
37.79,
|
|
37.77,
|
|
37.77,
|
|
37.7674,
|
|
37.77,
|
|
37.78,
|
|
37.78,
|
|
37.7676,
|
|
37.77,
|
|
37.765,
|
|
37.77,
|
|
37.76,
|
|
37.74,
|
|
37.735,
|
|
37.72,
|
|
37.73,
|
|
37.73,
|
|
37.74,
|
|
37.73,
|
|
37.7288,
|
|
37.74,
|
|
37.75,
|
|
37.75,
|
|
37.75,
|
|
37.75,
|
|
37.73,
|
|
37.74,
|
|
37.76,
|
|
37.76,
|
|
37.75,
|
|
37.76,
|
|
37.755,
|
|
37.74,
|
|
37.74,
|
|
37.75,
|
|
37.75,
|
|
37.75,
|
|
37.73,
|
|
37.73,
|
|
37.74,
|
|
37.73,
|
|
37.72,
|
|
37.72,
|
|
37.72,
|
|
37.715,
|
|
37.7,
|
|
37.695,
|
|
37.6639,
|
|
37.655,
|
|
37.66,
|
|
37.66,
|
|
37.66,
|
|
37.65,
|
|
37.66,
|
|
37.67,
|
|
37.68,
|
|
37.68,
|
|
37.69,
|
|
37.695,
|
|
37.69,
|
|
37.69,
|
|
37.69,
|
|
37.695,
|
|
37.69,
|
|
37.71,
|
|
37.69,
|
|
37.68,
|
|
37.68,
|
|
37.665,
|
|
37.67,
|
|
37.67,
|
|
37.6699,
|
|
37.66,
|
|
37.64,
|
|
37.62,
|
|
37.58,
|
|
37.57,
|
|
37.54,
|
|
37.52,
|
|
37.5064,
|
|
37.5,
|
|
37.49,
|
|
37.51,
|
|
37.51,
|
|
37.52,
|
|
37.515,
|
|
37.5,
|
|
37.49,
|
|
37.5,
|
|
37.51,
|
|
37.52,
|
|
37.525,
|
|
37.525,
|
|
37.53,
|
|
37.55,
|
|
37.56,
|
|
37.56,
|
|
37.55,
|
|
37.54,
|
|
37.535,
|
|
37.52,
|
|
37.52,
|
|
37.5101,
|
|
37.51,
|
|
37.52,
|
|
37.53,
|
|
37.53,
|
|
37.54,
|
|
37.55,
|
|
37.55,
|
|
37.525,
|
|
37.55,
|
|
37.56,
|
|
37.55,
|
|
37.53,
|
|
37.54,
|
|
37.545,
|
|
37.51,
|
|
37.53,
|
|
37.53,
|
|
37.5,
|
|
37.52,
|
|
37.52,
|
|
37.505,
|
|
37.5,
|
|
37.5,
|
|
37.5,
|
|
37.5,
|
|
37.52,
|
|
37.55,
|
|
37.53,
|
|
37.53,
|
|
37.53,
|
|
37.56,
|
|
37.6,
|
|
37.52,
|
|
37.515,
|
|
37.5,
|
|
37.45,
|
|
37.4099,
|
|
37.41,
|
|
37.43,
|
|
37.56,
|
|
37.57,
|
|
37.485,
|
|
37.51,
|
|
37.5258,
|
|
37.54,
|
|
37.51,
|
|
37.57,
|
|
37.565,
|
|
37.58,
|
|
37.565,
|
|
37.535,
|
|
37.53,
|
|
37.51,
|
|
37.52,
|
|
37.505,
|
|
37.47,
|
|
37.45,
|
|
37.42,
|
|
37.43,
|
|
37.425,
|
|
37.43,
|
|
37.45,
|
|
37.47,
|
|
37.44,
|
|
37.44,
|
|
37.42,
|
|
37.44,
|
|
37.45,
|
|
37.48,
|
|
37.495,
|
|
37.49,
|
|
37.47,
|
|
37.48,
|
|
37.49,
|
|
37.48,
|
|
37.49,
|
|
37.49,
|
|
37.49,
|
|
37.49,
|
|
37.53,
|
|
37.57,
|
|
37.565,
|
|
37.56,
|
|
37.56,
|
|
37.56,
|
|
37.56,
|
|
37.6,
|
|
37.56,
|
|
37.565,
|
|
37.55,
|
|
37.55,
|
|
37.55,
|
|
37.5,
|
|
37.49,
|
|
37.475,
|
|
37.4671,
|
|
37.485,
|
|
37.485,
|
|
37.505,
|
|
37.51,
|
|
37.51,
|
|
37.52,
|
|
37.54,
|
|
37.565,
|
|
37.57,
|
|
37.59,
|
|
37.59,
|
|
37.615,
|
|
37.6471,
|
|
37.65,
|
|
37.64,
|
|
37.64,
|
|
37.65,
|
|
37.67,
|
|
37.67,
|
|
37.66,
|
|
37.67,
|
|
37.655,
|
|
37.66,
|
|
37.64,
|
|
37.66,
|
|
37.66,
|
|
37.65,
|
|
37.6401,
|
|
37.6399,
|
|
37.65,
|
|
37.65,
|
|
37.65,
|
|
37.62,
|
|
37.59,
|
|
37.6,
|
|
37.56,
|
|
37.545,
|
|
37.56,
|
|
37.56,
|
|
37.53,
|
|
37.52,
|
|
37.52,
|
|
37.56,
|
|
37.57,
|
|
37.58,
|
|
37.55,
|
|
37.54,
|
|
37.54,
|
|
37.54,
|
|
37.54,
|
|
37.55,
|
|
37.555,
|
|
37.56,
|
|
37.55,
|
|
37.545,
|
|
37.535,
|
|
37.52,
|
|
37.51,
|
|
37.4901,
|
|
37.5,
|
|
37.5,
|
|
37.52,
|
|
37.51,
|
|
37.51,
|
|
37.52,
|
|
37.52,
|
|
37.5077,
|
|
37.505,
|
|
37.5,
|
|
37.5,
|
|
37.49,
|
|
37.49,
|
|
37.4899,
|
|
37.4799,
|
|
37.4778,
|
|
37.47,
|
|
37.46,
|
|
37.45,
|
|
37.45,
|
|
37.46,
|
|
37.46,
|
|
37.48,
|
|
37.5,
|
|
37.51,
|
|
37.51,
|
|
37.495,
|
|
37.47,
|
|
37.47,
|
|
37.45,
|
|
37.45,
|
|
37.45,
|
|
37.44,
|
|
37.44,
|
|
37.44,
|
|
37.44,
|
|
37.445,
|
|
37.44,
|
|
37.45,
|
|
37.45,
|
|
37.44,
|
|
37.45,
|
|
37.445,
|
|
37.44,
|
|
37.43,
|
|
37.43,
|
|
37.42,
|
|
37.43,
|
|
37.445,
|
|
37.45,
|
|
37.445,
|
|
37.44,
|
|
37.465,
|
|
37.46,
|
|
37.445,
|
|
37.44,
|
|
37.43,
|
|
37.415,
|
|
37.39,
|
|
37.38,
|
|
37.34,
|
|
37.315,
|
|
37.3282,
|
|
37.32,
|
|
37.34,
|
|
37.34,
|
|
37.33,
|
|
37.33,
|
|
37.34,
|
|
37.325,
|
|
37.3,
|
|
37.32,
|
|
37.31,
|
|
37.3,
|
|
37.31,
|
|
37.3078,
|
|
37.3,
|
|
37.315,
|
|
37.32,
|
|
37.29,
|
|
37.28,
|
|
37.285,
|
|
37.3,
|
|
37.3,
|
|
37.3,
|
|
37.3,
|
|
37.29,
|
|
37.275,
|
|
37.27,
|
|
37.29,
|
|
37.3,
|
|
37.3,
|
|
37.285,
|
|
37.31,
|
|
37.32,
|
|
37.32,
|
|
37.295,
|
|
37.29,
|
|
37.3,
|
|
37.28,
|
|
37.265,
|
|
37.28,
|
|
37.28,
|
|
37.28,
|
|
37.28,
|
|
37.28,
|
|
37.28,
|
|
37.3,
|
|
37.3,
|
|
37.3,
|
|
37.3,
|
|
37.3,
|
|
37.3,
|
|
37.3,
|
|
37.3,
|
|
37.3,
|
|
37.3,
|
|
37.29,
|
|
37.29,
|
|
37.29,
|
|
37.3,
|
|
37.3,
|
|
37.3,
|
|
37.3,
|
|
37.3,
|
|
37.3,
|
|
37.3,
|
|
37.34,
|
|
37.34,
|
|
37.32,
|
|
37.34,
|
|
37.35,
|
|
37.34,
|
|
37.35,
|
|
37.33,
|
|
37.33,
|
|
37.33,
|
|
37.36,
|
|
37.35,
|
|
37.36,
|
|
37.36,
|
|
37.36,
|
|
37.36,
|
|
37.35,
|
|
37.37,
|
|
37.37,
|
|
37.37,
|
|
37.37,
|
|
37.3677,
|
|
37.36,
|
|
37.36,
|
|
37.36,
|
|
37.36,
|
|
37.35,
|
|
37.34,
|
|
37.33,
|
|
37.33,
|
|
37.32,
|
|
37.32,
|
|
37.31,
|
|
37.32,
|
|
37.31,
|
|
37.3,
|
|
37.295,
|
|
37.29,
|
|
37.29,
|
|
37.29,
|
|
37.29,
|
|
37.31,
|
|
37.3,
|
|
37.2899,
|
|
37.28,
|
|
37.28,
|
|
37.27,
|
|
37.26,
|
|
37.24,
|
|
37.245,
|
|
37.24,
|
|
37.23,
|
|
37.22,
|
|
37.2401,
|
|
37.24,
|
|
37.24,
|
|
37.24,
|
|
37.24,
|
|
37.2475,
|
|
37.25,
|
|
37.23,
|
|
37.215,
|
|
37.21,
|
|
37.2,
|
|
37.195,
|
|
37.19,
|
|
37.19,
|
|
37.1881,
|
|
37.165,
|
|
37.15,
|
|
37.145,
|
|
37.1174,
|
|
37.13,
|
|
37.15,
|
|
37.16,
|
|
37.1599,
|
|
37.17,
|
|
37.1462,
|
|
37.15,
|
|
37.14,
|
|
37.15,
|
|
37.15,
|
|
37.17,
|
|
37.17,
|
|
37.17,
|
|
37.18,
|
|
37.18,
|
|
37.18,
|
|
37.16,
|
|
37.16,
|
|
37.1674,
|
|
37.15,
|
|
37.15,
|
|
37.15,
|
|
37.14,
|
|
37.13,
|
|
37.11,
|
|
37.1075,
|
|
37.11,
|
|
37.1,
|
|
37.1267,
|
|
37.129,
|
|
37.11,
|
|
37.1,
|
|
37.09,
|
|
37.1,
|
|
37.1,
|
|
37.1,
|
|
37.11,
|
|
37.11,
|
|
37.09,
|
|
37.09,
|
|
37.09,
|
|
37.1,
|
|
37.1,
|
|
37.09,
|
|
37.07,
|
|
37.07,
|
|
37.07,
|
|
37.08,
|
|
37.1,
|
|
37.09,
|
|
37.09,
|
|
37.09,
|
|
37.085,
|
|
37.08,
|
|
37.06,
|
|
37.06,
|
|
37.08,
|
|
37.09,
|
|
37.09,
|
|
37.09,
|
|
37.085,
|
|
37.08,
|
|
37.08,
|
|
37.08,
|
|
37.08,
|
|
37.045,
|
|
37.025,
|
|
37.02,
|
|
37.01,
|
|
37.36,
|
|
37.36,
|
|
37.41,
|
|
37.375,
|
|
37.32,
|
|
37.22,
|
|
37.195,
|
|
37.23,
|
|
37.24,
|
|
37.225,
|
|
37.202,
|
|
37.15,
|
|
37.11,
|
|
37.13,
|
|
37.15,
|
|
37.16,
|
|
37.125,
|
|
37.01,
|
|
36.99,
|
|
37.03,
|
|
37.01,
|
|
36.985,
|
|
36.985,
|
|
36.99,
|
|
37,
|
|
36.99,
|
|
37.0375,
|
|
37.035,
|
|
37.05,
|
|
37.06,
|
|
37.07,
|
|
37.035,
|
|
37.05,
|
|
37.07,
|
|
37.08,
|
|
37.13,
|
|
37.1499,
|
|
37.15,
|
|
37.14,
|
|
37.13,
|
|
37.13,
|
|
37.12,
|
|
37.1186,
|
|
37.1282,
|
|
37.125,
|
|
37.12,
|
|
37.1201,
|
|
37.13,
|
|
37.105,
|
|
37.085,
|
|
37.0907,
|
|
37.075,
|
|
37.07,
|
|
37.07,
|
|
37.07,
|
|
37.06,
|
|
37.065,
|
|
37.0707,
|
|
37.08,
|
|
37.055,
|
|
37.06,
|
|
37.05,
|
|
37.05,
|
|
37.05,
|
|
37.05,
|
|
37.05,
|
|
37.05,
|
|
37.08,
|
|
37.08,
|
|
37.08,
|
|
37.05,
|
|
37.0489,
|
|
37.04,
|
|
37.04,
|
|
37.05,
|
|
37.04,
|
|
37.05,
|
|
37.06,
|
|
37.08,
|
|
37.09,
|
|
37.085,
|
|
37.07,
|
|
37.045,
|
|
37.06,
|
|
37.07,
|
|
37.08,
|
|
37.09,
|
|
37.08,
|
|
37.08,
|
|
37.08,
|
|
37.09,
|
|
37.09,
|
|
37.09,
|
|
37.09,
|
|
37.1,
|
|
37.1,
|
|
37.1,
|
|
37.095,
|
|
37.09,
|
|
37.07,
|
|
37.07,
|
|
37.065,
|
|
37.06,
|
|
37.05,
|
|
37.0373,
|
|
37.03,
|
|
37.03,
|
|
37.03,
|
|
37.03,
|
|
37.035,
|
|
37.055,
|
|
37.06,
|
|
37.07,
|
|
37.065,
|
|
37.06,
|
|
37.07,
|
|
37.07,
|
|
37.07,
|
|
37.08,
|
|
37.08,
|
|
37.09,
|
|
37.09,
|
|
37.085,
|
|
37.08,
|
|
37.065,
|
|
37.06,
|
|
37.055,
|
|
37.05,
|
|
37.03,
|
|
37.04,
|
|
37.05,
|
|
37.05,
|
|
37.05,
|
|
37.0367,
|
|
37.0299,
|
|
37.03,
|
|
37.02,
|
|
37.03,
|
|
37.015,
|
|
37.01,
|
|
37.01,
|
|
37.005,
|
|
36.99,
|
|
36.99,
|
|
37,
|
|
37,
|
|
37.03,
|
|
37.04,
|
|
37.06,
|
|
37.075,
|
|
37.06,
|
|
37.06,
|
|
37.07,
|
|
37.07,
|
|
37.06,
|
|
37.045,
|
|
37.02,
|
|
37,
|
|
37,
|
|
37.02,
|
|
37.03,
|
|
37.03,
|
|
37.04,
|
|
37.04,
|
|
37.04,
|
|
37.03,
|
|
37.0199,
|
|
37.01,
|
|
37,
|
|
36.9998,
|
|
36.97,
|
|
36.98,
|
|
36.94,
|
|
36.95,
|
|
36.95,
|
|
36.94,
|
|
36.95,
|
|
36.95,
|
|
36.95,
|
|
36.95,
|
|
36.94,
|
|
36.94,
|
|
36.95,
|
|
36.96,
|
|
36.97,
|
|
36.95,
|
|
36.94,
|
|
36.95,
|
|
36.95,
|
|
36.94,
|
|
36.94,
|
|
36.94,
|
|
36.94,
|
|
36.92,
|
|
36.94,
|
|
36.95,
|
|
36.945,
|
|
36.95,
|
|
36.93,
|
|
36.93,
|
|
36.93,
|
|
36.9279,
|
|
36.93,
|
|
36.93,
|
|
36.93,
|
|
36.93,
|
|
36.93,
|
|
36.92,
|
|
36.92,
|
|
36.92,
|
|
36.93,
|
|
36.9212,
|
|
36.92,
|
|
36.88,
|
|
36.865,
|
|
36.86,
|
|
36.855,
|
|
36.86,
|
|
36.835,
|
|
36.84,
|
|
36.85,
|
|
36.85,
|
|
36.85,
|
|
36.8499,
|
|
36.82,
|
|
36.8287,
|
|
36.8275,
|
|
36.83,
|
|
36.83,
|
|
36.83,
|
|
36.82,
|
|
36.82,
|
|
36.86,
|
|
36.855,
|
|
36.86,
|
|
36.86,
|
|
36.86,
|
|
36.88,
|
|
36.89,
|
|
36.89,
|
|
36.89,
|
|
36.89,
|
|
36.92,
|
|
36.92,
|
|
36.95,
|
|
36.98,
|
|
36.99,
|
|
37.01,
|
|
37,
|
|
37,
|
|
36.98,
|
|
36.98,
|
|
36.9782,
|
|
36.975,
|
|
36.96,
|
|
36.9575,
|
|
36.96,
|
|
36.95,
|
|
36.95,
|
|
36.95,
|
|
36.955,
|
|
36.945,
|
|
36.925,
|
|
36.91,
|
|
36.91,
|
|
36.91,
|
|
36.92,
|
|
36.93,
|
|
36.94,
|
|
36.945,
|
|
36.99,
|
|
36.975,
|
|
37,
|
|
36.99,
|
|
36.985,
|
|
37,
|
|
36.955,
|
|
36.975,
|
|
36.98,
|
|
36.98,
|
|
36.98,
|
|
36.94,
|
|
36.935,
|
|
36.94,
|
|
36.94,
|
|
36.95,
|
|
36.95,
|
|
36.945,
|
|
36.95,
|
|
36.95,
|
|
36.94,
|
|
36.945,
|
|
36.94,
|
|
36.95,
|
|
36.95,
|
|
36.95,
|
|
37.005,
|
|
37.02,
|
|
37.04,
|
|
37.04,
|
|
37.056,
|
|
37.045,
|
|
36.97,
|
|
37.085,
|
|
37.14,
|
|
37.125,
|
|
37.07,
|
|
37.05,
|
|
37.116,
|
|
37.18,
|
|
37.27,
|
|
37.305,
|
|
37.29,
|
|
37.31,
|
|
37.415,
|
|
37.425,
|
|
37.38,
|
|
37.375,
|
|
37.4,
|
|
37.425,
|
|
37.47,
|
|
37.4635,
|
|
37.48,
|
|
37.46,
|
|
37.47,
|
|
37.49,
|
|
37.47,
|
|
37.4878,
|
|
37.475,
|
|
37.48,
|
|
37.505,
|
|
37.5,
|
|
37.5,
|
|
37.43,
|
|
37.41,
|
|
37.41,
|
|
37.41,
|
|
37.4,
|
|
37.425,
|
|
37.435,
|
|
37.41,
|
|
37.41,
|
|
37.39,
|
|
37.4075,
|
|
37.4138,
|
|
37.43,
|
|
37.41,
|
|
37.395,
|
|
37.4,
|
|
37.3885,
|
|
37.37,
|
|
37.35,
|
|
37.33,
|
|
37.35,
|
|
37.39,
|
|
37.39,
|
|
37.41,
|
|
37.39,
|
|
37.3899,
|
|
37.37,
|
|
37.365,
|
|
37.32,
|
|
37.28,
|
|
37.28,
|
|
37.29,
|
|
37.24,
|
|
37.24,
|
|
37.225,
|
|
37.21,
|
|
37.16,
|
|
37.195,
|
|
37.21,
|
|
37.16,
|
|
37.155,
|
|
37.17,
|
|
37.17,
|
|
37.2,
|
|
37.19,
|
|
37.14,
|
|
37.17,
|
|
37.165,
|
|
37.155,
|
|
37.05,
|
|
37.0375,
|
|
37.045,
|
|
37.055,
|
|
37.02,
|
|
37.015,
|
|
36.98,
|
|
36.98,
|
|
36.95,
|
|
37.49,
|
|
37.49,
|
|
37.49,
|
|
37.46,
|
|
37.455,
|
|
37.36,
|
|
37.325,
|
|
37.26,
|
|
37.255,
|
|
37.26,
|
|
37.27,
|
|
37.28,
|
|
37.29,
|
|
37.215,
|
|
37.145,
|
|
37.14,
|
|
37.145,
|
|
37.115,
|
|
37.125,
|
|
37.14,
|
|
37.17,
|
|
37.16,
|
|
37.15,
|
|
37.155,
|
|
37.16,
|
|
37.12,
|
|
37.12,
|
|
37.1674,
|
|
37.17,
|
|
37.15,
|
|
37.15,
|
|
37.115,
|
|
37.035,
|
|
37.06,
|
|
37.07,
|
|
37.0599,
|
|
37.0599,
|
|
37.05,
|
|
37.06,
|
|
37.01,
|
|
36.98,
|
|
37,
|
|
37.025,
|
|
37.02,
|
|
36.98,
|
|
36.99,
|
|
36.98,
|
|
36.975,
|
|
36.95,
|
|
36.9599,
|
|
36.965,
|
|
36.92,
|
|
36.915,
|
|
36.97,
|
|
36.99,
|
|
36.96,
|
|
37,
|
|
37.01,
|
|
37.02,
|
|
37.01,
|
|
36.995,
|
|
36.99,
|
|
36.99,
|
|
36.98,
|
|
36.98,
|
|
36.985,
|
|
36.97,
|
|
36.99,
|
|
36.99,
|
|
36.98,
|
|
36.97,
|
|
36.935,
|
|
36.903,
|
|
36.8599,
|
|
36.855,
|
|
36.845,
|
|
36.84,
|
|
36.86,
|
|
36.875,
|
|
36.875,
|
|
36.8761,
|
|
36.87,
|
|
36.88,
|
|
36.88,
|
|
36.85,
|
|
36.8399,
|
|
36.875,
|
|
36.88,
|
|
36.89,
|
|
36.8877,
|
|
36.87,
|
|
36.89,
|
|
36.92,
|
|
36.915,
|
|
36.9067,
|
|
36.9,
|
|
36.91,
|
|
36.92,
|
|
36.92,
|
|
36.92,
|
|
36.92,
|
|
36.935,
|
|
36.915,
|
|
36.9,
|
|
36.89,
|
|
36.9,
|
|
36.9,
|
|
36.89,
|
|
36.89,
|
|
36.895,
|
|
36.92,
|
|
36.9,
|
|
36.9,
|
|
36.905,
|
|
36.88,
|
|
36.88,
|
|
36.87,
|
|
36.85,
|
|
36.83,
|
|
36.825,
|
|
36.83,
|
|
36.82,
|
|
36.785,
|
|
36.8,
|
|
36.79,
|
|
36.75,
|
|
36.75,
|
|
36.745,
|
|
36.745,
|
|
36.74,
|
|
36.75,
|
|
36.77,
|
|
36.76,
|
|
36.76,
|
|
36.77,
|
|
36.7798,
|
|
36.78,
|
|
36.795,
|
|
36.79,
|
|
36.8,
|
|
36.795,
|
|
36.8162,
|
|
36.82,
|
|
36.8071,
|
|
36.815,
|
|
36.81,
|
|
36.8,
|
|
36.8,
|
|
36.79,
|
|
36.79,
|
|
36.77,
|
|
36.77,
|
|
36.76,
|
|
36.76,
|
|
36.755,
|
|
36.7599,
|
|
36.75,
|
|
36.7574,
|
|
36.7586,
|
|
36.7199,
|
|
36.725,
|
|
36.7299,
|
|
36.73,
|
|
36.7299,
|
|
36.72,
|
|
36.725,
|
|
36.7262,
|
|
36.71,
|
|
36.7095,
|
|
36.715,
|
|
36.75,
|
|
36.7499,
|
|
36.75,
|
|
36.76,
|
|
36.755,
|
|
36.73,
|
|
36.72,
|
|
36.72,
|
|
36.725,
|
|
36.71,
|
|
36.715,
|
|
36.7,
|
|
36.71,
|
|
36.69,
|
|
36.69,
|
|
36.68,
|
|
36.675,
|
|
36.68,
|
|
36.7,
|
|
36.73,
|
|
36.725,
|
|
36.735,
|
|
36.74,
|
|
36.74,
|
|
36.75,
|
|
36.7568,
|
|
36.75,
|
|
36.7501,
|
|
36.77,
|
|
36.76,
|
|
36.7599,
|
|
36.7699,
|
|
36.765,
|
|
36.77,
|
|
36.77,
|
|
36.755,
|
|
36.76,
|
|
36.76,
|
|
36.76,
|
|
36.77,
|
|
36.77,
|
|
36.78,
|
|
36.79,
|
|
36.79,
|
|
36.7858,
|
|
36.79,
|
|
36.7927,
|
|
36.81,
|
|
36.81,
|
|
36.81,
|
|
36.82,
|
|
36.8369,
|
|
36.835,
|
|
36.876,
|
|
36.885,
|
|
36.9,
|
|
36.91,
|
|
36.875,
|
|
36.87,
|
|
36.87,
|
|
36.865,
|
|
36.87,
|
|
36.86,
|
|
36.865,
|
|
36.895,
|
|
36.89,
|
|
36.88,
|
|
36.88,
|
|
36.91,
|
|
36.92,
|
|
36.92,
|
|
36.9,
|
|
36.8999,
|
|
36.885,
|
|
36.89,
|
|
36.895,
|
|
36.895,
|
|
36.905,
|
|
36.895,
|
|
36.87,
|
|
36.88,
|
|
36.88,
|
|
36.876,
|
|
36.876,
|
|
36.88,
|
|
36.89,
|
|
36.87,
|
|
36.88,
|
|
36.875,
|
|
36.87,
|
|
36.88,
|
|
36.88,
|
|
36.895,
|
|
36.89,
|
|
36.875,
|
|
36.88,
|
|
36.88,
|
|
36.88,
|
|
36.88,
|
|
36.8775,
|
|
36.886,
|
|
36.86,
|
|
36.86,
|
|
36.87,
|
|
36.88,
|
|
36.87,
|
|
36.875,
|
|
36.88,
|
|
36.88,
|
|
36.88,
|
|
36.87,
|
|
36.855,
|
|
36.85,
|
|
36.855,
|
|
36.85,
|
|
36.85,
|
|
36.84,
|
|
36.84,
|
|
36.81,
|
|
36.825,
|
|
36.82,
|
|
36.83,
|
|
36.82,
|
|
36.83,
|
|
36.835,
|
|
36.845,
|
|
36.85,
|
|
36.865,
|
|
36.87,
|
|
36.88,
|
|
36.88,
|
|
36.88,
|
|
36.885,
|
|
36.91,
|
|
36.916,
|
|
36.9,
|
|
36.92,
|
|
36.92,
|
|
36.95,
|
|
36.9607,
|
|
36.96,
|
|
36.94,
|
|
36.94,
|
|
36.92,
|
|
36.905,
|
|
36.91,
|
|
36.906,
|
|
36.93,
|
|
36.96,
|
|
36.98,
|
|
36.955,
|
|
36.93,
|
|
36.935,
|
|
36.96,
|
|
36.96,
|
|
36.96,
|
|
36.96,
|
|
36.965,
|
|
36.98,
|
|
36.95,
|
|
36.92,
|
|
36.905,
|
|
36.89,
|
|
36.85,
|
|
36.8528,
|
|
36.89,
|
|
36.91,
|
|
36.92,
|
|
36.95,
|
|
36.96,
|
|
36.97,
|
|
36.96,
|
|
36.94,
|
|
36.93,
|
|
36.91,
|
|
36.896,
|
|
36.916,
|
|
36.9246,
|
|
36.88,
|
|
36.885,
|
|
36.92,
|
|
36.93,
|
|
36.93,
|
|
36.925,
|
|
36.92,
|
|
36.9205,
|
|
36.905,
|
|
36.9,
|
|
36.906,
|
|
36.91,
|
|
36.875,
|
|
36.88,
|
|
36.88,
|
|
36.86,
|
|
36.86,
|
|
36.835,
|
|
36.806,
|
|
36.83,
|
|
36.83,
|
|
36.816,
|
|
36.83,
|
|
36.82,
|
|
36.83,
|
|
36.83,
|
|
36.84,
|
|
36.81,
|
|
36.84,
|
|
36.845,
|
|
36.85,
|
|
36.85,
|
|
36.84,
|
|
36.82,
|
|
36.84,
|
|
36.84,
|
|
36.85,
|
|
36.865,
|
|
36.87,
|
|
36.86,
|
|
36.85,
|
|
36.89,
|
|
36.88,
|
|
37.44,
|
|
37.53,
|
|
37.5,
|
|
37.47,
|
|
37.4,
|
|
37.35,
|
|
37.33,
|
|
37.34,
|
|
37.27,
|
|
37.32,
|
|
37.36,
|
|
37.355,
|
|
37.355,
|
|
37.345,
|
|
37.31,
|
|
37.3,
|
|
37.39,
|
|
37.4,
|
|
37.415,
|
|
37.435,
|
|
37.405,
|
|
37.39,
|
|
37.425,
|
|
37.435,
|
|
37.45,
|
|
37.4585,
|
|
37.47,
|
|
37.46,
|
|
37.46,
|
|
37.44,
|
|
37.52,
|
|
37.39,
|
|
37.335,
|
|
37.33,
|
|
37.335,
|
|
37.3,
|
|
37.33,
|
|
37.33,
|
|
37.26,
|
|
37.27,
|
|
37.295,
|
|
37.275,
|
|
37.26,
|
|
37.27,
|
|
37.24,
|
|
37.27,
|
|
37.2678,
|
|
37.27,
|
|
37.25,
|
|
37.225,
|
|
37.2,
|
|
37.18,
|
|
37.17,
|
|
37.14,
|
|
37.16,
|
|
37.16,
|
|
37.15,
|
|
37.14,
|
|
37.18,
|
|
37.2,
|
|
37.23,
|
|
37.24,
|
|
37.24,
|
|
37.22,
|
|
37.19,
|
|
37.18,
|
|
37.195,
|
|
37.2,
|
|
37.205,
|
|
37.18,
|
|
37.1957,
|
|
37.22,
|
|
37.2,
|
|
37.21,
|
|
37.23,
|
|
37.24,
|
|
37.23,
|
|
37.24,
|
|
37.23,
|
|
37.2399,
|
|
37.22,
|
|
37.2,
|
|
37.195,
|
|
37.175,
|
|
37.18,
|
|
37.2,
|
|
37.2,
|
|
37.21,
|
|
37.225,
|
|
37.215,
|
|
37.2276,
|
|
37.23,
|
|
37.225,
|
|
37.21,
|
|
37.2,
|
|
37.21,
|
|
37.205,
|
|
37.24,
|
|
37.23,
|
|
37.225,
|
|
37.22,
|
|
37.24,
|
|
37.235,
|
|
37.2271,
|
|
37.23,
|
|
37.23,
|
|
37.23,
|
|
37.23,
|
|
37.22,
|
|
37.21,
|
|
37.21,
|
|
37.21,
|
|
37.2,
|
|
37.21,
|
|
37.21,
|
|
37.22,
|
|
37.2,
|
|
37.22,
|
|
37.235,
|
|
37.225,
|
|
37.22,
|
|
37.22,
|
|
37.23,
|
|
37.24,
|
|
37.235,
|
|
37.24,
|
|
37.235,
|
|
37.23,
|
|
37.23,
|
|
37.23,
|
|
37.24,
|
|
37.27,
|
|
37.26,
|
|
37.26,
|
|
37.25,
|
|
37.23,
|
|
37.25,
|
|
37.24,
|
|
37.235,
|
|
37.24,
|
|
37.25,
|
|
37.255,
|
|
37.245,
|
|
37.25,
|
|
37.255,
|
|
37.26,
|
|
37.245,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.26,
|
|
37.25,
|
|
37.25,
|
|
37.24,
|
|
37.24,
|
|
37.25,
|
|
37.245,
|
|
37.24,
|
|
37.24,
|
|
37.24,
|
|
37.25,
|
|
37.25,
|
|
37.231,
|
|
37.22,
|
|
37.225,
|
|
37.23,
|
|
37.23,
|
|
37.23,
|
|
37.23,
|
|
37.21,
|
|
37.22,
|
|
37.22,
|
|
37.22,
|
|
37.2383,
|
|
37.235,
|
|
37.25,
|
|
37.26,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.2499,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.27,
|
|
37.27,
|
|
37.25,
|
|
37.26,
|
|
37.275,
|
|
37.27,
|
|
37.2599,
|
|
37.2499,
|
|
37.2399,
|
|
37.23,
|
|
37.2203,
|
|
37.2257,
|
|
37.22,
|
|
37.21,
|
|
37.21,
|
|
37.1975,
|
|
37.2,
|
|
37.19,
|
|
37.19,
|
|
37.19,
|
|
37.215,
|
|
37.2199,
|
|
37.21,
|
|
37.21,
|
|
37.2099,
|
|
37.21,
|
|
37.205,
|
|
37.2,
|
|
37.21,
|
|
37.215,
|
|
37.21,
|
|
37.21,
|
|
37.2,
|
|
37.24,
|
|
37.215,
|
|
37.22,
|
|
37.23,
|
|
37.22,
|
|
37.22,
|
|
37.22,
|
|
37.22,
|
|
37.185,
|
|
37.18,
|
|
37.1799,
|
|
37.17,
|
|
37.165,
|
|
37.1763,
|
|
37.18,
|
|
37.18,
|
|
37.18,
|
|
37.19,
|
|
37.2,
|
|
37.2,
|
|
37.18,
|
|
37.175,
|
|
37.195,
|
|
37.21,
|
|
37.2188,
|
|
37.21,
|
|
37.22,
|
|
37.23,
|
|
37.24,
|
|
37.25,
|
|
37.2658,
|
|
37.27,
|
|
37.25,
|
|
37.24,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.27,
|
|
37.27,
|
|
37.27,
|
|
37.26,
|
|
37.26,
|
|
37.27,
|
|
37.27,
|
|
37.285,
|
|
37.265,
|
|
37.26,
|
|
37.26,
|
|
37.26,
|
|
37.26,
|
|
37.26,
|
|
37.27,
|
|
37.28,
|
|
37.28,
|
|
37.28,
|
|
37.285,
|
|
37.27,
|
|
37.27,
|
|
37.26,
|
|
37.26,
|
|
37.255,
|
|
37.25,
|
|
37.26,
|
|
37.25,
|
|
37.25,
|
|
37.255,
|
|
37.24,
|
|
37.2399,
|
|
37.24,
|
|
37.25,
|
|
37.25,
|
|
37.24,
|
|
37.25,
|
|
37.26,
|
|
37.2458,
|
|
37.24,
|
|
37.245,
|
|
37.24,
|
|
37.235,
|
|
37.23,
|
|
37.23,
|
|
37.225,
|
|
37.23,
|
|
37.23,
|
|
37.23,
|
|
37.23,
|
|
37.225,
|
|
37.215,
|
|
37.22,
|
|
37.215,
|
|
37.2,
|
|
37.2,
|
|
37.19,
|
|
37.2,
|
|
37.21,
|
|
37.21,
|
|
37.2,
|
|
37.21,
|
|
37.21,
|
|
37.21,
|
|
37.2,
|
|
37.2,
|
|
37.2,
|
|
37.2,
|
|
37.21,
|
|
37.21,
|
|
37.2,
|
|
37.19,
|
|
37.175,
|
|
37.17,
|
|
37.19,
|
|
37.175,
|
|
37.19,
|
|
37.185,
|
|
37.175,
|
|
37.18,
|
|
37.18,
|
|
37.18,
|
|
37.175,
|
|
37.1573,
|
|
37.1357,
|
|
37.14,
|
|
37.15,
|
|
37.166,
|
|
37.155,
|
|
37.16,
|
|
37.18,
|
|
37.18,
|
|
37.175,
|
|
37.17,
|
|
37.18,
|
|
37.19,
|
|
37.2,
|
|
37.2,
|
|
37.21,
|
|
37.2069,
|
|
37.2,
|
|
37.195,
|
|
37.19,
|
|
37.19,
|
|
37.18,
|
|
37.17,
|
|
37.17,
|
|
37.2,
|
|
37.2,
|
|
37.21,
|
|
37.205,
|
|
37.22,
|
|
37.23,
|
|
37.23,
|
|
37.22,
|
|
37.22,
|
|
37.21,
|
|
37.22,
|
|
37.22,
|
|
37.235,
|
|
37.23,
|
|
37.23,
|
|
37.23,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.27,
|
|
37.25,
|
|
37.73,
|
|
37.775,
|
|
37.72,
|
|
37.635,
|
|
37.6,
|
|
37.595,
|
|
37.45,
|
|
37.415,
|
|
37.4299,
|
|
37.45,
|
|
37.46,
|
|
37.4963,
|
|
37.54,
|
|
37.56,
|
|
37.56,
|
|
37.53,
|
|
37.545,
|
|
37.545,
|
|
37.53,
|
|
37.4971,
|
|
37.47,
|
|
37.48,
|
|
37.5,
|
|
37.508,
|
|
37.52,
|
|
37.535,
|
|
37.565,
|
|
37.55,
|
|
37.57,
|
|
37.51,
|
|
37.51,
|
|
37.5075,
|
|
37.51,
|
|
37.555,
|
|
37.57,
|
|
37.58,
|
|
37.59,
|
|
37.58,
|
|
37.595,
|
|
37.5975,
|
|
37.59,
|
|
37.62,
|
|
37.64,
|
|
37.63,
|
|
37.64,
|
|
37.64,
|
|
37.68,
|
|
37.69,
|
|
37.66,
|
|
37.6586,
|
|
37.63,
|
|
37.645,
|
|
37.65,
|
|
37.64,
|
|
37.645,
|
|
37.6463,
|
|
37.6499,
|
|
37.65,
|
|
37.65,
|
|
37.64,
|
|
37.6465,
|
|
37.64,
|
|
37.605,
|
|
37.6,
|
|
37.6,
|
|
37.6,
|
|
37.59,
|
|
37.5999,
|
|
37.63,
|
|
37.62,
|
|
37.62,
|
|
37.62,
|
|
37.62,
|
|
37.61,
|
|
37.6,
|
|
37.6,
|
|
37.6,
|
|
37.6,
|
|
37.615,
|
|
37.62,
|
|
37.6099,
|
|
37.6,
|
|
37.585,
|
|
37.565,
|
|
37.57,
|
|
37.58,
|
|
37.58,
|
|
37.56,
|
|
37.56,
|
|
37.56,
|
|
37.57,
|
|
37.56,
|
|
37.56,
|
|
37.55,
|
|
37.5479,
|
|
37.546,
|
|
37.54,
|
|
37.55,
|
|
37.55,
|
|
37.55,
|
|
37.55,
|
|
37.5487,
|
|
37.54,
|
|
37.54,
|
|
37.545,
|
|
37.555,
|
|
37.56,
|
|
37.5574,
|
|
37.5394,
|
|
37.54,
|
|
37.55,
|
|
37.55,
|
|
37.545,
|
|
37.52,
|
|
37.51,
|
|
37.4986,
|
|
37.505,
|
|
37.5,
|
|
37.49,
|
|
37.49,
|
|
37.5,
|
|
37.4999,
|
|
37.4873,
|
|
37.485,
|
|
37.49,
|
|
37.525,
|
|
37.51,
|
|
37.511
|
|
],
|
|
"increasing": {
|
|
"fillcolor": "#26a69a",
|
|
"line": {
|
|
"color": "#26a69a"
|
|
}
|
|
},
|
|
"low": [
|
|
37.76,
|
|
37.78,
|
|
37.775,
|
|
37.7935,
|
|
37.835,
|
|
37.7349,
|
|
37.76,
|
|
37.82,
|
|
37.83,
|
|
37.87,
|
|
37.825,
|
|
37.875,
|
|
37.845,
|
|
37.82,
|
|
37.84,
|
|
37.865,
|
|
37.8607,
|
|
37.93,
|
|
37.935,
|
|
37.96,
|
|
37.965,
|
|
37.955,
|
|
37.995,
|
|
37.96,
|
|
37.98,
|
|
37.99,
|
|
37.9602,
|
|
37.98,
|
|
37.96,
|
|
37.95,
|
|
37.96,
|
|
37.995,
|
|
38.025,
|
|
38.025,
|
|
38.02,
|
|
38.015,
|
|
38.005,
|
|
38.03,
|
|
38.01,
|
|
38,
|
|
37.99,
|
|
38,
|
|
38,
|
|
38.005,
|
|
37.995,
|
|
38.01,
|
|
38.01,
|
|
38.015,
|
|
38,
|
|
38,
|
|
37.975,
|
|
37.975,
|
|
37.99,
|
|
37.98,
|
|
37.96,
|
|
37.96,
|
|
37.97,
|
|
37.97,
|
|
37.95,
|
|
37.95,
|
|
37.95,
|
|
37.955,
|
|
37.95,
|
|
37.97,
|
|
37.97,
|
|
37.97,
|
|
37.95,
|
|
37.96,
|
|
37.925,
|
|
37.93,
|
|
37.94,
|
|
37.95,
|
|
37.95,
|
|
37.95,
|
|
37.95,
|
|
37.95,
|
|
37.93,
|
|
37.93,
|
|
37.935,
|
|
37.95,
|
|
37.93,
|
|
37.94,
|
|
37.935,
|
|
37.93,
|
|
37.94,
|
|
37.91,
|
|
37.93,
|
|
37.935,
|
|
37.94,
|
|
37.93,
|
|
37.93,
|
|
37.935,
|
|
37.94,
|
|
37.945,
|
|
37.94,
|
|
37.925,
|
|
37.945,
|
|
37.93,
|
|
37.935,
|
|
37.9345,
|
|
37.94,
|
|
37.92,
|
|
37.91,
|
|
37.9,
|
|
37.91,
|
|
37.91,
|
|
37.9137,
|
|
37.915,
|
|
37.92,
|
|
37.905,
|
|
37.905,
|
|
37.91,
|
|
37.88,
|
|
37.87,
|
|
37.87,
|
|
37.86,
|
|
37.87,
|
|
37.88,
|
|
37.885,
|
|
37.8931,
|
|
37.88,
|
|
37.875,
|
|
37.875,
|
|
37.88,
|
|
37.875,
|
|
37.865,
|
|
37.8648,
|
|
37.885,
|
|
37.8801,
|
|
37.88,
|
|
37.845,
|
|
37.84,
|
|
37.85,
|
|
37.855,
|
|
37.84,
|
|
37.83,
|
|
37.8415,
|
|
37.84,
|
|
37.84,
|
|
37.84,
|
|
37.8401,
|
|
37.85,
|
|
37.84,
|
|
37.83,
|
|
37.825,
|
|
37.82,
|
|
37.81,
|
|
37.8,
|
|
37.8,
|
|
37.8,
|
|
37.785,
|
|
37.79,
|
|
37.784,
|
|
37.79,
|
|
37.78,
|
|
37.79,
|
|
37.79,
|
|
37.785,
|
|
37.7901,
|
|
37.795,
|
|
37.79,
|
|
37.79,
|
|
37.795,
|
|
37.785,
|
|
37.78,
|
|
37.79,
|
|
37.7912,
|
|
37.79,
|
|
37.78,
|
|
37.785,
|
|
37.7901,
|
|
37.784,
|
|
37.79,
|
|
37.79,
|
|
37.7801,
|
|
37.77,
|
|
37.77,
|
|
37.765,
|
|
37.7724,
|
|
37.76,
|
|
37.75,
|
|
37.75,
|
|
37.75,
|
|
37.7701,
|
|
37.775,
|
|
37.775,
|
|
37.78,
|
|
37.78,
|
|
37.78,
|
|
37.78,
|
|
37.7639,
|
|
37.755,
|
|
37.755,
|
|
37.76,
|
|
37.75,
|
|
37.75,
|
|
37.76,
|
|
37.73,
|
|
37.72,
|
|
37.73,
|
|
37.73,
|
|
37.7325,
|
|
37.72,
|
|
37.71,
|
|
37.7148,
|
|
37.71,
|
|
37.71,
|
|
37.7125,
|
|
37.715,
|
|
37.71,
|
|
37.71,
|
|
37.71,
|
|
37.715,
|
|
37.725,
|
|
37.725,
|
|
37.73,
|
|
37.72,
|
|
37.7201,
|
|
37.7225,
|
|
37.734,
|
|
37.73,
|
|
37.73,
|
|
37.73,
|
|
37.73,
|
|
37.71,
|
|
37.705,
|
|
37.71,
|
|
37.704,
|
|
37.715,
|
|
37.71,
|
|
37.725,
|
|
37.735,
|
|
37.74,
|
|
37.74,
|
|
37.74,
|
|
37.72,
|
|
37.725,
|
|
37.74,
|
|
37.74,
|
|
37.74,
|
|
37.74,
|
|
37.74,
|
|
37.755,
|
|
37.76,
|
|
37.76,
|
|
37.765,
|
|
37.7814,
|
|
37.784,
|
|
37.775,
|
|
37.77,
|
|
37.77,
|
|
37.77,
|
|
37.7809,
|
|
37.785,
|
|
37.775,
|
|
37.774,
|
|
37.765,
|
|
37.745,
|
|
37.754,
|
|
37.76,
|
|
37.76,
|
|
37.76,
|
|
37.76,
|
|
37.75,
|
|
37.754,
|
|
37.74,
|
|
37.745,
|
|
37.73,
|
|
37.73,
|
|
37.7,
|
|
37.69,
|
|
37.71,
|
|
37.715,
|
|
37.72,
|
|
37.72,
|
|
37.72,
|
|
37.725,
|
|
37.735,
|
|
37.72,
|
|
37.74,
|
|
37.7225,
|
|
37.72,
|
|
37.72,
|
|
37.73,
|
|
37.74,
|
|
37.735,
|
|
37.745,
|
|
37.73,
|
|
37.73,
|
|
37.72,
|
|
37.73,
|
|
37.74,
|
|
37.72,
|
|
37.72,
|
|
37.715,
|
|
37.72,
|
|
37.71,
|
|
37.7,
|
|
37.71,
|
|
37.71,
|
|
37.69,
|
|
37.685,
|
|
37.62,
|
|
37.64,
|
|
37.63,
|
|
37.6402,
|
|
37.64,
|
|
37.64,
|
|
37.62,
|
|
37.645,
|
|
37.66,
|
|
37.6601,
|
|
37.67,
|
|
37.67,
|
|
37.68,
|
|
37.67,
|
|
37.68,
|
|
37.68,
|
|
37.68,
|
|
37.685,
|
|
37.68,
|
|
37.6601,
|
|
37.66,
|
|
37.66,
|
|
37.65,
|
|
37.65,
|
|
37.66,
|
|
37.64,
|
|
37.635,
|
|
37.62,
|
|
37.56,
|
|
37.55,
|
|
37.53,
|
|
37.47,
|
|
37.49,
|
|
37.48,
|
|
37.45,
|
|
37.455,
|
|
37.48,
|
|
37.49,
|
|
37.504,
|
|
37.45,
|
|
37.48,
|
|
37.46,
|
|
37.46,
|
|
37.49,
|
|
37.49,
|
|
37.51,
|
|
37.505,
|
|
37.52,
|
|
37.52,
|
|
37.54,
|
|
37.54,
|
|
37.53,
|
|
37.52,
|
|
37.51,
|
|
37.5,
|
|
37.49,
|
|
37.48,
|
|
37.48,
|
|
37.49,
|
|
37.51,
|
|
37.5137,
|
|
37.52,
|
|
37.525,
|
|
37.52,
|
|
37.505,
|
|
37.525,
|
|
37.54,
|
|
37.52,
|
|
37.5,
|
|
37.5214,
|
|
37.5,
|
|
37.49,
|
|
37.5,
|
|
37.48,
|
|
37.48,
|
|
37.49,
|
|
37.5,
|
|
37.47,
|
|
37.47,
|
|
37.47,
|
|
37.47,
|
|
37.48,
|
|
37.49,
|
|
37.515,
|
|
37.51,
|
|
37.51,
|
|
37.51,
|
|
37.49,
|
|
37.55,
|
|
37.345,
|
|
37.43,
|
|
37.4108,
|
|
37.3598,
|
|
37.36,
|
|
37.32,
|
|
37.31,
|
|
37.42,
|
|
37.4702,
|
|
37.42,
|
|
37.46,
|
|
37.495,
|
|
37.475,
|
|
37.47,
|
|
37.505,
|
|
37.525,
|
|
37.505,
|
|
37.5,
|
|
37.505,
|
|
37.485,
|
|
37.47,
|
|
37.465,
|
|
37.46,
|
|
37.445,
|
|
37.41,
|
|
37.38,
|
|
37.4,
|
|
37.4,
|
|
37.415,
|
|
37.42,
|
|
37.405,
|
|
37.405,
|
|
37.385,
|
|
37.385,
|
|
37.415,
|
|
37.43,
|
|
37.445,
|
|
37.46,
|
|
37.45,
|
|
37.455,
|
|
37.46,
|
|
37.46,
|
|
37.45,
|
|
37.46,
|
|
37.46,
|
|
37.455,
|
|
37.465,
|
|
37.485,
|
|
37.53,
|
|
37.53,
|
|
37.54,
|
|
37.54,
|
|
37.53,
|
|
37.525,
|
|
37.55,
|
|
37.5401,
|
|
37.5301,
|
|
37.53,
|
|
37.53,
|
|
37.48,
|
|
37.47,
|
|
37.45,
|
|
37.45,
|
|
37.455,
|
|
37.46,
|
|
37.45,
|
|
37.47,
|
|
37.49,
|
|
37.49,
|
|
37.495,
|
|
37.51,
|
|
37.535,
|
|
37.545,
|
|
37.555,
|
|
37.57,
|
|
37.585,
|
|
37.61,
|
|
37.63,
|
|
37.62,
|
|
37.62,
|
|
37.63,
|
|
37.635,
|
|
37.65,
|
|
37.635,
|
|
37.63,
|
|
37.635,
|
|
37.625,
|
|
37.62,
|
|
37.625,
|
|
37.64,
|
|
37.635,
|
|
37.62,
|
|
37.615,
|
|
37.63,
|
|
37.63,
|
|
37.61,
|
|
37.58,
|
|
37.575,
|
|
37.555,
|
|
37.535,
|
|
37.5301,
|
|
37.54,
|
|
37.515,
|
|
37.495,
|
|
37.5,
|
|
37.485,
|
|
37.495,
|
|
37.545,
|
|
37.545,
|
|
37.535,
|
|
37.52,
|
|
37.525,
|
|
37.53,
|
|
37.53,
|
|
37.53,
|
|
37.54,
|
|
37.55,
|
|
37.515,
|
|
37.51,
|
|
37.5001,
|
|
37.5,
|
|
37.485,
|
|
37.4714,
|
|
37.485,
|
|
37.48,
|
|
37.5,
|
|
37.485,
|
|
37.49,
|
|
37.5,
|
|
37.4945,
|
|
37.49,
|
|
37.49,
|
|
37.485,
|
|
37.48,
|
|
37.47,
|
|
37.4715,
|
|
37.46,
|
|
37.46,
|
|
37.4501,
|
|
37.45,
|
|
37.45,
|
|
37.44,
|
|
37.42,
|
|
37.435,
|
|
37.44,
|
|
37.454,
|
|
37.47,
|
|
37.49,
|
|
37.49,
|
|
37.46,
|
|
37.455,
|
|
37.43,
|
|
37.44,
|
|
37.44,
|
|
37.43,
|
|
37.41,
|
|
37.415,
|
|
37.415,
|
|
37.43,
|
|
37.43,
|
|
37.42,
|
|
37.435,
|
|
37.43,
|
|
37.43,
|
|
37.43,
|
|
37.42,
|
|
37.42,
|
|
37.42,
|
|
37.41,
|
|
37.415,
|
|
37.4101,
|
|
37.42,
|
|
37.43,
|
|
37.43,
|
|
37.425,
|
|
37.425,
|
|
37.445,
|
|
37.42,
|
|
37.43,
|
|
37.4,
|
|
37.37,
|
|
37.36,
|
|
37.34,
|
|
37.31,
|
|
37.28,
|
|
37.2801,
|
|
37.3,
|
|
37.315,
|
|
37.3101,
|
|
37.314,
|
|
37.32,
|
|
37.32,
|
|
37.29,
|
|
37.285,
|
|
37.285,
|
|
37.27,
|
|
37.2775,
|
|
37.29,
|
|
37.2901,
|
|
37.28,
|
|
37.295,
|
|
37.27,
|
|
37.275,
|
|
37.27,
|
|
37.27,
|
|
37.27,
|
|
37.2801,
|
|
37.285,
|
|
37.275,
|
|
37.27,
|
|
37.25,
|
|
37.244,
|
|
37.265,
|
|
37.284,
|
|
37.2725,
|
|
37.27,
|
|
37.28,
|
|
37.28,
|
|
37.2929,
|
|
37.28,
|
|
37.28,
|
|
37.275,
|
|
37.245,
|
|
37.25,
|
|
37.255,
|
|
37.2601,
|
|
37.255,
|
|
37.26,
|
|
37.26,
|
|
37.2694,
|
|
37.2701,
|
|
37.285,
|
|
37.29,
|
|
37.29,
|
|
37.2848,
|
|
37.28,
|
|
37.2901,
|
|
37.285,
|
|
37.285,
|
|
37.28,
|
|
37.27,
|
|
37.2834,
|
|
37.28,
|
|
37.28,
|
|
37.29,
|
|
37.284,
|
|
37.28,
|
|
37.285,
|
|
37.28,
|
|
37.2801,
|
|
37.295,
|
|
37.3,
|
|
37.305,
|
|
37.31,
|
|
37.33,
|
|
37.32,
|
|
37.32,
|
|
37.31,
|
|
37.3201,
|
|
37.32,
|
|
37.32,
|
|
37.325,
|
|
37.34,
|
|
37.35,
|
|
37.35,
|
|
37.33,
|
|
37.33,
|
|
37.344,
|
|
37.36,
|
|
37.36,
|
|
37.355,
|
|
37.34,
|
|
37.345,
|
|
37.35,
|
|
37.35,
|
|
37.3414,
|
|
37.33,
|
|
37.325,
|
|
37.32,
|
|
37.3,
|
|
37.305,
|
|
37.3,
|
|
37.295,
|
|
37.295,
|
|
37.29,
|
|
37.29,
|
|
37.27,
|
|
37.265,
|
|
37.28,
|
|
37.275,
|
|
37.274,
|
|
37.285,
|
|
37.2801,
|
|
37.26,
|
|
37.264,
|
|
37.26,
|
|
37.24,
|
|
37.23,
|
|
37.205,
|
|
37.22,
|
|
37.2201,
|
|
37.21,
|
|
37.205,
|
|
37.17,
|
|
37.21,
|
|
37.21,
|
|
37.22,
|
|
37.215,
|
|
37.23,
|
|
37.22,
|
|
37.2001,
|
|
37.2,
|
|
37.19,
|
|
37.184,
|
|
37.17,
|
|
37.1701,
|
|
37.17,
|
|
37.16,
|
|
37.144,
|
|
37.13,
|
|
37.105,
|
|
37.1,
|
|
37.11,
|
|
37.125,
|
|
37.14,
|
|
37.14,
|
|
37.13,
|
|
37.1338,
|
|
37.13,
|
|
37.12,
|
|
37.135,
|
|
37.135,
|
|
37.145,
|
|
37.14,
|
|
37.15,
|
|
37.1603,
|
|
37.16,
|
|
37.15,
|
|
37.14,
|
|
37.145,
|
|
37.14,
|
|
37.135,
|
|
37.13,
|
|
37.13,
|
|
37.1225,
|
|
37.1,
|
|
37.08,
|
|
37.09,
|
|
37.0832,
|
|
37.0801,
|
|
37.085,
|
|
37.1001,
|
|
37.085,
|
|
37.075,
|
|
37.07,
|
|
37.08,
|
|
37.0729,
|
|
37.08,
|
|
37.095,
|
|
37.085,
|
|
37.08,
|
|
37.06,
|
|
37.0625,
|
|
37.07,
|
|
37.08,
|
|
37.05,
|
|
37.0534,
|
|
37.045,
|
|
37.06,
|
|
37.05,
|
|
37.07,
|
|
37.08,
|
|
37.08,
|
|
37.06,
|
|
37.07,
|
|
37.05,
|
|
37.035,
|
|
37.0419,
|
|
37.05,
|
|
37.07,
|
|
37.07,
|
|
37.08,
|
|
37.0548,
|
|
37.025,
|
|
37.03,
|
|
37.035,
|
|
37.03,
|
|
37.01,
|
|
36.9901,
|
|
36.981,
|
|
37.01,
|
|
37.02,
|
|
37.22,
|
|
37.34,
|
|
37.285,
|
|
37.18,
|
|
37.135,
|
|
37.11,
|
|
37.18,
|
|
37.16,
|
|
37.17,
|
|
37.14,
|
|
37.075,
|
|
37.07,
|
|
37.0711,
|
|
37.105,
|
|
37.095,
|
|
36.9902,
|
|
36.98,
|
|
36.96,
|
|
36.975,
|
|
36.97,
|
|
36.95,
|
|
36.93,
|
|
36.925,
|
|
36.95,
|
|
36.93,
|
|
36.975,
|
|
37,
|
|
37.0195,
|
|
37.03,
|
|
36.97,
|
|
36.99,
|
|
37.01,
|
|
37.03,
|
|
37.055,
|
|
37.07,
|
|
37.105,
|
|
37.095,
|
|
37.11,
|
|
37.1107,
|
|
37.09,
|
|
37.09,
|
|
37.085,
|
|
37.07,
|
|
37.11,
|
|
37.09,
|
|
37.1,
|
|
37.1,
|
|
37.07,
|
|
37.06,
|
|
37.06,
|
|
37.055,
|
|
37.05,
|
|
37.05,
|
|
37.05,
|
|
37.04,
|
|
37.035,
|
|
37.05,
|
|
37.045,
|
|
37.03,
|
|
37.0314,
|
|
37.04,
|
|
37.03,
|
|
37.03,
|
|
37.0303,
|
|
37.045,
|
|
37.03,
|
|
37.05,
|
|
37.0638,
|
|
37.035,
|
|
37.03,
|
|
37.03,
|
|
37.01,
|
|
37.01,
|
|
37.0301,
|
|
37.02,
|
|
37.035,
|
|
37.035,
|
|
37.0532,
|
|
37.065,
|
|
37.06,
|
|
37.04,
|
|
37.035,
|
|
37.04,
|
|
37.055,
|
|
37.0615,
|
|
37.07,
|
|
37.0601,
|
|
37.0724,
|
|
37.07,
|
|
37.07,
|
|
37.07,
|
|
37.0718,
|
|
37.07,
|
|
37.0827,
|
|
37.085,
|
|
37.09,
|
|
37.08,
|
|
37.06,
|
|
37.0525,
|
|
37.05,
|
|
37.0403,
|
|
37.04,
|
|
37.03,
|
|
37.01,
|
|
37.0101,
|
|
37.015,
|
|
37.01,
|
|
37,
|
|
37.02,
|
|
37.023,
|
|
37.035,
|
|
37.05,
|
|
37.05,
|
|
37.04,
|
|
37.05,
|
|
37.05,
|
|
37.06,
|
|
37.06,
|
|
37.065,
|
|
37.07,
|
|
37.08,
|
|
37.06,
|
|
37.06,
|
|
37.05,
|
|
37.04,
|
|
37.03,
|
|
37.0213,
|
|
37.02,
|
|
37.0225,
|
|
37.025,
|
|
37.03,
|
|
37.025,
|
|
37.01,
|
|
37.01,
|
|
37,
|
|
37,
|
|
37.0148,
|
|
37,
|
|
37,
|
|
36.9923,
|
|
36.975,
|
|
36.97,
|
|
36.97,
|
|
36.9893,
|
|
36.99,
|
|
36.9919,
|
|
37.015,
|
|
37.035,
|
|
37.045,
|
|
37.045,
|
|
37.05,
|
|
37.05,
|
|
37.05,
|
|
37.03,
|
|
37.02,
|
|
37,
|
|
36.99,
|
|
36.9924,
|
|
36.995,
|
|
37.01,
|
|
37.0231,
|
|
37.03,
|
|
37.03,
|
|
37.02,
|
|
37.01,
|
|
36.99,
|
|
36.995,
|
|
36.98,
|
|
36.97,
|
|
36.94,
|
|
36.94,
|
|
36.92,
|
|
36.92,
|
|
36.9301,
|
|
36.93,
|
|
36.93,
|
|
36.94,
|
|
36.94,
|
|
36.94,
|
|
36.93,
|
|
36.93,
|
|
36.935,
|
|
36.945,
|
|
36.94,
|
|
36.935,
|
|
36.9301,
|
|
36.9336,
|
|
36.9317,
|
|
36.93,
|
|
36.92,
|
|
36.9291,
|
|
36.915,
|
|
36.915,
|
|
36.915,
|
|
36.93,
|
|
36.93,
|
|
36.925,
|
|
36.92,
|
|
36.9209,
|
|
36.91,
|
|
36.9101,
|
|
36.915,
|
|
36.925,
|
|
36.925,
|
|
36.9217,
|
|
36.9225,
|
|
36.9124,
|
|
36.91,
|
|
36.91,
|
|
36.905,
|
|
36.91,
|
|
36.875,
|
|
36.86,
|
|
36.84,
|
|
36.82,
|
|
36.825,
|
|
36.82,
|
|
36.82,
|
|
36.83,
|
|
36.84,
|
|
36.84,
|
|
36.8425,
|
|
36.82,
|
|
36.81,
|
|
36.815,
|
|
36.77,
|
|
36.8082,
|
|
36.82,
|
|
36.805,
|
|
36.8,
|
|
36.81,
|
|
36.8101,
|
|
36.845,
|
|
36.8501,
|
|
36.85,
|
|
36.845,
|
|
36.85,
|
|
36.88,
|
|
36.87,
|
|
36.8733,
|
|
36.88,
|
|
36.885,
|
|
36.9,
|
|
36.905,
|
|
36.944,
|
|
36.97,
|
|
36.985,
|
|
36.99,
|
|
36.97,
|
|
36.955,
|
|
36.965,
|
|
36.96,
|
|
36.9512,
|
|
36.95,
|
|
36.93,
|
|
36.94,
|
|
36.9428,
|
|
36.94,
|
|
36.935,
|
|
36.94,
|
|
36.915,
|
|
36.91,
|
|
36.89,
|
|
36.89,
|
|
36.89,
|
|
36.9,
|
|
36.9109,
|
|
36.92,
|
|
36.9239,
|
|
36.91,
|
|
36.89,
|
|
36.91,
|
|
36.94,
|
|
36.96,
|
|
36.91,
|
|
36.925,
|
|
36.9225,
|
|
36.925,
|
|
36.955,
|
|
36.935,
|
|
36.895,
|
|
36.91,
|
|
36.915,
|
|
36.91,
|
|
36.91,
|
|
36.9207,
|
|
36.9306,
|
|
36.9301,
|
|
36.93,
|
|
36.91,
|
|
36.93,
|
|
36.9201,
|
|
36.915,
|
|
36.9401,
|
|
36.935,
|
|
36.945,
|
|
37.005,
|
|
37,
|
|
37.01,
|
|
37.0225,
|
|
36.91,
|
|
36.89,
|
|
36.95,
|
|
37.065,
|
|
36.92,
|
|
36.98,
|
|
36.98,
|
|
37.05,
|
|
37.07,
|
|
37.155,
|
|
37.245,
|
|
37.22,
|
|
37.21,
|
|
37.28,
|
|
37.32,
|
|
37.31,
|
|
37.275,
|
|
37.36,
|
|
37.36,
|
|
37.4124,
|
|
37.42,
|
|
37.425,
|
|
37.426,
|
|
37.425,
|
|
37.4401,
|
|
37.4,
|
|
37.42,
|
|
37.4001,
|
|
37.42,
|
|
37.43,
|
|
37.425,
|
|
37.39,
|
|
37.365,
|
|
37.375,
|
|
37.33,
|
|
37.38,
|
|
37.36,
|
|
37.37,
|
|
37.38,
|
|
37.37,
|
|
37.35,
|
|
37.33,
|
|
37.36,
|
|
37.3814,
|
|
37.375,
|
|
37.37,
|
|
37.355,
|
|
37.34,
|
|
37.34,
|
|
37.315,
|
|
37.29,
|
|
37.265,
|
|
37.275,
|
|
37.34,
|
|
37.34,
|
|
37.35,
|
|
37.35,
|
|
37.35,
|
|
37.34,
|
|
37.26,
|
|
37.2723,
|
|
37.21,
|
|
37.2401,
|
|
37.205,
|
|
37.19,
|
|
37.175,
|
|
37.19,
|
|
37.16,
|
|
37.11,
|
|
37.14,
|
|
37.15,
|
|
37.125,
|
|
37.12,
|
|
37.11,
|
|
37.12,
|
|
37.16,
|
|
37.13,
|
|
37.095,
|
|
37.12,
|
|
37.11,
|
|
37.05,
|
|
37,
|
|
37.005,
|
|
37.005,
|
|
36.97,
|
|
36.985,
|
|
36.95,
|
|
36.95,
|
|
36.93,
|
|
36.94,
|
|
37.37,
|
|
37.435,
|
|
37.385,
|
|
37.38,
|
|
37.35,
|
|
37.285,
|
|
37.245,
|
|
37.1708,
|
|
37.175,
|
|
37.22,
|
|
37.225,
|
|
37.1911,
|
|
37.215,
|
|
37.14,
|
|
37.085,
|
|
37.085,
|
|
37.075,
|
|
37.035,
|
|
37.085,
|
|
37.095,
|
|
37.11,
|
|
37.114,
|
|
37.095,
|
|
37.115,
|
|
37.1099,
|
|
37.09,
|
|
37.095,
|
|
37.115,
|
|
37.11,
|
|
37.11,
|
|
37.1124,
|
|
37.02,
|
|
37.005,
|
|
37.01,
|
|
37.02,
|
|
37.025,
|
|
37.005,
|
|
37.015,
|
|
37,
|
|
36.91,
|
|
36.92,
|
|
36.96,
|
|
36.9826,
|
|
36.97,
|
|
36.96,
|
|
36.96,
|
|
36.96,
|
|
36.93,
|
|
36.92,
|
|
36.9313,
|
|
36.89,
|
|
36.89,
|
|
36.89,
|
|
36.91,
|
|
36.935,
|
|
36.94,
|
|
36.9415,
|
|
36.98,
|
|
36.98,
|
|
36.995,
|
|
36.96,
|
|
36.97,
|
|
36.95,
|
|
36.96,
|
|
36.96,
|
|
36.945,
|
|
36.9402,
|
|
36.95,
|
|
36.97,
|
|
36.96,
|
|
36.93,
|
|
36.9,
|
|
36.835,
|
|
36.81,
|
|
36.81,
|
|
36.81,
|
|
36.81,
|
|
36.8129,
|
|
36.84,
|
|
36.845,
|
|
36.84,
|
|
36.8324,
|
|
36.85,
|
|
36.84,
|
|
36.82,
|
|
36.82,
|
|
36.83,
|
|
36.85,
|
|
36.86,
|
|
36.85,
|
|
36.84,
|
|
36.8525,
|
|
36.86,
|
|
36.885,
|
|
36.88,
|
|
36.885,
|
|
36.89,
|
|
36.89,
|
|
36.905,
|
|
36.9019,
|
|
36.9,
|
|
36.91,
|
|
36.89,
|
|
36.88,
|
|
36.86,
|
|
36.875,
|
|
36.87,
|
|
36.8612,
|
|
36.86,
|
|
36.8744,
|
|
36.88,
|
|
36.88,
|
|
36.88,
|
|
36.87,
|
|
36.87,
|
|
36.86,
|
|
36.83,
|
|
36.82,
|
|
36.8,
|
|
36.81,
|
|
36.81,
|
|
36.77,
|
|
36.7501,
|
|
36.755,
|
|
36.7328,
|
|
36.73,
|
|
36.72,
|
|
36.7138,
|
|
36.7,
|
|
36.72,
|
|
36.72,
|
|
36.745,
|
|
36.74,
|
|
36.74,
|
|
36.7415,
|
|
36.755,
|
|
36.76,
|
|
36.77,
|
|
36.78,
|
|
36.78,
|
|
36.775,
|
|
36.79,
|
|
36.8,
|
|
36.79,
|
|
36.8017,
|
|
36.7935,
|
|
36.79,
|
|
36.775,
|
|
36.785,
|
|
36.76,
|
|
36.7333,
|
|
36.745,
|
|
36.74,
|
|
36.735,
|
|
36.74,
|
|
36.73,
|
|
36.74,
|
|
36.74,
|
|
36.71,
|
|
36.695,
|
|
36.71,
|
|
36.69,
|
|
36.7,
|
|
36.7,
|
|
36.7,
|
|
36.7,
|
|
36.69,
|
|
36.695,
|
|
36.69,
|
|
36.7,
|
|
36.715,
|
|
36.7235,
|
|
36.715,
|
|
36.74,
|
|
36.72,
|
|
36.71,
|
|
36.7,
|
|
36.71,
|
|
36.7,
|
|
36.695,
|
|
36.695,
|
|
36.685,
|
|
36.66,
|
|
36.67,
|
|
36.67,
|
|
36.66,
|
|
36.65,
|
|
36.65,
|
|
36.675,
|
|
36.6937,
|
|
36.71,
|
|
36.715,
|
|
36.72,
|
|
36.72,
|
|
36.73,
|
|
36.745,
|
|
36.73,
|
|
36.7321,
|
|
36.74,
|
|
36.74,
|
|
36.75,
|
|
36.75,
|
|
36.75,
|
|
36.7521,
|
|
36.75,
|
|
36.73,
|
|
36.745,
|
|
36.73,
|
|
36.735,
|
|
36.75,
|
|
36.755,
|
|
36.755,
|
|
36.77,
|
|
36.7734,
|
|
36.77,
|
|
36.77,
|
|
36.775,
|
|
36.79,
|
|
36.7911,
|
|
36.79,
|
|
36.805,
|
|
36.81,
|
|
36.82,
|
|
36.8285,
|
|
36.87,
|
|
36.86,
|
|
36.87,
|
|
36.86,
|
|
36.86,
|
|
36.85,
|
|
36.845,
|
|
36.855,
|
|
36.85,
|
|
36.8517,
|
|
36.855,
|
|
36.875,
|
|
36.86,
|
|
36.85,
|
|
36.875,
|
|
36.9,
|
|
36.89,
|
|
36.885,
|
|
36.8701,
|
|
36.87,
|
|
36.865,
|
|
36.875,
|
|
36.865,
|
|
36.885,
|
|
36.87,
|
|
36.85,
|
|
36.865,
|
|
36.85,
|
|
36.855,
|
|
36.865,
|
|
36.87,
|
|
36.87,
|
|
36.855,
|
|
36.86,
|
|
36.86,
|
|
36.86,
|
|
36.86,
|
|
36.87,
|
|
36.8745,
|
|
36.87,
|
|
36.8529,
|
|
36.8501,
|
|
36.87,
|
|
36.87,
|
|
36.86,
|
|
36.8601,
|
|
36.85,
|
|
36.84,
|
|
36.84,
|
|
36.85,
|
|
36.86,
|
|
36.854,
|
|
36.85,
|
|
36.86,
|
|
36.87,
|
|
36.86,
|
|
36.835,
|
|
36.83,
|
|
36.8335,
|
|
36.83,
|
|
36.84,
|
|
36.834,
|
|
36.83,
|
|
36.79,
|
|
36.79,
|
|
36.805,
|
|
36.81,
|
|
36.81,
|
|
36.81,
|
|
36.81,
|
|
36.824,
|
|
36.83,
|
|
36.835,
|
|
36.8438,
|
|
36.854,
|
|
36.86,
|
|
36.8601,
|
|
36.87,
|
|
36.87,
|
|
36.875,
|
|
36.88,
|
|
36.88,
|
|
36.89,
|
|
36.905,
|
|
36.91,
|
|
36.94,
|
|
36.92,
|
|
36.92,
|
|
36.91,
|
|
36.89,
|
|
36.8936,
|
|
36.87,
|
|
36.88,
|
|
36.905,
|
|
36.92,
|
|
36.955,
|
|
36.92,
|
|
36.92,
|
|
36.915,
|
|
36.935,
|
|
36.935,
|
|
36.94,
|
|
36.95,
|
|
36.95,
|
|
36.94,
|
|
36.91,
|
|
36.88,
|
|
36.885,
|
|
36.835,
|
|
36.82,
|
|
36.82,
|
|
36.85,
|
|
36.88,
|
|
36.89,
|
|
36.91,
|
|
36.94,
|
|
36.9401,
|
|
36.935,
|
|
36.88,
|
|
36.885,
|
|
36.88,
|
|
36.875,
|
|
36.885,
|
|
36.87,
|
|
36.85,
|
|
36.8601,
|
|
36.88,
|
|
36.91,
|
|
36.905,
|
|
36.905,
|
|
36.9,
|
|
36.88,
|
|
36.885,
|
|
36.89,
|
|
36.89,
|
|
36.8749,
|
|
36.85,
|
|
36.86,
|
|
36.845,
|
|
36.84,
|
|
36.83,
|
|
36.78,
|
|
36.78,
|
|
36.79,
|
|
36.81,
|
|
36.8,
|
|
36.81,
|
|
36.795,
|
|
36.7996,
|
|
36.8,
|
|
36.805,
|
|
36.785,
|
|
36.805,
|
|
36.8237,
|
|
36.84,
|
|
36.83,
|
|
36.8,
|
|
36.79,
|
|
36.81,
|
|
36.815,
|
|
36.8341,
|
|
36.83,
|
|
36.84,
|
|
36.84,
|
|
36.81,
|
|
36.825,
|
|
36.87,
|
|
37.23,
|
|
37.39,
|
|
37.36,
|
|
37.3,
|
|
37.29,
|
|
37.26,
|
|
37.26,
|
|
37.23,
|
|
37.16,
|
|
37.23,
|
|
37.3,
|
|
37.26,
|
|
37.3,
|
|
37.25,
|
|
37.26,
|
|
37.24,
|
|
37.26,
|
|
37.37,
|
|
37.38,
|
|
37.37,
|
|
37.35,
|
|
37.34,
|
|
37.375,
|
|
37.4,
|
|
37.41,
|
|
37.415,
|
|
37.43,
|
|
37.41,
|
|
37.415,
|
|
37.4,
|
|
37.29,
|
|
37.28,
|
|
37.28,
|
|
37.27,
|
|
37.26,
|
|
37.26,
|
|
37.28,
|
|
37.24,
|
|
37.22,
|
|
37.21,
|
|
37.25,
|
|
37.24,
|
|
37.22,
|
|
37.22,
|
|
37.18,
|
|
37.22,
|
|
37.22,
|
|
37.23,
|
|
37.22,
|
|
37.17,
|
|
37.15,
|
|
37.15,
|
|
37.12,
|
|
37.09,
|
|
37.08,
|
|
37.12,
|
|
37.11,
|
|
37.11,
|
|
37.125,
|
|
37.165,
|
|
37.16,
|
|
37.2,
|
|
37.18,
|
|
37.1701,
|
|
37.16,
|
|
37.15,
|
|
37.15,
|
|
37.17,
|
|
37.15,
|
|
37.15,
|
|
37.1625,
|
|
37.18,
|
|
37.17,
|
|
37.19,
|
|
37.2,
|
|
37.21,
|
|
37.21,
|
|
37.215,
|
|
37.2,
|
|
37.2,
|
|
37.18,
|
|
37.17,
|
|
37.15,
|
|
37.15,
|
|
37.15,
|
|
37.16,
|
|
37.16,
|
|
37.16,
|
|
37.19,
|
|
37.18,
|
|
37.19,
|
|
37.2,
|
|
37.17,
|
|
37.17,
|
|
37.18,
|
|
37.18,
|
|
37.18,
|
|
37.19,
|
|
37.2,
|
|
37.17,
|
|
37.18,
|
|
37.215,
|
|
37.22,
|
|
37.21,
|
|
37.21,
|
|
37.21,
|
|
37.22,
|
|
37.21,
|
|
37.2,
|
|
37.19,
|
|
37.2,
|
|
37.18,
|
|
37.18,
|
|
37.19,
|
|
37.2,
|
|
37.195,
|
|
37.18,
|
|
37.19,
|
|
37.21,
|
|
37.205,
|
|
37.2,
|
|
37.2,
|
|
37.21,
|
|
37.22,
|
|
37.21,
|
|
37.22,
|
|
37.21,
|
|
37.21,
|
|
37.21,
|
|
37.21,
|
|
37.21,
|
|
37.23,
|
|
37.24,
|
|
37.245,
|
|
37.2,
|
|
37.2,
|
|
37.22,
|
|
37.22,
|
|
37.19,
|
|
37.2,
|
|
37.23,
|
|
37.23,
|
|
37.23,
|
|
37.22,
|
|
37.24,
|
|
37.23,
|
|
37.23,
|
|
37.23,
|
|
37.24,
|
|
37.23,
|
|
37.23,
|
|
37.24,
|
|
37.22,
|
|
37.23,
|
|
37.22,
|
|
37.23,
|
|
37.22,
|
|
37.23,
|
|
37.22,
|
|
37.22,
|
|
37.23,
|
|
37.22,
|
|
37.22,
|
|
37.2,
|
|
37.21,
|
|
37.22,
|
|
37.22,
|
|
37.22,
|
|
37.2,
|
|
37.2,
|
|
37.2,
|
|
37.2,
|
|
37.21,
|
|
37.21,
|
|
37.22,
|
|
37.23,
|
|
37.24,
|
|
37.235,
|
|
37.23,
|
|
37.2425,
|
|
37.24,
|
|
37.2415,
|
|
37.23,
|
|
37.24,
|
|
37.24,
|
|
37.24,
|
|
37.24,
|
|
37.23,
|
|
37.24,
|
|
37.24,
|
|
37.245,
|
|
37.2425,
|
|
37.24,
|
|
37.252,
|
|
37.25,
|
|
37.24,
|
|
37.22,
|
|
37.2,
|
|
37.21,
|
|
37.21,
|
|
37.21,
|
|
37.2,
|
|
37.19,
|
|
37.1828,
|
|
37.18,
|
|
37.18,
|
|
37.185,
|
|
37.18,
|
|
37.18,
|
|
37.17,
|
|
37.2,
|
|
37.195,
|
|
37.195,
|
|
37.18,
|
|
37.19,
|
|
37.18,
|
|
37.19,
|
|
37.19,
|
|
37.2,
|
|
37.2,
|
|
37.19,
|
|
37.19,
|
|
37.19,
|
|
37.2,
|
|
37.2,
|
|
37.21,
|
|
37.2,
|
|
37.2,
|
|
37.21,
|
|
37.172,
|
|
37.16,
|
|
37.17,
|
|
37.155,
|
|
37.16,
|
|
37.15,
|
|
37.15,
|
|
37.17,
|
|
37.16,
|
|
37.16,
|
|
37.17,
|
|
37.18,
|
|
37.17,
|
|
37.16,
|
|
37.16,
|
|
37.17,
|
|
37.19,
|
|
37.2,
|
|
37.2025,
|
|
37.2,
|
|
37.21,
|
|
37.22,
|
|
37.23,
|
|
37.24,
|
|
37.24,
|
|
37.24,
|
|
37.23,
|
|
37.23,
|
|
37.24,
|
|
37.24,
|
|
37.24,
|
|
37.24,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.26,
|
|
37.255,
|
|
37.25,
|
|
37.24,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.26,
|
|
37.27,
|
|
37.27,
|
|
37.26,
|
|
37.25,
|
|
37.25,
|
|
37.24,
|
|
37.24,
|
|
37.2324,
|
|
37.23,
|
|
37.24,
|
|
37.235,
|
|
37.23,
|
|
37.235,
|
|
37.2301,
|
|
37.22,
|
|
37.23,
|
|
37.23,
|
|
37.2301,
|
|
37.23,
|
|
37.23,
|
|
37.24,
|
|
37.23,
|
|
37.22,
|
|
37.22,
|
|
37.22,
|
|
37.22,
|
|
37.2201,
|
|
37.21,
|
|
37.215,
|
|
37.21,
|
|
37.22,
|
|
37.22,
|
|
37.21,
|
|
37.21,
|
|
37.19,
|
|
37.19,
|
|
37.19,
|
|
37.19,
|
|
37.18,
|
|
37.17,
|
|
37.18,
|
|
37.19,
|
|
37.1842,
|
|
37.18,
|
|
37.19,
|
|
37.2,
|
|
37.19,
|
|
37.19,
|
|
37.18,
|
|
37.17,
|
|
37.19,
|
|
37.19,
|
|
37.1901,
|
|
37.19,
|
|
37.17,
|
|
37.16,
|
|
37.15,
|
|
37.15,
|
|
37.155,
|
|
37.16,
|
|
37.17,
|
|
37.154,
|
|
37.15,
|
|
37.17,
|
|
37.17,
|
|
37.15,
|
|
37.13,
|
|
37.13,
|
|
37.12,
|
|
37.13,
|
|
37.14,
|
|
37.14,
|
|
37.14,
|
|
37.15,
|
|
37.17,
|
|
37.1623,
|
|
37.16,
|
|
37.16,
|
|
37.17,
|
|
37.18,
|
|
37.19,
|
|
37.19,
|
|
37.19,
|
|
37.19,
|
|
37.16,
|
|
37.18,
|
|
37.17,
|
|
37.16,
|
|
37.16,
|
|
37.16,
|
|
37.16,
|
|
37.18,
|
|
37.19,
|
|
37.19,
|
|
37.19,
|
|
37.21,
|
|
37.21,
|
|
37.21,
|
|
37.19,
|
|
37.2,
|
|
37.2,
|
|
37.2,
|
|
37.2,
|
|
37.21,
|
|
37.2,
|
|
37.22,
|
|
37.23,
|
|
37.23,
|
|
37.225,
|
|
37.23,
|
|
37.24,
|
|
37.23,
|
|
37.23,
|
|
37.23,
|
|
37.24,
|
|
37.66,
|
|
37.6701,
|
|
37.62,
|
|
37.571,
|
|
37.5336,
|
|
37.42,
|
|
37.41,
|
|
37.36,
|
|
37.3901,
|
|
37.39,
|
|
37.41,
|
|
37.445,
|
|
37.48,
|
|
37.51,
|
|
37.5,
|
|
37.5,
|
|
37.51,
|
|
37.5,
|
|
37.49,
|
|
37.43,
|
|
37.425,
|
|
37.46,
|
|
37.465,
|
|
37.49,
|
|
37.49,
|
|
37.515,
|
|
37.52,
|
|
37.5201,
|
|
37.5,
|
|
37.485,
|
|
37.48,
|
|
37.47,
|
|
37.49,
|
|
37.5,
|
|
37.53,
|
|
37.55,
|
|
37.54,
|
|
37.55,
|
|
37.56,
|
|
37.57,
|
|
37.5699,
|
|
37.57,
|
|
37.61,
|
|
37.61,
|
|
37.62,
|
|
37.63,
|
|
37.63,
|
|
37.63,
|
|
37.63,
|
|
37.6,
|
|
37.591,
|
|
37.6225,
|
|
37.6225,
|
|
37.625,
|
|
37.61,
|
|
37.625,
|
|
37.62,
|
|
37.6,
|
|
37.61,
|
|
37.62,
|
|
37.6225,
|
|
37.59,
|
|
37.58,
|
|
37.58,
|
|
37.59,
|
|
37.58,
|
|
37.565,
|
|
37.573,
|
|
37.595,
|
|
37.6,
|
|
37.6024,
|
|
37.61,
|
|
37.6,
|
|
37.575,
|
|
37.5725,
|
|
37.5801,
|
|
37.58,
|
|
37.5781,
|
|
37.59,
|
|
37.59,
|
|
37.59,
|
|
37.565,
|
|
37.56,
|
|
37.55,
|
|
37.55,
|
|
37.5625,
|
|
37.54,
|
|
37.54,
|
|
37.54,
|
|
37.55,
|
|
37.55,
|
|
37.545,
|
|
37.54,
|
|
37.525,
|
|
37.5301,
|
|
37.51,
|
|
37.51,
|
|
37.535,
|
|
37.53,
|
|
37.53,
|
|
37.53,
|
|
37.53,
|
|
37.53,
|
|
37.52,
|
|
37.53,
|
|
37.53,
|
|
37.535,
|
|
37.53,
|
|
37.515,
|
|
37.52,
|
|
37.53,
|
|
37.53,
|
|
37.51,
|
|
37.5,
|
|
37.49,
|
|
37.47,
|
|
37.49,
|
|
37.47,
|
|
37.465,
|
|
37.47,
|
|
37.4725,
|
|
37.4725,
|
|
37.475,
|
|
37.47,
|
|
37.47,
|
|
37.49,
|
|
37.495,
|
|
37.49
|
|
],
|
|
"name": "OHLC",
|
|
"opacity": 0.75,
|
|
"open": [
|
|
37.84,
|
|
37.875,
|
|
37.805,
|
|
37.7935,
|
|
37.86,
|
|
37.86,
|
|
37.775,
|
|
37.83,
|
|
37.875,
|
|
37.885,
|
|
37.89,
|
|
37.88,
|
|
37.92,
|
|
37.84,
|
|
37.86,
|
|
37.875,
|
|
37.87,
|
|
37.935,
|
|
37.95,
|
|
37.9657,
|
|
37.9893,
|
|
37.97,
|
|
38.03,
|
|
37.99,
|
|
37.98,
|
|
38.005,
|
|
38.0102,
|
|
37.99,
|
|
38.0075,
|
|
37.9802,
|
|
37.99,
|
|
38,
|
|
38.025,
|
|
38.04,
|
|
38.03,
|
|
38.0276,
|
|
38.031,
|
|
38.035,
|
|
38.05,
|
|
38.01,
|
|
38,
|
|
38.01,
|
|
38,
|
|
38.005,
|
|
38.01,
|
|
38.01,
|
|
38.014,
|
|
38.025,
|
|
38.02,
|
|
38.01,
|
|
38.01,
|
|
37.98,
|
|
37.99,
|
|
37.995,
|
|
37.9991,
|
|
37.97,
|
|
37.975,
|
|
37.975,
|
|
37.975,
|
|
37.955,
|
|
37.965,
|
|
37.955,
|
|
37.96,
|
|
37.97,
|
|
37.985,
|
|
37.98,
|
|
37.97,
|
|
37.96,
|
|
37.97,
|
|
37.935,
|
|
37.9498,
|
|
37.955,
|
|
37.9525,
|
|
37.95,
|
|
37.955,
|
|
37.96,
|
|
37.95,
|
|
37.94,
|
|
37.9403,
|
|
37.97,
|
|
37.955,
|
|
37.955,
|
|
37.955,
|
|
37.935,
|
|
37.945,
|
|
37.95,
|
|
37.93,
|
|
37.935,
|
|
37.9499,
|
|
37.95,
|
|
37.93,
|
|
37.945,
|
|
37.9475,
|
|
37.955,
|
|
37.95,
|
|
37.95,
|
|
37.95,
|
|
37.96,
|
|
37.935,
|
|
37.945,
|
|
37.945,
|
|
37.9475,
|
|
37.92,
|
|
37.915,
|
|
37.915,
|
|
37.915,
|
|
37.92,
|
|
37.915,
|
|
37.925,
|
|
37.9234,
|
|
37.905,
|
|
37.915,
|
|
37.92,
|
|
37.888,
|
|
37.87,
|
|
37.87,
|
|
37.87,
|
|
37.885,
|
|
37.9,
|
|
37.895,
|
|
37.895,
|
|
37.88,
|
|
37.88,
|
|
37.91,
|
|
37.885,
|
|
37.875,
|
|
37.87,
|
|
37.9,
|
|
37.8981,
|
|
37.8979,
|
|
37.89,
|
|
37.85,
|
|
37.86,
|
|
37.87,
|
|
37.855,
|
|
37.84,
|
|
37.8445,
|
|
37.85,
|
|
37.845,
|
|
37.845,
|
|
37.845,
|
|
37.855,
|
|
37.85,
|
|
37.845,
|
|
37.835,
|
|
37.825,
|
|
37.825,
|
|
37.815,
|
|
37.81,
|
|
37.83,
|
|
37.8,
|
|
37.8,
|
|
37.795,
|
|
37.7967,
|
|
37.79,
|
|
37.8,
|
|
37.795,
|
|
37.7999,
|
|
37.795,
|
|
37.7981,
|
|
37.795,
|
|
37.795,
|
|
37.8,
|
|
37.79,
|
|
37.785,
|
|
37.8,
|
|
37.8,
|
|
37.795,
|
|
37.795,
|
|
37.785,
|
|
37.7953,
|
|
37.7949,
|
|
37.7962,
|
|
37.79,
|
|
37.79,
|
|
37.7899,
|
|
37.7748,
|
|
37.775,
|
|
37.775,
|
|
37.78,
|
|
37.765,
|
|
37.755,
|
|
37.755,
|
|
37.775,
|
|
37.7765,
|
|
37.79,
|
|
37.784,
|
|
37.785,
|
|
37.78,
|
|
37.785,
|
|
37.785,
|
|
37.7671,
|
|
37.755,
|
|
37.76,
|
|
37.7601,
|
|
37.76,
|
|
37.76,
|
|
37.76,
|
|
37.735,
|
|
37.73,
|
|
37.735,
|
|
37.7399,
|
|
37.735,
|
|
37.72,
|
|
37.72,
|
|
37.715,
|
|
37.7172,
|
|
37.72,
|
|
37.72,
|
|
37.726,
|
|
37.715,
|
|
37.715,
|
|
37.72,
|
|
37.73,
|
|
37.725,
|
|
37.7449,
|
|
37.73,
|
|
37.729,
|
|
37.7237,
|
|
37.734,
|
|
37.7401,
|
|
37.735,
|
|
37.74,
|
|
37.74,
|
|
37.735,
|
|
37.71,
|
|
37.7195,
|
|
37.7177,
|
|
37.715,
|
|
37.724,
|
|
37.725,
|
|
37.74,
|
|
37.75,
|
|
37.74,
|
|
37.7433,
|
|
37.745,
|
|
37.725,
|
|
37.745,
|
|
37.75,
|
|
37.745,
|
|
37.76,
|
|
37.745,
|
|
37.755,
|
|
37.765,
|
|
37.765,
|
|
37.765,
|
|
37.79,
|
|
37.79,
|
|
37.7868,
|
|
37.775,
|
|
37.775,
|
|
37.775,
|
|
37.7934,
|
|
37.785,
|
|
37.79,
|
|
37.78,
|
|
37.7861,
|
|
37.76,
|
|
37.76,
|
|
37.76,
|
|
37.76,
|
|
37.76,
|
|
37.775,
|
|
37.7676,
|
|
37.755,
|
|
37.765,
|
|
37.75,
|
|
37.76,
|
|
37.73,
|
|
37.735,
|
|
37.705,
|
|
37.72,
|
|
37.72,
|
|
37.72,
|
|
37.725,
|
|
37.7288,
|
|
37.7267,
|
|
37.735,
|
|
37.745,
|
|
37.745,
|
|
37.75,
|
|
37.7276,
|
|
37.72,
|
|
37.73,
|
|
37.755,
|
|
37.74,
|
|
37.745,
|
|
37.75,
|
|
37.74,
|
|
37.735,
|
|
37.74,
|
|
37.745,
|
|
37.745,
|
|
37.72,
|
|
37.725,
|
|
37.72,
|
|
37.725,
|
|
37.71,
|
|
37.71,
|
|
37.7151,
|
|
37.715,
|
|
37.695,
|
|
37.69,
|
|
37.6629,
|
|
37.645,
|
|
37.655,
|
|
37.6577,
|
|
37.64,
|
|
37.64,
|
|
37.645,
|
|
37.66,
|
|
37.6601,
|
|
37.68,
|
|
37.67,
|
|
37.685,
|
|
37.685,
|
|
37.6852,
|
|
37.69,
|
|
37.685,
|
|
37.685,
|
|
37.69,
|
|
37.685,
|
|
37.665,
|
|
37.675,
|
|
37.66,
|
|
37.65,
|
|
37.665,
|
|
37.66,
|
|
37.6442,
|
|
37.64,
|
|
37.62,
|
|
37.57,
|
|
37.565,
|
|
37.54,
|
|
37.505,
|
|
37.5,
|
|
37.5,
|
|
37.455,
|
|
37.49,
|
|
37.5,
|
|
37.51,
|
|
37.51,
|
|
37.5,
|
|
37.485,
|
|
37.47,
|
|
37.5,
|
|
37.5,
|
|
37.5191,
|
|
37.515,
|
|
37.52,
|
|
37.53,
|
|
37.54,
|
|
37.55,
|
|
37.545,
|
|
37.54,
|
|
37.525,
|
|
37.51,
|
|
37.51,
|
|
37.51,
|
|
37.4843,
|
|
37.505,
|
|
37.51,
|
|
37.52,
|
|
37.5262,
|
|
37.535,
|
|
37.545,
|
|
37.525,
|
|
37.525,
|
|
37.545,
|
|
37.545,
|
|
37.525,
|
|
37.525,
|
|
37.5375,
|
|
37.505,
|
|
37.505,
|
|
37.525,
|
|
37.485,
|
|
37.5,
|
|
37.515,
|
|
37.5,
|
|
37.47,
|
|
37.495,
|
|
37.485,
|
|
37.495,
|
|
37.495,
|
|
37.515,
|
|
37.525,
|
|
37.525,
|
|
37.514,
|
|
37.516,
|
|
37.55,
|
|
37.345,
|
|
37.44,
|
|
37.5,
|
|
37.425,
|
|
37.38,
|
|
37.4,
|
|
37.3203,
|
|
37.425,
|
|
37.555,
|
|
37.48,
|
|
37.47,
|
|
37.5058,
|
|
37.51,
|
|
37.51,
|
|
37.505,
|
|
37.545,
|
|
37.535,
|
|
37.56,
|
|
37.515,
|
|
37.505,
|
|
37.485,
|
|
37.47,
|
|
37.505,
|
|
37.46,
|
|
37.45,
|
|
37.415,
|
|
37.4,
|
|
37.425,
|
|
37.415,
|
|
37.42,
|
|
37.43,
|
|
37.41,
|
|
37.4135,
|
|
37.405,
|
|
37.42,
|
|
37.43,
|
|
37.445,
|
|
37.475,
|
|
37.48,
|
|
37.46,
|
|
37.47,
|
|
37.48,
|
|
37.46,
|
|
37.48,
|
|
37.485,
|
|
37.474,
|
|
37.4822,
|
|
37.485,
|
|
37.53,
|
|
37.5615,
|
|
37.54,
|
|
37.55,
|
|
37.545,
|
|
37.53,
|
|
37.56,
|
|
37.555,
|
|
37.545,
|
|
37.54,
|
|
37.545,
|
|
37.5338,
|
|
37.485,
|
|
37.475,
|
|
37.455,
|
|
37.4591,
|
|
37.4699,
|
|
37.485,
|
|
37.48,
|
|
37.5,
|
|
37.5085,
|
|
37.495,
|
|
37.5101,
|
|
37.535,
|
|
37.555,
|
|
37.555,
|
|
37.585,
|
|
37.585,
|
|
37.6101,
|
|
37.645,
|
|
37.63,
|
|
37.6337,
|
|
37.63,
|
|
37.635,
|
|
37.6601,
|
|
37.655,
|
|
37.63,
|
|
37.655,
|
|
37.6499,
|
|
37.63,
|
|
37.63,
|
|
37.66,
|
|
37.645,
|
|
37.6401,
|
|
37.62,
|
|
37.63,
|
|
37.635,
|
|
37.65,
|
|
37.62,
|
|
37.575,
|
|
37.585,
|
|
37.55,
|
|
37.545,
|
|
37.54,
|
|
37.55,
|
|
37.51,
|
|
37.5177,
|
|
37.52,
|
|
37.495,
|
|
37.555,
|
|
37.56,
|
|
37.5499,
|
|
37.535,
|
|
37.535,
|
|
37.54,
|
|
37.53,
|
|
37.535,
|
|
37.5483,
|
|
37.56,
|
|
37.55,
|
|
37.515,
|
|
37.535,
|
|
37.52,
|
|
37.51,
|
|
37.4901,
|
|
37.49,
|
|
37.4873,
|
|
37.5,
|
|
37.51,
|
|
37.495,
|
|
37.5,
|
|
37.5199,
|
|
37.495,
|
|
37.4967,
|
|
37.495,
|
|
37.4901,
|
|
37.485,
|
|
37.475,
|
|
37.4899,
|
|
37.47,
|
|
37.4737,
|
|
37.46,
|
|
37.455,
|
|
37.45,
|
|
37.445,
|
|
37.45,
|
|
37.445,
|
|
37.454,
|
|
37.47,
|
|
37.4984,
|
|
37.495,
|
|
37.4901,
|
|
37.4601,
|
|
37.46,
|
|
37.445,
|
|
37.445,
|
|
37.45,
|
|
37.4301,
|
|
37.415,
|
|
37.4285,
|
|
37.4301,
|
|
37.4346,
|
|
37.435,
|
|
37.44,
|
|
37.45,
|
|
37.4367,
|
|
37.43,
|
|
37.44,
|
|
37.43,
|
|
37.425,
|
|
37.4271,
|
|
37.415,
|
|
37.4176,
|
|
37.4288,
|
|
37.44,
|
|
37.445,
|
|
37.435,
|
|
37.425,
|
|
37.455,
|
|
37.44,
|
|
37.43,
|
|
37.43,
|
|
37.41,
|
|
37.38,
|
|
37.365,
|
|
37.335,
|
|
37.315,
|
|
37.285,
|
|
37.315,
|
|
37.315,
|
|
37.325,
|
|
37.3199,
|
|
37.325,
|
|
37.33,
|
|
37.32,
|
|
37.295,
|
|
37.2901,
|
|
37.305,
|
|
37.2775,
|
|
37.295,
|
|
37.2989,
|
|
37.2951,
|
|
37.295,
|
|
37.31,
|
|
37.28,
|
|
37.2729,
|
|
37.275,
|
|
37.275,
|
|
37.3,
|
|
37.295,
|
|
37.285,
|
|
37.285,
|
|
37.27,
|
|
37.255,
|
|
37.2674,
|
|
37.29,
|
|
37.295,
|
|
37.28,
|
|
37.285,
|
|
37.305,
|
|
37.3192,
|
|
37.295,
|
|
37.28,
|
|
37.29,
|
|
37.275,
|
|
37.265,
|
|
37.255,
|
|
37.27,
|
|
37.265,
|
|
37.265,
|
|
37.274,
|
|
37.2694,
|
|
37.2799,
|
|
37.295,
|
|
37.295,
|
|
37.295,
|
|
37.296,
|
|
37.285,
|
|
37.295,
|
|
37.29,
|
|
37.285,
|
|
37.294,
|
|
37.285,
|
|
37.285,
|
|
37.29,
|
|
37.29,
|
|
37.295,
|
|
37.295,
|
|
37.29,
|
|
37.285,
|
|
37.295,
|
|
37.29,
|
|
37.295,
|
|
37.34,
|
|
37.305,
|
|
37.31,
|
|
37.34,
|
|
37.3345,
|
|
37.3285,
|
|
37.33,
|
|
37.325,
|
|
37.325,
|
|
37.325,
|
|
37.3299,
|
|
37.34,
|
|
37.36,
|
|
37.36,
|
|
37.36,
|
|
37.345,
|
|
37.345,
|
|
37.3665,
|
|
37.365,
|
|
37.365,
|
|
37.36,
|
|
37.345,
|
|
37.355,
|
|
37.355,
|
|
37.355,
|
|
37.345,
|
|
37.33,
|
|
37.33,
|
|
37.325,
|
|
37.31,
|
|
37.32,
|
|
37.305,
|
|
37.295,
|
|
37.305,
|
|
37.295,
|
|
37.295,
|
|
37.275,
|
|
37.28,
|
|
37.285,
|
|
37.285,
|
|
37.29,
|
|
37.29,
|
|
37.285,
|
|
37.275,
|
|
37.275,
|
|
37.265,
|
|
37.2565,
|
|
37.23,
|
|
37.225,
|
|
37.235,
|
|
37.225,
|
|
37.215,
|
|
37.22,
|
|
37.24,
|
|
37.215,
|
|
37.24,
|
|
37.22,
|
|
37.24,
|
|
37.25,
|
|
37.225,
|
|
37.2099,
|
|
37.21,
|
|
37.2,
|
|
37.195,
|
|
37.18,
|
|
37.175,
|
|
37.185,
|
|
37.16,
|
|
37.145,
|
|
37.14,
|
|
37.1174,
|
|
37.11,
|
|
37.1265,
|
|
37.14,
|
|
37.145,
|
|
37.145,
|
|
37.14,
|
|
37.1374,
|
|
37.125,
|
|
37.135,
|
|
37.135,
|
|
37.145,
|
|
37.17,
|
|
37.155,
|
|
37.17,
|
|
37.175,
|
|
37.165,
|
|
37.155,
|
|
37.145,
|
|
37.155,
|
|
37.145,
|
|
37.145,
|
|
37.14,
|
|
37.14,
|
|
37.125,
|
|
37.105,
|
|
37.095,
|
|
37.0989,
|
|
37.095,
|
|
37.085,
|
|
37.129,
|
|
37.11,
|
|
37.1,
|
|
37.08,
|
|
37.09,
|
|
37.1,
|
|
37.085,
|
|
37.1,
|
|
37.105,
|
|
37.085,
|
|
37.085,
|
|
37.065,
|
|
37.08,
|
|
37.099,
|
|
37.0863,
|
|
37.055,
|
|
37.06,
|
|
37.07,
|
|
37.06,
|
|
37.079,
|
|
37.085,
|
|
37.09,
|
|
37.09,
|
|
37.075,
|
|
37.07,
|
|
37.055,
|
|
37.045,
|
|
37.055,
|
|
37.07,
|
|
37.09,
|
|
37.085,
|
|
37.085,
|
|
37.08,
|
|
37.045,
|
|
37.06,
|
|
37.08,
|
|
37.035,
|
|
37.0101,
|
|
37.02,
|
|
37.01,
|
|
37.21,
|
|
37.24,
|
|
37.34,
|
|
37.375,
|
|
37.315,
|
|
37.18,
|
|
37.145,
|
|
37.19,
|
|
37.215,
|
|
37.2,
|
|
37.18,
|
|
37.15,
|
|
37.09,
|
|
37.09,
|
|
37.12,
|
|
37.1504,
|
|
37.12,
|
|
37,
|
|
36.985,
|
|
36.975,
|
|
36.995,
|
|
36.97,
|
|
36.97,
|
|
36.93,
|
|
36.985,
|
|
36.96,
|
|
36.99,
|
|
37.02,
|
|
37.0195,
|
|
37.04,
|
|
37.045,
|
|
37,
|
|
37.035,
|
|
37.04,
|
|
37.0599,
|
|
37.075,
|
|
37.13,
|
|
37.105,
|
|
37.135,
|
|
37.115,
|
|
37.125,
|
|
37.1001,
|
|
37.1186,
|
|
37.0906,
|
|
37.12,
|
|
37.11,
|
|
37.1125,
|
|
37.1208,
|
|
37.1,
|
|
37.08,
|
|
37.075,
|
|
37.07,
|
|
37.06,
|
|
37.0507,
|
|
37.06,
|
|
37.055,
|
|
37.05,
|
|
37.05,
|
|
37.068,
|
|
37.055,
|
|
37.0404,
|
|
37.05,
|
|
37.045,
|
|
37.05,
|
|
37.035,
|
|
37.05,
|
|
37.05,
|
|
37.05,
|
|
37.08,
|
|
37.075,
|
|
37.04,
|
|
37.0489,
|
|
37.04,
|
|
37.01,
|
|
37.04,
|
|
37.04,
|
|
37.0399,
|
|
37.04,
|
|
37.0532,
|
|
37.065,
|
|
37.085,
|
|
37.065,
|
|
37.04,
|
|
37.0406,
|
|
37.055,
|
|
37.07,
|
|
37.075,
|
|
37.08,
|
|
37.0774,
|
|
37.075,
|
|
37.08,
|
|
37.085,
|
|
37.085,
|
|
37.075,
|
|
37.085,
|
|
37.09,
|
|
37.091,
|
|
37.095,
|
|
37.09,
|
|
37.07,
|
|
37.07,
|
|
37.065,
|
|
37.06,
|
|
37.04,
|
|
37.03,
|
|
37.025,
|
|
37.0183,
|
|
37.03,
|
|
37.02,
|
|
37.025,
|
|
37.023,
|
|
37.035,
|
|
37.06,
|
|
37.06,
|
|
37.06,
|
|
37.05,
|
|
37.06,
|
|
37.06,
|
|
37.0643,
|
|
37.075,
|
|
37.07,
|
|
37.085,
|
|
37.085,
|
|
37.07,
|
|
37.065,
|
|
37.0591,
|
|
37.055,
|
|
37.04,
|
|
37.025,
|
|
37.025,
|
|
37.0365,
|
|
37.05,
|
|
37.0452,
|
|
37.025,
|
|
37.015,
|
|
37.025,
|
|
37.0047,
|
|
37.02,
|
|
37.015,
|
|
37.005,
|
|
37.006,
|
|
36.9923,
|
|
36.98,
|
|
36.9763,
|
|
36.9893,
|
|
36.995,
|
|
37,
|
|
37.028,
|
|
37.04,
|
|
37.05,
|
|
37.055,
|
|
37.055,
|
|
37.06,
|
|
37.065,
|
|
37.055,
|
|
37.04,
|
|
37.02,
|
|
37,
|
|
37,
|
|
36.995,
|
|
37.0103,
|
|
37.0299,
|
|
37.03,
|
|
37.04,
|
|
37.04,
|
|
37.03,
|
|
37.0199,
|
|
37,
|
|
37,
|
|
36.99,
|
|
36.97,
|
|
36.9528,
|
|
36.94,
|
|
36.925,
|
|
36.9477,
|
|
36.9304,
|
|
36.93,
|
|
36.95,
|
|
36.94,
|
|
36.945,
|
|
36.94,
|
|
36.935,
|
|
36.9374,
|
|
36.945,
|
|
36.955,
|
|
36.9474,
|
|
36.935,
|
|
36.95,
|
|
36.945,
|
|
36.94,
|
|
36.935,
|
|
36.93,
|
|
36.94,
|
|
36.915,
|
|
36.915,
|
|
36.94,
|
|
36.93,
|
|
36.945,
|
|
36.925,
|
|
36.93,
|
|
36.925,
|
|
36.9101,
|
|
36.92,
|
|
36.93,
|
|
36.93,
|
|
36.925,
|
|
36.93,
|
|
36.92,
|
|
36.9178,
|
|
36.92,
|
|
36.915,
|
|
36.9212,
|
|
36.92,
|
|
36.8701,
|
|
36.865,
|
|
36.8568,
|
|
36.83,
|
|
36.86,
|
|
36.8224,
|
|
36.831,
|
|
36.84,
|
|
36.85,
|
|
36.85,
|
|
36.845,
|
|
36.82,
|
|
36.82,
|
|
36.8275,
|
|
36.8082,
|
|
36.8219,
|
|
36.825,
|
|
36.805,
|
|
36.815,
|
|
36.8108,
|
|
36.855,
|
|
36.855,
|
|
36.86,
|
|
36.86,
|
|
36.855,
|
|
36.88,
|
|
36.8817,
|
|
36.8778,
|
|
36.885,
|
|
36.885,
|
|
36.915,
|
|
36.91,
|
|
36.944,
|
|
36.9762,
|
|
36.985,
|
|
37,
|
|
36.9948,
|
|
36.976,
|
|
36.9729,
|
|
36.97,
|
|
36.975,
|
|
36.955,
|
|
36.95,
|
|
36.945,
|
|
36.945,
|
|
36.94,
|
|
36.942,
|
|
36.94,
|
|
36.945,
|
|
36.925,
|
|
36.91,
|
|
36.89,
|
|
36.91,
|
|
36.905,
|
|
36.915,
|
|
36.925,
|
|
36.9239,
|
|
36.94,
|
|
36.94,
|
|
36.91,
|
|
36.99,
|
|
36.965,
|
|
36.975,
|
|
36.93,
|
|
36.94,
|
|
36.925,
|
|
36.98,
|
|
36.955,
|
|
36.93,
|
|
36.91,
|
|
36.92,
|
|
36.915,
|
|
36.91,
|
|
36.9207,
|
|
36.945,
|
|
36.935,
|
|
36.95,
|
|
36.9373,
|
|
36.93,
|
|
36.935,
|
|
36.935,
|
|
36.95,
|
|
36.945,
|
|
36.945,
|
|
37.005,
|
|
37.01,
|
|
37.03,
|
|
37.035,
|
|
37.045,
|
|
36.925,
|
|
36.965,
|
|
37.075,
|
|
37.125,
|
|
37,
|
|
37.04,
|
|
37.05,
|
|
37.095,
|
|
37.175,
|
|
37.26,
|
|
37.29,
|
|
37.25,
|
|
37.29,
|
|
37.415,
|
|
37.33,
|
|
37.335,
|
|
37.38,
|
|
37.37,
|
|
37.415,
|
|
37.43,
|
|
37.465,
|
|
37.43,
|
|
37.43,
|
|
37.465,
|
|
37.445,
|
|
37.46,
|
|
37.44,
|
|
37.42,
|
|
37.48,
|
|
37.44,
|
|
37.48,
|
|
37.41,
|
|
37.4,
|
|
37.38,
|
|
37.39,
|
|
37.395,
|
|
37.38,
|
|
37.425,
|
|
37.395,
|
|
37.39,
|
|
37.3699,
|
|
37.38,
|
|
37.3901,
|
|
37.4,
|
|
37.375,
|
|
37.3808,
|
|
37.38,
|
|
37.345,
|
|
37.37,
|
|
37.34,
|
|
37.32,
|
|
37.285,
|
|
37.35,
|
|
37.38,
|
|
37.355,
|
|
37.39,
|
|
37.38,
|
|
37.36,
|
|
37.365,
|
|
37.275,
|
|
37.28,
|
|
37.2495,
|
|
37.27,
|
|
37.22,
|
|
37.23,
|
|
37.195,
|
|
37.21,
|
|
37.16,
|
|
37.155,
|
|
37.2,
|
|
37.16,
|
|
37.145,
|
|
37.12,
|
|
37.165,
|
|
37.18,
|
|
37.19,
|
|
37.13,
|
|
37.14,
|
|
37.16,
|
|
37.115,
|
|
37.05,
|
|
37.03,
|
|
37.02,
|
|
37.02,
|
|
37,
|
|
37.01,
|
|
36.9543,
|
|
36.96,
|
|
36.94,
|
|
37.37,
|
|
37.45,
|
|
37.48,
|
|
37.42,
|
|
37.405,
|
|
37.36,
|
|
37.31,
|
|
37.25,
|
|
37.175,
|
|
37.26,
|
|
37.2442,
|
|
37.23,
|
|
37.2642,
|
|
37.215,
|
|
37.145,
|
|
37.11,
|
|
37.13,
|
|
37.07,
|
|
37.11,
|
|
37.1,
|
|
37.125,
|
|
37.125,
|
|
37.15,
|
|
37.12,
|
|
37.135,
|
|
37.12,
|
|
37.1,
|
|
37.115,
|
|
37.16,
|
|
37.115,
|
|
37.148,
|
|
37.11,
|
|
37.03,
|
|
37.02,
|
|
37.06,
|
|
37.03,
|
|
37.055,
|
|
37.021,
|
|
37.05,
|
|
37.01,
|
|
36.935,
|
|
36.97,
|
|
36.995,
|
|
37.02,
|
|
36.975,
|
|
36.97,
|
|
36.974,
|
|
36.965,
|
|
36.94,
|
|
36.95,
|
|
36.95,
|
|
36.895,
|
|
36.9086,
|
|
36.91,
|
|
36.96,
|
|
36.96,
|
|
36.945,
|
|
36.985,
|
|
36.98,
|
|
37.0014,
|
|
36.995,
|
|
36.985,
|
|
36.9831,
|
|
36.96,
|
|
36.9756,
|
|
36.975,
|
|
36.955,
|
|
36.9535,
|
|
36.98,
|
|
36.9707,
|
|
36.965,
|
|
36.93,
|
|
36.903,
|
|
36.835,
|
|
36.8501,
|
|
36.825,
|
|
36.8294,
|
|
36.825,
|
|
36.845,
|
|
36.855,
|
|
36.87,
|
|
36.85,
|
|
36.8696,
|
|
36.875,
|
|
36.85,
|
|
36.83,
|
|
36.835,
|
|
36.875,
|
|
36.8681,
|
|
36.875,
|
|
36.85,
|
|
36.865,
|
|
36.86,
|
|
36.914,
|
|
36.9067,
|
|
36.8999,
|
|
36.895,
|
|
36.9,
|
|
36.91,
|
|
36.905,
|
|
36.915,
|
|
36.91,
|
|
36.911,
|
|
36.9,
|
|
36.89,
|
|
36.875,
|
|
36.885,
|
|
36.875,
|
|
36.88,
|
|
36.89,
|
|
36.895,
|
|
36.88,
|
|
36.895,
|
|
36.9,
|
|
36.875,
|
|
36.875,
|
|
36.87,
|
|
36.84,
|
|
36.8299,
|
|
36.825,
|
|
36.82,
|
|
36.82,
|
|
36.785,
|
|
36.76,
|
|
36.79,
|
|
36.745,
|
|
36.7311,
|
|
36.744,
|
|
36.7299,
|
|
36.74,
|
|
36.72,
|
|
36.745,
|
|
36.755,
|
|
36.745,
|
|
36.7549,
|
|
36.755,
|
|
36.77,
|
|
36.77,
|
|
36.785,
|
|
36.785,
|
|
36.785,
|
|
36.7916,
|
|
36.815,
|
|
36.805,
|
|
36.805,
|
|
36.81,
|
|
36.795,
|
|
36.795,
|
|
36.79,
|
|
36.785,
|
|
36.77,
|
|
36.745,
|
|
36.755,
|
|
36.75,
|
|
36.75,
|
|
36.75,
|
|
36.74,
|
|
36.75,
|
|
36.755,
|
|
36.7179,
|
|
36.72,
|
|
36.71,
|
|
36.7213,
|
|
36.7021,
|
|
36.72,
|
|
36.705,
|
|
36.725,
|
|
36.7,
|
|
36.7,
|
|
36.7001,
|
|
36.715,
|
|
36.741,
|
|
36.725,
|
|
36.75,
|
|
36.75,
|
|
36.73,
|
|
36.71,
|
|
36.715,
|
|
36.72,
|
|
36.708,
|
|
36.705,
|
|
36.7,
|
|
36.68,
|
|
36.68,
|
|
36.6832,
|
|
36.675,
|
|
36.675,
|
|
36.655,
|
|
36.68,
|
|
36.7,
|
|
36.715,
|
|
36.715,
|
|
36.735,
|
|
36.73,
|
|
36.74,
|
|
36.7527,
|
|
36.75,
|
|
36.74,
|
|
36.75,
|
|
36.745,
|
|
36.75,
|
|
36.755,
|
|
36.76,
|
|
36.765,
|
|
36.7677,
|
|
36.75,
|
|
36.7501,
|
|
36.755,
|
|
36.74,
|
|
36.7575,
|
|
36.755,
|
|
36.76,
|
|
36.78,
|
|
36.78,
|
|
36.77,
|
|
36.77,
|
|
36.775,
|
|
36.79,
|
|
36.8,
|
|
36.8,
|
|
36.81,
|
|
36.81,
|
|
36.83,
|
|
36.83,
|
|
36.88,
|
|
36.875,
|
|
36.9,
|
|
36.875,
|
|
36.8622,
|
|
36.87,
|
|
36.86,
|
|
36.86,
|
|
36.855,
|
|
36.86,
|
|
36.86,
|
|
36.89,
|
|
36.88,
|
|
36.855,
|
|
36.88,
|
|
36.91,
|
|
36.915,
|
|
36.895,
|
|
36.895,
|
|
36.88,
|
|
36.87,
|
|
36.89,
|
|
36.87,
|
|
36.895,
|
|
36.885,
|
|
36.87,
|
|
36.87,
|
|
36.88,
|
|
36.855,
|
|
36.875,
|
|
36.875,
|
|
36.875,
|
|
36.86,
|
|
36.865,
|
|
36.865,
|
|
36.87,
|
|
36.865,
|
|
36.88,
|
|
36.875,
|
|
36.885,
|
|
36.875,
|
|
36.855,
|
|
36.875,
|
|
36.875,
|
|
36.875,
|
|
36.87,
|
|
36.88,
|
|
36.86,
|
|
36.845,
|
|
36.855,
|
|
36.865,
|
|
36.86,
|
|
36.865,
|
|
36.866,
|
|
36.88,
|
|
36.875,
|
|
36.865,
|
|
36.84,
|
|
36.84,
|
|
36.84,
|
|
36.8442,
|
|
36.84,
|
|
36.84,
|
|
36.835,
|
|
36.805,
|
|
36.81,
|
|
36.82,
|
|
36.815,
|
|
36.82,
|
|
36.815,
|
|
36.83,
|
|
36.835,
|
|
36.835,
|
|
36.85,
|
|
36.865,
|
|
36.86,
|
|
36.875,
|
|
36.875,
|
|
36.875,
|
|
36.875,
|
|
36.909,
|
|
36.885,
|
|
36.8942,
|
|
36.92,
|
|
36.92,
|
|
36.95,
|
|
36.96,
|
|
36.9272,
|
|
36.935,
|
|
36.915,
|
|
36.905,
|
|
36.9,
|
|
36.88,
|
|
36.905,
|
|
36.925,
|
|
36.96,
|
|
36.955,
|
|
36.925,
|
|
36.925,
|
|
36.935,
|
|
36.96,
|
|
36.94,
|
|
36.96,
|
|
36.955,
|
|
36.96,
|
|
36.94,
|
|
36.9118,
|
|
36.89,
|
|
36.89,
|
|
36.84,
|
|
36.8201,
|
|
36.86,
|
|
36.89,
|
|
36.895,
|
|
36.92,
|
|
36.94,
|
|
36.955,
|
|
36.955,
|
|
36.935,
|
|
36.89,
|
|
36.91,
|
|
36.885,
|
|
36.895,
|
|
36.91,
|
|
36.87,
|
|
36.865,
|
|
36.88,
|
|
36.91,
|
|
36.925,
|
|
36.905,
|
|
36.92,
|
|
36.91,
|
|
36.895,
|
|
36.9,
|
|
36.895,
|
|
36.905,
|
|
36.87,
|
|
36.865,
|
|
36.87,
|
|
36.8541,
|
|
36.86,
|
|
36.83,
|
|
36.8,
|
|
36.79,
|
|
36.825,
|
|
36.815,
|
|
36.81,
|
|
36.8171,
|
|
36.7996,
|
|
36.83,
|
|
36.825,
|
|
36.8,
|
|
36.805,
|
|
36.84,
|
|
36.84,
|
|
36.85,
|
|
36.83,
|
|
36.805,
|
|
36.82,
|
|
36.825,
|
|
36.8341,
|
|
36.85,
|
|
36.86,
|
|
36.85,
|
|
36.85,
|
|
36.825,
|
|
36.88,
|
|
37.25,
|
|
37.435,
|
|
37.495,
|
|
37.435,
|
|
37.3794,
|
|
37.3,
|
|
37.275,
|
|
37.31,
|
|
37.235,
|
|
37.255,
|
|
37.32,
|
|
37.295,
|
|
37.35,
|
|
37.33,
|
|
37.27,
|
|
37.29,
|
|
37.285,
|
|
37.375,
|
|
37.39,
|
|
37.4,
|
|
37.4,
|
|
37.365,
|
|
37.38,
|
|
37.42,
|
|
37.425,
|
|
37.42,
|
|
37.455,
|
|
37.445,
|
|
37.445,
|
|
37.415,
|
|
37.42,
|
|
37.33,
|
|
37.3,
|
|
37.325,
|
|
37.32,
|
|
37.28,
|
|
37.285,
|
|
37.305,
|
|
37.245,
|
|
37.24,
|
|
37.27,
|
|
37.265,
|
|
37.26,
|
|
37.235,
|
|
37.225,
|
|
37.225,
|
|
37.255,
|
|
37.23,
|
|
37.235,
|
|
37.2208,
|
|
37.2,
|
|
37.165,
|
|
37.17,
|
|
37.135,
|
|
37.095,
|
|
37.15,
|
|
37.12,
|
|
37.14,
|
|
37.135,
|
|
37.1706,
|
|
37.17,
|
|
37.225,
|
|
37.2175,
|
|
37.205,
|
|
37.1799,
|
|
37.16,
|
|
37.17,
|
|
37.18,
|
|
37.2,
|
|
37.17,
|
|
37.1625,
|
|
37.19,
|
|
37.195,
|
|
37.195,
|
|
37.2,
|
|
37.22,
|
|
37.225,
|
|
37.22,
|
|
37.215,
|
|
37.229,
|
|
37.215,
|
|
37.18,
|
|
37.19,
|
|
37.15,
|
|
37.165,
|
|
37.1686,
|
|
37.1999,
|
|
37.17,
|
|
37.201,
|
|
37.215,
|
|
37.195,
|
|
37.22,
|
|
37.205,
|
|
37.178,
|
|
37.195,
|
|
37.195,
|
|
37.195,
|
|
37.195,
|
|
37.23,
|
|
37.205,
|
|
37.2001,
|
|
37.2276,
|
|
37.235,
|
|
37.22,
|
|
37.2125,
|
|
37.22,
|
|
37.2201,
|
|
37.225,
|
|
37.215,
|
|
37.21,
|
|
37.205,
|
|
37.205,
|
|
37.185,
|
|
37.2,
|
|
37.21,
|
|
37.205,
|
|
37.2,
|
|
37.195,
|
|
37.215,
|
|
37.225,
|
|
37.21,
|
|
37.2173,
|
|
37.215,
|
|
37.22,
|
|
37.22,
|
|
37.23,
|
|
37.225,
|
|
37.22,
|
|
37.225,
|
|
37.215,
|
|
37.215,
|
|
37.24,
|
|
37.2501,
|
|
37.255,
|
|
37.2401,
|
|
37.21,
|
|
37.225,
|
|
37.23,
|
|
37.225,
|
|
37.205,
|
|
37.24,
|
|
37.2456,
|
|
37.235,
|
|
37.235,
|
|
37.25,
|
|
37.2425,
|
|
37.24,
|
|
37.23,
|
|
37.25,
|
|
37.25,
|
|
37.24,
|
|
37.2401,
|
|
37.245,
|
|
37.2332,
|
|
37.2397,
|
|
37.2399,
|
|
37.24,
|
|
37.235,
|
|
37.23,
|
|
37.22,
|
|
37.2398,
|
|
37.245,
|
|
37.23,
|
|
37.22,
|
|
37.21,
|
|
37.225,
|
|
37.225,
|
|
37.23,
|
|
37.225,
|
|
37.21,
|
|
37.2085,
|
|
37.2165,
|
|
37.2143,
|
|
37.22,
|
|
37.2282,
|
|
37.2399,
|
|
37.25,
|
|
37.245,
|
|
37.2338,
|
|
37.25,
|
|
37.24,
|
|
37.25,
|
|
37.245,
|
|
37.245,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.25,
|
|
37.27,
|
|
37.245,
|
|
37.245,
|
|
37.26,
|
|
37.265,
|
|
37.255,
|
|
37.2499,
|
|
37.235,
|
|
37.215,
|
|
37.2203,
|
|
37.2125,
|
|
37.22,
|
|
37.205,
|
|
37.205,
|
|
37.19,
|
|
37.19,
|
|
37.19,
|
|
37.185,
|
|
37.185,
|
|
37.18,
|
|
37.21,
|
|
37.205,
|
|
37.2,
|
|
37.2,
|
|
37.195,
|
|
37.205,
|
|
37.2,
|
|
37.195,
|
|
37.21,
|
|
37.21,
|
|
37.21,
|
|
37.2,
|
|
37.195,
|
|
37.215,
|
|
37.205,
|
|
37.215,
|
|
37.215,
|
|
37.2099,
|
|
37.215,
|
|
37.215,
|
|
37.174,
|
|
37.175,
|
|
37.175,
|
|
37.17,
|
|
37.165,
|
|
37.16,
|
|
37.175,
|
|
37.18,
|
|
37.165,
|
|
37.1795,
|
|
37.18,
|
|
37.195,
|
|
37.175,
|
|
37.165,
|
|
37.175,
|
|
37.195,
|
|
37.21,
|
|
37.205,
|
|
37.2025,
|
|
37.215,
|
|
37.23,
|
|
37.2369,
|
|
37.2493,
|
|
37.27,
|
|
37.25,
|
|
37.24,
|
|
37.24,
|
|
37.25,
|
|
37.245,
|
|
37.25,
|
|
37.25,
|
|
37.26,
|
|
37.265,
|
|
37.255,
|
|
37.255,
|
|
37.255,
|
|
37.27,
|
|
37.27,
|
|
37.255,
|
|
37.26,
|
|
37.255,
|
|
37.255,
|
|
37.25,
|
|
37.26,
|
|
37.26,
|
|
37.27,
|
|
37.275,
|
|
37.27,
|
|
37.27,
|
|
37.265,
|
|
37.27,
|
|
37.26,
|
|
37.24,
|
|
37.25,
|
|
37.2399,
|
|
37.245,
|
|
37.25,
|
|
37.24,
|
|
37.245,
|
|
37.2361,
|
|
37.235,
|
|
37.2359,
|
|
37.24,
|
|
37.25,
|
|
37.2378,
|
|
37.2328,
|
|
37.25,
|
|
37.24,
|
|
37.2328,
|
|
37.235,
|
|
37.235,
|
|
37.235,
|
|
37.23,
|
|
37.2299,
|
|
37.225,
|
|
37.215,
|
|
37.23,
|
|
37.22,
|
|
37.22,
|
|
37.225,
|
|
37.215,
|
|
37.2,
|
|
37.21,
|
|
37.19,
|
|
37.195,
|
|
37.18,
|
|
37.18,
|
|
37.19,
|
|
37.2,
|
|
37.185,
|
|
37.2,
|
|
37.205,
|
|
37.205,
|
|
37.195,
|
|
37.2,
|
|
37.19,
|
|
37.2,
|
|
37.195,
|
|
37.205,
|
|
37.195,
|
|
37.19,
|
|
37.175,
|
|
37.165,
|
|
37.1566,
|
|
37.175,
|
|
37.1659,
|
|
37.18,
|
|
37.17,
|
|
37.155,
|
|
37.17,
|
|
37.175,
|
|
37.17,
|
|
37.15,
|
|
37.13,
|
|
37.13,
|
|
37.135,
|
|
37.15,
|
|
37.155,
|
|
37.15,
|
|
37.16,
|
|
37.18,
|
|
37.175,
|
|
37.17,
|
|
37.165,
|
|
37.175,
|
|
37.185,
|
|
37.2,
|
|
37.2,
|
|
37.2,
|
|
37.195,
|
|
37.19,
|
|
37.1888,
|
|
37.18,
|
|
37.17,
|
|
37.16,
|
|
37.165,
|
|
37.165,
|
|
37.195,
|
|
37.195,
|
|
37.205,
|
|
37.2,
|
|
37.215,
|
|
37.23,
|
|
37.215,
|
|
37.215,
|
|
37.205,
|
|
37.205,
|
|
37.215,
|
|
37.205,
|
|
37.23,
|
|
37.21,
|
|
37.23,
|
|
37.23,
|
|
37.245,
|
|
37.25,
|
|
37.245,
|
|
37.245,
|
|
37.245,
|
|
37.235,
|
|
37.24,
|
|
37.25,
|
|
37.66,
|
|
37.73,
|
|
37.67,
|
|
37.62,
|
|
37.58,
|
|
37.59,
|
|
37.42,
|
|
37.41,
|
|
37.4096,
|
|
37.425,
|
|
37.435,
|
|
37.445,
|
|
37.48,
|
|
37.54,
|
|
37.56,
|
|
37.525,
|
|
37.53,
|
|
37.515,
|
|
37.525,
|
|
37.4971,
|
|
37.44,
|
|
37.465,
|
|
37.47,
|
|
37.495,
|
|
37.4959,
|
|
37.515,
|
|
37.535,
|
|
37.5325,
|
|
37.545,
|
|
37.5,
|
|
37.495,
|
|
37.485,
|
|
37.5,
|
|
37.505,
|
|
37.53,
|
|
37.57,
|
|
37.57,
|
|
37.57,
|
|
37.58,
|
|
37.5975,
|
|
37.58,
|
|
37.58,
|
|
37.62,
|
|
37.615,
|
|
37.625,
|
|
37.635,
|
|
37.635,
|
|
37.68,
|
|
37.635,
|
|
37.6586,
|
|
37.61,
|
|
37.6225,
|
|
37.64,
|
|
37.63,
|
|
37.636,
|
|
37.63,
|
|
37.64,
|
|
37.635,
|
|
37.615,
|
|
37.635,
|
|
37.6253,
|
|
37.64,
|
|
37.59,
|
|
37.595,
|
|
37.5944,
|
|
37.6,
|
|
37.585,
|
|
37.58,
|
|
37.6,
|
|
37.6117,
|
|
37.6091,
|
|
37.6132,
|
|
37.6102,
|
|
37.6,
|
|
37.575,
|
|
37.5994,
|
|
37.59,
|
|
37.59,
|
|
37.5937,
|
|
37.595,
|
|
37.595,
|
|
37.59,
|
|
37.5795,
|
|
37.565,
|
|
37.555,
|
|
37.5626,
|
|
37.575,
|
|
37.54,
|
|
37.555,
|
|
37.55,
|
|
37.56,
|
|
37.555,
|
|
37.5589,
|
|
37.545,
|
|
37.5378,
|
|
37.54,
|
|
37.51,
|
|
37.54,
|
|
37.55,
|
|
37.53,
|
|
37.55,
|
|
37.535,
|
|
37.535,
|
|
37.54,
|
|
37.535,
|
|
37.53,
|
|
37.558,
|
|
37.54,
|
|
37.5382,
|
|
37.52,
|
|
37.535,
|
|
37.5456,
|
|
37.5409,
|
|
37.5199,
|
|
37.5,
|
|
37.495,
|
|
37.4945,
|
|
37.495,
|
|
37.47,
|
|
37.485,
|
|
37.495,
|
|
37.4766,
|
|
37.4825,
|
|
37.48,
|
|
37.47,
|
|
37.49,
|
|
37.51,
|
|
37.5
|
|
],
|
|
"type": "candlestick",
|
|
"uid": "101cd526-a049-44b8-ae03-e29ce5a5ece2",
|
|
"x": [
|
|
"2024-04-29T09:30:00-04:00",
|
|
"2024-04-29T09:31:00-04:00",
|
|
"2024-04-29T09:32:00-04:00",
|
|
"2024-04-29T09:33:00-04:00",
|
|
"2024-04-29T09:34:00-04:00",
|
|
"2024-04-29T09:35:00-04:00",
|
|
"2024-04-29T09:36:00-04:00",
|
|
"2024-04-29T09:37:00-04:00",
|
|
"2024-04-29T09:38:00-04:00",
|
|
"2024-04-29T09:39:00-04:00",
|
|
"2024-04-29T09:40:00-04:00",
|
|
"2024-04-29T09:41:00-04:00",
|
|
"2024-04-29T09:42:00-04:00",
|
|
"2024-04-29T09:43:00-04:00",
|
|
"2024-04-29T09:44:00-04:00",
|
|
"2024-04-29T09:45:00-04:00",
|
|
"2024-04-29T09:46:00-04:00",
|
|
"2024-04-29T09:47:00-04:00",
|
|
"2024-04-29T09:48:00-04:00",
|
|
"2024-04-29T09:49:00-04:00",
|
|
"2024-04-29T09:50:00-04:00",
|
|
"2024-04-29T09:51:00-04:00",
|
|
"2024-04-29T09:52:00-04:00",
|
|
"2024-04-29T09:53:00-04:00",
|
|
"2024-04-29T09:54:00-04:00",
|
|
"2024-04-29T09:55:00-04:00",
|
|
"2024-04-29T09:56:00-04:00",
|
|
"2024-04-29T09:57:00-04:00",
|
|
"2024-04-29T09:58:00-04:00",
|
|
"2024-04-29T09:59:00-04:00",
|
|
"2024-04-29T10:00:00-04:00",
|
|
"2024-04-29T10:01:00-04:00",
|
|
"2024-04-29T10:02:00-04:00",
|
|
"2024-04-29T10:03:00-04:00",
|
|
"2024-04-29T10:04:00-04:00",
|
|
"2024-04-29T10:05:00-04:00",
|
|
"2024-04-29T10:06:00-04:00",
|
|
"2024-04-29T10:07:00-04:00",
|
|
"2024-04-29T10:08:00-04:00",
|
|
"2024-04-29T10:09:00-04:00",
|
|
"2024-04-29T10:10:00-04:00",
|
|
"2024-04-29T10:11:00-04:00",
|
|
"2024-04-29T10:12:00-04:00",
|
|
"2024-04-29T10:13:00-04:00",
|
|
"2024-04-29T10:14:00-04:00",
|
|
"2024-04-29T10:15:00-04:00",
|
|
"2024-04-29T10:16:00-04:00",
|
|
"2024-04-29T10:17:00-04:00",
|
|
"2024-04-29T10:18:00-04:00",
|
|
"2024-04-29T10:19:00-04:00",
|
|
"2024-04-29T10:20:00-04:00",
|
|
"2024-04-29T10:21:00-04:00",
|
|
"2024-04-29T10:22:00-04:00",
|
|
"2024-04-29T10:23:00-04:00",
|
|
"2024-04-29T10:24:00-04:00",
|
|
"2024-04-29T10:25:00-04:00",
|
|
"2024-04-29T10:26:00-04:00",
|
|
"2024-04-29T10:27:00-04:00",
|
|
"2024-04-29T10:28:00-04:00",
|
|
"2024-04-29T10:29:00-04:00",
|
|
"2024-04-29T10:30:00-04:00",
|
|
"2024-04-29T10:31:00-04:00",
|
|
"2024-04-29T10:32:00-04:00",
|
|
"2024-04-29T10:33:00-04:00",
|
|
"2024-04-29T10:34:00-04:00",
|
|
"2024-04-29T10:35:00-04:00",
|
|
"2024-04-29T10:36:00-04:00",
|
|
"2024-04-29T10:37:00-04:00",
|
|
"2024-04-29T10:38:00-04:00",
|
|
"2024-04-29T10:39:00-04:00",
|
|
"2024-04-29T10:40:00-04:00",
|
|
"2024-04-29T10:41:00-04:00",
|
|
"2024-04-29T10:42:00-04:00",
|
|
"2024-04-29T10:43:00-04:00",
|
|
"2024-04-29T10:44:00-04:00",
|
|
"2024-04-29T10:45:00-04:00",
|
|
"2024-04-29T10:46:00-04:00",
|
|
"2024-04-29T10:47:00-04:00",
|
|
"2024-04-29T10:48:00-04:00",
|
|
"2024-04-29T10:49:00-04:00",
|
|
"2024-04-29T10:50:00-04:00",
|
|
"2024-04-29T10:51:00-04:00",
|
|
"2024-04-29T10:52:00-04:00",
|
|
"2024-04-29T10:53:00-04:00",
|
|
"2024-04-29T10:54:00-04:00",
|
|
"2024-04-29T10:55:00-04:00",
|
|
"2024-04-29T10:56:00-04:00",
|
|
"2024-04-29T10:57:00-04:00",
|
|
"2024-04-29T10:58:00-04:00",
|
|
"2024-04-29T10:59:00-04:00",
|
|
"2024-04-29T11:00:00-04:00",
|
|
"2024-04-29T11:01:00-04:00",
|
|
"2024-04-29T11:02:00-04:00",
|
|
"2024-04-29T11:03:00-04:00",
|
|
"2024-04-29T11:04:00-04:00",
|
|
"2024-04-29T11:05:00-04:00",
|
|
"2024-04-29T11:06:00-04:00",
|
|
"2024-04-29T11:07:00-04:00",
|
|
"2024-04-29T11:08:00-04:00",
|
|
"2024-04-29T11:09:00-04:00",
|
|
"2024-04-29T11:10:00-04:00",
|
|
"2024-04-29T11:11:00-04:00",
|
|
"2024-04-29T11:12:00-04:00",
|
|
"2024-04-29T11:13:00-04:00",
|
|
"2024-04-29T11:14:00-04:00",
|
|
"2024-04-29T11:15:00-04:00",
|
|
"2024-04-29T11:16:00-04:00",
|
|
"2024-04-29T11:17:00-04:00",
|
|
"2024-04-29T11:18:00-04:00",
|
|
"2024-04-29T11:19:00-04:00",
|
|
"2024-04-29T11:20:00-04:00",
|
|
"2024-04-29T11:21:00-04:00",
|
|
"2024-04-29T11:22:00-04:00",
|
|
"2024-04-29T11:23:00-04:00",
|
|
"2024-04-29T11:24:00-04:00",
|
|
"2024-04-29T11:25:00-04:00",
|
|
"2024-04-29T11:26:00-04:00",
|
|
"2024-04-29T11:27:00-04:00",
|
|
"2024-04-29T11:28:00-04:00",
|
|
"2024-04-29T11:29:00-04:00",
|
|
"2024-04-29T11:30:00-04:00",
|
|
"2024-04-29T11:31:00-04:00",
|
|
"2024-04-29T11:32:00-04:00",
|
|
"2024-04-29T11:33:00-04:00",
|
|
"2024-04-29T11:34:00-04:00",
|
|
"2024-04-29T11:35:00-04:00",
|
|
"2024-04-29T11:36:00-04:00",
|
|
"2024-04-29T11:37:00-04:00",
|
|
"2024-04-29T11:38:00-04:00",
|
|
"2024-04-29T11:39:00-04:00",
|
|
"2024-04-29T11:40:00-04:00",
|
|
"2024-04-29T11:41:00-04:00",
|
|
"2024-04-29T11:42:00-04:00",
|
|
"2024-04-29T11:43:00-04:00",
|
|
"2024-04-29T11:44:00-04:00",
|
|
"2024-04-29T11:45:00-04:00",
|
|
"2024-04-29T11:46:00-04:00",
|
|
"2024-04-29T11:47:00-04:00",
|
|
"2024-04-29T11:48:00-04:00",
|
|
"2024-04-29T11:49:00-04:00",
|
|
"2024-04-29T11:50:00-04:00",
|
|
"2024-04-29T11:51:00-04:00",
|
|
"2024-04-29T11:52:00-04:00",
|
|
"2024-04-29T11:53:00-04:00",
|
|
"2024-04-29T11:54:00-04:00",
|
|
"2024-04-29T11:55:00-04:00",
|
|
"2024-04-29T11:56:00-04:00",
|
|
"2024-04-29T11:57:00-04:00",
|
|
"2024-04-29T11:58:00-04:00",
|
|
"2024-04-29T11:59:00-04:00",
|
|
"2024-04-29T12:00:00-04:00",
|
|
"2024-04-29T12:01:00-04:00",
|
|
"2024-04-29T12:02:00-04:00",
|
|
"2024-04-29T12:03:00-04:00",
|
|
"2024-04-29T12:04:00-04:00",
|
|
"2024-04-29T12:05:00-04:00",
|
|
"2024-04-29T12:06:00-04:00",
|
|
"2024-04-29T12:07:00-04:00",
|
|
"2024-04-29T12:08:00-04:00",
|
|
"2024-04-29T12:09:00-04:00",
|
|
"2024-04-29T12:10:00-04:00",
|
|
"2024-04-29T12:11:00-04:00",
|
|
"2024-04-29T12:12:00-04:00",
|
|
"2024-04-29T12:13:00-04:00",
|
|
"2024-04-29T12:14:00-04:00",
|
|
"2024-04-29T12:15:00-04:00",
|
|
"2024-04-29T12:16:00-04:00",
|
|
"2024-04-29T12:17:00-04:00",
|
|
"2024-04-29T12:18:00-04:00",
|
|
"2024-04-29T12:19:00-04:00",
|
|
"2024-04-29T12:20:00-04:00",
|
|
"2024-04-29T12:21:00-04:00",
|
|
"2024-04-29T12:22:00-04:00",
|
|
"2024-04-29T12:23:00-04:00",
|
|
"2024-04-29T12:24:00-04:00",
|
|
"2024-04-29T12:25:00-04:00",
|
|
"2024-04-29T12:26:00-04:00",
|
|
"2024-04-29T12:27:00-04:00",
|
|
"2024-04-29T12:28:00-04:00",
|
|
"2024-04-29T12:29:00-04:00",
|
|
"2024-04-29T12:30:00-04:00",
|
|
"2024-04-29T12:31:00-04:00",
|
|
"2024-04-29T12:32:00-04:00",
|
|
"2024-04-29T12:33:00-04:00",
|
|
"2024-04-29T12:34:00-04:00",
|
|
"2024-04-29T12:35:00-04:00",
|
|
"2024-04-29T12:36:00-04:00",
|
|
"2024-04-29T12:37:00-04:00",
|
|
"2024-04-29T12:38:00-04:00",
|
|
"2024-04-29T12:39:00-04:00",
|
|
"2024-04-29T12:40:00-04:00",
|
|
"2024-04-29T12:41:00-04:00",
|
|
"2024-04-29T12:42:00-04:00",
|
|
"2024-04-29T12:43:00-04:00",
|
|
"2024-04-29T12:44:00-04:00",
|
|
"2024-04-29T12:45:00-04:00",
|
|
"2024-04-29T12:46:00-04:00",
|
|
"2024-04-29T12:47:00-04:00",
|
|
"2024-04-29T12:48:00-04:00",
|
|
"2024-04-29T12:49:00-04:00",
|
|
"2024-04-29T12:50:00-04:00",
|
|
"2024-04-29T12:51:00-04:00",
|
|
"2024-04-29T12:52:00-04:00",
|
|
"2024-04-29T12:53:00-04:00",
|
|
"2024-04-29T12:54:00-04:00",
|
|
"2024-04-29T12:55:00-04:00",
|
|
"2024-04-29T12:56:00-04:00",
|
|
"2024-04-29T12:57:00-04:00",
|
|
"2024-04-29T12:58:00-04:00",
|
|
"2024-04-29T12:59:00-04:00",
|
|
"2024-04-29T13:00:00-04:00",
|
|
"2024-04-29T13:01:00-04:00",
|
|
"2024-04-29T13:02:00-04:00",
|
|
"2024-04-29T13:03:00-04:00",
|
|
"2024-04-29T13:04:00-04:00",
|
|
"2024-04-29T13:05:00-04:00",
|
|
"2024-04-29T13:06:00-04:00",
|
|
"2024-04-29T13:07:00-04:00",
|
|
"2024-04-29T13:08:00-04:00",
|
|
"2024-04-29T13:09:00-04:00",
|
|
"2024-04-29T13:10:00-04:00",
|
|
"2024-04-29T13:11:00-04:00",
|
|
"2024-04-29T13:12:00-04:00",
|
|
"2024-04-29T13:13:00-04:00",
|
|
"2024-04-29T13:14:00-04:00",
|
|
"2024-04-29T13:15:00-04:00",
|
|
"2024-04-29T13:16:00-04:00",
|
|
"2024-04-29T13:17:00-04:00",
|
|
"2024-04-29T13:18:00-04:00",
|
|
"2024-04-29T13:19:00-04:00",
|
|
"2024-04-29T13:20:00-04:00",
|
|
"2024-04-29T13:21:00-04:00",
|
|
"2024-04-29T13:22:00-04:00",
|
|
"2024-04-29T13:23:00-04:00",
|
|
"2024-04-29T13:24:00-04:00",
|
|
"2024-04-29T13:25:00-04:00",
|
|
"2024-04-29T13:26:00-04:00",
|
|
"2024-04-29T13:27:00-04:00",
|
|
"2024-04-29T13:28:00-04:00",
|
|
"2024-04-29T13:29:00-04:00",
|
|
"2024-04-29T13:30:00-04:00",
|
|
"2024-04-29T13:31:00-04:00",
|
|
"2024-04-29T13:32:00-04:00",
|
|
"2024-04-29T13:33:00-04:00",
|
|
"2024-04-29T13:34:00-04:00",
|
|
"2024-04-29T13:35:00-04:00",
|
|
"2024-04-29T13:36:00-04:00",
|
|
"2024-04-29T13:37:00-04:00",
|
|
"2024-04-29T13:38:00-04:00",
|
|
"2024-04-29T13:39:00-04:00",
|
|
"2024-04-29T13:40:00-04:00",
|
|
"2024-04-29T13:41:00-04:00",
|
|
"2024-04-29T13:42:00-04:00",
|
|
"2024-04-29T13:43:00-04:00",
|
|
"2024-04-29T13:44:00-04:00",
|
|
"2024-04-29T13:45:00-04:00",
|
|
"2024-04-29T13:46:00-04:00",
|
|
"2024-04-29T13:47:00-04:00",
|
|
"2024-04-29T13:48:00-04:00",
|
|
"2024-04-29T13:49:00-04:00",
|
|
"2024-04-29T13:50:00-04:00",
|
|
"2024-04-29T13:51:00-04:00",
|
|
"2024-04-29T13:52:00-04:00",
|
|
"2024-04-29T13:53:00-04:00",
|
|
"2024-04-29T13:54:00-04:00",
|
|
"2024-04-29T13:55:00-04:00",
|
|
"2024-04-29T13:56:00-04:00",
|
|
"2024-04-29T13:57:00-04:00",
|
|
"2024-04-29T13:58:00-04:00",
|
|
"2024-04-29T13:59:00-04:00",
|
|
"2024-04-29T14:00:00-04:00",
|
|
"2024-04-29T14:01:00-04:00",
|
|
"2024-04-29T14:02:00-04:00",
|
|
"2024-04-29T14:03:00-04:00",
|
|
"2024-04-29T14:04:00-04:00",
|
|
"2024-04-29T14:05:00-04:00",
|
|
"2024-04-29T14:06:00-04:00",
|
|
"2024-04-29T14:07:00-04:00",
|
|
"2024-04-29T14:08:00-04:00",
|
|
"2024-04-29T14:09:00-04:00",
|
|
"2024-04-29T14:10:00-04:00",
|
|
"2024-04-29T14:11:00-04:00",
|
|
"2024-04-29T14:12:00-04:00",
|
|
"2024-04-29T14:13:00-04:00",
|
|
"2024-04-29T14:14:00-04:00",
|
|
"2024-04-29T14:15:00-04:00",
|
|
"2024-04-29T14:16:00-04:00",
|
|
"2024-04-29T14:17:00-04:00",
|
|
"2024-04-29T14:18:00-04:00",
|
|
"2024-04-29T14:19:00-04:00",
|
|
"2024-04-29T14:20:00-04:00",
|
|
"2024-04-29T14:21:00-04:00",
|
|
"2024-04-29T14:22:00-04:00",
|
|
"2024-04-29T14:23:00-04:00",
|
|
"2024-04-29T14:24:00-04:00",
|
|
"2024-04-29T14:25:00-04:00",
|
|
"2024-04-29T14:26:00-04:00",
|
|
"2024-04-29T14:27:00-04:00",
|
|
"2024-04-29T14:28:00-04:00",
|
|
"2024-04-29T14:29:00-04:00",
|
|
"2024-04-29T14:30:00-04:00",
|
|
"2024-04-29T14:31:00-04:00",
|
|
"2024-04-29T14:32:00-04:00",
|
|
"2024-04-29T14:33:00-04:00",
|
|
"2024-04-29T14:34:00-04:00",
|
|
"2024-04-29T14:35:00-04:00",
|
|
"2024-04-29T14:36:00-04:00",
|
|
"2024-04-29T14:37:00-04:00",
|
|
"2024-04-29T14:38:00-04:00",
|
|
"2024-04-29T14:39:00-04:00",
|
|
"2024-04-29T14:40:00-04:00",
|
|
"2024-04-29T14:41:00-04:00",
|
|
"2024-04-29T14:42:00-04:00",
|
|
"2024-04-29T14:43:00-04:00",
|
|
"2024-04-29T14:44:00-04:00",
|
|
"2024-04-29T14:45:00-04:00",
|
|
"2024-04-29T14:46:00-04:00",
|
|
"2024-04-29T14:47:00-04:00",
|
|
"2024-04-29T14:48:00-04:00",
|
|
"2024-04-29T14:49:00-04:00",
|
|
"2024-04-29T14:50:00-04:00",
|
|
"2024-04-29T14:51:00-04:00",
|
|
"2024-04-29T14:52:00-04:00",
|
|
"2024-04-29T14:53:00-04:00",
|
|
"2024-04-29T14:54:00-04:00",
|
|
"2024-04-29T14:55:00-04:00",
|
|
"2024-04-29T14:56:00-04:00",
|
|
"2024-04-29T14:57:00-04:00",
|
|
"2024-04-29T14:58:00-04:00",
|
|
"2024-04-29T14:59:00-04:00",
|
|
"2024-04-29T15:00:00-04:00",
|
|
"2024-04-29T15:01:00-04:00",
|
|
"2024-04-29T15:02:00-04:00",
|
|
"2024-04-29T15:03:00-04:00",
|
|
"2024-04-29T15:04:00-04:00",
|
|
"2024-04-29T15:05:00-04:00",
|
|
"2024-04-29T15:06:00-04:00",
|
|
"2024-04-29T15:07:00-04:00",
|
|
"2024-04-29T15:08:00-04:00",
|
|
"2024-04-29T15:09:00-04:00",
|
|
"2024-04-29T15:10:00-04:00",
|
|
"2024-04-29T15:11:00-04:00",
|
|
"2024-04-29T15:12:00-04:00",
|
|
"2024-04-29T15:13:00-04:00",
|
|
"2024-04-29T15:14:00-04:00",
|
|
"2024-04-29T15:15:00-04:00",
|
|
"2024-04-29T15:16:00-04:00",
|
|
"2024-04-29T15:17:00-04:00",
|
|
"2024-04-29T15:18:00-04:00",
|
|
"2024-04-29T15:19:00-04:00",
|
|
"2024-04-29T15:20:00-04:00",
|
|
"2024-04-29T15:21:00-04:00",
|
|
"2024-04-29T15:22:00-04:00",
|
|
"2024-04-29T15:23:00-04:00",
|
|
"2024-04-29T15:24:00-04:00",
|
|
"2024-04-29T15:25:00-04:00",
|
|
"2024-04-29T15:26:00-04:00",
|
|
"2024-04-29T15:27:00-04:00",
|
|
"2024-04-29T15:28:00-04:00",
|
|
"2024-04-29T15:29:00-04:00",
|
|
"2024-04-29T15:30:00-04:00",
|
|
"2024-04-29T15:31:00-04:00",
|
|
"2024-04-29T15:32:00-04:00",
|
|
"2024-04-29T15:33:00-04:00",
|
|
"2024-04-29T15:34:00-04:00",
|
|
"2024-04-29T15:35:00-04:00",
|
|
"2024-04-29T15:36:00-04:00",
|
|
"2024-04-29T15:37:00-04:00",
|
|
"2024-04-29T15:38:00-04:00",
|
|
"2024-04-29T15:39:00-04:00",
|
|
"2024-04-29T15:40:00-04:00",
|
|
"2024-04-29T15:41:00-04:00",
|
|
"2024-04-29T15:42:00-04:00",
|
|
"2024-04-29T15:43:00-04:00",
|
|
"2024-04-29T15:44:00-04:00",
|
|
"2024-04-29T15:45:00-04:00",
|
|
"2024-04-29T15:46:00-04:00",
|
|
"2024-04-29T15:47:00-04:00",
|
|
"2024-04-29T15:48:00-04:00",
|
|
"2024-04-29T15:49:00-04:00",
|
|
"2024-04-29T15:50:00-04:00",
|
|
"2024-04-29T15:51:00-04:00",
|
|
"2024-04-29T15:52:00-04:00",
|
|
"2024-04-29T15:53:00-04:00",
|
|
"2024-04-29T15:54:00-04:00",
|
|
"2024-04-29T15:55:00-04:00",
|
|
"2024-04-29T15:56:00-04:00",
|
|
"2024-04-29T15:57:00-04:00",
|
|
"2024-04-29T15:58:00-04:00",
|
|
"2024-04-29T15:59:00-04:00",
|
|
"2024-04-29T16:00:00-04:00",
|
|
"2024-04-30T09:30:00-04:00",
|
|
"2024-04-30T09:31:00-04:00",
|
|
"2024-04-30T09:32:00-04:00",
|
|
"2024-04-30T09:33:00-04:00",
|
|
"2024-04-30T09:34:00-04:00",
|
|
"2024-04-30T09:35:00-04:00",
|
|
"2024-04-30T09:36:00-04:00",
|
|
"2024-04-30T09:37:00-04:00",
|
|
"2024-04-30T09:38:00-04:00",
|
|
"2024-04-30T09:39:00-04:00",
|
|
"2024-04-30T09:40:00-04:00",
|
|
"2024-04-30T09:41:00-04:00",
|
|
"2024-04-30T09:42:00-04:00",
|
|
"2024-04-30T09:43:00-04:00",
|
|
"2024-04-30T09:44:00-04:00",
|
|
"2024-04-30T09:45:00-04:00",
|
|
"2024-04-30T09:46:00-04:00",
|
|
"2024-04-30T09:47:00-04:00",
|
|
"2024-04-30T09:48:00-04:00",
|
|
"2024-04-30T09:49:00-04:00",
|
|
"2024-04-30T09:50:00-04:00",
|
|
"2024-04-30T09:51:00-04:00",
|
|
"2024-04-30T09:52:00-04:00",
|
|
"2024-04-30T09:53:00-04:00",
|
|
"2024-04-30T09:54:00-04:00",
|
|
"2024-04-30T09:55:00-04:00",
|
|
"2024-04-30T09:56:00-04:00",
|
|
"2024-04-30T09:57:00-04:00",
|
|
"2024-04-30T09:58:00-04:00",
|
|
"2024-04-30T09:59:00-04:00",
|
|
"2024-04-30T10:00:00-04:00",
|
|
"2024-04-30T10:01:00-04:00",
|
|
"2024-04-30T10:02:00-04:00",
|
|
"2024-04-30T10:03:00-04:00",
|
|
"2024-04-30T10:04:00-04:00",
|
|
"2024-04-30T10:05:00-04:00",
|
|
"2024-04-30T10:06:00-04:00",
|
|
"2024-04-30T10:07:00-04:00",
|
|
"2024-04-30T10:08:00-04:00",
|
|
"2024-04-30T10:09:00-04:00",
|
|
"2024-04-30T10:10:00-04:00",
|
|
"2024-04-30T10:11:00-04:00",
|
|
"2024-04-30T10:12:00-04:00",
|
|
"2024-04-30T10:13:00-04:00",
|
|
"2024-04-30T10:14:00-04:00",
|
|
"2024-04-30T10:15:00-04:00",
|
|
"2024-04-30T10:16:00-04:00",
|
|
"2024-04-30T10:17:00-04:00",
|
|
"2024-04-30T10:18:00-04:00",
|
|
"2024-04-30T10:19:00-04:00",
|
|
"2024-04-30T10:20:00-04:00",
|
|
"2024-04-30T10:21:00-04:00",
|
|
"2024-04-30T10:22:00-04:00",
|
|
"2024-04-30T10:23:00-04:00",
|
|
"2024-04-30T10:24:00-04:00",
|
|
"2024-04-30T10:25:00-04:00",
|
|
"2024-04-30T10:26:00-04:00",
|
|
"2024-04-30T10:27:00-04:00",
|
|
"2024-04-30T10:28:00-04:00",
|
|
"2024-04-30T10:29:00-04:00",
|
|
"2024-04-30T10:30:00-04:00",
|
|
"2024-04-30T10:31:00-04:00",
|
|
"2024-04-30T10:32:00-04:00",
|
|
"2024-04-30T10:33:00-04:00",
|
|
"2024-04-30T10:34:00-04:00",
|
|
"2024-04-30T10:35:00-04:00",
|
|
"2024-04-30T10:36:00-04:00",
|
|
"2024-04-30T10:37:00-04:00",
|
|
"2024-04-30T10:38:00-04:00",
|
|
"2024-04-30T10:39:00-04:00",
|
|
"2024-04-30T10:40:00-04:00",
|
|
"2024-04-30T10:41:00-04:00",
|
|
"2024-04-30T10:42:00-04:00",
|
|
"2024-04-30T10:43:00-04:00",
|
|
"2024-04-30T10:44:00-04:00",
|
|
"2024-04-30T10:45:00-04:00",
|
|
"2024-04-30T10:46:00-04:00",
|
|
"2024-04-30T10:47:00-04:00",
|
|
"2024-04-30T10:48:00-04:00",
|
|
"2024-04-30T10:49:00-04:00",
|
|
"2024-04-30T10:50:00-04:00",
|
|
"2024-04-30T10:51:00-04:00",
|
|
"2024-04-30T10:52:00-04:00",
|
|
"2024-04-30T10:53:00-04:00",
|
|
"2024-04-30T10:54:00-04:00",
|
|
"2024-04-30T10:55:00-04:00",
|
|
"2024-04-30T10:56:00-04:00",
|
|
"2024-04-30T10:57:00-04:00",
|
|
"2024-04-30T10:58:00-04:00",
|
|
"2024-04-30T10:59:00-04:00",
|
|
"2024-04-30T11:00:00-04:00",
|
|
"2024-04-30T11:01:00-04:00",
|
|
"2024-04-30T11:02:00-04:00",
|
|
"2024-04-30T11:03:00-04:00",
|
|
"2024-04-30T11:04:00-04:00",
|
|
"2024-04-30T11:05:00-04:00",
|
|
"2024-04-30T11:06:00-04:00",
|
|
"2024-04-30T11:07:00-04:00",
|
|
"2024-04-30T11:08:00-04:00",
|
|
"2024-04-30T11:09:00-04:00",
|
|
"2024-04-30T11:10:00-04:00",
|
|
"2024-04-30T11:11:00-04:00",
|
|
"2024-04-30T11:12:00-04:00",
|
|
"2024-04-30T11:13:00-04:00",
|
|
"2024-04-30T11:14:00-04:00",
|
|
"2024-04-30T11:15:00-04:00",
|
|
"2024-04-30T11:16:00-04:00",
|
|
"2024-04-30T11:17:00-04:00",
|
|
"2024-04-30T11:18:00-04:00",
|
|
"2024-04-30T11:19:00-04:00",
|
|
"2024-04-30T11:20:00-04:00",
|
|
"2024-04-30T11:21:00-04:00",
|
|
"2024-04-30T11:22:00-04:00",
|
|
"2024-04-30T11:23:00-04:00",
|
|
"2024-04-30T11:24:00-04:00",
|
|
"2024-04-30T11:25:00-04:00",
|
|
"2024-04-30T11:26:00-04:00",
|
|
"2024-04-30T11:27:00-04:00",
|
|
"2024-04-30T11:28:00-04:00",
|
|
"2024-04-30T11:29:00-04:00",
|
|
"2024-04-30T11:30:00-04:00",
|
|
"2024-04-30T11:31:00-04:00",
|
|
"2024-04-30T11:32:00-04:00",
|
|
"2024-04-30T11:33:00-04:00",
|
|
"2024-04-30T11:34:00-04:00",
|
|
"2024-04-30T11:35:00-04:00",
|
|
"2024-04-30T11:36:00-04:00",
|
|
"2024-04-30T11:37:00-04:00",
|
|
"2024-04-30T11:38:00-04:00",
|
|
"2024-04-30T11:39:00-04:00",
|
|
"2024-04-30T11:40:00-04:00",
|
|
"2024-04-30T11:41:00-04:00",
|
|
"2024-04-30T11:42:00-04:00",
|
|
"2024-04-30T11:43:00-04:00",
|
|
"2024-04-30T11:44:00-04:00",
|
|
"2024-04-30T11:45:00-04:00",
|
|
"2024-04-30T11:46:00-04:00",
|
|
"2024-04-30T11:47:00-04:00",
|
|
"2024-04-30T11:48:00-04:00",
|
|
"2024-04-30T11:49:00-04:00",
|
|
"2024-04-30T11:50:00-04:00",
|
|
"2024-04-30T11:51:00-04:00",
|
|
"2024-04-30T11:52:00-04:00",
|
|
"2024-04-30T11:53:00-04:00",
|
|
"2024-04-30T11:54:00-04:00",
|
|
"2024-04-30T11:55:00-04:00",
|
|
"2024-04-30T11:56:00-04:00",
|
|
"2024-04-30T11:57:00-04:00",
|
|
"2024-04-30T11:58:00-04:00",
|
|
"2024-04-30T11:59:00-04:00",
|
|
"2024-04-30T12:00:00-04:00",
|
|
"2024-04-30T12:01:00-04:00",
|
|
"2024-04-30T12:02:00-04:00",
|
|
"2024-04-30T12:03:00-04:00",
|
|
"2024-04-30T12:04:00-04:00",
|
|
"2024-04-30T12:05:00-04:00",
|
|
"2024-04-30T12:06:00-04:00",
|
|
"2024-04-30T12:07:00-04:00",
|
|
"2024-04-30T12:08:00-04:00",
|
|
"2024-04-30T12:09:00-04:00",
|
|
"2024-04-30T12:10:00-04:00",
|
|
"2024-04-30T12:11:00-04:00",
|
|
"2024-04-30T12:12:00-04:00",
|
|
"2024-04-30T12:13:00-04:00",
|
|
"2024-04-30T12:14:00-04:00",
|
|
"2024-04-30T12:15:00-04:00",
|
|
"2024-04-30T12:16:00-04:00",
|
|
"2024-04-30T12:17:00-04:00",
|
|
"2024-04-30T12:18:00-04:00",
|
|
"2024-04-30T12:19:00-04:00",
|
|
"2024-04-30T12:20:00-04:00",
|
|
"2024-04-30T12:21:00-04:00",
|
|
"2024-04-30T12:22:00-04:00",
|
|
"2024-04-30T12:23:00-04:00",
|
|
"2024-04-30T12:24:00-04:00",
|
|
"2024-04-30T12:25:00-04:00",
|
|
"2024-04-30T12:26:00-04:00",
|
|
"2024-04-30T12:27:00-04:00",
|
|
"2024-04-30T12:28:00-04:00",
|
|
"2024-04-30T12:29:00-04:00",
|
|
"2024-04-30T12:30:00-04:00",
|
|
"2024-04-30T12:31:00-04:00",
|
|
"2024-04-30T12:32:00-04:00",
|
|
"2024-04-30T12:33:00-04:00",
|
|
"2024-04-30T12:34:00-04:00",
|
|
"2024-04-30T12:35:00-04:00",
|
|
"2024-04-30T12:36:00-04:00",
|
|
"2024-04-30T12:37:00-04:00",
|
|
"2024-04-30T12:38:00-04:00",
|
|
"2024-04-30T12:39:00-04:00",
|
|
"2024-04-30T12:40:00-04:00",
|
|
"2024-04-30T12:41:00-04:00",
|
|
"2024-04-30T12:42:00-04:00",
|
|
"2024-04-30T12:43:00-04:00",
|
|
"2024-04-30T12:44:00-04:00",
|
|
"2024-04-30T12:45:00-04:00",
|
|
"2024-04-30T12:46:00-04:00",
|
|
"2024-04-30T12:47:00-04:00",
|
|
"2024-04-30T12:48:00-04:00",
|
|
"2024-04-30T12:49:00-04:00",
|
|
"2024-04-30T12:50:00-04:00",
|
|
"2024-04-30T12:51:00-04:00",
|
|
"2024-04-30T12:52:00-04:00",
|
|
"2024-04-30T12:53:00-04:00",
|
|
"2024-04-30T12:54:00-04:00",
|
|
"2024-04-30T12:55:00-04:00",
|
|
"2024-04-30T12:56:00-04:00",
|
|
"2024-04-30T12:57:00-04:00",
|
|
"2024-04-30T12:58:00-04:00",
|
|
"2024-04-30T12:59:00-04:00",
|
|
"2024-04-30T13:00:00-04:00",
|
|
"2024-04-30T13:01:00-04:00",
|
|
"2024-04-30T13:02:00-04:00",
|
|
"2024-04-30T13:03:00-04:00",
|
|
"2024-04-30T13:04:00-04:00",
|
|
"2024-04-30T13:05:00-04:00",
|
|
"2024-04-30T13:06:00-04:00",
|
|
"2024-04-30T13:07:00-04:00",
|
|
"2024-04-30T13:08:00-04:00",
|
|
"2024-04-30T13:09:00-04:00",
|
|
"2024-04-30T13:10:00-04:00",
|
|
"2024-04-30T13:11:00-04:00",
|
|
"2024-04-30T13:12:00-04:00",
|
|
"2024-04-30T13:13:00-04:00",
|
|
"2024-04-30T13:14:00-04:00",
|
|
"2024-04-30T13:15:00-04:00",
|
|
"2024-04-30T13:16:00-04:00",
|
|
"2024-04-30T13:17:00-04:00",
|
|
"2024-04-30T13:18:00-04:00",
|
|
"2024-04-30T13:19:00-04:00",
|
|
"2024-04-30T13:20:00-04:00",
|
|
"2024-04-30T13:21:00-04:00",
|
|
"2024-04-30T13:22:00-04:00",
|
|
"2024-04-30T13:23:00-04:00",
|
|
"2024-04-30T13:24:00-04:00",
|
|
"2024-04-30T13:25:00-04:00",
|
|
"2024-04-30T13:26:00-04:00",
|
|
"2024-04-30T13:27:00-04:00",
|
|
"2024-04-30T13:28:00-04:00",
|
|
"2024-04-30T13:29:00-04:00",
|
|
"2024-04-30T13:30:00-04:00",
|
|
"2024-04-30T13:31:00-04:00",
|
|
"2024-04-30T13:32:00-04:00",
|
|
"2024-04-30T13:33:00-04:00",
|
|
"2024-04-30T13:34:00-04:00",
|
|
"2024-04-30T13:35:00-04:00",
|
|
"2024-04-30T13:36:00-04:00",
|
|
"2024-04-30T13:37:00-04:00",
|
|
"2024-04-30T13:38:00-04:00",
|
|
"2024-04-30T13:39:00-04:00",
|
|
"2024-04-30T13:40:00-04:00",
|
|
"2024-04-30T13:41:00-04:00",
|
|
"2024-04-30T13:42:00-04:00",
|
|
"2024-04-30T13:43:00-04:00",
|
|
"2024-04-30T13:44:00-04:00",
|
|
"2024-04-30T13:45:00-04:00",
|
|
"2024-04-30T13:46:00-04:00",
|
|
"2024-04-30T13:47:00-04:00",
|
|
"2024-04-30T13:48:00-04:00",
|
|
"2024-04-30T13:49:00-04:00",
|
|
"2024-04-30T13:50:00-04:00",
|
|
"2024-04-30T13:51:00-04:00",
|
|
"2024-04-30T13:52:00-04:00",
|
|
"2024-04-30T13:53:00-04:00",
|
|
"2024-04-30T13:54:00-04:00",
|
|
"2024-04-30T13:55:00-04:00",
|
|
"2024-04-30T13:56:00-04:00",
|
|
"2024-04-30T13:57:00-04:00",
|
|
"2024-04-30T13:58:00-04:00",
|
|
"2024-04-30T13:59:00-04:00",
|
|
"2024-04-30T14:00:00-04:00",
|
|
"2024-04-30T14:01:00-04:00",
|
|
"2024-04-30T14:02:00-04:00",
|
|
"2024-04-30T14:03:00-04:00",
|
|
"2024-04-30T14:04:00-04:00",
|
|
"2024-04-30T14:05:00-04:00",
|
|
"2024-04-30T14:06:00-04:00",
|
|
"2024-04-30T14:07:00-04:00",
|
|
"2024-04-30T14:08:00-04:00",
|
|
"2024-04-30T14:09:00-04:00",
|
|
"2024-04-30T14:10:00-04:00",
|
|
"2024-04-30T14:11:00-04:00",
|
|
"2024-04-30T14:12:00-04:00",
|
|
"2024-04-30T14:13:00-04:00",
|
|
"2024-04-30T14:14:00-04:00",
|
|
"2024-04-30T14:15:00-04:00",
|
|
"2024-04-30T14:16:00-04:00",
|
|
"2024-04-30T14:17:00-04:00",
|
|
"2024-04-30T14:18:00-04:00",
|
|
"2024-04-30T14:19:00-04:00",
|
|
"2024-04-30T14:20:00-04:00",
|
|
"2024-04-30T14:21:00-04:00",
|
|
"2024-04-30T14:22:00-04:00",
|
|
"2024-04-30T14:23:00-04:00",
|
|
"2024-04-30T14:24:00-04:00",
|
|
"2024-04-30T14:25:00-04:00",
|
|
"2024-04-30T14:26:00-04:00",
|
|
"2024-04-30T14:27:00-04:00",
|
|
"2024-04-30T14:28:00-04:00",
|
|
"2024-04-30T14:29:00-04:00",
|
|
"2024-04-30T14:30:00-04:00",
|
|
"2024-04-30T14:31:00-04:00",
|
|
"2024-04-30T14:32:00-04:00",
|
|
"2024-04-30T14:33:00-04:00",
|
|
"2024-04-30T14:34:00-04:00",
|
|
"2024-04-30T14:35:00-04:00",
|
|
"2024-04-30T14:36:00-04:00",
|
|
"2024-04-30T14:37:00-04:00",
|
|
"2024-04-30T14:38:00-04:00",
|
|
"2024-04-30T14:39:00-04:00",
|
|
"2024-04-30T14:40:00-04:00",
|
|
"2024-04-30T14:41:00-04:00",
|
|
"2024-04-30T14:42:00-04:00",
|
|
"2024-04-30T14:43:00-04:00",
|
|
"2024-04-30T14:44:00-04:00",
|
|
"2024-04-30T14:45:00-04:00",
|
|
"2024-04-30T14:46:00-04:00",
|
|
"2024-04-30T14:47:00-04:00",
|
|
"2024-04-30T14:48:00-04:00",
|
|
"2024-04-30T14:49:00-04:00",
|
|
"2024-04-30T14:50:00-04:00",
|
|
"2024-04-30T14:51:00-04:00",
|
|
"2024-04-30T14:52:00-04:00",
|
|
"2024-04-30T14:53:00-04:00",
|
|
"2024-04-30T14:54:00-04:00",
|
|
"2024-04-30T14:55:00-04:00",
|
|
"2024-04-30T14:56:00-04:00",
|
|
"2024-04-30T14:57:00-04:00",
|
|
"2024-04-30T14:58:00-04:00",
|
|
"2024-04-30T14:59:00-04:00",
|
|
"2024-04-30T15:00:00-04:00",
|
|
"2024-04-30T15:01:00-04:00",
|
|
"2024-04-30T15:02:00-04:00",
|
|
"2024-04-30T15:03:00-04:00",
|
|
"2024-04-30T15:04:00-04:00",
|
|
"2024-04-30T15:05:00-04:00",
|
|
"2024-04-30T15:06:00-04:00",
|
|
"2024-04-30T15:07:00-04:00",
|
|
"2024-04-30T15:08:00-04:00",
|
|
"2024-04-30T15:09:00-04:00",
|
|
"2024-04-30T15:10:00-04:00",
|
|
"2024-04-30T15:11:00-04:00",
|
|
"2024-04-30T15:12:00-04:00",
|
|
"2024-04-30T15:13:00-04:00",
|
|
"2024-04-30T15:14:00-04:00",
|
|
"2024-04-30T15:15:00-04:00",
|
|
"2024-04-30T15:16:00-04:00",
|
|
"2024-04-30T15:17:00-04:00",
|
|
"2024-04-30T15:18:00-04:00",
|
|
"2024-04-30T15:19:00-04:00",
|
|
"2024-04-30T15:20:00-04:00",
|
|
"2024-04-30T15:21:00-04:00",
|
|
"2024-04-30T15:22:00-04:00",
|
|
"2024-04-30T15:23:00-04:00",
|
|
"2024-04-30T15:24:00-04:00",
|
|
"2024-04-30T15:25:00-04:00",
|
|
"2024-04-30T15:26:00-04:00",
|
|
"2024-04-30T15:27:00-04:00",
|
|
"2024-04-30T15:28:00-04:00",
|
|
"2024-04-30T15:29:00-04:00",
|
|
"2024-04-30T15:30:00-04:00",
|
|
"2024-04-30T15:31:00-04:00",
|
|
"2024-04-30T15:32:00-04:00",
|
|
"2024-04-30T15:33:00-04:00",
|
|
"2024-04-30T15:34:00-04:00",
|
|
"2024-04-30T15:35:00-04:00",
|
|
"2024-04-30T15:36:00-04:00",
|
|
"2024-04-30T15:37:00-04:00",
|
|
"2024-04-30T15:38:00-04:00",
|
|
"2024-04-30T15:39:00-04:00",
|
|
"2024-04-30T15:40:00-04:00",
|
|
"2024-04-30T15:41:00-04:00",
|
|
"2024-04-30T15:42:00-04:00",
|
|
"2024-04-30T15:43:00-04:00",
|
|
"2024-04-30T15:44:00-04:00",
|
|
"2024-04-30T15:45:00-04:00",
|
|
"2024-04-30T15:46:00-04:00",
|
|
"2024-04-30T15:47:00-04:00",
|
|
"2024-04-30T15:48:00-04:00",
|
|
"2024-04-30T15:49:00-04:00",
|
|
"2024-04-30T15:50:00-04:00",
|
|
"2024-04-30T15:51:00-04:00",
|
|
"2024-04-30T15:52:00-04:00",
|
|
"2024-04-30T15:53:00-04:00",
|
|
"2024-04-30T15:54:00-04:00",
|
|
"2024-04-30T15:55:00-04:00",
|
|
"2024-04-30T15:56:00-04:00",
|
|
"2024-04-30T15:57:00-04:00",
|
|
"2024-04-30T15:58:00-04:00",
|
|
"2024-04-30T15:59:00-04:00",
|
|
"2024-04-30T16:00:00-04:00",
|
|
"2024-05-01T09:30:00-04:00",
|
|
"2024-05-01T09:31:00-04:00",
|
|
"2024-05-01T09:32:00-04:00",
|
|
"2024-05-01T09:33:00-04:00",
|
|
"2024-05-01T09:34:00-04:00",
|
|
"2024-05-01T09:35:00-04:00",
|
|
"2024-05-01T09:36:00-04:00",
|
|
"2024-05-01T09:37:00-04:00",
|
|
"2024-05-01T09:38:00-04:00",
|
|
"2024-05-01T09:39:00-04:00",
|
|
"2024-05-01T09:40:00-04:00",
|
|
"2024-05-01T09:41:00-04:00",
|
|
"2024-05-01T09:42:00-04:00",
|
|
"2024-05-01T09:43:00-04:00",
|
|
"2024-05-01T09:44:00-04:00",
|
|
"2024-05-01T09:45:00-04:00",
|
|
"2024-05-01T09:46:00-04:00",
|
|
"2024-05-01T09:47:00-04:00",
|
|
"2024-05-01T09:48:00-04:00",
|
|
"2024-05-01T09:49:00-04:00",
|
|
"2024-05-01T09:50:00-04:00",
|
|
"2024-05-01T09:51:00-04:00",
|
|
"2024-05-01T09:52:00-04:00",
|
|
"2024-05-01T09:53:00-04:00",
|
|
"2024-05-01T09:54:00-04:00",
|
|
"2024-05-01T09:55:00-04:00",
|
|
"2024-05-01T09:56:00-04:00",
|
|
"2024-05-01T09:57:00-04:00",
|
|
"2024-05-01T09:58:00-04:00",
|
|
"2024-05-01T09:59:00-04:00",
|
|
"2024-05-01T10:00:00-04:00",
|
|
"2024-05-01T10:01:00-04:00",
|
|
"2024-05-01T10:02:00-04:00",
|
|
"2024-05-01T10:03:00-04:00",
|
|
"2024-05-01T10:04:00-04:00",
|
|
"2024-05-01T10:05:00-04:00",
|
|
"2024-05-01T10:06:00-04:00",
|
|
"2024-05-01T10:07:00-04:00",
|
|
"2024-05-01T10:08:00-04:00",
|
|
"2024-05-01T10:09:00-04:00",
|
|
"2024-05-01T10:10:00-04:00",
|
|
"2024-05-01T10:11:00-04:00",
|
|
"2024-05-01T10:12:00-04:00",
|
|
"2024-05-01T10:13:00-04:00",
|
|
"2024-05-01T10:14:00-04:00",
|
|
"2024-05-01T10:15:00-04:00",
|
|
"2024-05-01T10:16:00-04:00",
|
|
"2024-05-01T10:17:00-04:00",
|
|
"2024-05-01T10:18:00-04:00",
|
|
"2024-05-01T10:19:00-04:00",
|
|
"2024-05-01T10:20:00-04:00",
|
|
"2024-05-01T10:21:00-04:00",
|
|
"2024-05-01T10:22:00-04:00",
|
|
"2024-05-01T10:23:00-04:00",
|
|
"2024-05-01T10:24:00-04:00",
|
|
"2024-05-01T10:25:00-04:00",
|
|
"2024-05-01T10:26:00-04:00",
|
|
"2024-05-01T10:27:00-04:00",
|
|
"2024-05-01T10:28:00-04:00",
|
|
"2024-05-01T10:29:00-04:00",
|
|
"2024-05-01T10:30:00-04:00",
|
|
"2024-05-01T10:31:00-04:00",
|
|
"2024-05-01T10:32:00-04:00",
|
|
"2024-05-01T10:33:00-04:00",
|
|
"2024-05-01T10:34:00-04:00",
|
|
"2024-05-01T10:35:00-04:00",
|
|
"2024-05-01T10:36:00-04:00",
|
|
"2024-05-01T10:37:00-04:00",
|
|
"2024-05-01T10:38:00-04:00",
|
|
"2024-05-01T10:39:00-04:00",
|
|
"2024-05-01T10:40:00-04:00",
|
|
"2024-05-01T10:41:00-04:00",
|
|
"2024-05-01T10:42:00-04:00",
|
|
"2024-05-01T10:43:00-04:00",
|
|
"2024-05-01T10:44:00-04:00",
|
|
"2024-05-01T10:45:00-04:00",
|
|
"2024-05-01T10:46:00-04:00",
|
|
"2024-05-01T10:47:00-04:00",
|
|
"2024-05-01T10:48:00-04:00",
|
|
"2024-05-01T10:49:00-04:00",
|
|
"2024-05-01T10:50:00-04:00",
|
|
"2024-05-01T10:51:00-04:00",
|
|
"2024-05-01T10:52:00-04:00",
|
|
"2024-05-01T10:53:00-04:00",
|
|
"2024-05-01T10:54:00-04:00",
|
|
"2024-05-01T10:55:00-04:00",
|
|
"2024-05-01T10:56:00-04:00",
|
|
"2024-05-01T10:57:00-04:00",
|
|
"2024-05-01T10:58:00-04:00",
|
|
"2024-05-01T10:59:00-04:00",
|
|
"2024-05-01T11:00:00-04:00",
|
|
"2024-05-01T11:01:00-04:00",
|
|
"2024-05-01T11:02:00-04:00",
|
|
"2024-05-01T11:03:00-04:00",
|
|
"2024-05-01T11:04:00-04:00",
|
|
"2024-05-01T11:05:00-04:00",
|
|
"2024-05-01T11:06:00-04:00",
|
|
"2024-05-01T11:07:00-04:00",
|
|
"2024-05-01T11:08:00-04:00",
|
|
"2024-05-01T11:09:00-04:00",
|
|
"2024-05-01T11:10:00-04:00",
|
|
"2024-05-01T11:11:00-04:00",
|
|
"2024-05-01T11:12:00-04:00",
|
|
"2024-05-01T11:13:00-04:00",
|
|
"2024-05-01T11:14:00-04:00",
|
|
"2024-05-01T11:15:00-04:00",
|
|
"2024-05-01T11:16:00-04:00",
|
|
"2024-05-01T11:17:00-04:00",
|
|
"2024-05-01T11:18:00-04:00",
|
|
"2024-05-01T11:19:00-04:00",
|
|
"2024-05-01T11:20:00-04:00",
|
|
"2024-05-01T11:21:00-04:00",
|
|
"2024-05-01T11:22:00-04:00",
|
|
"2024-05-01T11:23:00-04:00",
|
|
"2024-05-01T11:24:00-04:00",
|
|
"2024-05-01T11:25:00-04:00",
|
|
"2024-05-01T11:26:00-04:00",
|
|
"2024-05-01T11:27:00-04:00",
|
|
"2024-05-01T11:28:00-04:00",
|
|
"2024-05-01T11:29:00-04:00",
|
|
"2024-05-01T11:30:00-04:00",
|
|
"2024-05-01T11:31:00-04:00",
|
|
"2024-05-01T11:32:00-04:00",
|
|
"2024-05-01T11:33:00-04:00",
|
|
"2024-05-01T11:34:00-04:00",
|
|
"2024-05-01T11:35:00-04:00",
|
|
"2024-05-01T11:36:00-04:00",
|
|
"2024-05-01T11:37:00-04:00",
|
|
"2024-05-01T11:38:00-04:00",
|
|
"2024-05-01T11:39:00-04:00",
|
|
"2024-05-01T11:40:00-04:00",
|
|
"2024-05-01T11:41:00-04:00",
|
|
"2024-05-01T11:42:00-04:00",
|
|
"2024-05-01T11:43:00-04:00",
|
|
"2024-05-01T11:44:00-04:00",
|
|
"2024-05-01T11:45:00-04:00",
|
|
"2024-05-01T11:46:00-04:00",
|
|
"2024-05-01T11:47:00-04:00",
|
|
"2024-05-01T11:48:00-04:00",
|
|
"2024-05-01T11:49:00-04:00",
|
|
"2024-05-01T11:50:00-04:00",
|
|
"2024-05-01T11:51:00-04:00",
|
|
"2024-05-01T11:52:00-04:00",
|
|
"2024-05-01T11:53:00-04:00",
|
|
"2024-05-01T11:54:00-04:00",
|
|
"2024-05-01T11:55:00-04:00",
|
|
"2024-05-01T11:56:00-04:00",
|
|
"2024-05-01T11:57:00-04:00",
|
|
"2024-05-01T11:58:00-04:00",
|
|
"2024-05-01T11:59:00-04:00",
|
|
"2024-05-01T12:00:00-04:00",
|
|
"2024-05-01T12:01:00-04:00",
|
|
"2024-05-01T12:02:00-04:00",
|
|
"2024-05-01T12:03:00-04:00",
|
|
"2024-05-01T12:04:00-04:00",
|
|
"2024-05-01T12:05:00-04:00",
|
|
"2024-05-01T12:06:00-04:00",
|
|
"2024-05-01T12:07:00-04:00",
|
|
"2024-05-01T12:08:00-04:00",
|
|
"2024-05-01T12:09:00-04:00",
|
|
"2024-05-01T12:10:00-04:00",
|
|
"2024-05-01T12:11:00-04:00",
|
|
"2024-05-01T12:12:00-04:00",
|
|
"2024-05-01T12:13:00-04:00",
|
|
"2024-05-01T12:14:00-04:00",
|
|
"2024-05-01T12:15:00-04:00",
|
|
"2024-05-01T12:16:00-04:00",
|
|
"2024-05-01T12:17:00-04:00",
|
|
"2024-05-01T12:18:00-04:00",
|
|
"2024-05-01T12:19:00-04:00",
|
|
"2024-05-01T12:20:00-04:00",
|
|
"2024-05-01T12:21:00-04:00",
|
|
"2024-05-01T12:22:00-04:00",
|
|
"2024-05-01T12:23:00-04:00",
|
|
"2024-05-01T12:24:00-04:00",
|
|
"2024-05-01T12:25:00-04:00",
|
|
"2024-05-01T12:26:00-04:00",
|
|
"2024-05-01T12:27:00-04:00",
|
|
"2024-05-01T12:28:00-04:00",
|
|
"2024-05-01T12:29:00-04:00",
|
|
"2024-05-01T12:30:00-04:00",
|
|
"2024-05-01T12:31:00-04:00",
|
|
"2024-05-01T12:32:00-04:00",
|
|
"2024-05-01T12:33:00-04:00",
|
|
"2024-05-01T12:34:00-04:00",
|
|
"2024-05-01T12:35:00-04:00",
|
|
"2024-05-01T12:36:00-04:00",
|
|
"2024-05-01T12:37:00-04:00",
|
|
"2024-05-01T12:38:00-04:00",
|
|
"2024-05-01T12:39:00-04:00",
|
|
"2024-05-01T12:40:00-04:00",
|
|
"2024-05-01T12:41:00-04:00",
|
|
"2024-05-01T12:42:00-04:00",
|
|
"2024-05-01T12:43:00-04:00",
|
|
"2024-05-01T12:44:00-04:00",
|
|
"2024-05-01T12:45:00-04:00",
|
|
"2024-05-01T12:46:00-04:00",
|
|
"2024-05-01T12:47:00-04:00",
|
|
"2024-05-01T12:48:00-04:00",
|
|
"2024-05-01T12:49:00-04:00",
|
|
"2024-05-01T12:50:00-04:00",
|
|
"2024-05-01T12:51:00-04:00",
|
|
"2024-05-01T12:52:00-04:00",
|
|
"2024-05-01T12:53:00-04:00",
|
|
"2024-05-01T12:54:00-04:00",
|
|
"2024-05-01T12:55:00-04:00",
|
|
"2024-05-01T12:56:00-04:00",
|
|
"2024-05-01T12:57:00-04:00",
|
|
"2024-05-01T12:58:00-04:00",
|
|
"2024-05-01T12:59:00-04:00",
|
|
"2024-05-01T13:00:00-04:00",
|
|
"2024-05-01T13:01:00-04:00",
|
|
"2024-05-01T13:02:00-04:00",
|
|
"2024-05-01T13:03:00-04:00",
|
|
"2024-05-01T13:04:00-04:00",
|
|
"2024-05-01T13:05:00-04:00",
|
|
"2024-05-01T13:06:00-04:00",
|
|
"2024-05-01T13:07:00-04:00",
|
|
"2024-05-01T13:08:00-04:00",
|
|
"2024-05-01T13:09:00-04:00",
|
|
"2024-05-01T13:10:00-04:00",
|
|
"2024-05-01T13:11:00-04:00",
|
|
"2024-05-01T13:12:00-04:00",
|
|
"2024-05-01T13:13:00-04:00",
|
|
"2024-05-01T13:14:00-04:00",
|
|
"2024-05-01T13:15:00-04:00",
|
|
"2024-05-01T13:16:00-04:00",
|
|
"2024-05-01T13:17:00-04:00",
|
|
"2024-05-01T13:18:00-04:00",
|
|
"2024-05-01T13:19:00-04:00",
|
|
"2024-05-01T13:20:00-04:00",
|
|
"2024-05-01T13:21:00-04:00",
|
|
"2024-05-01T13:22:00-04:00",
|
|
"2024-05-01T13:23:00-04:00",
|
|
"2024-05-01T13:24:00-04:00",
|
|
"2024-05-01T13:25:00-04:00",
|
|
"2024-05-01T13:26:00-04:00",
|
|
"2024-05-01T13:27:00-04:00",
|
|
"2024-05-01T13:28:00-04:00",
|
|
"2024-05-01T13:29:00-04:00",
|
|
"2024-05-01T13:30:00-04:00",
|
|
"2024-05-01T13:31:00-04:00",
|
|
"2024-05-01T13:32:00-04:00",
|
|
"2024-05-01T13:33:00-04:00",
|
|
"2024-05-01T13:34:00-04:00",
|
|
"2024-05-01T13:35:00-04:00",
|
|
"2024-05-01T13:36:00-04:00",
|
|
"2024-05-01T13:37:00-04:00",
|
|
"2024-05-01T13:38:00-04:00",
|
|
"2024-05-01T13:39:00-04:00",
|
|
"2024-05-01T13:40:00-04:00",
|
|
"2024-05-01T13:41:00-04:00",
|
|
"2024-05-01T13:42:00-04:00",
|
|
"2024-05-01T13:43:00-04:00",
|
|
"2024-05-01T13:44:00-04:00",
|
|
"2024-05-01T13:45:00-04:00",
|
|
"2024-05-01T13:46:00-04:00",
|
|
"2024-05-01T13:47:00-04:00",
|
|
"2024-05-01T13:48:00-04:00",
|
|
"2024-05-01T13:49:00-04:00",
|
|
"2024-05-01T13:50:00-04:00",
|
|
"2024-05-01T13:51:00-04:00",
|
|
"2024-05-01T13:52:00-04:00",
|
|
"2024-05-01T13:53:00-04:00",
|
|
"2024-05-01T13:54:00-04:00",
|
|
"2024-05-01T13:55:00-04:00",
|
|
"2024-05-01T13:56:00-04:00",
|
|
"2024-05-01T13:57:00-04:00",
|
|
"2024-05-01T13:58:00-04:00",
|
|
"2024-05-01T13:59:00-04:00",
|
|
"2024-05-01T14:00:00-04:00",
|
|
"2024-05-01T14:01:00-04:00",
|
|
"2024-05-01T14:02:00-04:00",
|
|
"2024-05-01T14:03:00-04:00",
|
|
"2024-05-01T14:04:00-04:00",
|
|
"2024-05-01T14:05:00-04:00",
|
|
"2024-05-01T14:06:00-04:00",
|
|
"2024-05-01T14:07:00-04:00",
|
|
"2024-05-01T14:08:00-04:00",
|
|
"2024-05-01T14:09:00-04:00",
|
|
"2024-05-01T14:10:00-04:00",
|
|
"2024-05-01T14:11:00-04:00",
|
|
"2024-05-01T14:12:00-04:00",
|
|
"2024-05-01T14:13:00-04:00",
|
|
"2024-05-01T14:14:00-04:00",
|
|
"2024-05-01T14:15:00-04:00",
|
|
"2024-05-01T14:16:00-04:00",
|
|
"2024-05-01T14:17:00-04:00",
|
|
"2024-05-01T14:18:00-04:00",
|
|
"2024-05-01T14:19:00-04:00",
|
|
"2024-05-01T14:20:00-04:00",
|
|
"2024-05-01T14:21:00-04:00",
|
|
"2024-05-01T14:22:00-04:00",
|
|
"2024-05-01T14:23:00-04:00",
|
|
"2024-05-01T14:24:00-04:00",
|
|
"2024-05-01T14:25:00-04:00",
|
|
"2024-05-01T14:26:00-04:00",
|
|
"2024-05-01T14:27:00-04:00",
|
|
"2024-05-01T14:28:00-04:00",
|
|
"2024-05-01T14:29:00-04:00",
|
|
"2024-05-01T14:30:00-04:00",
|
|
"2024-05-01T14:31:00-04:00",
|
|
"2024-05-01T14:32:00-04:00",
|
|
"2024-05-01T14:33:00-04:00",
|
|
"2024-05-01T14:34:00-04:00",
|
|
"2024-05-01T14:35:00-04:00",
|
|
"2024-05-01T14:36:00-04:00",
|
|
"2024-05-01T14:37:00-04:00",
|
|
"2024-05-01T14:38:00-04:00",
|
|
"2024-05-01T14:39:00-04:00",
|
|
"2024-05-01T14:40:00-04:00",
|
|
"2024-05-01T14:41:00-04:00",
|
|
"2024-05-01T14:42:00-04:00",
|
|
"2024-05-01T14:43:00-04:00",
|
|
"2024-05-01T14:44:00-04:00",
|
|
"2024-05-01T14:45:00-04:00",
|
|
"2024-05-01T14:46:00-04:00",
|
|
"2024-05-01T14:47:00-04:00",
|
|
"2024-05-01T14:48:00-04:00",
|
|
"2024-05-01T14:49:00-04:00",
|
|
"2024-05-01T14:50:00-04:00",
|
|
"2024-05-01T14:51:00-04:00",
|
|
"2024-05-01T14:52:00-04:00",
|
|
"2024-05-01T14:53:00-04:00",
|
|
"2024-05-01T14:54:00-04:00",
|
|
"2024-05-01T14:55:00-04:00",
|
|
"2024-05-01T14:56:00-04:00",
|
|
"2024-05-01T14:57:00-04:00",
|
|
"2024-05-01T14:58:00-04:00",
|
|
"2024-05-01T14:59:00-04:00",
|
|
"2024-05-01T15:00:00-04:00",
|
|
"2024-05-01T15:01:00-04:00",
|
|
"2024-05-01T15:02:00-04:00",
|
|
"2024-05-01T15:03:00-04:00",
|
|
"2024-05-01T15:04:00-04:00",
|
|
"2024-05-01T15:05:00-04:00",
|
|
"2024-05-01T15:06:00-04:00",
|
|
"2024-05-01T15:07:00-04:00",
|
|
"2024-05-01T15:08:00-04:00",
|
|
"2024-05-01T15:09:00-04:00",
|
|
"2024-05-01T15:10:00-04:00",
|
|
"2024-05-01T15:11:00-04:00",
|
|
"2024-05-01T15:12:00-04:00",
|
|
"2024-05-01T15:13:00-04:00",
|
|
"2024-05-01T15:14:00-04:00",
|
|
"2024-05-01T15:15:00-04:00",
|
|
"2024-05-01T15:16:00-04:00",
|
|
"2024-05-01T15:17:00-04:00",
|
|
"2024-05-01T15:18:00-04:00",
|
|
"2024-05-01T15:19:00-04:00",
|
|
"2024-05-01T15:20:00-04:00",
|
|
"2024-05-01T15:21:00-04:00",
|
|
"2024-05-01T15:22:00-04:00",
|
|
"2024-05-01T15:23:00-04:00",
|
|
"2024-05-01T15:24:00-04:00",
|
|
"2024-05-01T15:25:00-04:00",
|
|
"2024-05-01T15:26:00-04:00",
|
|
"2024-05-01T15:27:00-04:00",
|
|
"2024-05-01T15:28:00-04:00",
|
|
"2024-05-01T15:29:00-04:00",
|
|
"2024-05-01T15:30:00-04:00",
|
|
"2024-05-01T15:31:00-04:00",
|
|
"2024-05-01T15:32:00-04:00",
|
|
"2024-05-01T15:33:00-04:00",
|
|
"2024-05-01T15:34:00-04:00",
|
|
"2024-05-01T15:35:00-04:00",
|
|
"2024-05-01T15:36:00-04:00",
|
|
"2024-05-01T15:37:00-04:00",
|
|
"2024-05-01T15:38:00-04:00",
|
|
"2024-05-01T15:39:00-04:00",
|
|
"2024-05-01T15:40:00-04:00",
|
|
"2024-05-01T15:41:00-04:00",
|
|
"2024-05-01T15:42:00-04:00",
|
|
"2024-05-01T15:43:00-04:00",
|
|
"2024-05-01T15:44:00-04:00",
|
|
"2024-05-01T15:45:00-04:00",
|
|
"2024-05-01T15:46:00-04:00",
|
|
"2024-05-01T15:47:00-04:00",
|
|
"2024-05-01T15:48:00-04:00",
|
|
"2024-05-01T15:49:00-04:00",
|
|
"2024-05-01T15:50:00-04:00",
|
|
"2024-05-01T15:51:00-04:00",
|
|
"2024-05-01T15:52:00-04:00",
|
|
"2024-05-01T15:53:00-04:00",
|
|
"2024-05-01T15:54:00-04:00",
|
|
"2024-05-01T15:55:00-04:00",
|
|
"2024-05-01T15:56:00-04:00",
|
|
"2024-05-01T15:57:00-04:00",
|
|
"2024-05-01T15:58:00-04:00",
|
|
"2024-05-01T15:59:00-04:00",
|
|
"2024-05-01T16:00:00-04:00",
|
|
"2024-05-02T09:30:00-04:00",
|
|
"2024-05-02T09:31:00-04:00",
|
|
"2024-05-02T09:32:00-04:00",
|
|
"2024-05-02T09:33:00-04:00",
|
|
"2024-05-02T09:34:00-04:00",
|
|
"2024-05-02T09:35:00-04:00",
|
|
"2024-05-02T09:36:00-04:00",
|
|
"2024-05-02T09:37:00-04:00",
|
|
"2024-05-02T09:38:00-04:00",
|
|
"2024-05-02T09:39:00-04:00",
|
|
"2024-05-02T09:40:00-04:00",
|
|
"2024-05-02T09:41:00-04:00",
|
|
"2024-05-02T09:42:00-04:00",
|
|
"2024-05-02T09:43:00-04:00",
|
|
"2024-05-02T09:44:00-04:00",
|
|
"2024-05-02T09:45:00-04:00",
|
|
"2024-05-02T09:46:00-04:00",
|
|
"2024-05-02T09:47:00-04:00",
|
|
"2024-05-02T09:48:00-04:00",
|
|
"2024-05-02T09:49:00-04:00",
|
|
"2024-05-02T09:50:00-04:00",
|
|
"2024-05-02T09:51:00-04:00",
|
|
"2024-05-02T09:52:00-04:00",
|
|
"2024-05-02T09:53:00-04:00",
|
|
"2024-05-02T09:54:00-04:00",
|
|
"2024-05-02T09:55:00-04:00",
|
|
"2024-05-02T09:56:00-04:00",
|
|
"2024-05-02T09:57:00-04:00",
|
|
"2024-05-02T09:58:00-04:00",
|
|
"2024-05-02T09:59:00-04:00",
|
|
"2024-05-02T10:00:00-04:00",
|
|
"2024-05-02T10:01:00-04:00",
|
|
"2024-05-02T10:02:00-04:00",
|
|
"2024-05-02T10:03:00-04:00",
|
|
"2024-05-02T10:04:00-04:00",
|
|
"2024-05-02T10:05:00-04:00",
|
|
"2024-05-02T10:06:00-04:00",
|
|
"2024-05-02T10:07:00-04:00",
|
|
"2024-05-02T10:08:00-04:00",
|
|
"2024-05-02T10:09:00-04:00",
|
|
"2024-05-02T10:10:00-04:00",
|
|
"2024-05-02T10:11:00-04:00",
|
|
"2024-05-02T10:12:00-04:00",
|
|
"2024-05-02T10:13:00-04:00",
|
|
"2024-05-02T10:14:00-04:00",
|
|
"2024-05-02T10:15:00-04:00",
|
|
"2024-05-02T10:16:00-04:00",
|
|
"2024-05-02T10:17:00-04:00",
|
|
"2024-05-02T10:18:00-04:00",
|
|
"2024-05-02T10:19:00-04:00",
|
|
"2024-05-02T10:20:00-04:00",
|
|
"2024-05-02T10:21:00-04:00",
|
|
"2024-05-02T10:22:00-04:00",
|
|
"2024-05-02T10:23:00-04:00",
|
|
"2024-05-02T10:24:00-04:00",
|
|
"2024-05-02T10:25:00-04:00",
|
|
"2024-05-02T10:26:00-04:00",
|
|
"2024-05-02T10:27:00-04:00",
|
|
"2024-05-02T10:28:00-04:00",
|
|
"2024-05-02T10:29:00-04:00",
|
|
"2024-05-02T10:30:00-04:00",
|
|
"2024-05-02T10:31:00-04:00",
|
|
"2024-05-02T10:32:00-04:00",
|
|
"2024-05-02T10:33:00-04:00",
|
|
"2024-05-02T10:34:00-04:00",
|
|
"2024-05-02T10:35:00-04:00",
|
|
"2024-05-02T10:36:00-04:00",
|
|
"2024-05-02T10:37:00-04:00",
|
|
"2024-05-02T10:38:00-04:00",
|
|
"2024-05-02T10:39:00-04:00",
|
|
"2024-05-02T10:40:00-04:00",
|
|
"2024-05-02T10:41:00-04:00",
|
|
"2024-05-02T10:42:00-04:00",
|
|
"2024-05-02T10:43:00-04:00",
|
|
"2024-05-02T10:44:00-04:00",
|
|
"2024-05-02T10:45:00-04:00",
|
|
"2024-05-02T10:46:00-04:00",
|
|
"2024-05-02T10:47:00-04:00",
|
|
"2024-05-02T10:48:00-04:00",
|
|
"2024-05-02T10:49:00-04:00",
|
|
"2024-05-02T10:50:00-04:00",
|
|
"2024-05-02T10:51:00-04:00",
|
|
"2024-05-02T10:52:00-04:00",
|
|
"2024-05-02T10:53:00-04:00",
|
|
"2024-05-02T10:54:00-04:00",
|
|
"2024-05-02T10:55:00-04:00",
|
|
"2024-05-02T10:56:00-04:00",
|
|
"2024-05-02T10:57:00-04:00",
|
|
"2024-05-02T10:58:00-04:00",
|
|
"2024-05-02T10:59:00-04:00",
|
|
"2024-05-02T11:00:00-04:00",
|
|
"2024-05-02T11:01:00-04:00",
|
|
"2024-05-02T11:02:00-04:00",
|
|
"2024-05-02T11:03:00-04:00",
|
|
"2024-05-02T11:04:00-04:00",
|
|
"2024-05-02T11:05:00-04:00",
|
|
"2024-05-02T11:06:00-04:00",
|
|
"2024-05-02T11:07:00-04:00",
|
|
"2024-05-02T11:08:00-04:00",
|
|
"2024-05-02T11:09:00-04:00",
|
|
"2024-05-02T11:10:00-04:00",
|
|
"2024-05-02T11:11:00-04:00",
|
|
"2024-05-02T11:12:00-04:00",
|
|
"2024-05-02T11:13:00-04:00",
|
|
"2024-05-02T11:14:00-04:00",
|
|
"2024-05-02T11:15:00-04:00",
|
|
"2024-05-02T11:16:00-04:00",
|
|
"2024-05-02T11:17:00-04:00",
|
|
"2024-05-02T11:18:00-04:00",
|
|
"2024-05-02T11:19:00-04:00",
|
|
"2024-05-02T11:20:00-04:00",
|
|
"2024-05-02T11:21:00-04:00",
|
|
"2024-05-02T11:22:00-04:00",
|
|
"2024-05-02T11:23:00-04:00",
|
|
"2024-05-02T11:24:00-04:00",
|
|
"2024-05-02T11:25:00-04:00",
|
|
"2024-05-02T11:26:00-04:00",
|
|
"2024-05-02T11:27:00-04:00",
|
|
"2024-05-02T11:28:00-04:00",
|
|
"2024-05-02T11:29:00-04:00",
|
|
"2024-05-02T11:30:00-04:00",
|
|
"2024-05-02T11:31:00-04:00",
|
|
"2024-05-02T11:32:00-04:00",
|
|
"2024-05-02T11:33:00-04:00",
|
|
"2024-05-02T11:34:00-04:00",
|
|
"2024-05-02T11:35:00-04:00",
|
|
"2024-05-02T11:36:00-04:00",
|
|
"2024-05-02T11:37:00-04:00",
|
|
"2024-05-02T11:38:00-04:00",
|
|
"2024-05-02T11:39:00-04:00",
|
|
"2024-05-02T11:40:00-04:00",
|
|
"2024-05-02T11:41:00-04:00",
|
|
"2024-05-02T11:42:00-04:00",
|
|
"2024-05-02T11:43:00-04:00",
|
|
"2024-05-02T11:44:00-04:00",
|
|
"2024-05-02T11:45:00-04:00",
|
|
"2024-05-02T11:46:00-04:00",
|
|
"2024-05-02T11:47:00-04:00",
|
|
"2024-05-02T11:48:00-04:00",
|
|
"2024-05-02T11:49:00-04:00",
|
|
"2024-05-02T11:50:00-04:00",
|
|
"2024-05-02T11:51:00-04:00",
|
|
"2024-05-02T11:52:00-04:00",
|
|
"2024-05-02T11:53:00-04:00",
|
|
"2024-05-02T11:54:00-04:00",
|
|
"2024-05-02T11:55:00-04:00",
|
|
"2024-05-02T11:56:00-04:00",
|
|
"2024-05-02T11:57:00-04:00",
|
|
"2024-05-02T11:58:00-04:00",
|
|
"2024-05-02T11:59:00-04:00",
|
|
"2024-05-02T12:00:00-04:00",
|
|
"2024-05-02T12:01:00-04:00",
|
|
"2024-05-02T12:02:00-04:00",
|
|
"2024-05-02T12:03:00-04:00",
|
|
"2024-05-02T12:04:00-04:00",
|
|
"2024-05-02T12:05:00-04:00",
|
|
"2024-05-02T12:06:00-04:00",
|
|
"2024-05-02T12:07:00-04:00",
|
|
"2024-05-02T12:08:00-04:00",
|
|
"2024-05-02T12:09:00-04:00",
|
|
"2024-05-02T12:10:00-04:00",
|
|
"2024-05-02T12:11:00-04:00",
|
|
"2024-05-02T12:12:00-04:00",
|
|
"2024-05-02T12:13:00-04:00",
|
|
"2024-05-02T12:14:00-04:00",
|
|
"2024-05-02T12:15:00-04:00",
|
|
"2024-05-02T12:16:00-04:00",
|
|
"2024-05-02T12:17:00-04:00",
|
|
"2024-05-02T12:18:00-04:00",
|
|
"2024-05-02T12:19:00-04:00",
|
|
"2024-05-02T12:20:00-04:00",
|
|
"2024-05-02T12:21:00-04:00",
|
|
"2024-05-02T12:22:00-04:00",
|
|
"2024-05-02T12:23:00-04:00",
|
|
"2024-05-02T12:24:00-04:00",
|
|
"2024-05-02T12:25:00-04:00",
|
|
"2024-05-02T12:26:00-04:00",
|
|
"2024-05-02T12:27:00-04:00",
|
|
"2024-05-02T12:28:00-04:00",
|
|
"2024-05-02T12:29:00-04:00",
|
|
"2024-05-02T12:30:00-04:00",
|
|
"2024-05-02T12:31:00-04:00",
|
|
"2024-05-02T12:32:00-04:00",
|
|
"2024-05-02T12:33:00-04:00",
|
|
"2024-05-02T12:34:00-04:00",
|
|
"2024-05-02T12:35:00-04:00",
|
|
"2024-05-02T12:36:00-04:00",
|
|
"2024-05-02T12:37:00-04:00",
|
|
"2024-05-02T12:38:00-04:00",
|
|
"2024-05-02T12:39:00-04:00",
|
|
"2024-05-02T12:40:00-04:00",
|
|
"2024-05-02T12:41:00-04:00",
|
|
"2024-05-02T12:42:00-04:00",
|
|
"2024-05-02T12:43:00-04:00",
|
|
"2024-05-02T12:44:00-04:00",
|
|
"2024-05-02T12:45:00-04:00",
|
|
"2024-05-02T12:46:00-04:00",
|
|
"2024-05-02T12:47:00-04:00",
|
|
"2024-05-02T12:48:00-04:00",
|
|
"2024-05-02T12:49:00-04:00",
|
|
"2024-05-02T12:50:00-04:00",
|
|
"2024-05-02T12:51:00-04:00",
|
|
"2024-05-02T12:52:00-04:00",
|
|
"2024-05-02T12:53:00-04:00",
|
|
"2024-05-02T12:54:00-04:00",
|
|
"2024-05-02T12:55:00-04:00",
|
|
"2024-05-02T12:56:00-04:00",
|
|
"2024-05-02T12:57:00-04:00",
|
|
"2024-05-02T12:58:00-04:00",
|
|
"2024-05-02T12:59:00-04:00",
|
|
"2024-05-02T13:00:00-04:00",
|
|
"2024-05-02T13:01:00-04:00",
|
|
"2024-05-02T13:02:00-04:00",
|
|
"2024-05-02T13:03:00-04:00",
|
|
"2024-05-02T13:04:00-04:00",
|
|
"2024-05-02T13:05:00-04:00",
|
|
"2024-05-02T13:06:00-04:00",
|
|
"2024-05-02T13:07:00-04:00",
|
|
"2024-05-02T13:08:00-04:00",
|
|
"2024-05-02T13:09:00-04:00",
|
|
"2024-05-02T13:10:00-04:00",
|
|
"2024-05-02T13:11:00-04:00",
|
|
"2024-05-02T13:12:00-04:00",
|
|
"2024-05-02T13:13:00-04:00",
|
|
"2024-05-02T13:14:00-04:00",
|
|
"2024-05-02T13:15:00-04:00",
|
|
"2024-05-02T13:16:00-04:00",
|
|
"2024-05-02T13:17:00-04:00",
|
|
"2024-05-02T13:18:00-04:00",
|
|
"2024-05-02T13:19:00-04:00",
|
|
"2024-05-02T13:20:00-04:00",
|
|
"2024-05-02T13:21:00-04:00",
|
|
"2024-05-02T13:22:00-04:00",
|
|
"2024-05-02T13:23:00-04:00",
|
|
"2024-05-02T13:24:00-04:00",
|
|
"2024-05-02T13:25:00-04:00",
|
|
"2024-05-02T13:26:00-04:00",
|
|
"2024-05-02T13:27:00-04:00",
|
|
"2024-05-02T13:28:00-04:00",
|
|
"2024-05-02T13:29:00-04:00",
|
|
"2024-05-02T13:30:00-04:00",
|
|
"2024-05-02T13:31:00-04:00",
|
|
"2024-05-02T13:32:00-04:00",
|
|
"2024-05-02T13:33:00-04:00",
|
|
"2024-05-02T13:34:00-04:00",
|
|
"2024-05-02T13:35:00-04:00",
|
|
"2024-05-02T13:36:00-04:00",
|
|
"2024-05-02T13:37:00-04:00",
|
|
"2024-05-02T13:38:00-04:00",
|
|
"2024-05-02T13:39:00-04:00",
|
|
"2024-05-02T13:40:00-04:00",
|
|
"2024-05-02T13:41:00-04:00",
|
|
"2024-05-02T13:42:00-04:00",
|
|
"2024-05-02T13:43:00-04:00",
|
|
"2024-05-02T13:44:00-04:00",
|
|
"2024-05-02T13:45:00-04:00",
|
|
"2024-05-02T13:46:00-04:00",
|
|
"2024-05-02T13:47:00-04:00",
|
|
"2024-05-02T13:48:00-04:00",
|
|
"2024-05-02T13:49:00-04:00",
|
|
"2024-05-02T13:50:00-04:00",
|
|
"2024-05-02T13:51:00-04:00",
|
|
"2024-05-02T13:52:00-04:00",
|
|
"2024-05-02T13:53:00-04:00",
|
|
"2024-05-02T13:54:00-04:00",
|
|
"2024-05-02T13:55:00-04:00",
|
|
"2024-05-02T13:56:00-04:00",
|
|
"2024-05-02T13:57:00-04:00",
|
|
"2024-05-02T13:58:00-04:00",
|
|
"2024-05-02T13:59:00-04:00",
|
|
"2024-05-02T14:00:00-04:00",
|
|
"2024-05-02T14:01:00-04:00",
|
|
"2024-05-02T14:02:00-04:00",
|
|
"2024-05-02T14:03:00-04:00",
|
|
"2024-05-02T14:04:00-04:00",
|
|
"2024-05-02T14:05:00-04:00",
|
|
"2024-05-02T14:06:00-04:00",
|
|
"2024-05-02T14:07:00-04:00",
|
|
"2024-05-02T14:08:00-04:00",
|
|
"2024-05-02T14:09:00-04:00",
|
|
"2024-05-02T14:10:00-04:00",
|
|
"2024-05-02T14:11:00-04:00",
|
|
"2024-05-02T14:12:00-04:00",
|
|
"2024-05-02T14:13:00-04:00",
|
|
"2024-05-02T14:14:00-04:00",
|
|
"2024-05-02T14:15:00-04:00",
|
|
"2024-05-02T14:16:00-04:00",
|
|
"2024-05-02T14:17:00-04:00",
|
|
"2024-05-02T14:18:00-04:00",
|
|
"2024-05-02T14:19:00-04:00",
|
|
"2024-05-02T14:20:00-04:00",
|
|
"2024-05-02T14:21:00-04:00",
|
|
"2024-05-02T14:22:00-04:00",
|
|
"2024-05-02T14:23:00-04:00",
|
|
"2024-05-02T14:24:00-04:00",
|
|
"2024-05-02T14:25:00-04:00",
|
|
"2024-05-02T14:26:00-04:00",
|
|
"2024-05-02T14:27:00-04:00",
|
|
"2024-05-02T14:28:00-04:00",
|
|
"2024-05-02T14:29:00-04:00",
|
|
"2024-05-02T14:30:00-04:00",
|
|
"2024-05-02T14:31:00-04:00",
|
|
"2024-05-02T14:32:00-04:00",
|
|
"2024-05-02T14:33:00-04:00",
|
|
"2024-05-02T14:34:00-04:00",
|
|
"2024-05-02T14:35:00-04:00",
|
|
"2024-05-02T14:36:00-04:00",
|
|
"2024-05-02T14:37:00-04:00",
|
|
"2024-05-02T14:38:00-04:00",
|
|
"2024-05-02T14:39:00-04:00",
|
|
"2024-05-02T14:40:00-04:00",
|
|
"2024-05-02T14:41:00-04:00",
|
|
"2024-05-02T14:42:00-04:00",
|
|
"2024-05-02T14:43:00-04:00",
|
|
"2024-05-02T14:44:00-04:00",
|
|
"2024-05-02T14:45:00-04:00",
|
|
"2024-05-02T14:46:00-04:00",
|
|
"2024-05-02T14:47:00-04:00",
|
|
"2024-05-02T14:48:00-04:00",
|
|
"2024-05-02T14:49:00-04:00",
|
|
"2024-05-02T14:50:00-04:00",
|
|
"2024-05-02T14:51:00-04:00",
|
|
"2024-05-02T14:52:00-04:00",
|
|
"2024-05-02T14:53:00-04:00",
|
|
"2024-05-02T14:54:00-04:00",
|
|
"2024-05-02T14:55:00-04:00",
|
|
"2024-05-02T14:56:00-04:00",
|
|
"2024-05-02T14:57:00-04:00",
|
|
"2024-05-02T14:58:00-04:00",
|
|
"2024-05-02T14:59:00-04:00",
|
|
"2024-05-02T15:00:00-04:00",
|
|
"2024-05-02T15:01:00-04:00",
|
|
"2024-05-02T15:02:00-04:00",
|
|
"2024-05-02T15:03:00-04:00",
|
|
"2024-05-02T15:04:00-04:00",
|
|
"2024-05-02T15:05:00-04:00",
|
|
"2024-05-02T15:06:00-04:00",
|
|
"2024-05-02T15:07:00-04:00",
|
|
"2024-05-02T15:08:00-04:00",
|
|
"2024-05-02T15:09:00-04:00",
|
|
"2024-05-02T15:10:00-04:00",
|
|
"2024-05-02T15:11:00-04:00",
|
|
"2024-05-02T15:12:00-04:00",
|
|
"2024-05-02T15:13:00-04:00",
|
|
"2024-05-02T15:14:00-04:00",
|
|
"2024-05-02T15:15:00-04:00",
|
|
"2024-05-02T15:16:00-04:00",
|
|
"2024-05-02T15:17:00-04:00",
|
|
"2024-05-02T15:18:00-04:00",
|
|
"2024-05-02T15:19:00-04:00",
|
|
"2024-05-02T15:20:00-04:00",
|
|
"2024-05-02T15:21:00-04:00",
|
|
"2024-05-02T15:22:00-04:00",
|
|
"2024-05-02T15:23:00-04:00",
|
|
"2024-05-02T15:24:00-04:00",
|
|
"2024-05-02T15:25:00-04:00",
|
|
"2024-05-02T15:26:00-04:00",
|
|
"2024-05-02T15:27:00-04:00",
|
|
"2024-05-02T15:28:00-04:00",
|
|
"2024-05-02T15:29:00-04:00",
|
|
"2024-05-02T15:30:00-04:00",
|
|
"2024-05-02T15:31:00-04:00",
|
|
"2024-05-02T15:32:00-04:00",
|
|
"2024-05-02T15:33:00-04:00",
|
|
"2024-05-02T15:34:00-04:00",
|
|
"2024-05-02T15:35:00-04:00",
|
|
"2024-05-02T15:36:00-04:00",
|
|
"2024-05-02T15:37:00-04:00",
|
|
"2024-05-02T15:38:00-04:00",
|
|
"2024-05-02T15:39:00-04:00",
|
|
"2024-05-02T15:40:00-04:00",
|
|
"2024-05-02T15:41:00-04:00",
|
|
"2024-05-02T15:42:00-04:00",
|
|
"2024-05-02T15:43:00-04:00",
|
|
"2024-05-02T15:44:00-04:00",
|
|
"2024-05-02T15:45:00-04:00",
|
|
"2024-05-02T15:46:00-04:00",
|
|
"2024-05-02T15:47:00-04:00",
|
|
"2024-05-02T15:48:00-04:00",
|
|
"2024-05-02T15:49:00-04:00",
|
|
"2024-05-02T15:50:00-04:00",
|
|
"2024-05-02T15:51:00-04:00",
|
|
"2024-05-02T15:52:00-04:00",
|
|
"2024-05-02T15:53:00-04:00",
|
|
"2024-05-02T15:54:00-04:00",
|
|
"2024-05-02T15:55:00-04:00",
|
|
"2024-05-02T15:56:00-04:00",
|
|
"2024-05-02T15:57:00-04:00",
|
|
"2024-05-02T15:58:00-04:00",
|
|
"2024-05-02T15:59:00-04:00",
|
|
"2024-05-02T16:00:00-04:00",
|
|
"2024-05-03T09:30:00-04:00",
|
|
"2024-05-03T09:31:00-04:00",
|
|
"2024-05-03T09:32:00-04:00",
|
|
"2024-05-03T09:33:00-04:00",
|
|
"2024-05-03T09:34:00-04:00",
|
|
"2024-05-03T09:35:00-04:00",
|
|
"2024-05-03T09:36:00-04:00",
|
|
"2024-05-03T09:37:00-04:00",
|
|
"2024-05-03T09:38:00-04:00",
|
|
"2024-05-03T09:39:00-04:00",
|
|
"2024-05-03T09:40:00-04:00",
|
|
"2024-05-03T09:41:00-04:00",
|
|
"2024-05-03T09:42:00-04:00",
|
|
"2024-05-03T09:43:00-04:00",
|
|
"2024-05-03T09:44:00-04:00",
|
|
"2024-05-03T09:45:00-04:00",
|
|
"2024-05-03T09:46:00-04:00",
|
|
"2024-05-03T09:47:00-04:00",
|
|
"2024-05-03T09:48:00-04:00",
|
|
"2024-05-03T09:49:00-04:00",
|
|
"2024-05-03T09:50:00-04:00",
|
|
"2024-05-03T09:51:00-04:00",
|
|
"2024-05-03T09:52:00-04:00",
|
|
"2024-05-03T09:53:00-04:00",
|
|
"2024-05-03T09:54:00-04:00",
|
|
"2024-05-03T09:55:00-04:00",
|
|
"2024-05-03T09:56:00-04:00",
|
|
"2024-05-03T09:57:00-04:00",
|
|
"2024-05-03T09:58:00-04:00",
|
|
"2024-05-03T09:59:00-04:00",
|
|
"2024-05-03T10:00:00-04:00",
|
|
"2024-05-03T10:01:00-04:00",
|
|
"2024-05-03T10:02:00-04:00",
|
|
"2024-05-03T10:03:00-04:00",
|
|
"2024-05-03T10:04:00-04:00",
|
|
"2024-05-03T10:05:00-04:00",
|
|
"2024-05-03T10:06:00-04:00",
|
|
"2024-05-03T10:07:00-04:00",
|
|
"2024-05-03T10:08:00-04:00",
|
|
"2024-05-03T10:09:00-04:00",
|
|
"2024-05-03T10:10:00-04:00",
|
|
"2024-05-03T10:11:00-04:00",
|
|
"2024-05-03T10:12:00-04:00",
|
|
"2024-05-03T10:13:00-04:00",
|
|
"2024-05-03T10:14:00-04:00",
|
|
"2024-05-03T10:15:00-04:00",
|
|
"2024-05-03T10:16:00-04:00",
|
|
"2024-05-03T10:17:00-04:00",
|
|
"2024-05-03T10:18:00-04:00",
|
|
"2024-05-03T10:19:00-04:00",
|
|
"2024-05-03T10:20:00-04:00",
|
|
"2024-05-03T10:21:00-04:00",
|
|
"2024-05-03T10:22:00-04:00",
|
|
"2024-05-03T10:23:00-04:00",
|
|
"2024-05-03T10:24:00-04:00",
|
|
"2024-05-03T10:25:00-04:00",
|
|
"2024-05-03T10:26:00-04:00",
|
|
"2024-05-03T10:27:00-04:00",
|
|
"2024-05-03T10:28:00-04:00",
|
|
"2024-05-03T10:29:00-04:00",
|
|
"2024-05-03T10:30:00-04:00",
|
|
"2024-05-03T10:31:00-04:00",
|
|
"2024-05-03T10:32:00-04:00",
|
|
"2024-05-03T10:33:00-04:00",
|
|
"2024-05-03T10:34:00-04:00",
|
|
"2024-05-03T10:35:00-04:00",
|
|
"2024-05-03T10:36:00-04:00",
|
|
"2024-05-03T10:37:00-04:00",
|
|
"2024-05-03T10:38:00-04:00",
|
|
"2024-05-03T10:39:00-04:00",
|
|
"2024-05-03T10:40:00-04:00",
|
|
"2024-05-03T10:41:00-04:00",
|
|
"2024-05-03T10:42:00-04:00",
|
|
"2024-05-03T10:43:00-04:00",
|
|
"2024-05-03T10:44:00-04:00",
|
|
"2024-05-03T10:45:00-04:00",
|
|
"2024-05-03T10:46:00-04:00",
|
|
"2024-05-03T10:47:00-04:00",
|
|
"2024-05-03T10:48:00-04:00",
|
|
"2024-05-03T10:49:00-04:00",
|
|
"2024-05-03T10:50:00-04:00",
|
|
"2024-05-03T10:51:00-04:00",
|
|
"2024-05-03T10:52:00-04:00",
|
|
"2024-05-03T10:53:00-04:00",
|
|
"2024-05-03T10:54:00-04:00",
|
|
"2024-05-03T10:55:00-04:00",
|
|
"2024-05-03T10:56:00-04:00",
|
|
"2024-05-03T10:57:00-04:00",
|
|
"2024-05-03T10:58:00-04:00",
|
|
"2024-05-03T10:59:00-04:00",
|
|
"2024-05-03T11:00:00-04:00",
|
|
"2024-05-03T11:01:00-04:00",
|
|
"2024-05-03T11:02:00-04:00",
|
|
"2024-05-03T11:03:00-04:00",
|
|
"2024-05-03T11:04:00-04:00",
|
|
"2024-05-03T11:05:00-04:00",
|
|
"2024-05-03T11:06:00-04:00",
|
|
"2024-05-03T11:07:00-04:00",
|
|
"2024-05-03T11:08:00-04:00",
|
|
"2024-05-03T11:09:00-04:00",
|
|
"2024-05-03T11:10:00-04:00",
|
|
"2024-05-03T11:11:00-04:00",
|
|
"2024-05-03T11:12:00-04:00",
|
|
"2024-05-03T11:13:00-04:00",
|
|
"2024-05-03T11:14:00-04:00",
|
|
"2024-05-03T11:15:00-04:00",
|
|
"2024-05-03T11:16:00-04:00",
|
|
"2024-05-03T11:17:00-04:00",
|
|
"2024-05-03T11:18:00-04:00",
|
|
"2024-05-03T11:19:00-04:00",
|
|
"2024-05-03T11:20:00-04:00",
|
|
"2024-05-03T11:21:00-04:00",
|
|
"2024-05-03T11:22:00-04:00",
|
|
"2024-05-03T11:23:00-04:00",
|
|
"2024-05-03T11:24:00-04:00",
|
|
"2024-05-03T11:25:00-04:00",
|
|
"2024-05-03T11:26:00-04:00",
|
|
"2024-05-03T11:27:00-04:00",
|
|
"2024-05-03T11:28:00-04:00",
|
|
"2024-05-03T11:29:00-04:00",
|
|
"2024-05-03T11:30:00-04:00",
|
|
"2024-05-03T11:31:00-04:00",
|
|
"2024-05-03T11:32:00-04:00",
|
|
"2024-05-03T11:33:00-04:00",
|
|
"2024-05-03T11:34:00-04:00",
|
|
"2024-05-03T11:35:00-04:00",
|
|
"2024-05-03T11:36:00-04:00",
|
|
"2024-05-03T11:37:00-04:00",
|
|
"2024-05-03T11:38:00-04:00",
|
|
"2024-05-03T11:39:00-04:00",
|
|
"2024-05-03T11:40:00-04:00",
|
|
"2024-05-03T11:41:00-04:00",
|
|
"2024-05-03T11:42:00-04:00",
|
|
"2024-05-03T11:43:00-04:00",
|
|
"2024-05-03T11:44:00-04:00",
|
|
"2024-05-03T11:45:00-04:00",
|
|
"2024-05-03T11:46:00-04:00",
|
|
"2024-05-03T11:47:00-04:00",
|
|
"2024-05-03T11:48:00-04:00",
|
|
"2024-05-03T11:49:00-04:00",
|
|
"2024-05-03T11:50:00-04:00",
|
|
"2024-05-03T11:51:00-04:00",
|
|
"2024-05-03T11:52:00-04:00",
|
|
"2024-05-03T11:53:00-04:00",
|
|
"2024-05-03T11:54:00-04:00",
|
|
"2024-05-03T11:55:00-04:00",
|
|
"2024-05-03T11:56:00-04:00",
|
|
"2024-05-03T11:57:00-04:00",
|
|
"2024-05-03T11:58:00-04:00",
|
|
"2024-05-03T11:59:00-04:00",
|
|
"2024-05-03T12:00:00-04:00",
|
|
"2024-05-03T12:01:00-04:00",
|
|
"2024-05-03T12:02:00-04:00",
|
|
"2024-05-03T12:03:00-04:00",
|
|
"2024-05-03T12:04:00-04:00",
|
|
"2024-05-03T12:05:00-04:00",
|
|
"2024-05-03T12:06:00-04:00",
|
|
"2024-05-03T12:07:00-04:00",
|
|
"2024-05-03T12:08:00-04:00",
|
|
"2024-05-03T12:09:00-04:00",
|
|
"2024-05-03T12:10:00-04:00",
|
|
"2024-05-03T12:11:00-04:00",
|
|
"2024-05-03T12:12:00-04:00",
|
|
"2024-05-03T12:13:00-04:00",
|
|
"2024-05-03T12:14:00-04:00",
|
|
"2024-05-03T12:15:00-04:00",
|
|
"2024-05-03T12:16:00-04:00",
|
|
"2024-05-03T12:17:00-04:00",
|
|
"2024-05-03T12:18:00-04:00",
|
|
"2024-05-03T12:19:00-04:00",
|
|
"2024-05-03T12:20:00-04:00",
|
|
"2024-05-03T12:21:00-04:00",
|
|
"2024-05-03T12:22:00-04:00",
|
|
"2024-05-03T12:23:00-04:00",
|
|
"2024-05-03T12:24:00-04:00",
|
|
"2024-05-03T12:25:00-04:00",
|
|
"2024-05-03T12:26:00-04:00",
|
|
"2024-05-03T12:27:00-04:00",
|
|
"2024-05-03T12:28:00-04:00",
|
|
"2024-05-03T12:29:00-04:00",
|
|
"2024-05-03T12:30:00-04:00",
|
|
"2024-05-03T12:31:00-04:00",
|
|
"2024-05-03T12:32:00-04:00",
|
|
"2024-05-03T12:33:00-04:00",
|
|
"2024-05-03T12:34:00-04:00",
|
|
"2024-05-03T12:35:00-04:00",
|
|
"2024-05-03T12:36:00-04:00",
|
|
"2024-05-03T12:37:00-04:00",
|
|
"2024-05-03T12:38:00-04:00",
|
|
"2024-05-03T12:39:00-04:00",
|
|
"2024-05-03T12:40:00-04:00",
|
|
"2024-05-03T12:41:00-04:00",
|
|
"2024-05-03T12:42:00-04:00",
|
|
"2024-05-03T12:43:00-04:00",
|
|
"2024-05-03T12:44:00-04:00",
|
|
"2024-05-03T12:45:00-04:00",
|
|
"2024-05-03T12:46:00-04:00",
|
|
"2024-05-03T12:47:00-04:00",
|
|
"2024-05-03T12:48:00-04:00",
|
|
"2024-05-03T12:49:00-04:00",
|
|
"2024-05-03T12:50:00-04:00",
|
|
"2024-05-03T12:51:00-04:00",
|
|
"2024-05-03T12:52:00-04:00",
|
|
"2024-05-03T12:53:00-04:00",
|
|
"2024-05-03T12:54:00-04:00",
|
|
"2024-05-03T12:55:00-04:00",
|
|
"2024-05-03T12:56:00-04:00",
|
|
"2024-05-03T12:57:00-04:00",
|
|
"2024-05-03T12:58:00-04:00",
|
|
"2024-05-03T12:59:00-04:00",
|
|
"2024-05-03T13:00:00-04:00",
|
|
"2024-05-03T13:01:00-04:00",
|
|
"2024-05-03T13:02:00-04:00",
|
|
"2024-05-03T13:03:00-04:00",
|
|
"2024-05-03T13:04:00-04:00",
|
|
"2024-05-03T13:05:00-04:00",
|
|
"2024-05-03T13:06:00-04:00",
|
|
"2024-05-03T13:07:00-04:00",
|
|
"2024-05-03T13:08:00-04:00",
|
|
"2024-05-03T13:09:00-04:00",
|
|
"2024-05-03T13:10:00-04:00",
|
|
"2024-05-03T13:11:00-04:00",
|
|
"2024-05-03T13:12:00-04:00",
|
|
"2024-05-03T13:13:00-04:00",
|
|
"2024-05-03T13:14:00-04:00",
|
|
"2024-05-03T13:15:00-04:00",
|
|
"2024-05-03T13:16:00-04:00",
|
|
"2024-05-03T13:17:00-04:00",
|
|
"2024-05-03T13:18:00-04:00",
|
|
"2024-05-03T13:19:00-04:00",
|
|
"2024-05-03T13:20:00-04:00",
|
|
"2024-05-03T13:21:00-04:00",
|
|
"2024-05-03T13:22:00-04:00",
|
|
"2024-05-03T13:23:00-04:00",
|
|
"2024-05-03T13:24:00-04:00",
|
|
"2024-05-03T13:25:00-04:00",
|
|
"2024-05-03T13:26:00-04:00",
|
|
"2024-05-03T13:27:00-04:00",
|
|
"2024-05-03T13:28:00-04:00",
|
|
"2024-05-03T13:29:00-04:00",
|
|
"2024-05-03T13:30:00-04:00",
|
|
"2024-05-03T13:31:00-04:00",
|
|
"2024-05-03T13:32:00-04:00",
|
|
"2024-05-03T13:33:00-04:00",
|
|
"2024-05-03T13:34:00-04:00",
|
|
"2024-05-03T13:35:00-04:00",
|
|
"2024-05-03T13:36:00-04:00",
|
|
"2024-05-03T13:37:00-04:00",
|
|
"2024-05-03T13:38:00-04:00",
|
|
"2024-05-03T13:39:00-04:00",
|
|
"2024-05-03T13:40:00-04:00",
|
|
"2024-05-03T13:41:00-04:00",
|
|
"2024-05-03T13:42:00-04:00",
|
|
"2024-05-03T13:43:00-04:00",
|
|
"2024-05-03T13:44:00-04:00",
|
|
"2024-05-03T13:45:00-04:00",
|
|
"2024-05-03T13:46:00-04:00",
|
|
"2024-05-03T13:47:00-04:00",
|
|
"2024-05-03T13:48:00-04:00",
|
|
"2024-05-03T13:49:00-04:00",
|
|
"2024-05-03T13:50:00-04:00",
|
|
"2024-05-03T13:51:00-04:00",
|
|
"2024-05-03T13:52:00-04:00",
|
|
"2024-05-03T13:53:00-04:00",
|
|
"2024-05-03T13:54:00-04:00",
|
|
"2024-05-03T13:55:00-04:00",
|
|
"2024-05-03T13:56:00-04:00",
|
|
"2024-05-03T13:57:00-04:00",
|
|
"2024-05-03T13:58:00-04:00",
|
|
"2024-05-03T13:59:00-04:00",
|
|
"2024-05-03T14:00:00-04:00",
|
|
"2024-05-03T14:01:00-04:00",
|
|
"2024-05-03T14:02:00-04:00",
|
|
"2024-05-03T14:03:00-04:00",
|
|
"2024-05-03T14:04:00-04:00",
|
|
"2024-05-03T14:05:00-04:00",
|
|
"2024-05-03T14:06:00-04:00",
|
|
"2024-05-03T14:07:00-04:00",
|
|
"2024-05-03T14:08:00-04:00",
|
|
"2024-05-03T14:09:00-04:00",
|
|
"2024-05-03T14:10:00-04:00",
|
|
"2024-05-03T14:11:00-04:00",
|
|
"2024-05-03T14:12:00-04:00",
|
|
"2024-05-03T14:13:00-04:00",
|
|
"2024-05-03T14:14:00-04:00",
|
|
"2024-05-03T14:15:00-04:00",
|
|
"2024-05-03T14:16:00-04:00",
|
|
"2024-05-03T14:17:00-04:00",
|
|
"2024-05-03T14:18:00-04:00",
|
|
"2024-05-03T14:19:00-04:00",
|
|
"2024-05-03T14:20:00-04:00",
|
|
"2024-05-03T14:21:00-04:00",
|
|
"2024-05-03T14:22:00-04:00",
|
|
"2024-05-03T14:23:00-04:00",
|
|
"2024-05-03T14:24:00-04:00",
|
|
"2024-05-03T14:25:00-04:00",
|
|
"2024-05-03T14:26:00-04:00",
|
|
"2024-05-03T14:27:00-04:00",
|
|
"2024-05-03T14:28:00-04:00",
|
|
"2024-05-03T14:29:00-04:00",
|
|
"2024-05-03T14:30:00-04:00",
|
|
"2024-05-03T14:31:00-04:00",
|
|
"2024-05-03T14:32:00-04:00",
|
|
"2024-05-03T14:33:00-04:00",
|
|
"2024-05-03T14:34:00-04:00",
|
|
"2024-05-03T14:35:00-04:00",
|
|
"2024-05-03T14:36:00-04:00",
|
|
"2024-05-03T14:37:00-04:00",
|
|
"2024-05-03T14:38:00-04:00",
|
|
"2024-05-03T14:39:00-04:00",
|
|
"2024-05-03T14:40:00-04:00",
|
|
"2024-05-03T14:41:00-04:00",
|
|
"2024-05-03T14:42:00-04:00",
|
|
"2024-05-03T14:43:00-04:00",
|
|
"2024-05-03T14:44:00-04:00",
|
|
"2024-05-03T14:45:00-04:00",
|
|
"2024-05-03T14:46:00-04:00",
|
|
"2024-05-03T14:47:00-04:00",
|
|
"2024-05-03T14:48:00-04:00",
|
|
"2024-05-03T14:49:00-04:00",
|
|
"2024-05-03T14:50:00-04:00",
|
|
"2024-05-03T14:51:00-04:00",
|
|
"2024-05-03T14:52:00-04:00",
|
|
"2024-05-03T14:53:00-04:00",
|
|
"2024-05-03T14:54:00-04:00",
|
|
"2024-05-03T14:55:00-04:00",
|
|
"2024-05-03T14:56:00-04:00",
|
|
"2024-05-03T14:57:00-04:00",
|
|
"2024-05-03T14:58:00-04:00",
|
|
"2024-05-03T14:59:00-04:00",
|
|
"2024-05-03T15:00:00-04:00",
|
|
"2024-05-03T15:01:00-04:00",
|
|
"2024-05-03T15:02:00-04:00",
|
|
"2024-05-03T15:03:00-04:00",
|
|
"2024-05-03T15:04:00-04:00",
|
|
"2024-05-03T15:05:00-04:00",
|
|
"2024-05-03T15:06:00-04:00",
|
|
"2024-05-03T15:07:00-04:00",
|
|
"2024-05-03T15:08:00-04:00",
|
|
"2024-05-03T15:09:00-04:00",
|
|
"2024-05-03T15:10:00-04:00",
|
|
"2024-05-03T15:11:00-04:00",
|
|
"2024-05-03T15:12:00-04:00",
|
|
"2024-05-03T15:13:00-04:00",
|
|
"2024-05-03T15:14:00-04:00",
|
|
"2024-05-03T15:15:00-04:00",
|
|
"2024-05-03T15:16:00-04:00",
|
|
"2024-05-03T15:17:00-04:00",
|
|
"2024-05-03T15:18:00-04:00",
|
|
"2024-05-03T15:19:00-04:00",
|
|
"2024-05-03T15:20:00-04:00",
|
|
"2024-05-03T15:21:00-04:00",
|
|
"2024-05-03T15:22:00-04:00",
|
|
"2024-05-03T15:23:00-04:00",
|
|
"2024-05-03T15:24:00-04:00",
|
|
"2024-05-03T15:25:00-04:00",
|
|
"2024-05-03T15:26:00-04:00",
|
|
"2024-05-03T15:27:00-04:00",
|
|
"2024-05-03T15:28:00-04:00",
|
|
"2024-05-03T15:29:00-04:00",
|
|
"2024-05-03T15:30:00-04:00",
|
|
"2024-05-03T15:31:00-04:00",
|
|
"2024-05-03T15:32:00-04:00",
|
|
"2024-05-03T15:33:00-04:00",
|
|
"2024-05-03T15:34:00-04:00",
|
|
"2024-05-03T15:35:00-04:00",
|
|
"2024-05-03T15:36:00-04:00",
|
|
"2024-05-03T15:37:00-04:00",
|
|
"2024-05-03T15:38:00-04:00",
|
|
"2024-05-03T15:39:00-04:00",
|
|
"2024-05-03T15:40:00-04:00",
|
|
"2024-05-03T15:41:00-04:00",
|
|
"2024-05-03T15:42:00-04:00",
|
|
"2024-05-03T15:43:00-04:00",
|
|
"2024-05-03T15:44:00-04:00",
|
|
"2024-05-03T15:45:00-04:00",
|
|
"2024-05-03T15:46:00-04:00",
|
|
"2024-05-03T15:47:00-04:00",
|
|
"2024-05-03T15:48:00-04:00",
|
|
"2024-05-03T15:49:00-04:00",
|
|
"2024-05-03T15:50:00-04:00",
|
|
"2024-05-03T15:51:00-04:00",
|
|
"2024-05-03T15:52:00-04:00",
|
|
"2024-05-03T15:53:00-04:00",
|
|
"2024-05-03T15:54:00-04:00",
|
|
"2024-05-03T15:55:00-04:00",
|
|
"2024-05-03T15:56:00-04:00",
|
|
"2024-05-03T15:57:00-04:00",
|
|
"2024-05-03T15:58:00-04:00",
|
|
"2024-05-03T15:59:00-04:00",
|
|
"2024-05-03T16:00:00-04:00",
|
|
"2024-05-06T09:30:00-04:00",
|
|
"2024-05-06T09:31:00-04:00",
|
|
"2024-05-06T09:32:00-04:00",
|
|
"2024-05-06T09:33:00-04:00",
|
|
"2024-05-06T09:34:00-04:00",
|
|
"2024-05-06T09:35:00-04:00",
|
|
"2024-05-06T09:36:00-04:00",
|
|
"2024-05-06T09:37:00-04:00",
|
|
"2024-05-06T09:38:00-04:00",
|
|
"2024-05-06T09:39:00-04:00",
|
|
"2024-05-06T09:40:00-04:00",
|
|
"2024-05-06T09:41:00-04:00",
|
|
"2024-05-06T09:42:00-04:00",
|
|
"2024-05-06T09:43:00-04:00",
|
|
"2024-05-06T09:44:00-04:00",
|
|
"2024-05-06T09:45:00-04:00",
|
|
"2024-05-06T09:46:00-04:00",
|
|
"2024-05-06T09:47:00-04:00",
|
|
"2024-05-06T09:48:00-04:00",
|
|
"2024-05-06T09:49:00-04:00",
|
|
"2024-05-06T09:50:00-04:00",
|
|
"2024-05-06T09:51:00-04:00",
|
|
"2024-05-06T09:52:00-04:00",
|
|
"2024-05-06T09:53:00-04:00",
|
|
"2024-05-06T09:54:00-04:00",
|
|
"2024-05-06T09:55:00-04:00",
|
|
"2024-05-06T09:56:00-04:00",
|
|
"2024-05-06T09:57:00-04:00",
|
|
"2024-05-06T09:58:00-04:00",
|
|
"2024-05-06T09:59:00-04:00",
|
|
"2024-05-06T10:00:00-04:00",
|
|
"2024-05-06T10:01:00-04:00",
|
|
"2024-05-06T10:02:00-04:00",
|
|
"2024-05-06T10:03:00-04:00",
|
|
"2024-05-06T10:04:00-04:00",
|
|
"2024-05-06T10:05:00-04:00",
|
|
"2024-05-06T10:06:00-04:00",
|
|
"2024-05-06T10:07:00-04:00",
|
|
"2024-05-06T10:08:00-04:00",
|
|
"2024-05-06T10:09:00-04:00",
|
|
"2024-05-06T10:10:00-04:00",
|
|
"2024-05-06T10:11:00-04:00",
|
|
"2024-05-06T10:12:00-04:00",
|
|
"2024-05-06T10:13:00-04:00",
|
|
"2024-05-06T10:14:00-04:00",
|
|
"2024-05-06T10:15:00-04:00",
|
|
"2024-05-06T10:16:00-04:00",
|
|
"2024-05-06T10:17:00-04:00",
|
|
"2024-05-06T10:18:00-04:00",
|
|
"2024-05-06T10:19:00-04:00",
|
|
"2024-05-06T10:20:00-04:00",
|
|
"2024-05-06T10:21:00-04:00",
|
|
"2024-05-06T10:22:00-04:00",
|
|
"2024-05-06T10:23:00-04:00",
|
|
"2024-05-06T10:24:00-04:00",
|
|
"2024-05-06T10:25:00-04:00",
|
|
"2024-05-06T10:26:00-04:00",
|
|
"2024-05-06T10:27:00-04:00",
|
|
"2024-05-06T10:28:00-04:00",
|
|
"2024-05-06T10:29:00-04:00",
|
|
"2024-05-06T10:30:00-04:00",
|
|
"2024-05-06T10:31:00-04:00",
|
|
"2024-05-06T10:32:00-04:00",
|
|
"2024-05-06T10:33:00-04:00",
|
|
"2024-05-06T10:34:00-04:00",
|
|
"2024-05-06T10:35:00-04:00",
|
|
"2024-05-06T10:36:00-04:00",
|
|
"2024-05-06T10:37:00-04:00",
|
|
"2024-05-06T10:38:00-04:00",
|
|
"2024-05-06T10:39:00-04:00",
|
|
"2024-05-06T10:40:00-04:00",
|
|
"2024-05-06T10:41:00-04:00",
|
|
"2024-05-06T10:42:00-04:00",
|
|
"2024-05-06T10:43:00-04:00",
|
|
"2024-05-06T10:44:00-04:00",
|
|
"2024-05-06T10:45:00-04:00",
|
|
"2024-05-06T10:46:00-04:00",
|
|
"2024-05-06T10:47:00-04:00",
|
|
"2024-05-06T10:48:00-04:00",
|
|
"2024-05-06T10:49:00-04:00",
|
|
"2024-05-06T10:50:00-04:00",
|
|
"2024-05-06T10:51:00-04:00",
|
|
"2024-05-06T10:52:00-04:00",
|
|
"2024-05-06T10:53:00-04:00",
|
|
"2024-05-06T10:54:00-04:00",
|
|
"2024-05-06T10:55:00-04:00",
|
|
"2024-05-06T10:56:00-04:00",
|
|
"2024-05-06T10:57:00-04:00",
|
|
"2024-05-06T10:58:00-04:00",
|
|
"2024-05-06T10:59:00-04:00",
|
|
"2024-05-06T11:00:00-04:00",
|
|
"2024-05-06T11:01:00-04:00",
|
|
"2024-05-06T11:02:00-04:00",
|
|
"2024-05-06T11:03:00-04:00",
|
|
"2024-05-06T11:04:00-04:00",
|
|
"2024-05-06T11:05:00-04:00",
|
|
"2024-05-06T11:06:00-04:00",
|
|
"2024-05-06T11:07:00-04:00",
|
|
"2024-05-06T11:08:00-04:00",
|
|
"2024-05-06T11:09:00-04:00",
|
|
"2024-05-06T11:10:00-04:00",
|
|
"2024-05-06T11:11:00-04:00",
|
|
"2024-05-06T11:12:00-04:00",
|
|
"2024-05-06T11:13:00-04:00",
|
|
"2024-05-06T11:14:00-04:00",
|
|
"2024-05-06T11:15:00-04:00",
|
|
"2024-05-06T11:16:00-04:00",
|
|
"2024-05-06T11:17:00-04:00",
|
|
"2024-05-06T11:18:00-04:00",
|
|
"2024-05-06T11:19:00-04:00",
|
|
"2024-05-06T11:20:00-04:00",
|
|
"2024-05-06T11:21:00-04:00",
|
|
"2024-05-06T11:22:00-04:00",
|
|
"2024-05-06T11:23:00-04:00",
|
|
"2024-05-06T11:24:00-04:00",
|
|
"2024-05-06T11:25:00-04:00",
|
|
"2024-05-06T11:26:00-04:00",
|
|
"2024-05-06T11:27:00-04:00",
|
|
"2024-05-06T11:28:00-04:00",
|
|
"2024-05-06T11:29:00-04:00",
|
|
"2024-05-06T11:30:00-04:00",
|
|
"2024-05-06T11:31:00-04:00",
|
|
"2024-05-06T11:32:00-04:00",
|
|
"2024-05-06T11:33:00-04:00",
|
|
"2024-05-06T11:34:00-04:00",
|
|
"2024-05-06T11:35:00-04:00",
|
|
"2024-05-06T11:36:00-04:00",
|
|
"2024-05-06T11:37:00-04:00"
|
|
],
|
|
"xaxis": "x",
|
|
"yaxis": "y"
|
|
},
|
|
{
|
|
"marker": {
|
|
"color": [
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#7f7f7f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a",
|
|
"#26a69a",
|
|
"#ee534f",
|
|
"#26a69a"
|
|
],
|
|
"line": {
|
|
"width": 0
|
|
}
|
|
},
|
|
"name": "Volume",
|
|
"opacity": 0.5,
|
|
"type": "bar",
|
|
"uid": "710f5f26-7186-4056-b683-2851e0631500",
|
|
"x": [
|
|
"2024-04-29T09:30:00-04:00",
|
|
"2024-04-29T09:31:00-04:00",
|
|
"2024-04-29T09:32:00-04:00",
|
|
"2024-04-29T09:33:00-04:00",
|
|
"2024-04-29T09:34:00-04:00",
|
|
"2024-04-29T09:35:00-04:00",
|
|
"2024-04-29T09:36:00-04:00",
|
|
"2024-04-29T09:37:00-04:00",
|
|
"2024-04-29T09:38:00-04:00",
|
|
"2024-04-29T09:39:00-04:00",
|
|
"2024-04-29T09:40:00-04:00",
|
|
"2024-04-29T09:41:00-04:00",
|
|
"2024-04-29T09:42:00-04:00",
|
|
"2024-04-29T09:43:00-04:00",
|
|
"2024-04-29T09:44:00-04:00",
|
|
"2024-04-29T09:45:00-04:00",
|
|
"2024-04-29T09:46:00-04:00",
|
|
"2024-04-29T09:47:00-04:00",
|
|
"2024-04-29T09:48:00-04:00",
|
|
"2024-04-29T09:49:00-04:00",
|
|
"2024-04-29T09:50:00-04:00",
|
|
"2024-04-29T09:51:00-04:00",
|
|
"2024-04-29T09:52:00-04:00",
|
|
"2024-04-29T09:53:00-04:00",
|
|
"2024-04-29T09:54:00-04:00",
|
|
"2024-04-29T09:55:00-04:00",
|
|
"2024-04-29T09:56:00-04:00",
|
|
"2024-04-29T09:57:00-04:00",
|
|
"2024-04-29T09:58:00-04:00",
|
|
"2024-04-29T09:59:00-04:00",
|
|
"2024-04-29T10:00:00-04:00",
|
|
"2024-04-29T10:01:00-04:00",
|
|
"2024-04-29T10:02:00-04:00",
|
|
"2024-04-29T10:03:00-04:00",
|
|
"2024-04-29T10:04:00-04:00",
|
|
"2024-04-29T10:05:00-04:00",
|
|
"2024-04-29T10:06:00-04:00",
|
|
"2024-04-29T10:07:00-04:00",
|
|
"2024-04-29T10:08:00-04:00",
|
|
"2024-04-29T10:09:00-04:00",
|
|
"2024-04-29T10:10:00-04:00",
|
|
"2024-04-29T10:11:00-04:00",
|
|
"2024-04-29T10:12:00-04:00",
|
|
"2024-04-29T10:13:00-04:00",
|
|
"2024-04-29T10:14:00-04:00",
|
|
"2024-04-29T10:15:00-04:00",
|
|
"2024-04-29T10:16:00-04:00",
|
|
"2024-04-29T10:17:00-04:00",
|
|
"2024-04-29T10:18:00-04:00",
|
|
"2024-04-29T10:19:00-04:00",
|
|
"2024-04-29T10:20:00-04:00",
|
|
"2024-04-29T10:21:00-04:00",
|
|
"2024-04-29T10:22:00-04:00",
|
|
"2024-04-29T10:23:00-04:00",
|
|
"2024-04-29T10:24:00-04:00",
|
|
"2024-04-29T10:25:00-04:00",
|
|
"2024-04-29T10:26:00-04:00",
|
|
"2024-04-29T10:27:00-04:00",
|
|
"2024-04-29T10:28:00-04:00",
|
|
"2024-04-29T10:29:00-04:00",
|
|
"2024-04-29T10:30:00-04:00",
|
|
"2024-04-29T10:31:00-04:00",
|
|
"2024-04-29T10:32:00-04:00",
|
|
"2024-04-29T10:33:00-04:00",
|
|
"2024-04-29T10:34:00-04:00",
|
|
"2024-04-29T10:35:00-04:00",
|
|
"2024-04-29T10:36:00-04:00",
|
|
"2024-04-29T10:37:00-04:00",
|
|
"2024-04-29T10:38:00-04:00",
|
|
"2024-04-29T10:39:00-04:00",
|
|
"2024-04-29T10:40:00-04:00",
|
|
"2024-04-29T10:41:00-04:00",
|
|
"2024-04-29T10:42:00-04:00",
|
|
"2024-04-29T10:43:00-04:00",
|
|
"2024-04-29T10:44:00-04:00",
|
|
"2024-04-29T10:45:00-04:00",
|
|
"2024-04-29T10:46:00-04:00",
|
|
"2024-04-29T10:47:00-04:00",
|
|
"2024-04-29T10:48:00-04:00",
|
|
"2024-04-29T10:49:00-04:00",
|
|
"2024-04-29T10:50:00-04:00",
|
|
"2024-04-29T10:51:00-04:00",
|
|
"2024-04-29T10:52:00-04:00",
|
|
"2024-04-29T10:53:00-04:00",
|
|
"2024-04-29T10:54:00-04:00",
|
|
"2024-04-29T10:55:00-04:00",
|
|
"2024-04-29T10:56:00-04:00",
|
|
"2024-04-29T10:57:00-04:00",
|
|
"2024-04-29T10:58:00-04:00",
|
|
"2024-04-29T10:59:00-04:00",
|
|
"2024-04-29T11:00:00-04:00",
|
|
"2024-04-29T11:01:00-04:00",
|
|
"2024-04-29T11:02:00-04:00",
|
|
"2024-04-29T11:03:00-04:00",
|
|
"2024-04-29T11:04:00-04:00",
|
|
"2024-04-29T11:05:00-04:00",
|
|
"2024-04-29T11:06:00-04:00",
|
|
"2024-04-29T11:07:00-04:00",
|
|
"2024-04-29T11:08:00-04:00",
|
|
"2024-04-29T11:09:00-04:00",
|
|
"2024-04-29T11:10:00-04:00",
|
|
"2024-04-29T11:11:00-04:00",
|
|
"2024-04-29T11:12:00-04:00",
|
|
"2024-04-29T11:13:00-04:00",
|
|
"2024-04-29T11:14:00-04:00",
|
|
"2024-04-29T11:15:00-04:00",
|
|
"2024-04-29T11:16:00-04:00",
|
|
"2024-04-29T11:17:00-04:00",
|
|
"2024-04-29T11:18:00-04:00",
|
|
"2024-04-29T11:19:00-04:00",
|
|
"2024-04-29T11:20:00-04:00",
|
|
"2024-04-29T11:21:00-04:00",
|
|
"2024-04-29T11:22:00-04:00",
|
|
"2024-04-29T11:23:00-04:00",
|
|
"2024-04-29T11:24:00-04:00",
|
|
"2024-04-29T11:25:00-04:00",
|
|
"2024-04-29T11:26:00-04:00",
|
|
"2024-04-29T11:27:00-04:00",
|
|
"2024-04-29T11:28:00-04:00",
|
|
"2024-04-29T11:29:00-04:00",
|
|
"2024-04-29T11:30:00-04:00",
|
|
"2024-04-29T11:31:00-04:00",
|
|
"2024-04-29T11:32:00-04:00",
|
|
"2024-04-29T11:33:00-04:00",
|
|
"2024-04-29T11:34:00-04:00",
|
|
"2024-04-29T11:35:00-04:00",
|
|
"2024-04-29T11:36:00-04:00",
|
|
"2024-04-29T11:37:00-04:00",
|
|
"2024-04-29T11:38:00-04:00",
|
|
"2024-04-29T11:39:00-04:00",
|
|
"2024-04-29T11:40:00-04:00",
|
|
"2024-04-29T11:41:00-04:00",
|
|
"2024-04-29T11:42:00-04:00",
|
|
"2024-04-29T11:43:00-04:00",
|
|
"2024-04-29T11:44:00-04:00",
|
|
"2024-04-29T11:45:00-04:00",
|
|
"2024-04-29T11:46:00-04:00",
|
|
"2024-04-29T11:47:00-04:00",
|
|
"2024-04-29T11:48:00-04:00",
|
|
"2024-04-29T11:49:00-04:00",
|
|
"2024-04-29T11:50:00-04:00",
|
|
"2024-04-29T11:51:00-04:00",
|
|
"2024-04-29T11:52:00-04:00",
|
|
"2024-04-29T11:53:00-04:00",
|
|
"2024-04-29T11:54:00-04:00",
|
|
"2024-04-29T11:55:00-04:00",
|
|
"2024-04-29T11:56:00-04:00",
|
|
"2024-04-29T11:57:00-04:00",
|
|
"2024-04-29T11:58:00-04:00",
|
|
"2024-04-29T11:59:00-04:00",
|
|
"2024-04-29T12:00:00-04:00",
|
|
"2024-04-29T12:01:00-04:00",
|
|
"2024-04-29T12:02:00-04:00",
|
|
"2024-04-29T12:03:00-04:00",
|
|
"2024-04-29T12:04:00-04:00",
|
|
"2024-04-29T12:05:00-04:00",
|
|
"2024-04-29T12:06:00-04:00",
|
|
"2024-04-29T12:07:00-04:00",
|
|
"2024-04-29T12:08:00-04:00",
|
|
"2024-04-29T12:09:00-04:00",
|
|
"2024-04-29T12:10:00-04:00",
|
|
"2024-04-29T12:11:00-04:00",
|
|
"2024-04-29T12:12:00-04:00",
|
|
"2024-04-29T12:13:00-04:00",
|
|
"2024-04-29T12:14:00-04:00",
|
|
"2024-04-29T12:15:00-04:00",
|
|
"2024-04-29T12:16:00-04:00",
|
|
"2024-04-29T12:17:00-04:00",
|
|
"2024-04-29T12:18:00-04:00",
|
|
"2024-04-29T12:19:00-04:00",
|
|
"2024-04-29T12:20:00-04:00",
|
|
"2024-04-29T12:21:00-04:00",
|
|
"2024-04-29T12:22:00-04:00",
|
|
"2024-04-29T12:23:00-04:00",
|
|
"2024-04-29T12:24:00-04:00",
|
|
"2024-04-29T12:25:00-04:00",
|
|
"2024-04-29T12:26:00-04:00",
|
|
"2024-04-29T12:27:00-04:00",
|
|
"2024-04-29T12:28:00-04:00",
|
|
"2024-04-29T12:29:00-04:00",
|
|
"2024-04-29T12:30:00-04:00",
|
|
"2024-04-29T12:31:00-04:00",
|
|
"2024-04-29T12:32:00-04:00",
|
|
"2024-04-29T12:33:00-04:00",
|
|
"2024-04-29T12:34:00-04:00",
|
|
"2024-04-29T12:35:00-04:00",
|
|
"2024-04-29T12:36:00-04:00",
|
|
"2024-04-29T12:37:00-04:00",
|
|
"2024-04-29T12:38:00-04:00",
|
|
"2024-04-29T12:39:00-04:00",
|
|
"2024-04-29T12:40:00-04:00",
|
|
"2024-04-29T12:41:00-04:00",
|
|
"2024-04-29T12:42:00-04:00",
|
|
"2024-04-29T12:43:00-04:00",
|
|
"2024-04-29T12:44:00-04:00",
|
|
"2024-04-29T12:45:00-04:00",
|
|
"2024-04-29T12:46:00-04:00",
|
|
"2024-04-29T12:47:00-04:00",
|
|
"2024-04-29T12:48:00-04:00",
|
|
"2024-04-29T12:49:00-04:00",
|
|
"2024-04-29T12:50:00-04:00",
|
|
"2024-04-29T12:51:00-04:00",
|
|
"2024-04-29T12:52:00-04:00",
|
|
"2024-04-29T12:53:00-04:00",
|
|
"2024-04-29T12:54:00-04:00",
|
|
"2024-04-29T12:55:00-04:00",
|
|
"2024-04-29T12:56:00-04:00",
|
|
"2024-04-29T12:57:00-04:00",
|
|
"2024-04-29T12:58:00-04:00",
|
|
"2024-04-29T12:59:00-04:00",
|
|
"2024-04-29T13:00:00-04:00",
|
|
"2024-04-29T13:01:00-04:00",
|
|
"2024-04-29T13:02:00-04:00",
|
|
"2024-04-29T13:03:00-04:00",
|
|
"2024-04-29T13:04:00-04:00",
|
|
"2024-04-29T13:05:00-04:00",
|
|
"2024-04-29T13:06:00-04:00",
|
|
"2024-04-29T13:07:00-04:00",
|
|
"2024-04-29T13:08:00-04:00",
|
|
"2024-04-29T13:09:00-04:00",
|
|
"2024-04-29T13:10:00-04:00",
|
|
"2024-04-29T13:11:00-04:00",
|
|
"2024-04-29T13:12:00-04:00",
|
|
"2024-04-29T13:13:00-04:00",
|
|
"2024-04-29T13:14:00-04:00",
|
|
"2024-04-29T13:15:00-04:00",
|
|
"2024-04-29T13:16:00-04:00",
|
|
"2024-04-29T13:17:00-04:00",
|
|
"2024-04-29T13:18:00-04:00",
|
|
"2024-04-29T13:19:00-04:00",
|
|
"2024-04-29T13:20:00-04:00",
|
|
"2024-04-29T13:21:00-04:00",
|
|
"2024-04-29T13:22:00-04:00",
|
|
"2024-04-29T13:23:00-04:00",
|
|
"2024-04-29T13:24:00-04:00",
|
|
"2024-04-29T13:25:00-04:00",
|
|
"2024-04-29T13:26:00-04:00",
|
|
"2024-04-29T13:27:00-04:00",
|
|
"2024-04-29T13:28:00-04:00",
|
|
"2024-04-29T13:29:00-04:00",
|
|
"2024-04-29T13:30:00-04:00",
|
|
"2024-04-29T13:31:00-04:00",
|
|
"2024-04-29T13:32:00-04:00",
|
|
"2024-04-29T13:33:00-04:00",
|
|
"2024-04-29T13:34:00-04:00",
|
|
"2024-04-29T13:35:00-04:00",
|
|
"2024-04-29T13:36:00-04:00",
|
|
"2024-04-29T13:37:00-04:00",
|
|
"2024-04-29T13:38:00-04:00",
|
|
"2024-04-29T13:39:00-04:00",
|
|
"2024-04-29T13:40:00-04:00",
|
|
"2024-04-29T13:41:00-04:00",
|
|
"2024-04-29T13:42:00-04:00",
|
|
"2024-04-29T13:43:00-04:00",
|
|
"2024-04-29T13:44:00-04:00",
|
|
"2024-04-29T13:45:00-04:00",
|
|
"2024-04-29T13:46:00-04:00",
|
|
"2024-04-29T13:47:00-04:00",
|
|
"2024-04-29T13:48:00-04:00",
|
|
"2024-04-29T13:49:00-04:00",
|
|
"2024-04-29T13:50:00-04:00",
|
|
"2024-04-29T13:51:00-04:00",
|
|
"2024-04-29T13:52:00-04:00",
|
|
"2024-04-29T13:53:00-04:00",
|
|
"2024-04-29T13:54:00-04:00",
|
|
"2024-04-29T13:55:00-04:00",
|
|
"2024-04-29T13:56:00-04:00",
|
|
"2024-04-29T13:57:00-04:00",
|
|
"2024-04-29T13:58:00-04:00",
|
|
"2024-04-29T13:59:00-04:00",
|
|
"2024-04-29T14:00:00-04:00",
|
|
"2024-04-29T14:01:00-04:00",
|
|
"2024-04-29T14:02:00-04:00",
|
|
"2024-04-29T14:03:00-04:00",
|
|
"2024-04-29T14:04:00-04:00",
|
|
"2024-04-29T14:05:00-04:00",
|
|
"2024-04-29T14:06:00-04:00",
|
|
"2024-04-29T14:07:00-04:00",
|
|
"2024-04-29T14:08:00-04:00",
|
|
"2024-04-29T14:09:00-04:00",
|
|
"2024-04-29T14:10:00-04:00",
|
|
"2024-04-29T14:11:00-04:00",
|
|
"2024-04-29T14:12:00-04:00",
|
|
"2024-04-29T14:13:00-04:00",
|
|
"2024-04-29T14:14:00-04:00",
|
|
"2024-04-29T14:15:00-04:00",
|
|
"2024-04-29T14:16:00-04:00",
|
|
"2024-04-29T14:17:00-04:00",
|
|
"2024-04-29T14:18:00-04:00",
|
|
"2024-04-29T14:19:00-04:00",
|
|
"2024-04-29T14:20:00-04:00",
|
|
"2024-04-29T14:21:00-04:00",
|
|
"2024-04-29T14:22:00-04:00",
|
|
"2024-04-29T14:23:00-04:00",
|
|
"2024-04-29T14:24:00-04:00",
|
|
"2024-04-29T14:25:00-04:00",
|
|
"2024-04-29T14:26:00-04:00",
|
|
"2024-04-29T14:27:00-04:00",
|
|
"2024-04-29T14:28:00-04:00",
|
|
"2024-04-29T14:29:00-04:00",
|
|
"2024-04-29T14:30:00-04:00",
|
|
"2024-04-29T14:31:00-04:00",
|
|
"2024-04-29T14:32:00-04:00",
|
|
"2024-04-29T14:33:00-04:00",
|
|
"2024-04-29T14:34:00-04:00",
|
|
"2024-04-29T14:35:00-04:00",
|
|
"2024-04-29T14:36:00-04:00",
|
|
"2024-04-29T14:37:00-04:00",
|
|
"2024-04-29T14:38:00-04:00",
|
|
"2024-04-29T14:39:00-04:00",
|
|
"2024-04-29T14:40:00-04:00",
|
|
"2024-04-29T14:41:00-04:00",
|
|
"2024-04-29T14:42:00-04:00",
|
|
"2024-04-29T14:43:00-04:00",
|
|
"2024-04-29T14:44:00-04:00",
|
|
"2024-04-29T14:45:00-04:00",
|
|
"2024-04-29T14:46:00-04:00",
|
|
"2024-04-29T14:47:00-04:00",
|
|
"2024-04-29T14:48:00-04:00",
|
|
"2024-04-29T14:49:00-04:00",
|
|
"2024-04-29T14:50:00-04:00",
|
|
"2024-04-29T14:51:00-04:00",
|
|
"2024-04-29T14:52:00-04:00",
|
|
"2024-04-29T14:53:00-04:00",
|
|
"2024-04-29T14:54:00-04:00",
|
|
"2024-04-29T14:55:00-04:00",
|
|
"2024-04-29T14:56:00-04:00",
|
|
"2024-04-29T14:57:00-04:00",
|
|
"2024-04-29T14:58:00-04:00",
|
|
"2024-04-29T14:59:00-04:00",
|
|
"2024-04-29T15:00:00-04:00",
|
|
"2024-04-29T15:01:00-04:00",
|
|
"2024-04-29T15:02:00-04:00",
|
|
"2024-04-29T15:03:00-04:00",
|
|
"2024-04-29T15:04:00-04:00",
|
|
"2024-04-29T15:05:00-04:00",
|
|
"2024-04-29T15:06:00-04:00",
|
|
"2024-04-29T15:07:00-04:00",
|
|
"2024-04-29T15:08:00-04:00",
|
|
"2024-04-29T15:09:00-04:00",
|
|
"2024-04-29T15:10:00-04:00",
|
|
"2024-04-29T15:11:00-04:00",
|
|
"2024-04-29T15:12:00-04:00",
|
|
"2024-04-29T15:13:00-04:00",
|
|
"2024-04-29T15:14:00-04:00",
|
|
"2024-04-29T15:15:00-04:00",
|
|
"2024-04-29T15:16:00-04:00",
|
|
"2024-04-29T15:17:00-04:00",
|
|
"2024-04-29T15:18:00-04:00",
|
|
"2024-04-29T15:19:00-04:00",
|
|
"2024-04-29T15:20:00-04:00",
|
|
"2024-04-29T15:21:00-04:00",
|
|
"2024-04-29T15:22:00-04:00",
|
|
"2024-04-29T15:23:00-04:00",
|
|
"2024-04-29T15:24:00-04:00",
|
|
"2024-04-29T15:25:00-04:00",
|
|
"2024-04-29T15:26:00-04:00",
|
|
"2024-04-29T15:27:00-04:00",
|
|
"2024-04-29T15:28:00-04:00",
|
|
"2024-04-29T15:29:00-04:00",
|
|
"2024-04-29T15:30:00-04:00",
|
|
"2024-04-29T15:31:00-04:00",
|
|
"2024-04-29T15:32:00-04:00",
|
|
"2024-04-29T15:33:00-04:00",
|
|
"2024-04-29T15:34:00-04:00",
|
|
"2024-04-29T15:35:00-04:00",
|
|
"2024-04-29T15:36:00-04:00",
|
|
"2024-04-29T15:37:00-04:00",
|
|
"2024-04-29T15:38:00-04:00",
|
|
"2024-04-29T15:39:00-04:00",
|
|
"2024-04-29T15:40:00-04:00",
|
|
"2024-04-29T15:41:00-04:00",
|
|
"2024-04-29T15:42:00-04:00",
|
|
"2024-04-29T15:43:00-04:00",
|
|
"2024-04-29T15:44:00-04:00",
|
|
"2024-04-29T15:45:00-04:00",
|
|
"2024-04-29T15:46:00-04:00",
|
|
"2024-04-29T15:47:00-04:00",
|
|
"2024-04-29T15:48:00-04:00",
|
|
"2024-04-29T15:49:00-04:00",
|
|
"2024-04-29T15:50:00-04:00",
|
|
"2024-04-29T15:51:00-04:00",
|
|
"2024-04-29T15:52:00-04:00",
|
|
"2024-04-29T15:53:00-04:00",
|
|
"2024-04-29T15:54:00-04:00",
|
|
"2024-04-29T15:55:00-04:00",
|
|
"2024-04-29T15:56:00-04:00",
|
|
"2024-04-29T15:57:00-04:00",
|
|
"2024-04-29T15:58:00-04:00",
|
|
"2024-04-29T15:59:00-04:00",
|
|
"2024-04-29T16:00:00-04:00",
|
|
"2024-04-30T09:30:00-04:00",
|
|
"2024-04-30T09:31:00-04:00",
|
|
"2024-04-30T09:32:00-04:00",
|
|
"2024-04-30T09:33:00-04:00",
|
|
"2024-04-30T09:34:00-04:00",
|
|
"2024-04-30T09:35:00-04:00",
|
|
"2024-04-30T09:36:00-04:00",
|
|
"2024-04-30T09:37:00-04:00",
|
|
"2024-04-30T09:38:00-04:00",
|
|
"2024-04-30T09:39:00-04:00",
|
|
"2024-04-30T09:40:00-04:00",
|
|
"2024-04-30T09:41:00-04:00",
|
|
"2024-04-30T09:42:00-04:00",
|
|
"2024-04-30T09:43:00-04:00",
|
|
"2024-04-30T09:44:00-04:00",
|
|
"2024-04-30T09:45:00-04:00",
|
|
"2024-04-30T09:46:00-04:00",
|
|
"2024-04-30T09:47:00-04:00",
|
|
"2024-04-30T09:48:00-04:00",
|
|
"2024-04-30T09:49:00-04:00",
|
|
"2024-04-30T09:50:00-04:00",
|
|
"2024-04-30T09:51:00-04:00",
|
|
"2024-04-30T09:52:00-04:00",
|
|
"2024-04-30T09:53:00-04:00",
|
|
"2024-04-30T09:54:00-04:00",
|
|
"2024-04-30T09:55:00-04:00",
|
|
"2024-04-30T09:56:00-04:00",
|
|
"2024-04-30T09:57:00-04:00",
|
|
"2024-04-30T09:58:00-04:00",
|
|
"2024-04-30T09:59:00-04:00",
|
|
"2024-04-30T10:00:00-04:00",
|
|
"2024-04-30T10:01:00-04:00",
|
|
"2024-04-30T10:02:00-04:00",
|
|
"2024-04-30T10:03:00-04:00",
|
|
"2024-04-30T10:04:00-04:00",
|
|
"2024-04-30T10:05:00-04:00",
|
|
"2024-04-30T10:06:00-04:00",
|
|
"2024-04-30T10:07:00-04:00",
|
|
"2024-04-30T10:08:00-04:00",
|
|
"2024-04-30T10:09:00-04:00",
|
|
"2024-04-30T10:10:00-04:00",
|
|
"2024-04-30T10:11:00-04:00",
|
|
"2024-04-30T10:12:00-04:00",
|
|
"2024-04-30T10:13:00-04:00",
|
|
"2024-04-30T10:14:00-04:00",
|
|
"2024-04-30T10:15:00-04:00",
|
|
"2024-04-30T10:16:00-04:00",
|
|
"2024-04-30T10:17:00-04:00",
|
|
"2024-04-30T10:18:00-04:00",
|
|
"2024-04-30T10:19:00-04:00",
|
|
"2024-04-30T10:20:00-04:00",
|
|
"2024-04-30T10:21:00-04:00",
|
|
"2024-04-30T10:22:00-04:00",
|
|
"2024-04-30T10:23:00-04:00",
|
|
"2024-04-30T10:24:00-04:00",
|
|
"2024-04-30T10:25:00-04:00",
|
|
"2024-04-30T10:26:00-04:00",
|
|
"2024-04-30T10:27:00-04:00",
|
|
"2024-04-30T10:28:00-04:00",
|
|
"2024-04-30T10:29:00-04:00",
|
|
"2024-04-30T10:30:00-04:00",
|
|
"2024-04-30T10:31:00-04:00",
|
|
"2024-04-30T10:32:00-04:00",
|
|
"2024-04-30T10:33:00-04:00",
|
|
"2024-04-30T10:34:00-04:00",
|
|
"2024-04-30T10:35:00-04:00",
|
|
"2024-04-30T10:36:00-04:00",
|
|
"2024-04-30T10:37:00-04:00",
|
|
"2024-04-30T10:38:00-04:00",
|
|
"2024-04-30T10:39:00-04:00",
|
|
"2024-04-30T10:40:00-04:00",
|
|
"2024-04-30T10:41:00-04:00",
|
|
"2024-04-30T10:42:00-04:00",
|
|
"2024-04-30T10:43:00-04:00",
|
|
"2024-04-30T10:44:00-04:00",
|
|
"2024-04-30T10:45:00-04:00",
|
|
"2024-04-30T10:46:00-04:00",
|
|
"2024-04-30T10:47:00-04:00",
|
|
"2024-04-30T10:48:00-04:00",
|
|
"2024-04-30T10:49:00-04:00",
|
|
"2024-04-30T10:50:00-04:00",
|
|
"2024-04-30T10:51:00-04:00",
|
|
"2024-04-30T10:52:00-04:00",
|
|
"2024-04-30T10:53:00-04:00",
|
|
"2024-04-30T10:54:00-04:00",
|
|
"2024-04-30T10:55:00-04:00",
|
|
"2024-04-30T10:56:00-04:00",
|
|
"2024-04-30T10:57:00-04:00",
|
|
"2024-04-30T10:58:00-04:00",
|
|
"2024-04-30T10:59:00-04:00",
|
|
"2024-04-30T11:00:00-04:00",
|
|
"2024-04-30T11:01:00-04:00",
|
|
"2024-04-30T11:02:00-04:00",
|
|
"2024-04-30T11:03:00-04:00",
|
|
"2024-04-30T11:04:00-04:00",
|
|
"2024-04-30T11:05:00-04:00",
|
|
"2024-04-30T11:06:00-04:00",
|
|
"2024-04-30T11:07:00-04:00",
|
|
"2024-04-30T11:08:00-04:00",
|
|
"2024-04-30T11:09:00-04:00",
|
|
"2024-04-30T11:10:00-04:00",
|
|
"2024-04-30T11:11:00-04:00",
|
|
"2024-04-30T11:12:00-04:00",
|
|
"2024-04-30T11:13:00-04:00",
|
|
"2024-04-30T11:14:00-04:00",
|
|
"2024-04-30T11:15:00-04:00",
|
|
"2024-04-30T11:16:00-04:00",
|
|
"2024-04-30T11:17:00-04:00",
|
|
"2024-04-30T11:18:00-04:00",
|
|
"2024-04-30T11:19:00-04:00",
|
|
"2024-04-30T11:20:00-04:00",
|
|
"2024-04-30T11:21:00-04:00",
|
|
"2024-04-30T11:22:00-04:00",
|
|
"2024-04-30T11:23:00-04:00",
|
|
"2024-04-30T11:24:00-04:00",
|
|
"2024-04-30T11:25:00-04:00",
|
|
"2024-04-30T11:26:00-04:00",
|
|
"2024-04-30T11:27:00-04:00",
|
|
"2024-04-30T11:28:00-04:00",
|
|
"2024-04-30T11:29:00-04:00",
|
|
"2024-04-30T11:30:00-04:00",
|
|
"2024-04-30T11:31:00-04:00",
|
|
"2024-04-30T11:32:00-04:00",
|
|
"2024-04-30T11:33:00-04:00",
|
|
"2024-04-30T11:34:00-04:00",
|
|
"2024-04-30T11:35:00-04:00",
|
|
"2024-04-30T11:36:00-04:00",
|
|
"2024-04-30T11:37:00-04:00",
|
|
"2024-04-30T11:38:00-04:00",
|
|
"2024-04-30T11:39:00-04:00",
|
|
"2024-04-30T11:40:00-04:00",
|
|
"2024-04-30T11:41:00-04:00",
|
|
"2024-04-30T11:42:00-04:00",
|
|
"2024-04-30T11:43:00-04:00",
|
|
"2024-04-30T11:44:00-04:00",
|
|
"2024-04-30T11:45:00-04:00",
|
|
"2024-04-30T11:46:00-04:00",
|
|
"2024-04-30T11:47:00-04:00",
|
|
"2024-04-30T11:48:00-04:00",
|
|
"2024-04-30T11:49:00-04:00",
|
|
"2024-04-30T11:50:00-04:00",
|
|
"2024-04-30T11:51:00-04:00",
|
|
"2024-04-30T11:52:00-04:00",
|
|
"2024-04-30T11:53:00-04:00",
|
|
"2024-04-30T11:54:00-04:00",
|
|
"2024-04-30T11:55:00-04:00",
|
|
"2024-04-30T11:56:00-04:00",
|
|
"2024-04-30T11:57:00-04:00",
|
|
"2024-04-30T11:58:00-04:00",
|
|
"2024-04-30T11:59:00-04:00",
|
|
"2024-04-30T12:00:00-04:00",
|
|
"2024-04-30T12:01:00-04:00",
|
|
"2024-04-30T12:02:00-04:00",
|
|
"2024-04-30T12:03:00-04:00",
|
|
"2024-04-30T12:04:00-04:00",
|
|
"2024-04-30T12:05:00-04:00",
|
|
"2024-04-30T12:06:00-04:00",
|
|
"2024-04-30T12:07:00-04:00",
|
|
"2024-04-30T12:08:00-04:00",
|
|
"2024-04-30T12:09:00-04:00",
|
|
"2024-04-30T12:10:00-04:00",
|
|
"2024-04-30T12:11:00-04:00",
|
|
"2024-04-30T12:12:00-04:00",
|
|
"2024-04-30T12:13:00-04:00",
|
|
"2024-04-30T12:14:00-04:00",
|
|
"2024-04-30T12:15:00-04:00",
|
|
"2024-04-30T12:16:00-04:00",
|
|
"2024-04-30T12:17:00-04:00",
|
|
"2024-04-30T12:18:00-04:00",
|
|
"2024-04-30T12:19:00-04:00",
|
|
"2024-04-30T12:20:00-04:00",
|
|
"2024-04-30T12:21:00-04:00",
|
|
"2024-04-30T12:22:00-04:00",
|
|
"2024-04-30T12:23:00-04:00",
|
|
"2024-04-30T12:24:00-04:00",
|
|
"2024-04-30T12:25:00-04:00",
|
|
"2024-04-30T12:26:00-04:00",
|
|
"2024-04-30T12:27:00-04:00",
|
|
"2024-04-30T12:28:00-04:00",
|
|
"2024-04-30T12:29:00-04:00",
|
|
"2024-04-30T12:30:00-04:00",
|
|
"2024-04-30T12:31:00-04:00",
|
|
"2024-04-30T12:32:00-04:00",
|
|
"2024-04-30T12:33:00-04:00",
|
|
"2024-04-30T12:34:00-04:00",
|
|
"2024-04-30T12:35:00-04:00",
|
|
"2024-04-30T12:36:00-04:00",
|
|
"2024-04-30T12:37:00-04:00",
|
|
"2024-04-30T12:38:00-04:00",
|
|
"2024-04-30T12:39:00-04:00",
|
|
"2024-04-30T12:40:00-04:00",
|
|
"2024-04-30T12:41:00-04:00",
|
|
"2024-04-30T12:42:00-04:00",
|
|
"2024-04-30T12:43:00-04:00",
|
|
"2024-04-30T12:44:00-04:00",
|
|
"2024-04-30T12:45:00-04:00",
|
|
"2024-04-30T12:46:00-04:00",
|
|
"2024-04-30T12:47:00-04:00",
|
|
"2024-04-30T12:48:00-04:00",
|
|
"2024-04-30T12:49:00-04:00",
|
|
"2024-04-30T12:50:00-04:00",
|
|
"2024-04-30T12:51:00-04:00",
|
|
"2024-04-30T12:52:00-04:00",
|
|
"2024-04-30T12:53:00-04:00",
|
|
"2024-04-30T12:54:00-04:00",
|
|
"2024-04-30T12:55:00-04:00",
|
|
"2024-04-30T12:56:00-04:00",
|
|
"2024-04-30T12:57:00-04:00",
|
|
"2024-04-30T12:58:00-04:00",
|
|
"2024-04-30T12:59:00-04:00",
|
|
"2024-04-30T13:00:00-04:00",
|
|
"2024-04-30T13:01:00-04:00",
|
|
"2024-04-30T13:02:00-04:00",
|
|
"2024-04-30T13:03:00-04:00",
|
|
"2024-04-30T13:04:00-04:00",
|
|
"2024-04-30T13:05:00-04:00",
|
|
"2024-04-30T13:06:00-04:00",
|
|
"2024-04-30T13:07:00-04:00",
|
|
"2024-04-30T13:08:00-04:00",
|
|
"2024-04-30T13:09:00-04:00",
|
|
"2024-04-30T13:10:00-04:00",
|
|
"2024-04-30T13:11:00-04:00",
|
|
"2024-04-30T13:12:00-04:00",
|
|
"2024-04-30T13:13:00-04:00",
|
|
"2024-04-30T13:14:00-04:00",
|
|
"2024-04-30T13:15:00-04:00",
|
|
"2024-04-30T13:16:00-04:00",
|
|
"2024-04-30T13:17:00-04:00",
|
|
"2024-04-30T13:18:00-04:00",
|
|
"2024-04-30T13:19:00-04:00",
|
|
"2024-04-30T13:20:00-04:00",
|
|
"2024-04-30T13:21:00-04:00",
|
|
"2024-04-30T13:22:00-04:00",
|
|
"2024-04-30T13:23:00-04:00",
|
|
"2024-04-30T13:24:00-04:00",
|
|
"2024-04-30T13:25:00-04:00",
|
|
"2024-04-30T13:26:00-04:00",
|
|
"2024-04-30T13:27:00-04:00",
|
|
"2024-04-30T13:28:00-04:00",
|
|
"2024-04-30T13:29:00-04:00",
|
|
"2024-04-30T13:30:00-04:00",
|
|
"2024-04-30T13:31:00-04:00",
|
|
"2024-04-30T13:32:00-04:00",
|
|
"2024-04-30T13:33:00-04:00",
|
|
"2024-04-30T13:34:00-04:00",
|
|
"2024-04-30T13:35:00-04:00",
|
|
"2024-04-30T13:36:00-04:00",
|
|
"2024-04-30T13:37:00-04:00",
|
|
"2024-04-30T13:38:00-04:00",
|
|
"2024-04-30T13:39:00-04:00",
|
|
"2024-04-30T13:40:00-04:00",
|
|
"2024-04-30T13:41:00-04:00",
|
|
"2024-04-30T13:42:00-04:00",
|
|
"2024-04-30T13:43:00-04:00",
|
|
"2024-04-30T13:44:00-04:00",
|
|
"2024-04-30T13:45:00-04:00",
|
|
"2024-04-30T13:46:00-04:00",
|
|
"2024-04-30T13:47:00-04:00",
|
|
"2024-04-30T13:48:00-04:00",
|
|
"2024-04-30T13:49:00-04:00",
|
|
"2024-04-30T13:50:00-04:00",
|
|
"2024-04-30T13:51:00-04:00",
|
|
"2024-04-30T13:52:00-04:00",
|
|
"2024-04-30T13:53:00-04:00",
|
|
"2024-04-30T13:54:00-04:00",
|
|
"2024-04-30T13:55:00-04:00",
|
|
"2024-04-30T13:56:00-04:00",
|
|
"2024-04-30T13:57:00-04:00",
|
|
"2024-04-30T13:58:00-04:00",
|
|
"2024-04-30T13:59:00-04:00",
|
|
"2024-04-30T14:00:00-04:00",
|
|
"2024-04-30T14:01:00-04:00",
|
|
"2024-04-30T14:02:00-04:00",
|
|
"2024-04-30T14:03:00-04:00",
|
|
"2024-04-30T14:04:00-04:00",
|
|
"2024-04-30T14:05:00-04:00",
|
|
"2024-04-30T14:06:00-04:00",
|
|
"2024-04-30T14:07:00-04:00",
|
|
"2024-04-30T14:08:00-04:00",
|
|
"2024-04-30T14:09:00-04:00",
|
|
"2024-04-30T14:10:00-04:00",
|
|
"2024-04-30T14:11:00-04:00",
|
|
"2024-04-30T14:12:00-04:00",
|
|
"2024-04-30T14:13:00-04:00",
|
|
"2024-04-30T14:14:00-04:00",
|
|
"2024-04-30T14:15:00-04:00",
|
|
"2024-04-30T14:16:00-04:00",
|
|
"2024-04-30T14:17:00-04:00",
|
|
"2024-04-30T14:18:00-04:00",
|
|
"2024-04-30T14:19:00-04:00",
|
|
"2024-04-30T14:20:00-04:00",
|
|
"2024-04-30T14:21:00-04:00",
|
|
"2024-04-30T14:22:00-04:00",
|
|
"2024-04-30T14:23:00-04:00",
|
|
"2024-04-30T14:24:00-04:00",
|
|
"2024-04-30T14:25:00-04:00",
|
|
"2024-04-30T14:26:00-04:00",
|
|
"2024-04-30T14:27:00-04:00",
|
|
"2024-04-30T14:28:00-04:00",
|
|
"2024-04-30T14:29:00-04:00",
|
|
"2024-04-30T14:30:00-04:00",
|
|
"2024-04-30T14:31:00-04:00",
|
|
"2024-04-30T14:32:00-04:00",
|
|
"2024-04-30T14:33:00-04:00",
|
|
"2024-04-30T14:34:00-04:00",
|
|
"2024-04-30T14:35:00-04:00",
|
|
"2024-04-30T14:36:00-04:00",
|
|
"2024-04-30T14:37:00-04:00",
|
|
"2024-04-30T14:38:00-04:00",
|
|
"2024-04-30T14:39:00-04:00",
|
|
"2024-04-30T14:40:00-04:00",
|
|
"2024-04-30T14:41:00-04:00",
|
|
"2024-04-30T14:42:00-04:00",
|
|
"2024-04-30T14:43:00-04:00",
|
|
"2024-04-30T14:44:00-04:00",
|
|
"2024-04-30T14:45:00-04:00",
|
|
"2024-04-30T14:46:00-04:00",
|
|
"2024-04-30T14:47:00-04:00",
|
|
"2024-04-30T14:48:00-04:00",
|
|
"2024-04-30T14:49:00-04:00",
|
|
"2024-04-30T14:50:00-04:00",
|
|
"2024-04-30T14:51:00-04:00",
|
|
"2024-04-30T14:52:00-04:00",
|
|
"2024-04-30T14:53:00-04:00",
|
|
"2024-04-30T14:54:00-04:00",
|
|
"2024-04-30T14:55:00-04:00",
|
|
"2024-04-30T14:56:00-04:00",
|
|
"2024-04-30T14:57:00-04:00",
|
|
"2024-04-30T14:58:00-04:00",
|
|
"2024-04-30T14:59:00-04:00",
|
|
"2024-04-30T15:00:00-04:00",
|
|
"2024-04-30T15:01:00-04:00",
|
|
"2024-04-30T15:02:00-04:00",
|
|
"2024-04-30T15:03:00-04:00",
|
|
"2024-04-30T15:04:00-04:00",
|
|
"2024-04-30T15:05:00-04:00",
|
|
"2024-04-30T15:06:00-04:00",
|
|
"2024-04-30T15:07:00-04:00",
|
|
"2024-04-30T15:08:00-04:00",
|
|
"2024-04-30T15:09:00-04:00",
|
|
"2024-04-30T15:10:00-04:00",
|
|
"2024-04-30T15:11:00-04:00",
|
|
"2024-04-30T15:12:00-04:00",
|
|
"2024-04-30T15:13:00-04:00",
|
|
"2024-04-30T15:14:00-04:00",
|
|
"2024-04-30T15:15:00-04:00",
|
|
"2024-04-30T15:16:00-04:00",
|
|
"2024-04-30T15:17:00-04:00",
|
|
"2024-04-30T15:18:00-04:00",
|
|
"2024-04-30T15:19:00-04:00",
|
|
"2024-04-30T15:20:00-04:00",
|
|
"2024-04-30T15:21:00-04:00",
|
|
"2024-04-30T15:22:00-04:00",
|
|
"2024-04-30T15:23:00-04:00",
|
|
"2024-04-30T15:24:00-04:00",
|
|
"2024-04-30T15:25:00-04:00",
|
|
"2024-04-30T15:26:00-04:00",
|
|
"2024-04-30T15:27:00-04:00",
|
|
"2024-04-30T15:28:00-04:00",
|
|
"2024-04-30T15:29:00-04:00",
|
|
"2024-04-30T15:30:00-04:00",
|
|
"2024-04-30T15:31:00-04:00",
|
|
"2024-04-30T15:32:00-04:00",
|
|
"2024-04-30T15:33:00-04:00",
|
|
"2024-04-30T15:34:00-04:00",
|
|
"2024-04-30T15:35:00-04:00",
|
|
"2024-04-30T15:36:00-04:00",
|
|
"2024-04-30T15:37:00-04:00",
|
|
"2024-04-30T15:38:00-04:00",
|
|
"2024-04-30T15:39:00-04:00",
|
|
"2024-04-30T15:40:00-04:00",
|
|
"2024-04-30T15:41:00-04:00",
|
|
"2024-04-30T15:42:00-04:00",
|
|
"2024-04-30T15:43:00-04:00",
|
|
"2024-04-30T15:44:00-04:00",
|
|
"2024-04-30T15:45:00-04:00",
|
|
"2024-04-30T15:46:00-04:00",
|
|
"2024-04-30T15:47:00-04:00",
|
|
"2024-04-30T15:48:00-04:00",
|
|
"2024-04-30T15:49:00-04:00",
|
|
"2024-04-30T15:50:00-04:00",
|
|
"2024-04-30T15:51:00-04:00",
|
|
"2024-04-30T15:52:00-04:00",
|
|
"2024-04-30T15:53:00-04:00",
|
|
"2024-04-30T15:54:00-04:00",
|
|
"2024-04-30T15:55:00-04:00",
|
|
"2024-04-30T15:56:00-04:00",
|
|
"2024-04-30T15:57:00-04:00",
|
|
"2024-04-30T15:58:00-04:00",
|
|
"2024-04-30T15:59:00-04:00",
|
|
"2024-04-30T16:00:00-04:00",
|
|
"2024-05-01T09:30:00-04:00",
|
|
"2024-05-01T09:31:00-04:00",
|
|
"2024-05-01T09:32:00-04:00",
|
|
"2024-05-01T09:33:00-04:00",
|
|
"2024-05-01T09:34:00-04:00",
|
|
"2024-05-01T09:35:00-04:00",
|
|
"2024-05-01T09:36:00-04:00",
|
|
"2024-05-01T09:37:00-04:00",
|
|
"2024-05-01T09:38:00-04:00",
|
|
"2024-05-01T09:39:00-04:00",
|
|
"2024-05-01T09:40:00-04:00",
|
|
"2024-05-01T09:41:00-04:00",
|
|
"2024-05-01T09:42:00-04:00",
|
|
"2024-05-01T09:43:00-04:00",
|
|
"2024-05-01T09:44:00-04:00",
|
|
"2024-05-01T09:45:00-04:00",
|
|
"2024-05-01T09:46:00-04:00",
|
|
"2024-05-01T09:47:00-04:00",
|
|
"2024-05-01T09:48:00-04:00",
|
|
"2024-05-01T09:49:00-04:00",
|
|
"2024-05-01T09:50:00-04:00",
|
|
"2024-05-01T09:51:00-04:00",
|
|
"2024-05-01T09:52:00-04:00",
|
|
"2024-05-01T09:53:00-04:00",
|
|
"2024-05-01T09:54:00-04:00",
|
|
"2024-05-01T09:55:00-04:00",
|
|
"2024-05-01T09:56:00-04:00",
|
|
"2024-05-01T09:57:00-04:00",
|
|
"2024-05-01T09:58:00-04:00",
|
|
"2024-05-01T09:59:00-04:00",
|
|
"2024-05-01T10:00:00-04:00",
|
|
"2024-05-01T10:01:00-04:00",
|
|
"2024-05-01T10:02:00-04:00",
|
|
"2024-05-01T10:03:00-04:00",
|
|
"2024-05-01T10:04:00-04:00",
|
|
"2024-05-01T10:05:00-04:00",
|
|
"2024-05-01T10:06:00-04:00",
|
|
"2024-05-01T10:07:00-04:00",
|
|
"2024-05-01T10:08:00-04:00",
|
|
"2024-05-01T10:09:00-04:00",
|
|
"2024-05-01T10:10:00-04:00",
|
|
"2024-05-01T10:11:00-04:00",
|
|
"2024-05-01T10:12:00-04:00",
|
|
"2024-05-01T10:13:00-04:00",
|
|
"2024-05-01T10:14:00-04:00",
|
|
"2024-05-01T10:15:00-04:00",
|
|
"2024-05-01T10:16:00-04:00",
|
|
"2024-05-01T10:17:00-04:00",
|
|
"2024-05-01T10:18:00-04:00",
|
|
"2024-05-01T10:19:00-04:00",
|
|
"2024-05-01T10:20:00-04:00",
|
|
"2024-05-01T10:21:00-04:00",
|
|
"2024-05-01T10:22:00-04:00",
|
|
"2024-05-01T10:23:00-04:00",
|
|
"2024-05-01T10:24:00-04:00",
|
|
"2024-05-01T10:25:00-04:00",
|
|
"2024-05-01T10:26:00-04:00",
|
|
"2024-05-01T10:27:00-04:00",
|
|
"2024-05-01T10:28:00-04:00",
|
|
"2024-05-01T10:29:00-04:00",
|
|
"2024-05-01T10:30:00-04:00",
|
|
"2024-05-01T10:31:00-04:00",
|
|
"2024-05-01T10:32:00-04:00",
|
|
"2024-05-01T10:33:00-04:00",
|
|
"2024-05-01T10:34:00-04:00",
|
|
"2024-05-01T10:35:00-04:00",
|
|
"2024-05-01T10:36:00-04:00",
|
|
"2024-05-01T10:37:00-04:00",
|
|
"2024-05-01T10:38:00-04:00",
|
|
"2024-05-01T10:39:00-04:00",
|
|
"2024-05-01T10:40:00-04:00",
|
|
"2024-05-01T10:41:00-04:00",
|
|
"2024-05-01T10:42:00-04:00",
|
|
"2024-05-01T10:43:00-04:00",
|
|
"2024-05-01T10:44:00-04:00",
|
|
"2024-05-01T10:45:00-04:00",
|
|
"2024-05-01T10:46:00-04:00",
|
|
"2024-05-01T10:47:00-04:00",
|
|
"2024-05-01T10:48:00-04:00",
|
|
"2024-05-01T10:49:00-04:00",
|
|
"2024-05-01T10:50:00-04:00",
|
|
"2024-05-01T10:51:00-04:00",
|
|
"2024-05-01T10:52:00-04:00",
|
|
"2024-05-01T10:53:00-04:00",
|
|
"2024-05-01T10:54:00-04:00",
|
|
"2024-05-01T10:55:00-04:00",
|
|
"2024-05-01T10:56:00-04:00",
|
|
"2024-05-01T10:57:00-04:00",
|
|
"2024-05-01T10:58:00-04:00",
|
|
"2024-05-01T10:59:00-04:00",
|
|
"2024-05-01T11:00:00-04:00",
|
|
"2024-05-01T11:01:00-04:00",
|
|
"2024-05-01T11:02:00-04:00",
|
|
"2024-05-01T11:03:00-04:00",
|
|
"2024-05-01T11:04:00-04:00",
|
|
"2024-05-01T11:05:00-04:00",
|
|
"2024-05-01T11:06:00-04:00",
|
|
"2024-05-01T11:07:00-04:00",
|
|
"2024-05-01T11:08:00-04:00",
|
|
"2024-05-01T11:09:00-04:00",
|
|
"2024-05-01T11:10:00-04:00",
|
|
"2024-05-01T11:11:00-04:00",
|
|
"2024-05-01T11:12:00-04:00",
|
|
"2024-05-01T11:13:00-04:00",
|
|
"2024-05-01T11:14:00-04:00",
|
|
"2024-05-01T11:15:00-04:00",
|
|
"2024-05-01T11:16:00-04:00",
|
|
"2024-05-01T11:17:00-04:00",
|
|
"2024-05-01T11:18:00-04:00",
|
|
"2024-05-01T11:19:00-04:00",
|
|
"2024-05-01T11:20:00-04:00",
|
|
"2024-05-01T11:21:00-04:00",
|
|
"2024-05-01T11:22:00-04:00",
|
|
"2024-05-01T11:23:00-04:00",
|
|
"2024-05-01T11:24:00-04:00",
|
|
"2024-05-01T11:25:00-04:00",
|
|
"2024-05-01T11:26:00-04:00",
|
|
"2024-05-01T11:27:00-04:00",
|
|
"2024-05-01T11:28:00-04:00",
|
|
"2024-05-01T11:29:00-04:00",
|
|
"2024-05-01T11:30:00-04:00",
|
|
"2024-05-01T11:31:00-04:00",
|
|
"2024-05-01T11:32:00-04:00",
|
|
"2024-05-01T11:33:00-04:00",
|
|
"2024-05-01T11:34:00-04:00",
|
|
"2024-05-01T11:35:00-04:00",
|
|
"2024-05-01T11:36:00-04:00",
|
|
"2024-05-01T11:37:00-04:00",
|
|
"2024-05-01T11:38:00-04:00",
|
|
"2024-05-01T11:39:00-04:00",
|
|
"2024-05-01T11:40:00-04:00",
|
|
"2024-05-01T11:41:00-04:00",
|
|
"2024-05-01T11:42:00-04:00",
|
|
"2024-05-01T11:43:00-04:00",
|
|
"2024-05-01T11:44:00-04:00",
|
|
"2024-05-01T11:45:00-04:00",
|
|
"2024-05-01T11:46:00-04:00",
|
|
"2024-05-01T11:47:00-04:00",
|
|
"2024-05-01T11:48:00-04:00",
|
|
"2024-05-01T11:49:00-04:00",
|
|
"2024-05-01T11:50:00-04:00",
|
|
"2024-05-01T11:51:00-04:00",
|
|
"2024-05-01T11:52:00-04:00",
|
|
"2024-05-01T11:53:00-04:00",
|
|
"2024-05-01T11:54:00-04:00",
|
|
"2024-05-01T11:55:00-04:00",
|
|
"2024-05-01T11:56:00-04:00",
|
|
"2024-05-01T11:57:00-04:00",
|
|
"2024-05-01T11:58:00-04:00",
|
|
"2024-05-01T11:59:00-04:00",
|
|
"2024-05-01T12:00:00-04:00",
|
|
"2024-05-01T12:01:00-04:00",
|
|
"2024-05-01T12:02:00-04:00",
|
|
"2024-05-01T12:03:00-04:00",
|
|
"2024-05-01T12:04:00-04:00",
|
|
"2024-05-01T12:05:00-04:00",
|
|
"2024-05-01T12:06:00-04:00",
|
|
"2024-05-01T12:07:00-04:00",
|
|
"2024-05-01T12:08:00-04:00",
|
|
"2024-05-01T12:09:00-04:00",
|
|
"2024-05-01T12:10:00-04:00",
|
|
"2024-05-01T12:11:00-04:00",
|
|
"2024-05-01T12:12:00-04:00",
|
|
"2024-05-01T12:13:00-04:00",
|
|
"2024-05-01T12:14:00-04:00",
|
|
"2024-05-01T12:15:00-04:00",
|
|
"2024-05-01T12:16:00-04:00",
|
|
"2024-05-01T12:17:00-04:00",
|
|
"2024-05-01T12:18:00-04:00",
|
|
"2024-05-01T12:19:00-04:00",
|
|
"2024-05-01T12:20:00-04:00",
|
|
"2024-05-01T12:21:00-04:00",
|
|
"2024-05-01T12:22:00-04:00",
|
|
"2024-05-01T12:23:00-04:00",
|
|
"2024-05-01T12:24:00-04:00",
|
|
"2024-05-01T12:25:00-04:00",
|
|
"2024-05-01T12:26:00-04:00",
|
|
"2024-05-01T12:27:00-04:00",
|
|
"2024-05-01T12:28:00-04:00",
|
|
"2024-05-01T12:29:00-04:00",
|
|
"2024-05-01T12:30:00-04:00",
|
|
"2024-05-01T12:31:00-04:00",
|
|
"2024-05-01T12:32:00-04:00",
|
|
"2024-05-01T12:33:00-04:00",
|
|
"2024-05-01T12:34:00-04:00",
|
|
"2024-05-01T12:35:00-04:00",
|
|
"2024-05-01T12:36:00-04:00",
|
|
"2024-05-01T12:37:00-04:00",
|
|
"2024-05-01T12:38:00-04:00",
|
|
"2024-05-01T12:39:00-04:00",
|
|
"2024-05-01T12:40:00-04:00",
|
|
"2024-05-01T12:41:00-04:00",
|
|
"2024-05-01T12:42:00-04:00",
|
|
"2024-05-01T12:43:00-04:00",
|
|
"2024-05-01T12:44:00-04:00",
|
|
"2024-05-01T12:45:00-04:00",
|
|
"2024-05-01T12:46:00-04:00",
|
|
"2024-05-01T12:47:00-04:00",
|
|
"2024-05-01T12:48:00-04:00",
|
|
"2024-05-01T12:49:00-04:00",
|
|
"2024-05-01T12:50:00-04:00",
|
|
"2024-05-01T12:51:00-04:00",
|
|
"2024-05-01T12:52:00-04:00",
|
|
"2024-05-01T12:53:00-04:00",
|
|
"2024-05-01T12:54:00-04:00",
|
|
"2024-05-01T12:55:00-04:00",
|
|
"2024-05-01T12:56:00-04:00",
|
|
"2024-05-01T12:57:00-04:00",
|
|
"2024-05-01T12:58:00-04:00",
|
|
"2024-05-01T12:59:00-04:00",
|
|
"2024-05-01T13:00:00-04:00",
|
|
"2024-05-01T13:01:00-04:00",
|
|
"2024-05-01T13:02:00-04:00",
|
|
"2024-05-01T13:03:00-04:00",
|
|
"2024-05-01T13:04:00-04:00",
|
|
"2024-05-01T13:05:00-04:00",
|
|
"2024-05-01T13:06:00-04:00",
|
|
"2024-05-01T13:07:00-04:00",
|
|
"2024-05-01T13:08:00-04:00",
|
|
"2024-05-01T13:09:00-04:00",
|
|
"2024-05-01T13:10:00-04:00",
|
|
"2024-05-01T13:11:00-04:00",
|
|
"2024-05-01T13:12:00-04:00",
|
|
"2024-05-01T13:13:00-04:00",
|
|
"2024-05-01T13:14:00-04:00",
|
|
"2024-05-01T13:15:00-04:00",
|
|
"2024-05-01T13:16:00-04:00",
|
|
"2024-05-01T13:17:00-04:00",
|
|
"2024-05-01T13:18:00-04:00",
|
|
"2024-05-01T13:19:00-04:00",
|
|
"2024-05-01T13:20:00-04:00",
|
|
"2024-05-01T13:21:00-04:00",
|
|
"2024-05-01T13:22:00-04:00",
|
|
"2024-05-01T13:23:00-04:00",
|
|
"2024-05-01T13:24:00-04:00",
|
|
"2024-05-01T13:25:00-04:00",
|
|
"2024-05-01T13:26:00-04:00",
|
|
"2024-05-01T13:27:00-04:00",
|
|
"2024-05-01T13:28:00-04:00",
|
|
"2024-05-01T13:29:00-04:00",
|
|
"2024-05-01T13:30:00-04:00",
|
|
"2024-05-01T13:31:00-04:00",
|
|
"2024-05-01T13:32:00-04:00",
|
|
"2024-05-01T13:33:00-04:00",
|
|
"2024-05-01T13:34:00-04:00",
|
|
"2024-05-01T13:35:00-04:00",
|
|
"2024-05-01T13:36:00-04:00",
|
|
"2024-05-01T13:37:00-04:00",
|
|
"2024-05-01T13:38:00-04:00",
|
|
"2024-05-01T13:39:00-04:00",
|
|
"2024-05-01T13:40:00-04:00",
|
|
"2024-05-01T13:41:00-04:00",
|
|
"2024-05-01T13:42:00-04:00",
|
|
"2024-05-01T13:43:00-04:00",
|
|
"2024-05-01T13:44:00-04:00",
|
|
"2024-05-01T13:45:00-04:00",
|
|
"2024-05-01T13:46:00-04:00",
|
|
"2024-05-01T13:47:00-04:00",
|
|
"2024-05-01T13:48:00-04:00",
|
|
"2024-05-01T13:49:00-04:00",
|
|
"2024-05-01T13:50:00-04:00",
|
|
"2024-05-01T13:51:00-04:00",
|
|
"2024-05-01T13:52:00-04:00",
|
|
"2024-05-01T13:53:00-04:00",
|
|
"2024-05-01T13:54:00-04:00",
|
|
"2024-05-01T13:55:00-04:00",
|
|
"2024-05-01T13:56:00-04:00",
|
|
"2024-05-01T13:57:00-04:00",
|
|
"2024-05-01T13:58:00-04:00",
|
|
"2024-05-01T13:59:00-04:00",
|
|
"2024-05-01T14:00:00-04:00",
|
|
"2024-05-01T14:01:00-04:00",
|
|
"2024-05-01T14:02:00-04:00",
|
|
"2024-05-01T14:03:00-04:00",
|
|
"2024-05-01T14:04:00-04:00",
|
|
"2024-05-01T14:05:00-04:00",
|
|
"2024-05-01T14:06:00-04:00",
|
|
"2024-05-01T14:07:00-04:00",
|
|
"2024-05-01T14:08:00-04:00",
|
|
"2024-05-01T14:09:00-04:00",
|
|
"2024-05-01T14:10:00-04:00",
|
|
"2024-05-01T14:11:00-04:00",
|
|
"2024-05-01T14:12:00-04:00",
|
|
"2024-05-01T14:13:00-04:00",
|
|
"2024-05-01T14:14:00-04:00",
|
|
"2024-05-01T14:15:00-04:00",
|
|
"2024-05-01T14:16:00-04:00",
|
|
"2024-05-01T14:17:00-04:00",
|
|
"2024-05-01T14:18:00-04:00",
|
|
"2024-05-01T14:19:00-04:00",
|
|
"2024-05-01T14:20:00-04:00",
|
|
"2024-05-01T14:21:00-04:00",
|
|
"2024-05-01T14:22:00-04:00",
|
|
"2024-05-01T14:23:00-04:00",
|
|
"2024-05-01T14:24:00-04:00",
|
|
"2024-05-01T14:25:00-04:00",
|
|
"2024-05-01T14:26:00-04:00",
|
|
"2024-05-01T14:27:00-04:00",
|
|
"2024-05-01T14:28:00-04:00",
|
|
"2024-05-01T14:29:00-04:00",
|
|
"2024-05-01T14:30:00-04:00",
|
|
"2024-05-01T14:31:00-04:00",
|
|
"2024-05-01T14:32:00-04:00",
|
|
"2024-05-01T14:33:00-04:00",
|
|
"2024-05-01T14:34:00-04:00",
|
|
"2024-05-01T14:35:00-04:00",
|
|
"2024-05-01T14:36:00-04:00",
|
|
"2024-05-01T14:37:00-04:00",
|
|
"2024-05-01T14:38:00-04:00",
|
|
"2024-05-01T14:39:00-04:00",
|
|
"2024-05-01T14:40:00-04:00",
|
|
"2024-05-01T14:41:00-04:00",
|
|
"2024-05-01T14:42:00-04:00",
|
|
"2024-05-01T14:43:00-04:00",
|
|
"2024-05-01T14:44:00-04:00",
|
|
"2024-05-01T14:45:00-04:00",
|
|
"2024-05-01T14:46:00-04:00",
|
|
"2024-05-01T14:47:00-04:00",
|
|
"2024-05-01T14:48:00-04:00",
|
|
"2024-05-01T14:49:00-04:00",
|
|
"2024-05-01T14:50:00-04:00",
|
|
"2024-05-01T14:51:00-04:00",
|
|
"2024-05-01T14:52:00-04:00",
|
|
"2024-05-01T14:53:00-04:00",
|
|
"2024-05-01T14:54:00-04:00",
|
|
"2024-05-01T14:55:00-04:00",
|
|
"2024-05-01T14:56:00-04:00",
|
|
"2024-05-01T14:57:00-04:00",
|
|
"2024-05-01T14:58:00-04:00",
|
|
"2024-05-01T14:59:00-04:00",
|
|
"2024-05-01T15:00:00-04:00",
|
|
"2024-05-01T15:01:00-04:00",
|
|
"2024-05-01T15:02:00-04:00",
|
|
"2024-05-01T15:03:00-04:00",
|
|
"2024-05-01T15:04:00-04:00",
|
|
"2024-05-01T15:05:00-04:00",
|
|
"2024-05-01T15:06:00-04:00",
|
|
"2024-05-01T15:07:00-04:00",
|
|
"2024-05-01T15:08:00-04:00",
|
|
"2024-05-01T15:09:00-04:00",
|
|
"2024-05-01T15:10:00-04:00",
|
|
"2024-05-01T15:11:00-04:00",
|
|
"2024-05-01T15:12:00-04:00",
|
|
"2024-05-01T15:13:00-04:00",
|
|
"2024-05-01T15:14:00-04:00",
|
|
"2024-05-01T15:15:00-04:00",
|
|
"2024-05-01T15:16:00-04:00",
|
|
"2024-05-01T15:17:00-04:00",
|
|
"2024-05-01T15:18:00-04:00",
|
|
"2024-05-01T15:19:00-04:00",
|
|
"2024-05-01T15:20:00-04:00",
|
|
"2024-05-01T15:21:00-04:00",
|
|
"2024-05-01T15:22:00-04:00",
|
|
"2024-05-01T15:23:00-04:00",
|
|
"2024-05-01T15:24:00-04:00",
|
|
"2024-05-01T15:25:00-04:00",
|
|
"2024-05-01T15:26:00-04:00",
|
|
"2024-05-01T15:27:00-04:00",
|
|
"2024-05-01T15:28:00-04:00",
|
|
"2024-05-01T15:29:00-04:00",
|
|
"2024-05-01T15:30:00-04:00",
|
|
"2024-05-01T15:31:00-04:00",
|
|
"2024-05-01T15:32:00-04:00",
|
|
"2024-05-01T15:33:00-04:00",
|
|
"2024-05-01T15:34:00-04:00",
|
|
"2024-05-01T15:35:00-04:00",
|
|
"2024-05-01T15:36:00-04:00",
|
|
"2024-05-01T15:37:00-04:00",
|
|
"2024-05-01T15:38:00-04:00",
|
|
"2024-05-01T15:39:00-04:00",
|
|
"2024-05-01T15:40:00-04:00",
|
|
"2024-05-01T15:41:00-04:00",
|
|
"2024-05-01T15:42:00-04:00",
|
|
"2024-05-01T15:43:00-04:00",
|
|
"2024-05-01T15:44:00-04:00",
|
|
"2024-05-01T15:45:00-04:00",
|
|
"2024-05-01T15:46:00-04:00",
|
|
"2024-05-01T15:47:00-04:00",
|
|
"2024-05-01T15:48:00-04:00",
|
|
"2024-05-01T15:49:00-04:00",
|
|
"2024-05-01T15:50:00-04:00",
|
|
"2024-05-01T15:51:00-04:00",
|
|
"2024-05-01T15:52:00-04:00",
|
|
"2024-05-01T15:53:00-04:00",
|
|
"2024-05-01T15:54:00-04:00",
|
|
"2024-05-01T15:55:00-04:00",
|
|
"2024-05-01T15:56:00-04:00",
|
|
"2024-05-01T15:57:00-04:00",
|
|
"2024-05-01T15:58:00-04:00",
|
|
"2024-05-01T15:59:00-04:00",
|
|
"2024-05-01T16:00:00-04:00",
|
|
"2024-05-02T09:30:00-04:00",
|
|
"2024-05-02T09:31:00-04:00",
|
|
"2024-05-02T09:32:00-04:00",
|
|
"2024-05-02T09:33:00-04:00",
|
|
"2024-05-02T09:34:00-04:00",
|
|
"2024-05-02T09:35:00-04:00",
|
|
"2024-05-02T09:36:00-04:00",
|
|
"2024-05-02T09:37:00-04:00",
|
|
"2024-05-02T09:38:00-04:00",
|
|
"2024-05-02T09:39:00-04:00",
|
|
"2024-05-02T09:40:00-04:00",
|
|
"2024-05-02T09:41:00-04:00",
|
|
"2024-05-02T09:42:00-04:00",
|
|
"2024-05-02T09:43:00-04:00",
|
|
"2024-05-02T09:44:00-04:00",
|
|
"2024-05-02T09:45:00-04:00",
|
|
"2024-05-02T09:46:00-04:00",
|
|
"2024-05-02T09:47:00-04:00",
|
|
"2024-05-02T09:48:00-04:00",
|
|
"2024-05-02T09:49:00-04:00",
|
|
"2024-05-02T09:50:00-04:00",
|
|
"2024-05-02T09:51:00-04:00",
|
|
"2024-05-02T09:52:00-04:00",
|
|
"2024-05-02T09:53:00-04:00",
|
|
"2024-05-02T09:54:00-04:00",
|
|
"2024-05-02T09:55:00-04:00",
|
|
"2024-05-02T09:56:00-04:00",
|
|
"2024-05-02T09:57:00-04:00",
|
|
"2024-05-02T09:58:00-04:00",
|
|
"2024-05-02T09:59:00-04:00",
|
|
"2024-05-02T10:00:00-04:00",
|
|
"2024-05-02T10:01:00-04:00",
|
|
"2024-05-02T10:02:00-04:00",
|
|
"2024-05-02T10:03:00-04:00",
|
|
"2024-05-02T10:04:00-04:00",
|
|
"2024-05-02T10:05:00-04:00",
|
|
"2024-05-02T10:06:00-04:00",
|
|
"2024-05-02T10:07:00-04:00",
|
|
"2024-05-02T10:08:00-04:00",
|
|
"2024-05-02T10:09:00-04:00",
|
|
"2024-05-02T10:10:00-04:00",
|
|
"2024-05-02T10:11:00-04:00",
|
|
"2024-05-02T10:12:00-04:00",
|
|
"2024-05-02T10:13:00-04:00",
|
|
"2024-05-02T10:14:00-04:00",
|
|
"2024-05-02T10:15:00-04:00",
|
|
"2024-05-02T10:16:00-04:00",
|
|
"2024-05-02T10:17:00-04:00",
|
|
"2024-05-02T10:18:00-04:00",
|
|
"2024-05-02T10:19:00-04:00",
|
|
"2024-05-02T10:20:00-04:00",
|
|
"2024-05-02T10:21:00-04:00",
|
|
"2024-05-02T10:22:00-04:00",
|
|
"2024-05-02T10:23:00-04:00",
|
|
"2024-05-02T10:24:00-04:00",
|
|
"2024-05-02T10:25:00-04:00",
|
|
"2024-05-02T10:26:00-04:00",
|
|
"2024-05-02T10:27:00-04:00",
|
|
"2024-05-02T10:28:00-04:00",
|
|
"2024-05-02T10:29:00-04:00",
|
|
"2024-05-02T10:30:00-04:00",
|
|
"2024-05-02T10:31:00-04:00",
|
|
"2024-05-02T10:32:00-04:00",
|
|
"2024-05-02T10:33:00-04:00",
|
|
"2024-05-02T10:34:00-04:00",
|
|
"2024-05-02T10:35:00-04:00",
|
|
"2024-05-02T10:36:00-04:00",
|
|
"2024-05-02T10:37:00-04:00",
|
|
"2024-05-02T10:38:00-04:00",
|
|
"2024-05-02T10:39:00-04:00",
|
|
"2024-05-02T10:40:00-04:00",
|
|
"2024-05-02T10:41:00-04:00",
|
|
"2024-05-02T10:42:00-04:00",
|
|
"2024-05-02T10:43:00-04:00",
|
|
"2024-05-02T10:44:00-04:00",
|
|
"2024-05-02T10:45:00-04:00",
|
|
"2024-05-02T10:46:00-04:00",
|
|
"2024-05-02T10:47:00-04:00",
|
|
"2024-05-02T10:48:00-04:00",
|
|
"2024-05-02T10:49:00-04:00",
|
|
"2024-05-02T10:50:00-04:00",
|
|
"2024-05-02T10:51:00-04:00",
|
|
"2024-05-02T10:52:00-04:00",
|
|
"2024-05-02T10:53:00-04:00",
|
|
"2024-05-02T10:54:00-04:00",
|
|
"2024-05-02T10:55:00-04:00",
|
|
"2024-05-02T10:56:00-04:00",
|
|
"2024-05-02T10:57:00-04:00",
|
|
"2024-05-02T10:58:00-04:00",
|
|
"2024-05-02T10:59:00-04:00",
|
|
"2024-05-02T11:00:00-04:00",
|
|
"2024-05-02T11:01:00-04:00",
|
|
"2024-05-02T11:02:00-04:00",
|
|
"2024-05-02T11:03:00-04:00",
|
|
"2024-05-02T11:04:00-04:00",
|
|
"2024-05-02T11:05:00-04:00",
|
|
"2024-05-02T11:06:00-04:00",
|
|
"2024-05-02T11:07:00-04:00",
|
|
"2024-05-02T11:08:00-04:00",
|
|
"2024-05-02T11:09:00-04:00",
|
|
"2024-05-02T11:10:00-04:00",
|
|
"2024-05-02T11:11:00-04:00",
|
|
"2024-05-02T11:12:00-04:00",
|
|
"2024-05-02T11:13:00-04:00",
|
|
"2024-05-02T11:14:00-04:00",
|
|
"2024-05-02T11:15:00-04:00",
|
|
"2024-05-02T11:16:00-04:00",
|
|
"2024-05-02T11:17:00-04:00",
|
|
"2024-05-02T11:18:00-04:00",
|
|
"2024-05-02T11:19:00-04:00",
|
|
"2024-05-02T11:20:00-04:00",
|
|
"2024-05-02T11:21:00-04:00",
|
|
"2024-05-02T11:22:00-04:00",
|
|
"2024-05-02T11:23:00-04:00",
|
|
"2024-05-02T11:24:00-04:00",
|
|
"2024-05-02T11:25:00-04:00",
|
|
"2024-05-02T11:26:00-04:00",
|
|
"2024-05-02T11:27:00-04:00",
|
|
"2024-05-02T11:28:00-04:00",
|
|
"2024-05-02T11:29:00-04:00",
|
|
"2024-05-02T11:30:00-04:00",
|
|
"2024-05-02T11:31:00-04:00",
|
|
"2024-05-02T11:32:00-04:00",
|
|
"2024-05-02T11:33:00-04:00",
|
|
"2024-05-02T11:34:00-04:00",
|
|
"2024-05-02T11:35:00-04:00",
|
|
"2024-05-02T11:36:00-04:00",
|
|
"2024-05-02T11:37:00-04:00",
|
|
"2024-05-02T11:38:00-04:00",
|
|
"2024-05-02T11:39:00-04:00",
|
|
"2024-05-02T11:40:00-04:00",
|
|
"2024-05-02T11:41:00-04:00",
|
|
"2024-05-02T11:42:00-04:00",
|
|
"2024-05-02T11:43:00-04:00",
|
|
"2024-05-02T11:44:00-04:00",
|
|
"2024-05-02T11:45:00-04:00",
|
|
"2024-05-02T11:46:00-04:00",
|
|
"2024-05-02T11:47:00-04:00",
|
|
"2024-05-02T11:48:00-04:00",
|
|
"2024-05-02T11:49:00-04:00",
|
|
"2024-05-02T11:50:00-04:00",
|
|
"2024-05-02T11:51:00-04:00",
|
|
"2024-05-02T11:52:00-04:00",
|
|
"2024-05-02T11:53:00-04:00",
|
|
"2024-05-02T11:54:00-04:00",
|
|
"2024-05-02T11:55:00-04:00",
|
|
"2024-05-02T11:56:00-04:00",
|
|
"2024-05-02T11:57:00-04:00",
|
|
"2024-05-02T11:58:00-04:00",
|
|
"2024-05-02T11:59:00-04:00",
|
|
"2024-05-02T12:00:00-04:00",
|
|
"2024-05-02T12:01:00-04:00",
|
|
"2024-05-02T12:02:00-04:00",
|
|
"2024-05-02T12:03:00-04:00",
|
|
"2024-05-02T12:04:00-04:00",
|
|
"2024-05-02T12:05:00-04:00",
|
|
"2024-05-02T12:06:00-04:00",
|
|
"2024-05-02T12:07:00-04:00",
|
|
"2024-05-02T12:08:00-04:00",
|
|
"2024-05-02T12:09:00-04:00",
|
|
"2024-05-02T12:10:00-04:00",
|
|
"2024-05-02T12:11:00-04:00",
|
|
"2024-05-02T12:12:00-04:00",
|
|
"2024-05-02T12:13:00-04:00",
|
|
"2024-05-02T12:14:00-04:00",
|
|
"2024-05-02T12:15:00-04:00",
|
|
"2024-05-02T12:16:00-04:00",
|
|
"2024-05-02T12:17:00-04:00",
|
|
"2024-05-02T12:18:00-04:00",
|
|
"2024-05-02T12:19:00-04:00",
|
|
"2024-05-02T12:20:00-04:00",
|
|
"2024-05-02T12:21:00-04:00",
|
|
"2024-05-02T12:22:00-04:00",
|
|
"2024-05-02T12:23:00-04:00",
|
|
"2024-05-02T12:24:00-04:00",
|
|
"2024-05-02T12:25:00-04:00",
|
|
"2024-05-02T12:26:00-04:00",
|
|
"2024-05-02T12:27:00-04:00",
|
|
"2024-05-02T12:28:00-04:00",
|
|
"2024-05-02T12:29:00-04:00",
|
|
"2024-05-02T12:30:00-04:00",
|
|
"2024-05-02T12:31:00-04:00",
|
|
"2024-05-02T12:32:00-04:00",
|
|
"2024-05-02T12:33:00-04:00",
|
|
"2024-05-02T12:34:00-04:00",
|
|
"2024-05-02T12:35:00-04:00",
|
|
"2024-05-02T12:36:00-04:00",
|
|
"2024-05-02T12:37:00-04:00",
|
|
"2024-05-02T12:38:00-04:00",
|
|
"2024-05-02T12:39:00-04:00",
|
|
"2024-05-02T12:40:00-04:00",
|
|
"2024-05-02T12:41:00-04:00",
|
|
"2024-05-02T12:42:00-04:00",
|
|
"2024-05-02T12:43:00-04:00",
|
|
"2024-05-02T12:44:00-04:00",
|
|
"2024-05-02T12:45:00-04:00",
|
|
"2024-05-02T12:46:00-04:00",
|
|
"2024-05-02T12:47:00-04:00",
|
|
"2024-05-02T12:48:00-04:00",
|
|
"2024-05-02T12:49:00-04:00",
|
|
"2024-05-02T12:50:00-04:00",
|
|
"2024-05-02T12:51:00-04:00",
|
|
"2024-05-02T12:52:00-04:00",
|
|
"2024-05-02T12:53:00-04:00",
|
|
"2024-05-02T12:54:00-04:00",
|
|
"2024-05-02T12:55:00-04:00",
|
|
"2024-05-02T12:56:00-04:00",
|
|
"2024-05-02T12:57:00-04:00",
|
|
"2024-05-02T12:58:00-04:00",
|
|
"2024-05-02T12:59:00-04:00",
|
|
"2024-05-02T13:00:00-04:00",
|
|
"2024-05-02T13:01:00-04:00",
|
|
"2024-05-02T13:02:00-04:00",
|
|
"2024-05-02T13:03:00-04:00",
|
|
"2024-05-02T13:04:00-04:00",
|
|
"2024-05-02T13:05:00-04:00",
|
|
"2024-05-02T13:06:00-04:00",
|
|
"2024-05-02T13:07:00-04:00",
|
|
"2024-05-02T13:08:00-04:00",
|
|
"2024-05-02T13:09:00-04:00",
|
|
"2024-05-02T13:10:00-04:00",
|
|
"2024-05-02T13:11:00-04:00",
|
|
"2024-05-02T13:12:00-04:00",
|
|
"2024-05-02T13:13:00-04:00",
|
|
"2024-05-02T13:14:00-04:00",
|
|
"2024-05-02T13:15:00-04:00",
|
|
"2024-05-02T13:16:00-04:00",
|
|
"2024-05-02T13:17:00-04:00",
|
|
"2024-05-02T13:18:00-04:00",
|
|
"2024-05-02T13:19:00-04:00",
|
|
"2024-05-02T13:20:00-04:00",
|
|
"2024-05-02T13:21:00-04:00",
|
|
"2024-05-02T13:22:00-04:00",
|
|
"2024-05-02T13:23:00-04:00",
|
|
"2024-05-02T13:24:00-04:00",
|
|
"2024-05-02T13:25:00-04:00",
|
|
"2024-05-02T13:26:00-04:00",
|
|
"2024-05-02T13:27:00-04:00",
|
|
"2024-05-02T13:28:00-04:00",
|
|
"2024-05-02T13:29:00-04:00",
|
|
"2024-05-02T13:30:00-04:00",
|
|
"2024-05-02T13:31:00-04:00",
|
|
"2024-05-02T13:32:00-04:00",
|
|
"2024-05-02T13:33:00-04:00",
|
|
"2024-05-02T13:34:00-04:00",
|
|
"2024-05-02T13:35:00-04:00",
|
|
"2024-05-02T13:36:00-04:00",
|
|
"2024-05-02T13:37:00-04:00",
|
|
"2024-05-02T13:38:00-04:00",
|
|
"2024-05-02T13:39:00-04:00",
|
|
"2024-05-02T13:40:00-04:00",
|
|
"2024-05-02T13:41:00-04:00",
|
|
"2024-05-02T13:42:00-04:00",
|
|
"2024-05-02T13:43:00-04:00",
|
|
"2024-05-02T13:44:00-04:00",
|
|
"2024-05-02T13:45:00-04:00",
|
|
"2024-05-02T13:46:00-04:00",
|
|
"2024-05-02T13:47:00-04:00",
|
|
"2024-05-02T13:48:00-04:00",
|
|
"2024-05-02T13:49:00-04:00",
|
|
"2024-05-02T13:50:00-04:00",
|
|
"2024-05-02T13:51:00-04:00",
|
|
"2024-05-02T13:52:00-04:00",
|
|
"2024-05-02T13:53:00-04:00",
|
|
"2024-05-02T13:54:00-04:00",
|
|
"2024-05-02T13:55:00-04:00",
|
|
"2024-05-02T13:56:00-04:00",
|
|
"2024-05-02T13:57:00-04:00",
|
|
"2024-05-02T13:58:00-04:00",
|
|
"2024-05-02T13:59:00-04:00",
|
|
"2024-05-02T14:00:00-04:00",
|
|
"2024-05-02T14:01:00-04:00",
|
|
"2024-05-02T14:02:00-04:00",
|
|
"2024-05-02T14:03:00-04:00",
|
|
"2024-05-02T14:04:00-04:00",
|
|
"2024-05-02T14:05:00-04:00",
|
|
"2024-05-02T14:06:00-04:00",
|
|
"2024-05-02T14:07:00-04:00",
|
|
"2024-05-02T14:08:00-04:00",
|
|
"2024-05-02T14:09:00-04:00",
|
|
"2024-05-02T14:10:00-04:00",
|
|
"2024-05-02T14:11:00-04:00",
|
|
"2024-05-02T14:12:00-04:00",
|
|
"2024-05-02T14:13:00-04:00",
|
|
"2024-05-02T14:14:00-04:00",
|
|
"2024-05-02T14:15:00-04:00",
|
|
"2024-05-02T14:16:00-04:00",
|
|
"2024-05-02T14:17:00-04:00",
|
|
"2024-05-02T14:18:00-04:00",
|
|
"2024-05-02T14:19:00-04:00",
|
|
"2024-05-02T14:20:00-04:00",
|
|
"2024-05-02T14:21:00-04:00",
|
|
"2024-05-02T14:22:00-04:00",
|
|
"2024-05-02T14:23:00-04:00",
|
|
"2024-05-02T14:24:00-04:00",
|
|
"2024-05-02T14:25:00-04:00",
|
|
"2024-05-02T14:26:00-04:00",
|
|
"2024-05-02T14:27:00-04:00",
|
|
"2024-05-02T14:28:00-04:00",
|
|
"2024-05-02T14:29:00-04:00",
|
|
"2024-05-02T14:30:00-04:00",
|
|
"2024-05-02T14:31:00-04:00",
|
|
"2024-05-02T14:32:00-04:00",
|
|
"2024-05-02T14:33:00-04:00",
|
|
"2024-05-02T14:34:00-04:00",
|
|
"2024-05-02T14:35:00-04:00",
|
|
"2024-05-02T14:36:00-04:00",
|
|
"2024-05-02T14:37:00-04:00",
|
|
"2024-05-02T14:38:00-04:00",
|
|
"2024-05-02T14:39:00-04:00",
|
|
"2024-05-02T14:40:00-04:00",
|
|
"2024-05-02T14:41:00-04:00",
|
|
"2024-05-02T14:42:00-04:00",
|
|
"2024-05-02T14:43:00-04:00",
|
|
"2024-05-02T14:44:00-04:00",
|
|
"2024-05-02T14:45:00-04:00",
|
|
"2024-05-02T14:46:00-04:00",
|
|
"2024-05-02T14:47:00-04:00",
|
|
"2024-05-02T14:48:00-04:00",
|
|
"2024-05-02T14:49:00-04:00",
|
|
"2024-05-02T14:50:00-04:00",
|
|
"2024-05-02T14:51:00-04:00",
|
|
"2024-05-02T14:52:00-04:00",
|
|
"2024-05-02T14:53:00-04:00",
|
|
"2024-05-02T14:54:00-04:00",
|
|
"2024-05-02T14:55:00-04:00",
|
|
"2024-05-02T14:56:00-04:00",
|
|
"2024-05-02T14:57:00-04:00",
|
|
"2024-05-02T14:58:00-04:00",
|
|
"2024-05-02T14:59:00-04:00",
|
|
"2024-05-02T15:00:00-04:00",
|
|
"2024-05-02T15:01:00-04:00",
|
|
"2024-05-02T15:02:00-04:00",
|
|
"2024-05-02T15:03:00-04:00",
|
|
"2024-05-02T15:04:00-04:00",
|
|
"2024-05-02T15:05:00-04:00",
|
|
"2024-05-02T15:06:00-04:00",
|
|
"2024-05-02T15:07:00-04:00",
|
|
"2024-05-02T15:08:00-04:00",
|
|
"2024-05-02T15:09:00-04:00",
|
|
"2024-05-02T15:10:00-04:00",
|
|
"2024-05-02T15:11:00-04:00",
|
|
"2024-05-02T15:12:00-04:00",
|
|
"2024-05-02T15:13:00-04:00",
|
|
"2024-05-02T15:14:00-04:00",
|
|
"2024-05-02T15:15:00-04:00",
|
|
"2024-05-02T15:16:00-04:00",
|
|
"2024-05-02T15:17:00-04:00",
|
|
"2024-05-02T15:18:00-04:00",
|
|
"2024-05-02T15:19:00-04:00",
|
|
"2024-05-02T15:20:00-04:00",
|
|
"2024-05-02T15:21:00-04:00",
|
|
"2024-05-02T15:22:00-04:00",
|
|
"2024-05-02T15:23:00-04:00",
|
|
"2024-05-02T15:24:00-04:00",
|
|
"2024-05-02T15:25:00-04:00",
|
|
"2024-05-02T15:26:00-04:00",
|
|
"2024-05-02T15:27:00-04:00",
|
|
"2024-05-02T15:28:00-04:00",
|
|
"2024-05-02T15:29:00-04:00",
|
|
"2024-05-02T15:30:00-04:00",
|
|
"2024-05-02T15:31:00-04:00",
|
|
"2024-05-02T15:32:00-04:00",
|
|
"2024-05-02T15:33:00-04:00",
|
|
"2024-05-02T15:34:00-04:00",
|
|
"2024-05-02T15:35:00-04:00",
|
|
"2024-05-02T15:36:00-04:00",
|
|
"2024-05-02T15:37:00-04:00",
|
|
"2024-05-02T15:38:00-04:00",
|
|
"2024-05-02T15:39:00-04:00",
|
|
"2024-05-02T15:40:00-04:00",
|
|
"2024-05-02T15:41:00-04:00",
|
|
"2024-05-02T15:42:00-04:00",
|
|
"2024-05-02T15:43:00-04:00",
|
|
"2024-05-02T15:44:00-04:00",
|
|
"2024-05-02T15:45:00-04:00",
|
|
"2024-05-02T15:46:00-04:00",
|
|
"2024-05-02T15:47:00-04:00",
|
|
"2024-05-02T15:48:00-04:00",
|
|
"2024-05-02T15:49:00-04:00",
|
|
"2024-05-02T15:50:00-04:00",
|
|
"2024-05-02T15:51:00-04:00",
|
|
"2024-05-02T15:52:00-04:00",
|
|
"2024-05-02T15:53:00-04:00",
|
|
"2024-05-02T15:54:00-04:00",
|
|
"2024-05-02T15:55:00-04:00",
|
|
"2024-05-02T15:56:00-04:00",
|
|
"2024-05-02T15:57:00-04:00",
|
|
"2024-05-02T15:58:00-04:00",
|
|
"2024-05-02T15:59:00-04:00",
|
|
"2024-05-02T16:00:00-04:00",
|
|
"2024-05-03T09:30:00-04:00",
|
|
"2024-05-03T09:31:00-04:00",
|
|
"2024-05-03T09:32:00-04:00",
|
|
"2024-05-03T09:33:00-04:00",
|
|
"2024-05-03T09:34:00-04:00",
|
|
"2024-05-03T09:35:00-04:00",
|
|
"2024-05-03T09:36:00-04:00",
|
|
"2024-05-03T09:37:00-04:00",
|
|
"2024-05-03T09:38:00-04:00",
|
|
"2024-05-03T09:39:00-04:00",
|
|
"2024-05-03T09:40:00-04:00",
|
|
"2024-05-03T09:41:00-04:00",
|
|
"2024-05-03T09:42:00-04:00",
|
|
"2024-05-03T09:43:00-04:00",
|
|
"2024-05-03T09:44:00-04:00",
|
|
"2024-05-03T09:45:00-04:00",
|
|
"2024-05-03T09:46:00-04:00",
|
|
"2024-05-03T09:47:00-04:00",
|
|
"2024-05-03T09:48:00-04:00",
|
|
"2024-05-03T09:49:00-04:00",
|
|
"2024-05-03T09:50:00-04:00",
|
|
"2024-05-03T09:51:00-04:00",
|
|
"2024-05-03T09:52:00-04:00",
|
|
"2024-05-03T09:53:00-04:00",
|
|
"2024-05-03T09:54:00-04:00",
|
|
"2024-05-03T09:55:00-04:00",
|
|
"2024-05-03T09:56:00-04:00",
|
|
"2024-05-03T09:57:00-04:00",
|
|
"2024-05-03T09:58:00-04:00",
|
|
"2024-05-03T09:59:00-04:00",
|
|
"2024-05-03T10:00:00-04:00",
|
|
"2024-05-03T10:01:00-04:00",
|
|
"2024-05-03T10:02:00-04:00",
|
|
"2024-05-03T10:03:00-04:00",
|
|
"2024-05-03T10:04:00-04:00",
|
|
"2024-05-03T10:05:00-04:00",
|
|
"2024-05-03T10:06:00-04:00",
|
|
"2024-05-03T10:07:00-04:00",
|
|
"2024-05-03T10:08:00-04:00",
|
|
"2024-05-03T10:09:00-04:00",
|
|
"2024-05-03T10:10:00-04:00",
|
|
"2024-05-03T10:11:00-04:00",
|
|
"2024-05-03T10:12:00-04:00",
|
|
"2024-05-03T10:13:00-04:00",
|
|
"2024-05-03T10:14:00-04:00",
|
|
"2024-05-03T10:15:00-04:00",
|
|
"2024-05-03T10:16:00-04:00",
|
|
"2024-05-03T10:17:00-04:00",
|
|
"2024-05-03T10:18:00-04:00",
|
|
"2024-05-03T10:19:00-04:00",
|
|
"2024-05-03T10:20:00-04:00",
|
|
"2024-05-03T10:21:00-04:00",
|
|
"2024-05-03T10:22:00-04:00",
|
|
"2024-05-03T10:23:00-04:00",
|
|
"2024-05-03T10:24:00-04:00",
|
|
"2024-05-03T10:25:00-04:00",
|
|
"2024-05-03T10:26:00-04:00",
|
|
"2024-05-03T10:27:00-04:00",
|
|
"2024-05-03T10:28:00-04:00",
|
|
"2024-05-03T10:29:00-04:00",
|
|
"2024-05-03T10:30:00-04:00",
|
|
"2024-05-03T10:31:00-04:00",
|
|
"2024-05-03T10:32:00-04:00",
|
|
"2024-05-03T10:33:00-04:00",
|
|
"2024-05-03T10:34:00-04:00",
|
|
"2024-05-03T10:35:00-04:00",
|
|
"2024-05-03T10:36:00-04:00",
|
|
"2024-05-03T10:37:00-04:00",
|
|
"2024-05-03T10:38:00-04:00",
|
|
"2024-05-03T10:39:00-04:00",
|
|
"2024-05-03T10:40:00-04:00",
|
|
"2024-05-03T10:41:00-04:00",
|
|
"2024-05-03T10:42:00-04:00",
|
|
"2024-05-03T10:43:00-04:00",
|
|
"2024-05-03T10:44:00-04:00",
|
|
"2024-05-03T10:45:00-04:00",
|
|
"2024-05-03T10:46:00-04:00",
|
|
"2024-05-03T10:47:00-04:00",
|
|
"2024-05-03T10:48:00-04:00",
|
|
"2024-05-03T10:49:00-04:00",
|
|
"2024-05-03T10:50:00-04:00",
|
|
"2024-05-03T10:51:00-04:00",
|
|
"2024-05-03T10:52:00-04:00",
|
|
"2024-05-03T10:53:00-04:00",
|
|
"2024-05-03T10:54:00-04:00",
|
|
"2024-05-03T10:55:00-04:00",
|
|
"2024-05-03T10:56:00-04:00",
|
|
"2024-05-03T10:57:00-04:00",
|
|
"2024-05-03T10:58:00-04:00",
|
|
"2024-05-03T10:59:00-04:00",
|
|
"2024-05-03T11:00:00-04:00",
|
|
"2024-05-03T11:01:00-04:00",
|
|
"2024-05-03T11:02:00-04:00",
|
|
"2024-05-03T11:03:00-04:00",
|
|
"2024-05-03T11:04:00-04:00",
|
|
"2024-05-03T11:05:00-04:00",
|
|
"2024-05-03T11:06:00-04:00",
|
|
"2024-05-03T11:07:00-04:00",
|
|
"2024-05-03T11:08:00-04:00",
|
|
"2024-05-03T11:09:00-04:00",
|
|
"2024-05-03T11:10:00-04:00",
|
|
"2024-05-03T11:11:00-04:00",
|
|
"2024-05-03T11:12:00-04:00",
|
|
"2024-05-03T11:13:00-04:00",
|
|
"2024-05-03T11:14:00-04:00",
|
|
"2024-05-03T11:15:00-04:00",
|
|
"2024-05-03T11:16:00-04:00",
|
|
"2024-05-03T11:17:00-04:00",
|
|
"2024-05-03T11:18:00-04:00",
|
|
"2024-05-03T11:19:00-04:00",
|
|
"2024-05-03T11:20:00-04:00",
|
|
"2024-05-03T11:21:00-04:00",
|
|
"2024-05-03T11:22:00-04:00",
|
|
"2024-05-03T11:23:00-04:00",
|
|
"2024-05-03T11:24:00-04:00",
|
|
"2024-05-03T11:25:00-04:00",
|
|
"2024-05-03T11:26:00-04:00",
|
|
"2024-05-03T11:27:00-04:00",
|
|
"2024-05-03T11:28:00-04:00",
|
|
"2024-05-03T11:29:00-04:00",
|
|
"2024-05-03T11:30:00-04:00",
|
|
"2024-05-03T11:31:00-04:00",
|
|
"2024-05-03T11:32:00-04:00",
|
|
"2024-05-03T11:33:00-04:00",
|
|
"2024-05-03T11:34:00-04:00",
|
|
"2024-05-03T11:35:00-04:00",
|
|
"2024-05-03T11:36:00-04:00",
|
|
"2024-05-03T11:37:00-04:00",
|
|
"2024-05-03T11:38:00-04:00",
|
|
"2024-05-03T11:39:00-04:00",
|
|
"2024-05-03T11:40:00-04:00",
|
|
"2024-05-03T11:41:00-04:00",
|
|
"2024-05-03T11:42:00-04:00",
|
|
"2024-05-03T11:43:00-04:00",
|
|
"2024-05-03T11:44:00-04:00",
|
|
"2024-05-03T11:45:00-04:00",
|
|
"2024-05-03T11:46:00-04:00",
|
|
"2024-05-03T11:47:00-04:00",
|
|
"2024-05-03T11:48:00-04:00",
|
|
"2024-05-03T11:49:00-04:00",
|
|
"2024-05-03T11:50:00-04:00",
|
|
"2024-05-03T11:51:00-04:00",
|
|
"2024-05-03T11:52:00-04:00",
|
|
"2024-05-03T11:53:00-04:00",
|
|
"2024-05-03T11:54:00-04:00",
|
|
"2024-05-03T11:55:00-04:00",
|
|
"2024-05-03T11:56:00-04:00",
|
|
"2024-05-03T11:57:00-04:00",
|
|
"2024-05-03T11:58:00-04:00",
|
|
"2024-05-03T11:59:00-04:00",
|
|
"2024-05-03T12:00:00-04:00",
|
|
"2024-05-03T12:01:00-04:00",
|
|
"2024-05-03T12:02:00-04:00",
|
|
"2024-05-03T12:03:00-04:00",
|
|
"2024-05-03T12:04:00-04:00",
|
|
"2024-05-03T12:05:00-04:00",
|
|
"2024-05-03T12:06:00-04:00",
|
|
"2024-05-03T12:07:00-04:00",
|
|
"2024-05-03T12:08:00-04:00",
|
|
"2024-05-03T12:09:00-04:00",
|
|
"2024-05-03T12:10:00-04:00",
|
|
"2024-05-03T12:11:00-04:00",
|
|
"2024-05-03T12:12:00-04:00",
|
|
"2024-05-03T12:13:00-04:00",
|
|
"2024-05-03T12:14:00-04:00",
|
|
"2024-05-03T12:15:00-04:00",
|
|
"2024-05-03T12:16:00-04:00",
|
|
"2024-05-03T12:17:00-04:00",
|
|
"2024-05-03T12:18:00-04:00",
|
|
"2024-05-03T12:19:00-04:00",
|
|
"2024-05-03T12:20:00-04:00",
|
|
"2024-05-03T12:21:00-04:00",
|
|
"2024-05-03T12:22:00-04:00",
|
|
"2024-05-03T12:23:00-04:00",
|
|
"2024-05-03T12:24:00-04:00",
|
|
"2024-05-03T12:25:00-04:00",
|
|
"2024-05-03T12:26:00-04:00",
|
|
"2024-05-03T12:27:00-04:00",
|
|
"2024-05-03T12:28:00-04:00",
|
|
"2024-05-03T12:29:00-04:00",
|
|
"2024-05-03T12:30:00-04:00",
|
|
"2024-05-03T12:31:00-04:00",
|
|
"2024-05-03T12:32:00-04:00",
|
|
"2024-05-03T12:33:00-04:00",
|
|
"2024-05-03T12:34:00-04:00",
|
|
"2024-05-03T12:35:00-04:00",
|
|
"2024-05-03T12:36:00-04:00",
|
|
"2024-05-03T12:37:00-04:00",
|
|
"2024-05-03T12:38:00-04:00",
|
|
"2024-05-03T12:39:00-04:00",
|
|
"2024-05-03T12:40:00-04:00",
|
|
"2024-05-03T12:41:00-04:00",
|
|
"2024-05-03T12:42:00-04:00",
|
|
"2024-05-03T12:43:00-04:00",
|
|
"2024-05-03T12:44:00-04:00",
|
|
"2024-05-03T12:45:00-04:00",
|
|
"2024-05-03T12:46:00-04:00",
|
|
"2024-05-03T12:47:00-04:00",
|
|
"2024-05-03T12:48:00-04:00",
|
|
"2024-05-03T12:49:00-04:00",
|
|
"2024-05-03T12:50:00-04:00",
|
|
"2024-05-03T12:51:00-04:00",
|
|
"2024-05-03T12:52:00-04:00",
|
|
"2024-05-03T12:53:00-04:00",
|
|
"2024-05-03T12:54:00-04:00",
|
|
"2024-05-03T12:55:00-04:00",
|
|
"2024-05-03T12:56:00-04:00",
|
|
"2024-05-03T12:57:00-04:00",
|
|
"2024-05-03T12:58:00-04:00",
|
|
"2024-05-03T12:59:00-04:00",
|
|
"2024-05-03T13:00:00-04:00",
|
|
"2024-05-03T13:01:00-04:00",
|
|
"2024-05-03T13:02:00-04:00",
|
|
"2024-05-03T13:03:00-04:00",
|
|
"2024-05-03T13:04:00-04:00",
|
|
"2024-05-03T13:05:00-04:00",
|
|
"2024-05-03T13:06:00-04:00",
|
|
"2024-05-03T13:07:00-04:00",
|
|
"2024-05-03T13:08:00-04:00",
|
|
"2024-05-03T13:09:00-04:00",
|
|
"2024-05-03T13:10:00-04:00",
|
|
"2024-05-03T13:11:00-04:00",
|
|
"2024-05-03T13:12:00-04:00",
|
|
"2024-05-03T13:13:00-04:00",
|
|
"2024-05-03T13:14:00-04:00",
|
|
"2024-05-03T13:15:00-04:00",
|
|
"2024-05-03T13:16:00-04:00",
|
|
"2024-05-03T13:17:00-04:00",
|
|
"2024-05-03T13:18:00-04:00",
|
|
"2024-05-03T13:19:00-04:00",
|
|
"2024-05-03T13:20:00-04:00",
|
|
"2024-05-03T13:21:00-04:00",
|
|
"2024-05-03T13:22:00-04:00",
|
|
"2024-05-03T13:23:00-04:00",
|
|
"2024-05-03T13:24:00-04:00",
|
|
"2024-05-03T13:25:00-04:00",
|
|
"2024-05-03T13:26:00-04:00",
|
|
"2024-05-03T13:27:00-04:00",
|
|
"2024-05-03T13:28:00-04:00",
|
|
"2024-05-03T13:29:00-04:00",
|
|
"2024-05-03T13:30:00-04:00",
|
|
"2024-05-03T13:31:00-04:00",
|
|
"2024-05-03T13:32:00-04:00",
|
|
"2024-05-03T13:33:00-04:00",
|
|
"2024-05-03T13:34:00-04:00",
|
|
"2024-05-03T13:35:00-04:00",
|
|
"2024-05-03T13:36:00-04:00",
|
|
"2024-05-03T13:37:00-04:00",
|
|
"2024-05-03T13:38:00-04:00",
|
|
"2024-05-03T13:39:00-04:00",
|
|
"2024-05-03T13:40:00-04:00",
|
|
"2024-05-03T13:41:00-04:00",
|
|
"2024-05-03T13:42:00-04:00",
|
|
"2024-05-03T13:43:00-04:00",
|
|
"2024-05-03T13:44:00-04:00",
|
|
"2024-05-03T13:45:00-04:00",
|
|
"2024-05-03T13:46:00-04:00",
|
|
"2024-05-03T13:47:00-04:00",
|
|
"2024-05-03T13:48:00-04:00",
|
|
"2024-05-03T13:49:00-04:00",
|
|
"2024-05-03T13:50:00-04:00",
|
|
"2024-05-03T13:51:00-04:00",
|
|
"2024-05-03T13:52:00-04:00",
|
|
"2024-05-03T13:53:00-04:00",
|
|
"2024-05-03T13:54:00-04:00",
|
|
"2024-05-03T13:55:00-04:00",
|
|
"2024-05-03T13:56:00-04:00",
|
|
"2024-05-03T13:57:00-04:00",
|
|
"2024-05-03T13:58:00-04:00",
|
|
"2024-05-03T13:59:00-04:00",
|
|
"2024-05-03T14:00:00-04:00",
|
|
"2024-05-03T14:01:00-04:00",
|
|
"2024-05-03T14:02:00-04:00",
|
|
"2024-05-03T14:03:00-04:00",
|
|
"2024-05-03T14:04:00-04:00",
|
|
"2024-05-03T14:05:00-04:00",
|
|
"2024-05-03T14:06:00-04:00",
|
|
"2024-05-03T14:07:00-04:00",
|
|
"2024-05-03T14:08:00-04:00",
|
|
"2024-05-03T14:09:00-04:00",
|
|
"2024-05-03T14:10:00-04:00",
|
|
"2024-05-03T14:11:00-04:00",
|
|
"2024-05-03T14:12:00-04:00",
|
|
"2024-05-03T14:13:00-04:00",
|
|
"2024-05-03T14:14:00-04:00",
|
|
"2024-05-03T14:15:00-04:00",
|
|
"2024-05-03T14:16:00-04:00",
|
|
"2024-05-03T14:17:00-04:00",
|
|
"2024-05-03T14:18:00-04:00",
|
|
"2024-05-03T14:19:00-04:00",
|
|
"2024-05-03T14:20:00-04:00",
|
|
"2024-05-03T14:21:00-04:00",
|
|
"2024-05-03T14:22:00-04:00",
|
|
"2024-05-03T14:23:00-04:00",
|
|
"2024-05-03T14:24:00-04:00",
|
|
"2024-05-03T14:25:00-04:00",
|
|
"2024-05-03T14:26:00-04:00",
|
|
"2024-05-03T14:27:00-04:00",
|
|
"2024-05-03T14:28:00-04:00",
|
|
"2024-05-03T14:29:00-04:00",
|
|
"2024-05-03T14:30:00-04:00",
|
|
"2024-05-03T14:31:00-04:00",
|
|
"2024-05-03T14:32:00-04:00",
|
|
"2024-05-03T14:33:00-04:00",
|
|
"2024-05-03T14:34:00-04:00",
|
|
"2024-05-03T14:35:00-04:00",
|
|
"2024-05-03T14:36:00-04:00",
|
|
"2024-05-03T14:37:00-04:00",
|
|
"2024-05-03T14:38:00-04:00",
|
|
"2024-05-03T14:39:00-04:00",
|
|
"2024-05-03T14:40:00-04:00",
|
|
"2024-05-03T14:41:00-04:00",
|
|
"2024-05-03T14:42:00-04:00",
|
|
"2024-05-03T14:43:00-04:00",
|
|
"2024-05-03T14:44:00-04:00",
|
|
"2024-05-03T14:45:00-04:00",
|
|
"2024-05-03T14:46:00-04:00",
|
|
"2024-05-03T14:47:00-04:00",
|
|
"2024-05-03T14:48:00-04:00",
|
|
"2024-05-03T14:49:00-04:00",
|
|
"2024-05-03T14:50:00-04:00",
|
|
"2024-05-03T14:51:00-04:00",
|
|
"2024-05-03T14:52:00-04:00",
|
|
"2024-05-03T14:53:00-04:00",
|
|
"2024-05-03T14:54:00-04:00",
|
|
"2024-05-03T14:55:00-04:00",
|
|
"2024-05-03T14:56:00-04:00",
|
|
"2024-05-03T14:57:00-04:00",
|
|
"2024-05-03T14:58:00-04:00",
|
|
"2024-05-03T14:59:00-04:00",
|
|
"2024-05-03T15:00:00-04:00",
|
|
"2024-05-03T15:01:00-04:00",
|
|
"2024-05-03T15:02:00-04:00",
|
|
"2024-05-03T15:03:00-04:00",
|
|
"2024-05-03T15:04:00-04:00",
|
|
"2024-05-03T15:05:00-04:00",
|
|
"2024-05-03T15:06:00-04:00",
|
|
"2024-05-03T15:07:00-04:00",
|
|
"2024-05-03T15:08:00-04:00",
|
|
"2024-05-03T15:09:00-04:00",
|
|
"2024-05-03T15:10:00-04:00",
|
|
"2024-05-03T15:11:00-04:00",
|
|
"2024-05-03T15:12:00-04:00",
|
|
"2024-05-03T15:13:00-04:00",
|
|
"2024-05-03T15:14:00-04:00",
|
|
"2024-05-03T15:15:00-04:00",
|
|
"2024-05-03T15:16:00-04:00",
|
|
"2024-05-03T15:17:00-04:00",
|
|
"2024-05-03T15:18:00-04:00",
|
|
"2024-05-03T15:19:00-04:00",
|
|
"2024-05-03T15:20:00-04:00",
|
|
"2024-05-03T15:21:00-04:00",
|
|
"2024-05-03T15:22:00-04:00",
|
|
"2024-05-03T15:23:00-04:00",
|
|
"2024-05-03T15:24:00-04:00",
|
|
"2024-05-03T15:25:00-04:00",
|
|
"2024-05-03T15:26:00-04:00",
|
|
"2024-05-03T15:27:00-04:00",
|
|
"2024-05-03T15:28:00-04:00",
|
|
"2024-05-03T15:29:00-04:00",
|
|
"2024-05-03T15:30:00-04:00",
|
|
"2024-05-03T15:31:00-04:00",
|
|
"2024-05-03T15:32:00-04:00",
|
|
"2024-05-03T15:33:00-04:00",
|
|
"2024-05-03T15:34:00-04:00",
|
|
"2024-05-03T15:35:00-04:00",
|
|
"2024-05-03T15:36:00-04:00",
|
|
"2024-05-03T15:37:00-04:00",
|
|
"2024-05-03T15:38:00-04:00",
|
|
"2024-05-03T15:39:00-04:00",
|
|
"2024-05-03T15:40:00-04:00",
|
|
"2024-05-03T15:41:00-04:00",
|
|
"2024-05-03T15:42:00-04:00",
|
|
"2024-05-03T15:43:00-04:00",
|
|
"2024-05-03T15:44:00-04:00",
|
|
"2024-05-03T15:45:00-04:00",
|
|
"2024-05-03T15:46:00-04:00",
|
|
"2024-05-03T15:47:00-04:00",
|
|
"2024-05-03T15:48:00-04:00",
|
|
"2024-05-03T15:49:00-04:00",
|
|
"2024-05-03T15:50:00-04:00",
|
|
"2024-05-03T15:51:00-04:00",
|
|
"2024-05-03T15:52:00-04:00",
|
|
"2024-05-03T15:53:00-04:00",
|
|
"2024-05-03T15:54:00-04:00",
|
|
"2024-05-03T15:55:00-04:00",
|
|
"2024-05-03T15:56:00-04:00",
|
|
"2024-05-03T15:57:00-04:00",
|
|
"2024-05-03T15:58:00-04:00",
|
|
"2024-05-03T15:59:00-04:00",
|
|
"2024-05-03T16:00:00-04:00",
|
|
"2024-05-06T09:30:00-04:00",
|
|
"2024-05-06T09:31:00-04:00",
|
|
"2024-05-06T09:32:00-04:00",
|
|
"2024-05-06T09:33:00-04:00",
|
|
"2024-05-06T09:34:00-04:00",
|
|
"2024-05-06T09:35:00-04:00",
|
|
"2024-05-06T09:36:00-04:00",
|
|
"2024-05-06T09:37:00-04:00",
|
|
"2024-05-06T09:38:00-04:00",
|
|
"2024-05-06T09:39:00-04:00",
|
|
"2024-05-06T09:40:00-04:00",
|
|
"2024-05-06T09:41:00-04:00",
|
|
"2024-05-06T09:42:00-04:00",
|
|
"2024-05-06T09:43:00-04:00",
|
|
"2024-05-06T09:44:00-04:00",
|
|
"2024-05-06T09:45:00-04:00",
|
|
"2024-05-06T09:46:00-04:00",
|
|
"2024-05-06T09:47:00-04:00",
|
|
"2024-05-06T09:48:00-04:00",
|
|
"2024-05-06T09:49:00-04:00",
|
|
"2024-05-06T09:50:00-04:00",
|
|
"2024-05-06T09:51:00-04:00",
|
|
"2024-05-06T09:52:00-04:00",
|
|
"2024-05-06T09:53:00-04:00",
|
|
"2024-05-06T09:54:00-04:00",
|
|
"2024-05-06T09:55:00-04:00",
|
|
"2024-05-06T09:56:00-04:00",
|
|
"2024-05-06T09:57:00-04:00",
|
|
"2024-05-06T09:58:00-04:00",
|
|
"2024-05-06T09:59:00-04:00",
|
|
"2024-05-06T10:00:00-04:00",
|
|
"2024-05-06T10:01:00-04:00",
|
|
"2024-05-06T10:02:00-04:00",
|
|
"2024-05-06T10:03:00-04:00",
|
|
"2024-05-06T10:04:00-04:00",
|
|
"2024-05-06T10:05:00-04:00",
|
|
"2024-05-06T10:06:00-04:00",
|
|
"2024-05-06T10:07:00-04:00",
|
|
"2024-05-06T10:08:00-04:00",
|
|
"2024-05-06T10:09:00-04:00",
|
|
"2024-05-06T10:10:00-04:00",
|
|
"2024-05-06T10:11:00-04:00",
|
|
"2024-05-06T10:12:00-04:00",
|
|
"2024-05-06T10:13:00-04:00",
|
|
"2024-05-06T10:14:00-04:00",
|
|
"2024-05-06T10:15:00-04:00",
|
|
"2024-05-06T10:16:00-04:00",
|
|
"2024-05-06T10:17:00-04:00",
|
|
"2024-05-06T10:18:00-04:00",
|
|
"2024-05-06T10:19:00-04:00",
|
|
"2024-05-06T10:20:00-04:00",
|
|
"2024-05-06T10:21:00-04:00",
|
|
"2024-05-06T10:22:00-04:00",
|
|
"2024-05-06T10:23:00-04:00",
|
|
"2024-05-06T10:24:00-04:00",
|
|
"2024-05-06T10:25:00-04:00",
|
|
"2024-05-06T10:26:00-04:00",
|
|
"2024-05-06T10:27:00-04:00",
|
|
"2024-05-06T10:28:00-04:00",
|
|
"2024-05-06T10:29:00-04:00",
|
|
"2024-05-06T10:30:00-04:00",
|
|
"2024-05-06T10:31:00-04:00",
|
|
"2024-05-06T10:32:00-04:00",
|
|
"2024-05-06T10:33:00-04:00",
|
|
"2024-05-06T10:34:00-04:00",
|
|
"2024-05-06T10:35:00-04:00",
|
|
"2024-05-06T10:36:00-04:00",
|
|
"2024-05-06T10:37:00-04:00",
|
|
"2024-05-06T10:38:00-04:00",
|
|
"2024-05-06T10:39:00-04:00",
|
|
"2024-05-06T10:40:00-04:00",
|
|
"2024-05-06T10:41:00-04:00",
|
|
"2024-05-06T10:42:00-04:00",
|
|
"2024-05-06T10:43:00-04:00",
|
|
"2024-05-06T10:44:00-04:00",
|
|
"2024-05-06T10:45:00-04:00",
|
|
"2024-05-06T10:46:00-04:00",
|
|
"2024-05-06T10:47:00-04:00",
|
|
"2024-05-06T10:48:00-04:00",
|
|
"2024-05-06T10:49:00-04:00",
|
|
"2024-05-06T10:50:00-04:00",
|
|
"2024-05-06T10:51:00-04:00",
|
|
"2024-05-06T10:52:00-04:00",
|
|
"2024-05-06T10:53:00-04:00",
|
|
"2024-05-06T10:54:00-04:00",
|
|
"2024-05-06T10:55:00-04:00",
|
|
"2024-05-06T10:56:00-04:00",
|
|
"2024-05-06T10:57:00-04:00",
|
|
"2024-05-06T10:58:00-04:00",
|
|
"2024-05-06T10:59:00-04:00",
|
|
"2024-05-06T11:00:00-04:00",
|
|
"2024-05-06T11:01:00-04:00",
|
|
"2024-05-06T11:02:00-04:00",
|
|
"2024-05-06T11:03:00-04:00",
|
|
"2024-05-06T11:04:00-04:00",
|
|
"2024-05-06T11:05:00-04:00",
|
|
"2024-05-06T11:06:00-04:00",
|
|
"2024-05-06T11:07:00-04:00",
|
|
"2024-05-06T11:08:00-04:00",
|
|
"2024-05-06T11:09:00-04:00",
|
|
"2024-05-06T11:10:00-04:00",
|
|
"2024-05-06T11:11:00-04:00",
|
|
"2024-05-06T11:12:00-04:00",
|
|
"2024-05-06T11:13:00-04:00",
|
|
"2024-05-06T11:14:00-04:00",
|
|
"2024-05-06T11:15:00-04:00",
|
|
"2024-05-06T11:16:00-04:00",
|
|
"2024-05-06T11:17:00-04:00",
|
|
"2024-05-06T11:18:00-04:00",
|
|
"2024-05-06T11:19:00-04:00",
|
|
"2024-05-06T11:20:00-04:00",
|
|
"2024-05-06T11:21:00-04:00",
|
|
"2024-05-06T11:22:00-04:00",
|
|
"2024-05-06T11:23:00-04:00",
|
|
"2024-05-06T11:24:00-04:00",
|
|
"2024-05-06T11:25:00-04:00",
|
|
"2024-05-06T11:26:00-04:00",
|
|
"2024-05-06T11:27:00-04:00",
|
|
"2024-05-06T11:28:00-04:00",
|
|
"2024-05-06T11:29:00-04:00",
|
|
"2024-05-06T11:30:00-04:00",
|
|
"2024-05-06T11:31:00-04:00",
|
|
"2024-05-06T11:32:00-04:00",
|
|
"2024-05-06T11:33:00-04:00",
|
|
"2024-05-06T11:34:00-04:00",
|
|
"2024-05-06T11:35:00-04:00",
|
|
"2024-05-06T11:36:00-04:00",
|
|
"2024-05-06T11:37:00-04:00"
|
|
],
|
|
"xaxis": "x2",
|
|
"y": [
|
|
476819,
|
|
147198,
|
|
107729,
|
|
52305,
|
|
41294,
|
|
149136,
|
|
455714,
|
|
158670,
|
|
100294,
|
|
52662,
|
|
60270,
|
|
81318,
|
|
88399,
|
|
56754,
|
|
69611,
|
|
43062,
|
|
79043,
|
|
67572,
|
|
107692,
|
|
135780,
|
|
107246,
|
|
76623,
|
|
67289,
|
|
78301,
|
|
32241,
|
|
37861,
|
|
60979,
|
|
25158,
|
|
57658,
|
|
53533,
|
|
97239,
|
|
120687,
|
|
73368,
|
|
47086,
|
|
31035,
|
|
30006,
|
|
167403,
|
|
76511,
|
|
55389,
|
|
50385,
|
|
47613,
|
|
24779,
|
|
44778,
|
|
31130,
|
|
36368,
|
|
26718,
|
|
30934,
|
|
30306,
|
|
40678,
|
|
28435,
|
|
69089,
|
|
69599,
|
|
21039,
|
|
52290,
|
|
72679,
|
|
38639,
|
|
36759,
|
|
34346,
|
|
41839,
|
|
63734,
|
|
35529,
|
|
49198,
|
|
34877,
|
|
45664,
|
|
32861,
|
|
21583,
|
|
77348,
|
|
16858,
|
|
71059,
|
|
52007,
|
|
30672,
|
|
77942,
|
|
9282,
|
|
15392,
|
|
47689,
|
|
45724,
|
|
53506,
|
|
26614,
|
|
50597,
|
|
41559,
|
|
70104,
|
|
22214,
|
|
29845,
|
|
60478,
|
|
22542,
|
|
60417,
|
|
38050,
|
|
31725,
|
|
19608,
|
|
46028,
|
|
59389,
|
|
22585,
|
|
27395,
|
|
48142,
|
|
20314,
|
|
40527,
|
|
34800,
|
|
38290,
|
|
28319,
|
|
31835,
|
|
14993,
|
|
42023,
|
|
59221,
|
|
72413,
|
|
33672,
|
|
59806,
|
|
30114,
|
|
14228,
|
|
23988,
|
|
18203,
|
|
40487,
|
|
45564,
|
|
93417,
|
|
40060,
|
|
50023,
|
|
67954,
|
|
36273,
|
|
47937,
|
|
38289,
|
|
78514,
|
|
42365,
|
|
28995,
|
|
54015,
|
|
42232,
|
|
16777,
|
|
43652,
|
|
49836,
|
|
16452,
|
|
17279,
|
|
16837,
|
|
47486,
|
|
16083,
|
|
17527,
|
|
15116,
|
|
15741,
|
|
20396,
|
|
20592,
|
|
16901,
|
|
12092,
|
|
13361,
|
|
31413,
|
|
11114,
|
|
28741,
|
|
21487,
|
|
28859,
|
|
18448,
|
|
77073,
|
|
46052,
|
|
67045,
|
|
118067,
|
|
56556,
|
|
15057,
|
|
83188,
|
|
135518,
|
|
139890,
|
|
23414,
|
|
19680,
|
|
49385,
|
|
6660,
|
|
52212,
|
|
8552,
|
|
7977,
|
|
15671,
|
|
41986,
|
|
21919,
|
|
19962,
|
|
13600,
|
|
6999,
|
|
34503,
|
|
19887,
|
|
3951,
|
|
33568,
|
|
14348,
|
|
4353,
|
|
17498,
|
|
14129,
|
|
11322,
|
|
34725,
|
|
4526,
|
|
33978,
|
|
74261,
|
|
22462,
|
|
64747,
|
|
27871,
|
|
20470,
|
|
59889,
|
|
10674,
|
|
17963,
|
|
20059,
|
|
28923,
|
|
30766,
|
|
29717,
|
|
67454,
|
|
9203,
|
|
27800,
|
|
37744,
|
|
16297,
|
|
58832,
|
|
48529,
|
|
20942,
|
|
9022,
|
|
8733,
|
|
54037,
|
|
48058,
|
|
15693,
|
|
12567,
|
|
59758,
|
|
5854,
|
|
23945,
|
|
22763,
|
|
28926,
|
|
30585,
|
|
21061,
|
|
69252,
|
|
24167,
|
|
19885,
|
|
16205,
|
|
15217,
|
|
16035,
|
|
53041,
|
|
15123,
|
|
49874,
|
|
14122,
|
|
13825,
|
|
53262,
|
|
48999,
|
|
6357,
|
|
34024,
|
|
20246,
|
|
34616,
|
|
18452,
|
|
29115,
|
|
34171,
|
|
15956,
|
|
10157,
|
|
36631,
|
|
33061,
|
|
15703,
|
|
35577,
|
|
24346,
|
|
30543,
|
|
16975,
|
|
20090,
|
|
8753,
|
|
10425,
|
|
84523,
|
|
49343,
|
|
31237,
|
|
25595,
|
|
22320,
|
|
4573,
|
|
29999,
|
|
70394,
|
|
32995,
|
|
37162,
|
|
21369,
|
|
66490,
|
|
350096,
|
|
42833,
|
|
16940,
|
|
21313,
|
|
39980,
|
|
42959,
|
|
24088,
|
|
29939,
|
|
56440,
|
|
64681,
|
|
44343,
|
|
17926,
|
|
47183,
|
|
134625,
|
|
53180,
|
|
32903,
|
|
28196,
|
|
11231,
|
|
19274,
|
|
27815,
|
|
26354,
|
|
309631,
|
|
11099,
|
|
46662,
|
|
16969,
|
|
36066,
|
|
33716,
|
|
44196,
|
|
26264,
|
|
37339,
|
|
28565,
|
|
36319,
|
|
61208,
|
|
34647,
|
|
11647,
|
|
52748,
|
|
34795,
|
|
46719,
|
|
74603,
|
|
28496,
|
|
31141,
|
|
39582,
|
|
7069,
|
|
79325,
|
|
58823,
|
|
116577,
|
|
45643,
|
|
60246,
|
|
40670,
|
|
29921,
|
|
37342,
|
|
323619,
|
|
36212,
|
|
34988,
|
|
22681,
|
|
23164,
|
|
18411,
|
|
27520,
|
|
31261,
|
|
9510,
|
|
70112,
|
|
36559,
|
|
10775,
|
|
85458,
|
|
42005,
|
|
39172,
|
|
47271,
|
|
53073,
|
|
17599,
|
|
30613,
|
|
29909,
|
|
54235,
|
|
29082,
|
|
159376,
|
|
78433,
|
|
109489,
|
|
153972,
|
|
129055,
|
|
105200,
|
|
129056,
|
|
89880,
|
|
76309,
|
|
79373,
|
|
141810,
|
|
318509,
|
|
63621,
|
|
63996,
|
|
48641,
|
|
63204,
|
|
44451,
|
|
66855,
|
|
46777,
|
|
42359,
|
|
68592,
|
|
58275,
|
|
25519,
|
|
52202,
|
|
32129,
|
|
97663,
|
|
48184,
|
|
71175,
|
|
51149,
|
|
103305,
|
|
91816,
|
|
45302,
|
|
65654,
|
|
41497,
|
|
66520,
|
|
124492,
|
|
94009,
|
|
33478,
|
|
101343,
|
|
65258,
|
|
75802,
|
|
55601,
|
|
109036,
|
|
87371,
|
|
200251,
|
|
111648,
|
|
93925,
|
|
56568,
|
|
133526,
|
|
149060,
|
|
258715,
|
|
161292,
|
|
114314,
|
|
191636,
|
|
147194,
|
|
408496,
|
|
214784,
|
|
165521,
|
|
378477,
|
|
726992,
|
|
3310067,
|
|
522293,
|
|
59784,
|
|
90734,
|
|
121649,
|
|
59713,
|
|
131614,
|
|
78648,
|
|
157488,
|
|
112401,
|
|
96554,
|
|
46447,
|
|
33230,
|
|
67952,
|
|
36464,
|
|
47554,
|
|
60602,
|
|
92745,
|
|
30513,
|
|
39917,
|
|
52179,
|
|
71313,
|
|
62066,
|
|
56060,
|
|
47661,
|
|
39575,
|
|
58158,
|
|
43982,
|
|
46101,
|
|
42954,
|
|
137060,
|
|
94047,
|
|
41018,
|
|
64973,
|
|
65179,
|
|
61932,
|
|
40242,
|
|
47561,
|
|
52290,
|
|
52744,
|
|
57026,
|
|
34189,
|
|
58646,
|
|
48546,
|
|
37891,
|
|
39470,
|
|
48029,
|
|
33446,
|
|
71300,
|
|
91116,
|
|
28531,
|
|
19908,
|
|
52602,
|
|
33630,
|
|
21690,
|
|
209476,
|
|
21479,
|
|
36845,
|
|
32158,
|
|
47868,
|
|
52599,
|
|
46629,
|
|
97227,
|
|
70109,
|
|
44994,
|
|
28172,
|
|
55412,
|
|
35841,
|
|
33637,
|
|
21455,
|
|
21281,
|
|
39089,
|
|
22926,
|
|
41951,
|
|
29728,
|
|
28369,
|
|
55963,
|
|
36980,
|
|
55088,
|
|
62972,
|
|
51335,
|
|
102958,
|
|
66434,
|
|
74311,
|
|
35422,
|
|
59389,
|
|
37657,
|
|
36497,
|
|
43700,
|
|
45146,
|
|
34229,
|
|
29208,
|
|
35569,
|
|
37276,
|
|
38001,
|
|
18393,
|
|
97878,
|
|
67519,
|
|
33942,
|
|
80201,
|
|
42870,
|
|
40938,
|
|
98147,
|
|
72525,
|
|
58343,
|
|
22427,
|
|
43234,
|
|
36284,
|
|
23898,
|
|
37983,
|
|
13994,
|
|
21708,
|
|
27270,
|
|
16410,
|
|
21008,
|
|
21329,
|
|
80410,
|
|
12425,
|
|
53421,
|
|
40966,
|
|
27017,
|
|
45938,
|
|
51100,
|
|
37102,
|
|
32125,
|
|
20666,
|
|
34721,
|
|
28346,
|
|
17067,
|
|
11533,
|
|
29172,
|
|
19692,
|
|
13943,
|
|
32736,
|
|
17499,
|
|
26987,
|
|
23074,
|
|
57319,
|
|
38621,
|
|
45858,
|
|
28319,
|
|
32661,
|
|
18039,
|
|
31491,
|
|
21110,
|
|
12747,
|
|
18907,
|
|
32118,
|
|
34970,
|
|
62972,
|
|
36963,
|
|
29862,
|
|
39731,
|
|
19145,
|
|
13668,
|
|
17239,
|
|
41816,
|
|
22265,
|
|
34354,
|
|
26276,
|
|
23062,
|
|
23490,
|
|
18953,
|
|
22511,
|
|
16734,
|
|
18210,
|
|
31050,
|
|
14469,
|
|
41618,
|
|
23304,
|
|
4676,
|
|
21026,
|
|
30479,
|
|
24978,
|
|
25233,
|
|
30422,
|
|
87671,
|
|
8154,
|
|
38340,
|
|
8084,
|
|
97977,
|
|
42593,
|
|
57405,
|
|
45626,
|
|
29054,
|
|
27368,
|
|
24549,
|
|
13389,
|
|
33288,
|
|
31604,
|
|
18552,
|
|
6833,
|
|
38599,
|
|
27428,
|
|
25077,
|
|
35156,
|
|
30233,
|
|
48129,
|
|
31938,
|
|
37325,
|
|
40999,
|
|
49408,
|
|
95739,
|
|
24195,
|
|
12750,
|
|
30526,
|
|
41408,
|
|
29048,
|
|
42553,
|
|
31325,
|
|
24631,
|
|
44359,
|
|
36055,
|
|
27214,
|
|
15825,
|
|
21117,
|
|
88290,
|
|
38214,
|
|
179941,
|
|
32566,
|
|
22378,
|
|
15302,
|
|
39623,
|
|
37024,
|
|
25029,
|
|
24561,
|
|
23419,
|
|
48633,
|
|
18703,
|
|
102257,
|
|
11184,
|
|
112871,
|
|
30029,
|
|
7430,
|
|
38352,
|
|
42473,
|
|
33833,
|
|
11759,
|
|
29578,
|
|
136949,
|
|
34515,
|
|
32189,
|
|
20938,
|
|
16721,
|
|
22062,
|
|
15162,
|
|
30908,
|
|
128341,
|
|
33012,
|
|
33768,
|
|
22429,
|
|
160999,
|
|
91744,
|
|
11267,
|
|
25795,
|
|
125025,
|
|
21998,
|
|
55121,
|
|
32114,
|
|
26498,
|
|
14747,
|
|
432366,
|
|
26567,
|
|
49467,
|
|
17586,
|
|
10503,
|
|
43683,
|
|
15751,
|
|
53691,
|
|
268014,
|
|
35422,
|
|
96995,
|
|
84054,
|
|
27319,
|
|
20616,
|
|
20924,
|
|
39051,
|
|
21667,
|
|
22485,
|
|
36602,
|
|
27107,
|
|
100530,
|
|
34239,
|
|
41458,
|
|
35014,
|
|
19251,
|
|
13407,
|
|
64886,
|
|
38971,
|
|
16824,
|
|
33572,
|
|
24104,
|
|
38636,
|
|
29603,
|
|
30743,
|
|
32157,
|
|
64237,
|
|
102704,
|
|
26576,
|
|
52998,
|
|
50353,
|
|
49126,
|
|
112712,
|
|
57857,
|
|
962682,
|
|
103178,
|
|
81395,
|
|
117267,
|
|
120754,
|
|
41297,
|
|
57508,
|
|
63784,
|
|
187637,
|
|
31733,
|
|
40217,
|
|
90324,
|
|
79812,
|
|
49137,
|
|
43417,
|
|
32322,
|
|
113777,
|
|
74579,
|
|
147193,
|
|
72734,
|
|
20313,
|
|
32016,
|
|
22387,
|
|
54557,
|
|
51568,
|
|
34040,
|
|
53466,
|
|
89736,
|
|
74719,
|
|
86650,
|
|
46240,
|
|
13754,
|
|
25284,
|
|
26956,
|
|
41945,
|
|
25055,
|
|
35879,
|
|
60764,
|
|
37465,
|
|
19095,
|
|
30076,
|
|
39171,
|
|
40251,
|
|
99251,
|
|
103651,
|
|
44424,
|
|
42079,
|
|
41463,
|
|
30687,
|
|
66049,
|
|
63324,
|
|
43741,
|
|
30747,
|
|
55270,
|
|
61446,
|
|
120156,
|
|
140939,
|
|
66853,
|
|
86953,
|
|
69355,
|
|
32690,
|
|
58048,
|
|
81731,
|
|
56422,
|
|
120569,
|
|
32288,
|
|
80189,
|
|
100647,
|
|
38668,
|
|
134089,
|
|
132156,
|
|
58361,
|
|
140733,
|
|
108290,
|
|
76810,
|
|
143928,
|
|
119693,
|
|
204627,
|
|
152848,
|
|
182981,
|
|
207355,
|
|
289724,
|
|
259424,
|
|
297020,
|
|
260683,
|
|
470771,
|
|
925082,
|
|
5163125,
|
|
480619,
|
|
118689,
|
|
103986,
|
|
141482,
|
|
126299,
|
|
207279,
|
|
61694,
|
|
53002,
|
|
148644,
|
|
59706,
|
|
158412,
|
|
105009,
|
|
94631,
|
|
67056,
|
|
43267,
|
|
45438,
|
|
119031,
|
|
151877,
|
|
61861,
|
|
128523,
|
|
39193,
|
|
109972,
|
|
98812,
|
|
71738,
|
|
184539,
|
|
56983,
|
|
63541,
|
|
94202,
|
|
97919,
|
|
35210,
|
|
114040,
|
|
85224,
|
|
38508,
|
|
49465,
|
|
41544,
|
|
45346,
|
|
45355,
|
|
48491,
|
|
29884,
|
|
19114,
|
|
62273,
|
|
38463,
|
|
47395,
|
|
64627,
|
|
29976,
|
|
57399,
|
|
31894,
|
|
18158,
|
|
48568,
|
|
23577,
|
|
37492,
|
|
28857,
|
|
29590,
|
|
29162,
|
|
34976,
|
|
22501,
|
|
35752,
|
|
22913,
|
|
46532,
|
|
55103,
|
|
67844,
|
|
25659,
|
|
38411,
|
|
48699,
|
|
18565,
|
|
24885,
|
|
27549,
|
|
37755,
|
|
26536,
|
|
42655,
|
|
17325,
|
|
19481,
|
|
39973,
|
|
29961,
|
|
16250,
|
|
24281,
|
|
55657,
|
|
34541,
|
|
31764,
|
|
68442,
|
|
81439,
|
|
44528,
|
|
40043,
|
|
22332,
|
|
22438,
|
|
24293,
|
|
49370,
|
|
28838,
|
|
6482,
|
|
7731,
|
|
26480,
|
|
21509,
|
|
22245,
|
|
27575,
|
|
34032,
|
|
12237,
|
|
6827,
|
|
30459,
|
|
33827,
|
|
32335,
|
|
23972,
|
|
46457,
|
|
49986,
|
|
43753,
|
|
47273,
|
|
21018,
|
|
21404,
|
|
38890,
|
|
42471,
|
|
54546,
|
|
69145,
|
|
26744,
|
|
10780,
|
|
22811,
|
|
22440,
|
|
20609,
|
|
16209,
|
|
9941,
|
|
41265,
|
|
32005,
|
|
23044,
|
|
8161,
|
|
59831,
|
|
36652,
|
|
139894,
|
|
75249,
|
|
47216,
|
|
33908,
|
|
51441,
|
|
49022,
|
|
45913,
|
|
50579,
|
|
84834,
|
|
24393,
|
|
42068,
|
|
61857,
|
|
103831,
|
|
92478,
|
|
71283,
|
|
80623,
|
|
79696,
|
|
86746,
|
|
110670,
|
|
30049,
|
|
284608,
|
|
45053,
|
|
33466,
|
|
112238,
|
|
75769,
|
|
45694,
|
|
47120,
|
|
27010,
|
|
75268,
|
|
24760,
|
|
20170,
|
|
23242,
|
|
13814,
|
|
16711,
|
|
14280,
|
|
21005,
|
|
46785,
|
|
17495,
|
|
133822,
|
|
43794,
|
|
44987,
|
|
13118,
|
|
34105,
|
|
31908,
|
|
39741,
|
|
27312,
|
|
60882,
|
|
92474,
|
|
41987,
|
|
46728,
|
|
23542,
|
|
26486,
|
|
17386,
|
|
15667,
|
|
66680,
|
|
57098,
|
|
17563,
|
|
10075,
|
|
57468,
|
|
46734,
|
|
32822,
|
|
20437,
|
|
27376,
|
|
50021,
|
|
21331,
|
|
73889,
|
|
17234,
|
|
25814,
|
|
31603,
|
|
27124,
|
|
84551,
|
|
59360,
|
|
40184,
|
|
17191,
|
|
10811,
|
|
7580,
|
|
17510,
|
|
23243,
|
|
16827,
|
|
9881,
|
|
22042,
|
|
5854,
|
|
13848,
|
|
47313,
|
|
10173,
|
|
40406,
|
|
77532,
|
|
11168,
|
|
71350,
|
|
12618,
|
|
38945,
|
|
166918,
|
|
54515,
|
|
52741,
|
|
25976,
|
|
44885,
|
|
29824,
|
|
16837,
|
|
15392,
|
|
37202,
|
|
25331,
|
|
13457,
|
|
264750,
|
|
15561,
|
|
16766,
|
|
26357,
|
|
19788,
|
|
77008,
|
|
119057,
|
|
22644,
|
|
10317,
|
|
7596,
|
|
24251,
|
|
27908,
|
|
9168,
|
|
13284,
|
|
18499,
|
|
13428,
|
|
32906,
|
|
24434,
|
|
116824,
|
|
20455,
|
|
32603,
|
|
41168,
|
|
16334,
|
|
49438,
|
|
28650,
|
|
12890,
|
|
17184,
|
|
18655,
|
|
7716,
|
|
50715,
|
|
39409,
|
|
3917,
|
|
6324,
|
|
16791,
|
|
62526,
|
|
59684,
|
|
40820,
|
|
61425,
|
|
115024,
|
|
65174,
|
|
50836,
|
|
55115,
|
|
60479,
|
|
51869,
|
|
168747,
|
|
133756,
|
|
70972,
|
|
40223,
|
|
58472,
|
|
47929,
|
|
24979,
|
|
50068,
|
|
17808,
|
|
32200,
|
|
22200,
|
|
48320,
|
|
32872,
|
|
17544,
|
|
107105,
|
|
47437,
|
|
24089,
|
|
14609,
|
|
35558,
|
|
48362,
|
|
25322,
|
|
21852,
|
|
21930,
|
|
50835,
|
|
29517,
|
|
79375,
|
|
95825,
|
|
43784,
|
|
161623,
|
|
89789,
|
|
54141,
|
|
149927,
|
|
141040,
|
|
90442,
|
|
110814,
|
|
167726,
|
|
209436,
|
|
165389,
|
|
140663,
|
|
94591,
|
|
167302,
|
|
47747,
|
|
255235,
|
|
78008,
|
|
129081,
|
|
66198,
|
|
139506,
|
|
109272,
|
|
101344,
|
|
79487,
|
|
114216,
|
|
43073,
|
|
54690,
|
|
45408,
|
|
46612,
|
|
114217,
|
|
152675,
|
|
81277,
|
|
247335,
|
|
206461,
|
|
404892,
|
|
105695,
|
|
75401,
|
|
154724,
|
|
123219,
|
|
99710,
|
|
47777,
|
|
80119,
|
|
59569,
|
|
152005,
|
|
83482,
|
|
159662,
|
|
95226,
|
|
49489,
|
|
90800,
|
|
149401,
|
|
81056,
|
|
66763,
|
|
103122,
|
|
97479,
|
|
94363,
|
|
182847,
|
|
86334,
|
|
50235,
|
|
83090,
|
|
72212,
|
|
151312,
|
|
397305,
|
|
189708,
|
|
104021,
|
|
263623,
|
|
203993,
|
|
362870,
|
|
211834,
|
|
228303,
|
|
85970,
|
|
124198,
|
|
72004,
|
|
61527,
|
|
116900,
|
|
115052,
|
|
147129,
|
|
95233,
|
|
114490,
|
|
105720,
|
|
101911,
|
|
93163,
|
|
115973,
|
|
134539,
|
|
88977,
|
|
140412,
|
|
160525,
|
|
236528,
|
|
197242,
|
|
162588,
|
|
268668,
|
|
312442,
|
|
263046,
|
|
367601,
|
|
677951,
|
|
4119936,
|
|
537249,
|
|
131556,
|
|
119527,
|
|
52933,
|
|
66688,
|
|
81221,
|
|
139811,
|
|
71664,
|
|
73175,
|
|
58365,
|
|
102770,
|
|
104223,
|
|
84938,
|
|
61134,
|
|
69419,
|
|
70574,
|
|
53044,
|
|
61110,
|
|
42864,
|
|
33971,
|
|
77547,
|
|
130868,
|
|
35845,
|
|
30128,
|
|
33720,
|
|
144916,
|
|
157801,
|
|
102640,
|
|
39930,
|
|
54251,
|
|
58757,
|
|
94602,
|
|
52684,
|
|
40688,
|
|
37890,
|
|
31245,
|
|
107460,
|
|
63446,
|
|
61025,
|
|
149489,
|
|
103461,
|
|
46489,
|
|
31726,
|
|
44589,
|
|
53106,
|
|
90947,
|
|
42085,
|
|
146323,
|
|
93643,
|
|
139343,
|
|
136129,
|
|
76469,
|
|
77754,
|
|
61547,
|
|
73299,
|
|
105236,
|
|
71168,
|
|
80028,
|
|
94549,
|
|
36365,
|
|
45612,
|
|
22283,
|
|
126745,
|
|
119714,
|
|
24534,
|
|
100053,
|
|
62724,
|
|
24152,
|
|
32428,
|
|
49192,
|
|
63009,
|
|
80257,
|
|
96725,
|
|
93445,
|
|
48966,
|
|
46985,
|
|
43235,
|
|
72918,
|
|
35741,
|
|
46387,
|
|
40966,
|
|
42001,
|
|
83323,
|
|
148450,
|
|
46987,
|
|
52713,
|
|
98601,
|
|
52913,
|
|
55496,
|
|
64165,
|
|
62705,
|
|
69678,
|
|
80733,
|
|
38265,
|
|
41316,
|
|
30273,
|
|
80302,
|
|
46749,
|
|
72413,
|
|
50855,
|
|
58493,
|
|
36934,
|
|
94929,
|
|
57414,
|
|
57108,
|
|
48653,
|
|
53120,
|
|
63918,
|
|
59274,
|
|
56282,
|
|
88153,
|
|
33334,
|
|
57753,
|
|
55819,
|
|
44469,
|
|
70123,
|
|
32329,
|
|
75772,
|
|
65336,
|
|
19180,
|
|
27498,
|
|
81256,
|
|
85553,
|
|
44712,
|
|
95183,
|
|
23073,
|
|
71190,
|
|
41500,
|
|
83303,
|
|
25060,
|
|
59501,
|
|
35822,
|
|
43361,
|
|
78335,
|
|
45335,
|
|
47124,
|
|
86773,
|
|
30969,
|
|
16394,
|
|
33263,
|
|
59164,
|
|
40249,
|
|
43566,
|
|
20624,
|
|
43239,
|
|
21976,
|
|
24742,
|
|
35760,
|
|
4851,
|
|
46369,
|
|
73620,
|
|
48095,
|
|
73017,
|
|
69680,
|
|
41468,
|
|
58131,
|
|
32052,
|
|
29249,
|
|
53696,
|
|
49741,
|
|
62580,
|
|
66152,
|
|
54718,
|
|
35225,
|
|
33249,
|
|
78089,
|
|
43076,
|
|
34065,
|
|
32298,
|
|
21958,
|
|
35951,
|
|
42258,
|
|
65146,
|
|
65612,
|
|
132219,
|
|
52703,
|
|
25453,
|
|
15991,
|
|
40036,
|
|
31192,
|
|
90067,
|
|
37785,
|
|
311427,
|
|
61057,
|
|
45249,
|
|
49941,
|
|
87393,
|
|
65795,
|
|
32596,
|
|
81129,
|
|
46553,
|
|
71522,
|
|
42041,
|
|
36895,
|
|
33708,
|
|
28283,
|
|
16607,
|
|
40168,
|
|
44444,
|
|
33394,
|
|
19519,
|
|
34770,
|
|
17662,
|
|
59555,
|
|
18833,
|
|
22634,
|
|
28651,
|
|
45062,
|
|
21261,
|
|
67586,
|
|
13384,
|
|
81195,
|
|
23328,
|
|
19154,
|
|
25172,
|
|
37854,
|
|
27798,
|
|
18378,
|
|
45026,
|
|
11768,
|
|
26419,
|
|
37829,
|
|
28011,
|
|
73427,
|
|
25150,
|
|
46331,
|
|
69953,
|
|
18416,
|
|
17430,
|
|
30934,
|
|
56453,
|
|
31506,
|
|
235358,
|
|
16209,
|
|
80620,
|
|
49035,
|
|
25979,
|
|
19599,
|
|
25418,
|
|
100696,
|
|
70765,
|
|
38718,
|
|
20774,
|
|
35679,
|
|
38072,
|
|
24404,
|
|
25658,
|
|
148897,
|
|
131589,
|
|
53718,
|
|
28574,
|
|
82298,
|
|
44929,
|
|
55721,
|
|
30386,
|
|
59636,
|
|
38060,
|
|
56641,
|
|
51304,
|
|
22996,
|
|
37665,
|
|
31745,
|
|
94643,
|
|
40609,
|
|
74966,
|
|
45116,
|
|
11599,
|
|
22051,
|
|
78484,
|
|
47508,
|
|
62544,
|
|
63910,
|
|
33558,
|
|
52279,
|
|
47242,
|
|
45130,
|
|
216976,
|
|
115663,
|
|
106090,
|
|
68366,
|
|
444686,
|
|
485047,
|
|
58779,
|
|
285267,
|
|
17426,
|
|
61926,
|
|
85381,
|
|
132180,
|
|
43033,
|
|
61653,
|
|
28095,
|
|
56225,
|
|
19460,
|
|
83416,
|
|
15570,
|
|
38095,
|
|
22722,
|
|
79764,
|
|
42209,
|
|
167114,
|
|
58536,
|
|
30431,
|
|
80297,
|
|
100623,
|
|
87075,
|
|
46243,
|
|
26586,
|
|
58840,
|
|
102392,
|
|
32225,
|
|
374269,
|
|
415234,
|
|
229571,
|
|
73305,
|
|
21475,
|
|
76018,
|
|
36909,
|
|
79794,
|
|
42180,
|
|
66785,
|
|
152687,
|
|
29456,
|
|
129751,
|
|
66209,
|
|
113022,
|
|
27827,
|
|
50254,
|
|
288029,
|
|
123861,
|
|
160232,
|
|
183583,
|
|
55882,
|
|
127440,
|
|
63065,
|
|
107326,
|
|
74923,
|
|
124055,
|
|
77201,
|
|
52067,
|
|
95203,
|
|
103390,
|
|
65762,
|
|
55112,
|
|
49062,
|
|
49907,
|
|
47329,
|
|
91767,
|
|
94067,
|
|
278244,
|
|
134132,
|
|
80150,
|
|
36595,
|
|
61217,
|
|
49823,
|
|
153183,
|
|
90449,
|
|
61746,
|
|
25226,
|
|
45224,
|
|
100292,
|
|
141831,
|
|
61020,
|
|
157491,
|
|
72064,
|
|
110160,
|
|
152835,
|
|
75247,
|
|
79642,
|
|
232252,
|
|
99481,
|
|
92180,
|
|
80936,
|
|
103966,
|
|
109719,
|
|
94363,
|
|
128230,
|
|
81590,
|
|
108848,
|
|
95462,
|
|
189571,
|
|
273358,
|
|
151716,
|
|
126119,
|
|
202146,
|
|
160679,
|
|
346944,
|
|
164480,
|
|
236078,
|
|
259056,
|
|
853820,
|
|
4431212,
|
|
704420,
|
|
340392,
|
|
482002,
|
|
594378,
|
|
213113,
|
|
314559,
|
|
194405,
|
|
290334,
|
|
189339,
|
|
382039,
|
|
241225,
|
|
138942,
|
|
205664,
|
|
171249,
|
|
116590,
|
|
229905,
|
|
221746,
|
|
150749,
|
|
260772,
|
|
269441,
|
|
163890,
|
|
171539,
|
|
111781,
|
|
100832,
|
|
130154,
|
|
166581,
|
|
88080,
|
|
182482,
|
|
385126,
|
|
204229,
|
|
568176,
|
|
222491,
|
|
236605,
|
|
145517,
|
|
98877,
|
|
198465,
|
|
160193,
|
|
160617,
|
|
179999,
|
|
156834,
|
|
118634,
|
|
107430,
|
|
130148,
|
|
191152,
|
|
107129,
|
|
89317,
|
|
63390,
|
|
213839,
|
|
87581,
|
|
67297,
|
|
100147,
|
|
73661,
|
|
98449,
|
|
107983,
|
|
183456,
|
|
203112,
|
|
65564,
|
|
38120,
|
|
82953,
|
|
75066,
|
|
99911,
|
|
118338,
|
|
72521,
|
|
52290,
|
|
77755,
|
|
139796,
|
|
51444,
|
|
73094,
|
|
69609,
|
|
39670,
|
|
35768,
|
|
44493,
|
|
66628,
|
|
65705,
|
|
38457,
|
|
63141,
|
|
42628,
|
|
26883,
|
|
38533,
|
|
57400,
|
|
54696,
|
|
46404,
|
|
43690,
|
|
53226,
|
|
58058,
|
|
47748,
|
|
51189,
|
|
49250,
|
|
35648,
|
|
57453,
|
|
35660,
|
|
61424,
|
|
68374,
|
|
54288,
|
|
23729,
|
|
57860,
|
|
40111,
|
|
187321,
|
|
43104,
|
|
63670,
|
|
59188,
|
|
41256,
|
|
28248,
|
|
25928,
|
|
27187,
|
|
42367,
|
|
20249,
|
|
35042,
|
|
59092,
|
|
38622,
|
|
13327,
|
|
92540,
|
|
169789,
|
|
54675,
|
|
30138,
|
|
75871,
|
|
36613,
|
|
25024,
|
|
92339,
|
|
51587,
|
|
41077,
|
|
39828,
|
|
14881,
|
|
46153,
|
|
67114,
|
|
47139,
|
|
63177,
|
|
34140,
|
|
31362,
|
|
97907,
|
|
45975,
|
|
96997,
|
|
93118,
|
|
21272,
|
|
28214,
|
|
28038,
|
|
35448,
|
|
41862,
|
|
59120,
|
|
35409,
|
|
22225,
|
|
95771,
|
|
31263,
|
|
68003,
|
|
133859,
|
|
110624,
|
|
23522,
|
|
35395,
|
|
23898,
|
|
41785,
|
|
41237,
|
|
22275,
|
|
275715,
|
|
60934,
|
|
37925,
|
|
22520,
|
|
25630,
|
|
6605,
|
|
25972,
|
|
40068,
|
|
30593,
|
|
34806,
|
|
22288,
|
|
33640,
|
|
31477,
|
|
18409,
|
|
7697,
|
|
22411,
|
|
108342,
|
|
15287,
|
|
21415,
|
|
51721,
|
|
13746,
|
|
42334,
|
|
34562,
|
|
27398,
|
|
45470,
|
|
16851,
|
|
35886,
|
|
24361,
|
|
327153,
|
|
38933,
|
|
25652,
|
|
43303,
|
|
9339,
|
|
15445,
|
|
8289,
|
|
41602,
|
|
40035,
|
|
51737,
|
|
19869,
|
|
5081,
|
|
39144,
|
|
65140,
|
|
13618,
|
|
10182,
|
|
30835,
|
|
42390,
|
|
11091,
|
|
17229,
|
|
29926,
|
|
19713,
|
|
30411,
|
|
22602,
|
|
20994,
|
|
51121,
|
|
11058,
|
|
5796,
|
|
36353,
|
|
96395,
|
|
32062,
|
|
71953,
|
|
54626,
|
|
35152,
|
|
18019,
|
|
50815,
|
|
12511,
|
|
49093,
|
|
76197,
|
|
8176,
|
|
71997,
|
|
75276,
|
|
126823,
|
|
48792,
|
|
18916,
|
|
27560,
|
|
13105,
|
|
39802,
|
|
9154,
|
|
79919,
|
|
56460,
|
|
9353,
|
|
26471,
|
|
77196,
|
|
32230,
|
|
33440,
|
|
6630,
|
|
44217,
|
|
31587,
|
|
21359,
|
|
16358,
|
|
45261,
|
|
58033,
|
|
22750,
|
|
15350,
|
|
35836,
|
|
22296,
|
|
2102,
|
|
43644,
|
|
13065,
|
|
19901,
|
|
28181,
|
|
53722,
|
|
27710,
|
|
7206,
|
|
23958,
|
|
51876,
|
|
14994,
|
|
10323,
|
|
19174,
|
|
46067,
|
|
68534,
|
|
42760,
|
|
11591,
|
|
6334,
|
|
45014,
|
|
9629,
|
|
168856,
|
|
40843,
|
|
56391,
|
|
24967,
|
|
4363,
|
|
6905,
|
|
14019,
|
|
34014,
|
|
73564,
|
|
24942,
|
|
76503,
|
|
111873,
|
|
19535,
|
|
46125,
|
|
116281,
|
|
11788,
|
|
31078,
|
|
56285,
|
|
30694,
|
|
26079,
|
|
16578,
|
|
50147,
|
|
6625,
|
|
40502,
|
|
18908,
|
|
38987,
|
|
67329,
|
|
5771,
|
|
59286,
|
|
46253,
|
|
22872,
|
|
54713,
|
|
44149,
|
|
34924,
|
|
61502,
|
|
13081,
|
|
42908,
|
|
8761,
|
|
35476,
|
|
27356,
|
|
7799,
|
|
38799,
|
|
16434,
|
|
62035,
|
|
71548,
|
|
31175,
|
|
4532,
|
|
25448,
|
|
43268,
|
|
42586,
|
|
22909,
|
|
36450,
|
|
17768,
|
|
20955,
|
|
15692,
|
|
49081,
|
|
12224,
|
|
65355,
|
|
91336,
|
|
13644,
|
|
36530,
|
|
32951,
|
|
18751,
|
|
47799,
|
|
41366,
|
|
147436,
|
|
67192,
|
|
174256,
|
|
69122,
|
|
51374,
|
|
136602,
|
|
159773,
|
|
10843,
|
|
31390,
|
|
89165,
|
|
30541,
|
|
17912,
|
|
126685,
|
|
44852,
|
|
52191,
|
|
20961,
|
|
115283,
|
|
51897,
|
|
56599,
|
|
24616,
|
|
23842,
|
|
44103,
|
|
49206,
|
|
26751,
|
|
50605,
|
|
49449,
|
|
35427,
|
|
7915,
|
|
139751,
|
|
39948,
|
|
40158,
|
|
57549,
|
|
21125,
|
|
42819,
|
|
96883,
|
|
77299,
|
|
55270,
|
|
51363,
|
|
99489,
|
|
35961,
|
|
81146,
|
|
12206,
|
|
148752,
|
|
54537,
|
|
84856,
|
|
69586,
|
|
168111,
|
|
109873,
|
|
140730,
|
|
136291,
|
|
342943,
|
|
183122,
|
|
212707,
|
|
237412,
|
|
229952,
|
|
223157,
|
|
183872,
|
|
665048,
|
|
3493029,
|
|
528053,
|
|
137903,
|
|
71976,
|
|
65537,
|
|
54477,
|
|
105494,
|
|
48078,
|
|
98224,
|
|
28525,
|
|
86647,
|
|
81039,
|
|
34603,
|
|
52824,
|
|
85830,
|
|
35402,
|
|
31282,
|
|
51514,
|
|
62585,
|
|
36953,
|
|
84718,
|
|
43653,
|
|
38067,
|
|
29885,
|
|
23496,
|
|
27002,
|
|
69102,
|
|
146343,
|
|
50178,
|
|
259006,
|
|
61642,
|
|
51664,
|
|
37922,
|
|
59988,
|
|
122979,
|
|
122217,
|
|
95666,
|
|
156640,
|
|
216270,
|
|
131920,
|
|
66794,
|
|
75591,
|
|
103429,
|
|
70599,
|
|
55390,
|
|
53213,
|
|
73811,
|
|
154320,
|
|
136844,
|
|
78184,
|
|
370349,
|
|
45967,
|
|
54109,
|
|
29164,
|
|
47286,
|
|
188077,
|
|
53205,
|
|
68606,
|
|
193726,
|
|
51868,
|
|
47109,
|
|
60041,
|
|
109166,
|
|
140634,
|
|
34806,
|
|
24472,
|
|
73002,
|
|
42753,
|
|
41170,
|
|
195626,
|
|
24680,
|
|
46927,
|
|
18069,
|
|
40390,
|
|
32076,
|
|
42092,
|
|
61458,
|
|
34244,
|
|
45985,
|
|
36241,
|
|
45751,
|
|
33945,
|
|
37035,
|
|
38973,
|
|
27892,
|
|
30748,
|
|
23250,
|
|
60986,
|
|
38361,
|
|
95952,
|
|
15951,
|
|
56455,
|
|
86502,
|
|
48779,
|
|
60161,
|
|
38544,
|
|
70045,
|
|
34303,
|
|
41525,
|
|
38257,
|
|
27757,
|
|
37286,
|
|
44301,
|
|
13171,
|
|
38296,
|
|
23827,
|
|
23269,
|
|
135625,
|
|
57068,
|
|
66888,
|
|
36281,
|
|
68892,
|
|
32164,
|
|
74526,
|
|
29909,
|
|
79023,
|
|
39834,
|
|
47754,
|
|
64122,
|
|
69770,
|
|
45178,
|
|
19916,
|
|
52485,
|
|
32775,
|
|
25795,
|
|
25650,
|
|
76940,
|
|
29354,
|
|
49202
|
|
],
|
|
"yaxis": "y2"
|
|
},
|
|
{
|
|
"name": "('array', 'BAC')",
|
|
"showlegend": true,
|
|
"type": "scatter",
|
|
"uid": "d3ddf8f7-1a69-47e0-b396-b9ffd8016f86",
|
|
"x": [
|
|
"2024-04-29T09:30:00-04:00",
|
|
"2024-04-29T09:31:00-04:00",
|
|
"2024-04-29T09:32:00-04:00",
|
|
"2024-04-29T09:33:00-04:00",
|
|
"2024-04-29T09:34:00-04:00",
|
|
"2024-04-29T09:35:00-04:00",
|
|
"2024-04-29T09:36:00-04:00",
|
|
"2024-04-29T09:37:00-04:00",
|
|
"2024-04-29T09:38:00-04:00",
|
|
"2024-04-29T09:39:00-04:00",
|
|
"2024-04-29T09:40:00-04:00",
|
|
"2024-04-29T09:41:00-04:00",
|
|
"2024-04-29T09:42:00-04:00",
|
|
"2024-04-29T09:43:00-04:00",
|
|
"2024-04-29T09:44:00-04:00",
|
|
"2024-04-29T09:45:00-04:00",
|
|
"2024-04-29T09:46:00-04:00",
|
|
"2024-04-29T09:47:00-04:00",
|
|
"2024-04-29T09:48:00-04:00",
|
|
"2024-04-29T09:49:00-04:00",
|
|
"2024-04-29T09:50:00-04:00",
|
|
"2024-04-29T09:51:00-04:00",
|
|
"2024-04-29T09:52:00-04:00",
|
|
"2024-04-29T09:53:00-04:00",
|
|
"2024-04-29T09:54:00-04:00",
|
|
"2024-04-29T09:55:00-04:00",
|
|
"2024-04-29T09:56:00-04:00",
|
|
"2024-04-29T09:57:00-04:00",
|
|
"2024-04-29T09:58:00-04:00",
|
|
"2024-04-29T09:59:00-04:00",
|
|
"2024-04-29T10:00:00-04:00",
|
|
"2024-04-29T10:01:00-04:00",
|
|
"2024-04-29T10:02:00-04:00",
|
|
"2024-04-29T10:03:00-04:00",
|
|
"2024-04-29T10:04:00-04:00",
|
|
"2024-04-29T10:05:00-04:00",
|
|
"2024-04-29T10:06:00-04:00",
|
|
"2024-04-29T10:07:00-04:00",
|
|
"2024-04-29T10:08:00-04:00",
|
|
"2024-04-29T10:09:00-04:00",
|
|
"2024-04-29T10:10:00-04:00",
|
|
"2024-04-29T10:11:00-04:00",
|
|
"2024-04-29T10:12:00-04:00",
|
|
"2024-04-29T10:13:00-04:00",
|
|
"2024-04-29T10:14:00-04:00",
|
|
"2024-04-29T10:15:00-04:00",
|
|
"2024-04-29T10:16:00-04:00",
|
|
"2024-04-29T10:17:00-04:00",
|
|
"2024-04-29T10:18:00-04:00",
|
|
"2024-04-29T10:19:00-04:00",
|
|
"2024-04-29T10:20:00-04:00",
|
|
"2024-04-29T10:21:00-04:00",
|
|
"2024-04-29T10:22:00-04:00",
|
|
"2024-04-29T10:23:00-04:00",
|
|
"2024-04-29T10:24:00-04:00",
|
|
"2024-04-29T10:25:00-04:00",
|
|
"2024-04-29T10:26:00-04:00",
|
|
"2024-04-29T10:27:00-04:00",
|
|
"2024-04-29T10:28:00-04:00",
|
|
"2024-04-29T10:29:00-04:00",
|
|
"2024-04-29T10:30:00-04:00",
|
|
"2024-04-29T10:31:00-04:00",
|
|
"2024-04-29T10:32:00-04:00",
|
|
"2024-04-29T10:33:00-04:00",
|
|
"2024-04-29T10:34:00-04:00",
|
|
"2024-04-29T10:35:00-04:00",
|
|
"2024-04-29T10:36:00-04:00",
|
|
"2024-04-29T10:37:00-04:00",
|
|
"2024-04-29T10:38:00-04:00",
|
|
"2024-04-29T10:39:00-04:00",
|
|
"2024-04-29T10:40:00-04:00",
|
|
"2024-04-29T10:41:00-04:00",
|
|
"2024-04-29T10:42:00-04:00",
|
|
"2024-04-29T10:43:00-04:00",
|
|
"2024-04-29T10:44:00-04:00",
|
|
"2024-04-29T10:45:00-04:00",
|
|
"2024-04-29T10:46:00-04:00",
|
|
"2024-04-29T10:47:00-04:00",
|
|
"2024-04-29T10:48:00-04:00",
|
|
"2024-04-29T10:49:00-04:00",
|
|
"2024-04-29T10:50:00-04:00",
|
|
"2024-04-29T10:51:00-04:00",
|
|
"2024-04-29T10:52:00-04:00",
|
|
"2024-04-29T10:53:00-04:00",
|
|
"2024-04-29T10:54:00-04:00",
|
|
"2024-04-29T10:55:00-04:00",
|
|
"2024-04-29T10:56:00-04:00",
|
|
"2024-04-29T10:57:00-04:00",
|
|
"2024-04-29T10:58:00-04:00",
|
|
"2024-04-29T10:59:00-04:00",
|
|
"2024-04-29T11:00:00-04:00",
|
|
"2024-04-29T11:01:00-04:00",
|
|
"2024-04-29T11:02:00-04:00",
|
|
"2024-04-29T11:03:00-04:00",
|
|
"2024-04-29T11:04:00-04:00",
|
|
"2024-04-29T11:05:00-04:00",
|
|
"2024-04-29T11:06:00-04:00",
|
|
"2024-04-29T11:07:00-04:00",
|
|
"2024-04-29T11:08:00-04:00",
|
|
"2024-04-29T11:09:00-04:00",
|
|
"2024-04-29T11:10:00-04:00",
|
|
"2024-04-29T11:11:00-04:00",
|
|
"2024-04-29T11:12:00-04:00",
|
|
"2024-04-29T11:13:00-04:00",
|
|
"2024-04-29T11:14:00-04:00",
|
|
"2024-04-29T11:15:00-04:00",
|
|
"2024-04-29T11:16:00-04:00",
|
|
"2024-04-29T11:17:00-04:00",
|
|
"2024-04-29T11:18:00-04:00",
|
|
"2024-04-29T11:19:00-04:00",
|
|
"2024-04-29T11:20:00-04:00",
|
|
"2024-04-29T11:21:00-04:00",
|
|
"2024-04-29T11:22:00-04:00",
|
|
"2024-04-29T11:23:00-04:00",
|
|
"2024-04-29T11:24:00-04:00",
|
|
"2024-04-29T11:25:00-04:00",
|
|
"2024-04-29T11:26:00-04:00",
|
|
"2024-04-29T11:27:00-04:00",
|
|
"2024-04-29T11:28:00-04:00",
|
|
"2024-04-29T11:29:00-04:00",
|
|
"2024-04-29T11:30:00-04:00",
|
|
"2024-04-29T11:31:00-04:00",
|
|
"2024-04-29T11:32:00-04:00",
|
|
"2024-04-29T11:33:00-04:00",
|
|
"2024-04-29T11:34:00-04:00",
|
|
"2024-04-29T11:35:00-04:00",
|
|
"2024-04-29T11:36:00-04:00",
|
|
"2024-04-29T11:37:00-04:00",
|
|
"2024-04-29T11:38:00-04:00",
|
|
"2024-04-29T11:39:00-04:00",
|
|
"2024-04-29T11:40:00-04:00",
|
|
"2024-04-29T11:41:00-04:00",
|
|
"2024-04-29T11:42:00-04:00",
|
|
"2024-04-29T11:43:00-04:00",
|
|
"2024-04-29T11:44:00-04:00",
|
|
"2024-04-29T11:45:00-04:00",
|
|
"2024-04-29T11:46:00-04:00",
|
|
"2024-04-29T11:47:00-04:00",
|
|
"2024-04-29T11:48:00-04:00",
|
|
"2024-04-29T11:49:00-04:00",
|
|
"2024-04-29T11:50:00-04:00",
|
|
"2024-04-29T11:51:00-04:00",
|
|
"2024-04-29T11:52:00-04:00",
|
|
"2024-04-29T11:53:00-04:00",
|
|
"2024-04-29T11:54:00-04:00",
|
|
"2024-04-29T11:55:00-04:00",
|
|
"2024-04-29T11:56:00-04:00",
|
|
"2024-04-29T11:57:00-04:00",
|
|
"2024-04-29T11:58:00-04:00",
|
|
"2024-04-29T11:59:00-04:00",
|
|
"2024-04-29T12:00:00-04:00",
|
|
"2024-04-29T12:01:00-04:00",
|
|
"2024-04-29T12:02:00-04:00",
|
|
"2024-04-29T12:03:00-04:00",
|
|
"2024-04-29T12:04:00-04:00",
|
|
"2024-04-29T12:05:00-04:00",
|
|
"2024-04-29T12:06:00-04:00",
|
|
"2024-04-29T12:07:00-04:00",
|
|
"2024-04-29T12:08:00-04:00",
|
|
"2024-04-29T12:09:00-04:00",
|
|
"2024-04-29T12:10:00-04:00",
|
|
"2024-04-29T12:11:00-04:00",
|
|
"2024-04-29T12:12:00-04:00",
|
|
"2024-04-29T12:13:00-04:00",
|
|
"2024-04-29T12:14:00-04:00",
|
|
"2024-04-29T12:15:00-04:00",
|
|
"2024-04-29T12:16:00-04:00",
|
|
"2024-04-29T12:17:00-04:00",
|
|
"2024-04-29T12:18:00-04:00",
|
|
"2024-04-29T12:19:00-04:00",
|
|
"2024-04-29T12:20:00-04:00",
|
|
"2024-04-29T12:21:00-04:00",
|
|
"2024-04-29T12:22:00-04:00",
|
|
"2024-04-29T12:23:00-04:00",
|
|
"2024-04-29T12:24:00-04:00",
|
|
"2024-04-29T12:25:00-04:00",
|
|
"2024-04-29T12:26:00-04:00",
|
|
"2024-04-29T12:27:00-04:00",
|
|
"2024-04-29T12:28:00-04:00",
|
|
"2024-04-29T12:29:00-04:00",
|
|
"2024-04-29T12:30:00-04:00",
|
|
"2024-04-29T12:31:00-04:00",
|
|
"2024-04-29T12:32:00-04:00",
|
|
"2024-04-29T12:33:00-04:00",
|
|
"2024-04-29T12:34:00-04:00",
|
|
"2024-04-29T12:35:00-04:00",
|
|
"2024-04-29T12:36:00-04:00",
|
|
"2024-04-29T12:37:00-04:00",
|
|
"2024-04-29T12:38:00-04:00",
|
|
"2024-04-29T12:39:00-04:00",
|
|
"2024-04-29T12:40:00-04:00",
|
|
"2024-04-29T12:41:00-04:00",
|
|
"2024-04-29T12:42:00-04:00",
|
|
"2024-04-29T12:43:00-04:00",
|
|
"2024-04-29T12:44:00-04:00",
|
|
"2024-04-29T12:45:00-04:00",
|
|
"2024-04-29T12:46:00-04:00",
|
|
"2024-04-29T12:47:00-04:00",
|
|
"2024-04-29T12:48:00-04:00",
|
|
"2024-04-29T12:49:00-04:00",
|
|
"2024-04-29T12:50:00-04:00",
|
|
"2024-04-29T12:51:00-04:00",
|
|
"2024-04-29T12:52:00-04:00",
|
|
"2024-04-29T12:53:00-04:00",
|
|
"2024-04-29T12:54:00-04:00",
|
|
"2024-04-29T12:55:00-04:00",
|
|
"2024-04-29T12:56:00-04:00",
|
|
"2024-04-29T12:57:00-04:00",
|
|
"2024-04-29T12:58:00-04:00",
|
|
"2024-04-29T12:59:00-04:00",
|
|
"2024-04-29T13:00:00-04:00",
|
|
"2024-04-29T13:01:00-04:00",
|
|
"2024-04-29T13:02:00-04:00",
|
|
"2024-04-29T13:03:00-04:00",
|
|
"2024-04-29T13:04:00-04:00",
|
|
"2024-04-29T13:05:00-04:00",
|
|
"2024-04-29T13:06:00-04:00",
|
|
"2024-04-29T13:07:00-04:00",
|
|
"2024-04-29T13:08:00-04:00",
|
|
"2024-04-29T13:09:00-04:00",
|
|
"2024-04-29T13:10:00-04:00",
|
|
"2024-04-29T13:11:00-04:00",
|
|
"2024-04-29T13:12:00-04:00",
|
|
"2024-04-29T13:13:00-04:00",
|
|
"2024-04-29T13:14:00-04:00",
|
|
"2024-04-29T13:15:00-04:00",
|
|
"2024-04-29T13:16:00-04:00",
|
|
"2024-04-29T13:17:00-04:00",
|
|
"2024-04-29T13:18:00-04:00",
|
|
"2024-04-29T13:19:00-04:00",
|
|
"2024-04-29T13:20:00-04:00",
|
|
"2024-04-29T13:21:00-04:00",
|
|
"2024-04-29T13:22:00-04:00",
|
|
"2024-04-29T13:23:00-04:00",
|
|
"2024-04-29T13:24:00-04:00",
|
|
"2024-04-29T13:25:00-04:00",
|
|
"2024-04-29T13:26:00-04:00",
|
|
"2024-04-29T13:27:00-04:00",
|
|
"2024-04-29T13:28:00-04:00",
|
|
"2024-04-29T13:29:00-04:00",
|
|
"2024-04-29T13:30:00-04:00",
|
|
"2024-04-29T13:31:00-04:00",
|
|
"2024-04-29T13:32:00-04:00",
|
|
"2024-04-29T13:33:00-04:00",
|
|
"2024-04-29T13:34:00-04:00",
|
|
"2024-04-29T13:35:00-04:00",
|
|
"2024-04-29T13:36:00-04:00",
|
|
"2024-04-29T13:37:00-04:00",
|
|
"2024-04-29T13:38:00-04:00",
|
|
"2024-04-29T13:39:00-04:00",
|
|
"2024-04-29T13:40:00-04:00",
|
|
"2024-04-29T13:41:00-04:00",
|
|
"2024-04-29T13:42:00-04:00",
|
|
"2024-04-29T13:43:00-04:00",
|
|
"2024-04-29T13:44:00-04:00",
|
|
"2024-04-29T13:45:00-04:00",
|
|
"2024-04-29T13:46:00-04:00",
|
|
"2024-04-29T13:47:00-04:00",
|
|
"2024-04-29T13:48:00-04:00",
|
|
"2024-04-29T13:49:00-04:00",
|
|
"2024-04-29T13:50:00-04:00",
|
|
"2024-04-29T13:51:00-04:00",
|
|
"2024-04-29T13:52:00-04:00",
|
|
"2024-04-29T13:53:00-04:00",
|
|
"2024-04-29T13:54:00-04:00",
|
|
"2024-04-29T13:55:00-04:00",
|
|
"2024-04-29T13:56:00-04:00",
|
|
"2024-04-29T13:57:00-04:00",
|
|
"2024-04-29T13:58:00-04:00",
|
|
"2024-04-29T13:59:00-04:00",
|
|
"2024-04-29T14:00:00-04:00",
|
|
"2024-04-29T14:01:00-04:00",
|
|
"2024-04-29T14:02:00-04:00",
|
|
"2024-04-29T14:03:00-04:00",
|
|
"2024-04-29T14:04:00-04:00",
|
|
"2024-04-29T14:05:00-04:00",
|
|
"2024-04-29T14:06:00-04:00",
|
|
"2024-04-29T14:07:00-04:00",
|
|
"2024-04-29T14:08:00-04:00",
|
|
"2024-04-29T14:09:00-04:00",
|
|
"2024-04-29T14:10:00-04:00",
|
|
"2024-04-29T14:11:00-04:00",
|
|
"2024-04-29T14:12:00-04:00",
|
|
"2024-04-29T14:13:00-04:00",
|
|
"2024-04-29T14:14:00-04:00",
|
|
"2024-04-29T14:15:00-04:00",
|
|
"2024-04-29T14:16:00-04:00",
|
|
"2024-04-29T14:17:00-04:00",
|
|
"2024-04-29T14:18:00-04:00",
|
|
"2024-04-29T14:19:00-04:00",
|
|
"2024-04-29T14:20:00-04:00",
|
|
"2024-04-29T14:21:00-04:00",
|
|
"2024-04-29T14:22:00-04:00",
|
|
"2024-04-29T14:23:00-04:00",
|
|
"2024-04-29T14:24:00-04:00",
|
|
"2024-04-29T14:25:00-04:00",
|
|
"2024-04-29T14:26:00-04:00",
|
|
"2024-04-29T14:27:00-04:00",
|
|
"2024-04-29T14:28:00-04:00",
|
|
"2024-04-29T14:29:00-04:00",
|
|
"2024-04-29T14:30:00-04:00",
|
|
"2024-04-29T14:31:00-04:00",
|
|
"2024-04-29T14:32:00-04:00",
|
|
"2024-04-29T14:33:00-04:00",
|
|
"2024-04-29T14:34:00-04:00",
|
|
"2024-04-29T14:35:00-04:00",
|
|
"2024-04-29T14:36:00-04:00",
|
|
"2024-04-29T14:37:00-04:00",
|
|
"2024-04-29T14:38:00-04:00",
|
|
"2024-04-29T14:39:00-04:00",
|
|
"2024-04-29T14:40:00-04:00",
|
|
"2024-04-29T14:41:00-04:00",
|
|
"2024-04-29T14:42:00-04:00",
|
|
"2024-04-29T14:43:00-04:00",
|
|
"2024-04-29T14:44:00-04:00",
|
|
"2024-04-29T14:45:00-04:00",
|
|
"2024-04-29T14:46:00-04:00",
|
|
"2024-04-29T14:47:00-04:00",
|
|
"2024-04-29T14:48:00-04:00",
|
|
"2024-04-29T14:49:00-04:00",
|
|
"2024-04-29T14:50:00-04:00",
|
|
"2024-04-29T14:51:00-04:00",
|
|
"2024-04-29T14:52:00-04:00",
|
|
"2024-04-29T14:53:00-04:00",
|
|
"2024-04-29T14:54:00-04:00",
|
|
"2024-04-29T14:55:00-04:00",
|
|
"2024-04-29T14:56:00-04:00",
|
|
"2024-04-29T14:57:00-04:00",
|
|
"2024-04-29T14:58:00-04:00",
|
|
"2024-04-29T14:59:00-04:00",
|
|
"2024-04-29T15:00:00-04:00",
|
|
"2024-04-29T15:01:00-04:00",
|
|
"2024-04-29T15:02:00-04:00",
|
|
"2024-04-29T15:03:00-04:00",
|
|
"2024-04-29T15:04:00-04:00",
|
|
"2024-04-29T15:05:00-04:00",
|
|
"2024-04-29T15:06:00-04:00",
|
|
"2024-04-29T15:07:00-04:00",
|
|
"2024-04-29T15:08:00-04:00",
|
|
"2024-04-29T15:09:00-04:00",
|
|
"2024-04-29T15:10:00-04:00",
|
|
"2024-04-29T15:11:00-04:00",
|
|
"2024-04-29T15:12:00-04:00",
|
|
"2024-04-29T15:13:00-04:00",
|
|
"2024-04-29T15:14:00-04:00",
|
|
"2024-04-29T15:15:00-04:00",
|
|
"2024-04-29T15:16:00-04:00",
|
|
"2024-04-29T15:17:00-04:00",
|
|
"2024-04-29T15:18:00-04:00",
|
|
"2024-04-29T15:19:00-04:00",
|
|
"2024-04-29T15:20:00-04:00",
|
|
"2024-04-29T15:21:00-04:00",
|
|
"2024-04-29T15:22:00-04:00",
|
|
"2024-04-29T15:23:00-04:00",
|
|
"2024-04-29T15:24:00-04:00",
|
|
"2024-04-29T15:25:00-04:00",
|
|
"2024-04-29T15:26:00-04:00",
|
|
"2024-04-29T15:27:00-04:00",
|
|
"2024-04-29T15:28:00-04:00",
|
|
"2024-04-29T15:29:00-04:00",
|
|
"2024-04-29T15:30:00-04:00",
|
|
"2024-04-29T15:31:00-04:00",
|
|
"2024-04-29T15:32:00-04:00",
|
|
"2024-04-29T15:33:00-04:00",
|
|
"2024-04-29T15:34:00-04:00",
|
|
"2024-04-29T15:35:00-04:00",
|
|
"2024-04-29T15:36:00-04:00",
|
|
"2024-04-29T15:37:00-04:00",
|
|
"2024-04-29T15:38:00-04:00",
|
|
"2024-04-29T15:39:00-04:00",
|
|
"2024-04-29T15:40:00-04:00",
|
|
"2024-04-29T15:41:00-04:00",
|
|
"2024-04-29T15:42:00-04:00",
|
|
"2024-04-29T15:43:00-04:00",
|
|
"2024-04-29T15:44:00-04:00",
|
|
"2024-04-29T15:45:00-04:00",
|
|
"2024-04-29T15:46:00-04:00",
|
|
"2024-04-29T15:47:00-04:00",
|
|
"2024-04-29T15:48:00-04:00",
|
|
"2024-04-29T15:49:00-04:00",
|
|
"2024-04-29T15:50:00-04:00",
|
|
"2024-04-29T15:51:00-04:00",
|
|
"2024-04-29T15:52:00-04:00",
|
|
"2024-04-29T15:53:00-04:00",
|
|
"2024-04-29T15:54:00-04:00",
|
|
"2024-04-29T15:55:00-04:00",
|
|
"2024-04-29T15:56:00-04:00",
|
|
"2024-04-29T15:57:00-04:00",
|
|
"2024-04-29T15:58:00-04:00",
|
|
"2024-04-29T15:59:00-04:00",
|
|
"2024-04-29T16:00:00-04:00",
|
|
"2024-04-30T09:30:00-04:00",
|
|
"2024-04-30T09:31:00-04:00",
|
|
"2024-04-30T09:32:00-04:00",
|
|
"2024-04-30T09:33:00-04:00",
|
|
"2024-04-30T09:34:00-04:00",
|
|
"2024-04-30T09:35:00-04:00",
|
|
"2024-04-30T09:36:00-04:00",
|
|
"2024-04-30T09:37:00-04:00",
|
|
"2024-04-30T09:38:00-04:00",
|
|
"2024-04-30T09:39:00-04:00",
|
|
"2024-04-30T09:40:00-04:00",
|
|
"2024-04-30T09:41:00-04:00",
|
|
"2024-04-30T09:42:00-04:00",
|
|
"2024-04-30T09:43:00-04:00",
|
|
"2024-04-30T09:44:00-04:00",
|
|
"2024-04-30T09:45:00-04:00",
|
|
"2024-04-30T09:46:00-04:00",
|
|
"2024-04-30T09:47:00-04:00",
|
|
"2024-04-30T09:48:00-04:00",
|
|
"2024-04-30T09:49:00-04:00",
|
|
"2024-04-30T09:50:00-04:00",
|
|
"2024-04-30T09:51:00-04:00",
|
|
"2024-04-30T09:52:00-04:00",
|
|
"2024-04-30T09:53:00-04:00",
|
|
"2024-04-30T09:54:00-04:00",
|
|
"2024-04-30T09:55:00-04:00",
|
|
"2024-04-30T09:56:00-04:00",
|
|
"2024-04-30T09:57:00-04:00",
|
|
"2024-04-30T09:58:00-04:00",
|
|
"2024-04-30T09:59:00-04:00",
|
|
"2024-04-30T10:00:00-04:00",
|
|
"2024-04-30T10:01:00-04:00",
|
|
"2024-04-30T10:02:00-04:00",
|
|
"2024-04-30T10:03:00-04:00",
|
|
"2024-04-30T10:04:00-04:00",
|
|
"2024-04-30T10:05:00-04:00",
|
|
"2024-04-30T10:06:00-04:00",
|
|
"2024-04-30T10:07:00-04:00",
|
|
"2024-04-30T10:08:00-04:00",
|
|
"2024-04-30T10:09:00-04:00",
|
|
"2024-04-30T10:10:00-04:00",
|
|
"2024-04-30T10:11:00-04:00",
|
|
"2024-04-30T10:12:00-04:00",
|
|
"2024-04-30T10:13:00-04:00",
|
|
"2024-04-30T10:14:00-04:00",
|
|
"2024-04-30T10:15:00-04:00",
|
|
"2024-04-30T10:16:00-04:00",
|
|
"2024-04-30T10:17:00-04:00",
|
|
"2024-04-30T10:18:00-04:00",
|
|
"2024-04-30T10:19:00-04:00",
|
|
"2024-04-30T10:20:00-04:00",
|
|
"2024-04-30T10:21:00-04:00",
|
|
"2024-04-30T10:22:00-04:00",
|
|
"2024-04-30T10:23:00-04:00",
|
|
"2024-04-30T10:24:00-04:00",
|
|
"2024-04-30T10:25:00-04:00",
|
|
"2024-04-30T10:26:00-04:00",
|
|
"2024-04-30T10:27:00-04:00",
|
|
"2024-04-30T10:28:00-04:00",
|
|
"2024-04-30T10:29:00-04:00",
|
|
"2024-04-30T10:30:00-04:00",
|
|
"2024-04-30T10:31:00-04:00",
|
|
"2024-04-30T10:32:00-04:00",
|
|
"2024-04-30T10:33:00-04:00",
|
|
"2024-04-30T10:34:00-04:00",
|
|
"2024-04-30T10:35:00-04:00",
|
|
"2024-04-30T10:36:00-04:00",
|
|
"2024-04-30T10:37:00-04:00",
|
|
"2024-04-30T10:38:00-04:00",
|
|
"2024-04-30T10:39:00-04:00",
|
|
"2024-04-30T10:40:00-04:00",
|
|
"2024-04-30T10:41:00-04:00",
|
|
"2024-04-30T10:42:00-04:00",
|
|
"2024-04-30T10:43:00-04:00",
|
|
"2024-04-30T10:44:00-04:00",
|
|
"2024-04-30T10:45:00-04:00",
|
|
"2024-04-30T10:46:00-04:00",
|
|
"2024-04-30T10:47:00-04:00",
|
|
"2024-04-30T10:48:00-04:00",
|
|
"2024-04-30T10:49:00-04:00",
|
|
"2024-04-30T10:50:00-04:00",
|
|
"2024-04-30T10:51:00-04:00",
|
|
"2024-04-30T10:52:00-04:00",
|
|
"2024-04-30T10:53:00-04:00",
|
|
"2024-04-30T10:54:00-04:00",
|
|
"2024-04-30T10:55:00-04:00",
|
|
"2024-04-30T10:56:00-04:00",
|
|
"2024-04-30T10:57:00-04:00",
|
|
"2024-04-30T10:58:00-04:00",
|
|
"2024-04-30T10:59:00-04:00",
|
|
"2024-04-30T11:00:00-04:00",
|
|
"2024-04-30T11:01:00-04:00",
|
|
"2024-04-30T11:02:00-04:00",
|
|
"2024-04-30T11:03:00-04:00",
|
|
"2024-04-30T11:04:00-04:00",
|
|
"2024-04-30T11:05:00-04:00",
|
|
"2024-04-30T11:06:00-04:00",
|
|
"2024-04-30T11:07:00-04:00",
|
|
"2024-04-30T11:08:00-04:00",
|
|
"2024-04-30T11:09:00-04:00",
|
|
"2024-04-30T11:10:00-04:00",
|
|
"2024-04-30T11:11:00-04:00",
|
|
"2024-04-30T11:12:00-04:00",
|
|
"2024-04-30T11:13:00-04:00",
|
|
"2024-04-30T11:14:00-04:00",
|
|
"2024-04-30T11:15:00-04:00",
|
|
"2024-04-30T11:16:00-04:00",
|
|
"2024-04-30T11:17:00-04:00",
|
|
"2024-04-30T11:18:00-04:00",
|
|
"2024-04-30T11:19:00-04:00",
|
|
"2024-04-30T11:20:00-04:00",
|
|
"2024-04-30T11:21:00-04:00",
|
|
"2024-04-30T11:22:00-04:00",
|
|
"2024-04-30T11:23:00-04:00",
|
|
"2024-04-30T11:24:00-04:00",
|
|
"2024-04-30T11:25:00-04:00",
|
|
"2024-04-30T11:26:00-04:00",
|
|
"2024-04-30T11:27:00-04:00",
|
|
"2024-04-30T11:28:00-04:00",
|
|
"2024-04-30T11:29:00-04:00",
|
|
"2024-04-30T11:30:00-04:00",
|
|
"2024-04-30T11:31:00-04:00",
|
|
"2024-04-30T11:32:00-04:00",
|
|
"2024-04-30T11:33:00-04:00",
|
|
"2024-04-30T11:34:00-04:00",
|
|
"2024-04-30T11:35:00-04:00",
|
|
"2024-04-30T11:36:00-04:00",
|
|
"2024-04-30T11:37:00-04:00",
|
|
"2024-04-30T11:38:00-04:00",
|
|
"2024-04-30T11:39:00-04:00",
|
|
"2024-04-30T11:40:00-04:00",
|
|
"2024-04-30T11:41:00-04:00",
|
|
"2024-04-30T11:42:00-04:00",
|
|
"2024-04-30T11:43:00-04:00",
|
|
"2024-04-30T11:44:00-04:00",
|
|
"2024-04-30T11:45:00-04:00",
|
|
"2024-04-30T11:46:00-04:00",
|
|
"2024-04-30T11:47:00-04:00",
|
|
"2024-04-30T11:48:00-04:00",
|
|
"2024-04-30T11:49:00-04:00",
|
|
"2024-04-30T11:50:00-04:00",
|
|
"2024-04-30T11:51:00-04:00",
|
|
"2024-04-30T11:52:00-04:00",
|
|
"2024-04-30T11:53:00-04:00",
|
|
"2024-04-30T11:54:00-04:00",
|
|
"2024-04-30T11:55:00-04:00",
|
|
"2024-04-30T11:56:00-04:00",
|
|
"2024-04-30T11:57:00-04:00",
|
|
"2024-04-30T11:58:00-04:00",
|
|
"2024-04-30T11:59:00-04:00",
|
|
"2024-04-30T12:00:00-04:00",
|
|
"2024-04-30T12:01:00-04:00",
|
|
"2024-04-30T12:02:00-04:00",
|
|
"2024-04-30T12:03:00-04:00",
|
|
"2024-04-30T12:04:00-04:00",
|
|
"2024-04-30T12:05:00-04:00",
|
|
"2024-04-30T12:06:00-04:00",
|
|
"2024-04-30T12:07:00-04:00",
|
|
"2024-04-30T12:08:00-04:00",
|
|
"2024-04-30T12:09:00-04:00",
|
|
"2024-04-30T12:10:00-04:00",
|
|
"2024-04-30T12:11:00-04:00",
|
|
"2024-04-30T12:12:00-04:00",
|
|
"2024-04-30T12:13:00-04:00",
|
|
"2024-04-30T12:14:00-04:00",
|
|
"2024-04-30T12:15:00-04:00",
|
|
"2024-04-30T12:16:00-04:00",
|
|
"2024-04-30T12:17:00-04:00",
|
|
"2024-04-30T12:18:00-04:00",
|
|
"2024-04-30T12:19:00-04:00",
|
|
"2024-04-30T12:20:00-04:00",
|
|
"2024-04-30T12:21:00-04:00",
|
|
"2024-04-30T12:22:00-04:00",
|
|
"2024-04-30T12:23:00-04:00",
|
|
"2024-04-30T12:24:00-04:00",
|
|
"2024-04-30T12:25:00-04:00",
|
|
"2024-04-30T12:26:00-04:00",
|
|
"2024-04-30T12:27:00-04:00",
|
|
"2024-04-30T12:28:00-04:00",
|
|
"2024-04-30T12:29:00-04:00",
|
|
"2024-04-30T12:30:00-04:00",
|
|
"2024-04-30T12:31:00-04:00",
|
|
"2024-04-30T12:32:00-04:00",
|
|
"2024-04-30T12:33:00-04:00",
|
|
"2024-04-30T12:34:00-04:00",
|
|
"2024-04-30T12:35:00-04:00",
|
|
"2024-04-30T12:36:00-04:00",
|
|
"2024-04-30T12:37:00-04:00",
|
|
"2024-04-30T12:38:00-04:00",
|
|
"2024-04-30T12:39:00-04:00",
|
|
"2024-04-30T12:40:00-04:00",
|
|
"2024-04-30T12:41:00-04:00",
|
|
"2024-04-30T12:42:00-04:00",
|
|
"2024-04-30T12:43:00-04:00",
|
|
"2024-04-30T12:44:00-04:00",
|
|
"2024-04-30T12:45:00-04:00",
|
|
"2024-04-30T12:46:00-04:00",
|
|
"2024-04-30T12:47:00-04:00",
|
|
"2024-04-30T12:48:00-04:00",
|
|
"2024-04-30T12:49:00-04:00",
|
|
"2024-04-30T12:50:00-04:00",
|
|
"2024-04-30T12:51:00-04:00",
|
|
"2024-04-30T12:52:00-04:00",
|
|
"2024-04-30T12:53:00-04:00",
|
|
"2024-04-30T12:54:00-04:00",
|
|
"2024-04-30T12:55:00-04:00",
|
|
"2024-04-30T12:56:00-04:00",
|
|
"2024-04-30T12:57:00-04:00",
|
|
"2024-04-30T12:58:00-04:00",
|
|
"2024-04-30T12:59:00-04:00",
|
|
"2024-04-30T13:00:00-04:00",
|
|
"2024-04-30T13:01:00-04:00",
|
|
"2024-04-30T13:02:00-04:00",
|
|
"2024-04-30T13:03:00-04:00",
|
|
"2024-04-30T13:04:00-04:00",
|
|
"2024-04-30T13:05:00-04:00",
|
|
"2024-04-30T13:06:00-04:00",
|
|
"2024-04-30T13:07:00-04:00",
|
|
"2024-04-30T13:08:00-04:00",
|
|
"2024-04-30T13:09:00-04:00",
|
|
"2024-04-30T13:10:00-04:00",
|
|
"2024-04-30T13:11:00-04:00",
|
|
"2024-04-30T13:12:00-04:00",
|
|
"2024-04-30T13:13:00-04:00",
|
|
"2024-04-30T13:14:00-04:00",
|
|
"2024-04-30T13:15:00-04:00",
|
|
"2024-04-30T13:16:00-04:00",
|
|
"2024-04-30T13:17:00-04:00",
|
|
"2024-04-30T13:18:00-04:00",
|
|
"2024-04-30T13:19:00-04:00",
|
|
"2024-04-30T13:20:00-04:00",
|
|
"2024-04-30T13:21:00-04:00",
|
|
"2024-04-30T13:22:00-04:00",
|
|
"2024-04-30T13:23:00-04:00",
|
|
"2024-04-30T13:24:00-04:00",
|
|
"2024-04-30T13:25:00-04:00",
|
|
"2024-04-30T13:26:00-04:00",
|
|
"2024-04-30T13:27:00-04:00",
|
|
"2024-04-30T13:28:00-04:00",
|
|
"2024-04-30T13:29:00-04:00",
|
|
"2024-04-30T13:30:00-04:00",
|
|
"2024-04-30T13:31:00-04:00",
|
|
"2024-04-30T13:32:00-04:00",
|
|
"2024-04-30T13:33:00-04:00",
|
|
"2024-04-30T13:34:00-04:00",
|
|
"2024-04-30T13:35:00-04:00",
|
|
"2024-04-30T13:36:00-04:00",
|
|
"2024-04-30T13:37:00-04:00",
|
|
"2024-04-30T13:38:00-04:00",
|
|
"2024-04-30T13:39:00-04:00",
|
|
"2024-04-30T13:40:00-04:00",
|
|
"2024-04-30T13:41:00-04:00",
|
|
"2024-04-30T13:42:00-04:00",
|
|
"2024-04-30T13:43:00-04:00",
|
|
"2024-04-30T13:44:00-04:00",
|
|
"2024-04-30T13:45:00-04:00",
|
|
"2024-04-30T13:46:00-04:00",
|
|
"2024-04-30T13:47:00-04:00",
|
|
"2024-04-30T13:48:00-04:00",
|
|
"2024-04-30T13:49:00-04:00",
|
|
"2024-04-30T13:50:00-04:00",
|
|
"2024-04-30T13:51:00-04:00",
|
|
"2024-04-30T13:52:00-04:00",
|
|
"2024-04-30T13:53:00-04:00",
|
|
"2024-04-30T13:54:00-04:00",
|
|
"2024-04-30T13:55:00-04:00",
|
|
"2024-04-30T13:56:00-04:00",
|
|
"2024-04-30T13:57:00-04:00",
|
|
"2024-04-30T13:58:00-04:00",
|
|
"2024-04-30T13:59:00-04:00",
|
|
"2024-04-30T14:00:00-04:00",
|
|
"2024-04-30T14:01:00-04:00",
|
|
"2024-04-30T14:02:00-04:00",
|
|
"2024-04-30T14:03:00-04:00",
|
|
"2024-04-30T14:04:00-04:00",
|
|
"2024-04-30T14:05:00-04:00",
|
|
"2024-04-30T14:06:00-04:00",
|
|
"2024-04-30T14:07:00-04:00",
|
|
"2024-04-30T14:08:00-04:00",
|
|
"2024-04-30T14:09:00-04:00",
|
|
"2024-04-30T14:10:00-04:00",
|
|
"2024-04-30T14:11:00-04:00",
|
|
"2024-04-30T14:12:00-04:00",
|
|
"2024-04-30T14:13:00-04:00",
|
|
"2024-04-30T14:14:00-04:00",
|
|
"2024-04-30T14:15:00-04:00",
|
|
"2024-04-30T14:16:00-04:00",
|
|
"2024-04-30T14:17:00-04:00",
|
|
"2024-04-30T14:18:00-04:00",
|
|
"2024-04-30T14:19:00-04:00",
|
|
"2024-04-30T14:20:00-04:00",
|
|
"2024-04-30T14:21:00-04:00",
|
|
"2024-04-30T14:22:00-04:00",
|
|
"2024-04-30T14:23:00-04:00",
|
|
"2024-04-30T14:24:00-04:00",
|
|
"2024-04-30T14:25:00-04:00",
|
|
"2024-04-30T14:26:00-04:00",
|
|
"2024-04-30T14:27:00-04:00",
|
|
"2024-04-30T14:28:00-04:00",
|
|
"2024-04-30T14:29:00-04:00",
|
|
"2024-04-30T14:30:00-04:00",
|
|
"2024-04-30T14:31:00-04:00",
|
|
"2024-04-30T14:32:00-04:00",
|
|
"2024-04-30T14:33:00-04:00",
|
|
"2024-04-30T14:34:00-04:00",
|
|
"2024-04-30T14:35:00-04:00",
|
|
"2024-04-30T14:36:00-04:00",
|
|
"2024-04-30T14:37:00-04:00",
|
|
"2024-04-30T14:38:00-04:00",
|
|
"2024-04-30T14:39:00-04:00",
|
|
"2024-04-30T14:40:00-04:00",
|
|
"2024-04-30T14:41:00-04:00",
|
|
"2024-04-30T14:42:00-04:00",
|
|
"2024-04-30T14:43:00-04:00",
|
|
"2024-04-30T14:44:00-04:00",
|
|
"2024-04-30T14:45:00-04:00",
|
|
"2024-04-30T14:46:00-04:00",
|
|
"2024-04-30T14:47:00-04:00",
|
|
"2024-04-30T14:48:00-04:00",
|
|
"2024-04-30T14:49:00-04:00",
|
|
"2024-04-30T14:50:00-04:00",
|
|
"2024-04-30T14:51:00-04:00",
|
|
"2024-04-30T14:52:00-04:00",
|
|
"2024-04-30T14:53:00-04:00",
|
|
"2024-04-30T14:54:00-04:00",
|
|
"2024-04-30T14:55:00-04:00",
|
|
"2024-04-30T14:56:00-04:00",
|
|
"2024-04-30T14:57:00-04:00",
|
|
"2024-04-30T14:58:00-04:00",
|
|
"2024-04-30T14:59:00-04:00",
|
|
"2024-04-30T15:00:00-04:00",
|
|
"2024-04-30T15:01:00-04:00",
|
|
"2024-04-30T15:02:00-04:00",
|
|
"2024-04-30T15:03:00-04:00",
|
|
"2024-04-30T15:04:00-04:00",
|
|
"2024-04-30T15:05:00-04:00",
|
|
"2024-04-30T15:06:00-04:00",
|
|
"2024-04-30T15:07:00-04:00",
|
|
"2024-04-30T15:08:00-04:00",
|
|
"2024-04-30T15:09:00-04:00",
|
|
"2024-04-30T15:10:00-04:00",
|
|
"2024-04-30T15:11:00-04:00",
|
|
"2024-04-30T15:12:00-04:00",
|
|
"2024-04-30T15:13:00-04:00",
|
|
"2024-04-30T15:14:00-04:00",
|
|
"2024-04-30T15:15:00-04:00",
|
|
"2024-04-30T15:16:00-04:00",
|
|
"2024-04-30T15:17:00-04:00",
|
|
"2024-04-30T15:18:00-04:00",
|
|
"2024-04-30T15:19:00-04:00",
|
|
"2024-04-30T15:20:00-04:00",
|
|
"2024-04-30T15:21:00-04:00",
|
|
"2024-04-30T15:22:00-04:00",
|
|
"2024-04-30T15:23:00-04:00",
|
|
"2024-04-30T15:24:00-04:00",
|
|
"2024-04-30T15:25:00-04:00",
|
|
"2024-04-30T15:26:00-04:00",
|
|
"2024-04-30T15:27:00-04:00",
|
|
"2024-04-30T15:28:00-04:00",
|
|
"2024-04-30T15:29:00-04:00",
|
|
"2024-04-30T15:30:00-04:00",
|
|
"2024-04-30T15:31:00-04:00",
|
|
"2024-04-30T15:32:00-04:00",
|
|
"2024-04-30T15:33:00-04:00",
|
|
"2024-04-30T15:34:00-04:00",
|
|
"2024-04-30T15:35:00-04:00",
|
|
"2024-04-30T15:36:00-04:00",
|
|
"2024-04-30T15:37:00-04:00",
|
|
"2024-04-30T15:38:00-04:00",
|
|
"2024-04-30T15:39:00-04:00",
|
|
"2024-04-30T15:40:00-04:00",
|
|
"2024-04-30T15:41:00-04:00",
|
|
"2024-04-30T15:42:00-04:00",
|
|
"2024-04-30T15:43:00-04:00",
|
|
"2024-04-30T15:44:00-04:00",
|
|
"2024-04-30T15:45:00-04:00",
|
|
"2024-04-30T15:46:00-04:00",
|
|
"2024-04-30T15:47:00-04:00",
|
|
"2024-04-30T15:48:00-04:00",
|
|
"2024-04-30T15:49:00-04:00",
|
|
"2024-04-30T15:50:00-04:00",
|
|
"2024-04-30T15:51:00-04:00",
|
|
"2024-04-30T15:52:00-04:00",
|
|
"2024-04-30T15:53:00-04:00",
|
|
"2024-04-30T15:54:00-04:00",
|
|
"2024-04-30T15:55:00-04:00",
|
|
"2024-04-30T15:56:00-04:00",
|
|
"2024-04-30T15:57:00-04:00",
|
|
"2024-04-30T15:58:00-04:00",
|
|
"2024-04-30T15:59:00-04:00",
|
|
"2024-04-30T16:00:00-04:00",
|
|
"2024-05-01T09:30:00-04:00",
|
|
"2024-05-01T09:31:00-04:00",
|
|
"2024-05-01T09:32:00-04:00",
|
|
"2024-05-01T09:33:00-04:00",
|
|
"2024-05-01T09:34:00-04:00",
|
|
"2024-05-01T09:35:00-04:00",
|
|
"2024-05-01T09:36:00-04:00",
|
|
"2024-05-01T09:37:00-04:00",
|
|
"2024-05-01T09:38:00-04:00",
|
|
"2024-05-01T09:39:00-04:00",
|
|
"2024-05-01T09:40:00-04:00",
|
|
"2024-05-01T09:41:00-04:00",
|
|
"2024-05-01T09:42:00-04:00",
|
|
"2024-05-01T09:43:00-04:00",
|
|
"2024-05-01T09:44:00-04:00",
|
|
"2024-05-01T09:45:00-04:00",
|
|
"2024-05-01T09:46:00-04:00",
|
|
"2024-05-01T09:47:00-04:00",
|
|
"2024-05-01T09:48:00-04:00",
|
|
"2024-05-01T09:49:00-04:00",
|
|
"2024-05-01T09:50:00-04:00",
|
|
"2024-05-01T09:51:00-04:00",
|
|
"2024-05-01T09:52:00-04:00",
|
|
"2024-05-01T09:53:00-04:00",
|
|
"2024-05-01T09:54:00-04:00",
|
|
"2024-05-01T09:55:00-04:00",
|
|
"2024-05-01T09:56:00-04:00",
|
|
"2024-05-01T09:57:00-04:00",
|
|
"2024-05-01T09:58:00-04:00",
|
|
"2024-05-01T09:59:00-04:00",
|
|
"2024-05-01T10:00:00-04:00",
|
|
"2024-05-01T10:01:00-04:00",
|
|
"2024-05-01T10:02:00-04:00",
|
|
"2024-05-01T10:03:00-04:00",
|
|
"2024-05-01T10:04:00-04:00",
|
|
"2024-05-01T10:05:00-04:00",
|
|
"2024-05-01T10:06:00-04:00",
|
|
"2024-05-01T10:07:00-04:00",
|
|
"2024-05-01T10:08:00-04:00",
|
|
"2024-05-01T10:09:00-04:00",
|
|
"2024-05-01T10:10:00-04:00",
|
|
"2024-05-01T10:11:00-04:00",
|
|
"2024-05-01T10:12:00-04:00",
|
|
"2024-05-01T10:13:00-04:00",
|
|
"2024-05-01T10:14:00-04:00",
|
|
"2024-05-01T10:15:00-04:00",
|
|
"2024-05-01T10:16:00-04:00",
|
|
"2024-05-01T10:17:00-04:00",
|
|
"2024-05-01T10:18:00-04:00",
|
|
"2024-05-01T10:19:00-04:00",
|
|
"2024-05-01T10:20:00-04:00",
|
|
"2024-05-01T10:21:00-04:00",
|
|
"2024-05-01T10:22:00-04:00",
|
|
"2024-05-01T10:23:00-04:00",
|
|
"2024-05-01T10:24:00-04:00",
|
|
"2024-05-01T10:25:00-04:00",
|
|
"2024-05-01T10:26:00-04:00",
|
|
"2024-05-01T10:27:00-04:00",
|
|
"2024-05-01T10:28:00-04:00",
|
|
"2024-05-01T10:29:00-04:00",
|
|
"2024-05-01T10:30:00-04:00",
|
|
"2024-05-01T10:31:00-04:00",
|
|
"2024-05-01T10:32:00-04:00",
|
|
"2024-05-01T10:33:00-04:00",
|
|
"2024-05-01T10:34:00-04:00",
|
|
"2024-05-01T10:35:00-04:00",
|
|
"2024-05-01T10:36:00-04:00",
|
|
"2024-05-01T10:37:00-04:00",
|
|
"2024-05-01T10:38:00-04:00",
|
|
"2024-05-01T10:39:00-04:00",
|
|
"2024-05-01T10:40:00-04:00",
|
|
"2024-05-01T10:41:00-04:00",
|
|
"2024-05-01T10:42:00-04:00",
|
|
"2024-05-01T10:43:00-04:00",
|
|
"2024-05-01T10:44:00-04:00",
|
|
"2024-05-01T10:45:00-04:00",
|
|
"2024-05-01T10:46:00-04:00",
|
|
"2024-05-01T10:47:00-04:00",
|
|
"2024-05-01T10:48:00-04:00",
|
|
"2024-05-01T10:49:00-04:00",
|
|
"2024-05-01T10:50:00-04:00",
|
|
"2024-05-01T10:51:00-04:00",
|
|
"2024-05-01T10:52:00-04:00",
|
|
"2024-05-01T10:53:00-04:00",
|
|
"2024-05-01T10:54:00-04:00",
|
|
"2024-05-01T10:55:00-04:00",
|
|
"2024-05-01T10:56:00-04:00",
|
|
"2024-05-01T10:57:00-04:00",
|
|
"2024-05-01T10:58:00-04:00",
|
|
"2024-05-01T10:59:00-04:00",
|
|
"2024-05-01T11:00:00-04:00",
|
|
"2024-05-01T11:01:00-04:00",
|
|
"2024-05-01T11:02:00-04:00",
|
|
"2024-05-01T11:03:00-04:00",
|
|
"2024-05-01T11:04:00-04:00",
|
|
"2024-05-01T11:05:00-04:00",
|
|
"2024-05-01T11:06:00-04:00",
|
|
"2024-05-01T11:07:00-04:00",
|
|
"2024-05-01T11:08:00-04:00",
|
|
"2024-05-01T11:09:00-04:00",
|
|
"2024-05-01T11:10:00-04:00",
|
|
"2024-05-01T11:11:00-04:00",
|
|
"2024-05-01T11:12:00-04:00",
|
|
"2024-05-01T11:13:00-04:00",
|
|
"2024-05-01T11:14:00-04:00",
|
|
"2024-05-01T11:15:00-04:00",
|
|
"2024-05-01T11:16:00-04:00",
|
|
"2024-05-01T11:17:00-04:00",
|
|
"2024-05-01T11:18:00-04:00",
|
|
"2024-05-01T11:19:00-04:00",
|
|
"2024-05-01T11:20:00-04:00",
|
|
"2024-05-01T11:21:00-04:00",
|
|
"2024-05-01T11:22:00-04:00",
|
|
"2024-05-01T11:23:00-04:00",
|
|
"2024-05-01T11:24:00-04:00",
|
|
"2024-05-01T11:25:00-04:00",
|
|
"2024-05-01T11:26:00-04:00",
|
|
"2024-05-01T11:27:00-04:00",
|
|
"2024-05-01T11:28:00-04:00",
|
|
"2024-05-01T11:29:00-04:00",
|
|
"2024-05-01T11:30:00-04:00",
|
|
"2024-05-01T11:31:00-04:00",
|
|
"2024-05-01T11:32:00-04:00",
|
|
"2024-05-01T11:33:00-04:00",
|
|
"2024-05-01T11:34:00-04:00",
|
|
"2024-05-01T11:35:00-04:00",
|
|
"2024-05-01T11:36:00-04:00",
|
|
"2024-05-01T11:37:00-04:00",
|
|
"2024-05-01T11:38:00-04:00",
|
|
"2024-05-01T11:39:00-04:00",
|
|
"2024-05-01T11:40:00-04:00",
|
|
"2024-05-01T11:41:00-04:00",
|
|
"2024-05-01T11:42:00-04:00",
|
|
"2024-05-01T11:43:00-04:00",
|
|
"2024-05-01T11:44:00-04:00",
|
|
"2024-05-01T11:45:00-04:00",
|
|
"2024-05-01T11:46:00-04:00",
|
|
"2024-05-01T11:47:00-04:00",
|
|
"2024-05-01T11:48:00-04:00",
|
|
"2024-05-01T11:49:00-04:00",
|
|
"2024-05-01T11:50:00-04:00",
|
|
"2024-05-01T11:51:00-04:00",
|
|
"2024-05-01T11:52:00-04:00",
|
|
"2024-05-01T11:53:00-04:00",
|
|
"2024-05-01T11:54:00-04:00",
|
|
"2024-05-01T11:55:00-04:00",
|
|
"2024-05-01T11:56:00-04:00",
|
|
"2024-05-01T11:57:00-04:00",
|
|
"2024-05-01T11:58:00-04:00",
|
|
"2024-05-01T11:59:00-04:00",
|
|
"2024-05-01T12:00:00-04:00",
|
|
"2024-05-01T12:01:00-04:00",
|
|
"2024-05-01T12:02:00-04:00",
|
|
"2024-05-01T12:03:00-04:00",
|
|
"2024-05-01T12:04:00-04:00",
|
|
"2024-05-01T12:05:00-04:00",
|
|
"2024-05-01T12:06:00-04:00",
|
|
"2024-05-01T12:07:00-04:00",
|
|
"2024-05-01T12:08:00-04:00",
|
|
"2024-05-01T12:09:00-04:00",
|
|
"2024-05-01T12:10:00-04:00",
|
|
"2024-05-01T12:11:00-04:00",
|
|
"2024-05-01T12:12:00-04:00",
|
|
"2024-05-01T12:13:00-04:00",
|
|
"2024-05-01T12:14:00-04:00",
|
|
"2024-05-01T12:15:00-04:00",
|
|
"2024-05-01T12:16:00-04:00",
|
|
"2024-05-01T12:17:00-04:00",
|
|
"2024-05-01T12:18:00-04:00",
|
|
"2024-05-01T12:19:00-04:00",
|
|
"2024-05-01T12:20:00-04:00",
|
|
"2024-05-01T12:21:00-04:00",
|
|
"2024-05-01T12:22:00-04:00",
|
|
"2024-05-01T12:23:00-04:00",
|
|
"2024-05-01T12:24:00-04:00",
|
|
"2024-05-01T12:25:00-04:00",
|
|
"2024-05-01T12:26:00-04:00",
|
|
"2024-05-01T12:27:00-04:00",
|
|
"2024-05-01T12:28:00-04:00",
|
|
"2024-05-01T12:29:00-04:00",
|
|
"2024-05-01T12:30:00-04:00",
|
|
"2024-05-01T12:31:00-04:00",
|
|
"2024-05-01T12:32:00-04:00",
|
|
"2024-05-01T12:33:00-04:00",
|
|
"2024-05-01T12:34:00-04:00",
|
|
"2024-05-01T12:35:00-04:00",
|
|
"2024-05-01T12:36:00-04:00",
|
|
"2024-05-01T12:37:00-04:00",
|
|
"2024-05-01T12:38:00-04:00",
|
|
"2024-05-01T12:39:00-04:00",
|
|
"2024-05-01T12:40:00-04:00",
|
|
"2024-05-01T12:41:00-04:00",
|
|
"2024-05-01T12:42:00-04:00",
|
|
"2024-05-01T12:43:00-04:00",
|
|
"2024-05-01T12:44:00-04:00",
|
|
"2024-05-01T12:45:00-04:00",
|
|
"2024-05-01T12:46:00-04:00",
|
|
"2024-05-01T12:47:00-04:00",
|
|
"2024-05-01T12:48:00-04:00",
|
|
"2024-05-01T12:49:00-04:00",
|
|
"2024-05-01T12:50:00-04:00",
|
|
"2024-05-01T12:51:00-04:00",
|
|
"2024-05-01T12:52:00-04:00",
|
|
"2024-05-01T12:53:00-04:00",
|
|
"2024-05-01T12:54:00-04:00",
|
|
"2024-05-01T12:55:00-04:00",
|
|
"2024-05-01T12:56:00-04:00",
|
|
"2024-05-01T12:57:00-04:00",
|
|
"2024-05-01T12:58:00-04:00",
|
|
"2024-05-01T12:59:00-04:00",
|
|
"2024-05-01T13:00:00-04:00",
|
|
"2024-05-01T13:01:00-04:00",
|
|
"2024-05-01T13:02:00-04:00",
|
|
"2024-05-01T13:03:00-04:00",
|
|
"2024-05-01T13:04:00-04:00",
|
|
"2024-05-01T13:05:00-04:00",
|
|
"2024-05-01T13:06:00-04:00",
|
|
"2024-05-01T13:07:00-04:00",
|
|
"2024-05-01T13:08:00-04:00",
|
|
"2024-05-01T13:09:00-04:00",
|
|
"2024-05-01T13:10:00-04:00",
|
|
"2024-05-01T13:11:00-04:00",
|
|
"2024-05-01T13:12:00-04:00",
|
|
"2024-05-01T13:13:00-04:00",
|
|
"2024-05-01T13:14:00-04:00",
|
|
"2024-05-01T13:15:00-04:00",
|
|
"2024-05-01T13:16:00-04:00",
|
|
"2024-05-01T13:17:00-04:00",
|
|
"2024-05-01T13:18:00-04:00",
|
|
"2024-05-01T13:19:00-04:00",
|
|
"2024-05-01T13:20:00-04:00",
|
|
"2024-05-01T13:21:00-04:00",
|
|
"2024-05-01T13:22:00-04:00",
|
|
"2024-05-01T13:23:00-04:00",
|
|
"2024-05-01T13:24:00-04:00",
|
|
"2024-05-01T13:25:00-04:00",
|
|
"2024-05-01T13:26:00-04:00",
|
|
"2024-05-01T13:27:00-04:00",
|
|
"2024-05-01T13:28:00-04:00",
|
|
"2024-05-01T13:29:00-04:00",
|
|
"2024-05-01T13:30:00-04:00",
|
|
"2024-05-01T13:31:00-04:00",
|
|
"2024-05-01T13:32:00-04:00",
|
|
"2024-05-01T13:33:00-04:00",
|
|
"2024-05-01T13:34:00-04:00",
|
|
"2024-05-01T13:35:00-04:00",
|
|
"2024-05-01T13:36:00-04:00",
|
|
"2024-05-01T13:37:00-04:00",
|
|
"2024-05-01T13:38:00-04:00",
|
|
"2024-05-01T13:39:00-04:00",
|
|
"2024-05-01T13:40:00-04:00",
|
|
"2024-05-01T13:41:00-04:00",
|
|
"2024-05-01T13:42:00-04:00",
|
|
"2024-05-01T13:43:00-04:00",
|
|
"2024-05-01T13:44:00-04:00",
|
|
"2024-05-01T13:45:00-04:00",
|
|
"2024-05-01T13:46:00-04:00",
|
|
"2024-05-01T13:47:00-04:00",
|
|
"2024-05-01T13:48:00-04:00",
|
|
"2024-05-01T13:49:00-04:00",
|
|
"2024-05-01T13:50:00-04:00",
|
|
"2024-05-01T13:51:00-04:00",
|
|
"2024-05-01T13:52:00-04:00",
|
|
"2024-05-01T13:53:00-04:00",
|
|
"2024-05-01T13:54:00-04:00",
|
|
"2024-05-01T13:55:00-04:00",
|
|
"2024-05-01T13:56:00-04:00",
|
|
"2024-05-01T13:57:00-04:00",
|
|
"2024-05-01T13:58:00-04:00",
|
|
"2024-05-01T13:59:00-04:00",
|
|
"2024-05-01T14:00:00-04:00",
|
|
"2024-05-01T14:01:00-04:00",
|
|
"2024-05-01T14:02:00-04:00",
|
|
"2024-05-01T14:03:00-04:00",
|
|
"2024-05-01T14:04:00-04:00",
|
|
"2024-05-01T14:05:00-04:00",
|
|
"2024-05-01T14:06:00-04:00",
|
|
"2024-05-01T14:07:00-04:00",
|
|
"2024-05-01T14:08:00-04:00",
|
|
"2024-05-01T14:09:00-04:00",
|
|
"2024-05-01T14:10:00-04:00",
|
|
"2024-05-01T14:11:00-04:00",
|
|
"2024-05-01T14:12:00-04:00",
|
|
"2024-05-01T14:13:00-04:00",
|
|
"2024-05-01T14:14:00-04:00",
|
|
"2024-05-01T14:15:00-04:00",
|
|
"2024-05-01T14:16:00-04:00",
|
|
"2024-05-01T14:17:00-04:00",
|
|
"2024-05-01T14:18:00-04:00",
|
|
"2024-05-01T14:19:00-04:00",
|
|
"2024-05-01T14:20:00-04:00",
|
|
"2024-05-01T14:21:00-04:00",
|
|
"2024-05-01T14:22:00-04:00",
|
|
"2024-05-01T14:23:00-04:00",
|
|
"2024-05-01T14:24:00-04:00",
|
|
"2024-05-01T14:25:00-04:00",
|
|
"2024-05-01T14:26:00-04:00",
|
|
"2024-05-01T14:27:00-04:00",
|
|
"2024-05-01T14:28:00-04:00",
|
|
"2024-05-01T14:29:00-04:00",
|
|
"2024-05-01T14:30:00-04:00",
|
|
"2024-05-01T14:31:00-04:00",
|
|
"2024-05-01T14:32:00-04:00",
|
|
"2024-05-01T14:33:00-04:00",
|
|
"2024-05-01T14:34:00-04:00",
|
|
"2024-05-01T14:35:00-04:00",
|
|
"2024-05-01T14:36:00-04:00",
|
|
"2024-05-01T14:37:00-04:00",
|
|
"2024-05-01T14:38:00-04:00",
|
|
"2024-05-01T14:39:00-04:00",
|
|
"2024-05-01T14:40:00-04:00",
|
|
"2024-05-01T14:41:00-04:00",
|
|
"2024-05-01T14:42:00-04:00",
|
|
"2024-05-01T14:43:00-04:00",
|
|
"2024-05-01T14:44:00-04:00",
|
|
"2024-05-01T14:45:00-04:00",
|
|
"2024-05-01T14:46:00-04:00",
|
|
"2024-05-01T14:47:00-04:00",
|
|
"2024-05-01T14:48:00-04:00",
|
|
"2024-05-01T14:49:00-04:00",
|
|
"2024-05-01T14:50:00-04:00",
|
|
"2024-05-01T14:51:00-04:00",
|
|
"2024-05-01T14:52:00-04:00",
|
|
"2024-05-01T14:53:00-04:00",
|
|
"2024-05-01T14:54:00-04:00",
|
|
"2024-05-01T14:55:00-04:00",
|
|
"2024-05-01T14:56:00-04:00",
|
|
"2024-05-01T14:57:00-04:00",
|
|
"2024-05-01T14:58:00-04:00",
|
|
"2024-05-01T14:59:00-04:00",
|
|
"2024-05-01T15:00:00-04:00",
|
|
"2024-05-01T15:01:00-04:00",
|
|
"2024-05-01T15:02:00-04:00",
|
|
"2024-05-01T15:03:00-04:00",
|
|
"2024-05-01T15:04:00-04:00",
|
|
"2024-05-01T15:05:00-04:00",
|
|
"2024-05-01T15:06:00-04:00",
|
|
"2024-05-01T15:07:00-04:00",
|
|
"2024-05-01T15:08:00-04:00",
|
|
"2024-05-01T15:09:00-04:00",
|
|
"2024-05-01T15:10:00-04:00",
|
|
"2024-05-01T15:11:00-04:00",
|
|
"2024-05-01T15:12:00-04:00",
|
|
"2024-05-01T15:13:00-04:00",
|
|
"2024-05-01T15:14:00-04:00",
|
|
"2024-05-01T15:15:00-04:00",
|
|
"2024-05-01T15:16:00-04:00",
|
|
"2024-05-01T15:17:00-04:00",
|
|
"2024-05-01T15:18:00-04:00",
|
|
"2024-05-01T15:19:00-04:00",
|
|
"2024-05-01T15:20:00-04:00",
|
|
"2024-05-01T15:21:00-04:00",
|
|
"2024-05-01T15:22:00-04:00",
|
|
"2024-05-01T15:23:00-04:00",
|
|
"2024-05-01T15:24:00-04:00",
|
|
"2024-05-01T15:25:00-04:00",
|
|
"2024-05-01T15:26:00-04:00",
|
|
"2024-05-01T15:27:00-04:00",
|
|
"2024-05-01T15:28:00-04:00",
|
|
"2024-05-01T15:29:00-04:00",
|
|
"2024-05-01T15:30:00-04:00",
|
|
"2024-05-01T15:31:00-04:00",
|
|
"2024-05-01T15:32:00-04:00",
|
|
"2024-05-01T15:33:00-04:00",
|
|
"2024-05-01T15:34:00-04:00",
|
|
"2024-05-01T15:35:00-04:00",
|
|
"2024-05-01T15:36:00-04:00",
|
|
"2024-05-01T15:37:00-04:00",
|
|
"2024-05-01T15:38:00-04:00",
|
|
"2024-05-01T15:39:00-04:00",
|
|
"2024-05-01T15:40:00-04:00",
|
|
"2024-05-01T15:41:00-04:00",
|
|
"2024-05-01T15:42:00-04:00",
|
|
"2024-05-01T15:43:00-04:00",
|
|
"2024-05-01T15:44:00-04:00",
|
|
"2024-05-01T15:45:00-04:00",
|
|
"2024-05-01T15:46:00-04:00",
|
|
"2024-05-01T15:47:00-04:00",
|
|
"2024-05-01T15:48:00-04:00",
|
|
"2024-05-01T15:49:00-04:00",
|
|
"2024-05-01T15:50:00-04:00",
|
|
"2024-05-01T15:51:00-04:00",
|
|
"2024-05-01T15:52:00-04:00",
|
|
"2024-05-01T15:53:00-04:00",
|
|
"2024-05-01T15:54:00-04:00",
|
|
"2024-05-01T15:55:00-04:00",
|
|
"2024-05-01T15:56:00-04:00",
|
|
"2024-05-01T15:57:00-04:00",
|
|
"2024-05-01T15:58:00-04:00",
|
|
"2024-05-01T15:59:00-04:00",
|
|
"2024-05-01T16:00:00-04:00",
|
|
"2024-05-02T09:30:00-04:00",
|
|
"2024-05-02T09:31:00-04:00",
|
|
"2024-05-02T09:32:00-04:00",
|
|
"2024-05-02T09:33:00-04:00",
|
|
"2024-05-02T09:34:00-04:00",
|
|
"2024-05-02T09:35:00-04:00",
|
|
"2024-05-02T09:36:00-04:00",
|
|
"2024-05-02T09:37:00-04:00",
|
|
"2024-05-02T09:38:00-04:00",
|
|
"2024-05-02T09:39:00-04:00",
|
|
"2024-05-02T09:40:00-04:00",
|
|
"2024-05-02T09:41:00-04:00",
|
|
"2024-05-02T09:42:00-04:00",
|
|
"2024-05-02T09:43:00-04:00",
|
|
"2024-05-02T09:44:00-04:00",
|
|
"2024-05-02T09:45:00-04:00",
|
|
"2024-05-02T09:46:00-04:00",
|
|
"2024-05-02T09:47:00-04:00",
|
|
"2024-05-02T09:48:00-04:00",
|
|
"2024-05-02T09:49:00-04:00",
|
|
"2024-05-02T09:50:00-04:00",
|
|
"2024-05-02T09:51:00-04:00",
|
|
"2024-05-02T09:52:00-04:00",
|
|
"2024-05-02T09:53:00-04:00",
|
|
"2024-05-02T09:54:00-04:00",
|
|
"2024-05-02T09:55:00-04:00",
|
|
"2024-05-02T09:56:00-04:00",
|
|
"2024-05-02T09:57:00-04:00",
|
|
"2024-05-02T09:58:00-04:00",
|
|
"2024-05-02T09:59:00-04:00",
|
|
"2024-05-02T10:00:00-04:00",
|
|
"2024-05-02T10:01:00-04:00",
|
|
"2024-05-02T10:02:00-04:00",
|
|
"2024-05-02T10:03:00-04:00",
|
|
"2024-05-02T10:04:00-04:00",
|
|
"2024-05-02T10:05:00-04:00",
|
|
"2024-05-02T10:06:00-04:00",
|
|
"2024-05-02T10:07:00-04:00",
|
|
"2024-05-02T10:08:00-04:00",
|
|
"2024-05-02T10:09:00-04:00",
|
|
"2024-05-02T10:10:00-04:00",
|
|
"2024-05-02T10:11:00-04:00",
|
|
"2024-05-02T10:12:00-04:00",
|
|
"2024-05-02T10:13:00-04:00",
|
|
"2024-05-02T10:14:00-04:00",
|
|
"2024-05-02T10:15:00-04:00",
|
|
"2024-05-02T10:16:00-04:00",
|
|
"2024-05-02T10:17:00-04:00",
|
|
"2024-05-02T10:18:00-04:00",
|
|
"2024-05-02T10:19:00-04:00",
|
|
"2024-05-02T10:20:00-04:00",
|
|
"2024-05-02T10:21:00-04:00",
|
|
"2024-05-02T10:22:00-04:00",
|
|
"2024-05-02T10:23:00-04:00",
|
|
"2024-05-02T10:24:00-04:00",
|
|
"2024-05-02T10:25:00-04:00",
|
|
"2024-05-02T10:26:00-04:00",
|
|
"2024-05-02T10:27:00-04:00",
|
|
"2024-05-02T10:28:00-04:00",
|
|
"2024-05-02T10:29:00-04:00",
|
|
"2024-05-02T10:30:00-04:00",
|
|
"2024-05-02T10:31:00-04:00",
|
|
"2024-05-02T10:32:00-04:00",
|
|
"2024-05-02T10:33:00-04:00",
|
|
"2024-05-02T10:34:00-04:00",
|
|
"2024-05-02T10:35:00-04:00",
|
|
"2024-05-02T10:36:00-04:00",
|
|
"2024-05-02T10:37:00-04:00",
|
|
"2024-05-02T10:38:00-04:00",
|
|
"2024-05-02T10:39:00-04:00",
|
|
"2024-05-02T10:40:00-04:00",
|
|
"2024-05-02T10:41:00-04:00",
|
|
"2024-05-02T10:42:00-04:00",
|
|
"2024-05-02T10:43:00-04:00",
|
|
"2024-05-02T10:44:00-04:00",
|
|
"2024-05-02T10:45:00-04:00",
|
|
"2024-05-02T10:46:00-04:00",
|
|
"2024-05-02T10:47:00-04:00",
|
|
"2024-05-02T10:48:00-04:00",
|
|
"2024-05-02T10:49:00-04:00",
|
|
"2024-05-02T10:50:00-04:00",
|
|
"2024-05-02T10:51:00-04:00",
|
|
"2024-05-02T10:52:00-04:00",
|
|
"2024-05-02T10:53:00-04:00",
|
|
"2024-05-02T10:54:00-04:00",
|
|
"2024-05-02T10:55:00-04:00",
|
|
"2024-05-02T10:56:00-04:00",
|
|
"2024-05-02T10:57:00-04:00",
|
|
"2024-05-02T10:58:00-04:00",
|
|
"2024-05-02T10:59:00-04:00",
|
|
"2024-05-02T11:00:00-04:00",
|
|
"2024-05-02T11:01:00-04:00",
|
|
"2024-05-02T11:02:00-04:00",
|
|
"2024-05-02T11:03:00-04:00",
|
|
"2024-05-02T11:04:00-04:00",
|
|
"2024-05-02T11:05:00-04:00",
|
|
"2024-05-02T11:06:00-04:00",
|
|
"2024-05-02T11:07:00-04:00",
|
|
"2024-05-02T11:08:00-04:00",
|
|
"2024-05-02T11:09:00-04:00",
|
|
"2024-05-02T11:10:00-04:00",
|
|
"2024-05-02T11:11:00-04:00",
|
|
"2024-05-02T11:12:00-04:00",
|
|
"2024-05-02T11:13:00-04:00",
|
|
"2024-05-02T11:14:00-04:00",
|
|
"2024-05-02T11:15:00-04:00",
|
|
"2024-05-02T11:16:00-04:00",
|
|
"2024-05-02T11:17:00-04:00",
|
|
"2024-05-02T11:18:00-04:00",
|
|
"2024-05-02T11:19:00-04:00",
|
|
"2024-05-02T11:20:00-04:00",
|
|
"2024-05-02T11:21:00-04:00",
|
|
"2024-05-02T11:22:00-04:00",
|
|
"2024-05-02T11:23:00-04:00",
|
|
"2024-05-02T11:24:00-04:00",
|
|
"2024-05-02T11:25:00-04:00",
|
|
"2024-05-02T11:26:00-04:00",
|
|
"2024-05-02T11:27:00-04:00",
|
|
"2024-05-02T11:28:00-04:00",
|
|
"2024-05-02T11:29:00-04:00",
|
|
"2024-05-02T11:30:00-04:00",
|
|
"2024-05-02T11:31:00-04:00",
|
|
"2024-05-02T11:32:00-04:00",
|
|
"2024-05-02T11:33:00-04:00",
|
|
"2024-05-02T11:34:00-04:00",
|
|
"2024-05-02T11:35:00-04:00",
|
|
"2024-05-02T11:36:00-04:00",
|
|
"2024-05-02T11:37:00-04:00",
|
|
"2024-05-02T11:38:00-04:00",
|
|
"2024-05-02T11:39:00-04:00",
|
|
"2024-05-02T11:40:00-04:00",
|
|
"2024-05-02T11:41:00-04:00",
|
|
"2024-05-02T11:42:00-04:00",
|
|
"2024-05-02T11:43:00-04:00",
|
|
"2024-05-02T11:44:00-04:00",
|
|
"2024-05-02T11:45:00-04:00",
|
|
"2024-05-02T11:46:00-04:00",
|
|
"2024-05-02T11:47:00-04:00",
|
|
"2024-05-02T11:48:00-04:00",
|
|
"2024-05-02T11:49:00-04:00",
|
|
"2024-05-02T11:50:00-04:00",
|
|
"2024-05-02T11:51:00-04:00",
|
|
"2024-05-02T11:52:00-04:00",
|
|
"2024-05-02T11:53:00-04:00",
|
|
"2024-05-02T11:54:00-04:00",
|
|
"2024-05-02T11:55:00-04:00",
|
|
"2024-05-02T11:56:00-04:00",
|
|
"2024-05-02T11:57:00-04:00",
|
|
"2024-05-02T11:58:00-04:00",
|
|
"2024-05-02T11:59:00-04:00",
|
|
"2024-05-02T12:00:00-04:00",
|
|
"2024-05-02T12:01:00-04:00",
|
|
"2024-05-02T12:02:00-04:00",
|
|
"2024-05-02T12:03:00-04:00",
|
|
"2024-05-02T12:04:00-04:00",
|
|
"2024-05-02T12:05:00-04:00",
|
|
"2024-05-02T12:06:00-04:00",
|
|
"2024-05-02T12:07:00-04:00",
|
|
"2024-05-02T12:08:00-04:00",
|
|
"2024-05-02T12:09:00-04:00",
|
|
"2024-05-02T12:10:00-04:00",
|
|
"2024-05-02T12:11:00-04:00",
|
|
"2024-05-02T12:12:00-04:00",
|
|
"2024-05-02T12:13:00-04:00",
|
|
"2024-05-02T12:14:00-04:00",
|
|
"2024-05-02T12:15:00-04:00",
|
|
"2024-05-02T12:16:00-04:00",
|
|
"2024-05-02T12:17:00-04:00",
|
|
"2024-05-02T12:18:00-04:00",
|
|
"2024-05-02T12:19:00-04:00",
|
|
"2024-05-02T12:20:00-04:00",
|
|
"2024-05-02T12:21:00-04:00",
|
|
"2024-05-02T12:22:00-04:00",
|
|
"2024-05-02T12:23:00-04:00",
|
|
"2024-05-02T12:24:00-04:00",
|
|
"2024-05-02T12:25:00-04:00",
|
|
"2024-05-02T12:26:00-04:00",
|
|
"2024-05-02T12:27:00-04:00",
|
|
"2024-05-02T12:28:00-04:00",
|
|
"2024-05-02T12:29:00-04:00",
|
|
"2024-05-02T12:30:00-04:00",
|
|
"2024-05-02T12:31:00-04:00",
|
|
"2024-05-02T12:32:00-04:00",
|
|
"2024-05-02T12:33:00-04:00",
|
|
"2024-05-02T12:34:00-04:00",
|
|
"2024-05-02T12:35:00-04:00",
|
|
"2024-05-02T12:36:00-04:00",
|
|
"2024-05-02T12:37:00-04:00",
|
|
"2024-05-02T12:38:00-04:00",
|
|
"2024-05-02T12:39:00-04:00",
|
|
"2024-05-02T12:40:00-04:00",
|
|
"2024-05-02T12:41:00-04:00",
|
|
"2024-05-02T12:42:00-04:00",
|
|
"2024-05-02T12:43:00-04:00",
|
|
"2024-05-02T12:44:00-04:00",
|
|
"2024-05-02T12:45:00-04:00",
|
|
"2024-05-02T12:46:00-04:00",
|
|
"2024-05-02T12:47:00-04:00",
|
|
"2024-05-02T12:48:00-04:00",
|
|
"2024-05-02T12:49:00-04:00",
|
|
"2024-05-02T12:50:00-04:00",
|
|
"2024-05-02T12:51:00-04:00",
|
|
"2024-05-02T12:52:00-04:00",
|
|
"2024-05-02T12:53:00-04:00",
|
|
"2024-05-02T12:54:00-04:00",
|
|
"2024-05-02T12:55:00-04:00",
|
|
"2024-05-02T12:56:00-04:00",
|
|
"2024-05-02T12:57:00-04:00",
|
|
"2024-05-02T12:58:00-04:00",
|
|
"2024-05-02T12:59:00-04:00",
|
|
"2024-05-02T13:00:00-04:00",
|
|
"2024-05-02T13:01:00-04:00",
|
|
"2024-05-02T13:02:00-04:00",
|
|
"2024-05-02T13:03:00-04:00",
|
|
"2024-05-02T13:04:00-04:00",
|
|
"2024-05-02T13:05:00-04:00",
|
|
"2024-05-02T13:06:00-04:00",
|
|
"2024-05-02T13:07:00-04:00",
|
|
"2024-05-02T13:08:00-04:00",
|
|
"2024-05-02T13:09:00-04:00",
|
|
"2024-05-02T13:10:00-04:00",
|
|
"2024-05-02T13:11:00-04:00",
|
|
"2024-05-02T13:12:00-04:00",
|
|
"2024-05-02T13:13:00-04:00",
|
|
"2024-05-02T13:14:00-04:00",
|
|
"2024-05-02T13:15:00-04:00",
|
|
"2024-05-02T13:16:00-04:00",
|
|
"2024-05-02T13:17:00-04:00",
|
|
"2024-05-02T13:18:00-04:00",
|
|
"2024-05-02T13:19:00-04:00",
|
|
"2024-05-02T13:20:00-04:00",
|
|
"2024-05-02T13:21:00-04:00",
|
|
"2024-05-02T13:22:00-04:00",
|
|
"2024-05-02T13:23:00-04:00",
|
|
"2024-05-02T13:24:00-04:00",
|
|
"2024-05-02T13:25:00-04:00",
|
|
"2024-05-02T13:26:00-04:00",
|
|
"2024-05-02T13:27:00-04:00",
|
|
"2024-05-02T13:28:00-04:00",
|
|
"2024-05-02T13:29:00-04:00",
|
|
"2024-05-02T13:30:00-04:00",
|
|
"2024-05-02T13:31:00-04:00",
|
|
"2024-05-02T13:32:00-04:00",
|
|
"2024-05-02T13:33:00-04:00",
|
|
"2024-05-02T13:34:00-04:00",
|
|
"2024-05-02T13:35:00-04:00",
|
|
"2024-05-02T13:36:00-04:00",
|
|
"2024-05-02T13:37:00-04:00",
|
|
"2024-05-02T13:38:00-04:00",
|
|
"2024-05-02T13:39:00-04:00",
|
|
"2024-05-02T13:40:00-04:00",
|
|
"2024-05-02T13:41:00-04:00",
|
|
"2024-05-02T13:42:00-04:00",
|
|
"2024-05-02T13:43:00-04:00",
|
|
"2024-05-02T13:44:00-04:00",
|
|
"2024-05-02T13:45:00-04:00",
|
|
"2024-05-02T13:46:00-04:00",
|
|
"2024-05-02T13:47:00-04:00",
|
|
"2024-05-02T13:48:00-04:00",
|
|
"2024-05-02T13:49:00-04:00",
|
|
"2024-05-02T13:50:00-04:00",
|
|
"2024-05-02T13:51:00-04:00",
|
|
"2024-05-02T13:52:00-04:00",
|
|
"2024-05-02T13:53:00-04:00",
|
|
"2024-05-02T13:54:00-04:00",
|
|
"2024-05-02T13:55:00-04:00",
|
|
"2024-05-02T13:56:00-04:00",
|
|
"2024-05-02T13:57:00-04:00",
|
|
"2024-05-02T13:58:00-04:00",
|
|
"2024-05-02T13:59:00-04:00",
|
|
"2024-05-02T14:00:00-04:00",
|
|
"2024-05-02T14:01:00-04:00",
|
|
"2024-05-02T14:02:00-04:00",
|
|
"2024-05-02T14:03:00-04:00",
|
|
"2024-05-02T14:04:00-04:00",
|
|
"2024-05-02T14:05:00-04:00",
|
|
"2024-05-02T14:06:00-04:00",
|
|
"2024-05-02T14:07:00-04:00",
|
|
"2024-05-02T14:08:00-04:00",
|
|
"2024-05-02T14:09:00-04:00",
|
|
"2024-05-02T14:10:00-04:00",
|
|
"2024-05-02T14:11:00-04:00",
|
|
"2024-05-02T14:12:00-04:00",
|
|
"2024-05-02T14:13:00-04:00",
|
|
"2024-05-02T14:14:00-04:00",
|
|
"2024-05-02T14:15:00-04:00",
|
|
"2024-05-02T14:16:00-04:00",
|
|
"2024-05-02T14:17:00-04:00",
|
|
"2024-05-02T14:18:00-04:00",
|
|
"2024-05-02T14:19:00-04:00",
|
|
"2024-05-02T14:20:00-04:00",
|
|
"2024-05-02T14:21:00-04:00",
|
|
"2024-05-02T14:22:00-04:00",
|
|
"2024-05-02T14:23:00-04:00",
|
|
"2024-05-02T14:24:00-04:00",
|
|
"2024-05-02T14:25:00-04:00",
|
|
"2024-05-02T14:26:00-04:00",
|
|
"2024-05-02T14:27:00-04:00",
|
|
"2024-05-02T14:28:00-04:00",
|
|
"2024-05-02T14:29:00-04:00",
|
|
"2024-05-02T14:30:00-04:00",
|
|
"2024-05-02T14:31:00-04:00",
|
|
"2024-05-02T14:32:00-04:00",
|
|
"2024-05-02T14:33:00-04:00",
|
|
"2024-05-02T14:34:00-04:00",
|
|
"2024-05-02T14:35:00-04:00",
|
|
"2024-05-02T14:36:00-04:00",
|
|
"2024-05-02T14:37:00-04:00",
|
|
"2024-05-02T14:38:00-04:00",
|
|
"2024-05-02T14:39:00-04:00",
|
|
"2024-05-02T14:40:00-04:00",
|
|
"2024-05-02T14:41:00-04:00",
|
|
"2024-05-02T14:42:00-04:00",
|
|
"2024-05-02T14:43:00-04:00",
|
|
"2024-05-02T14:44:00-04:00",
|
|
"2024-05-02T14:45:00-04:00",
|
|
"2024-05-02T14:46:00-04:00",
|
|
"2024-05-02T14:47:00-04:00",
|
|
"2024-05-02T14:48:00-04:00",
|
|
"2024-05-02T14:49:00-04:00",
|
|
"2024-05-02T14:50:00-04:00",
|
|
"2024-05-02T14:51:00-04:00",
|
|
"2024-05-02T14:52:00-04:00",
|
|
"2024-05-02T14:53:00-04:00",
|
|
"2024-05-02T14:54:00-04:00",
|
|
"2024-05-02T14:55:00-04:00",
|
|
"2024-05-02T14:56:00-04:00",
|
|
"2024-05-02T14:57:00-04:00",
|
|
"2024-05-02T14:58:00-04:00",
|
|
"2024-05-02T14:59:00-04:00",
|
|
"2024-05-02T15:00:00-04:00",
|
|
"2024-05-02T15:01:00-04:00",
|
|
"2024-05-02T15:02:00-04:00",
|
|
"2024-05-02T15:03:00-04:00",
|
|
"2024-05-02T15:04:00-04:00",
|
|
"2024-05-02T15:05:00-04:00",
|
|
"2024-05-02T15:06:00-04:00",
|
|
"2024-05-02T15:07:00-04:00",
|
|
"2024-05-02T15:08:00-04:00",
|
|
"2024-05-02T15:09:00-04:00",
|
|
"2024-05-02T15:10:00-04:00",
|
|
"2024-05-02T15:11:00-04:00",
|
|
"2024-05-02T15:12:00-04:00",
|
|
"2024-05-02T15:13:00-04:00",
|
|
"2024-05-02T15:14:00-04:00",
|
|
"2024-05-02T15:15:00-04:00",
|
|
"2024-05-02T15:16:00-04:00",
|
|
"2024-05-02T15:17:00-04:00",
|
|
"2024-05-02T15:18:00-04:00",
|
|
"2024-05-02T15:19:00-04:00",
|
|
"2024-05-02T15:20:00-04:00",
|
|
"2024-05-02T15:21:00-04:00",
|
|
"2024-05-02T15:22:00-04:00",
|
|
"2024-05-02T15:23:00-04:00",
|
|
"2024-05-02T15:24:00-04:00",
|
|
"2024-05-02T15:25:00-04:00",
|
|
"2024-05-02T15:26:00-04:00",
|
|
"2024-05-02T15:27:00-04:00",
|
|
"2024-05-02T15:28:00-04:00",
|
|
"2024-05-02T15:29:00-04:00",
|
|
"2024-05-02T15:30:00-04:00",
|
|
"2024-05-02T15:31:00-04:00",
|
|
"2024-05-02T15:32:00-04:00",
|
|
"2024-05-02T15:33:00-04:00",
|
|
"2024-05-02T15:34:00-04:00",
|
|
"2024-05-02T15:35:00-04:00",
|
|
"2024-05-02T15:36:00-04:00",
|
|
"2024-05-02T15:37:00-04:00",
|
|
"2024-05-02T15:38:00-04:00",
|
|
"2024-05-02T15:39:00-04:00",
|
|
"2024-05-02T15:40:00-04:00",
|
|
"2024-05-02T15:41:00-04:00",
|
|
"2024-05-02T15:42:00-04:00",
|
|
"2024-05-02T15:43:00-04:00",
|
|
"2024-05-02T15:44:00-04:00",
|
|
"2024-05-02T15:45:00-04:00",
|
|
"2024-05-02T15:46:00-04:00",
|
|
"2024-05-02T15:47:00-04:00",
|
|
"2024-05-02T15:48:00-04:00",
|
|
"2024-05-02T15:49:00-04:00",
|
|
"2024-05-02T15:50:00-04:00",
|
|
"2024-05-02T15:51:00-04:00",
|
|
"2024-05-02T15:52:00-04:00",
|
|
"2024-05-02T15:53:00-04:00",
|
|
"2024-05-02T15:54:00-04:00",
|
|
"2024-05-02T15:55:00-04:00",
|
|
"2024-05-02T15:56:00-04:00",
|
|
"2024-05-02T15:57:00-04:00",
|
|
"2024-05-02T15:58:00-04:00",
|
|
"2024-05-02T15:59:00-04:00",
|
|
"2024-05-02T16:00:00-04:00",
|
|
"2024-05-03T09:30:00-04:00",
|
|
"2024-05-03T09:31:00-04:00",
|
|
"2024-05-03T09:32:00-04:00",
|
|
"2024-05-03T09:33:00-04:00",
|
|
"2024-05-03T09:34:00-04:00",
|
|
"2024-05-03T09:35:00-04:00",
|
|
"2024-05-03T09:36:00-04:00",
|
|
"2024-05-03T09:37:00-04:00",
|
|
"2024-05-03T09:38:00-04:00",
|
|
"2024-05-03T09:39:00-04:00",
|
|
"2024-05-03T09:40:00-04:00",
|
|
"2024-05-03T09:41:00-04:00",
|
|
"2024-05-03T09:42:00-04:00",
|
|
"2024-05-03T09:43:00-04:00",
|
|
"2024-05-03T09:44:00-04:00",
|
|
"2024-05-03T09:45:00-04:00",
|
|
"2024-05-03T09:46:00-04:00",
|
|
"2024-05-03T09:47:00-04:00",
|
|
"2024-05-03T09:48:00-04:00",
|
|
"2024-05-03T09:49:00-04:00",
|
|
"2024-05-03T09:50:00-04:00",
|
|
"2024-05-03T09:51:00-04:00",
|
|
"2024-05-03T09:52:00-04:00",
|
|
"2024-05-03T09:53:00-04:00",
|
|
"2024-05-03T09:54:00-04:00",
|
|
"2024-05-03T09:55:00-04:00",
|
|
"2024-05-03T09:56:00-04:00",
|
|
"2024-05-03T09:57:00-04:00",
|
|
"2024-05-03T09:58:00-04:00",
|
|
"2024-05-03T09:59:00-04:00",
|
|
"2024-05-03T10:00:00-04:00",
|
|
"2024-05-03T10:01:00-04:00",
|
|
"2024-05-03T10:02:00-04:00",
|
|
"2024-05-03T10:03:00-04:00",
|
|
"2024-05-03T10:04:00-04:00",
|
|
"2024-05-03T10:05:00-04:00",
|
|
"2024-05-03T10:06:00-04:00",
|
|
"2024-05-03T10:07:00-04:00",
|
|
"2024-05-03T10:08:00-04:00",
|
|
"2024-05-03T10:09:00-04:00",
|
|
"2024-05-03T10:10:00-04:00",
|
|
"2024-05-03T10:11:00-04:00",
|
|
"2024-05-03T10:12:00-04:00",
|
|
"2024-05-03T10:13:00-04:00",
|
|
"2024-05-03T10:14:00-04:00",
|
|
"2024-05-03T10:15:00-04:00",
|
|
"2024-05-03T10:16:00-04:00",
|
|
"2024-05-03T10:17:00-04:00",
|
|
"2024-05-03T10:18:00-04:00",
|
|
"2024-05-03T10:19:00-04:00",
|
|
"2024-05-03T10:20:00-04:00",
|
|
"2024-05-03T10:21:00-04:00",
|
|
"2024-05-03T10:22:00-04:00",
|
|
"2024-05-03T10:23:00-04:00",
|
|
"2024-05-03T10:24:00-04:00",
|
|
"2024-05-03T10:25:00-04:00",
|
|
"2024-05-03T10:26:00-04:00",
|
|
"2024-05-03T10:27:00-04:00",
|
|
"2024-05-03T10:28:00-04:00",
|
|
"2024-05-03T10:29:00-04:00",
|
|
"2024-05-03T10:30:00-04:00",
|
|
"2024-05-03T10:31:00-04:00",
|
|
"2024-05-03T10:32:00-04:00",
|
|
"2024-05-03T10:33:00-04:00",
|
|
"2024-05-03T10:34:00-04:00",
|
|
"2024-05-03T10:35:00-04:00",
|
|
"2024-05-03T10:36:00-04:00",
|
|
"2024-05-03T10:37:00-04:00",
|
|
"2024-05-03T10:38:00-04:00",
|
|
"2024-05-03T10:39:00-04:00",
|
|
"2024-05-03T10:40:00-04:00",
|
|
"2024-05-03T10:41:00-04:00",
|
|
"2024-05-03T10:42:00-04:00",
|
|
"2024-05-03T10:43:00-04:00",
|
|
"2024-05-03T10:44:00-04:00",
|
|
"2024-05-03T10:45:00-04:00",
|
|
"2024-05-03T10:46:00-04:00",
|
|
"2024-05-03T10:47:00-04:00",
|
|
"2024-05-03T10:48:00-04:00",
|
|
"2024-05-03T10:49:00-04:00",
|
|
"2024-05-03T10:50:00-04:00",
|
|
"2024-05-03T10:51:00-04:00",
|
|
"2024-05-03T10:52:00-04:00",
|
|
"2024-05-03T10:53:00-04:00",
|
|
"2024-05-03T10:54:00-04:00",
|
|
"2024-05-03T10:55:00-04:00",
|
|
"2024-05-03T10:56:00-04:00",
|
|
"2024-05-03T10:57:00-04:00",
|
|
"2024-05-03T10:58:00-04:00",
|
|
"2024-05-03T10:59:00-04:00",
|
|
"2024-05-03T11:00:00-04:00",
|
|
"2024-05-03T11:01:00-04:00",
|
|
"2024-05-03T11:02:00-04:00",
|
|
"2024-05-03T11:03:00-04:00",
|
|
"2024-05-03T11:04:00-04:00",
|
|
"2024-05-03T11:05:00-04:00",
|
|
"2024-05-03T11:06:00-04:00",
|
|
"2024-05-03T11:07:00-04:00",
|
|
"2024-05-03T11:08:00-04:00",
|
|
"2024-05-03T11:09:00-04:00",
|
|
"2024-05-03T11:10:00-04:00",
|
|
"2024-05-03T11:11:00-04:00",
|
|
"2024-05-03T11:12:00-04:00",
|
|
"2024-05-03T11:13:00-04:00",
|
|
"2024-05-03T11:14:00-04:00",
|
|
"2024-05-03T11:15:00-04:00",
|
|
"2024-05-03T11:16:00-04:00",
|
|
"2024-05-03T11:17:00-04:00",
|
|
"2024-05-03T11:18:00-04:00",
|
|
"2024-05-03T11:19:00-04:00",
|
|
"2024-05-03T11:20:00-04:00",
|
|
"2024-05-03T11:21:00-04:00",
|
|
"2024-05-03T11:22:00-04:00",
|
|
"2024-05-03T11:23:00-04:00",
|
|
"2024-05-03T11:24:00-04:00",
|
|
"2024-05-03T11:25:00-04:00",
|
|
"2024-05-03T11:26:00-04:00",
|
|
"2024-05-03T11:27:00-04:00",
|
|
"2024-05-03T11:28:00-04:00",
|
|
"2024-05-03T11:29:00-04:00",
|
|
"2024-05-03T11:30:00-04:00",
|
|
"2024-05-03T11:31:00-04:00",
|
|
"2024-05-03T11:32:00-04:00",
|
|
"2024-05-03T11:33:00-04:00",
|
|
"2024-05-03T11:34:00-04:00",
|
|
"2024-05-03T11:35:00-04:00",
|
|
"2024-05-03T11:36:00-04:00",
|
|
"2024-05-03T11:37:00-04:00",
|
|
"2024-05-03T11:38:00-04:00",
|
|
"2024-05-03T11:39:00-04:00",
|
|
"2024-05-03T11:40:00-04:00",
|
|
"2024-05-03T11:41:00-04:00",
|
|
"2024-05-03T11:42:00-04:00",
|
|
"2024-05-03T11:43:00-04:00",
|
|
"2024-05-03T11:44:00-04:00",
|
|
"2024-05-03T11:45:00-04:00",
|
|
"2024-05-03T11:46:00-04:00",
|
|
"2024-05-03T11:47:00-04:00",
|
|
"2024-05-03T11:48:00-04:00",
|
|
"2024-05-03T11:49:00-04:00",
|
|
"2024-05-03T11:50:00-04:00",
|
|
"2024-05-03T11:51:00-04:00",
|
|
"2024-05-03T11:52:00-04:00",
|
|
"2024-05-03T11:53:00-04:00",
|
|
"2024-05-03T11:54:00-04:00",
|
|
"2024-05-03T11:55:00-04:00",
|
|
"2024-05-03T11:56:00-04:00",
|
|
"2024-05-03T11:57:00-04:00",
|
|
"2024-05-03T11:58:00-04:00",
|
|
"2024-05-03T11:59:00-04:00",
|
|
"2024-05-03T12:00:00-04:00",
|
|
"2024-05-03T12:01:00-04:00",
|
|
"2024-05-03T12:02:00-04:00",
|
|
"2024-05-03T12:03:00-04:00",
|
|
"2024-05-03T12:04:00-04:00",
|
|
"2024-05-03T12:05:00-04:00",
|
|
"2024-05-03T12:06:00-04:00",
|
|
"2024-05-03T12:07:00-04:00",
|
|
"2024-05-03T12:08:00-04:00",
|
|
"2024-05-03T12:09:00-04:00",
|
|
"2024-05-03T12:10:00-04:00",
|
|
"2024-05-03T12:11:00-04:00",
|
|
"2024-05-03T12:12:00-04:00",
|
|
"2024-05-03T12:13:00-04:00",
|
|
"2024-05-03T12:14:00-04:00",
|
|
"2024-05-03T12:15:00-04:00",
|
|
"2024-05-03T12:16:00-04:00",
|
|
"2024-05-03T12:17:00-04:00",
|
|
"2024-05-03T12:18:00-04:00",
|
|
"2024-05-03T12:19:00-04:00",
|
|
"2024-05-03T12:20:00-04:00",
|
|
"2024-05-03T12:21:00-04:00",
|
|
"2024-05-03T12:22:00-04:00",
|
|
"2024-05-03T12:23:00-04:00",
|
|
"2024-05-03T12:24:00-04:00",
|
|
"2024-05-03T12:25:00-04:00",
|
|
"2024-05-03T12:26:00-04:00",
|
|
"2024-05-03T12:27:00-04:00",
|
|
"2024-05-03T12:28:00-04:00",
|
|
"2024-05-03T12:29:00-04:00",
|
|
"2024-05-03T12:30:00-04:00",
|
|
"2024-05-03T12:31:00-04:00",
|
|
"2024-05-03T12:32:00-04:00",
|
|
"2024-05-03T12:33:00-04:00",
|
|
"2024-05-03T12:34:00-04:00",
|
|
"2024-05-03T12:35:00-04:00",
|
|
"2024-05-03T12:36:00-04:00",
|
|
"2024-05-03T12:37:00-04:00",
|
|
"2024-05-03T12:38:00-04:00",
|
|
"2024-05-03T12:39:00-04:00",
|
|
"2024-05-03T12:40:00-04:00",
|
|
"2024-05-03T12:41:00-04:00",
|
|
"2024-05-03T12:42:00-04:00",
|
|
"2024-05-03T12:43:00-04:00",
|
|
"2024-05-03T12:44:00-04:00",
|
|
"2024-05-03T12:45:00-04:00",
|
|
"2024-05-03T12:46:00-04:00",
|
|
"2024-05-03T12:47:00-04:00",
|
|
"2024-05-03T12:48:00-04:00",
|
|
"2024-05-03T12:49:00-04:00",
|
|
"2024-05-03T12:50:00-04:00",
|
|
"2024-05-03T12:51:00-04:00",
|
|
"2024-05-03T12:52:00-04:00",
|
|
"2024-05-03T12:53:00-04:00",
|
|
"2024-05-03T12:54:00-04:00",
|
|
"2024-05-03T12:55:00-04:00",
|
|
"2024-05-03T12:56:00-04:00",
|
|
"2024-05-03T12:57:00-04:00",
|
|
"2024-05-03T12:58:00-04:00",
|
|
"2024-05-03T12:59:00-04:00",
|
|
"2024-05-03T13:00:00-04:00",
|
|
"2024-05-03T13:01:00-04:00",
|
|
"2024-05-03T13:02:00-04:00",
|
|
"2024-05-03T13:03:00-04:00",
|
|
"2024-05-03T13:04:00-04:00",
|
|
"2024-05-03T13:05:00-04:00",
|
|
"2024-05-03T13:06:00-04:00",
|
|
"2024-05-03T13:07:00-04:00",
|
|
"2024-05-03T13:08:00-04:00",
|
|
"2024-05-03T13:09:00-04:00",
|
|
"2024-05-03T13:10:00-04:00",
|
|
"2024-05-03T13:11:00-04:00",
|
|
"2024-05-03T13:12:00-04:00",
|
|
"2024-05-03T13:13:00-04:00",
|
|
"2024-05-03T13:14:00-04:00",
|
|
"2024-05-03T13:15:00-04:00",
|
|
"2024-05-03T13:16:00-04:00",
|
|
"2024-05-03T13:17:00-04:00",
|
|
"2024-05-03T13:18:00-04:00",
|
|
"2024-05-03T13:19:00-04:00",
|
|
"2024-05-03T13:20:00-04:00",
|
|
"2024-05-03T13:21:00-04:00",
|
|
"2024-05-03T13:22:00-04:00",
|
|
"2024-05-03T13:23:00-04:00",
|
|
"2024-05-03T13:24:00-04:00",
|
|
"2024-05-03T13:25:00-04:00",
|
|
"2024-05-03T13:26:00-04:00",
|
|
"2024-05-03T13:27:00-04:00",
|
|
"2024-05-03T13:28:00-04:00",
|
|
"2024-05-03T13:29:00-04:00",
|
|
"2024-05-03T13:30:00-04:00",
|
|
"2024-05-03T13:31:00-04:00",
|
|
"2024-05-03T13:32:00-04:00",
|
|
"2024-05-03T13:33:00-04:00",
|
|
"2024-05-03T13:34:00-04:00",
|
|
"2024-05-03T13:35:00-04:00",
|
|
"2024-05-03T13:36:00-04:00",
|
|
"2024-05-03T13:37:00-04:00",
|
|
"2024-05-03T13:38:00-04:00",
|
|
"2024-05-03T13:39:00-04:00",
|
|
"2024-05-03T13:40:00-04:00",
|
|
"2024-05-03T13:41:00-04:00",
|
|
"2024-05-03T13:42:00-04:00",
|
|
"2024-05-03T13:43:00-04:00",
|
|
"2024-05-03T13:44:00-04:00",
|
|
"2024-05-03T13:45:00-04:00",
|
|
"2024-05-03T13:46:00-04:00",
|
|
"2024-05-03T13:47:00-04:00",
|
|
"2024-05-03T13:48:00-04:00",
|
|
"2024-05-03T13:49:00-04:00",
|
|
"2024-05-03T13:50:00-04:00",
|
|
"2024-05-03T13:51:00-04:00",
|
|
"2024-05-03T13:52:00-04:00",
|
|
"2024-05-03T13:53:00-04:00",
|
|
"2024-05-03T13:54:00-04:00",
|
|
"2024-05-03T13:55:00-04:00",
|
|
"2024-05-03T13:56:00-04:00",
|
|
"2024-05-03T13:57:00-04:00",
|
|
"2024-05-03T13:58:00-04:00",
|
|
"2024-05-03T13:59:00-04:00",
|
|
"2024-05-03T14:00:00-04:00",
|
|
"2024-05-03T14:01:00-04:00",
|
|
"2024-05-03T14:02:00-04:00",
|
|
"2024-05-03T14:03:00-04:00",
|
|
"2024-05-03T14:04:00-04:00",
|
|
"2024-05-03T14:05:00-04:00",
|
|
"2024-05-03T14:06:00-04:00",
|
|
"2024-05-03T14:07:00-04:00",
|
|
"2024-05-03T14:08:00-04:00",
|
|
"2024-05-03T14:09:00-04:00",
|
|
"2024-05-03T14:10:00-04:00",
|
|
"2024-05-03T14:11:00-04:00",
|
|
"2024-05-03T14:12:00-04:00",
|
|
"2024-05-03T14:13:00-04:00",
|
|
"2024-05-03T14:14:00-04:00",
|
|
"2024-05-03T14:15:00-04:00",
|
|
"2024-05-03T14:16:00-04:00",
|
|
"2024-05-03T14:17:00-04:00",
|
|
"2024-05-03T14:18:00-04:00",
|
|
"2024-05-03T14:19:00-04:00",
|
|
"2024-05-03T14:20:00-04:00",
|
|
"2024-05-03T14:21:00-04:00",
|
|
"2024-05-03T14:22:00-04:00",
|
|
"2024-05-03T14:23:00-04:00",
|
|
"2024-05-03T14:24:00-04:00",
|
|
"2024-05-03T14:25:00-04:00",
|
|
"2024-05-03T14:26:00-04:00",
|
|
"2024-05-03T14:27:00-04:00",
|
|
"2024-05-03T14:28:00-04:00",
|
|
"2024-05-03T14:29:00-04:00",
|
|
"2024-05-03T14:30:00-04:00",
|
|
"2024-05-03T14:31:00-04:00",
|
|
"2024-05-03T14:32:00-04:00",
|
|
"2024-05-03T14:33:00-04:00",
|
|
"2024-05-03T14:34:00-04:00",
|
|
"2024-05-03T14:35:00-04:00",
|
|
"2024-05-03T14:36:00-04:00",
|
|
"2024-05-03T14:37:00-04:00",
|
|
"2024-05-03T14:38:00-04:00",
|
|
"2024-05-03T14:39:00-04:00",
|
|
"2024-05-03T14:40:00-04:00",
|
|
"2024-05-03T14:41:00-04:00",
|
|
"2024-05-03T14:42:00-04:00",
|
|
"2024-05-03T14:43:00-04:00",
|
|
"2024-05-03T14:44:00-04:00",
|
|
"2024-05-03T14:45:00-04:00",
|
|
"2024-05-03T14:46:00-04:00",
|
|
"2024-05-03T14:47:00-04:00",
|
|
"2024-05-03T14:48:00-04:00",
|
|
"2024-05-03T14:49:00-04:00",
|
|
"2024-05-03T14:50:00-04:00",
|
|
"2024-05-03T14:51:00-04:00",
|
|
"2024-05-03T14:52:00-04:00",
|
|
"2024-05-03T14:53:00-04:00",
|
|
"2024-05-03T14:54:00-04:00",
|
|
"2024-05-03T14:55:00-04:00",
|
|
"2024-05-03T14:56:00-04:00",
|
|
"2024-05-03T14:57:00-04:00",
|
|
"2024-05-03T14:58:00-04:00",
|
|
"2024-05-03T14:59:00-04:00",
|
|
"2024-05-03T15:00:00-04:00",
|
|
"2024-05-03T15:01:00-04:00",
|
|
"2024-05-03T15:02:00-04:00",
|
|
"2024-05-03T15:03:00-04:00",
|
|
"2024-05-03T15:04:00-04:00",
|
|
"2024-05-03T15:05:00-04:00",
|
|
"2024-05-03T15:06:00-04:00",
|
|
"2024-05-03T15:07:00-04:00",
|
|
"2024-05-03T15:08:00-04:00",
|
|
"2024-05-03T15:09:00-04:00",
|
|
"2024-05-03T15:10:00-04:00",
|
|
"2024-05-03T15:11:00-04:00",
|
|
"2024-05-03T15:12:00-04:00",
|
|
"2024-05-03T15:13:00-04:00",
|
|
"2024-05-03T15:14:00-04:00",
|
|
"2024-05-03T15:15:00-04:00",
|
|
"2024-05-03T15:16:00-04:00",
|
|
"2024-05-03T15:17:00-04:00",
|
|
"2024-05-03T15:18:00-04:00",
|
|
"2024-05-03T15:19:00-04:00",
|
|
"2024-05-03T15:20:00-04:00",
|
|
"2024-05-03T15:21:00-04:00",
|
|
"2024-05-03T15:22:00-04:00",
|
|
"2024-05-03T15:23:00-04:00",
|
|
"2024-05-03T15:24:00-04:00",
|
|
"2024-05-03T15:25:00-04:00",
|
|
"2024-05-03T15:26:00-04:00",
|
|
"2024-05-03T15:27:00-04:00",
|
|
"2024-05-03T15:28:00-04:00",
|
|
"2024-05-03T15:29:00-04:00",
|
|
"2024-05-03T15:30:00-04:00",
|
|
"2024-05-03T15:31:00-04:00",
|
|
"2024-05-03T15:32:00-04:00",
|
|
"2024-05-03T15:33:00-04:00",
|
|
"2024-05-03T15:34:00-04:00",
|
|
"2024-05-03T15:35:00-04:00",
|
|
"2024-05-03T15:36:00-04:00",
|
|
"2024-05-03T15:37:00-04:00",
|
|
"2024-05-03T15:38:00-04:00",
|
|
"2024-05-03T15:39:00-04:00",
|
|
"2024-05-03T15:40:00-04:00",
|
|
"2024-05-03T15:41:00-04:00",
|
|
"2024-05-03T15:42:00-04:00",
|
|
"2024-05-03T15:43:00-04:00",
|
|
"2024-05-03T15:44:00-04:00",
|
|
"2024-05-03T15:45:00-04:00",
|
|
"2024-05-03T15:46:00-04:00",
|
|
"2024-05-03T15:47:00-04:00",
|
|
"2024-05-03T15:48:00-04:00",
|
|
"2024-05-03T15:49:00-04:00",
|
|
"2024-05-03T15:50:00-04:00",
|
|
"2024-05-03T15:51:00-04:00",
|
|
"2024-05-03T15:52:00-04:00",
|
|
"2024-05-03T15:53:00-04:00",
|
|
"2024-05-03T15:54:00-04:00",
|
|
"2024-05-03T15:55:00-04:00",
|
|
"2024-05-03T15:56:00-04:00",
|
|
"2024-05-03T15:57:00-04:00",
|
|
"2024-05-03T15:58:00-04:00",
|
|
"2024-05-03T15:59:00-04:00",
|
|
"2024-05-03T16:00:00-04:00",
|
|
"2024-05-06T09:30:00-04:00",
|
|
"2024-05-06T09:31:00-04:00",
|
|
"2024-05-06T09:32:00-04:00",
|
|
"2024-05-06T09:33:00-04:00",
|
|
"2024-05-06T09:34:00-04:00",
|
|
"2024-05-06T09:35:00-04:00",
|
|
"2024-05-06T09:36:00-04:00",
|
|
"2024-05-06T09:37:00-04:00",
|
|
"2024-05-06T09:38:00-04:00",
|
|
"2024-05-06T09:39:00-04:00",
|
|
"2024-05-06T09:40:00-04:00",
|
|
"2024-05-06T09:41:00-04:00",
|
|
"2024-05-06T09:42:00-04:00",
|
|
"2024-05-06T09:43:00-04:00",
|
|
"2024-05-06T09:44:00-04:00",
|
|
"2024-05-06T09:45:00-04:00",
|
|
"2024-05-06T09:46:00-04:00",
|
|
"2024-05-06T09:47:00-04:00",
|
|
"2024-05-06T09:48:00-04:00",
|
|
"2024-05-06T09:49:00-04:00",
|
|
"2024-05-06T09:50:00-04:00",
|
|
"2024-05-06T09:51:00-04:00",
|
|
"2024-05-06T09:52:00-04:00",
|
|
"2024-05-06T09:53:00-04:00",
|
|
"2024-05-06T09:54:00-04:00",
|
|
"2024-05-06T09:55:00-04:00",
|
|
"2024-05-06T09:56:00-04:00",
|
|
"2024-05-06T09:57:00-04:00",
|
|
"2024-05-06T09:58:00-04:00",
|
|
"2024-05-06T09:59:00-04:00",
|
|
"2024-05-06T10:00:00-04:00",
|
|
"2024-05-06T10:01:00-04:00",
|
|
"2024-05-06T10:02:00-04:00",
|
|
"2024-05-06T10:03:00-04:00",
|
|
"2024-05-06T10:04:00-04:00",
|
|
"2024-05-06T10:05:00-04:00",
|
|
"2024-05-06T10:06:00-04:00",
|
|
"2024-05-06T10:07:00-04:00",
|
|
"2024-05-06T10:08:00-04:00",
|
|
"2024-05-06T10:09:00-04:00",
|
|
"2024-05-06T10:10:00-04:00",
|
|
"2024-05-06T10:11:00-04:00",
|
|
"2024-05-06T10:12:00-04:00",
|
|
"2024-05-06T10:13:00-04:00",
|
|
"2024-05-06T10:14:00-04:00",
|
|
"2024-05-06T10:15:00-04:00",
|
|
"2024-05-06T10:16:00-04:00",
|
|
"2024-05-06T10:17:00-04:00",
|
|
"2024-05-06T10:18:00-04:00",
|
|
"2024-05-06T10:19:00-04:00",
|
|
"2024-05-06T10:20:00-04:00",
|
|
"2024-05-06T10:21:00-04:00",
|
|
"2024-05-06T10:22:00-04:00",
|
|
"2024-05-06T10:23:00-04:00",
|
|
"2024-05-06T10:24:00-04:00",
|
|
"2024-05-06T10:25:00-04:00",
|
|
"2024-05-06T10:26:00-04:00",
|
|
"2024-05-06T10:27:00-04:00",
|
|
"2024-05-06T10:28:00-04:00",
|
|
"2024-05-06T10:29:00-04:00",
|
|
"2024-05-06T10:30:00-04:00",
|
|
"2024-05-06T10:31:00-04:00",
|
|
"2024-05-06T10:32:00-04:00",
|
|
"2024-05-06T10:33:00-04:00",
|
|
"2024-05-06T10:34:00-04:00",
|
|
"2024-05-06T10:35:00-04:00",
|
|
"2024-05-06T10:36:00-04:00",
|
|
"2024-05-06T10:37:00-04:00",
|
|
"2024-05-06T10:38:00-04:00",
|
|
"2024-05-06T10:39:00-04:00",
|
|
"2024-05-06T10:40:00-04:00",
|
|
"2024-05-06T10:41:00-04:00",
|
|
"2024-05-06T10:42:00-04:00",
|
|
"2024-05-06T10:43:00-04:00",
|
|
"2024-05-06T10:44:00-04:00",
|
|
"2024-05-06T10:45:00-04:00",
|
|
"2024-05-06T10:46:00-04:00",
|
|
"2024-05-06T10:47:00-04:00",
|
|
"2024-05-06T10:48:00-04:00",
|
|
"2024-05-06T10:49:00-04:00",
|
|
"2024-05-06T10:50:00-04:00",
|
|
"2024-05-06T10:51:00-04:00",
|
|
"2024-05-06T10:52:00-04:00",
|
|
"2024-05-06T10:53:00-04:00",
|
|
"2024-05-06T10:54:00-04:00",
|
|
"2024-05-06T10:55:00-04:00",
|
|
"2024-05-06T10:56:00-04:00",
|
|
"2024-05-06T10:57:00-04:00",
|
|
"2024-05-06T10:58:00-04:00",
|
|
"2024-05-06T10:59:00-04:00",
|
|
"2024-05-06T11:00:00-04:00",
|
|
"2024-05-06T11:01:00-04:00",
|
|
"2024-05-06T11:02:00-04:00",
|
|
"2024-05-06T11:03:00-04:00",
|
|
"2024-05-06T11:04:00-04:00",
|
|
"2024-05-06T11:05:00-04:00",
|
|
"2024-05-06T11:06:00-04:00",
|
|
"2024-05-06T11:07:00-04:00",
|
|
"2024-05-06T11:08:00-04:00",
|
|
"2024-05-06T11:09:00-04:00",
|
|
"2024-05-06T11:10:00-04:00",
|
|
"2024-05-06T11:11:00-04:00",
|
|
"2024-05-06T11:12:00-04:00",
|
|
"2024-05-06T11:13:00-04:00",
|
|
"2024-05-06T11:14:00-04:00",
|
|
"2024-05-06T11:15:00-04:00",
|
|
"2024-05-06T11:16:00-04:00",
|
|
"2024-05-06T11:17:00-04:00",
|
|
"2024-05-06T11:18:00-04:00",
|
|
"2024-05-06T11:19:00-04:00",
|
|
"2024-05-06T11:20:00-04:00",
|
|
"2024-05-06T11:21:00-04:00",
|
|
"2024-05-06T11:22:00-04:00",
|
|
"2024-05-06T11:23:00-04:00",
|
|
"2024-05-06T11:24:00-04:00",
|
|
"2024-05-06T11:25:00-04:00",
|
|
"2024-05-06T11:26:00-04:00",
|
|
"2024-05-06T11:27:00-04:00",
|
|
"2024-05-06T11:28:00-04:00",
|
|
"2024-05-06T11:29:00-04:00",
|
|
"2024-05-06T11:30:00-04:00",
|
|
"2024-05-06T11:31:00-04:00",
|
|
"2024-05-06T11:32:00-04:00",
|
|
"2024-05-06T11:33:00-04:00",
|
|
"2024-05-06T11:34:00-04:00",
|
|
"2024-05-06T11:35:00-04:00",
|
|
"2024-05-06T11:36:00-04:00",
|
|
"2024-05-06T11:37:00-04:00"
|
|
],
|
|
"y": [
|
|
37.85666666666666,
|
|
37.857452959347796,
|
|
37.85022147712458,
|
|
37.84983979039629,
|
|
37.850431517527014,
|
|
37.8414329572699,
|
|
37.828761919155546,
|
|
37.832171075558136,
|
|
37.83431821356072,
|
|
37.835850520403646,
|
|
37.83682540964913,
|
|
37.83991283321892,
|
|
37.84126168435263,
|
|
37.84150616017652,
|
|
37.84234090927361,
|
|
37.84299771049574,
|
|
37.84527266375352,
|
|
37.84841502691756,
|
|
37.85326950983674,
|
|
37.85997792779162,
|
|
37.864924031318,
|
|
37.868782924098774,
|
|
37.87215768599714,
|
|
37.875063766316494,
|
|
37.876456105921996,
|
|
37.878224279099506,
|
|
37.88040325901841,
|
|
37.88139664799482,
|
|
37.883323846139334,
|
|
37.88489269796698,
|
|
37.88806141208203,
|
|
37.89282011513575,
|
|
37.896085246724304,
|
|
37.89799473553894,
|
|
37.89916278606307,
|
|
37.90027568600315,
|
|
37.906001810203875,
|
|
37.90885539036246,
|
|
37.91058464988299,
|
|
37.91185487452673,
|
|
37.91298480944769,
|
|
37.91358299004248,
|
|
37.914682502338636,
|
|
37.91547526710585,
|
|
37.91630515651449,
|
|
37.91697186838574,
|
|
37.917758012051216,
|
|
37.91852900176693,
|
|
37.9194330804752,
|
|
37.920021004707436,
|
|
37.921174795148545,
|
|
37.922194168332084,
|
|
37.9225519905441,
|
|
37.923406931062935,
|
|
37.92427447466243,
|
|
37.92472013875649,
|
|
37.92515720646737,
|
|
37.92555308544195,
|
|
37.92586267079497,
|
|
37.92634622600941,
|
|
37.9265727970584,
|
|
37.926957813833035,
|
|
37.92720799397742,
|
|
37.92773271328368,
|
|
37.92809916129793,
|
|
37.928315048103606,
|
|
37.928829325039025,
|
|
37.92894489621477,
|
|
37.929122473843805,
|
|
37.92923219094207,
|
|
37.929364858442554,
|
|
37.92971970516038,
|
|
37.929764197733824,
|
|
37.92984025296269,
|
|
37.93007996008894,
|
|
37.93029164415807,
|
|
37.930420005979606,
|
|
37.9304829170234,
|
|
37.930723204577255,
|
|
37.93094223376051,
|
|
37.931158972596286,
|
|
37.93124606489545,
|
|
37.93130960762438,
|
|
37.93141526278768,
|
|
37.93146699031773,
|
|
37.93144899530687,
|
|
37.931483098658866,
|
|
37.93155589899715,
|
|
37.93161156245601,
|
|
37.93167638786752,
|
|
37.93175856499441,
|
|
37.93180186001985,
|
|
37.93189910891476,
|
|
37.932041646783254,
|
|
37.932079042319515,
|
|
37.93214197279108,
|
|
37.932251400702015,
|
|
37.93230910559864,
|
|
37.93235885142491,
|
|
37.93240498729583,
|
|
37.93243485412908,
|
|
37.93241877786744,
|
|
37.932288925737524,
|
|
37.93207763108892,
|
|
37.93198956962792,
|
|
37.93185050531875,
|
|
37.9317946258458,
|
|
37.93177605020116,
|
|
37.931751637239344,
|
|
37.931696875370555,
|
|
37.931606277296034,
|
|
37.931539305269325,
|
|
37.93104141914155,
|
|
37.93072553941424,
|
|
37.93031220922454,
|
|
37.92974401569324,
|
|
37.92948808030851,
|
|
37.929243906428695,
|
|
37.92905123249824,
|
|
37.92874125421581,
|
|
37.928497971986566,
|
|
37.92830497663225,
|
|
37.928072156721385,
|
|
37.927863895012294,
|
|
37.92775529253174,
|
|
37.9274386517405,
|
|
37.9271559368857,
|
|
37.92708183395896,
|
|
37.92700060509497,
|
|
37.9269105773601,
|
|
37.92650180049522,
|
|
37.92634216819417,
|
|
37.92618973629027,
|
|
37.926058768576176,
|
|
37.92589620428976,
|
|
37.925676637051644,
|
|
37.925462115949,
|
|
37.92528945881819,
|
|
37.92516117548994,
|
|
37.92502277321663,
|
|
37.92473307658407,
|
|
37.92463347430347,
|
|
37.92433428088375,
|
|
37.92409831747584,
|
|
37.92375283079616,
|
|
37.92352550082401,
|
|
37.922506421781954,
|
|
37.92184932739847,
|
|
37.92100304294434,
|
|
37.9194406659311,
|
|
37.91857799017373,
|
|
37.918353713474154,
|
|
37.91710361071078,
|
|
37.915124990901056,
|
|
37.91314781643287,
|
|
37.91282783961208,
|
|
37.912563866089705,
|
|
37.91189215009149,
|
|
37.91180349567432,
|
|
37.91111790706026,
|
|
37.91100314145797,
|
|
37.91089780700506,
|
|
37.910694398878796,
|
|
37.9101213235837,
|
|
37.90982842467764,
|
|
37.90957416837751,
|
|
37.90940220970516,
|
|
37.90931360453212,
|
|
37.90884667192866,
|
|
37.90859397070667,
|
|
37.90854464878733,
|
|
37.90810733027171,
|
|
37.90792989258196,
|
|
37.90787375779044,
|
|
37.90764226307208,
|
|
37.90744032408064,
|
|
37.90727687574003,
|
|
37.90676538296117,
|
|
37.90670105968904,
|
|
37.906186218791106,
|
|
37.904993567208706,
|
|
37.90462727219434,
|
|
37.9036777076128,
|
|
37.903303019694434,
|
|
37.903036483409785,
|
|
37.90230114050844,
|
|
37.902166224458824,
|
|
37.90193986718985,
|
|
37.90169518985872,
|
|
37.90133404281759,
|
|
37.90092414863222,
|
|
37.90048536382831,
|
|
37.899534321433514,
|
|
37.89940617573697,
|
|
37.89899471716082,
|
|
37.89844947868197,
|
|
37.89822242672249,
|
|
37.89729853795208,
|
|
37.89648705004292,
|
|
37.8961428916827,
|
|
37.895996605711225,
|
|
37.89585452181355,
|
|
37.89493106647409,
|
|
37.89408600666712,
|
|
37.89381056404296,
|
|
37.89358318029765,
|
|
37.892539307519165,
|
|
37.89243627793837,
|
|
37.89203386209534,
|
|
37.89164187395863,
|
|
37.89113209960643,
|
|
37.89060117293034,
|
|
37.89025469270696,
|
|
37.889170560910564,
|
|
37.88882307333089,
|
|
37.88852883802092,
|
|
37.888278931649964,
|
|
37.88803971375129,
|
|
37.88780081961422,
|
|
37.8870609893898,
|
|
37.886842220008205,
|
|
37.886109794550926,
|
|
37.885908039621455,
|
|
37.88570885495223,
|
|
37.88487031045416,
|
|
37.88406788789539,
|
|
37.883966811117546,
|
|
37.883418911382456,
|
|
37.8831142145398,
|
|
37.88259052508114,
|
|
37.882334795239686,
|
|
37.88196150424404,
|
|
37.881521306751495,
|
|
37.881317604145536,
|
|
37.88118865701823,
|
|
37.88068227418479,
|
|
37.88024849380119,
|
|
37.88005388804642,
|
|
37.879629420538144,
|
|
37.879346633996924,
|
|
37.878985931505156,
|
|
37.87878968263638,
|
|
37.878578673469356,
|
|
37.87848851827652,
|
|
37.878380129445006,
|
|
37.87763073923204,
|
|
37.877244555592,
|
|
37.87699886024418,
|
|
37.876774801760035,
|
|
37.876571762517074,
|
|
37.876530398496726,
|
|
37.87629540773242,
|
|
37.87576088978007,
|
|
37.87551766402736,
|
|
37.875210852056284,
|
|
37.87503832588211,
|
|
37.874454100778294,
|
|
37.87106918007859,
|
|
37.87067835785479,
|
|
37.87052779565353,
|
|
37.8703403452601,
|
|
37.870010465940695,
|
|
37.86964843381242,
|
|
37.86942373233039,
|
|
37.86915944348062,
|
|
37.86861195774419,
|
|
37.86802618429118,
|
|
37.867562871125934,
|
|
37.86736627365669,
|
|
37.866774746650705,
|
|
37.865057482680754,
|
|
37.86444617920945,
|
|
37.8640749473699,
|
|
37.86376962001924,
|
|
37.863645400714795,
|
|
37.86343212662477,
|
|
37.863144341193745,
|
|
37.86289414267505,
|
|
37.859926396762596,
|
|
37.859827826554934,
|
|
37.859369275627394,
|
|
37.85919394087268,
|
|
37.85884123715091,
|
|
37.85855625546418,
|
|
37.85819052615623,
|
|
37.857962630069764,
|
|
37.85766625792491,
|
|
37.8574111076534,
|
|
37.857080060404996,
|
|
37.85649557659883,
|
|
37.85619739931357,
|
|
37.85610041813733,
|
|
37.85561085253241,
|
|
37.85527431190567,
|
|
37.85481154843786,
|
|
37.85410669895801,
|
|
37.85381854506662,
|
|
37.853485973716886,
|
|
37.85307993036549,
|
|
37.85300831708723,
|
|
37.852125519996335,
|
|
37.851444917166994,
|
|
37.84984208878479,
|
|
37.8491934008765,
|
|
37.84832373844719,
|
|
37.84775069719021,
|
|
37.84732938112642,
|
|
37.84680809689964,
|
|
37.84218019106151,
|
|
37.8417084983976,
|
|
37.84128306990777,
|
|
37.84102099995756,
|
|
37.84075720970985,
|
|
37.840556552031146,
|
|
37.84026389450401,
|
|
37.83992560606926,
|
|
37.83982542301805,
|
|
37.839096687661765,
|
|
37.838719441948896,
|
|
37.83860982749382,
|
|
37.83777482548633,
|
|
37.83731165744559,
|
|
37.83688198555248,
|
|
37.83635070522742,
|
|
37.83572292817274,
|
|
37.835519627180794,
|
|
37.835170499046626,
|
|
37.83480440338243,
|
|
37.834120413776205,
|
|
37.83372697427834,
|
|
37.8311479541333,
|
|
37.829796751742464,
|
|
37.827800077166636,
|
|
37.824620520511566,
|
|
37.821989541310664,
|
|
37.81981349567936,
|
|
37.81700520674928,
|
|
37.81510739104259,
|
|
37.81361910714253,
|
|
37.81210204135972,
|
|
37.809540003216846,
|
|
37.80344364553557,
|
|
37.802259838822025,
|
|
37.80100234823665,
|
|
37.80009594932042,
|
|
37.79898161470845,
|
|
37.79822890072631,
|
|
37.79713173792152,
|
|
37.79637260346787,
|
|
37.79570922292017,
|
|
37.79468818578886,
|
|
37.793871855455855,
|
|
37.793511207190875,
|
|
37.79274180200176,
|
|
37.792252136903286,
|
|
37.790728340815754,
|
|
37.789950841328434,
|
|
37.78881024765879,
|
|
37.78795294908308,
|
|
37.78627490626547,
|
|
37.7848509557215,
|
|
37.784178954730265,
|
|
37.78322767522871,
|
|
37.78265010568458,
|
|
37.781760327951986,
|
|
37.78006322447582,
|
|
37.77872301774128,
|
|
37.77828849589179,
|
|
37.77701943587027,
|
|
37.77615086242851,
|
|
37.77510213030382,
|
|
37.77437934269397,
|
|
37.77287496568542,
|
|
37.77162035792997,
|
|
37.76898051708273,
|
|
37.76739691884121,
|
|
37.766062668294886,
|
|
37.765314067267546,
|
|
37.76355284954059,
|
|
37.76142521967124,
|
|
37.75785147477059,
|
|
37.75565673825368,
|
|
37.75414139566875,
|
|
37.751670630396184,
|
|
37.74992385568629,
|
|
37.74562818050195,
|
|
37.74335146312998,
|
|
37.7415894048676,
|
|
37.73766145182128,
|
|
37.731137982596515,
|
|
37.712108266310906,
|
|
37.4365,
|
|
37.44113898075341,
|
|
37.44169563255259,
|
|
37.43504571906285,
|
|
37.4320108727389,
|
|
37.42128398920525,
|
|
37.41884936127305,
|
|
37.431026963128346,
|
|
37.43754472546898,
|
|
37.43894751679272,
|
|
37.44065740325701,
|
|
37.44215204098273,
|
|
37.445001031312074,
|
|
37.446092313484264,
|
|
37.44877840008421,
|
|
37.45204526011915,
|
|
37.456792889550215,
|
|
37.45794761002355,
|
|
37.459154924785814,
|
|
37.460254370784824,
|
|
37.46113241353757,
|
|
37.46219690098108,
|
|
37.46262201489404,
|
|
37.46249154958299,
|
|
37.4618217420955,
|
|
37.46019752349799,
|
|
37.45940294619245,
|
|
37.45850430105479,
|
|
37.45787649000498,
|
|
37.45664371570303,
|
|
37.45563421847854,
|
|
37.455088518470944,
|
|
37.45402068877533,
|
|
37.452921757978146,
|
|
37.45235530741968,
|
|
37.45220753636511,
|
|
37.45241319820003,
|
|
37.45286338753308,
|
|
37.453129741133765,
|
|
37.453285754185664,
|
|
37.45346689955319,
|
|
37.4537990681939,
|
|
37.4539905789148,
|
|
37.45427011120723,
|
|
37.45449544459966,
|
|
37.454809823293246,
|
|
37.45507242151565,
|
|
37.456295369126224,
|
|
37.4588053971991,
|
|
37.45945998890053,
|
|
37.45995651557645,
|
|
37.461218370887984,
|
|
37.46194609408741,
|
|
37.462427837423135,
|
|
37.468045781404214,
|
|
37.46848931934673,
|
|
37.469177791137,
|
|
37.469764438046305,
|
|
37.47056748691803,
|
|
37.4710049711881,
|
|
37.47114228473894,
|
|
37.47098017645812,
|
|
37.47080336356969,
|
|
37.47070001933101,
|
|
37.47072759531173,
|
|
37.47073920427034,
|
|
37.47091843306052,
|
|
37.47115797014687,
|
|
37.47129327798037,
|
|
37.47147255755434,
|
|
37.471952225340445,
|
|
37.4723499365705,
|
|
37.473117636810386,
|
|
37.47376867632075,
|
|
37.474412186010554,
|
|
37.47591171684891,
|
|
37.47711313058143,
|
|
37.47890518671947,
|
|
37.48084164900411,
|
|
37.48236726047022,
|
|
37.48553052266992,
|
|
37.48770046959316,
|
|
37.49013339244745,
|
|
37.49116188502537,
|
|
37.492959584507545,
|
|
37.49402707193773,
|
|
37.49501888250534,
|
|
37.49609619362572,
|
|
37.497327538130214,
|
|
37.49824778395089,
|
|
37.498997965807135,
|
|
37.49982735995246,
|
|
37.50069568840737,
|
|
37.50162525677386,
|
|
37.502076105013145,
|
|
37.5041184860339,
|
|
37.505143170583914,
|
|
37.50558801763736,
|
|
37.506450046361735,
|
|
37.50672457143173,
|
|
37.506926517687106,
|
|
37.507584681582955,
|
|
37.50786425373888,
|
|
37.50791485715317,
|
|
37.507932406866026,
|
|
37.50787156684216,
|
|
37.50802518812596,
|
|
37.50822451095637,
|
|
37.508514795603524,
|
|
37.50858275466593,
|
|
37.50866534941943,
|
|
37.5087752862433,
|
|
37.508841000590294,
|
|
37.50892997808599,
|
|
37.50904130842337,
|
|
37.50951488527031,
|
|
37.50959943916254,
|
|
37.50973476652704,
|
|
37.509857243122184,
|
|
37.50989102529872,
|
|
37.509869405879435,
|
|
37.50975932396699,
|
|
37.509620710335945,
|
|
37.509530298502405,
|
|
37.509477501639424,
|
|
37.509488318505504,
|
|
37.50943868026583,
|
|
37.50942394694664,
|
|
37.50943025735461,
|
|
37.50940456935813,
|
|
37.5093764889398,
|
|
37.50935494419694,
|
|
37.509281891051124,
|
|
37.50923095594164,
|
|
37.50912175608848,
|
|
37.509041239735915,
|
|
37.50874769113375,
|
|
37.50854371912866,
|
|
37.50825878135608,
|
|
37.50806816396133,
|
|
37.50783828257861,
|
|
37.507690519294584,
|
|
37.50739927694584,
|
|
37.50721944316054,
|
|
37.507125441811844,
|
|
37.50702748975231,
|
|
37.50694140606444,
|
|
37.50690189740442,
|
|
37.5068316594877,
|
|
37.50667125304962,
|
|
37.50651066616595,
|
|
37.506222400116094,
|
|
37.50607636869256,
|
|
37.50597156105722,
|
|
37.505819146092236,
|
|
37.50537261629008,
|
|
37.50515557083412,
|
|
37.50483028102769,
|
|
37.504599871911246,
|
|
37.50440852036128,
|
|
37.5041951998373,
|
|
37.50405349830044,
|
|
37.50386509315546,
|
|
37.5037222629209,
|
|
37.503586272153164,
|
|
37.50332392487719,
|
|
37.50319233464355,
|
|
37.50278571117174,
|
|
37.502545610571,
|
|
37.50249759820259,
|
|
37.50229482621781,
|
|
37.50204371795662,
|
|
37.501856609208275,
|
|
37.50166356712923,
|
|
37.50140804501015,
|
|
37.500855508987534,
|
|
37.50080631575025,
|
|
37.50049659223589,
|
|
37.500435713993845,
|
|
37.4994403676416,
|
|
37.49888636747869,
|
|
37.49805544382736,
|
|
37.49729816988727,
|
|
37.496720435193794,
|
|
37.496091367284954,
|
|
37.495566036912564,
|
|
37.49528414810944,
|
|
37.49465598807396,
|
|
37.49404379421436,
|
|
37.49368714851457,
|
|
37.4935589528459,
|
|
37.49283875381172,
|
|
37.49226430226481,
|
|
37.49170507803615,
|
|
37.4909717373584,
|
|
37.49029002776537,
|
|
37.48922733537655,
|
|
37.488564074180914,
|
|
37.48778760535432,
|
|
37.48691541781216,
|
|
37.48596344070545,
|
|
37.48394288749241,
|
|
37.48342039640974,
|
|
37.4831355184734,
|
|
37.4824672749067,
|
|
37.48161869340708,
|
|
37.48103811335028,
|
|
37.48018641103025,
|
|
37.47955631532436,
|
|
37.47904006703498,
|
|
37.478032666183985,
|
|
37.47721320344481,
|
|
37.476660380823134,
|
|
37.47636420459412,
|
|
37.47594773045843,
|
|
37.47418841857003,
|
|
37.473512835579406,
|
|
37.47052602268961,
|
|
37.4699815701512,
|
|
37.469575675586256,
|
|
37.46929915947755,
|
|
37.46857402111476,
|
|
37.46782893291075,
|
|
37.467314911613755,
|
|
37.46684601588811,
|
|
37.46639348666261,
|
|
37.46545229299318,
|
|
37.46509878179625,
|
|
37.46318250559387,
|
|
37.46298271994347,
|
|
37.461134700968124,
|
|
37.46065911933319,
|
|
37.46054186309651,
|
|
37.45994522356566,
|
|
37.459269329871404,
|
|
37.45874023394796,
|
|
37.458560812596325,
|
|
37.45809740136882,
|
|
37.45602519649932,
|
|
37.455495662190735,
|
|
37.45498524318885,
|
|
37.4546633516272,
|
|
37.454405447650885,
|
|
37.45407636978815,
|
|
37.453857843977445,
|
|
37.45340864449348,
|
|
37.45153555022112,
|
|
37.45106753332345,
|
|
37.45057964462629,
|
|
37.45026388922731,
|
|
37.4485020352644,
|
|
37.44745378859404,
|
|
37.447321324891995,
|
|
37.447056169900335,
|
|
37.445912227633094,
|
|
37.44568845590574,
|
|
37.44517041759426,
|
|
37.44483004389994,
|
|
37.444561852702215,
|
|
37.44441448383293,
|
|
37.44062065528566,
|
|
37.4404034978479,
|
|
37.440055009479025,
|
|
37.43993652587689,
|
|
37.43986592360923,
|
|
37.439538421904764,
|
|
37.439416678650886,
|
|
37.43907414626915,
|
|
37.43755430794707,
|
|
37.437353588416045,
|
|
37.43680258835782,
|
|
37.43624653038406,
|
|
37.436068958388915,
|
|
37.43594072114661,
|
|
37.43581098222958,
|
|
37.4355514642443,
|
|
37.43539084810591,
|
|
37.435213317972284,
|
|
37.43490710066027,
|
|
37.43465061285576,
|
|
37.433746309917666,
|
|
37.433424313973774,
|
|
37.43301080767324,
|
|
37.432680969910955,
|
|
37.43248855418331,
|
|
37.432351451647364,
|
|
37.431619716332285,
|
|
37.43117880572696,
|
|
37.430997513102334,
|
|
37.430632972953894,
|
|
37.43037175899568,
|
|
37.42998420834501,
|
|
37.42967800728204,
|
|
37.4293284043819,
|
|
37.4289629133742,
|
|
37.42821620595151,
|
|
37.42693829769757,
|
|
37.42658401171578,
|
|
37.42581463346615,
|
|
37.42512486521824,
|
|
37.42443934889844,
|
|
37.422791663192115,
|
|
37.421942472912214,
|
|
37.40876992808627,
|
|
37.40751118390758,
|
|
37.40655664589144,
|
|
37.4051987629529,
|
|
37.40383487244753,
|
|
37.403406044543715,
|
|
37.40277429993999,
|
|
37.40200801734598,
|
|
37.399714183665516,
|
|
37.39931572988147,
|
|
37.39879966656214,
|
|
37.397577366433396,
|
|
37.396501259976745,
|
|
37.39585855944936,
|
|
37.39526121122667,
|
|
37.39477968026873,
|
|
37.393044450831944,
|
|
37.39182705722692,
|
|
37.389336723540815,
|
|
37.38817905375747,
|
|
37.387879012034794,
|
|
37.38742342526082,
|
|
37.38710584277541,
|
|
37.386335524931255,
|
|
37.38558156436046,
|
|
37.38508304434038,
|
|
37.38429307136349,
|
|
37.383014054599485,
|
|
37.38197371920661,
|
|
37.380861990630294,
|
|
37.38025994357068,
|
|
37.3800880866156,
|
|
37.37978755898232,
|
|
37.37946280417277,
|
|
37.37893943767807,
|
|
37.37861129129044,
|
|
37.3781498450161,
|
|
37.37736964908208,
|
|
37.37686838934753,
|
|
37.37661188799979,
|
|
37.37621184243261,
|
|
37.375665201974016,
|
|
37.37507008529946,
|
|
37.37351213569125,
|
|
37.371923152216,
|
|
37.37124197007934,
|
|
37.37058187239197,
|
|
37.369990496784595,
|
|
37.36955213111704,
|
|
37.368566264684596,
|
|
37.367575685551614,
|
|
37.36689146335872,
|
|
37.36643020331644,
|
|
37.365581060805695,
|
|
37.364667580361825,
|
|
37.36296724819629,
|
|
37.36093355491435,
|
|
37.359949874154495,
|
|
37.35861934738516,
|
|
37.35758826731151,
|
|
37.3571235890852,
|
|
37.3563023953091,
|
|
37.355061829942166,
|
|
37.35420020347068,
|
|
37.35234814757563,
|
|
37.35186720516952,
|
|
37.350693492638364,
|
|
37.349320168252945,
|
|
37.34879466080653,
|
|
37.34699407254148,
|
|
37.34517650845659,
|
|
37.344381569078905,
|
|
37.34239144904132,
|
|
37.34079696079989,
|
|
37.33969898021364,
|
|
37.337763639388136,
|
|
37.336262853403404,
|
|
37.33375398062598,
|
|
37.33191219054564,
|
|
37.329654761610065,
|
|
37.32691592847474,
|
|
37.32322275944124,
|
|
37.32011886495471,
|
|
37.316520063640084,
|
|
37.31308957946307,
|
|
37.30685287563021,
|
|
37.29500619109051,
|
|
37.243979481475805,
|
|
37.21,
|
|
37.22848405160619,
|
|
37.250393690263245,
|
|
37.26260952804846,
|
|
37.25836829973655,
|
|
37.24253065009892,
|
|
37.23875631830381,
|
|
37.23744096644884,
|
|
37.233852170340356,
|
|
37.2321083061587,
|
|
37.22544900197533,
|
|
37.21838130828377,
|
|
37.21184774270412,
|
|
37.20819946559613,
|
|
37.20651912018716,
|
|
37.204643489282105,
|
|
37.195278808499246,
|
|
37.181862688822385,
|
|
37.1764125904855,
|
|
37.16717255411692,
|
|
37.16433441976474,
|
|
37.156264838231756,
|
|
37.14884443518682,
|
|
37.14417060095413,
|
|
37.13338768676031,
|
|
37.130291540931815,
|
|
37.12786108130086,
|
|
37.12453396833344,
|
|
37.121867002337595,
|
|
37.1210539050087,
|
|
37.117375177106574,
|
|
37.11498259377638,
|
|
37.1141031465934,
|
|
37.1132718128872,
|
|
37.11278029250327,
|
|
37.1127258323586,
|
|
37.112813452323515,
|
|
37.11297335951122,
|
|
37.113028236217296,
|
|
37.11306404825273,
|
|
37.113015221638044,
|
|
37.112985833641005,
|
|
37.112826187523936,
|
|
37.11276207258316,
|
|
37.11279070149207,
|
|
37.112728987580276,
|
|
37.1127338559445,
|
|
37.11273645029796,
|
|
37.11243813351654,
|
|
37.11222210909386,
|
|
37.111885492869774,
|
|
37.11156223852538,
|
|
37.11120130910276,
|
|
37.110861421295375,
|
|
37.11043334560375,
|
|
37.110136230420615,
|
|
37.109656989873116,
|
|
37.10941431576213,
|
|
37.10890959596314,
|
|
37.108125902398996,
|
|
37.10724146108507,
|
|
37.106901972742925,
|
|
37.10637525432205,
|
|
37.10568368831611,
|
|
37.105443421204264,
|
|
37.10514947562726,
|
|
37.10479924299462,
|
|
37.10451827861402,
|
|
37.1043391799291,
|
|
37.103901365335894,
|
|
37.10369093635386,
|
|
37.10342869071691,
|
|
37.10276780900082,
|
|
37.102338305998316,
|
|
37.1021448051168,
|
|
37.10180449734219,
|
|
37.101144822098725,
|
|
37.10081659393513,
|
|
37.10061599455756,
|
|
37.10037161476754,
|
|
37.09992216285467,
|
|
37.09951300825653,
|
|
37.09907758641943,
|
|
37.09888491858355,
|
|
37.09874712653302,
|
|
37.09862330928529,
|
|
37.09845740277436,
|
|
37.09832010956578,
|
|
37.098293360251,
|
|
37.0982636867441,
|
|
37.09818605221104,
|
|
37.098126678561655,
|
|
37.09805833539302,
|
|
37.09797948432479,
|
|
37.09793770251291,
|
|
37.097927952108805,
|
|
37.097922530301005,
|
|
37.09787440455599,
|
|
37.097722853624745,
|
|
37.09752189560685,
|
|
37.097376362432364,
|
|
37.09704614995164,
|
|
37.096626610557465,
|
|
37.09619271466409,
|
|
37.095642732149926,
|
|
37.095377103395954,
|
|
37.09512428023298,
|
|
37.094651133939756,
|
|
37.094141182094404,
|
|
37.09355435605893,
|
|
37.0929631029955,
|
|
37.092789660304106,
|
|
37.092738243726124,
|
|
37.09260970276437,
|
|
37.09245840922895,
|
|
37.09236142970828,
|
|
37.09228023753589,
|
|
37.09223832531103,
|
|
37.09211852444399,
|
|
37.092034799191815,
|
|
37.09199841572978,
|
|
37.09198823967259,
|
|
37.091805285328086,
|
|
37.09167633381115,
|
|
37.09099152275853,
|
|
37.0905712947829,
|
|
37.09023827725645,
|
|
37.08996346148143,
|
|
37.08947588521384,
|
|
37.089080723989944,
|
|
37.08877472283198,
|
|
37.08843510416501,
|
|
37.087790301375364,
|
|
37.08756486719692,
|
|
37.087190733782855,
|
|
37.08655752671259,
|
|
37.08552281187317,
|
|
37.08472198339631,
|
|
37.08397868572454,
|
|
37.08316391693618,
|
|
37.08232264718597,
|
|
37.08126470126095,
|
|
37.07984732787433,
|
|
37.07948007328253,
|
|
37.07663848833146,
|
|
37.07619598617971,
|
|
37.075953931924246,
|
|
37.07536973090734,
|
|
37.075131096193005,
|
|
37.07504215595906,
|
|
37.074915218781705,
|
|
37.07485859145224,
|
|
37.07475978284771,
|
|
37.07471002453872,
|
|
37.07463830625736,
|
|
37.07452542290657,
|
|
37.07441963834973,
|
|
37.07427014941744,
|
|
37.074142745233054,
|
|
37.07399378837501,
|
|
37.07372335094383,
|
|
37.07363366435017,
|
|
37.073090725151815,
|
|
37.072916492303335,
|
|
37.07269849246848,
|
|
37.07261871469551,
|
|
37.07235691940155,
|
|
37.07210811469822,
|
|
37.07175782763537,
|
|
37.07149914399129,
|
|
37.07073440543717,
|
|
37.06959159107413,
|
|
37.06897001051128,
|
|
37.068341499289076,
|
|
37.068027246038355,
|
|
37.06765711847991,
|
|
37.06743026694835,
|
|
37.06722924326785,
|
|
37.06639231715428,
|
|
37.06567499921732,
|
|
37.06544410346266,
|
|
37.06531031356262,
|
|
37.064591165439374,
|
|
37.06407305178636,
|
|
37.06370263246477,
|
|
37.063452740446955,
|
|
37.06310601546801,
|
|
37.06250802880336,
|
|
37.062249960488074,
|
|
37.061323903411406,
|
|
37.061098546596554,
|
|
37.0607785390406,
|
|
37.0603538444383,
|
|
37.059973794765476,
|
|
37.058910932203034,
|
|
37.058222633612246,
|
|
37.05776754586058,
|
|
37.0575629637355,
|
|
37.057426044011734,
|
|
37.05733043007819,
|
|
37.057101242495214,
|
|
37.05679303741233,
|
|
37.0565824745,
|
|
37.05646070504527,
|
|
37.05618988918011,
|
|
37.05611846851189,
|
|
37.05594717254952,
|
|
37.055330873965865,
|
|
37.055198311651544,
|
|
37.054661673213545,
|
|
37.0536912865681,
|
|
37.05354788976203,
|
|
37.052471571732646,
|
|
37.05225751393843,
|
|
37.051552291117666,
|
|
37.048310293881855,
|
|
37.047307384001336,
|
|
37.0463047116175,
|
|
37.045800114936405,
|
|
37.04496485183744,
|
|
37.04444000546082,
|
|
37.044144931024256,
|
|
37.043874814998745,
|
|
37.04317838680272,
|
|
37.04267157304904,
|
|
37.042409872298975,
|
|
37.036915777086854,
|
|
37.03662763076663,
|
|
37.036326073965675,
|
|
37.03582372173148,
|
|
37.035445242508274,
|
|
37.03400095667161,
|
|
37.03207222583977,
|
|
37.03172687975125,
|
|
37.0315743141379,
|
|
37.031462133211456,
|
|
37.031101562591765,
|
|
37.0307270776451,
|
|
37.03061626062249,
|
|
37.0304481152613,
|
|
37.03022235616986,
|
|
37.03006151397036,
|
|
37.02973035468171,
|
|
37.029485619221944,
|
|
37.02856766733322,
|
|
37.02846475678635,
|
|
37.028340610154544,
|
|
37.028234865403576,
|
|
37.028190900259986,
|
|
37.02801187849689,
|
|
37.0278819615693,
|
|
37.02782370549497,
|
|
37.02774406889723,
|
|
37.02764335744131,
|
|
37.027599481779205,
|
|
37.027268606208686,
|
|
37.02702117312368,
|
|
37.02699591708382,
|
|
37.02695554295237,
|
|
37.02683965660459,
|
|
37.02643551557842,
|
|
37.025975256101226,
|
|
37.02562030054039,
|
|
37.02500261375095,
|
|
37.02389134526627,
|
|
37.023278765570176,
|
|
37.02284413779164,
|
|
37.02242704379171,
|
|
37.021994956551794,
|
|
37.02165224576721,
|
|
37.0207283059781,
|
|
37.01974860418197,
|
|
37.0194715045947,
|
|
37.019305907844064,
|
|
37.01910249725901,
|
|
37.018849861262005,
|
|
37.01870377317161,
|
|
37.018418583389355,
|
|
37.0183455343554,
|
|
37.01821779518889,
|
|
37.01810876038782,
|
|
37.01774552127664,
|
|
37.01752721897999,
|
|
37.01740908102002,
|
|
37.01668156994014,
|
|
37.01637964569768,
|
|
37.01625016801922,
|
|
37.01616839116937,
|
|
37.01598213898962,
|
|
37.01571799228682,
|
|
37.01555429371943,
|
|
37.01543639479891,
|
|
37.015308288229335,
|
|
37.01503038322685,
|
|
37.014887051339834,
|
|
37.01450432668018,
|
|
37.01429960036372,
|
|
37.01429172268595,
|
|
37.01437228547151,
|
|
37.014456499820774,
|
|
37.01455329886196,
|
|
37.01399800964009,
|
|
37.01332818707935,
|
|
37.01346595951085,
|
|
37.01417113780616,
|
|
37.01418004985437,
|
|
37.01438963438092,
|
|
37.01451674530007,
|
|
37.01516398611066,
|
|
37.01590220148842,
|
|
37.018106422230126,
|
|
37.01886776566161,
|
|
37.02243009283879,
|
|
37.0235698221026,
|
|
37.026217906580236,
|
|
37.027508245025714,
|
|
37.030085960424614,
|
|
37.032054653397,
|
|
37.034053520450364,
|
|
37.03573454227864,
|
|
37.03835698146825,
|
|
37.03936303274565,
|
|
37.04062389460837,
|
|
37.0416570997607,
|
|
37.042746443204344,
|
|
37.04540275073371,
|
|
37.04880089982691,
|
|
37.05059816512917,
|
|
37.055799124229125,
|
|
37.06027560405663,
|
|
37.068806108707626,
|
|
37.071028740364525,
|
|
37.07246091990076,
|
|
37.07508298341134,
|
|
37.07707535687932,
|
|
37.07861103408684,
|
|
37.07938213821366,
|
|
37.080612226312375,
|
|
37.08160118256968,
|
|
37.08406141810133,
|
|
37.08534646020316,
|
|
37.087652653963794,
|
|
37.08898831213687,
|
|
37.08972039409375,
|
|
37.091088180807354,
|
|
37.09329956171239,
|
|
37.09446606800572,
|
|
37.0953821027164,
|
|
37.09670223259356,
|
|
37.09797483658404,
|
|
37.099084616621155,
|
|
37.10100398404674,
|
|
37.101789751054895,
|
|
37.10231911664407,
|
|
37.10336504277813,
|
|
37.10424474699848,
|
|
37.106186486041445,
|
|
37.111066402698114,
|
|
37.11324831754004,
|
|
37.11440557112294,
|
|
37.116585609266565,
|
|
37.11816954759595,
|
|
37.12019595736582,
|
|
37.12150198620287,
|
|
37.12262319109851,
|
|
37.12297887751643,
|
|
37.12339192602301,
|
|
37.1236395252065,
|
|
37.123776644619234,
|
|
37.12386410913532,
|
|
37.12411696378731,
|
|
37.12441651994961,
|
|
37.124484212838915,
|
|
37.1245179383964,
|
|
37.124620752977215,
|
|
37.12473974817686,
|
|
37.12494831739715,
|
|
37.125065625889,
|
|
37.125065271784166,
|
|
37.125165787790905,
|
|
37.12518346274832,
|
|
37.1249287447584,
|
|
37.124004035853396,
|
|
37.12318846995805,
|
|
37.12255166173949,
|
|
37.1213628156698,
|
|
37.12001058707129,
|
|
37.118569013222434,
|
|
37.11644320425637,
|
|
37.112426282459175,
|
|
37.09103820484057,
|
|
37.44,
|
|
37.44524541533033,
|
|
37.4427064732879,
|
|
37.44085829415622,
|
|
37.43712281674639,
|
|
37.427095321787,
|
|
37.40826017425682,
|
|
37.3959449957759,
|
|
37.38631652010011,
|
|
37.379979214585916,
|
|
37.37007343989155,
|
|
37.3616291402403,
|
|
37.35526819652078,
|
|
37.34842651809955,
|
|
37.33899380302389,
|
|
37.330461866257004,
|
|
37.32395349282939,
|
|
37.31648610215217,
|
|
37.31187694026783,
|
|
37.30864405902881,
|
|
37.30215111260336,
|
|
37.2926907967437,
|
|
37.28995241472079,
|
|
37.28793628592035,
|
|
37.28564457025295,
|
|
37.27474945651734,
|
|
37.264953480207225,
|
|
37.26053583646463,
|
|
37.25865389047615,
|
|
37.256278314155246,
|
|
37.25364526499272,
|
|
37.247439217394,
|
|
37.24342656986559,
|
|
37.240773854460556,
|
|
37.23830627719088,
|
|
37.23638426079631,
|
|
37.229553274094755,
|
|
37.2258567586344,
|
|
37.2221912281883,
|
|
37.21070486083974,
|
|
37.203453623373136,
|
|
37.20070835372223,
|
|
37.199067222860776,
|
|
37.19653996529536,
|
|
37.19333766235965,
|
|
37.18827311667916,
|
|
37.18593782792616,
|
|
37.17735650837987,
|
|
37.17203086360561,
|
|
37.164869209630986,
|
|
37.15727480737844,
|
|
37.15303960772025,
|
|
37.148821775193305,
|
|
37.146150146777224,
|
|
37.143259538199516,
|
|
37.139024162567196,
|
|
37.13665612304612,
|
|
37.134315837529606,
|
|
37.131853222819124,
|
|
37.13091772120056,
|
|
37.12957182473041,
|
|
37.12893720732348,
|
|
37.12507048607561,
|
|
37.12169450550494,
|
|
37.12102838450049,
|
|
37.11816289707211,
|
|
37.11632631905531,
|
|
37.115715202560516,
|
|
37.114934607598244,
|
|
37.11367351877186,
|
|
37.11182168897852,
|
|
37.10911070605406,
|
|
37.1050652449338,
|
|
37.10100735014567,
|
|
37.09883948127278,
|
|
37.09677569510347,
|
|
37.094882172523874,
|
|
37.09191381467988,
|
|
37.09058220567945,
|
|
37.08891273681795,
|
|
37.08741475910444,
|
|
37.08591587560541,
|
|
37.08313007728572,
|
|
37.07813086652138,
|
|
37.076431438527976,
|
|
37.07452677409052,
|
|
37.07144939880343,
|
|
37.06987228426509,
|
|
37.06832334917268,
|
|
37.06644964668618,
|
|
37.06461656204354,
|
|
37.062687082944265,
|
|
37.060877777826754,
|
|
37.06003420577067,
|
|
37.059108291059395,
|
|
37.05842727224285,
|
|
37.05673744982604,
|
|
37.05581194404516,
|
|
37.05443282210563,
|
|
37.05349529744535,
|
|
37.05240210242974,
|
|
37.051768242677106,
|
|
37.0499437385184,
|
|
37.04877648634462,
|
|
37.047524134237015,
|
|
37.04653359218728,
|
|
37.04544243352464,
|
|
37.04409895150003,
|
|
37.042893250373794,
|
|
37.04183175063778,
|
|
37.040253376254995,
|
|
37.03965856868791,
|
|
37.03865070644515,
|
|
37.037612548675824,
|
|
37.03675158716912,
|
|
37.035371142434954,
|
|
37.034648188972575,
|
|
37.03287284953439,
|
|
37.03127270869959,
|
|
37.03080217534808,
|
|
37.03014161418616,
|
|
37.027953690593115,
|
|
37.02543822528695,
|
|
37.02423368755107,
|
|
37.021421800975126,
|
|
37.02070037932215,
|
|
37.01849683542801,
|
|
37.017181167498066,
|
|
37.014594171696345,
|
|
37.013821118201555,
|
|
37.012064078653346,
|
|
37.01109301582613,
|
|
37.009889242175426,
|
|
37.00778330664234,
|
|
37.00659837720667,
|
|
37.00542464168756,
|
|
37.003338338888355,
|
|
37.00264506904994,
|
|
37.002282650011054,
|
|
37.00155669126211,
|
|
37.00027754937245,
|
|
36.99948803362751,
|
|
36.99865802886449,
|
|
36.998244944595456,
|
|
36.99743150712633,
|
|
36.996997913797664,
|
|
36.99650504342871,
|
|
36.99576542543951,
|
|
36.99566576881396,
|
|
36.99464942726118,
|
|
36.99288252197039,
|
|
36.99178361023744,
|
|
36.99009949207329,
|
|
36.98848090123384,
|
|
36.98752127640005,
|
|
36.98615173229196,
|
|
36.98541836761123,
|
|
36.98476906979667,
|
|
36.983470455642944,
|
|
36.98219416967132,
|
|
36.98064625481994,
|
|
36.979019076641784,
|
|
36.97767149934703,
|
|
36.97682182695887,
|
|
36.97600465609335,
|
|
36.97416400609155,
|
|
36.97311676309133,
|
|
36.97228728575922,
|
|
36.971500202676935,
|
|
36.97098447062215,
|
|
36.970235654157584,
|
|
36.96934377011564,
|
|
36.96800925805737,
|
|
36.966748180252004,
|
|
36.964107066552806,
|
|
36.962983416208196,
|
|
36.96242605909203,
|
|
36.962084061636325,
|
|
36.96122045363152,
|
|
36.96053387041898,
|
|
36.95857185279709,
|
|
36.95770952579631,
|
|
36.9506787201062,
|
|
36.94933420080912,
|
|
36.94832791137597,
|
|
36.94719571377755,
|
|
36.94517081604278,
|
|
36.94369440344886,
|
|
36.94303304779042,
|
|
36.94153973680681,
|
|
36.94070554444425,
|
|
36.93950203283916,
|
|
36.938800946898766,
|
|
36.93819918507786,
|
|
36.93768333598383,
|
|
36.93726871530447,
|
|
36.93701017466876,
|
|
36.93640556799893,
|
|
36.93576725912791,
|
|
36.93528623044487,
|
|
36.93501372389282,
|
|
36.93454375569051,
|
|
36.93430603812045,
|
|
36.93352004131507,
|
|
36.93326715780295,
|
|
36.932941108742874,
|
|
36.93254822780284,
|
|
36.931899488438646,
|
|
36.931605711528825,
|
|
36.930720668079005,
|
|
36.930551527439256,
|
|
36.929583478972184,
|
|
36.92932558512614,
|
|
36.929110878654356,
|
|
36.92882175409027,
|
|
36.92839651993583,
|
|
36.928104085361674,
|
|
36.92793122822353,
|
|
36.92750094696751,
|
|
36.92739153988055,
|
|
36.92717258887521,
|
|
36.9268901359883,
|
|
36.92669097616133,
|
|
36.926334446302334,
|
|
36.92624624861024,
|
|
36.92611276174592,
|
|
36.92590499194422,
|
|
36.92582406927344,
|
|
36.92574767706345,
|
|
36.925601376544705,
|
|
36.92532271625665,
|
|
36.92517943005137,
|
|
36.92404643013929,
|
|
36.92397194006383,
|
|
36.92372828902254,
|
|
36.92358484143893,
|
|
36.923482183998246,
|
|
36.92340951158912,
|
|
36.923365398794495,
|
|
36.9232906626465,
|
|
36.92318599968002,
|
|
36.92310715252294,
|
|
36.92304850901437,
|
|
36.922932012396686,
|
|
36.92282122623434,
|
|
36.92275326523039,
|
|
36.922687831036555,
|
|
36.922378925886726,
|
|
36.92199585315089,
|
|
36.92177976071271,
|
|
36.92168848697753,
|
|
36.92135555447642,
|
|
36.92119587255161,
|
|
36.921017284161096,
|
|
36.920926367958415,
|
|
36.92075541248049,
|
|
36.9206142093024,
|
|
36.92042953790148,
|
|
36.92025804912261,
|
|
36.920176637590465,
|
|
36.9200598597793,
|
|
36.91997199637512,
|
|
36.91976114764357,
|
|
36.91965475910225,
|
|
36.919383195155966,
|
|
36.919238738835645,
|
|
36.91920655763055,
|
|
36.91914550648598,
|
|
36.91889696538666,
|
|
36.91875517480893,
|
|
36.91855481058195,
|
|
36.918278113309434,
|
|
36.918140578254885,
|
|
36.91795950725302,
|
|
36.91781132291565,
|
|
36.91766046921611,
|
|
36.91692922402202,
|
|
36.91661400048755,
|
|
36.91634127758437,
|
|
36.916147123488344,
|
|
36.91440897013264,
|
|
36.9123852497024,
|
|
36.912156772069764,
|
|
36.91107675392201,
|
|
36.91101347290637,
|
|
36.910771481985265,
|
|
36.9104187926563,
|
|
36.90970655766458,
|
|
36.90945549484956,
|
|
36.90914206916248,
|
|
36.90899877378959,
|
|
36.90872565100737,
|
|
36.908628031768366,
|
|
36.908248916849544,
|
|
36.90818504720938,
|
|
36.90804028839024,
|
|
36.9079642732445,
|
|
36.90774636268072,
|
|
36.907643067923935,
|
|
36.907314567140205,
|
|
36.90720593775134,
|
|
36.907152364778696,
|
|
36.907025543088864,
|
|
36.90697182137631,
|
|
36.906911036961915,
|
|
36.906874952391995,
|
|
36.906876707867944,
|
|
36.90689606983042,
|
|
36.907041965959955,
|
|
36.907115136265766,
|
|
36.90763358225244,
|
|
36.908119302645964,
|
|
36.90826900545067,
|
|
36.90825751128013,
|
|
36.90824681912382,
|
|
36.9081684990322,
|
|
36.90814943979693,
|
|
36.90819433483386,
|
|
36.90827122582331,
|
|
36.90844775692003,
|
|
36.90862594438193,
|
|
36.90864623228816,
|
|
36.908765134367385,
|
|
36.908896944991895,
|
|
36.909076612424876,
|
|
36.90912915638776,
|
|
36.90923904009036,
|
|
36.90985393313578,
|
|
36.910097037839456,
|
|
36.91020405836969,
|
|
36.91009358589443,
|
|
36.91005205592039,
|
|
36.90974271225038,
|
|
36.90952621011642,
|
|
36.909208416395224,
|
|
36.909102064387724,
|
|
36.90902616420444,
|
|
36.9090238513739,
|
|
36.90908594711355,
|
|
36.90926694564968,
|
|
36.90946935797354,
|
|
36.90956435384466,
|
|
36.9095497395676,
|
|
36.909545468759255,
|
|
36.90950765528944,
|
|
36.90946660466399,
|
|
36.909437737519696,
|
|
36.909360482220656,
|
|
36.908867733356786,
|
|
36.90867001629765,
|
|
36.90866341465474,
|
|
36.90868294961563,
|
|
36.90869460722741,
|
|
36.90870744547119,
|
|
36.90871548652253,
|
|
36.90867199947392,
|
|
36.908637925862145,
|
|
36.908625749331435,
|
|
36.9086106556846,
|
|
36.90852605206063,
|
|
36.908277535569866,
|
|
36.908192021554,
|
|
36.9078921073037,
|
|
36.907732452315024,
|
|
36.907439719812345,
|
|
36.90682913626203,
|
|
36.90649802579794,
|
|
36.9062155428063,
|
|
36.905446251366925,
|
|
36.905077772084496,
|
|
36.90477867477534,
|
|
36.90446650198592,
|
|
36.90412684433815,
|
|
36.90377183210063,
|
|
36.90346293783264,
|
|
36.902966744614105,
|
|
36.90273969363962,
|
|
36.902470863641184,
|
|
36.90227373278605,
|
|
36.90183992427924,
|
|
36.90095971100919,
|
|
36.90046040085048,
|
|
36.90011762335314,
|
|
36.899622849426954,
|
|
36.89930909760908,
|
|
36.89872859632906,
|
|
36.898467877709884,
|
|
36.89805797986459,
|
|
36.89745281075379,
|
|
36.8966237066865,
|
|
36.894054355169885,
|
|
37.36833333333333,
|
|
37.401455579249344,
|
|
37.40941450191925,
|
|
37.40163929683562,
|
|
37.39509890666958,
|
|
37.38321191965059,
|
|
37.377408451328385,
|
|
37.36714802417537,
|
|
37.35923845646418,
|
|
37.35179302744963,
|
|
37.34984957263593,
|
|
37.348891029806836,
|
|
37.34782578821134,
|
|
37.345478568304344,
|
|
37.34398099191952,
|
|
37.340682896826685,
|
|
37.340799733488495,
|
|
37.3420857941693,
|
|
37.34478117461128,
|
|
37.34746486842492,
|
|
37.34813998821137,
|
|
37.34876013620999,
|
|
37.34978093263039,
|
|
37.35088525244918,
|
|
37.35246287833922,
|
|
37.354759081301246,
|
|
37.35601239443612,
|
|
37.35821291636069,
|
|
37.362135546986494,
|
|
37.36368318489219,
|
|
37.3646071301492,
|
|
37.36353333550231,
|
|
37.36207987359497,
|
|
37.36108454560368,
|
|
37.36025653766784,
|
|
37.35850128417575,
|
|
37.35758338852729,
|
|
37.35610838850664,
|
|
37.35388194545561,
|
|
37.352174833286746,
|
|
37.35116589518896,
|
|
37.350126768873515,
|
|
37.34867900525835,
|
|
37.34660770954579,
|
|
37.34522521383542,
|
|
37.344383993251256,
|
|
37.34371983205957,
|
|
37.34175540217893,
|
|
37.34086370872211,
|
|
37.33994798937292,
|
|
37.33840489441452,
|
|
37.33724360928767,
|
|
37.33547699701035,
|
|
37.33326727633343,
|
|
37.329989450347696,
|
|
37.32651203192015,
|
|
37.32542509701406,
|
|
37.32477686175691,
|
|
37.32361324421786,
|
|
37.32267431490549,
|
|
37.321682004977866,
|
|
37.32061052521271,
|
|
37.319944221322004,
|
|
37.31937519765583,
|
|
37.31842074845253,
|
|
37.31669721215331,
|
|
37.316100522582616,
|
|
37.31533959576383,
|
|
37.31454898720977,
|
|
37.31407103497301,
|
|
37.313696613261705,
|
|
37.31328704360641,
|
|
37.312630955431295,
|
|
37.31205076638133,
|
|
37.311769056750265,
|
|
37.311350946250414,
|
|
37.31105457129506,
|
|
37.31087213612938,
|
|
37.31060195425459,
|
|
37.31018790166975,
|
|
37.30970611257341,
|
|
37.309276939107306,
|
|
37.308803738212795,
|
|
37.308224770072265,
|
|
37.307600283372174,
|
|
37.30716099940674,
|
|
37.306661652987344,
|
|
37.30623372368123,
|
|
37.30597889483785,
|
|
37.30549311217815,
|
|
37.30525294594433,
|
|
37.30483078372565,
|
|
37.30425289604477,
|
|
37.303808035900154,
|
|
37.303614692097455,
|
|
37.30315300944851,
|
|
37.30283116238628,
|
|
37.301748913491856,
|
|
37.30147336319446,
|
|
37.30101693429526,
|
|
37.300610182582375,
|
|
37.300405834844035,
|
|
37.300259083724974,
|
|
37.30010587012009,
|
|
37.29995712655858,
|
|
37.29972154183991,
|
|
37.299616466577085,
|
|
37.29941509428416,
|
|
37.29905733637493,
|
|
37.29879850460759,
|
|
37.29871256454084,
|
|
37.29804637525233,
|
|
37.296845729094926,
|
|
37.29649559504817,
|
|
37.29631381131454,
|
|
37.2958509725128,
|
|
37.29559269495448,
|
|
37.29545019121063,
|
|
37.29500984438853,
|
|
37.29472650675234,
|
|
37.29450226850593,
|
|
37.29428165026931,
|
|
37.29421088511379,
|
|
37.29401237262571,
|
|
37.293708813624825,
|
|
37.29351418681211,
|
|
37.29321442353083,
|
|
37.29305960693644,
|
|
37.292905623835075,
|
|
37.29243930491649,
|
|
37.292251615992356,
|
|
37.29200696426911,
|
|
37.29176084424473,
|
|
37.29170502438815,
|
|
37.29157517645269,
|
|
37.291446007813555,
|
|
37.29132469004894,
|
|
37.29116463372916,
|
|
37.29086672326099,
|
|
37.290725898218184,
|
|
37.290658446067376,
|
|
37.29035732848531,
|
|
37.29025110038961,
|
|
37.290039587114705,
|
|
37.28967405331085,
|
|
37.289370864136544,
|
|
37.28929630736616,
|
|
37.28919513465938,
|
|
37.28913184135752,
|
|
37.28900495732753,
|
|
37.288896750407744,
|
|
37.288836310486076,
|
|
37.2879935671516,
|
|
37.287805049421394,
|
|
37.287684710669346,
|
|
37.28762223843375,
|
|
37.287541412239136,
|
|
37.28752140168993,
|
|
37.28742976462962,
|
|
37.287300521282994,
|
|
37.287216964105134,
|
|
37.287108886733634,
|
|
37.28702754983835,
|
|
37.286881927394255,
|
|
37.28676121720533,
|
|
37.286697852279055,
|
|
37.28667066387252,
|
|
37.286591636925564,
|
|
37.286139373998175,
|
|
37.28607039507551,
|
|
37.28597922859687,
|
|
37.28576668222722,
|
|
37.28571301693039,
|
|
37.285570773589406,
|
|
37.28546272934394,
|
|
37.28539276740221,
|
|
37.28530260630009,
|
|
37.28526144965798,
|
|
37.28517740136916,
|
|
37.28512393480699,
|
|
37.28443467512071,
|
|
37.284351807924786,
|
|
37.28428965258292,
|
|
37.28420092361506,
|
|
37.28418099532553,
|
|
37.28414948205585,
|
|
37.28413259138223,
|
|
37.284036764732356,
|
|
37.28395578925672,
|
|
37.28387958735052,
|
|
37.28384775777165,
|
|
37.28383734687349,
|
|
37.283768982185926,
|
|
37.28369996005805,
|
|
37.28368031550325,
|
|
37.283661939905535,
|
|
37.28358169506482,
|
|
37.28342283700488,
|
|
37.28338633658078,
|
|
37.283324034302545,
|
|
37.28321836938915,
|
|
37.28313827161252,
|
|
37.28300820893952,
|
|
37.28290000677958,
|
|
37.282798697917485,
|
|
37.282543957479476,
|
|
37.28248903512386,
|
|
37.282459764277306,
|
|
37.28227020787899,
|
|
37.28183833257372,
|
|
37.28171513891091,
|
|
37.28142318734138,
|
|
37.28120413107505,
|
|
37.28104403202235,
|
|
37.28096903073967,
|
|
37.28073912156975,
|
|
37.280684852966665,
|
|
37.28048942232096,
|
|
37.28020757404195,
|
|
37.28017606573952,
|
|
37.27986911192605,
|
|
37.279544201509786,
|
|
37.27913056342279,
|
|
37.278948240308495,
|
|
37.27888414778837,
|
|
37.278800225221,
|
|
37.27875491248165,
|
|
37.27862430998083,
|
|
37.278595111502696,
|
|
37.278233581404926,
|
|
37.277943360382125,
|
|
37.27789466485855,
|
|
37.27774608327498,
|
|
37.27731513407158,
|
|
37.277120249342815,
|
|
37.27693867317141,
|
|
37.276905328197536,
|
|
37.276665359455905,
|
|
37.27650492413904,
|
|
37.27640371229803,
|
|
37.27633570496155,
|
|
37.27612956475675,
|
|
37.275824188375225,
|
|
37.27570124906647,
|
|
37.27563440853811,
|
|
37.275508383601384,
|
|
37.275436985100235,
|
|
37.27543004739078,
|
|
37.27529866098758,
|
|
37.27526576784608,
|
|
37.275225376464256,
|
|
37.275181934395896,
|
|
37.27513268509242,
|
|
37.27509991052434,
|
|
37.27508947114953,
|
|
37.27504137775671,
|
|
37.2749562781567,
|
|
37.274934155242036,
|
|
37.27491935466056,
|
|
37.27489343199364,
|
|
37.27485334066989,
|
|
37.27481033028003,
|
|
37.274773482459196,
|
|
37.27476260282795,
|
|
37.27475616165481,
|
|
37.274728260426265,
|
|
37.27472413051591,
|
|
37.27465997921759,
|
|
37.274625536748154,
|
|
37.274551839942006,
|
|
37.27452904876752,
|
|
37.27452541088357,
|
|
37.2745191194711,
|
|
37.27450635868188,
|
|
37.27448866409463,
|
|
37.274481307001835,
|
|
37.27447997995015,
|
|
37.27447592863955,
|
|
37.27445292175421,
|
|
37.2744414556327,
|
|
37.27440742089023,
|
|
37.27426043995005,
|
|
37.27424831081909,
|
|
37.2741998128735,
|
|
37.27411675227071,
|
|
37.2740832677776,
|
|
37.27404305245767,
|
|
37.27401753752804,
|
|
37.27394435941852,
|
|
37.273932734790776,
|
|
37.27385258136067,
|
|
37.27382095985014,
|
|
37.27376467953578,
|
|
37.27365800322213,
|
|
37.27364845052776,
|
|
37.27356823922755,
|
|
37.27351371449539,
|
|
37.273476489146645,
|
|
37.27337495799015,
|
|
37.27329664877648,
|
|
37.27323126334256,
|
|
37.27310937362861,
|
|
37.27308261121187,
|
|
37.272985539194586,
|
|
37.27296447950541,
|
|
37.27288715762558,
|
|
37.27282769805037,
|
|
37.27281162759457,
|
|
37.27272476582631,
|
|
37.27268566672649,
|
|
37.27249050142787,
|
|
37.27228569508088,
|
|
37.272185572309624,
|
|
37.27217038380867,
|
|
37.27207785032321,
|
|
37.27189913526887,
|
|
37.27175149252148,
|
|
37.271682182578914,
|
|
37.271561294841,
|
|
37.271500157541084,
|
|
37.27143568823029,
|
|
37.271390973143106,
|
|
37.271240622139935,
|
|
37.27119977954558,
|
|
37.27097282441976,
|
|
37.27065776353336,
|
|
37.27061381381781,
|
|
37.27050674773738,
|
|
37.27040584028256,
|
|
37.270344540858524,
|
|
37.27015573934402,
|
|
37.269971929164335,
|
|
37.26929103263586,
|
|
37.26901633950389,
|
|
37.26825097158988,
|
|
37.26799332207439,
|
|
37.26779796503498,
|
|
37.26719974702542,
|
|
37.266543353052505,
|
|
37.26650354633911,
|
|
37.26638637198617,
|
|
37.26600079875588,
|
|
37.265843460158706,
|
|
37.26574613220975,
|
|
37.26506911311282,
|
|
37.26484312156819,
|
|
37.264609852819795,
|
|
37.264511952000575,
|
|
37.26399027040747,
|
|
37.26379019158998,
|
|
37.26358644696957,
|
|
37.26349143079792,
|
|
37.26339654795114,
|
|
37.26323899949492,
|
|
37.26308010358184,
|
|
37.26300632059451,
|
|
37.26287382833364,
|
|
37.262754611684876,
|
|
37.26266340090406,
|
|
37.262642341741405,
|
|
37.26219978820605,
|
|
37.26207677103799,
|
|
37.26194566557831,
|
|
37.26173238092157,
|
|
37.26165159130629,
|
|
37.261490402169336,
|
|
37.26119769585726,
|
|
37.2609905515445,
|
|
37.26086445145329,
|
|
37.260734601806924,
|
|
37.260535258848954,
|
|
37.260480742018295,
|
|
37.260350550804795,
|
|
37.26032948888921,
|
|
37.26001809484826,
|
|
37.259908236536134,
|
|
37.25975416925919,
|
|
37.25961549856962,
|
|
37.25937752264163,
|
|
37.25920998792592,
|
|
37.259006058029605,
|
|
37.25884398359756,
|
|
37.2586300641495,
|
|
37.25852901475837,
|
|
37.25838792062493,
|
|
37.25826104715603,
|
|
37.25815367698196,
|
|
37.257986161071514,
|
|
37.257881998666114,
|
|
37.257591320133976,
|
|
37.25608056279797,
|
|
37.703333333333326,
|
|
37.70403048664876,
|
|
37.699410740781886,
|
|
37.69076370409644,
|
|
37.683171767181925,
|
|
37.660742528474344,
|
|
37.64947576833365,
|
|
37.62672182167866,
|
|
37.62137430072791,
|
|
37.60736543504278,
|
|
37.59677297307023,
|
|
37.59364090282937,
|
|
37.59078594075796,
|
|
37.58785459950468,
|
|
37.586463370685024,
|
|
37.58511844848353,
|
|
37.58316681974799,
|
|
37.580972559542914,
|
|
37.57935446111229,
|
|
37.57339545015221,
|
|
37.57052412884995,
|
|
37.56850457356079,
|
|
37.56721277305725,
|
|
37.56636026619503,
|
|
37.565554180259255,
|
|
37.564276384752304,
|
|
37.56263102571678,
|
|
37.56207995188716,
|
|
37.55801431303296,
|
|
37.55647902847045,
|
|
37.5551486764287,
|
|
37.55426589333685,
|
|
37.55312567512261,
|
|
37.55211090971414,
|
|
37.55230127808959,
|
|
37.55275732178679,
|
|
37.55336091772805,
|
|
37.55442137369854,
|
|
37.555440916707695,
|
|
37.55594407235919,
|
|
37.55643917756748,
|
|
37.55767961448037,
|
|
37.558855500652435,
|
|
37.55974824249543,
|
|
37.56071702353226,
|
|
37.56211009923218,
|
|
37.56578695687308,
|
|
37.568550489549374,
|
|
37.569999921429,
|
|
37.57398031238743,
|
|
37.574375521396085,
|
|
37.57507775614677,
|
|
37.57542994193009,
|
|
37.57598479532033,
|
|
37.577843471846776,
|
|
37.578473480222584,
|
|
37.57921168839455,
|
|
37.58069281296902,
|
|
37.58118961791557,
|
|
37.581590288189155,
|
|
37.582150476281754,
|
|
37.582650861735935,
|
|
37.58286749851552,
|
|
37.58291518175285,
|
|
37.58296520483652,
|
|
37.58303068182818,
|
|
37.58300918636851,
|
|
37.583051861152924,
|
|
37.583997464877456,
|
|
37.58409296194565,
|
|
37.58430310181156,
|
|
37.584390391212274,
|
|
37.58454161930829,
|
|
37.58455222543811,
|
|
37.58459157755884,
|
|
37.58465031994667,
|
|
37.58467822656873,
|
|
37.58472243472137,
|
|
37.58480573437822,
|
|
37.58492099792484,
|
|
37.584996925565584,
|
|
37.58497850751414,
|
|
37.58488314342957,
|
|
37.58476315662409,
|
|
37.584655915517786,
|
|
37.58462049107076,
|
|
37.58436039857034,
|
|
37.58418081453651,
|
|
37.58374014463009,
|
|
37.58367928328377,
|
|
37.58346605886179,
|
|
37.58312548721585,
|
|
37.58288189096083,
|
|
37.58250348370701,
|
|
37.5822868987019,
|
|
37.58173620191699,
|
|
37.58149927137055,
|
|
37.58129804389797,
|
|
37.58107249313271,
|
|
37.58092853487171,
|
|
37.580728663963846,
|
|
37.58048678974875,
|
|
37.580406056376944,
|
|
37.580156366869,
|
|
37.58002202624257,
|
|
37.579922240181475,
|
|
37.57932374460283,
|
|
37.57905413348718,
|
|
37.57860264120574,
|
|
37.578384391073136,
|
|
37.578073743506515,
|
|
37.5779305025543,
|
|
37.57744540474545,
|
|
37.57718972100246,
|
|
37.57644419405852,
|
|
37.576029753910376,
|
|
37.57558706632111,
|
|
37.57487940087475,
|
|
37.574094312942194,
|
|
37.57361891163108,
|
|
37.573407076983216,
|
|
37.57286835733745,
|
|
37.57252884954778,
|
|
37.57224644483817,
|
|
37.57198187681337,
|
|
37.57140012225654,
|
|
37.57117532233174,
|
|
37.5707944933061
|
|
]
|
|
}
|
|
],
|
|
"layout": {
|
|
"height": 350,
|
|
"legend": {
|
|
"orientation": "h",
|
|
"traceorder": "normal",
|
|
"x": 1,
|
|
"xanchor": "right",
|
|
"y": 1.02,
|
|
"yanchor": "bottom"
|
|
},
|
|
"margin": {
|
|
"b": 30,
|
|
"l": 30,
|
|
"r": 30,
|
|
"t": 30
|
|
},
|
|
"showlegend": true,
|
|
"template": {
|
|
"data": {
|
|
"bar": [
|
|
{
|
|
"error_x": {
|
|
"color": "#d6dfef"
|
|
},
|
|
"error_y": {
|
|
"color": "#d6dfef"
|
|
},
|
|
"marker": {
|
|
"line": {
|
|
"color": "#212226",
|
|
"width": 0.5
|
|
}
|
|
},
|
|
"type": "bar"
|
|
}
|
|
],
|
|
"barpolar": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "#212226",
|
|
"width": 0.5
|
|
}
|
|
},
|
|
"type": "barpolar"
|
|
}
|
|
],
|
|
"carpet": [
|
|
{
|
|
"aaxis": {
|
|
"endlinecolor": "#A2B1C6",
|
|
"gridcolor": "#313439",
|
|
"linecolor": "#313439",
|
|
"minorgridcolor": "#313439",
|
|
"startlinecolor": "#A2B1C6"
|
|
},
|
|
"baxis": {
|
|
"endlinecolor": "#A2B1C6",
|
|
"gridcolor": "#313439",
|
|
"linecolor": "#313439",
|
|
"minorgridcolor": "#313439",
|
|
"startlinecolor": "#A2B1C6"
|
|
},
|
|
"type": "carpet"
|
|
}
|
|
],
|
|
"choropleth": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "choropleth"
|
|
}
|
|
],
|
|
"contour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
0,
|
|
"#0d0887"
|
|
],
|
|
[
|
|
0.1111111111111111,
|
|
"#46039f"
|
|
],
|
|
[
|
|
0.2222222222222222,
|
|
"#7201a8"
|
|
],
|
|
[
|
|
0.3333333333333333,
|
|
"#9c179e"
|
|
],
|
|
[
|
|
0.4444444444444444,
|
|
"#bd3786"
|
|
],
|
|
[
|
|
0.5555555555555556,
|
|
"#d8576b"
|
|
],
|
|
[
|
|
0.6666666666666666,
|
|
"#ed7953"
|
|
],
|
|
[
|
|
0.7777777777777778,
|
|
"#fb9f3a"
|
|
],
|
|
[
|
|
0.8888888888888888,
|
|
"#fdca26"
|
|
],
|
|
[
|
|
1,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "contour"
|
|
}
|
|
],
|
|
"contourcarpet": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "contourcarpet"
|
|
}
|
|
],
|
|
"heatmap": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
0,
|
|
"#0d0887"
|
|
],
|
|
[
|
|
0.1111111111111111,
|
|
"#46039f"
|
|
],
|
|
[
|
|
0.2222222222222222,
|
|
"#7201a8"
|
|
],
|
|
[
|
|
0.3333333333333333,
|
|
"#9c179e"
|
|
],
|
|
[
|
|
0.4444444444444444,
|
|
"#bd3786"
|
|
],
|
|
[
|
|
0.5555555555555556,
|
|
"#d8576b"
|
|
],
|
|
[
|
|
0.6666666666666666,
|
|
"#ed7953"
|
|
],
|
|
[
|
|
0.7777777777777778,
|
|
"#fb9f3a"
|
|
],
|
|
[
|
|
0.8888888888888888,
|
|
"#fdca26"
|
|
],
|
|
[
|
|
1,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmap"
|
|
}
|
|
],
|
|
"heatmapgl": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
0,
|
|
"#0d0887"
|
|
],
|
|
[
|
|
0.1111111111111111,
|
|
"#46039f"
|
|
],
|
|
[
|
|
0.2222222222222222,
|
|
"#7201a8"
|
|
],
|
|
[
|
|
0.3333333333333333,
|
|
"#9c179e"
|
|
],
|
|
[
|
|
0.4444444444444444,
|
|
"#bd3786"
|
|
],
|
|
[
|
|
0.5555555555555556,
|
|
"#d8576b"
|
|
],
|
|
[
|
|
0.6666666666666666,
|
|
"#ed7953"
|
|
],
|
|
[
|
|
0.7777777777777778,
|
|
"#fb9f3a"
|
|
],
|
|
[
|
|
0.8888888888888888,
|
|
"#fdca26"
|
|
],
|
|
[
|
|
1,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmapgl"
|
|
}
|
|
],
|
|
"histogram": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "histogram"
|
|
}
|
|
],
|
|
"histogram2d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
0,
|
|
"#0d0887"
|
|
],
|
|
[
|
|
0.1111111111111111,
|
|
"#46039f"
|
|
],
|
|
[
|
|
0.2222222222222222,
|
|
"#7201a8"
|
|
],
|
|
[
|
|
0.3333333333333333,
|
|
"#9c179e"
|
|
],
|
|
[
|
|
0.4444444444444444,
|
|
"#bd3786"
|
|
],
|
|
[
|
|
0.5555555555555556,
|
|
"#d8576b"
|
|
],
|
|
[
|
|
0.6666666666666666,
|
|
"#ed7953"
|
|
],
|
|
[
|
|
0.7777777777777778,
|
|
"#fb9f3a"
|
|
],
|
|
[
|
|
0.8888888888888888,
|
|
"#fdca26"
|
|
],
|
|
[
|
|
1,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2d"
|
|
}
|
|
],
|
|
"histogram2dcontour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
0,
|
|
"#0d0887"
|
|
],
|
|
[
|
|
0.1111111111111111,
|
|
"#46039f"
|
|
],
|
|
[
|
|
0.2222222222222222,
|
|
"#7201a8"
|
|
],
|
|
[
|
|
0.3333333333333333,
|
|
"#9c179e"
|
|
],
|
|
[
|
|
0.4444444444444444,
|
|
"#bd3786"
|
|
],
|
|
[
|
|
0.5555555555555556,
|
|
"#d8576b"
|
|
],
|
|
[
|
|
0.6666666666666666,
|
|
"#ed7953"
|
|
],
|
|
[
|
|
0.7777777777777778,
|
|
"#fb9f3a"
|
|
],
|
|
[
|
|
0.8888888888888888,
|
|
"#fdca26"
|
|
],
|
|
[
|
|
1,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2dcontour"
|
|
}
|
|
],
|
|
"mesh3d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "mesh3d"
|
|
}
|
|
],
|
|
"parcoords": [
|
|
{
|
|
"line": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "parcoords"
|
|
}
|
|
],
|
|
"pie": [
|
|
{
|
|
"automargin": true,
|
|
"type": "pie"
|
|
}
|
|
],
|
|
"scatter": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "#313439"
|
|
}
|
|
},
|
|
"type": "scatter"
|
|
}
|
|
],
|
|
"scatter3d": [
|
|
{
|
|
"line": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatter3d"
|
|
}
|
|
],
|
|
"scattercarpet": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scattercarpet"
|
|
}
|
|
],
|
|
"scattergeo": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scattergeo"
|
|
}
|
|
],
|
|
"scattergl": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "#313439"
|
|
}
|
|
},
|
|
"type": "scattergl"
|
|
}
|
|
],
|
|
"scattermapbox": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scattermapbox"
|
|
}
|
|
],
|
|
"scatterpolar": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolar"
|
|
}
|
|
],
|
|
"scatterpolargl": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolargl"
|
|
}
|
|
],
|
|
"scatterternary": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterternary"
|
|
}
|
|
],
|
|
"surface": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
0,
|
|
"#0d0887"
|
|
],
|
|
[
|
|
0.1111111111111111,
|
|
"#46039f"
|
|
],
|
|
[
|
|
0.2222222222222222,
|
|
"#7201a8"
|
|
],
|
|
[
|
|
0.3333333333333333,
|
|
"#9c179e"
|
|
],
|
|
[
|
|
0.4444444444444444,
|
|
"#bd3786"
|
|
],
|
|
[
|
|
0.5555555555555556,
|
|
"#d8576b"
|
|
],
|
|
[
|
|
0.6666666666666666,
|
|
"#ed7953"
|
|
],
|
|
[
|
|
0.7777777777777778,
|
|
"#fb9f3a"
|
|
],
|
|
[
|
|
0.8888888888888888,
|
|
"#fdca26"
|
|
],
|
|
[
|
|
1,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "surface"
|
|
}
|
|
],
|
|
"table": [
|
|
{
|
|
"cells": {
|
|
"fill": {
|
|
"color": "#313439"
|
|
},
|
|
"line": {
|
|
"color": "#212226"
|
|
}
|
|
},
|
|
"header": {
|
|
"fill": {
|
|
"color": "#2a3f5f"
|
|
},
|
|
"line": {
|
|
"color": "#212226"
|
|
}
|
|
},
|
|
"type": "table"
|
|
}
|
|
]
|
|
},
|
|
"layout": {
|
|
"annotationdefaults": {
|
|
"arrowcolor": "#d6dfef",
|
|
"arrowhead": 0,
|
|
"arrowwidth": 1
|
|
},
|
|
"coloraxis": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"colorscale": {
|
|
"diverging": [
|
|
[
|
|
0,
|
|
"#8e0152"
|
|
],
|
|
[
|
|
0.1,
|
|
"#c51b7d"
|
|
],
|
|
[
|
|
0.2,
|
|
"#de77ae"
|
|
],
|
|
[
|
|
0.3,
|
|
"#f1b6da"
|
|
],
|
|
[
|
|
0.4,
|
|
"#fde0ef"
|
|
],
|
|
[
|
|
0.5,
|
|
"#f7f7f7"
|
|
],
|
|
[
|
|
0.6,
|
|
"#e6f5d0"
|
|
],
|
|
[
|
|
0.7,
|
|
"#b8e186"
|
|
],
|
|
[
|
|
0.8,
|
|
"#7fbc41"
|
|
],
|
|
[
|
|
0.9,
|
|
"#4d9221"
|
|
],
|
|
[
|
|
1,
|
|
"#276419"
|
|
]
|
|
],
|
|
"sequential": [
|
|
[
|
|
0,
|
|
"#0d0887"
|
|
],
|
|
[
|
|
0.1111111111111111,
|
|
"#46039f"
|
|
],
|
|
[
|
|
0.2222222222222222,
|
|
"#7201a8"
|
|
],
|
|
[
|
|
0.3333333333333333,
|
|
"#9c179e"
|
|
],
|
|
[
|
|
0.4444444444444444,
|
|
"#bd3786"
|
|
],
|
|
[
|
|
0.5555555555555556,
|
|
"#d8576b"
|
|
],
|
|
[
|
|
0.6666666666666666,
|
|
"#ed7953"
|
|
],
|
|
[
|
|
0.7777777777777778,
|
|
"#fb9f3a"
|
|
],
|
|
[
|
|
0.8888888888888888,
|
|
"#fdca26"
|
|
],
|
|
[
|
|
1,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"sequentialminus": [
|
|
[
|
|
0,
|
|
"#0d0887"
|
|
],
|
|
[
|
|
0.1111111111111111,
|
|
"#46039f"
|
|
],
|
|
[
|
|
0.2222222222222222,
|
|
"#7201a8"
|
|
],
|
|
[
|
|
0.3333333333333333,
|
|
"#9c179e"
|
|
],
|
|
[
|
|
0.4444444444444444,
|
|
"#bd3786"
|
|
],
|
|
[
|
|
0.5555555555555556,
|
|
"#d8576b"
|
|
],
|
|
[
|
|
0.6666666666666666,
|
|
"#ed7953"
|
|
],
|
|
[
|
|
0.7777777777777778,
|
|
"#fb9f3a"
|
|
],
|
|
[
|
|
0.8888888888888888,
|
|
"#fdca26"
|
|
],
|
|
[
|
|
1,
|
|
"#f0f921"
|
|
]
|
|
]
|
|
},
|
|
"colorway": [
|
|
"#1f77b4",
|
|
"#ff7f0e",
|
|
"#2ca02c",
|
|
"#dc3912",
|
|
"#9467bd",
|
|
"#8c564b",
|
|
"#e377c2",
|
|
"#7f7f7f",
|
|
"#bcbd22",
|
|
"#17becf"
|
|
],
|
|
"font": {
|
|
"color": "#d6dfef"
|
|
},
|
|
"geo": {
|
|
"bgcolor": "#212226",
|
|
"lakecolor": "#212226",
|
|
"landcolor": "#212226",
|
|
"showlakes": true,
|
|
"showland": true,
|
|
"subunitcolor": "#313439"
|
|
},
|
|
"hoverlabel": {
|
|
"align": "left"
|
|
},
|
|
"hovermode": "closest",
|
|
"mapbox": {
|
|
"style": "dark"
|
|
},
|
|
"paper_bgcolor": "#212226",
|
|
"plot_bgcolor": "#212226",
|
|
"polar": {
|
|
"angularaxis": {
|
|
"gridcolor": "#313439",
|
|
"linecolor": "#313439",
|
|
"ticks": ""
|
|
},
|
|
"bgcolor": "#212226",
|
|
"radialaxis": {
|
|
"gridcolor": "#313439",
|
|
"linecolor": "#313439",
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"scene": {
|
|
"xaxis": {
|
|
"backgroundcolor": "#212226",
|
|
"gridcolor": "#313439",
|
|
"gridwidth": 2,
|
|
"linecolor": "#313439",
|
|
"showbackground": true,
|
|
"ticks": "",
|
|
"zerolinecolor": "#aec0d6"
|
|
},
|
|
"yaxis": {
|
|
"backgroundcolor": "#212226",
|
|
"gridcolor": "#313439",
|
|
"gridwidth": 2,
|
|
"linecolor": "#313439",
|
|
"showbackground": true,
|
|
"ticks": "",
|
|
"zerolinecolor": "#aec0d6"
|
|
},
|
|
"zaxis": {
|
|
"backgroundcolor": "#212226",
|
|
"gridcolor": "#313439",
|
|
"gridwidth": 2,
|
|
"linecolor": "#313439",
|
|
"showbackground": true,
|
|
"ticks": "",
|
|
"zerolinecolor": "#aec0d6"
|
|
}
|
|
},
|
|
"shapedefaults": {
|
|
"line": {
|
|
"color": "#d6dfef"
|
|
}
|
|
},
|
|
"sliderdefaults": {
|
|
"bgcolor": "#aec0d6",
|
|
"bordercolor": "#212226",
|
|
"borderwidth": 1,
|
|
"tickwidth": 0
|
|
},
|
|
"ternary": {
|
|
"aaxis": {
|
|
"gridcolor": "#313439",
|
|
"linecolor": "#313439",
|
|
"ticks": ""
|
|
},
|
|
"baxis": {
|
|
"gridcolor": "#313439",
|
|
"linecolor": "#313439",
|
|
"ticks": ""
|
|
},
|
|
"bgcolor": "#212226",
|
|
"caxis": {
|
|
"gridcolor": "#313439",
|
|
"linecolor": "#313439",
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"title": {
|
|
"x": 0.05
|
|
},
|
|
"updatemenudefaults": {
|
|
"bgcolor": "#313439",
|
|
"borderwidth": 0
|
|
},
|
|
"xaxis": {
|
|
"automargin": true,
|
|
"gridcolor": "#313439",
|
|
"linecolor": "#313439",
|
|
"ticks": "",
|
|
"title": {
|
|
"standoff": 15
|
|
},
|
|
"zerolinecolor": "#313439",
|
|
"zerolinewidth": 2
|
|
},
|
|
"yaxis": {
|
|
"automargin": true,
|
|
"gridcolor": "#313439",
|
|
"linecolor": "#313439",
|
|
"ticks": "",
|
|
"title": {
|
|
"standoff": 15
|
|
},
|
|
"zerolinecolor": "#313439",
|
|
"zerolinewidth": 2
|
|
}
|
|
}
|
|
},
|
|
"width": 1280,
|
|
"xaxis": {
|
|
"anchor": "y",
|
|
"domain": [
|
|
0,
|
|
1
|
|
],
|
|
"matches": "x2",
|
|
"rangebreaks": [
|
|
{
|
|
"bounds": [
|
|
"2024-04-29T16:01:00-04:00",
|
|
"2024-04-30T09:30:00-04:00"
|
|
]
|
|
},
|
|
{
|
|
"bounds": [
|
|
"2024-04-30T16:01:00-04:00",
|
|
"2024-05-01T09:30:00-04:00"
|
|
]
|
|
},
|
|
{
|
|
"bounds": [
|
|
"2024-05-01T16:01:00-04:00",
|
|
"2024-05-02T09:30:00-04:00"
|
|
]
|
|
},
|
|
{
|
|
"bounds": [
|
|
"2024-05-02T16:01:00-04:00",
|
|
"2024-05-03T09:30:00-04:00"
|
|
]
|
|
},
|
|
{
|
|
"bounds": [
|
|
"2024-05-03T16:01:00-04:00",
|
|
"2024-05-06T09:30:00-04:00"
|
|
]
|
|
}
|
|
],
|
|
"rangeslider": {
|
|
"visible": false
|
|
},
|
|
"showgrid": true,
|
|
"showticklabels": false
|
|
},
|
|
"xaxis2": {
|
|
"anchor": "y2",
|
|
"domain": [
|
|
0,
|
|
1
|
|
],
|
|
"rangebreaks": [
|
|
{
|
|
"bounds": [
|
|
"2024-04-29T16:01:00-04:00",
|
|
"2024-04-30T09:30:00-04:00"
|
|
]
|
|
},
|
|
{
|
|
"bounds": [
|
|
"2024-04-30T16:01:00-04:00",
|
|
"2024-05-01T09:30:00-04:00"
|
|
]
|
|
},
|
|
{
|
|
"bounds": [
|
|
"2024-05-01T16:01:00-04:00",
|
|
"2024-05-02T09:30:00-04:00"
|
|
]
|
|
},
|
|
{
|
|
"bounds": [
|
|
"2024-05-02T16:01:00-04:00",
|
|
"2024-05-03T09:30:00-04:00"
|
|
]
|
|
},
|
|
{
|
|
"bounds": [
|
|
"2024-05-03T16:01:00-04:00",
|
|
"2024-05-06T09:30:00-04:00"
|
|
]
|
|
}
|
|
],
|
|
"showgrid": true
|
|
},
|
|
"yaxis": {
|
|
"anchor": "x",
|
|
"domain": [
|
|
0.3,
|
|
1
|
|
],
|
|
"showgrid": true
|
|
},
|
|
"yaxis2": {
|
|
"anchor": "x2",
|
|
"domain": [
|
|
0,
|
|
0.3
|
|
],
|
|
"showgrid": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<table id=\"itables_25c9841e_1a92_4f1b_9d7f_653ee8137d79\" class=\"display nowrap\" data-quarto-disable-processing=\"true\" style=\"table-layout:auto;width:auto;margin:auto;caption-side:bottom\">\n",
|
|
"<thead>\n",
|
|
" <tr>\n",
|
|
" <th>vwap_anchor</th>\n",
|
|
" <th>array</th>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>symbol</th>\n",
|
|
" <th>BAC</th>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Open time</th>\n",
|
|
" <th></th>\n",
|
|
" </tr>\n",
|
|
" </thead><tbody><tr>\n",
|
|
"<td style=\"vertical-align:middle; text-align:left\">\n",
|
|
"<div style=\"float:left; margin-right: 10px;\">\n",
|
|
"<a href=https://mwouts.github.io/itables/><svg class=\"main-svg\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
|
|
"width=\"64\" viewBox=\"0 0 500 400\" style=\"font-family: 'Droid Sans', sans-serif;\">\n",
|
|
" <g style=\"fill:#d9d7fc\">\n",
|
|
" <path d=\"M100,400H500V357H100Z\" />\n",
|
|
" <path d=\"M100,300H400V257H100Z\" />\n",
|
|
" <path d=\"M0,200H400V157H0Z\" />\n",
|
|
" <path d=\"M100,100H500V57H100Z\" />\n",
|
|
" <path d=\"M100,350H500V307H100Z\" />\n",
|
|
" <path d=\"M100,250H400V207H100Z\" />\n",
|
|
" <path d=\"M0,150H400V107H0Z\" />\n",
|
|
" <path d=\"M100,50H500V7H100Z\" />\n",
|
|
" </g>\n",
|
|
" <g style=\"fill:#1a1366;stroke:#1a1366;\">\n",
|
|
" <rect x=\"100\" y=\"7\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"0\" y=\"107\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"0;0;400\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"207\" width=\"300\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;300;0\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;400\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"307\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <g style=\"fill:transparent;stroke-width:8; stroke-linejoin:round\" rx=\"5\">\n",
|
|
" <g transform=\"translate(45 50) rotate(-45)\">\n",
|
|
" <circle r=\"33\" cx=\"0\" cy=\"0\" />\n",
|
|
" <rect x=\"-8\" y=\"32\" width=\"16\" height=\"30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(450 152)\">\n",
|
|
" <polyline points=\"-15,-20 -35,-20 -35,40 25,40 25,20\" />\n",
|
|
" <rect x=\"-15\" y=\"-40\" width=\"60\" height=\"60\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(50 352)\">\n",
|
|
" <polygon points=\"-35,-5 0,-40 35,-5\" />\n",
|
|
" <polygon points=\"-35,10 0,45 35,10\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(75 250)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(425 250) rotate(180)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
"</svg>\n",
|
|
"</a>\n",
|
|
"</div>\n",
|
|
"<div>\n",
|
|
"Loading ITables v2.0.1 from the <code>init_notebook_mode</code> cell...\n",
|
|
"(need <a href=https://mwouts.github.io/itables/troubleshooting.html>help</a>?)</td>\n",
|
|
"</div>\n",
|
|
"</tr></tbody>\n",
|
|
"\n",
|
|
"</table>\n",
|
|
"<script type=\"module\">\n",
|
|
" const { DataTable, jQuery: $ } = await import(window._datatables_src_for_itables_2_0_1);\n",
|
|
"\n",
|
|
" document.querySelectorAll(\"#itables_25c9841e_1a92_4f1b_9d7f_653ee8137d79:not(.dataTable)\").forEach(table => {\n",
|
|
" // Define the table data\n",
|
|
" const data = [[\"2024-04-29 09:30:00-04:00\", 37.856667], [\"2024-04-29 09:31:00-04:00\", 37.857453], [\"2024-04-29 09:32:00-04:00\", 37.850221], [\"2024-04-29 09:33:00-04:00\", 37.84984], [\"2024-04-29 09:34:00-04:00\", 37.850432], [\"2024-04-29 09:35:00-04:00\", 37.841433], [\"2024-04-29 09:36:00-04:00\", 37.828762], [\"2024-04-29 09:37:00-04:00\", 37.832171], [\"2024-04-29 09:38:00-04:00\", 37.834318], [\"2024-04-29 09:39:00-04:00\", 37.835851], [\"2024-04-29 09:40:00-04:00\", 37.836825], [\"2024-04-29 09:41:00-04:00\", 37.839913], [\"2024-04-29 09:42:00-04:00\", 37.841262], [\"2024-04-29 09:43:00-04:00\", 37.841506], [\"2024-04-29 09:44:00-04:00\", 37.842341], [\"2024-04-29 09:45:00-04:00\", 37.842998], [\"2024-04-29 09:46:00-04:00\", 37.845273], [\"2024-04-29 09:47:00-04:00\", 37.848415], [\"2024-04-29 09:48:00-04:00\", 37.85327], [\"2024-04-29 09:49:00-04:00\", 37.859978], [\"2024-04-29 09:50:00-04:00\", 37.864924], [\"2024-04-29 09:51:00-04:00\", 37.868783], [\"2024-04-29 09:52:00-04:00\", 37.872158], [\"2024-04-29 09:53:00-04:00\", 37.875064], [\"2024-04-29 09:54:00-04:00\", 37.876456], [\"2024-04-29 09:55:00-04:00\", 37.878224], [\"2024-04-29 09:56:00-04:00\", 37.880403], [\"2024-04-29 09:57:00-04:00\", 37.881397], [\"2024-04-29 09:58:00-04:00\", 37.883324], [\"2024-04-29 09:59:00-04:00\", 37.884893], [\"2024-04-29 10:00:00-04:00\", 37.888061], [\"2024-04-29 10:01:00-04:00\", 37.89282], [\"2024-04-29 10:02:00-04:00\", 37.896085], [\"2024-04-29 10:03:00-04:00\", 37.897995], [\"2024-04-29 10:04:00-04:00\", 37.899163], [\"2024-04-29 10:05:00-04:00\", 37.900276], [\"2024-04-29 10:06:00-04:00\", 37.906002], [\"2024-04-29 10:07:00-04:00\", 37.908855], [\"2024-04-29 10:08:00-04:00\", 37.910585], [\"2024-04-29 10:09:00-04:00\", 37.911855], [\"2024-04-29 10:10:00-04:00\", 37.912985], [\"2024-04-29 10:11:00-04:00\", 37.913583], [\"2024-04-29 10:12:00-04:00\", 37.914683], [\"2024-04-29 10:13:00-04:00\", 37.915475], [\"2024-04-29 10:14:00-04:00\", 37.916305], [\"2024-04-29 10:15:00-04:00\", 37.916972], [\"2024-04-29 10:16:00-04:00\", 37.917758], [\"2024-04-29 10:17:00-04:00\", 37.918529], [\"2024-04-29 10:18:00-04:00\", 37.919433], [\"2024-04-29 10:19:00-04:00\", 37.920021], [\"2024-04-29 10:20:00-04:00\", 37.921175], [\"2024-04-29 10:21:00-04:00\", 37.922194], [\"2024-04-29 10:22:00-04:00\", 37.922552], [\"2024-04-29 10:23:00-04:00\", 37.923407], [\"2024-04-29 10:24:00-04:00\", 37.924274], [\"2024-04-29 10:25:00-04:00\", 37.92472], [\"2024-04-29 10:26:00-04:00\", 37.925157], [\"2024-04-29 10:27:00-04:00\", 37.925553], [\"2024-04-29 10:28:00-04:00\", 37.925863], [\"2024-04-29 10:29:00-04:00\", 37.926346], [\"2024-04-29 10:30:00-04:00\", 37.926573], [\"2024-04-29 10:31:00-04:00\", 37.926958], [\"2024-04-29 10:32:00-04:00\", 37.927208], [\"2024-04-29 10:33:00-04:00\", 37.927733], [\"2024-04-29 10:34:00-04:00\", 37.928099], [\"2024-04-29 10:35:00-04:00\", 37.928315], [\"2024-04-29 10:36:00-04:00\", 37.928829], [\"2024-04-29 10:37:00-04:00\", 37.928945], [\"2024-04-29 10:38:00-04:00\", 37.929122], [\"2024-04-29 10:39:00-04:00\", 37.929232], [\"2024-04-29 10:40:00-04:00\", 37.929365], [\"2024-04-29 10:41:00-04:00\", 37.92972], [\"2024-04-29 10:42:00-04:00\", 37.929764], [\"2024-04-29 10:43:00-04:00\", 37.92984], [\"2024-04-29 10:44:00-04:00\", 37.93008], [\"2024-04-29 10:45:00-04:00\", 37.930292], [\"2024-04-29 10:46:00-04:00\", 37.93042], [\"2024-04-29 10:47:00-04:00\", 37.930483], [\"2024-04-29 10:48:00-04:00\", 37.930723], [\"2024-04-29 10:49:00-04:00\", 37.930942], [\"2024-04-29 10:50:00-04:00\", 37.931159], [\"2024-04-29 10:51:00-04:00\", 37.931246], [\"2024-04-29 10:52:00-04:00\", 37.93131], [\"2024-04-29 10:53:00-04:00\", 37.931415], [\"2024-04-29 10:54:00-04:00\", 37.931467], [\"2024-04-29 10:55:00-04:00\", 37.931449], [\"2024-04-29 10:56:00-04:00\", 37.931483], [\"2024-04-29 10:57:00-04:00\", 37.931556], [\"2024-04-29 10:58:00-04:00\", 37.931612], [\"2024-04-29 10:59:00-04:00\", 37.931676], [\"2024-04-29 11:00:00-04:00\", 37.931759], [\"2024-04-29 11:01:00-04:00\", 37.931802], [\"2024-04-29 11:02:00-04:00\", 37.931899], [\"2024-04-29 11:03:00-04:00\", 37.932042], [\"2024-04-29 11:04:00-04:00\", 37.932079], [\"2024-04-29 11:05:00-04:00\", 37.932142], [\"2024-04-29 11:06:00-04:00\", 37.932251], [\"2024-04-29 11:07:00-04:00\", 37.932309], [\"2024-04-29 11:08:00-04:00\", 37.932359], [\"2024-04-29 11:09:00-04:00\", 37.932405], [\"2024-04-29 11:10:00-04:00\", 37.932435], [\"2024-04-29 11:11:00-04:00\", 37.932419], [\"2024-04-29 11:12:00-04:00\", 37.932289], [\"2024-04-29 11:13:00-04:00\", 37.932078], [\"2024-04-29 11:14:00-04:00\", 37.93199], [\"2024-04-29 11:15:00-04:00\", 37.931851], [\"2024-04-29 11:16:00-04:00\", 37.931795], [\"2024-04-29 11:17:00-04:00\", 37.931776], [\"2024-04-29 11:18:00-04:00\", 37.931752], [\"2024-04-29 11:19:00-04:00\", 37.931697], [\"2024-04-29 11:20:00-04:00\", 37.931606], [\"2024-04-29 11:21:00-04:00\", 37.931539], [\"2024-04-29 11:22:00-04:00\", 37.931041], [\"2024-04-29 11:23:00-04:00\", 37.930726], [\"2024-04-29 11:24:00-04:00\", 37.930312], [\"2024-04-29 11:25:00-04:00\", 37.929744], [\"2024-04-29 11:26:00-04:00\", 37.929488], [\"2024-04-29 11:27:00-04:00\", 37.929244], [\"2024-04-29 11:28:00-04:00\", 37.929051], [\"2024-04-29 11:29:00-04:00\", 37.928741], [\"2024-04-29 11:30:00-04:00\", 37.928498], [\"2024-04-29 11:31:00-04:00\", 37.928305], [\"2024-04-29 11:32:00-04:00\", 37.928072], [\"2024-04-29 11:33:00-04:00\", 37.927864], [\"2024-04-29 11:34:00-04:00\", 37.927755], [\"2024-04-29 11:35:00-04:00\", 37.927439], [\"2024-04-29 11:36:00-04:00\", 37.927156], [\"2024-04-29 11:37:00-04:00\", 37.927082], [\"2024-04-29 11:38:00-04:00\", 37.927001], [\"2024-04-29 11:39:00-04:00\", 37.926911], [\"2024-04-29 11:40:00-04:00\", 37.926502], [\"2024-04-29 11:41:00-04:00\", 37.926342], [\"2024-04-29 11:42:00-04:00\", 37.92619], [\"2024-04-29 11:43:00-04:00\", 37.926059], [\"2024-04-29 11:44:00-04:00\", 37.925896], [\"2024-04-29 11:45:00-04:00\", 37.925677], [\"2024-04-29 11:46:00-04:00\", 37.925462], [\"2024-04-29 11:47:00-04:00\", 37.925289], [\"2024-04-29 11:48:00-04:00\", 37.925161], [\"2024-04-29 11:49:00-04:00\", 37.925023], [\"2024-04-29 11:50:00-04:00\", 37.924733], [\"2024-04-29 11:51:00-04:00\", 37.924633], [\"2024-04-29 11:52:00-04:00\", 37.924334], [\"2024-04-29 11:53:00-04:00\", 37.924098], [\"2024-04-29 11:54:00-04:00\", 37.923753], [\"2024-04-29 11:55:00-04:00\", 37.923526], [\"2024-04-29 11:56:00-04:00\", 37.922506], [\"2024-04-29 11:57:00-04:00\", 37.921849], [\"2024-04-29 11:58:00-04:00\", 37.921003], [\"2024-04-29 11:59:00-04:00\", 37.919441], [\"2024-04-29 12:00:00-04:00\", 37.918578], [\"2024-04-29 12:01:00-04:00\", 37.918354], [\"2024-04-29 12:02:00-04:00\", 37.917104], [\"2024-04-29 12:03:00-04:00\", 37.915125], [\"2024-04-29 12:04:00-04:00\", 37.913148], [\"2024-04-29 12:05:00-04:00\", 37.912828], [\"2024-04-29 12:06:00-04:00\", 37.912564], [\"2024-04-29 12:07:00-04:00\", 37.911892], [\"2024-04-29 12:08:00-04:00\", 37.911803], [\"2024-04-29 12:09:00-04:00\", 37.911118], [\"2024-04-29 12:10:00-04:00\", 37.911003], [\"2024-04-29 12:11:00-04:00\", 37.910898], [\"2024-04-29 12:12:00-04:00\", 37.910694], [\"2024-04-29 12:13:00-04:00\", 37.910121], [\"2024-04-29 12:14:00-04:00\", 37.909828], [\"2024-04-29 12:15:00-04:00\", 37.909574], [\"2024-04-29 12:16:00-04:00\", 37.909402], [\"2024-04-29 12:17:00-04:00\", 37.909314], [\"2024-04-29 12:18:00-04:00\", 37.908847], [\"2024-04-29 12:19:00-04:00\", 37.908594], [\"2024-04-29 12:20:00-04:00\", 37.908545], [\"2024-04-29 12:21:00-04:00\", 37.908107], [\"2024-04-29 12:22:00-04:00\", 37.90793], [\"2024-04-29 12:23:00-04:00\", 37.907874], [\"2024-04-29 12:24:00-04:00\", 37.907642], [\"2024-04-29 12:25:00-04:00\", 37.90744], [\"2024-04-29 12:26:00-04:00\", 37.907277], [\"2024-04-29 12:27:00-04:00\", 37.906765], [\"2024-04-29 12:28:00-04:00\", 37.906701], [\"2024-04-29 12:29:00-04:00\", 37.906186], [\"2024-04-29 12:30:00-04:00\", 37.904994], [\"2024-04-29 12:31:00-04:00\", 37.904627], [\"2024-04-29 12:32:00-04:00\", 37.903678], [\"2024-04-29 12:33:00-04:00\", 37.903303], [\"2024-04-29 12:34:00-04:00\", 37.903036], [\"2024-04-29 12:35:00-04:00\", 37.902301], [\"2024-04-29 12:36:00-04:00\", 37.902166], [\"2024-04-29 12:37:00-04:00\", 37.90194], [\"2024-04-29 12:38:00-04:00\", 37.901695], [\"2024-04-29 12:39:00-04:00\", 37.901334], [\"2024-04-29 12:40:00-04:00\", 37.900924], [\"2024-04-29 12:41:00-04:00\", 37.900485], [\"2024-04-29 12:42:00-04:00\", 37.899534], [\"2024-04-29 12:43:00-04:00\", 37.899406], [\"2024-04-29 12:44:00-04:00\", 37.898995], [\"2024-04-29 12:45:00-04:00\", 37.898449], [\"2024-04-29 12:46:00-04:00\", 37.898222], [\"2024-04-29 12:47:00-04:00\", 37.897299], [\"2024-04-29 12:48:00-04:00\", 37.896487], [\"2024-04-29 12:49:00-04:00\", 37.896143], [\"2024-04-29 12:50:00-04:00\", 37.895997], [\"2024-04-29 12:51:00-04:00\", 37.895855], [\"2024-04-29 12:52:00-04:00\", 37.894931], [\"2024-04-29 12:53:00-04:00\", 37.894086], [\"2024-04-29 12:54:00-04:00\", 37.893811], [\"2024-04-29 12:55:00-04:00\", 37.893583], [\"2024-04-29 12:56:00-04:00\", 37.892539], [\"2024-04-29 12:57:00-04:00\", 37.892436], [\"2024-04-29 12:58:00-04:00\", 37.892034], [\"2024-04-29 12:59:00-04:00\", 37.891642], [\"2024-04-29 13:00:00-04:00\", 37.891132], [\"2024-04-29 13:01:00-04:00\", 37.890601], [\"2024-04-29 13:02:00-04:00\", 37.890255], [\"2024-04-29 13:03:00-04:00\", 37.889171], [\"2024-04-29 13:04:00-04:00\", 37.888823], [\"2024-04-29 13:05:00-04:00\", 37.888529], [\"2024-04-29 13:06:00-04:00\", 37.888279], [\"2024-04-29 13:07:00-04:00\", 37.88804], [\"2024-04-29 13:08:00-04:00\", 37.887801], [\"2024-04-29 13:09:00-04:00\", 37.887061], [\"2024-04-29 13:10:00-04:00\", 37.886842], [\"2024-04-29 13:11:00-04:00\", 37.88611], [\"2024-04-29 13:12:00-04:00\", 37.885908], [\"2024-04-29 13:13:00-04:00\", 37.885709], [\"2024-04-29 13:14:00-04:00\", 37.88487], [\"2024-04-29 13:15:00-04:00\", 37.884068], [\"2024-04-29 13:16:00-04:00\", 37.883967], [\"2024-04-29 13:17:00-04:00\", 37.883419], [\"2024-04-29 13:18:00-04:00\", 37.883114], [\"2024-04-29 13:19:00-04:00\", 37.882591], [\"2024-04-29 13:20:00-04:00\", 37.882335], [\"2024-04-29 13:21:00-04:00\", 37.881962], [\"2024-04-29 13:22:00-04:00\", 37.881521], [\"2024-04-29 13:23:00-04:00\", 37.881318], [\"2024-04-29 13:24:00-04:00\", 37.881189], [\"2024-04-29 13:25:00-04:00\", 37.880682], [\"2024-04-29 13:26:00-04:00\", 37.880248], [\"2024-04-29 13:27:00-04:00\", 37.880054], [\"2024-04-29 13:28:00-04:00\", 37.879629], [\"2024-04-29 13:29:00-04:00\", 37.879347], [\"2024-04-29 13:30:00-04:00\", 37.878986], [\"2024-04-29 13:31:00-04:00\", 37.87879], [\"2024-04-29 13:32:00-04:00\", 37.878579], [\"2024-04-29 13:33:00-04:00\", 37.878489], [\"2024-04-29 13:34:00-04:00\", 37.87838], [\"2024-04-29 13:35:00-04:00\", 37.877631], [\"2024-04-29 13:36:00-04:00\", 37.877245], [\"2024-04-29 13:37:00-04:00\", 37.876999], [\"2024-04-29 13:38:00-04:00\", 37.876775], [\"2024-04-29 13:39:00-04:00\", 37.876572], [\"2024-04-29 13:40:00-04:00\", 37.87653], [\"2024-04-29 13:41:00-04:00\", 37.876295], [\"2024-04-29 13:42:00-04:00\", 37.875761], [\"2024-04-29 13:43:00-04:00\", 37.875518], [\"2024-04-29 13:44:00-04:00\", 37.875211], [\"2024-04-29 13:45:00-04:00\", 37.875038], [\"2024-04-29 13:46:00-04:00\", 37.874454], [\"2024-04-29 13:47:00-04:00\", 37.871069], [\"2024-04-29 13:48:00-04:00\", 37.870678], [\"2024-04-29 13:49:00-04:00\", 37.870528], [\"2024-04-29 13:50:00-04:00\", 37.87034], [\"2024-04-29 13:51:00-04:00\", 37.87001], [\"2024-04-29 13:52:00-04:00\", 37.869648], [\"2024-04-29 13:53:00-04:00\", 37.869424], [\"2024-04-29 13:54:00-04:00\", 37.869159], [\"2024-04-29 13:55:00-04:00\", 37.868612], [\"2024-04-29 13:56:00-04:00\", 37.868026], [\"2024-04-29 13:57:00-04:00\", 37.867563], [\"2024-04-29 13:58:00-04:00\", 37.867366], [\"2024-04-29 13:59:00-04:00\", 37.866775], [\"2024-04-29 14:00:00-04:00\", 37.865057], [\"2024-04-29 14:01:00-04:00\", 37.864446], [\"2024-04-29 14:02:00-04:00\", 37.864075], [\"2024-04-29 14:03:00-04:00\", 37.86377], [\"2024-04-29 14:04:00-04:00\", 37.863645], [\"2024-04-29 14:05:00-04:00\", 37.863432], [\"2024-04-29 14:06:00-04:00\", 37.863144], [\"2024-04-29 14:07:00-04:00\", 37.862894], [\"2024-04-29 14:08:00-04:00\", 37.859926], [\"2024-04-29 14:09:00-04:00\", 37.859828], [\"2024-04-29 14:10:00-04:00\", 37.859369], [\"2024-04-29 14:11:00-04:00\", 37.859194], [\"2024-04-29 14:12:00-04:00\", 37.858841], [\"2024-04-29 14:13:00-04:00\", 37.858556], [\"2024-04-29 14:14:00-04:00\", 37.858191], [\"2024-04-29 14:15:00-04:00\", 37.857963], [\"2024-04-29 14:16:00-04:00\", 37.857666], [\"2024-04-29 14:17:00-04:00\", 37.857411], [\"2024-04-29 14:18:00-04:00\", 37.85708], [\"2024-04-29 14:19:00-04:00\", 37.856496], [\"2024-04-29 14:20:00-04:00\", 37.856197], [\"2024-04-29 14:21:00-04:00\", 37.8561], [\"2024-04-29 14:22:00-04:00\", 37.855611], [\"2024-04-29 14:23:00-04:00\", 37.855274], [\"2024-04-29 14:24:00-04:00\", 37.854812], [\"2024-04-29 14:25:00-04:00\", 37.854107], [\"2024-04-29 14:26:00-04:00\", 37.853819], [\"2024-04-29 14:27:00-04:00\", 37.853486], [\"2024-04-29 14:28:00-04:00\", 37.85308], [\"2024-04-29 14:29:00-04:00\", 37.853008], [\"2024-04-29 14:30:00-04:00\", 37.852126], [\"2024-04-29 14:31:00-04:00\", 37.851445], [\"2024-04-29 14:32:00-04:00\", 37.849842], [\"2024-04-29 14:33:00-04:00\", 37.849193], [\"2024-04-29 14:34:00-04:00\", 37.848324], [\"2024-04-29 14:35:00-04:00\", 37.847751], [\"2024-04-29 14:36:00-04:00\", 37.847329], [\"2024-04-29 14:37:00-04:00\", 37.846808], [\"2024-04-29 14:38:00-04:00\", 37.84218], [\"2024-04-29 14:39:00-04:00\", 37.841708], [\"2024-04-29 14:40:00-04:00\", 37.841283], [\"2024-04-29 14:41:00-04:00\", 37.841021], [\"2024-04-29 14:42:00-04:00\", 37.840757], [\"2024-04-29 14:43:00-04:00\", 37.840557], [\"2024-04-29 14:44:00-04:00\", 37.840264], [\"2024-04-29 14:45:00-04:00\", 37.839926], [\"2024-04-29 14:46:00-04:00\", 37.839825], [\"2024-04-29 14:47:00-04:00\", 37.839097], [\"2024-04-29 14:48:00-04:00\", 37.838719], [\"2024-04-29 14:49:00-04:00\", 37.83861], [\"2024-04-29 14:50:00-04:00\", 37.837775], [\"2024-04-29 14:51:00-04:00\", 37.837312], [\"2024-04-29 14:52:00-04:00\", 37.836882], [\"2024-04-29 14:53:00-04:00\", 37.836351], [\"2024-04-29 14:54:00-04:00\", 37.835723], [\"2024-04-29 14:55:00-04:00\", 37.83552], [\"2024-04-29 14:56:00-04:00\", 37.83517], [\"2024-04-29 14:57:00-04:00\", 37.834804], [\"2024-04-29 14:58:00-04:00\", 37.83412], [\"2024-04-29 14:59:00-04:00\", 37.833727], [\"2024-04-29 15:00:00-04:00\", 37.831148], [\"2024-04-29 15:01:00-04:00\", 37.829797], [\"2024-04-29 15:02:00-04:00\", 37.8278], [\"2024-04-29 15:03:00-04:00\", 37.824621], [\"2024-04-29 15:04:00-04:00\", 37.82199], [\"2024-04-29 15:05:00-04:00\", 37.819813], [\"2024-04-29 15:06:00-04:00\", 37.817005], [\"2024-04-29 15:07:00-04:00\", 37.815107], [\"2024-04-29 15:08:00-04:00\", 37.813619], [\"2024-04-29 15:09:00-04:00\", 37.812102], [\"2024-04-29 15:10:00-04:00\", 37.80954], [\"2024-04-29 15:11:00-04:00\", 37.803444], [\"2024-04-29 15:12:00-04:00\", 37.80226], [\"2024-04-29 15:13:00-04:00\", 37.801002], [\"2024-04-29 15:14:00-04:00\", 37.800096], [\"2024-04-29 15:15:00-04:00\", 37.798982], [\"2024-04-29 15:16:00-04:00\", 37.798229], [\"2024-04-29 15:17:00-04:00\", 37.797132], [\"2024-04-29 15:18:00-04:00\", 37.796373], [\"2024-04-29 15:19:00-04:00\", 37.795709], [\"2024-04-29 15:20:00-04:00\", 37.794688], [\"2024-04-29 15:21:00-04:00\", 37.793872], [\"2024-04-29 15:22:00-04:00\", 37.793511], [\"2024-04-29 15:23:00-04:00\", 37.792742], [\"2024-04-29 15:24:00-04:00\", 37.792252], [\"2024-04-29 15:25:00-04:00\", 37.790728], [\"2024-04-29 15:26:00-04:00\", 37.789951], [\"2024-04-29 15:27:00-04:00\", 37.78881], [\"2024-04-29 15:28:00-04:00\", 37.787953], [\"2024-04-29 15:29:00-04:00\", 37.786275], [\"2024-04-29 15:30:00-04:00\", 37.784851], [\"2024-04-29 15:31:00-04:00\", 37.784179], [\"2024-04-29 15:32:00-04:00\", 37.783228], [\"2024-04-29 15:33:00-04:00\", 37.78265], [\"2024-04-29 15:34:00-04:00\", 37.78176], [\"2024-04-29 15:35:00-04:00\", 37.780063], [\"2024-04-29 15:36:00-04:00\", 37.778723], [\"2024-04-29 15:37:00-04:00\", 37.778288], [\"2024-04-29 15:38:00-04:00\", 37.777019], [\"2024-04-29 15:39:00-04:00\", 37.776151], [\"2024-04-29 15:40:00-04:00\", 37.775102], [\"2024-04-29 15:41:00-04:00\", 37.774379], [\"2024-04-29 15:42:00-04:00\", 37.772875], [\"2024-04-29 15:43:00-04:00\", 37.77162], [\"2024-04-29 15:44:00-04:00\", 37.768981], [\"2024-04-29 15:45:00-04:00\", 37.767397], [\"2024-04-29 15:46:00-04:00\", 37.766063], [\"2024-04-29 15:47:00-04:00\", 37.765314], [\"2024-04-29 15:48:00-04:00\", 37.763553], [\"2024-04-29 15:49:00-04:00\", 37.761425], [\"2024-04-29 15:50:00-04:00\", 37.757851], [\"2024-04-29 15:51:00-04:00\", 37.755657], [\"2024-04-29 15:52:00-04:00\", 37.754141], [\"2024-04-29 15:53:00-04:00\", 37.751671], [\"2024-04-29 15:54:00-04:00\", 37.749924], [\"2024-04-29 15:55:00-04:00\", 37.745628], [\"2024-04-29 15:56:00-04:00\", 37.743351], [\"2024-04-29 15:57:00-04:00\", 37.741589], [\"2024-04-29 15:58:00-04:00\", 37.737661], [\"2024-04-29 15:59:00-04:00\", 37.731138], [\"2024-04-29 16:00:00-04:00\", 37.712108], [\"2024-04-30 09:30:00-04:00\", 37.4365], [\"2024-04-30 09:31:00-04:00\", 37.441139], [\"2024-04-30 09:32:00-04:00\", 37.441696], [\"2024-04-30 09:33:00-04:00\", 37.435046], [\"2024-04-30 09:34:00-04:00\", 37.432011], [\"2024-04-30 09:35:00-04:00\", 37.421284], [\"2024-04-30 09:36:00-04:00\", 37.418849], [\"2024-04-30 09:37:00-04:00\", 37.431027], [\"2024-04-30 09:38:00-04:00\", 37.437545], [\"2024-04-30 09:39:00-04:00\", 37.438948], [\"2024-04-30 09:40:00-04:00\", 37.440657], [\"2024-04-30 09:41:00-04:00\", 37.442152], [\"2024-04-30 09:42:00-04:00\", 37.445001], [\"2024-04-30 09:43:00-04:00\", 37.446092], [\"2024-04-30 09:44:00-04:00\", 37.448778], [\"2024-04-30 09:45:00-04:00\", 37.452045], [\"2024-04-30 09:46:00-04:00\", 37.456793], [\"2024-04-30 09:47:00-04:00\", 37.457948], [\"2024-04-30 09:48:00-04:00\", 37.459155], [\"2024-04-30 09:49:00-04:00\", 37.460254], [\"2024-04-30 09:50:00-04:00\", 37.461132], [\"2024-04-30 09:51:00-04:00\", 37.462197], [\"2024-04-30 09:52:00-04:00\", 37.462622], [\"2024-04-30 09:53:00-04:00\", 37.462492], [\"2024-04-30 09:54:00-04:00\", 37.461822], [\"2024-04-30 09:55:00-04:00\", 37.460198], [\"2024-04-30 09:56:00-04:00\", 37.459403], [\"2024-04-30 09:57:00-04:00\", 37.458504], [\"2024-04-30 09:58:00-04:00\", 37.457876], [\"2024-04-30 09:59:00-04:00\", 37.456644], [\"2024-04-30 10:00:00-04:00\", 37.455634], [\"2024-04-30 10:01:00-04:00\", 37.455089], [\"2024-04-30 10:02:00-04:00\", 37.454021], [\"2024-04-30 10:03:00-04:00\", 37.452922], [\"2024-04-30 10:04:00-04:00\", 37.452355], [\"2024-04-30 10:05:00-04:00\", 37.452208], [\"2024-04-30 10:06:00-04:00\", 37.452413], [\"2024-04-30 10:07:00-04:00\", 37.452863], [\"2024-04-30 10:08:00-04:00\", 37.45313], [\"2024-04-30 10:09:00-04:00\", 37.453286], [\"2024-04-30 10:10:00-04:00\", 37.453467], [\"2024-04-30 10:11:00-04:00\", 37.453799], [\"2024-04-30 10:12:00-04:00\", 37.453991], [\"2024-04-30 10:13:00-04:00\", 37.45427], [\"2024-04-30 10:14:00-04:00\", 37.454495], [\"2024-04-30 10:15:00-04:00\", 37.45481], [\"2024-04-30 10:16:00-04:00\", 37.455072], [\"2024-04-30 10:17:00-04:00\", 37.456295], [\"2024-04-30 10:18:00-04:00\", 37.458805], [\"2024-04-30 10:19:00-04:00\", 37.45946], [\"2024-04-30 10:20:00-04:00\", 37.459957], [\"2024-04-30 10:21:00-04:00\", 37.461218], [\"2024-04-30 10:22:00-04:00\", 37.461946], [\"2024-04-30 10:23:00-04:00\", 37.462428], [\"2024-04-30 10:24:00-04:00\", 37.468046], [\"2024-04-30 10:25:00-04:00\", 37.468489], [\"2024-04-30 10:26:00-04:00\", 37.469178], [\"2024-04-30 10:27:00-04:00\", 37.469764], [\"2024-04-30 10:28:00-04:00\", 37.470567], [\"2024-04-30 10:29:00-04:00\", 37.471005], [\"2024-04-30 10:30:00-04:00\", 37.471142], [\"2024-04-30 10:31:00-04:00\", 37.47098], [\"2024-04-30 10:32:00-04:00\", 37.470803], [\"2024-04-30 10:33:00-04:00\", 37.4707], [\"2024-04-30 10:34:00-04:00\", 37.470728], [\"2024-04-30 10:35:00-04:00\", 37.470739], [\"2024-04-30 10:36:00-04:00\", 37.470918], [\"2024-04-30 10:37:00-04:00\", 37.471158], [\"2024-04-30 10:38:00-04:00\", 37.471293], [\"2024-04-30 10:39:00-04:00\", 37.471473], [\"2024-04-30 10:40:00-04:00\", 37.471952], [\"2024-04-30 10:41:00-04:00\", 37.47235], [\"2024-04-30 10:42:00-04:00\", 37.473118], [\"2024-04-30 10:43:00-04:00\", 37.473769], [\"2024-04-30 10:44:00-04:00\", 37.474412], [\"2024-04-30 10:45:00-04:00\", 37.475912], [\"2024-04-30 10:46:00-04:00\", 37.477113], [\"2024-04-30 10:47:00-04:00\", 37.478905], [\"2024-04-30 10:48:00-04:00\", 37.480842], [\"2024-04-30 10:49:00-04:00\", 37.482367], [\"2024-04-30 10:50:00-04:00\", 37.485531], [\"2024-04-30 10:51:00-04:00\", 37.4877], [\"2024-04-30 10:52:00-04:00\", 37.490133], [\"2024-04-30 10:53:00-04:00\", 37.491162], [\"2024-04-30 10:54:00-04:00\", 37.49296], [\"2024-04-30 10:55:00-04:00\", 37.494027], [\"2024-04-30 10:56:00-04:00\", 37.495019], [\"2024-04-30 10:57:00-04:00\", 37.496096], [\"2024-04-30 10:58:00-04:00\", 37.497328], [\"2024-04-30 10:59:00-04:00\", 37.498248], [\"2024-04-30 11:00:00-04:00\", 37.498998], [\"2024-04-30 11:01:00-04:00\", 37.499827], [\"2024-04-30 11:02:00-04:00\", 37.500696], [\"2024-04-30 11:03:00-04:00\", 37.501625], [\"2024-04-30 11:04:00-04:00\", 37.502076], [\"2024-04-30 11:05:00-04:00\", 37.504118], [\"2024-04-30 11:06:00-04:00\", 37.505143], [\"2024-04-30 11:07:00-04:00\", 37.505588], [\"2024-04-30 11:08:00-04:00\", 37.50645], [\"2024-04-30 11:09:00-04:00\", 37.506725], [\"2024-04-30 11:10:00-04:00\", 37.506927], [\"2024-04-30 11:11:00-04:00\", 37.507585], [\"2024-04-30 11:12:00-04:00\", 37.507864], [\"2024-04-30 11:13:00-04:00\", 37.507915], [\"2024-04-30 11:14:00-04:00\", 37.507932], [\"2024-04-30 11:15:00-04:00\", 37.507872], [\"2024-04-30 11:16:00-04:00\", 37.508025], [\"2024-04-30 11:17:00-04:00\", 37.508225], [\"2024-04-30 11:18:00-04:00\", 37.508515], [\"2024-04-30 11:19:00-04:00\", 37.508583], [\"2024-04-30 11:20:00-04:00\", 37.508665], [\"2024-04-30 11:21:00-04:00\", 37.508775], [\"2024-04-30 11:22:00-04:00\", 37.508841], [\"2024-04-30 11:23:00-04:00\", 37.50893], [\"2024-04-30 11:24:00-04:00\", 37.509041], [\"2024-04-30 11:25:00-04:00\", 37.509515], [\"2024-04-30 11:26:00-04:00\", 37.509599], [\"2024-04-30 11:27:00-04:00\", 37.509735], [\"2024-04-30 11:28:00-04:00\", 37.509857], [\"2024-04-30 11:29:00-04:00\", 37.509891], [\"2024-04-30 11:30:00-04:00\", 37.509869], [\"2024-04-30 11:31:00-04:00\", 37.509759], [\"2024-04-30 11:32:00-04:00\", 37.509621], [\"2024-04-30 11:33:00-04:00\", 37.50953], [\"2024-04-30 11:34:00-04:00\", 37.509478], [\"2024-04-30 11:35:00-04:00\", 37.509488], [\"2024-04-30 11:36:00-04:00\", 37.509439], [\"2024-04-30 11:37:00-04:00\", 37.509424], [\"2024-04-30 11:38:00-04:00\", 37.50943], [\"2024-04-30 11:39:00-04:00\", 37.509405], [\"2024-04-30 11:40:00-04:00\", 37.509376], [\"2024-04-30 11:41:00-04:00\", 37.509355], [\"2024-04-30 11:42:00-04:00\", 37.509282], [\"2024-04-30 11:43:00-04:00\", 37.509231], [\"2024-04-30 11:44:00-04:00\", 37.509122], [\"2024-04-30 11:45:00-04:00\", 37.509041], [\"2024-04-30 11:46:00-04:00\", 37.508748], [\"2024-04-30 11:47:00-04:00\", 37.508544], [\"2024-04-30 11:48:00-04:00\", 37.508259], [\"2024-04-30 11:49:00-04:00\", 37.508068], [\"2024-04-30 11:50:00-04:00\", 37.507838], [\"2024-04-30 11:51:00-04:00\", 37.507691], [\"2024-04-30 11:52:00-04:00\", 37.507399], [\"2024-04-30 11:53:00-04:00\", 37.507219], [\"2024-04-30 11:54:00-04:00\", 37.507125], [\"2024-04-30 11:55:00-04:00\", 37.507027], [\"2024-04-30 11:56:00-04:00\", 37.506941], [\"2024-04-30 11:57:00-04:00\", 37.506902], [\"2024-04-30 11:58:00-04:00\", 37.506832], [\"2024-04-30 11:59:00-04:00\", 37.506671], [\"2024-04-30 12:00:00-04:00\", 37.506511], [\"2024-04-30 12:01:00-04:00\", 37.506222], [\"2024-04-30 12:02:00-04:00\", 37.506076], [\"2024-04-30 12:03:00-04:00\", 37.505972], [\"2024-04-30 12:04:00-04:00\", 37.505819], [\"2024-04-30 12:05:00-04:00\", 37.505373], [\"2024-04-30 12:06:00-04:00\", 37.505156], [\"2024-04-30 12:07:00-04:00\", 37.50483], [\"2024-04-30 12:08:00-04:00\", 37.5046], [\"2024-04-30 12:09:00-04:00\", 37.504409], [\"2024-04-30 12:10:00-04:00\", 37.504195], [\"2024-04-30 12:11:00-04:00\", 37.504053], [\"2024-04-30 12:12:00-04:00\", 37.503865], [\"2024-04-30 12:13:00-04:00\", 37.503722], [\"2024-04-30 12:14:00-04:00\", 37.503586], [\"2024-04-30 12:15:00-04:00\", 37.503324], [\"2024-04-30 12:16:00-04:00\", 37.503192], [\"2024-04-30 12:17:00-04:00\", 37.502786], [\"2024-04-30 12:18:00-04:00\", 37.502546], [\"2024-04-30 12:19:00-04:00\", 37.502498], [\"2024-04-30 12:20:00-04:00\", 37.502295], [\"2024-04-30 12:21:00-04:00\", 37.502044], [\"2024-04-30 12:22:00-04:00\", 37.501857], [\"2024-04-30 12:23:00-04:00\", 37.501664], [\"2024-04-30 12:24:00-04:00\", 37.501408], [\"2024-04-30 12:25:00-04:00\", 37.500856], [\"2024-04-30 12:26:00-04:00\", 37.500806], [\"2024-04-30 12:27:00-04:00\", 37.500497], [\"2024-04-30 12:28:00-04:00\", 37.500436], [\"2024-04-30 12:29:00-04:00\", 37.49944], [\"2024-04-30 12:30:00-04:00\", 37.498886], [\"2024-04-30 12:31:00-04:00\", 37.498055], [\"2024-04-30 12:32:00-04:00\", 37.497298], [\"2024-04-30 12:33:00-04:00\", 37.49672], [\"2024-04-30 12:34:00-04:00\", 37.496091], [\"2024-04-30 12:35:00-04:00\", 37.495566], [\"2024-04-30 12:36:00-04:00\", 37.495284], [\"2024-04-30 12:37:00-04:00\", 37.494656], [\"2024-04-30 12:38:00-04:00\", 37.494044], [\"2024-04-30 12:39:00-04:00\", 37.493687], [\"2024-04-30 12:40:00-04:00\", 37.493559], [\"2024-04-30 12:41:00-04:00\", 37.492839], [\"2024-04-30 12:42:00-04:00\", 37.492264], [\"2024-04-30 12:43:00-04:00\", 37.491705], [\"2024-04-30 12:44:00-04:00\", 37.490972], [\"2024-04-30 12:45:00-04:00\", 37.49029], [\"2024-04-30 12:46:00-04:00\", 37.489227], [\"2024-04-30 12:47:00-04:00\", 37.488564], [\"2024-04-30 12:48:00-04:00\", 37.487788], [\"2024-04-30 12:49:00-04:00\", 37.486915], [\"2024-04-30 12:50:00-04:00\", 37.485963], [\"2024-04-30 12:51:00-04:00\", 37.483943], [\"2024-04-30 12:52:00-04:00\", 37.48342], [\"2024-04-30 12:53:00-04:00\", 37.483136], [\"2024-04-30 12:54:00-04:00\", 37.482467], [\"2024-04-30 12:55:00-04:00\", 37.481619], [\"2024-04-30 12:56:00-04:00\", 37.481038], [\"2024-04-30 12:57:00-04:00\", 37.480186], [\"2024-04-30 12:58:00-04:00\", 37.479556], [\"2024-04-30 12:59:00-04:00\", 37.47904], [\"2024-04-30 13:00:00-04:00\", 37.478033], [\"2024-04-30 13:01:00-04:00\", 37.477213], [\"2024-04-30 13:02:00-04:00\", 37.47666], [\"2024-04-30 13:03:00-04:00\", 37.476364], [\"2024-04-30 13:04:00-04:00\", 37.475948], [\"2024-04-30 13:05:00-04:00\", 37.474188], [\"2024-04-30 13:06:00-04:00\", 37.473513], [\"2024-04-30 13:07:00-04:00\", 37.470526], [\"2024-04-30 13:08:00-04:00\", 37.469982], [\"2024-04-30 13:09:00-04:00\", 37.469576], [\"2024-04-30 13:10:00-04:00\", 37.469299], [\"2024-04-30 13:11:00-04:00\", 37.468574], [\"2024-04-30 13:12:00-04:00\", 37.467829], [\"2024-04-30 13:13:00-04:00\", 37.467315], [\"2024-04-30 13:14:00-04:00\", 37.466846], [\"2024-04-30 13:15:00-04:00\", 37.466393], [\"2024-04-30 13:16:00-04:00\", 37.465452], [\"2024-04-30 13:17:00-04:00\", 37.465099], [\"2024-04-30 13:18:00-04:00\", 37.463183], [\"2024-04-30 13:19:00-04:00\", 37.462983], [\"2024-04-30 13:20:00-04:00\", 37.461135], [\"2024-04-30 13:21:00-04:00\", 37.460659], [\"2024-04-30 13:22:00-04:00\", 37.460542], [\"2024-04-30 13:23:00-04:00\", 37.459945], [\"2024-04-30 13:24:00-04:00\", 37.459269], [\"2024-04-30 13:25:00-04:00\", 37.45874], [\"2024-04-30 13:26:00-04:00\", 37.458561], [\"2024-04-30 13:27:00-04:00\", 37.458097], [\"2024-04-30 13:28:00-04:00\", 37.456025], [\"2024-04-30 13:29:00-04:00\", 37.455496], [\"2024-04-30 13:30:00-04:00\", 37.454985], [\"2024-04-30 13:31:00-04:00\", 37.454663], [\"2024-04-30 13:32:00-04:00\", 37.454405], [\"2024-04-30 13:33:00-04:00\", 37.454076], [\"2024-04-30 13:34:00-04:00\", 37.453858], [\"2024-04-30 13:35:00-04:00\", 37.453409], [\"2024-04-30 13:36:00-04:00\", 37.451536], [\"2024-04-30 13:37:00-04:00\", 37.451068], [\"2024-04-30 13:38:00-04:00\", 37.45058], [\"2024-04-30 13:39:00-04:00\", 37.450264], [\"2024-04-30 13:40:00-04:00\", 37.448502], [\"2024-04-30 13:41:00-04:00\", 37.447454], [\"2024-04-30 13:42:00-04:00\", 37.447321], [\"2024-04-30 13:43:00-04:00\", 37.447056], [\"2024-04-30 13:44:00-04:00\", 37.445912], [\"2024-04-30 13:45:00-04:00\", 37.445688], [\"2024-04-30 13:46:00-04:00\", 37.44517], [\"2024-04-30 13:47:00-04:00\", 37.44483], [\"2024-04-30 13:48:00-04:00\", 37.444562], [\"2024-04-30 13:49:00-04:00\", 37.444414], [\"2024-04-30 13:50:00-04:00\", 37.440621], [\"2024-04-30 13:51:00-04:00\", 37.440403], [\"2024-04-30 13:52:00-04:00\", 37.440055], [\"2024-04-30 13:53:00-04:00\", 37.439937], [\"2024-04-30 13:54:00-04:00\", 37.439866], [\"2024-04-30 13:55:00-04:00\", 37.439538], [\"2024-04-30 13:56:00-04:00\", 37.439417], [\"2024-04-30 13:57:00-04:00\", 37.439074], [\"2024-04-30 13:58:00-04:00\", 37.437554], [\"2024-04-30 13:59:00-04:00\", 37.437354], [\"2024-04-30 14:00:00-04:00\", 37.436803], [\"2024-04-30 14:01:00-04:00\", 37.436247], [\"2024-04-30 14:02:00-04:00\", 37.436069], [\"2024-04-30 14:03:00-04:00\", 37.435941], [\"2024-04-30 14:04:00-04:00\", 37.435811], [\"2024-04-30 14:05:00-04:00\", 37.435551], [\"2024-04-30 14:06:00-04:00\", 37.435391], [\"2024-04-30 14:07:00-04:00\", 37.435213], [\"2024-04-30 14:08:00-04:00\", 37.434907], [\"2024-04-30 14:09:00-04:00\", 37.434651], [\"2024-04-30 14:10:00-04:00\", 37.433746], [\"2024-04-30 14:11:00-04:00\", 37.433424], [\"2024-04-30 14:12:00-04:00\", 37.433011], [\"2024-04-30 14:13:00-04:00\", 37.432681], [\"2024-04-30 14:14:00-04:00\", 37.432489], [\"2024-04-30 14:15:00-04:00\", 37.432351], [\"2024-04-30 14:16:00-04:00\", 37.43162], [\"2024-04-30 14:17:00-04:00\", 37.431179], [\"2024-04-30 14:18:00-04:00\", 37.430998], [\"2024-04-30 14:19:00-04:00\", 37.430633], [\"2024-04-30 14:20:00-04:00\", 37.430372], [\"2024-04-30 14:21:00-04:00\", 37.429984], [\"2024-04-30 14:22:00-04:00\", 37.429678], [\"2024-04-30 14:23:00-04:00\", 37.429328], [\"2024-04-30 14:24:00-04:00\", 37.428963], [\"2024-04-30 14:25:00-04:00\", 37.428216], [\"2024-04-30 14:26:00-04:00\", 37.426938], [\"2024-04-30 14:27:00-04:00\", 37.426584], [\"2024-04-30 14:28:00-04:00\", 37.425815], [\"2024-04-30 14:29:00-04:00\", 37.425125], [\"2024-04-30 14:30:00-04:00\", 37.424439], [\"2024-04-30 14:31:00-04:00\", 37.422792], [\"2024-04-30 14:32:00-04:00\", 37.421942], [\"2024-04-30 14:33:00-04:00\", 37.40877], [\"2024-04-30 14:34:00-04:00\", 37.407511], [\"2024-04-30 14:35:00-04:00\", 37.406557], [\"2024-04-30 14:36:00-04:00\", 37.405199], [\"2024-04-30 14:37:00-04:00\", 37.403835], [\"2024-04-30 14:38:00-04:00\", 37.403406], [\"2024-04-30 14:39:00-04:00\", 37.402774], [\"2024-04-30 14:40:00-04:00\", 37.402008], [\"2024-04-30 14:41:00-04:00\", 37.399714], [\"2024-04-30 14:42:00-04:00\", 37.399316], [\"2024-04-30 14:43:00-04:00\", 37.3988], [\"2024-04-30 14:44:00-04:00\", 37.397577], [\"2024-04-30 14:45:00-04:00\", 37.396501], [\"2024-04-30 14:46:00-04:00\", 37.395859], [\"2024-04-30 14:47:00-04:00\", 37.395261], [\"2024-04-30 14:48:00-04:00\", 37.39478], [\"2024-04-30 14:49:00-04:00\", 37.393044], [\"2024-04-30 14:50:00-04:00\", 37.391827], [\"2024-04-30 14:51:00-04:00\", 37.389337], [\"2024-04-30 14:52:00-04:00\", 37.388179], [\"2024-04-30 14:53:00-04:00\", 37.387879], [\"2024-04-30 14:54:00-04:00\", 37.387423], [\"2024-04-30 14:55:00-04:00\", 37.387106], [\"2024-04-30 14:56:00-04:00\", 37.386336], [\"2024-04-30 14:57:00-04:00\", 37.385582], [\"2024-04-30 14:58:00-04:00\", 37.385083], [\"2024-04-30 14:59:00-04:00\", 37.384293], [\"2024-04-30 15:00:00-04:00\", 37.383014], [\"2024-04-30 15:01:00-04:00\", 37.381974], [\"2024-04-30 15:02:00-04:00\", 37.380862], [\"2024-04-30 15:03:00-04:00\", 37.38026], [\"2024-04-30 15:04:00-04:00\", 37.380088], [\"2024-04-30 15:05:00-04:00\", 37.379788], [\"2024-04-30 15:06:00-04:00\", 37.379463], [\"2024-04-30 15:07:00-04:00\", 37.378939], [\"2024-04-30 15:08:00-04:00\", 37.378611], [\"2024-04-30 15:09:00-04:00\", 37.37815], [\"2024-04-30 15:10:00-04:00\", 37.37737], [\"2024-04-30 15:11:00-04:00\", 37.376868], [\"2024-04-30 15:12:00-04:00\", 37.376612], [\"2024-04-30 15:13:00-04:00\", 37.376212], [\"2024-04-30 15:14:00-04:00\", 37.375665], [\"2024-04-30 15:15:00-04:00\", 37.37507], [\"2024-04-30 15:16:00-04:00\", 37.373512], [\"2024-04-30 15:17:00-04:00\", 37.371923], [\"2024-04-30 15:18:00-04:00\", 37.371242], [\"2024-04-30 15:19:00-04:00\", 37.370582], [\"2024-04-30 15:20:00-04:00\", 37.36999], [\"2024-04-30 15:21:00-04:00\", 37.369552], [\"2024-04-30 15:22:00-04:00\", 37.368566], [\"2024-04-30 15:23:00-04:00\", 37.367576], [\"2024-04-30 15:24:00-04:00\", 37.366891], [\"2024-04-30 15:25:00-04:00\", 37.36643], [\"2024-04-30 15:26:00-04:00\", 37.365581], [\"2024-04-30 15:27:00-04:00\", 37.364668], [\"2024-04-30 15:28:00-04:00\", 37.362967], [\"2024-04-30 15:29:00-04:00\", 37.360934], [\"2024-04-30 15:30:00-04:00\", 37.35995], [\"2024-04-30 15:31:00-04:00\", 37.358619], [\"2024-04-30 15:32:00-04:00\", 37.357588], [\"2024-04-30 15:33:00-04:00\", 37.357124], [\"2024-04-30 15:34:00-04:00\", 37.356302], [\"2024-04-30 15:35:00-04:00\", 37.355062], [\"2024-04-30 15:36:00-04:00\", 37.3542], [\"2024-04-30 15:37:00-04:00\", 37.352348], [\"2024-04-30 15:38:00-04:00\", 37.351867], [\"2024-04-30 15:39:00-04:00\", 37.350693], [\"2024-04-30 15:40:00-04:00\", 37.34932], [\"2024-04-30 15:41:00-04:00\", 37.348795], [\"2024-04-30 15:42:00-04:00\", 37.346994], [\"2024-04-30 15:43:00-04:00\", 37.345177], [\"2024-04-30 15:44:00-04:00\", 37.344382], [\"2024-04-30 15:45:00-04:00\", 37.342391], [\"2024-04-30 15:46:00-04:00\", 37.340797], [\"2024-04-30 15:47:00-04:00\", 37.339699], [\"2024-04-30 15:48:00-04:00\", 37.337764], [\"2024-04-30 15:49:00-04:00\", 37.336263], [\"2024-04-30 15:50:00-04:00\", 37.333754], [\"2024-04-30 15:51:00-04:00\", 37.331912], [\"2024-04-30 15:52:00-04:00\", 37.329655], [\"2024-04-30 15:53:00-04:00\", 37.326916], [\"2024-04-30 15:54:00-04:00\", 37.323223], [\"2024-04-30 15:55:00-04:00\", 37.320119], [\"2024-04-30 15:56:00-04:00\", 37.31652], [\"2024-04-30 15:57:00-04:00\", 37.31309], [\"2024-04-30 15:58:00-04:00\", 37.306853], [\"2024-04-30 15:59:00-04:00\", 37.295006], [\"2024-04-30 16:00:00-04:00\", 37.243979], [\"2024-05-01 09:30:00-04:00\", 37.21], [\"2024-05-01 09:31:00-04:00\", 37.228484], [\"2024-05-01 09:32:00-04:00\", 37.250394], [\"2024-05-01 09:33:00-04:00\", 37.26261], [\"2024-05-01 09:34:00-04:00\", 37.258368], [\"2024-05-01 09:35:00-04:00\", 37.242531], [\"2024-05-01 09:36:00-04:00\", 37.238756], [\"2024-05-01 09:37:00-04:00\", 37.237441], [\"2024-05-01 09:38:00-04:00\", 37.233852], [\"2024-05-01 09:39:00-04:00\", 37.232108], [\"2024-05-01 09:40:00-04:00\", 37.225449], [\"2024-05-01 09:41:00-04:00\", 37.218381], [\"2024-05-01 09:42:00-04:00\", 37.211848], [\"2024-05-01 09:43:00-04:00\", 37.208199], [\"2024-05-01 09:44:00-04:00\", 37.206519], [\"2024-05-01 09:45:00-04:00\", 37.204643], [\"2024-05-01 09:46:00-04:00\", 37.195279], [\"2024-05-01 09:47:00-04:00\", 37.181863], [\"2024-05-01 09:48:00-04:00\", 37.176413], [\"2024-05-01 09:49:00-04:00\", 37.167173], [\"2024-05-01 09:50:00-04:00\", 37.164334], [\"2024-05-01 09:51:00-04:00\", 37.156265], [\"2024-05-01 09:52:00-04:00\", 37.148844], [\"2024-05-01 09:53:00-04:00\", 37.144171], [\"2024-05-01 09:54:00-04:00\", 37.133388], [\"2024-05-01 09:55:00-04:00\", 37.130292], [\"2024-05-01 09:56:00-04:00\", 37.127861], [\"2024-05-01 09:57:00-04:00\", 37.124534], [\"2024-05-01 09:58:00-04:00\", 37.121867], [\"2024-05-01 09:59:00-04:00\", 37.121054], [\"2024-05-01 10:00:00-04:00\", 37.117375], [\"2024-05-01 10:01:00-04:00\", 37.114983], [\"2024-05-01 10:02:00-04:00\", 37.114103], [\"2024-05-01 10:03:00-04:00\", 37.113272], [\"2024-05-01 10:04:00-04:00\", 37.11278], [\"2024-05-01 10:05:00-04:00\", 37.112726], [\"2024-05-01 10:06:00-04:00\", 37.112813], [\"2024-05-01 10:07:00-04:00\", 37.112973], [\"2024-05-01 10:08:00-04:00\", 37.113028], [\"2024-05-01 10:09:00-04:00\", 37.113064], [\"2024-05-01 10:10:00-04:00\", 37.113015], [\"2024-05-01 10:11:00-04:00\", 37.112986], [\"2024-05-01 10:12:00-04:00\", 37.112826], [\"2024-05-01 10:13:00-04:00\", 37.112762], [\"2024-05-01 10:14:00-04:00\", 37.112791], [\"2024-05-01 10:15:00-04:00\", 37.112729], [\"2024-05-01 10:16:00-04:00\", 37.112734], [\"2024-05-01 10:17:00-04:00\", 37.112736], [\"2024-05-01 10:18:00-04:00\", 37.112438], [\"2024-05-01 10:19:00-04:00\", 37.112222], [\"2024-05-01 10:20:00-04:00\", 37.111885], [\"2024-05-01 10:21:00-04:00\", 37.111562], [\"2024-05-01 10:22:00-04:00\", 37.111201], [\"2024-05-01 10:23:00-04:00\", 37.110861], [\"2024-05-01 10:24:00-04:00\", 37.110433], [\"2024-05-01 10:25:00-04:00\", 37.110136], [\"2024-05-01 10:26:00-04:00\", 37.109657], [\"2024-05-01 10:27:00-04:00\", 37.109414], [\"2024-05-01 10:28:00-04:00\", 37.10891], [\"2024-05-01 10:29:00-04:00\", 37.108126], [\"2024-05-01 10:30:00-04:00\", 37.107241], [\"2024-05-01 10:31:00-04:00\", 37.106902], [\"2024-05-01 10:32:00-04:00\", 37.106375], [\"2024-05-01 10:33:00-04:00\", 37.105684], [\"2024-05-01 10:34:00-04:00\", 37.105443], [\"2024-05-01 10:35:00-04:00\", 37.105149], [\"2024-05-01 10:36:00-04:00\", 37.104799], [\"2024-05-01 10:37:00-04:00\", 37.104518], [\"2024-05-01 10:38:00-04:00\", 37.104339], [\"2024-05-01 10:39:00-04:00\", 37.103901], [\"2024-05-01 10:40:00-04:00\", 37.103691], [\"2024-05-01 10:41:00-04:00\", 37.103429], [\"2024-05-01 10:42:00-04:00\", 37.102768], [\"2024-05-01 10:43:00-04:00\", 37.102338], [\"2024-05-01 10:44:00-04:00\", 37.102145], [\"2024-05-01 10:45:00-04:00\", 37.101804], [\"2024-05-01 10:46:00-04:00\", 37.101145], [\"2024-05-01 10:47:00-04:00\", 37.100817], [\"2024-05-01 10:48:00-04:00\", 37.100616], [\"2024-05-01 10:49:00-04:00\", 37.100372], [\"2024-05-01 10:50:00-04:00\", 37.099922], [\"2024-05-01 10:51:00-04:00\", 37.099513], [\"2024-05-01 10:52:00-04:00\", 37.099078], [\"2024-05-01 10:53:00-04:00\", 37.098885], [\"2024-05-01 10:54:00-04:00\", 37.098747], [\"2024-05-01 10:55:00-04:00\", 37.098623], [\"2024-05-01 10:56:00-04:00\", 37.098457], [\"2024-05-01 10:57:00-04:00\", 37.09832], [\"2024-05-01 10:58:00-04:00\", 37.098293], [\"2024-05-01 10:59:00-04:00\", 37.098264], [\"2024-05-01 11:00:00-04:00\", 37.098186], [\"2024-05-01 11:01:00-04:00\", 37.098127], [\"2024-05-01 11:02:00-04:00\", 37.098058], [\"2024-05-01 11:03:00-04:00\", 37.097979], [\"2024-05-01 11:04:00-04:00\", 37.097938], [\"2024-05-01 11:05:00-04:00\", 37.097928], [\"2024-05-01 11:06:00-04:00\", 37.097923], [\"2024-05-01 11:07:00-04:00\", 37.097874], [\"2024-05-01 11:08:00-04:00\", 37.097723], [\"2024-05-01 11:09:00-04:00\", 37.097522], [\"2024-05-01 11:10:00-04:00\", 37.097376], [\"2024-05-01 11:11:00-04:00\", 37.097046], [\"2024-05-01 11:12:00-04:00\", 37.096627], [\"2024-05-01 11:13:00-04:00\", 37.096193], [\"2024-05-01 11:14:00-04:00\", 37.095643], [\"2024-05-01 11:15:00-04:00\", 37.095377], [\"2024-05-01 11:16:00-04:00\", 37.095124], [\"2024-05-01 11:17:00-04:00\", 37.094651], [\"2024-05-01 11:18:00-04:00\", 37.094141], [\"2024-05-01 11:19:00-04:00\", 37.093554], [\"2024-05-01 11:20:00-04:00\", 37.092963], [\"2024-05-01 11:21:00-04:00\", 37.09279], [\"2024-05-01 11:22:00-04:00\", 37.092738], [\"2024-05-01 11:23:00-04:00\", 37.09261], [\"2024-05-01 11:24:00-04:00\", 37.092458], [\"2024-05-01 11:25:00-04:00\", 37.092361], [\"2024-05-01 11:26:00-04:00\", 37.09228], [\"2024-05-01 11:27:00-04:00\", 37.092238], [\"2024-05-01 11:28:00-04:00\", 37.092119], [\"2024-05-01 11:29:00-04:00\", 37.092035], [\"2024-05-01 11:30:00-04:00\", 37.091998], [\"2024-05-01 11:31:00-04:00\", 37.091988], [\"2024-05-01 11:32:00-04:00\", 37.091805], [\"2024-05-01 11:33:00-04:00\", 37.091676], [\"2024-05-01 11:34:00-04:00\", 37.090992], [\"2024-05-01 11:35:00-04:00\", 37.090571], [\"2024-05-01 11:36:00-04:00\", 37.090238], [\"2024-05-01 11:37:00-04:00\", 37.089963], [\"2024-05-01 11:38:00-04:00\", 37.089476], [\"2024-05-01 11:39:00-04:00\", 37.089081], [\"2024-05-01 11:40:00-04:00\", 37.088775], [\"2024-05-01 11:41:00-04:00\", 37.088435], [\"2024-05-01 11:42:00-04:00\", 37.08779], [\"2024-05-01 11:43:00-04:00\", 37.087565], [\"2024-05-01 11:44:00-04:00\", 37.087191], [\"2024-05-01 11:45:00-04:00\", 37.086558], [\"2024-05-01 11:46:00-04:00\", 37.085523], [\"2024-05-01 11:47:00-04:00\", 37.084722], [\"2024-05-01 11:48:00-04:00\", 37.083979], [\"2024-05-01 11:49:00-04:00\", 37.083164], [\"2024-05-01 11:50:00-04:00\", 37.082323], [\"2024-05-01 11:51:00-04:00\", 37.081265], [\"2024-05-01 11:52:00-04:00\", 37.079847], [\"2024-05-01 11:53:00-04:00\", 37.07948], [\"2024-05-01 11:54:00-04:00\", 37.076638], [\"2024-05-01 11:55:00-04:00\", 37.076196], [\"2024-05-01 11:56:00-04:00\", 37.075954], [\"2024-05-01 11:57:00-04:00\", 37.07537], [\"2024-05-01 11:58:00-04:00\", 37.075131], [\"2024-05-01 11:59:00-04:00\", 37.075042], [\"2024-05-01 12:00:00-04:00\", 37.074915], [\"2024-05-01 12:01:00-04:00\", 37.074859], [\"2024-05-01 12:02:00-04:00\", 37.07476], [\"2024-05-01 12:03:00-04:00\", 37.07471], [\"2024-05-01 12:04:00-04:00\", 37.074638], [\"2024-05-01 12:05:00-04:00\", 37.074525], [\"2024-05-01 12:06:00-04:00\", 37.07442], [\"2024-05-01 12:07:00-04:00\", 37.07427], [\"2024-05-01 12:08:00-04:00\", 37.074143], [\"2024-05-01 12:09:00-04:00\", 37.073994], [\"2024-05-01 12:10:00-04:00\", 37.073723], [\"2024-05-01 12:11:00-04:00\", 37.073634], [\"2024-05-01 12:12:00-04:00\", 37.073091], [\"2024-05-01 12:13:00-04:00\", 37.072916], [\"2024-05-01 12:14:00-04:00\", 37.072698], [\"2024-05-01 12:15:00-04:00\", 37.072619], [\"2024-05-01 12:16:00-04:00\", 37.072357], [\"2024-05-01 12:17:00-04:00\", 37.072108], [\"2024-05-01 12:18:00-04:00\", 37.071758], [\"2024-05-01 12:19:00-04:00\", 37.071499], [\"2024-05-01 12:20:00-04:00\", 37.070734], [\"2024-05-01 12:21:00-04:00\", 37.069592], [\"2024-05-01 12:22:00-04:00\", 37.06897], [\"2024-05-01 12:23:00-04:00\", 37.068341], [\"2024-05-01 12:24:00-04:00\", 37.068027], [\"2024-05-01 12:25:00-04:00\", 37.067657], [\"2024-05-01 12:26:00-04:00\", 37.06743], [\"2024-05-01 12:27:00-04:00\", 37.067229], [\"2024-05-01 12:28:00-04:00\", 37.066392], [\"2024-05-01 12:29:00-04:00\", 37.065675], [\"2024-05-01 12:30:00-04:00\", 37.065444], [\"2024-05-01 12:31:00-04:00\", 37.06531], [\"2024-05-01 12:32:00-04:00\", 37.064591], [\"2024-05-01 12:33:00-04:00\", 37.064073], [\"2024-05-01 12:34:00-04:00\", 37.063703], [\"2024-05-01 12:35:00-04:00\", 37.063453], [\"2024-05-01 12:36:00-04:00\", 37.063106], [\"2024-05-01 12:37:00-04:00\", 37.062508], [\"2024-05-01 12:38:00-04:00\", 37.06225], [\"2024-05-01 12:39:00-04:00\", 37.061324], [\"2024-05-01 12:40:00-04:00\", 37.061099], [\"2024-05-01 12:41:00-04:00\", 37.060779], [\"2024-05-01 12:42:00-04:00\", 37.060354], [\"2024-05-01 12:43:00-04:00\", 37.059974], [\"2024-05-01 12:44:00-04:00\", 37.058911], [\"2024-05-01 12:45:00-04:00\", 37.058223], [\"2024-05-01 12:46:00-04:00\", 37.057768], [\"2024-05-01 12:47:00-04:00\", 37.057563], [\"2024-05-01 12:48:00-04:00\", 37.057426], [\"2024-05-01 12:49:00-04:00\", 37.05733], [\"2024-05-01 12:50:00-04:00\", 37.057101], [\"2024-05-01 12:51:00-04:00\", 37.056793], [\"2024-05-01 12:52:00-04:00\", 37.056582], [\"2024-05-01 12:53:00-04:00\", 37.056461], [\"2024-05-01 12:54:00-04:00\", 37.05619], [\"2024-05-01 12:55:00-04:00\", 37.056118], [\"2024-05-01 12:56:00-04:00\", 37.055947], [\"2024-05-01 12:57:00-04:00\", 37.055331], [\"2024-05-01 12:58:00-04:00\", 37.055198], [\"2024-05-01 12:59:00-04:00\", 37.054662], [\"2024-05-01 13:00:00-04:00\", 37.053691], [\"2024-05-01 13:01:00-04:00\", 37.053548], [\"2024-05-01 13:02:00-04:00\", 37.052472], [\"2024-05-01 13:03:00-04:00\", 37.052258], [\"2024-05-01 13:04:00-04:00\", 37.051552], [\"2024-05-01 13:05:00-04:00\", 37.04831], [\"2024-05-01 13:06:00-04:00\", 37.047307], [\"2024-05-01 13:07:00-04:00\", 37.046305], [\"2024-05-01 13:08:00-04:00\", 37.0458], [\"2024-05-01 13:09:00-04:00\", 37.044965], [\"2024-05-01 13:10:00-04:00\", 37.04444], [\"2024-05-01 13:11:00-04:00\", 37.044145], [\"2024-05-01 13:12:00-04:00\", 37.043875], [\"2024-05-01 13:13:00-04:00\", 37.043178], [\"2024-05-01 13:14:00-04:00\", 37.042672], [\"2024-05-01 13:15:00-04:00\", 37.04241], [\"2024-05-01 13:16:00-04:00\", 37.036916], [\"2024-05-01 13:17:00-04:00\", 37.036628], [\"2024-05-01 13:18:00-04:00\", 37.036326], [\"2024-05-01 13:19:00-04:00\", 37.035824], [\"2024-05-01 13:20:00-04:00\", 37.035445], [\"2024-05-01 13:21:00-04:00\", 37.034001], [\"2024-05-01 13:22:00-04:00\", 37.032072], [\"2024-05-01 13:23:00-04:00\", 37.031727], [\"2024-05-01 13:24:00-04:00\", 37.031574], [\"2024-05-01 13:25:00-04:00\", 37.031462], [\"2024-05-01 13:26:00-04:00\", 37.031102], [\"2024-05-01 13:27:00-04:00\", 37.030727], [\"2024-05-01 13:28:00-04:00\", 37.030616], [\"2024-05-01 13:29:00-04:00\", 37.030448], [\"2024-05-01 13:30:00-04:00\", 37.030222], [\"2024-05-01 13:31:00-04:00\", 37.030062], [\"2024-05-01 13:32:00-04:00\", 37.02973], [\"2024-05-01 13:33:00-04:00\", 37.029486], [\"2024-05-01 13:34:00-04:00\", 37.028568], [\"2024-05-01 13:35:00-04:00\", 37.028465], [\"2024-05-01 13:36:00-04:00\", 37.028341], [\"2024-05-01 13:37:00-04:00\", 37.028235], [\"2024-05-01 13:38:00-04:00\", 37.028191], [\"2024-05-01 13:39:00-04:00\", 37.028012], [\"2024-05-01 13:40:00-04:00\", 37.027882], [\"2024-05-01 13:41:00-04:00\", 37.027824], [\"2024-05-01 13:42:00-04:00\", 37.027744], [\"2024-05-01 13:43:00-04:00\", 37.027643], [\"2024-05-01 13:44:00-04:00\", 37.027599], [\"2024-05-01 13:45:00-04:00\", 37.027269], [\"2024-05-01 13:46:00-04:00\", 37.027021], [\"2024-05-01 13:47:00-04:00\", 37.026996], [\"2024-05-01 13:48:00-04:00\", 37.026956], [\"2024-05-01 13:49:00-04:00\", 37.02684], [\"2024-05-01 13:50:00-04:00\", 37.026436], [\"2024-05-01 13:51:00-04:00\", 37.025975], [\"2024-05-01 13:52:00-04:00\", 37.02562], [\"2024-05-01 13:53:00-04:00\", 37.025003], [\"2024-05-01 13:54:00-04:00\", 37.023891], [\"2024-05-01 13:55:00-04:00\", 37.023279], [\"2024-05-01 13:56:00-04:00\", 37.022844], [\"2024-05-01 13:57:00-04:00\", 37.022427], [\"2024-05-01 13:58:00-04:00\", 37.021995], [\"2024-05-01 13:59:00-04:00\", 37.021652], [\"2024-05-01 14:00:00-04:00\", 37.020728], [\"2024-05-01 14:01:00-04:00\", 37.019749], [\"2024-05-01 14:02:00-04:00\", 37.019472], [\"2024-05-01 14:03:00-04:00\", 37.019306], [\"2024-05-01 14:04:00-04:00\", 37.019102], [\"2024-05-01 14:05:00-04:00\", 37.01885], [\"2024-05-01 14:06:00-04:00\", 37.018704], [\"2024-05-01 14:07:00-04:00\", 37.018419], [\"2024-05-01 14:08:00-04:00\", 37.018346], [\"2024-05-01 14:09:00-04:00\", 37.018218], [\"2024-05-01 14:10:00-04:00\", 37.018109], [\"2024-05-01 14:11:00-04:00\", 37.017746], [\"2024-05-01 14:12:00-04:00\", 37.017527], [\"2024-05-01 14:13:00-04:00\", 37.017409], [\"2024-05-01 14:14:00-04:00\", 37.016682], [\"2024-05-01 14:15:00-04:00\", 37.01638], [\"2024-05-01 14:16:00-04:00\", 37.01625], [\"2024-05-01 14:17:00-04:00\", 37.016168], [\"2024-05-01 14:18:00-04:00\", 37.015982], [\"2024-05-01 14:19:00-04:00\", 37.015718], [\"2024-05-01 14:20:00-04:00\", 37.015554], [\"2024-05-01 14:21:00-04:00\", 37.015436], [\"2024-05-01 14:22:00-04:00\", 37.015308], [\"2024-05-01 14:23:00-04:00\", 37.01503], [\"2024-05-01 14:24:00-04:00\", 37.014887], [\"2024-05-01 14:25:00-04:00\", 37.014504], [\"2024-05-01 14:26:00-04:00\", 37.0143], [\"2024-05-01 14:27:00-04:00\", 37.014292], [\"2024-05-01 14:28:00-04:00\", 37.014372], [\"2024-05-01 14:29:00-04:00\", 37.014456], [\"2024-05-01 14:30:00-04:00\", 37.014553], [\"2024-05-01 14:31:00-04:00\", 37.013998], [\"2024-05-01 14:32:00-04:00\", 37.013328], [\"2024-05-01 14:33:00-04:00\", 37.013466], [\"2024-05-01 14:34:00-04:00\", 37.014171], [\"2024-05-01 14:35:00-04:00\", 37.01418], [\"2024-05-01 14:36:00-04:00\", 37.01439], [\"2024-05-01 14:37:00-04:00\", 37.014517], [\"2024-05-01 14:38:00-04:00\", 37.015164], [\"2024-05-01 14:39:00-04:00\", 37.015902], [\"2024-05-01 14:40:00-04:00\", 37.018106], [\"2024-05-01 14:41:00-04:00\", 37.018868], [\"2024-05-01 14:42:00-04:00\", 37.02243], [\"2024-05-01 14:43:00-04:00\", 37.02357], [\"2024-05-01 14:44:00-04:00\", 37.026218], [\"2024-05-01 14:45:00-04:00\", 37.027508], [\"2024-05-01 14:46:00-04:00\", 37.030086], [\"2024-05-01 14:47:00-04:00\", 37.032055], [\"2024-05-01 14:48:00-04:00\", 37.034054], [\"2024-05-01 14:49:00-04:00\", 37.035735], [\"2024-05-01 14:50:00-04:00\", 37.038357], [\"2024-05-01 14:51:00-04:00\", 37.039363], [\"2024-05-01 14:52:00-04:00\", 37.040624], [\"2024-05-01 14:53:00-04:00\", 37.041657], [\"2024-05-01 14:54:00-04:00\", 37.042746], [\"2024-05-01 14:55:00-04:00\", 37.045403], [\"2024-05-01 14:56:00-04:00\", 37.048801], [\"2024-05-01 14:57:00-04:00\", 37.050598], [\"2024-05-01 14:58:00-04:00\", 37.055799], [\"2024-05-01 14:59:00-04:00\", 37.060276], [\"2024-05-01 15:00:00-04:00\", 37.068806], [\"2024-05-01 15:01:00-04:00\", 37.071029], [\"2024-05-01 15:02:00-04:00\", 37.072461], [\"2024-05-01 15:03:00-04:00\", 37.075083], [\"2024-05-01 15:04:00-04:00\", 37.077075], [\"2024-05-01 15:05:00-04:00\", 37.078611], [\"2024-05-01 15:06:00-04:00\", 37.079382], [\"2024-05-01 15:07:00-04:00\", 37.080612], [\"2024-05-01 15:08:00-04:00\", 37.081601], [\"2024-05-01 15:09:00-04:00\", 37.084061], [\"2024-05-01 15:10:00-04:00\", 37.085346], [\"2024-05-01 15:11:00-04:00\", 37.087653], [\"2024-05-01 15:12:00-04:00\", 37.088988], [\"2024-05-01 15:13:00-04:00\", 37.08972], [\"2024-05-01 15:14:00-04:00\", 37.091088], [\"2024-05-01 15:15:00-04:00\", 37.0933], [\"2024-05-01 15:16:00-04:00\", 37.094466], [\"2024-05-01 15:17:00-04:00\", 37.095382], [\"2024-05-01 15:18:00-04:00\", 37.096702], [\"2024-05-01 15:19:00-04:00\", 37.097975], [\"2024-05-01 15:20:00-04:00\", 37.099085], [\"2024-05-01 15:21:00-04:00\", 37.101004], [\"2024-05-01 15:22:00-04:00\", 37.10179], [\"2024-05-01 15:23:00-04:00\", 37.102319], [\"2024-05-01 15:24:00-04:00\", 37.103365], [\"2024-05-01 15:25:00-04:00\", 37.104245], [\"2024-05-01 15:26:00-04:00\", 37.106186], [\"2024-05-01 15:27:00-04:00\", 37.111066], [\"2024-05-01 15:28:00-04:00\", 37.113248], [\"2024-05-01 15:29:00-04:00\", 37.114406], [\"2024-05-01 15:30:00-04:00\", 37.116586], [\"2024-05-01 15:31:00-04:00\", 37.11817], [\"2024-05-01 15:32:00-04:00\", 37.120196], [\"2024-05-01 15:33:00-04:00\", 37.121502], [\"2024-05-01 15:34:00-04:00\", 37.122623], [\"2024-05-01 15:35:00-04:00\", 37.122979], [\"2024-05-01 15:36:00-04:00\", 37.123392], [\"2024-05-01 15:37:00-04:00\", 37.12364], [\"2024-05-01 15:38:00-04:00\", 37.123777], [\"2024-05-01 15:39:00-04:00\", 37.123864], [\"2024-05-01 15:40:00-04:00\", 37.124117], [\"2024-05-01 15:41:00-04:00\", 37.124417], [\"2024-05-01 15:42:00-04:00\", 37.124484], [\"2024-05-01 15:43:00-04:00\", 37.124518], [\"2024-05-01 15:44:00-04:00\", 37.124621], [\"2024-05-01 15:45:00-04:00\", 37.12474], [\"2024-05-01 15:46:00-04:00\", 37.124948], [\"2024-05-01 15:47:00-04:00\", 37.125066], [\"2024-05-01 15:48:00-04:00\", 37.125065], [\"2024-05-01 15:49:00-04:00\", 37.125166], [\"2024-05-01 15:50:00-04:00\", 37.125183], [\"2024-05-01 15:51:00-04:00\", 37.124929], [\"2024-05-01 15:52:00-04:00\", 37.124004], [\"2024-05-01 15:53:00-04:00\", 37.123188], [\"2024-05-01 15:54:00-04:00\", 37.122552], [\"2024-05-01 15:55:00-04:00\", 37.121363], [\"2024-05-01 15:56:00-04:00\", 37.120011], [\"2024-05-01 15:57:00-04:00\", 37.118569], [\"2024-05-01 15:58:00-04:00\", 37.116443], [\"2024-05-01 15:59:00-04:00\", 37.112426], [\"2024-05-01 16:00:00-04:00\", 37.091038], [\"2024-05-02 09:30:00-04:00\", 37.44], [\"2024-05-02 09:31:00-04:00\", 37.445245], [\"2024-05-02 09:32:00-04:00\", 37.442706], [\"2024-05-02 09:33:00-04:00\", 37.440858], [\"2024-05-02 09:34:00-04:00\", 37.437123], [\"2024-05-02 09:35:00-04:00\", 37.427095], [\"2024-05-02 09:36:00-04:00\", 37.40826], [\"2024-05-02 09:37:00-04:00\", 37.395945], [\"2024-05-02 09:38:00-04:00\", 37.386317], [\"2024-05-02 09:39:00-04:00\", 37.379979], [\"2024-05-02 09:40:00-04:00\", 37.370073], [\"2024-05-02 09:41:00-04:00\", 37.361629], [\"2024-05-02 09:42:00-04:00\", 37.355268], [\"2024-05-02 09:43:00-04:00\", 37.348427], [\"2024-05-02 09:44:00-04:00\", 37.338994], [\"2024-05-02 09:45:00-04:00\", 37.330462], [\"2024-05-02 09:46:00-04:00\", 37.323953], [\"2024-05-02 09:47:00-04:00\", 37.316486], [\"2024-05-02 09:48:00-04:00\", 37.311877], [\"2024-05-02 09:49:00-04:00\", 37.308644], [\"2024-05-02 09:50:00-04:00\", 37.302151], [\"2024-05-02 09:51:00-04:00\", 37.292691], [\"2024-05-02 09:52:00-04:00\", 37.289952], [\"2024-05-02 09:53:00-04:00\", 37.287936], [\"2024-05-02 09:54:00-04:00\", 37.285645], [\"2024-05-02 09:55:00-04:00\", 37.274749], [\"2024-05-02 09:56:00-04:00\", 37.264953], [\"2024-05-02 09:57:00-04:00\", 37.260536], [\"2024-05-02 09:58:00-04:00\", 37.258654], [\"2024-05-02 09:59:00-04:00\", 37.256278], [\"2024-05-02 10:00:00-04:00\", 37.253645], [\"2024-05-02 10:01:00-04:00\", 37.247439], [\"2024-05-02 10:02:00-04:00\", 37.243427], [\"2024-05-02 10:03:00-04:00\", 37.240774], [\"2024-05-02 10:04:00-04:00\", 37.238306], [\"2024-05-02 10:05:00-04:00\", 37.236384], [\"2024-05-02 10:06:00-04:00\", 37.229553], [\"2024-05-02 10:07:00-04:00\", 37.225857], [\"2024-05-02 10:08:00-04:00\", 37.222191], [\"2024-05-02 10:09:00-04:00\", 37.210705], [\"2024-05-02 10:10:00-04:00\", 37.203454], [\"2024-05-02 10:11:00-04:00\", 37.200708], [\"2024-05-02 10:12:00-04:00\", 37.199067], [\"2024-05-02 10:13:00-04:00\", 37.19654], [\"2024-05-02 10:14:00-04:00\", 37.193338], [\"2024-05-02 10:15:00-04:00\", 37.188273], [\"2024-05-02 10:16:00-04:00\", 37.185938], [\"2024-05-02 10:17:00-04:00\", 37.177357], [\"2024-05-02 10:18:00-04:00\", 37.172031], [\"2024-05-02 10:19:00-04:00\", 37.164869], [\"2024-05-02 10:20:00-04:00\", 37.157275], [\"2024-05-02 10:21:00-04:00\", 37.15304], [\"2024-05-02 10:22:00-04:00\", 37.148822], [\"2024-05-02 10:23:00-04:00\", 37.14615], [\"2024-05-02 10:24:00-04:00\", 37.14326], [\"2024-05-02 10:25:00-04:00\", 37.139024], [\"2024-05-02 10:26:00-04:00\", 37.136656], [\"2024-05-02 10:27:00-04:00\", 37.134316], [\"2024-05-02 10:28:00-04:00\", 37.131853], [\"2024-05-02 10:29:00-04:00\", 37.130918], [\"2024-05-02 10:30:00-04:00\", 37.129572], [\"2024-05-02 10:31:00-04:00\", 37.128937], [\"2024-05-02 10:32:00-04:00\", 37.12507], [\"2024-05-02 10:33:00-04:00\", 37.121695], [\"2024-05-02 10:34:00-04:00\", 37.121028], [\"2024-05-02 10:35:00-04:00\", 37.118163], [\"2024-05-02 10:36:00-04:00\", 37.116326], [\"2024-05-02 10:37:00-04:00\", 37.115715], [\"2024-05-02 10:38:00-04:00\", 37.114935], [\"2024-05-02 10:39:00-04:00\", 37.113674], [\"2024-05-02 10:40:00-04:00\", 37.111822], [\"2024-05-02 10:41:00-04:00\", 37.109111], [\"2024-05-02 10:42:00-04:00\", 37.105065], [\"2024-05-02 10:43:00-04:00\", 37.101007], [\"2024-05-02 10:44:00-04:00\", 37.098839], [\"2024-05-02 10:45:00-04:00\", 37.096776], [\"2024-05-02 10:46:00-04:00\", 37.094882], [\"2024-05-02 10:47:00-04:00\", 37.091914], [\"2024-05-02 10:48:00-04:00\", 37.090582], [\"2024-05-02 10:49:00-04:00\", 37.088913], [\"2024-05-02 10:50:00-04:00\", 37.087415], [\"2024-05-02 10:51:00-04:00\", 37.085916], [\"2024-05-02 10:52:00-04:00\", 37.08313], [\"2024-05-02 10:53:00-04:00\", 37.078131], [\"2024-05-02 10:54:00-04:00\", 37.076431], [\"2024-05-02 10:55:00-04:00\", 37.074527], [\"2024-05-02 10:56:00-04:00\", 37.071449], [\"2024-05-02 10:57:00-04:00\", 37.069872], [\"2024-05-02 10:58:00-04:00\", 37.068323], [\"2024-05-02 10:59:00-04:00\", 37.06645], [\"2024-05-02 11:00:00-04:00\", 37.064617], [\"2024-05-02 11:01:00-04:00\", 37.062687], [\"2024-05-02 11:02:00-04:00\", 37.060878], [\"2024-05-02 11:03:00-04:00\", 37.060034], [\"2024-05-02 11:04:00-04:00\", 37.059108], [\"2024-05-02 11:05:00-04:00\", 37.058427], [\"2024-05-02 11:06:00-04:00\", 37.056737], [\"2024-05-02 11:07:00-04:00\", 37.055812], [\"2024-05-02 11:08:00-04:00\", 37.054433], [\"2024-05-02 11:09:00-04:00\", 37.053495], [\"2024-05-02 11:10:00-04:00\", 37.052402], [\"2024-05-02 11:11:00-04:00\", 37.051768], [\"2024-05-02 11:12:00-04:00\", 37.049944], [\"2024-05-02 11:13:00-04:00\", 37.048776], [\"2024-05-02 11:14:00-04:00\", 37.047524], [\"2024-05-02 11:15:00-04:00\", 37.046534], [\"2024-05-02 11:16:00-04:00\", 37.045442], [\"2024-05-02 11:17:00-04:00\", 37.044099], [\"2024-05-02 11:18:00-04:00\", 37.042893], [\"2024-05-02 11:19:00-04:00\", 37.041832], [\"2024-05-02 11:20:00-04:00\", 37.040253], [\"2024-05-02 11:21:00-04:00\", 37.039659], [\"2024-05-02 11:22:00-04:00\", 37.038651], [\"2024-05-02 11:23:00-04:00\", 37.037613], [\"2024-05-02 11:24:00-04:00\", 37.036752], [\"2024-05-02 11:25:00-04:00\", 37.035371], [\"2024-05-02 11:26:00-04:00\", 37.034648], [\"2024-05-02 11:27:00-04:00\", 37.032873], [\"2024-05-02 11:28:00-04:00\", 37.031273], [\"2024-05-02 11:29:00-04:00\", 37.030802], [\"2024-05-02 11:30:00-04:00\", 37.030142], [\"2024-05-02 11:31:00-04:00\", 37.027954], [\"2024-05-02 11:32:00-04:00\", 37.025438], [\"2024-05-02 11:33:00-04:00\", 37.024234], [\"2024-05-02 11:34:00-04:00\", 37.021422], [\"2024-05-02 11:35:00-04:00\", 37.0207], [\"2024-05-02 11:36:00-04:00\", 37.018497], [\"2024-05-02 11:37:00-04:00\", 37.017181], [\"2024-05-02 11:38:00-04:00\", 37.014594], [\"2024-05-02 11:39:00-04:00\", 37.013821], [\"2024-05-02 11:40:00-04:00\", 37.012064], [\"2024-05-02 11:41:00-04:00\", 37.011093], [\"2024-05-02 11:42:00-04:00\", 37.009889], [\"2024-05-02 11:43:00-04:00\", 37.007783], [\"2024-05-02 11:44:00-04:00\", 37.006598], [\"2024-05-02 11:45:00-04:00\", 37.005425], [\"2024-05-02 11:46:00-04:00\", 37.003338], [\"2024-05-02 11:47:00-04:00\", 37.002645], [\"2024-05-02 11:48:00-04:00\", 37.002283], [\"2024-05-02 11:49:00-04:00\", 37.001557], [\"2024-05-02 11:50:00-04:00\", 37.000278], [\"2024-05-02 11:51:00-04:00\", 36.999488], [\"2024-05-02 11:52:00-04:00\", 36.998658], [\"2024-05-02 11:53:00-04:00\", 36.998245], [\"2024-05-02 11:54:00-04:00\", 36.997432], [\"2024-05-02 11:55:00-04:00\", 36.996998], [\"2024-05-02 11:56:00-04:00\", 36.996505], [\"2024-05-02 11:57:00-04:00\", 36.995765], [\"2024-05-02 11:58:00-04:00\", 36.995666], [\"2024-05-02 11:59:00-04:00\", 36.994649], [\"2024-05-02 12:00:00-04:00\", 36.992883], [\"2024-05-02 12:01:00-04:00\", 36.991784], [\"2024-05-02 12:02:00-04:00\", 36.990099], [\"2024-05-02 12:03:00-04:00\", 36.988481], [\"2024-05-02 12:04:00-04:00\", 36.987521], [\"2024-05-02 12:05:00-04:00\", 36.986152], [\"2024-05-02 12:06:00-04:00\", 36.985418], [\"2024-05-02 12:07:00-04:00\", 36.984769], [\"2024-05-02 12:08:00-04:00\", 36.98347], [\"2024-05-02 12:09:00-04:00\", 36.982194], [\"2024-05-02 12:10:00-04:00\", 36.980646], [\"2024-05-02 12:11:00-04:00\", 36.979019], [\"2024-05-02 12:12:00-04:00\", 36.977671], [\"2024-05-02 12:13:00-04:00\", 36.976822], [\"2024-05-02 12:14:00-04:00\", 36.976005], [\"2024-05-02 12:15:00-04:00\", 36.974164], [\"2024-05-02 12:16:00-04:00\", 36.973117], [\"2024-05-02 12:17:00-04:00\", 36.972287], [\"2024-05-02 12:18:00-04:00\", 36.9715], [\"2024-05-02 12:19:00-04:00\", 36.970984], [\"2024-05-02 12:20:00-04:00\", 36.970236], [\"2024-05-02 12:21:00-04:00\", 36.969344], [\"2024-05-02 12:22:00-04:00\", 36.968009], [\"2024-05-02 12:23:00-04:00\", 36.966748], [\"2024-05-02 12:24:00-04:00\", 36.964107], [\"2024-05-02 12:25:00-04:00\", 36.962983], [\"2024-05-02 12:26:00-04:00\", 36.962426], [\"2024-05-02 12:27:00-04:00\", 36.962084], [\"2024-05-02 12:28:00-04:00\", 36.96122], [\"2024-05-02 12:29:00-04:00\", 36.960534], [\"2024-05-02 12:30:00-04:00\", 36.958572], [\"2024-05-02 12:31:00-04:00\", 36.95771], [\"2024-05-02 12:32:00-04:00\", 36.950679], [\"2024-05-02 12:33:00-04:00\", 36.949334], [\"2024-05-02 12:34:00-04:00\", 36.948328], [\"2024-05-02 12:35:00-04:00\", 36.947196], [\"2024-05-02 12:36:00-04:00\", 36.945171], [\"2024-05-02 12:37:00-04:00\", 36.943694], [\"2024-05-02 12:38:00-04:00\", 36.943033], [\"2024-05-02 12:39:00-04:00\", 36.94154], [\"2024-05-02 12:40:00-04:00\", 36.940706], [\"2024-05-02 12:41:00-04:00\", 36.939502], [\"2024-05-02 12:42:00-04:00\", 36.938801], [\"2024-05-02 12:43:00-04:00\", 36.938199], [\"2024-05-02 12:44:00-04:00\", 36.937683], [\"2024-05-02 12:45:00-04:00\", 36.937269], [\"2024-05-02 12:46:00-04:00\", 36.93701], [\"2024-05-02 12:47:00-04:00\", 36.936406], [\"2024-05-02 12:48:00-04:00\", 36.935767], [\"2024-05-02 12:49:00-04:00\", 36.935286], [\"2024-05-02 12:50:00-04:00\", 36.935014], [\"2024-05-02 12:51:00-04:00\", 36.934544], [\"2024-05-02 12:52:00-04:00\", 36.934306], [\"2024-05-02 12:53:00-04:00\", 36.93352], [\"2024-05-02 12:54:00-04:00\", 36.933267], [\"2024-05-02 12:55:00-04:00\", 36.932941], [\"2024-05-02 12:56:00-04:00\", 36.932548], [\"2024-05-02 12:57:00-04:00\", 36.931899], [\"2024-05-02 12:58:00-04:00\", 36.931606], [\"2024-05-02 12:59:00-04:00\", 36.930721], [\"2024-05-02 13:00:00-04:00\", 36.930552], [\"2024-05-02 13:01:00-04:00\", 36.929583], [\"2024-05-02 13:02:00-04:00\", 36.929326], [\"2024-05-02 13:03:00-04:00\", 36.929111], [\"2024-05-02 13:04:00-04:00\", 36.928822], [\"2024-05-02 13:05:00-04:00\", 36.928397], [\"2024-05-02 13:06:00-04:00\", 36.928104], [\"2024-05-02 13:07:00-04:00\", 36.927931], [\"2024-05-02 13:08:00-04:00\", 36.927501], [\"2024-05-02 13:09:00-04:00\", 36.927392], [\"2024-05-02 13:10:00-04:00\", 36.927173], [\"2024-05-02 13:11:00-04:00\", 36.92689], [\"2024-05-02 13:12:00-04:00\", 36.926691], [\"2024-05-02 13:13:00-04:00\", 36.926334], [\"2024-05-02 13:14:00-04:00\", 36.926246], [\"2024-05-02 13:15:00-04:00\", 36.926113], [\"2024-05-02 13:16:00-04:00\", 36.925905], [\"2024-05-02 13:17:00-04:00\", 36.925824], [\"2024-05-02 13:18:00-04:00\", 36.925748], [\"2024-05-02 13:19:00-04:00\", 36.925601], [\"2024-05-02 13:20:00-04:00\", 36.925323], [\"2024-05-02 13:21:00-04:00\", 36.925179], [\"2024-05-02 13:22:00-04:00\", 36.924046], [\"2024-05-02 13:23:00-04:00\", 36.923972], [\"2024-05-02 13:24:00-04:00\", 36.923728], [\"2024-05-02 13:25:00-04:00\", 36.923585], [\"2024-05-02 13:26:00-04:00\", 36.923482], [\"2024-05-02 13:27:00-04:00\", 36.92341], [\"2024-05-02 13:28:00-04:00\", 36.923365], [\"2024-05-02 13:29:00-04:00\", 36.923291], [\"2024-05-02 13:30:00-04:00\", 36.923186], [\"2024-05-02 13:31:00-04:00\", 36.923107], [\"2024-05-02 13:32:00-04:00\", 36.923049], [\"2024-05-02 13:33:00-04:00\", 36.922932], [\"2024-05-02 13:34:00-04:00\", 36.922821], [\"2024-05-02 13:35:00-04:00\", 36.922753], [\"2024-05-02 13:36:00-04:00\", 36.922688], [\"2024-05-02 13:37:00-04:00\", 36.922379], [\"2024-05-02 13:38:00-04:00\", 36.921996], [\"2024-05-02 13:39:00-04:00\", 36.92178], [\"2024-05-02 13:40:00-04:00\", 36.921688], [\"2024-05-02 13:41:00-04:00\", 36.921356], [\"2024-05-02 13:42:00-04:00\", 36.921196], [\"2024-05-02 13:43:00-04:00\", 36.921017], [\"2024-05-02 13:44:00-04:00\", 36.920926], [\"2024-05-02 13:45:00-04:00\", 36.920755], [\"2024-05-02 13:46:00-04:00\", 36.920614], [\"2024-05-02 13:47:00-04:00\", 36.92043], [\"2024-05-02 13:48:00-04:00\", 36.920258], [\"2024-05-02 13:49:00-04:00\", 36.920177], [\"2024-05-02 13:50:00-04:00\", 36.92006], [\"2024-05-02 13:51:00-04:00\", 36.919972], [\"2024-05-02 13:52:00-04:00\", 36.919761], [\"2024-05-02 13:53:00-04:00\", 36.919655], [\"2024-05-02 13:54:00-04:00\", 36.919383], [\"2024-05-02 13:55:00-04:00\", 36.919239], [\"2024-05-02 13:56:00-04:00\", 36.919207], [\"2024-05-02 13:57:00-04:00\", 36.919146], [\"2024-05-02 13:58:00-04:00\", 36.918897], [\"2024-05-02 13:59:00-04:00\", 36.918755], [\"2024-05-02 14:00:00-04:00\", 36.918555], [\"2024-05-02 14:01:00-04:00\", 36.918278], [\"2024-05-02 14:02:00-04:00\", 36.918141], [\"2024-05-02 14:03:00-04:00\", 36.91796], [\"2024-05-02 14:04:00-04:00\", 36.917811], [\"2024-05-02 14:05:00-04:00\", 36.91766], [\"2024-05-02 14:06:00-04:00\", 36.916929], [\"2024-05-02 14:07:00-04:00\", 36.916614], [\"2024-05-02 14:08:00-04:00\", 36.916341], [\"2024-05-02 14:09:00-04:00\", 36.916147], [\"2024-05-02 14:10:00-04:00\", 36.914409], [\"2024-05-02 14:11:00-04:00\", 36.912385], [\"2024-05-02 14:12:00-04:00\", 36.912157], [\"2024-05-02 14:13:00-04:00\", 36.911077], [\"2024-05-02 14:14:00-04:00\", 36.911013], [\"2024-05-02 14:15:00-04:00\", 36.910771], [\"2024-05-02 14:16:00-04:00\", 36.910419], [\"2024-05-02 14:17:00-04:00\", 36.909707], [\"2024-05-02 14:18:00-04:00\", 36.909455], [\"2024-05-02 14:19:00-04:00\", 36.909142], [\"2024-05-02 14:20:00-04:00\", 36.908999], [\"2024-05-02 14:21:00-04:00\", 36.908726], [\"2024-05-02 14:22:00-04:00\", 36.908628], [\"2024-05-02 14:23:00-04:00\", 36.908249], [\"2024-05-02 14:24:00-04:00\", 36.908185], [\"2024-05-02 14:25:00-04:00\", 36.90804], [\"2024-05-02 14:26:00-04:00\", 36.907964], [\"2024-05-02 14:27:00-04:00\", 36.907746], [\"2024-05-02 14:28:00-04:00\", 36.907643], [\"2024-05-02 14:29:00-04:00\", 36.907315], [\"2024-05-02 14:30:00-04:00\", 36.907206], [\"2024-05-02 14:31:00-04:00\", 36.907152], [\"2024-05-02 14:32:00-04:00\", 36.907026], [\"2024-05-02 14:33:00-04:00\", 36.906972], [\"2024-05-02 14:34:00-04:00\", 36.906911], [\"2024-05-02 14:35:00-04:00\", 36.906875], [\"2024-05-02 14:36:00-04:00\", 36.906877], [\"2024-05-02 14:37:00-04:00\", 36.906896], [\"2024-05-02 14:38:00-04:00\", 36.907042], [\"2024-05-02 14:39:00-04:00\", 36.907115], [\"2024-05-02 14:40:00-04:00\", 36.907634], [\"2024-05-02 14:41:00-04:00\", 36.908119], [\"2024-05-02 14:42:00-04:00\", 36.908269], [\"2024-05-02 14:43:00-04:00\", 36.908258], [\"2024-05-02 14:44:00-04:00\", 36.908247], [\"2024-05-02 14:45:00-04:00\", 36.908168], [\"2024-05-02 14:46:00-04:00\", 36.908149], [\"2024-05-02 14:47:00-04:00\", 36.908194], [\"2024-05-02 14:48:00-04:00\", 36.908271], [\"2024-05-02 14:49:00-04:00\", 36.908448], [\"2024-05-02 14:50:00-04:00\", 36.908626], [\"2024-05-02 14:51:00-04:00\", 36.908646], [\"2024-05-02 14:52:00-04:00\", 36.908765], [\"2024-05-02 14:53:00-04:00\", 36.908897], [\"2024-05-02 14:54:00-04:00\", 36.909077], [\"2024-05-02 14:55:00-04:00\", 36.909129], [\"2024-05-02 14:56:00-04:00\", 36.909239], [\"2024-05-02 14:57:00-04:00\", 36.909854], [\"2024-05-02 14:58:00-04:00\", 36.910097], [\"2024-05-02 14:59:00-04:00\", 36.910204], [\"2024-05-02 15:00:00-04:00\", 36.910094], [\"2024-05-02 15:01:00-04:00\", 36.910052], [\"2024-05-02 15:02:00-04:00\", 36.909743], [\"2024-05-02 15:03:00-04:00\", 36.909526], [\"2024-05-02 15:04:00-04:00\", 36.909208], [\"2024-05-02 15:05:00-04:00\", 36.909102], [\"2024-05-02 15:06:00-04:00\", 36.909026], [\"2024-05-02 15:07:00-04:00\", 36.909024], [\"2024-05-02 15:08:00-04:00\", 36.909086], [\"2024-05-02 15:09:00-04:00\", 36.909267], [\"2024-05-02 15:10:00-04:00\", 36.909469], [\"2024-05-02 15:11:00-04:00\", 36.909564], [\"2024-05-02 15:12:00-04:00\", 36.90955], [\"2024-05-02 15:13:00-04:00\", 36.909545], [\"2024-05-02 15:14:00-04:00\", 36.909508], [\"2024-05-02 15:15:00-04:00\", 36.909467], [\"2024-05-02 15:16:00-04:00\", 36.909438], [\"2024-05-02 15:17:00-04:00\", 36.90936], [\"2024-05-02 15:18:00-04:00\", 36.908868], [\"2024-05-02 15:19:00-04:00\", 36.90867], [\"2024-05-02 15:20:00-04:00\", 36.908663], [\"2024-05-02 15:21:00-04:00\", 36.908683], [\"2024-05-02 15:22:00-04:00\", 36.908695], [\"2024-05-02 15:23:00-04:00\", 36.908707], [\"2024-05-02 15:24:00-04:00\", 36.908715], [\"2024-05-02 15:25:00-04:00\", 36.908672], [\"2024-05-02 15:26:00-04:00\", 36.908638], [\"2024-05-02 15:27:00-04:00\", 36.908626], [\"2024-05-02 15:28:00-04:00\", 36.908611], [\"2024-05-02 15:29:00-04:00\", 36.908526], [\"2024-05-02 15:30:00-04:00\", 36.908278], [\"2024-05-02 15:31:00-04:00\", 36.908192], [\"2024-05-02 15:32:00-04:00\", 36.907892], [\"2024-05-02 15:33:00-04:00\", 36.907732], [\"2024-05-02 15:34:00-04:00\", 36.90744], [\"2024-05-02 15:35:00-04:00\", 36.906829], [\"2024-05-02 15:36:00-04:00\", 36.906498], [\"2024-05-02 15:37:00-04:00\", 36.906216], [\"2024-05-02 15:38:00-04:00\", 36.905446], [\"2024-05-02 15:39:00-04:00\", 36.905078], [\"2024-05-02 15:40:00-04:00\", 36.904779], [\"2024-05-02 15:41:00-04:00\", 36.904467], [\"2024-05-02 15:42:00-04:00\", 36.904127], [\"2024-05-02 15:43:00-04:00\", 36.903772], [\"2024-05-02 15:44:00-04:00\", 36.903463], [\"2024-05-02 15:45:00-04:00\", 36.902967], [\"2024-05-02 15:46:00-04:00\", 36.90274], [\"2024-05-02 15:47:00-04:00\", 36.902471], [\"2024-05-02 15:48:00-04:00\", 36.902274], [\"2024-05-02 15:49:00-04:00\", 36.90184], [\"2024-05-02 15:50:00-04:00\", 36.90096], [\"2024-05-02 15:51:00-04:00\", 36.90046], [\"2024-05-02 15:52:00-04:00\", 36.900118], [\"2024-05-02 15:53:00-04:00\", 36.899623], [\"2024-05-02 15:54:00-04:00\", 36.899309], [\"2024-05-02 15:55:00-04:00\", 36.898729], [\"2024-05-02 15:56:00-04:00\", 36.898468], [\"2024-05-02 15:57:00-04:00\", 36.898058], [\"2024-05-02 15:58:00-04:00\", 36.897453], [\"2024-05-02 15:59:00-04:00\", 36.896624], [\"2024-05-02 16:00:00-04:00\", 36.894054], [\"2024-05-03 09:30:00-04:00\", 37.368333], [\"2024-05-03 09:31:00-04:00\", 37.401456], [\"2024-05-03 09:32:00-04:00\", 37.409415], [\"2024-05-03 09:33:00-04:00\", 37.401639], [\"2024-05-03 09:34:00-04:00\", 37.395099], [\"2024-05-03 09:35:00-04:00\", 37.383212], [\"2024-05-03 09:36:00-04:00\", 37.377408], [\"2024-05-03 09:37:00-04:00\", 37.367148], [\"2024-05-03 09:38:00-04:00\", 37.359238], [\"2024-05-03 09:39:00-04:00\", 37.351793], [\"2024-05-03 09:40:00-04:00\", 37.34985], [\"2024-05-03 09:41:00-04:00\", 37.348891], [\"2024-05-03 09:42:00-04:00\", 37.347826], [\"2024-05-03 09:43:00-04:00\", 37.345479], [\"2024-05-03 09:44:00-04:00\", 37.343981], [\"2024-05-03 09:45:00-04:00\", 37.340683], [\"2024-05-03 09:46:00-04:00\", 37.3408], [\"2024-05-03 09:47:00-04:00\", 37.342086], [\"2024-05-03 09:48:00-04:00\", 37.344781], [\"2024-05-03 09:49:00-04:00\", 37.347465], [\"2024-05-03 09:50:00-04:00\", 37.34814], [\"2024-05-03 09:51:00-04:00\", 37.34876], [\"2024-05-03 09:52:00-04:00\", 37.349781], [\"2024-05-03 09:53:00-04:00\", 37.350885], [\"2024-05-03 09:54:00-04:00\", 37.352463], [\"2024-05-03 09:55:00-04:00\", 37.354759], [\"2024-05-03 09:56:00-04:00\", 37.356012], [\"2024-05-03 09:57:00-04:00\", 37.358213], [\"2024-05-03 09:58:00-04:00\", 37.362136], [\"2024-05-03 09:59:00-04:00\", 37.363683], [\"2024-05-03 10:00:00-04:00\", 37.364607], [\"2024-05-03 10:01:00-04:00\", 37.363533], [\"2024-05-03 10:02:00-04:00\", 37.36208], [\"2024-05-03 10:03:00-04:00\", 37.361085], [\"2024-05-03 10:04:00-04:00\", 37.360257], [\"2024-05-03 10:05:00-04:00\", 37.358501], [\"2024-05-03 10:06:00-04:00\", 37.357583], [\"2024-05-03 10:07:00-04:00\", 37.356108], [\"2024-05-03 10:08:00-04:00\", 37.353882], [\"2024-05-03 10:09:00-04:00\", 37.352175], [\"2024-05-03 10:10:00-04:00\", 37.351166], [\"2024-05-03 10:11:00-04:00\", 37.350127], [\"2024-05-03 10:12:00-04:00\", 37.348679], [\"2024-05-03 10:13:00-04:00\", 37.346608], [\"2024-05-03 10:14:00-04:00\", 37.345225], [\"2024-05-03 10:15:00-04:00\", 37.344384], [\"2024-05-03 10:16:00-04:00\", 37.34372], [\"2024-05-03 10:17:00-04:00\", 37.341755], [\"2024-05-03 10:18:00-04:00\", 37.340864], [\"2024-05-03 10:19:00-04:00\", 37.339948], [\"2024-05-03 10:20:00-04:00\", 37.338405], [\"2024-05-03 10:21:00-04:00\", 37.337244], [\"2024-05-03 10:22:00-04:00\", 37.335477], [\"2024-05-03 10:23:00-04:00\", 37.333267], [\"2024-05-03 10:24:00-04:00\", 37.329989], [\"2024-05-03 10:25:00-04:00\", 37.326512], [\"2024-05-03 10:26:00-04:00\", 37.325425], [\"2024-05-03 10:27:00-04:00\", 37.324777], [\"2024-05-03 10:28:00-04:00\", 37.323613], [\"2024-05-03 10:29:00-04:00\", 37.322674], [\"2024-05-03 10:30:00-04:00\", 37.321682], [\"2024-05-03 10:31:00-04:00\", 37.320611], [\"2024-05-03 10:32:00-04:00\", 37.319944], [\"2024-05-03 10:33:00-04:00\", 37.319375], [\"2024-05-03 10:34:00-04:00\", 37.318421], [\"2024-05-03 10:35:00-04:00\", 37.316697], [\"2024-05-03 10:36:00-04:00\", 37.316101], [\"2024-05-03 10:37:00-04:00\", 37.31534], [\"2024-05-03 10:38:00-04:00\", 37.314549], [\"2024-05-03 10:39:00-04:00\", 37.314071], [\"2024-05-03 10:40:00-04:00\", 37.313697], [\"2024-05-03 10:41:00-04:00\", 37.313287], [\"2024-05-03 10:42:00-04:00\", 37.312631], [\"2024-05-03 10:43:00-04:00\", 37.312051], [\"2024-05-03 10:44:00-04:00\", 37.311769], [\"2024-05-03 10:45:00-04:00\", 37.311351], [\"2024-05-03 10:46:00-04:00\", 37.311055], [\"2024-05-03 10:47:00-04:00\", 37.310872], [\"2024-05-03 10:48:00-04:00\", 37.310602], [\"2024-05-03 10:49:00-04:00\", 37.310188], [\"2024-05-03 10:50:00-04:00\", 37.309706], [\"2024-05-03 10:51:00-04:00\", 37.309277], [\"2024-05-03 10:52:00-04:00\", 37.308804], [\"2024-05-03 10:53:00-04:00\", 37.308225], [\"2024-05-03 10:54:00-04:00\", 37.3076], [\"2024-05-03 10:55:00-04:00\", 37.307161], [\"2024-05-03 10:56:00-04:00\", 37.306662], [\"2024-05-03 10:57:00-04:00\", 37.306234], [\"2024-05-03 10:58:00-04:00\", 37.305979], [\"2024-05-03 10:59:00-04:00\", 37.305493], [\"2024-05-03 11:00:00-04:00\", 37.305253], [\"2024-05-03 11:01:00-04:00\", 37.304831], [\"2024-05-03 11:02:00-04:00\", 37.304253], [\"2024-05-03 11:03:00-04:00\", 37.303808], [\"2024-05-03 11:04:00-04:00\", 37.303615], [\"2024-05-03 11:05:00-04:00\", 37.303153], [\"2024-05-03 11:06:00-04:00\", 37.302831], [\"2024-05-03 11:07:00-04:00\", 37.301749], [\"2024-05-03 11:08:00-04:00\", 37.301473], [\"2024-05-03 11:09:00-04:00\", 37.301017], [\"2024-05-03 11:10:00-04:00\", 37.30061], [\"2024-05-03 11:11:00-04:00\", 37.300406], [\"2024-05-03 11:12:00-04:00\", 37.300259], [\"2024-05-03 11:13:00-04:00\", 37.300106], [\"2024-05-03 11:14:00-04:00\", 37.299957], [\"2024-05-03 11:15:00-04:00\", 37.299722], [\"2024-05-03 11:16:00-04:00\", 37.299616], [\"2024-05-03 11:17:00-04:00\", 37.299415], [\"2024-05-03 11:18:00-04:00\", 37.299057], [\"2024-05-03 11:19:00-04:00\", 37.298799], [\"2024-05-03 11:20:00-04:00\", 37.298713], [\"2024-05-03 11:21:00-04:00\", 37.298046], [\"2024-05-03 11:22:00-04:00\", 37.296846], [\"2024-05-03 11:23:00-04:00\", 37.296496], [\"2024-05-03 11:24:00-04:00\", 37.296314], [\"2024-05-03 11:25:00-04:00\", 37.295851], [\"2024-05-03 11:26:00-04:00\", 37.295593], [\"2024-05-03 11:27:00-04:00\", 37.29545], [\"2024-05-03 11:28:00-04:00\", 37.29501], [\"2024-05-03 11:29:00-04:00\", 37.294727], [\"2024-05-03 11:30:00-04:00\", 37.294502], [\"2024-05-03 11:31:00-04:00\", 37.294282], [\"2024-05-03 11:32:00-04:00\", 37.294211], [\"2024-05-03 11:33:00-04:00\", 37.294012], [\"2024-05-03 11:34:00-04:00\", 37.293709], [\"2024-05-03 11:35:00-04:00\", 37.293514], [\"2024-05-03 11:36:00-04:00\", 37.293214], [\"2024-05-03 11:37:00-04:00\", 37.29306], [\"2024-05-03 11:38:00-04:00\", 37.292906], [\"2024-05-03 11:39:00-04:00\", 37.292439], [\"2024-05-03 11:40:00-04:00\", 37.292252], [\"2024-05-03 11:41:00-04:00\", 37.292007], [\"2024-05-03 11:42:00-04:00\", 37.291761], [\"2024-05-03 11:43:00-04:00\", 37.291705], [\"2024-05-03 11:44:00-04:00\", 37.291575], [\"2024-05-03 11:45:00-04:00\", 37.291446], [\"2024-05-03 11:46:00-04:00\", 37.291325], [\"2024-05-03 11:47:00-04:00\", 37.291165], [\"2024-05-03 11:48:00-04:00\", 37.290867], [\"2024-05-03 11:49:00-04:00\", 37.290726], [\"2024-05-03 11:50:00-04:00\", 37.290658], [\"2024-05-03 11:51:00-04:00\", 37.290357], [\"2024-05-03 11:52:00-04:00\", 37.290251], [\"2024-05-03 11:53:00-04:00\", 37.29004], [\"2024-05-03 11:54:00-04:00\", 37.289674], [\"2024-05-03 11:55:00-04:00\", 37.289371], [\"2024-05-03 11:56:00-04:00\", 37.289296], [\"2024-05-03 11:57:00-04:00\", 37.289195], [\"2024-05-03 11:58:00-04:00\", 37.289132], [\"2024-05-03 11:59:00-04:00\", 37.289005], [\"2024-05-03 12:00:00-04:00\", 37.288897], [\"2024-05-03 12:01:00-04:00\", 37.288836], [\"2024-05-03 12:02:00-04:00\", 37.287994], [\"2024-05-03 12:03:00-04:00\", 37.287805], [\"2024-05-03 12:04:00-04:00\", 37.287685], [\"2024-05-03 12:05:00-04:00\", 37.287622], [\"2024-05-03 12:06:00-04:00\", 37.287541], [\"2024-05-03 12:07:00-04:00\", 37.287521], [\"2024-05-03 12:08:00-04:00\", 37.28743], [\"2024-05-03 12:09:00-04:00\", 37.287301], [\"2024-05-03 12:10:00-04:00\", 37.287217], [\"2024-05-03 12:11:00-04:00\", 37.287109], [\"2024-05-03 12:12:00-04:00\", 37.287028], [\"2024-05-03 12:13:00-04:00\", 37.286882], [\"2024-05-03 12:14:00-04:00\", 37.286761], [\"2024-05-03 12:15:00-04:00\", 37.286698], [\"2024-05-03 12:16:00-04:00\", 37.286671], [\"2024-05-03 12:17:00-04:00\", 37.286592], [\"2024-05-03 12:18:00-04:00\", 37.286139], [\"2024-05-03 12:19:00-04:00\", 37.28607], [\"2024-05-03 12:20:00-04:00\", 37.285979], [\"2024-05-03 12:21:00-04:00\", 37.285767], [\"2024-05-03 12:22:00-04:00\", 37.285713], [\"2024-05-03 12:23:00-04:00\", 37.285571], [\"2024-05-03 12:24:00-04:00\", 37.285463], [\"2024-05-03 12:25:00-04:00\", 37.285393], [\"2024-05-03 12:26:00-04:00\", 37.285303], [\"2024-05-03 12:27:00-04:00\", 37.285261], [\"2024-05-03 12:28:00-04:00\", 37.285177], [\"2024-05-03 12:29:00-04:00\", 37.285124], [\"2024-05-03 12:30:00-04:00\", 37.284435], [\"2024-05-03 12:31:00-04:00\", 37.284352], [\"2024-05-03 12:32:00-04:00\", 37.28429], [\"2024-05-03 12:33:00-04:00\", 37.284201], [\"2024-05-03 12:34:00-04:00\", 37.284181], [\"2024-05-03 12:35:00-04:00\", 37.284149], [\"2024-05-03 12:36:00-04:00\", 37.284133], [\"2024-05-03 12:37:00-04:00\", 37.284037], [\"2024-05-03 12:38:00-04:00\", 37.283956], [\"2024-05-03 12:39:00-04:00\", 37.28388], [\"2024-05-03 12:40:00-04:00\", 37.283848], [\"2024-05-03 12:41:00-04:00\", 37.283837], [\"2024-05-03 12:42:00-04:00\", 37.283769], [\"2024-05-03 12:43:00-04:00\", 37.2837], [\"2024-05-03 12:44:00-04:00\", 37.28368], [\"2024-05-03 12:45:00-04:00\", 37.283662], [\"2024-05-03 12:46:00-04:00\", 37.283582], [\"2024-05-03 12:47:00-04:00\", 37.283423], [\"2024-05-03 12:48:00-04:00\", 37.283386], [\"2024-05-03 12:49:00-04:00\", 37.283324], [\"2024-05-03 12:50:00-04:00\", 37.283218], [\"2024-05-03 12:51:00-04:00\", 37.283138], [\"2024-05-03 12:52:00-04:00\", 37.283008], [\"2024-05-03 12:53:00-04:00\", 37.2829], [\"2024-05-03 12:54:00-04:00\", 37.282799], [\"2024-05-03 12:55:00-04:00\", 37.282544], [\"2024-05-03 12:56:00-04:00\", 37.282489], [\"2024-05-03 12:57:00-04:00\", 37.28246], [\"2024-05-03 12:58:00-04:00\", 37.28227], [\"2024-05-03 12:59:00-04:00\", 37.281838], [\"2024-05-03 13:00:00-04:00\", 37.281715], [\"2024-05-03 13:01:00-04:00\", 37.281423], [\"2024-05-03 13:02:00-04:00\", 37.281204], [\"2024-05-03 13:03:00-04:00\", 37.281044], [\"2024-05-03 13:04:00-04:00\", 37.280969], [\"2024-05-03 13:05:00-04:00\", 37.280739], [\"2024-05-03 13:06:00-04:00\", 37.280685], [\"2024-05-03 13:07:00-04:00\", 37.280489], [\"2024-05-03 13:08:00-04:00\", 37.280208], [\"2024-05-03 13:09:00-04:00\", 37.280176], [\"2024-05-03 13:10:00-04:00\", 37.279869], [\"2024-05-03 13:11:00-04:00\", 37.279544], [\"2024-05-03 13:12:00-04:00\", 37.279131], [\"2024-05-03 13:13:00-04:00\", 37.278948], [\"2024-05-03 13:14:00-04:00\", 37.278884], [\"2024-05-03 13:15:00-04:00\", 37.2788], [\"2024-05-03 13:16:00-04:00\", 37.278755], [\"2024-05-03 13:17:00-04:00\", 37.278624], [\"2024-05-03 13:18:00-04:00\", 37.278595], [\"2024-05-03 13:19:00-04:00\", 37.278234], [\"2024-05-03 13:20:00-04:00\", 37.277943], [\"2024-05-03 13:21:00-04:00\", 37.277895], [\"2024-05-03 13:22:00-04:00\", 37.277746], [\"2024-05-03 13:23:00-04:00\", 37.277315], [\"2024-05-03 13:24:00-04:00\", 37.27712], [\"2024-05-03 13:25:00-04:00\", 37.276939], [\"2024-05-03 13:26:00-04:00\", 37.276905], [\"2024-05-03 13:27:00-04:00\", 37.276665], [\"2024-05-03 13:28:00-04:00\", 37.276505], [\"2024-05-03 13:29:00-04:00\", 37.276404], [\"2024-05-03 13:30:00-04:00\", 37.276336], [\"2024-05-03 13:31:00-04:00\", 37.27613], [\"2024-05-03 13:32:00-04:00\", 37.275824], [\"2024-05-03 13:33:00-04:00\", 37.275701], [\"2024-05-03 13:34:00-04:00\", 37.275634], [\"2024-05-03 13:35:00-04:00\", 37.275508], [\"2024-05-03 13:36:00-04:00\", 37.275437], [\"2024-05-03 13:37:00-04:00\", 37.27543], [\"2024-05-03 13:38:00-04:00\", 37.275299], [\"2024-05-03 13:39:00-04:00\", 37.275266], [\"2024-05-03 13:40:00-04:00\", 37.275225], [\"2024-05-03 13:41:00-04:00\", 37.275182], [\"2024-05-03 13:42:00-04:00\", 37.275133], [\"2024-05-03 13:43:00-04:00\", 37.2751], [\"2024-05-03 13:44:00-04:00\", 37.275089], [\"2024-05-03 13:45:00-04:00\", 37.275041], [\"2024-05-03 13:46:00-04:00\", 37.274956], [\"2024-05-03 13:47:00-04:00\", 37.274934], [\"2024-05-03 13:48:00-04:00\", 37.274919], [\"2024-05-03 13:49:00-04:00\", 37.274893], [\"2024-05-03 13:50:00-04:00\", 37.274853], [\"2024-05-03 13:51:00-04:00\", 37.27481], [\"2024-05-03 13:52:00-04:00\", 37.274773], [\"2024-05-03 13:53:00-04:00\", 37.274763], [\"2024-05-03 13:54:00-04:00\", 37.274756], [\"2024-05-03 13:55:00-04:00\", 37.274728], [\"2024-05-03 13:56:00-04:00\", 37.274724], [\"2024-05-03 13:57:00-04:00\", 37.27466], [\"2024-05-03 13:58:00-04:00\", 37.274626], [\"2024-05-03 13:59:00-04:00\", 37.274552], [\"2024-05-03 14:00:00-04:00\", 37.274529], [\"2024-05-03 14:01:00-04:00\", 37.274525], [\"2024-05-03 14:02:00-04:00\", 37.274519], [\"2024-05-03 14:03:00-04:00\", 37.274506], [\"2024-05-03 14:04:00-04:00\", 37.274489], [\"2024-05-03 14:05:00-04:00\", 37.274481], [\"2024-05-03 14:06:00-04:00\", 37.27448], [\"2024-05-03 14:07:00-04:00\", 37.274476], [\"2024-05-03 14:08:00-04:00\", 37.274453], [\"2024-05-03 14:09:00-04:00\", 37.274441], [\"2024-05-03 14:10:00-04:00\", 37.274407], [\"2024-05-03 14:11:00-04:00\", 37.27426], [\"2024-05-03 14:12:00-04:00\", 37.274248], [\"2024-05-03 14:13:00-04:00\", 37.2742], [\"2024-05-03 14:14:00-04:00\", 37.274117], [\"2024-05-03 14:15:00-04:00\", 37.274083], [\"2024-05-03 14:16:00-04:00\", 37.274043], [\"2024-05-03 14:17:00-04:00\", 37.274018], [\"2024-05-03 14:18:00-04:00\", 37.273944], [\"2024-05-03 14:19:00-04:00\", 37.273933], [\"2024-05-03 14:20:00-04:00\", 37.273853], [\"2024-05-03 14:21:00-04:00\", 37.273821], [\"2024-05-03 14:22:00-04:00\", 37.273765], [\"2024-05-03 14:23:00-04:00\", 37.273658], [\"2024-05-03 14:24:00-04:00\", 37.273648], [\"2024-05-03 14:25:00-04:00\", 37.273568], [\"2024-05-03 14:26:00-04:00\", 37.273514], [\"2024-05-03 14:27:00-04:00\", 37.273476], [\"2024-05-03 14:28:00-04:00\", 37.273375], [\"2024-05-03 14:29:00-04:00\", 37.273297], [\"2024-05-03 14:30:00-04:00\", 37.273231], [\"2024-05-03 14:31:00-04:00\", 37.273109], [\"2024-05-03 14:32:00-04:00\", 37.273083], [\"2024-05-03 14:33:00-04:00\", 37.272986], [\"2024-05-03 14:34:00-04:00\", 37.272964], [\"2024-05-03 14:35:00-04:00\", 37.272887], [\"2024-05-03 14:36:00-04:00\", 37.272828], [\"2024-05-03 14:37:00-04:00\", 37.272812], [\"2024-05-03 14:38:00-04:00\", 37.272725], [\"2024-05-03 14:39:00-04:00\", 37.272686], [\"2024-05-03 14:40:00-04:00\", 37.272491], [\"2024-05-03 14:41:00-04:00\", 37.272286], [\"2024-05-03 14:42:00-04:00\", 37.272186], [\"2024-05-03 14:43:00-04:00\", 37.27217], [\"2024-05-03 14:44:00-04:00\", 37.272078], [\"2024-05-03 14:45:00-04:00\", 37.271899], [\"2024-05-03 14:46:00-04:00\", 37.271751], [\"2024-05-03 14:47:00-04:00\", 37.271682], [\"2024-05-03 14:48:00-04:00\", 37.271561], [\"2024-05-03 14:49:00-04:00\", 37.2715], [\"2024-05-03 14:50:00-04:00\", 37.271436], [\"2024-05-03 14:51:00-04:00\", 37.271391], [\"2024-05-03 14:52:00-04:00\", 37.271241], [\"2024-05-03 14:53:00-04:00\", 37.2712], [\"2024-05-03 14:54:00-04:00\", 37.270973], [\"2024-05-03 14:55:00-04:00\", 37.270658], [\"2024-05-03 14:56:00-04:00\", 37.270614], [\"2024-05-03 14:57:00-04:00\", 37.270507], [\"2024-05-03 14:58:00-04:00\", 37.270406], [\"2024-05-03 14:59:00-04:00\", 37.270345], [\"2024-05-03 15:00:00-04:00\", 37.270156], [\"2024-05-03 15:01:00-04:00\", 37.269972], [\"2024-05-03 15:02:00-04:00\", 37.269291], [\"2024-05-03 15:03:00-04:00\", 37.269016], [\"2024-05-03 15:04:00-04:00\", 37.268251], [\"2024-05-03 15:05:00-04:00\", 37.267993], [\"2024-05-03 15:06:00-04:00\", 37.267798], [\"2024-05-03 15:07:00-04:00\", 37.2672], [\"2024-05-03 15:08:00-04:00\", 37.266543], [\"2024-05-03 15:09:00-04:00\", 37.266504], [\"2024-05-03 15:10:00-04:00\", 37.266386], [\"2024-05-03 15:11:00-04:00\", 37.266001], [\"2024-05-03 15:12:00-04:00\", 37.265843], [\"2024-05-03 15:13:00-04:00\", 37.265746], [\"2024-05-03 15:14:00-04:00\", 37.265069], [\"2024-05-03 15:15:00-04:00\", 37.264843], [\"2024-05-03 15:16:00-04:00\", 37.26461], [\"2024-05-03 15:17:00-04:00\", 37.264512], [\"2024-05-03 15:18:00-04:00\", 37.26399], [\"2024-05-03 15:19:00-04:00\", 37.26379], [\"2024-05-03 15:20:00-04:00\", 37.263586], [\"2024-05-03 15:21:00-04:00\", 37.263491], [\"2024-05-03 15:22:00-04:00\", 37.263397], [\"2024-05-03 15:23:00-04:00\", 37.263239], [\"2024-05-03 15:24:00-04:00\", 37.26308], [\"2024-05-03 15:25:00-04:00\", 37.263006], [\"2024-05-03 15:26:00-04:00\", 37.262874], [\"2024-05-03 15:27:00-04:00\", 37.262755], [\"2024-05-03 15:28:00-04:00\", 37.262663], [\"2024-05-03 15:29:00-04:00\", 37.262642], [\"2024-05-03 15:30:00-04:00\", 37.2622], [\"2024-05-03 15:31:00-04:00\", 37.262077], [\"2024-05-03 15:32:00-04:00\", 37.261946], [\"2024-05-03 15:33:00-04:00\", 37.261732], [\"2024-05-03 15:34:00-04:00\", 37.261652], [\"2024-05-03 15:35:00-04:00\", 37.26149], [\"2024-05-03 15:36:00-04:00\", 37.261198], [\"2024-05-03 15:37:00-04:00\", 37.260991], [\"2024-05-03 15:38:00-04:00\", 37.260864], [\"2024-05-03 15:39:00-04:00\", 37.260735], [\"2024-05-03 15:40:00-04:00\", 37.260535], [\"2024-05-03 15:41:00-04:00\", 37.260481], [\"2024-05-03 15:42:00-04:00\", 37.260351], [\"2024-05-03 15:43:00-04:00\", 37.260329], [\"2024-05-03 15:44:00-04:00\", 37.260018], [\"2024-05-03 15:45:00-04:00\", 37.259908], [\"2024-05-03 15:46:00-04:00\", 37.259754], [\"2024-05-03 15:47:00-04:00\", 37.259615], [\"2024-05-03 15:48:00-04:00\", 37.259378], [\"2024-05-03 15:49:00-04:00\", 37.25921], [\"2024-05-03 15:50:00-04:00\", 37.259006], [\"2024-05-03 15:51:00-04:00\", 37.258844], [\"2024-05-03 15:52:00-04:00\", 37.25863], [\"2024-05-03 15:53:00-04:00\", 37.258529], [\"2024-05-03 15:54:00-04:00\", 37.258388], [\"2024-05-03 15:55:00-04:00\", 37.258261], [\"2024-05-03 15:56:00-04:00\", 37.258154], [\"2024-05-03 15:57:00-04:00\", 37.257986], [\"2024-05-03 15:58:00-04:00\", 37.257882], [\"2024-05-03 15:59:00-04:00\", 37.257591], [\"2024-05-03 16:00:00-04:00\", 37.256081], [\"2024-05-06 09:30:00-04:00\", 37.703333], [\"2024-05-06 09:31:00-04:00\", 37.70403], [\"2024-05-06 09:32:00-04:00\", 37.699411], [\"2024-05-06 09:33:00-04:00\", 37.690764], [\"2024-05-06 09:34:00-04:00\", 37.683172], [\"2024-05-06 09:35:00-04:00\", 37.660743], [\"2024-05-06 09:36:00-04:00\", 37.649476], [\"2024-05-06 09:37:00-04:00\", 37.626722], [\"2024-05-06 09:38:00-04:00\", 37.621374], [\"2024-05-06 09:39:00-04:00\", 37.607365], [\"2024-05-06 09:40:00-04:00\", 37.596773], [\"2024-05-06 09:41:00-04:00\", 37.593641], [\"2024-05-06 09:42:00-04:00\", 37.590786], [\"2024-05-06 09:43:00-04:00\", 37.587855], [\"2024-05-06 09:44:00-04:00\", 37.586463], [\"2024-05-06 09:45:00-04:00\", 37.585118], [\"2024-05-06 09:46:00-04:00\", 37.583167], [\"2024-05-06 09:47:00-04:00\", 37.580973], [\"2024-05-06 09:48:00-04:00\", 37.579354], [\"2024-05-06 09:49:00-04:00\", 37.573395], [\"2024-05-06 09:50:00-04:00\", 37.570524], [\"2024-05-06 09:51:00-04:00\", 37.568505], [\"2024-05-06 09:52:00-04:00\", 37.567213], [\"2024-05-06 09:53:00-04:00\", 37.56636], [\"2024-05-06 09:54:00-04:00\", 37.565554], [\"2024-05-06 09:55:00-04:00\", 37.564276], [\"2024-05-06 09:56:00-04:00\", 37.562631], [\"2024-05-06 09:57:00-04:00\", 37.56208], [\"2024-05-06 09:58:00-04:00\", 37.558014], [\"2024-05-06 09:59:00-04:00\", 37.556479], [\"2024-05-06 10:00:00-04:00\", 37.555149], [\"2024-05-06 10:01:00-04:00\", 37.554266], [\"2024-05-06 10:02:00-04:00\", 37.553126], [\"2024-05-06 10:03:00-04:00\", 37.552111], [\"2024-05-06 10:04:00-04:00\", 37.552301], [\"2024-05-06 10:05:00-04:00\", 37.552757], [\"2024-05-06 10:06:00-04:00\", 37.553361], [\"2024-05-06 10:07:00-04:00\", 37.554421], [\"2024-05-06 10:08:00-04:00\", 37.555441], [\"2024-05-06 10:09:00-04:00\", 37.555944], [\"2024-05-06 10:10:00-04:00\", 37.556439], [\"2024-05-06 10:11:00-04:00\", 37.55768], [\"2024-05-06 10:12:00-04:00\", 37.558856], [\"2024-05-06 10:13:00-04:00\", 37.559748], [\"2024-05-06 10:14:00-04:00\", 37.560717], [\"2024-05-06 10:15:00-04:00\", 37.56211], [\"2024-05-06 10:16:00-04:00\", 37.565787], [\"2024-05-06 10:17:00-04:00\", 37.56855], [\"2024-05-06 10:18:00-04:00\", 37.57], [\"2024-05-06 10:19:00-04:00\", 37.57398], [\"2024-05-06 10:20:00-04:00\", 37.574376], [\"2024-05-06 10:21:00-04:00\", 37.575078], [\"2024-05-06 10:22:00-04:00\", 37.57543], [\"2024-05-06 10:23:00-04:00\", 37.575985], [\"2024-05-06 10:24:00-04:00\", 37.577843], [\"2024-05-06 10:25:00-04:00\", 37.578473], [\"2024-05-06 10:26:00-04:00\", 37.579212], [\"2024-05-06 10:27:00-04:00\", 37.580693], [\"2024-05-06 10:28:00-04:00\", 37.58119], [\"2024-05-06 10:29:00-04:00\", 37.58159], [\"2024-05-06 10:30:00-04:00\", 37.58215], [\"2024-05-06 10:31:00-04:00\", 37.582651], [\"2024-05-06 10:32:00-04:00\", 37.582867], [\"2024-05-06 10:33:00-04:00\", 37.582915], [\"2024-05-06 10:34:00-04:00\", 37.582965], [\"2024-05-06 10:35:00-04:00\", 37.583031], [\"2024-05-06 10:36:00-04:00\", 37.583009], [\"2024-05-06 10:37:00-04:00\", 37.583052], [\"2024-05-06 10:38:00-04:00\", 37.583997], [\"2024-05-06 10:39:00-04:00\", 37.584093], [\"2024-05-06 10:40:00-04:00\", 37.584303], [\"2024-05-06 10:41:00-04:00\", 37.58439], [\"2024-05-06 10:42:00-04:00\", 37.584542], [\"2024-05-06 10:43:00-04:00\", 37.584552], [\"2024-05-06 10:44:00-04:00\", 37.584592], [\"2024-05-06 10:45:00-04:00\", 37.58465], [\"2024-05-06 10:46:00-04:00\", 37.584678], [\"2024-05-06 10:47:00-04:00\", 37.584722], [\"2024-05-06 10:48:00-04:00\", 37.584806], [\"2024-05-06 10:49:00-04:00\", 37.584921], [\"2024-05-06 10:50:00-04:00\", 37.584997], [\"2024-05-06 10:51:00-04:00\", 37.584979], [\"2024-05-06 10:52:00-04:00\", 37.584883], [\"2024-05-06 10:53:00-04:00\", 37.584763], [\"2024-05-06 10:54:00-04:00\", 37.584656], [\"2024-05-06 10:55:00-04:00\", 37.58462], [\"2024-05-06 10:56:00-04:00\", 37.58436], [\"2024-05-06 10:57:00-04:00\", 37.584181], [\"2024-05-06 10:58:00-04:00\", 37.58374], [\"2024-05-06 10:59:00-04:00\", 37.583679], [\"2024-05-06 11:00:00-04:00\", 37.583466], [\"2024-05-06 11:01:00-04:00\", 37.583125], [\"2024-05-06 11:02:00-04:00\", 37.582882], [\"2024-05-06 11:03:00-04:00\", 37.582503], [\"2024-05-06 11:04:00-04:00\", 37.582287], [\"2024-05-06 11:05:00-04:00\", 37.581736], [\"2024-05-06 11:06:00-04:00\", 37.581499], [\"2024-05-06 11:07:00-04:00\", 37.581298], [\"2024-05-06 11:08:00-04:00\", 37.581072], [\"2024-05-06 11:09:00-04:00\", 37.580929], [\"2024-05-06 11:10:00-04:00\", 37.580729], [\"2024-05-06 11:11:00-04:00\", 37.580487], [\"2024-05-06 11:12:00-04:00\", 37.580406], [\"2024-05-06 11:13:00-04:00\", 37.580156], [\"2024-05-06 11:14:00-04:00\", 37.580022], [\"2024-05-06 11:15:00-04:00\", 37.579922], [\"2024-05-06 11:16:00-04:00\", 37.579324], [\"2024-05-06 11:17:00-04:00\", 37.579054], [\"2024-05-06 11:18:00-04:00\", 37.578603], [\"2024-05-06 11:19:00-04:00\", 37.578384], [\"2024-05-06 11:20:00-04:00\", 37.578074], [\"2024-05-06 11:21:00-04:00\", 37.577931], [\"2024-05-06 11:22:00-04:00\", 37.577445], [\"2024-05-06 11:23:00-04:00\", 37.57719], [\"2024-05-06 11:24:00-04:00\", 37.576444], [\"2024-05-06 11:25:00-04:00\", 37.57603], [\"2024-05-06 11:26:00-04:00\", 37.575587], [\"2024-05-06 11:27:00-04:00\", 37.574879], [\"2024-05-06 11:28:00-04:00\", 37.574094], [\"2024-05-06 11:29:00-04:00\", 37.573619], [\"2024-05-06 11:30:00-04:00\", 37.573407], [\"2024-05-06 11:31:00-04:00\", 37.572868], [\"2024-05-06 11:32:00-04:00\", 37.572529], [\"2024-05-06 11:33:00-04:00\", 37.572246], [\"2024-05-06 11:34:00-04:00\", 37.571982], [\"2024-05-06 11:35:00-04:00\", 37.5714], [\"2024-05-06 11:36:00-04:00\", 37.571175], [\"2024-05-06 11:37:00-04:00\", 37.570794]];\n",
|
|
"\n",
|
|
" // Define the dt_args\n",
|
|
" let dt_args = {\"layout\": {\"topStart\": \"pageLength\", \"topEnd\": \"search\", \"bottomStart\": \"info\", \"bottomEnd\": \"paging\"}, \"order\": [], \"warn_on_dom\": true};\n",
|
|
" dt_args[\"data\"] = data;\n",
|
|
"\n",
|
|
" \n",
|
|
" new DataTable(table, dt_args);\n",
|
|
" });\n",
|
|
"</script>\n"
|
|
],
|
|
"text/plain": [
|
|
"vwap_anchor array\n",
|
|
"symbol BAC\n",
|
|
"Open time \n",
|
|
"2024-04-29 09:30:00-04:00 37.856667\n",
|
|
"2024-04-29 09:31:00-04:00 37.857453\n",
|
|
"2024-04-29 09:32:00-04:00 37.850221\n",
|
|
"2024-04-29 09:33:00-04:00 37.849840\n",
|
|
"2024-04-29 09:34:00-04:00 37.850432\n",
|
|
"... ...\n",
|
|
"2024-05-06 11:33:00-04:00 37.572246\n",
|
|
"2024-05-06 11:34:00-04:00 37.571982\n",
|
|
"2024-05-06 11:35:00-04:00 37.571400\n",
|
|
"2024-05-06 11:36:00-04:00 37.571175\n",
|
|
"2024-05-06 11:37:00-04:00 37.570794\n",
|
|
"\n",
|
|
"[2083 rows x 1 columns]"
|
|
]
|
|
},
|
|
"execution_count": 94,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"#WWAP\n",
|
|
"vbt.phelp(vbt.VWAP.run)\n",
|
|
"close = m1_data.close\n",
|
|
"high = m1_data.high\n",
|
|
"low = m1_data.low\n",
|
|
"volume = m1_data.volume\n",
|
|
"vwapD = vbt.VWAP.run(high, low, close, volume, anchor=\"D\")\n",
|
|
"# vwapT = vbt.VWAP.run(high, low, close, volume, anchor=\"T\")\n",
|
|
"\n",
|
|
"#vwap.vwap\n",
|
|
"\n",
|
|
"fig = m1_data.data[\"BAC\"].vbt.ohlcv.plot()\n",
|
|
"vwapD.vwap.vbt.plot(fig=fig)\n",
|
|
"#vwapT.vwap.vbt.plot(fig=fig)\n",
|
|
"fig.show()\n",
|
|
"\n",
|
|
"vwapD.vwap\n",
|
|
"\n",
|
|
"#vwap = vbt.VWAP.run()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 62,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<table id=\"itables_100505c5_e862_46ee_a6d5_5e6ce8421ae1\" class=\"display nowrap\" data-quarto-disable-processing=\"true\" style=\"table-layout:auto;width:auto;margin:auto;caption-side:bottom\">\n",
|
|
"<thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Open</th>\n",
|
|
" <th>High</th>\n",
|
|
" <th>Low</th>\n",
|
|
" <th>Close</th>\n",
|
|
" <th>Volume</th>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Open time</th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" </tr>\n",
|
|
" </thead><tbody><tr>\n",
|
|
"<td style=\"vertical-align:middle; text-align:left\">\n",
|
|
"<div style=\"float:left; margin-right: 10px;\">\n",
|
|
"<a href=https://mwouts.github.io/itables/><svg class=\"main-svg\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
|
|
"width=\"64\" viewBox=\"0 0 500 400\" style=\"font-family: 'Droid Sans', sans-serif;\">\n",
|
|
" <g style=\"fill:#d9d7fc\">\n",
|
|
" <path d=\"M100,400H500V357H100Z\" />\n",
|
|
" <path d=\"M100,300H400V257H100Z\" />\n",
|
|
" <path d=\"M0,200H400V157H0Z\" />\n",
|
|
" <path d=\"M100,100H500V57H100Z\" />\n",
|
|
" <path d=\"M100,350H500V307H100Z\" />\n",
|
|
" <path d=\"M100,250H400V207H100Z\" />\n",
|
|
" <path d=\"M0,150H400V107H0Z\" />\n",
|
|
" <path d=\"M100,50H500V7H100Z\" />\n",
|
|
" </g>\n",
|
|
" <g style=\"fill:#1a1366;stroke:#1a1366;\">\n",
|
|
" <rect x=\"100\" y=\"7\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"0\" y=\"107\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"0;0;400\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"207\" width=\"300\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;300;0\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;400\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"307\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <g style=\"fill:transparent;stroke-width:8; stroke-linejoin:round\" rx=\"5\">\n",
|
|
" <g transform=\"translate(45 50) rotate(-45)\">\n",
|
|
" <circle r=\"33\" cx=\"0\" cy=\"0\" />\n",
|
|
" <rect x=\"-8\" y=\"32\" width=\"16\" height=\"30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(450 152)\">\n",
|
|
" <polyline points=\"-15,-20 -35,-20 -35,40 25,40 25,20\" />\n",
|
|
" <rect x=\"-15\" y=\"-40\" width=\"60\" height=\"60\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(50 352)\">\n",
|
|
" <polygon points=\"-35,-5 0,-40 35,-5\" />\n",
|
|
" <polygon points=\"-35,10 0,45 35,10\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(75 250)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(425 250) rotate(180)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
"</svg>\n",
|
|
"</a>\n",
|
|
"</div>\n",
|
|
"<div>\n",
|
|
"Loading ITables v2.0.1 from the <code>init_notebook_mode</code> cell...\n",
|
|
"(need <a href=https://mwouts.github.io/itables/troubleshooting.html>help</a>?)</td>\n",
|
|
"</div>\n",
|
|
"</tr></tbody>\n",
|
|
"\n",
|
|
"</table>\n",
|
|
"<script type=\"module\">\n",
|
|
" const { DataTable, jQuery: $ } = await import(window._datatables_src_for_itables_2_0_1);\n",
|
|
"\n",
|
|
" document.querySelectorAll(\"#itables_100505c5_e862_46ee_a6d5_5e6ce8421ae1:not(.dataTable)\").forEach(table => {\n",
|
|
" // Define the table data\n",
|
|
" const data = [[\"2024-04-29 09:30:00-04:00\", 37.84, 37.985, 37.7349, 37.88, 2098173.0], [\"2024-04-29 09:45:00-04:00\", 37.875, 38.03, 37.8607, 37.985, 1030038.0], [\"2024-04-29 10:00:00-04:00\", 37.99, 38.06, 37.96, 38.0145, 933777.0], [\"2024-04-29 10:15:00-04:00\", 38.01, 38.03, 37.95, 37.965, 657084.0], [\"2024-04-29 10:30:00-04:00\", 37.965, 37.995, 37.925, 37.96, 617961.0], [\"2024-04-29 10:45:00-04:00\", 37.96, 37.97, 37.91, 37.94, 619011.0], [\"2024-04-29 11:00:00-04:00\", 37.93, 37.96, 37.9, 37.915, 573918.0], [\"2024-04-29 11:15:00-04:00\", 37.915, 37.93, 37.86, 37.8986, 684857.0], [\"2024-04-29 11:30:00-04:00\", 37.895, 37.91, 37.84, 37.845, 440393.0], [\"2024-04-29 11:45:00-04:00\", 37.84, 37.86, 37.8, 37.808, 531641.0], [\"2024-04-29 12:00:00-04:00\", 37.8, 37.8, 37.78, 37.795, 677665.0], [\"2024-04-29 12:15:00-04:00\", 37.8, 37.8, 37.76, 37.765, 267349.0], [\"2024-04-29 12:30:00-04:00\", 37.765, 37.8, 37.75, 37.75, 512259.0], [\"2024-04-29 12:45:00-04:00\", 37.76, 37.77, 37.71, 37.715, 442774.0], [\"2024-04-29 13:00:00-04:00\", 37.715, 37.75, 37.71, 37.7149, 440580.0], [\"2024-04-29 13:15:00-04:00\", 37.71, 37.76, 37.704, 37.7582, 397411.0], [\"2024-04-29 13:30:00-04:00\", 37.76, 37.8, 37.74, 37.775, 474927.0], [\"2024-04-29 13:45:00-04:00\", 37.78, 37.79, 37.7, 37.705, 886580.0], [\"2024-04-29 14:00:00-04:00\", 37.705, 37.76, 37.69, 37.75, 831917.0], [\"2024-04-29 14:15:00-04:00\", 37.74, 37.76, 37.7, 37.7138, 551142.0], [\"2024-04-29 14:30:00-04:00\", 37.715, 37.715, 37.62, 37.6801, 955142.0], [\"2024-04-29 14:45:00-04:00\", 37.685, 37.71, 37.62, 37.625, 586634.0], [\"2024-04-29 15:00:00-04:00\", 37.62, 37.62, 37.45, 37.495, 1746720.0], [\"2024-04-29 15:15:00-04:00\", 37.5, 37.56, 37.48, 37.505, 871839.0], [\"2024-04-29 15:30:00-04:00\", 37.505, 37.56, 37.49, 37.53, 1257430.0], [\"2024-04-29 15:45:00-04:00\", 37.525, 37.56, 37.47, 37.56, 3312148.0], [\"2024-04-29 16:00:00-04:00\", 37.55, 37.62, 37.55, 37.6, 3972104.0], [\"2024-04-30 09:30:00-04:00\", 37.345, 37.57, 37.31, 37.545, 1662525.0], [\"2024-04-30 09:45:00-04:00\", 37.545, 37.58, 37.38, 37.435, 880886.0], [\"2024-04-30 10:00:00-04:00\", 37.43, 37.495, 37.385, 37.47, 795754.0], [\"2024-04-30 10:15:00-04:00\", 37.474, 37.6, 37.455, 37.485, 800677.0], [\"2024-04-30 10:30:00-04:00\", 37.485, 37.59, 37.45, 37.585, 616820.0], [\"2024-04-30 10:45:00-04:00\", 37.585, 37.67, 37.585, 37.64, 798081.0], [\"2024-04-30 11:00:00-04:00\", 37.645, 37.65, 37.495, 37.5186, 773237.0], [\"2024-04-30 11:15:00-04:00\", 37.52, 37.58, 37.485, 37.52, 477357.0], [\"2024-04-30 11:30:00-04:00\", 37.52, 37.52, 37.47, 37.48, 418627.0], [\"2024-04-30 11:45:00-04:00\", 37.475, 37.51, 37.42, 37.465, 495169.0], [\"2024-04-30 12:00:00-04:00\", 37.4601, 37.47, 37.41, 37.45, 367316.0], [\"2024-04-30 12:15:00-04:00\", 37.44, 37.465, 37.4, 37.41, 487481.0], [\"2024-04-30 12:30:00-04:00\", 37.41, 37.415, 37.28, 37.305, 456521.0], [\"2024-04-30 12:45:00-04:00\", 37.305, 37.32, 37.27, 37.275, 570207.0], [\"2024-04-30 13:00:00-04:00\", 37.27, 37.32, 37.244, 37.28, 647498.0], [\"2024-04-30 13:15:00-04:00\", 37.27, 37.3, 37.255, 37.285, 681985.0], [\"2024-04-30 13:30:00-04:00\", 37.285, 37.35, 37.27, 37.34, 770360.0], [\"2024-04-30 13:45:00-04:00\", 37.3345, 37.37, 37.31, 37.365, 1103528.0], [\"2024-04-30 14:00:00-04:00\", 37.365, 37.37, 37.29, 37.2953, 627312.0], [\"2024-04-30 14:15:00-04:00\", 37.295, 37.31, 37.205, 37.235, 619771.0], [\"2024-04-30 14:30:00-04:00\", 37.235, 37.25, 37.17, 37.175, 2117471.0], [\"2024-04-30 14:45:00-04:00\", 37.18, 37.19, 37.1, 37.1395, 881318.0], [\"2024-04-30 15:00:00-04:00\", 37.135, 37.18, 37.1225, 37.125, 652789.0], [\"2024-04-30 15:15:00-04:00\", 37.125, 37.13, 37.07, 37.085, 983478.0], [\"2024-04-30 15:30:00-04:00\", 37.085, 37.1, 37.045, 37.07, 1149019.0], [\"2024-04-30 15:45:00-04:00\", 37.07, 37.09, 36.981, 37.01, 3839969.0], [\"2024-04-30 16:00:00-04:00\", 37.01, 37.09, 36.99, 36.99, 6132025.0], [\"2024-05-01 09:30:00-04:00\", 37.21, 37.41, 37.02, 37.1401, 1969775.0], [\"2024-05-01 09:45:00-04:00\", 37.1504, 37.16, 36.925, 37.045, 1358839.0], [\"2024-05-01 10:00:00-04:00\", 37.045, 37.15, 36.97, 37.115, 759705.0], [\"2024-05-01 10:15:00-04:00\", 37.11, 37.13, 37.03, 37.045, 522474.0], [\"2024-05-01 10:30:00-04:00\", 37.0404, 37.08, 37.01, 37.045, 481548.0], [\"2024-05-01 10:45:00-04:00\", 37.04, 37.09, 37.02, 37.08, 542179.0], [\"2024-05-01 11:00:00-04:00\", 37.08, 37.1, 37.01, 37.0286, 458967.0], [\"2024-05-01 11:15:00-04:00\", 37.025, 37.08, 37.0, 37.08, 450278.0], [\"2024-05-01 11:30:00-04:00\", 37.07, 37.09, 37.01, 37.0276, 772205.0], [\"2024-05-01 11:45:00-04:00\", 37.025, 37.075, 36.97, 37.055, 1314061.0], [\"2024-05-01 12:00:00-04:00\", 37.055, 37.07, 36.99, 37.025, 570263.0], [\"2024-05-01 12:15:00-04:00\", 37.03, 37.03, 36.92, 36.94, 595114.0], [\"2024-05-01 12:30:00-04:00\", 36.94, 36.97, 36.915, 36.935, 544042.0], [\"2024-05-01 12:45:00-04:00\", 36.94, 36.95, 36.91, 36.91, 342223.0], [\"2024-05-01 13:00:00-04:00\", 36.915, 36.93, 36.81, 36.8175, 681234.0], [\"2024-05-01 13:15:00-04:00\", 36.82, 36.89, 36.77, 36.875, 667912.0], [\"2024-05-01 13:30:00-04:00\", 36.8778, 37.01, 36.8733, 36.96, 451184.0], [\"2024-05-01 13:45:00-04:00\", 36.95, 36.96, 36.89, 36.935, 740108.0], [\"2024-05-01 14:00:00-04:00\", 36.94, 37.0, 36.89, 36.915, 873195.0], [\"2024-05-01 14:15:00-04:00\", 36.91, 37.04, 36.91, 37.035, 789907.0], [\"2024-05-01 14:30:00-04:00\", 37.035, 37.415, 36.89, 37.415, 2001542.0], [\"2024-05-01 14:45:00-04:00\", 37.415, 37.49, 37.275, 37.47, 1601771.0], [\"2024-05-01 15:00:00-04:00\", 37.48, 37.505, 37.33, 37.39, 1781770.0], [\"2024-05-01 15:15:00-04:00\", 37.4, 37.43, 37.265, 37.37, 1909248.0], [\"2024-05-01 15:30:00-04:00\", 37.365, 37.365, 37.11, 37.165, 2308846.0], [\"2024-05-01 15:45:00-04:00\", 37.165, 37.2, 36.93, 36.945, 3321566.0], [\"2024-05-01 16:00:00-04:00\", 36.94, 37.05, 36.94, 37.03, 4243195.0], [\"2024-05-02 09:30:00-04:00\", 37.37, 37.49, 37.085, 37.1, 1754673.0], [\"2024-05-02 09:45:00-04:00\", 37.11, 37.17, 37.035, 37.145, 1069209.0], [\"2024-05-02 10:00:00-04:00\", 37.148, 37.15, 36.91, 36.9621, 976657.0], [\"2024-05-02 10:15:00-04:00\", 36.97, 37.02, 36.89, 36.995, 1324885.0], [\"2024-05-02 10:30:00-04:00\", 36.995, 36.995, 36.81, 36.8258, 989839.0], [\"2024-05-02 10:45:00-04:00\", 36.825, 36.89, 36.81, 36.85, 930881.0], [\"2024-05-02 11:00:00-04:00\", 36.85, 36.935, 36.84, 36.875, 878167.0], [\"2024-05-02 11:15:00-04:00\", 36.875, 36.92, 36.8, 36.815, 823515.0], [\"2024-05-02 11:30:00-04:00\", 36.82, 36.83, 36.7, 36.76, 840682.0], [\"2024-05-02 11:45:00-04:00\", 36.755, 36.82, 36.755, 36.77, 555063.0], [\"2024-05-02 12:00:00-04:00\", 36.77, 36.77, 36.69, 36.705, 780673.0], [\"2024-05-02 12:15:00-04:00\", 36.705, 36.76, 36.69, 36.71, 716047.0], [\"2024-05-02 12:30:00-04:00\", 36.705, 36.75, 36.65, 36.75, 1093158.0], [\"2024-05-02 12:45:00-04:00\", 36.7527, 36.77, 36.73, 36.755, 498429.0], [\"2024-05-02 13:00:00-04:00\", 36.755, 36.885, 36.755, 36.8796, 493893.0], [\"2024-05-02 13:15:00-04:00\", 36.875, 36.92, 36.845, 36.9177, 823937.0], [\"2024-05-02 13:30:00-04:00\", 36.915, 36.92, 36.85, 36.875, 830182.0], [\"2024-05-02 13:45:00-04:00\", 36.875, 36.895, 36.8501, 36.875, 713023.0], [\"2024-05-02 14:00:00-04:00\", 36.88, 36.886, 36.83, 36.845, 2102963.0], [\"2024-05-02 14:15:00-04:00\", 36.84, 36.88, 36.79, 36.8701, 936843.0], [\"2024-05-02 14:30:00-04:00\", 36.875, 36.9607, 36.8601, 36.895, 1737102.0], [\"2024-05-02 14:45:00-04:00\", 36.9, 36.98, 36.87, 36.915, 1443014.0], [\"2024-05-02 15:00:00-04:00\", 36.9118, 36.97, 36.82, 36.885, 1283978.0], [\"2024-05-02 15:15:00-04:00\", 36.885, 36.93, 36.85, 36.8778, 1349444.0], [\"2024-05-02 15:30:00-04:00\", 36.87, 36.88, 36.78, 36.805, 1663187.0], [\"2024-05-02 15:45:00-04:00\", 36.8, 36.89, 36.785, 36.89, 3378097.0], [\"2024-05-02 16:00:00-04:00\", 36.88, 36.89, 36.87, 36.89, 4529321.0], [\"2024-05-03 09:30:00-04:00\", 37.25, 37.53, 37.16, 37.29, 4578651.0], [\"2024-05-03 09:45:00-04:00\", 37.29, 37.47, 37.24, 37.415, 2837307.0], [\"2024-05-03 10:00:00-04:00\", 37.42, 37.52, 37.18, 37.225, 2782267.0], [\"2024-05-03 10:15:00-04:00\", 37.225, 37.27, 37.08, 37.165, 1549935.0], [\"2024-05-03 10:30:00-04:00\", 37.17, 37.24, 37.15, 37.225, 1045479.0], [\"2024-05-03 10:45:00-04:00\", 37.22, 37.24, 37.15, 37.18, 725947.0], [\"2024-05-03 11:00:00-04:00\", 37.195, 37.24, 37.17, 37.225, 817348.0], [\"2024-05-03 11:15:00-04:00\", 37.22, 37.235, 37.18, 37.205, 837275.0], [\"2024-05-03 11:30:00-04:00\", 37.21, 37.27, 37.2, 37.205, 768354.0], [\"2024-05-03 11:45:00-04:00\", 37.21, 37.26, 37.19, 37.235, 786222.0], [\"2024-05-03 12:00:00-04:00\", 37.24, 37.26, 37.2, 37.225, 711685.0], [\"2024-05-03 12:15:00-04:00\", 37.225, 37.26, 37.2, 37.245, 485890.0], [\"2024-05-03 12:30:00-04:00\", 37.24, 37.275, 37.23, 37.2503, 744340.0], [\"2024-05-03 12:45:00-04:00\", 37.255, 37.2599, 37.17, 37.205, 436096.0], [\"2024-05-03 13:00:00-04:00\", 37.21, 37.24, 37.18, 37.215, 750408.0], [\"2024-05-03 13:15:00-04:00\", 37.215, 37.23, 37.15, 37.18, 508483.0], [\"2024-05-03 13:30:00-04:00\", 37.18, 37.27, 37.16, 37.245, 411415.0], [\"2024-05-03 13:45:00-04:00\", 37.24, 37.285, 37.23, 37.24, 616344.0], [\"2024-05-03 14:00:00-04:00\", 37.255, 37.285, 37.23, 37.245, 652242.0], [\"2024-05-03 14:15:00-04:00\", 37.245, 37.26, 37.22, 37.235, 528893.0], [\"2024-05-03 14:30:00-04:00\", 37.235, 37.24, 37.18, 37.185, 481778.0], [\"2024-05-03 14:45:00-04:00\", 37.18, 37.21, 37.17, 37.19, 519500.0], [\"2024-05-03 15:00:00-04:00\", 37.19, 37.19, 37.12, 37.14, 1201456.0], [\"2024-05-03 15:15:00-04:00\", 37.135, 37.21, 37.13, 37.195, 653697.0], [\"2024-05-03 15:30:00-04:00\", 37.19, 37.23, 37.16, 37.205, 999719.0], [\"2024-05-03 15:45:00-04:00\", 37.205, 37.27, 37.2, 37.235, 3042197.0], [\"2024-05-03 16:00:00-04:00\", 37.25, 37.25, 37.24, 37.25, 4175598.0], [\"2024-05-06 09:30:00-04:00\", 37.66, 37.775, 37.36, 37.525, 1514612.0], [\"2024-05-06 09:45:00-04:00\", 37.525, 37.57, 37.425, 37.49, 1015426.0], [\"2024-05-06 10:00:00-04:00\", 37.495, 37.64, 37.47, 37.635, 1420282.0], [\"2024-05-06 10:15:00-04:00\", 37.635, 37.69, 37.591, 37.625, 1592625.0], [\"2024-05-06 10:30:00-04:00\", 37.6253, 37.6465, 37.565, 37.5993, 925904.0], [\"2024-05-06 10:45:00-04:00\", 37.5994, 37.62, 37.54, 37.56, 626772.0]];\n",
|
|
"\n",
|
|
" // Define the dt_args\n",
|
|
" let dt_args = {\"layout\": {\"topStart\": \"pageLength\", \"topEnd\": \"search\", \"bottomStart\": \"info\", \"bottomEnd\": \"paging\"}, \"order\": [], \"warn_on_dom\": true};\n",
|
|
" dt_args[\"data\"] = data;\n",
|
|
"\n",
|
|
" \n",
|
|
" new DataTable(table, dt_args);\n",
|
|
" });\n",
|
|
"</script>\n"
|
|
],
|
|
"text/plain": [
|
|
" Open High Low Close Volume\n",
|
|
"Open time \n",
|
|
"2024-04-29 09:30:00-04:00 37.8400 37.9850 37.7349 37.8800 2098173.0\n",
|
|
"2024-04-29 09:45:00-04:00 37.8750 38.0300 37.8607 37.9850 1030038.0\n",
|
|
"2024-04-29 10:00:00-04:00 37.9900 38.0600 37.9600 38.0145 933777.0\n",
|
|
"2024-04-29 10:15:00-04:00 38.0100 38.0300 37.9500 37.9650 657084.0\n",
|
|
"2024-04-29 10:30:00-04:00 37.9650 37.9950 37.9250 37.9600 617961.0\n",
|
|
"... ... ... ... ... ...\n",
|
|
"2024-05-06 09:45:00-04:00 37.5250 37.5700 37.4250 37.4900 1015426.0\n",
|
|
"2024-05-06 10:00:00-04:00 37.4950 37.6400 37.4700 37.6350 1420282.0\n",
|
|
"2024-05-06 10:15:00-04:00 37.6350 37.6900 37.5910 37.6250 1592625.0\n",
|
|
"2024-05-06 10:30:00-04:00 37.6253 37.6465 37.5650 37.5993 925904.0\n",
|
|
"2024-05-06 10:45:00-04:00 37.5994 37.6200 37.5400 37.5600 626772.0\n",
|
|
"\n",
|
|
"[141 rows x 5 columns]"
|
|
]
|
|
},
|
|
"execution_count": 62,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"m1_data.data[\"BAC\"]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# defining ENTRY WINDOW and forced EXIT window"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 63,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"#m1_data.data[\"BAC\"].info()\n",
|
|
"import datetime\n",
|
|
"# Define the market open and close times\n",
|
|
"market_open = datetime.time(9, 30)\n",
|
|
"market_close = datetime.time(16, 0)\n",
|
|
"entry_window_opens = 1\n",
|
|
"entry_window_closes = 350\n",
|
|
"\n",
|
|
"forced_exit_start = 360\n",
|
|
"forced_exit_end = 390\n",
|
|
"\n",
|
|
"forced_exit = m1_data.symbol_wrapper.fill(False)\n",
|
|
"entry_window_open= m1_data.symbol_wrapper.fill(False)\n",
|
|
"\n",
|
|
"# Calculate the time difference in minutes from market open for each timestamp\n",
|
|
"elapsed_min_from_open = (forced_exit.index.hour - market_open.hour) * 60 + (forced_exit.index.minute - market_open.minute)\n",
|
|
"\n",
|
|
"entry_window_open[(elapsed_min_from_open >= entry_window_opens) & (elapsed_min_from_open < entry_window_closes)] = True\n",
|
|
"forced_exit[(elapsed_min_from_open >= forced_exit_start) & (elapsed_min_from_open < forced_exit_end)] = True\n",
|
|
"\n",
|
|
"#entry_window_open.info()\n",
|
|
"# forced_exit.tail(100)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 64,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<table id=\"itables_f038977b_4f28_4278_93f9_6a76199fff50\" class=\"display nowrap\" data-quarto-disable-processing=\"true\" style=\"table-layout:auto;width:auto;margin:auto;caption-side:bottom\">\n",
|
|
"<thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>count</th>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>(14, BAC)</th>\n",
|
|
" <th></th>\n",
|
|
" </tr>\n",
|
|
" </thead><tbody><tr>\n",
|
|
"<td style=\"vertical-align:middle; text-align:left\">\n",
|
|
"<div style=\"float:left; margin-right: 10px;\">\n",
|
|
"<a href=https://mwouts.github.io/itables/><svg class=\"main-svg\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
|
|
"width=\"64\" viewBox=\"0 0 500 400\" style=\"font-family: 'Droid Sans', sans-serif;\">\n",
|
|
" <g style=\"fill:#d9d7fc\">\n",
|
|
" <path d=\"M100,400H500V357H100Z\" />\n",
|
|
" <path d=\"M100,300H400V257H100Z\" />\n",
|
|
" <path d=\"M0,200H400V157H0Z\" />\n",
|
|
" <path d=\"M100,100H500V57H100Z\" />\n",
|
|
" <path d=\"M100,350H500V307H100Z\" />\n",
|
|
" <path d=\"M100,250H400V207H100Z\" />\n",
|
|
" <path d=\"M0,150H400V107H0Z\" />\n",
|
|
" <path d=\"M100,50H500V7H100Z\" />\n",
|
|
" </g>\n",
|
|
" <g style=\"fill:#1a1366;stroke:#1a1366;\">\n",
|
|
" <rect x=\"100\" y=\"7\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"0\" y=\"107\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"0;0;400\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"207\" width=\"300\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;300;0\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;400\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"307\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <g style=\"fill:transparent;stroke-width:8; stroke-linejoin:round\" rx=\"5\">\n",
|
|
" <g transform=\"translate(45 50) rotate(-45)\">\n",
|
|
" <circle r=\"33\" cx=\"0\" cy=\"0\" />\n",
|
|
" <rect x=\"-8\" y=\"32\" width=\"16\" height=\"30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(450 152)\">\n",
|
|
" <polyline points=\"-15,-20 -35,-20 -35,40 25,40 25,20\" />\n",
|
|
" <rect x=\"-15\" y=\"-40\" width=\"60\" height=\"60\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(50 352)\">\n",
|
|
" <polygon points=\"-35,-5 0,-40 35,-5\" />\n",
|
|
" <polygon points=\"-35,10 0,45 35,10\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(75 250)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(425 250) rotate(180)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
"</svg>\n",
|
|
"</a>\n",
|
|
"</div>\n",
|
|
"<div>\n",
|
|
"Loading ITables v2.0.1 from the <code>init_notebook_mode</code> cell...\n",
|
|
"(need <a href=https://mwouts.github.io/itables/troubleshooting.html>help</a>?)</td>\n",
|
|
"</div>\n",
|
|
"</tr></tbody>\n",
|
|
"\n",
|
|
"</table>\n",
|
|
"<script type=\"module\">\n",
|
|
" const { DataTable, jQuery: $ } = await import(window._datatables_src_for_itables_2_0_1);\n",
|
|
"\n",
|
|
" document.querySelectorAll(\"#itables_f038977b_4f28_4278_93f9_6a76199fff50:not(.dataTable)\").forEach(table => {\n",
|
|
" // Define the table data\n",
|
|
" const data = [[false, 127], [true, 14]];\n",
|
|
"\n",
|
|
" // Define the dt_args\n",
|
|
" let dt_args = {\"layout\": {\"topStart\": null, \"topEnd\": null, \"bottomStart\": null, \"bottomEnd\": null}, \"order\": [], \"warn_on_dom\": true};\n",
|
|
" dt_args[\"data\"] = data;\n",
|
|
"\n",
|
|
" \n",
|
|
" new DataTable(table, dt_args);\n",
|
|
" });\n",
|
|
"</script>\n"
|
|
],
|
|
"text/plain": [
|
|
"(14, BAC)\n",
|
|
"False 127\n",
|
|
"True 14\n",
|
|
"Name: count, dtype: int64"
|
|
]
|
|
},
|
|
"execution_count": 64,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"close = m1_data.close\n",
|
|
"\n",
|
|
"rsi = vbt.RSI.run(close, window=14)\n",
|
|
"\n",
|
|
"long_entries = (rsi.rsi.vbt.crossed_below(28) & entry_window_open)\n",
|
|
"long_exits = (rsi.rsi.vbt.crossed_above(70) | forced_exit)\n",
|
|
"#long_entries.info()\n",
|
|
"#number of trues and falses in long_entries\n",
|
|
"#long_entries.value_counts()\n",
|
|
"long_exits.value_counts()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 65,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<table id=\"itables_a241d419_b352_4ee1_ab95_cf9b6468ab60\" class=\"display nowrap\" data-quarto-disable-processing=\"true\" style=\"table-layout:auto;width:auto;margin:auto;caption-side:bottom\">\n",
|
|
"<thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th>symbol</th>\n",
|
|
" <th>BAC</th>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Open time</th>\n",
|
|
" <th></th>\n",
|
|
" </tr>\n",
|
|
" </thead><tbody><tr>\n",
|
|
"<td style=\"vertical-align:middle; text-align:left\">\n",
|
|
"<div style=\"float:left; margin-right: 10px;\">\n",
|
|
"<a href=https://mwouts.github.io/itables/><svg class=\"main-svg\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
|
|
"width=\"64\" viewBox=\"0 0 500 400\" style=\"font-family: 'Droid Sans', sans-serif;\">\n",
|
|
" <g style=\"fill:#d9d7fc\">\n",
|
|
" <path d=\"M100,400H500V357H100Z\" />\n",
|
|
" <path d=\"M100,300H400V257H100Z\" />\n",
|
|
" <path d=\"M0,200H400V157H0Z\" />\n",
|
|
" <path d=\"M100,100H500V57H100Z\" />\n",
|
|
" <path d=\"M100,350H500V307H100Z\" />\n",
|
|
" <path d=\"M100,250H400V207H100Z\" />\n",
|
|
" <path d=\"M0,150H400V107H0Z\" />\n",
|
|
" <path d=\"M100,50H500V7H100Z\" />\n",
|
|
" </g>\n",
|
|
" <g style=\"fill:#1a1366;stroke:#1a1366;\">\n",
|
|
" <rect x=\"100\" y=\"7\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"0\" y=\"107\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"0;0;400\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"207\" width=\"300\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;300;0\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;400\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"307\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <g style=\"fill:transparent;stroke-width:8; stroke-linejoin:round\" rx=\"5\">\n",
|
|
" <g transform=\"translate(45 50) rotate(-45)\">\n",
|
|
" <circle r=\"33\" cx=\"0\" cy=\"0\" />\n",
|
|
" <rect x=\"-8\" y=\"32\" width=\"16\" height=\"30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(450 152)\">\n",
|
|
" <polyline points=\"-15,-20 -35,-20 -35,40 25,40 25,20\" />\n",
|
|
" <rect x=\"-15\" y=\"-40\" width=\"60\" height=\"60\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(50 352)\">\n",
|
|
" <polygon points=\"-35,-5 0,-40 35,-5\" />\n",
|
|
" <polygon points=\"-35,10 0,45 35,10\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(75 250)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(425 250) rotate(180)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
"</svg>\n",
|
|
"</a>\n",
|
|
"</div>\n",
|
|
"<div>\n",
|
|
"Loading ITables v2.0.1 from the <code>init_notebook_mode</code> cell...\n",
|
|
"(need <a href=https://mwouts.github.io/itables/troubleshooting.html>help</a>?)</td>\n",
|
|
"</div>\n",
|
|
"</tr></tbody>\n",
|
|
"\n",
|
|
"</table>\n",
|
|
"<script type=\"module\">\n",
|
|
" const { DataTable, jQuery: $ } = await import(window._datatables_src_for_itables_2_0_1);\n",
|
|
"\n",
|
|
" document.querySelectorAll(\"#itables_a241d419_b352_4ee1_ab95_cf9b6468ab60:not(.dataTable)\").forEach(table => {\n",
|
|
" // Define the table data\n",
|
|
" const data = [[\"2024-04-29 09:30:00-04:00\", 37.88], [\"2024-04-29 09:45:00-04:00\", 37.985], [\"2024-04-29 10:00:00-04:00\", 38.0145], [\"2024-04-29 10:15:00-04:00\", 37.965], [\"2024-04-29 10:30:00-04:00\", 37.96], [\"2024-04-29 10:45:00-04:00\", 37.94], [\"2024-04-29 11:00:00-04:00\", 37.915], [\"2024-04-29 11:15:00-04:00\", 37.8986], [\"2024-04-29 11:30:00-04:00\", 37.845], [\"2024-04-29 11:45:00-04:00\", 37.808], [\"2024-04-29 12:00:00-04:00\", 37.795], [\"2024-04-29 12:15:00-04:00\", 37.765], [\"2024-04-29 12:30:00-04:00\", 37.75], [\"2024-04-29 12:45:00-04:00\", 37.715], [\"2024-04-29 13:00:00-04:00\", 37.7149], [\"2024-04-29 13:15:00-04:00\", 37.7582], [\"2024-04-29 13:30:00-04:00\", 37.775], [\"2024-04-29 13:45:00-04:00\", 37.705], [\"2024-04-29 14:00:00-04:00\", 37.75], [\"2024-04-29 14:15:00-04:00\", 37.7138], [\"2024-04-29 14:30:00-04:00\", 37.6801], [\"2024-04-29 14:45:00-04:00\", 37.625], [\"2024-04-29 15:00:00-04:00\", 37.495], [\"2024-04-29 15:15:00-04:00\", 37.505], [\"2024-04-29 15:30:00-04:00\", 37.53], [\"2024-04-29 15:45:00-04:00\", 37.56], [\"2024-04-29 16:00:00-04:00\", 37.6], [\"2024-04-30 09:30:00-04:00\", 37.545], [\"2024-04-30 09:45:00-04:00\", 37.435], [\"2024-04-30 10:00:00-04:00\", 37.47], [\"2024-04-30 10:15:00-04:00\", 37.485], [\"2024-04-30 10:30:00-04:00\", 37.585], [\"2024-04-30 10:45:00-04:00\", 37.64], [\"2024-04-30 11:00:00-04:00\", 37.5186], [\"2024-04-30 11:15:00-04:00\", 37.52], [\"2024-04-30 11:30:00-04:00\", 37.48], [\"2024-04-30 11:45:00-04:00\", 37.465], [\"2024-04-30 12:00:00-04:00\", 37.45], [\"2024-04-30 12:15:00-04:00\", 37.41], [\"2024-04-30 12:30:00-04:00\", 37.305], [\"2024-04-30 12:45:00-04:00\", 37.275], [\"2024-04-30 13:00:00-04:00\", 37.28], [\"2024-04-30 13:15:00-04:00\", 37.285], [\"2024-04-30 13:30:00-04:00\", 37.34], [\"2024-04-30 13:45:00-04:00\", 37.365], [\"2024-04-30 14:00:00-04:00\", 37.2953], [\"2024-04-30 14:15:00-04:00\", 37.235], [\"2024-04-30 14:30:00-04:00\", 37.175], [\"2024-04-30 14:45:00-04:00\", 37.1395], [\"2024-04-30 15:00:00-04:00\", 37.125], [\"2024-04-30 15:15:00-04:00\", 37.085], [\"2024-04-30 15:30:00-04:00\", 37.07], [\"2024-04-30 15:45:00-04:00\", 37.01], [\"2024-04-30 16:00:00-04:00\", 36.99], [\"2024-05-01 09:30:00-04:00\", 37.1401], [\"2024-05-01 09:45:00-04:00\", 37.045], [\"2024-05-01 10:00:00-04:00\", 37.115], [\"2024-05-01 10:15:00-04:00\", 37.045], [\"2024-05-01 10:30:00-04:00\", 37.045], [\"2024-05-01 10:45:00-04:00\", 37.08], [\"2024-05-01 11:00:00-04:00\", 37.0286], [\"2024-05-01 11:15:00-04:00\", 37.08], [\"2024-05-01 11:30:00-04:00\", 37.0276], [\"2024-05-01 11:45:00-04:00\", 37.055], [\"2024-05-01 12:00:00-04:00\", 37.025], [\"2024-05-01 12:15:00-04:00\", 36.94], [\"2024-05-01 12:30:00-04:00\", 36.935], [\"2024-05-01 12:45:00-04:00\", 36.91], [\"2024-05-01 13:00:00-04:00\", 36.8175], [\"2024-05-01 13:15:00-04:00\", 36.875], [\"2024-05-01 13:30:00-04:00\", 36.96], [\"2024-05-01 13:45:00-04:00\", 36.935], [\"2024-05-01 14:00:00-04:00\", 36.915], [\"2024-05-01 14:15:00-04:00\", 37.035], [\"2024-05-01 14:30:00-04:00\", 37.415], [\"2024-05-01 14:45:00-04:00\", 37.47], [\"2024-05-01 15:00:00-04:00\", 37.39], [\"2024-05-01 15:15:00-04:00\", 37.37], [\"2024-05-01 15:30:00-04:00\", 37.165], [\"2024-05-01 15:45:00-04:00\", 36.945], [\"2024-05-01 16:00:00-04:00\", 37.03], [\"2024-05-02 09:30:00-04:00\", 37.1], [\"2024-05-02 09:45:00-04:00\", 37.145], [\"2024-05-02 10:00:00-04:00\", 36.9621], [\"2024-05-02 10:15:00-04:00\", 36.995], [\"2024-05-02 10:30:00-04:00\", 36.8258], [\"2024-05-02 10:45:00-04:00\", 36.85], [\"2024-05-02 11:00:00-04:00\", 36.875], [\"2024-05-02 11:15:00-04:00\", 36.815], [\"2024-05-02 11:30:00-04:00\", 36.76], [\"2024-05-02 11:45:00-04:00\", 36.77], [\"2024-05-02 12:00:00-04:00\", 36.705], [\"2024-05-02 12:15:00-04:00\", 36.71], [\"2024-05-02 12:30:00-04:00\", 36.75], [\"2024-05-02 12:45:00-04:00\", 36.755], [\"2024-05-02 13:00:00-04:00\", 36.8796], [\"2024-05-02 13:15:00-04:00\", 36.9177], [\"2024-05-02 13:30:00-04:00\", 36.875], [\"2024-05-02 13:45:00-04:00\", 36.875], [\"2024-05-02 14:00:00-04:00\", 36.845], [\"2024-05-02 14:15:00-04:00\", 36.8701], [\"2024-05-02 14:30:00-04:00\", 36.895], [\"2024-05-02 14:45:00-04:00\", 36.915], [\"2024-05-02 15:00:00-04:00\", 36.885], [\"2024-05-02 15:15:00-04:00\", 36.8778], [\"2024-05-02 15:30:00-04:00\", 36.805], [\"2024-05-02 15:45:00-04:00\", 36.89], [\"2024-05-02 16:00:00-04:00\", 36.89], [\"2024-05-03 09:30:00-04:00\", 37.29], [\"2024-05-03 09:45:00-04:00\", 37.415], [\"2024-05-03 10:00:00-04:00\", 37.225], [\"2024-05-03 10:15:00-04:00\", 37.165], [\"2024-05-03 10:30:00-04:00\", 37.225], [\"2024-05-03 10:45:00-04:00\", 37.18], [\"2024-05-03 11:00:00-04:00\", 37.225], [\"2024-05-03 11:15:00-04:00\", 37.205], [\"2024-05-03 11:30:00-04:00\", 37.205], [\"2024-05-03 11:45:00-04:00\", 37.235], [\"2024-05-03 12:00:00-04:00\", 37.225], [\"2024-05-03 12:15:00-04:00\", 37.245], [\"2024-05-03 12:30:00-04:00\", 37.2503], [\"2024-05-03 12:45:00-04:00\", 37.205], [\"2024-05-03 13:00:00-04:00\", 37.215], [\"2024-05-03 13:15:00-04:00\", 37.18], [\"2024-05-03 13:30:00-04:00\", 37.245], [\"2024-05-03 13:45:00-04:00\", 37.24], [\"2024-05-03 14:00:00-04:00\", 37.245], [\"2024-05-03 14:15:00-04:00\", 37.235], [\"2024-05-03 14:30:00-04:00\", 37.185], [\"2024-05-03 14:45:00-04:00\", 37.19], [\"2024-05-03 15:00:00-04:00\", 37.14], [\"2024-05-03 15:15:00-04:00\", 37.195], [\"2024-05-03 15:30:00-04:00\", 37.205], [\"2024-05-03 15:45:00-04:00\", 37.235], [\"2024-05-03 16:00:00-04:00\", 37.25], [\"2024-05-06 09:30:00-04:00\", 37.525], [\"2024-05-06 09:45:00-04:00\", 37.49], [\"2024-05-06 10:00:00-04:00\", 37.635], [\"2024-05-06 10:15:00-04:00\", 37.625], [\"2024-05-06 10:30:00-04:00\", 37.5993], [\"2024-05-06 10:45:00-04:00\", 37.56]];\n",
|
|
"\n",
|
|
" // Define the dt_args\n",
|
|
" let dt_args = {\"layout\": {\"topStart\": \"pageLength\", \"topEnd\": \"search\", \"bottomStart\": \"info\", \"bottomEnd\": \"paging\"}, \"order\": [], \"warn_on_dom\": true};\n",
|
|
" dt_args[\"data\"] = data;\n",
|
|
"\n",
|
|
" \n",
|
|
" new DataTable(table, dt_args);\n",
|
|
" });\n",
|
|
"</script>\n"
|
|
],
|
|
"text/plain": [
|
|
"symbol BAC\n",
|
|
"Open time \n",
|
|
"2024-04-29 09:30:00-04:00 37.8800\n",
|
|
"2024-04-29 09:45:00-04:00 37.9850\n",
|
|
"2024-04-29 10:00:00-04:00 38.0145\n",
|
|
"2024-04-29 10:15:00-04:00 37.9650\n",
|
|
"2024-04-29 10:30:00-04:00 37.9600\n",
|
|
"... ...\n",
|
|
"2024-05-06 09:45:00-04:00 37.4900\n",
|
|
"2024-05-06 10:00:00-04:00 37.6350\n",
|
|
"2024-05-06 10:15:00-04:00 37.6250\n",
|
|
"2024-05-06 10:30:00-04:00 37.5993\n",
|
|
"2024-05-06 10:45:00-04:00 37.5600\n",
|
|
"\n",
|
|
"[141 rows x 1 columns]"
|
|
]
|
|
},
|
|
"execution_count": 65,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"close"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 66,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/vnd.jupyter.widget-view+json": {
|
|
"model_id": "4c11ec2e1b754bf597d0856020d41755",
|
|
"version_major": 2,
|
|
"version_minor": 0
|
|
},
|
|
"text/plain": [
|
|
"FigureWidget({\n",
|
|
" 'data': [{'name': 'BAC',\n",
|
|
" 'showlegend': True,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': '8eef4694-305a-4f38-9916-7a6176babe2e',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 29, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 10, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 10, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 10, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 10, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 11, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 11, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 11, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 11, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 12, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 12, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 12, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 12, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 13, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 13, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 13, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 13, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 14, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 14, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 14, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 14, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 16, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 9, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 10, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 10, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 10, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 10, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 11, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 11, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 11, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 11, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 12, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 12, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 12, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 12, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 13, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 13, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 13, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 13, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 14, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 14, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 14, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 14, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 15, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 15, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 15, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 15, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 16, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 9, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 10, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 10, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 10, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 10, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 11, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 11, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 11, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 11, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 12, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 12, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 12, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 12, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 13, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 13, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 13, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 13, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 14, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 14, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 14, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 14, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 15, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 15, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 15, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 15, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 16, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 9, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 10, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 10, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 10, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 10, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 11, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 11, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 11, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 11, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 12, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 12, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 12, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 12, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 13, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 13, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 13, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 13, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 14, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 14, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 14, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 14, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 15, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 15, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 15, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 15, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 16, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 9, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 10, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 10, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 10, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 10, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 11, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 11, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 11, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 11, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 12, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 12, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 12, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 12, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 13, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 13, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 13, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 13, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 14, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 14, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 14, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 14, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 15, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 15, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 15, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 15, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 16, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 9, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x',\n",
|
|
" 'y': array([37.88 , 37.985 , 38.0145, 37.965 , 37.96 , 37.94 , 37.915 , 37.8986,\n",
|
|
" 37.845 , 37.808 , 37.795 , 37.765 , 37.75 , 37.715 , 37.7149, 37.7582,\n",
|
|
" 37.775 , 37.705 , 37.75 , 37.7138, 37.6801, 37.625 , 37.495 , 37.505 ,\n",
|
|
" 37.53 , 37.56 , 37.6 , 37.545 , 37.435 , 37.47 , 37.485 , 37.585 ,\n",
|
|
" 37.64 , 37.5186, 37.52 , 37.48 , 37.465 , 37.45 , 37.41 , 37.305 ,\n",
|
|
" 37.275 , 37.28 , 37.285 , 37.34 , 37.365 , 37.2953, 37.235 , 37.175 ,\n",
|
|
" 37.1395, 37.125 , 37.085 , 37.07 , 37.01 , 36.99 , 37.1401, 37.045 ,\n",
|
|
" 37.115 , 37.045 , 37.045 , 37.08 , 37.0286, 37.08 , 37.0276, 37.055 ,\n",
|
|
" 37.025 , 36.94 , 36.935 , 36.91 , 36.8175, 36.875 , 36.96 , 36.935 ,\n",
|
|
" 36.915 , 37.035 , 37.415 , 37.47 , 37.39 , 37.37 , 37.165 , 36.945 ,\n",
|
|
" 37.03 , 37.1 , 37.145 , 36.9621, 36.995 , 36.8258, 36.85 , 36.875 ,\n",
|
|
" 36.815 , 36.76 , 36.77 , 36.705 , 36.71 , 36.75 , 36.755 , 36.8796,\n",
|
|
" 36.9177, 36.875 , 36.875 , 36.845 , 36.8701, 36.895 , 36.915 , 36.885 ,\n",
|
|
" 36.8778, 36.805 , 36.89 , 36.89 , 37.29 , 37.415 , 37.225 , 37.165 ,\n",
|
|
" 37.225 , 37.18 , 37.225 , 37.205 , 37.205 , 37.235 , 37.225 , 37.245 ,\n",
|
|
" 37.2503, 37.205 , 37.215 , 37.18 , 37.245 , 37.24 , 37.245 , 37.235 ,\n",
|
|
" 37.185 , 37.19 , 37.14 , 37.195 , 37.205 , 37.235 , 37.25 , 37.525 ,\n",
|
|
" 37.49 , 37.635 , 37.625 , 37.5993, 37.56 ]),\n",
|
|
" 'yaxis': 'y2'},\n",
|
|
" {'line': {'color': '#6ca6cd'},\n",
|
|
" 'mode': 'lines',\n",
|
|
" 'name': 'RSI',\n",
|
|
" 'showlegend': True,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': 'b05f9b3d-c594-4483-b2ea-6178232e376c',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 29, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 10, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 10, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 10, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 10, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 11, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 11, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 11, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 11, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 12, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 12, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 12, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 12, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 13, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 13, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 13, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 13, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 14, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 14, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 14, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 14, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 16, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 9, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 10, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 10, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 10, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 10, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 11, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 11, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 11, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 11, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 12, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 12, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 12, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 12, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 13, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 13, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 13, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 13, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 14, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 14, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 14, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 14, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 15, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 15, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 15, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 15, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 16, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 9, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 10, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 10, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 10, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 10, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 11, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 11, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 11, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 11, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 12, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 12, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 12, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 12, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 13, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 13, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 13, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 13, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 14, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 14, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 14, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 14, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 15, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 15, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 15, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 15, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 16, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 9, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 10, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 10, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 10, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 10, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 11, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 11, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 11, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 11, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 12, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 12, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 12, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 12, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 13, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 13, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 13, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 13, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 14, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 14, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 14, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 14, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 15, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 15, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 15, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 15, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 16, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 9, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 10, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 10, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 10, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 10, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 11, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 11, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 11, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 11, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 12, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 12, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 12, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 12, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 13, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 13, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 13, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 13, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 14, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 14, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 14, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 14, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 15, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 15, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 15, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 15, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 16, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 9, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x',\n",
|
|
" 'y': array([ nan, nan, nan, nan, nan,\n",
|
|
" nan, nan, nan, nan, nan,\n",
|
|
" nan, nan, nan, nan, 74.39278586,\n",
|
|
" 75.85442015, 76.41687013, 69.18528597, 71.07999171, 67.48520648,\n",
|
|
" 64.22863735, 59.19861784, 49.37399917, 50.06057577, 51.81975103,\n",
|
|
" 53.91756478, 56.6291264 , 52.09044684, 44.42207477, 47.09098995,\n",
|
|
" 48.23821749, 55.2107027 , 58.52020263, 49.77722289, 49.87023583,\n",
|
|
" 47.18160033, 46.17623258, 45.14037014, 42.40832351, 36.2125432 ,\n",
|
|
" 34.65470019, 35.15539369, 35.68609137, 41.37028044, 43.80164036,\n",
|
|
" 38.95171085, 35.30919017, 32.09325102, 30.33291338, 29.6183071 ,\n",
|
|
" 27.68094713, 26.96854764, 24.27711004, 23.43745549, 40.16386038,\n",
|
|
" 34.95356618, 41.01873745, 37.27565382, 37.27565382, 40.42796477,\n",
|
|
" 37.45123882, 42.04660909, 38.90829204, 41.37246634, 39.49411463,\n",
|
|
" 34.68865126, 34.42331819, 33.0616142 , 28.55994345, 34.52778777,\n",
|
|
" 42.21277734, 40.69962571, 39.48037107, 49.29531883, 67.35193099,\n",
|
|
" 69.06884343, 63.81222428, 62.53094439, 51.18605355, 42.31368311,\n",
|
|
" 46.19427053, 49.22362537, 51.12854244, 43.91693211, 45.40855923,\n",
|
|
" 39.57845299, 40.75017744, 42.0014731 , 39.82751096, 37.89142552,\n",
|
|
" 38.47702499, 36.09475359, 36.42084984, 39.09825262, 39.44154839,\n",
|
|
" 47.39886335, 49.58049766, 47.21690866, 47.21690866, 45.45139516,\n",
|
|
" 47.22928014, 49.00493469, 50.44721236, 48.24310899, 47.70440622,\n",
|
|
" 42.53284237, 49.42662469, 49.42662469, 69.4366945 , 73.02816179,\n",
|
|
" 61.24707816, 58.06165861, 60.28603947, 57.80951201, 59.59692731,\n",
|
|
" 58.41247201, 58.41247201, 59.80228634, 59.09336858, 60.11181234,\n",
|
|
" 60.39322483, 56.71049769, 57.32908325, 54.39912248, 58.62798422,\n",
|
|
" 58.1810198 , 58.52156521, 57.51282127, 52.6281247 , 53.05748703,\n",
|
|
" 48.33916888, 53.2627497 , 54.11894932, 56.68271896, 57.94799997,\n",
|
|
" 73.32914926, 69.82845181, 75.12633475, 74.15920112, 71.60783584,\n",
|
|
" 67.76830357]),\n",
|
|
" 'yaxis': 'y'},\n",
|
|
" {'marker': {'color': '#37B13F',\n",
|
|
" 'line': {'color': 'rgb(38,123,44)', 'width': 1},\n",
|
|
" 'size': 8,\n",
|
|
" 'symbol': 'triangle-up'},\n",
|
|
" 'mode': 'markers',\n",
|
|
" 'name': 'Entries',\n",
|
|
" 'showlegend': True,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': '20a40d53-2d3b-4567-adc5-7b239dac13ad',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 30, 15, 15, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x',\n",
|
|
" 'y': array([37.085]),\n",
|
|
" 'yaxis': 'y2'},\n",
|
|
" {'marker': {'color': '#EA4335',\n",
|
|
" 'line': {'color': 'rgb(181,31,18)', 'width': 1},\n",
|
|
" 'size': 8,\n",
|
|
" 'symbol': 'triangle-down'},\n",
|
|
" 'mode': 'markers',\n",
|
|
" 'name': 'Exits',\n",
|
|
" 'showlegend': True,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': '1b39b0d3-7bb7-46dc-abdb-e5ee1c782bc6',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 29, 14, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 15, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 15, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 15, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 15, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 15, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 15, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 9, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 15, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 15, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x',\n",
|
|
" 'y': array([37.75 , 37.53 , 37.56 , 37.07 , 37.01 , 37.165, 36.945, 36.805, 36.89 ,\n",
|
|
" 37.415, 37.205, 37.235, 37.525, 37.635]),\n",
|
|
" 'yaxis': 'y2'}],\n",
|
|
" 'layout': {'annotations': [{'font': {'size': 16},\n",
|
|
" 'showarrow': False,\n",
|
|
" 'text': 'RSI',\n",
|
|
" 'x': 0.47,\n",
|
|
" 'xanchor': 'center',\n",
|
|
" 'xref': 'paper',\n",
|
|
" 'y': 1.0,\n",
|
|
" 'yanchor': 'bottom',\n",
|
|
" 'yref': 'paper'}],\n",
|
|
" 'height': 350,\n",
|
|
" 'legend': {'orientation': 'h',\n",
|
|
" 'traceorder': 'normal',\n",
|
|
" 'x': 1,\n",
|
|
" 'xanchor': 'right',\n",
|
|
" 'y': 1.02,\n",
|
|
" 'yanchor': 'bottom'},\n",
|
|
" 'margin': {'b': 30, 'l': 30, 'r': 30, 't': 30},\n",
|
|
" 'shapes': [{'fillcolor': 'mediumslateblue',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.2,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-29 09:30:00-0400', tz='America/New_York'),\n",
|
|
" 'x1': Timestamp('2024-05-06 10:45:00-0400', tz='America/New_York'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 30,\n",
|
|
" 'y1': 70,\n",
|
|
" 'yref': 'y'}],\n",
|
|
" 'template': '...',\n",
|
|
" 'width': 1280,\n",
|
|
" 'xaxis': {'anchor': 'y', 'domain': [0.0, 0.94]},\n",
|
|
" 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'range': [-5, 105]},\n",
|
|
" 'yaxis2': {'anchor': 'x', 'overlaying': 'y', 'side': 'right'}}\n",
|
|
"})"
|
|
]
|
|
},
|
|
"execution_count": 66,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"def plot_rsi(rsi, close, entries, exits):\n",
|
|
" fig = vbt.make_subplots(rows=1, cols=1, shared_xaxes=True, specs=[[{\"secondary_y\": True}]], vertical_spacing=0.02, subplot_titles=(\"RSI\", \"Price\" ))\n",
|
|
" close.vbt.plot(fig=fig, add_trace_kwargs=dict(secondary_y=True))\n",
|
|
" rsi.plot(fig=fig, add_trace_kwargs=dict(secondary_y=False))\n",
|
|
" entries.vbt.signals.plot_as_entries(close, fig=fig, add_trace_kwargs=dict(secondary_y=True)) \n",
|
|
" exits.vbt.signals.plot_as_exits(close, fig=fig, add_trace_kwargs=dict(secondary_y=True)) \n",
|
|
" return fig\n",
|
|
"\n",
|
|
"plot_rsi(rsi, close, long_entries, long_exits)\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 56,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<table id=\"itables_555a2916_2ace_4b96_b2f5_341f9e75fa9d\" class=\"display nowrap\" data-quarto-disable-processing=\"true\" style=\"table-layout:auto;width:auto;margin:auto;caption-side:bottom\">\n",
|
|
"<thead>\n",
|
|
" <tr>\n",
|
|
" <th>rsi_window</th>\n",
|
|
" <th>14</th>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>symbol</th>\n",
|
|
" <th>BAC</th>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Open time</th>\n",
|
|
" <th></th>\n",
|
|
" </tr>\n",
|
|
" </thead><tbody><tr>\n",
|
|
"<td style=\"vertical-align:middle; text-align:left\">\n",
|
|
"<div style=\"float:left; margin-right: 10px;\">\n",
|
|
"<a href=https://mwouts.github.io/itables/><svg class=\"main-svg\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
|
|
"width=\"64\" viewBox=\"0 0 500 400\" style=\"font-family: 'Droid Sans', sans-serif;\">\n",
|
|
" <g style=\"fill:#d9d7fc\">\n",
|
|
" <path d=\"M100,400H500V357H100Z\" />\n",
|
|
" <path d=\"M100,300H400V257H100Z\" />\n",
|
|
" <path d=\"M0,200H400V157H0Z\" />\n",
|
|
" <path d=\"M100,100H500V57H100Z\" />\n",
|
|
" <path d=\"M100,350H500V307H100Z\" />\n",
|
|
" <path d=\"M100,250H400V207H100Z\" />\n",
|
|
" <path d=\"M0,150H400V107H0Z\" />\n",
|
|
" <path d=\"M100,50H500V7H100Z\" />\n",
|
|
" </g>\n",
|
|
" <g style=\"fill:#1a1366;stroke:#1a1366;\">\n",
|
|
" <rect x=\"100\" y=\"7\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"0\" y=\"107\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"0;0;400\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"207\" width=\"300\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;300;0\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;400\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"307\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <g style=\"fill:transparent;stroke-width:8; stroke-linejoin:round\" rx=\"5\">\n",
|
|
" <g transform=\"translate(45 50) rotate(-45)\">\n",
|
|
" <circle r=\"33\" cx=\"0\" cy=\"0\" />\n",
|
|
" <rect x=\"-8\" y=\"32\" width=\"16\" height=\"30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(450 152)\">\n",
|
|
" <polyline points=\"-15,-20 -35,-20 -35,40 25,40 25,20\" />\n",
|
|
" <rect x=\"-15\" y=\"-40\" width=\"60\" height=\"60\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(50 352)\">\n",
|
|
" <polygon points=\"-35,-5 0,-40 35,-5\" />\n",
|
|
" <polygon points=\"-35,10 0,45 35,10\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(75 250)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(425 250) rotate(180)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
"</svg>\n",
|
|
"</a>\n",
|
|
"</div>\n",
|
|
"<div>\n",
|
|
"Loading ITables v2.0.1 from the <code>init_notebook_mode</code> cell...\n",
|
|
"(need <a href=https://mwouts.github.io/itables/troubleshooting.html>help</a>?)</td>\n",
|
|
"</div>\n",
|
|
"</tr></tbody>\n",
|
|
"\n",
|
|
"</table>\n",
|
|
"<script type=\"module\">\n",
|
|
" const { DataTable, jQuery: $ } = await import(window._datatables_src_for_itables_2_0_1);\n",
|
|
"\n",
|
|
" document.querySelectorAll(\"#itables_555a2916_2ace_4b96_b2f5_341f9e75fa9d:not(.dataTable)\").forEach(table => {\n",
|
|
" // Define the table data\n",
|
|
" const data = [[\"2024-04-29 09:30:00-04:00\", NaN], [\"2024-04-29 09:45:00-04:00\", NaN], [\"2024-04-29 10:00:00-04:00\", NaN], [\"2024-04-29 10:15:00-04:00\", NaN], [\"2024-04-29 10:30:00-04:00\", NaN], [\"2024-04-29 10:45:00-04:00\", NaN], [\"2024-04-29 11:00:00-04:00\", NaN], [\"2024-04-29 11:15:00-04:00\", NaN], [\"2024-04-29 11:30:00-04:00\", NaN], [\"2024-04-29 11:45:00-04:00\", NaN], [\"2024-04-29 12:00:00-04:00\", NaN], [\"2024-04-29 12:15:00-04:00\", NaN], [\"2024-04-29 12:30:00-04:00\", NaN], [\"2024-04-29 12:45:00-04:00\", NaN], [\"2024-04-29 13:00:00-04:00\", 74.392786], [\"2024-04-29 13:15:00-04:00\", 75.85442], [\"2024-04-29 13:30:00-04:00\", 76.41687], [\"2024-04-29 13:45:00-04:00\", 69.185286], [\"2024-04-29 14:00:00-04:00\", 71.079992], [\"2024-04-29 14:15:00-04:00\", 67.485206], [\"2024-04-29 14:30:00-04:00\", 64.228637], [\"2024-04-29 14:45:00-04:00\", 59.198618], [\"2024-04-29 15:00:00-04:00\", 49.373999], [\"2024-04-29 15:15:00-04:00\", 50.060576], [\"2024-04-29 15:30:00-04:00\", 51.819751], [\"2024-04-29 15:45:00-04:00\", 53.917565], [\"2024-04-30 09:30:00-04:00\", 52.682419], [\"2024-04-30 09:45:00-04:00\", 44.611532], [\"2024-04-30 10:00:00-04:00\", 47.374113], [\"2024-04-30 10:15:00-04:00\", 48.558296], [\"2024-04-30 10:30:00-04:00\", 55.712965], [\"2024-04-30 10:45:00-04:00\", 59.083652], [\"2024-04-30 11:00:00-04:00\", 50.031956], [\"2024-04-30 11:15:00-04:00\", 50.126846], [\"2024-04-30 11:30:00-04:00\", 47.359552], [\"2024-04-30 11:45:00-04:00\", 46.326713], [\"2024-04-30 12:00:00-04:00\", 45.26365], [\"2024-04-30 12:15:00-04:00\", 42.46522], [\"2024-04-30 12:30:00-04:00\", 36.147541], [\"2024-04-30 12:45:00-04:00\", 34.56527], [\"2024-04-30 13:00:00-04:00\", 35.075358], [\"2024-04-30 13:15:00-04:00\", 35.615864], [\"2024-04-30 13:30:00-04:00\", 41.395482], [\"2024-04-30 13:45:00-04:00\", 43.862299], [\"2024-04-30 14:00:00-04:00\", 38.940893], [\"2024-04-30 14:15:00-04:00\", 35.255423], [\"2024-04-30 14:30:00-04:00\", 32.009185], [\"2024-04-30 14:45:00-04:00\", 30.235281], [\"2024-04-30 15:00:00-04:00\", 29.515776], [\"2024-04-30 15:15:00-04:00\", 27.566898], [\"2024-04-30 15:30:00-04:00\", 26.85091], [\"2024-04-30 15:45:00-04:00\", 24.149054], [\"2024-05-01 09:30:00-04:00\", 38.580781], [\"2024-05-01 09:45:00-04:00\", 33.555011], [\"2024-05-01 10:00:00-04:00\", 39.773974], [\"2024-05-01 10:15:00-04:00\", 36.132034], [\"2024-05-01 10:30:00-04:00\", 36.132034], [\"2024-05-01 10:45:00-04:00\", 39.35227], [\"2024-05-01 11:00:00-04:00\", 36.44601], [\"2024-05-01 11:15:00-04:00\", 41.128276], [\"2024-05-01 11:30:00-04:00\", 38.050569], [\"2024-05-01 11:45:00-04:00\", 40.555537], [\"2024-05-01 12:00:00-04:00\", 38.709916], [\"2024-05-01 12:15:00-04:00\", 33.990081], [\"2024-05-01 12:30:00-04:00\", 33.729555], [\"2024-05-01 12:45:00-04:00\", 32.392652], [\"2024-05-01 13:00:00-04:00\", 27.974523], [\"2024-05-01 13:15:00-04:00\", 34.000702], [\"2024-05-01 13:30:00-04:00\", 41.758275], [\"2024-05-01 13:45:00-04:00\", 40.259419], [\"2024-05-01 14:00:00-04:00\", 39.051792], [\"2024-05-01 14:15:00-04:00\", 48.946956], [\"2024-05-01 14:30:00-04:00\", 67.140304], [\"2024-05-01 14:45:00-04:00\", 68.869488], [\"2024-05-01 15:00:00-04:00\", 63.624841], [\"2024-05-01 15:15:00-04:00\", 62.34656], [\"2024-05-01 15:30:00-04:00\", 51.029584], [\"2024-05-01 15:45:00-04:00\", 42.180756], [\"2024-05-02 09:30:00-04:00\", 48.903527], [\"2024-05-02 09:45:00-04:00\", 50.695885], [\"2024-05-02 10:00:00-04:00\", 43.948121], [\"2024-05-02 10:15:00-04:00\", 45.357047], [\"2024-05-02 10:30:00-04:00\", 39.814287], [\"2024-05-02 10:45:00-04:00\", 40.926212], [\"2024-05-02 11:00:00-04:00\", 42.115949], [\"2024-05-02 11:15:00-04:00\", 40.032127], [\"2024-05-02 11:30:00-04:00\", 38.167862], [\"2024-05-02 11:45:00-04:00\", 38.72658], [\"2024-05-02 12:00:00-04:00\", 36.422754], [\"2024-05-02 12:15:00-04:00\", 36.734534], [\"2024-05-02 12:30:00-04:00\", 39.299117], [\"2024-05-02 12:45:00-04:00\", 39.628556], [\"2024-05-02 13:00:00-04:00\", 47.303816], [\"2024-05-02 13:15:00-04:00\", 49.421304], [\"2024-05-02 13:30:00-04:00\", 47.135307], [\"2024-05-02 13:45:00-04:00\", 47.135307], [\"2024-05-02 14:00:00-04:00\", 45.423311], [\"2024-05-02 14:15:00-04:00\", 47.152791], [\"2024-05-02 14:30:00-04:00\", 48.88333], [\"2024-05-02 14:45:00-04:00\", 50.291344], [\"2024-05-02 15:00:00-04:00\", 48.148914], [\"2024-05-02 15:15:00-04:00\", 47.624541], [\"2024-05-02 15:30:00-04:00\", 42.575625], [\"2024-05-02 15:45:00-04:00\", 49.330073], [\"2024-05-03 09:30:00-04:00\", 68.253921], [\"2024-05-03 09:45:00-04:00\", 71.798511], [\"2024-05-03 10:00:00-04:00\", 60.703713], [\"2024-05-03 10:15:00-04:00\", 57.672908], [\"2024-05-03 10:30:00-04:00\", 59.832644], [\"2024-05-03 10:45:00-04:00\", 57.464396], [\"2024-05-03 11:00:00-04:00\", 59.203389], [\"2024-05-03 11:15:00-04:00\", 58.067129], [\"2024-05-03 11:30:00-04:00\", 58.067129], [\"2024-05-03 11:45:00-04:00\", 59.421953], [\"2024-05-03 12:00:00-04:00\", 58.740665], [\"2024-05-03 12:15:00-04:00\", 59.734985], [\"2024-05-03 12:30:00-04:00\", 60.010019], [\"2024-05-03 12:45:00-04:00\", 56.460192], [\"2024-05-03 13:00:00-04:00\", 57.06399], [\"2024-05-03 13:15:00-04:00\", 54.229385], [\"2024-05-03 13:30:00-04:00\", 58.365683], [\"2024-05-03 13:45:00-04:00\", 57.931987], [\"2024-05-03 14:00:00-04:00\", 58.265954], [\"2024-05-03 14:15:00-04:00\", 57.286426], [\"2024-05-03 14:30:00-04:00\", 52.531171], [\"2024-05-03 14:45:00-04:00\", 52.951753], [\"2024-05-03 15:00:00-04:00\", 48.339351], [\"2024-05-03 15:15:00-04:00\", 53.17144], [\"2024-05-03 15:30:00-04:00\", 54.013661], [\"2024-05-03 15:45:00-04:00\", 56.539006], [\"2024-05-04 09:30:00-04:00\", 58.350411], [\"2024-05-04 09:45:00-04:00\", 60.139545], [\"2024-05-04 10:00:00-04:00\", 61.902004], [\"2024-05-04 10:15:00-04:00\", 63.633657], [\"2024-05-04 10:30:00-04:00\", 65.330684], [\"2024-05-04 10:45:00-04:00\", 66.989601], [\"2024-05-04 11:00:00-04:00\", 68.607282], [\"2024-05-04 11:15:00-04:00\", 70.180976], [\"2024-05-04 11:30:00-04:00\", 71.708313], [\"2024-05-04 11:45:00-04:00\", 73.187308], [\"2024-05-04 12:00:00-04:00\", 74.616355], [\"2024-05-04 12:15:00-04:00\", 75.994219], [\"2024-05-04 12:30:00-04:00\", 77.320024], [\"2024-05-04 12:45:00-04:00\", NaN], [\"2024-05-04 13:00:00-04:00\", NaN], [\"2024-05-04 13:15:00-04:00\", NaN], [\"2024-05-04 13:30:00-04:00\", NaN], [\"2024-05-04 13:45:00-04:00\", NaN], [\"2024-05-04 14:00:00-04:00\", NaN], [\"2024-05-04 14:15:00-04:00\", NaN], [\"2024-05-04 14:30:00-04:00\", NaN], [\"2024-05-04 14:45:00-04:00\", NaN], [\"2024-05-04 15:00:00-04:00\", NaN], [\"2024-05-04 15:15:00-04:00\", NaN], [\"2024-05-04 15:30:00-04:00\", NaN], [\"2024-05-04 15:45:00-04:00\", NaN], [\"2024-05-05 09:30:00-04:00\", NaN], [\"2024-05-05 09:45:00-04:00\", NaN], [\"2024-05-05 10:00:00-04:00\", NaN], [\"2024-05-05 10:15:00-04:00\", NaN], [\"2024-05-05 10:30:00-04:00\", NaN], [\"2024-05-05 10:45:00-04:00\", NaN], [\"2024-05-05 11:00:00-04:00\", NaN], [\"2024-05-05 11:15:00-04:00\", NaN], [\"2024-05-05 11:30:00-04:00\", NaN], [\"2024-05-05 11:45:00-04:00\", NaN], [\"2024-05-05 12:00:00-04:00\", NaN], [\"2024-05-05 12:15:00-04:00\", NaN], [\"2024-05-05 12:30:00-04:00\", NaN], [\"2024-05-05 12:45:00-04:00\", NaN], [\"2024-05-05 13:00:00-04:00\", NaN], [\"2024-05-05 13:15:00-04:00\", NaN], [\"2024-05-05 13:30:00-04:00\", NaN], [\"2024-05-05 13:45:00-04:00\", NaN], [\"2024-05-05 14:00:00-04:00\", NaN], [\"2024-05-05 14:15:00-04:00\", NaN], [\"2024-05-05 14:30:00-04:00\", NaN], [\"2024-05-05 14:45:00-04:00\", NaN], [\"2024-05-05 15:00:00-04:00\", NaN], [\"2024-05-05 15:15:00-04:00\", NaN], [\"2024-05-05 15:30:00-04:00\", NaN], [\"2024-05-05 15:45:00-04:00\", NaN], [\"2024-05-06 09:30:00-04:00\", NaN], [\"2024-05-06 09:45:00-04:00\", NaN], [\"2024-05-06 10:00:00-04:00\", NaN], [\"2024-05-06 10:15:00-04:00\", NaN]];\n",
|
|
"\n",
|
|
" // Define the dt_args\n",
|
|
" let dt_args = {\"layout\": {\"topStart\": \"pageLength\", \"topEnd\": \"search\", \"bottomStart\": \"info\", \"bottomEnd\": \"paging\"}, \"order\": [], \"warn_on_dom\": true};\n",
|
|
" dt_args[\"data\"] = data;\n",
|
|
"\n",
|
|
" \n",
|
|
" new DataTable(table, dt_args);\n",
|
|
" });\n",
|
|
"</script>\n"
|
|
],
|
|
"text/plain": [
|
|
"rsi_window 14\n",
|
|
"symbol BAC\n",
|
|
"Open time \n",
|
|
"2024-04-29 09:30:00-04:00 NaN\n",
|
|
"2024-04-29 09:45:00-04:00 NaN\n",
|
|
"2024-04-29 10:00:00-04:00 NaN\n",
|
|
"2024-04-29 10:15:00-04:00 NaN\n",
|
|
"2024-04-29 10:30:00-04:00 NaN\n",
|
|
"... ..\n",
|
|
"2024-05-05 15:45:00-04:00 NaN\n",
|
|
"2024-05-06 09:30:00-04:00 NaN\n",
|
|
"2024-05-06 09:45:00-04:00 NaN\n",
|
|
"2024-05-06 10:00:00-04:00 NaN\n",
|
|
"2024-05-06 10:15:00-04:00 NaN\n",
|
|
"\n",
|
|
"[186 rows x 1 columns]"
|
|
]
|
|
},
|
|
"execution_count": 56,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"rsi.rsi"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 166,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Portfolio.from_signals(\n",
|
|
" close,\n",
|
|
" entries=None,\n",
|
|
" exits=None,\n",
|
|
" *,\n",
|
|
" direction=None,\n",
|
|
" long_entries=None,\n",
|
|
" long_exits=None,\n",
|
|
" short_entries=None,\n",
|
|
" short_exits=None,\n",
|
|
" adjust_func_nb=None,\n",
|
|
" adjust_args=(),\n",
|
|
" signal_func_nb=None,\n",
|
|
" signal_args=(),\n",
|
|
" post_segment_func_nb=None,\n",
|
|
" post_segment_args=(),\n",
|
|
" order_mode=False,\n",
|
|
" size=None,\n",
|
|
" size_type=None,\n",
|
|
" price=None,\n",
|
|
" fees=None,\n",
|
|
" fixed_fees=None,\n",
|
|
" slippage=None,\n",
|
|
" min_size=None,\n",
|
|
" max_size=None,\n",
|
|
" size_granularity=None,\n",
|
|
" leverage=None,\n",
|
|
" leverage_mode=None,\n",
|
|
" reject_prob=None,\n",
|
|
" price_area_vio_mode=None,\n",
|
|
" allow_partial=None,\n",
|
|
" raise_reject=None,\n",
|
|
" log=None,\n",
|
|
" val_price=None,\n",
|
|
" accumulate=None,\n",
|
|
" upon_long_conflict=None,\n",
|
|
" upon_short_conflict=None,\n",
|
|
" upon_dir_conflict=None,\n",
|
|
" upon_opposite_entry=None,\n",
|
|
" order_type=None,\n",
|
|
" limit_delta=None,\n",
|
|
" limit_tif=None,\n",
|
|
" limit_expiry=None,\n",
|
|
" limit_reverse=None,\n",
|
|
" upon_adj_limit_conflict=None,\n",
|
|
" upon_opp_limit_conflict=None,\n",
|
|
" use_stops=None,\n",
|
|
" stop_ladder=None,\n",
|
|
" sl_stop=None,\n",
|
|
" tsl_stop=None,\n",
|
|
" tsl_th=None,\n",
|
|
" tp_stop=None,\n",
|
|
" td_stop=None,\n",
|
|
" dt_stop=None,\n",
|
|
" stop_entry_price=None,\n",
|
|
" stop_exit_price=None,\n",
|
|
" stop_exit_type=None,\n",
|
|
" stop_order_type=None,\n",
|
|
" stop_limit_delta=None,\n",
|
|
" upon_stop_update=None,\n",
|
|
" upon_adj_stop_conflict=None,\n",
|
|
" upon_opp_stop_conflict=None,\n",
|
|
" delta_format=None,\n",
|
|
" time_delta_format=None,\n",
|
|
" open=None,\n",
|
|
" high=None,\n",
|
|
" low=None,\n",
|
|
" init_cash=None,\n",
|
|
" init_position=None,\n",
|
|
" init_price=None,\n",
|
|
" cash_deposits=None,\n",
|
|
" cash_earnings=None,\n",
|
|
" cash_dividends=None,\n",
|
|
" cash_sharing=None,\n",
|
|
" from_ago=None,\n",
|
|
" call_seq=None,\n",
|
|
" attach_call_seq=None,\n",
|
|
" ffill_val_price=None,\n",
|
|
" update_value=None,\n",
|
|
" fill_pos_info=None,\n",
|
|
" save_state=None,\n",
|
|
" save_value=None,\n",
|
|
" save_returns=None,\n",
|
|
" max_order_records=None,\n",
|
|
" max_log_records=None,\n",
|
|
" in_outputs=None,\n",
|
|
" seed=None,\n",
|
|
" group_by=None,\n",
|
|
" broadcast_named_args=None,\n",
|
|
" broadcast_kwargs=None,\n",
|
|
" template_context=None,\n",
|
|
" jitted=None,\n",
|
|
" chunked=None,\n",
|
|
" staticized=None,\n",
|
|
" bm_close=None,\n",
|
|
" records=None,\n",
|
|
" return_preparer=False,\n",
|
|
" return_prep_result=False,\n",
|
|
" return_sim_out=False,\n",
|
|
" **kwargs\n",
|
|
"):\n",
|
|
" Simulate portfolio from entry and exit signals.\n",
|
|
" \n",
|
|
" Supports the following modes:\n",
|
|
" \n",
|
|
" 1. `entries` and `exits`:\n",
|
|
" Uses `vectorbtpro.portfolio.nb.from_signals.dir_signal_func_nb` as `signal_func_nb`\n",
|
|
" if an adjustment function is provided (not cacheable), otherwise translates signals using\n",
|
|
" `vectorbtpro.portfolio.nb.from_signals.dir_to_ls_signals_nb` then simulates statically (cacheable)\n",
|
|
" 2. `entries` (acting as long), `exits` (acting as long), `short_entries`, and `short_exits`:\n",
|
|
" Uses `vectorbtpro.portfolio.nb.from_signals.ls_signal_func_nb` as `signal_func_nb`\n",
|
|
" if an adjustment function is provided (not cacheable), otherwise simulates statically (cacheable)\n",
|
|
" 3. `order_mode=True` without signals:\n",
|
|
" Uses `vectorbtpro.portfolio.nb.from_signals.order_signal_func_nb` as `signal_func_nb` (not cacheable)\n",
|
|
" 4. `signal_func_nb` and `signal_args`: Custom signal function (not cacheable)\n",
|
|
" \n",
|
|
" Prepared by `vectorbtpro.portfolio.preparing.FSPreparer`.\n",
|
|
" \n",
|
|
" Args:\n",
|
|
" close (array_like, OHLCDataMixin, FSPreparer, or PFPrepResult): See `Portfolio.from_orders`.\n",
|
|
" entries (array_like of bool): Boolean array of entry signals.\n",
|
|
" Defaults to True if all other signal arrays are not set, otherwise False. Will broadcast.\n",
|
|
" \n",
|
|
" * If `short_entries` and `short_exits` are not set: Acts as a long signal if `direction`\n",
|
|
" is 'all' or 'longonly', otherwise short.\n",
|
|
" * If `short_entries` or `short_exits` are set: Acts as `long_entries`.\n",
|
|
" exits (array_like of bool): Boolean array of exit signals.\n",
|
|
" Defaults to False. Will broadcast.\n",
|
|
" \n",
|
|
" * If `short_entries` and `short_exits` are not set: Acts as a short signal if `direction`\n",
|
|
" is 'all' or 'longonly', otherwise long.\n",
|
|
" * If `short_entries` or `short_exits` are set: Acts as `long_exits`.\n",
|
|
" direction (Direction or array_like): See `Portfolio.from_orders`.\n",
|
|
" \n",
|
|
" Takes only effect if `short_entries` and `short_exits` are not set.\n",
|
|
" long_entries (array_like of bool): Boolean array of long entry signals.\n",
|
|
" Defaults to False. Will broadcast.\n",
|
|
" long_exits (array_like of bool): Boolean array of long exit signals.\n",
|
|
" Defaults to False. Will broadcast.\n",
|
|
" short_entries (array_like of bool): Boolean array of short entry signals.\n",
|
|
" Defaults to False. Will broadcast.\n",
|
|
" short_exits (array_like of bool): Boolean array of short exit signals.\n",
|
|
" Defaults to False. Will broadcast.\n",
|
|
" adjust_func_nb (path_like or callable): User-defined function to adjust the current simulation state.\n",
|
|
" Defaults to `vectorbtpro.portfolio.nb.from_signals.no_adjust_func_nb`.\n",
|
|
" \n",
|
|
" Passed as argument to `vectorbtpro.portfolio.nb.from_signals.dir_signal_func_nb`,\n",
|
|
" `vectorbtpro.portfolio.nb.from_signals.ls_signal_func_nb`, and\n",
|
|
" `vectorbtpro.portfolio.nb.from_signals.order_signal_func_nb`. Has no effect\n",
|
|
" when using other signal functions.\n",
|
|
" \n",
|
|
" Can be a path to a module when using staticizing.\n",
|
|
" adjust_args (tuple): Packed arguments passed to `adjust_func_nb`.\n",
|
|
" signal_func_nb (path_like or callable): Function called to generate signals.\n",
|
|
" \n",
|
|
" See `vectorbtpro.portfolio.nb.from_signals.from_signal_func_nb`.\n",
|
|
" \n",
|
|
" Can be a path to a module when using staticizing.\n",
|
|
" signal_args (tuple): Packed arguments passed to `signal_func_nb`.\n",
|
|
" post_segment_func_nb (path_like or callable): Post-segment function.\n",
|
|
" \n",
|
|
" See `vectorbtpro.portfolio.nb.from_signals.from_signal_func_nb`.\n",
|
|
" \n",
|
|
" Can be a path to a module when using staticizing.\n",
|
|
" post_segment_args (tuple): Packed arguments passed to `post_segment_func_nb`.\n",
|
|
" order_mode (bool): Whether to simulate as orders without signals.\n",
|
|
" size (float or array_like): See `Portfolio.from_orders`.\n",
|
|
" \n",
|
|
" !!! note\n",
|
|
" Negative size is not allowed. You must express direction using signals.\n",
|
|
" size_type (SizeType or array_like): See `Portfolio.from_orders`.\n",
|
|
" \n",
|
|
" Only `SizeType.Amount`, `SizeType.Value`, `SizeType.Percent(100)`, and\n",
|
|
" `SizeType.ValuePercent(100)` are supported. Other modes such as target percentage\n",
|
|
" are not compatible with signals since their logic may contradict the direction of the signal.\n",
|
|
" \n",
|
|
" !!! note\n",
|
|
" `SizeType.Percent(100)` does not support position reversal. Switch to a single\n",
|
|
" direction or use `OppositeEntryMode.Close` to close the position first.\n",
|
|
" \n",
|
|
" See warning in `Portfolio.from_orders`.\n",
|
|
" price (array_like of float): See `Portfolio.from_orders`.\n",
|
|
" fees (float or array_like): See `Portfolio.from_orders`.\n",
|
|
" fixed_fees (float or array_like): See `Portfolio.from_orders`.\n",
|
|
" slippage (float or array_like): See `Portfolio.from_orders`.\n",
|
|
" min_size (float or array_like): See `Portfolio.from_orders`.\n",
|
|
" max_size (float or array_like): See `Portfolio.from_orders`.\n",
|
|
" \n",
|
|
" Will be partially filled if exceeded. You might not be able to properly close\n",
|
|
" the position if accumulation is enabled and `max_size` is too low.\n",
|
|
" size_granularity (float or array_like): See `Portfolio.from_orders`.\n",
|
|
" leverage (float or array_like): See `Portfolio.from_orders`.\n",
|
|
" leverage_mode (LeverageMode or array_like): See `Portfolio.from_orders`.\n",
|
|
" reject_prob (float or array_like): See `Portfolio.from_orders`.\n",
|
|
" price_area_vio_mode (PriceAreaVioMode or array_like): See `Portfolio.from_orders`.\n",
|
|
" allow_partial (bool or array_like): See `Portfolio.from_orders`.\n",
|
|
" raise_reject (bool or array_like): See `Portfolio.from_orders`.\n",
|
|
" log (bool or array_like): See `Portfolio.from_orders`.\n",
|
|
" val_price (array_like of float): See `Portfolio.from_orders`.\n",
|
|
" accumulate (bool, AccumulationMode or array_like): See `vectorbtpro.portfolio.enums.AccumulationMode`.\n",
|
|
" If True, becomes 'both'. If False, becomes 'disabled'. Will broadcast.\n",
|
|
" \n",
|
|
" When enabled, `Portfolio.from_signals` behaves similarly to `Portfolio.from_orders`.\n",
|
|
" upon_long_conflict (ConflictMode or array_like): Conflict mode for long signals.\n",
|
|
" See `vectorbtpro.portfolio.enums.ConflictMode`. Will broadcast.\n",
|
|
" upon_short_conflict (ConflictMode or array_like): Conflict mode for short signals.\n",
|
|
" See `vectorbtpro.portfolio.enums.ConflictMode`. Will broadcast.\n",
|
|
" upon_dir_conflict (DirectionConflictMode or array_like): See `vectorbtpro.portfolio.enums.DirectionConflictMode`.\n",
|
|
" Will broadcast.\n",
|
|
" upon_opposite_entry (OppositeEntryMode or array_like): See `vectorbtpro.portfolio.enums.OppositeEntryMode`.\n",
|
|
" Will broadcast.\n",
|
|
" order_type (OrderType or array_like): See `vectorbtpro.portfolio.enums.OrderType`.\n",
|
|
" \n",
|
|
" Only one active limit order is allowed at a time.\n",
|
|
" limit_delta (float or array_like): Delta from `price` to build the limit price.\n",
|
|
" Will broadcast.\n",
|
|
" \n",
|
|
" If NaN, `price` becomes the limit price. Otherwise, applied on top of `price` depending\n",
|
|
" on the current direction: if the direction-aware size is positive (= buying), a positive delta\n",
|
|
" will decrease the limit price; if the direction-aware size is negative (= selling), a positive delta\n",
|
|
" will increase the limit price. Delta can be negative.\n",
|
|
" \n",
|
|
" Set an element to `np.nan` to disable. Use `delta_format` to specify the format.\n",
|
|
" limit_tif (frequency_like or array_like): Time in force for limit signals.\n",
|
|
" Will broadcast.\n",
|
|
" \n",
|
|
" Any frequency-like object is converted using `vectorbtpro.utils.datetime_.to_timedelta64`.\n",
|
|
" Any array must either contain timedeltas or integers, and will be cast into integer format\n",
|
|
" after broadcasting. If the object provided is of data type `object`, will be converted\n",
|
|
" to timedelta automatically.\n",
|
|
" \n",
|
|
" Measured in the distance after the open time of the signal bar. If the expiration time happens\n",
|
|
" in the middle of the current bar, we pessimistically assume that the order has been expired.\n",
|
|
" The check is performed at the beginning of the bar, and the first check is performed at the\n",
|
|
" next bar after the signal. For example, if the format is `TimeDeltaFormat.Rows`, 0 or 1 means\n",
|
|
" the order must execute at the same bar or not at all; 2 means the order must execute at the\n",
|
|
" same or next bar or not at all.\n",
|
|
" \n",
|
|
" Set an element to `-1` to disable. Use `time_delta_format` to specify the format.\n",
|
|
" limit_expiry (frequency_like, datetime_like, or array_like): Expiration time.\n",
|
|
" Will broadcast.\n",
|
|
" \n",
|
|
" Any frequency-like object is used to build a period index, such that each timestamp in the original\n",
|
|
" index is pointing to the timestamp where the period ends. For example, providing \"d\" will\n",
|
|
" make any limit order expire on the next day. Any array must either contain timestamps or integers\n",
|
|
" (not timedeltas!), and will be cast into integer format after broadcasting. If the object\n",
|
|
" provided is of data type `object`, will be converted to datetime and its timezone will\n",
|
|
" be removed automatically (as done on the index).\n",
|
|
" \n",
|
|
" Behaves in a similar way as `limit_tif`.\n",
|
|
" \n",
|
|
" Set an element to `-1` or `pd.Timestamp.max` to disable. Use `time_delta_format` to specify the format.\n",
|
|
" limit_reverse (bool or array_like): Whether to reverse the price hit detection.\n",
|
|
" Will broadcast.\n",
|
|
" \n",
|
|
" If True, a buy/sell limit price will be checked against high/low (not low/high).\n",
|
|
" Also, the limit delta will be applied above/below (not below/above) the initial price.\n",
|
|
" upon_adj_limit_conflict (PendingConflictMode or array_like): Conflict mode for limit and user-defined\n",
|
|
" signals of adjacent sign. See `vectorbtpro.portfolio.enums.PendingConflictMode`. Will broadcast.\n",
|
|
" upon_opp_limit_conflict (PendingConflictMode or array_like): Conflict mode for limit and user-defined\n",
|
|
" signals of opposite sign. See `vectorbtpro.portfolio.enums.PendingConflictMode`. Will broadcast.\n",
|
|
" use_stops (bool): Whether to use stops.\n",
|
|
" Defaults to None, which becomes True if any of the stops are not NaN or\n",
|
|
" the adjustment function is not the default one.\n",
|
|
" \n",
|
|
" Disable this to make simulation a bit faster for simple use cases.\n",
|
|
" stop_ladder (bool or StopLadderMode): Whether and which kind of stop laddering to use.\n",
|
|
" See `vectorbtpro.portfolio.enums.StopLadderMode`.\n",
|
|
" \n",
|
|
" If so, rows in the supplied arrays will become ladder steps. Make sure that\n",
|
|
" they are increasing. If one column should have less steps, pad it with NaN\n",
|
|
" for price-based stops and -1 for time-based stops.\n",
|
|
" \n",
|
|
" Rows in each array can be of an arbitrary length but columns must broadcast against\n",
|
|
" the number of columns in the data. Applied on all stop types.\n",
|
|
" sl_stop (array_like of float): Stop loss.\n",
|
|
" Will broadcast.\n",
|
|
" \n",
|
|
" Set an element to `np.nan` to disable. Use `delta_format` to specify the format.\n",
|
|
" tsl_stop (array_like of float): Trailing stop loss for the trailing stop loss.\n",
|
|
" Will broadcast.\n",
|
|
" \n",
|
|
" Set an element to `np.nan` to disable. Use `delta_format` to specify the format.\n",
|
|
" tsl_th (array_like of float): Take profit threshold for the trailing stop loss.\n",
|
|
" Will broadcast.\n",
|
|
" \n",
|
|
" Set an element to `np.nan` to disable. Use `delta_format` to specify the format.\n",
|
|
" tp_stop (array_like of float): Take profit.\n",
|
|
" Will broadcast.\n",
|
|
" \n",
|
|
" Set an element to `np.nan` to disable. Use `delta_format` to specify the format.\n",
|
|
" td_stop (frequency_like or array_like): Timedelta-stop.\n",
|
|
" Will broadcast.\n",
|
|
" \n",
|
|
" Set an element to `-1` to disable. Use `time_delta_format` to specify the format.\n",
|
|
" dt_stop (frequency_like, datetime_like, or array_like): Datetime-stop.\n",
|
|
" Will broadcast.\n",
|
|
" \n",
|
|
" Set an element to `-1` to disable. Use `time_delta_format` to specify the format.\n",
|
|
" stop_entry_price (StopEntryPrice or array_like): See `vectorbtpro.portfolio.enums.StopEntryPrice`.\n",
|
|
" Will broadcast.\n",
|
|
" \n",
|
|
" If provided on per-element basis, gets applied upon entry. If a positive value is provided,\n",
|
|
" used directly as a price, otherwise used as an enumerated value.\n",
|
|
" stop_exit_price (StopExitPrice or array_like): See `vectorbtpro.portfolio.enums.StopExitPrice`.\n",
|
|
" Will broadcast.\n",
|
|
" \n",
|
|
" If provided on per-element basis, gets applied upon entry. If a positive value is provided,\n",
|
|
" used directly as a price, otherwise used as an enumerated value.\n",
|
|
" stop_exit_type (StopExitType or array_like): See `vectorbtpro.portfolio.enums.StopExitType`.\n",
|
|
" Will broadcast.\n",
|
|
" \n",
|
|
" If provided on per-element basis, gets applied upon entry.\n",
|
|
" stop_order_type (OrderType or array_like): Similar to `order_type` but for stop orders.\n",
|
|
" Will broadcast.\n",
|
|
" \n",
|
|
" If provided on per-element basis, gets applied upon entry.\n",
|
|
" stop_limit_delta (float or array_like): Similar to `limit_delta` but for stop orders.\n",
|
|
" Will broadcast.\n",
|
|
" upon_stop_update (StopUpdateMode or array_like): See `vectorbtpro.portfolio.enums.StopUpdateMode`.\n",
|
|
" Will broadcast.\n",
|
|
" \n",
|
|
" Only has effect if accumulation is enabled.\n",
|
|
" \n",
|
|
" If provided on per-element basis, gets applied upon repeated entry.\n",
|
|
" upon_adj_stop_conflict (PendingConflictMode or array_like): Conflict mode for stop and user-defined\n",
|
|
" signals of adjacent sign. See `vectorbtpro.portfolio.enums.PendingConflictMode`. Will broadcast.\n",
|
|
" upon_opp_stop_conflict (PendingConflictMode or array_like): Conflict mode for stop and user-defined\n",
|
|
" signals of opposite sign. See `vectorbtpro.portfolio.enums.PendingConflictMode`. Will broadcast.\n",
|
|
" delta_format (DeltaFormat or array_like): See `vectorbtpro.portfolio.enums.DeltaFormat`.\n",
|
|
" Will broadcast.\n",
|
|
" time_delta_format (TimeDeltaFormat or array_like): See `vectorbtpro.portfolio.enums.TimeDeltaFormat`.\n",
|
|
" Will broadcast.\n",
|
|
" open (array_like of float): See `Portfolio.from_orders`.\n",
|
|
" \n",
|
|
" For stop signals, `np.nan` gets replaced by `close`.\n",
|
|
" high (array_like of float): See `Portfolio.from_orders`.\n",
|
|
" \n",
|
|
" For stop signals, `np.nan` replaced by the maximum out of `open` and `close`.\n",
|
|
" low (array_like of float): See `Portfolio.from_orders`.\n",
|
|
" \n",
|
|
" For stop signals, `np.nan` replaced by the minimum out of `open` and `close`.\n",
|
|
" init_cash (InitCashMode, float or array_like): See `Portfolio.from_orders`.\n",
|
|
" init_position (float or array_like): See `Portfolio.from_orders`.\n",
|
|
" init_price (float or array_like): See `Portfolio.from_orders`.\n",
|
|
" cash_deposits (float or array_like): See `Portfolio.from_orders`.\n",
|
|
" cash_earnings (float or array_like): See `Portfolio.from_orders`.\n",
|
|
" cash_dividends (float or array_like): See `Portfolio.from_orders`.\n",
|
|
" cash_sharing (bool): See `Portfolio.from_orders`.\n",
|
|
" from_ago (int or array_like): See `Portfolio.from_orders`.\n",
|
|
" \n",
|
|
" Take effect only for user-defined signals, not for stop signals.\n",
|
|
" call_seq (CallSeqType or array_like): See `Portfolio.from_orders`.\n",
|
|
" attach_call_seq (bool): See `Portfolio.from_orders`.\n",
|
|
" ffill_val_price (bool): See `Portfolio.from_orders`.\n",
|
|
" update_value (bool): See `Portfolio.from_orders`.\n",
|
|
" fill_pos_info (bool): fill_pos_info (bool): Whether to fill position record.\n",
|
|
" \n",
|
|
" Disable this to make simulation faster for simple use cases.\n",
|
|
" save_state (bool): See `Portfolio.from_orders`.\n",
|
|
" save_value (bool): See `Portfolio.from_orders`.\n",
|
|
" save_returns (bool): See `Portfolio.from_orders`.\n",
|
|
" max_order_records (int): See `Portfolio.from_orders`.\n",
|
|
" max_log_records (int): See `Portfolio.from_orders`.\n",
|
|
" in_outputs (mapping_like): Mapping with in-output objects. Only for flexible mode.\n",
|
|
" \n",
|
|
" Will be available via `Portfolio.in_outputs` as a named tuple.\n",
|
|
" \n",
|
|
" To substitute `Portfolio` attributes, provide already broadcasted and grouped objects,\n",
|
|
" for example, by using `broadcast_named_args` and templates. Also see\n",
|
|
" `Portfolio.in_outputs_indexing_func` on how in-output objects are indexed.\n",
|
|
" \n",
|
|
" When chunking, make sure to provide the chunk taking specification and the merging function.\n",
|
|
" See `vectorbtpro.portfolio.chunking.merge_sim_outs`.\n",
|
|
" \n",
|
|
" !!! note\n",
|
|
" When using Numba below 0.54, `in_outputs` cannot be a mapping, but must be a named tuple\n",
|
|
" defined globally so Numba can introspect its attributes for pickling.\n",
|
|
" seed (int): See `Portfolio.from_orders`.\n",
|
|
" group_by (any): See `Portfolio.from_orders`.\n",
|
|
" broadcast_named_args (dict): Dictionary with named arguments to broadcast.\n",
|
|
" \n",
|
|
" You can then pass argument names wrapped with `vectorbtpro.utils.template.Rep`\n",
|
|
" and this method will substitute them by their corresponding broadcasted objects.\n",
|
|
" broadcast_kwargs (dict): See `Portfolio.from_orders`.\n",
|
|
" template_context (mapping): Mapping to replace templates in arguments.\n",
|
|
" jitted (any): See `Portfolio.from_orders`.\n",
|
|
" chunked (any): See `Portfolio.from_orders`.\n",
|
|
" staticized (bool, dict, hashable, or callable): Keyword arguments or task id for staticizing.\n",
|
|
" \n",
|
|
" If True or dictionary, will be passed as keyword arguments to\n",
|
|
" `vectorbtpro.utils.cutting.cut_and_save_func` to save a cacheable version of the\n",
|
|
" simulator to a file. If a hashable or callable, will be used as a task id of an\n",
|
|
" already registered jittable and chunkable simulator. Dictionary allows additional options\n",
|
|
" `override` and `reload` to override and reload an already existing module respectively.\n",
|
|
" bm_close (array_like): See `Portfolio.from_orders`.\n",
|
|
" records (array_like): See `Portfolio.from_orders`.\n",
|
|
" return_preparer (bool): See `Portfolio.from_orders`.\n",
|
|
" return_prep_result (bool): See `Portfolio.from_orders`.\n",
|
|
" return_sim_out (bool): See `Portfolio.from_orders`.\n",
|
|
" **kwargs: Keyword arguments passed to the `Portfolio` constructor.\n",
|
|
" \n",
|
|
" All broadcastable arguments will broadcast using `vectorbtpro.base.reshaping.broadcast`\n",
|
|
" but keep original shape to utilize flexible indexing and to save memory.\n",
|
|
" \n",
|
|
" For defaults, see `vectorbtpro._settings.portfolio`. Those defaults are not used to fill\n",
|
|
" NaN values after reindexing: vectorbt uses its own sensible defaults, which are usually NaN\n",
|
|
" for floating arrays and default flags for integer arrays. Use `vectorbtpro.base.reshaping.BCO`\n",
|
|
" with `fill_value` to override.\n",
|
|
" \n",
|
|
" Also see notes and hints for `Portfolio.from_orders`.\n",
|
|
" \n",
|
|
" Usage:\n",
|
|
" * By default, if all signal arrays are None, `entries` becomes True,\n",
|
|
" which opens a position at the very first tick and does nothing else:\n",
|
|
" \n",
|
|
" ```pycon\n",
|
|
" >>> close = pd.Series([1, 2, 3, 4, 5])\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(close, size=1)\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 1.0\n",
|
|
" 1 0.0\n",
|
|
" 2 0.0\n",
|
|
" 3 0.0\n",
|
|
" 4 0.0\n",
|
|
" dtype: float64\n",
|
|
" ```\n",
|
|
" \n",
|
|
" * Entry opens long, exit closes long:\n",
|
|
" \n",
|
|
" ```pycon\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close,\n",
|
|
" ... entries=pd.Series([True, True, True, False, False]),\n",
|
|
" ... exits=pd.Series([False, False, True, True, True]),\n",
|
|
" ... size=1,\n",
|
|
" ... direction='longonly'\n",
|
|
" ... )\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 1.0\n",
|
|
" 1 0.0\n",
|
|
" 2 0.0\n",
|
|
" 3 -1.0\n",
|
|
" 4 0.0\n",
|
|
" dtype: float64\n",
|
|
" \n",
|
|
" >>> # Using direction-aware arrays instead of `direction`\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close,\n",
|
|
" ... entries=pd.Series([True, True, True, False, False]), # long_entries\n",
|
|
" ... exits=pd.Series([False, False, True, True, True]), # long_exits\n",
|
|
" ... short_entries=False,\n",
|
|
" ... short_exits=False,\n",
|
|
" ... size=1\n",
|
|
" ... )\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 1.0\n",
|
|
" 1 0.0\n",
|
|
" 2 0.0\n",
|
|
" 3 -1.0\n",
|
|
" 4 0.0\n",
|
|
" dtype: float64\n",
|
|
" ```\n",
|
|
" \n",
|
|
" Notice how both `short_entries` and `short_exits` are provided as constants - as any other\n",
|
|
" broadcastable argument, they are treated as arrays where each element is False.\n",
|
|
" \n",
|
|
" * Entry opens short, exit closes short:\n",
|
|
" \n",
|
|
" ```pycon\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close,\n",
|
|
" ... entries=pd.Series([True, True, True, False, False]),\n",
|
|
" ... exits=pd.Series([False, False, True, True, True]),\n",
|
|
" ... size=1,\n",
|
|
" ... direction='shortonly'\n",
|
|
" ... )\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 -1.0\n",
|
|
" 1 0.0\n",
|
|
" 2 0.0\n",
|
|
" 3 1.0\n",
|
|
" 4 0.0\n",
|
|
" dtype: float64\n",
|
|
" \n",
|
|
" >>> # Using direction-aware arrays instead of `direction`\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close,\n",
|
|
" ... entries=False, # long_entries\n",
|
|
" ... exits=False, # long_exits\n",
|
|
" ... short_entries=pd.Series([True, True, True, False, False]),\n",
|
|
" ... short_exits=pd.Series([False, False, True, True, True]),\n",
|
|
" ... size=1\n",
|
|
" ... )\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 -1.0\n",
|
|
" 1 0.0\n",
|
|
" 2 0.0\n",
|
|
" 3 1.0\n",
|
|
" 4 0.0\n",
|
|
" dtype: float64\n",
|
|
" ```\n",
|
|
" \n",
|
|
" * Entry opens long and closes short, exit closes long and opens short:\n",
|
|
" \n",
|
|
" ```pycon\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close,\n",
|
|
" ... entries=pd.Series([True, True, True, False, False]),\n",
|
|
" ... exits=pd.Series([False, False, True, True, True]),\n",
|
|
" ... size=1,\n",
|
|
" ... direction='both'\n",
|
|
" ... )\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 1.0\n",
|
|
" 1 0.0\n",
|
|
" 2 0.0\n",
|
|
" 3 -2.0\n",
|
|
" 4 0.0\n",
|
|
" dtype: float64\n",
|
|
" \n",
|
|
" >>> # Using direction-aware arrays instead of `direction`\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close,\n",
|
|
" ... entries=pd.Series([True, True, True, False, False]), # long_entries\n",
|
|
" ... exits=False, # long_exits\n",
|
|
" ... short_entries=pd.Series([False, False, True, True, True]),\n",
|
|
" ... short_exits=False,\n",
|
|
" ... size=1\n",
|
|
" ... )\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 1.0\n",
|
|
" 1 0.0\n",
|
|
" 2 0.0\n",
|
|
" 3 -2.0\n",
|
|
" 4 0.0\n",
|
|
" dtype: float64\n",
|
|
" ```\n",
|
|
" \n",
|
|
" * More complex signal combinations are best expressed using direction-aware arrays.\n",
|
|
" For example, ignore opposite signals as long as the current position is open:\n",
|
|
" \n",
|
|
" ```pycon\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close,\n",
|
|
" ... entries =pd.Series([True, False, False, False, False]), # long_entries\n",
|
|
" ... exits =pd.Series([False, False, True, False, False]), # long_exits\n",
|
|
" ... short_entries=pd.Series([False, True, False, True, False]),\n",
|
|
" ... short_exits =pd.Series([False, False, False, False, True]),\n",
|
|
" ... size=1,\n",
|
|
" ... upon_opposite_entry='ignore'\n",
|
|
" ... )\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 1.0\n",
|
|
" 1 0.0\n",
|
|
" 2 -1.0\n",
|
|
" 3 -1.0\n",
|
|
" 4 1.0\n",
|
|
" dtype: float64\n",
|
|
" ```\n",
|
|
" \n",
|
|
" * First opposite signal closes the position, second one opens a new position:\n",
|
|
" \n",
|
|
" ```pycon\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close,\n",
|
|
" ... entries=pd.Series([True, True, True, False, False]),\n",
|
|
" ... exits=pd.Series([False, False, True, True, True]),\n",
|
|
" ... size=1,\n",
|
|
" ... direction='both',\n",
|
|
" ... upon_opposite_entry='close'\n",
|
|
" ... )\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 1.0\n",
|
|
" 1 0.0\n",
|
|
" 2 0.0\n",
|
|
" 3 -1.0\n",
|
|
" 4 -1.0\n",
|
|
" dtype: float64\n",
|
|
" ```\n",
|
|
" \n",
|
|
" * If both long entry and exit signals are True (a signal conflict), choose exit:\n",
|
|
" \n",
|
|
" ```pycon\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close,\n",
|
|
" ... entries=pd.Series([True, True, True, False, False]),\n",
|
|
" ... exits=pd.Series([False, False, True, True, True]),\n",
|
|
" ... size=1.,\n",
|
|
" ... direction='longonly',\n",
|
|
" ... upon_long_conflict='exit')\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 1.0\n",
|
|
" 1 0.0\n",
|
|
" 2 -1.0\n",
|
|
" 3 0.0\n",
|
|
" 4 0.0\n",
|
|
" dtype: float64\n",
|
|
" ```\n",
|
|
" \n",
|
|
" * If both long entry and short entry signal are True (a direction conflict), choose short:\n",
|
|
" \n",
|
|
" ```pycon\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close,\n",
|
|
" ... entries=pd.Series([True, True, True, False, False]),\n",
|
|
" ... exits=pd.Series([False, False, True, True, True]),\n",
|
|
" ... size=1.,\n",
|
|
" ... direction='both',\n",
|
|
" ... upon_dir_conflict='short')\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 1.0\n",
|
|
" 1 0.0\n",
|
|
" 2 -2.0\n",
|
|
" 3 0.0\n",
|
|
" 4 0.0\n",
|
|
" dtype: float64\n",
|
|
" ```\n",
|
|
" \n",
|
|
" !!! note\n",
|
|
" Remember that when direction is set to 'both', entries become `long_entries` and exits become\n",
|
|
" `short_entries`, so this becomes a conflict of directions rather than signals.\n",
|
|
" \n",
|
|
" * If there are both signal and direction conflicts:\n",
|
|
" \n",
|
|
" ```pycon\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close,\n",
|
|
" ... entries=True, # long_entries\n",
|
|
" ... exits=True, # long_exits\n",
|
|
" ... short_entries=True,\n",
|
|
" ... short_exits=True,\n",
|
|
" ... size=1,\n",
|
|
" ... upon_long_conflict='entry',\n",
|
|
" ... upon_short_conflict='entry',\n",
|
|
" ... upon_dir_conflict='short'\n",
|
|
" ... )\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 -1.0\n",
|
|
" 1 0.0\n",
|
|
" 2 0.0\n",
|
|
" 3 0.0\n",
|
|
" 4 0.0\n",
|
|
" dtype: float64\n",
|
|
" ```\n",
|
|
" \n",
|
|
" * Turn on accumulation of signals. Entry means long order, exit means short order\n",
|
|
" (acts similar to `from_orders`):\n",
|
|
" \n",
|
|
" ```pycon\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close,\n",
|
|
" ... entries=pd.Series([True, True, True, False, False]),\n",
|
|
" ... exits=pd.Series([False, False, True, True, True]),\n",
|
|
" ... size=1.,\n",
|
|
" ... direction='both',\n",
|
|
" ... accumulate=True)\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 1.0\n",
|
|
" 1 1.0\n",
|
|
" 2 0.0\n",
|
|
" 3 -1.0\n",
|
|
" 4 -1.0\n",
|
|
" dtype: float64\n",
|
|
" ```\n",
|
|
" \n",
|
|
" * Allow increasing a position (of any direction), deny decreasing a position:\n",
|
|
" \n",
|
|
" ```pycon\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close,\n",
|
|
" ... entries=pd.Series([True, True, True, False, False]),\n",
|
|
" ... exits=pd.Series([False, False, True, True, True]),\n",
|
|
" ... size=1.,\n",
|
|
" ... direction='both',\n",
|
|
" ... accumulate='addonly')\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 1.0 << open a long position\n",
|
|
" 1 1.0 << add to the position\n",
|
|
" 2 0.0\n",
|
|
" 3 -3.0 << close and open a short position\n",
|
|
" 4 -1.0 << add to the position\n",
|
|
" dtype: float64\n",
|
|
" ```\n",
|
|
" \n",
|
|
" * Test multiple parameters via regular broadcasting:\n",
|
|
" \n",
|
|
" ```pycon\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close,\n",
|
|
" ... entries=pd.Series([True, True, True, False, False]),\n",
|
|
" ... exits=pd.Series([False, False, True, True, True]),\n",
|
|
" ... direction=[list(Direction)],\n",
|
|
" ... broadcast_kwargs=dict(columns_from=pd.Index(vbt.pf_enums.Direction._fields, name='direction')))\n",
|
|
" >>> pf.asset_flow\n",
|
|
" direction LongOnly ShortOnly Both\n",
|
|
" 0 100.0 -100.0 100.0\n",
|
|
" 1 0.0 0.0 0.0\n",
|
|
" 2 0.0 0.0 0.0\n",
|
|
" 3 -100.0 50.0 -200.0\n",
|
|
" 4 0.0 0.0 0.0\n",
|
|
" ```\n",
|
|
" \n",
|
|
" * Test multiple parameters via `vectorbtpro.base.reshaping.BCO`:\n",
|
|
" \n",
|
|
" ```pycon\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close,\n",
|
|
" ... entries=pd.Series([True, True, True, False, False]),\n",
|
|
" ... exits=pd.Series([False, False, True, True, True]),\n",
|
|
" ... direction=vbt.Param(Direction))\n",
|
|
" >>> pf.asset_flow\n",
|
|
" direction LongOnly ShortOnly Both\n",
|
|
" 0 100.0 -100.0 100.0\n",
|
|
" 1 0.0 0.0 0.0\n",
|
|
" 2 0.0 0.0 0.0\n",
|
|
" 3 -100.0 50.0 -200.0\n",
|
|
" 4 0.0 0.0 0.0\n",
|
|
" ```\n",
|
|
" \n",
|
|
" * Set risk/reward ratio by passing trailing stop loss and take profit thresholds:\n",
|
|
" \n",
|
|
" ```pycon\n",
|
|
" >>> close = pd.Series([10, 11, 12, 11, 10, 9])\n",
|
|
" >>> entries = pd.Series([True, False, False, False, False, False])\n",
|
|
" >>> exits = pd.Series([False, False, False, False, False, True])\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close, entries, exits,\n",
|
|
" ... tsl_stop=0.1, tp_stop=0.2) # take profit hit\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 10.0\n",
|
|
" 1 0.0\n",
|
|
" 2 -10.0\n",
|
|
" 3 0.0\n",
|
|
" 4 0.0\n",
|
|
" 5 0.0\n",
|
|
" dtype: float64\n",
|
|
" \n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close, entries, exits,\n",
|
|
" ... tsl_stop=0.1, tp_stop=0.3) # trailing stop loss hit\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 10.0\n",
|
|
" 1 0.0\n",
|
|
" 2 0.0\n",
|
|
" 3 0.0\n",
|
|
" 4 -10.0\n",
|
|
" 5 0.0\n",
|
|
" dtype: float64\n",
|
|
" \n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close, entries, exits,\n",
|
|
" ... tsl_stop=np.inf, tp_stop=np.inf) # nothing hit, exit as usual\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 10.0\n",
|
|
" 1 0.0\n",
|
|
" 2 0.0\n",
|
|
" 3 0.0\n",
|
|
" 4 0.0\n",
|
|
" 5 -10.0\n",
|
|
" dtype: float64\n",
|
|
" ```\n",
|
|
" \n",
|
|
" * Test different stop combinations:\n",
|
|
" \n",
|
|
" ```pycon\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... close, entries, exits,\n",
|
|
" ... tsl_stop=vbt.Param([0.1, 0.2]),\n",
|
|
" ... tp_stop=vbt.Param([0.2, 0.3])\n",
|
|
" ... )\n",
|
|
" >>> pf.asset_flow\n",
|
|
" tsl_stop 0.1 0.2\n",
|
|
" tp_stop 0.2 0.3 0.2 0.3\n",
|
|
" 0 10.0 10.0 10.0 10.0\n",
|
|
" 1 0.0 0.0 0.0 0.0\n",
|
|
" 2 -10.0 0.0 -10.0 0.0\n",
|
|
" 3 0.0 0.0 0.0 0.0\n",
|
|
" 4 0.0 -10.0 0.0 0.0\n",
|
|
" 5 0.0 0.0 0.0 -10.0\n",
|
|
" ```\n",
|
|
" \n",
|
|
" This works because `pd.Index` automatically translates into `vectorbtpro.base.reshaping.BCO`\n",
|
|
" with `product` set to True.\n",
|
|
" \n",
|
|
" * We can implement our own stop loss or take profit, or adjust the existing one at each time step.\n",
|
|
" Let's implement [stepped stop-loss](https://www.freqtrade.io/en/stable/strategy-advanced/#stepped-stoploss):\n",
|
|
" \n",
|
|
" ```pycon\n",
|
|
" >>> @njit\n",
|
|
" ... def adjust_func_nb(c):\n",
|
|
" ... val_price_now = c.last_val_price[c.col]\n",
|
|
" ... tsl_init_price = c.last_tsl_info[\"init_price\"][c.col]\n",
|
|
" ... current_profit = (val_price_now - tsl_init_price) / tsl_init_price\n",
|
|
" ... if current_profit >= 0.40:\n",
|
|
" ... c.last_tsl_info[\"stop\"][c.col] = 0.25\n",
|
|
" ... elif current_profit >= 0.25:\n",
|
|
" ... c.last_tsl_info[\"stop\"][c.col] = 0.15\n",
|
|
" ... elif current_profit >= 0.20:\n",
|
|
" ... c.last_tsl_info[\"stop\"][c.col] = 0.07\n",
|
|
" \n",
|
|
" >>> close = pd.Series([10, 11, 12, 11, 10])\n",
|
|
" >>> pf = vbt.Portfolio.from_signals(close, adjust_func_nb=adjust_func_nb)\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 10.0\n",
|
|
" 1 0.0\n",
|
|
" 2 0.0\n",
|
|
" 3 -10.0 # 7% from 12 hit\n",
|
|
" 4 11.16\n",
|
|
" dtype: float64\n",
|
|
" ```\n",
|
|
" \n",
|
|
" * Sometimes there is a need to provide or transform signals dynamically. For this, we can implement\n",
|
|
" a custom signal function `signal_func_nb`. For example, let's implement a signal function that\n",
|
|
" takes two numerical arrays - long and short one - and transforms them into 4 direction-aware boolean\n",
|
|
" arrays that vectorbt understands:\n",
|
|
" \n",
|
|
" ```pycon\n",
|
|
" >>> @njit\n",
|
|
" ... def signal_func_nb(c, long_num_arr, short_num_arr):\n",
|
|
" ... long_num = vbt.pf_nb.select_nb(c, long_num_arr)\n",
|
|
" ... short_num = vbt.pf_nb.select_nb(c, short_num_arr)\n",
|
|
" ... is_long_entry = long_num > 0\n",
|
|
" ... is_long_exit = long_num < 0\n",
|
|
" ... is_short_entry = short_num > 0\n",
|
|
" ... is_short_exit = short_num < 0\n",
|
|
" ... return is_long_entry, is_long_exit, is_short_entry, is_short_exit\n",
|
|
" \n",
|
|
" >>> pf = vbt.Portfolio.from_signals(\n",
|
|
" ... pd.Series([1, 2, 3, 4, 5]),\n",
|
|
" ... signal_func_nb=signal_func_nb,\n",
|
|
" ... signal_args=(vbt.Rep('long_num_arr'), vbt.Rep('short_num_arr')),\n",
|
|
" ... broadcast_named_args=dict(\n",
|
|
" ... long_num_arr=pd.Series([1, 0, -1, 0, 0]),\n",
|
|
" ... short_num_arr=pd.Series([0, 1, 0, 1, -1])\n",
|
|
" ... ),\n",
|
|
" ... size=1,\n",
|
|
" ... upon_opposite_entry='ignore'\n",
|
|
" ... )\n",
|
|
" >>> pf.asset_flow\n",
|
|
" 0 1.0\n",
|
|
" 1 0.0\n",
|
|
" 2 -1.0\n",
|
|
" 3 -1.0\n",
|
|
" 4 1.0\n",
|
|
" dtype: float64\n",
|
|
" ```\n",
|
|
" \n",
|
|
" Passing both arrays as `broadcast_named_args` broadcasts them internally as any other array,\n",
|
|
" so we don't have to worry about their dimensions every time we change our data.\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"vbt.phelp(vbt.Portfolio.from_signals)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 67,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"[0.0003, 0.0008, 0.0013, 0.0018, 0.0023, 0.0028, 0.0033, 0.0038]\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/var/folders/8p/dwqnp65s0s77jdbm4_6z4vp80000gn/T/ipykernel_15645/1972107742.py:9: UserWarning:\n",
|
|
"\n",
|
|
"Object has multiple columns. Aggregated some metrics using <function mean at 0x10a0d43a0>. Pass column to select a single column/group.\n",
|
|
"\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<table id=\"itables_7aa834f7_1ddb_489a_bb09_ed5d395b7a9d\" class=\"display nowrap\" data-quarto-disable-processing=\"true\" style=\"table-layout:auto;width:auto;margin:auto;caption-side:bottom\">\n",
|
|
"<thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>agg_stats</th>\n",
|
|
" </tr>\n",
|
|
" </thead><tbody><tr>\n",
|
|
"<td style=\"vertical-align:middle; text-align:left\">\n",
|
|
"<div style=\"float:left; margin-right: 10px;\">\n",
|
|
"<a href=https://mwouts.github.io/itables/><svg class=\"main-svg\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
|
|
"width=\"64\" viewBox=\"0 0 500 400\" style=\"font-family: 'Droid Sans', sans-serif;\">\n",
|
|
" <g style=\"fill:#d9d7fc\">\n",
|
|
" <path d=\"M100,400H500V357H100Z\" />\n",
|
|
" <path d=\"M100,300H400V257H100Z\" />\n",
|
|
" <path d=\"M0,200H400V157H0Z\" />\n",
|
|
" <path d=\"M100,100H500V57H100Z\" />\n",
|
|
" <path d=\"M100,350H500V307H100Z\" />\n",
|
|
" <path d=\"M100,250H400V207H100Z\" />\n",
|
|
" <path d=\"M0,150H400V107H0Z\" />\n",
|
|
" <path d=\"M100,50H500V7H100Z\" />\n",
|
|
" </g>\n",
|
|
" <g style=\"fill:#1a1366;stroke:#1a1366;\">\n",
|
|
" <rect x=\"100\" y=\"7\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"0\" y=\"107\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"0;0;400\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"207\" width=\"300\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;300;0\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;400\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"307\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <g style=\"fill:transparent;stroke-width:8; stroke-linejoin:round\" rx=\"5\">\n",
|
|
" <g transform=\"translate(45 50) rotate(-45)\">\n",
|
|
" <circle r=\"33\" cx=\"0\" cy=\"0\" />\n",
|
|
" <rect x=\"-8\" y=\"32\" width=\"16\" height=\"30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(450 152)\">\n",
|
|
" <polyline points=\"-15,-20 -35,-20 -35,40 25,40 25,20\" />\n",
|
|
" <rect x=\"-15\" y=\"-40\" width=\"60\" height=\"60\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(50 352)\">\n",
|
|
" <polygon points=\"-35,-5 0,-40 35,-5\" />\n",
|
|
" <polygon points=\"-35,10 0,45 35,10\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(75 250)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(425 250) rotate(180)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
"</svg>\n",
|
|
"</a>\n",
|
|
"</div>\n",
|
|
"<div>\n",
|
|
"Loading ITables v2.0.1 from the <code>init_notebook_mode</code> cell...\n",
|
|
"(need <a href=https://mwouts.github.io/itables/troubleshooting.html>help</a>?)</td>\n",
|
|
"</div>\n",
|
|
"</tr></tbody>\n",
|
|
"\n",
|
|
"</table>\n",
|
|
"<script type=\"module\">\n",
|
|
" const { DataTable, jQuery: $ } = await import(window._datatables_src_for_itables_2_0_1);\n",
|
|
"\n",
|
|
" document.querySelectorAll(\"#itables_7aa834f7_1ddb_489a_bb09_ed5d395b7a9d:not(.dataTable)\").forEach(table => {\n",
|
|
" // Define the table data\n",
|
|
" const data = [[\"Start\", \"2024-04-29 09:30:00-04:00\"], [\"End\", \"2024-05-06 10:45:00-04:00\"], [\"Period\", \"0 days 00:02:21\"], [\"Start Value\", \" 100.0\"], [\"Min Value\", \" 99.927477\"], [\"Max Value\", \" 100.0\"], [\"End Value\", \" 99.927477\"], [\"Total Return [%]\", \"-0.072523\"], [\"Benchmark Return [%]\", \"-0.844773\"], [\"Total Time Exposure [%]\", \" 0.70922\"], [\"Max Gross Exposure [%]\", \" 100.0\"], [\"Max Drawdown [%]\", \" 0.072523\"], [\"Max Drawdown Duration\", \"0 days 00:01:32\"], [\"Total Orders\", \" 2.0\"], [\"Total Fees Paid\", \" 0.033388\"], [\"Total Trades\", \" 1.0\"], [\"Win Rate [%]\", \" 0.0\"], [\"Best Trade [%]\", \"-0.072535\"], [\"Worst Trade [%]\", \"-0.072535\"], [\"Avg Winning Trade [%]\", \"NaN\"], [\"Avg Losing Trade [%]\", \"-0.072535\"], [\"Avg Winning Trade Duration\", \"NaT\"], [\"Avg Losing Trade Duration\", \"0 days 00:00:01\"], [\"Profit Factor\", \" 0.0\"], [\"Expectancy\", \"-0.072523\"], [\"Sharpe Ratio\", \"-589.996672\"], [\"Calmar Ratio\", \"-50.816428\"], [\"Omega Ratio\", \" 0.0\"], [\"Sortino Ratio\", \"-588.835078\"]];\n",
|
|
"\n",
|
|
" // Define the dt_args\n",
|
|
" let dt_args = {\"layout\": {\"topStart\": \"pageLength\", \"topEnd\": \"search\", \"bottomStart\": \"info\", \"bottomEnd\": \"paging\"}, \"order\": [], \"warn_on_dom\": true};\n",
|
|
" dt_args[\"data\"] = data;\n",
|
|
"\n",
|
|
" \n",
|
|
" new DataTable(table, dt_args);\n",
|
|
" });\n",
|
|
"</script>\n"
|
|
],
|
|
"text/plain": [
|
|
"Start 2024-04-29 09:30:00-04:00\n",
|
|
"End 2024-05-06 10:45:00-04:00\n",
|
|
"Period 0 days 00:02:21\n",
|
|
"Start Value 100.0\n",
|
|
"Min Value 99.927477\n",
|
|
" ... \n",
|
|
"Expectancy -0.072523\n",
|
|
"Sharpe Ratio -589.996672\n",
|
|
"Calmar Ratio -50.816428\n",
|
|
"Omega Ratio 0.0\n",
|
|
"Sortino Ratio -588.835078\n",
|
|
"Name: agg_stats, Length: 29, dtype: object"
|
|
]
|
|
},
|
|
"execution_count": 67,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"sl_stop = np.arange(0.03/100, 0.4/100, 0.05/100).tolist()\n",
|
|
"# Using the round function\n",
|
|
"sl_stop = [round(val, 4) for val in sl_stop]\n",
|
|
"print(sl_stop)\n",
|
|
"sl_stop = vbt.Param(sl_stop) #np.nan mean s no stoploss\n",
|
|
"\n",
|
|
"pf = vbt.Portfolio.from_signals(close=close, entries=long_entries, exits=long_exits, sl_stop=sl_stop, tp_stop = sl_stop, fees=0.0167/100, freq=\"1s\") #sl_stop=sl_stop, tp_stop = sl_stop,\n",
|
|
"\n",
|
|
"pf.stats()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 30,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/vnd.jupyter.widget-view+json": {
|
|
"model_id": "53274e7f95f04df293a52149db1658af",
|
|
"version_major": 2,
|
|
"version_minor": 0
|
|
},
|
|
"text/plain": [
|
|
"FigureWidget({\n",
|
|
" 'data': [{'legendgroup': '0',\n",
|
|
" 'line': {'color': '#1f77b4'},\n",
|
|
" 'mode': 'lines',\n",
|
|
" 'name': 'Close',\n",
|
|
" 'showlegend': True,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': 'c9aba84d-aeb8-47df-b5b7-f8041c89e415',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 29, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 31, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 32, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" ...,\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 2, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 3, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 4, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x',\n",
|
|
" 'y': array([37.87 , 37.815, 37.8 , ..., 37.51 , 37.535, 37.57 ]),\n",
|
|
" 'yaxis': 'y'},\n",
|
|
" {'customdata': array([['0', '2024-04-29 14:32:00-04:00', '2024-04-29 14:32:00-04:00',\n",
|
|
" '2024-04-29 14:32:00-04:00', 2.6545414254197355, 37.665,\n",
|
|
" 0.0166972115656705, 'Market', 'None'],\n",
|
|
" ['2', '2024-04-29 15:00:00-04:00', '2024-04-29 15:00:00-04:00',\n",
|
|
" '2024-04-29 15:00:00-04:00', 2.6592130130953584, 37.575,\n",
|
|
" 0.016686628137506432, 'Market', 'None'],\n",
|
|
" ['4', '2024-04-29 15:13:00-04:00', '2024-04-29 15:13:00-04:00',\n",
|
|
" '2024-04-29 15:13:00-04:00', 2.6656859400641046, 37.46,\n",
|
|
" 0.016676051417576332, 'Market', 'None'],\n",
|
|
" ['6', '2024-04-30 12:32:00-04:00', '2024-04-30 12:32:00-04:00',\n",
|
|
" '2024-04-30 12:32:00-04:00', 2.678171682609611, 37.34,\n",
|
|
" 0.01670048941498692, 'Market', 'None'],\n",
|
|
" ['8', '2024-04-30 14:27:00-04:00', '2024-04-30 14:27:00-04:00',\n",
|
|
" '2024-04-30 14:27:00-04:00', 2.6841657767646168, 37.233,\n",
|
|
" 0.01668990390916747, 'Market', 'None'],\n",
|
|
" ['10', '2024-04-30 14:48:00-04:00', '2024-04-30 14:48:00-04:00',\n",
|
|
" '2024-04-30 14:48:00-04:00', 2.688819444902845, 37.145,\n",
|
|
" 0.01667932511291781, 'Market', 'None'],\n",
|
|
" ['12', '2024-05-01 12:21:00-04:00', '2024-05-01 12:21:00-04:00',\n",
|
|
" '2024-05-01 12:21:00-04:00', 2.702027405173107, 36.94,\n",
|
|
" 0.01666875302197468, 'Market', 'None'],\n",
|
|
" ['14', '2024-05-01 13:04:00-04:00', '2024-05-01 13:04:00-04:00',\n",
|
|
" '2024-05-01 13:04:00-04:00', 2.7061754351427645, 36.86,\n",
|
|
" 0.016658187632074828, 'Market', 'None'],\n",
|
|
" ['16', '2024-05-01 13:07:00-04:00', '2024-05-01 13:07:00-04:00',\n",
|
|
" '2024-05-01 13:07:00-04:00', 2.7070305724992725, 36.825,\n",
|
|
" 0.016647628938997627, 'Market', 'None'],\n",
|
|
" ['18', '2024-05-02 11:31:00-04:00', '2024-05-02 11:31:00-04:00',\n",
|
|
" '2024-05-02 11:31:00-04:00', 2.708256495866447, 36.785,\n",
|
|
" 0.016637076938479822, 'Market', 'None'],\n",
|
|
" ['20', '2024-05-02 11:35:00-04:00', '2024-05-02 11:35:00-04:00',\n",
|
|
" '2024-05-02 11:35:00-04:00', 2.7105779336471194, 36.7302,\n",
|
|
" 0.016626531626286578, 'Market', 'None'],\n",
|
|
" ['22', '2024-05-03 10:23:00-04:00', '2024-05-03 10:23:00-04:00',\n",
|
|
" '2024-05-03 10:23:00-04:00', 2.6878547078398904, 37.095,\n",
|
|
" 0.016650897054688585, 'Market', 'None']], dtype=object),\n",
|
|
" 'hovertemplate': ('<br>Order Id: %{customdata[0]}' ... 'br>Stop Type: %{customdata[8]}'),\n",
|
|
" 'marker': {'color': '#37B13F',\n",
|
|
" 'line': {'color': 'rgb(38,123,44)', 'width': 1},\n",
|
|
" 'size': 8,\n",
|
|
" 'symbol': 'triangle-up'},\n",
|
|
" 'mode': 'markers',\n",
|
|
" 'name': 'Buy',\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': '8189f368-5670-46c0-95c6-e532931e85c0',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 29, 14, 32, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 0, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 13, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 12, 32, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 14, 27, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 14, 48, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 12, 21, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 13, 4, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 13, 7, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 11, 31, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 11, 35, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 10, 23, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x',\n",
|
|
" 'y': array([37.665 , 37.575 , 37.46 , 37.34 , 37.233 , 37.145 , 36.94 , 36.86 ,\n",
|
|
" 36.825 , 36.785 , 36.7302, 37.095 ]),\n",
|
|
" 'yaxis': 'y'},\n",
|
|
" {'customdata': array([['1', '2024-04-29 14:32:00-04:00', '2024-04-29 14:33:00-04:00',\n",
|
|
" '2024-04-29 14:33:00-04:00', 2.6545414254197355, 37.6537005,\n",
|
|
" 0.016692202402198833, 'Market', 'SL'],\n",
|
|
" ['3', '2024-04-29 15:00:00-04:00', '2024-04-29 15:02:00-04:00',\n",
|
|
" '2024-04-29 15:02:00-04:00', 2.6592130130953584, 37.563727500000006,\n",
|
|
" 0.016681622149057454, 'Market', 'SL'],\n",
|
|
" ['5', '2024-04-29 15:13:00-04:00', '2024-04-29 15:19:00-04:00',\n",
|
|
" '2024-04-29 15:19:00-04:00', 2.6656859400641046, 37.527428,\n",
|
|
" 0.016706068310123456, 'Market', 'TP'],\n",
|
|
" ['7', '2024-04-30 12:32:00-04:00', '2024-04-30 12:33:00-04:00',\n",
|
|
" '2024-04-30 12:33:00-04:00', 2.678171682609611, 37.328798000000006,\n",
|
|
" 0.016695479268158866, 'Market', 'SL'],\n",
|
|
" ['9', '2024-04-30 14:27:00-04:00', '2024-04-30 14:31:00-04:00',\n",
|
|
" '2024-04-30 14:31:00-04:00', 2.6841657767646168, 37.2218301,\n",
|
|
" 0.016684896937995505, 'Market', 'SL'],\n",
|
|
" ['11', '2024-04-30 14:48:00-04:00', '2024-04-30 14:50:00-04:00',\n",
|
|
" '2024-04-30 14:50:00-04:00', 2.688819444902845, 37.13385650000001,\n",
|
|
" 0.016674321315379128, 'Market', 'SL'],\n",
|
|
" ['13', '2024-05-01 12:21:00-04:00', '2024-05-01 12:22:00-04:00',\n",
|
|
" '2024-05-01 12:22:00-04:00', 2.702027405173107, 36.928917999999996,\n",
|
|
" 0.0166637523960582, 'Market', 'SL'],\n",
|
|
" ['15', '2024-05-01 13:04:00-04:00', '2024-05-01 13:05:00-04:00',\n",
|
|
" '2024-05-01 13:05:00-04:00', 2.7061754351427645, 36.848942,\n",
|
|
" 0.016653190175783882, 'Market', 'SL'],\n",
|
|
" ['17', '2024-05-01 13:07:00-04:00', '2024-05-01 13:16:00-04:00',\n",
|
|
" '2024-05-01 13:16:00-04:00', 2.7070305724992725, 36.813952500000006,\n",
|
|
" 0.016642634650310018, 'Market', 'SL'],\n",
|
|
" ['19', '2024-05-02 11:31:00-04:00', '2024-05-02 11:32:00-04:00',\n",
|
|
" '2024-05-02 11:32:00-04:00', 2.708256495866447, 36.7739645,\n",
|
|
" 0.016632085815393147, 'Market', 'SL'],\n",
|
|
" ['21', '2024-05-02 11:35:00-04:00', '2024-05-02 11:51:00-04:00',\n",
|
|
" '2024-05-02 11:51:00-04:00', 2.7105779336471194, 36.796314360000004,\n",
|
|
" 0.01665645938320769, 'Market', 'TP'],\n",
|
|
" ['23', '2024-05-03 10:23:00-04:00', '2024-05-03 10:28:00-04:00',\n",
|
|
" '2024-05-03 10:28:00-04:00', 2.6878547078398904, 37.161771,\n",
|
|
" 0.016680868669380993, 'Market', 'TP']], dtype=object),\n",
|
|
" 'hovertemplate': ('<br>Order Id: %{customdata[0]}' ... 'br>Stop Type: %{customdata[8]}'),\n",
|
|
" 'marker': {'color': '#EA4335',\n",
|
|
" 'line': {'color': 'rgb(181,31,18)', 'width': 1},\n",
|
|
" 'size': 8,\n",
|
|
" 'symbol': 'triangle-down'},\n",
|
|
" 'mode': 'markers',\n",
|
|
" 'name': 'Sell',\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': '9abbd546-dd67-4f59-8924-e6a5a18c63f3',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 29, 14, 33, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 2, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 19, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 12, 33, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 14, 31, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 14, 50, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 12, 22, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 13, 5, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 13, 16, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 11, 32, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 11, 51, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 10, 28, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x',\n",
|
|
" 'y': array([37.6537005 , 37.5637275 , 37.527428 , 37.328798 , 37.2218301 ,\n",
|
|
" 37.1338565 , 36.928918 , 36.848942 , 36.8139525 , 36.7739645 ,\n",
|
|
" 36.79631436, 37.161771 ]),\n",
|
|
" 'yaxis': 'y'},\n",
|
|
" {'customdata': array([['2', '2', '2024-04-29 15:19:00-04:00', 0.14635975183893413,\n",
|
|
" 0.0014656993999998694],\n",
|
|
" ['10', '10', '2024-05-02 11:51:00-04:00', 0.14592513430370113,\n",
|
|
" 0.0014656993999998737],\n",
|
|
" ['11', '11', '2024-05-03 10:28:00-04:00', 0.14613898097312186,\n",
|
|
" 0.0014656994000000812]], dtype=object),\n",
|
|
" 'hovertemplate': ('<br>Exit Trade Id: %{customdat' ... 'br>Return: %{customdata[4]:,%}'),\n",
|
|
" 'marker': {'color': '#37B13F',\n",
|
|
" 'line': {'color': 'rgb(38,123,44)', 'width': 1},\n",
|
|
" 'opacity': array([0.9, 0.9, 0.9]),\n",
|
|
" 'size': array([14., 14., 14.]),\n",
|
|
" 'symbol': 'circle'},\n",
|
|
" 'mode': 'markers',\n",
|
|
" 'name': 'Closed - Profit',\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': '8143d2ce-a4f5-435b-86e2-d0246f789ec4',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 29, 15, 19, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 11, 51, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 3, 10, 28, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x2',\n",
|
|
" 'y': array([0.0014657, 0.0014657, 0.0014657]),\n",
|
|
" 'yaxis': 'y2'},\n",
|
|
" {'customdata': array([['0', '0', '2024-04-29 14:33:00-04:00', -0.06338440480439712,\n",
|
|
" -0.0006339498999999946],\n",
|
|
" ['1', '1', '2024-04-29 15:02:00-04:00', -0.06334422897666737,\n",
|
|
" -0.0006339498999999378],\n",
|
|
" ['3', '3', '2024-04-30 12:33:00-04:00', -0.0633968478717373,\n",
|
|
" -0.0006339499000000221],\n",
|
|
" ['4', '4', '2024-04-30 14:31:00-04:00', -0.06335666415703393,\n",
|
|
" -0.0006339498999998708],\n",
|
|
" ['5', '5', '2024-04-30 14:50:00-04:00', -0.06331650591256852,\n",
|
|
" -0.0006339499000000153],\n",
|
|
" ['6', '6', '2024-05-01 12:22:00-04:00', -0.0632763731221666,\n",
|
|
" -0.0006339499000001526],\n",
|
|
" ['7', '7', '2024-05-01 13:05:00-04:00', -0.06323626576965642,\n",
|
|
" -0.0006339498999999032],\n",
|
|
" ['8', '8', '2024-05-01 13:16:00-04:00', -0.06319618383898262,\n",
|
|
" -0.0006339498999999516],\n",
|
|
" ['9', '9', '2024-05-02 11:32:00-04:00', -0.06315612731400726,\n",
|
|
" -0.0006339499000000526]], dtype=object),\n",
|
|
" 'hovertemplate': ('<br>Exit Trade Id: %{customdat' ... 'br>Return: %{customdata[4]:,%}'),\n",
|
|
" 'marker': {'color': '#EA4335',\n",
|
|
" 'line': {'color': 'rgb(181,31,18)', 'width': 1},\n",
|
|
" 'opacity': array([0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75]),\n",
|
|
" 'size': array([7., 7., 7., 7., 7., 7., 7., 7., 7.]),\n",
|
|
" 'symbol': 'circle'},\n",
|
|
" 'mode': 'markers',\n",
|
|
" 'name': 'Closed - Loss',\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': '5d67fa3b-772b-4bb2-bb84-20a73dd5164a',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 29, 14, 33, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 2, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 12, 33, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 14, 31, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 30, 14, 50, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 12, 22, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 13, 5, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 1, 13, 16, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 2, 11, 32, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x2',\n",
|
|
" 'y': array([-0.00063395, -0.00063395, -0.00063395, -0.00063395, -0.00063395,\n",
|
|
" -0.00063395, -0.00063395, -0.00063395, -0.00063395]),\n",
|
|
" 'yaxis': 'y2'},\n",
|
|
" {'legendgroup': '1',\n",
|
|
" 'line': {'color': '#7f7f7f'},\n",
|
|
" 'mode': 'lines',\n",
|
|
" 'name': 'Benchmark',\n",
|
|
" 'showlegend': True,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': 'eda5f3c6-9f36-443b-aa49-33ce3c00f64b',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 29, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 31, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 32, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" ...,\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 2, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 3, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 4, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x3',\n",
|
|
" 'y': array([1. , 0.99854766, 0.99815157, ..., 0.99049379, 0.99115395,\n",
|
|
" 0.99207816]),\n",
|
|
" 'yaxis': 'y3'},\n",
|
|
" {'hoverinfo': 'skip',\n",
|
|
" 'line': {'color': 'rgba(0, 0, 0, 0)', 'width': 0},\n",
|
|
" 'mode': 'lines',\n",
|
|
" 'opacity': 0,\n",
|
|
" 'showlegend': False,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': 'cd073ad0-b967-4771-994e-36417f36dadc',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 29, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 31, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 32, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" ...,\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 2, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 3, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 4, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x3',\n",
|
|
" 'y': array([1, 1, 1, ..., 1, 1, 1]),\n",
|
|
" 'yaxis': 'y3'},\n",
|
|
" {'connectgaps': False,\n",
|
|
" 'fill': 'tonexty',\n",
|
|
" 'fillcolor': 'rgba(0, 128, 0, 0.25)',\n",
|
|
" 'hoverinfo': 'skip',\n",
|
|
" 'line': {'color': 'rgba(0, 0, 0, 0)', 'width': 0},\n",
|
|
" 'mode': 'lines',\n",
|
|
" 'opacity': 0,\n",
|
|
" 'showlegend': False,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': 'b89392af-b182-4bc3-b420-04be70401374',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 29, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 31, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 32, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" ...,\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 2, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 3, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 4, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x3',\n",
|
|
" 'y': array([1., 1., 1., ..., 1., 1., 1.]),\n",
|
|
" 'yaxis': 'y3'},\n",
|
|
" {'hoverinfo': 'skip',\n",
|
|
" 'line': {'color': 'rgba(0, 0, 0, 0)', 'width': 0},\n",
|
|
" 'mode': 'lines',\n",
|
|
" 'opacity': 0,\n",
|
|
" 'showlegend': False,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': '07a3a6b5-12a1-49d2-8934-0870789c217c',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 29, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 31, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 32, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" ...,\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 2, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 3, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 4, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x3',\n",
|
|
" 'y': array([1, 1, 1, ..., 1, 1, 1]),\n",
|
|
" 'yaxis': 'y3'},\n",
|
|
" {'connectgaps': False,\n",
|
|
" 'fill': 'tonexty',\n",
|
|
" 'fillcolor': 'rgba(255, 0, 0, 0.25)',\n",
|
|
" 'hoverinfo': 'skip',\n",
|
|
" 'line': {'color': 'rgba(0, 0, 0, 0)', 'width': 0},\n",
|
|
" 'mode': 'lines',\n",
|
|
" 'opacity': 0,\n",
|
|
" 'showlegend': False,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': '72ec5d1b-7454-401c-a86c-6e8b168d5a57',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 29, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 31, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 32, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" ...,\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 2, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 3, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 4, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x3',\n",
|
|
" 'y': array([1. , 1. , 1. , ..., 0.9986876, 0.9986876, 0.9986876]),\n",
|
|
" 'yaxis': 'y3'},\n",
|
|
" {'legendgroup': '2',\n",
|
|
" 'line': {'color': '#9467bd'},\n",
|
|
" 'mode': 'lines',\n",
|
|
" 'name': 'Value',\n",
|
|
" 'showlegend': True,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': 'e69b892e-4ec7-492d-b25e-a320a3e37bf8',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 29, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 31, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 32, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" ...,\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 2, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 3, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 4, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x3',\n",
|
|
" 'y': array([1. , 1. , 1. , ..., 0.9986876, 0.9986876, 0.9986876]),\n",
|
|
" 'yaxis': 'y3'},\n",
|
|
" {'hoverinfo': 'skip',\n",
|
|
" 'line': {'color': 'rgba(0, 0, 0, 0)', 'width': 0},\n",
|
|
" 'mode': 'lines',\n",
|
|
" 'opacity': 0.0,\n",
|
|
" 'showlegend': False,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': '5c4689a3-0bd5-469a-af4b-cb546f6fe8c8',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 29, 9, 30, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 31, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 32, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" ...,\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 2, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 3, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 5, 6, 10, 4, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x3',\n",
|
|
" 'y': array([1, 1, 1, ..., 1, 1, 1]),\n",
|
|
" 'yaxis': 'y3'}],\n",
|
|
" 'layout': {'annotations': [{'font': {'size': 16},\n",
|
|
" 'showarrow': False,\n",
|
|
" 'text': 'Orders',\n",
|
|
" 'x': 0.5,\n",
|
|
" 'xanchor': 'center',\n",
|
|
" 'xref': 'paper',\n",
|
|
" 'y': 1.0,\n",
|
|
" 'yanchor': 'bottom',\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'font': {'size': 16},\n",
|
|
" 'showarrow': False,\n",
|
|
" 'text': 'Trade PnL',\n",
|
|
" 'x': 0.5,\n",
|
|
" 'xanchor': 'center',\n",
|
|
" 'xref': 'paper',\n",
|
|
" 'y': 0.6527777777777777,\n",
|
|
" 'yanchor': 'bottom',\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'font': {'size': 16},\n",
|
|
" 'showarrow': False,\n",
|
|
" 'text': 'Cumulative Returns',\n",
|
|
" 'x': 0.5,\n",
|
|
" 'xanchor': 'center',\n",
|
|
" 'xref': 'paper',\n",
|
|
" 'y': 0.3055555555555555,\n",
|
|
" 'yanchor': 'bottom',\n",
|
|
" 'yref': 'paper'}],\n",
|
|
" 'height': 960,\n",
|
|
" 'legend': {'orientation': 'h',\n",
|
|
" 'traceorder': 'normal',\n",
|
|
" 'x': 1,\n",
|
|
" 'xanchor': 'right',\n",
|
|
" 'y': 1.0416666666666667,\n",
|
|
" 'yanchor': 'bottom'},\n",
|
|
" 'margin': {'b': 30, 'l': 30, 'r': 30, 't': 30},\n",
|
|
" 'shapes': [{'line': {'color': 'gray', 'dash': 'dash'},\n",
|
|
" 'type': 'line',\n",
|
|
" 'x0': 0.0,\n",
|
|
" 'x1': 1.0,\n",
|
|
" 'xref': 'paper',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 0,\n",
|
|
" 'yref': 'y2'},\n",
|
|
" {'line': {'color': 'gray', 'dash': 'dash'},\n",
|
|
" 'type': 'line',\n",
|
|
" 'x0': 0.0,\n",
|
|
" 'x1': 1.0,\n",
|
|
" 'xref': 'paper',\n",
|
|
" 'y0': 1,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'y3'}],\n",
|
|
" 'showlegend': True,\n",
|
|
" 'template': '...',\n",
|
|
" 'width': 1330,\n",
|
|
" 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'matches': 'x3', 'showticklabels': False},\n",
|
|
" 'xaxis2': {'anchor': 'y2', 'domain': [0.0, 1.0], 'matches': 'x3', 'showticklabels': False},\n",
|
|
" 'xaxis3': {'anchor': 'y3', 'domain': [0.0, 1.0], 'title': {'text': 'Index'}},\n",
|
|
" 'yaxis': {'anchor': 'x', 'domain': [0.6944444444444444, 1.0], 'title': {'text': 'Price'}},\n",
|
|
" 'yaxis2': {'anchor': 'x2',\n",
|
|
" 'domain': [0.3472222222222222, 0.6527777777777777],\n",
|
|
" 'tickformat': '.2%',\n",
|
|
" 'title': {'text': 'Trade PnL'}},\n",
|
|
" 'yaxis3': {'anchor': 'x3', 'domain': [0.0, 0.3055555555555555], 'title': {'text': 'Cumulative returns'}}}\n",
|
|
"})"
|
|
]
|
|
},
|
|
"execution_count": 30,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"pf[(0.0003,0.0018)].plot()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 115,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/vnd.jupyter.widget-view+json": {
|
|
"model_id": "04b5d810ea734acd8e49fa6c284217b1",
|
|
"version_major": 2,
|
|
"version_minor": 0
|
|
},
|
|
"text/plain": [
|
|
"FigureWidget({\n",
|
|
" 'data': [{'line': {'color': '#1f77b4'},\n",
|
|
" 'mode': 'lines',\n",
|
|
" 'name': 'Close',\n",
|
|
" 'showlegend': True,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': '4a416164-b099-434c-ac01-f0b90240ffd6',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 22, 9, 30, 1, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 9, 30, 2, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 9, 30, 3, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" ...,\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 57, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 58, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 59, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'y': array([37.035, 37. , 37.02 , ..., 37.55 , 37.56 , 37.555])},\n",
|
|
" {'customdata': array([['0', '0', '0', ..., 0.016588879657086383, 0.00016591649999989116,\n",
|
|
" 'Closed'],\n",
|
|
" ['1', '2', '1', ..., 0.0165916315663641, 0.0001659164999998406,\n",
|
|
" 'Closed'],\n",
|
|
" ['2', '4', '2', ..., 0.016594383932179026, 0.00016591650000005292,\n",
|
|
" 'Closed'],\n",
|
|
" ...,\n",
|
|
" ['20', '40', '20', ..., 0.01664400466620748, 0.00016591649999986953,\n",
|
|
" 'Closed'],\n",
|
|
" ['21', '42', '21', ..., 0.016646765720118292, 0.0001659164999999355,\n",
|
|
" 'Closed'],\n",
|
|
" ['22', '44', '22', ..., 0.016649527232051348, 0.00016591649999994493,\n",
|
|
" 'Closed']], dtype=object),\n",
|
|
" 'hovertemplate': ('<br>Entry Trade Id: %{customda' ... '}\\n<br>Status: %{customdata[9]}'),\n",
|
|
" 'marker': {'color': 'rgba(0, 0, 0, 0)',\n",
|
|
" 'line': {'color': '#37B13F', 'width': 2},\n",
|
|
" 'size': 15,\n",
|
|
" 'symbol': 'circle'},\n",
|
|
" 'mode': 'markers',\n",
|
|
" 'name': 'Long Entry',\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': 'e2e9c1a3-8645-4cf5-900e-e0f7a24ba639',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 22, 10, 54, 51, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 11, 16, 29, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 12, 53, 39, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 13, 15, 25, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 14, 39, 39, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 9, 31, 49, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 10, 8, 34, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 10, 23, 7, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 11, 1, 10, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 12, 17, 49, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 13, 52, 28, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 15, 1, 22, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 24, 9, 38, 34, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 24, 9, 45, 34, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 24, 14, 49, 44, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 9, 34, 20, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 9, 46, 47, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 0, 14, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 11, 10, 22, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 15, 14, 9, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 31, 54, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 14, 32, 18, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 3, 26, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'y': array([37.29 , 37.27 , 37.6 , 37.69 , 37.825 , 37.84 , 38.1712, 38.16 ,\n",
|
|
" 38.26 , 38.315 , 38.34 , 38.205 , 38.18 , 38.185 , 38.37 , 38.03 ,\n",
|
|
" 37.825 , 37.7 , 37.645 , 37.9415, 37.81 , 37.63 , 37.48 ])},\n",
|
|
" {'customdata': array([['0', '1', '0', ..., 0.016588879657086383, 0.00016591649999989116,\n",
|
|
" 'Closed'],\n",
|
|
" ['1', '3', '1', ..., 0.0165916315663641, 0.0001659164999998406,\n",
|
|
" 'Closed'],\n",
|
|
" ['2', '5', '2', ..., 0.016594383932179026, 0.00016591650000005292,\n",
|
|
" 'Closed'],\n",
|
|
" ...,\n",
|
|
" ['20', '41', '20', ..., 0.01664400466620748, 0.00016591649999986953,\n",
|
|
" 'Closed'],\n",
|
|
" ['21', '43', '21', ..., 0.016646765720118292, 0.0001659164999999355,\n",
|
|
" 'Closed'],\n",
|
|
" ['22', '45', '22', ..., 0.016649527232051348, 0.00016591649999994493,\n",
|
|
" 'Closed']], dtype=object),\n",
|
|
" 'hovertemplate': ('<br>Exit Trade Id: %{customdat' ... '}\\n<br>Status: %{customdata[9]}'),\n",
|
|
" 'marker': {'color': '#37B13F', 'size': 8, 'symbol': 'circle'},\n",
|
|
" 'mode': 'markers',\n",
|
|
" 'name': 'Long Exit',\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': 'c88b89c4-6f93-486e-8a02-1404ed716815',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 22, 10, 55, 12, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 11, 16, 54, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 12, 54, 23, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 13, 16, 21, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 14, 40, 21, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 9, 31, 53, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 10, 14, 37, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 10, 24, 1, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 11, 7, 38, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 12, 17, 56, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 13, 55, 50, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 15, 1, 39, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 24, 9, 38, 35, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 24, 9, 46, 3, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 24, 14, 56, 43, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 9, 34, 22, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 9, 46, 53, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 52, 4, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 11, 23, 31, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 15, 17, 30, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 32, 20, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 14, 32, 25, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 3, 56, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'y': array([37.308645 , 37.288635 , 37.6188 , 37.708845 , 37.8439125 ,\n",
|
|
" 37.85892 , 38.1902856 , 38.17908 , 38.27913 , 38.3341575 ,\n",
|
|
" 38.35917 , 38.2241025 , 38.19909 , 38.2040925 , 38.389185 ,\n",
|
|
" 38.049015 , 37.8439125 , 37.71885 , 37.6638225 , 37.96047075,\n",
|
|
" 37.828905 , 37.648815 , 37.49874 ])}],\n",
|
|
" 'layout': {'height': 350,\n",
|
|
" 'legend': {'orientation': 'h',\n",
|
|
" 'traceorder': 'normal',\n",
|
|
" 'x': 1,\n",
|
|
" 'xanchor': 'right',\n",
|
|
" 'y': 1.02,\n",
|
|
" 'yanchor': 'bottom'},\n",
|
|
" 'margin': {'b': 30, 'l': 30, 'r': 30, 't': 30},\n",
|
|
" 'shapes': [{'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-22 10:54:51-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-22 10:55:12-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-22 11:16:29-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-22 11:16:54-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-22 12:53:39-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-22 12:54:23-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-22 13:15:25-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-22 13:16:21-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-22 14:39:39-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-22 14:40:21-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-23 09:31:49-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-23 09:31:53-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-23 10:08:34-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-23 10:14:37-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-23 10:23:07-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-23 10:24:01-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-23 11:01:10-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-23 11:07:38-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-23 12:17:49-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-23 12:17:56-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-23 13:52:28-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-23 13:55:50-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-23 15:01:22-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-23 15:01:39-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-24 09:38:34-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-24 09:38:35-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-24 09:45:34-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-24 09:46:03-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-24 14:49:44-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-24 14:56:43-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-25 09:34:20-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-25 09:34:22-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-25 09:46:47-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-25 09:46:53-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-25 10:00:14-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-25 10:52:04-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-25 11:10:22-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-25 11:23:31-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-25 15:14:09-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-25 15:17:30-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-29 09:31:54-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-29 09:32:20-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-29 14:32:18-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-29 14:32:25-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'fillcolor': '#37B13F',\n",
|
|
" 'layer': 'below',\n",
|
|
" 'line': {'width': 0},\n",
|
|
" 'opacity': 0.15,\n",
|
|
" 'type': 'rect',\n",
|
|
" 'x0': Timestamp('2024-04-29 15:03:26-0400', tz='US/Eastern'),\n",
|
|
" 'x1': Timestamp('2024-04-29 15:03:56-0400', tz='US/Eastern'),\n",
|
|
" 'xref': 'x',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'paper'}],\n",
|
|
" 'template': '...',\n",
|
|
" 'width': 1280}\n",
|
|
"})"
|
|
]
|
|
},
|
|
"execution_count": 115,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"pf[0.03].plot_trade_signals()\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# pristup k pf jako multi index"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 149,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/var/folders/8p/dwqnp65s0s77jdbm4_6z4vp80000gn/T/ipykernel_13317/946856841.py:3: UserWarning:\n",
|
|
"\n",
|
|
"Object has multiple columns. Aggregated some metrics using <function mean at 0x113e32830>. Pass column to select a single column/group.\n",
|
|
"\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<table id=\"itables_ca5b6712_c947_411d_94ea_cc87e817307d\" class=\"display nowrap\" data-quarto-disable-processing=\"true\" style=\"table-layout:auto;width:auto;margin:auto;caption-side:bottom\">\n",
|
|
"<thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>agg_stats</th>\n",
|
|
" </tr>\n",
|
|
" </thead><tbody><tr>\n",
|
|
"<td style=\"vertical-align:middle; text-align:left\">\n",
|
|
"<div style=\"float:left; margin-right: 10px;\">\n",
|
|
"<a href=https://mwouts.github.io/itables/><svg class=\"main-svg\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
|
|
"width=\"64\" viewBox=\"0 0 500 400\" style=\"font-family: 'Droid Sans', sans-serif;\">\n",
|
|
" <g style=\"fill:#d9d7fc\">\n",
|
|
" <path d=\"M100,400H500V357H100Z\" />\n",
|
|
" <path d=\"M100,300H400V257H100Z\" />\n",
|
|
" <path d=\"M0,200H400V157H0Z\" />\n",
|
|
" <path d=\"M100,100H500V57H100Z\" />\n",
|
|
" <path d=\"M100,350H500V307H100Z\" />\n",
|
|
" <path d=\"M100,250H400V207H100Z\" />\n",
|
|
" <path d=\"M0,150H400V107H0Z\" />\n",
|
|
" <path d=\"M100,50H500V7H100Z\" />\n",
|
|
" </g>\n",
|
|
" <g style=\"fill:#1a1366;stroke:#1a1366;\">\n",
|
|
" <rect x=\"100\" y=\"7\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"0\" y=\"107\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"0;0;400\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"207\" width=\"300\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;300;0\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;400\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"307\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <g style=\"fill:transparent;stroke-width:8; stroke-linejoin:round\" rx=\"5\">\n",
|
|
" <g transform=\"translate(45 50) rotate(-45)\">\n",
|
|
" <circle r=\"33\" cx=\"0\" cy=\"0\" />\n",
|
|
" <rect x=\"-8\" y=\"32\" width=\"16\" height=\"30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(450 152)\">\n",
|
|
" <polyline points=\"-15,-20 -35,-20 -35,40 25,40 25,20\" />\n",
|
|
" <rect x=\"-15\" y=\"-40\" width=\"60\" height=\"60\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(50 352)\">\n",
|
|
" <polygon points=\"-35,-5 0,-40 35,-5\" />\n",
|
|
" <polygon points=\"-35,10 0,45 35,10\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(75 250)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(425 250) rotate(180)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
"</svg>\n",
|
|
"</a>\n",
|
|
"</div>\n",
|
|
"<div>\n",
|
|
"Loading ITables v2.0.1 from the <code>init_notebook_mode</code> cell...\n",
|
|
"(need <a href=https://mwouts.github.io/itables/troubleshooting.html>help</a>?)</td>\n",
|
|
"</div>\n",
|
|
"</tr></tbody>\n",
|
|
"\n",
|
|
"</table>\n",
|
|
"<script type=\"module\">\n",
|
|
" const { DataTable, jQuery: $ } = await import(window._datatables_src_for_itables_2_0_1);\n",
|
|
"\n",
|
|
" document.querySelectorAll(\"#itables_ca5b6712_c947_411d_94ea_cc87e817307d:not(.dataTable)\").forEach(table => {\n",
|
|
" // Define the table data\n",
|
|
" const data = [[\"Start\", \"2024-04-22 09:30:01-04:00\"], [\"End\", \"2024-04-29 15:59:59-04:00\"], [\"Period\", \"51 days 07:53:00\"], [\"Start Value\", \" 100.0\"], [\"Min Value\", \" 99.929678\"], [\"Max Value\", \" 102.980113\"], [\"End Value\", \" 101.18476\"], [\"Total Return [%]\", \" 1.18476\"], [\"Benchmark Return [%]\", \" 1.404077\"], [\"Total Time Exposure [%]\", \" 75.37375\"], [\"Max Gross Exposure [%]\", \" 100.0\"], [\"Max Drawdown [%]\", \" 2.150399\"], [\"Max Drawdown Duration\", \"30 days 19:57:00\"], [\"Total Orders\", \" 10.0\"], [\"Total Fees Paid\", \" 0.169856\"], [\"Total Trades\", \" 5.0\"], [\"Win Rate [%]\", \" 60.0\"], [\"Best Trade [%]\", \" 1.146344\"], [\"Worst Trade [%]\", \"-0.919261\"], [\"Avg Winning Trade [%]\", \" 0.838644\"], [\"Avg Losing Trade [%]\", \"-0.660365\"], [\"Avg Winning Trade Duration\", \"7 days 17:13:00\"], [\"Avg Losing Trade Duration\", \"7 days 18:26:00\"], [\"Profit Factor\", \" 1.87747\"], [\"Expectancy\", \" 0.236952\"], [\"Sharpe Ratio\", \" 1.091921\"], [\"Calmar Ratio\", \" 37.489139\"], [\"Omega Ratio\", \" 1.005129\"], [\"Sortino Ratio\", \" 1.549924\"]];\n",
|
|
"\n",
|
|
" // Define the dt_args\n",
|
|
" let dt_args = {\"layout\": {\"topStart\": \"pageLength\", \"topEnd\": \"search\", \"bottomStart\": \"info\", \"bottomEnd\": \"paging\"}, \"order\": [], \"warn_on_dom\": true};\n",
|
|
" dt_args[\"data\"] = data;\n",
|
|
"\n",
|
|
" \n",
|
|
" new DataTable(table, dt_args);\n",
|
|
" });\n",
|
|
"</script>\n"
|
|
],
|
|
"text/plain": [
|
|
"Start 2024-04-22 09:30:01-04:00\n",
|
|
"End 2024-04-29 15:59:59-04:00\n",
|
|
"Period 51 days 07:53:00\n",
|
|
"Start Value 100.0\n",
|
|
"Min Value 99.929678\n",
|
|
" ... \n",
|
|
"Expectancy 0.236952\n",
|
|
"Sharpe Ratio 1.091921\n",
|
|
"Calmar Ratio 37.489139\n",
|
|
"Omega Ratio 1.005129\n",
|
|
"Sortino Ratio 1.549924\n",
|
|
"Name: agg_stats, Length: 29, dtype: object"
|
|
]
|
|
},
|
|
"execution_count": 149,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"#pf[0.03].plot()\n",
|
|
"#pf.order_records\n",
|
|
"pf[(0.03)].stats()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 68,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<table id=\"itables_dddcb7f8_d96b_46d4_bb25_e82fa2624e2b\" class=\"display nowrap\" data-quarto-disable-processing=\"true\" style=\"table-layout:auto;width:auto;margin:auto;caption-side:bottom\">\n",
|
|
"<thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" <th>Total Return [%]</th>\n",
|
|
" <th>Total Trades</th>\n",
|
|
" <th>Win Rate [%]</th>\n",
|
|
" <th>Expectancy</th>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>sl_stop</th>\n",
|
|
" <th>tp_stop</th>\n",
|
|
" <th>rsi_window</th>\n",
|
|
" <th>symbol</th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" <th></th>\n",
|
|
" </tr>\n",
|
|
" </thead><tbody><tr>\n",
|
|
"<td style=\"vertical-align:middle; text-align:left\">\n",
|
|
"<div style=\"float:left; margin-right: 10px;\">\n",
|
|
"<a href=https://mwouts.github.io/itables/><svg class=\"main-svg\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
|
|
"width=\"64\" viewBox=\"0 0 500 400\" style=\"font-family: 'Droid Sans', sans-serif;\">\n",
|
|
" <g style=\"fill:#d9d7fc\">\n",
|
|
" <path d=\"M100,400H500V357H100Z\" />\n",
|
|
" <path d=\"M100,300H400V257H100Z\" />\n",
|
|
" <path d=\"M0,200H400V157H0Z\" />\n",
|
|
" <path d=\"M100,100H500V57H100Z\" />\n",
|
|
" <path d=\"M100,350H500V307H100Z\" />\n",
|
|
" <path d=\"M100,250H400V207H100Z\" />\n",
|
|
" <path d=\"M0,150H400V107H0Z\" />\n",
|
|
" <path d=\"M100,50H500V7H100Z\" />\n",
|
|
" </g>\n",
|
|
" <g style=\"fill:#1a1366;stroke:#1a1366;\">\n",
|
|
" <rect x=\"100\" y=\"7\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"0\" y=\"107\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"0;0;400\"\n",
|
|
" dur=\"3.5s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"207\" width=\"300\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;300;0\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;400\"\n",
|
|
" dur=\"3s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <rect x=\"100\" y=\"307\" width=\"400\" height=\"43\">\n",
|
|
" <animate\n",
|
|
" attributeName=\"width\"\n",
|
|
" values=\"0;400;0\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" <animate\n",
|
|
" attributeName=\"x\"\n",
|
|
" values=\"100;100;500\"\n",
|
|
" dur=\"4s\"\n",
|
|
" repeatCount=\"indefinite\" />\n",
|
|
" </rect>\n",
|
|
" <g style=\"fill:transparent;stroke-width:8; stroke-linejoin:round\" rx=\"5\">\n",
|
|
" <g transform=\"translate(45 50) rotate(-45)\">\n",
|
|
" <circle r=\"33\" cx=\"0\" cy=\"0\" />\n",
|
|
" <rect x=\"-8\" y=\"32\" width=\"16\" height=\"30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(450 152)\">\n",
|
|
" <polyline points=\"-15,-20 -35,-20 -35,40 25,40 25,20\" />\n",
|
|
" <rect x=\"-15\" y=\"-40\" width=\"60\" height=\"60\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(50 352)\">\n",
|
|
" <polygon points=\"-35,-5 0,-40 35,-5\" />\n",
|
|
" <polygon points=\"-35,10 0,45 35,10\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(75 250)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
"\n",
|
|
" <g transform=\"translate(425 250) rotate(180)\">\n",
|
|
" <polyline points=\"-30,30 -60,0 -30,-30\" />\n",
|
|
" <polyline points=\"0,30 -30,0 0,-30\" />\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
"</svg>\n",
|
|
"</a>\n",
|
|
"</div>\n",
|
|
"<div>\n",
|
|
"Loading ITables v2.0.1 from the <code>init_notebook_mode</code> cell...\n",
|
|
"(need <a href=https://mwouts.github.io/itables/troubleshooting.html>help</a>?)</td>\n",
|
|
"</div>\n",
|
|
"</tr></tbody>\n",
|
|
"\n",
|
|
"</table>\n",
|
|
"<script type=\"module\">\n",
|
|
" const { DataTable, jQuery: $ } = await import(window._datatables_src_for_itables_2_0_1);\n",
|
|
"\n",
|
|
" document.querySelectorAll(\"#itables_dddcb7f8_d96b_46d4_bb25_e82fa2624e2b:not(.dataTable)\").forEach(table => {\n",
|
|
" // Define the table data\n",
|
|
" const data = [[0.0003, 0.0003, 14, \"BAC\", -0.063384, 1, 0.0, -0.063384], [0.0003, 0.0008, 14, \"BAC\", -0.063384, 1, 0.0, -0.063384], [0.0003, 0.0013, 14, \"BAC\", -0.063384, 1, 0.0, -0.063384], [0.0003, 0.0018, 14, \"BAC\", -0.063384, 1, 0.0, -0.063384], [0.0003, 0.0023, 14, \"BAC\", -0.063384, 1, 0.0, -0.063384], [0.0003, 0.0028, 14, \"BAC\", -0.063384, 1, 0.0, -0.063384], [0.0003, 0.0033, 14, \"BAC\", -0.063384, 1, 0.0, -0.063384], [0.0003, 0.0038, 14, \"BAC\", -0.063384, 1, 0.0, -0.063384], [0.0008, 0.0003, 14, \"BAC\", -0.073829, 1, 0.0, -0.073829], [0.0008, 0.0008, 14, \"BAC\", -0.073829, 1, 0.0, -0.073829]];\n",
|
|
"\n",
|
|
" // Define the dt_args\n",
|
|
" let dt_args = {\"layout\": {\"topStart\": null, \"topEnd\": null, \"bottomStart\": null, \"bottomEnd\": null}, \"order\": [], \"warn_on_dom\": true};\n",
|
|
" dt_args[\"data\"] = data;\n",
|
|
"\n",
|
|
" \n",
|
|
" new DataTable(table, dt_args);\n",
|
|
" });\n",
|
|
"</script>\n"
|
|
],
|
|
"text/plain": [
|
|
" Total Return [%] Total Trades \\\n",
|
|
"sl_stop tp_stop rsi_window symbol \n",
|
|
"0.0003 0.0003 14 BAC -0.063384 1 \n",
|
|
" 0.0008 14 BAC -0.063384 1 \n",
|
|
" 0.0013 14 BAC -0.063384 1 \n",
|
|
" 0.0018 14 BAC -0.063384 1 \n",
|
|
" 0.0023 14 BAC -0.063384 1 \n",
|
|
" 0.0028 14 BAC -0.063384 1 \n",
|
|
" 0.0033 14 BAC -0.063384 1 \n",
|
|
" 0.0038 14 BAC -0.063384 1 \n",
|
|
"0.0008 0.0003 14 BAC -0.073829 1 \n",
|
|
" 0.0008 14 BAC -0.073829 1 \n",
|
|
"\n",
|
|
" Win Rate [%] Expectancy \n",
|
|
"sl_stop tp_stop rsi_window symbol \n",
|
|
"0.0003 0.0003 14 BAC 0.0 -0.063384 \n",
|
|
" 0.0008 14 BAC 0.0 -0.063384 \n",
|
|
" 0.0013 14 BAC 0.0 -0.063384 \n",
|
|
" 0.0018 14 BAC 0.0 -0.063384 \n",
|
|
" 0.0023 14 BAC 0.0 -0.063384 \n",
|
|
" 0.0028 14 BAC 0.0 -0.063384 \n",
|
|
" 0.0033 14 BAC 0.0 -0.063384 \n",
|
|
" 0.0038 14 BAC 0.0 -0.063384 \n",
|
|
"0.0008 0.0003 14 BAC 0.0 -0.073829 \n",
|
|
" 0.0008 14 BAC 0.0 -0.073829 "
|
|
]
|
|
},
|
|
"execution_count": 68,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"#zgrupovane statistiky\n",
|
|
"stats_df = pf.stats([\n",
|
|
" 'total_return',\n",
|
|
" 'total_trades',\n",
|
|
" 'win_rate',\n",
|
|
" 'expectancy'\n",
|
|
"], agg_func=None)\n",
|
|
"stats_df\n",
|
|
"\n",
|
|
"\n",
|
|
"stats_df.nlargest(10, 'Total Return [%]')\n",
|
|
"#stats_df.info()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 175,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/vnd.jupyter.widget-view+json": {
|
|
"model_id": "d80a6c747f404eef96cc265dc7cf5566",
|
|
"version_major": 2,
|
|
"version_minor": 0
|
|
},
|
|
"text/plain": [
|
|
"FigureWidget({\n",
|
|
" 'data': [{'legendgroup': '0',\n",
|
|
" 'line': {'color': '#1f77b4'},\n",
|
|
" 'mode': 'lines',\n",
|
|
" 'name': 'Close',\n",
|
|
" 'showlegend': True,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': '91d1b8b6-43f1-43e4-877f-2776bbf0d549',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 22, 9, 30, 1, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 9, 30, 2, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 9, 30, 3, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" ...,\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 57, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 58, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 59, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x',\n",
|
|
" 'y': array([37.035, 37. , 37.02 , ..., 37.55 , 37.56 , 37.555]),\n",
|
|
" 'yaxis': 'y'},\n",
|
|
" {'customdata': array([['0', '2024-04-22 10:54:51-04:00', '2024-04-22 10:54:51-04:00', ...,\n",
|
|
" 0.0166972115656705, 'Market', 'None'],\n",
|
|
" ['2', '2024-04-22 11:16:29-04:00', '2024-04-22 11:16:29-04:00', ...,\n",
|
|
" 0.0167133347545132, 'Market', 'None'],\n",
|
|
" ['4', '2024-04-22 12:53:39-04:00', '2024-04-22 12:53:39-04:00', ...,\n",
|
|
" 0.01672947351224252, 'Market', 'None'],\n",
|
|
" ...,\n",
|
|
" ['54', '2024-04-29 09:31:54-04:00', '2024-04-29 09:31:54-04:00', ...,\n",
|
|
" 0.016771870154130397, 'Market', 'None'],\n",
|
|
" ['56', '2024-04-29 14:32:18-04:00', '2024-04-29 14:32:18-04:00', ...,\n",
|
|
" 0.016788065434923283, 'Market', 'None'],\n",
|
|
" ['58', '2024-04-29 15:03:26-04:00', '2024-04-29 15:03:26-04:00', ...,\n",
|
|
" 0.01680427635420756, 'Market', 'None']], dtype=object),\n",
|
|
" 'hovertemplate': ('<br>Order Id: %{customdata[0]}' ... 'br>Stop Type: %{customdata[8]}'),\n",
|
|
" 'marker': {'color': '#37B13F',\n",
|
|
" 'line': {'color': 'rgb(38,123,44)', 'width': 1},\n",
|
|
" 'size': 8,\n",
|
|
" 'symbol': 'triangle-up'},\n",
|
|
" 'mode': 'markers',\n",
|
|
" 'name': 'Buy',\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': '48174781-769a-4b07-8878-89b2dd1b6633',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 22, 10, 54, 51, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 11, 16, 29, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 12, 53, 39, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 13, 15, 25, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 14, 39, 39, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 9, 31, 49, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 10, 8, 34, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 10, 10, 1, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 10, 23, 7, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 11, 1, 10, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 12, 17, 49, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 13, 52, 28, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 15, 1, 22, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 24, 9, 38, 34, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 24, 9, 45, 34, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 24, 14, 49, 44, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 9, 34, 20, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 9, 46, 47, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 0, 14, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 2, 38, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 11, 53, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 14, 57, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 17, 50, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 26, 37, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 43, 55, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 11, 10, 22, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 15, 14, 9, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 31, 54, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 14, 32, 18, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 3, 26, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x',\n",
|
|
" 'y': array([37.29 , 37.27 , 37.6 , 37.69 , 37.825 , 37.84 , 38.1712, 38.09 ,\n",
|
|
" 38.16 , 38.26 , 38.315 , 38.34 , 38.205 , 38.18 , 38.185 , 38.37 ,\n",
|
|
" 38.03 , 37.825 , 37.7 , 37.5709, 37.485 , 37.48 , 37.3803, 37.515 ,\n",
|
|
" 37.625 , 37.645 , 37.9415, 37.81 , 37.63 , 37.48 ]),\n",
|
|
" 'yaxis': 'y'},\n",
|
|
" {'customdata': array([['1', '2024-04-22 10:54:51-04:00', '2024-04-22 11:04:20-04:00', ...,\n",
|
|
" 0.016718917940703903, 'Market', 'TP'],\n",
|
|
" ['3', '2024-04-22 11:16:29-04:00', '2024-04-22 11:17:18-04:00', ...,\n",
|
|
" 0.016735062089684657, 'Market', 'TP'],\n",
|
|
" ['5', '2024-04-22 12:53:39-04:00', '2024-04-22 12:57:27-04:00', ...,\n",
|
|
" 0.01675122182780505, 'Market', 'TP'],\n",
|
|
" ...,\n",
|
|
" ['55', '2024-04-29 09:31:54-04:00', '2024-04-29 09:33:56-04:00', ...,\n",
|
|
" 0.016793673585330588, 'Market', 'TP'],\n",
|
|
" ['57', '2024-04-29 14:32:18-04:00', '2024-04-29 14:41:17-04:00', ...,\n",
|
|
" 0.0168098899199796, 'Market', 'TP'],\n",
|
|
" ['59', '2024-04-29 15:03:26-04:00', '2024-04-29 15:19:04-04:00', ...,\n",
|
|
" 0.016826121913472287, 'Market', 'TP']], dtype=object),\n",
|
|
" 'hovertemplate': ('<br>Order Id: %{customdata[0]}' ... 'br>Stop Type: %{customdata[8]}'),\n",
|
|
" 'marker': {'color': '#EA4335',\n",
|
|
" 'line': {'color': 'rgb(181,31,18)', 'width': 1},\n",
|
|
" 'size': 8,\n",
|
|
" 'symbol': 'triangle-down'},\n",
|
|
" 'mode': 'markers',\n",
|
|
" 'name': 'Sell',\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': 'be35b224-9811-4bd1-b32a-6f1d18dc1250',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 22, 11, 4, 20, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 11, 17, 18, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 12, 57, 27, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 13, 27, 43, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 14, 48, 2, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 9, 32, 40, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 10, 9, 48, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 10, 10, 54, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 10, 26, 49, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 11, 8, 47, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 12, 20, 39, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 14, 3, 20, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 15, 5, 18, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 24, 9, 38, 53, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 24, 9, 46, 24, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 24, 14, 57, 22, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 9, 34, 34, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 9, 48, 57, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 1, 4, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 8, 20, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 13, 15, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 15, 11, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 18, 22, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 27, 2, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 44, 47, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 11, 16, 15, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 15, 18, 50, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 33, 56, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 14, 41, 17, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 19, 4, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x',\n",
|
|
" 'y': array([37.338477 , 37.318451 , 37.64888 , 37.738997 , 37.7833925 ,\n",
|
|
" 37.889192 , 38.12921168, 38.139517 , 38.209608 , 38.217914 ,\n",
|
|
" 38.3648095 , 38.297826 , 38.2546665 , 38.229634 , 38.2346405 ,\n",
|
|
" 38.419881 , 37.988167 , 37.7833925 , 37.65853 , 37.61974217,\n",
|
|
" 37.5337305 , 37.438772 , 37.42889439, 37.5637695 , 37.6739125 ,\n",
|
|
" 37.6035905 , 37.99082395, 37.859153 , 37.678919 , 37.528724 ]),\n",
|
|
" 'yaxis': 'y'},\n",
|
|
" {'customdata': array([['0', '0', '2024-04-22 11:04:20-04:00', 0.0965621641185983,\n",
|
|
" 0.0009657829000000611],\n",
|
|
" ['1', '1', '2024-04-22 11:17:18-04:00', 0.09665540663398044,\n",
|
|
" 0.000965782899999956],\n",
|
|
" ['2', '2', '2024-04-22 12:57:27-04:00', 0.09674873918637963,\n",
|
|
" 0.0009657829000001136],\n",
|
|
" ['3', '3', '2024-04-22 13:27:43-04:00', 0.09684216186269139,\n",
|
|
" 0.0009657829000000728],\n",
|
|
" ['5', '5', '2024-04-23 09:32:40-04:00', 0.09679671000658795,\n",
|
|
" 0.0009657829000002581],\n",
|
|
" ['7', '7', '2024-04-23 10:10:54-04:00', 0.09675127948279558,\n",
|
|
" 0.0009657829000000201],\n",
|
|
" ['8', '8', '2024-04-23 10:26:49-04:00', 0.09684470461208111,\n",
|
|
" 0.0009657829000000651],\n",
|
|
" ['10', '10', '2024-04-23 12:20:39-04:00', 0.09679925156252513,\n",
|
|
" 0.0009657828999998539],\n",
|
|
" ['12', '12', '2024-04-23 15:05:18-04:00', 0.096753819845908,\n",
|
|
" 0.0009657828999998956],\n",
|
|
" ['13', '13', '2024-04-24 09:38:53-04:00', 0.09684724742822723,\n",
|
|
" 0.0009657828999999816],\n",
|
|
" ['14', '14', '2024-04-24 09:46:24-04:00', 0.09694076522624667,\n",
|
|
" 0.0009657829000001159],\n",
|
|
" ['15', '15', '2024-04-24 14:57:22-04:00', 0.09703437332705928,\n",
|
|
" 0.0009657829000000858],\n",
|
|
" ['19', '19', '2024-04-25 10:08:20-04:00', 0.09671094868968587,\n",
|
|
" 0.0009657828999998541],\n",
|
|
" ['20', '20', '2024-04-25 10:13:15-04:00', 0.09680433487471309,\n",
|
|
" 0.0009657829000001819],\n",
|
|
" ['22', '22', '2024-04-25 10:18:22-04:00', 0.09675890077229216,\n",
|
|
" 0.0009657829000001794],\n",
|
|
" ['23', '23', '2024-04-25 10:27:02-04:00', 0.09685233326085849,\n",
|
|
" 0.0009657829000002116],\n",
|
|
" ['24', '24', '2024-04-25 10:44:47-04:00', 0.09694585596983278,\n",
|
|
" 0.0009657828999999949],\n",
|
|
" ['26', '26', '2024-04-25 15:18:50-04:00', 0.09690035544596631,\n",
|
|
" 0.0009657829000000003],\n",
|
|
" ['27', '27', '2024-04-29 09:33:56-04:00', 0.09699392452624066,\n",
|
|
" 0.0009657829000001706],\n",
|
|
" ['28', '28', '2024-04-29 14:41:17-04:00', 0.09708758395881407,\n",
|
|
" 0.0009657829000000442],\n",
|
|
" ['29', '29', '2024-04-29 15:19:04-04:00', 0.09718133383096987,\n",
|
|
" 0.0009657828999999915]], dtype=object),\n",
|
|
" 'hovertemplate': ('<br>Exit Trade Id: %{customdat' ... 'br>Return: %{customdata[4]:,%}'),\n",
|
|
" 'marker': {'color': '#37B13F',\n",
|
|
" 'line': {'color': 'rgb(38,123,44)', 'width': 1},\n",
|
|
" 'opacity': array([0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75,\n",
|
|
" 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75]),\n",
|
|
" 'size': array([7., 7., 7., 7., 7., 7., 7., 7., 7., 7., 7., 7., 7., 7., 7., 7., 7., 7.,\n",
|
|
" 7., 7., 7.]),\n",
|
|
" 'symbol': 'circle'},\n",
|
|
" 'mode': 'markers',\n",
|
|
" 'name': 'Closed - Profit',\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': 'db4362be-0e85-4815-b3f9-994e0527dfe0',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 22, 11, 4, 20, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 11, 17, 18, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 12, 57, 27, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 13, 27, 43, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 9, 32, 40, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 10, 10, 54, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 10, 26, 49, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 12, 20, 39, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 15, 5, 18, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 24, 9, 38, 53, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 24, 9, 46, 24, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 24, 14, 57, 22, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 8, 20, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 13, 15, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 18, 22, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 27, 2, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 44, 47, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 15, 18, 50, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 9, 33, 56, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 14, 41, 17, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 19, 4, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x2',\n",
|
|
" 'y': array([0.00096578, 0.00096578, 0.00096578, 0.00096578, 0.00096578, 0.00096578,\n",
|
|
" 0.00096578, 0.00096578, 0.00096578, 0.00096578, 0.00096578, 0.00096578,\n",
|
|
" 0.00096578, 0.00096578, 0.00096578, 0.00096578, 0.00096578, 0.00096578,\n",
|
|
" 0.00096578, 0.00096578, 0.00096578]),\n",
|
|
" 'yaxis': 'y2'},\n",
|
|
" {'customdata': array([['4', '4', '2024-04-22 14:48:02-04:00', -0.14391220895295487,\n",
|
|
" -0.0014338163000000269],\n",
|
|
" ['6', '6', '2024-04-23 10:09:48-04:00', -0.14384466526236722,\n",
|
|
" -0.0014338162999999072],\n",
|
|
" ['9', '9', '2024-04-23 11:08:47-04:00', -0.1439159876034234,\n",
|
|
" -0.0014338162999998926],\n",
|
|
" ['11', '11', '2024-04-23 14:03:20-04:00', -0.14384844213940068,\n",
|
|
" -0.0014338163000001218],\n",
|
|
" ['16', '16', '2024-04-25 09:34:34-04:00', -0.14419784462951168,\n",
|
|
" -0.0014338163000000063],\n",
|
|
" ['17', '17', '2024-04-25 09:48:57-04:00', -0.14399112593148128,\n",
|
|
" -0.0014338163000000232],\n",
|
|
" ['18', '18', '2024-04-25 10:01:04-04:00', -0.1437847035805897,\n",
|
|
" -0.0014338162999999403],\n",
|
|
" ['21', '21', '2024-04-25 10:15:11-04:00', -0.1438559961909105,\n",
|
|
" -0.0014338162999999156],\n",
|
|
" ['25', '25', '2024-04-25 11:16:15-04:00', -0.14406630348914104,\n",
|
|
" -0.0014338163000000527]], dtype=object),\n",
|
|
" 'hovertemplate': ('<br>Exit Trade Id: %{customdat' ... 'br>Return: %{customdata[4]:,%}'),\n",
|
|
" 'marker': {'color': '#EA4335',\n",
|
|
" 'line': {'color': 'rgb(181,31,18)', 'width': 1},\n",
|
|
" 'opacity': array([0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9]),\n",
|
|
" 'size': array([10.39230877, 10.39230877, 10.39230877, 10.39230877, 10.39230877,\n",
|
|
" 10.39230877, 10.39230877, 10.39230877, 10.39230877]),\n",
|
|
" 'symbol': 'circle'},\n",
|
|
" 'mode': 'markers',\n",
|
|
" 'name': 'Closed - Loss',\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': 'd66f760c-d9a6-483e-8bc5-590324e4ba12',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 22, 14, 48, 2, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 10, 9, 48, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 11, 8, 47, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 23, 14, 3, 20, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 9, 34, 34, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 9, 48, 57, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 1, 4, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 10, 15, 11, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 25, 11, 16, 15, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x2',\n",
|
|
" 'y': array([-0.00143382, -0.00143382, -0.00143382, -0.00143382, -0.00143382,\n",
|
|
" -0.00143382, -0.00143382, -0.00143382, -0.00143382]),\n",
|
|
" 'yaxis': 'y2'},\n",
|
|
" {'legendgroup': '1',\n",
|
|
" 'line': {'color': '#7f7f7f'},\n",
|
|
" 'mode': 'lines',\n",
|
|
" 'name': 'Benchmark',\n",
|
|
" 'showlegend': True,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': 'f94aaadc-3289-426e-897d-0a07f968757e',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 22, 9, 30, 1, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 9, 30, 2, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 9, 30, 3, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" ...,\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 57, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 58, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 59, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x3',\n",
|
|
" 'y': array([1. , 0.99905495, 0.99959498, ..., 1.01390576, 1.01417578,\n",
|
|
" 1.01404077]),\n",
|
|
" 'yaxis': 'y3'},\n",
|
|
" {'hoverinfo': 'skip',\n",
|
|
" 'line': {'color': 'rgba(0, 0, 0, 0)', 'width': 0},\n",
|
|
" 'mode': 'lines',\n",
|
|
" 'opacity': 0,\n",
|
|
" 'showlegend': False,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': '4a75396b-0adc-4388-8577-c0ad577b984a',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 22, 9, 30, 1, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 9, 30, 2, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 9, 30, 3, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" ...,\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 57, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 58, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 59, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x3',\n",
|
|
" 'y': array([1, 1, 1, ..., 1, 1, 1]),\n",
|
|
" 'yaxis': 'y3'},\n",
|
|
" {'connectgaps': False,\n",
|
|
" 'fill': 'tonexty',\n",
|
|
" 'fillcolor': 'rgba(0, 128, 0, 0.25)',\n",
|
|
" 'hoverinfo': 'skip',\n",
|
|
" 'line': {'color': 'rgba(0, 0, 0, 0)', 'width': 0},\n",
|
|
" 'mode': 'lines',\n",
|
|
" 'opacity': 0,\n",
|
|
" 'showlegend': False,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': '6b373a16-4020-4005-99fb-0a9521728f44',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 22, 9, 30, 1, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 9, 30, 2, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 9, 30, 3, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" ...,\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 57, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 58, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 59, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x3',\n",
|
|
" 'y': array([1. , 1. , 1. , ..., 1.00738395, 1.00738395,\n",
|
|
" 1.00738395]),\n",
|
|
" 'yaxis': 'y3'},\n",
|
|
" {'hoverinfo': 'skip',\n",
|
|
" 'line': {'color': 'rgba(0, 0, 0, 0)', 'width': 0},\n",
|
|
" 'mode': 'lines',\n",
|
|
" 'opacity': 0,\n",
|
|
" 'showlegend': False,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': 'b9cd5a14-5c76-44c1-90ef-6ebb8c583c0e',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 22, 9, 30, 1, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 9, 30, 2, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 9, 30, 3, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" ...,\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 57, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 58, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 59, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x3',\n",
|
|
" 'y': array([1, 1, 1, ..., 1, 1, 1]),\n",
|
|
" 'yaxis': 'y3'},\n",
|
|
" {'connectgaps': False,\n",
|
|
" 'fill': 'tonexty',\n",
|
|
" 'fillcolor': 'rgba(255, 0, 0, 0.25)',\n",
|
|
" 'hoverinfo': 'skip',\n",
|
|
" 'line': {'color': 'rgba(0, 0, 0, 0)', 'width': 0},\n",
|
|
" 'mode': 'lines',\n",
|
|
" 'opacity': 0,\n",
|
|
" 'showlegend': False,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': 'ad0d8087-0e05-4427-9c21-7a254949c9d9',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 22, 9, 30, 1, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 9, 30, 2, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 9, 30, 3, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" ...,\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 57, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 58, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 59, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x3',\n",
|
|
" 'y': array([1., 1., 1., ..., 1., 1., 1.]),\n",
|
|
" 'yaxis': 'y3'},\n",
|
|
" {'legendgroup': '2',\n",
|
|
" 'line': {'color': '#9467bd'},\n",
|
|
" 'mode': 'lines',\n",
|
|
" 'name': 'Value',\n",
|
|
" 'showlegend': True,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': 'a4db881f-4589-4cdc-921d-f9c580fabe3a',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 22, 9, 30, 1, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 9, 30, 2, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 9, 30, 3, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" ...,\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 57, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 58, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 59, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x3',\n",
|
|
" 'y': array([1. , 1. , 1. , ..., 1.00738395, 1.00738395,\n",
|
|
" 1.00738395]),\n",
|
|
" 'yaxis': 'y3'},\n",
|
|
" {'hoverinfo': 'skip',\n",
|
|
" 'line': {'color': 'rgba(0, 0, 0, 0)', 'width': 0},\n",
|
|
" 'mode': 'lines',\n",
|
|
" 'opacity': 0.0,\n",
|
|
" 'showlegend': False,\n",
|
|
" 'type': 'scatter',\n",
|
|
" 'uid': 'b651633d-d937-4aa2-8129-1450a65fa253',\n",
|
|
" 'x': array([datetime.datetime(2024, 4, 22, 9, 30, 1, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 9, 30, 2, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 22, 9, 30, 3, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" ...,\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 57, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 58, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>),\n",
|
|
" datetime.datetime(2024, 4, 29, 15, 59, 59, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)],\n",
|
|
" dtype=object),\n",
|
|
" 'xaxis': 'x3',\n",
|
|
" 'y': array([1, 1, 1, ..., 1, 1, 1]),\n",
|
|
" 'yaxis': 'y3'}],\n",
|
|
" 'layout': {'annotations': [{'font': {'size': 16},\n",
|
|
" 'showarrow': False,\n",
|
|
" 'text': 'Orders',\n",
|
|
" 'x': 0.5,\n",
|
|
" 'xanchor': 'center',\n",
|
|
" 'xref': 'paper',\n",
|
|
" 'y': 1.0,\n",
|
|
" 'yanchor': 'bottom',\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'font': {'size': 16},\n",
|
|
" 'showarrow': False,\n",
|
|
" 'text': 'Trade PnL',\n",
|
|
" 'x': 0.5,\n",
|
|
" 'xanchor': 'center',\n",
|
|
" 'xref': 'paper',\n",
|
|
" 'y': 0.6527777777777777,\n",
|
|
" 'yanchor': 'bottom',\n",
|
|
" 'yref': 'paper'},\n",
|
|
" {'font': {'size': 16},\n",
|
|
" 'showarrow': False,\n",
|
|
" 'text': 'Cumulative Returns',\n",
|
|
" 'x': 0.5,\n",
|
|
" 'xanchor': 'center',\n",
|
|
" 'xref': 'paper',\n",
|
|
" 'y': 0.3055555555555555,\n",
|
|
" 'yanchor': 'bottom',\n",
|
|
" 'yref': 'paper'}],\n",
|
|
" 'height': 960,\n",
|
|
" 'legend': {'orientation': 'h',\n",
|
|
" 'traceorder': 'normal',\n",
|
|
" 'x': 1,\n",
|
|
" 'xanchor': 'right',\n",
|
|
" 'y': 1.0416666666666667,\n",
|
|
" 'yanchor': 'bottom'},\n",
|
|
" 'margin': {'b': 30, 'l': 30, 'r': 30, 't': 30},\n",
|
|
" 'shapes': [{'line': {'color': 'gray', 'dash': 'dash'},\n",
|
|
" 'type': 'line',\n",
|
|
" 'x0': 0.0,\n",
|
|
" 'x1': 1.0,\n",
|
|
" 'xref': 'paper',\n",
|
|
" 'y0': 0,\n",
|
|
" 'y1': 0,\n",
|
|
" 'yref': 'y2'},\n",
|
|
" {'line': {'color': 'gray', 'dash': 'dash'},\n",
|
|
" 'type': 'line',\n",
|
|
" 'x0': 0.0,\n",
|
|
" 'x1': 1.0,\n",
|
|
" 'xref': 'paper',\n",
|
|
" 'y0': 1,\n",
|
|
" 'y1': 1,\n",
|
|
" 'yref': 'y3'}],\n",
|
|
" 'showlegend': True,\n",
|
|
" 'template': '...',\n",
|
|
" 'width': 1330,\n",
|
|
" 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'matches': 'x3', 'showticklabels': False},\n",
|
|
" 'xaxis2': {'anchor': 'y2', 'domain': [0.0, 1.0], 'matches': 'x3', 'showticklabels': False},\n",
|
|
" 'xaxis3': {'anchor': 'y3', 'domain': [0.0, 1.0], 'title': {'text': 'Index'}},\n",
|
|
" 'yaxis': {'anchor': 'x', 'domain': [0.6944444444444444, 1.0], 'title': {'text': 'Price'}},\n",
|
|
" 'yaxis2': {'anchor': 'x2',\n",
|
|
" 'domain': [0.3472222222222222, 0.6527777777777777],\n",
|
|
" 'tickformat': '.2%',\n",
|
|
" 'title': {'text': 'Trade PnL'}},\n",
|
|
" 'yaxis3': {'anchor': 'x3', 'domain': [0.0, 0.3055555555555555], 'title': {'text': 'Cumulative returns'}}}\n",
|
|
"})"
|
|
]
|
|
},
|
|
"execution_count": 175,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"pf[(0.0011,0.0013000000000000002)].plot()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from pandas.tseries.offsets import DateOffset\n",
|
|
"\n",
|
|
"temp_data = basic_data['2024-4-22']\n",
|
|
"temp_data\n",
|
|
"res1m = temp_data[[\"Open\", \"High\", \"Low\", \"Close\", \"Volume\"]]\n",
|
|
"\n",
|
|
"# Define a custom date offset that starts at 9:30 AM and spans 4 hours\n",
|
|
"custom_offset = DateOffset(hours=4, minutes=30)\n",
|
|
"\n",
|
|
"# res1m = res1m.get().resample(\"4H\").agg({ \n",
|
|
"# \"Open\": \"first\",\n",
|
|
"# \"High\": \"max\",\n",
|
|
"# \"Low\": \"min\",\n",
|
|
"# \"Close\": \"last\",\n",
|
|
"# \"Volume\": \"sum\"\n",
|
|
"# })\n",
|
|
"\n",
|
|
"res4h = res1m.resample(\"1h\", resample_kwargs=dict(origin=\"start\"))\n",
|
|
"\n",
|
|
"res4h.data\n",
|
|
"\n",
|
|
"res15m = res1m.resample(\"15T\", resample_kwargs=dict(origin=\"start\"))\n",
|
|
"\n",
|
|
"res15m.data[\"BAC\"]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"@vbt.njit\n",
|
|
"def long_entry_place_func_nb(c, low, close, time_in_ns, rsi14, window_open, window_close):\n",
|
|
" market_open_minutes = 570 # 9 hours * 60 minutes + 30 minutes\n",
|
|
"\n",
|
|
" for out_i in range(len(c.out)):\n",
|
|
" i = c.from_i + out_i\n",
|
|
"\n",
|
|
" current_minutes = vbt.dt_nb.hour_nb(time_in_ns[i]) * 60 + vbt.dt_nb.minute_nb(time_in_ns[i])\n",
|
|
" #print(\"current_minutes\", current_minutes)\n",
|
|
" # Calculate elapsed minutes since market open at 9:30 AM\n",
|
|
" elapsed_from_open = current_minutes - market_open_minutes\n",
|
|
" elapsed_from_open = elapsed_from_open if elapsed_from_open >= 0 else 0\n",
|
|
" #print( \"elapsed_from_open\", elapsed_from_open)\n",
|
|
"\n",
|
|
" #elapsed_from_open = elapsed_minutes_from_open_nb(time_in_ns) \n",
|
|
" in_window = elapsed_from_open > window_open and elapsed_from_open < window_close\n",
|
|
" #print(\"in_window\", in_window)\n",
|
|
" # if in_window:\n",
|
|
" # print(\"in window\")\n",
|
|
"\n",
|
|
" if in_window and rsi14[i] > 60: # and low[i, c.col] <= hit_price: # and hour == 9: # (4)!\n",
|
|
" return out_i\n",
|
|
" return -1\n",
|
|
"\n",
|
|
"@vbt.njit\n",
|
|
"def long_exit_place_func_nb(c, high, close, time_index, tp, sl): # (5)!\n",
|
|
" entry_i = c.from_i - c.wait\n",
|
|
" entry_price = close[entry_i, c.col]\n",
|
|
" hit_price = entry_price * (1 + tp)\n",
|
|
" stop_price = entry_price * (1 - sl)\n",
|
|
" for out_i in range(len(c.out)):\n",
|
|
" i = c.from_i + out_i\n",
|
|
" last_bar_of_day = vbt.dt_nb.day_changed_nb(time_index[i], time_index[i + 1])\n",
|
|
"\n",
|
|
" #print(next_day)\n",
|
|
" if last_bar_of_day: #pokud je dalsi next day, tak zavirame posledni\n",
|
|
" print(\"ted\",out_i)\n",
|
|
" return out_i\n",
|
|
" if close[i, c.col] >= hit_price or close[i, c.col] <= stop_price :\n",
|
|
" return out_i\n",
|
|
" return -1\n",
|
|
"\n",
|
|
"\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"df = pd.DataFrame(np.random.random(size=(5, 10)), columns=list('abcdefghij'))\n",
|
|
"\n",
|
|
"df"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"df.sum()"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": ".venv",
|
|
"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.10.11"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|