Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
HTML
<!-- MediQ embedded dashboard 1.0.2: replace the COMPLETE previous HTML macro content. -->
<div id="mediq-live-mount-v102" dir="rtl">در حال آماده‌سازی داشبورد مدیکیو…</div>
<script>
(function(){
 var host=document.getElementById('mediq-live-mount-v102');
 if(!host||host.getAttribute('data-mounted')==='1')return;
 host.setAttribute('data-mounted','1');
 function decode(value){var binary=atob(value),bytes=new Uint8Array(binary.length);for(var i=0;i<binary.length;i++)bytes[i]=binary.charCodeAt(i);return new TextDecoder('utf-8').decode(bytes);}
 try{
  var frame=document.createElement('iframe');
  frame.title='مدیکیو — داشبورد متصل ۱.۰.۲';
  frame.setAttribute('data-mediq-version','1.0.2');
  frame.style.cssText='display:block;width:100%;height:calc(100vh - 140px);min-height:650px;border:0;border-radius:12px;background:#f6f8fa;';
  host.textContent='';host.appendChild(frame);
  var doc=frame.contentDocument;
  if(!doc)throw new Error('فضای نمایش داشبورد در دسترس نیست.');
  doc.documentElement.lang='fa';doc.documentElement.dir='rtl';doc.title='مدیکیو';
  var meta=doc.createElement('meta');meta.name='viewport';meta.content='width=device-width,initial-scale=1';doc.head.appendChild(meta);
  var root=doc.createElement('div');root.id='root';doc.body.appendChild(root);
  var style=doc.createElement('style');style.setAttribute('data-mediq-styles','1.0.2');style.textContent=decode('aHRtbHtsaW5lLWhlaWdodDoxLjV9c3Zne2Rpc3BsYXk6YmxvY2t9YnV0dG9uLGlucHV0LHNlbGVjdCx0ZXh0YXJlYXtmb250OmluaGVyaXR9Cgo6cm9vdHstLXRlYWw6IzA4N2U4MDstLXRleHQ6IzI0M2M0NTstLW11dGVkOiM4Njk2OWQ7LS1saW5lOiNlN2VkZWZ9Kntib3gtc2l6aW5nOmJvcmRlci1ib3h9Ym9keXttYXJnaW46MDtmb250LWZhbWlseTpWYXppcm1hdG4sVGFob21hLHNhbnMtc2VyaWY7YmFja2dyb3VuZDojZjZmOGZhO2NvbG9yOnZhcigtLXRleHQpO2ZvbnQtc2l6ZToxM3B4fWJ1dHRvbixpbnB1dCxzZWxlY3QsdGV4dGFyZWF7Zm9udDppbmhlcml0fWJ1dHRvbixhLGlucHV0LHNlbGVjdCx0ZXh0YXJlYXtvdXRsaW5lLWNvbG9yOiMxNjllOWJ9YnV0dG9ue2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjdweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JhY2tncm91bmQ6d2hpdGU7Ym9yZGVyLXJhZGl1czo3cHg7cGFkZGluZzo5cHggMTJweDtjb2xvcjppbmhlcml0O3RyYW5zaXRpb246LjE4c31idXR0b246aG92ZXJ7Ym9yZGVyLWNvbG9yOiM3MmI4YjU7YmFja2dyb3VuZDojZjJmYWZhfWJ1dHRvbjpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNH1pbnB1dCxzZWxlY3QsdGV4dGFyZWF7Ym9yZGVyOjFweCBzb2xpZCAjZGRlNmU4O2JvcmRlci1yYWRpdXM6N3B4O2JhY2tncm91bmQ6d2hpdGU7cGFkZGluZzoxMHB4O2NvbG9yOnZhcigtLXRleHQpO21pbi13aWR0aDowfWlucHV0W3R5cGU9Y2hlY2tib3hde2FjY2VudC1jb2xvcjp2YXIoLS10ZWFsKTt3aWR0aDoxNHB4O2hlaWdodDoxNHB4fWgxLGgyLGgzLHB7bWFyZ2luOjB9aDF7Zm9udC1zaXplOjI1cHg7bGV0dGVyLXNwYWNpbmc6LS43cHg7Zm9udC13ZWlnaHQ6ODAwfWgye2ZvbnQtc2l6ZToxN3B4O2ZvbnQtd2VpZ2h0OjcwMH1oM3tmb250LXNpemU6MTRweDtmb250LXdlaWdodDo3MDB9c21hbGx7ZGlzcGxheTpibG9jaztmb250LXNpemU6MTBweH1zdmd7ZmxleC1zaHJpbms6MH1pe2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjZweDtoZWlnaHQ6NnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6IzI0YTI4ZX0uc2hlbGx7ZGlzcGxheTpmbGV4O21pbi1oZWlnaHQ6MTAwdmh9LnNpZGViYXJ7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MDt0b3A6MDtib3R0b206MDt3aWR0aDoyNDJweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHZhcigtLWxpbmUpO3BhZGRpbmc6MjZweCAxOXB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ei1pbmRleDoxMH0uYnJhbmR7ZGlzcGxheTpmbGV4O2dhcDo5cHg7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiMxNzNlNDc7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC1zaXplOjIzcHg7Zm9udC13ZWlnaHQ6ODAwfS5icmFuZCBzbWFsbHtmb250LXNpemU6OXB4O2NvbG9yOiM4ZDliOWU7Zm9udC13ZWlnaHQ6NDAwfS5icmFuZG1hcmt7YmFja2dyb3VuZDojMGM4NTg3O3dpZHRoOjQwcHg7aGVpZ2h0OjQzcHg7Ym9yZGVyLXJhZGl1czoxMXB4O2Rpc3BsYXk6Z3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7Y29sb3I6I2ZmZn0uYnJhbmRMYXRpbntmb250LXNpemU6MTVweDtjb2xvcjojMTI3ZDgwO21hcmdpbi1yaWdodDphdXRvO2xldHRlci1zcGFjaW5nOi0xcHh9Lm9yZ3tkaXNwbGF5OmZsZXg7Z2FwOjlweDthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKTtib3JkZXItcmFkaXVzOjlweDtwYWRkaW5nOjEycHggOXB4O21hcmdpbjoyOHB4IDAgMjVweDtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDB9Lm9yZyBzbWFsbHtmb250LXdlaWdodDo0MDA7Y29sb3I6IzkxYTBhNTttYXJnaW4tdG9wOjNweDtmb250LXNpemU6OHB4fS5vcmc+c3BhbnttYXJnaW4tcmlnaHQ6YXV0b30ub3JnaWNvbntjb2xvcjojMTQ4NTg3O2ZvbnQtc2l6ZToyMnB4O2JhY2tncm91bmQ6I2VhZjZmNTtwYWRkaW5nOjAgN3B4O2JvcmRlci1yYWRpdXM6NnB4fS5uYXZsYWJlbHtmb250LXNpemU6MTBweDtjb2xvcjojOTlhNWFiO3BhZGRpbmc6MCAxMnB4O21hcmdpbi1ib3R0b206MTBweDttYXJnaW4tdG9wOjlweH0ubmF2e2JvcmRlcjowO3dpZHRoOjEwMCU7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7cGFkZGluZzoxMnB4IDEzcHg7Y29sb3I6IzZjN2U4NzttYXJnaW4tYm90dG9tOjZweDtmb250LXNpemU6MTJweDtnYXA6MTJweH0ubmF2LmFjdGl2ZXtiYWNrZ3JvdW5kOiNlOWY2ZjQ7Y29sb3I6IzA4N2U4MDtmb250LXdlaWdodDo3MDB9Lm5hdiBie21hcmdpbi1yaWdodDphdXRvO2JvcmRlci1yYWRpdXM6NXB4O2JhY2tncm91bmQ6I2NmZWNlNjtwYWRkaW5nOjFweCA2cHg7Zm9udC1zaXplOjEwcHh9LnNpZGViYXJib3R0b217bWFyZ2luLXRvcDphdXRvO3BhZGRpbmctdG9wOjI1cHh9LmhlbHB7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTMwZGVnLCNmMWY5ZjcsI2Y3ZmFmYik7Ym9yZGVyOjFweCBzb2xpZCAjZTJlZmViO3BhZGRpbmc6MTZweCAxMXB4O2JvcmRlci1yYWRpdXM6MTBweDt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojNDM4MzdmfS5oZWxwPnN2Z3ttYXJnaW46MCBhdXRvIDEwcHh9LmhlbHAgYntmb250LXNpemU6MTFweDtkaXNwbGF5OmJsb2NrfS5oZWxwIHB7Zm9udC1zaXplOjlweDttYXJnaW46NXB4IDAgMTJweDtjb2xvcjojODdhMTlkfS5oZWxwIGJ1dHRvbntmb250LXNpemU6MTBweDt3aWR0aDoxMDAlO2NvbG9yOiMzMjg0N2U7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ucHJvZmlsZXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo5cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tbGluZSk7cGFkZGluZy10b3A6MTlweDttYXJnaW4tdG9wOjIzcHg7Zm9udC1zaXplOjEycHh9LnByb2ZpbGUgc21hbGx7Y29sb3I6dmFyKC0tbXV0ZWQpO21hcmdpbi10b3A6M3B4fS5wcm9maWxlPnN2Z3ttYXJnaW4tcmlnaHQ6YXV0bztjdXJzb3I6cG9pbnRlcn0uYXZhdGFye2Rpc3BsYXk6Z3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojZTNlZmVkO2NvbG9yOiMzODg2N2I7Zm9udC1zaXplOjE2cHg7d2lkdGg6MzVweDtoZWlnaHQ6MzVweH0uYXZhdGFyLm1pbml7aGVpZ2h0OjMwcHg7d2lkdGg6MzBweDtmb250LXNpemU6MTNweH0uYXZhdGFyLnRpbnl7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweDtmb250LXNpemU6MTBweDtiYWNrZ3JvdW5kOiNlZmYxZjg7Y29sb3I6IzgwOTFhZX1tYWlue21hcmdpbi1yaWdodDoyNDJweDt3aWR0aDpjYWxjKDEwMCUgLSAyNDJweCl9aGVhZGVye2hlaWdodDo3M3B4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1saW5lKTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6MCAzMnB4fS5icmVhZGNydW1iLC5oZWFkZXJsZWZ0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjE3cHg7Zm9udC1zaXplOjExcHh9LmJyZWFkY3J1bWJ7Y29sb3I6IzlhYTZhZDtnYXA6MTJweH0uYnJlYWRjcnVtYiBie2NvbG9yOiM1MjY4NzE7Zm9udC13ZWlnaHQ6NTAwfS5jb25uZWN0aW9ue2ZvbnQtc2l6ZToxMHB4O2NvbG9yOiM4MjkzOGU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4fS5pY29uYnV0dG9ue3BhZGRpbmc6OHB4O2JhY2tncm91bmQ6d2hpdGU7cG9zaXRpb246cmVsYXRpdmV9LmhlYWRlcmxlZnQgLmljb25idXR0b257Ym9yZGVyOjA7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCB2YXIoLS1saW5lKTtib3JkZXItbGVmdDoxcHggc29saWQgdmFyKC0tbGluZSk7Ym9yZGVyLXJhZGl1czowO3BhZGRpbmc6NnB4IDE5cHh9Lmljb25idXR0b24gZW17cG9zaXRpb246YWJzb2x1dGU7dG9wOjVweDtyaWdodDoxOXB4O3dpZHRoOjVweDtoZWlnaHQ6NXB4O2JhY2tncm91bmQ6I2U2OTk1Yjtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MXB4IHNvbGlkIHdoaXRlfS5jb250ZW50e3BhZGRpbmc6MjdweCAzMnB4IDA7bWF4LXdpZHRoOjE2MDBweDttYXJnaW46YXV0b30uaGVhZGluZ3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi1ib3R0b206MjRweH0uZXllYnJvd3tjb2xvcjojMWI4YTg2O2ZvbnQtc2l6ZToxMHB4O21hcmdpbi1ib3R0b206NXB4fS5oZWFkaW5nIHB7Y29sb3I6IzhjOWJhMztmb250LXNpemU6MTFweDttYXJnaW4tdG9wOjZweH0uZGF0ZXt0ZXh0LWFsaWduOmxlZnQ7Zm9udC1zaXplOjExcHg7Y29sb3I6IzcxODU4ZX0uZGF0ZSBzbWFsbHtmb250LXNpemU6OXB4O2NvbG9yOiNhMmFmYjQ7bWFyZ2luLXRvcDo5cHg7ZGlzcGxheTpmbGV4O2dhcDo1cHg7YWxpZ24taXRlbXM6Y2VudGVyfS5zdGF0c3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg0LDFmcik7Z2FwOjE2cHg7bWFyZ2luLWJvdHRvbToyMnB4fS5zdGF0e2JhY2tncm91bmQ6d2hpdGU7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKTtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoxN3B4IDE4cHg7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Ym94LXNoYWRvdzowIDNweCA1cHggIzI0M2M0NTAyfS5zdGF0IHNwYW57Y29sb3I6Izc0ODg5MTtmb250LXNpemU6MTFweH0uc3RhdCBzdHJvbmd7Zm9udC1zaXplOjI5cHg7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDoxLjc7Zm9udC13ZWlnaHQ6NzAwfS5zdGF0IHNtYWxse2NvbG9yOiNhMWFkYjM7Zm9udC1zaXplOjlweH0uc3RhdEljb257cGFkZGluZzoxMXB4O2JvcmRlci1yYWRpdXM6OXB4fS5zdGF0SWNvbi50ZWFse2JhY2tncm91bmQ6I2U5ZjdmNDtjb2xvcjojMTg4YzgxfS5zdGF0SWNvbi5yZWR7YmFja2dyb3VuZDojZmZmMGVlO2NvbG9yOiNkYjdkNzF9LnN0YXRJY29uLmFtYmVye2JhY2tncm91bmQ6I2ZmZjhlOTtjb2xvcjojZDhhNjRjfS5zdGF0SWNvbi5ibHVle2JhY2tncm91bmQ6I2VkZjNmZDtjb2xvcjojNzQ5N2NhfS5xdWlja3Jvd3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjE4cHg7bWFyZ2luLWJvdHRvbToyNXB4fS5xdWlja3tqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtwYWRkaW5nOjE2cHggMjBweDtib3JkZXItcmFkaXVzOjEwcHg7Z2FwOjE1cHg7dGV4dC1hbGlnbjpyaWdodH0ucXVpY2s+c3Zne21hcmdpbi1yaWdodDphdXRvO2NvbG9yOiM5ZGFlYjR9LnF1aWNrIHB7Y29sb3I6Izk2YTVhYjtmb250LXNpemU6MTBweDttYXJnaW4tdG9wOjRweH0ucXVpY2tJY29ue2Rpc3BsYXk6Z3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7d2lkdGg6NDNweDtoZWlnaHQ6NDNweDtiYWNrZ3JvdW5kOiNmMGY0Zjc7Y29sb3I6IzdiOTRhMztib3JkZXItcmFkaXVzOjEwcHh9LnF1aWNrLm5ld3tiYWNrZ3JvdW5kOiMwODdlODA7Y29sb3I6d2hpdGU7Ym9yZGVyLWNvbG9yOiMwODdlODA7Ym94LXNoYWRvdzowIDVweCAxM3B4ICMwODdlODAxOH0ucXVpY2submV3IHB7Y29sb3I6I2IxZDlkOH0ucXVpY2submV3IC5xdWlja0ljb257YmFja2dyb3VuZDojZmZmZmZmMTY7Y29sb3I6d2hpdGV9LnF1aWNrLm5ldz5zdmd7Y29sb3I6I2E5ZDZkNn0uYm9hcmR7YmFja2dyb3VuZDp3aGl0ZTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JvcmRlci1yYWRpdXM6MTJweDtvdmVyZmxvdzpoaWRkZW59LmJvYXJkaGVhZHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MTlweCAyMXB4IDE2cHh9LmJvYXJkaGVhZCBoMiBzcGFue2ZvbnQtc2l6ZTo5cHg7Zm9udC13ZWlnaHQ6NDAwO2JhY2tncm91bmQ6I2YxZjVmNjtib3JkZXItcmFkaXVzOjVweDtjb2xvcjojOTFhMGE4O3BhZGRpbmc6NHB4IDZweDttYXJnaW4tcmlnaHQ6N3B4fS5ib2FyZGhlYWQgcHtmb250LXNpemU6MTBweDtjb2xvcjojOWFhN2FkO21hcmdpbi10b3A6NXB4fS5ib2FyZHRvb2xze2Rpc3BsYXk6ZmxleDtnYXA6OHB4fS5ib2FyZHRvb2xzIGJ1dHRvbntmb250LXNpemU6MTBweDtwYWRkaW5nOjhweCAxMXB4O2NvbG9yOiM3Mzg5OTB9LnNlbGVjdGVke2JhY2tncm91bmQ6I2U3ZjVmMyFpbXBvcnRhbnQ7Y29sb3I6dmFyKC0tdGVhbCkhaW1wb3J0YW50fS50YWJze2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWxpbmUpO2Rpc3BsYXk6ZmxleDtnYXA6MjJweDtwYWRkaW5nOjAgMjFweDtvdmVyZmxvdzphdXRvfS50YWJzIGJ1dHRvbntib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtwYWRkaW5nOjEycHggMDtjb2xvcjojOGE5YmEzO2ZvbnQtc2l6ZToxMXB4O3doaXRlLXNwYWNlOm5vd3JhcDtwb3NpdGlvbjpyZWxhdGl2ZX0udGFicyBidXR0b24uY2hvc2Vue2NvbG9yOiMwNzg3ODQ7Zm9udC13ZWlnaHQ6NjAwO2JvcmRlci1ib3R0b206MnB4IHNvbGlkICMwNzg3ODR9LnRhYnMgc3BhbntwYWRkaW5nOjAgNXB4O2JhY2tncm91bmQ6I2UzZjNmMDtib3JkZXItcmFkaXVzOjRweDtmb250LXNpemU6OXB4fS5maWx0ZXJze2Rpc3BsYXk6ZmxleDtnYXA6MTBweDtwYWRkaW5nOjE2cHggMjBweDtiYWNrZ3JvdW5kOiNmY2ZkZmR9LnNlYXJjaHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7cGFkZGluZzowIDEwcHg7Ym9yZGVyLXJhZGl1czo3cHg7Z2FwOjhweDtmbGV4OjE7YmFja2dyb3VuZDp3aGl0ZTtjb2xvcjojYTBhZGI0fS5zZWFyY2ggaW5wdXR7Ym9yZGVyOjA7d2lkdGg6MTAwJTtmb250LXNpemU6MTBweDtwYWRkaW5nOjEwcHggMH0uZmlsdGVycyBzZWxlY3R7Zm9udC1zaXplOjEwcHg7d2lkdGg6MTM1cHg7cGFkZGluZzo4cHg7Y29sb3I6IzgyOTI5Yn0uY2FyZHN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDoxNnB4O3BhZGRpbmc6MCAyMHB4IDE4cHh9LmZhdWx0e2JvcmRlcjoxcHggc29saWQgI2UyZTllYztib3JkZXItcmFkaXVzOjlweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzoxM3B4IDE0cHggMDt0cmFuc2l0aW9uOi4yc30uZmF1bHQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOiNhM2QxY2E7Ym94LXNoYWRvdzowIDVweCAxOHB4ICMyNjRmNDYxMH0uY2FyZHRvcHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi1ib3R0b206OXB4fS5iYWRnZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O2JvcmRlci1yYWRpdXM6NXB4O3BhZGRpbmc6M3B4IDdweDtmb250LXNpemU6OXB4O2JhY2tncm91bmQ6I2Y0ZjVmN30ucDB7YmFja2dyb3VuZDojZmZmMGVkO2NvbG9yOiNkODc4NjN9LnAxe2JhY2tncm91bmQ6I2ZmZjRlODtjb2xvcjojY2U5NzUwfS5wMntiYWNrZ3JvdW5kOiNlZWY0ZmQ7Y29sb3I6IzdjOWRjNH0ucDMsLnA0e2JhY2tncm91bmQ6I2VkZjhmMjtjb2xvcjojNzRhODhjfS5jYXJkaWR7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtmb250LXNpemU6OXB4O2NvbG9yOiM5Y2FiYjM7bGV0dGVyLXNwYWNpbmc6LjRweH0ucHJvZHVjdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxM3B4O2hlaWdodDoxMDFweH0ucGljdHVyZXtiYWNrZ3JvdW5kOiNmNmY4Zjk7d2lkdGg6MTAwcHg7aGVpZ2h0OjkwcHg7Ym9yZGVyLXJhZGl1czo3cHg7ZmxleC1zaHJpbms6MH0ucGljdHVyZSBzdmd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ucHJvZHVjdD5kaXY6bnRoLWNoaWxkKDIpe21pbi13aWR0aDowfS51bml0e2ZvbnQtc2l6ZTo4cHg7Y29sb3I6IzlhYTlhZn0ucHJvZHVjdCBoM3tmb250LXNpemU6MTJweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7bWFyZ2luOjVweCAwO2N1cnNvcjpwb2ludGVyfS5wcm9kdWN0IHB7Zm9udC1zaXplOjEwcHg7Y29sb3I6IzdlOTI5Yn0ucHJvZHVjdCBzbWFsbHtmb250LXNpemU6OHB4O2NvbG9yOiNhMWFmYjc7bWFyZ2luLXRvcDo0cHg7dGV4dC1hbGlnbjpyaWdodDtsZXR0ZXItc3BhY2luZzouNHB4fS5hc3NpZ25tZW50e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjdweDtwYWRkaW5nOjEwcHggMCAxMnB4O2ZvbnQtc2l6ZTo4cHg7Y29sb3I6I2ExYWRiNH0uYXNzaWdubWVudCBie2NvbG9yOiM3MTg3OTI7Zm9udC13ZWlnaHQ6NDAwO21hcmdpbi1yaWdodDo1cHh9LmVsYXBzZWR7bWFyZ2luLXJpZ2h0OmF1dG87ZGlzcGxheTpmbGV4O2dhcDo0cHg7YWxpZ24taXRlbXM6Y2VudGVyfS5hY3Rpb25ib3h7YmFja2dyb3VuZDojZjhmYWZiO2JvcmRlci10b3A6MXB4IHNvbGlkICNlZGYwZjI7bWFyZ2luOjAgLTE0cHg7cGFkZGluZzoxMHB4IDEzcHh9LmFjdGlvbnRpdGxle2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Zm9udC1zaXplOjlweH0uYWN0aW9udGl0bGUgYntjb2xvcjojOTJhMmFiO2ZvbnQtd2VpZ2h0OjUwMH0uc3RhdHVze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDtjb2xvcjojNzM5MGFhO2ZvbnQtc2l6ZTo5cHh9LnN0YXR1cyBpe2JhY2tncm91bmQ6Y3VycmVudENvbG9yO3dpZHRoOjRweDtoZWlnaHQ6NHB4fS5zMntjb2xvcjojNDM4ZTk4fS5zM3tjb2xvcjojYzZhMDVkfS5zNHtjb2xvcjojNDM5NzgwfS53b3JrZmxvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDowO21hcmdpbjo5cHggMCAxMXB4fS53b3JrZmxvdyBzcGFue2JvcmRlcjoxcHggc29saWQgI2RjZTVlOTtiYWNrZ3JvdW5kOndoaXRlO2Rpc3BsYXk6Z3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7Ym9yZGVyLXJhZGl1czo1MCU7d2lkdGg6MTVweDtoZWlnaHQ6MTVweDtmb250LXNpemU6OHB4O2NvbG9yOiNiNmMzY2F9LndvcmtmbG93PmRpdntoZWlnaHQ6MnB4O2JhY2tncm91bmQ6I2UzZWJlZTtmbGV4OjF9LndvcmtmbG93IHNwYW4ucGFzc2Vke2JhY2tncm91bmQ6I2RjZWZlYTtjb2xvcjojNDU4ZjgzO2JvcmRlci1jb2xvcjojYzVlNGRifS53b3JrZmxvdz5kaXYucGFzc2Vke2JhY2tncm91bmQ6I2E4ZDhjZH0uYWN0aW9uc3tkaXNwbGF5OmZsZXg7Z2FwOjZweH0uYWN0aW9ucyBidXR0b257Zm9udC1zaXplOjlweDtib3JkZXItY29sb3I6I2UxZTllZDtwYWRkaW5nOjdweCA5cHg7ZmxleDoxO2NvbG9yOiM3YTkyOWU7d2hpdGUtc3BhY2U6bm93cmFwfS5hY3Rpb25zIC5jbG9zZWZhdWx0e2NvbG9yOiMzOThmODR9LmFjdGlvbnMgLmRldGFpbHN7ZmxleDowO3BhZGRpbmc6NnB4fS5ib2FyZGZvb3Rlcntib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1saW5lKTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoxMnB4IDIwcHg7Y29sb3I6I2EzYjBiNztmb250LXNpemU6OXB4fS5ib2FyZGZvb3RlciBzcGFue2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjVweH1mb290ZXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6MTdweCAwO2NvbG9yOiNhMWFlYjU7Zm9udC1zaXplOjlweH1mb290ZXIgYntwYWRkaW5nOjAgNXB4O2NvbG9yOiM4ZWJkYjV9Zm9vdGVyIGl7d2lkdGg6NHB4O2hlaWdodDo0cHg7bWFyZ2luOjAgOHB4O2JhY2tncm91bmQ6I2FkYzRjYX0ucGFuZWx7YmFja2dyb3VuZDp3aGl0ZTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JvcmRlci1yYWRpdXM6MTBweDtwYWRkaW5nOjIycHh9LmVxdWlwbWVudGdyaWR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDoxOHB4fS5lcXVpcCBzdmd7aGVpZ2h0OjE0MHB4O21hcmdpbjphdXRvfS5lcXVpcCBwe2NvbG9yOnZhcigtLW11dGVkKTttYXJnaW46MTBweCAwfS5vdmVybGF5e3Bvc2l0aW9uOmZpeGVkO2luc2V0OjA7ei1pbmRleDoxMDA7YmFja2dyb3VuZDojMTYzZTQ5NzA7YmFja2Ryb3AtZmlsdGVyOmJsdXIoNHB4KTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzoyNXB4fS5tb2RhbHtiYWNrZ3JvdW5kOndoaXRlO2JveC1zaGFkb3c6MCAyNHB4IDEwMHB4ICMwYjMwM2E0MDtib3JkZXItcmFkaXVzOjE2cHg7d2lkdGg6NTMwcHg7bWF4LWhlaWdodDo4OHZoO292ZXJmbG93OmF1dG87cGFkZGluZzoyNHB4fS5tb2RhbC53aWRle3dpZHRoOjg1MHB4fS5tb2RhbGhlYWR7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW4tYm90dG9tOjE4cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tbGluZSk7cGFkZGluZy1ib3R0b206MTVweH0ubW9kYWxoZWFkIGJ1dHRvbntib3JkZXI6MDtwYWRkaW5nOjVweH0ubW9kYWwgcHtsaW5lLWhlaWdodDoyfS5tb2RhbCBsYWJlbHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo3cHg7bWFyZ2luOjEzcHggMDtjb2xvcjojNmQ4NThjO2ZvbnQtc2l6ZToxMnB4fS5tb2RhbCB0ZXh0YXJlYXt3aWR0aDoxMDAlO21pbi1oZWlnaHQ6OTBweDtyZXNpemU6dmVydGljYWx9Lm1vZGFsIC5wcmltYXJ5e2JhY2tncm91bmQ6dmFyKC0tdGVhbCk7Y29sb3I6d2hpdGU7Ym9yZGVyLWNvbG9yOnZhcigtLXRlYWwpO21hcmdpbi10b3A6MTBweH0ubm90aWNle2ZvbnQtc2l6ZToxMHB4O2JhY2tncm91bmQ6I2YwZjdmNztjb2xvcjojNzE5MThmO3BhZGRpbmc6MTBweCAxMnB4O2JvcmRlci1yYWRpdXM6N3B4O21hcmdpbjoxMnB4IDAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjEuOX0ubXV0ZWR7Y29sb3I6IzhiOWZhNjtmb250LXNpemU6MTFweH0uY2hlY2tsYWJlbHtmbGV4LWRpcmVjdGlvbjpyb3chaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlcn0uZGV0YWlscHJvZHVjdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxOHB4fS5kZXRhaWxwcm9kdWN0IHN2Z3t3aWR0aDoxMjBweDtoZWlnaHQ6MTEwcHh9LmRldGFpbHByb2R1Y3Qgc3Bhbntjb2xvcjojOWFhYWIyO2ZvbnQtc2l6ZToxMHB4fS5tZXNzYWdlc3ttaW4taGVpZ2h0OjEyMHB4O21heC1oZWlnaHQ6MjgwcHg7b3ZlcmZsb3c6YXV0bztiYWNrZ3JvdW5kOiNmNmY5ZmE7Ym9yZGVyLXJhZGl1czo4cHg7cGFkZGluZzoxNXB4O21hcmdpbjoxNXB4IDB9Lm1lc3NhZ2VzIHB7YmFja2dyb3VuZDojZTRmMmVmO21hcmdpbi1ib3R0b206MTBweDtwYWRkaW5nOjEwcHg7Ym9yZGVyLXJhZGl1czo3cHg7d2hpdGUtc3BhY2U6cHJlLXdyYXB9Lm1lc3NhZ2VzIHNtYWxse2NvbG9yOiM5M2E3YTc7Zm9udC1zaXplOjhweH0ubG9ne2Rpc3BsYXk6ZmxleDtnYXA6MTJweDthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tbGluZSk7cGFkZGluZzoxN3B4IDA7Zm9udC1zaXplOjExcHh9LmxvZyBzbWFsbHtjb2xvcjojYTBhZWI0O21hcmdpbi10b3A6NnB4fS5sb2cgYnV0dG9ue21hcmdpbi1yaWdodDphdXRvO2ZvbnQtc2l6ZToxMHB4fS5wcmlvcml0eXNldHRpbmd7ZmxleC1kaXJlY3Rpb246cm93IWltcG9ydGFudH0ucHJpb3JpdHlzZXR0aW5nIGlucHV0e2ZsZXg6MX0uZW1wdHl7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzo1MHB4IDIwcHg7Y29sb3I6IzhmYTBhN30uZW1wdHkgYnV0dG9ue2Rpc3BsYXk6ZmxleDttYXJnaW46MjBweCBhdXRvIDB9LnRhYmxld3JhcHtvdmVyZmxvdzphdXRvfXRhYmxle3dpZHRoOjEwMCU7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2ZvbnQtc2l6ZToxMXB4fXRoLHRke3RleHQtYWxpZ246cmlnaHQ7cGFkZGluZzoxNXB4IDEwcHg7Ym9yZGVyOjFweCBzb2xpZCAjZTRlZGVmfXRoe2JhY2tncm91bmQ6I2YzZjhmOH10ZHttaW4td2lkdGg6MTUwcHh9LnRvYXN0e3Bvc2l0aW9uOmZpeGVkO2JvdHRvbToyNXB4O2xlZnQ6MzBweDtiYWNrZ3JvdW5kOiMxNjRlNGQ7Y29sb3I6d2hpdGU7cGFkZGluZzoxNXB4IDIycHg7ei1pbmRleDoyMDA7Ym9yZGVyLXJhZGl1czoxMHB4O2JveC1zaGFkb3c6MCA5cHggMzVweCAjMTY0ZTRkMzA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtmb250LXNpemU6MTJweH0KQG1lZGlhKG1pbi13aWR0aDoxNDUwcHgpey5jb250ZW50e3BhZGRpbmctdG9wOjM0cHh9LnByb2R1Y3R7aGVpZ2h0OjEyMHB4fS5waWN0dXJle3dpZHRoOjEyMHB4O2hlaWdodDoxMDVweH0uZmF1bHR7cGFkZGluZy10b3A6MTVweH0uc3RhdHtwYWRkaW5nOjIxcHh9LmNhcmRze2dhcDoxOHB4fS5wcm9kdWN0IGgze2ZvbnQtc2l6ZToxNHB4fX0KQG1lZGlhKG1heC13aWR0aDoxMTUwcHgpey5zaWRlYmFye3dpZHRoOjIxMHB4O3BhZGRpbmc6MjJweCAxNHB4fW1haW57bWFyZ2luLXJpZ2h0OjIxMHB4O3dpZHRoOmNhbGMoMTAwJSAtIDIxMHB4KX0uY29udGVudHtwYWRkaW5nOjIycHggMjJweCAwfS5jYXJkc3tnYXA6MTJweDtwYWRkaW5nOjAgMTRweCAxNXB4fS5waWN0dXJle3dpZHRoOjc2cHg7aGVpZ2h0OjgycHh9LnByb2R1Y3R7Z2FwOjlweH0ucHJvZHVjdCBoM3tmb250LXNpemU6MTFweH0uYWN0aW9ucyBidXR0b257Zm9udC1zaXplOjhweDtwYWRkaW5nOjdweCA1cHh9LmFzc2lnbm1lbnQgYntkaXNwbGF5OmJsb2NrO21hcmdpbjowfS5zdGF0e3BhZGRpbmc6MTRweCAxMnB4fS5zdGF0SWNvbntwYWRkaW5nOjhweH0uc3RhdCBzcGFue2ZvbnQtc2l6ZToxMHB4fS5zdGF0c3tnYXA6MTBweH0udGFic3tnYXA6MTZweH0uYnJhbmRMYXRpbntkaXNwbGF5Om5vbmV9fQpAbWVkaWEobWF4LXdpZHRoOjg1MHB4KXsuc2lkZWJhcnt3aWR0aDo3NHB4O3BhZGRpbmc6MjBweCAxMHB4fS5icmFuZD5kaXY6bm90KC5icmFuZG1hcmspLC5vcmcsLm5hdmxhYmVsLC5zaWRlYmFyYm90dG9tLC5icmFuZExhdGlue2Rpc3BsYXk6bm9uZX0uYnJhbmR7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tYm90dG9tOjI1cHh9Lm5hdntmb250LXNpemU6MDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MTNweCAwfS5uYXYgc3Zne3dpZHRoOjIxcHh9Lm5hdiBie2Rpc3BsYXk6bm9uZX1tYWlue21hcmdpbi1yaWdodDo3NHB4O3dpZHRoOmNhbGMoMTAwJSAtIDc0cHgpfWhlYWRlcntwYWRkaW5nOjAgMjBweH0uc3RhdHN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLDFmcil9LmhlYWRpbmcgLmRhdGV7ZGlzcGxheTpub25lfS5jYXJkc3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcn0ucHJvZHVjdHtoZWlnaHQ6MTEwcHg7Z2FwOjVweH0ucGljdHVyZXt3aWR0aDo2NXB4fS5hY3Rpb25ze2ZsZXgtd3JhcDp3cmFwfS5hY3Rpb25zIGJ1dHRvbntmb250LXNpemU6OXB4fS5hY3Rpb25zIC5kZXRhaWxze2Rpc3BsYXk6bm9uZX0ucHJvZHVjdCBoM3t3aGl0ZS1zcGFjZTpub3JtYWw7bGluZS1oZWlnaHQ6MS43fS5maWx0ZXJzIHNlbGVjdHt3aWR0aDoxMTBweH0ucXVpY2t7cGFkZGluZzoxNXB4IDEycHg7Z2FwOjEwcHh9LnF1aWNrIGgze2ZvbnQtc2l6ZToxMnB4fS5xdWljayBwe2ZvbnQtc2l6ZTo4cHh9LnF1aWNrSWNvbnt3aWR0aDozNXB4O2hlaWdodDozNXB4fS5ib2FyZGhlYWR7cGFkZGluZzoxN3B4IDE1cHh9LmhlYWRpbmcgaDF7Zm9udC1zaXplOjIycHh9LmJvYXJkdG9vbHMgYnV0dG9ue2ZvbnQtc2l6ZTo5cHg7cGFkZGluZzo3cHh9LmJvYXJkaGVhZCBwe2ZvbnQtc2l6ZTo5cHh9LmJvYXJkZm9vdGVyIHNwYW46bGFzdC1jaGlsZHtkaXNwbGF5Om5vbmV9fQpAbWVkaWEobWF4LXdpZHRoOjYyMHB4KXsuc2lkZWJhcnt3aWR0aDo1N3B4O3BhZGRpbmc6MThweCA2cHh9bWFpbnttYXJnaW4tcmlnaHQ6NTdweDt3aWR0aDpjYWxjKDEwMCUgLSA1N3B4KX0uYnJhbmRtYXJre2hlaWdodDozNHB4O3dpZHRoOjM0cHh9LmNvbnRlbnR7cGFkZGluZzoyMHB4IDEycHggMH0uaGVhZGluZyBoMXtmb250LXNpemU6MThweH0uaGVhZGluZyBwe2ZvbnQtc2l6ZTo5cHh9LmNhcmRze2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9LnByb2R1Y3R7Z2FwOjE1cHg7aGVpZ2h0OjEwNXB4fS5waWN0dXJle3dpZHRoOjEwMHB4fS5wcm9kdWN0IGgze2ZvbnQtc2l6ZToxM3B4fS5xdWlja3Jvd3tnYXA6OXB4fS5xdWlja3thbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDo3cHg7cGFkZGluZzoxM3B4IDEwcHh9LnF1aWNrSWNvbnt3aWR0aDoyNnB4O2hlaWdodDoyOXB4fS5xdWlja0ljb24gc3Zne3dpZHRoOjE4cHh9LnF1aWNrPnN2Z3tkaXNwbGF5Om5vbmV9LnF1aWNrIHB7bGluZS1oZWlnaHQ6MS44fS5zdGF0IHN0cm9uZ3tmb250LXNpemU6MjRweH0uc3RhdEljb257cGFkZGluZzo2cHh9LnN0YXRJY29uIHN2Z3t3aWR0aDoxOHB4fS5oZWFkZXJsZWZ0IC5jb25uZWN0aW9ue2Rpc3BsYXk6bm9uZX1oZWFkZXJ7aGVpZ2h0OjU5cHg7cGFkZGluZzowIDEzcHh9LmJvYXJkaGVhZHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDo4cHh9LmJvYXJkaGVhZCBoMntmb250LXNpemU6MTRweH0uYm9hcmR0b29sc3tnYXA6NHB4fS5ib2FyZHRvb2xzIGJ1dHRvbntmb250LXNpemU6MDtwYWRkaW5nOjdweH0uYm9hcmR0b29scyBzdmd7d2lkdGg6MTdweH0udGFic3tnYXA6MTlweDtwYWRkaW5nOjAgMTRweH0uZmlsdGVyc3tmbGV4LXdyYXA6d3JhcDtwYWRkaW5nOjEycHggMTRweH0uc2VhcmNoe2ZsZXgtYmFzaXM6MTAwJX0uZmlsdGVycyBzZWxlY3R7ZmxleDoxfS5hY3Rpb25zIGJ1dHRvbntmb250LXNpemU6MTBweH0uYm9hcmRmb290ZXJ7cGFkZGluZzoxMnB4IDE1cHh9Zm9vdGVye2ZvbnQtc2l6ZTo4cHh9Zm9vdGVyIHNwYW46bGFzdC1jaGlsZHtkaXNwbGF5Om5vbmV9Lm1vZGFse3BhZGRpbmc6MThweH0ub3ZlcmxheXtwYWRkaW5nOjE1cHh9LmVxdWlwbWVudGdyaWR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn0udG9hc3R7bGVmdDoxNXB4O3JpZ2h0OjcwcHg7Ym90dG9tOjE1cHg7Zm9udC1zaXplOjEwcHh9LmFzc2lnbm1lbnQgYntkaXNwbGF5OmlubGluZTttYXJnaW4tcmlnaHQ6NnB4fX0KQG1lZGlhKG1pbi13aWR0aDoxMDAwcHgpe2hlYWRlcntoZWlnaHQ6NjJweH0uY29udGVudHtwYWRkaW5nLXRvcDoyMHB4fS5oZWFkaW5ne21hcmdpbi1ib3R0b206MThweH0uc3RhdHN7bWFyZ2luLWJvdHRvbToxN3B4fS5zdGF0e3BhZGRpbmctdG9wOjEzcHg7cGFkZGluZy1ib3R0b206MTNweH0ucXVpY2tyb3d7bWFyZ2luLWJvdHRvbToxOHB4fS5xdWlja3twYWRkaW5nLXRvcDoxM3B4O3BhZGRpbmctYm90dG9tOjEzcHh9LnByb2R1Y3R7aGVpZ2h0Ojg1cHh9LnBpY3R1cmV7aGVpZ2h0Ojc3cHh9LmFzc2lnbm1lbnR7cGFkZGluZzo3cHggMCA5cHh9LmJvYXJkaGVhZHtwYWRkaW5nLXRvcDoxNXB4O3BhZGRpbmctYm90dG9tOjEycHh9LmZpbHRlcnN7cGFkZGluZy10b3A6MTJweDtwYWRkaW5nLWJvdHRvbToxMnB4fS5jYXJkc3tnYXA6MTNweH0uYWN0aW9uYm94e3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9fQouc2V0dXB7bWF4LXdpZHRoOjc2MHB4O21hcmdpbjo1MHB4IGF1dG87YmFja2dyb3VuZDp3aGl0ZTtib3JkZXI6MXB4IHNvbGlkICNkN2U3ZTc7Ym9yZGVyLXJhZGl1czoxNXB4O3BhZGRpbmc6MzVweDtmb250LWZhbWlseTpUYWhvbWE7bGluZS1oZWlnaHQ6Mi4yfS5zZXR1cCAuYnJhbmRtYXJre21hcmdpbi1ib3R0b206MjBweH0ubGl2ZWVycm9ye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7YmFja2dyb3VuZDojZmZmMmVlO2JvcmRlcjoxcHggc29saWQgI2YxZDdjZTtjb2xvcjojOWU1MTQwO3BhZGRpbmc6MTJweCAxNXB4O2JvcmRlci1yYWRpdXM6OXB4O21hcmdpbi1ib3R0b206MTVweDtsaW5lLWhlaWdodDoxLjk7Zm9udC1zaXplOjEycHg7d2hpdGUtc3BhY2U6cHJlLXdyYXB9LmxpdmVlcnJvciBidXR0b257bWFyZ2luLXJpZ2h0OmF1dG87d2hpdGUtc3BhY2U6bm93cmFwfS5saXZlcHJpb3JpdHkgaW1ne3dpZHRoOjE3cHg7aGVpZ2h0OjE3cHg7b2JqZWN0LWZpdDpjb250YWlufS5saXZlcHJpb3JpdHl7Y29sb3I6IzUyNmY3YTtiYWNrZ3JvdW5kOiNmMmY2Zjl9LnBpY3R1cmV7ZGlzcGxheTpncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcjtvdmVyZmxvdzpoaWRkZW59LnBpY3R1cmU+aW1ne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb250YWlufS5ub2ltYWdle2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjhweDtjb2xvcjojYjNjMWM3fS5ub2ltYWdlIHNtYWxse2ZvbnQtc2l6ZTo4cHh9LmltYWdlZmFpbGVkOmFmdGVye2NvbnRlbnQ6J9iq2LXZiNuM2LEg2K/YsSDYr9iz2KrYsdizINmG24zYs9iqJztmb250LXNpemU6OHB4O2NvbG9yOiM5NmE4YjB9LmxpdmVmbG93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjdweDttaW4taGVpZ2h0OjM3cHg7Y29sb3I6IzgwOTZhMDtmb250LXNpemU6OXB4O2xpbmUtaGVpZ2h0OjEuNztvdmVyZmxvdy13cmFwOmFueXdoZXJlfS5jdXJyZW50c3RhZ2V7Y29sb3I6IzIwN2U3YztiYWNrZ3JvdW5kOiNlOWY0ZjI7cGFkZGluZzozcHggNnB4O2JvcmRlci1yYWRpdXM6NXB4O3doaXRlLXNwYWNlOm5vd3JhcH0udGl0bGVidXR0b257YmFja2dyb3VuZDp0cmFuc3BhcmVudCFpbXBvcnRhbnQ7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO2Rpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpyaWdodDt3aWR0aDoxMDAlO3BhZGRpbmc6MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6aW5oZXJpdH0ucGFnaW5hdGlvbntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4fS5wYWdpbmF0aW9uIGJ1dHRvbntwYWRkaW5nOjNweCAxMHB4O2ZvbnQtc2l6ZToxMHB4fS5kZXRhaWxuYXZpZ2F0aW9ue2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtmb250LXNpemU6MTBweDttYXJnaW4tYm90dG9tOjE1cHh9LmRldGFpbG5hdmlnYXRpb24gYnV0dG9ue2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmc6NnB4IDlweH0uZGV0YWlscHJvZHVjdCAucGljdHVyZXt3aWR0aDoxMTVweDttaW4td2lkdGg6MTE1cHg7aGVpZ2h0OjEwNXB4fS5kZXRhaWxwcm9kdWN0IC5waWN0dXJlIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5kZXNjcmlwdGlvbnt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO2xpbmUtaGVpZ2h0OjI7Zm9udC1zaXplOjEycHg7bWF4LWhlaWdodDoyNDBweDtvdmVyZmxvdzphdXRvfS50cmFuc2l0aW9uYnV0dG9uc3tkaXNwbGF5OmZsZXg7Z2FwOjdweDtmbGV4LXdyYXA6d3JhcDttYXJnaW46MTJweCAwfS50cmFuc2l0aW9uYnV0dG9ucyBidXR0b257Zm9udC1zaXplOjExcHg7Y29sb3I6IzIwODU4MH0udHJhbnNpdGlvbmZvcm17cGFkZGluZzoxNXB4O2JhY2tncm91bmQ6I2Y0ZjlmYTtib3JkZXItcmFkaXVzOjhweDttYXJnaW46MTJweCAwfS50cmFuc2l0aW9uZm9ybSBsYWJlbHtmb250LXNpemU6MTFweH0uc3BhY2Vke21hcmdpbi10b3A6MjVweDttYXJnaW4tYm90dG9tOjEycHh9LmxpdmVoaXN0b3J5e21hcmdpbi10b3A6MThweDtsaW5lLWhlaWdodDoyfS5saXZlaGlzdG9yeSBidXR0b257bWFyZ2luOjhweDtmb250LXNpemU6MTBweH0ubG9nIHB7Zm9udC1zaXplOjEwcHg7bGluZS1oZWlnaHQ6MS45O3doaXRlLXNwYWNlOnByZS13cmFwO292ZXJmbG93LXdyYXA6YW55d2hlcmV9LmNvbnRlbnQ+LmhlYWRpbmcgLmRhdGUgc2VsZWN0e2ZvbnQtc2l6ZToxMXB4O3dpZHRoOjIyMHB4fS5tb2RhbCBpbnB1dFt0eXBlPWNoZWNrYm94XXt3aWR0aDoxNnB4fS5tb2RhbCAud2lkZXt3aWR0aDo4NTBweH0uZmlsdGVycyBzZWxlY3R7bWF4LXdpZHRoOjE0NXB4fS5zdGF0IHN0cm9uZ3tsaW5lLWhlaWdodDoxLjV9LmxpdmVmbG93IHNwYW46bGFzdC1jaGlsZHttYXgtaGVpZ2h0OjQ0cHg7b3ZlcmZsb3c6YXV0b30uZGV0YWlscHJvZHVjdCAuYmFkZ2V7bWFyZ2luLXRvcDo2cHh9CkBtZWRpYShtYXgtd2lkdGg6ODUwcHgpey5oZWFkaW5ne2dhcDoxMnB4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmhlYWRpbmcgLmRhdGV7ZGlzcGxheTpibG9ja30uY29udGVudD4uaGVhZGluZyAuZGF0ZSBzZWxlY3R7d2lkdGg6MTYwcHg7Zm9udC1zaXplOjlweH0uZmlsdGVyc3tmbGV4LXdyYXA6d3JhcH0uc2VhcmNoe2ZsZXgtYmFzaXM6MTAwJX0uZmlsdGVycyBzZWxlY3R7ZmxleDoxO21heC13aWR0aDpub25lfS5oZWFkaW5nIHB7bWF4LXdpZHRoOjQwMHB4O2xpbmUtaGVpZ2h0OjEuOH0uZGF0ZSBzbWFsbHtkaXNwbGF5Om5vbmV9LmxpdmVlcnJvcntmb250LXNpemU6MTBweH0ubm9pbWFnZSBzbWFsbHtmb250LXNpemU6N3B4fX0KQG1lZGlhKG1heC13aWR0aDo2MjBweCl7LmhlYWRpbmd7ZGlzcGxheTpibG9ja30uaGVhZGluZyAuZGF0ZXttYXJnaW4tdG9wOjEycHg7dGV4dC1hbGlnbjpyaWdodH0uY29udGVudD4uaGVhZGluZyAuZGF0ZSBzZWxlY3R7d2lkdGg6MTAwJX0udGl0bGVidXR0b257d2hpdGUtc3BhY2U6bm9ybWFsfS5zZXR1cHttYXJnaW46MTVweDtwYWRkaW5nOjIwcHh9LnN0YXQgc3Bhbntmb250LXNpemU6OXB4fS5ib2FyZGhlYWQgcHtmb250LXNpemU6OHB4fS5kZXRhaWxuYXZpZ2F0aW9ue2ZsZXgtd3JhcDp3cmFwfX0K');doc.head.appendChild(style);
  var script=doc.createElement('script');script.textContent=decode('KCgpPT57dmFyIFpMPU9iamVjdC5jcmVhdGU7dmFyIHFuPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgUUw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgWUw9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIGpMPU9iamVjdC5nZXRQcm90b3R5cGVPZixLTD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBtZT0oYSxlKT0+KCk9PihlfHxhKChlPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxlKSxlLmV4cG9ydHMpO3ZhciBKTD0oYSxlLHQsbCk9PntpZihlJiZ0eXBlb2YgZT09Im9iamVjdCJ8fHR5cGVvZiBlPT0iZnVuY3Rpb24iKWZvcihsZXQgdSBvZiBZTChlKSkhS0wuY2FsbChhLHUpJiZ1IT09dCYmcW4oYSx1LHtnZXQ6KCk9PmVbdV0sZW51bWVyYWJsZTohKGw9UUwoZSx1KSl8fGwuZW51bWVyYWJsZX0pO3JldHVybiBhfTt2YXIgcGU9KGEsZSx0KT0+KHQ9YSE9bnVsbD9aTChqTChhKSk6e30sSkwoZXx8IWF8fCFhLl9fZXNNb2R1bGU/cW4odCwiZGVmYXVsdCIse3ZhbHVlOmEsZW51bWVyYWJsZTohMH0pOnQsYSkpO3ZhciBYbj1tZSh3PT57InVzZSBzdHJpY3QiO3ZhciBSZD1TeW1ib2wuZm9yKCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudCIpLFdMPVN5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIpLCRMPVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50IiksYWg9U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSxlaD1TeW1ib2wuZm9yKCJyZWFjdC5wcm9maWxlciIpLHRoPVN5bWJvbC5mb3IoInJlYWN0LmNvbnN1bWVyIiksbGg9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLHVoPVN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIiksZmg9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSxvaD1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIiksSG49U3ltYm9sLmZvcigicmVhY3QubGF6eSIpLGRoPVN5bWJvbC5mb3IoInJlYWN0LmFjdGl2aXR5IiksT249U3ltYm9sLml0ZXJhdG9yO2Z1bmN0aW9uIHNoKGEpe3JldHVybiBhPT09bnVsbHx8dHlwZW9mIGEhPSJvYmplY3QiP251bGw6KGE9T24mJmFbT25dfHxhWyJAQGl0ZXJhdG9yIl0sdHlwZW9mIGE9PSJmdW5jdGlvbiI/YTpudWxsKX12YXIgTm49e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LEZuPU9iamVjdC5hc3NpZ24sR249e307ZnVuY3Rpb24gdWwoYSxlLHQpe3RoaXMucHJvcHM9YSx0aGlzLmNvbnRleHQ9ZSx0aGlzLnJlZnM9R24sdGhpcy51cGRhdGVyPXR8fE5ufXVsLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9O3VsLnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihhLGUpe2lmKHR5cGVvZiBhIT0ib2JqZWN0IiYmdHlwZW9mIGEhPSJmdW5jdGlvbiImJmEhPW51bGwpdGhyb3cgRXJyb3IoInRha2VzIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMgdG8gdXBkYXRlIG9yIGEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzLiIpO3RoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcyxhLGUsInNldFN0YXRlIil9O3VsLnByb3RvdHlwZS5mb3JjZVVwZGF0ZT1mdW5jdGlvbihhKXt0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMsYSwiZm9yY2VVcGRhdGUiKX07ZnVuY3Rpb24gX24oKXt9X24ucHJvdG90eXBlPXVsLnByb3RvdHlwZTtmdW5jdGlvbiBxZChhLGUsdCl7dGhpcy5wcm9wcz1hLHRoaXMuY29udGV4dD1lLHRoaXMucmVmcz1Hbix0aGlzLnVwZGF0ZXI9dHx8Tm59dmFyIE9kPXFkLnByb3RvdHlwZT1uZXcgX247T2QuY29uc3RydWN0b3I9cWQ7Rm4oT2QsdWwucHJvdG90eXBlKTtPZC5pc1B1cmVSZWFjdENvbXBvbmVudD0hMDt2YXIgVW49QXJyYXkuaXNBcnJheTtmdW5jdGlvbiB3ZCgpe312YXIgSz17SDpudWxsLEE6bnVsbCxUOm51bGwsUzpudWxsfSxQbj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIFVkKGEsZSx0KXt2YXIgbD10LnJlZjtyZXR1cm57JCR0eXBlb2Y6UmQsdHlwZTphLGtleTplLHJlZjpsIT09dm9pZCAwP2w6bnVsbCxwcm9wczp0fX1mdW5jdGlvbiBpaChhLGUpe3JldHVybiBVZChhLnR5cGUsZSxhLnByb3BzKX1mdW5jdGlvbiB6ZChhKXtyZXR1cm4gdHlwZW9mIGE9PSJvYmplY3QiJiZhIT09bnVsbCYmYS4kJHR5cGVvZj09PVJkfWZ1bmN0aW9uIG5oKGEpe3ZhciBlPXsiPSI6Ij0wIiwiOiI6Ij0yIn07cmV0dXJuIiQiK2EucmVwbGFjZSgvWz06XS9nLGZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfSl9dmFyIHpuPS9cLysvZztmdW5jdGlvbiBrZChhLGUpe3JldHVybiB0eXBlb2YgYT09Im9iamVjdCImJmEhPT1udWxsJiZhLmtleSE9bnVsbD9uaCgiIithLmtleSk6ZS50b1N0cmluZygzNil9ZnVuY3Rpb24gcmgoYSl7c3dpdGNoKGEuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIGEudmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgYS5yZWFzb247ZGVmYXVsdDpzd2l0Y2godHlwZW9mIGEuc3RhdHVzPT0ic3RyaW5nIj9hLnRoZW4od2Qsd2QpOihhLnN0YXR1cz0icGVuZGluZyIsYS50aGVuKGZ1bmN0aW9uKGUpe2Euc3RhdHVzPT09InBlbmRpbmciJiYoYS5zdGF0dXM9ImZ1bGZpbGxlZCIsYS52YWx1ZT1lKX0sZnVuY3Rpb24oZSl7YS5zdGF0dXM9PT0icGVuZGluZyImJihhLnN0YXR1cz0icmVqZWN0ZWQiLGEucmVhc29uPWUpfSkpLGEuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIGEudmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgYS5yZWFzb259fXRocm93IGF9ZnVuY3Rpb24gbGwoYSxlLHQsbCx1KXt2YXIgZj10eXBlb2YgYTsoZj09PSJ1bmRlZmluZWQifHxmPT09ImJvb2xlYW4iKSYmKGE9bnVsbCk7dmFyIG89ITE7aWYoYT09PW51bGwpbz0hMDtlbHNlIHN3aXRjaChmKXtjYXNlImJpZ2ludCI6Y2FzZSJzdHJpbmciOmNhc2UibnVtYmVyIjpvPSEwO2JyZWFrO2Nhc2Uib2JqZWN0Ijpzd2l0Y2goYS4kJHR5cGVvZil7Y2FzZSBSZDpjYXNlIFdMOm89ITA7YnJlYWs7Y2FzZSBIbjpyZXR1cm4gbz1hLl9pbml0LGxsKG8oYS5fcGF5bG9hZCksZSx0LGwsdSl9fWlmKG8pcmV0dXJuIHU9dShhKSxvPWw9PT0iIj8iLiIra2QoYSwwKTpsLFVuKHUpPyh0PSIiLG8hPW51bGwmJih0PW8ucmVwbGFjZSh6biwiJCYvIikrIi8iKSxsbCh1LGUsdCwiIixmdW5jdGlvbihtKXtyZXR1cm4gbX0pKTp1IT1udWxsJiYoemQodSkmJih1PWloKHUsdCsodS5rZXk9PW51bGx8fGEmJmEua2V5PT09dS5rZXk/IiI6KCIiK3Uua2V5KS5yZXBsYWNlKHpuLCIkJi8iKSsiLyIpK28pKSxlLnB1c2godSkpLDE7bz0wO3ZhciBkPWw9PT0iIj8iLiI6bCsiOiI7aWYoVW4oYSkpZm9yKHZhciBpPTA7aTxhLmxlbmd0aDtpKyspbD1hW2ldLGY9ZCtrZChsLGkpLG8rPWxsKGwsZSx0LGYsdSk7ZWxzZSBpZihpPXNoKGEpLHR5cGVvZiBpPT0iZnVuY3Rpb24iKWZvcihhPWkuY2FsbChhKSxpPTA7IShsPWEubmV4dCgpKS5kb25lOylsPWwudmFsdWUsZj1kK2tkKGwsaSsrKSxvKz1sbChsLGUsdCxmLHUpO2Vsc2UgaWYoZj09PSJvYmplY3QiKXtpZih0eXBlb2YgYS50aGVuPT0iZnVuY3Rpb24iKXJldHVybiBsbChyaChhKSxlLHQsbCx1KTt0aHJvdyBlPVN0cmluZyhhKSxFcnJvcigiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiAiKyhlPT09IltvYmplY3QgT2JqZWN0XSI/Im9iamVjdCB3aXRoIGtleXMgeyIrT2JqZWN0LmtleXMoYSkuam9pbigiLCAiKSsifSI6ZSkrIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC4iKX1yZXR1cm4gb31mdW5jdGlvbiBPZihhLGUsdCl7aWYoYT09bnVsbClyZXR1cm4gYTt2YXIgbD1bXSx1PTA7cmV0dXJuIGxsKGEsbCwiIiwiIixmdW5jdGlvbihmKXtyZXR1cm4gZS5jYWxsKHQsZix1KyspfSksbH1mdW5jdGlvbiBjaChhKXtpZihhLl9zdGF0dXM9PT0tMSl7dmFyIGU9YS5fcmVzdWx0O2U9ZSgpLGUudGhlbihmdW5jdGlvbih0KXsoYS5fc3RhdHVzPT09MHx8YS5fc3RhdHVzPT09LTEpJiYoYS5fc3RhdHVzPTEsYS5fcmVzdWx0PXQpfSxmdW5jdGlvbih0KXsoYS5fc3RhdHVzPT09MHx8YS5fc3RhdHVzPT09LTEpJiYoYS5fc3RhdHVzPTIsYS5fcmVzdWx0PXQpfSksYS5fc3RhdHVzPT09LTEmJihhLl9zdGF0dXM9MCxhLl9yZXN1bHQ9ZSl9aWYoYS5fc3RhdHVzPT09MSlyZXR1cm4gYS5fcmVzdWx0LmRlZmF1bHQ7dGhyb3cgYS5fcmVzdWx0fXZhciBFbj10eXBlb2YgcmVwb3J0RXJyb3I9PSJmdW5jdGlvbiI/cmVwb3J0RXJyb3I6ZnVuY3Rpb24oYSl7aWYodHlwZW9mIHdpbmRvdz09Im9iamVjdCImJnR5cGVvZiB3aW5kb3cuRXJyb3JFdmVudD09ImZ1bmN0aW9uIil7dmFyIGU9bmV3IHdpbmRvdy5FcnJvckV2ZW50KCJlcnJvciIse2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCxtZXNzYWdlOnR5cGVvZiBhPT0ib2JqZWN0IiYmYSE9PW51bGwmJnR5cGVvZiBhLm1lc3NhZ2U9PSJzdHJpbmciP1N0cmluZyhhLm1lc3NhZ2UpOlN0cmluZyhhKSxlcnJvcjphfSk7aWYoIXdpbmRvdy5kaXNwYXRjaEV2ZW50KGUpKXJldHVybn1lbHNlIGlmKHR5cGVvZiBwcm9jZXNzPT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MuZW1pdD09ImZ1bmN0aW9uIil7cHJvY2Vzcy5lbWl0KCJ1bmNhdWdodEV4Y2VwdGlvbiIsYSk7cmV0dXJufWNvbnNvbGUuZXJyb3IoYSl9LG1oPXttYXA6T2YsZm9yRWFjaDpmdW5jdGlvbihhLGUsdCl7T2YoYSxmdW5jdGlvbigpe2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfSx0KX0sY291bnQ6ZnVuY3Rpb24oYSl7dmFyIGU9MDtyZXR1cm4gT2YoYSxmdW5jdGlvbigpe2UrK30pLGV9LHRvQXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIE9mKGEsZnVuY3Rpb24oZSl7cmV0dXJuIGV9KXx8W119LG9ubHk6ZnVuY3Rpb24oYSl7aWYoIXpkKGEpKXRocm93IEVycm9yKCJSZWFjdC5DaGlsZHJlbi5vbmx5IGV4cGVjdGVkIHRvIHJlY2VpdmUgYSBzaW5nbGUgUmVhY3QgZWxlbWVudCBjaGlsZC4iKTtyZXR1cm4gYX19O3cuQWN0aXZpdHk9ZGg7dy5DaGlsZHJlbj1taDt3LkNvbXBvbmVudD11bDt3LkZyYWdtZW50PSRMO3cuUHJvZmlsZXI9ZWg7dy5QdXJlQ29tcG9uZW50PXFkO3cuU3RyaWN0TW9kZT1haDt3LlN1c3BlbnNlPWZoO3cuX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFPUs7dy5fX0NPTVBJTEVSX1JVTlRJTUU9e19fcHJvdG9fXzpudWxsLGM6ZnVuY3Rpb24oYSl7cmV0dXJuIEsuSC51c2VNZW1vQ2FjaGUoYSl9fTt3LmNhY2hlPWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KG51bGwsYXJndW1lbnRzKX19O3cuY2FjaGVTaWduYWw9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07dy5jbG9uZUVsZW1lbnQ9ZnVuY3Rpb24oYSxlLHQpe2lmKGE9PW51bGwpdGhyb3cgRXJyb3IoIlRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgIithKyIuIik7dmFyIGw9Rm4oe30sYS5wcm9wcyksdT1hLmtleTtpZihlIT1udWxsKWZvcihmIGluIGUua2V5IT09dm9pZCAwJiYodT0iIitlLmtleSksZSkhUG4uY2FsbChlLGYpfHxmPT09ImtleSJ8fGY9PT0iX19zZWxmInx8Zj09PSJfX3NvdXJjZSJ8fGY9PT0icmVmIiYmZS5yZWY9PT12b2lkIDB8fChsW2ZdPWVbZl0pO3ZhciBmPWFyZ3VtZW50cy5sZW5ndGgtMjtpZihmPT09MSlsLmNoaWxkcmVuPXQ7ZWxzZSBpZigxPGYpe2Zvcih2YXIgbz1BcnJheShmKSxkPTA7ZDxmO2QrKylvW2RdPWFyZ3VtZW50c1tkKzJdO2wuY2hpbGRyZW49b31yZXR1cm4gVWQoYS50eXBlLHUsbCl9O3cuY3JlYXRlQ29udGV4dD1mdW5jdGlvbihhKXtyZXR1cm4gYT17JCR0eXBlb2Y6bGgsX2N1cnJlbnRWYWx1ZTphLF9jdXJyZW50VmFsdWUyOmEsX3RocmVhZENvdW50OjAsUHJvdmlkZXI6bnVsbCxDb25zdW1lcjpudWxsfSxhLlByb3ZpZGVyPWEsYS5Db25zdW1lcj17JCR0eXBlb2Y6dGgsX2NvbnRleHQ6YX0sYX07dy5jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKGEsZSx0KXt2YXIgbCx1PXt9LGY9bnVsbDtpZihlIT1udWxsKWZvcihsIGluIGUua2V5IT09dm9pZCAwJiYoZj0iIitlLmtleSksZSlQbi5jYWxsKGUsbCkmJmwhPT0ia2V5IiYmbCE9PSJfX3NlbGYiJiZsIT09Il9fc291cmNlIiYmKHVbbF09ZVtsXSk7dmFyIG89YXJndW1lbnRzLmxlbmd0aC0yO2lmKG89PT0xKXUuY2hpbGRyZW49dDtlbHNlIGlmKDE8byl7Zm9yKHZhciBkPUFycmF5KG8pLGk9MDtpPG87aSsrKWRbaV09YXJndW1lbnRzW2krMl07dS5jaGlsZHJlbj1kfWlmKGEmJmEuZGVmYXVsdFByb3BzKWZvcihsIGluIG89YS5kZWZhdWx0UHJvcHMsbyl1W2xdPT09dm9pZCAwJiYodVtsXT1vW2xdKTtyZXR1cm4gVWQoYSxmLHUpfTt3LmNyZWF0ZVJlZj1mdW5jdGlvbigpe3JldHVybntjdXJyZW50Om51bGx9fTt3LmZvcndhcmRSZWY9ZnVuY3Rpb24oYSl7cmV0dXJueyQkdHlwZW9mOnVoLHJlbmRlcjphfX07dy5pc1ZhbGlkRWxlbWVudD16ZDt3Lmxhenk9ZnVuY3Rpb24oYSl7cmV0dXJueyQkdHlwZW9mOkhuLF9wYXlsb2FkOntfc3RhdHVzOi0xLF9yZXN1bHQ6YX0sX2luaXQ6Y2h9fTt3Lm1lbW89ZnVuY3Rpb24oYSxlKXtyZXR1cm57JCR0eXBlb2Y6b2gsdHlwZTphLGNvbXBhcmU6ZT09PXZvaWQgMD9udWxsOmV9fTt3LnN0YXJ0VHJhbnNpdGlvbj1mdW5jdGlvbihhKXt2YXIgZT1LLlQsdD17fTtLLlQ9dDt0cnl7dmFyIGw9YSgpLHU9Sy5TO3UhPT1udWxsJiZ1KHQsbCksdHlwZW9mIGw9PSJvYmplY3QiJiZsIT09bnVsbCYmdHlwZW9mIGwudGhlbj09ImZ1bmN0aW9uIiYmbC50aGVuKHdkLEVuKX1jYXRjaChmKXtFbihmKX1maW5hbGx5e2UhPT1udWxsJiZ0LnR5cGVzIT09bnVsbCYmKGUudHlwZXM9dC50eXBlcyksSy5UPWV9fTt3LnVuc3RhYmxlX3VzZUNhY2hlUmVmcmVzaD1mdW5jdGlvbigpe3JldHVybiBLLkgudXNlQ2FjaGVSZWZyZXNoKCl9O3cudXNlPWZ1bmN0aW9uKGEpe3JldHVybiBLLkgudXNlKGEpfTt3LnVzZUFjdGlvblN0YXRlPWZ1bmN0aW9uKGEsZSx0KXtyZXR1cm4gSy5ILnVzZUFjdGlvblN0YXRlKGEsZSx0KX07dy51c2VDYWxsYmFjaz1mdW5jdGlvbihhLGUpe3JldHVybiBLLkgudXNlQ2FsbGJhY2soYSxlKX07dy51c2VDb250ZXh0PWZ1bmN0aW9uKGEpe3JldHVybiBLLkgudXNlQ29udGV4dChhKX07dy51c2VEZWJ1Z1ZhbHVlPWZ1bmN0aW9uKCl7fTt3LnVzZURlZmVycmVkVmFsdWU9ZnVuY3Rpb24oYSxlKXtyZXR1cm4gSy5ILnVzZURlZmVycmVkVmFsdWUoYSxlKX07dy51c2VFZmZlY3Q9ZnVuY3Rpb24oYSxlKXtyZXR1cm4gSy5ILnVzZUVmZmVjdChhLGUpfTt3LnVzZUVmZmVjdEV2ZW50PWZ1bmN0aW9uKGEpe3JldHVybiBLLkgudXNlRWZmZWN0RXZlbnQoYSl9O3cudXNlSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gSy5ILnVzZUlkKCl9O3cudXNlSW1wZXJhdGl2ZUhhbmRsZT1mdW5jdGlvbihhLGUsdCl7cmV0dXJuIEsuSC51c2VJbXBlcmF0aXZlSGFuZGxlKGEsZSx0KX07dy51c2VJbnNlcnRpb25FZmZlY3Q9ZnVuY3Rpb24oYSxlKXtyZXR1cm4gSy5ILnVzZUluc2VydGlvbkVmZmVjdChhLGUpfTt3LnVzZUxheW91dEVmZmVjdD1mdW5jdGlvbihhLGUpe3JldHVybiBLLkgudXNlTGF5b3V0RWZmZWN0KGEsZSl9O3cudXNlTWVtbz1mdW5jdGlvbihhLGUpe3JldHVybiBLLkgudXNlTWVtbyhhLGUpfTt3LnVzZU9wdGltaXN0aWM9ZnVuY3Rpb24oYSxlKXtyZXR1cm4gSy5ILnVzZU9wdGltaXN0aWMoYSxlKX07dy51c2VSZWR1Y2VyPWZ1bmN0aW9uKGEsZSx0KXtyZXR1cm4gSy5ILnVzZVJlZHVjZXIoYSxlLHQpfTt3LnVzZVJlZj1mdW5jdGlvbihhKXtyZXR1cm4gSy5ILnVzZVJlZihhKX07dy51c2VTdGF0ZT1mdW5jdGlvbihhKXtyZXR1cm4gSy5ILnVzZVN0YXRlKGEpfTt3LnVzZVN5bmNFeHRlcm5hbFN0b3JlPWZ1bmN0aW9uKGEsZSx0KXtyZXR1cm4gSy5ILnVzZVN5bmNFeHRlcm5hbFN0b3JlKGEsZSx0KX07dy51c2VUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIEsuSC51c2VUcmFuc2l0aW9uKCl9O3cudmVyc2lvbj0iMTkuMi42In0pO3ZhciBKZT1tZSgoaGcsVm4pPT57InVzZSBzdHJpY3QiO1ZuLmV4cG9ydHM9WG4oKX0pO3ZhciBlcj1tZShhYT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBGZChhLGUpe3ZhciB0PWEubGVuZ3RoO2EucHVzaChlKTthOmZvcig7MDx0Oyl7dmFyIGw9dC0xPj4+MSx1PWFbbF07aWYoMDxVZih1LGUpKWFbbF09ZSxhW3RdPXUsdD1sO2Vsc2UgYnJlYWsgYX19ZnVuY3Rpb24gTGUoYSl7cmV0dXJuIGEubGVuZ3RoPT09MD9udWxsOmFbMF19ZnVuY3Rpb24gRWYoYSl7aWYoYS5sZW5ndGg9PT0wKXJldHVybiBudWxsO3ZhciBlPWFbMF0sdD1hLnBvcCgpO2lmKHQhPT1lKXthWzBdPXQ7YTpmb3IodmFyIGw9MCx1PWEubGVuZ3RoLGY9dT4+PjE7bDxmOyl7dmFyIG89MioobCsxKS0xLGQ9YVtvXSxpPW8rMSxtPWFbaV07aWYoMD5VZihkLHQpKWk8dSYmMD5VZihtLGQpPyhhW2xdPW0sYVtpXT10LGw9aSk6KGFbbF09ZCxhW29dPXQsbD1vKTtlbHNlIGlmKGk8dSYmMD5VZihtLHQpKWFbbF09bSxhW2ldPXQsbD1pO2Vsc2UgYnJlYWsgYX19cmV0dXJuIGV9ZnVuY3Rpb24gVWYoYSxlKXt2YXIgdD1hLnNvcnRJbmRleC1lLnNvcnRJbmRleDtyZXR1cm4gdCE9PTA/dDphLmlkLWUuaWR9YWEudW5zdGFibGVfbm93PXZvaWQgMDt0eXBlb2YgcGVyZm9ybWFuY2U9PSJvYmplY3QiJiZ0eXBlb2YgcGVyZm9ybWFuY2Uubm93PT0iZnVuY3Rpb24iPyhabj1wZXJmb3JtYW5jZSxhYS51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gWm4ubm93KCl9KTooRWQ9RGF0ZSxRbj1FZC5ub3coKSxhYS51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gRWQubm93KCktUW59KTt2YXIgWm4sRWQsUW4sTWU9W10sV2U9W10scGg9MSxKYT1udWxsLEFhPTMsR2Q9ITEsaXU9ITEsbnU9ITEsX2Q9ITEsS249dHlwZW9mIHNldFRpbWVvdXQ9PSJmdW5jdGlvbiI/c2V0VGltZW91dDpudWxsLEpuPXR5cGVvZiBjbGVhclRpbWVvdXQ9PSJmdW5jdGlvbiI/Y2xlYXJUaW1lb3V0Om51bGwsWW49dHlwZW9mIHNldEltbWVkaWF0ZTwidSI/c2V0SW1tZWRpYXRlOm51bGw7ZnVuY3Rpb24gemYoYSl7Zm9yKHZhciBlPUxlKFdlKTtlIT09bnVsbDspe2lmKGUuY2FsbGJhY2s9PT1udWxsKUVmKFdlKTtlbHNlIGlmKGUuc3RhcnRUaW1lPD1hKUVmKFdlKSxlLnNvcnRJbmRleD1lLmV4cGlyYXRpb25UaW1lLEZkKE1lLGUpO2Vsc2UgYnJlYWs7ZT1MZShXZSl9fWZ1bmN0aW9uIFBkKGEpe2lmKG51PSExLHpmKGEpLCFpdSlpZihMZShNZSkhPT1udWxsKWl1PSEwLG9sfHwob2w9ITAsZmwoKSk7ZWxzZXt2YXIgZT1MZShXZSk7ZSE9PW51bGwmJlhkKFBkLGUuc3RhcnRUaW1lLWEpfX12YXIgb2w9ITEscnU9LTEsV249NSwkbj0tMTtmdW5jdGlvbiBhcigpe3JldHVybiBfZD8hMDohKGFhLnVuc3RhYmxlX25vdygpLSRuPFduKX1mdW5jdGlvbiBIZCgpe2lmKF9kPSExLG9sKXt2YXIgYT1hYS51bnN0YWJsZV9ub3coKTskbj1hO3ZhciBlPSEwO3RyeXthOntpdT0hMSxudSYmKG51PSExLEpuKHJ1KSxydT0tMSksR2Q9ITA7dmFyIHQ9QWE7dHJ5e2U6e2Zvcih6ZihhKSxKYT1MZShNZSk7SmEhPT1udWxsJiYhKEphLmV4cGlyYXRpb25UaW1lPmEmJmFyKCkpOyl7dmFyIGw9SmEuY2FsbGJhY2s7aWYodHlwZW9mIGw9PSJmdW5jdGlvbiIpe0phLmNhbGxiYWNrPW51bGwsQWE9SmEucHJpb3JpdHlMZXZlbDt2YXIgdT1sKEphLmV4cGlyYXRpb25UaW1lPD1hKTtpZihhPWFhLnVuc3RhYmxlX25vdygpLHR5cGVvZiB1PT0iZnVuY3Rpb24iKXtKYS5jYWxsYmFjaz11LHpmKGEpLGU9ITA7YnJlYWsgZX1KYT09PUxlKE1lKSYmRWYoTWUpLHpmKGEpfWVsc2UgRWYoTWUpO0phPUxlKE1lKX1pZihKYSE9PW51bGwpZT0hMDtlbHNle3ZhciBmPUxlKFdlKTtmIT09bnVsbCYmWGQoUGQsZi5zdGFydFRpbWUtYSksZT0hMX19YnJlYWsgYX1maW5hbGx5e0phPW51bGwsQWE9dCxHZD0hMX1lPXZvaWQgMH19ZmluYWxseXtlP2ZsKCk6b2w9ITF9fX12YXIgZmw7dHlwZW9mIFluPT0iZnVuY3Rpb24iP2ZsPWZ1bmN0aW9uKCl7WW4oSGQpfTp0eXBlb2YgTWVzc2FnZUNoYW5uZWw8InUiPyhOZD1uZXcgTWVzc2FnZUNoYW5uZWwsam49TmQucG9ydDIsTmQucG9ydDEub25tZXNzYWdlPUhkLGZsPWZ1bmN0aW9uKCl7am4ucG9zdE1lc3NhZ2UobnVsbCl9KTpmbD1mdW5jdGlvbigpe0tuKEhkLDApfTt2YXIgTmQsam47ZnVuY3Rpb24gWGQoYSxlKXtydT1LbihmdW5jdGlvbigpe2EoYWEudW5zdGFibGVfbm93KCkpfSxlKX1hYS51bnN0YWJsZV9JZGxlUHJpb3JpdHk9NTthYS51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eT0xO2FhLnVuc3RhYmxlX0xvd1ByaW9yaXR5PTQ7YWEudW5zdGFibGVfTm9ybWFsUHJpb3JpdHk9MzthYS51bnN0YWJsZV9Qcm9maWxpbmc9bnVsbDthYS51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eT0yO2FhLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrPWZ1bmN0aW9uKGEpe2EuY2FsbGJhY2s9bnVsbH07YWEudW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24oYSl7MD5hfHwxMjU8YT9jb25zb2xlLmVycm9yKCJmb3JjZUZyYW1lUmF0ZSB0YWtlcyBhIHBvc2l0aXZlIGludCBiZXR3ZWVuIDAgYW5kIDEyNSwgZm9yY2luZyBmcmFtZSByYXRlcyBoaWdoZXIgdGhhbiAxMjUgZnBzIGlzIG5vdCBzdXBwb3J0ZWQiKTpXbj0wPGE/TWF0aC5mbG9vcigxZTMvYSk6NX07YWEudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4gQWF9O2FhLnVuc3RhYmxlX25leHQ9ZnVuY3Rpb24oYSl7c3dpdGNoKEFhKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzp2YXIgZT0zO2JyZWFrO2RlZmF1bHQ6ZT1BYX12YXIgdD1BYTtBYT1lO3RyeXtyZXR1cm4gYSgpfWZpbmFsbHl7QWE9dH19O2FhLnVuc3RhYmxlX3JlcXVlc3RQYWludD1mdW5jdGlvbigpe19kPSEwfTthYS51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHk9ZnVuY3Rpb24oYSxlKXtzd2l0Y2goYSl7Y2FzZSAxOmNhc2UgMjpjYXNlIDM6Y2FzZSA0OmNhc2UgNTpicmVhaztkZWZhdWx0OmE9M312YXIgdD1BYTtBYT1hO3RyeXtyZXR1cm4gZSgpfWZpbmFsbHl7QWE9dH19O2FhLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2s9ZnVuY3Rpb24oYSxlLHQpe3ZhciBsPWFhLnVuc3RhYmxlX25vdygpO3N3aXRjaCh0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsPyh0PXQuZGVsYXksdD10eXBlb2YgdD09Im51bWJlciImJjA8dD9sK3Q6bCk6dD1sLGEpe2Nhc2UgMTp2YXIgdT0tMTticmVhaztjYXNlIDI6dT0yNTA7YnJlYWs7Y2FzZSA1OnU9MTA3Mzc0MTgyMzticmVhaztjYXNlIDQ6dT0xZTQ7YnJlYWs7ZGVmYXVsdDp1PTVlM31yZXR1cm4gdT10K3UsYT17aWQ6cGgrKyxjYWxsYmFjazplLHByaW9yaXR5TGV2ZWw6YSxzdGFydFRpbWU6dCxleHBpcmF0aW9uVGltZTp1LHNvcnRJbmRleDotMX0sdD5sPyhhLnNvcnRJbmRleD10LEZkKFdlLGEpLExlKE1lKT09PW51bGwmJmE9PT1MZShXZSkmJihudT8oSm4ocnUpLHJ1PS0xKTpudT0hMCxYZChQZCx0LWwpKSk6KGEuc29ydEluZGV4PXUsRmQoTWUsYSksaXV8fEdkfHwoaXU9ITAsb2x8fChvbD0hMCxmbCgpKSkpLGF9O2FhLnVuc3RhYmxlX3Nob3VsZFlpZWxkPWFyO2FhLnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbihhKXt2YXIgZT1BYTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD1BYTtBYT1lO3RyeXtyZXR1cm4gYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXtBYT10fX19fSk7dmFyIGxyPW1lKChTZyx0cik9PnsidXNlIHN0cmljdCI7dHIuZXhwb3J0cz1lcigpfSk7dmFyIGZyPW1lKFRhPT57InVzZSBzdHJpY3QiO3ZhciBMaD1KZSgpO2Z1bmN0aW9uIHVyKGEpe3ZhciBlPSJodHRwczovL3JlYWN0LmRldi9lcnJvcnMvIithO2lmKDE8YXJndW1lbnRzLmxlbmd0aCl7ZSs9Ij9hcmdzW109IitlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzWzFdKTtmb3IodmFyIHQ9Mjt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWUrPSImYXJnc1tdPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1t0XSl9cmV0dXJuIk1pbmlmaWVkIFJlYWN0IGVycm9yICMiK2ErIjsgdmlzaXQgIitlKyIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycyBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLiJ9ZnVuY3Rpb24gJGUoKXt9dmFyIERhPXtkOntmOiRlLHI6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcih1cig1MjIpKX0sRDokZSxDOiRlLEw6JGUsbTokZSxYOiRlLFM6JGUsTTokZX0scDowLGZpbmRET01Ob2RlOm51bGx9LGhoPVN5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIpO2Z1bmN0aW9uIHhoKGEsZSx0KXt2YXIgbD0zPGFyZ3VtZW50cy5sZW5ndGgmJmFyZ3VtZW50c1szXSE9PXZvaWQgMD9hcmd1bWVudHNbM106bnVsbDtyZXR1cm57JCR0eXBlb2Y6aGgsa2V5Omw9PW51bGw/bnVsbDoiIitsLGNoaWxkcmVuOmEsY29udGFpbmVySW5mbzplLGltcGxlbWVudGF0aW9uOnR9fXZhciBjdT1MaC5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREU7ZnVuY3Rpb24gSGYoYSxlKXtpZihhPT09ImZvbnQiKXJldHVybiIiO2lmKHR5cGVvZiBlPT0ic3RyaW5nIilyZXR1cm4gZT09PSJ1c2UtY3JlZGVudGlhbHMiP2U6IiJ9VGEuX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFPURhO1RhLmNyZWF0ZVBvcnRhbD1mdW5jdGlvbihhLGUpe3ZhciB0PTI8YXJndW1lbnRzLmxlbmd0aCYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTpudWxsO2lmKCFlfHxlLm5vZGVUeXBlIT09MSYmZS5ub2RlVHlwZSE9PTkmJmUubm9kZVR5cGUhPT0xMSl0aHJvdyBFcnJvcih1cigyOTkpKTtyZXR1cm4geGgoYSxlLG51bGwsdCl9O1RhLmZsdXNoU3luYz1mdW5jdGlvbihhKXt2YXIgZT1jdS5ULHQ9RGEucDt0cnl7aWYoY3UuVD1udWxsLERhLnA9MixhKXJldHVybiBhKCl9ZmluYWxseXtjdS5UPWUsRGEucD10LERhLmQuZigpfX07VGEucHJlY29ubmVjdD1mdW5jdGlvbihhLGUpe3R5cGVvZiBhPT0ic3RyaW5nIiYmKGU/KGU9ZS5jcm9zc09yaWdpbixlPXR5cGVvZiBlPT0ic3RyaW5nIj9lPT09InVzZS1jcmVkZW50aWFscyI/ZToiIjp2b2lkIDApOmU9bnVsbCxEYS5kLkMoYSxlKSl9O1RhLnByZWZldGNoRE5TPWZ1bmN0aW9uKGEpe3R5cGVvZiBhPT0ic3RyaW5nIiYmRGEuZC5EKGEpfTtUYS5wcmVpbml0PWZ1bmN0aW9uKGEsZSl7aWYodHlwZW9mIGE9PSJzdHJpbmciJiZlJiZ0eXBlb2YgZS5hcz09InN0cmluZyIpe3ZhciB0PWUuYXMsbD1IZih0LGUuY3Jvc3NPcmlnaW4pLHU9dHlwZW9mIGUuaW50ZWdyaXR5PT0ic3RyaW5nIj9lLmludGVncml0eTp2b2lkIDAsZj10eXBlb2YgZS5mZXRjaFByaW9yaXR5PT0ic3RyaW5nIj9lLmZldGNoUHJpb3JpdHk6dm9pZCAwO3Q9PT0ic3R5bGUiP0RhLmQuUyhhLHR5cGVvZiBlLnByZWNlZGVuY2U9PSJzdHJpbmciP2UucHJlY2VkZW5jZTp2b2lkIDAse2Nyb3NzT3JpZ2luOmwsaW50ZWdyaXR5OnUsZmV0Y2hQcmlvcml0eTpmfSk6dD09PSJzY3JpcHQiJiZEYS5kLlgoYSx7Y3Jvc3NPcmlnaW46bCxpbnRlZ3JpdHk6dSxmZXRjaFByaW9yaXR5OmYsbm9uY2U6dHlwZW9mIGUubm9uY2U9PSJzdHJpbmciP2Uubm9uY2U6dm9pZCAwfSl9fTtUYS5wcmVpbml0TW9kdWxlPWZ1bmN0aW9uKGEsZSl7aWYodHlwZW9mIGE9PSJzdHJpbmciKWlmKHR5cGVvZiBlPT0ib2JqZWN0IiYmZSE9PW51bGwpe2lmKGUuYXM9PW51bGx8fGUuYXM9PT0ic2NyaXB0Iil7dmFyIHQ9SGYoZS5hcyxlLmNyb3NzT3JpZ2luKTtEYS5kLk0oYSx7Y3Jvc3NPcmlnaW46dCxpbnRlZ3JpdHk6dHlwZW9mIGUuaW50ZWdyaXR5PT0ic3RyaW5nIj9lLmludGVncml0eTp2b2lkIDAsbm9uY2U6dHlwZW9mIGUubm9uY2U9PSJzdHJpbmciP2Uubm9uY2U6dm9pZCAwfSl9fWVsc2UgZT09bnVsbCYmRGEuZC5NKGEpfTtUYS5wcmVsb2FkPWZ1bmN0aW9uKGEsZSl7aWYodHlwZW9mIGE9PSJzdHJpbmciJiZ0eXBlb2YgZT09Im9iamVjdCImJmUhPT1udWxsJiZ0eXBlb2YgZS5hcz09InN0cmluZyIpe3ZhciB0PWUuYXMsbD1IZih0LGUuY3Jvc3NPcmlnaW4pO0RhLmQuTChhLHQse2Nyb3NzT3JpZ2luOmwsaW50ZWdyaXR5OnR5cGVvZiBlLmludGVncml0eT09InN0cmluZyI/ZS5pbnRlZ3JpdHk6dm9pZCAwLG5vbmNlOnR5cGVvZiBlLm5vbmNlPT0ic3RyaW5nIj9lLm5vbmNlOnZvaWQgMCx0eXBlOnR5cGVvZiBlLnR5cGU9PSJzdHJpbmciP2UudHlwZTp2b2lkIDAsZmV0Y2hQcmlvcml0eTp0eXBlb2YgZS5mZXRjaFByaW9yaXR5PT0ic3RyaW5nIj9lLmZldGNoUHJpb3JpdHk6dm9pZCAwLHJlZmVycmVyUG9saWN5OnR5cGVvZiBlLnJlZmVycmVyUG9saWN5PT0ic3RyaW5nIj9lLnJlZmVycmVyUG9saWN5OnZvaWQgMCxpbWFnZVNyY1NldDp0eXBlb2YgZS5pbWFnZVNyY1NldD09InN0cmluZyI/ZS5pbWFnZVNyY1NldDp2b2lkIDAsaW1hZ2VTaXplczp0eXBlb2YgZS5pbWFnZVNpemVzPT0ic3RyaW5nIj9lLmltYWdlU2l6ZXM6dm9pZCAwLG1lZGlhOnR5cGVvZiBlLm1lZGlhPT0ic3RyaW5nIj9lLm1lZGlhOnZvaWQgMH0pfX07VGEucHJlbG9hZE1vZHVsZT1mdW5jdGlvbihhLGUpe2lmKHR5cGVvZiBhPT0ic3RyaW5nIilpZihlKXt2YXIgdD1IZihlLmFzLGUuY3Jvc3NPcmlnaW4pO0RhLmQubShhLHthczp0eXBlb2YgZS5hcz09InN0cmluZyImJmUuYXMhPT0ic2NyaXB0Ij9lLmFzOnZvaWQgMCxjcm9zc09yaWdpbjp0LGludGVncml0eTp0eXBlb2YgZS5pbnRlZ3JpdHk9PSJzdHJpbmciP2UuaW50ZWdyaXR5OnZvaWQgMH0pfWVsc2UgRGEuZC5tKGEpfTtUYS5yZXF1ZXN0Rm9ybVJlc2V0PWZ1bmN0aW9uKGEpe0RhLmQucihhKX07VGEudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXM9ZnVuY3Rpb24oYSxlKXtyZXR1cm4gYShlKX07VGEudXNlRm9ybVN0YXRlPWZ1bmN0aW9uKGEsZSx0KXtyZXR1cm4gY3UuSC51c2VGb3JtU3RhdGUoYSxlLHQpfTtUYS51c2VGb3JtU3RhdHVzPWZ1bmN0aW9uKCl7cmV0dXJuIGN1LkgudXNlSG9zdFRyYW5zaXRpb25TdGF0dXMoKX07VGEudmVyc2lvbj0iMTkuMi42In0pO3ZhciBzcj1tZSgoQ2csZHIpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG9yKCl7aWYoISh0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fPiJ1Inx8dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSE9ImZ1bmN0aW9uIikpdHJ5e19fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShvcil9Y2F0Y2goYSl7Y29uc29sZS5lcnJvcihhKX19b3IoKSxkci5leHBvcnRzPWZyKCl9KTt2YXIgQ0w9bWUobmQ9PnsidXNlIHN0cmljdCI7dmFyIHBhPWxyKCksT2M9SmUoKSxTaD1zcigpO2Z1bmN0aW9uIEMoYSl7dmFyIGU9Imh0dHBzOi8vcmVhY3QuZGV2L2Vycm9ycy8iK2E7aWYoMTxhcmd1bWVudHMubGVuZ3RoKXtlKz0iP2FyZ3NbXT0iK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbMV0pO2Zvcih2YXIgdD0yO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZSs9IiZhcmdzW109IitlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzW3RdKX1yZXR1cm4iTWluaWZpZWQgUmVhY3QgZXJyb3IgIyIrYSsiOyB2aXNpdCAiK2UrIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuIn1mdW5jdGlvbiBVYyhhKXtyZXR1cm4hKCFhfHxhLm5vZGVUeXBlIT09MSYmYS5ub2RlVHlwZSE9PTkmJmEubm9kZVR5cGUhPT0xMSl9ZnVuY3Rpb24gV3UoYSl7dmFyIGU9YSx0PWE7aWYoYS5hbHRlcm5hdGUpZm9yKDtlLnJldHVybjspZT1lLnJldHVybjtlbHNle2E9ZTtkbyBlPWEsKGUuZmxhZ3MmNDA5OCkhPT0wJiYodD1lLnJldHVybiksYT1lLnJldHVybjt3aGlsZShhKX1yZXR1cm4gZS50YWc9PT0zP3Q6bnVsbH1mdW5jdGlvbiB6YyhhKXtpZihhLnRhZz09PTEzKXt2YXIgZT1hLm1lbW9pemVkU3RhdGU7aWYoZT09PW51bGwmJihhPWEuYWx0ZXJuYXRlLGEhPT1udWxsJiYoZT1hLm1lbW9pemVkU3RhdGUpKSxlIT09bnVsbClyZXR1cm4gZS5kZWh5ZHJhdGVkfXJldHVybiBudWxsfWZ1bmN0aW9uIEVjKGEpe2lmKGEudGFnPT09MzEpe3ZhciBlPWEubWVtb2l6ZWRTdGF0ZTtpZihlPT09bnVsbCYmKGE9YS5hbHRlcm5hdGUsYSE9PW51bGwmJihlPWEubWVtb2l6ZWRTdGF0ZSkpLGUhPT1udWxsKXJldHVybiBlLmRlaHlkcmF0ZWR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gaXIoYSl7aWYoV3UoYSkhPT1hKXRocm93IEVycm9yKEMoMTg4KSl9ZnVuY3Rpb24gZ2goYSl7dmFyIGU9YS5hbHRlcm5hdGU7aWYoIWUpe2lmKGU9V3UoYSksZT09PW51bGwpdGhyb3cgRXJyb3IoQygxODgpKTtyZXR1cm4gZSE9PWE/bnVsbDphfWZvcih2YXIgdD1hLGw9ZTs7KXt2YXIgdT10LnJldHVybjtpZih1PT09bnVsbClicmVhazt2YXIgZj11LmFsdGVybmF0ZTtpZihmPT09bnVsbCl7aWYobD11LnJldHVybixsIT09bnVsbCl7dD1sO2NvbnRpbnVlfWJyZWFrfWlmKHUuY2hpbGQ9PT1mLmNoaWxkKXtmb3IoZj11LmNoaWxkO2Y7KXtpZihmPT09dClyZXR1cm4gaXIodSksYTtpZihmPT09bClyZXR1cm4gaXIodSksZTtmPWYuc2libGluZ310aHJvdyBFcnJvcihDKDE4OCkpfWlmKHQucmV0dXJuIT09bC5yZXR1cm4pdD11LGw9ZjtlbHNle2Zvcih2YXIgbz0hMSxkPXUuY2hpbGQ7ZDspe2lmKGQ9PT10KXtvPSEwLHQ9dSxsPWY7YnJlYWt9aWYoZD09PWwpe289ITAsbD11LHQ9ZjticmVha31kPWQuc2libGluZ31pZighbyl7Zm9yKGQ9Zi5jaGlsZDtkOyl7aWYoZD09PXQpe289ITAsdD1mLGw9dTticmVha31pZihkPT09bCl7bz0hMCxsPWYsdD11O2JyZWFrfWQ9ZC5zaWJsaW5nfWlmKCFvKXRocm93IEVycm9yKEMoMTg5KSl9fWlmKHQuYWx0ZXJuYXRlIT09bCl0aHJvdyBFcnJvcihDKDE5MCkpfWlmKHQudGFnIT09Myl0aHJvdyBFcnJvcihDKDE4OCkpO3JldHVybiB0LnN0YXRlTm9kZS5jdXJyZW50PT09dD9hOmV9ZnVuY3Rpb24gSGMoYSl7dmFyIGU9YS50YWc7aWYoZT09PTV8fGU9PT0yNnx8ZT09PTI3fHxlPT09NilyZXR1cm4gYTtmb3IoYT1hLmNoaWxkO2EhPT1udWxsOyl7aWYoZT1IYyhhKSxlIT09bnVsbClyZXR1cm4gZTthPWEuc2libGluZ31yZXR1cm4gbnVsbH12YXIgJD1PYmplY3QuYXNzaWduLENoPVN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSxOZj1TeW1ib2wuZm9yKCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudCIpLEN1PVN5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIpLGNsPVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50IiksTmM9U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSxBcz1TeW1ib2wuZm9yKCJyZWFjdC5wcm9maWxlciIpLEZjPVN5bWJvbC5mb3IoInJlYWN0LmNvbnN1bWVyIiksT2U9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLGdpPVN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIiksYnM9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSxNcz1TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZV9saXN0IiksQ2k9U3ltYm9sLmZvcigicmVhY3QubWVtbyIpLGF0PVN5bWJvbC5mb3IoInJlYWN0LmxhenkiKSxEcz1TeW1ib2wuZm9yKCJyZWFjdC5hY3Rpdml0eSIpLEloPVN5bWJvbC5mb3IoInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWwiKSxucj1TeW1ib2wuaXRlcmF0b3I7ZnVuY3Rpb24gbXUoYSl7cmV0dXJuIGE9PT1udWxsfHx0eXBlb2YgYSE9Im9iamVjdCI/bnVsbDooYT1uciYmYVtucl18fGFbIkBAaXRlcmF0b3IiXSx0eXBlb2YgYT09ImZ1bmN0aW9uIj9hOm51bGwpfXZhciB5aD1TeW1ib2wuZm9yKCJyZWFjdC5jbGllbnQucmVmZXJlbmNlIik7ZnVuY3Rpb24gVHMoYSl7aWYoYT09bnVsbClyZXR1cm4gbnVsbDtpZih0eXBlb2YgYT09ImZ1bmN0aW9uIilyZXR1cm4gYS4kJHR5cGVvZj09PXloP251bGw6YS5kaXNwbGF5TmFtZXx8YS5uYW1lfHxudWxsO2lmKHR5cGVvZiBhPT0ic3RyaW5nIilyZXR1cm4gYTtzd2l0Y2goYSl7Y2FzZSBjbDpyZXR1cm4iRnJhZ21lbnQiO2Nhc2UgQXM6cmV0dXJuIlByb2ZpbGVyIjtjYXNlIE5jOnJldHVybiJTdHJpY3RNb2RlIjtjYXNlIGJzOnJldHVybiJTdXNwZW5zZSI7Y2FzZSBNczpyZXR1cm4iU3VzcGVuc2VMaXN0IjtjYXNlIERzOnJldHVybiJBY3Rpdml0eSJ9aWYodHlwZW9mIGE9PSJvYmplY3QiKXN3aXRjaChhLiQkdHlwZW9mKXtjYXNlIEN1OnJldHVybiJQb3J0YWwiO2Nhc2UgT2U6cmV0dXJuIGEuZGlzcGxheU5hbWV8fCJDb250ZXh0IjtjYXNlIEZjOnJldHVybihhLl9jb250ZXh0LmRpc3BsYXlOYW1lfHwiQ29udGV4dCIpKyIuQ29uc3VtZXIiO2Nhc2UgZ2k6dmFyIGU9YS5yZW5kZXI7cmV0dXJuIGE9YS5kaXNwbGF5TmFtZSxhfHwoYT1lLmRpc3BsYXlOYW1lfHxlLm5hbWV8fCIiLGE9YSE9PSIiPyJGb3J3YXJkUmVmKCIrYSsiKSI6IkZvcndhcmRSZWYiKSxhO2Nhc2UgQ2k6cmV0dXJuIGU9YS5kaXNwbGF5TmFtZXx8bnVsbCxlIT09bnVsbD9lOlRzKGEudHlwZSl8fCJNZW1vIjtjYXNlIGF0OmU9YS5fcGF5bG9hZCxhPWEuX2luaXQ7dHJ5e3JldHVybiBUcyhhKGUpKX1jYXRjaHt9fXJldHVybiBudWxsfXZhciBJdT1BcnJheS5pc0FycmF5LEQ9T2MuX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLFA9U2guX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLHp0PXtwZW5kaW5nOiExLGRhdGE6bnVsbCxtZXRob2Q6bnVsbCxhY3Rpb246bnVsbH0sQnM9W10sbWw9LTE7ZnVuY3Rpb24gQ2UoYSl7cmV0dXJue2N1cnJlbnQ6YX19ZnVuY3Rpb24gU2EoYSl7MD5tbHx8KGEuY3VycmVudD1Cc1ttbF0sQnNbbWxdPW51bGwsbWwtLSl9ZnVuY3Rpb24gaihhLGUpe21sKyssQnNbbWxdPWEuY3VycmVudCxhLmN1cnJlbnQ9ZX12YXIgZ2U9Q2UobnVsbCksSHU9Q2UobnVsbCkscnQ9Q2UobnVsbCksZ289Q2UobnVsbCk7ZnVuY3Rpb24gQ28oYSxlKXtzd2l0Y2goaihydCxlKSxqKEh1LGEpLGooZ2UsbnVsbCksZS5ub2RlVHlwZSl7Y2FzZSA5OmNhc2UgMTE6YT0oYT1lLmRvY3VtZW50RWxlbWVudCkmJihhPWEubmFtZXNwYWNlVVJJKT94YyhhKTowO2JyZWFrO2RlZmF1bHQ6aWYoYT1lLnRhZ05hbWUsZT1lLm5hbWVzcGFjZVVSSSllPXhjKGUpLGE9b0woZSxhKTtlbHNlIHN3aXRjaChhKXtjYXNlInN2ZyI6YT0xO2JyZWFrO2Nhc2UibWF0aCI6YT0yO2JyZWFrO2RlZmF1bHQ6YT0wfX1TYShnZSksaihnZSxhKX1mdW5jdGlvbiB3bCgpe1NhKGdlKSxTYShIdSksU2EocnQpfWZ1bmN0aW9uIGtzKGEpe2EubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJmooZ28sYSk7dmFyIGU9Z2UuY3VycmVudCx0PW9MKGUsYS50eXBlKTtlIT09dCYmKGooSHUsYSksaihnZSx0KSl9ZnVuY3Rpb24gSW8oYSl7SHUuY3VycmVudD09PWEmJihTYShnZSksU2EoSHUpKSxnby5jdXJyZW50PT09YSYmKFNhKGdvKSxqdS5fY3VycmVudFZhbHVlPXp0KX12YXIgVmQscnI7ZnVuY3Rpb24gUnQoYSl7aWYoVmQ9PT12b2lkIDApdHJ5e3Rocm93IEVycm9yKCl9Y2F0Y2godCl7dmFyIGU9dC5zdGFjay50cmltKCkubWF0Y2goL1xuKCAqKGF0ICk/KS8pO1ZkPWUmJmVbMV18fCIiLHJyPS0xPHQuc3RhY2suaW5kZXhPZihgCiAgICBhdGApPyIgKDxhbm9ueW1vdXM+KSI6LTE8dC5zdGFjay5pbmRleE9mKCJAIik/IkB1bmtub3duOjA6MCI6IiJ9cmV0dXJuYApgK1ZkK2ErcnJ9dmFyIFpkPSExO2Z1bmN0aW9uIFFkKGEsZSl7aWYoIWF8fFpkKXJldHVybiIiO1pkPSEwO3ZhciB0PUVycm9yLnByZXBhcmVTdGFja1RyYWNlO0Vycm9yLnByZXBhcmVTdGFja1RyYWNlPXZvaWQgMDt0cnl7dmFyIGw9e0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdDpmdW5jdGlvbigpe3RyeXtpZihlKXt2YXIgZz1mdW5jdGlvbigpe3Rocm93IEVycm9yKCl9O2lmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShnLnByb3RvdHlwZSwicHJvcHMiLHtzZXQ6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpfX0pLHR5cGVvZiBSZWZsZWN0PT0ib2JqZWN0IiYmUmVmbGVjdC5jb25zdHJ1Y3Qpe3RyeXtSZWZsZWN0LmNvbnN0cnVjdChnLFtdKX1jYXRjaChoKXt2YXIgTD1ofVJlZmxlY3QuY29uc3RydWN0KGEsW10sZyl9ZWxzZXt0cnl7Zy5jYWxsKCl9Y2F0Y2goaCl7TD1ofWEuY2FsbChnLnByb3RvdHlwZSl9fWVsc2V7dHJ5e3Rocm93IEVycm9yKCl9Y2F0Y2goaCl7TD1ofShnPWEoKSkmJnR5cGVvZiBnLmNhdGNoPT0iZnVuY3Rpb24iJiZnLmNhdGNoKGZ1bmN0aW9uKCl7fSl9fWNhdGNoKGgpe2lmKGgmJkwmJnR5cGVvZiBoLnN0YWNrPT0ic3RyaW5nIilyZXR1cm5baC5zdGFjayxMLnN0YWNrXX1yZXR1cm5bbnVsbCxudWxsXX19O2wuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LmRpc3BsYXlOYW1lPSJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QiO3ZhciB1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobC5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsIm5hbWUiKTt1JiZ1LmNvbmZpZ3VyYWJsZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGwuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LCJuYW1lIix7dmFsdWU6IkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCJ9KTt2YXIgZj1sLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCgpLG89ZlswXSxkPWZbMV07aWYobyYmZCl7dmFyIGk9by5zcGxpdChgCmApLG09ZC5zcGxpdChgCmApO2Zvcih1PWw9MDtsPGkubGVuZ3RoJiYhaVtsXS5pbmNsdWRlcygiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290Iik7KWwrKztmb3IoO3U8bS5sZW5ndGgmJiFtW3VdLmluY2x1ZGVzKCJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QiKTspdSsrO2lmKGw9PT1pLmxlbmd0aHx8dT09PW0ubGVuZ3RoKWZvcihsPWkubGVuZ3RoLTEsdT1tLmxlbmd0aC0xOzE8PWwmJjA8PXUmJmlbbF0hPT1tW3VdOyl1LS07Zm9yKDsxPD1sJiYwPD11O2wtLSx1LS0paWYoaVtsXSE9PW1bdV0pe2lmKGwhPT0xfHx1IT09MSlkbyBpZihsLS0sdS0tLDA+dXx8aVtsXSE9PW1bdV0pe3ZhciB4PWAKYCtpW2xdLnJlcGxhY2UoIiBhdCBuZXcgIiwiIGF0ICIpO3JldHVybiBhLmRpc3BsYXlOYW1lJiZ4LmluY2x1ZGVzKCI8YW5vbnltb3VzPiIpJiYoeD14LnJlcGxhY2UoIjxhbm9ueW1vdXM+IixhLmRpc3BsYXlOYW1lKSkseH13aGlsZSgxPD1sJiYwPD11KTticmVha319fWZpbmFsbHl7WmQ9ITEsRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9dH1yZXR1cm4odD1hP2EuZGlzcGxheU5hbWV8fGEubmFtZToiIik/UnQodCk6IiJ9ZnVuY3Rpb24gdmgoYSxlKXtzd2l0Y2goYS50YWcpe2Nhc2UgMjY6Y2FzZSAyNzpjYXNlIDU6cmV0dXJuIFJ0KGEudHlwZSk7Y2FzZSAxNjpyZXR1cm4gUnQoIkxhenkiKTtjYXNlIDEzOnJldHVybiBhLmNoaWxkIT09ZSYmZSE9PW51bGw/UnQoIlN1c3BlbnNlIEZhbGxiYWNrIik6UnQoIlN1c3BlbnNlIik7Y2FzZSAxOTpyZXR1cm4gUnQoIlN1c3BlbnNlTGlzdCIpO2Nhc2UgMDpjYXNlIDE1OnJldHVybiBRZChhLnR5cGUsITEpO2Nhc2UgMTE6cmV0dXJuIFFkKGEudHlwZS5yZW5kZXIsITEpO2Nhc2UgMTpyZXR1cm4gUWQoYS50eXBlLCEwKTtjYXNlIDMxOnJldHVybiBSdCgiQWN0aXZpdHkiKTtkZWZhdWx0OnJldHVybiIifX1mdW5jdGlvbiBjcihhKXt0cnl7dmFyIGU9IiIsdD1udWxsO2RvIGUrPXZoKGEsdCksdD1hLGE9YS5yZXR1cm47d2hpbGUoYSk7cmV0dXJuIGV9Y2F0Y2gobCl7cmV0dXJuYApFcnJvciBnZW5lcmF0aW5nIHN0YWNrOiBgK2wubWVzc2FnZStgCmArbC5zdGFja319dmFyIHdzPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksSWk9cGEudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayxZZD1wYS51bnN0YWJsZV9jYW5jZWxDYWxsYmFjayxBaD1wYS51bnN0YWJsZV9zaG91bGRZaWVsZCxiaD1wYS51bnN0YWJsZV9yZXF1ZXN0UGFpbnQsWGE9cGEudW5zdGFibGVfbm93LE1oPXBhLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsLEdjPXBhLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5LF9jPXBhLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5LHlvPXBhLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LERoPXBhLnVuc3RhYmxlX0xvd1ByaW9yaXR5LFBjPXBhLnVuc3RhYmxlX0lkbGVQcmlvcml0eSxUaD1wYS5sb2csQmg9cGEudW5zdGFibGVfc2V0RGlzYWJsZVlpZWxkVmFsdWUsJHU9bnVsbCxWYT1udWxsO2Z1bmN0aW9uIG90KGEpe2lmKHR5cGVvZiBUaD09ImZ1bmN0aW9uIiYmQmgoYSksVmEmJnR5cGVvZiBWYS5zZXRTdHJpY3RNb2RlPT0iZnVuY3Rpb24iKXRyeXtWYS5zZXRTdHJpY3RNb2RlKCR1LGEpfWNhdGNoe319dmFyIFphPU1hdGguY2x6MzI/TWF0aC5jbHozMjpSaCxraD1NYXRoLmxvZyx3aD1NYXRoLkxOMjtmdW5jdGlvbiBSaChhKXtyZXR1cm4gYT4+Pj0wLGE9PT0wPzMyOjMxLShraChhKS93aHwwKXwwfXZhciBGZj0yNTYsR2Y9MjYyMTQ0LF9mPTQxOTQzMDQ7ZnVuY3Rpb24gcXQoYSl7dmFyIGU9YSY0MjtpZihlIT09MClyZXR1cm4gZTtzd2l0Y2goYSYtYSl7Y2FzZSAxOnJldHVybiAxO2Nhc2UgMjpyZXR1cm4gMjtjYXNlIDQ6cmV0dXJuIDQ7Y2FzZSA4OnJldHVybiA4O2Nhc2UgMTY6cmV0dXJuIDE2O2Nhc2UgMzI6cmV0dXJuIDMyO2Nhc2UgNjQ6cmV0dXJuIDY0O2Nhc2UgMTI4OnJldHVybiAxMjg7Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOnJldHVybiBhJjI2MTg4ODtjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiBhJjM5MzIxNjA7Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDE2Nzc3MjE2OmNhc2UgMzM1NTQ0MzI6cmV0dXJuIGEmNjI5MTQ1NjA7Y2FzZSA2NzEwODg2NDpyZXR1cm4gNjcxMDg4NjQ7Y2FzZSAxMzQyMTc3Mjg6cmV0dXJuIDEzNDIxNzcyODtjYXNlIDI2ODQzNTQ1NjpyZXR1cm4gMjY4NDM1NDU2O2Nhc2UgNTM2ODcwOTEyOnJldHVybiA1MzY4NzA5MTI7Y2FzZSAxMDczNzQxODI0OnJldHVybiAwO2RlZmF1bHQ6cmV0dXJuIGF9fWZ1bmN0aW9uIFlvKGEsZSx0KXt2YXIgbD1hLnBlbmRpbmdMYW5lcztpZihsPT09MClyZXR1cm4gMDt2YXIgdT0wLGY9YS5zdXNwZW5kZWRMYW5lcyxvPWEucGluZ2VkTGFuZXM7YT1hLndhcm1MYW5lczt2YXIgZD1sJjEzNDIxNzcyNztyZXR1cm4gZCE9PTA/KGw9ZCZ+ZixsIT09MD91PXF0KGwpOihvJj1kLG8hPT0wP3U9cXQobyk6dHx8KHQ9ZCZ+YSx0IT09MCYmKHU9cXQodCkpKSkpOihkPWwmfmYsZCE9PTA/dT1xdChkKTpvIT09MD91PXF0KG8pOnR8fCh0PWwmfmEsdCE9PTAmJih1PXF0KHQpKSkpLHU9PT0wPzA6ZSE9PTAmJmUhPT11JiYoZSZmKT09PTAmJihmPXUmLXUsdD1lJi1lLGY+PXR8fGY9PT0zMiYmKHQmNDE5NDA0OCkhPT0wKT9lOnV9ZnVuY3Rpb24gYWYoYSxlKXtyZXR1cm4oYS5wZW5kaW5nTGFuZXMmfihhLnN1c3BlbmRlZExhbmVzJn5hLnBpbmdlZExhbmVzKSZlKT09PTB9ZnVuY3Rpb24gcWgoYSxlKXtzd2l0Y2goYSl7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6Y2FzZSA4OmNhc2UgNjQ6cmV0dXJuIGUrMjUwO2Nhc2UgMTY6Y2FzZSAzMjpjYXNlIDEyODpjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpyZXR1cm4gZSs1ZTM7Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDE2Nzc3MjE2OmNhc2UgMzM1NTQ0MzI6cmV0dXJuLTE7Y2FzZSA2NzEwODg2NDpjYXNlIDEzNDIxNzcyODpjYXNlIDI2ODQzNTQ1NjpjYXNlIDUzNjg3MDkxMjpjYXNlIDEwNzM3NDE4MjQ6cmV0dXJuLTE7ZGVmYXVsdDpyZXR1cm4tMX19ZnVuY3Rpb24gWGMoKXt2YXIgYT1fZjtyZXR1cm4gX2Y8PD0xLChfZiY2MjkxNDU2MCk9PT0wJiYoX2Y9NDE5NDMwNCksYX1mdW5jdGlvbiBqZChhKXtmb3IodmFyIGU9W10sdD0wOzMxPnQ7dCsrKWUucHVzaChhKTtyZXR1cm4gZX1mdW5jdGlvbiBlZihhLGUpe2EucGVuZGluZ0xhbmVzfD1lLGUhPT0yNjg0MzU0NTYmJihhLnN1c3BlbmRlZExhbmVzPTAsYS5waW5nZWRMYW5lcz0wLGEud2FybUxhbmVzPTApfWZ1bmN0aW9uIE9oKGEsZSx0LGwsdSxmKXt2YXIgbz1hLnBlbmRpbmdMYW5lczthLnBlbmRpbmdMYW5lcz10LGEuc3VzcGVuZGVkTGFuZXM9MCxhLnBpbmdlZExhbmVzPTAsYS53YXJtTGFuZXM9MCxhLmV4cGlyZWRMYW5lcyY9dCxhLmVudGFuZ2xlZExhbmVzJj10LGEuZXJyb3JSZWNvdmVyeURpc2FibGVkTGFuZXMmPXQsYS5zaGVsbFN1c3BlbmRDb3VudGVyPTA7dmFyIGQ9YS5lbnRhbmdsZW1lbnRzLGk9YS5leHBpcmF0aW9uVGltZXMsbT1hLmhpZGRlblVwZGF0ZXM7Zm9yKHQ9byZ+dDswPHQ7KXt2YXIgeD0zMS1aYSh0KSxnPTE8PHg7ZFt4XT0wLGlbeF09LTE7dmFyIEw9bVt4XTtpZihMIT09bnVsbClmb3IobVt4XT1udWxsLHg9MDt4PEwubGVuZ3RoO3grKyl7dmFyIGg9TFt4XTtoIT09bnVsbCYmKGgubGFuZSY9LTUzNjg3MDkxMyl9dCY9fmd9bCE9PTAmJlZjKGEsbCwwKSxmIT09MCYmdT09PTAmJmEudGFnIT09MCYmKGEuc3VzcGVuZGVkTGFuZXN8PWYmfihvJn5lKSl9ZnVuY3Rpb24gVmMoYSxlLHQpe2EucGVuZGluZ0xhbmVzfD1lLGEuc3VzcGVuZGVkTGFuZXMmPX5lO3ZhciBsPTMxLVphKGUpO2EuZW50YW5nbGVkTGFuZXN8PWUsYS5lbnRhbmdsZW1lbnRzW2xdPWEuZW50YW5nbGVtZW50c1tsXXwxMDczNzQxODI0fHQmMjYxOTMwfWZ1bmN0aW9uIFpjKGEsZSl7dmFyIHQ9YS5lbnRhbmdsZWRMYW5lc3w9ZTtmb3IoYT1hLmVudGFuZ2xlbWVudHM7dDspe3ZhciBsPTMxLVphKHQpLHU9MTw8bDt1JmV8YVtsXSZlJiYoYVtsXXw9ZSksdCY9fnV9fWZ1bmN0aW9uIFFjKGEsZSl7dmFyIHQ9ZSYtZTtyZXR1cm4gdD0odCY0MikhPT0wPzE6eWkodCksKHQmKGEuc3VzcGVuZGVkTGFuZXN8ZSkpIT09MD8wOnR9ZnVuY3Rpb24geWkoYSl7c3dpdGNoKGEpe2Nhc2UgMjphPTE7YnJlYWs7Y2FzZSA4OmE9NDticmVhaztjYXNlIDMyOmE9MTY7YnJlYWs7Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDE2Nzc3MjE2OmNhc2UgMzM1NTQ0MzI6YT0xMjg7YnJlYWs7Y2FzZSAyNjg0MzU0NTY6YT0xMzQyMTc3Mjg7YnJlYWs7ZGVmYXVsdDphPTB9cmV0dXJuIGF9ZnVuY3Rpb24gdmkoYSl7cmV0dXJuIGEmPS1hLDI8YT84PGE/KGEmMTM0MjE3NzI3KSE9PTA/MzI6MjY4NDM1NDU2Ojg6Mn1mdW5jdGlvbiBZYygpe3ZhciBhPVAucDtyZXR1cm4gYSE9PTA/YTooYT13aW5kb3cuZXZlbnQsYT09PXZvaWQgMD8zMjp4TChhLnR5cGUpKX1mdW5jdGlvbiBtcihhLGUpe3ZhciB0PVAucDt0cnl7cmV0dXJuIFAucD1hLGUoKX1maW5hbGx5e1AucD10fX12YXIgQXQ9TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiksQ2E9Il9fcmVhY3RGaWJlciQiK0F0LFVhPSJfX3JlYWN0UHJvcHMkIitBdCxfbD0iX19yZWFjdENvbnRhaW5lciQiK0F0LFJzPSJfX3JlYWN0RXZlbnRzJCIrQXQsVWg9Il9fcmVhY3RMaXN0ZW5lcnMkIitBdCx6aD0iX19yZWFjdEhhbmRsZXMkIitBdCxwcj0iX19yZWFjdFJlc291cmNlcyQiK0F0LHRmPSJfX3JlYWN0TWFya2VyJCIrQXQ7ZnVuY3Rpb24gQWkoYSl7ZGVsZXRlIGFbQ2FdLGRlbGV0ZSBhW1VhXSxkZWxldGUgYVtSc10sZGVsZXRlIGFbVWhdLGRlbGV0ZSBhW3poXX1mdW5jdGlvbiBwbChhKXt2YXIgZT1hW0NhXTtpZihlKXJldHVybiBlO2Zvcih2YXIgdD1hLnBhcmVudE5vZGU7dDspe2lmKGU9dFtfbF18fHRbQ2FdKXtpZih0PWUuYWx0ZXJuYXRlLGUuY2hpbGQhPT1udWxsfHx0IT09bnVsbCYmdC5jaGlsZCE9PW51bGwpZm9yKGE9eWMoYSk7YSE9PW51bGw7KXtpZih0PWFbQ2FdKXJldHVybiB0O2E9eWMoYSl9cmV0dXJuIGV9YT10LHQ9YS5wYXJlbnROb2RlfXJldHVybiBudWxsfWZ1bmN0aW9uIFBsKGEpe2lmKGE9YVtDYV18fGFbX2xdKXt2YXIgZT1hLnRhZztpZihlPT09NXx8ZT09PTZ8fGU9PT0xM3x8ZT09PTMxfHxlPT09MjZ8fGU9PT0yN3x8ZT09PTMpcmV0dXJuIGF9cmV0dXJuIG51bGx9ZnVuY3Rpb24geXUoYSl7dmFyIGU9YS50YWc7aWYoZT09PTV8fGU9PT0yNnx8ZT09PTI3fHxlPT09NilyZXR1cm4gYS5zdGF0ZU5vZGU7dGhyb3cgRXJyb3IoQygzMykpfWZ1bmN0aW9uIEFsKGEpe3ZhciBlPWFbcHJdO3JldHVybiBlfHwoZT1hW3ByXT17aG9pc3RhYmxlU3R5bGVzOm5ldyBNYXAsaG9pc3RhYmxlU2NyaXB0czpuZXcgTWFwfSksZX1mdW5jdGlvbiB4YShhKXthW3RmXT0hMH12YXIgamM9bmV3IFNldCxLYz17fTtmdW5jdGlvbiBadChhLGUpe1JsKGEsZSksUmwoYSsiQ2FwdHVyZSIsZSl9ZnVuY3Rpb24gUmwoYSxlKXtmb3IoS2NbYV09ZSxhPTA7YTxlLmxlbmd0aDthKyspamMuYWRkKGVbYV0pfXZhciBFaD1SZWdFeHAoIl5bOkEtWl9hLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyRkZcXHUwMzcwLVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRdWzpBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXFwtLjAtOVxcdTAwQjdcXHUwMzAwLVxcdTAzNkZcXHUyMDNGLVxcdTIwNDBdKiQiKSxMcj17fSxocj17fTtmdW5jdGlvbiBIaChhKXtyZXR1cm4gd3MuY2FsbChocixhKT8hMDp3cy5jYWxsKExyLGEpPyExOkVoLnRlc3QoYSk/aHJbYV09ITA6KExyW2FdPSEwLCExKX1mdW5jdGlvbiBsbyhhLGUsdCl7aWYoSGgoZSkpaWYodD09PW51bGwpYS5yZW1vdmVBdHRyaWJ1dGUoZSk7ZWxzZXtzd2l0Y2godHlwZW9mIHQpe2Nhc2UidW5kZWZpbmVkIjpjYXNlImZ1bmN0aW9uIjpjYXNlInN5bWJvbCI6YS5yZW1vdmVBdHRyaWJ1dGUoZSk7cmV0dXJuO2Nhc2UiYm9vbGVhbiI6dmFyIGw9ZS50b0xvd2VyQ2FzZSgpLnNsaWNlKDAsNSk7aWYobCE9PSJkYXRhLSImJmwhPT0iYXJpYS0iKXthLnJlbW92ZUF0dHJpYnV0ZShlKTtyZXR1cm59fWEuc2V0QXR0cmlidXRlKGUsIiIrdCl9fWZ1bmN0aW9uIFBmKGEsZSx0KXtpZih0PT09bnVsbClhLnJlbW92ZUF0dHJpYnV0ZShlKTtlbHNle3N3aXRjaCh0eXBlb2YgdCl7Y2FzZSJ1bmRlZmluZWQiOmNhc2UiZnVuY3Rpb24iOmNhc2Uic3ltYm9sIjpjYXNlImJvb2xlYW4iOmEucmVtb3ZlQXR0cmlidXRlKGUpO3JldHVybn1hLnNldEF0dHJpYnV0ZShlLCIiK3QpfX1mdW5jdGlvbiBEZShhLGUsdCxsKXtpZihsPT09bnVsbClhLnJlbW92ZUF0dHJpYnV0ZSh0KTtlbHNle3N3aXRjaCh0eXBlb2YgbCl7Y2FzZSJ1bmRlZmluZWQiOmNhc2UiZnVuY3Rpb24iOmNhc2Uic3ltYm9sIjpjYXNlImJvb2xlYW4iOmEucmVtb3ZlQXR0cmlidXRlKHQpO3JldHVybn1hLnNldEF0dHJpYnV0ZU5TKGUsdCwiIitsKX19ZnVuY3Rpb24gJGEoYSl7c3dpdGNoKHR5cGVvZiBhKXtjYXNlImJpZ2ludCI6Y2FzZSJib29sZWFuIjpjYXNlIm51bWJlciI6Y2FzZSJzdHJpbmciOmNhc2UidW5kZWZpbmVkIjpyZXR1cm4gYTtjYXNlIm9iamVjdCI6cmV0dXJuIGE7ZGVmYXVsdDpyZXR1cm4iIn19ZnVuY3Rpb24gSmMoYSl7dmFyIGU9YS50eXBlO3JldHVybihhPWEubm9kZU5hbWUpJiZhLnRvTG93ZXJDYXNlKCk9PT0iaW5wdXQiJiYoZT09PSJjaGVja2JveCJ8fGU9PT0icmFkaW8iKX1mdW5jdGlvbiBOaChhLGUsdCl7dmFyIGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSxlKTtpZighYS5oYXNPd25Qcm9wZXJ0eShlKSYmdHlwZW9mIGw8InUiJiZ0eXBlb2YgbC5nZXQ9PSJmdW5jdGlvbiImJnR5cGVvZiBsLnNldD09ImZ1bmN0aW9uIil7dmFyIHU9bC5nZXQsZj1sLnNldDtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsZSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB1LmNhbGwodGhpcyl9LHNldDpmdW5jdGlvbihvKXt0PSIiK28sZi5jYWxsKHRoaXMsbyl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsZSx7ZW51bWVyYWJsZTpsLmVudW1lcmFibGV9KSx7Z2V0VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdH0sc2V0VmFsdWU6ZnVuY3Rpb24obyl7dD0iIitvfSxzdG9wVHJhY2tpbmc6ZnVuY3Rpb24oKXthLl92YWx1ZVRyYWNrZXI9bnVsbCxkZWxldGUgYVtlXX19fX1mdW5jdGlvbiBxcyhhKXtpZighYS5fdmFsdWVUcmFja2VyKXt2YXIgZT1KYyhhKT8iY2hlY2tlZCI6InZhbHVlIjthLl92YWx1ZVRyYWNrZXI9TmgoYSxlLCIiK2FbZV0pfX1mdW5jdGlvbiBXYyhhKXtpZighYSlyZXR1cm4hMTt2YXIgZT1hLl92YWx1ZVRyYWNrZXI7aWYoIWUpcmV0dXJuITA7dmFyIHQ9ZS5nZXRWYWx1ZSgpLGw9IiI7cmV0dXJuIGEmJihsPUpjKGEpP2EuY2hlY2tlZD8idHJ1ZSI6ImZhbHNlIjphLnZhbHVlKSxhPWwsYSE9PXQ/KGUuc2V0VmFsdWUoYSksITApOiExfWZ1bmN0aW9uIHZvKGEpe2lmKGE9YXx8KHR5cGVvZiBkb2N1bWVudDwidSI/ZG9jdW1lbnQ6dm9pZCAwKSx0eXBlb2YgYT4idSIpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBhLmFjdGl2ZUVsZW1lbnR8fGEuYm9keX1jYXRjaHtyZXR1cm4gYS5ib2R5fX12YXIgRmg9L1tcbiJcXF0vZztmdW5jdGlvbiB0ZShhKXtyZXR1cm4gYS5yZXBsYWNlKEZoLGZ1bmN0aW9uKGUpe3JldHVybiJcXCIrZS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSsiICJ9KX1mdW5jdGlvbiBPcyhhLGUsdCxsLHUsZixvLGQpe2EubmFtZT0iIixvIT1udWxsJiZ0eXBlb2YgbyE9ImZ1bmN0aW9uIiYmdHlwZW9mIG8hPSJzeW1ib2wiJiZ0eXBlb2YgbyE9ImJvb2xlYW4iP2EudHlwZT1vOmEucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIiksZSE9bnVsbD9vPT09Im51bWJlciI/KGU9PT0wJiZhLnZhbHVlPT09IiJ8fGEudmFsdWUhPWUpJiYoYS52YWx1ZT0iIiskYShlKSk6YS52YWx1ZSE9PSIiKyRhKGUpJiYoYS52YWx1ZT0iIiskYShlKSk6byE9PSJzdWJtaXQiJiZvIT09InJlc2V0Inx8YS5yZW1vdmVBdHRyaWJ1dGUoInZhbHVlIiksZSE9bnVsbD9VcyhhLG8sJGEoZSkpOnQhPW51bGw/VXMoYSxvLCRhKHQpKTpsIT1udWxsJiZhLnJlbW92ZUF0dHJpYnV0ZSgidmFsdWUiKSx1PT1udWxsJiZmIT1udWxsJiYoYS5kZWZhdWx0Q2hlY2tlZD0hIWYpLHUhPW51bGwmJihhLmNoZWNrZWQ9dSYmdHlwZW9mIHUhPSJmdW5jdGlvbiImJnR5cGVvZiB1IT0ic3ltYm9sIiksZCE9bnVsbCYmdHlwZW9mIGQhPSJmdW5jdGlvbiImJnR5cGVvZiBkIT0ic3ltYm9sIiYmdHlwZW9mIGQhPSJib29sZWFuIj9hLm5hbWU9IiIrJGEoZCk6YS5yZW1vdmVBdHRyaWJ1dGUoIm5hbWUiKX1mdW5jdGlvbiAkYyhhLGUsdCxsLHUsZixvLGQpe2lmKGYhPW51bGwmJnR5cGVvZiBmIT0iZnVuY3Rpb24iJiZ0eXBlb2YgZiE9InN5bWJvbCImJnR5cGVvZiBmIT0iYm9vbGVhbiImJihhLnR5cGU9ZiksZSE9bnVsbHx8dCE9bnVsbCl7aWYoIShmIT09InN1Ym1pdCImJmYhPT0icmVzZXQifHxlIT1udWxsKSl7cXMoYSk7cmV0dXJufXQ9dCE9bnVsbD8iIiskYSh0KToiIixlPWUhPW51bGw/IiIrJGEoZSk6dCxkfHxlPT09YS52YWx1ZXx8KGEudmFsdWU9ZSksYS5kZWZhdWx0VmFsdWU9ZX1sPWw/P3UsbD10eXBlb2YgbCE9ImZ1bmN0aW9uIiYmdHlwZW9mIGwhPSJzeW1ib2wiJiYhIWwsYS5jaGVja2VkPWQ/YS5jaGVja2VkOiEhbCxhLmRlZmF1bHRDaGVja2VkPSEhbCxvIT1udWxsJiZ0eXBlb2YgbyE9ImZ1bmN0aW9uIiYmdHlwZW9mIG8hPSJzeW1ib2wiJiZ0eXBlb2YgbyE9ImJvb2xlYW4iJiYoYS5uYW1lPW8pLHFzKGEpfWZ1bmN0aW9uIFVzKGEsZSx0KXtlPT09Im51bWJlciImJnZvKGEub3duZXJEb2N1bWVudCk9PT1hfHxhLmRlZmF1bHRWYWx1ZT09PSIiK3R8fChhLmRlZmF1bHRWYWx1ZT0iIit0KX1mdW5jdGlvbiBibChhLGUsdCxsKXtpZihhPWEub3B0aW9ucyxlKXtlPXt9O2Zvcih2YXIgdT0wO3U8dC5sZW5ndGg7dSsrKWVbIiQiK3RbdV1dPSEwO2Zvcih0PTA7dDxhLmxlbmd0aDt0KyspdT1lLmhhc093blByb3BlcnR5KCIkIithW3RdLnZhbHVlKSxhW3RdLnNlbGVjdGVkIT09dSYmKGFbdF0uc2VsZWN0ZWQ9dSksdSYmbCYmKGFbdF0uZGVmYXVsdFNlbGVjdGVkPSEwKX1lbHNle2Zvcih0PSIiKyRhKHQpLGU9bnVsbCx1PTA7dTxhLmxlbmd0aDt1Kyspe2lmKGFbdV0udmFsdWU9PT10KXthW3VdLnNlbGVjdGVkPSEwLGwmJihhW3VdLmRlZmF1bHRTZWxlY3RlZD0hMCk7cmV0dXJufWUhPT1udWxsfHxhW3VdLmRpc2FibGVkfHwoZT1hW3VdKX1lIT09bnVsbCYmKGUuc2VsZWN0ZWQ9ITApfX1mdW5jdGlvbiBhbShhLGUsdCl7aWYoZSE9bnVsbCYmKGU9IiIrJGEoZSksZSE9PWEudmFsdWUmJihhLnZhbHVlPWUpLHQ9PW51bGwpKXthLmRlZmF1bHRWYWx1ZSE9PWUmJihhLmRlZmF1bHRWYWx1ZT1lKTtyZXR1cm59YS5kZWZhdWx0VmFsdWU9dCE9bnVsbD8iIiskYSh0KToiIn1mdW5jdGlvbiBlbShhLGUsdCxsKXtpZihlPT1udWxsKXtpZihsIT1udWxsKXtpZih0IT1udWxsKXRocm93IEVycm9yKEMoOTIpKTtpZihJdShsKSl7aWYoMTxsLmxlbmd0aCl0aHJvdyBFcnJvcihDKDkzKSk7bD1sWzBdfXQ9bH10PT1udWxsJiYodD0iIiksZT10fXQ9JGEoZSksYS5kZWZhdWx0VmFsdWU9dCxsPWEudGV4dENvbnRlbnQsbD09PXQmJmwhPT0iIiYmbCE9PW51bGwmJihhLnZhbHVlPWwpLHFzKGEpfWZ1bmN0aW9uIHFsKGEsZSl7aWYoZSl7dmFyIHQ9YS5maXJzdENoaWxkO2lmKHQmJnQ9PT1hLmxhc3RDaGlsZCYmdC5ub2RlVHlwZT09PTMpe3Qubm9kZVZhbHVlPWU7cmV0dXJufX1hLnRleHRDb250ZW50PWV9dmFyIEdoPW5ldyBTZXQoImFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IGFzcGVjdFJhdGlvIGJvcmRlckltYWdlT3V0c2V0IGJvcmRlckltYWdlU2xpY2UgYm9yZGVySW1hZ2VXaWR0aCBib3hGbGV4IGJveEZsZXhHcm91cCBib3hPcmRpbmFsR3JvdXAgY29sdW1uQ291bnQgY29sdW1ucyBmbGV4IGZsZXhHcm93IGZsZXhQb3NpdGl2ZSBmbGV4U2hyaW5rIGZsZXhOZWdhdGl2ZSBmbGV4T3JkZXIgZ3JpZEFyZWEgZ3JpZFJvdyBncmlkUm93RW5kIGdyaWRSb3dTcGFuIGdyaWRSb3dTdGFydCBncmlkQ29sdW1uIGdyaWRDb2x1bW5FbmQgZ3JpZENvbHVtblNwYW4gZ3JpZENvbHVtblN0YXJ0IGZvbnRXZWlnaHQgbGluZUNsYW1wIGxpbmVIZWlnaHQgb3BhY2l0eSBvcmRlciBvcnBoYW5zIHNjYWxlIHRhYlNpemUgd2lkb3dzIHpJbmRleCB6b29tIGZpbGxPcGFjaXR5IGZsb29kT3BhY2l0eSBzdG9wT3BhY2l0eSBzdHJva2VEYXNoYXJyYXkgc3Ryb2tlRGFzaG9mZnNldCBzdHJva2VNaXRlcmxpbWl0IHN0cm9rZU9wYWNpdHkgc3Ryb2tlV2lkdGggTW96QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQgTW96Qm94RmxleCBNb3pCb3hGbGV4R3JvdXAgTW96TGluZUNsYW1wIG1zQW5pbWF0aW9uSXRlcmF0aW9uQ291bnQgbXNGbGV4IG1zWm9vbSBtc0ZsZXhHcm93IG1zRmxleE5lZ2F0aXZlIG1zRmxleE9yZGVyIG1zRmxleFBvc2l0aXZlIG1zRmxleFNocmluayBtc0dyaWRDb2x1bW4gbXNHcmlkQ29sdW1uU3BhbiBtc0dyaWRSb3cgbXNHcmlkUm93U3BhbiBXZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCBXZWJraXRCb3hGbGV4IFdlYktpdEJveEZsZXhHcm91cCBXZWJraXRCb3hPcmRpbmFsR3JvdXAgV2Via2l0Q29sdW1uQ291bnQgV2Via2l0Q29sdW1ucyBXZWJraXRGbGV4IFdlYmtpdEZsZXhHcm93IFdlYmtpdEZsZXhQb3NpdGl2ZSBXZWJraXRGbGV4U2hyaW5rIFdlYmtpdExpbmVDbGFtcCIuc3BsaXQoIiAiKSk7ZnVuY3Rpb24geHIoYSxlLHQpe3ZhciBsPWUuaW5kZXhPZigiLS0iKT09PTA7dD09bnVsbHx8dHlwZW9mIHQ9PSJib29sZWFuInx8dD09PSIiP2w/YS5zZXRQcm9wZXJ0eShlLCIiKTplPT09ImZsb2F0Ij9hLmNzc0Zsb2F0PSIiOmFbZV09IiI6bD9hLnNldFByb3BlcnR5KGUsdCk6dHlwZW9mIHQhPSJudW1iZXIifHx0PT09MHx8R2guaGFzKGUpP2U9PT0iZmxvYXQiP2EuY3NzRmxvYXQ9dDphW2VdPSgiIit0KS50cmltKCk6YVtlXT10KyJweCJ9ZnVuY3Rpb24gdG0oYSxlLHQpe2lmKGUhPW51bGwmJnR5cGVvZiBlIT0ib2JqZWN0Iil0aHJvdyBFcnJvcihDKDYyKSk7aWYoYT1hLnN0eWxlLHQhPW51bGwpe2Zvcih2YXIgbCBpbiB0KSF0Lmhhc093blByb3BlcnR5KGwpfHxlIT1udWxsJiZlLmhhc093blByb3BlcnR5KGwpfHwobC5pbmRleE9mKCItLSIpPT09MD9hLnNldFByb3BlcnR5KGwsIiIpOmw9PT0iZmxvYXQiP2EuY3NzRmxvYXQ9IiI6YVtsXT0iIik7Zm9yKHZhciB1IGluIGUpbD1lW3VdLGUuaGFzT3duUHJvcGVydHkodSkmJnRbdV0hPT1sJiZ4cihhLHUsbCl9ZWxzZSBmb3IodmFyIGYgaW4gZSllLmhhc093blByb3BlcnR5KGYpJiZ4cihhLGYsZVtmXSl9ZnVuY3Rpb24gYmkoYSl7aWYoYS5pbmRleE9mKCItIik9PT0tMSlyZXR1cm4hMTtzd2l0Y2goYSl7Y2FzZSJhbm5vdGF0aW9uLXhtbCI6Y2FzZSJjb2xvci1wcm9maWxlIjpjYXNlImZvbnQtZmFjZSI6Y2FzZSJmb250LWZhY2Utc3JjIjpjYXNlImZvbnQtZmFjZS11cmkiOmNhc2UiZm9udC1mYWNlLWZvcm1hdCI6Y2FzZSJmb250LWZhY2UtbmFtZSI6Y2FzZSJtaXNzaW5nLWdseXBoIjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX12YXIgX2g9bmV3IE1hcChbWyJhY2NlcHRDaGFyc2V0IiwiYWNjZXB0LWNoYXJzZXQiXSxbImh0bWxGb3IiLCJmb3IiXSxbImh0dHBFcXVpdiIsImh0dHAtZXF1aXYiXSxbImNyb3NzT3JpZ2luIiwiY3Jvc3NvcmlnaW4iXSxbImFjY2VudEhlaWdodCIsImFjY2VudC1oZWlnaHQiXSxbImFsaWdubWVudEJhc2VsaW5lIiwiYWxpZ25tZW50LWJhc2VsaW5lIl0sWyJhcmFiaWNGb3JtIiwiYXJhYmljLWZvcm0iXSxbImJhc2VsaW5lU2hpZnQiLCJiYXNlbGluZS1zaGlmdCJdLFsiY2FwSGVpZ2h0IiwiY2FwLWhlaWdodCJdLFsiY2xpcFBhdGgiLCJjbGlwLXBhdGgiXSxbImNsaXBSdWxlIiwiY2xpcC1ydWxlIl0sWyJjb2xvckludGVycG9sYXRpb24iLCJjb2xvci1pbnRlcnBvbGF0aW9uIl0sWyJjb2xvckludGVycG9sYXRpb25GaWx0ZXJzIiwiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIl0sWyJjb2xvclByb2ZpbGUiLCJjb2xvci1wcm9maWxlIl0sWyJjb2xvclJlbmRlcmluZyIsImNvbG9yLXJlbmRlcmluZyJdLFsiZG9taW5hbnRCYXNlbGluZSIsImRvbWluYW50LWJhc2VsaW5lIl0sWyJlbmFibGVCYWNrZ3JvdW5kIiwiZW5hYmxlLWJhY2tncm91bmQiXSxbImZpbGxPcGFjaXR5IiwiZmlsbC1vcGFjaXR5Il0sWyJmaWxsUnVsZSIsImZpbGwtcnVsZSJdLFsiZmxvb2RDb2xvciIsImZsb29kLWNvbG9yIl0sWyJmbG9vZE9wYWNpdHkiLCJmbG9vZC1vcGFjaXR5Il0sWyJmb250RmFtaWx5IiwiZm9udC1mYW1pbHkiXSxbImZvbnRTaXplIiwiZm9udC1zaXplIl0sWyJmb250U2l6ZUFkanVzdCIsImZvbnQtc2l6ZS1hZGp1c3QiXSxbImZvbnRTdHJldGNoIiwiZm9udC1zdHJldGNoIl0sWyJmb250U3R5bGUiLCJmb250LXN0eWxlIl0sWyJmb250VmFyaWFudCIsImZvbnQtdmFyaWFudCJdLFsiZm9udFdlaWdodCIsImZvbnQtd2VpZ2h0Il0sWyJnbHlwaE5hbWUiLCJnbHlwaC1uYW1lIl0sWyJnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbCIsImdseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwiXSxbImdseXBoT3JpZW50YXRpb25WZXJ0aWNhbCIsImdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIl0sWyJob3JpekFkdlgiLCJob3Jpei1hZHYteCJdLFsiaG9yaXpPcmlnaW5YIiwiaG9yaXotb3JpZ2luLXgiXSxbImltYWdlUmVuZGVyaW5nIiwiaW1hZ2UtcmVuZGVyaW5nIl0sWyJsZXR0ZXJTcGFjaW5nIiwibGV0dGVyLXNwYWNpbmciXSxbImxpZ2h0aW5nQ29sb3IiLCJsaWdodGluZy1jb2xvciJdLFsibWFya2VyRW5kIiwibWFya2VyLWVuZCJdLFsibWFya2VyTWlkIiwibWFya2VyLW1pZCJdLFsibWFya2VyU3RhcnQiLCJtYXJrZXItc3RhcnQiXSxbIm92ZXJsaW5lUG9zaXRpb24iLCJvdmVybGluZS1wb3NpdGlvbiJdLFsib3ZlcmxpbmVUaGlja25lc3MiLCJvdmVybGluZS10aGlja25lc3MiXSxbInBhaW50T3JkZXIiLCJwYWludC1vcmRlciJdLFsicGFub3NlLTEiLCJwYW5vc2UtMSJdLFsicG9pbnRlckV2ZW50cyIsInBvaW50ZXItZXZlbnRzIl0sWyJyZW5kZXJpbmdJbnRlbnQiLCJyZW5kZXJpbmctaW50ZW50Il0sWyJzaGFwZVJlbmRlcmluZyIsInNoYXBlLXJlbmRlcmluZyJdLFsic3RvcENvbG9yIiwic3RvcC1jb2xvciJdLFsic3RvcE9wYWNpdHkiLCJzdG9wLW9wYWNpdHkiXSxbInN0cmlrZXRocm91Z2hQb3NpdGlvbiIsInN0cmlrZXRocm91Z2gtcG9zaXRpb24iXSxbInN0cmlrZXRocm91Z2hUaGlja25lc3MiLCJzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyJdLFsic3Ryb2tlRGFzaGFycmF5Iiwic3Ryb2tlLWRhc2hhcnJheSJdLFsic3Ryb2tlRGFzaG9mZnNldCIsInN0cm9rZS1kYXNob2Zmc2V0Il0sWyJzdHJva2VMaW5lY2FwIiwic3Ryb2tlLWxpbmVjYXAiXSxbInN0cm9rZUxpbmVqb2luIiwic3Ryb2tlLWxpbmVqb2luIl0sWyJzdHJva2VNaXRlcmxpbWl0Iiwic3Ryb2tlLW1pdGVybGltaXQiXSxbInN0cm9rZU9wYWNpdHkiLCJzdHJva2Utb3BhY2l0eSJdLFsic3Ryb2tlV2lkdGgiLCJzdHJva2Utd2lkdGgiXSxbInRleHRBbmNob3IiLCJ0ZXh0LWFuY2hvciJdLFsidGV4dERlY29yYXRpb24iLCJ0ZXh0LWRlY29yYXRpb24iXSxbInRleHRSZW5kZXJpbmciLCJ0ZXh0LXJlbmRlcmluZyJdLFsidHJhbnNmb3JtT3JpZ2luIiwidHJhbnNmb3JtLW9yaWdpbiJdLFsidW5kZXJsaW5lUG9zaXRpb24iLCJ1bmRlcmxpbmUtcG9zaXRpb24iXSxbInVuZGVybGluZVRoaWNrbmVzcyIsInVuZGVybGluZS10aGlja25lc3MiXSxbInVuaWNvZGVCaWRpIiwidW5pY29kZS1iaWRpIl0sWyJ1bmljb2RlUmFuZ2UiLCJ1bmljb2RlLXJhbmdlIl0sWyJ1bml0c1BlckVtIiwidW5pdHMtcGVyLWVtIl0sWyJ2QWxwaGFiZXRpYyIsInYtYWxwaGFiZXRpYyJdLFsidkhhbmdpbmciLCJ2LWhhbmdpbmciXSxbInZJZGVvZ3JhcGhpYyIsInYtaWRlb2dyYXBoaWMiXSxbInZNYXRoZW1hdGljYWwiLCJ2LW1hdGhlbWF0aWNhbCJdLFsidmVjdG9yRWZmZWN0IiwidmVjdG9yLWVmZmVjdCJdLFsidmVydEFkdlkiLCJ2ZXJ0LWFkdi15Il0sWyJ2ZXJ0T3JpZ2luWCIsInZlcnQtb3JpZ2luLXgiXSxbInZlcnRPcmlnaW5ZIiwidmVydC1vcmlnaW4teSJdLFsid29yZFNwYWNpbmciLCJ3b3JkLXNwYWNpbmciXSxbIndyaXRpbmdNb2RlIiwid3JpdGluZy1tb2RlIl0sWyJ4bWxuc1hsaW5rIiwieG1sbnM6eGxpbmsiXSxbInhIZWlnaHQiLCJ4LWhlaWdodCJdXSksUGg9L15bXHUwMDAwLVx1MDAxRiBdKmpbXHJcblx0XSphW1xyXG5cdF0qdltcclxuXHRdKmFbXHJcblx0XSpzW1xyXG5cdF0qY1tcclxuXHRdKnJbXHJcblx0XSppW1xyXG5cdF0qcFtcclxuXHRdKnRbXHJcblx0XSo6L2k7ZnVuY3Rpb24gdW8oYSl7cmV0dXJuIFBoLnRlc3QoIiIrYSk/ImphdmFzY3JpcHQ6dGhyb3cgbmV3IEVycm9yKCdSZWFjdCBoYXMgYmxvY2tlZCBhIGphdmFzY3JpcHQ6IFVSTCBhcyBhIHNlY3VyaXR5IHByZWNhdXRpb24uJykiOmF9ZnVuY3Rpb24gVWUoKXt9dmFyIHpzPW51bGw7ZnVuY3Rpb24gTWkoYSl7cmV0dXJuIGE9YS50YXJnZXR8fGEuc3JjRWxlbWVudHx8d2luZG93LGEuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQmJihhPWEuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQpLGEubm9kZVR5cGU9PT0zP2EucGFyZW50Tm9kZTphfXZhciBMbD1udWxsLE1sPW51bGw7ZnVuY3Rpb24gU3IoYSl7dmFyIGU9UGwoYSk7aWYoZSYmKGE9ZS5zdGF0ZU5vZGUpKXt2YXIgdD1hW1VhXXx8bnVsbDthOnN3aXRjaChhPWUuc3RhdGVOb2RlLGUudHlwZSl7Y2FzZSJpbnB1dCI6aWYoT3MoYSx0LnZhbHVlLHQuZGVmYXVsdFZhbHVlLHQuZGVmYXVsdFZhbHVlLHQuY2hlY2tlZCx0LmRlZmF1bHRDaGVja2VkLHQudHlwZSx0Lm5hbWUpLGU9dC5uYW1lLHQudHlwZT09PSJyYWRpbyImJmUhPW51bGwpe2Zvcih0PWE7dC5wYXJlbnROb2RlOyl0PXQucGFyZW50Tm9kZTtmb3IodD10LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W25hbWU9IicrdGUoIiIrZSkrJyJdW3R5cGU9InJhZGlvIl0nKSxlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBsPXRbZV07aWYobCE9PWEmJmwuZm9ybT09PWEuZm9ybSl7dmFyIHU9bFtVYV18fG51bGw7aWYoIXUpdGhyb3cgRXJyb3IoQyg5MCkpO09zKGwsdS52YWx1ZSx1LmRlZmF1bHRWYWx1ZSx1LmRlZmF1bHRWYWx1ZSx1LmNoZWNrZWQsdS5kZWZhdWx0Q2hlY2tlZCx1LnR5cGUsdS5uYW1lKX19Zm9yKGU9MDtlPHQubGVuZ3RoO2UrKylsPXRbZV0sbC5mb3JtPT09YS5mb3JtJiZXYyhsKX1icmVhayBhO2Nhc2UidGV4dGFyZWEiOmFtKGEsdC52YWx1ZSx0LmRlZmF1bHRWYWx1ZSk7YnJlYWsgYTtjYXNlInNlbGVjdCI6ZT10LnZhbHVlLGUhPW51bGwmJmJsKGEsISF0Lm11bHRpcGxlLGUsITEpfX19dmFyIEtkPSExO2Z1bmN0aW9uIGxtKGEsZSx0KXtpZihLZClyZXR1cm4gYShlLHQpO0tkPSEwO3RyeXt2YXIgbD1hKGUpO3JldHVybiBsfWZpbmFsbHl7aWYoS2Q9ITEsKExsIT09bnVsbHx8TWwhPT1udWxsKSYmKG9kKCksTGwmJihlPUxsLGE9TWwsTWw9TGw9bnVsbCxTcihlKSxhKSkpZm9yKGU9MDtlPGEubGVuZ3RoO2UrKylTcihhW2VdKX19ZnVuY3Rpb24gTnUoYSxlKXt2YXIgdD1hLnN0YXRlTm9kZTtpZih0PT09bnVsbClyZXR1cm4gbnVsbDt2YXIgbD10W1VhXXx8bnVsbDtpZihsPT09bnVsbClyZXR1cm4gbnVsbDt0PWxbZV07YTpzd2l0Y2goZSl7Y2FzZSJvbkNsaWNrIjpjYXNlIm9uQ2xpY2tDYXB0dXJlIjpjYXNlIm9uRG91YmxlQ2xpY2siOmNhc2Uib25Eb3VibGVDbGlja0NhcHR1cmUiOmNhc2Uib25Nb3VzZURvd24iOmNhc2Uib25Nb3VzZURvd25DYXB0dXJlIjpjYXNlIm9uTW91c2VNb3ZlIjpjYXNlIm9uTW91c2VNb3ZlQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlVXAiOmNhc2Uib25Nb3VzZVVwQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlRW50ZXIiOihsPSFsLmRpc2FibGVkKXx8KGE9YS50eXBlLGw9IShhPT09ImJ1dHRvbiJ8fGE9PT0iaW5wdXQifHxhPT09InNlbGVjdCJ8fGE9PT0idGV4dGFyZWEiKSksYT0hbDticmVhayBhO2RlZmF1bHQ6YT0hMX1pZihhKXJldHVybiBudWxsO2lmKHQmJnR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IEVycm9yKEMoMjMxLGUsdHlwZW9mIHQpKTtyZXR1cm4gdH12YXIgRmU9ISh0eXBlb2Ygd2luZG93PiJ1Inx8dHlwZW9mIHdpbmRvdy5kb2N1bWVudD4idSJ8fHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudD4idSIpLEVzPSExO2lmKEZlKXRyeXtkbD17fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZGwsInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtFcz0hMH19KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsZGwsZGwpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixkbCxkbCl9Y2F0Y2h7RXM9ITF9dmFyIGRsLGR0PW51bGwsRGk9bnVsbCxmbz1udWxsO2Z1bmN0aW9uIHVtKCl7aWYoZm8pcmV0dXJuIGZvO3ZhciBhLGU9RGksdD1lLmxlbmd0aCxsLHU9InZhbHVlImluIGR0P2R0LnZhbHVlOmR0LnRleHRDb250ZW50LGY9dS5sZW5ndGg7Zm9yKGE9MDthPHQmJmVbYV09PT11W2FdO2ErKyk7dmFyIG89dC1hO2ZvcihsPTE7bDw9byYmZVt0LWxdPT09dVtmLWxdO2wrKyk7cmV0dXJuIGZvPXUuc2xpY2UoYSwxPGw/MS1sOnZvaWQgMCl9ZnVuY3Rpb24gb28oYSl7dmFyIGU9YS5rZXlDb2RlO3JldHVybiJjaGFyQ29kZSJpbiBhPyhhPWEuY2hhckNvZGUsYT09PTAmJmU9PT0xMyYmKGE9MTMpKTphPWUsYT09PTEwJiYoYT0xMyksMzI8PWF8fGE9PT0xMz9hOjB9ZnVuY3Rpb24gWGYoKXtyZXR1cm4hMH1mdW5jdGlvbiBncigpe3JldHVybiExfWZ1bmN0aW9uIHphKGEpe2Z1bmN0aW9uIGUodCxsLHUsZixvKXt0aGlzLl9yZWFjdE5hbWU9dCx0aGlzLl90YXJnZXRJbnN0PXUsdGhpcy50eXBlPWwsdGhpcy5uYXRpdmVFdmVudD1mLHRoaXMudGFyZ2V0PW8sdGhpcy5jdXJyZW50VGFyZ2V0PW51bGw7Zm9yKHZhciBkIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShkKSYmKHQ9YVtkXSx0aGlzW2RdPXQ/dChmKTpmW2RdKTtyZXR1cm4gdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9KGYuZGVmYXVsdFByZXZlbnRlZCE9bnVsbD9mLmRlZmF1bHRQcmV2ZW50ZWQ6Zi5yZXR1cm5WYWx1ZT09PSExKT9YZjpncix0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPWdyLHRoaXN9cmV0dXJuICQoZS5wcm90b3R5cGUse3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwO3ZhciB0PXRoaXMubmF0aXZlRXZlbnQ7dCYmKHQucHJldmVudERlZmF1bHQ/dC5wcmV2ZW50RGVmYXVsdCgpOnR5cGVvZiB0LnJldHVyblZhbHVlIT0idW5rbm93biImJih0LnJldHVyblZhbHVlPSExKSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1YZil9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciB0PXRoaXMubmF0aXZlRXZlbnQ7dCYmKHQuc3RvcFByb3BhZ2F0aW9uP3Quc3RvcFByb3BhZ2F0aW9uKCk6dHlwZW9mIHQuY2FuY2VsQnViYmxlIT0idW5rbm93biImJih0LmNhbmNlbEJ1YmJsZT0hMCksdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1YZil9LHBlcnNpc3Q6ZnVuY3Rpb24oKXt9LGlzUGVyc2lzdGVudDpYZn0pLGV9dmFyIFF0PXtldmVudFBoYXNlOjAsYnViYmxlczowLGNhbmNlbGFibGU6MCx0aW1lU3RhbXA6ZnVuY3Rpb24oYSl7cmV0dXJuIGEudGltZVN0YW1wfHxEYXRlLm5vdygpfSxkZWZhdWx0UHJldmVudGVkOjAsaXNUcnVzdGVkOjB9LGpvPXphKFF0KSxsZj0kKHt9LFF0LHt2aWV3OjAsZGV0YWlsOjB9KSxYaD16YShsZiksSmQsV2QscHUsS289JCh7fSxsZix7c2NyZWVuWDowLHNjcmVlblk6MCxjbGllbnRYOjAsY2xpZW50WTowLHBhZ2VYOjAscGFnZVk6MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTpUaSxidXR0b246MCxidXR0b25zOjAscmVsYXRlZFRhcmdldDpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZWxhdGVkVGFyZ2V0PT09dm9pZCAwP2EuZnJvbUVsZW1lbnQ9PT1hLnNyY0VsZW1lbnQ/YS50b0VsZW1lbnQ6YS5mcm9tRWxlbWVudDphLnJlbGF0ZWRUYXJnZXR9LG1vdmVtZW50WDpmdW5jdGlvbihhKXtyZXR1cm4ibW92ZW1lbnRYImluIGE/YS5tb3ZlbWVudFg6KGEhPT1wdSYmKHB1JiZhLnR5cGU9PT0ibW91c2Vtb3ZlIj8oSmQ9YS5zY3JlZW5YLXB1LnNjcmVlblgsV2Q9YS5zY3JlZW5ZLXB1LnNjcmVlblkpOldkPUpkPTAscHU9YSksSmQpfSxtb3ZlbWVudFk6ZnVuY3Rpb24oYSl7cmV0dXJuIm1vdmVtZW50WSJpbiBhP2EubW92ZW1lbnRZOldkfX0pLENyPXphKEtvKSxWaD0kKHt9LEtvLHtkYXRhVHJhbnNmZXI6MH0pLFpoPXphKFZoKSxRaD0kKHt9LGxmLHtyZWxhdGVkVGFyZ2V0OjB9KSwkZD16YShRaCksWWg9JCh7fSxRdCx7YW5pbWF0aW9uTmFtZTowLGVsYXBzZWRUaW1lOjAscHNldWRvRWxlbWVudDowfSksamg9emEoWWgpLEtoPSQoe30sUXQse2NsaXBib2FyZERhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuImNsaXBib2FyZERhdGEiaW4gYT9hLmNsaXBib2FyZERhdGE6d2luZG93LmNsaXBib2FyZERhdGF9fSksSmg9emEoS2gpLFdoPSQoe30sUXQse2RhdGE6MH0pLElyPXphKFdoKSwkaD17RXNjOiJFc2NhcGUiLFNwYWNlYmFyOiIgIixMZWZ0OiJBcnJvd0xlZnQiLFVwOiJBcnJvd1VwIixSaWdodDoiQXJyb3dSaWdodCIsRG93bjoiQXJyb3dEb3duIixEZWw6IkRlbGV0ZSIsV2luOiJPUyIsTWVudToiQ29udGV4dE1lbnUiLEFwcHM6IkNvbnRleHRNZW51IixTY3JvbGw6IlNjcm9sbExvY2siLE1velByaW50YWJsZUtleToiVW5pZGVudGlmaWVkIn0sYXg9ezg6IkJhY2tzcGFjZSIsOToiVGFiIiwxMjoiQ2xlYXIiLDEzOiJFbnRlciIsMTY6IlNoaWZ0IiwxNzoiQ29udHJvbCIsMTg6IkFsdCIsMTk6IlBhdXNlIiwyMDoiQ2Fwc0xvY2siLDI3OiJFc2NhcGUiLDMyOiIgIiwzMzoiUGFnZVVwIiwzNDoiUGFnZURvd24iLDM1OiJFbmQiLDM2OiJIb21lIiwzNzoiQXJyb3dMZWZ0IiwzODoiQXJyb3dVcCIsMzk6IkFycm93UmlnaHQiLDQwOiJBcnJvd0Rvd24iLDQ1OiJJbnNlcnQiLDQ2OiJEZWxldGUiLDExMjoiRjEiLDExMzoiRjIiLDExNDoiRjMiLDExNToiRjQiLDExNjoiRjUiLDExNzoiRjYiLDExODoiRjciLDExOToiRjgiLDEyMDoiRjkiLDEyMToiRjEwIiwxMjI6IkYxMSIsMTIzOiJGMTIiLDE0NDoiTnVtTG9jayIsMTQ1OiJTY3JvbGxMb2NrIiwyMjQ6Ik1ldGEifSxleD17QWx0OiJhbHRLZXkiLENvbnRyb2w6ImN0cmxLZXkiLE1ldGE6Im1ldGFLZXkiLFNoaWZ0OiJzaGlmdEtleSJ9O2Z1bmN0aW9uIHR4KGEpe3ZhciBlPXRoaXMubmF0aXZlRXZlbnQ7cmV0dXJuIGUuZ2V0TW9kaWZpZXJTdGF0ZT9lLmdldE1vZGlmaWVyU3RhdGUoYSk6KGE9ZXhbYV0pPyEhZVthXTohMX1mdW5jdGlvbiBUaSgpe3JldHVybiB0eH12YXIgbHg9JCh7fSxsZix7a2V5OmZ1bmN0aW9uKGEpe2lmKGEua2V5KXt2YXIgZT0kaFthLmtleV18fGEua2V5O2lmKGUhPT0iVW5pZGVudGlmaWVkIilyZXR1cm4gZX1yZXR1cm4gYS50eXBlPT09ImtleXByZXNzIj8oYT1vbyhhKSxhPT09MTM/IkVudGVyIjpTdHJpbmcuZnJvbUNoYXJDb2RlKGEpKTphLnR5cGU9PT0ia2V5ZG93biJ8fGEudHlwZT09PSJrZXl1cCI/YXhbYS5rZXlDb2RlXXx8IlVuaWRlbnRpZmllZCI6IiJ9LGNvZGU6MCxsb2NhdGlvbjowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxyZXBlYXQ6MCxsb2NhbGU6MCxnZXRNb2RpZmllclN0YXRlOlRpLGNoYXJDb2RlOmZ1bmN0aW9uKGEpe3JldHVybiBhLnR5cGU9PT0ia2V5cHJlc3MiP29vKGEpOjB9LGtleUNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuIGEudHlwZT09PSJrZXlkb3duInx8YS50eXBlPT09ImtleXVwIj9hLmtleUNvZGU6MH0sd2hpY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEudHlwZT09PSJrZXlwcmVzcyI/b28oYSk6YS50eXBlPT09ImtleWRvd24ifHxhLnR5cGU9PT0ia2V5dXAiP2Eua2V5Q29kZTowfX0pLHV4PXphKGx4KSxmeD0kKHt9LEtvLHtwb2ludGVySWQ6MCx3aWR0aDowLGhlaWdodDowLHByZXNzdXJlOjAsdGFuZ2VudGlhbFByZXNzdXJlOjAsdGlsdFg6MCx0aWx0WTowLHR3aXN0OjAscG9pbnRlclR5cGU6MCxpc1ByaW1hcnk6MH0pLHlyPXphKGZ4KSxveD0kKHt9LGxmLHt0b3VjaGVzOjAsdGFyZ2V0VG91Y2hlczowLGNoYW5nZWRUb3VjaGVzOjAsYWx0S2V5OjAsbWV0YUtleTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGdldE1vZGlmaWVyU3RhdGU6VGl9KSxkeD16YShveCksc3g9JCh7fSxRdCx7cHJvcGVydHlOYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSxpeD16YShzeCksbng9JCh7fSxLbyx7ZGVsdGFYOmZ1bmN0aW9uKGEpe3JldHVybiJkZWx0YVgiaW4gYT9hLmRlbHRhWDoid2hlZWxEZWx0YVgiaW4gYT8tYS53aGVlbERlbHRhWDowfSxkZWx0YVk6ZnVuY3Rpb24oYSl7cmV0dXJuImRlbHRhWSJpbiBhP2EuZGVsdGFZOiJ3aGVlbERlbHRhWSJpbiBhPy1hLndoZWVsRGVsdGFZOiJ3aGVlbERlbHRhImluIGE/LWEud2hlZWxEZWx0YTowfSxkZWx0YVo6MCxkZWx0YU1vZGU6MH0pLHJ4PXphKG54KSxjeD0kKHt9LFF0LHtuZXdTdGF0ZTowLG9sZFN0YXRlOjB9KSxteD16YShjeCkscHg9WzksMTMsMjcsMzJdLEJpPUZlJiYiQ29tcG9zaXRpb25FdmVudCJpbiB3aW5kb3csYnU9bnVsbDtGZSYmImRvY3VtZW50TW9kZSJpbiBkb2N1bWVudCYmKGJ1PWRvY3VtZW50LmRvY3VtZW50TW9kZSk7dmFyIEx4PUZlJiYiVGV4dEV2ZW50ImluIHdpbmRvdyYmIWJ1LGZtPUZlJiYoIUJpfHxidSYmODxidSYmMTE+PWJ1KSx2cj0iICIsQXI9ITE7ZnVuY3Rpb24gb20oYSxlKXtzd2l0Y2goYSl7Y2FzZSJrZXl1cCI6cmV0dXJuIHB4LmluZGV4T2YoZS5rZXlDb2RlKSE9PS0xO2Nhc2Uia2V5ZG93biI6cmV0dXJuIGUua2V5Q29kZSE9PTIyOTtjYXNlImtleXByZXNzIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJmb2N1c291dCI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gZG0oYSl7cmV0dXJuIGE9YS5kZXRhaWwsdHlwZW9mIGE9PSJvYmplY3QiJiYiZGF0YSJpbiBhP2EuZGF0YTpudWxsfXZhciBobD0hMTtmdW5jdGlvbiBoeChhLGUpe3N3aXRjaChhKXtjYXNlImNvbXBvc2l0aW9uZW5kIjpyZXR1cm4gZG0oZSk7Y2FzZSJrZXlwcmVzcyI6cmV0dXJuIGUud2hpY2ghPT0zMj9udWxsOihBcj0hMCx2cik7Y2FzZSJ0ZXh0SW5wdXQiOnJldHVybiBhPWUuZGF0YSxhPT09dnImJkFyP251bGw6YTtkZWZhdWx0OnJldHVybiBudWxsfX1mdW5jdGlvbiB4eChhLGUpe2lmKGhsKXJldHVybiBhPT09ImNvbXBvc2l0aW9uZW5kInx8IUJpJiZvbShhLGUpPyhhPXVtKCksZm89RGk9ZHQ9bnVsbCxobD0hMSxhKTpudWxsO3N3aXRjaChhKXtjYXNlInBhc3RlIjpyZXR1cm4gbnVsbDtjYXNlImtleXByZXNzIjppZighKGUuY3RybEtleXx8ZS5hbHRLZXl8fGUubWV0YUtleSl8fGUuY3RybEtleSYmZS5hbHRLZXkpe2lmKGUuY2hhciYmMTxlLmNoYXIubGVuZ3RoKXJldHVybiBlLmNoYXI7aWYoZS53aGljaClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShlLndoaWNoKX1yZXR1cm4gbnVsbDtjYXNlImNvbXBvc2l0aW9uZW5kIjpyZXR1cm4gZm0mJmUubG9jYWxlIT09ImtvIj9udWxsOmUuZGF0YTtkZWZhdWx0OnJldHVybiBudWxsfX12YXIgU3g9e2NvbG9yOiEwLGRhdGU6ITAsZGF0ZXRpbWU6ITAsImRhdGV0aW1lLWxvY2FsIjohMCxlbWFpbDohMCxtb250aDohMCxudW1iZXI6ITAscGFzc3dvcmQ6ITAscmFuZ2U6ITAsc2VhcmNoOiEwLHRlbDohMCx0ZXh0OiEwLHRpbWU6ITAsdXJsOiEwLHdlZWs6ITB9O2Z1bmN0aW9uIGJyKGEpe3ZhciBlPWEmJmEubm9kZU5hbWUmJmEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gZT09PSJpbnB1dCI/ISFTeFthLnR5cGVdOmU9PT0idGV4dGFyZWEifWZ1bmN0aW9uIHNtKGEsZSx0LGwpe0xsP01sP01sLnB1c2gobCk6TWw9W2xdOkxsPWwsZT1HbyhlLCJvbkNoYW5nZSIpLDA8ZS5sZW5ndGgmJih0PW5ldyBqbygib25DaGFuZ2UiLCJjaGFuZ2UiLG51bGwsdCxsKSxhLnB1c2goe2V2ZW50OnQsbGlzdGVuZXJzOmV9KSl9dmFyIE11PW51bGwsRnU9bnVsbDtmdW5jdGlvbiBneChhKXtsTChhLDApfWZ1bmN0aW9uIEpvKGEpe3ZhciBlPXl1KGEpO2lmKFdjKGUpKXJldHVybiBhfWZ1bmN0aW9uIE1yKGEsZSl7aWYoYT09PSJjaGFuZ2UiKXJldHVybiBlfXZhciBpbT0hMTtGZSYmKEZlPyhaZj0ib25pbnB1dCJpbiBkb2N1bWVudCxaZnx8KGFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGFzLnNldEF0dHJpYnV0ZSgib25pbnB1dCIsInJldHVybjsiKSxaZj10eXBlb2YgYXMub25pbnB1dD09ImZ1bmN0aW9uIiksVmY9WmYpOlZmPSExLGltPVZmJiYoIWRvY3VtZW50LmRvY3VtZW50TW9kZXx8OTxkb2N1bWVudC5kb2N1bWVudE1vZGUpKTt2YXIgVmYsWmYsYXM7ZnVuY3Rpb24gRHIoKXtNdSYmKE11LmRldGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIixubSksRnU9TXU9bnVsbCl9ZnVuY3Rpb24gbm0oYSl7aWYoYS5wcm9wZXJ0eU5hbWU9PT0idmFsdWUiJiZKbyhGdSkpe3ZhciBlPVtdO3NtKGUsRnUsYSxNaShhKSksbG0oZ3gsZSl9fWZ1bmN0aW9uIEN4KGEsZSx0KXthPT09ImZvY3VzaW4iPyhEcigpLE11PWUsRnU9dCxNdS5hdHRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIsbm0pKTphPT09ImZvY3Vzb3V0IiYmRHIoKX1mdW5jdGlvbiBJeChhKXtpZihhPT09InNlbGVjdGlvbmNoYW5nZSJ8fGE9PT0ia2V5dXAifHxhPT09ImtleWRvd24iKXJldHVybiBKbyhGdSl9ZnVuY3Rpb24geXgoYSxlKXtpZihhPT09ImNsaWNrIilyZXR1cm4gSm8oZSl9ZnVuY3Rpb24gdngoYSxlKXtpZihhPT09ImlucHV0Inx8YT09PSJjaGFuZ2UiKXJldHVybiBKbyhlKX1mdW5jdGlvbiBBeChhLGUpe3JldHVybiBhPT09ZSYmKGEhPT0wfHwxL2E9PT0xL2UpfHxhIT09YSYmZSE9PWV9dmFyIFlhPXR5cGVvZiBPYmplY3QuaXM9PSJmdW5jdGlvbiI/T2JqZWN0LmlzOkF4O2Z1bmN0aW9uIEd1KGEsZSl7aWYoWWEoYSxlKSlyZXR1cm4hMDtpZih0eXBlb2YgYSE9Im9iamVjdCJ8fGE9PT1udWxsfHx0eXBlb2YgZSE9Im9iamVjdCJ8fGU9PT1udWxsKXJldHVybiExO3ZhciB0PU9iamVjdC5rZXlzKGEpLGw9T2JqZWN0LmtleXMoZSk7aWYodC5sZW5ndGghPT1sLmxlbmd0aClyZXR1cm4hMTtmb3IobD0wO2w8dC5sZW5ndGg7bCsrKXt2YXIgdT10W2xdO2lmKCF3cy5jYWxsKGUsdSl8fCFZYShhW3VdLGVbdV0pKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIFRyKGEpe2Zvcig7YSYmYS5maXJzdENoaWxkOylhPWEuZmlyc3RDaGlsZDtyZXR1cm4gYX1mdW5jdGlvbiBCcihhLGUpe3ZhciB0PVRyKGEpO2E9MDtmb3IodmFyIGw7dDspe2lmKHQubm9kZVR5cGU9PT0zKXtpZihsPWErdC50ZXh0Q29udGVudC5sZW5ndGgsYTw9ZSYmbD49ZSlyZXR1cm57bm9kZTp0LG9mZnNldDplLWF9O2E9bH1hOntmb3IoO3Q7KXtpZih0Lm5leHRTaWJsaW5nKXt0PXQubmV4dFNpYmxpbmc7YnJlYWsgYX10PXQucGFyZW50Tm9kZX10PXZvaWQgMH10PVRyKHQpfX1mdW5jdGlvbiBybShhLGUpe3JldHVybiBhJiZlP2E9PT1lPyEwOmEmJmEubm9kZVR5cGU9PT0zPyExOmUmJmUubm9kZVR5cGU9PT0zP3JtKGEsZS5wYXJlbnROb2RlKToiY29udGFpbnMiaW4gYT9hLmNvbnRhaW5zKGUpOmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24/ISEoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlKSYxNik6ITE6ITF9ZnVuY3Rpb24gY20oYSl7YT1hIT1udWxsJiZhLm93bmVyRG9jdW1lbnQhPW51bGwmJmEub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyE9bnVsbD9hLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc6d2luZG93O2Zvcih2YXIgZT12byhhLmRvY3VtZW50KTtlIGluc3RhbmNlb2YgYS5IVE1MSUZyYW1lRWxlbWVudDspe3RyeXt2YXIgdD10eXBlb2YgZS5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWY9PSJzdHJpbmcifWNhdGNoe3Q9ITF9aWYodClhPWUuY29udGVudFdpbmRvdztlbHNlIGJyZWFrO2U9dm8oYS5kb2N1bWVudCl9cmV0dXJuIGV9ZnVuY3Rpb24ga2koYSl7dmFyIGU9YSYmYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiBlJiYoZT09PSJpbnB1dCImJihhLnR5cGU9PT0idGV4dCJ8fGEudHlwZT09PSJzZWFyY2gifHxhLnR5cGU9PT0idGVsInx8YS50eXBlPT09InVybCJ8fGEudHlwZT09PSJwYXNzd29yZCIpfHxlPT09InRleHRhcmVhInx8YS5jb250ZW50RWRpdGFibGU9PT0idHJ1ZSIpfXZhciBieD1GZSYmImRvY3VtZW50TW9kZSJpbiBkb2N1bWVudCYmMTE+PWRvY3VtZW50LmRvY3VtZW50TW9kZSx4bD1udWxsLEhzPW51bGwsRHU9bnVsbCxOcz0hMTtmdW5jdGlvbiBrcihhLGUsdCl7dmFyIGw9dC53aW5kb3c9PT10P3QuZG9jdW1lbnQ6dC5ub2RlVHlwZT09PTk/dDp0Lm93bmVyRG9jdW1lbnQ7TnN8fHhsPT1udWxsfHx4bCE9PXZvKGwpfHwobD14bCwic2VsZWN0aW9uU3RhcnQiaW4gbCYma2kobCk/bD17c3RhcnQ6bC5zZWxlY3Rpb25TdGFydCxlbmQ6bC5zZWxlY3Rpb25FbmR9OihsPShsLm93bmVyRG9jdW1lbnQmJmwub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93KS5nZXRTZWxlY3Rpb24oKSxsPXthbmNob3JOb2RlOmwuYW5jaG9yTm9kZSxhbmNob3JPZmZzZXQ6bC5hbmNob3JPZmZzZXQsZm9jdXNOb2RlOmwuZm9jdXNOb2RlLGZvY3VzT2Zmc2V0OmwuZm9jdXNPZmZzZXR9KSxEdSYmR3UoRHUsbCl8fChEdT1sLGw9R28oSHMsIm9uU2VsZWN0IiksMDxsLmxlbmd0aCYmKGU9bmV3IGpvKCJvblNlbGVjdCIsInNlbGVjdCIsbnVsbCxlLHQpLGEucHVzaCh7ZXZlbnQ6ZSxsaXN0ZW5lcnM6bH0pLGUudGFyZ2V0PXhsKSkpfWZ1bmN0aW9uIHd0KGEsZSl7dmFyIHQ9e307cmV0dXJuIHRbYS50b0xvd2VyQ2FzZSgpXT1lLnRvTG93ZXJDYXNlKCksdFsiV2Via2l0IithXT0id2Via2l0IitlLHRbIk1veiIrYV09Im1veiIrZSx0fXZhciBTbD17YW5pbWF0aW9uZW5kOnd0KCJBbmltYXRpb24iLCJBbmltYXRpb25FbmQiKSxhbmltYXRpb25pdGVyYXRpb246d3QoIkFuaW1hdGlvbiIsIkFuaW1hdGlvbkl0ZXJhdGlvbiIpLGFuaW1hdGlvbnN0YXJ0Ond0KCJBbmltYXRpb24iLCJBbmltYXRpb25TdGFydCIpLHRyYW5zaXRpb25ydW46d3QoIlRyYW5zaXRpb24iLCJUcmFuc2l0aW9uUnVuIiksdHJhbnNpdGlvbnN0YXJ0Ond0KCJUcmFuc2l0aW9uIiwiVHJhbnNpdGlvblN0YXJ0IiksdHJhbnNpdGlvbmNhbmNlbDp3dCgiVHJhbnNpdGlvbiIsIlRyYW5zaXRpb25DYW5jZWwiKSx0cmFuc2l0aW9uZW5kOnd0KCJUcmFuc2l0aW9uIiwiVHJhbnNpdGlvbkVuZCIpfSxlcz17fSxtbT17fTtGZSYmKG1tPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlLCJBbmltYXRpb25FdmVudCJpbiB3aW5kb3d8fChkZWxldGUgU2wuYW5pbWF0aW9uZW5kLmFuaW1hdGlvbixkZWxldGUgU2wuYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbixkZWxldGUgU2wuYW5pbWF0aW9uc3RhcnQuYW5pbWF0aW9uKSwiVHJhbnNpdGlvbkV2ZW50ImluIHdpbmRvd3x8ZGVsZXRlIFNsLnRyYW5zaXRpb25lbmQudHJhbnNpdGlvbik7ZnVuY3Rpb24gWXQoYSl7aWYoZXNbYV0pcmV0dXJuIGVzW2FdO2lmKCFTbFthXSlyZXR1cm4gYTt2YXIgZT1TbFthXSx0O2Zvcih0IGluIGUpaWYoZS5oYXNPd25Qcm9wZXJ0eSh0KSYmdCBpbiBtbSlyZXR1cm4gZXNbYV09ZVt0XTtyZXR1cm4gYX12YXIgcG09WXQoImFuaW1hdGlvbmVuZCIpLExtPVl0KCJhbmltYXRpb25pdGVyYXRpb24iKSxobT1ZdCgiYW5pbWF0aW9uc3RhcnQiKSxNeD1ZdCgidHJhbnNpdGlvbnJ1biIpLER4PVl0KCJ0cmFuc2l0aW9uc3RhcnQiKSxUeD1ZdCgidHJhbnNpdGlvbmNhbmNlbCIpLHhtPVl0KCJ0cmFuc2l0aW9uZW5kIiksU209bmV3IE1hcCxGcz0iYWJvcnQgYXV4Q2xpY2sgYmVmb3JlVG9nZ2xlIGNhbmNlbCBjYW5QbGF5IGNhblBsYXlUaHJvdWdoIGNsaWNrIGNsb3NlIGNvbnRleHRNZW51IGNvcHkgY3V0IGRyYWcgZHJhZ0VuZCBkcmFnRW50ZXIgZHJhZ0V4aXQgZHJhZ0xlYXZlIGRyYWdPdmVyIGRyYWdTdGFydCBkcm9wIGR1cmF0aW9uQ2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGdvdFBvaW50ZXJDYXB0dXJlIGlucHV0IGludmFsaWQga2V5RG93biBrZXlQcmVzcyBrZXlVcCBsb2FkIGxvYWRlZERhdGEgbG9hZGVkTWV0YWRhdGEgbG9hZFN0YXJ0IGxvc3RQb2ludGVyQ2FwdHVyZSBtb3VzZURvd24gbW91c2VNb3ZlIG1vdXNlT3V0IG1vdXNlT3ZlciBtb3VzZVVwIHBhc3RlIHBhdXNlIHBsYXkgcGxheWluZyBwb2ludGVyQ2FuY2VsIHBvaW50ZXJEb3duIHBvaW50ZXJNb3ZlIHBvaW50ZXJPdXQgcG9pbnRlck92ZXIgcG9pbnRlclVwIHByb2dyZXNzIHJhdGVDaGFuZ2UgcmVzZXQgcmVzaXplIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VibWl0IHN1c3BlbmQgdGltZVVwZGF0ZSB0b3VjaENhbmNlbCB0b3VjaEVuZCB0b3VjaFN0YXJ0IHZvbHVtZUNoYW5nZSBzY3JvbGwgdG9nZ2xlIHRvdWNoTW92ZSB3YWl0aW5nIHdoZWVsIi5zcGxpdCgiICIpO0ZzLnB1c2goInNjcm9sbEVuZCIpO2Z1bmN0aW9uIGNlKGEsZSl7U20uc2V0KGEsZSksWnQoZSxbYV0pfXZhciBBbz10eXBlb2YgcmVwb3J0RXJyb3I9PSJmdW5jdGlvbiI/cmVwb3J0RXJyb3I6ZnVuY3Rpb24oYSl7aWYodHlwZW9mIHdpbmRvdz09Im9iamVjdCImJnR5cGVvZiB3aW5kb3cuRXJyb3JFdmVudD09ImZ1bmN0aW9uIil7dmFyIGU9bmV3IHdpbmRvdy5FcnJvckV2ZW50KCJlcnJvciIse2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCxtZXNzYWdlOnR5cGVvZiBhPT0ib2JqZWN0IiYmYSE9PW51bGwmJnR5cGVvZiBhLm1lc3NhZ2U9PSJzdHJpbmciP1N0cmluZyhhLm1lc3NhZ2UpOlN0cmluZyhhKSxlcnJvcjphfSk7aWYoIXdpbmRvdy5kaXNwYXRjaEV2ZW50KGUpKXJldHVybn1lbHNlIGlmKHR5cGVvZiBwcm9jZXNzPT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MuZW1pdD09ImZ1bmN0aW9uIil7cHJvY2Vzcy5lbWl0KCJ1bmNhdWdodEV4Y2VwdGlvbiIsYSk7cmV0dXJufWNvbnNvbGUuZXJyb3IoYSl9LFdhPVtdLGdsPTAsd2k9MDtmdW5jdGlvbiBXbygpe2Zvcih2YXIgYT1nbCxlPXdpPWdsPTA7ZTxhOyl7dmFyIHQ9V2FbZV07V2FbZSsrXT1udWxsO3ZhciBsPVdhW2VdO1dhW2UrK109bnVsbDt2YXIgdT1XYVtlXTtXYVtlKytdPW51bGw7dmFyIGY9V2FbZV07aWYoV2FbZSsrXT1udWxsLGwhPT1udWxsJiZ1IT09bnVsbCl7dmFyIG89bC5wZW5kaW5nO289PT1udWxsP3UubmV4dD11Oih1Lm5leHQ9by5uZXh0LG8ubmV4dD11KSxsLnBlbmRpbmc9dX1mIT09MCYmZ20odCx1LGYpfX1mdW5jdGlvbiAkbyhhLGUsdCxsKXtXYVtnbCsrXT1hLFdhW2dsKytdPWUsV2FbZ2wrK109dCxXYVtnbCsrXT1sLHdpfD1sLGEubGFuZXN8PWwsYT1hLmFsdGVybmF0ZSxhIT09bnVsbCYmKGEubGFuZXN8PWwpfWZ1bmN0aW9uIFJpKGEsZSx0LGwpe3JldHVybiAkbyhhLGUsdCxsKSxibyhhKX1mdW5jdGlvbiBqdChhLGUpe3JldHVybiAkbyhhLG51bGwsbnVsbCxlKSxibyhhKX1mdW5jdGlvbiBnbShhLGUsdCl7YS5sYW5lc3w9dDt2YXIgbD1hLmFsdGVybmF0ZTtsIT09bnVsbCYmKGwubGFuZXN8PXQpO2Zvcih2YXIgdT0hMSxmPWEucmV0dXJuO2YhPT1udWxsOylmLmNoaWxkTGFuZXN8PXQsbD1mLmFsdGVybmF0ZSxsIT09bnVsbCYmKGwuY2hpbGRMYW5lc3w9dCksZi50YWc9PT0yMiYmKGE9Zi5zdGF0ZU5vZGUsYT09PW51bGx8fGEuX3Zpc2liaWxpdHkmMXx8KHU9ITApKSxhPWYsZj1mLnJldHVybjtyZXR1cm4gYS50YWc9PT0zPyhmPWEuc3RhdGVOb2RlLHUmJmUhPT1udWxsJiYodT0zMS1aYSh0KSxhPWYuaGlkZGVuVXBkYXRlcyxsPWFbdV0sbD09PW51bGw/YVt1XT1bZV06bC5wdXNoKGUpLGUubGFuZT10fDUzNjg3MDkxMiksZik6bnVsbH1mdW5jdGlvbiBibyhhKXtpZig1MDx6dSl0aHJvdyB6dT0wLGRpPW51bGwsRXJyb3IoQygxODUpKTtmb3IodmFyIGU9YS5yZXR1cm47ZSE9PW51bGw7KWE9ZSxlPWEucmV0dXJuO3JldHVybiBhLnRhZz09PTM/YS5zdGF0ZU5vZGU6bnVsbH12YXIgQ2w9e307ZnVuY3Rpb24gQngoYSxlLHQsbCl7dGhpcy50YWc9YSx0aGlzLmtleT10LHRoaXMuc2libGluZz10aGlzLmNoaWxkPXRoaXMucmV0dXJuPXRoaXMuc3RhdGVOb2RlPXRoaXMudHlwZT10aGlzLmVsZW1lbnRUeXBlPW51bGwsdGhpcy5pbmRleD0wLHRoaXMucmVmQ2xlYW51cD10aGlzLnJlZj1udWxsLHRoaXMucGVuZGluZ1Byb3BzPWUsdGhpcy5kZXBlbmRlbmNpZXM9dGhpcy5tZW1vaXplZFN0YXRlPXRoaXMudXBkYXRlUXVldWU9dGhpcy5tZW1vaXplZFByb3BzPW51bGwsdGhpcy5tb2RlPWwsdGhpcy5zdWJ0cmVlRmxhZ3M9dGhpcy5mbGFncz0wLHRoaXMuZGVsZXRpb25zPW51bGwsdGhpcy5jaGlsZExhbmVzPXRoaXMubGFuZXM9MCx0aGlzLmFsdGVybmF0ZT1udWxsfWZ1bmN0aW9uIF9hKGEsZSx0LGwpe3JldHVybiBuZXcgQngoYSxlLHQsbCl9ZnVuY3Rpb24gcWkoYSl7cmV0dXJuIGE9YS5wcm90b3R5cGUsISghYXx8IWEuaXNSZWFjdENvbXBvbmVudCl9ZnVuY3Rpb24gRWUoYSxlKXt2YXIgdD1hLmFsdGVybmF0ZTtyZXR1cm4gdD09PW51bGw/KHQ9X2EoYS50YWcsZSxhLmtleSxhLm1vZGUpLHQuZWxlbWVudFR5cGU9YS5lbGVtZW50VHlwZSx0LnR5cGU9YS50eXBlLHQuc3RhdGVOb2RlPWEuc3RhdGVOb2RlLHQuYWx0ZXJuYXRlPWEsYS5hbHRlcm5hdGU9dCk6KHQucGVuZGluZ1Byb3BzPWUsdC50eXBlPWEudHlwZSx0LmZsYWdzPTAsdC5zdWJ0cmVlRmxhZ3M9MCx0LmRlbGV0aW9ucz1udWxsKSx0LmZsYWdzPWEuZmxhZ3MmNjUwMTE3MTIsdC5jaGlsZExhbmVzPWEuY2hpbGRMYW5lcyx0LmxhbmVzPWEubGFuZXMsdC5jaGlsZD1hLmNoaWxkLHQubWVtb2l6ZWRQcm9wcz1hLm1lbW9pemVkUHJvcHMsdC5tZW1vaXplZFN0YXRlPWEubWVtb2l6ZWRTdGF0ZSx0LnVwZGF0ZVF1ZXVlPWEudXBkYXRlUXVldWUsZT1hLmRlcGVuZGVuY2llcyx0LmRlcGVuZGVuY2llcz1lPT09bnVsbD9udWxsOntsYW5lczplLmxhbmVzLGZpcnN0Q29udGV4dDplLmZpcnN0Q29udGV4dH0sdC5zaWJsaW5nPWEuc2libGluZyx0LmluZGV4PWEuaW5kZXgsdC5yZWY9YS5yZWYsdC5yZWZDbGVhbnVwPWEucmVmQ2xlYW51cCx0fWZ1bmN0aW9uIENtKGEsZSl7YS5mbGFncyY9NjUwMTE3MTQ7dmFyIHQ9YS5hbHRlcm5hdGU7cmV0dXJuIHQ9PT1udWxsPyhhLmNoaWxkTGFuZXM9MCxhLmxhbmVzPWUsYS5jaGlsZD1udWxsLGEuc3VidHJlZUZsYWdzPTAsYS5tZW1vaXplZFByb3BzPW51bGwsYS5tZW1vaXplZFN0YXRlPW51bGwsYS51cGRhdGVRdWV1ZT1udWxsLGEuZGVwZW5kZW5jaWVzPW51bGwsYS5zdGF0ZU5vZGU9bnVsbCk6KGEuY2hpbGRMYW5lcz10LmNoaWxkTGFuZXMsYS5sYW5lcz10LmxhbmVzLGEuY2hpbGQ9dC5jaGlsZCxhLnN1YnRyZWVGbGFncz0wLGEuZGVsZXRpb25zPW51bGwsYS5tZW1vaXplZFByb3BzPXQubWVtb2l6ZWRQcm9wcyxhLm1lbW9pemVkU3RhdGU9dC5tZW1vaXplZFN0YXRlLGEudXBkYXRlUXVldWU9dC51cGRhdGVRdWV1ZSxhLnR5cGU9dC50eXBlLGU9dC5kZXBlbmRlbmNpZXMsYS5kZXBlbmRlbmNpZXM9ZT09PW51bGw/bnVsbDp7bGFuZXM6ZS5sYW5lcyxmaXJzdENvbnRleHQ6ZS5maXJzdENvbnRleHR9KSxhfWZ1bmN0aW9uIHNvKGEsZSx0LGwsdSxmKXt2YXIgbz0wO2lmKGw9YSx0eXBlb2YgYT09ImZ1bmN0aW9uIilxaShhKSYmKG89MSk7ZWxzZSBpZih0eXBlb2YgYT09InN0cmluZyIpbz1SUyhhLHQsZ2UuY3VycmVudCk/MjY6YT09PSJodG1sInx8YT09PSJoZWFkInx8YT09PSJib2R5Ij8yNzo1O2Vsc2UgYTpzd2l0Y2goYSl7Y2FzZSBEczpyZXR1cm4gYT1fYSgzMSx0LGUsdSksYS5lbGVtZW50VHlwZT1EcyxhLmxhbmVzPWYsYTtjYXNlIGNsOnJldHVybiBFdCh0LmNoaWxkcmVuLHUsZixlKTtjYXNlIE5jOm89OCx1fD0yNDticmVhaztjYXNlIEFzOnJldHVybiBhPV9hKDEyLHQsZSx1fDIpLGEuZWxlbWVudFR5cGU9QXMsYS5sYW5lcz1mLGE7Y2FzZSBiczpyZXR1cm4gYT1fYSgxMyx0LGUsdSksYS5lbGVtZW50VHlwZT1icyxhLmxhbmVzPWYsYTtjYXNlIE1zOnJldHVybiBhPV9hKDE5LHQsZSx1KSxhLmVsZW1lbnRUeXBlPU1zLGEubGFuZXM9ZixhO2RlZmF1bHQ6aWYodHlwZW9mIGE9PSJvYmplY3QiJiZhIT09bnVsbClzd2l0Y2goYS4kJHR5cGVvZil7Y2FzZSBPZTpvPTEwO2JyZWFrIGE7Y2FzZSBGYzpvPTk7YnJlYWsgYTtjYXNlIGdpOm89MTE7YnJlYWsgYTtjYXNlIENpOm89MTQ7YnJlYWsgYTtjYXNlIGF0Om89MTYsbD1udWxsO2JyZWFrIGF9bz0yOSx0PUVycm9yKEMoMTMwLGE9PT1udWxsPyJudWxsIjp0eXBlb2YgYSwiIikpLGw9bnVsbH1yZXR1cm4gZT1fYShvLHQsZSx1KSxlLmVsZW1lbnRUeXBlPWEsZS50eXBlPWwsZS5sYW5lcz1mLGV9ZnVuY3Rpb24gRXQoYSxlLHQsbCl7cmV0dXJuIGE9X2EoNyxhLGwsZSksYS5sYW5lcz10LGF9ZnVuY3Rpb24gdHMoYSxlLHQpe3JldHVybiBhPV9hKDYsYSxudWxsLGUpLGEubGFuZXM9dCxhfWZ1bmN0aW9uIEltKGEpe3ZhciBlPV9hKDE4LG51bGwsbnVsbCwwKTtyZXR1cm4gZS5zdGF0ZU5vZGU9YSxlfWZ1bmN0aW9uIGxzKGEsZSx0KXtyZXR1cm4gZT1fYSg0LGEuY2hpbGRyZW4hPT1udWxsP2EuY2hpbGRyZW46W10sYS5rZXksZSksZS5sYW5lcz10LGUuc3RhdGVOb2RlPXtjb250YWluZXJJbmZvOmEuY29udGFpbmVySW5mbyxwZW5kaW5nQ2hpbGRyZW46bnVsbCxpbXBsZW1lbnRhdGlvbjphLmltcGxlbWVudGF0aW9ufSxlfXZhciB3cj1uZXcgV2Vha01hcDtmdW5jdGlvbiBsZShhLGUpe2lmKHR5cGVvZiBhPT0ib2JqZWN0IiYmYSE9PW51bGwpe3ZhciB0PXdyLmdldChhKTtyZXR1cm4gdCE9PXZvaWQgMD90OihlPXt2YWx1ZTphLHNvdXJjZTplLHN0YWNrOmNyKGUpfSx3ci5zZXQoYSxlKSxlKX1yZXR1cm57dmFsdWU6YSxzb3VyY2U6ZSxzdGFjazpjcihlKX19dmFyIElsPVtdLHlsPTAsTW89bnVsbCxfdT0wLGFlPVtdLGVlPTAsQ3Q9bnVsbCxoZT0xLHhlPSIiO2Z1bmN0aW9uIFJlKGEsZSl7SWxbeWwrK109X3UsSWxbeWwrK109TW8sTW89YSxfdT1lfWZ1bmN0aW9uIHltKGEsZSx0KXthZVtlZSsrXT1oZSxhZVtlZSsrXT14ZSxhZVtlZSsrXT1DdCxDdD1hO3ZhciBsPWhlO2E9eGU7dmFyIHU9MzItWmEobCktMTtsJj1+KDE8PHUpLHQrPTE7dmFyIGY9MzItWmEoZSkrdTtpZigzMDxmKXt2YXIgbz11LXUlNTtmPShsJigxPDxvKS0xKS50b1N0cmluZygzMiksbD4+PW8sdS09byxoZT0xPDwzMi1aYShlKSt1fHQ8PHV8bCx4ZT1mK2F9ZWxzZSBoZT0xPDxmfHQ8PHV8bCx4ZT1hfWZ1bmN0aW9uIE9pKGEpe2EucmV0dXJuIT09bnVsbCYmKFJlKGEsMSkseW0oYSwxLDApKX1mdW5jdGlvbiBVaShhKXtmb3IoO2E9PT1NbzspTW89SWxbLS15bF0sSWxbeWxdPW51bGwsX3U9SWxbLS15bF0sSWxbeWxdPW51bGw7Zm9yKDthPT09Q3Q7KUN0PWFlWy0tZWVdLGFlW2VlXT1udWxsLHhlPWFlWy0tZWVdLGFlW2VlXT1udWxsLGhlPWFlWy0tZWVdLGFlW2VlXT1udWxsfWZ1bmN0aW9uIHZtKGEsZSl7YWVbZWUrK109aGUsYWVbZWUrK109eGUsYWVbZWUrK109Q3QsaGU9ZS5pZCx4ZT1lLm92ZXJmbG93LEN0PWF9dmFyIElhPW51bGwsVz1udWxsLEY9ITEsY3Q9bnVsbCx1ZT0hMSxHcz1FcnJvcihDKDUxOSkpO2Z1bmN0aW9uIEl0KGEpe3ZhciBlPUVycm9yKEMoNDE4LDE8YXJndW1lbnRzLmxlbmd0aCYmYXJndW1lbnRzWzFdIT09dm9pZCAwJiZhcmd1bWVudHNbMV0/InRleHQiOiJIVE1MIiwiIikpO3Rocm93IFB1KGxlKGUsYSkpLEdzfWZ1bmN0aW9uIFJyKGEpe3ZhciBlPWEuc3RhdGVOb2RlLHQ9YS50eXBlLGw9YS5tZW1vaXplZFByb3BzO3N3aXRjaChlW0NhXT1hLGVbVWFdPWwsdCl7Y2FzZSJkaWFsb2ciOkUoImNhbmNlbCIsZSksRSgiY2xvc2UiLGUpO2JyZWFrO2Nhc2UiaWZyYW1lIjpjYXNlIm9iamVjdCI6Y2FzZSJlbWJlZCI6RSgibG9hZCIsZSk7YnJlYWs7Y2FzZSJ2aWRlbyI6Y2FzZSJhdWRpbyI6Zm9yKHQ9MDt0PFF1Lmxlbmd0aDt0KyspRShRdVt0XSxlKTticmVhaztjYXNlInNvdXJjZSI6RSgiZXJyb3IiLGUpO2JyZWFrO2Nhc2UiaW1nIjpjYXNlImltYWdlIjpjYXNlImxpbmsiOkUoImVycm9yIixlKSxFKCJsb2FkIixlKTticmVhaztjYXNlImRldGFpbHMiOkUoInRvZ2dsZSIsZSk7YnJlYWs7Y2FzZSJpbnB1dCI6RSgiaW52YWxpZCIsZSksJGMoZSxsLnZhbHVlLGwuZGVmYXVsdFZhbHVlLGwuY2hlY2tlZCxsLmRlZmF1bHRDaGVja2VkLGwudHlwZSxsLm5hbWUsITApO2JyZWFrO2Nhc2Uic2VsZWN0IjpFKCJpbnZhbGlkIixlKTticmVhaztjYXNlInRleHRhcmVhIjpFKCJpbnZhbGlkIixlKSxlbShlLGwudmFsdWUsbC5kZWZhdWx0VmFsdWUsbC5jaGlsZHJlbil9dD1sLmNoaWxkcmVuLHR5cGVvZiB0IT0ic3RyaW5nIiYmdHlwZW9mIHQhPSJudW1iZXIiJiZ0eXBlb2YgdCE9ImJpZ2ludCJ8fGUudGV4dENvbnRlbnQ9PT0iIit0fHxsLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZz09PSEwfHxmTChlLnRleHRDb250ZW50LHQpPyhsLnBvcG92ZXIhPW51bGwmJihFKCJiZWZvcmV0b2dnbGUiLGUpLEUoInRvZ2dsZSIsZSkpLGwub25TY3JvbGwhPW51bGwmJkUoInNjcm9sbCIsZSksbC5vblNjcm9sbEVuZCE9bnVsbCYmRSgic2Nyb2xsZW5kIixlKSxsLm9uQ2xpY2shPW51bGwmJihlLm9uY2xpY2s9VWUpLGU9ITApOmU9ITEsZXx8SXQoYSwhMCl9ZnVuY3Rpb24gcXIoYSl7Zm9yKElhPWEucmV0dXJuO0lhOylzd2l0Y2goSWEudGFnKXtjYXNlIDU6Y2FzZSAzMTpjYXNlIDEzOnVlPSExO3JldHVybjtjYXNlIDI3OmNhc2UgMzp1ZT0hMDtyZXR1cm47ZGVmYXVsdDpJYT1JYS5yZXR1cm59fWZ1bmN0aW9uIHNsKGEpe2lmKGEhPT1JYSlyZXR1cm4hMTtpZighRilyZXR1cm4gcXIoYSksRj0hMCwhMTt2YXIgZT1hLnRhZyx0O2lmKCh0PWUhPT0zJiZlIT09MjcpJiYoKHQ9ZT09PTUpJiYodD1hLnR5cGUsdD0hKHQhPT0iZm9ybSImJnQhPT0iYnV0dG9uIil8fGNpKGEudHlwZSxhLm1lbW9pemVkUHJvcHMpKSx0PSF0KSx0JiZXJiZJdChhKSxxcihhKSxlPT09MTMpe2lmKGE9YS5tZW1vaXplZFN0YXRlLGE9YSE9PW51bGw/YS5kZWh5ZHJhdGVkOm51bGwsIWEpdGhyb3cgRXJyb3IoQygzMTcpKTtXPUljKGEpfWVsc2UgaWYoZT09PTMxKXtpZihhPWEubWVtb2l6ZWRTdGF0ZSxhPWEhPT1udWxsP2EuZGVoeWRyYXRlZDpudWxsLCFhKXRocm93IEVycm9yKEMoMzE3KSk7Vz1JYyhhKX1lbHNlIGU9PT0yNz8oZT1XLGJ0KGEudHlwZSk/KGE9aGksaGk9bnVsbCxXPWEpOlc9ZSk6Vz1JYT9vZShhLnN0YXRlTm9kZS5uZXh0U2libGluZyk6bnVsbDtyZXR1cm4hMH1mdW5jdGlvbiBHdCgpe1c9SWE9bnVsbCxGPSExfWZ1bmN0aW9uIHVzKCl7dmFyIGE9Y3Q7cmV0dXJuIGEhPT1udWxsJiYocWE9PT1udWxsP3FhPWE6cWEucHVzaC5hcHBseShxYSxhKSxjdD1udWxsKSxhfWZ1bmN0aW9uIFB1KGEpe2N0PT09bnVsbD9jdD1bYV06Y3QucHVzaChhKX12YXIgX3M9Q2UobnVsbCksS3Q9bnVsbCx6ZT1udWxsO2Z1bmN0aW9uIHR0KGEsZSx0KXtqKF9zLGUuX2N1cnJlbnRWYWx1ZSksZS5fY3VycmVudFZhbHVlPXR9ZnVuY3Rpb24gSGUoYSl7YS5fY3VycmVudFZhbHVlPV9zLmN1cnJlbnQsU2EoX3MpfWZ1bmN0aW9uIFBzKGEsZSx0KXtmb3IoO2EhPT1udWxsOyl7dmFyIGw9YS5hbHRlcm5hdGU7aWYoKGEuY2hpbGRMYW5lcyZlKSE9PWU/KGEuY2hpbGRMYW5lc3w9ZSxsIT09bnVsbCYmKGwuY2hpbGRMYW5lc3w9ZSkpOmwhPT1udWxsJiYobC5jaGlsZExhbmVzJmUpIT09ZSYmKGwuY2hpbGRMYW5lc3w9ZSksYT09PXQpYnJlYWs7YT1hLnJldHVybn19ZnVuY3Rpb24gWHMoYSxlLHQsbCl7dmFyIHU9YS5jaGlsZDtmb3IodSE9PW51bGwmJih1LnJldHVybj1hKTt1IT09bnVsbDspe3ZhciBmPXUuZGVwZW5kZW5jaWVzO2lmKGYhPT1udWxsKXt2YXIgbz11LmNoaWxkO2Y9Zi5maXJzdENvbnRleHQ7YTpmb3IoO2YhPT1udWxsOyl7dmFyIGQ9ZjtmPXU7Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDtpKyspaWYoZC5jb250ZXh0PT09ZVtpXSl7Zi5sYW5lc3w9dCxkPWYuYWx0ZXJuYXRlLGQhPT1udWxsJiYoZC5sYW5lc3w9dCksUHMoZi5yZXR1cm4sdCxhKSxsfHwobz1udWxsKTticmVhayBhfWY9ZC5uZXh0fX1lbHNlIGlmKHUudGFnPT09MTgpe2lmKG89dS5yZXR1cm4sbz09PW51bGwpdGhyb3cgRXJyb3IoQygzNDEpKTtvLmxhbmVzfD10LGY9by5hbHRlcm5hdGUsZiE9PW51bGwmJihmLmxhbmVzfD10KSxQcyhvLHQsYSksbz1udWxsfWVsc2Ugbz11LmNoaWxkO2lmKG8hPT1udWxsKW8ucmV0dXJuPXU7ZWxzZSBmb3Iobz11O28hPT1udWxsOyl7aWYobz09PWEpe289bnVsbDticmVha31pZih1PW8uc2libGluZyx1IT09bnVsbCl7dS5yZXR1cm49by5yZXR1cm4sbz11O2JyZWFrfW89by5yZXR1cm59dT1vfX1mdW5jdGlvbiBYbChhLGUsdCxsKXthPW51bGw7Zm9yKHZhciB1PWUsZj0hMTt1IT09bnVsbDspe2lmKCFmKXtpZigodS5mbGFncyY1MjQyODgpIT09MClmPSEwO2Vsc2UgaWYoKHUuZmxhZ3MmMjYyMTQ0KSE9PTApYnJlYWt9aWYodS50YWc9PT0xMCl7dmFyIG89dS5hbHRlcm5hdGU7aWYobz09PW51bGwpdGhyb3cgRXJyb3IoQygzODcpKTtpZihvPW8ubWVtb2l6ZWRQcm9wcyxvIT09bnVsbCl7dmFyIGQ9dS50eXBlO1lhKHUucGVuZGluZ1Byb3BzLnZhbHVlLG8udmFsdWUpfHwoYSE9PW51bGw/YS5wdXNoKGQpOmE9W2RdKX19ZWxzZSBpZih1PT09Z28uY3VycmVudCl7aWYobz11LmFsdGVybmF0ZSxvPT09bnVsbCl0aHJvdyBFcnJvcihDKDM4NykpO28ubWVtb2l6ZWRTdGF0ZS5tZW1vaXplZFN0YXRlIT09dS5tZW1vaXplZFN0YXRlLm1lbW9pemVkU3RhdGUmJihhIT09bnVsbD9hLnB1c2goanUpOmE9W2p1XSl9dT11LnJldHVybn1hIT09bnVsbCYmWHMoZSxhLHQsbCksZS5mbGFnc3w9MjYyMTQ0fWZ1bmN0aW9uIERvKGEpe2ZvcihhPWEuZmlyc3RDb250ZXh0O2EhPT1udWxsOyl7aWYoIVlhKGEuY29udGV4dC5fY3VycmVudFZhbHVlLGEubWVtb2l6ZWRWYWx1ZSkpcmV0dXJuITA7YT1hLm5leHR9cmV0dXJuITF9ZnVuY3Rpb24gX3QoYSl7S3Q9YSx6ZT1udWxsLGE9YS5kZXBlbmRlbmNpZXMsYSE9PW51bGwmJihhLmZpcnN0Q29udGV4dD1udWxsKX1mdW5jdGlvbiB5YShhKXtyZXR1cm4gQW0oS3QsYSl9ZnVuY3Rpb24gUWYoYSxlKXtyZXR1cm4gS3Q9PT1udWxsJiZfdChhKSxBbShhLGUpfWZ1bmN0aW9uIEFtKGEsZSl7dmFyIHQ9ZS5fY3VycmVudFZhbHVlO2lmKGU9e2NvbnRleHQ6ZSxtZW1vaXplZFZhbHVlOnQsbmV4dDpudWxsfSx6ZT09PW51bGwpe2lmKGE9PT1udWxsKXRocm93IEVycm9yKEMoMzA4KSk7emU9ZSxhLmRlcGVuZGVuY2llcz17bGFuZXM6MCxmaXJzdENvbnRleHQ6ZX0sYS5mbGFnc3w9NTI0Mjg4fWVsc2UgemU9emUubmV4dD1lO3JldHVybiB0fXZhciBreD10eXBlb2YgQWJvcnRDb250cm9sbGVyPCJ1Ij9BYm9ydENvbnRyb2xsZXI6ZnVuY3Rpb24oKXt2YXIgYT1bXSxlPXRoaXMuc2lnbmFsPXthYm9ydGVkOiExLGFkZEV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24odCxsKXthLnB1c2gobCl9fTt0aGlzLmFib3J0PWZ1bmN0aW9uKCl7ZS5hYm9ydGVkPSEwLGEuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdCgpfSl9fSx3eD1wYS51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLFJ4PXBhLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LHJhPXskJHR5cGVvZjpPZSxDb25zdW1lcjpudWxsLFByb3ZpZGVyOm51bGwsX2N1cnJlbnRWYWx1ZTpudWxsLF9jdXJyZW50VmFsdWUyOm51bGwsX3RocmVhZENvdW50OjB9O2Z1bmN0aW9uIHppKCl7cmV0dXJue2NvbnRyb2xsZXI6bmV3IGt4LGRhdGE6bmV3IE1hcCxyZWZDb3VudDowfX1mdW5jdGlvbiB1ZihhKXthLnJlZkNvdW50LS0sYS5yZWZDb3VudD09PTAmJnd4KFJ4LGZ1bmN0aW9uKCl7YS5jb250cm9sbGVyLmFib3J0KCl9KX12YXIgVHU9bnVsbCxWcz0wLE9sPTAsRGw9bnVsbDtmdW5jdGlvbiBxeChhLGUpe2lmKFR1PT09bnVsbCl7dmFyIHQ9VHU9W107VnM9MCxPbD1kbigpLERsPXtzdGF0dXM6InBlbmRpbmciLHZhbHVlOnZvaWQgMCx0aGVuOmZ1bmN0aW9uKGwpe3QucHVzaChsKX19fXJldHVybiBWcysrLGUudGhlbihPcixPciksZX1mdW5jdGlvbiBPcigpe2lmKC0tVnM9PT0wJiZUdSE9PW51bGwpe0RsIT09bnVsbCYmKERsLnN0YXR1cz0iZnVsZmlsbGVkIik7dmFyIGE9VHU7VHU9bnVsbCxPbD0wLERsPW51bGw7Zm9yKHZhciBlPTA7ZTxhLmxlbmd0aDtlKyspKDAsYVtlXSkoKX19ZnVuY3Rpb24gT3goYSxlKXt2YXIgdD1bXSxsPXtzdGF0dXM6InBlbmRpbmciLHZhbHVlOm51bGwscmVhc29uOm51bGwsdGhlbjpmdW5jdGlvbih1KXt0LnB1c2godSl9fTtyZXR1cm4gYS50aGVuKGZ1bmN0aW9uKCl7bC5zdGF0dXM9ImZ1bGZpbGxlZCIsbC52YWx1ZT1lO2Zvcih2YXIgdT0wO3U8dC5sZW5ndGg7dSsrKSgwLHRbdV0pKGUpfSxmdW5jdGlvbih1KXtmb3IobC5zdGF0dXM9InJlamVjdGVkIixsLnJlYXNvbj11LHU9MDt1PHQubGVuZ3RoO3UrKykoMCx0W3VdKSh2b2lkIDApfSksbH12YXIgVXI9RC5TO0QuUz1mdW5jdGlvbihhLGUpe0hwPVhhKCksdHlwZW9mIGU9PSJvYmplY3QiJiZlIT09bnVsbCYmdHlwZW9mIGUudGhlbj09ImZ1bmN0aW9uIiYmcXgoYSxlKSxVciE9PW51bGwmJlVyKGEsZSl9O3ZhciBIdD1DZShudWxsKTtmdW5jdGlvbiBFaSgpe3ZhciBhPUh0LmN1cnJlbnQ7cmV0dXJuIGEhPT1udWxsP2E6WS5wb29sZWRDYWNoZX1mdW5jdGlvbiBpbyhhLGUpe2U9PT1udWxsP2ooSHQsSHQuY3VycmVudCk6aihIdCxlLnBvb2wpfWZ1bmN0aW9uIGJtKCl7dmFyIGE9RWkoKTtyZXR1cm4gYT09PW51bGw/bnVsbDp7cGFyZW50OnJhLl9jdXJyZW50VmFsdWUscG9vbDphfX12YXIgVmw9RXJyb3IoQyg0NjApKSxIaT1FcnJvcihDKDQ3NCkpLGFkPUVycm9yKEMoNTQyKSksVG89e3RoZW46ZnVuY3Rpb24oKXt9fTtmdW5jdGlvbiB6cihhKXtyZXR1cm4gYT1hLnN0YXR1cyxhPT09ImZ1bGZpbGxlZCJ8fGE9PT0icmVqZWN0ZWQifWZ1bmN0aW9uIE1tKGEsZSx0KXtzd2l0Y2godD1hW3RdLHQ9PT12b2lkIDA/YS5wdXNoKGUpOnQhPT1lJiYoZS50aGVuKFVlLFVlKSxlPXQpLGUuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIGUudmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgYT1lLnJlYXNvbixIcihhKSxhO2RlZmF1bHQ6aWYodHlwZW9mIGUuc3RhdHVzPT0ic3RyaW5nIillLnRoZW4oVWUsVWUpO2Vsc2V7aWYoYT1ZLGEhPT1udWxsJiYxMDA8YS5zaGVsbFN1c3BlbmRDb3VudGVyKXRocm93IEVycm9yKEMoNDgyKSk7YT1lLGEuc3RhdHVzPSJwZW5kaW5nIixhLnRoZW4oZnVuY3Rpb24obCl7aWYoZS5zdGF0dXM9PT0icGVuZGluZyIpe3ZhciB1PWU7dS5zdGF0dXM9ImZ1bGZpbGxlZCIsdS52YWx1ZT1sfX0sZnVuY3Rpb24obCl7aWYoZS5zdGF0dXM9PT0icGVuZGluZyIpe3ZhciB1PWU7dS5zdGF0dXM9InJlamVjdGVkIix1LnJlYXNvbj1sfX0pfXN3aXRjaChlLnN0YXR1cyl7Y2FzZSJmdWxmaWxsZWQiOnJldHVybiBlLnZhbHVlO2Nhc2UicmVqZWN0ZWQiOnRocm93IGE9ZS5yZWFzb24sSHIoYSksYX10aHJvdyBOdD1lLFZsfX1mdW5jdGlvbiBPdChhKXt0cnl7dmFyIGU9YS5faW5pdDtyZXR1cm4gZShhLl9wYXlsb2FkKX1jYXRjaCh0KXt0aHJvdyB0IT09bnVsbCYmdHlwZW9mIHQ9PSJvYmplY3QiJiZ0eXBlb2YgdC50aGVuPT0iZnVuY3Rpb24iPyhOdD10LFZsKTp0fX12YXIgTnQ9bnVsbDtmdW5jdGlvbiBFcigpe2lmKE50PT09bnVsbCl0aHJvdyBFcnJvcihDKDQ1OSkpO3ZhciBhPU50O3JldHVybiBOdD1udWxsLGF9ZnVuY3Rpb24gSHIoYSl7aWYoYT09PVZsfHxhPT09YWQpdGhyb3cgRXJyb3IoQyg0ODMpKX12YXIgVGw9bnVsbCxYdT0wO2Z1bmN0aW9uIFlmKGEpe3ZhciBlPVh1O3JldHVybiBYdSs9MSxUbD09PW51bGwmJihUbD1bXSksTW0oVGwsYSxlKX1mdW5jdGlvbiBMdShhLGUpe2U9ZS5wcm9wcy5yZWYsYS5yZWY9ZSE9PXZvaWQgMD9lOm51bGx9ZnVuY3Rpb24gamYoYSxlKXt0aHJvdyBlLiQkdHlwZW9mPT09Q2g/RXJyb3IoQyg1MjUpKTooYT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSksRXJyb3IoQygzMSxhPT09IltvYmplY3QgT2JqZWN0XSI/Im9iamVjdCB3aXRoIGtleXMgeyIrT2JqZWN0LmtleXMoZSkuam9pbigiLCAiKSsifSI6YSkpKX1mdW5jdGlvbiBEbShhKXtmdW5jdGlvbiBlKGMscil7aWYoYSl7dmFyIHA9Yy5kZWxldGlvbnM7cD09PW51bGw/KGMuZGVsZXRpb25zPVtyXSxjLmZsYWdzfD0xNik6cC5wdXNoKHIpfX1mdW5jdGlvbiB0KGMscil7aWYoIWEpcmV0dXJuIG51bGw7Zm9yKDtyIT09bnVsbDspZShjLHIpLHI9ci5zaWJsaW5nO3JldHVybiBudWxsfWZ1bmN0aW9uIGwoYyl7Zm9yKHZhciByPW5ldyBNYXA7YyE9PW51bGw7KWMua2V5IT09bnVsbD9yLnNldChjLmtleSxjKTpyLnNldChjLmluZGV4LGMpLGM9Yy5zaWJsaW5nO3JldHVybiByfWZ1bmN0aW9uIHUoYyxyKXtyZXR1cm4gYz1FZShjLHIpLGMuaW5kZXg9MCxjLnNpYmxpbmc9bnVsbCxjfWZ1bmN0aW9uIGYoYyxyLHApe3JldHVybiBjLmluZGV4PXAsYT8ocD1jLmFsdGVybmF0ZSxwIT09bnVsbD8ocD1wLmluZGV4LHA8cj8oYy5mbGFnc3w9NjcxMDg4NjYscik6cCk6KGMuZmxhZ3N8PTY3MTA4ODY2LHIpKTooYy5mbGFnc3w9MTA0ODU3NixyKX1mdW5jdGlvbiBvKGMpe3JldHVybiBhJiZjLmFsdGVybmF0ZT09PW51bGwmJihjLmZsYWdzfD02NzEwODg2NiksY31mdW5jdGlvbiBkKGMscixwLFMpe3JldHVybiByPT09bnVsbHx8ci50YWchPT02PyhyPXRzKHAsYy5tb2RlLFMpLHIucmV0dXJuPWMscik6KHI9dShyLHApLHIucmV0dXJuPWMscil9ZnVuY3Rpb24gaShjLHIscCxTKXt2YXIgTT1wLnR5cGU7cmV0dXJuIE09PT1jbD94KGMscixwLnByb3BzLmNoaWxkcmVuLFMscC5rZXkpOnIhPT1udWxsJiYoci5lbGVtZW50VHlwZT09PU18fHR5cGVvZiBNPT0ib2JqZWN0IiYmTSE9PW51bGwmJk0uJCR0eXBlb2Y9PT1hdCYmT3QoTSk9PT1yLnR5cGUpPyhyPXUocixwLnByb3BzKSxMdShyLHApLHIucmV0dXJuPWMscik6KHI9c28ocC50eXBlLHAua2V5LHAucHJvcHMsbnVsbCxjLm1vZGUsUyksTHUocixwKSxyLnJldHVybj1jLHIpfWZ1bmN0aW9uIG0oYyxyLHAsUyl7cmV0dXJuIHI9PT1udWxsfHxyLnRhZyE9PTR8fHIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8hPT1wLmNvbnRhaW5lckluZm98fHIuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uIT09cC5pbXBsZW1lbnRhdGlvbj8ocj1scyhwLGMubW9kZSxTKSxyLnJldHVybj1jLHIpOihyPXUocixwLmNoaWxkcmVufHxbXSksci5yZXR1cm49YyxyKX1mdW5jdGlvbiB4KGMscixwLFMsTSl7cmV0dXJuIHI9PT1udWxsfHxyLnRhZyE9PTc/KHI9RXQocCxjLm1vZGUsUyxNKSxyLnJldHVybj1jLHIpOihyPXUocixwKSxyLnJldHVybj1jLHIpfWZ1bmN0aW9uIGcoYyxyLHApe2lmKHR5cGVvZiByPT0ic3RyaW5nIiYmciE9PSIifHx0eXBlb2Ygcj09Im51bWJlciJ8fHR5cGVvZiByPT0iYmlnaW50IilyZXR1cm4gcj10cygiIityLGMubW9kZSxwKSxyLnJldHVybj1jLHI7aWYodHlwZW9mIHI9PSJvYmplY3QiJiZyIT09bnVsbCl7c3dpdGNoKHIuJCR0eXBlb2Ype2Nhc2UgTmY6cmV0dXJuIHA9c28oci50eXBlLHIua2V5LHIucHJvcHMsbnVsbCxjLm1vZGUscCksTHUocCxyKSxwLnJldHVybj1jLHA7Y2FzZSBDdTpyZXR1cm4gcj1scyhyLGMubW9kZSxwKSxyLnJldHVybj1jLHI7Y2FzZSBhdDpyZXR1cm4gcj1PdChyKSxnKGMscixwKX1pZihJdShyKXx8bXUocikpcmV0dXJuIHI9RXQocixjLm1vZGUscCxudWxsKSxyLnJldHVybj1jLHI7aWYodHlwZW9mIHIudGhlbj09ImZ1bmN0aW9uIilyZXR1cm4gZyhjLFlmKHIpLHApO2lmKHIuJCR0eXBlb2Y9PT1PZSlyZXR1cm4gZyhjLFFmKGMscikscCk7amYoYyxyKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBMKGMscixwLFMpe3ZhciBNPXIhPT1udWxsP3Iua2V5Om51bGw7aWYodHlwZW9mIHA9PSJzdHJpbmciJiZwIT09IiJ8fHR5cGVvZiBwPT0ibnVtYmVyInx8dHlwZW9mIHA9PSJiaWdpbnQiKXJldHVybiBNIT09bnVsbD9udWxsOmQoYyxyLCIiK3AsUyk7aWYodHlwZW9mIHA9PSJvYmplY3QiJiZwIT09bnVsbCl7c3dpdGNoKHAuJCR0eXBlb2Ype2Nhc2UgTmY6cmV0dXJuIHAua2V5PT09TT9pKGMscixwLFMpOm51bGw7Y2FzZSBDdTpyZXR1cm4gcC5rZXk9PT1NP20oYyxyLHAsUyk6bnVsbDtjYXNlIGF0OnJldHVybiBwPU90KHApLEwoYyxyLHAsUyl9aWYoSXUocCl8fG11KHApKXJldHVybiBNIT09bnVsbD9udWxsOngoYyxyLHAsUyxudWxsKTtpZih0eXBlb2YgcC50aGVuPT0iZnVuY3Rpb24iKXJldHVybiBMKGMscixZZihwKSxTKTtpZihwLiQkdHlwZW9mPT09T2UpcmV0dXJuIEwoYyxyLFFmKGMscCksUyk7amYoYyxwKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBoKGMscixwLFMsTSl7aWYodHlwZW9mIFM9PSJzdHJpbmciJiZTIT09IiJ8fHR5cGVvZiBTPT0ibnVtYmVyInx8dHlwZW9mIFM9PSJiaWdpbnQiKXJldHVybiBjPWMuZ2V0KHApfHxudWxsLGQocixjLCIiK1MsTSk7aWYodHlwZW9mIFM9PSJvYmplY3QiJiZTIT09bnVsbCl7c3dpdGNoKFMuJCR0eXBlb2Ype2Nhc2UgTmY6cmV0dXJuIGM9Yy5nZXQoUy5rZXk9PT1udWxsP3A6Uy5rZXkpfHxudWxsLGkocixjLFMsTSk7Y2FzZSBDdTpyZXR1cm4gYz1jLmdldChTLmtleT09PW51bGw/cDpTLmtleSl8fG51bGwsbShyLGMsUyxNKTtjYXNlIGF0OnJldHVybiBTPU90KFMpLGgoYyxyLHAsUyxNKX1pZihJdShTKXx8bXUoUykpcmV0dXJuIGM9Yy5nZXQocCl8fG51bGwseChyLGMsUyxNLG51bGwpO2lmKHR5cGVvZiBTLnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIGgoYyxyLHAsWWYoUyksTSk7aWYoUy4kJHR5cGVvZj09PU9lKXJldHVybiBoKGMscixwLFFmKHIsUyksTSk7amYocixTKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB5KGMscixwLFMpe2Zvcih2YXIgTT1udWxsLFU9bnVsbCxBPXIsVD1yPTAscT1udWxsO0EhPT1udWxsJiZUPHAubGVuZ3RoO1QrKyl7QS5pbmRleD5UPyhxPUEsQT1udWxsKTpxPUEuc2libGluZzt2YXIgTz1MKGMsQSxwW1RdLFMpO2lmKE89PT1udWxsKXtBPT09bnVsbCYmKEE9cSk7YnJlYWt9YSYmQSYmTy5hbHRlcm5hdGU9PT1udWxsJiZlKGMsQSkscj1mKE8scixUKSxVPT09bnVsbD9NPU86VS5zaWJsaW5nPU8sVT1PLEE9cX1pZihUPT09cC5sZW5ndGgpcmV0dXJuIHQoYyxBKSxGJiZSZShjLFQpLE07aWYoQT09PW51bGwpe2Zvcig7VDxwLmxlbmd0aDtUKyspQT1nKGMscFtUXSxTKSxBIT09bnVsbCYmKHI9ZihBLHIsVCksVT09PW51bGw/TT1BOlUuc2libGluZz1BLFU9QSk7cmV0dXJuIEYmJlJlKGMsVCksTX1mb3IoQT1sKEEpO1Q8cC5sZW5ndGg7VCsrKXE9aChBLGMsVCxwW1RdLFMpLHEhPT1udWxsJiYoYSYmcS5hbHRlcm5hdGUhPT1udWxsJiZBLmRlbGV0ZShxLmtleT09PW51bGw/VDpxLmtleSkscj1mKHEscixUKSxVPT09bnVsbD9NPXE6VS5zaWJsaW5nPXEsVT1xKTtyZXR1cm4gYSYmQS5mb3JFYWNoKGZ1bmN0aW9uKEthKXtyZXR1cm4gZShjLEthKX0pLEYmJlJlKGMsVCksTX1mdW5jdGlvbiBiKGMscixwLFMpe2lmKHA9PW51bGwpdGhyb3cgRXJyb3IoQygxNTEpKTtmb3IodmFyIE09bnVsbCxVPW51bGwsQT1yLFQ9cj0wLHE9bnVsbCxPPXAubmV4dCgpO0EhPT1udWxsJiYhTy5kb25lO1QrKyxPPXAubmV4dCgpKXtBLmluZGV4PlQ/KHE9QSxBPW51bGwpOnE9QS5zaWJsaW5nO3ZhciBLYT1MKGMsQSxPLnZhbHVlLFMpO2lmKEthPT09bnVsbCl7QT09PW51bGwmJihBPXEpO2JyZWFrfWEmJkEmJkthLmFsdGVybmF0ZT09PW51bGwmJmUoYyxBKSxyPWYoS2EscixUKSxVPT09bnVsbD9NPUthOlUuc2libGluZz1LYSxVPUthLEE9cX1pZihPLmRvbmUpcmV0dXJuIHQoYyxBKSxGJiZSZShjLFQpLE07aWYoQT09PW51bGwpe2Zvcig7IU8uZG9uZTtUKyssTz1wLm5leHQoKSlPPWcoYyxPLnZhbHVlLFMpLE8hPT1udWxsJiYocj1mKE8scixUKSxVPT09bnVsbD9NPU86VS5zaWJsaW5nPU8sVT1PKTtyZXR1cm4gRiYmUmUoYyxUKSxNfWZvcihBPWwoQSk7IU8uZG9uZTtUKyssTz1wLm5leHQoKSlPPWgoQSxjLFQsTy52YWx1ZSxTKSxPIT09bnVsbCYmKGEmJk8uYWx0ZXJuYXRlIT09bnVsbCYmQS5kZWxldGUoTy5rZXk9PT1udWxsP1Q6Ty5rZXkpLHI9ZihPLHIsVCksVT09PW51bGw/TT1POlUuc2libGluZz1PLFU9Tyk7cmV0dXJuIGEmJkEuZm9yRWFjaChmdW5jdGlvbihUdCl7cmV0dXJuIGUoYyxUdCl9KSxGJiZSZShjLFQpLE19ZnVuY3Rpb24gRyhjLHIscCxTKXtpZih0eXBlb2YgcD09Im9iamVjdCImJnAhPT1udWxsJiZwLnR5cGU9PT1jbCYmcC5rZXk9PT1udWxsJiYocD1wLnByb3BzLmNoaWxkcmVuKSx0eXBlb2YgcD09Im9iamVjdCImJnAhPT1udWxsKXtzd2l0Y2gocC4kJHR5cGVvZil7Y2FzZSBOZjphOntmb3IodmFyIE09cC5rZXk7ciE9PW51bGw7KXtpZihyLmtleT09PU0pe2lmKE09cC50eXBlLE09PT1jbCl7aWYoci50YWc9PT03KXt0KGMsci5zaWJsaW5nKSxTPXUocixwLnByb3BzLmNoaWxkcmVuKSxTLnJldHVybj1jLGM9UzticmVhayBhfX1lbHNlIGlmKHIuZWxlbWVudFR5cGU9PT1NfHx0eXBlb2YgTT09Im9iamVjdCImJk0hPT1udWxsJiZNLiQkdHlwZW9mPT09YXQmJk90KE0pPT09ci50eXBlKXt0KGMsci5zaWJsaW5nKSxTPXUocixwLnByb3BzKSxMdShTLHApLFMucmV0dXJuPWMsYz1TO2JyZWFrIGF9dChjLHIpO2JyZWFrfWVsc2UgZShjLHIpO3I9ci5zaWJsaW5nfXAudHlwZT09PWNsPyhTPUV0KHAucHJvcHMuY2hpbGRyZW4sYy5tb2RlLFMscC5rZXkpLFMucmV0dXJuPWMsYz1TKTooUz1zbyhwLnR5cGUscC5rZXkscC5wcm9wcyxudWxsLGMubW9kZSxTKSxMdShTLHApLFMucmV0dXJuPWMsYz1TKX1yZXR1cm4gbyhjKTtjYXNlIEN1OmE6e2ZvcihNPXAua2V5O3IhPT1udWxsOyl7aWYoci5rZXk9PT1NKWlmKHIudGFnPT09NCYmci5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PXAuY29udGFpbmVySW5mbyYmci5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb249PT1wLmltcGxlbWVudGF0aW9uKXt0KGMsci5zaWJsaW5nKSxTPXUocixwLmNoaWxkcmVufHxbXSksUy5yZXR1cm49YyxjPVM7YnJlYWsgYX1lbHNle3QoYyxyKTticmVha31lbHNlIGUoYyxyKTtyPXIuc2libGluZ31TPWxzKHAsYy5tb2RlLFMpLFMucmV0dXJuPWMsYz1TfXJldHVybiBvKGMpO2Nhc2UgYXQ6cmV0dXJuIHA9T3QocCksRyhjLHIscCxTKX1pZihJdShwKSlyZXR1cm4geShjLHIscCxTKTtpZihtdShwKSl7aWYoTT1tdShwKSx0eXBlb2YgTSE9ImZ1bmN0aW9uIil0aHJvdyBFcnJvcihDKDE1MCkpO3JldHVybiBwPU0uY2FsbChwKSxiKGMscixwLFMpfWlmKHR5cGVvZiBwLnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIEcoYyxyLFlmKHApLFMpO2lmKHAuJCR0eXBlb2Y9PT1PZSlyZXR1cm4gRyhjLHIsUWYoYyxwKSxTKTtqZihjLHApfXJldHVybiB0eXBlb2YgcD09InN0cmluZyImJnAhPT0iInx8dHlwZW9mIHA9PSJudW1iZXIifHx0eXBlb2YgcD09ImJpZ2ludCI/KHA9IiIrcCxyIT09bnVsbCYmci50YWc9PT02Pyh0KGMsci5zaWJsaW5nKSxTPXUocixwKSxTLnJldHVybj1jLGM9Uyk6KHQoYyxyKSxTPXRzKHAsYy5tb2RlLFMpLFMucmV0dXJuPWMsYz1TKSxvKGMpKTp0KGMscil9cmV0dXJuIGZ1bmN0aW9uKGMscixwLFMpe3RyeXtYdT0wO3ZhciBNPUcoYyxyLHAsUyk7cmV0dXJuIFRsPW51bGwsTX1jYXRjaChBKXtpZihBPT09Vmx8fEE9PT1hZCl0aHJvdyBBO3ZhciBVPV9hKDI5LEEsbnVsbCxjLm1vZGUpO3JldHVybiBVLmxhbmVzPVMsVS5yZXR1cm49YyxVfX19dmFyIFB0PURtKCEwKSxUbT1EbSghMSksZXQ9ITE7ZnVuY3Rpb24gTmkoYSl7YS51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmEubWVtb2l6ZWRTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6bnVsbCxsYXN0QmFzZVVwZGF0ZTpudWxsLHNoYXJlZDp7cGVuZGluZzpudWxsLGxhbmVzOjAsaGlkZGVuQ2FsbGJhY2tzOm51bGx9LGNhbGxiYWNrczpudWxsfX1mdW5jdGlvbiBacyhhLGUpe2E9YS51cGRhdGVRdWV1ZSxlLnVwZGF0ZVF1ZXVlPT09YSYmKGUudXBkYXRlUXVldWU9e2Jhc2VTdGF0ZTphLmJhc2VTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6YS5maXJzdEJhc2VVcGRhdGUsbGFzdEJhc2VVcGRhdGU6YS5sYXN0QmFzZVVwZGF0ZSxzaGFyZWQ6YS5zaGFyZWQsY2FsbGJhY2tzOm51bGx9KX1mdW5jdGlvbiBtdChhKXtyZXR1cm57bGFuZTphLHRhZzowLHBheWxvYWQ6bnVsbCxjYWxsYmFjazpudWxsLG5leHQ6bnVsbH19ZnVuY3Rpb24gcHQoYSxlLHQpe3ZhciBsPWEudXBkYXRlUXVldWU7aWYobD09PW51bGwpcmV0dXJuIG51bGw7aWYobD1sLnNoYXJlZCwoXyYyKSE9PTApe3ZhciB1PWwucGVuZGluZztyZXR1cm4gdT09PW51bGw/ZS5uZXh0PWU6KGUubmV4dD11Lm5leHQsdS5uZXh0PWUpLGwucGVuZGluZz1lLGU9Ym8oYSksZ20oYSxudWxsLHQpLGV9cmV0dXJuICRvKGEsbCxlLHQpLGJvKGEpfWZ1bmN0aW9uIEJ1KGEsZSx0KXtpZihlPWUudXBkYXRlUXVldWUsZSE9PW51bGwmJihlPWUuc2hhcmVkLCh0JjQxOTQwNDgpIT09MCkpe3ZhciBsPWUubGFuZXM7bCY9YS5wZW5kaW5nTGFuZXMsdHw9bCxlLmxhbmVzPXQsWmMoYSx0KX19ZnVuY3Rpb24gZnMoYSxlKXt2YXIgdD1hLnVwZGF0ZVF1ZXVlLGw9YS5hbHRlcm5hdGU7aWYobCE9PW51bGwmJihsPWwudXBkYXRlUXVldWUsdD09PWwpKXt2YXIgdT1udWxsLGY9bnVsbDtpZih0PXQuZmlyc3RCYXNlVXBkYXRlLHQhPT1udWxsKXtkb3t2YXIgbz17bGFuZTp0LmxhbmUsdGFnOnQudGFnLHBheWxvYWQ6dC5wYXlsb2FkLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfTtmPT09bnVsbD91PWY9bzpmPWYubmV4dD1vLHQ9dC5uZXh0fXdoaWxlKHQhPT1udWxsKTtmPT09bnVsbD91PWY9ZTpmPWYubmV4dD1lfWVsc2UgdT1mPWU7dD17YmFzZVN0YXRlOmwuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTp1LGxhc3RCYXNlVXBkYXRlOmYsc2hhcmVkOmwuc2hhcmVkLGNhbGxiYWNrczpsLmNhbGxiYWNrc30sYS51cGRhdGVRdWV1ZT10O3JldHVybn1hPXQubGFzdEJhc2VVcGRhdGUsYT09PW51bGw/dC5maXJzdEJhc2VVcGRhdGU9ZTphLm5leHQ9ZSx0Lmxhc3RCYXNlVXBkYXRlPWV9dmFyIFFzPSExO2Z1bmN0aW9uIGt1KCl7aWYoUXMpe3ZhciBhPURsO2lmKGEhPT1udWxsKXRocm93IGF9fWZ1bmN0aW9uIHd1KGEsZSx0LGwpe1FzPSExO3ZhciB1PWEudXBkYXRlUXVldWU7ZXQ9ITE7dmFyIGY9dS5maXJzdEJhc2VVcGRhdGUsbz11Lmxhc3RCYXNlVXBkYXRlLGQ9dS5zaGFyZWQucGVuZGluZztpZihkIT09bnVsbCl7dS5zaGFyZWQucGVuZGluZz1udWxsO3ZhciBpPWQsbT1pLm5leHQ7aS5uZXh0PW51bGwsbz09PW51bGw/Zj1tOm8ubmV4dD1tLG89aTt2YXIgeD1hLmFsdGVybmF0ZTt4IT09bnVsbCYmKHg9eC51cGRhdGVRdWV1ZSxkPXgubGFzdEJhc2VVcGRhdGUsZCE9PW8mJihkPT09bnVsbD94LmZpcnN0QmFzZVVwZGF0ZT1tOmQubmV4dD1tLHgubGFzdEJhc2VVcGRhdGU9aSkpfWlmKGYhPT1udWxsKXt2YXIgZz11LmJhc2VTdGF0ZTtvPTAseD1tPWk9bnVsbCxkPWY7ZG97dmFyIEw9ZC5sYW5lJi01MzY4NzA5MTMsaD1MIT09ZC5sYW5lO2lmKGg/KE4mTCk9PT1MOihsJkwpPT09TCl7TCE9PTAmJkw9PT1PbCYmKFFzPSEwKSx4IT09bnVsbCYmKHg9eC5uZXh0PXtsYW5lOjAsdGFnOmQudGFnLHBheWxvYWQ6ZC5wYXlsb2FkLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfSk7YTp7dmFyIHk9YSxiPWQ7TD1lO3ZhciBHPXQ7c3dpdGNoKGIudGFnKXtjYXNlIDE6aWYoeT1iLnBheWxvYWQsdHlwZW9mIHk9PSJmdW5jdGlvbiIpe2c9eS5jYWxsKEcsZyxMKTticmVhayBhfWc9eTticmVhayBhO2Nhc2UgMzp5LmZsYWdzPXkuZmxhZ3MmLTY1NTM3fDEyODtjYXNlIDA6aWYoeT1iLnBheWxvYWQsTD10eXBlb2YgeT09ImZ1bmN0aW9uIj95LmNhbGwoRyxnLEwpOnksTD09bnVsbClicmVhayBhO2c9JCh7fSxnLEwpO2JyZWFrIGE7Y2FzZSAyOmV0PSEwfX1MPWQuY2FsbGJhY2ssTCE9PW51bGwmJihhLmZsYWdzfD02NCxoJiYoYS5mbGFnc3w9ODE5MiksaD11LmNhbGxiYWNrcyxoPT09bnVsbD91LmNhbGxiYWNrcz1bTF06aC5wdXNoKEwpKX1lbHNlIGg9e2xhbmU6TCx0YWc6ZC50YWcscGF5bG9hZDpkLnBheWxvYWQsY2FsbGJhY2s6ZC5jYWxsYmFjayxuZXh0Om51bGx9LHg9PT1udWxsPyhtPXg9aCxpPWcpOng9eC5uZXh0PWgsb3w9TDtpZihkPWQubmV4dCxkPT09bnVsbCl7aWYoZD11LnNoYXJlZC5wZW5kaW5nLGQ9PT1udWxsKWJyZWFrO2g9ZCxkPWgubmV4dCxoLm5leHQ9bnVsbCx1Lmxhc3RCYXNlVXBkYXRlPWgsdS5zaGFyZWQucGVuZGluZz1udWxsfX13aGlsZSghMCk7eD09PW51bGwmJihpPWcpLHUuYmFzZVN0YXRlPWksdS5maXJzdEJhc2VVcGRhdGU9bSx1Lmxhc3RCYXNlVXBkYXRlPXgsZj09PW51bGwmJih1LnNoYXJlZC5sYW5lcz0wKSx2dHw9byxhLmxhbmVzPW8sYS5tZW1vaXplZFN0YXRlPWd9fWZ1bmN0aW9uIEJtKGEsZSl7aWYodHlwZW9mIGEhPSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IoQygxOTEsYSkpO2EuY2FsbChlKX1mdW5jdGlvbiBrbShhLGUpe3ZhciB0PWEuY2FsbGJhY2tzO2lmKHQhPT1udWxsKWZvcihhLmNhbGxiYWNrcz1udWxsLGE9MDthPHQubGVuZ3RoO2ErKylCbSh0W2FdLGUpfXZhciBVbD1DZShudWxsKSxCbz1DZSgwKTtmdW5jdGlvbiBOcihhLGUpe2E9WGUsaihCbyxhKSxqKFVsLGUpLFhlPWF8ZS5iYXNlTGFuZXN9ZnVuY3Rpb24gWXMoKXtqKEJvLFhlKSxqKFVsLFVsLmN1cnJlbnQpfWZ1bmN0aW9uIEZpKCl7WGU9Qm8uY3VycmVudCxTYShVbCksU2EoQm8pfXZhciBqYT1DZShudWxsKSxmZT1udWxsO2Z1bmN0aW9uIGx0KGEpe3ZhciBlPWEuYWx0ZXJuYXRlO2ooZGEsZGEuY3VycmVudCYxKSxqKGphLGEpLGZlPT09bnVsbCYmKGU9PT1udWxsfHxVbC5jdXJyZW50IT09bnVsbHx8ZS5tZW1vaXplZFN0YXRlIT09bnVsbCkmJihmZT1hKX1mdW5jdGlvbiBqcyhhKXtqKGRhLGRhLmN1cnJlbnQpLGooamEsYSksZmU9PT1udWxsJiYoZmU9YSl9ZnVuY3Rpb24gd20oYSl7YS50YWc9PT0yMj8oaihkYSxkYS5jdXJyZW50KSxqKGphLGEpLGZlPT09bnVsbCYmKGZlPWEpKTp1dChhKX1mdW5jdGlvbiB1dCgpe2ooZGEsZGEuY3VycmVudCksaihqYSxqYS5jdXJyZW50KX1mdW5jdGlvbiBHYShhKXtTYShqYSksZmU9PT1hJiYoZmU9bnVsbCksU2EoZGEpfXZhciBkYT1DZSgwKTtmdW5jdGlvbiBrbyhhKXtmb3IodmFyIGU9YTtlIT09bnVsbDspe2lmKGUudGFnPT09MTMpe3ZhciB0PWUubWVtb2l6ZWRTdGF0ZTtpZih0IT09bnVsbCYmKHQ9dC5kZWh5ZHJhdGVkLHQ9PT1udWxsfHxwaSh0KXx8TGkodCkpKXJldHVybiBlfWVsc2UgaWYoZS50YWc9PT0xOSYmKGUubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcj09PSJmb3J3YXJkcyJ8fGUubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcj09PSJiYWNrd2FyZHMifHxlLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXI9PT0idW5zdGFibGVfbGVnYWN5LWJhY2t3YXJkcyJ8fGUubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcj09PSJ0b2dldGhlciIpKXtpZigoZS5mbGFncyYxMjgpIT09MClyZXR1cm4gZX1lbHNlIGlmKGUuY2hpbGQhPT1udWxsKXtlLmNoaWxkLnJldHVybj1lLGU9ZS5jaGlsZDtjb250aW51ZX1pZihlPT09YSlicmVhaztmb3IoO2Uuc2libGluZz09PW51bGw7KXtpZihlLnJldHVybj09PW51bGx8fGUucmV0dXJuPT09YSlyZXR1cm4gbnVsbDtlPWUucmV0dXJufWUuc2libGluZy5yZXR1cm49ZS5yZXR1cm4sZT1lLnNpYmxpbmd9cmV0dXJuIG51bGx9dmFyIEdlPTAsUj1udWxsLFE9bnVsbCxpYT1udWxsLHdvPSExLEJsPSExLFh0PSExLFJvPTAsVnU9MCxrbD1udWxsLFV4PTA7ZnVuY3Rpb24gZmEoKXt0aHJvdyBFcnJvcihDKDMyMSkpfWZ1bmN0aW9uIEdpKGEsZSl7aWYoZT09PW51bGwpcmV0dXJuITE7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aCYmdDxhLmxlbmd0aDt0KyspaWYoIVlhKGFbdF0sZVt0XSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gX2koYSxlLHQsbCx1LGYpe3JldHVybiBHZT1mLFI9ZSxlLm1lbW9pemVkU3RhdGU9bnVsbCxlLnVwZGF0ZVF1ZXVlPW51bGwsZS5sYW5lcz0wLEQuSD1hPT09bnVsbHx8YS5tZW1vaXplZFN0YXRlPT09bnVsbD9zcDokaSxYdD0hMSxmPXQobCx1KSxYdD0hMSxCbCYmKGY9cW0oZSx0LGwsdSkpLFJtKGEpLGZ9ZnVuY3Rpb24gUm0oYSl7RC5IPVp1O3ZhciBlPVEhPT1udWxsJiZRLm5leHQhPT1udWxsO2lmKEdlPTAsaWE9UT1SPW51bGwsd289ITEsVnU9MCxrbD1udWxsLGUpdGhyb3cgRXJyb3IoQygzMDApKTthPT09bnVsbHx8Y2F8fChhPWEuZGVwZW5kZW5jaWVzLGEhPT1udWxsJiZEbyhhKSYmKGNhPSEwKSl9ZnVuY3Rpb24gcW0oYSxlLHQsbCl7Uj1hO3ZhciB1PTA7ZG97aWYoQmwmJihrbD1udWxsKSxWdT0wLEJsPSExLDI1PD11KXRocm93IEVycm9yKEMoMzAxKSk7aWYodSs9MSxpYT1RPW51bGwsYS51cGRhdGVRdWV1ZSE9bnVsbCl7dmFyIGY9YS51cGRhdGVRdWV1ZTtmLmxhc3RFZmZlY3Q9bnVsbCxmLmV2ZW50cz1udWxsLGYuc3RvcmVzPW51bGwsZi5tZW1vQ2FjaGUhPW51bGwmJihmLm1lbW9DYWNoZS5pbmRleD0wKX1ELkg9aXAsZj1lKHQsbCl9d2hpbGUoQmwpO3JldHVybiBmfWZ1bmN0aW9uIHp4KCl7dmFyIGE9RC5ILGU9YS51c2VTdGF0ZSgpWzBdO3JldHVybiBlPXR5cGVvZiBlLnRoZW49PSJmdW5jdGlvbiI/ZmYoZSk6ZSxhPWEudXNlU3RhdGUoKVswXSwoUSE9PW51bGw/US5tZW1vaXplZFN0YXRlOm51bGwpIT09YSYmKFIuZmxhZ3N8PTEwMjQpLGV9ZnVuY3Rpb24gUGkoKXt2YXIgYT1SbyE9PTA7cmV0dXJuIFJvPTAsYX1mdW5jdGlvbiBYaShhLGUsdCl7ZS51cGRhdGVRdWV1ZT1hLnVwZGF0ZVF1ZXVlLGUuZmxhZ3MmPS0yMDUzLGEubGFuZXMmPX50fWZ1bmN0aW9uIFZpKGEpe2lmKHdvKXtmb3IoYT1hLm1lbW9pemVkU3RhdGU7YSE9PW51bGw7KXt2YXIgZT1hLnF1ZXVlO2UhPT1udWxsJiYoZS5wZW5kaW5nPW51bGwpLGE9YS5uZXh0fXdvPSExfUdlPTAsaWE9UT1SPW51bGwsQmw9ITEsVnU9Um89MCxrbD1udWxsfWZ1bmN0aW9uIEJhKCl7dmFyIGE9e21lbW9pemVkU3RhdGU6bnVsbCxiYXNlU3RhdGU6bnVsbCxiYXNlUXVldWU6bnVsbCxxdWV1ZTpudWxsLG5leHQ6bnVsbH07cmV0dXJuIGlhPT09bnVsbD9SLm1lbW9pemVkU3RhdGU9aWE9YTppYT1pYS5uZXh0PWEsaWF9ZnVuY3Rpb24gc2EoKXtpZihRPT09bnVsbCl7dmFyIGE9Ui5hbHRlcm5hdGU7YT1hIT09bnVsbD9hLm1lbW9pemVkU3RhdGU6bnVsbH1lbHNlIGE9US5uZXh0O3ZhciBlPWlhPT09bnVsbD9SLm1lbW9pemVkU3RhdGU6aWEubmV4dDtpZihlIT09bnVsbClpYT1lLFE9YTtlbHNle2lmKGE9PT1udWxsKXRocm93IFIuYWx0ZXJuYXRlPT09bnVsbD9FcnJvcihDKDQ2NykpOkVycm9yKEMoMzEwKSk7UT1hLGE9e21lbW9pemVkU3RhdGU6US5tZW1vaXplZFN0YXRlLGJhc2VTdGF0ZTpRLmJhc2VTdGF0ZSxiYXNlUXVldWU6US5iYXNlUXVldWUscXVldWU6US5xdWV1ZSxuZXh0Om51bGx9LGlhPT09bnVsbD9SLm1lbW9pemVkU3RhdGU9aWE9YTppYT1pYS5uZXh0PWF9cmV0dXJuIGlhfWZ1bmN0aW9uIGVkKCl7cmV0dXJue2xhc3RFZmZlY3Q6bnVsbCxldmVudHM6bnVsbCxzdG9yZXM6bnVsbCxtZW1vQ2FjaGU6bnVsbH19ZnVuY3Rpb24gZmYoYSl7dmFyIGU9VnU7cmV0dXJuIFZ1Kz0xLGtsPT09bnVsbCYmKGtsPVtdKSxhPU1tKGtsLGEsZSksZT1SLChpYT09PW51bGw/ZS5tZW1vaXplZFN0YXRlOmlhLm5leHQpPT09bnVsbCYmKGU9ZS5hbHRlcm5hdGUsRC5IPWU9PT1udWxsfHxlLm1lbW9pemVkU3RhdGU9PT1udWxsP3NwOiRpKSxhfWZ1bmN0aW9uIHRkKGEpe2lmKGEhPT1udWxsJiZ0eXBlb2YgYT09Im9iamVjdCIpe2lmKHR5cGVvZiBhLnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIGZmKGEpO2lmKGEuJCR0eXBlb2Y9PT1PZSlyZXR1cm4geWEoYSl9dGhyb3cgRXJyb3IoQyg0MzgsU3RyaW5nKGEpKSl9ZnVuY3Rpb24gWmkoYSl7dmFyIGU9bnVsbCx0PVIudXBkYXRlUXVldWU7aWYodCE9PW51bGwmJihlPXQubWVtb0NhY2hlKSxlPT1udWxsKXt2YXIgbD1SLmFsdGVybmF0ZTtsIT09bnVsbCYmKGw9bC51cGRhdGVRdWV1ZSxsIT09bnVsbCYmKGw9bC5tZW1vQ2FjaGUsbCE9bnVsbCYmKGU9e2RhdGE6bC5kYXRhLm1hcChmdW5jdGlvbih1KXtyZXR1cm4gdS5zbGljZSgpfSksaW5kZXg6MH0pKSl9aWYoZT09bnVsbCYmKGU9e2RhdGE6W10saW5kZXg6MH0pLHQ9PT1udWxsJiYodD1lZCgpLFIudXBkYXRlUXVldWU9dCksdC5tZW1vQ2FjaGU9ZSx0PWUuZGF0YVtlLmluZGV4XSx0PT09dm9pZCAwKWZvcih0PWUuZGF0YVtlLmluZGV4XT1BcnJheShhKSxsPTA7bDxhO2wrKyl0W2xdPUloO3JldHVybiBlLmluZGV4KyssdH1mdW5jdGlvbiBfZShhLGUpe3JldHVybiB0eXBlb2YgZT09ImZ1bmN0aW9uIj9lKGEpOmV9ZnVuY3Rpb24gbm8oYSl7dmFyIGU9c2EoKTtyZXR1cm4gUWkoZSxRLGEpfWZ1bmN0aW9uIFFpKGEsZSx0KXt2YXIgbD1hLnF1ZXVlO2lmKGw9PT1udWxsKXRocm93IEVycm9yKEMoMzExKSk7bC5sYXN0UmVuZGVyZWRSZWR1Y2VyPXQ7dmFyIHU9YS5iYXNlUXVldWUsZj1sLnBlbmRpbmc7aWYoZiE9PW51bGwpe2lmKHUhPT1udWxsKXt2YXIgbz11Lm5leHQ7dS5uZXh0PWYubmV4dCxmLm5leHQ9b31lLmJhc2VRdWV1ZT11PWYsbC5wZW5kaW5nPW51bGx9aWYoZj1hLmJhc2VTdGF0ZSx1PT09bnVsbClhLm1lbW9pemVkU3RhdGU9ZjtlbHNle2U9dS5uZXh0O3ZhciBkPW89bnVsbCxpPW51bGwsbT1lLHg9ITE7ZG97dmFyIGc9bS5sYW5lJi01MzY4NzA5MTM7aWYoZyE9PW0ubGFuZT8oTiZnKT09PWc6KEdlJmcpPT09Zyl7dmFyIEw9bS5yZXZlcnRMYW5lO2lmKEw9PT0wKWkhPT1udWxsJiYoaT1pLm5leHQ9e2xhbmU6MCxyZXZlcnRMYW5lOjAsZ2VzdHVyZTpudWxsLGFjdGlvbjptLmFjdGlvbixoYXNFYWdlclN0YXRlOm0uaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOm0uZWFnZXJTdGF0ZSxuZXh0Om51bGx9KSxnPT09T2wmJih4PSEwKTtlbHNlIGlmKChHZSZMKT09PUwpe209bS5uZXh0LEw9PT1PbCYmKHg9ITApO2NvbnRpbnVlfWVsc2UgZz17bGFuZTowLHJldmVydExhbmU6bS5yZXZlcnRMYW5lLGdlc3R1cmU6bnVsbCxhY3Rpb246bS5hY3Rpb24saGFzRWFnZXJTdGF0ZTptLmhhc0VhZ2VyU3RhdGUsZWFnZXJTdGF0ZTptLmVhZ2VyU3RhdGUsbmV4dDpudWxsfSxpPT09bnVsbD8oZD1pPWcsbz1mKTppPWkubmV4dD1nLFIubGFuZXN8PUwsdnR8PUw7Zz1tLmFjdGlvbixYdCYmdChmLGcpLGY9bS5oYXNFYWdlclN0YXRlP20uZWFnZXJTdGF0ZTp0KGYsZyl9ZWxzZSBMPXtsYW5lOmcscmV2ZXJ0TGFuZTptLnJldmVydExhbmUsZ2VzdHVyZTptLmdlc3R1cmUsYWN0aW9uOm0uYWN0aW9uLGhhc0VhZ2VyU3RhdGU6bS5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6bS5lYWdlclN0YXRlLG5leHQ6bnVsbH0saT09PW51bGw/KGQ9aT1MLG89Zik6aT1pLm5leHQ9TCxSLmxhbmVzfD1nLHZ0fD1nO209bS5uZXh0fXdoaWxlKG0hPT1udWxsJiZtIT09ZSk7aWYoaT09PW51bGw/bz1mOmkubmV4dD1kLCFZYShmLGEubWVtb2l6ZWRTdGF0ZSkmJihjYT0hMCx4JiYodD1EbCx0IT09bnVsbCkpKXRocm93IHQ7YS5tZW1vaXplZFN0YXRlPWYsYS5iYXNlU3RhdGU9byxhLmJhc2VRdWV1ZT1pLGwubGFzdFJlbmRlcmVkU3RhdGU9Zn1yZXR1cm4gdT09PW51bGwmJihsLmxhbmVzPTApLFthLm1lbW9pemVkU3RhdGUsbC5kaXNwYXRjaF19ZnVuY3Rpb24gb3MoYSl7dmFyIGU9c2EoKSx0PWUucXVldWU7aWYodD09PW51bGwpdGhyb3cgRXJyb3IoQygzMTEpKTt0Lmxhc3RSZW5kZXJlZFJlZHVjZXI9YTt2YXIgbD10LmRpc3BhdGNoLHU9dC5wZW5kaW5nLGY9ZS5tZW1vaXplZFN0YXRlO2lmKHUhPT1udWxsKXt0LnBlbmRpbmc9bnVsbDt2YXIgbz11PXUubmV4dDtkbyBmPWEoZixvLmFjdGlvbiksbz1vLm5leHQ7d2hpbGUobyE9PXUpO1lhKGYsZS5tZW1vaXplZFN0YXRlKXx8KGNhPSEwKSxlLm1lbW9pemVkU3RhdGU9ZixlLmJhc2VRdWV1ZT09PW51bGwmJihlLmJhc2VTdGF0ZT1mKSx0Lmxhc3RSZW5kZXJlZFN0YXRlPWZ9cmV0dXJuW2YsbF19ZnVuY3Rpb24gT20oYSxlLHQpe3ZhciBsPVIsdT1zYSgpLGY9RjtpZihmKXtpZih0PT09dm9pZCAwKXRocm93IEVycm9yKEMoNDA3KSk7dD10KCl9ZWxzZSB0PWUoKTt2YXIgbz0hWWEoKFF8fHUpLm1lbW9pemVkU3RhdGUsdCk7aWYobyYmKHUubWVtb2l6ZWRTdGF0ZT10LGNhPSEwKSx1PXUucXVldWUsWWkoRW0uYmluZChudWxsLGwsdSxhKSxbYV0pLHUuZ2V0U25hcHNob3QhPT1lfHxvfHxpYSE9PW51bGwmJmlhLm1lbW9pemVkU3RhdGUudGFnJjEpe2lmKGwuZmxhZ3N8PTIwNDgsemwoOSx7ZGVzdHJveTp2b2lkIDB9LHptLmJpbmQobnVsbCxsLHUsdCxlKSxudWxsKSxZPT09bnVsbCl0aHJvdyBFcnJvcihDKDM0OSkpO2Z8fChHZSYxMjcpIT09MHx8VW0obCxlLHQpfXJldHVybiB0fWZ1bmN0aW9uIFVtKGEsZSx0KXthLmZsYWdzfD0xNjM4NCxhPXtnZXRTbmFwc2hvdDplLHZhbHVlOnR9LGU9Ui51cGRhdGVRdWV1ZSxlPT09bnVsbD8oZT1lZCgpLFIudXBkYXRlUXVldWU9ZSxlLnN0b3Jlcz1bYV0pOih0PWUuc3RvcmVzLHQ9PT1udWxsP2Uuc3RvcmVzPVthXTp0LnB1c2goYSkpfWZ1bmN0aW9uIHptKGEsZSx0LGwpe2UudmFsdWU9dCxlLmdldFNuYXBzaG90PWwsSG0oZSkmJk5tKGEpfWZ1bmN0aW9uIEVtKGEsZSx0KXtyZXR1cm4gdChmdW5jdGlvbigpe0htKGUpJiZObShhKX0pfWZ1bmN0aW9uIEhtKGEpe3ZhciBlPWEuZ2V0U25hcHNob3Q7YT1hLnZhbHVlO3RyeXt2YXIgdD1lKCk7cmV0dXJuIVlhKGEsdCl9Y2F0Y2h7cmV0dXJuITB9fWZ1bmN0aW9uIE5tKGEpe3ZhciBlPWp0KGEsMik7ZSE9PW51bGwmJk9hKGUsYSwyKX1mdW5jdGlvbiBLcyhhKXt2YXIgZT1CYSgpO2lmKHR5cGVvZiBhPT0iZnVuY3Rpb24iKXt2YXIgdD1hO2lmKGE9dCgpLFh0KXtvdCghMCk7dHJ5e3QoKX1maW5hbGx5e290KCExKX19fXJldHVybiBlLm1lbW9pemVkU3RhdGU9ZS5iYXNlU3RhdGU9YSxlLnF1ZXVlPXtwZW5kaW5nOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6X2UsbGFzdFJlbmRlcmVkU3RhdGU6YX0sZX1mdW5jdGlvbiBGbShhLGUsdCxsKXtyZXR1cm4gYS5iYXNlU3RhdGU9dCxRaShhLFEsdHlwZW9mIGw9PSJmdW5jdGlvbiI/bDpfZSl9ZnVuY3Rpb24gRXgoYSxlLHQsbCx1KXtpZih1ZChhKSl0aHJvdyBFcnJvcihDKDQ4NSkpO2lmKGE9ZS5hY3Rpb24sYSE9PW51bGwpe3ZhciBmPXtwYXlsb2FkOnUsYWN0aW9uOmEsbmV4dDpudWxsLGlzVHJhbnNpdGlvbjohMCxzdGF0dXM6InBlbmRpbmciLHZhbHVlOm51bGwscmVhc29uOm51bGwsbGlzdGVuZXJzOltdLHRoZW46ZnVuY3Rpb24obyl7Zi5saXN0ZW5lcnMucHVzaChvKX19O0QuVCE9PW51bGw/dCghMCk6Zi5pc1RyYW5zaXRpb249ITEsbChmKSx0PWUucGVuZGluZyx0PT09bnVsbD8oZi5uZXh0PWUucGVuZGluZz1mLEdtKGUsZikpOihmLm5leHQ9dC5uZXh0LGUucGVuZGluZz10Lm5leHQ9Zil9fWZ1bmN0aW9uIEdtKGEsZSl7dmFyIHQ9ZS5hY3Rpb24sbD1lLnBheWxvYWQsdT1hLnN0YXRlO2lmKGUuaXNUcmFuc2l0aW9uKXt2YXIgZj1ELlQsbz17fTtELlQ9bzt0cnl7dmFyIGQ9dCh1LGwpLGk9RC5TO2khPT1udWxsJiZpKG8sZCksRnIoYSxlLGQpfWNhdGNoKG0pe0pzKGEsZSxtKX1maW5hbGx5e2YhPT1udWxsJiZvLnR5cGVzIT09bnVsbCYmKGYudHlwZXM9by50eXBlcyksRC5UPWZ9fWVsc2UgdHJ5e2Y9dCh1LGwpLEZyKGEsZSxmKX1jYXRjaChtKXtKcyhhLGUsbSl9fWZ1bmN0aW9uIEZyKGEsZSx0KXt0IT09bnVsbCYmdHlwZW9mIHQ9PSJvYmplY3QiJiZ0eXBlb2YgdC50aGVuPT0iZnVuY3Rpb24iP3QudGhlbihmdW5jdGlvbihsKXtHcihhLGUsbCl9LGZ1bmN0aW9uKGwpe3JldHVybiBKcyhhLGUsbCl9KTpHcihhLGUsdCl9ZnVuY3Rpb24gR3IoYSxlLHQpe2Uuc3RhdHVzPSJmdWxmaWxsZWQiLGUudmFsdWU9dCxfbShlKSxhLnN0YXRlPXQsZT1hLnBlbmRpbmcsZSE9PW51bGwmJih0PWUubmV4dCx0PT09ZT9hLnBlbmRpbmc9bnVsbDoodD10Lm5leHQsZS5uZXh0PXQsR20oYSx0KSkpfWZ1bmN0aW9uIEpzKGEsZSx0KXt2YXIgbD1hLnBlbmRpbmc7aWYoYS5wZW5kaW5nPW51bGwsbCE9PW51bGwpe2w9bC5uZXh0O2RvIGUuc3RhdHVzPSJyZWplY3RlZCIsZS5yZWFzb249dCxfbShlKSxlPWUubmV4dDt3aGlsZShlIT09bCl9YS5hY3Rpb249bnVsbH1mdW5jdGlvbiBfbShhKXthPWEubGlzdGVuZXJzO2Zvcih2YXIgZT0wO2U8YS5sZW5ndGg7ZSsrKSgwLGFbZV0pKCl9ZnVuY3Rpb24gUG0oYSxlKXtyZXR1cm4gZX1mdW5jdGlvbiBfcihhLGUpe2lmKEYpe3ZhciB0PVkuZm9ybVN0YXRlO2lmKHQhPT1udWxsKXthOnt2YXIgbD1SO2lmKEYpe2lmKFcpe2U6e2Zvcih2YXIgdT1XLGY9dWU7dS5ub2RlVHlwZSE9PTg7KXtpZighZil7dT1udWxsO2JyZWFrIGV9aWYodT1vZSh1Lm5leHRTaWJsaW5nKSx1PT09bnVsbCl7dT1udWxsO2JyZWFrIGV9fWY9dS5kYXRhLHU9Zj09PSJGISJ8fGY9PT0iRiI/dTpudWxsfWlmKHUpe1c9b2UodS5uZXh0U2libGluZyksbD11LmRhdGE9PT0iRiEiO2JyZWFrIGF9fUl0KGwpfWw9ITF9bCYmKGU9dFswXSl9fXJldHVybiB0PUJhKCksdC5tZW1vaXplZFN0YXRlPXQuYmFzZVN0YXRlPWUsbD17cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOlBtLGxhc3RSZW5kZXJlZFN0YXRlOmV9LHQucXVldWU9bCx0PWZwLmJpbmQobnVsbCxSLGwpLGwuZGlzcGF0Y2g9dCxsPUtzKCExKSxmPVdpLmJpbmQobnVsbCxSLCExLGwucXVldWUpLGw9QmEoKSx1PXtzdGF0ZTplLGRpc3BhdGNoOm51bGwsYWN0aW9uOmEscGVuZGluZzpudWxsfSxsLnF1ZXVlPXUsdD1FeC5iaW5kKG51bGwsUix1LGYsdCksdS5kaXNwYXRjaD10LGwubWVtb2l6ZWRTdGF0ZT1hLFtlLHQsITFdfWZ1bmN0aW9uIFByKGEpe3ZhciBlPXNhKCk7cmV0dXJuIFhtKGUsUSxhKX1mdW5jdGlvbiBYbShhLGUsdCl7aWYoZT1RaShhLGUsUG0pWzBdLGE9bm8oX2UpWzBdLHR5cGVvZiBlPT0ib2JqZWN0IiYmZSE9PW51bGwmJnR5cGVvZiBlLnRoZW49PSJmdW5jdGlvbiIpdHJ5e3ZhciBsPWZmKGUpfWNhdGNoKG8pe3Rocm93IG89PT1WbD9hZDpvfWVsc2UgbD1lO2U9c2EoKTt2YXIgdT1lLnF1ZXVlLGY9dS5kaXNwYXRjaDtyZXR1cm4gdCE9PWUubWVtb2l6ZWRTdGF0ZSYmKFIuZmxhZ3N8PTIwNDgsemwoOSx7ZGVzdHJveTp2b2lkIDB9LEh4LmJpbmQobnVsbCx1LHQpLG51bGwpKSxbbCxmLGFdfWZ1bmN0aW9uIEh4KGEsZSl7YS5hY3Rpb249ZX1mdW5jdGlvbiBYcihhKXt2YXIgZT1zYSgpLHQ9UTtpZih0IT09bnVsbClyZXR1cm4gWG0oZSx0LGEpO3NhKCksZT1lLm1lbW9pemVkU3RhdGUsdD1zYSgpO3ZhciBsPXQucXVldWUuZGlzcGF0Y2g7cmV0dXJuIHQubWVtb2l6ZWRTdGF0ZT1hLFtlLGwsITFdfWZ1bmN0aW9uIHpsKGEsZSx0LGwpe3JldHVybiBhPXt0YWc6YSxjcmVhdGU6dCxkZXBzOmwsaW5zdDplLG5leHQ6bnVsbH0sZT1SLnVwZGF0ZVF1ZXVlLGU9PT1udWxsJiYoZT1lZCgpLFIudXBkYXRlUXVldWU9ZSksdD1lLmxhc3RFZmZlY3QsdD09PW51bGw/ZS5sYXN0RWZmZWN0PWEubmV4dD1hOihsPXQubmV4dCx0Lm5leHQ9YSxhLm5leHQ9bCxlLmxhc3RFZmZlY3Q9YSksYX1mdW5jdGlvbiBWbSgpe3JldHVybiBzYSgpLm1lbW9pemVkU3RhdGV9ZnVuY3Rpb24gcm8oYSxlLHQsbCl7dmFyIHU9QmEoKTtSLmZsYWdzfD1hLHUubWVtb2l6ZWRTdGF0ZT16bCgxfGUse2Rlc3Ryb3k6dm9pZCAwfSx0LGw9PT12b2lkIDA/bnVsbDpsKX1mdW5jdGlvbiBsZChhLGUsdCxsKXt2YXIgdT1zYSgpO2w9bD09PXZvaWQgMD9udWxsOmw7dmFyIGY9dS5tZW1vaXplZFN0YXRlLmluc3Q7USE9PW51bGwmJmwhPT1udWxsJiZHaShsLFEubWVtb2l6ZWRTdGF0ZS5kZXBzKT91Lm1lbW9pemVkU3RhdGU9emwoZSxmLHQsbCk6KFIuZmxhZ3N8PWEsdS5tZW1vaXplZFN0YXRlPXpsKDF8ZSxmLHQsbCkpfWZ1bmN0aW9uIFZyKGEsZSl7cm8oODM5MDY1Niw4LGEsZSl9ZnVuY3Rpb24gWWkoYSxlKXtsZCgyMDQ4LDgsYSxlKX1mdW5jdGlvbiBOeChhKXtSLmZsYWdzfD00O3ZhciBlPVIudXBkYXRlUXVldWU7aWYoZT09PW51bGwpZT1lZCgpLFIudXBkYXRlUXVldWU9ZSxlLmV2ZW50cz1bYV07ZWxzZXt2YXIgdD1lLmV2ZW50czt0PT09bnVsbD9lLmV2ZW50cz1bYV06dC5wdXNoKGEpfX1mdW5jdGlvbiBabShhKXt2YXIgZT1zYSgpLm1lbW9pemVkU3RhdGU7cmV0dXJuIE54KHtyZWY6ZSxuZXh0SW1wbDphfSksZnVuY3Rpb24oKXtpZigoXyYyKSE9PTApdGhyb3cgRXJyb3IoQyg0NDApKTtyZXR1cm4gZS5pbXBsLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfX1mdW5jdGlvbiBRbShhLGUpe3JldHVybiBsZCg0LDIsYSxlKX1mdW5jdGlvbiBZbShhLGUpe3JldHVybiBsZCg0LDQsYSxlKX1mdW5jdGlvbiBqbShhLGUpe2lmKHR5cGVvZiBlPT0iZnVuY3Rpb24iKXthPWEoKTt2YXIgdD1lKGEpO3JldHVybiBmdW5jdGlvbigpe3R5cGVvZiB0PT0iZnVuY3Rpb24iP3QoKTplKG51bGwpfX1pZihlIT1udWxsKXJldHVybiBhPWEoKSxlLmN1cnJlbnQ9YSxmdW5jdGlvbigpe2UuY3VycmVudD1udWxsfX1mdW5jdGlvbiBLbShhLGUsdCl7dD10IT1udWxsP3QuY29uY2F0KFthXSk6bnVsbCxsZCg0LDQsam0uYmluZChudWxsLGUsYSksdCl9ZnVuY3Rpb24gamkoKXt9ZnVuY3Rpb24gSm0oYSxlKXt2YXIgdD1zYSgpO2U9ZT09PXZvaWQgMD9udWxsOmU7dmFyIGw9dC5tZW1vaXplZFN0YXRlO3JldHVybiBlIT09bnVsbCYmR2koZSxsWzFdKT9sWzBdOih0Lm1lbW9pemVkU3RhdGU9W2EsZV0sYSl9ZnVuY3Rpb24gV20oYSxlKXt2YXIgdD1zYSgpO2U9ZT09PXZvaWQgMD9udWxsOmU7dmFyIGw9dC5tZW1vaXplZFN0YXRlO2lmKGUhPT1udWxsJiZHaShlLGxbMV0pKXJldHVybiBsWzBdO2lmKGw9YSgpLFh0KXtvdCghMCk7dHJ5e2EoKX1maW5hbGx5e290KCExKX19cmV0dXJuIHQubWVtb2l6ZWRTdGF0ZT1bbCxlXSxsfWZ1bmN0aW9uIEtpKGEsZSx0KXtyZXR1cm4gdD09PXZvaWQgMHx8KEdlJjEwNzM3NDE4MjQpIT09MCYmKE4mMjYxOTMwKT09PTA/YS5tZW1vaXplZFN0YXRlPWU6KGEubWVtb2l6ZWRTdGF0ZT10LGE9RnAoKSxSLmxhbmVzfD1hLHZ0fD1hLHQpfWZ1bmN0aW9uICRtKGEsZSx0LGwpe3JldHVybiBZYSh0LGUpP3Q6VWwuY3VycmVudCE9PW51bGw/KGE9S2koYSx0LGwpLFlhKGEsZSl8fChjYT0hMCksYSk6KEdlJjQyKT09PTB8fChHZSYxMDczNzQxODI0KSE9PTAmJihOJjI2MTkzMCk9PT0wPyhjYT0hMCxhLm1lbW9pemVkU3RhdGU9dCk6KGE9RnAoKSxSLmxhbmVzfD1hLHZ0fD1hLGUpfWZ1bmN0aW9uIGFwKGEsZSx0LGwsdSl7dmFyIGY9UC5wO1AucD1mIT09MCYmOD5mP2Y6ODt2YXIgbz1ELlQsZD17fTtELlQ9ZCxXaShhLCExLGUsdCk7dHJ5e3ZhciBpPXUoKSxtPUQuUztpZihtIT09bnVsbCYmbShkLGkpLGkhPT1udWxsJiZ0eXBlb2YgaT09Im9iamVjdCImJnR5cGVvZiBpLnRoZW49PSJmdW5jdGlvbiIpe3ZhciB4PU94KGksbCk7UnUoYSxlLHgsUWEoYSkpfWVsc2UgUnUoYSxlLGwsUWEoYSkpfWNhdGNoKGcpe1J1KGEsZSx7dGhlbjpmdW5jdGlvbigpe30sc3RhdHVzOiJyZWplY3RlZCIscmVhc29uOmd9LFFhKCkpfWZpbmFsbHl7UC5wPWYsbyE9PW51bGwmJmQudHlwZXMhPT1udWxsJiYoby50eXBlcz1kLnR5cGVzKSxELlQ9b319ZnVuY3Rpb24gRngoKXt9ZnVuY3Rpb24gV3MoYSxlLHQsbCl7aWYoYS50YWchPT01KXRocm93IEVycm9yKEMoNDc2KSk7dmFyIHU9ZXAoYSkucXVldWU7YXAoYSx1LGUsenQsdD09PW51bGw/Rng6ZnVuY3Rpb24oKXtyZXR1cm4gdHAoYSksdChsKX0pfWZ1bmN0aW9uIGVwKGEpe3ZhciBlPWEubWVtb2l6ZWRTdGF0ZTtpZihlIT09bnVsbClyZXR1cm4gZTtlPXttZW1vaXplZFN0YXRlOnp0LGJhc2VTdGF0ZTp6dCxiYXNlUXVldWU6bnVsbCxxdWV1ZTp7cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOl9lLGxhc3RSZW5kZXJlZFN0YXRlOnp0fSxuZXh0Om51bGx9O3ZhciB0PXt9O3JldHVybiBlLm5leHQ9e21lbW9pemVkU3RhdGU6dCxiYXNlU3RhdGU6dCxiYXNlUXVldWU6bnVsbCxxdWV1ZTp7cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOl9lLGxhc3RSZW5kZXJlZFN0YXRlOnR9LG5leHQ6bnVsbH0sYS5tZW1vaXplZFN0YXRlPWUsYT1hLmFsdGVybmF0ZSxhIT09bnVsbCYmKGEubWVtb2l6ZWRTdGF0ZT1lKSxlfWZ1bmN0aW9uIHRwKGEpe3ZhciBlPWVwKGEpO2UubmV4dD09PW51bGwmJihlPWEuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUpLFJ1KGEsZS5uZXh0LnF1ZXVlLHt9LFFhKCkpfWZ1bmN0aW9uIEppKCl7cmV0dXJuIHlhKGp1KX1mdW5jdGlvbiBscCgpe3JldHVybiBzYSgpLm1lbW9pemVkU3RhdGV9ZnVuY3Rpb24gdXAoKXtyZXR1cm4gc2EoKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIEd4KGEpe2Zvcih2YXIgZT1hLnJldHVybjtlIT09bnVsbDspe3N3aXRjaChlLnRhZyl7Y2FzZSAyNDpjYXNlIDM6dmFyIHQ9UWEoKTthPW10KHQpO3ZhciBsPXB0KGUsYSx0KTtsIT09bnVsbCYmKE9hKGwsZSx0KSxCdShsLGUsdCkpLGU9e2NhY2hlOnppKCl9LGEucGF5bG9hZD1lO3JldHVybn1lPWUucmV0dXJufX1mdW5jdGlvbiBfeChhLGUsdCl7dmFyIGw9UWEoKTt0PXtsYW5lOmwscmV2ZXJ0TGFuZTowLGdlc3R1cmU6bnVsbCxhY3Rpb246dCxoYXNFYWdlclN0YXRlOiExLGVhZ2VyU3RhdGU6bnVsbCxuZXh0Om51bGx9LHVkKGEpP29wKGUsdCk6KHQ9UmkoYSxlLHQsbCksdCE9PW51bGwmJihPYSh0LGEsbCksZHAodCxlLGwpKSl9ZnVuY3Rpb24gZnAoYSxlLHQpe3ZhciBsPVFhKCk7UnUoYSxlLHQsbCl9ZnVuY3Rpb24gUnUoYSxlLHQsbCl7dmFyIHU9e2xhbmU6bCxyZXZlcnRMYW5lOjAsZ2VzdHVyZTpudWxsLGFjdGlvbjp0LGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH07aWYodWQoYSkpb3AoZSx1KTtlbHNle3ZhciBmPWEuYWx0ZXJuYXRlO2lmKGEubGFuZXM9PT0wJiYoZj09PW51bGx8fGYubGFuZXM9PT0wKSYmKGY9ZS5sYXN0UmVuZGVyZWRSZWR1Y2VyLGYhPT1udWxsKSl0cnl7dmFyIG89ZS5sYXN0UmVuZGVyZWRTdGF0ZSxkPWYobyx0KTtpZih1Lmhhc0VhZ2VyU3RhdGU9ITAsdS5lYWdlclN0YXRlPWQsWWEoZCxvKSlyZXR1cm4gJG8oYSxlLHUsMCksWT09PW51bGwmJldvKCksITF9Y2F0Y2h7fWlmKHQ9UmkoYSxlLHUsbCksdCE9PW51bGwpcmV0dXJuIE9hKHQsYSxsKSxkcCh0LGUsbCksITB9cmV0dXJuITF9ZnVuY3Rpb24gV2koYSxlLHQsbCl7aWYobD17bGFuZToyLHJldmVydExhbmU6ZG4oKSxnZXN0dXJlOm51bGwsYWN0aW9uOmwsaGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfSx1ZChhKSl7aWYoZSl0aHJvdyBFcnJvcihDKDQ3OSkpfWVsc2UgZT1SaShhLHQsbCwyKSxlIT09bnVsbCYmT2EoZSxhLDIpfWZ1bmN0aW9uIHVkKGEpe3ZhciBlPWEuYWx0ZXJuYXRlO3JldHVybiBhPT09Unx8ZSE9PW51bGwmJmU9PT1SfWZ1bmN0aW9uIG9wKGEsZSl7Qmw9d289ITA7dmFyIHQ9YS5wZW5kaW5nO3Q9PT1udWxsP2UubmV4dD1lOihlLm5leHQ9dC5uZXh0LHQubmV4dD1lKSxhLnBlbmRpbmc9ZX1mdW5jdGlvbiBkcChhLGUsdCl7aWYoKHQmNDE5NDA0OCkhPT0wKXt2YXIgbD1lLmxhbmVzO2wmPWEucGVuZGluZ0xhbmVzLHR8PWwsZS5sYW5lcz10LFpjKGEsdCl9fXZhciBadT17cmVhZENvbnRleHQ6eWEsdXNlOnRkLHVzZUNhbGxiYWNrOmZhLHVzZUNvbnRleHQ6ZmEsdXNlRWZmZWN0OmZhLHVzZUltcGVyYXRpdmVIYW5kbGU6ZmEsdXNlTGF5b3V0RWZmZWN0OmZhLHVzZUluc2VydGlvbkVmZmVjdDpmYSx1c2VNZW1vOmZhLHVzZVJlZHVjZXI6ZmEsdXNlUmVmOmZhLHVzZVN0YXRlOmZhLHVzZURlYnVnVmFsdWU6ZmEsdXNlRGVmZXJyZWRWYWx1ZTpmYSx1c2VUcmFuc2l0aW9uOmZhLHVzZVN5bmNFeHRlcm5hbFN0b3JlOmZhLHVzZUlkOmZhLHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOmZhLHVzZUZvcm1TdGF0ZTpmYSx1c2VBY3Rpb25TdGF0ZTpmYSx1c2VPcHRpbWlzdGljOmZhLHVzZU1lbW9DYWNoZTpmYSx1c2VDYWNoZVJlZnJlc2g6ZmF9O1p1LnVzZUVmZmVjdEV2ZW50PWZhO3ZhciBzcD17cmVhZENvbnRleHQ6eWEsdXNlOnRkLHVzZUNhbGxiYWNrOmZ1bmN0aW9uKGEsZSl7cmV0dXJuIEJhKCkubWVtb2l6ZWRTdGF0ZT1bYSxlPT09dm9pZCAwP251bGw6ZV0sYX0sdXNlQ29udGV4dDp5YSx1c2VFZmZlY3Q6VnIsdXNlSW1wZXJhdGl2ZUhhbmRsZTpmdW5jdGlvbihhLGUsdCl7dD10IT1udWxsP3QuY29uY2F0KFthXSk6bnVsbCxybyg0MTk0MzA4LDQsam0uYmluZChudWxsLGUsYSksdCl9LHVzZUxheW91dEVmZmVjdDpmdW5jdGlvbihhLGUpe3JldHVybiBybyg0MTk0MzA4LDQsYSxlKX0sdXNlSW5zZXJ0aW9uRWZmZWN0OmZ1bmN0aW9uKGEsZSl7cm8oNCwyLGEsZSl9LHVzZU1lbW86ZnVuY3Rpb24oYSxlKXt2YXIgdD1CYSgpO2U9ZT09PXZvaWQgMD9udWxsOmU7dmFyIGw9YSgpO2lmKFh0KXtvdCghMCk7dHJ5e2EoKX1maW5hbGx5e290KCExKX19cmV0dXJuIHQubWVtb2l6ZWRTdGF0ZT1bbCxlXSxsfSx1c2VSZWR1Y2VyOmZ1bmN0aW9uKGEsZSx0KXt2YXIgbD1CYSgpO2lmKHQhPT12b2lkIDApe3ZhciB1PXQoZSk7aWYoWHQpe290KCEwKTt0cnl7dChlKX1maW5hbGx5e290KCExKX19fWVsc2UgdT1lO3JldHVybiBsLm1lbW9pemVkU3RhdGU9bC5iYXNlU3RhdGU9dSxhPXtwZW5kaW5nOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6YSxsYXN0UmVuZGVyZWRTdGF0ZTp1fSxsLnF1ZXVlPWEsYT1hLmRpc3BhdGNoPV94LmJpbmQobnVsbCxSLGEpLFtsLm1lbW9pemVkU3RhdGUsYV19LHVzZVJlZjpmdW5jdGlvbihhKXt2YXIgZT1CYSgpO3JldHVybiBhPXtjdXJyZW50OmF9LGUubWVtb2l6ZWRTdGF0ZT1hfSx1c2VTdGF0ZTpmdW5jdGlvbihhKXthPUtzKGEpO3ZhciBlPWEucXVldWUsdD1mcC5iaW5kKG51bGwsUixlKTtyZXR1cm4gZS5kaXNwYXRjaD10LFthLm1lbW9pemVkU3RhdGUsdF19LHVzZURlYnVnVmFsdWU6amksdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihhLGUpe3ZhciB0PUJhKCk7cmV0dXJuIEtpKHQsYSxlKX0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciBhPUtzKCExKTtyZXR1cm4gYT1hcC5iaW5kKG51bGwsUixhLnF1ZXVlLCEwLCExKSxCYSgpLm1lbW9pemVkU3RhdGU9YSxbITEsYV19LHVzZVN5bmNFeHRlcm5hbFN0b3JlOmZ1bmN0aW9uKGEsZSx0KXt2YXIgbD1SLHU9QmEoKTtpZihGKXtpZih0PT09dm9pZCAwKXRocm93IEVycm9yKEMoNDA3KSk7dD10KCl9ZWxzZXtpZih0PWUoKSxZPT09bnVsbCl0aHJvdyBFcnJvcihDKDM0OSkpOyhOJjEyNykhPT0wfHxVbShsLGUsdCl9dS5tZW1vaXplZFN0YXRlPXQ7dmFyIGY9e3ZhbHVlOnQsZ2V0U25hcHNob3Q6ZX07cmV0dXJuIHUucXVldWU9ZixWcihFbS5iaW5kKG51bGwsbCxmLGEpLFthXSksbC5mbGFnc3w9MjA0OCx6bCg5LHtkZXN0cm95OnZvaWQgMH0sem0uYmluZChudWxsLGwsZix0LGUpLG51bGwpLHR9LHVzZUlkOmZ1bmN0aW9uKCl7dmFyIGE9QmEoKSxlPVkuaWRlbnRpZmllclByZWZpeDtpZihGKXt2YXIgdD14ZSxsPWhlO3Q9KGwmfigxPDwzMi1aYShsKS0xKSkudG9TdHJpbmcoMzIpK3QsZT0iXyIrZSsiUl8iK3QsdD1SbysrLDA8dCYmKGUrPSJIIit0LnRvU3RyaW5nKDMyKSksZSs9Il8ifWVsc2UgdD1VeCsrLGU9Il8iK2UrInJfIit0LnRvU3RyaW5nKDMyKSsiXyI7cmV0dXJuIGEubWVtb2l6ZWRTdGF0ZT1lfSx1c2VIb3N0VHJhbnNpdGlvblN0YXR1czpKaSx1c2VGb3JtU3RhdGU6X3IsdXNlQWN0aW9uU3RhdGU6X3IsdXNlT3B0aW1pc3RpYzpmdW5jdGlvbihhKXt2YXIgZT1CYSgpO2UubWVtb2l6ZWRTdGF0ZT1lLmJhc2VTdGF0ZT1hO3ZhciB0PXtwZW5kaW5nOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6bnVsbCxsYXN0UmVuZGVyZWRTdGF0ZTpudWxsfTtyZXR1cm4gZS5xdWV1ZT10LGU9V2kuYmluZChudWxsLFIsITAsdCksdC5kaXNwYXRjaD1lLFthLGVdfSx1c2VNZW1vQ2FjaGU6WmksdXNlQ2FjaGVSZWZyZXNoOmZ1bmN0aW9uKCl7cmV0dXJuIEJhKCkubWVtb2l6ZWRTdGF0ZT1HeC5iaW5kKG51bGwsUil9LHVzZUVmZmVjdEV2ZW50OmZ1bmN0aW9uKGEpe3ZhciBlPUJhKCksdD17aW1wbDphfTtyZXR1cm4gZS5tZW1vaXplZFN0YXRlPXQsZnVuY3Rpb24oKXtpZigoXyYyKSE9PTApdGhyb3cgRXJyb3IoQyg0NDApKTtyZXR1cm4gdC5pbXBsLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfX19LCRpPXtyZWFkQ29udGV4dDp5YSx1c2U6dGQsdXNlQ2FsbGJhY2s6Sm0sdXNlQ29udGV4dDp5YSx1c2VFZmZlY3Q6WWksdXNlSW1wZXJhdGl2ZUhhbmRsZTpLbSx1c2VJbnNlcnRpb25FZmZlY3Q6UW0sdXNlTGF5b3V0RWZmZWN0OlltLHVzZU1lbW86V20sdXNlUmVkdWNlcjpubyx1c2VSZWY6Vm0sdXNlU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gbm8oX2UpfSx1c2VEZWJ1Z1ZhbHVlOmppLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oYSxlKXt2YXIgdD1zYSgpO3JldHVybiAkbSh0LFEubWVtb2l6ZWRTdGF0ZSxhLGUpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9bm8oX2UpWzBdLGU9c2EoKS5tZW1vaXplZFN0YXRlO3JldHVyblt0eXBlb2YgYT09ImJvb2xlYW4iP2E6ZmYoYSksZV19LHVzZVN5bmNFeHRlcm5hbFN0b3JlOk9tLHVzZUlkOmxwLHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOkppLHVzZUZvcm1TdGF0ZTpQcix1c2VBY3Rpb25TdGF0ZTpQcix1c2VPcHRpbWlzdGljOmZ1bmN0aW9uKGEsZSl7dmFyIHQ9c2EoKTtyZXR1cm4gRm0odCxRLGEsZSl9LHVzZU1lbW9DYWNoZTpaaSx1c2VDYWNoZVJlZnJlc2g6dXB9OyRpLnVzZUVmZmVjdEV2ZW50PVptO3ZhciBpcD17cmVhZENvbnRleHQ6eWEsdXNlOnRkLHVzZUNhbGxiYWNrOkptLHVzZUNvbnRleHQ6eWEsdXNlRWZmZWN0OllpLHVzZUltcGVyYXRpdmVIYW5kbGU6S20sdXNlSW5zZXJ0aW9uRWZmZWN0OlFtLHVzZUxheW91dEVmZmVjdDpZbSx1c2VNZW1vOldtLHVzZVJlZHVjZXI6b3MsdXNlUmVmOlZtLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIG9zKF9lKX0sdXNlRGVidWdWYWx1ZTpqaSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGEsZSl7dmFyIHQ9c2EoKTtyZXR1cm4gUT09PW51bGw/S2kodCxhLGUpOiRtKHQsUS5tZW1vaXplZFN0YXRlLGEsZSl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgYT1vcyhfZSlbMF0sZT1zYSgpLm1lbW9pemVkU3RhdGU7cmV0dXJuW3R5cGVvZiBhPT0iYm9vbGVhbiI/YTpmZihhKSxlXX0sdXNlU3luY0V4dGVybmFsU3RvcmU6T20sdXNlSWQ6bHAsdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6SmksdXNlRm9ybVN0YXRlOlhyLHVzZUFjdGlvblN0YXRlOlhyLHVzZU9wdGltaXN0aWM6ZnVuY3Rpb24oYSxlKXt2YXIgdD1zYSgpO3JldHVybiBRIT09bnVsbD9GbSh0LFEsYSxlKToodC5iYXNlU3RhdGU9YSxbYSx0LnF1ZXVlLmRpc3BhdGNoXSl9LHVzZU1lbW9DYWNoZTpaaSx1c2VDYWNoZVJlZnJlc2g6dXB9O2lwLnVzZUVmZmVjdEV2ZW50PVptO2Z1bmN0aW9uIGRzKGEsZSx0LGwpe2U9YS5tZW1vaXplZFN0YXRlLHQ9dChsLGUpLHQ9dD09bnVsbD9lOiQoe30sZSx0KSxhLm1lbW9pemVkU3RhdGU9dCxhLmxhbmVzPT09MCYmKGEudXBkYXRlUXVldWUuYmFzZVN0YXRlPXQpfXZhciAkcz17ZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKGEsZSx0KXthPWEuX3JlYWN0SW50ZXJuYWxzO3ZhciBsPVFhKCksdT1tdChsKTt1LnBheWxvYWQ9ZSx0IT1udWxsJiYodS5jYWxsYmFjaz10KSxlPXB0KGEsdSxsKSxlIT09bnVsbCYmKE9hKGUsYSxsKSxCdShlLGEsbCkpfSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKGEsZSx0KXthPWEuX3JlYWN0SW50ZXJuYWxzO3ZhciBsPVFhKCksdT1tdChsKTt1LnRhZz0xLHUucGF5bG9hZD1lLHQhPW51bGwmJih1LmNhbGxiYWNrPXQpLGU9cHQoYSx1LGwpLGUhPT1udWxsJiYoT2EoZSxhLGwpLEJ1KGUsYSxsKSl9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbihhLGUpe2E9YS5fcmVhY3RJbnRlcm5hbHM7dmFyIHQ9UWEoKSxsPW10KHQpO2wudGFnPTIsZSE9bnVsbCYmKGwuY2FsbGJhY2s9ZSksZT1wdChhLGwsdCksZSE9PW51bGwmJihPYShlLGEsdCksQnUoZSxhLHQpKX19O2Z1bmN0aW9uIFpyKGEsZSx0LGwsdSxmLG8pe3JldHVybiBhPWEuc3RhdGVOb2RlLHR5cGVvZiBhLnNob3VsZENvbXBvbmVudFVwZGF0ZT09ImZ1bmN0aW9uIj9hLnNob3VsZENvbXBvbmVudFVwZGF0ZShsLGYsbyk6ZS5wcm90b3R5cGUmJmUucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50PyFHdSh0LGwpfHwhR3UodSxmKTohMH1mdW5jdGlvbiBRcihhLGUsdCxsKXthPWUuc3RhdGUsdHlwZW9mIGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcz09ImZ1bmN0aW9uIiYmZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHQsbCksdHlwZW9mIGUuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM9PSJmdW5jdGlvbiImJmUuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHModCxsKSxlLnN0YXRlIT09YSYmJHMuZW5xdWV1ZVJlcGxhY2VTdGF0ZShlLGUuc3RhdGUsbnVsbCl9ZnVuY3Rpb24gVnQoYSxlKXt2YXIgdD1lO2lmKCJyZWYiaW4gZSl7dD17fTtmb3IodmFyIGwgaW4gZSlsIT09InJlZiImJih0W2xdPWVbbF0pfWlmKGE9YS5kZWZhdWx0UHJvcHMpe3Q9PT1lJiYodD0kKHt9LHQpKTtmb3IodmFyIHUgaW4gYSl0W3VdPT09dm9pZCAwJiYodFt1XT1hW3VdKX1yZXR1cm4gdH1mdW5jdGlvbiBucChhKXtBbyhhKX1mdW5jdGlvbiBycChhKXtjb25zb2xlLmVycm9yKGEpfWZ1bmN0aW9uIGNwKGEpe0FvKGEpfWZ1bmN0aW9uIHFvKGEsZSl7dHJ5e3ZhciB0PWEub25VbmNhdWdodEVycm9yO3QoZS52YWx1ZSx7Y29tcG9uZW50U3RhY2s6ZS5zdGFja30pfWNhdGNoKGwpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBsfSl9fWZ1bmN0aW9uIFlyKGEsZSx0KXt0cnl7dmFyIGw9YS5vbkNhdWdodEVycm9yO2wodC52YWx1ZSx7Y29tcG9uZW50U3RhY2s6dC5zdGFjayxlcnJvckJvdW5kYXJ5OmUudGFnPT09MT9lLnN0YXRlTm9kZTpudWxsfSl9Y2F0Y2godSl7c2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IHV9KX19ZnVuY3Rpb24gYWkoYSxlLHQpe3JldHVybiB0PW10KHQpLHQudGFnPTMsdC5wYXlsb2FkPXtlbGVtZW50Om51bGx9LHQuY2FsbGJhY2s9ZnVuY3Rpb24oKXtxbyhhLGUpfSx0fWZ1bmN0aW9uIG1wKGEpe3JldHVybiBhPW10KGEpLGEudGFnPTMsYX1mdW5jdGlvbiBwcChhLGUsdCxsKXt2YXIgdT10LnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yO2lmKHR5cGVvZiB1PT0iZnVuY3Rpb24iKXt2YXIgZj1sLnZhbHVlO2EucGF5bG9hZD1mdW5jdGlvbigpe3JldHVybiB1KGYpfSxhLmNhbGxiYWNrPWZ1bmN0aW9uKCl7WXIoZSx0LGwpfX12YXIgbz10LnN0YXRlTm9kZTtvIT09bnVsbCYmdHlwZW9mIG8uY29tcG9uZW50RGlkQ2F0Y2g9PSJmdW5jdGlvbiImJihhLmNhbGxiYWNrPWZ1bmN0aW9uKCl7WXIoZSx0LGwpLHR5cGVvZiB1IT0iZnVuY3Rpb24iJiYoTHQ9PT1udWxsP0x0PW5ldyBTZXQoW3RoaXNdKTpMdC5hZGQodGhpcykpO3ZhciBkPWwuc3RhY2s7dGhpcy5jb21wb25lbnREaWRDYXRjaChsLnZhbHVlLHtjb21wb25lbnRTdGFjazpkIT09bnVsbD9kOiIifSl9KX1mdW5jdGlvbiBQeChhLGUsdCxsLHUpe2lmKHQuZmxhZ3N8PTMyNzY4LGwhPT1udWxsJiZ0eXBlb2YgbD09Im9iamVjdCImJnR5cGVvZiBsLnRoZW49PSJmdW5jdGlvbiIpe2lmKGU9dC5hbHRlcm5hdGUsZSE9PW51bGwmJlhsKGUsdCx1LCEwKSx0PWphLmN1cnJlbnQsdCE9PW51bGwpe3N3aXRjaCh0LnRhZyl7Y2FzZSAzMTpjYXNlIDEzOnJldHVybiBmZT09PW51bGw/SG8oKTp0LmFsdGVybmF0ZT09PW51bGwmJm9hPT09MCYmKG9hPTMpLHQuZmxhZ3MmPS0yNTcsdC5mbGFnc3w9NjU1MzYsdC5sYW5lcz11LGw9PT1Ubz90LmZsYWdzfD0xNjM4NDooZT10LnVwZGF0ZVF1ZXVlLGU9PT1udWxsP3QudXBkYXRlUXVldWU9bmV3IFNldChbbF0pOmUuYWRkKGwpLFNzKGEsbCx1KSksITE7Y2FzZSAyMjpyZXR1cm4gdC5mbGFnc3w9NjU1MzYsbD09PVRvP3QuZmxhZ3N8PTE2Mzg0OihlPXQudXBkYXRlUXVldWUsZT09PW51bGw/KGU9e3RyYW5zaXRpb25zOm51bGwsbWFya2VySW5zdGFuY2VzOm51bGwscmV0cnlRdWV1ZTpuZXcgU2V0KFtsXSl9LHQudXBkYXRlUXVldWU9ZSk6KHQ9ZS5yZXRyeVF1ZXVlLHQ9PT1udWxsP2UucmV0cnlRdWV1ZT1uZXcgU2V0KFtsXSk6dC5hZGQobCkpLFNzKGEsbCx1KSksITF9dGhyb3cgRXJyb3IoQyg0MzUsdC50YWcpKX1yZXR1cm4gU3MoYSxsLHUpLEhvKCksITF9aWYoRilyZXR1cm4gZT1qYS5jdXJyZW50LGUhPT1udWxsPygoZS5mbGFncyY2NTUzNik9PT0wJiYoZS5mbGFnc3w9MjU2KSxlLmZsYWdzfD02NTUzNixlLmxhbmVzPXUsbCE9PUdzJiYoYT1FcnJvcihDKDQyMikse2NhdXNlOmx9KSxQdShsZShhLHQpKSkpOihsIT09R3MmJihlPUVycm9yKEMoNDIzKSx7Y2F1c2U6bH0pLFB1KGxlKGUsdCkpKSxhPWEuY3VycmVudC5hbHRlcm5hdGUsYS5mbGFnc3w9NjU1MzYsdSY9LXUsYS5sYW5lc3w9dSxsPWxlKGwsdCksdT1haShhLnN0YXRlTm9kZSxsLHUpLGZzKGEsdSksb2EhPT00JiYob2E9MikpLCExO3ZhciBmPUVycm9yKEMoNTIwKSx7Y2F1c2U6bH0pO2lmKGY9bGUoZix0KSxVdT09PW51bGw/VXU9W2ZdOlV1LnB1c2goZiksb2EhPT00JiYob2E9MiksZT09PW51bGwpcmV0dXJuITA7bD1sZShsLHQpLHQ9ZTtkb3tzd2l0Y2godC50YWcpe2Nhc2UgMzpyZXR1cm4gdC5mbGFnc3w9NjU1MzYsYT11Ji11LHQubGFuZXN8PWEsYT1haSh0LnN0YXRlTm9kZSxsLGEpLGZzKHQsYSksITE7Y2FzZSAxOmlmKGU9dC50eXBlLGY9dC5zdGF0ZU5vZGUsKHQuZmxhZ3MmMTI4KT09PTAmJih0eXBlb2YgZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I9PSJmdW5jdGlvbiJ8fGYhPT1udWxsJiZ0eXBlb2YgZi5jb21wb25lbnREaWRDYXRjaD09ImZ1bmN0aW9uIiYmKEx0PT09bnVsbHx8IUx0LmhhcyhmKSkpKXJldHVybiB0LmZsYWdzfD02NTUzNix1Jj0tdSx0LmxhbmVzfD11LHU9bXAodSkscHAodSxhLHQsbCksZnModCx1KSwhMX10PXQucmV0dXJufXdoaWxlKHQhPT1udWxsKTtyZXR1cm4hMX12YXIgYW49RXJyb3IoQyg0NjEpKSxjYT0hMTtmdW5jdGlvbiBnYShhLGUsdCxsKXtlLmNoaWxkPWE9PT1udWxsP1RtKGUsbnVsbCx0LGwpOlB0KGUsYS5jaGlsZCx0LGwpfWZ1bmN0aW9uIGpyKGEsZSx0LGwsdSl7dD10LnJlbmRlcjt2YXIgZj1lLnJlZjtpZigicmVmImluIGwpe3ZhciBvPXt9O2Zvcih2YXIgZCBpbiBsKWQhPT0icmVmIiYmKG9bZF09bFtkXSl9ZWxzZSBvPWw7cmV0dXJuIF90KGUpLGw9X2koYSxlLHQsbyxmLHUpLGQ9UGkoKSxhIT09bnVsbCYmIWNhPyhYaShhLGUsdSksUGUoYSxlLHUpKTooRiYmZCYmT2koZSksZS5mbGFnc3w9MSxnYShhLGUsbCx1KSxlLmNoaWxkKX1mdW5jdGlvbiBLcihhLGUsdCxsLHUpe2lmKGE9PT1udWxsKXt2YXIgZj10LnR5cGU7cmV0dXJuIHR5cGVvZiBmPT0iZnVuY3Rpb24iJiYhcWkoZikmJmYuZGVmYXVsdFByb3BzPT09dm9pZCAwJiZ0LmNvbXBhcmU9PT1udWxsPyhlLnRhZz0xNSxlLnR5cGU9ZixMcChhLGUsZixsLHUpKTooYT1zbyh0LnR5cGUsbnVsbCxsLGUsZS5tb2RlLHUpLGEucmVmPWUucmVmLGEucmV0dXJuPWUsZS5jaGlsZD1hKX1pZihmPWEuY2hpbGQsIWVuKGEsdSkpe3ZhciBvPWYubWVtb2l6ZWRQcm9wcztpZih0PXQuY29tcGFyZSx0PXQhPT1udWxsP3Q6R3UsdChvLGwpJiZhLnJlZj09PWUucmVmKXJldHVybiBQZShhLGUsdSl9cmV0dXJuIGUuZmxhZ3N8PTEsYT1FZShmLGwpLGEucmVmPWUucmVmLGEucmV0dXJuPWUsZS5jaGlsZD1hfWZ1bmN0aW9uIExwKGEsZSx0LGwsdSl7aWYoYSE9PW51bGwpe3ZhciBmPWEubWVtb2l6ZWRQcm9wcztpZihHdShmLGwpJiZhLnJlZj09PWUucmVmKWlmKGNhPSExLGUucGVuZGluZ1Byb3BzPWw9ZixlbihhLHUpKShhLmZsYWdzJjEzMTA3MikhPT0wJiYoY2E9ITApO2Vsc2UgcmV0dXJuIGUubGFuZXM9YS5sYW5lcyxQZShhLGUsdSl9cmV0dXJuIGVpKGEsZSx0LGwsdSl9ZnVuY3Rpb24gaHAoYSxlLHQsbCl7dmFyIHU9bC5jaGlsZHJlbixmPWEhPT1udWxsP2EubWVtb2l6ZWRTdGF0ZTpudWxsO2lmKGE9PT1udWxsJiZlLnN0YXRlTm9kZT09PW51bGwmJihlLnN0YXRlTm9kZT17X3Zpc2liaWxpdHk6MSxfcGVuZGluZ01hcmtlcnM6bnVsbCxfcmV0cnlDYWNoZTpudWxsLF90cmFuc2l0aW9uczpudWxsfSksbC5tb2RlPT09ImhpZGRlbiIpe2lmKChlLmZsYWdzJjEyOCkhPT0wKXtpZihmPWYhPT1udWxsP2YuYmFzZUxhbmVzfHQ6dCxhIT09bnVsbCl7Zm9yKGw9ZS5jaGlsZD1hLmNoaWxkLHU9MDtsIT09bnVsbDspdT11fGwubGFuZXN8bC5jaGlsZExhbmVzLGw9bC5zaWJsaW5nO2w9dSZ+Zn1lbHNlIGw9MCxlLmNoaWxkPW51bGw7cmV0dXJuIEpyKGEsZSxmLHQsbCl9aWYoKHQmNTM2ODcwOTEyKSE9PTApZS5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6MCxjYWNoZVBvb2w6bnVsbH0sYSE9PW51bGwmJmlvKGUsZiE9PW51bGw/Zi5jYWNoZVBvb2w6bnVsbCksZiE9PW51bGw/TnIoZSxmKTpZcygpLHdtKGUpO2Vsc2UgcmV0dXJuIGw9ZS5sYW5lcz01MzY4NzA5MTIsSnIoYSxlLGYhPT1udWxsP2YuYmFzZUxhbmVzfHQ6dCx0LGwpfWVsc2UgZiE9PW51bGw/KGlvKGUsZi5jYWNoZVBvb2wpLE5yKGUsZiksdXQoZSksZS5tZW1vaXplZFN0YXRlPW51bGwpOihhIT09bnVsbCYmaW8oZSxudWxsKSxZcygpLHV0KGUpKTtyZXR1cm4gZ2EoYSxlLHUsdCksZS5jaGlsZH1mdW5jdGlvbiB2dShhLGUpe3JldHVybiBhIT09bnVsbCYmYS50YWc9PT0yMnx8ZS5zdGF0ZU5vZGUhPT1udWxsfHwoZS5zdGF0ZU5vZGU9e192aXNpYmlsaXR5OjEsX3BlbmRpbmdNYXJrZXJzOm51bGwsX3JldHJ5Q2FjaGU6bnVsbCxfdHJhbnNpdGlvbnM6bnVsbH0pLGUuc2libGluZ31mdW5jdGlvbiBKcihhLGUsdCxsLHUpe3ZhciBmPUVpKCk7cmV0dXJuIGY9Zj09PW51bGw/bnVsbDp7cGFyZW50OnJhLl9jdXJyZW50VmFsdWUscG9vbDpmfSxlLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczp0LGNhY2hlUG9vbDpmfSxhIT09bnVsbCYmaW8oZSxudWxsKSxZcygpLHdtKGUpLGEhPT1udWxsJiZYbChhLGUsbCwhMCksZS5jaGlsZExhbmVzPXUsbnVsbH1mdW5jdGlvbiBjbyhhLGUpe3JldHVybiBlPU9vKHttb2RlOmUubW9kZSxjaGlsZHJlbjplLmNoaWxkcmVufSxhLm1vZGUpLGUucmVmPWEucmVmLGEuY2hpbGQ9ZSxlLnJldHVybj1hLGV9ZnVuY3Rpb24gV3IoYSxlLHQpe3JldHVybiBQdChlLGEuY2hpbGQsbnVsbCx0KSxhPWNvKGUsZS5wZW5kaW5nUHJvcHMpLGEuZmxhZ3N8PTIsR2EoZSksZS5tZW1vaXplZFN0YXRlPW51bGwsYX1mdW5jdGlvbiBYeChhLGUsdCl7dmFyIGw9ZS5wZW5kaW5nUHJvcHMsdT0oZS5mbGFncyYxMjgpIT09MDtpZihlLmZsYWdzJj0tMTI5LGE9PT1udWxsKXtpZihGKXtpZihsLm1vZGU9PT0iaGlkZGVuIilyZXR1cm4gYT1jbyhlLGwpLGUubGFuZXM9NTM2ODcwOTEyLHZ1KG51bGwsYSk7aWYoanMoZSksKGE9Vyk/KGE9c0woYSx1ZSksYT1hIT09bnVsbCYmYS5kYXRhPT09IiYiP2E6bnVsbCxhIT09bnVsbCYmKGUubWVtb2l6ZWRTdGF0ZT17ZGVoeWRyYXRlZDphLHRyZWVDb250ZXh0OkN0IT09bnVsbD97aWQ6aGUsb3ZlcmZsb3c6eGV9Om51bGwscmV0cnlMYW5lOjUzNjg3MDkxMixoeWRyYXRpb25FcnJvcnM6bnVsbH0sdD1JbShhKSx0LnJldHVybj1lLGUuY2hpbGQ9dCxJYT1lLFc9bnVsbCkpOmE9bnVsbCxhPT09bnVsbCl0aHJvdyBJdChlKTtyZXR1cm4gZS5sYW5lcz01MzY4NzA5MTIsbnVsbH1yZXR1cm4gY28oZSxsKX12YXIgZj1hLm1lbW9pemVkU3RhdGU7aWYoZiE9PW51bGwpe3ZhciBvPWYuZGVoeWRyYXRlZDtpZihqcyhlKSx1KWlmKGUuZmxhZ3MmMjU2KWUuZmxhZ3MmPS0yNTcsZT1XcihhLGUsdCk7ZWxzZSBpZihlLm1lbW9pemVkU3RhdGUhPT1udWxsKWUuY2hpbGQ9YS5jaGlsZCxlLmZsYWdzfD0xMjgsZT1udWxsO2Vsc2UgdGhyb3cgRXJyb3IoQyg1NTgpKTtlbHNlIGlmKGNhfHxYbChhLGUsdCwhMSksdT0odCZhLmNoaWxkTGFuZXMpIT09MCxjYXx8dSl7aWYobD1ZLGwhPT1udWxsJiYobz1RYyhsLHQpLG8hPT0wJiZvIT09Zi5yZXRyeUxhbmUpKXRocm93IGYucmV0cnlMYW5lPW8sanQoYSxvKSxPYShsLGEsbyksYW47SG8oKSxlPVdyKGEsZSx0KX1lbHNlIGE9Zi50cmVlQ29udGV4dCxXPW9lKG8ubmV4dFNpYmxpbmcpLElhPWUsRj0hMCxjdD1udWxsLHVlPSExLGEhPT1udWxsJiZ2bShlLGEpLGU9Y28oZSxsKSxlLmZsYWdzfD00MDk2O3JldHVybiBlfXJldHVybiBhPUVlKGEuY2hpbGQse21vZGU6bC5tb2RlLGNoaWxkcmVuOmwuY2hpbGRyZW59KSxhLnJlZj1lLnJlZixlLmNoaWxkPWEsYS5yZXR1cm49ZSxhfWZ1bmN0aW9uIG1vKGEsZSl7dmFyIHQ9ZS5yZWY7aWYodD09PW51bGwpYSE9PW51bGwmJmEucmVmIT09bnVsbCYmKGUuZmxhZ3N8PTQxOTQ4MTYpO2Vsc2V7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiImJnR5cGVvZiB0IT0ib2JqZWN0Iil0aHJvdyBFcnJvcihDKDI4NCkpOyhhPT09bnVsbHx8YS5yZWYhPT10KSYmKGUuZmxhZ3N8PTQxOTQ4MTYpfX1mdW5jdGlvbiBlaShhLGUsdCxsLHUpe3JldHVybiBfdChlKSx0PV9pKGEsZSx0LGwsdm9pZCAwLHUpLGw9UGkoKSxhIT09bnVsbCYmIWNhPyhYaShhLGUsdSksUGUoYSxlLHUpKTooRiYmbCYmT2koZSksZS5mbGFnc3w9MSxnYShhLGUsdCx1KSxlLmNoaWxkKX1mdW5jdGlvbiAkcihhLGUsdCxsLHUsZil7cmV0dXJuIF90KGUpLGUudXBkYXRlUXVldWU9bnVsbCx0PXFtKGUsbCx0LHUpLFJtKGEpLGw9UGkoKSxhIT09bnVsbCYmIWNhPyhYaShhLGUsZiksUGUoYSxlLGYpKTooRiYmbCYmT2koZSksZS5mbGFnc3w9MSxnYShhLGUsdCxmKSxlLmNoaWxkKX1mdW5jdGlvbiBhYyhhLGUsdCxsLHUpe2lmKF90KGUpLGUuc3RhdGVOb2RlPT09bnVsbCl7dmFyIGY9Q2wsbz10LmNvbnRleHRUeXBlO3R5cGVvZiBvPT0ib2JqZWN0IiYmbyE9PW51bGwmJihmPXlhKG8pKSxmPW5ldyB0KGwsZiksZS5tZW1vaXplZFN0YXRlPWYuc3RhdGUhPT1udWxsJiZmLnN0YXRlIT09dm9pZCAwP2Yuc3RhdGU6bnVsbCxmLnVwZGF0ZXI9JHMsZS5zdGF0ZU5vZGU9ZixmLl9yZWFjdEludGVybmFscz1lLGY9ZS5zdGF0ZU5vZGUsZi5wcm9wcz1sLGYuc3RhdGU9ZS5tZW1vaXplZFN0YXRlLGYucmVmcz17fSxOaShlKSxvPXQuY29udGV4dFR5cGUsZi5jb250ZXh0PXR5cGVvZiBvPT0ib2JqZWN0IiYmbyE9PW51bGw/eWEobyk6Q2wsZi5zdGF0ZT1lLm1lbW9pemVkU3RhdGUsbz10LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyx0eXBlb2Ygbz09ImZ1bmN0aW9uIiYmKGRzKGUsdCxvLGwpLGYuc3RhdGU9ZS5tZW1vaXplZFN0YXRlKSx0eXBlb2YgdC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM9PSJmdW5jdGlvbiJ8fHR5cGVvZiBmLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlPT0iZnVuY3Rpb24ifHx0eXBlb2YgZi5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IT0iZnVuY3Rpb24iJiZ0eXBlb2YgZi5jb21wb25lbnRXaWxsTW91bnQhPSJmdW5jdGlvbiJ8fChvPWYuc3RhdGUsdHlwZW9mIGYuY29tcG9uZW50V2lsbE1vdW50PT0iZnVuY3Rpb24iJiZmLmNvbXBvbmVudFdpbGxNb3VudCgpLHR5cGVvZiBmLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQ9PSJmdW5jdGlvbiImJmYuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpLG8hPT1mLnN0YXRlJiYkcy5lbnF1ZXVlUmVwbGFjZVN0YXRlKGYsZi5zdGF0ZSxudWxsKSx3dShlLGwsZix1KSxrdSgpLGYuc3RhdGU9ZS5tZW1vaXplZFN0YXRlKSx0eXBlb2YgZi5jb21wb25lbnREaWRNb3VudD09ImZ1bmN0aW9uIiYmKGUuZmxhZ3N8PTQxOTQzMDgpLGw9ITB9ZWxzZSBpZihhPT09bnVsbCl7Zj1lLnN0YXRlTm9kZTt2YXIgZD1lLm1lbW9pemVkUHJvcHMsaT1WdCh0LGQpO2YucHJvcHM9aTt2YXIgbT1mLmNvbnRleHQseD10LmNvbnRleHRUeXBlO289Q2wsdHlwZW9mIHg9PSJvYmplY3QiJiZ4IT09bnVsbCYmKG89eWEoeCkpO3ZhciBnPXQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzO3g9dHlwZW9mIGc9PSJmdW5jdGlvbiJ8fHR5cGVvZiBmLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlPT0iZnVuY3Rpb24iLGQ9ZS5wZW5kaW5nUHJvcHMhPT1kLHh8fHR5cGVvZiBmLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIT0iZnVuY3Rpb24iJiZ0eXBlb2YgZi5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIT0iZnVuY3Rpb24ifHwoZHx8bSE9PW8pJiZRcihlLGYsbCxvKSxldD0hMTt2YXIgTD1lLm1lbW9pemVkU3RhdGU7Zi5zdGF0ZT1MLHd1KGUsbCxmLHUpLGt1KCksbT1lLm1lbW9pemVkU3RhdGUsZHx8TCE9PW18fGV0Pyh0eXBlb2YgZz09ImZ1bmN0aW9uIiYmKGRzKGUsdCxnLGwpLG09ZS5tZW1vaXplZFN0YXRlKSwoaT1ldHx8WnIoZSx0LGksbCxMLG0sbykpPyh4fHx0eXBlb2YgZi5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IT0iZnVuY3Rpb24iJiZ0eXBlb2YgZi5jb21wb25lbnRXaWxsTW91bnQhPSJmdW5jdGlvbiJ8fCh0eXBlb2YgZi5jb21wb25lbnRXaWxsTW91bnQ9PSJmdW5jdGlvbiImJmYuY29tcG9uZW50V2lsbE1vdW50KCksdHlwZW9mIGYuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudD09ImZ1bmN0aW9uIiYmZi5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCkpLHR5cGVvZiBmLmNvbXBvbmVudERpZE1vdW50PT0iZnVuY3Rpb24iJiYoZS5mbGFnc3w9NDE5NDMwOCkpOih0eXBlb2YgZi5jb21wb25lbnREaWRNb3VudD09ImZ1bmN0aW9uIiYmKGUuZmxhZ3N8PTQxOTQzMDgpLGUubWVtb2l6ZWRQcm9wcz1sLGUubWVtb2l6ZWRTdGF0ZT1tKSxmLnByb3BzPWwsZi5zdGF0ZT1tLGYuY29udGV4dD1vLGw9aSk6KHR5cGVvZiBmLmNvbXBvbmVudERpZE1vdW50PT0iZnVuY3Rpb24iJiYoZS5mbGFnc3w9NDE5NDMwOCksbD0hMSl9ZWxzZXtmPWUuc3RhdGVOb2RlLFpzKGEsZSksbz1lLm1lbW9pemVkUHJvcHMseD1WdCh0LG8pLGYucHJvcHM9eCxnPWUucGVuZGluZ1Byb3BzLEw9Zi5jb250ZXh0LG09dC5jb250ZXh0VHlwZSxpPUNsLHR5cGVvZiBtPT0ib2JqZWN0IiYmbSE9PW51bGwmJihpPXlhKG0pKSxkPXQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLChtPXR5cGVvZiBkPT0iZnVuY3Rpb24ifHx0eXBlb2YgZi5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZT09ImZ1bmN0aW9uIil8fHR5cGVvZiBmLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIT0iZnVuY3Rpb24iJiZ0eXBlb2YgZi5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIT0iZnVuY3Rpb24ifHwobyE9PWd8fEwhPT1pKSYmUXIoZSxmLGwsaSksZXQ9ITEsTD1lLm1lbW9pemVkU3RhdGUsZi5zdGF0ZT1MLHd1KGUsbCxmLHUpLGt1KCk7dmFyIGg9ZS5tZW1vaXplZFN0YXRlO28hPT1nfHxMIT09aHx8ZXR8fGEhPT1udWxsJiZhLmRlcGVuZGVuY2llcyE9PW51bGwmJkRvKGEuZGVwZW5kZW5jaWVzKT8odHlwZW9mIGQ9PSJmdW5jdGlvbiImJihkcyhlLHQsZCxsKSxoPWUubWVtb2l6ZWRTdGF0ZSksKHg9ZXR8fFpyKGUsdCx4LGwsTCxoLGkpfHxhIT09bnVsbCYmYS5kZXBlbmRlbmNpZXMhPT1udWxsJiZEbyhhLmRlcGVuZGVuY2llcykpPyhtfHx0eXBlb2YgZi5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSE9ImZ1bmN0aW9uIiYmdHlwZW9mIGYuY29tcG9uZW50V2lsbFVwZGF0ZSE9ImZ1bmN0aW9uInx8KHR5cGVvZiBmLmNvbXBvbmVudFdpbGxVcGRhdGU9PSJmdW5jdGlvbiImJmYuY29tcG9uZW50V2lsbFVwZGF0ZShsLGgsaSksdHlwZW9mIGYuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGU9PSJmdW5jdGlvbiImJmYuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUobCxoLGkpKSx0eXBlb2YgZi5jb21wb25lbnREaWRVcGRhdGU9PSJmdW5jdGlvbiImJihlLmZsYWdzfD00KSx0eXBlb2YgZi5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZT09ImZ1bmN0aW9uIiYmKGUuZmxhZ3N8PTEwMjQpKToodHlwZW9mIGYuY29tcG9uZW50RGlkVXBkYXRlIT0iZnVuY3Rpb24ifHxvPT09YS5tZW1vaXplZFByb3BzJiZMPT09YS5tZW1vaXplZFN0YXRlfHwoZS5mbGFnc3w9NCksdHlwZW9mIGYuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUhPSJmdW5jdGlvbiJ8fG89PT1hLm1lbW9pemVkUHJvcHMmJkw9PT1hLm1lbW9pemVkU3RhdGV8fChlLmZsYWdzfD0xMDI0KSxlLm1lbW9pemVkUHJvcHM9bCxlLm1lbW9pemVkU3RhdGU9aCksZi5wcm9wcz1sLGYuc3RhdGU9aCxmLmNvbnRleHQ9aSxsPXgpOih0eXBlb2YgZi5jb21wb25lbnREaWRVcGRhdGUhPSJmdW5jdGlvbiJ8fG89PT1hLm1lbW9pemVkUHJvcHMmJkw9PT1hLm1lbW9pemVkU3RhdGV8fChlLmZsYWdzfD00KSx0eXBlb2YgZi5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSE9ImZ1bmN0aW9uInx8bz09PWEubWVtb2l6ZWRQcm9wcyYmTD09PWEubWVtb2l6ZWRTdGF0ZXx8KGUuZmxhZ3N8PTEwMjQpLGw9ITEpfXJldHVybiBmPWwsbW8oYSxlKSxsPShlLmZsYWdzJjEyOCkhPT0wLGZ8fGw/KGY9ZS5zdGF0ZU5vZGUsdD1sJiZ0eXBlb2YgdC5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IhPSJmdW5jdGlvbiI/bnVsbDpmLnJlbmRlcigpLGUuZmxhZ3N8PTEsYSE9PW51bGwmJmw/KGUuY2hpbGQ9UHQoZSxhLmNoaWxkLG51bGwsdSksZS5jaGlsZD1QdChlLG51bGwsdCx1KSk6Z2EoYSxlLHQsdSksZS5tZW1vaXplZFN0YXRlPWYuc3RhdGUsYT1lLmNoaWxkKTphPVBlKGEsZSx1KSxhfWZ1bmN0aW9uIGVjKGEsZSx0LGwpe3JldHVybiBHdCgpLGUuZmxhZ3N8PTI1NixnYShhLGUsdCxsKSxlLmNoaWxkfXZhciBzcz17ZGVoeWRyYXRlZDpudWxsLHRyZWVDb250ZXh0Om51bGwscmV0cnlMYW5lOjAsaHlkcmF0aW9uRXJyb3JzOm51bGx9O2Z1bmN0aW9uIGlzKGEpe3JldHVybntiYXNlTGFuZXM6YSxjYWNoZVBvb2w6Ym0oKX19ZnVuY3Rpb24gbnMoYSxlLHQpe3JldHVybiBhPWEhPT1udWxsP2EuY2hpbGRMYW5lcyZ+dDowLGUmJihhfD1QYSksYX1mdW5jdGlvbiB4cChhLGUsdCl7dmFyIGw9ZS5wZW5kaW5nUHJvcHMsdT0hMSxmPShlLmZsYWdzJjEyOCkhPT0wLG87aWYoKG89Zil8fChvPWEhPT1udWxsJiZhLm1lbW9pemVkU3RhdGU9PT1udWxsPyExOihkYS5jdXJyZW50JjIpIT09MCksbyYmKHU9ITAsZS5mbGFncyY9LTEyOSksbz0oZS5mbGFncyYzMikhPT0wLGUuZmxhZ3MmPS0zMyxhPT09bnVsbCl7aWYoRil7aWYodT9sdChlKTp1dChlKSwoYT1XKT8oYT1zTChhLHVlKSxhPWEhPT1udWxsJiZhLmRhdGEhPT0iJiI/YTpudWxsLGEhPT1udWxsJiYoZS5tZW1vaXplZFN0YXRlPXtkZWh5ZHJhdGVkOmEsdHJlZUNvbnRleHQ6Q3QhPT1udWxsP3tpZDpoZSxvdmVyZmxvdzp4ZX06bnVsbCxyZXRyeUxhbmU6NTM2ODcwOTEyLGh5ZHJhdGlvbkVycm9yczpudWxsfSx0PUltKGEpLHQucmV0dXJuPWUsZS5jaGlsZD10LElhPWUsVz1udWxsKSk6YT1udWxsLGE9PT1udWxsKXRocm93IEl0KGUpO3JldHVybiBMaShhKT9lLmxhbmVzPTMyOmUubGFuZXM9NTM2ODcwOTEyLG51bGx9dmFyIGQ9bC5jaGlsZHJlbjtyZXR1cm4gbD1sLmZhbGxiYWNrLHU/KHV0KGUpLHU9ZS5tb2RlLGQ9T28oe21vZGU6ImhpZGRlbiIsY2hpbGRyZW46ZH0sdSksbD1FdChsLHUsdCxudWxsKSxkLnJldHVybj1lLGwucmV0dXJuPWUsZC5zaWJsaW5nPWwsZS5jaGlsZD1kLGw9ZS5jaGlsZCxsLm1lbW9pemVkU3RhdGU9aXModCksbC5jaGlsZExhbmVzPW5zKGEsbyx0KSxlLm1lbW9pemVkU3RhdGU9c3MsdnUobnVsbCxsKSk6KGx0KGUpLHRpKGUsZCkpfXZhciBpPWEubWVtb2l6ZWRTdGF0ZTtpZihpIT09bnVsbCYmKGQ9aS5kZWh5ZHJhdGVkLGQhPT1udWxsKSl7aWYoZillLmZsYWdzJjI1Nj8obHQoZSksZS5mbGFncyY9LTI1NyxlPXJzKGEsZSx0KSk6ZS5tZW1vaXplZFN0YXRlIT09bnVsbD8odXQoZSksZS5jaGlsZD1hLmNoaWxkLGUuZmxhZ3N8PTEyOCxlPW51bGwpOih1dChlKSxkPWwuZmFsbGJhY2ssdT1lLm1vZGUsbD1Pbyh7bW9kZToidmlzaWJsZSIsY2hpbGRyZW46bC5jaGlsZHJlbn0sdSksZD1FdChkLHUsdCxudWxsKSxkLmZsYWdzfD0yLGwucmV0dXJuPWUsZC5yZXR1cm49ZSxsLnNpYmxpbmc9ZCxlLmNoaWxkPWwsUHQoZSxhLmNoaWxkLG51bGwsdCksbD1lLmNoaWxkLGwubWVtb2l6ZWRTdGF0ZT1pcyh0KSxsLmNoaWxkTGFuZXM9bnMoYSxvLHQpLGUubWVtb2l6ZWRTdGF0ZT1zcyxlPXZ1KG51bGwsbCkpO2Vsc2UgaWYobHQoZSksTGkoZCkpe2lmKG89ZC5uZXh0U2libGluZyYmZC5uZXh0U2libGluZy5kYXRhc2V0LG8pdmFyIG09by5kZ3N0O289bSxsPUVycm9yKEMoNDE5KSksbC5zdGFjaz0iIixsLmRpZ2VzdD1vLFB1KHt2YWx1ZTpsLHNvdXJjZTpudWxsLHN0YWNrOm51bGx9KSxlPXJzKGEsZSx0KX1lbHNlIGlmKGNhfHxYbChhLGUsdCwhMSksbz0odCZhLmNoaWxkTGFuZXMpIT09MCxjYXx8byl7aWYobz1ZLG8hPT1udWxsJiYobD1RYyhvLHQpLGwhPT0wJiZsIT09aS5yZXRyeUxhbmUpKXRocm93IGkucmV0cnlMYW5lPWwsanQoYSxsKSxPYShvLGEsbCksYW47cGkoZCl8fEhvKCksZT1ycyhhLGUsdCl9ZWxzZSBwaShkKT8oZS5mbGFnc3w9MTkyLGUuY2hpbGQ9YS5jaGlsZCxlPW51bGwpOihhPWkudHJlZUNvbnRleHQsVz1vZShkLm5leHRTaWJsaW5nKSxJYT1lLEY9ITAsY3Q9bnVsbCx1ZT0hMSxhIT09bnVsbCYmdm0oZSxhKSxlPXRpKGUsbC5jaGlsZHJlbiksZS5mbGFnc3w9NDA5Nik7cmV0dXJuIGV9cmV0dXJuIHU/KHV0KGUpLGQ9bC5mYWxsYmFjayx1PWUubW9kZSxpPWEuY2hpbGQsbT1pLnNpYmxpbmcsbD1FZShpLHttb2RlOiJoaWRkZW4iLGNoaWxkcmVuOmwuY2hpbGRyZW59KSxsLnN1YnRyZWVGbGFncz1pLnN1YnRyZWVGbGFncyY2NTAxMTcxMixtIT09bnVsbD9kPUVlKG0sZCk6KGQ9RXQoZCx1LHQsbnVsbCksZC5mbGFnc3w9MiksZC5yZXR1cm49ZSxsLnJldHVybj1lLGwuc2libGluZz1kLGUuY2hpbGQ9bCx2dShudWxsLGwpLGw9ZS5jaGlsZCxkPWEuY2hpbGQubWVtb2l6ZWRTdGF0ZSxkPT09bnVsbD9kPWlzKHQpOih1PWQuY2FjaGVQb29sLHUhPT1udWxsPyhpPXJhLl9jdXJyZW50VmFsdWUsdT11LnBhcmVudCE9PWk/e3BhcmVudDppLHBvb2w6aX06dSk6dT1ibSgpLGQ9e2Jhc2VMYW5lczpkLmJhc2VMYW5lc3x0LGNhY2hlUG9vbDp1fSksbC5tZW1vaXplZFN0YXRlPWQsbC5jaGlsZExhbmVzPW5zKGEsbyx0KSxlLm1lbW9pemVkU3RhdGU9c3MsdnUoYS5jaGlsZCxsKSk6KGx0KGUpLHQ9YS5jaGlsZCxhPXQuc2libGluZyx0PUVlKHQse21vZGU6InZpc2libGUiLGNoaWxkcmVuOmwuY2hpbGRyZW59KSx0LnJldHVybj1lLHQuc2libGluZz1udWxsLGEhPT1udWxsJiYobz1lLmRlbGV0aW9ucyxvPT09bnVsbD8oZS5kZWxldGlvbnM9W2FdLGUuZmxhZ3N8PTE2KTpvLnB1c2goYSkpLGUuY2hpbGQ9dCxlLm1lbW9pemVkU3RhdGU9bnVsbCx0KX1mdW5jdGlvbiB0aShhLGUpe3JldHVybiBlPU9vKHttb2RlOiJ2aXNpYmxlIixjaGlsZHJlbjplfSxhLm1vZGUpLGUucmV0dXJuPWEsYS5jaGlsZD1lfWZ1bmN0aW9uIE9vKGEsZSl7cmV0dXJuIGE9X2EoMjIsYSxudWxsLGUpLGEubGFuZXM9MCxhfWZ1bmN0aW9uIHJzKGEsZSx0KXtyZXR1cm4gUHQoZSxhLmNoaWxkLG51bGwsdCksYT10aShlLGUucGVuZGluZ1Byb3BzLmNoaWxkcmVuKSxhLmZsYWdzfD0yLGUubWVtb2l6ZWRTdGF0ZT1udWxsLGF9ZnVuY3Rpb24gdGMoYSxlLHQpe2EubGFuZXN8PWU7dmFyIGw9YS5hbHRlcm5hdGU7bCE9PW51bGwmJihsLmxhbmVzfD1lKSxQcyhhLnJldHVybixlLHQpfWZ1bmN0aW9uIGNzKGEsZSx0LGwsdSxmKXt2YXIgbz1hLm1lbW9pemVkU3RhdGU7bz09PW51bGw/YS5tZW1vaXplZFN0YXRlPXtpc0JhY2t3YXJkczplLHJlbmRlcmluZzpudWxsLHJlbmRlcmluZ1N0YXJ0VGltZTowLGxhc3Q6bCx0YWlsOnQsdGFpbE1vZGU6dSx0cmVlRm9ya0NvdW50OmZ9OihvLmlzQmFja3dhcmRzPWUsby5yZW5kZXJpbmc9bnVsbCxvLnJlbmRlcmluZ1N0YXJ0VGltZT0wLG8ubGFzdD1sLG8udGFpbD10LG8udGFpbE1vZGU9dSxvLnRyZWVGb3JrQ291bnQ9Zil9ZnVuY3Rpb24gU3AoYSxlLHQpe3ZhciBsPWUucGVuZGluZ1Byb3BzLHU9bC5yZXZlYWxPcmRlcixmPWwudGFpbDtsPWwuY2hpbGRyZW47dmFyIG89ZGEuY3VycmVudCxkPShvJjIpIT09MDtpZihkPyhvPW8mMXwyLGUuZmxhZ3N8PTEyOCk6byY9MSxqKGRhLG8pLGdhKGEsZSxsLHQpLGw9Rj9fdTowLCFkJiZhIT09bnVsbCYmKGEuZmxhZ3MmMTI4KSE9PTApYTpmb3IoYT1lLmNoaWxkO2EhPT1udWxsOyl7aWYoYS50YWc9PT0xMylhLm1lbW9pemVkU3RhdGUhPT1udWxsJiZ0YyhhLHQsZSk7ZWxzZSBpZihhLnRhZz09PTE5KXRjKGEsdCxlKTtlbHNlIGlmKGEuY2hpbGQhPT1udWxsKXthLmNoaWxkLnJldHVybj1hLGE9YS5jaGlsZDtjb250aW51ZX1pZihhPT09ZSlicmVhayBhO2Zvcig7YS5zaWJsaW5nPT09bnVsbDspe2lmKGEucmV0dXJuPT09bnVsbHx8YS5yZXR1cm49PT1lKWJyZWFrIGE7YT1hLnJldHVybn1hLnNpYmxpbmcucmV0dXJuPWEucmV0dXJuLGE9YS5zaWJsaW5nfXN3aXRjaCh1KXtjYXNlImZvcndhcmRzIjpmb3IodD1lLmNoaWxkLHU9bnVsbDt0IT09bnVsbDspYT10LmFsdGVybmF0ZSxhIT09bnVsbCYma28oYSk9PT1udWxsJiYodT10KSx0PXQuc2libGluZzt0PXUsdD09PW51bGw/KHU9ZS5jaGlsZCxlLmNoaWxkPW51bGwpOih1PXQuc2libGluZyx0LnNpYmxpbmc9bnVsbCksY3MoZSwhMSx1LHQsZixsKTticmVhaztjYXNlImJhY2t3YXJkcyI6Y2FzZSJ1bnN0YWJsZV9sZWdhY3ktYmFja3dhcmRzIjpmb3IodD1udWxsLHU9ZS5jaGlsZCxlLmNoaWxkPW51bGw7dSE9PW51bGw7KXtpZihhPXUuYWx0ZXJuYXRlLGEhPT1udWxsJiZrbyhhKT09PW51bGwpe2UuY2hpbGQ9dTticmVha31hPXUuc2libGluZyx1LnNpYmxpbmc9dCx0PXUsdT1hfWNzKGUsITAsdCxudWxsLGYsbCk7YnJlYWs7Y2FzZSJ0b2dldGhlciI6Y3MoZSwhMSxudWxsLG51bGwsdm9pZCAwLGwpO2JyZWFrO2RlZmF1bHQ6ZS5tZW1vaXplZFN0YXRlPW51bGx9cmV0dXJuIGUuY2hpbGR9ZnVuY3Rpb24gUGUoYSxlLHQpe2lmKGEhPT1udWxsJiYoZS5kZXBlbmRlbmNpZXM9YS5kZXBlbmRlbmNpZXMpLHZ0fD1lLmxhbmVzLCh0JmUuY2hpbGRMYW5lcyk9PT0wKWlmKGEhPT1udWxsKXtpZihYbChhLGUsdCwhMSksKHQmZS5jaGlsZExhbmVzKT09PTApcmV0dXJuIG51bGx9ZWxzZSByZXR1cm4gbnVsbDtpZihhIT09bnVsbCYmZS5jaGlsZCE9PWEuY2hpbGQpdGhyb3cgRXJyb3IoQygxNTMpKTtpZihlLmNoaWxkIT09bnVsbCl7Zm9yKGE9ZS5jaGlsZCx0PUVlKGEsYS5wZW5kaW5nUHJvcHMpLGUuY2hpbGQ9dCx0LnJldHVybj1lO2Euc2libGluZyE9PW51bGw7KWE9YS5zaWJsaW5nLHQ9dC5zaWJsaW5nPUVlKGEsYS5wZW5kaW5nUHJvcHMpLHQucmV0dXJuPWU7dC5zaWJsaW5nPW51bGx9cmV0dXJuIGUuY2hpbGR9ZnVuY3Rpb24gZW4oYSxlKXtyZXR1cm4oYS5sYW5lcyZlKSE9PTA/ITA6KGE9YS5kZXBlbmRlbmNpZXMsISEoYSE9PW51bGwmJkRvKGEpKSl9ZnVuY3Rpb24gVngoYSxlLHQpe3N3aXRjaChlLnRhZyl7Y2FzZSAzOkNvKGUsZS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksdHQoZSxyYSxhLm1lbW9pemVkU3RhdGUuY2FjaGUpLEd0KCk7YnJlYWs7Y2FzZSAyNzpjYXNlIDU6a3MoZSk7YnJlYWs7Y2FzZSA0OkNvKGUsZS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyk7YnJlYWs7Y2FzZSAxMDp0dChlLGUudHlwZSxlLm1lbW9pemVkUHJvcHMudmFsdWUpO2JyZWFrO2Nhc2UgMzE6aWYoZS5tZW1vaXplZFN0YXRlIT09bnVsbClyZXR1cm4gZS5mbGFnc3w9MTI4LGpzKGUpLG51bGw7YnJlYWs7Y2FzZSAxMzp2YXIgbD1lLm1lbW9pemVkU3RhdGU7aWYobCE9PW51bGwpcmV0dXJuIGwuZGVoeWRyYXRlZCE9PW51bGw/KGx0KGUpLGUuZmxhZ3N8PTEyOCxudWxsKToodCZlLmNoaWxkLmNoaWxkTGFuZXMpIT09MD94cChhLGUsdCk6KGx0KGUpLGE9UGUoYSxlLHQpLGEhPT1udWxsP2Euc2libGluZzpudWxsKTtsdChlKTticmVhaztjYXNlIDE5OnZhciB1PShhLmZsYWdzJjEyOCkhPT0wO2lmKGw9KHQmZS5jaGlsZExhbmVzKSE9PTAsbHx8KFhsKGEsZSx0LCExKSxsPSh0JmUuY2hpbGRMYW5lcykhPT0wKSx1KXtpZihsKXJldHVybiBTcChhLGUsdCk7ZS5mbGFnc3w9MTI4fWlmKHU9ZS5tZW1vaXplZFN0YXRlLHUhPT1udWxsJiYodS5yZW5kZXJpbmc9bnVsbCx1LnRhaWw9bnVsbCx1Lmxhc3RFZmZlY3Q9bnVsbCksaihkYSxkYS5jdXJyZW50KSxsKWJyZWFrO3JldHVybiBudWxsO2Nhc2UgMjI6cmV0dXJuIGUubGFuZXM9MCxocChhLGUsdCxlLnBlbmRpbmdQcm9wcyk7Y2FzZSAyNDp0dChlLHJhLGEubWVtb2l6ZWRTdGF0ZS5jYWNoZSl9cmV0dXJuIFBlKGEsZSx0KX1mdW5jdGlvbiBncChhLGUsdCl7aWYoYSE9PW51bGwpaWYoYS5tZW1vaXplZFByb3BzIT09ZS5wZW5kaW5nUHJvcHMpY2E9ITA7ZWxzZXtpZighZW4oYSx0KSYmKGUuZmxhZ3MmMTI4KT09PTApcmV0dXJuIGNhPSExLFZ4KGEsZSx0KTtjYT0oYS5mbGFncyYxMzEwNzIpIT09MH1lbHNlIGNhPSExLEYmJihlLmZsYWdzJjEwNDg1NzYpIT09MCYmeW0oZSxfdSxlLmluZGV4KTtzd2l0Y2goZS5sYW5lcz0wLGUudGFnKXtjYXNlIDE2OmE6e3ZhciBsPWUucGVuZGluZ1Byb3BzO2lmKGE9T3QoZS5lbGVtZW50VHlwZSksZS50eXBlPWEsdHlwZW9mIGE9PSJmdW5jdGlvbiIpcWkoYSk/KGw9VnQoYSxsKSxlLnRhZz0xLGU9YWMobnVsbCxlLGEsbCx0KSk6KGUudGFnPTAsZT1laShudWxsLGUsYSxsLHQpKTtlbHNle2lmKGEhPW51bGwpe3ZhciB1PWEuJCR0eXBlb2Y7aWYodT09PWdpKXtlLnRhZz0xMSxlPWpyKG51bGwsZSxhLGwsdCk7YnJlYWsgYX1lbHNlIGlmKHU9PT1DaSl7ZS50YWc9MTQsZT1LcihudWxsLGUsYSxsLHQpO2JyZWFrIGF9fXRocm93IGU9VHMoYSl8fGEsRXJyb3IoQygzMDYsZSwiIikpfX1yZXR1cm4gZTtjYXNlIDA6cmV0dXJuIGVpKGEsZSxlLnR5cGUsZS5wZW5kaW5nUHJvcHMsdCk7Y2FzZSAxOnJldHVybiBsPWUudHlwZSx1PVZ0KGwsZS5wZW5kaW5nUHJvcHMpLGFjKGEsZSxsLHUsdCk7Y2FzZSAzOmE6e2lmKENvKGUsZS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksYT09PW51bGwpdGhyb3cgRXJyb3IoQygzODcpKTtsPWUucGVuZGluZ1Byb3BzO3ZhciBmPWUubWVtb2l6ZWRTdGF0ZTt1PWYuZWxlbWVudCxacyhhLGUpLHd1KGUsbCxudWxsLHQpO3ZhciBvPWUubWVtb2l6ZWRTdGF0ZTtpZihsPW8uY2FjaGUsdHQoZSxyYSxsKSxsIT09Zi5jYWNoZSYmWHMoZSxbcmFdLHQsITApLGt1KCksbD1vLmVsZW1lbnQsZi5pc0RlaHlkcmF0ZWQpaWYoZj17ZWxlbWVudDpsLGlzRGVoeWRyYXRlZDohMSxjYWNoZTpvLmNhY2hlfSxlLnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1mLGUubWVtb2l6ZWRTdGF0ZT1mLGUuZmxhZ3MmMjU2KXtlPWVjKGEsZSxsLHQpO2JyZWFrIGF9ZWxzZSBpZihsIT09dSl7dT1sZShFcnJvcihDKDQyNCkpLGUpLFB1KHUpLGU9ZWMoYSxlLGwsdCk7YnJlYWsgYX1lbHNlIGZvcihhPWUuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sYS5ub2RlVHlwZT09PTk/YT1hLmJvZHk6YT1hLm5vZGVOYW1lPT09IkhUTUwiP2Eub3duZXJEb2N1bWVudC5ib2R5OmEsVz1vZShhLmZpcnN0Q2hpbGQpLElhPWUsRj0hMCxjdD1udWxsLHVlPSEwLHQ9VG0oZSxudWxsLGwsdCksZS5jaGlsZD10O3Q7KXQuZmxhZ3M9dC5mbGFncyYtM3w0MDk2LHQ9dC5zaWJsaW5nO2Vsc2V7aWYoR3QoKSxsPT09dSl7ZT1QZShhLGUsdCk7YnJlYWsgYX1nYShhLGUsbCx0KX1lPWUuY2hpbGR9cmV0dXJuIGU7Y2FzZSAyNjpyZXR1cm4gbW8oYSxlKSxhPT09bnVsbD8odD1BYyhlLnR5cGUsbnVsbCxlLnBlbmRpbmdQcm9wcyxudWxsKSk/ZS5tZW1vaXplZFN0YXRlPXQ6Rnx8KHQ9ZS50eXBlLGE9ZS5wZW5kaW5nUHJvcHMsbD1fbyhydC5jdXJyZW50KS5jcmVhdGVFbGVtZW50KHQpLGxbQ2FdPWUsbFtVYV09YSx2YShsLHQsYSkseGEobCksZS5zdGF0ZU5vZGU9bCk6ZS5tZW1vaXplZFN0YXRlPUFjKGUudHlwZSxhLm1lbW9pemVkUHJvcHMsZS5wZW5kaW5nUHJvcHMsYS5tZW1vaXplZFN0YXRlKSxudWxsO2Nhc2UgMjc6cmV0dXJuIGtzKGUpLGE9PT1udWxsJiZGJiYobD1lLnN0YXRlTm9kZT1pTChlLnR5cGUsZS5wZW5kaW5nUHJvcHMscnQuY3VycmVudCksSWE9ZSx1ZT0hMCx1PVcsYnQoZS50eXBlKT8oaGk9dSxXPW9lKGwuZmlyc3RDaGlsZCkpOlc9dSksZ2EoYSxlLGUucGVuZGluZ1Byb3BzLmNoaWxkcmVuLHQpLG1vKGEsZSksYT09PW51bGwmJihlLmZsYWdzfD00MTk0MzA0KSxlLmNoaWxkO2Nhc2UgNTpyZXR1cm4gYT09PW51bGwmJkYmJigodT1sPVcpJiYobD1nUyhsLGUudHlwZSxlLnBlbmRpbmdQcm9wcyx1ZSksbCE9PW51bGw/KGUuc3RhdGVOb2RlPWwsSWE9ZSxXPW9lKGwuZmlyc3RDaGlsZCksdWU9ITEsdT0hMCk6dT0hMSksdXx8SXQoZSkpLGtzKGUpLHU9ZS50eXBlLGY9ZS5wZW5kaW5nUHJvcHMsbz1hIT09bnVsbD9hLm1lbW9pemVkUHJvcHM6bnVsbCxsPWYuY2hpbGRyZW4sY2kodSxmKT9sPW51bGw6byE9PW51bGwmJmNpKHUsbykmJihlLmZsYWdzfD0zMiksZS5tZW1vaXplZFN0YXRlIT09bnVsbCYmKHU9X2koYSxlLHp4LG51bGwsbnVsbCx0KSxqdS5fY3VycmVudFZhbHVlPXUpLG1vKGEsZSksZ2EoYSxlLGwsdCksZS5jaGlsZDtjYXNlIDY6cmV0dXJuIGE9PT1udWxsJiZGJiYoKGE9dD1XKSYmKHQ9Q1ModCxlLnBlbmRpbmdQcm9wcyx1ZSksdCE9PW51bGw/KGUuc3RhdGVOb2RlPXQsSWE9ZSxXPW51bGwsYT0hMCk6YT0hMSksYXx8SXQoZSkpLG51bGw7Y2FzZSAxMzpyZXR1cm4geHAoYSxlLHQpO2Nhc2UgNDpyZXR1cm4gQ28oZSxlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxsPWUucGVuZGluZ1Byb3BzLGE9PT1udWxsP2UuY2hpbGQ9UHQoZSxudWxsLGwsdCk6Z2EoYSxlLGwsdCksZS5jaGlsZDtjYXNlIDExOnJldHVybiBqcihhLGUsZS50eXBlLGUucGVuZGluZ1Byb3BzLHQpO2Nhc2UgNzpyZXR1cm4gZ2EoYSxlLGUucGVuZGluZ1Byb3BzLHQpLGUuY2hpbGQ7Y2FzZSA4OnJldHVybiBnYShhLGUsZS5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sdCksZS5jaGlsZDtjYXNlIDEyOnJldHVybiBnYShhLGUsZS5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sdCksZS5jaGlsZDtjYXNlIDEwOnJldHVybiBsPWUucGVuZGluZ1Byb3BzLHR0KGUsZS50eXBlLGwudmFsdWUpLGdhKGEsZSxsLmNoaWxkcmVuLHQpLGUuY2hpbGQ7Y2FzZSA5OnJldHVybiB1PWUudHlwZS5fY29udGV4dCxsPWUucGVuZGluZ1Byb3BzLmNoaWxkcmVuLF90KGUpLHU9eWEodSksbD1sKHUpLGUuZmxhZ3N8PTEsZ2EoYSxlLGwsdCksZS5jaGlsZDtjYXNlIDE0OnJldHVybiBLcihhLGUsZS50eXBlLGUucGVuZGluZ1Byb3BzLHQpO2Nhc2UgMTU6cmV0dXJuIExwKGEsZSxlLnR5cGUsZS5wZW5kaW5nUHJvcHMsdCk7Y2FzZSAxOTpyZXR1cm4gU3AoYSxlLHQpO2Nhc2UgMzE6cmV0dXJuIFh4KGEsZSx0KTtjYXNlIDIyOnJldHVybiBocChhLGUsdCxlLnBlbmRpbmdQcm9wcyk7Y2FzZSAyNDpyZXR1cm4gX3QoZSksbD15YShyYSksYT09PW51bGw/KHU9RWkoKSx1PT09bnVsbCYmKHU9WSxmPXppKCksdS5wb29sZWRDYWNoZT1mLGYucmVmQ291bnQrKyxmIT09bnVsbCYmKHUucG9vbGVkQ2FjaGVMYW5lc3w9dCksdT1mKSxlLm1lbW9pemVkU3RhdGU9e3BhcmVudDpsLGNhY2hlOnV9LE5pKGUpLHR0KGUscmEsdSkpOigoYS5sYW5lcyZ0KSE9PTAmJihacyhhLGUpLHd1KGUsbnVsbCxudWxsLHQpLGt1KCkpLHU9YS5tZW1vaXplZFN0YXRlLGY9ZS5tZW1vaXplZFN0YXRlLHUucGFyZW50IT09bD8odT17cGFyZW50OmwsY2FjaGU6bH0sZS5tZW1vaXplZFN0YXRlPXUsZS5sYW5lcz09PTAmJihlLm1lbW9pemVkU3RhdGU9ZS51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9dSksdHQoZSxyYSxsKSk6KGw9Zi5jYWNoZSx0dChlLHJhLGwpLGwhPT11LmNhY2hlJiZYcyhlLFtyYV0sdCwhMCkpKSxnYShhLGUsZS5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sdCksZS5jaGlsZDtjYXNlIDI5OnRocm93IGUucGVuZGluZ1Byb3BzfXRocm93IEVycm9yKEMoMTU2LGUudGFnKSl9ZnVuY3Rpb24gVGUoYSl7YS5mbGFnc3w9NH1mdW5jdGlvbiBtcyhhLGUsdCxsLHUpe2lmKChlPShhLm1vZGUmMzIpIT09MCkmJihlPSExKSxlKXtpZihhLmZsYWdzfD0xNjc3NzIxNiwodSYzMzU1NDQxMjgpPT09dSlpZihhLnN0YXRlTm9kZS5jb21wbGV0ZSlhLmZsYWdzfD04MTkyO2Vsc2UgaWYoUHAoKSlhLmZsYWdzfD04MTkyO2Vsc2UgdGhyb3cgTnQ9VG8sSGl9ZWxzZSBhLmZsYWdzJj0tMTY3NzcyMTd9ZnVuY3Rpb24gbGMoYSxlKXtpZihlLnR5cGUhPT0ic3R5bGVzaGVldCJ8fChlLnN0YXRlLmxvYWRpbmcmNCkhPT0wKWEuZmxhZ3MmPS0xNjc3NzIxNztlbHNlIGlmKGEuZmxhZ3N8PTE2Nzc3MjE2LCFjTChlKSlpZihQcCgpKWEuZmxhZ3N8PTgxOTI7ZWxzZSB0aHJvdyBOdD1UbyxIaX1mdW5jdGlvbiBLZihhLGUpe2UhPT1udWxsJiYoYS5mbGFnc3w9NCksYS5mbGFncyYxNjM4NCYmKGU9YS50YWchPT0yMj9YYygpOjUzNjg3MDkxMixhLmxhbmVzfD1lLEVsfD1lKX1mdW5jdGlvbiBodShhLGUpe2lmKCFGKXN3aXRjaChhLnRhaWxNb2RlKXtjYXNlImhpZGRlbiI6ZT1hLnRhaWw7Zm9yKHZhciB0PW51bGw7ZSE9PW51bGw7KWUuYWx0ZXJuYXRlIT09bnVsbCYmKHQ9ZSksZT1lLnNpYmxpbmc7dD09PW51bGw/YS50YWlsPW51bGw6dC5zaWJsaW5nPW51bGw7YnJlYWs7Y2FzZSJjb2xsYXBzZWQiOnQ9YS50YWlsO2Zvcih2YXIgbD1udWxsO3QhPT1udWxsOyl0LmFsdGVybmF0ZSE9PW51bGwmJihsPXQpLHQ9dC5zaWJsaW5nO2w9PT1udWxsP2V8fGEudGFpbD09PW51bGw/YS50YWlsPW51bGw6YS50YWlsLnNpYmxpbmc9bnVsbDpsLnNpYmxpbmc9bnVsbH19ZnVuY3Rpb24gSihhKXt2YXIgZT1hLmFsdGVybmF0ZSE9PW51bGwmJmEuYWx0ZXJuYXRlLmNoaWxkPT09YS5jaGlsZCx0PTAsbD0wO2lmKGUpZm9yKHZhciB1PWEuY2hpbGQ7dSE9PW51bGw7KXR8PXUubGFuZXN8dS5jaGlsZExhbmVzLGx8PXUuc3VidHJlZUZsYWdzJjY1MDExNzEyLGx8PXUuZmxhZ3MmNjUwMTE3MTIsdS5yZXR1cm49YSx1PXUuc2libGluZztlbHNlIGZvcih1PWEuY2hpbGQ7dSE9PW51bGw7KXR8PXUubGFuZXN8dS5jaGlsZExhbmVzLGx8PXUuc3VidHJlZUZsYWdzLGx8PXUuZmxhZ3MsdS5yZXR1cm49YSx1PXUuc2libGluZztyZXR1cm4gYS5zdWJ0cmVlRmxhZ3N8PWwsYS5jaGlsZExhbmVzPXQsZX1mdW5jdGlvbiBaeChhLGUsdCl7dmFyIGw9ZS5wZW5kaW5nUHJvcHM7c3dpdGNoKFVpKGUpLGUudGFnKXtjYXNlIDE2OmNhc2UgMTU6Y2FzZSAwOmNhc2UgMTE6Y2FzZSA3OmNhc2UgODpjYXNlIDEyOmNhc2UgOTpjYXNlIDE0OnJldHVybiBKKGUpLG51bGw7Y2FzZSAxOnJldHVybiBKKGUpLG51bGw7Y2FzZSAzOnJldHVybiB0PWUuc3RhdGVOb2RlLGw9bnVsbCxhIT09bnVsbCYmKGw9YS5tZW1vaXplZFN0YXRlLmNhY2hlKSxlLm1lbW9pemVkU3RhdGUuY2FjaGUhPT1sJiYoZS5mbGFnc3w9MjA0OCksSGUocmEpLHdsKCksdC5wZW5kaW5nQ29udGV4dCYmKHQuY29udGV4dD10LnBlbmRpbmdDb250ZXh0LHQucGVuZGluZ0NvbnRleHQ9bnVsbCksKGE9PT1udWxsfHxhLmNoaWxkPT09bnVsbCkmJihzbChlKT9UZShlKTphPT09bnVsbHx8YS5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCYmKGUuZmxhZ3MmMjU2KT09PTB8fChlLmZsYWdzfD0xMDI0LHVzKCkpKSxKKGUpLG51bGw7Y2FzZSAyNjp2YXIgdT1lLnR5cGUsZj1lLm1lbW9pemVkU3RhdGU7cmV0dXJuIGE9PT1udWxsPyhUZShlKSxmIT09bnVsbD8oSihlKSxsYyhlLGYpKTooSihlKSxtcyhlLHUsbnVsbCxsLHQpKSk6Zj9mIT09YS5tZW1vaXplZFN0YXRlPyhUZShlKSxKKGUpLGxjKGUsZikpOihKKGUpLGUuZmxhZ3MmPS0xNjc3NzIxNyk6KGE9YS5tZW1vaXplZFByb3BzLGEhPT1sJiZUZShlKSxKKGUpLG1zKGUsdSxhLGwsdCkpLG51bGw7Y2FzZSAyNzppZihJbyhlKSx0PXJ0LmN1cnJlbnQsdT1lLnR5cGUsYSE9PW51bGwmJmUuc3RhdGVOb2RlIT1udWxsKWEubWVtb2l6ZWRQcm9wcyE9PWwmJlRlKGUpO2Vsc2V7aWYoIWwpe2lmKGUuc3RhdGVOb2RlPT09bnVsbCl0aHJvdyBFcnJvcihDKDE2NikpO3JldHVybiBKKGUpLG51bGx9YT1nZS5jdXJyZW50LHNsKGUpP1JyKGUsYSk6KGE9aUwodSxsLHQpLGUuc3RhdGVOb2RlPWEsVGUoZSkpfXJldHVybiBKKGUpLG51bGw7Y2FzZSA1OmlmKElvKGUpLHU9ZS50eXBlLGEhPT1udWxsJiZlLnN0YXRlTm9kZSE9bnVsbClhLm1lbW9pemVkUHJvcHMhPT1sJiZUZShlKTtlbHNle2lmKCFsKXtpZihlLnN0YXRlTm9kZT09PW51bGwpdGhyb3cgRXJyb3IoQygxNjYpKTtyZXR1cm4gSihlKSxudWxsfWlmKGY9Z2UuY3VycmVudCxzbChlKSlScihlLGYpO2Vsc2V7dmFyIG89X28ocnQuY3VycmVudCk7c3dpdGNoKGYpe2Nhc2UgMTpmPW8uY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdSk7YnJlYWs7Y2FzZSAyOmY9by5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiLHUpO2JyZWFrO2RlZmF1bHQ6c3dpdGNoKHUpe2Nhc2Uic3ZnIjpmPW8uY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdSk7YnJlYWs7Y2FzZSJtYXRoIjpmPW8uY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIix1KTticmVhaztjYXNlInNjcmlwdCI6Zj1vLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGYuaW5uZXJIVE1MPSI8c2NyaXB0PjxcL3NjcmlwdD4iLGY9Zi5yZW1vdmVDaGlsZChmLmZpcnN0Q2hpbGQpO2JyZWFrO2Nhc2Uic2VsZWN0IjpmPXR5cGVvZiBsLmlzPT0ic3RyaW5nIj9vLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIse2lzOmwuaXN9KTpvLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLGwubXVsdGlwbGU/Zi5tdWx0aXBsZT0hMDpsLnNpemUmJihmLnNpemU9bC5zaXplKTticmVhaztkZWZhdWx0OmY9dHlwZW9mIGwuaXM9PSJzdHJpbmciP28uY3JlYXRlRWxlbWVudCh1LHtpczpsLmlzfSk6by5jcmVhdGVFbGVtZW50KHUpfX1mW0NhXT1lLGZbVWFdPWw7YTpmb3Iobz1lLmNoaWxkO28hPT1udWxsOyl7aWYoby50YWc9PT01fHxvLnRhZz09PTYpZi5hcHBlbmRDaGlsZChvLnN0YXRlTm9kZSk7ZWxzZSBpZihvLnRhZyE9PTQmJm8udGFnIT09MjcmJm8uY2hpbGQhPT1udWxsKXtvLmNoaWxkLnJldHVybj1vLG89by5jaGlsZDtjb250aW51ZX1pZihvPT09ZSlicmVhayBhO2Zvcig7by5zaWJsaW5nPT09bnVsbDspe2lmKG8ucmV0dXJuPT09bnVsbHx8by5yZXR1cm49PT1lKWJyZWFrIGE7bz1vLnJldHVybn1vLnNpYmxpbmcucmV0dXJuPW8ucmV0dXJuLG89by5zaWJsaW5nfWUuc3RhdGVOb2RlPWY7YTpzd2l0Y2godmEoZix1LGwpLHUpe2Nhc2UiYnV0dG9uIjpjYXNlImlucHV0IjpjYXNlInNlbGVjdCI6Y2FzZSJ0ZXh0YXJlYSI6bD0hIWwuYXV0b0ZvY3VzO2JyZWFrIGE7Y2FzZSJpbWciOmw9ITA7YnJlYWsgYTtkZWZhdWx0Omw9ITF9bCYmVGUoZSl9fXJldHVybiBKKGUpLG1zKGUsZS50eXBlLGE9PT1udWxsP251bGw6YS5tZW1vaXplZFByb3BzLGUucGVuZGluZ1Byb3BzLHQpLG51bGw7Y2FzZSA2OmlmKGEmJmUuc3RhdGVOb2RlIT1udWxsKWEubWVtb2l6ZWRQcm9wcyE9PWwmJlRlKGUpO2Vsc2V7aWYodHlwZW9mIGwhPSJzdHJpbmciJiZlLnN0YXRlTm9kZT09PW51bGwpdGhyb3cgRXJyb3IoQygxNjYpKTtpZihhPXJ0LmN1cnJlbnQsc2woZSkpe2lmKGE9ZS5zdGF0ZU5vZGUsdD1lLm1lbW9pemVkUHJvcHMsbD1udWxsLHU9SWEsdSE9PW51bGwpc3dpdGNoKHUudGFnKXtjYXNlIDI3OmNhc2UgNTpsPXUubWVtb2l6ZWRQcm9wc31hW0NhXT1lLGE9ISEoYS5ub2RlVmFsdWU9PT10fHxsIT09bnVsbCYmbC5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmc9PT0hMHx8ZkwoYS5ub2RlVmFsdWUsdCkpLGF8fEl0KGUsITApfWVsc2UgYT1fbyhhKS5jcmVhdGVUZXh0Tm9kZShsKSxhW0NhXT1lLGUuc3RhdGVOb2RlPWF9cmV0dXJuIEooZSksbnVsbDtjYXNlIDMxOmlmKHQ9ZS5tZW1vaXplZFN0YXRlLGE9PT1udWxsfHxhLm1lbW9pemVkU3RhdGUhPT1udWxsKXtpZihsPXNsKGUpLHQhPT1udWxsKXtpZihhPT09bnVsbCl7aWYoIWwpdGhyb3cgRXJyb3IoQygzMTgpKTtpZihhPWUubWVtb2l6ZWRTdGF0ZSxhPWEhPT1udWxsP2EuZGVoeWRyYXRlZDpudWxsLCFhKXRocm93IEVycm9yKEMoNTU3KSk7YVtDYV09ZX1lbHNlIEd0KCksKGUuZmxhZ3MmMTI4KT09PTAmJihlLm1lbW9pemVkU3RhdGU9bnVsbCksZS5mbGFnc3w9NDtKKGUpLGE9ITF9ZWxzZSB0PXVzKCksYSE9PW51bGwmJmEubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJihhLm1lbW9pemVkU3RhdGUuaHlkcmF0aW9uRXJyb3JzPXQpLGE9ITA7aWYoIWEpcmV0dXJuIGUuZmxhZ3MmMjU2PyhHYShlKSxlKTooR2EoZSksbnVsbCk7aWYoKGUuZmxhZ3MmMTI4KSE9PTApdGhyb3cgRXJyb3IoQyg1NTgpKX1yZXR1cm4gSihlKSxudWxsO2Nhc2UgMTM6aWYobD1lLm1lbW9pemVkU3RhdGUsYT09PW51bGx8fGEubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJmEubWVtb2l6ZWRTdGF0ZS5kZWh5ZHJhdGVkIT09bnVsbCl7aWYodT1zbChlKSxsIT09bnVsbCYmbC5kZWh5ZHJhdGVkIT09bnVsbCl7aWYoYT09PW51bGwpe2lmKCF1KXRocm93IEVycm9yKEMoMzE4KSk7aWYodT1lLm1lbW9pemVkU3RhdGUsdT11IT09bnVsbD91LmRlaHlkcmF0ZWQ6bnVsbCwhdSl0aHJvdyBFcnJvcihDKDMxNykpO3VbQ2FdPWV9ZWxzZSBHdCgpLChlLmZsYWdzJjEyOCk9PT0wJiYoZS5tZW1vaXplZFN0YXRlPW51bGwpLGUuZmxhZ3N8PTQ7SihlKSx1PSExfWVsc2UgdT11cygpLGEhPT1udWxsJiZhLm1lbW9pemVkU3RhdGUhPT1udWxsJiYoYS5tZW1vaXplZFN0YXRlLmh5ZHJhdGlvbkVycm9ycz11KSx1PSEwO2lmKCF1KXJldHVybiBlLmZsYWdzJjI1Nj8oR2EoZSksZSk6KEdhKGUpLG51bGwpfXJldHVybiBHYShlKSwoZS5mbGFncyYxMjgpIT09MD8oZS5sYW5lcz10LGUpOih0PWwhPT1udWxsLGE9YSE9PW51bGwmJmEubWVtb2l6ZWRTdGF0ZSE9PW51bGwsdCYmKGw9ZS5jaGlsZCx1PW51bGwsbC5hbHRlcm5hdGUhPT1udWxsJiZsLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlIT09bnVsbCYmbC5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2whPT1udWxsJiYodT1sLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxmPW51bGwsbC5tZW1vaXplZFN0YXRlIT09bnVsbCYmbC5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCE9PW51bGwmJihmPWwubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksZiE9PXUmJihsLmZsYWdzfD0yMDQ4KSksdCE9PWEmJnQmJihlLmNoaWxkLmZsYWdzfD04MTkyKSxLZihlLGUudXBkYXRlUXVldWUpLEooZSksbnVsbCk7Y2FzZSA0OnJldHVybiB3bCgpLGE9PT1udWxsJiZzbihlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxKKGUpLG51bGw7Y2FzZSAxMDpyZXR1cm4gSGUoZS50eXBlKSxKKGUpLG51bGw7Y2FzZSAxOTppZihTYShkYSksbD1lLm1lbW9pemVkU3RhdGUsbD09PW51bGwpcmV0dXJuIEooZSksbnVsbDtpZih1PShlLmZsYWdzJjEyOCkhPT0wLGY9bC5yZW5kZXJpbmcsZj09PW51bGwpaWYodSlodShsLCExKTtlbHNle2lmKG9hIT09MHx8YSE9PW51bGwmJihhLmZsYWdzJjEyOCkhPT0wKWZvcihhPWUuY2hpbGQ7YSE9PW51bGw7KXtpZihmPWtvKGEpLGYhPT1udWxsKXtmb3IoZS5mbGFnc3w9MTI4LGh1KGwsITEpLGE9Zi51cGRhdGVRdWV1ZSxlLnVwZGF0ZVF1ZXVlPWEsS2YoZSxhKSxlLnN1YnRyZWVGbGFncz0wLGE9dCx0PWUuY2hpbGQ7dCE9PW51bGw7KUNtKHQsYSksdD10LnNpYmxpbmc7cmV0dXJuIGooZGEsZGEuY3VycmVudCYxfDIpLEYmJlJlKGUsbC50cmVlRm9ya0NvdW50KSxlLmNoaWxkfWE9YS5zaWJsaW5nfWwudGFpbCE9PW51bGwmJlhhKCk+em8mJihlLmZsYWdzfD0xMjgsdT0hMCxodShsLCExKSxlLmxhbmVzPTQxOTQzMDQpfWVsc2V7aWYoIXUpaWYoYT1rbyhmKSxhIT09bnVsbCl7aWYoZS5mbGFnc3w9MTI4LHU9ITAsYT1hLnVwZGF0ZVF1ZXVlLGUudXBkYXRlUXVldWU9YSxLZihlLGEpLGh1KGwsITApLGwudGFpbD09PW51bGwmJmwudGFpbE1vZGU9PT0iaGlkZGVuIiYmIWYuYWx0ZXJuYXRlJiYhRilyZXR1cm4gSihlKSxudWxsfWVsc2UgMipYYSgpLWwucmVuZGVyaW5nU3RhcnRUaW1lPnpvJiZ0IT09NTM2ODcwOTEyJiYoZS5mbGFnc3w9MTI4LHU9ITAsaHUobCwhMSksZS5sYW5lcz00MTk0MzA0KTtsLmlzQmFja3dhcmRzPyhmLnNpYmxpbmc9ZS5jaGlsZCxlLmNoaWxkPWYpOihhPWwubGFzdCxhIT09bnVsbD9hLnNpYmxpbmc9ZjplLmNoaWxkPWYsbC5sYXN0PWYpfXJldHVybiBsLnRhaWwhPT1udWxsPyhhPWwudGFpbCxsLnJlbmRlcmluZz1hLGwudGFpbD1hLnNpYmxpbmcsbC5yZW5kZXJpbmdTdGFydFRpbWU9WGEoKSxhLnNpYmxpbmc9bnVsbCx0PWRhLmN1cnJlbnQsaihkYSx1P3QmMXwyOnQmMSksRiYmUmUoZSxsLnRyZWVGb3JrQ291bnQpLGEpOihKKGUpLG51bGwpO2Nhc2UgMjI6Y2FzZSAyMzpyZXR1cm4gR2EoZSksRmkoKSxsPWUubWVtb2l6ZWRTdGF0ZSE9PW51bGwsYSE9PW51bGw/YS5tZW1vaXplZFN0YXRlIT09bnVsbCE9PWwmJihlLmZsYWdzfD04MTkyKTpsJiYoZS5mbGFnc3w9ODE5MiksbD8odCY1MzY4NzA5MTIpIT09MCYmKGUuZmxhZ3MmMTI4KT09PTAmJihKKGUpLGUuc3VidHJlZUZsYWdzJjYmJihlLmZsYWdzfD04MTkyKSk6SihlKSx0PWUudXBkYXRlUXVldWUsdCE9PW51bGwmJktmKGUsdC5yZXRyeVF1ZXVlKSx0PW51bGwsYSE9PW51bGwmJmEubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJmEubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2whPT1udWxsJiYodD1hLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLGw9bnVsbCxlLm1lbW9pemVkU3RhdGUhPT1udWxsJiZlLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sIT09bnVsbCYmKGw9ZS5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxsIT09dCYmKGUuZmxhZ3N8PTIwNDgpLGEhPT1udWxsJiZTYShIdCksbnVsbDtjYXNlIDI0OnJldHVybiB0PW51bGwsYSE9PW51bGwmJih0PWEubWVtb2l6ZWRTdGF0ZS5jYWNoZSksZS5tZW1vaXplZFN0YXRlLmNhY2hlIT09dCYmKGUuZmxhZ3N8PTIwNDgpLEhlKHJhKSxKKGUpLG51bGw7Y2FzZSAyNTpyZXR1cm4gbnVsbDtjYXNlIDMwOnJldHVybiBudWxsfXRocm93IEVycm9yKEMoMTU2LGUudGFnKSl9ZnVuY3Rpb24gUXgoYSxlKXtzd2l0Y2goVWkoZSksZS50YWcpe2Nhc2UgMTpyZXR1cm4gYT1lLmZsYWdzLGEmNjU1MzY/KGUuZmxhZ3M9YSYtNjU1Mzd8MTI4LGUpOm51bGw7Y2FzZSAzOnJldHVybiBIZShyYSksd2woKSxhPWUuZmxhZ3MsKGEmNjU1MzYpIT09MCYmKGEmMTI4KT09PTA/KGUuZmxhZ3M9YSYtNjU1Mzd8MTI4LGUpOm51bGw7Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNTpyZXR1cm4gSW8oZSksbnVsbDtjYXNlIDMxOmlmKGUubWVtb2l6ZWRTdGF0ZSE9PW51bGwpe2lmKEdhKGUpLGUuYWx0ZXJuYXRlPT09bnVsbCl0aHJvdyBFcnJvcihDKDM0MCkpO0d0KCl9cmV0dXJuIGE9ZS5mbGFncyxhJjY1NTM2PyhlLmZsYWdzPWEmLTY1NTM3fDEyOCxlKTpudWxsO2Nhc2UgMTM6aWYoR2EoZSksYT1lLm1lbW9pemVkU3RhdGUsYSE9PW51bGwmJmEuZGVoeWRyYXRlZCE9PW51bGwpe2lmKGUuYWx0ZXJuYXRlPT09bnVsbCl0aHJvdyBFcnJvcihDKDM0MCkpO0d0KCl9cmV0dXJuIGE9ZS5mbGFncyxhJjY1NTM2PyhlLmZsYWdzPWEmLTY1NTM3fDEyOCxlKTpudWxsO2Nhc2UgMTk6cmV0dXJuIFNhKGRhKSxudWxsO2Nhc2UgNDpyZXR1cm4gd2woKSxudWxsO2Nhc2UgMTA6cmV0dXJuIEhlKGUudHlwZSksbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIEdhKGUpLEZpKCksYSE9PW51bGwmJlNhKEh0KSxhPWUuZmxhZ3MsYSY2NTUzNj8oZS5mbGFncz1hJi02NTUzN3wxMjgsZSk6bnVsbDtjYXNlIDI0OnJldHVybiBIZShyYSksbnVsbDtjYXNlIDI1OnJldHVybiBudWxsO2RlZmF1bHQ6cmV0dXJuIG51bGx9fWZ1bmN0aW9uIENwKGEsZSl7c3dpdGNoKFVpKGUpLGUudGFnKXtjYXNlIDM6SGUocmEpLHdsKCk7YnJlYWs7Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNTpJbyhlKTticmVhaztjYXNlIDQ6d2woKTticmVhaztjYXNlIDMxOmUubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJkdhKGUpO2JyZWFrO2Nhc2UgMTM6R2EoZSk7YnJlYWs7Y2FzZSAxOTpTYShkYSk7YnJlYWs7Y2FzZSAxMDpIZShlLnR5cGUpO2JyZWFrO2Nhc2UgMjI6Y2FzZSAyMzpHYShlKSxGaSgpLGEhPT1udWxsJiZTYShIdCk7YnJlYWs7Y2FzZSAyNDpIZShyYSl9fWZ1bmN0aW9uIG9mKGEsZSl7dHJ5e3ZhciB0PWUudXBkYXRlUXVldWUsbD10IT09bnVsbD90Lmxhc3RFZmZlY3Q6bnVsbDtpZihsIT09bnVsbCl7dmFyIHU9bC5uZXh0O3Q9dTtkb3tpZigodC50YWcmYSk9PT1hKXtsPXZvaWQgMDt2YXIgZj10LmNyZWF0ZSxvPXQuaW5zdDtsPWYoKSxvLmRlc3Ryb3k9bH10PXQubmV4dH13aGlsZSh0IT09dSl9fWNhdGNoKGQpe1YoZSxlLnJldHVybixkKX19ZnVuY3Rpb24geXQoYSxlLHQpe3RyeXt2YXIgbD1lLnVwZGF0ZVF1ZXVlLHU9bCE9PW51bGw/bC5sYXN0RWZmZWN0Om51bGw7aWYodSE9PW51bGwpe3ZhciBmPXUubmV4dDtsPWY7ZG97aWYoKGwudGFnJmEpPT09YSl7dmFyIG89bC5pbnN0LGQ9by5kZXN0cm95O2lmKGQhPT12b2lkIDApe28uZGVzdHJveT12b2lkIDAsdT1lO3ZhciBpPXQsbT1kO3RyeXttKCl9Y2F0Y2goeCl7Vih1LGkseCl9fX1sPWwubmV4dH13aGlsZShsIT09Zil9fWNhdGNoKHgpe1YoZSxlLnJldHVybix4KX19ZnVuY3Rpb24gSXAoYSl7dmFyIGU9YS51cGRhdGVRdWV1ZTtpZihlIT09bnVsbCl7dmFyIHQ9YS5zdGF0ZU5vZGU7dHJ5e2ttKGUsdCl9Y2F0Y2gobCl7VihhLGEucmV0dXJuLGwpfX19ZnVuY3Rpb24geXAoYSxlLHQpe3QucHJvcHM9VnQoYS50eXBlLGEubWVtb2l6ZWRQcm9wcyksdC5zdGF0ZT1hLm1lbW9pemVkU3RhdGU7dHJ5e3QuY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaChsKXtWKGEsZSxsKX19ZnVuY3Rpb24gcXUoYSxlKXt0cnl7dmFyIHQ9YS5yZWY7aWYodCE9PW51bGwpe3N3aXRjaChhLnRhZyl7Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNTp2YXIgbD1hLnN0YXRlTm9kZTticmVhaztjYXNlIDMwOmw9YS5zdGF0ZU5vZGU7YnJlYWs7ZGVmYXVsdDpsPWEuc3RhdGVOb2RlfXR5cGVvZiB0PT0iZnVuY3Rpb24iP2EucmVmQ2xlYW51cD10KGwpOnQuY3VycmVudD1sfX1jYXRjaCh1KXtWKGEsZSx1KX19ZnVuY3Rpb24gU2UoYSxlKXt2YXIgdD1hLnJlZixsPWEucmVmQ2xlYW51cDtpZih0IT09bnVsbClpZih0eXBlb2YgbD09ImZ1bmN0aW9uIil0cnl7bCgpfWNhdGNoKHUpe1YoYSxlLHUpfWZpbmFsbHl7YS5yZWZDbGVhbnVwPW51bGwsYT1hLmFsdGVybmF0ZSxhIT1udWxsJiYoYS5yZWZDbGVhbnVwPW51bGwpfWVsc2UgaWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpdHJ5e3QobnVsbCl9Y2F0Y2godSl7VihhLGUsdSl9ZWxzZSB0LmN1cnJlbnQ9bnVsbH1mdW5jdGlvbiB2cChhKXt2YXIgZT1hLnR5cGUsdD1hLm1lbW9pemVkUHJvcHMsbD1hLnN0YXRlTm9kZTt0cnl7YTpzd2l0Y2goZSl7Y2FzZSJidXR0b24iOmNhc2UiaW5wdXQiOmNhc2Uic2VsZWN0IjpjYXNlInRleHRhcmVhIjp0LmF1dG9Gb2N1cyYmbC5mb2N1cygpO2JyZWFrIGE7Y2FzZSJpbWciOnQuc3JjP2wuc3JjPXQuc3JjOnQuc3JjU2V0JiYobC5zcmNzZXQ9dC5zcmNTZXQpfX1jYXRjaCh1KXtWKGEsYS5yZXR1cm4sdSl9fWZ1bmN0aW9uIHBzKGEsZSx0KXt0cnl7dmFyIGw9YS5zdGF0ZU5vZGU7bVMobCxhLnR5cGUsdCxlKSxsW1VhXT1lfWNhdGNoKHUpe1YoYSxhLnJldHVybix1KX19ZnVuY3Rpb24gQXAoYSl7cmV0dXJuIGEudGFnPT09NXx8YS50YWc9PT0zfHxhLnRhZz09PTI2fHxhLnRhZz09PTI3JiZidChhLnR5cGUpfHxhLnRhZz09PTR9ZnVuY3Rpb24gTHMoYSl7YTpmb3IoOzspe2Zvcig7YS5zaWJsaW5nPT09bnVsbDspe2lmKGEucmV0dXJuPT09bnVsbHx8QXAoYS5yZXR1cm4pKXJldHVybiBudWxsO2E9YS5yZXR1cm59Zm9yKGEuc2libGluZy5yZXR1cm49YS5yZXR1cm4sYT1hLnNpYmxpbmc7YS50YWchPT01JiZhLnRhZyE9PTYmJmEudGFnIT09MTg7KXtpZihhLnRhZz09PTI3JiZidChhLnR5cGUpfHxhLmZsYWdzJjJ8fGEuY2hpbGQ9PT1udWxsfHxhLnRhZz09PTQpY29udGludWUgYTthLmNoaWxkLnJldHVybj1hLGE9YS5jaGlsZH1pZighKGEuZmxhZ3MmMikpcmV0dXJuIGEuc3RhdGVOb2RlfX1mdW5jdGlvbiBsaShhLGUsdCl7dmFyIGw9YS50YWc7aWYobD09PTV8fGw9PT02KWE9YS5zdGF0ZU5vZGUsZT8odC5ub2RlVHlwZT09PTk/dC5ib2R5OnQubm9kZU5hbWU9PT0iSFRNTCI/dC5vd25lckRvY3VtZW50LmJvZHk6dCkuaW5zZXJ0QmVmb3JlKGEsZSk6KGU9dC5ub2RlVHlwZT09PTk/dC5ib2R5OnQubm9kZU5hbWU9PT0iSFRNTCI/dC5vd25lckRvY3VtZW50LmJvZHk6dCxlLmFwcGVuZENoaWxkKGEpLHQ9dC5fcmVhY3RSb290Q29udGFpbmVyLHQhPW51bGx8fGUub25jbGljayE9PW51bGx8fChlLm9uY2xpY2s9VWUpKTtlbHNlIGlmKGwhPT00JiYobD09PTI3JiZidChhLnR5cGUpJiYodD1hLnN0YXRlTm9kZSxlPW51bGwpLGE9YS5jaGlsZCxhIT09bnVsbCkpZm9yKGxpKGEsZSx0KSxhPWEuc2libGluZzthIT09bnVsbDspbGkoYSxlLHQpLGE9YS5zaWJsaW5nfWZ1bmN0aW9uIFVvKGEsZSx0KXt2YXIgbD1hLnRhZztpZihsPT09NXx8bD09PTYpYT1hLnN0YXRlTm9kZSxlP3QuaW5zZXJ0QmVmb3JlKGEsZSk6dC5hcHBlbmRDaGlsZChhKTtlbHNlIGlmKGwhPT00JiYobD09PTI3JiZidChhLnR5cGUpJiYodD1hLnN0YXRlTm9kZSksYT1hLmNoaWxkLGEhPT1udWxsKSlmb3IoVW8oYSxlLHQpLGE9YS5zaWJsaW5nO2EhPT1udWxsOylVbyhhLGUsdCksYT1hLnNpYmxpbmd9ZnVuY3Rpb24gYnAoYSl7dmFyIGU9YS5zdGF0ZU5vZGUsdD1hLm1lbW9pemVkUHJvcHM7dHJ5e2Zvcih2YXIgbD1hLnR5cGUsdT1lLmF0dHJpYnV0ZXM7dS5sZW5ndGg7KWUucmVtb3ZlQXR0cmlidXRlTm9kZSh1WzBdKTt2YShlLGwsdCksZVtDYV09YSxlW1VhXT10fWNhdGNoKGYpe1YoYSxhLnJldHVybixmKX19dmFyIHFlPSExLG5hPSExLGhzPSExLHVjPXR5cGVvZiBXZWFrU2V0PT0iZnVuY3Rpb24iP1dlYWtTZXQ6U2V0LGhhPW51bGw7ZnVuY3Rpb24gWXgoYSxlKXtpZihhPWEuY29udGFpbmVySW5mbyxuaT1abyxhPWNtKGEpLGtpKGEpKXtpZigic2VsZWN0aW9uU3RhcnQiaW4gYSl2YXIgdD17c3RhcnQ6YS5zZWxlY3Rpb25TdGFydCxlbmQ6YS5zZWxlY3Rpb25FbmR9O2Vsc2UgYTp7dD0odD1hLm93bmVyRG9jdW1lbnQpJiZ0LmRlZmF1bHRWaWV3fHx3aW5kb3c7dmFyIGw9dC5nZXRTZWxlY3Rpb24mJnQuZ2V0U2VsZWN0aW9uKCk7aWYobCYmbC5yYW5nZUNvdW50IT09MCl7dD1sLmFuY2hvck5vZGU7dmFyIHU9bC5hbmNob3JPZmZzZXQsZj1sLmZvY3VzTm9kZTtsPWwuZm9jdXNPZmZzZXQ7dHJ5e3Qubm9kZVR5cGUsZi5ub2RlVHlwZX1jYXRjaHt0PW51bGw7YnJlYWsgYX12YXIgbz0wLGQ9LTEsaT0tMSxtPTAseD0wLGc9YSxMPW51bGw7ZTpmb3IoOzspe2Zvcih2YXIgaDtnIT09dHx8dSE9PTAmJmcubm9kZVR5cGUhPT0zfHwoZD1vK3UpLGchPT1mfHxsIT09MCYmZy5ub2RlVHlwZSE9PTN8fChpPW8rbCksZy5ub2RlVHlwZT09PTMmJihvKz1nLm5vZGVWYWx1ZS5sZW5ndGgpLChoPWcuZmlyc3RDaGlsZCkhPT1udWxsOylMPWcsZz1oO2Zvcig7Oyl7aWYoZz09PWEpYnJlYWsgZTtpZihMPT09dCYmKyttPT09dSYmKGQ9byksTD09PWYmJisreD09PWwmJihpPW8pLChoPWcubmV4dFNpYmxpbmcpIT09bnVsbClicmVhaztnPUwsTD1nLnBhcmVudE5vZGV9Zz1ofXQ9ZD09PS0xfHxpPT09LTE/bnVsbDp7c3RhcnQ6ZCxlbmQ6aX19ZWxzZSB0PW51bGx9dD10fHx7c3RhcnQ6MCxlbmQ6MH19ZWxzZSB0PW51bGw7Zm9yKHJpPXtmb2N1c2VkRWxlbTphLHNlbGVjdGlvblJhbmdlOnR9LFpvPSExLGhhPWU7aGEhPT1udWxsOylpZihlPWhhLGE9ZS5jaGlsZCwoZS5zdWJ0cmVlRmxhZ3MmMTAyOCkhPT0wJiZhIT09bnVsbClhLnJldHVybj1lLGhhPWE7ZWxzZSBmb3IoO2hhIT09bnVsbDspe3N3aXRjaChlPWhhLGY9ZS5hbHRlcm5hdGUsYT1lLmZsYWdzLGUudGFnKXtjYXNlIDA6aWYoKGEmNCkhPT0wJiYoYT1lLnVwZGF0ZVF1ZXVlLGE9YSE9PW51bGw/YS5ldmVudHM6bnVsbCxhIT09bnVsbCkpZm9yKHQ9MDt0PGEubGVuZ3RoO3QrKyl1PWFbdF0sdS5yZWYuaW1wbD11Lm5leHRJbXBsO2JyZWFrO2Nhc2UgMTE6Y2FzZSAxNTpicmVhaztjYXNlIDE6aWYoKGEmMTAyNCkhPT0wJiZmIT09bnVsbCl7YT12b2lkIDAsdD1lLHU9Zi5tZW1vaXplZFByb3BzLGY9Zi5tZW1vaXplZFN0YXRlLGw9dC5zdGF0ZU5vZGU7dHJ5e3ZhciB5PVZ0KHQudHlwZSx1KTthPWwuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoeSxmKSxsLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlPWF9Y2F0Y2goYil7Vih0LHQucmV0dXJuLGIpfX1icmVhaztjYXNlIDM6aWYoKGEmMTAyNCkhPT0wKXtpZihhPWUuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sdD1hLm5vZGVUeXBlLHQ9PT05KW1pKGEpO2Vsc2UgaWYodD09PTEpc3dpdGNoKGEubm9kZU5hbWUpe2Nhc2UiSEVBRCI6Y2FzZSJIVE1MIjpjYXNlIkJPRFkiOm1pKGEpO2JyZWFrO2RlZmF1bHQ6YS50ZXh0Q29udGVudD0iIn19YnJlYWs7Y2FzZSA1OmNhc2UgMjY6Y2FzZSAyNzpjYXNlIDY6Y2FzZSA0OmNhc2UgMTc6YnJlYWs7ZGVmYXVsdDppZigoYSYxMDI0KSE9PTApdGhyb3cgRXJyb3IoQygxNjMpKX1pZihhPWUuc2libGluZyxhIT09bnVsbCl7YS5yZXR1cm49ZS5yZXR1cm4saGE9YTticmVha31oYT1lLnJldHVybn19ZnVuY3Rpb24gTXAoYSxlLHQpe3ZhciBsPXQuZmxhZ3M7c3dpdGNoKHQudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmtlKGEsdCksbCY0JiZvZig1LHQpO2JyZWFrO2Nhc2UgMTppZihrZShhLHQpLGwmNClpZihhPXQuc3RhdGVOb2RlLGU9PT1udWxsKXRyeXthLmNvbXBvbmVudERpZE1vdW50KCl9Y2F0Y2gobyl7Vih0LHQucmV0dXJuLG8pfWVsc2V7dmFyIHU9VnQodC50eXBlLGUubWVtb2l6ZWRQcm9wcyk7ZT1lLm1lbW9pemVkU3RhdGU7dHJ5e2EuY29tcG9uZW50RGlkVXBkYXRlKHUsZSxhLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKX1jYXRjaChvKXtWKHQsdC5yZXR1cm4sbyl9fWwmNjQmJklwKHQpLGwmNTEyJiZxdSh0LHQucmV0dXJuKTticmVhaztjYXNlIDM6aWYoa2UoYSx0KSxsJjY0JiYoYT10LnVwZGF0ZVF1ZXVlLGEhPT1udWxsKSl7aWYoZT1udWxsLHQuY2hpbGQhPT1udWxsKXN3aXRjaCh0LmNoaWxkLnRhZyl7Y2FzZSAyNzpjYXNlIDU6ZT10LmNoaWxkLnN0YXRlTm9kZTticmVhaztjYXNlIDE6ZT10LmNoaWxkLnN0YXRlTm9kZX10cnl7a20oYSxlKX1jYXRjaChvKXtWKHQsdC5yZXR1cm4sbyl9fWJyZWFrO2Nhc2UgMjc6ZT09PW51bGwmJmwmNCYmYnAodCk7Y2FzZSAyNjpjYXNlIDU6a2UoYSx0KSxlPT09bnVsbCYmbCY0JiZ2cCh0KSxsJjUxMiYmcXUodCx0LnJldHVybik7YnJlYWs7Y2FzZSAxMjprZShhLHQpO2JyZWFrO2Nhc2UgMzE6a2UoYSx0KSxsJjQmJkJwKGEsdCk7YnJlYWs7Y2FzZSAxMzprZShhLHQpLGwmNCYma3AoYSx0KSxsJjY0JiYoYT10Lm1lbW9pemVkU3RhdGUsYSE9PW51bGwmJihhPWEuZGVoeWRyYXRlZCxhIT09bnVsbCYmKHQ9bFMuYmluZChudWxsLHQpLElTKGEsdCkpKSk7YnJlYWs7Y2FzZSAyMjppZihsPXQubWVtb2l6ZWRTdGF0ZSE9PW51bGx8fHFlLCFsKXtlPWUhPT1udWxsJiZlLm1lbW9pemVkU3RhdGUhPT1udWxsfHxuYSx1PXFlO3ZhciBmPW5hO3FlPWwsKG5hPWUpJiYhZj93ZShhLHQsKHQuc3VidHJlZUZsYWdzJjg3NzIpIT09MCk6a2UoYSx0KSxxZT11LG5hPWZ9YnJlYWs7Y2FzZSAzMDpicmVhaztkZWZhdWx0OmtlKGEsdCl9fWZ1bmN0aW9uIERwKGEpe3ZhciBlPWEuYWx0ZXJuYXRlO2UhPT1udWxsJiYoYS5hbHRlcm5hdGU9bnVsbCxEcChlKSksYS5jaGlsZD1udWxsLGEuZGVsZXRpb25zPW51bGwsYS5zaWJsaW5nPW51bGwsYS50YWc9PT01JiYoZT1hLnN0YXRlTm9kZSxlIT09bnVsbCYmQWkoZSkpLGEuc3RhdGVOb2RlPW51bGwsYS5yZXR1cm49bnVsbCxhLmRlcGVuZGVuY2llcz1udWxsLGEubWVtb2l6ZWRQcm9wcz1udWxsLGEubWVtb2l6ZWRTdGF0ZT1udWxsLGEucGVuZGluZ1Byb3BzPW51bGwsYS5zdGF0ZU5vZGU9bnVsbCxhLnVwZGF0ZVF1ZXVlPW51bGx9dmFyIGVhPW51bGwsUmE9ITE7ZnVuY3Rpb24gQmUoYSxlLHQpe2Zvcih0PXQuY2hpbGQ7dCE9PW51bGw7KVRwKGEsZSx0KSx0PXQuc2libGluZ31mdW5jdGlvbiBUcChhLGUsdCl7aWYoVmEmJnR5cGVvZiBWYS5vbkNvbW1pdEZpYmVyVW5tb3VudD09ImZ1bmN0aW9uIil0cnl7VmEub25Db21taXRGaWJlclVubW91bnQoJHUsdCl9Y2F0Y2h7fXN3aXRjaCh0LnRhZyl7Y2FzZSAyNjpuYXx8U2UodCxlKSxCZShhLGUsdCksdC5tZW1vaXplZFN0YXRlP3QubWVtb2l6ZWRTdGF0ZS5jb3VudC0tOnQuc3RhdGVOb2RlJiYodD10LnN0YXRlTm9kZSx0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCkpO2JyZWFrO2Nhc2UgMjc6bmF8fFNlKHQsZSk7dmFyIGw9ZWEsdT1SYTtidCh0LnR5cGUpJiYoZWE9dC5zdGF0ZU5vZGUsUmE9ITEpLEJlKGEsZSx0KSxFdSh0LnN0YXRlTm9kZSksZWE9bCxSYT11O2JyZWFrO2Nhc2UgNTpuYXx8U2UodCxlKTtjYXNlIDY6aWYobD1lYSx1PVJhLGVhPW51bGwsQmUoYSxlLHQpLGVhPWwsUmE9dSxlYSE9PW51bGwpaWYoUmEpdHJ5eyhlYS5ub2RlVHlwZT09PTk/ZWEuYm9keTplYS5ub2RlTmFtZT09PSJIVE1MIj9lYS5vd25lckRvY3VtZW50LmJvZHk6ZWEpLnJlbW92ZUNoaWxkKHQuc3RhdGVOb2RlKX1jYXRjaChmKXtWKHQsZSxmKX1lbHNlIHRyeXtlYS5yZW1vdmVDaGlsZCh0LnN0YXRlTm9kZSl9Y2F0Y2goZil7Vih0LGUsZil9YnJlYWs7Y2FzZSAxODplYSE9PW51bGwmJihSYT8oYT1lYSxnYyhhLm5vZGVUeXBlPT09OT9hLmJvZHk6YS5ub2RlTmFtZT09PSJIVE1MIj9hLm93bmVyRG9jdW1lbnQuYm9keTphLHQuc3RhdGVOb2RlKSxHbChhKSk6Z2MoZWEsdC5zdGF0ZU5vZGUpKTticmVhaztjYXNlIDQ6bD1lYSx1PVJhLGVhPXQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sUmE9ITAsQmUoYSxlLHQpLGVhPWwsUmE9dTticmVhaztjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6eXQoMix0LGUpLG5hfHx5dCg0LHQsZSksQmUoYSxlLHQpO2JyZWFrO2Nhc2UgMTpuYXx8KFNlKHQsZSksbD10LnN0YXRlTm9kZSx0eXBlb2YgbC5jb21wb25lbnRXaWxsVW5tb3VudD09ImZ1bmN0aW9uIiYmeXAodCxlLGwpKSxCZShhLGUsdCk7YnJlYWs7Y2FzZSAyMTpCZShhLGUsdCk7YnJlYWs7Y2FzZSAyMjpuYT0obD1uYSl8fHQubWVtb2l6ZWRTdGF0ZSE9PW51bGwsQmUoYSxlLHQpLG5hPWw7YnJlYWs7ZGVmYXVsdDpCZShhLGUsdCl9fWZ1bmN0aW9uIEJwKGEsZSl7aWYoZS5tZW1vaXplZFN0YXRlPT09bnVsbCYmKGE9ZS5hbHRlcm5hdGUsYSE9PW51bGwmJihhPWEubWVtb2l6ZWRTdGF0ZSxhIT09bnVsbCkpKXthPWEuZGVoeWRyYXRlZDt0cnl7R2woYSl9Y2F0Y2godCl7VihlLGUucmV0dXJuLHQpfX19ZnVuY3Rpb24ga3AoYSxlKXtpZihlLm1lbW9pemVkU3RhdGU9PT1udWxsJiYoYT1lLmFsdGVybmF0ZSxhIT09bnVsbCYmKGE9YS5tZW1vaXplZFN0YXRlLGEhPT1udWxsJiYoYT1hLmRlaHlkcmF0ZWQsYSE9PW51bGwpKSkpdHJ5e0dsKGEpfWNhdGNoKHQpe1YoZSxlLnJldHVybix0KX19ZnVuY3Rpb24gangoYSl7c3dpdGNoKGEudGFnKXtjYXNlIDMxOmNhc2UgMTM6Y2FzZSAxOTp2YXIgZT1hLnN0YXRlTm9kZTtyZXR1cm4gZT09PW51bGwmJihlPWEuc3RhdGVOb2RlPW5ldyB1YyksZTtjYXNlIDIyOnJldHVybiBhPWEuc3RhdGVOb2RlLGU9YS5fcmV0cnlDYWNoZSxlPT09bnVsbCYmKGU9YS5fcmV0cnlDYWNoZT1uZXcgdWMpLGU7ZGVmYXVsdDp0aHJvdyBFcnJvcihDKDQzNSxhLnRhZykpfX1mdW5jdGlvbiBKZihhLGUpe3ZhciB0PWp4KGEpO2UuZm9yRWFjaChmdW5jdGlvbihsKXtpZighdC5oYXMobCkpe3QuYWRkKGwpO3ZhciB1PXVTLmJpbmQobnVsbCxhLGwpO2wudGhlbih1LHUpfX0pfWZ1bmN0aW9uIGthKGEsZSl7dmFyIHQ9ZS5kZWxldGlvbnM7aWYodCE9PW51bGwpZm9yKHZhciBsPTA7bDx0Lmxlbmd0aDtsKyspe3ZhciB1PXRbbF0sZj1hLG89ZSxkPW87YTpmb3IoO2QhPT1udWxsOyl7c3dpdGNoKGQudGFnKXtjYXNlIDI3OmlmKGJ0KGQudHlwZSkpe2VhPWQuc3RhdGVOb2RlLFJhPSExO2JyZWFrIGF9YnJlYWs7Y2FzZSA1OmVhPWQuc3RhdGVOb2RlLFJhPSExO2JyZWFrIGE7Y2FzZSAzOmNhc2UgNDplYT1kLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLFJhPSEwO2JyZWFrIGF9ZD1kLnJldHVybn1pZihlYT09PW51bGwpdGhyb3cgRXJyb3IoQygxNjApKTtUcChmLG8sdSksZWE9bnVsbCxSYT0hMSxmPXUuYWx0ZXJuYXRlLGYhPT1udWxsJiYoZi5yZXR1cm49bnVsbCksdS5yZXR1cm49bnVsbH1pZihlLnN1YnRyZWVGbGFncyYxMzg4Nilmb3IoZT1lLmNoaWxkO2UhPT1udWxsOyl3cChlLGEpLGU9ZS5zaWJsaW5nfXZhciByZT1udWxsO2Z1bmN0aW9uIHdwKGEsZSl7dmFyIHQ9YS5hbHRlcm5hdGUsbD1hLmZsYWdzO3N3aXRjaChhLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmthKGUsYSksd2EoYSksbCY0JiYoeXQoMyxhLGEucmV0dXJuKSxvZigzLGEpLHl0KDUsYSxhLnJldHVybikpO2JyZWFrO2Nhc2UgMTprYShlLGEpLHdhKGEpLGwmNTEyJiYobmF8fHQ9PT1udWxsfHxTZSh0LHQucmV0dXJuKSksbCY2NCYmcWUmJihhPWEudXBkYXRlUXVldWUsYSE9PW51bGwmJihsPWEuY2FsbGJhY2tzLGwhPT1udWxsJiYodD1hLnNoYXJlZC5oaWRkZW5DYWxsYmFja3MsYS5zaGFyZWQuaGlkZGVuQ2FsbGJhY2tzPXQ9PT1udWxsP2w6dC5jb25jYXQobCkpKSk7YnJlYWs7Y2FzZSAyNjp2YXIgdT1yZTtpZihrYShlLGEpLHdhKGEpLGwmNTEyJiYobmF8fHQ9PT1udWxsfHxTZSh0LHQucmV0dXJuKSksbCY0KXt2YXIgZj10IT09bnVsbD90Lm1lbW9pemVkU3RhdGU6bnVsbDtpZihsPWEubWVtb2l6ZWRTdGF0ZSx0PT09bnVsbClpZihsPT09bnVsbClpZihhLnN0YXRlTm9kZT09PW51bGwpe2E6e2w9YS50eXBlLHQ9YS5tZW1vaXplZFByb3BzLHU9dS5vd25lckRvY3VtZW50fHx1O2U6c3dpdGNoKGwpe2Nhc2UidGl0bGUiOmY9dS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGl0bGUiKVswXSwoIWZ8fGZbdGZdfHxmW0NhXXx8Zi5uYW1lc3BhY2VVUkk9PT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcifHxmLmhhc0F0dHJpYnV0ZSgiaXRlbXByb3AiKSkmJihmPXUuY3JlYXRlRWxlbWVudChsKSx1LmhlYWQuaW5zZXJ0QmVmb3JlKGYsdS5xdWVyeVNlbGVjdG9yKCJoZWFkID4gdGl0bGUiKSkpLHZhKGYsbCx0KSxmW0NhXT1hLHhhKGYpLGw9ZjticmVhayBhO2Nhc2UibGluayI6dmFyIG89TWMoImxpbmsiLCJocmVmIix1KS5nZXQobCsodC5ocmVmfHwiIikpO2lmKG8pe2Zvcih2YXIgZD0wO2Q8by5sZW5ndGg7ZCsrKWlmKGY9b1tkXSxmLmdldEF0dHJpYnV0ZSgiaHJlZiIpPT09KHQuaHJlZj09bnVsbHx8dC5ocmVmPT09IiI/bnVsbDp0LmhyZWYpJiZmLmdldEF0dHJpYnV0ZSgicmVsIik9PT0odC5yZWw9PW51bGw/bnVsbDp0LnJlbCkmJmYuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpPT09KHQudGl0bGU9PW51bGw/bnVsbDp0LnRpdGxlKSYmZi5nZXRBdHRyaWJ1dGUoImNyb3Nzb3JpZ2luIik9PT0odC5jcm9zc09yaWdpbj09bnVsbD9udWxsOnQuY3Jvc3NPcmlnaW4pKXtvLnNwbGljZShkLDEpO2JyZWFrIGV9fWY9dS5jcmVhdGVFbGVtZW50KGwpLHZhKGYsbCx0KSx1LmhlYWQuYXBwZW5kQ2hpbGQoZik7YnJlYWs7Y2FzZSJtZXRhIjppZihvPU1jKCJtZXRhIiwiY29udGVudCIsdSkuZ2V0KGwrKHQuY29udGVudHx8IiIpKSl7Zm9yKGQ9MDtkPG8ubGVuZ3RoO2QrKylpZihmPW9bZF0sZi5nZXRBdHRyaWJ1dGUoImNvbnRlbnQiKT09PSh0LmNvbnRlbnQ9PW51bGw/bnVsbDoiIit0LmNvbnRlbnQpJiZmLmdldEF0dHJpYnV0ZSgibmFtZSIpPT09KHQubmFtZT09bnVsbD9udWxsOnQubmFtZSkmJmYuZ2V0QXR0cmlidXRlKCJwcm9wZXJ0eSIpPT09KHQucHJvcGVydHk9PW51bGw/bnVsbDp0LnByb3BlcnR5KSYmZi5nZXRBdHRyaWJ1dGUoImh0dHAtZXF1aXYiKT09PSh0Lmh0dHBFcXVpdj09bnVsbD9udWxsOnQuaHR0cEVxdWl2KSYmZi5nZXRBdHRyaWJ1dGUoImNoYXJzZXQiKT09PSh0LmNoYXJTZXQ9PW51bGw/bnVsbDp0LmNoYXJTZXQpKXtvLnNwbGljZShkLDEpO2JyZWFrIGV9fWY9dS5jcmVhdGVFbGVtZW50KGwpLHZhKGYsbCx0KSx1LmhlYWQuYXBwZW5kQ2hpbGQoZik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihDKDQ2OCxsKSl9ZltDYV09YSx4YShmKSxsPWZ9YS5zdGF0ZU5vZGU9bH1lbHNlIERjKHUsYS50eXBlLGEuc3RhdGVOb2RlKTtlbHNlIGEuc3RhdGVOb2RlPWJjKHUsbCxhLm1lbW9pemVkUHJvcHMpO2Vsc2UgZiE9PWw/KGY9PT1udWxsP3Quc3RhdGVOb2RlIT09bnVsbCYmKHQ9dC5zdGF0ZU5vZGUsdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpKTpmLmNvdW50LS0sbD09PW51bGw/RGModSxhLnR5cGUsYS5zdGF0ZU5vZGUpOmJjKHUsbCxhLm1lbW9pemVkUHJvcHMpKTpsPT09bnVsbCYmYS5zdGF0ZU5vZGUhPT1udWxsJiZwcyhhLGEubWVtb2l6ZWRQcm9wcyx0Lm1lbW9pemVkUHJvcHMpfWJyZWFrO2Nhc2UgMjc6a2EoZSxhKSx3YShhKSxsJjUxMiYmKG5hfHx0PT09bnVsbHx8U2UodCx0LnJldHVybikpLHQhPT1udWxsJiZsJjQmJnBzKGEsYS5tZW1vaXplZFByb3BzLHQubWVtb2l6ZWRQcm9wcyk7YnJlYWs7Y2FzZSA1OmlmKGthKGUsYSksd2EoYSksbCY1MTImJihuYXx8dD09PW51bGx8fFNlKHQsdC5yZXR1cm4pKSxhLmZsYWdzJjMyKXt1PWEuc3RhdGVOb2RlO3RyeXtxbCh1LCIiKX1jYXRjaCh5KXtWKGEsYS5yZXR1cm4seSl9fWwmNCYmYS5zdGF0ZU5vZGUhPW51bGwmJih1PWEubWVtb2l6ZWRQcm9wcyxwcyhhLHUsdCE9PW51bGw/dC5tZW1vaXplZFByb3BzOnUpKSxsJjEwMjQmJihocz0hMCk7YnJlYWs7Y2FzZSA2OmlmKGthKGUsYSksd2EoYSksbCY0KXtpZihhLnN0YXRlTm9kZT09PW51bGwpdGhyb3cgRXJyb3IoQygxNjIpKTtsPWEubWVtb2l6ZWRQcm9wcyx0PWEuc3RhdGVOb2RlO3RyeXt0Lm5vZGVWYWx1ZT1sfWNhdGNoKHkpe1YoYSxhLnJldHVybix5KX19YnJlYWs7Y2FzZSAzOmlmKGhvPW51bGwsdT1yZSxyZT1QbyhlLmNvbnRhaW5lckluZm8pLGthKGUsYSkscmU9dSx3YShhKSxsJjQmJnQhPT1udWxsJiZ0Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXRyeXtHbChlLmNvbnRhaW5lckluZm8pfWNhdGNoKHkpe1YoYSxhLnJldHVybix5KX1ocyYmKGhzPSExLFJwKGEpKTticmVhaztjYXNlIDQ6bD1yZSxyZT1QbyhhLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxrYShlLGEpLHdhKGEpLHJlPWw7YnJlYWs7Y2FzZSAxMjprYShlLGEpLHdhKGEpO2JyZWFrO2Nhc2UgMzE6a2EoZSxhKSx3YShhKSxsJjQmJihsPWEudXBkYXRlUXVldWUsbCE9PW51bGwmJihhLnVwZGF0ZVF1ZXVlPW51bGwsSmYoYSxsKSkpO2JyZWFrO2Nhc2UgMTM6a2EoZSxhKSx3YShhKSxhLmNoaWxkLmZsYWdzJjgxOTImJmEubWVtb2l6ZWRTdGF0ZSE9PW51bGwhPSh0IT09bnVsbCYmdC5tZW1vaXplZFN0YXRlIT09bnVsbCkmJihmZD1YYSgpKSxsJjQmJihsPWEudXBkYXRlUXVldWUsbCE9PW51bGwmJihhLnVwZGF0ZVF1ZXVlPW51bGwsSmYoYSxsKSkpO2JyZWFrO2Nhc2UgMjI6dT1hLm1lbW9pemVkU3RhdGUhPT1udWxsO3ZhciBpPXQhPT1udWxsJiZ0Lm1lbW9pemVkU3RhdGUhPT1udWxsLG09cWUseD1uYTtpZihxZT1tfHx1LG5hPXh8fGksa2EoZSxhKSxuYT14LHFlPW0sd2EoYSksbCY4MTkyKWE6Zm9yKGU9YS5zdGF0ZU5vZGUsZS5fdmlzaWJpbGl0eT11P2UuX3Zpc2liaWxpdHkmLTI6ZS5fdmlzaWJpbGl0eXwxLHUmJih0PT09bnVsbHx8aXx8cWV8fG5hfHxVdChhKSksdD1udWxsLGU9YTs7KXtpZihlLnRhZz09PTV8fGUudGFnPT09MjYpe2lmKHQ9PT1udWxsKXtpPXQ9ZTt0cnl7aWYoZj1pLnN0YXRlTm9kZSx1KW89Zi5zdHlsZSx0eXBlb2Ygby5zZXRQcm9wZXJ0eT09ImZ1bmN0aW9uIj9vLnNldFByb3BlcnR5KCJkaXNwbGF5Iiwibm9uZSIsImltcG9ydGFudCIpOm8uZGlzcGxheT0ibm9uZSI7ZWxzZXtkPWkuc3RhdGVOb2RlO3ZhciBnPWkubWVtb2l6ZWRQcm9wcy5zdHlsZSxMPWchPW51bGwmJmcuaGFzT3duUHJvcGVydHkoImRpc3BsYXkiKT9nLmRpc3BsYXk6bnVsbDtkLnN0eWxlLmRpc3BsYXk9TD09bnVsbHx8dHlwZW9mIEw9PSJib29sZWFuIj8iIjooIiIrTCkudHJpbSgpfX1jYXRjaCh5KXtWKGksaS5yZXR1cm4seSl9fX1lbHNlIGlmKGUudGFnPT09Nil7aWYodD09PW51bGwpe2k9ZTt0cnl7aS5zdGF0ZU5vZGUubm9kZVZhbHVlPXU/IiI6aS5tZW1vaXplZFByb3BzfWNhdGNoKHkpe1YoaSxpLnJldHVybix5KX19fWVsc2UgaWYoZS50YWc9PT0xOCl7aWYodD09PW51bGwpe2k9ZTt0cnl7dmFyIGg9aS5zdGF0ZU5vZGU7dT9DYyhoLCEwKTpDYyhpLnN0YXRlTm9kZSwhMSl9Y2F0Y2goeSl7VihpLGkucmV0dXJuLHkpfX19ZWxzZSBpZigoZS50YWchPT0yMiYmZS50YWchPT0yM3x8ZS5tZW1vaXplZFN0YXRlPT09bnVsbHx8ZT09PWEpJiZlLmNoaWxkIT09bnVsbCl7ZS5jaGlsZC5yZXR1cm49ZSxlPWUuY2hpbGQ7Y29udGludWV9aWYoZT09PWEpYnJlYWsgYTtmb3IoO2Uuc2libGluZz09PW51bGw7KXtpZihlLnJldHVybj09PW51bGx8fGUucmV0dXJuPT09YSlicmVhayBhO3Q9PT1lJiYodD1udWxsKSxlPWUucmV0dXJufXQ9PT1lJiYodD1udWxsKSxlLnNpYmxpbmcucmV0dXJuPWUucmV0dXJuLGU9ZS5zaWJsaW5nfWwmNCYmKGw9YS51cGRhdGVRdWV1ZSxsIT09bnVsbCYmKHQ9bC5yZXRyeVF1ZXVlLHQhPT1udWxsJiYobC5yZXRyeVF1ZXVlPW51bGwsSmYoYSx0KSkpKTticmVhaztjYXNlIDE5OmthKGUsYSksd2EoYSksbCY0JiYobD1hLnVwZGF0ZVF1ZXVlLGwhPT1udWxsJiYoYS51cGRhdGVRdWV1ZT1udWxsLEpmKGEsbCkpKTticmVhaztjYXNlIDMwOmJyZWFrO2Nhc2UgMjE6YnJlYWs7ZGVmYXVsdDprYShlLGEpLHdhKGEpfX1mdW5jdGlvbiB3YShhKXt2YXIgZT1hLmZsYWdzO2lmKGUmMil7dHJ5e2Zvcih2YXIgdCxsPWEucmV0dXJuO2whPT1udWxsOyl7aWYoQXAobCkpe3Q9bDticmVha31sPWwucmV0dXJufWlmKHQ9PW51bGwpdGhyb3cgRXJyb3IoQygxNjApKTtzd2l0Y2godC50YWcpe2Nhc2UgMjc6dmFyIHU9dC5zdGF0ZU5vZGUsZj1McyhhKTtVbyhhLGYsdSk7YnJlYWs7Y2FzZSA1OnZhciBvPXQuc3RhdGVOb2RlO3QuZmxhZ3MmMzImJihxbChvLCIiKSx0LmZsYWdzJj0tMzMpO3ZhciBkPUxzKGEpO1VvKGEsZCxvKTticmVhaztjYXNlIDM6Y2FzZSA0OnZhciBpPXQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sbT1McyhhKTtsaShhLG0saSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihDKDE2MSkpfX1jYXRjaCh4KXtWKGEsYS5yZXR1cm4seCl9YS5mbGFncyY9LTN9ZSY0MDk2JiYoYS5mbGFncyY9LTQwOTcpfWZ1bmN0aW9uIFJwKGEpe2lmKGEuc3VidHJlZUZsYWdzJjEwMjQpZm9yKGE9YS5jaGlsZDthIT09bnVsbDspe3ZhciBlPWE7UnAoZSksZS50YWc9PT01JiZlLmZsYWdzJjEwMjQmJmUuc3RhdGVOb2RlLnJlc2V0KCksYT1hLnNpYmxpbmd9fWZ1bmN0aW9uIGtlKGEsZSl7aWYoZS5zdWJ0cmVlRmxhZ3MmODc3Milmb3IoZT1lLmNoaWxkO2UhPT1udWxsOylNcChhLGUuYWx0ZXJuYXRlLGUpLGU9ZS5zaWJsaW5nfWZ1bmN0aW9uIFV0KGEpe2ZvcihhPWEuY2hpbGQ7YSE9PW51bGw7KXt2YXIgZT1hO3N3aXRjaChlLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1Onl0KDQsZSxlLnJldHVybiksVXQoZSk7YnJlYWs7Y2FzZSAxOlNlKGUsZS5yZXR1cm4pO3ZhciB0PWUuc3RhdGVOb2RlO3R5cGVvZiB0LmNvbXBvbmVudFdpbGxVbm1vdW50PT0iZnVuY3Rpb24iJiZ5cChlLGUucmV0dXJuLHQpLFV0KGUpO2JyZWFrO2Nhc2UgMjc6RXUoZS5zdGF0ZU5vZGUpO2Nhc2UgMjY6Y2FzZSA1OlNlKGUsZS5yZXR1cm4pLFV0KGUpO2JyZWFrO2Nhc2UgMjI6ZS5tZW1vaXplZFN0YXRlPT09bnVsbCYmVXQoZSk7YnJlYWs7Y2FzZSAzMDpVdChlKTticmVhaztkZWZhdWx0OlV0KGUpfWE9YS5zaWJsaW5nfX1mdW5jdGlvbiB3ZShhLGUsdCl7Zm9yKHQ9dCYmKGUuc3VidHJlZUZsYWdzJjg3NzIpIT09MCxlPWUuY2hpbGQ7ZSE9PW51bGw7KXt2YXIgbD1lLmFsdGVybmF0ZSx1PWEsZj1lLG89Zi5mbGFncztzd2l0Y2goZi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6d2UodSxmLHQpLG9mKDQsZik7YnJlYWs7Y2FzZSAxOmlmKHdlKHUsZix0KSxsPWYsdT1sLnN0YXRlTm9kZSx0eXBlb2YgdS5jb21wb25lbnREaWRNb3VudD09ImZ1bmN0aW9uIil0cnl7dS5jb21wb25lbnREaWRNb3VudCgpfWNhdGNoKG0pe1YobCxsLnJldHVybixtKX1pZihsPWYsdT1sLnVwZGF0ZVF1ZXVlLHUhPT1udWxsKXt2YXIgZD1sLnN0YXRlTm9kZTt0cnl7dmFyIGk9dS5zaGFyZWQuaGlkZGVuQ2FsbGJhY2tzO2lmKGkhPT1udWxsKWZvcih1LnNoYXJlZC5oaWRkZW5DYWxsYmFja3M9bnVsbCx1PTA7dTxpLmxlbmd0aDt1KyspQm0oaVt1XSxkKX1jYXRjaChtKXtWKGwsbC5yZXR1cm4sbSl9fXQmJm8mNjQmJklwKGYpLHF1KGYsZi5yZXR1cm4pO2JyZWFrO2Nhc2UgMjc6YnAoZik7Y2FzZSAyNjpjYXNlIDU6d2UodSxmLHQpLHQmJmw9PT1udWxsJiZvJjQmJnZwKGYpLHF1KGYsZi5yZXR1cm4pO2JyZWFrO2Nhc2UgMTI6d2UodSxmLHQpO2JyZWFrO2Nhc2UgMzE6d2UodSxmLHQpLHQmJm8mNCYmQnAodSxmKTticmVhaztjYXNlIDEzOndlKHUsZix0KSx0JiZvJjQmJmtwKHUsZik7YnJlYWs7Y2FzZSAyMjpmLm1lbW9pemVkU3RhdGU9PT1udWxsJiZ3ZSh1LGYsdCkscXUoZixmLnJldHVybik7YnJlYWs7Y2FzZSAzMDpicmVhaztkZWZhdWx0OndlKHUsZix0KX1lPWUuc2libGluZ319ZnVuY3Rpb24gdG4oYSxlKXt2YXIgdD1udWxsO2EhPT1udWxsJiZhLm1lbW9pemVkU3RhdGUhPT1udWxsJiZhLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sIT09bnVsbCYmKHQ9YS5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxhPW51bGwsZS5tZW1vaXplZFN0YXRlIT09bnVsbCYmZS5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCE9PW51bGwmJihhPWUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksYSE9PXQmJihhIT1udWxsJiZhLnJlZkNvdW50KyssdCE9bnVsbCYmdWYodCkpfWZ1bmN0aW9uIGxuKGEsZSl7YT1udWxsLGUuYWx0ZXJuYXRlIT09bnVsbCYmKGE9ZS5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZSksZT1lLm1lbW9pemVkU3RhdGUuY2FjaGUsZSE9PWEmJihlLnJlZkNvdW50KyssYSE9bnVsbCYmdWYoYSkpfWZ1bmN0aW9uIG5lKGEsZSx0LGwpe2lmKGUuc3VidHJlZUZsYWdzJjEwMjU2KWZvcihlPWUuY2hpbGQ7ZSE9PW51bGw7KXFwKGEsZSx0LGwpLGU9ZS5zaWJsaW5nfWZ1bmN0aW9uIHFwKGEsZSx0LGwpe3ZhciB1PWUuZmxhZ3M7c3dpdGNoKGUudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1Om5lKGEsZSx0LGwpLHUmMjA0OCYmb2YoOSxlKTticmVhaztjYXNlIDE6bmUoYSxlLHQsbCk7YnJlYWs7Y2FzZSAzOm5lKGEsZSx0LGwpLHUmMjA0OCYmKGE9bnVsbCxlLmFsdGVybmF0ZSE9PW51bGwmJihhPWUuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuY2FjaGUpLGU9ZS5tZW1vaXplZFN0YXRlLmNhY2hlLGUhPT1hJiYoZS5yZWZDb3VudCsrLGEhPW51bGwmJnVmKGEpKSk7YnJlYWs7Y2FzZSAxMjppZih1JjIwNDgpe25lKGEsZSx0LGwpLGE9ZS5zdGF0ZU5vZGU7dHJ5e3ZhciBmPWUubWVtb2l6ZWRQcm9wcyxvPWYuaWQsZD1mLm9uUG9zdENvbW1pdDt0eXBlb2YgZD09ImZ1bmN0aW9uIiYmZChvLGUuYWx0ZXJuYXRlPT09bnVsbD8ibW91bnQiOiJ1cGRhdGUiLGEucGFzc2l2ZUVmZmVjdER1cmF0aW9uLC0wKX1jYXRjaChpKXtWKGUsZS5yZXR1cm4saSl9fWVsc2UgbmUoYSxlLHQsbCk7YnJlYWs7Y2FzZSAzMTpuZShhLGUsdCxsKTticmVhaztjYXNlIDEzOm5lKGEsZSx0LGwpO2JyZWFrO2Nhc2UgMjM6YnJlYWs7Y2FzZSAyMjpmPWUuc3RhdGVOb2RlLG89ZS5hbHRlcm5hdGUsZS5tZW1vaXplZFN0YXRlIT09bnVsbD9mLl92aXNpYmlsaXR5JjI/bmUoYSxlLHQsbCk6T3UoYSxlKTpmLl92aXNpYmlsaXR5JjI/bmUoYSxlLHQsbCk6KGYuX3Zpc2liaWxpdHl8PTIsbmwoYSxlLHQsbCwoZS5zdWJ0cmVlRmxhZ3MmMTAyNTYpIT09MHx8ITEpKSx1JjIwNDgmJnRuKG8sZSk7YnJlYWs7Y2FzZSAyNDpuZShhLGUsdCxsKSx1JjIwNDgmJmxuKGUuYWx0ZXJuYXRlLGUpO2JyZWFrO2RlZmF1bHQ6bmUoYSxlLHQsbCl9fWZ1bmN0aW9uIG5sKGEsZSx0LGwsdSl7Zm9yKHU9dSYmKChlLnN1YnRyZWVGbGFncyYxMDI1NikhPT0wfHwhMSksZT1lLmNoaWxkO2UhPT1udWxsOyl7dmFyIGY9YSxvPWUsZD10LGk9bCxtPW8uZmxhZ3M7c3dpdGNoKG8udGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1Om5sKGYsbyxkLGksdSksb2YoOCxvKTticmVhaztjYXNlIDIzOmJyZWFrO2Nhc2UgMjI6dmFyIHg9by5zdGF0ZU5vZGU7by5tZW1vaXplZFN0YXRlIT09bnVsbD94Ll92aXNpYmlsaXR5JjI/bmwoZixvLGQsaSx1KTpPdShmLG8pOih4Ll92aXNpYmlsaXR5fD0yLG5sKGYsbyxkLGksdSkpLHUmJm0mMjA0OCYmdG4oby5hbHRlcm5hdGUsbyk7YnJlYWs7Y2FzZSAyNDpubChmLG8sZCxpLHUpLHUmJm0mMjA0OCYmbG4oby5hbHRlcm5hdGUsbyk7YnJlYWs7ZGVmYXVsdDpubChmLG8sZCxpLHUpfWU9ZS5zaWJsaW5nfX1mdW5jdGlvbiBPdShhLGUpe2lmKGUuc3VidHJlZUZsYWdzJjEwMjU2KWZvcihlPWUuY2hpbGQ7ZSE9PW51bGw7KXt2YXIgdD1hLGw9ZSx1PWwuZmxhZ3M7c3dpdGNoKGwudGFnKXtjYXNlIDIyOk91KHQsbCksdSYyMDQ4JiZ0bihsLmFsdGVybmF0ZSxsKTticmVhaztjYXNlIDI0Ok91KHQsbCksdSYyMDQ4JiZsbihsLmFsdGVybmF0ZSxsKTticmVhaztkZWZhdWx0Ok91KHQsbCl9ZT1lLnNpYmxpbmd9fXZhciBBdT04MTkyO2Z1bmN0aW9uIGlsKGEsZSx0KXtpZihhLnN1YnRyZWVGbGFncyZBdSlmb3IoYT1hLmNoaWxkO2EhPT1udWxsOylPcChhLGUsdCksYT1hLnNpYmxpbmd9ZnVuY3Rpb24gT3AoYSxlLHQpe3N3aXRjaChhLnRhZyl7Y2FzZSAyNjppbChhLGUsdCksYS5mbGFncyZBdSYmYS5tZW1vaXplZFN0YXRlIT09bnVsbCYmcVModCxyZSxhLm1lbW9pemVkU3RhdGUsYS5tZW1vaXplZFByb3BzKTticmVhaztjYXNlIDU6aWwoYSxlLHQpO2JyZWFrO2Nhc2UgMzpjYXNlIDQ6dmFyIGw9cmU7cmU9UG8oYS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksaWwoYSxlLHQpLHJlPWw7YnJlYWs7Y2FzZSAyMjphLm1lbW9pemVkU3RhdGU9PT1udWxsJiYobD1hLmFsdGVybmF0ZSxsIT09bnVsbCYmbC5tZW1vaXplZFN0YXRlIT09bnVsbD8obD1BdSxBdT0xNjc3NzIxNixpbChhLGUsdCksQXU9bCk6aWwoYSxlLHQpKTticmVhaztkZWZhdWx0OmlsKGEsZSx0KX19ZnVuY3Rpb24gVXAoYSl7dmFyIGU9YS5hbHRlcm5hdGU7aWYoZSE9PW51bGwmJihhPWUuY2hpbGQsYSE9PW51bGwpKXtlLmNoaWxkPW51bGw7ZG8gZT1hLnNpYmxpbmcsYS5zaWJsaW5nPW51bGwsYT1lO3doaWxlKGEhPT1udWxsKX19ZnVuY3Rpb24geHUoYSl7dmFyIGU9YS5kZWxldGlvbnM7aWYoKGEuZmxhZ3MmMTYpIT09MCl7aWYoZSE9PW51bGwpZm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBsPWVbdF07aGE9bCxFcChsLGEpfVVwKGEpfWlmKGEuc3VidHJlZUZsYWdzJjEwMjU2KWZvcihhPWEuY2hpbGQ7YSE9PW51bGw7KXpwKGEpLGE9YS5zaWJsaW5nfWZ1bmN0aW9uIHpwKGEpe3N3aXRjaChhLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTp4dShhKSxhLmZsYWdzJjIwNDgmJnl0KDksYSxhLnJldHVybik7YnJlYWs7Y2FzZSAzOnh1KGEpO2JyZWFrO2Nhc2UgMTI6eHUoYSk7YnJlYWs7Y2FzZSAyMjp2YXIgZT1hLnN0YXRlTm9kZTthLm1lbW9pemVkU3RhdGUhPT1udWxsJiZlLl92aXNpYmlsaXR5JjImJihhLnJldHVybj09PW51bGx8fGEucmV0dXJuLnRhZyE9PTEzKT8oZS5fdmlzaWJpbGl0eSY9LTMscG8oYSkpOnh1KGEpO2JyZWFrO2RlZmF1bHQ6eHUoYSl9fWZ1bmN0aW9uIHBvKGEpe3ZhciBlPWEuZGVsZXRpb25zO2lmKChhLmZsYWdzJjE2KSE9PTApe2lmKGUhPT1udWxsKWZvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgbD1lW3RdO2hhPWwsRXAobCxhKX1VcChhKX1mb3IoYT1hLmNoaWxkO2EhPT1udWxsOyl7c3dpdGNoKGU9YSxlLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTp5dCg4LGUsZS5yZXR1cm4pLHBvKGUpO2JyZWFrO2Nhc2UgMjI6dD1lLnN0YXRlTm9kZSx0Ll92aXNpYmlsaXR5JjImJih0Ll92aXNpYmlsaXR5Jj0tMyxwbyhlKSk7YnJlYWs7ZGVmYXVsdDpwbyhlKX1hPWEuc2libGluZ319ZnVuY3Rpb24gRXAoYSxlKXtmb3IoO2hhIT09bnVsbDspe3ZhciB0PWhhO3N3aXRjaCh0LnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTp5dCg4LHQsZSk7YnJlYWs7Y2FzZSAyMzpjYXNlIDIyOmlmKHQubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJnQubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2whPT1udWxsKXt2YXIgbD10Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2w7bCE9bnVsbCYmbC5yZWZDb3VudCsrfWJyZWFrO2Nhc2UgMjQ6dWYodC5tZW1vaXplZFN0YXRlLmNhY2hlKX1pZihsPXQuY2hpbGQsbCE9PW51bGwpbC5yZXR1cm49dCxoYT1sO2Vsc2UgYTpmb3IodD1hO2hhIT09bnVsbDspe2w9aGE7dmFyIHU9bC5zaWJsaW5nLGY9bC5yZXR1cm47aWYoRHAobCksbD09PXQpe2hhPW51bGw7YnJlYWsgYX1pZih1IT09bnVsbCl7dS5yZXR1cm49ZixoYT11O2JyZWFrIGF9aGE9Zn19fXZhciBLeD17Z2V0Q2FjaGVGb3JUeXBlOmZ1bmN0aW9uKGEpe3ZhciBlPXlhKHJhKSx0PWUuZGF0YS5nZXQoYSk7cmV0dXJuIHQ9PT12b2lkIDAmJih0PWEoKSxlLmRhdGEuc2V0KGEsdCkpLHR9LGNhY2hlU2lnbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIHlhKHJhKS5jb250cm9sbGVyLnNpZ25hbH19LEp4PXR5cGVvZiBXZWFrTWFwPT0iZnVuY3Rpb24iP1dlYWtNYXA6TWFwLF89MCxZPW51bGwsSD1udWxsLE49MCxYPTAsRmE9bnVsbCxzdD0hMSxabD0hMSx1bj0hMSxYZT0wLG9hPTAsdnQ9MCxGdD0wLGZuPTAsUGE9MCxFbD0wLFV1PW51bGwscWE9bnVsbCx1aT0hMSxmZD0wLEhwPTAsem89MS8wLEVvPW51bGwsTHQ9bnVsbCxtYT0wLGh0PW51bGwsSGw9bnVsbCxOZT0wLGZpPTAsb2k9bnVsbCxOcD1udWxsLHp1PTAsZGk9bnVsbDtmdW5jdGlvbiBRYSgpe3JldHVybihfJjIpIT09MCYmTiE9PTA/TiYtTjpELlQhPT1udWxsP2RuKCk6WWMoKX1mdW5jdGlvbiBGcCgpe2lmKFBhPT09MClpZigoTiY1MzY4NzA5MTIpPT09MHx8Ril7dmFyIGE9R2Y7R2Y8PD0xLChHZiYzOTMyMTYwKT09PTAmJihHZj0yNjIxNDQpLFBhPWF9ZWxzZSBQYT01MzY4NzA5MTI7cmV0dXJuIGE9amEuY3VycmVudCxhIT09bnVsbCYmKGEuZmxhZ3N8PTMyKSxQYX1mdW5jdGlvbiBPYShhLGUsdCl7KGE9PT1ZJiYoWD09PTJ8fFg9PT05KXx8YS5jYW5jZWxQZW5kaW5nQ29tbWl0IT09bnVsbCkmJihObChhLDApLGl0KGEsTixQYSwhMSkpLGVmKGEsdCksKChfJjIpPT09MHx8YSE9PVkpJiYoYT09PVkmJigoXyYyKT09PTAmJihGdHw9dCksb2E9PT00JiZpdChhLE4sUGEsITEpKSxJZShhKSl9ZnVuY3Rpb24gR3AoYSxlLHQpe2lmKChfJjYpIT09MCl0aHJvdyBFcnJvcihDKDMyNykpO3ZhciBsPSF0JiYoZSYxMjcpPT09MCYmKGUmYS5leHBpcmVkTGFuZXMpPT09MHx8YWYoYSxlKSx1PWw/YVMoYSxlKTp4cyhhLGUsITApLGY9bDtkb3tpZih1PT09MCl7WmwmJiFsJiZpdChhLGUsMCwhMSk7YnJlYWt9ZWxzZXtpZih0PWEuY3VycmVudC5hbHRlcm5hdGUsZiYmIVd4KHQpKXt1PXhzKGEsZSwhMSksZj0hMTtjb250aW51ZX1pZih1PT09Mil7aWYoZj1lLGEuZXJyb3JSZWNvdmVyeURpc2FibGVkTGFuZXMmZil2YXIgbz0wO2Vsc2Ugbz1hLnBlbmRpbmdMYW5lcyYtNTM2ODcwOTEzLG89byE9PTA/bzpvJjUzNjg3MDkxMj81MzY4NzA5MTI6MDtpZihvIT09MCl7ZT1vO2E6e3ZhciBkPWE7dT1VdTt2YXIgaT1kLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQ7aWYoaSYmKE5sKGQsbykuZmxhZ3N8PTI1Niksbz14cyhkLG8sITEpLG8hPT0yKXtpZih1biYmIWkpe2QuZXJyb3JSZWNvdmVyeURpc2FibGVkTGFuZXN8PWYsRnR8PWYsdT00O2JyZWFrIGF9Zj1xYSxxYT11LGYhPT1udWxsJiYocWE9PT1udWxsP3FhPWY6cWEucHVzaC5hcHBseShxYSxmKSl9dT1vfWlmKGY9ITEsdSE9PTIpY29udGludWV9fWlmKHU9PT0xKXtObChhLDApLGl0KGEsZSwwLCEwKTticmVha31hOntzd2l0Y2gobD1hLGY9dSxmKXtjYXNlIDA6Y2FzZSAxOnRocm93IEVycm9yKEMoMzQ1KSk7Y2FzZSA0OmlmKChlJjQxOTQwNDgpIT09ZSlicmVhaztjYXNlIDY6aXQobCxlLFBhLCFzdCk7YnJlYWsgYTtjYXNlIDI6cWE9bnVsbDticmVhaztjYXNlIDM6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoQygzMjkpKX1pZigoZSY2MjkxNDU2MCk9PT1lJiYodT1mZCszMDAtWGEoKSwxMDx1KSl7aWYoaXQobCxlLFBhLCFzdCksWW8obCwwLCEwKSE9PTApYnJlYWsgYTtOZT1lLGwudGltZW91dEhhbmRsZT1kTChmYy5iaW5kKG51bGwsbCx0LHFhLEVvLHVpLGUsUGEsRnQsRWwsc3QsZiwiVGhyb3R0bGVkIiwtMCwwKSx1KTticmVhayBhfWZjKGwsdCxxYSxFbyx1aSxlLFBhLEZ0LEVsLHN0LGYsbnVsbCwtMCwwKX19YnJlYWt9d2hpbGUoITApO0llKGEpfWZ1bmN0aW9uIGZjKGEsZSx0LGwsdSxmLG8sZCxpLG0seCxnLEwsaCl7aWYoYS50aW1lb3V0SGFuZGxlPS0xLGc9ZS5zdWJ0cmVlRmxhZ3MsZyY4MTkyfHwoZyYxNjc4NTQwOCk9PT0xNjc4NTQwOCl7Zz17c3R5bGVzaGVldHM6bnVsbCxjb3VudDowLGltZ0NvdW50OjAsaW1nQnl0ZXM6MCxzdXNwZW5zZXlJbWFnZXM6W10sd2FpdGluZ0ZvckltYWdlczohMCx3YWl0aW5nRm9yVmlld1RyYW5zaXRpb246ITEsdW5zdXNwZW5kOlVlfSxPcChlLGYsZyk7dmFyIHk9KGYmNjI5MTQ1NjApPT09Zj9mZC1YYSgpOihmJjQxOTQwNDgpPT09Zj9IcC1YYSgpOjA7aWYoeT1PUyhnLHkpLHkhPT1udWxsKXtOZT1mLGEuY2FuY2VsUGVuZGluZ0NvbW1pdD15KGRjLmJpbmQobnVsbCxhLGUsZix0LGwsdSxvLGQsaSx4LGcsbnVsbCxMLGgpKSxpdChhLGYsbywhbSk7cmV0dXJufX1kYyhhLGUsZix0LGwsdSxvLGQsaSl9ZnVuY3Rpb24gV3goYSl7Zm9yKHZhciBlPWE7Oyl7dmFyIHQ9ZS50YWc7aWYoKHQ9PT0wfHx0PT09MTF8fHQ9PT0xNSkmJmUuZmxhZ3MmMTYzODQmJih0PWUudXBkYXRlUXVldWUsdCE9PW51bGwmJih0PXQuc3RvcmVzLHQhPT1udWxsKSkpZm9yKHZhciBsPTA7bDx0Lmxlbmd0aDtsKyspe3ZhciB1PXRbbF0sZj11LmdldFNuYXBzaG90O3U9dS52YWx1ZTt0cnl7aWYoIVlhKGYoKSx1KSlyZXR1cm4hMX1jYXRjaHtyZXR1cm4hMX19aWYodD1lLmNoaWxkLGUuc3VidHJlZUZsYWdzJjE2Mzg0JiZ0IT09bnVsbCl0LnJldHVybj1lLGU9dDtlbHNle2lmKGU9PT1hKWJyZWFrO2Zvcig7ZS5zaWJsaW5nPT09bnVsbDspe2lmKGUucmV0dXJuPT09bnVsbHx8ZS5yZXR1cm49PT1hKXJldHVybiEwO2U9ZS5yZXR1cm59ZS5zaWJsaW5nLnJldHVybj1lLnJldHVybixlPWUuc2libGluZ319cmV0dXJuITB9ZnVuY3Rpb24gaXQoYSxlLHQsbCl7ZSY9fmZuLGUmPX5GdCxhLnN1c3BlbmRlZExhbmVzfD1lLGEucGluZ2VkTGFuZXMmPX5lLGwmJihhLndhcm1MYW5lc3w9ZSksbD1hLmV4cGlyYXRpb25UaW1lcztmb3IodmFyIHU9ZTswPHU7KXt2YXIgZj0zMS1aYSh1KSxvPTE8PGY7bFtmXT0tMSx1Jj1+b310IT09MCYmVmMoYSx0LGUpfWZ1bmN0aW9uIG9kKCl7cmV0dXJuKF8mNik9PT0wPyhkZigwLCExKSwhMSk6ITB9ZnVuY3Rpb24gb24oKXtpZihIIT09bnVsbCl7aWYoWD09PTApdmFyIGE9SC5yZXR1cm47ZWxzZSBhPUgsemU9S3Q9bnVsbCxWaShhKSxUbD1udWxsLFh1PTAsYT1IO2Zvcig7YSE9PW51bGw7KUNwKGEuYWx0ZXJuYXRlLGEpLGE9YS5yZXR1cm47SD1udWxsfX1mdW5jdGlvbiBObChhLGUpe3ZhciB0PWEudGltZW91dEhhbmRsZTt0IT09LTEmJihhLnRpbWVvdXRIYW5kbGU9LTEsaFModCkpLHQ9YS5jYW5jZWxQZW5kaW5nQ29tbWl0LHQhPT1udWxsJiYoYS5jYW5jZWxQZW5kaW5nQ29tbWl0PW51bGwsdCgpKSxOZT0wLG9uKCksWT1hLEg9dD1FZShhLmN1cnJlbnQsbnVsbCksTj1lLFg9MCxGYT1udWxsLHN0PSExLFpsPWFmKGEsZSksdW49ITEsRWw9UGE9Zm49RnQ9dnQ9b2E9MCxxYT1VdT1udWxsLHVpPSExLChlJjgpIT09MCYmKGV8PWUmMzIpO3ZhciBsPWEuZW50YW5nbGVkTGFuZXM7aWYobCE9PTApZm9yKGE9YS5lbnRhbmdsZW1lbnRzLGwmPWU7MDxsOyl7dmFyIHU9MzEtWmEobCksZj0xPDx1O2V8PWFbdV0sbCY9fmZ9cmV0dXJuIFhlPWUsV28oKSx0fWZ1bmN0aW9uIF9wKGEsZSl7Uj1udWxsLEQuSD1adSxlPT09Vmx8fGU9PT1hZD8oZT1FcigpLFg9Myk6ZT09PUhpPyhlPUVyKCksWD00KTpYPWU9PT1hbj84OmUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCImJnR5cGVvZiBlLnRoZW49PSJmdW5jdGlvbiI/NjoxLEZhPWUsSD09PW51bGwmJihvYT0xLHFvKGEsbGUoZSxhLmN1cnJlbnQpKSl9ZnVuY3Rpb24gUHAoKXt2YXIgYT1qYS5jdXJyZW50O3JldHVybiBhPT09bnVsbD8hMDooTiY0MTk0MDQ4KT09PU4/ZmU9PT1udWxsOihOJjYyOTE0NTYwKT09PU58fChOJjUzNjg3MDkxMikhPT0wP2E9PT1mZTohMX1mdW5jdGlvbiBYcCgpe3ZhciBhPUQuSDtyZXR1cm4gRC5IPVp1LGE9PT1udWxsP1p1OmF9ZnVuY3Rpb24gVnAoKXt2YXIgYT1ELkE7cmV0dXJuIEQuQT1LeCxhfWZ1bmN0aW9uIEhvKCl7b2E9NCxzdHx8KE4mNDE5NDA0OCkhPT1OJiZqYS5jdXJyZW50IT09bnVsbHx8KFpsPSEwKSwodnQmMTM0MjE3NzI3KT09PTAmJihGdCYxMzQyMTc3MjcpPT09MHx8WT09PW51bGx8fGl0KFksTixQYSwhMSl9ZnVuY3Rpb24geHMoYSxlLHQpe3ZhciBsPV87X3w9Mjt2YXIgdT1YcCgpLGY9VnAoKTsoWSE9PWF8fE4hPT1lKSYmKEVvPW51bGwsTmwoYSxlKSksZT0hMTt2YXIgbz1vYTthOmRvIHRyeXtpZihYIT09MCYmSCE9PW51bGwpe3ZhciBkPUgsaT1GYTtzd2l0Y2goWCl7Y2FzZSA4Om9uKCksbz02O2JyZWFrIGE7Y2FzZSAzOmNhc2UgMjpjYXNlIDk6Y2FzZSA2OmphLmN1cnJlbnQ9PT1udWxsJiYoZT0hMCk7dmFyIG09WDtpZihYPTAsRmE9bnVsbCx2bChhLGQsaSxtKSx0JiZabCl7bz0wO2JyZWFrIGF9YnJlYWs7ZGVmYXVsdDptPVgsWD0wLEZhPW51bGwsdmwoYSxkLGksbSl9fSR4KCksbz1vYTticmVha31jYXRjaCh4KXtfcChhLHgpfXdoaWxlKCEwKTtyZXR1cm4gZSYmYS5zaGVsbFN1c3BlbmRDb3VudGVyKyssemU9S3Q9bnVsbCxfPWwsRC5IPXUsRC5BPWYsSD09PW51bGwmJihZPW51bGwsTj0wLFdvKCkpLG99ZnVuY3Rpb24gJHgoKXtmb3IoO0ghPT1udWxsOylacChIKX1mdW5jdGlvbiBhUyhhLGUpe3ZhciB0PV87X3w9Mjt2YXIgbD1YcCgpLHU9VnAoKTtZIT09YXx8TiE9PWU/KEVvPW51bGwsem89WGEoKSs1MDAsTmwoYSxlKSk6Wmw9YWYoYSxlKTthOmRvIHRyeXtpZihYIT09MCYmSCE9PW51bGwpe2U9SDt2YXIgZj1GYTtlOnN3aXRjaChYKXtjYXNlIDE6WD0wLEZhPW51bGwsdmwoYSxlLGYsMSk7YnJlYWs7Y2FzZSAyOmNhc2UgOTppZih6cihmKSl7WD0wLEZhPW51bGwsb2MoZSk7YnJlYWt9ZT1mdW5jdGlvbigpe1ghPT0yJiZYIT09OXx8WSE9PWF8fChYPTcpLEllKGEpfSxmLnRoZW4oZSxlKTticmVhayBhO2Nhc2UgMzpYPTc7YnJlYWsgYTtjYXNlIDQ6WD01O2JyZWFrIGE7Y2FzZSA3OnpyKGYpPyhYPTAsRmE9bnVsbCxvYyhlKSk6KFg9MCxGYT1udWxsLHZsKGEsZSxmLDcpKTticmVhaztjYXNlIDU6dmFyIG89bnVsbDtzd2l0Y2goSC50YWcpe2Nhc2UgMjY6bz1ILm1lbW9pemVkU3RhdGU7Y2FzZSA1OmNhc2UgMjc6dmFyIGQ9SDtpZihvP2NMKG8pOmQuc3RhdGVOb2RlLmNvbXBsZXRlKXtYPTAsRmE9bnVsbDt2YXIgaT1kLnNpYmxpbmc7aWYoaSE9PW51bGwpSD1pO2Vsc2V7dmFyIG09ZC5yZXR1cm47bSE9PW51bGw/KEg9bSxkZChtKSk6SD1udWxsfWJyZWFrIGV9fVg9MCxGYT1udWxsLHZsKGEsZSxmLDUpO2JyZWFrO2Nhc2UgNjpYPTAsRmE9bnVsbCx2bChhLGUsZiw2KTticmVhaztjYXNlIDg6b24oKSxvYT02O2JyZWFrIGE7ZGVmYXVsdDp0aHJvdyBFcnJvcihDKDQ2MikpfX1lUygpO2JyZWFrfWNhdGNoKHgpe19wKGEseCl9d2hpbGUoITApO3JldHVybiB6ZT1LdD1udWxsLEQuSD1sLEQuQT11LF89dCxIIT09bnVsbD8wOihZPW51bGwsTj0wLFdvKCksb2EpfWZ1bmN0aW9uIGVTKCl7Zm9yKDtIIT09bnVsbCYmIUFoKCk7KVpwKEgpfWZ1bmN0aW9uIFpwKGEpe3ZhciBlPWdwKGEuYWx0ZXJuYXRlLGEsWGUpO2EubWVtb2l6ZWRQcm9wcz1hLnBlbmRpbmdQcm9wcyxlPT09bnVsbD9kZChhKTpIPWV9ZnVuY3Rpb24gb2MoYSl7dmFyIGU9YSx0PWUuYWx0ZXJuYXRlO3N3aXRjaChlLnRhZyl7Y2FzZSAxNTpjYXNlIDA6ZT0kcih0LGUsZS5wZW5kaW5nUHJvcHMsZS50eXBlLHZvaWQgMCxOKTticmVhaztjYXNlIDExOmU9JHIodCxlLGUucGVuZGluZ1Byb3BzLGUudHlwZS5yZW5kZXIsZS5yZWYsTik7YnJlYWs7Y2FzZSA1OlZpKGUpO2RlZmF1bHQ6Q3AodCxlKSxlPUg9Q20oZSxYZSksZT1ncCh0LGUsWGUpfWEubWVtb2l6ZWRQcm9wcz1hLnBlbmRpbmdQcm9wcyxlPT09bnVsbD9kZChhKTpIPWV9ZnVuY3Rpb24gdmwoYSxlLHQsbCl7emU9S3Q9bnVsbCxWaShlKSxUbD1udWxsLFh1PTA7dmFyIHU9ZS5yZXR1cm47dHJ5e2lmKFB4KGEsdSxlLHQsTikpe29hPTEscW8oYSxsZSh0LGEuY3VycmVudCkpLEg9bnVsbDtyZXR1cm59fWNhdGNoKGYpe2lmKHUhPT1udWxsKXRocm93IEg9dSxmO29hPTEscW8oYSxsZSh0LGEuY3VycmVudCkpLEg9bnVsbDtyZXR1cm59ZS5mbGFncyYzMjc2OD8oRnx8bD09PTE/YT0hMDpabHx8KE4mNTM2ODcwOTEyKSE9PTA/YT0hMTooc3Q9YT0hMCwobD09PTJ8fGw9PT05fHxsPT09M3x8bD09PTYpJiYobD1qYS5jdXJyZW50LGwhPT1udWxsJiZsLnRhZz09PTEzJiYobC5mbGFnc3w9MTYzODQpKSksUXAoZSxhKSk6ZGQoZSl9ZnVuY3Rpb24gZGQoYSl7dmFyIGU9YTtkb3tpZigoZS5mbGFncyYzMjc2OCkhPT0wKXtRcChlLHN0KTtyZXR1cm59YT1lLnJldHVybjt2YXIgdD1aeChlLmFsdGVybmF0ZSxlLFhlKTtpZih0IT09bnVsbCl7SD10O3JldHVybn1pZihlPWUuc2libGluZyxlIT09bnVsbCl7SD1lO3JldHVybn1IPWU9YX13aGlsZShlIT09bnVsbCk7b2E9PT0wJiYob2E9NSl9ZnVuY3Rpb24gUXAoYSxlKXtkb3t2YXIgdD1ReChhLmFsdGVybmF0ZSxhKTtpZih0IT09bnVsbCl7dC5mbGFncyY9MzI3NjcsSD10O3JldHVybn1pZih0PWEucmV0dXJuLHQhPT1udWxsJiYodC5mbGFnc3w9MzI3NjgsdC5zdWJ0cmVlRmxhZ3M9MCx0LmRlbGV0aW9ucz1udWxsKSwhZSYmKGE9YS5zaWJsaW5nLGEhPT1udWxsKSl7SD1hO3JldHVybn1IPWE9dH13aGlsZShhIT09bnVsbCk7b2E9NixIPW51bGx9ZnVuY3Rpb24gZGMoYSxlLHQsbCx1LGYsbyxkLGkpe2EuY2FuY2VsUGVuZGluZ0NvbW1pdD1udWxsO2RvIHNkKCk7d2hpbGUobWEhPT0wKTtpZigoXyY2KSE9PTApdGhyb3cgRXJyb3IoQygzMjcpKTtpZihlIT09bnVsbCl7aWYoZT09PWEuY3VycmVudCl0aHJvdyBFcnJvcihDKDE3NykpO2lmKGY9ZS5sYW5lc3xlLmNoaWxkTGFuZXMsZnw9d2ksT2goYSx0LGYsbyxkLGkpLGE9PT1ZJiYoSD1ZPW51bGwsTj0wKSxIbD1lLGh0PWEsTmU9dCxmaT1mLG9pPXUsTnA9bCwoZS5zdWJ0cmVlRmxhZ3MmMTAyNTYpIT09MHx8KGUuZmxhZ3MmMTAyNTYpIT09MD8oYS5jYWxsYmFja05vZGU9bnVsbCxhLmNhbGxiYWNrUHJpb3JpdHk9MCxmUyh5byxmdW5jdGlvbigpe3JldHVybiBXcCgpLG51bGx9KSk6KGEuY2FsbGJhY2tOb2RlPW51bGwsYS5jYWxsYmFja1ByaW9yaXR5PTApLGw9KGUuZmxhZ3MmMTM4NzgpIT09MCwoZS5zdWJ0cmVlRmxhZ3MmMTM4NzgpIT09MHx8bCl7bD1ELlQsRC5UPW51bGwsdT1QLnAsUC5wPTIsbz1fLF98PTQ7dHJ5e1l4KGEsZSx0KX1maW5hbGx5e189byxQLnA9dSxELlQ9bH19bWE9MSxZcCgpLGpwKCksS3AoKX19ZnVuY3Rpb24gWXAoKXtpZihtYT09PTEpe21hPTA7dmFyIGE9aHQsZT1IbCx0PShlLmZsYWdzJjEzODc4KSE9PTA7aWYoKGUuc3VidHJlZUZsYWdzJjEzODc4KSE9PTB8fHQpe3Q9RC5ULEQuVD1udWxsO3ZhciBsPVAucDtQLnA9Mjt2YXIgdT1fO198PTQ7dHJ5e3dwKGUsYSk7dmFyIGY9cmksbz1jbShhLmNvbnRhaW5lckluZm8pLGQ9Zi5mb2N1c2VkRWxlbSxpPWYuc2VsZWN0aW9uUmFuZ2U7aWYobyE9PWQmJmQmJmQub3duZXJEb2N1bWVudCYmcm0oZC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxkKSl7aWYoaSE9PW51bGwmJmtpKGQpKXt2YXIgbT1pLnN0YXJ0LHg9aS5lbmQ7aWYoeD09PXZvaWQgMCYmKHg9bSksInNlbGVjdGlvblN0YXJ0ImluIGQpZC5zZWxlY3Rpb25TdGFydD1tLGQuc2VsZWN0aW9uRW5kPU1hdGgubWluKHgsZC52YWx1ZS5sZW5ndGgpO2Vsc2V7dmFyIGc9ZC5vd25lckRvY3VtZW50fHxkb2N1bWVudCxMPWcmJmcuZGVmYXVsdFZpZXd8fHdpbmRvdztpZihMLmdldFNlbGVjdGlvbil7dmFyIGg9TC5nZXRTZWxlY3Rpb24oKSx5PWQudGV4dENvbnRlbnQubGVuZ3RoLGI9TWF0aC5taW4oaS5zdGFydCx5KSxHPWkuZW5kPT09dm9pZCAwP2I6TWF0aC5taW4oaS5lbmQseSk7IWguZXh0ZW5kJiZiPkcmJihvPUcsRz1iLGI9byk7dmFyIGM9QnIoZCxiKSxyPUJyKGQsRyk7aWYoYyYmciYmKGgucmFuZ2VDb3VudCE9PTF8fGguYW5jaG9yTm9kZSE9PWMubm9kZXx8aC5hbmNob3JPZmZzZXQhPT1jLm9mZnNldHx8aC5mb2N1c05vZGUhPT1yLm5vZGV8fGguZm9jdXNPZmZzZXQhPT1yLm9mZnNldCkpe3ZhciBwPWcuY3JlYXRlUmFuZ2UoKTtwLnNldFN0YXJ0KGMubm9kZSxjLm9mZnNldCksaC5yZW1vdmVBbGxSYW5nZXMoKSxiPkc/KGguYWRkUmFuZ2UocCksaC5leHRlbmQoci5ub2RlLHIub2Zmc2V0KSk6KHAuc2V0RW5kKHIubm9kZSxyLm9mZnNldCksaC5hZGRSYW5nZShwKSl9fX19Zm9yKGc9W10saD1kO2g9aC5wYXJlbnROb2RlOyloLm5vZGVUeXBlPT09MSYmZy5wdXNoKHtlbGVtZW50OmgsbGVmdDpoLnNjcm9sbExlZnQsdG9wOmguc2Nyb2xsVG9wfSk7Zm9yKHR5cGVvZiBkLmZvY3VzPT0iZnVuY3Rpb24iJiZkLmZvY3VzKCksZD0wO2Q8Zy5sZW5ndGg7ZCsrKXt2YXIgUz1nW2RdO1MuZWxlbWVudC5zY3JvbGxMZWZ0PVMubGVmdCxTLmVsZW1lbnQuc2Nyb2xsVG9wPVMudG9wfX1abz0hIW5pLHJpPW5pPW51bGx9ZmluYWxseXtfPXUsUC5wPWwsRC5UPXR9fWEuY3VycmVudD1lLG1hPTJ9fWZ1bmN0aW9uIGpwKCl7aWYobWE9PT0yKXttYT0wO3ZhciBhPWh0LGU9SGwsdD0oZS5mbGFncyY4NzcyKSE9PTA7aWYoKGUuc3VidHJlZUZsYWdzJjg3NzIpIT09MHx8dCl7dD1ELlQsRC5UPW51bGw7dmFyIGw9UC5wO1AucD0yO3ZhciB1PV87X3w9NDt0cnl7TXAoYSxlLmFsdGVybmF0ZSxlKX1maW5hbGx5e189dSxQLnA9bCxELlQ9dH19bWE9M319ZnVuY3Rpb24gS3AoKXtpZihtYT09PTR8fG1hPT09Myl7bWE9MCxiaCgpO3ZhciBhPWh0LGU9SGwsdD1OZSxsPU5wOyhlLnN1YnRyZWVGbGFncyYxMDI1NikhPT0wfHwoZS5mbGFncyYxMDI1NikhPT0wP21hPTU6KG1hPTAsSGw9aHQ9bnVsbCxKcChhLGEucGVuZGluZ0xhbmVzKSk7dmFyIHU9YS5wZW5kaW5nTGFuZXM7aWYodT09PTAmJihMdD1udWxsKSx2aSh0KSxlPWUuc3RhdGVOb2RlLFZhJiZ0eXBlb2YgVmEub25Db21taXRGaWJlclJvb3Q9PSJmdW5jdGlvbiIpdHJ5e1ZhLm9uQ29tbWl0RmliZXJSb290KCR1LGUsdm9pZCAwLChlLmN1cnJlbnQuZmxhZ3MmMTI4KT09PTEyOCl9Y2F0Y2h7fWlmKGwhPT1udWxsKXtlPUQuVCx1PVAucCxQLnA9MixELlQ9bnVsbDt0cnl7Zm9yKHZhciBmPWEub25SZWNvdmVyYWJsZUVycm9yLG89MDtvPGwubGVuZ3RoO28rKyl7dmFyIGQ9bFtvXTtmKGQudmFsdWUse2NvbXBvbmVudFN0YWNrOmQuc3RhY2t9KX19ZmluYWxseXtELlQ9ZSxQLnA9dX19KE5lJjMpIT09MCYmc2QoKSxJZShhKSx1PWEucGVuZGluZ0xhbmVzLCh0JjI2MTkzMCkhPT0wJiYodSY0MikhPT0wP2E9PT1kaT96dSsrOih6dT0wLGRpPWEpOnp1PTAsZGYoMCwhMSl9fWZ1bmN0aW9uIEpwKGEsZSl7KGEucG9vbGVkQ2FjaGVMYW5lcyY9ZSk9PT0wJiYoZT1hLnBvb2xlZENhY2hlLGUhPW51bGwmJihhLnBvb2xlZENhY2hlPW51bGwsdWYoZSkpKX1mdW5jdGlvbiBzZCgpe3JldHVybiBZcCgpLGpwKCksS3AoKSxXcCgpfWZ1bmN0aW9uIFdwKCl7aWYobWEhPT01KXJldHVybiExO3ZhciBhPWh0LGU9Zmk7Zmk9MDt2YXIgdD12aShOZSksbD1ELlQsdT1QLnA7dHJ5e1AucD0zMj50PzMyOnQsRC5UPW51bGwsdD1vaSxvaT1udWxsO3ZhciBmPWh0LG89TmU7aWYobWE9MCxIbD1odD1udWxsLE5lPTAsKF8mNikhPT0wKXRocm93IEVycm9yKEMoMzMxKSk7dmFyIGQ9XztpZihffD00LHpwKGYuY3VycmVudCkscXAoZixmLmN1cnJlbnQsbyx0KSxfPWQsZGYoMCwhMSksVmEmJnR5cGVvZiBWYS5vblBvc3RDb21taXRGaWJlclJvb3Q9PSJmdW5jdGlvbiIpdHJ5e1ZhLm9uUG9zdENvbW1pdEZpYmVyUm9vdCgkdSxmKX1jYXRjaHt9cmV0dXJuITB9ZmluYWxseXtQLnA9dSxELlQ9bCxKcChhLGUpfX1mdW5jdGlvbiBzYyhhLGUsdCl7ZT1sZSh0LGUpLGU9YWkoYS5zdGF0ZU5vZGUsZSwyKSxhPXB0KGEsZSwyKSxhIT09bnVsbCYmKGVmKGEsMiksSWUoYSkpfWZ1bmN0aW9uIFYoYSxlLHQpe2lmKGEudGFnPT09MylzYyhhLGEsdCk7ZWxzZSBmb3IoO2UhPT1udWxsOyl7aWYoZS50YWc9PT0zKXtzYyhlLGEsdCk7YnJlYWt9ZWxzZSBpZihlLnRhZz09PTEpe3ZhciBsPWUuc3RhdGVOb2RlO2lmKHR5cGVvZiBlLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yPT0iZnVuY3Rpb24ifHx0eXBlb2YgbC5jb21wb25lbnREaWRDYXRjaD09ImZ1bmN0aW9uIiYmKEx0PT09bnVsbHx8IUx0LmhhcyhsKSkpe2E9bGUodCxhKSx0PW1wKDIpLGw9cHQoZSx0LDIpLGwhPT1udWxsJiYocHAodCxsLGUsYSksZWYobCwyKSxJZShsKSk7YnJlYWt9fWU9ZS5yZXR1cm59fWZ1bmN0aW9uIFNzKGEsZSx0KXt2YXIgbD1hLnBpbmdDYWNoZTtpZihsPT09bnVsbCl7bD1hLnBpbmdDYWNoZT1uZXcgSng7dmFyIHU9bmV3IFNldDtsLnNldChlLHUpfWVsc2UgdT1sLmdldChlKSx1PT09dm9pZCAwJiYodT1uZXcgU2V0LGwuc2V0KGUsdSkpO3UuaGFzKHQpfHwodW49ITAsdS5hZGQodCksYT10Uy5iaW5kKG51bGwsYSxlLHQpLGUudGhlbihhLGEpKX1mdW5jdGlvbiB0UyhhLGUsdCl7dmFyIGw9YS5waW5nQ2FjaGU7bCE9PW51bGwmJmwuZGVsZXRlKGUpLGEucGluZ2VkTGFuZXN8PWEuc3VzcGVuZGVkTGFuZXMmdCxhLndhcm1MYW5lcyY9fnQsWT09PWEmJihOJnQpPT09dCYmKG9hPT09NHx8b2E9PT0zJiYoTiY2MjkxNDU2MCk9PT1OJiYzMDA+WGEoKS1mZD8oXyYyKT09PTAmJk5sKGEsMCk6Zm58PXQsRWw9PT1OJiYoRWw9MCkpLEllKGEpfWZ1bmN0aW9uICRwKGEsZSl7ZT09PTAmJihlPVhjKCkpLGE9anQoYSxlKSxhIT09bnVsbCYmKGVmKGEsZSksSWUoYSkpfWZ1bmN0aW9uIGxTKGEpe3ZhciBlPWEubWVtb2l6ZWRTdGF0ZSx0PTA7ZSE9PW51bGwmJih0PWUucmV0cnlMYW5lKSwkcChhLHQpfWZ1bmN0aW9uIHVTKGEsZSl7dmFyIHQ9MDtzd2l0Y2goYS50YWcpe2Nhc2UgMzE6Y2FzZSAxMzp2YXIgbD1hLnN0YXRlTm9kZSx1PWEubWVtb2l6ZWRTdGF0ZTt1IT09bnVsbCYmKHQ9dS5yZXRyeUxhbmUpO2JyZWFrO2Nhc2UgMTk6bD1hLnN0YXRlTm9kZTticmVhaztjYXNlIDIyOmw9YS5zdGF0ZU5vZGUuX3JldHJ5Q2FjaGU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihDKDMxNCkpfWwhPT1udWxsJiZsLmRlbGV0ZShlKSwkcChhLHQpfWZ1bmN0aW9uIGZTKGEsZSl7cmV0dXJuIElpKGEsZSl9dmFyIE5vPW51bGwscmw9bnVsbCxzaT0hMSxGbz0hMSxncz0hMSxudD0wO2Z1bmN0aW9uIEllKGEpe2EhPT1ybCYmYS5uZXh0PT09bnVsbCYmKHJsPT09bnVsbD9Obz1ybD1hOnJsPXJsLm5leHQ9YSksRm89ITAsc2l8fChzaT0hMCxkUygpKX1mdW5jdGlvbiBkZihhLGUpe2lmKCFncyYmRm8pe2dzPSEwO2RvIGZvcih2YXIgdD0hMSxsPU5vO2whPT1udWxsOyl7aWYoIWUpaWYoYSE9PTApe3ZhciB1PWwucGVuZGluZ0xhbmVzO2lmKHU9PT0wKXZhciBmPTA7ZWxzZXt2YXIgbz1sLnN1c3BlbmRlZExhbmVzLGQ9bC5waW5nZWRMYW5lcztmPSgxPDwzMS1aYSg0MnxhKSsxKS0xLGYmPXUmfihvJn5kKSxmPWYmMjAxMzI2NzQxP2YmMjAxMzI2NzQxfDE6Zj9mfDI6MH1mIT09MCYmKHQ9ITAsaWMobCxmKSl9ZWxzZSBmPU4sZj1ZbyhsLGw9PT1ZP2Y6MCxsLmNhbmNlbFBlbmRpbmdDb21taXQhPT1udWxsfHxsLnRpbWVvdXRIYW5kbGUhPT0tMSksKGYmMyk9PT0wfHxhZihsLGYpfHwodD0hMCxpYyhsLGYpKTtsPWwubmV4dH13aGlsZSh0KTtncz0hMX19ZnVuY3Rpb24gb1MoKXthTCgpfWZ1bmN0aW9uIGFMKCl7Rm89c2k9ITE7dmFyIGE9MDtudCE9PTAmJkxTKCkmJihhPW50KTtmb3IodmFyIGU9WGEoKSx0PW51bGwsbD1ObztsIT09bnVsbDspe3ZhciB1PWwubmV4dCxmPWVMKGwsZSk7Zj09PTA/KGwubmV4dD1udWxsLHQ9PT1udWxsP05vPXU6dC5uZXh0PXUsdT09PW51bGwmJihybD10KSk6KHQ9bCwoYSE9PTB8fChmJjMpIT09MCkmJihGbz0hMCkpLGw9dX1tYSE9PTAmJm1hIT09NXx8ZGYoYSwhMSksbnQhPT0wJiYobnQ9MCl9ZnVuY3Rpb24gZUwoYSxlKXtmb3IodmFyIHQ9YS5zdXNwZW5kZWRMYW5lcyxsPWEucGluZ2VkTGFuZXMsdT1hLmV4cGlyYXRpb25UaW1lcyxmPWEucGVuZGluZ0xhbmVzJi02MjkxNDU2MTswPGY7KXt2YXIgbz0zMS1aYShmKSxkPTE8PG8saT11W29dO2k9PT0tMT8oKGQmdCk9PT0wfHwoZCZsKSE9PTApJiYodVtvXT1xaChkLGUpKTppPD1lJiYoYS5leHBpcmVkTGFuZXN8PWQpLGYmPX5kfWlmKGU9WSx0PU4sdD1ZbyhhLGE9PT1lP3Q6MCxhLmNhbmNlbFBlbmRpbmdDb21taXQhPT1udWxsfHxhLnRpbWVvdXRIYW5kbGUhPT0tMSksbD1hLmNhbGxiYWNrTm9kZSx0PT09MHx8YT09PWUmJihYPT09Mnx8WD09PTkpfHxhLmNhbmNlbFBlbmRpbmdDb21taXQhPT1udWxsKXJldHVybiBsIT09bnVsbCYmbCE9PW51bGwmJllkKGwpLGEuY2FsbGJhY2tOb2RlPW51bGwsYS5jYWxsYmFja1ByaW9yaXR5PTA7aWYoKHQmMyk9PT0wfHxhZihhLHQpKXtpZihlPXQmLXQsZT09PWEuY2FsbGJhY2tQcmlvcml0eSlyZXR1cm4gZTtzd2l0Y2gobCE9PW51bGwmJllkKGwpLHZpKHQpKXtjYXNlIDI6Y2FzZSA4OnQ9X2M7YnJlYWs7Y2FzZSAzMjp0PXlvO2JyZWFrO2Nhc2UgMjY4NDM1NDU2OnQ9UGM7YnJlYWs7ZGVmYXVsdDp0PXlvfXJldHVybiBsPXRMLmJpbmQobnVsbCxhKSx0PUlpKHQsbCksYS5jYWxsYmFja1ByaW9yaXR5PWUsYS5jYWxsYmFja05vZGU9dCxlfXJldHVybiBsIT09bnVsbCYmbCE9PW51bGwmJllkKGwpLGEuY2FsbGJhY2tQcmlvcml0eT0yLGEuY2FsbGJhY2tOb2RlPW51bGwsMn1mdW5jdGlvbiB0TChhLGUpe2lmKG1hIT09MCYmbWEhPT01KXJldHVybiBhLmNhbGxiYWNrTm9kZT1udWxsLGEuY2FsbGJhY2tQcmlvcml0eT0wLG51bGw7dmFyIHQ9YS5jYWxsYmFja05vZGU7aWYoc2QoKSYmYS5jYWxsYmFja05vZGUhPT10KXJldHVybiBudWxsO3ZhciBsPU47cmV0dXJuIGw9WW8oYSxhPT09WT9sOjAsYS5jYW5jZWxQZW5kaW5nQ29tbWl0IT09bnVsbHx8YS50aW1lb3V0SGFuZGxlIT09LTEpLGw9PT0wP251bGw6KEdwKGEsbCxlKSxlTChhLFhhKCkpLGEuY2FsbGJhY2tOb2RlIT1udWxsJiZhLmNhbGxiYWNrTm9kZT09PXQ/dEwuYmluZChudWxsLGEpOm51bGwpfWZ1bmN0aW9uIGljKGEsZSl7aWYoc2QoKSlyZXR1cm4gbnVsbDtHcChhLGUsITApfWZ1bmN0aW9uIGRTKCl7eFMoZnVuY3Rpb24oKXsoXyY2KSE9PTA/SWkoR2Msb1MpOmFMKCl9KX1mdW5jdGlvbiBkbigpe2lmKG50PT09MCl7dmFyIGE9T2w7YT09PTAmJihhPUZmLEZmPDw9MSwoRmYmMjYxODg4KT09PTAmJihGZj0yNTYpKSxudD1hfXJldHVybiBudH1mdW5jdGlvbiBuYyhhKXtyZXR1cm4gYT09bnVsbHx8dHlwZW9mIGE9PSJzeW1ib2wifHx0eXBlb2YgYT09ImJvb2xlYW4iP251bGw6dHlwZW9mIGE9PSJmdW5jdGlvbiI/YTp1bygiIithKX1mdW5jdGlvbiByYyhhLGUpe3ZhciB0PWUub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3JldHVybiB0Lm5hbWU9ZS5uYW1lLHQudmFsdWU9ZS52YWx1ZSxhLmlkJiZ0LnNldEF0dHJpYnV0ZSgiZm9ybSIsYS5pZCksZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LGUpLGE9bmV3IEZvcm1EYXRhKGEpLHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSxhfWZ1bmN0aW9uIHNTKGEsZSx0LGwsdSl7aWYoZT09PSJzdWJtaXQiJiZ0JiZ0LnN0YXRlTm9kZT09PXUpe3ZhciBmPW5jKCh1W1VhXXx8bnVsbCkuYWN0aW9uKSxvPWwuc3VibWl0dGVyO28mJihlPShlPW9bVWFdfHxudWxsKT9uYyhlLmZvcm1BY3Rpb24pOm8uZ2V0QXR0cmlidXRlKCJmb3JtQWN0aW9uIiksZSE9PW51bGwmJihmPWUsbz1udWxsKSk7dmFyIGQ9bmV3IGpvKCJhY3Rpb24iLCJhY3Rpb24iLG51bGwsbCx1KTthLnB1c2goe2V2ZW50OmQsbGlzdGVuZXJzOlt7aW5zdGFuY2U6bnVsbCxsaXN0ZW5lcjpmdW5jdGlvbigpe2lmKGwuZGVmYXVsdFByZXZlbnRlZCl7aWYobnQhPT0wKXt2YXIgaT1vP3JjKHUsbyk6bmV3IEZvcm1EYXRhKHUpO1dzKHQse3BlbmRpbmc6ITAsZGF0YTppLG1ldGhvZDp1Lm1ldGhvZCxhY3Rpb246Zn0sbnVsbCxpKX19ZWxzZSB0eXBlb2YgZj09ImZ1bmN0aW9uIiYmKGQucHJldmVudERlZmF1bHQoKSxpPW8/cmModSxvKTpuZXcgRm9ybURhdGEodSksV3ModCx7cGVuZGluZzohMCxkYXRhOmksbWV0aG9kOnUubWV0aG9kLGFjdGlvbjpmfSxmLGkpKX0sY3VycmVudFRhcmdldDp1fV19KX19Zm9yKFdmPTA7V2Y8RnMubGVuZ3RoO1dmKyspJGY9RnNbV2ZdLGNjPSRmLnRvTG93ZXJDYXNlKCksbWM9JGZbMF0udG9VcHBlckNhc2UoKSskZi5zbGljZSgxKSxjZShjYywib24iK21jKTt2YXIgJGYsY2MsbWMsV2Y7Y2UocG0sIm9uQW5pbWF0aW9uRW5kIik7Y2UoTG0sIm9uQW5pbWF0aW9uSXRlcmF0aW9uIik7Y2UoaG0sIm9uQW5pbWF0aW9uU3RhcnQiKTtjZSgiZGJsY2xpY2siLCJvbkRvdWJsZUNsaWNrIik7Y2UoImZvY3VzaW4iLCJvbkZvY3VzIik7Y2UoImZvY3Vzb3V0Iiwib25CbHVyIik7Y2UoTXgsIm9uVHJhbnNpdGlvblJ1biIpO2NlKER4LCJvblRyYW5zaXRpb25TdGFydCIpO2NlKFR4LCJvblRyYW5zaXRpb25DYW5jZWwiKTtjZSh4bSwib25UcmFuc2l0aW9uRW5kIik7UmwoIm9uTW91c2VFbnRlciIsWyJtb3VzZW91dCIsIm1vdXNlb3ZlciJdKTtSbCgib25Nb3VzZUxlYXZlIixbIm1vdXNlb3V0IiwibW91c2VvdmVyIl0pO1JsKCJvblBvaW50ZXJFbnRlciIsWyJwb2ludGVyb3V0IiwicG9pbnRlcm92ZXIiXSk7UmwoIm9uUG9pbnRlckxlYXZlIixbInBvaW50ZXJvdXQiLCJwb2ludGVyb3ZlciJdKTtadCgib25DaGFuZ2UiLCJjaGFuZ2UgY2xpY2sgZm9jdXNpbiBmb2N1c291dCBpbnB1dCBrZXlkb3duIGtleXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoIiAiKSk7WnQoIm9uU2VsZWN0IiwiZm9jdXNvdXQgY29udGV4dG1lbnUgZHJhZ2VuZCBmb2N1c2luIGtleWRvd24ga2V5dXAgbW91c2Vkb3duIG1vdXNldXAgc2VsZWN0aW9uY2hhbmdlIi5zcGxpdCgiICIpKTtadCgib25CZWZvcmVJbnB1dCIsWyJjb21wb3NpdGlvbmVuZCIsImtleXByZXNzIiwidGV4dElucHV0IiwicGFzdGUiXSk7WnQoIm9uQ29tcG9zaXRpb25FbmQiLCJjb21wb3NpdGlvbmVuZCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIuc3BsaXQoIiAiKSk7WnQoIm9uQ29tcG9zaXRpb25TdGFydCIsImNvbXBvc2l0aW9uc3RhcnQgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd24iLnNwbGl0KCIgIikpO1p0KCJvbkNvbXBvc2l0aW9uVXBkYXRlIiwiY29tcG9zaXRpb251cGRhdGUgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd24iLnNwbGl0KCIgIikpO3ZhciBRdT0iYWJvcnQgY2FucGxheSBjYW5wbGF5dGhyb3VnaCBkdXJhdGlvbmNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBsb2FkZWRkYXRhIGxvYWRlZG1ldGFkYXRhIGxvYWRzdGFydCBwYXVzZSBwbGF5IHBsYXlpbmcgcHJvZ3Jlc3MgcmF0ZWNoYW5nZSByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdXNwZW5kIHRpbWV1cGRhdGUgdm9sdW1lY2hhbmdlIHdhaXRpbmciLnNwbGl0KCIgIiksaVM9bmV3IFNldCgiYmVmb3JldG9nZ2xlIGNhbmNlbCBjbG9zZSBpbnZhbGlkIGxvYWQgc2Nyb2xsIHNjcm9sbGVuZCB0b2dnbGUiLnNwbGl0KCIgIikuY29uY2F0KFF1KSk7ZnVuY3Rpb24gbEwoYSxlKXtlPShlJjQpIT09MDtmb3IodmFyIHQ9MDt0PGEubGVuZ3RoO3QrKyl7dmFyIGw9YVt0XSx1PWwuZXZlbnQ7bD1sLmxpc3RlbmVyczthOnt2YXIgZj12b2lkIDA7aWYoZSlmb3IodmFyIG89bC5sZW5ndGgtMTswPD1vO28tLSl7dmFyIGQ9bFtvXSxpPWQuaW5zdGFuY2UsbT1kLmN1cnJlbnRUYXJnZXQ7aWYoZD1kLmxpc3RlbmVyLGkhPT1mJiZ1LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgYTtmPWQsdS5jdXJyZW50VGFyZ2V0PW07dHJ5e2YodSl9Y2F0Y2goeCl7QW8oeCl9dS5jdXJyZW50VGFyZ2V0PW51bGwsZj1pfWVsc2UgZm9yKG89MDtvPGwubGVuZ3RoO28rKyl7aWYoZD1sW29dLGk9ZC5pbnN0YW5jZSxtPWQuY3VycmVudFRhcmdldCxkPWQubGlzdGVuZXIsaSE9PWYmJnUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVhayBhO2Y9ZCx1LmN1cnJlbnRUYXJnZXQ9bTt0cnl7Zih1KX1jYXRjaCh4KXtBbyh4KX11LmN1cnJlbnRUYXJnZXQ9bnVsbCxmPWl9fX19ZnVuY3Rpb24gRShhLGUpe3ZhciB0PWVbUnNdO3Q9PT12b2lkIDAmJih0PWVbUnNdPW5ldyBTZXQpO3ZhciBsPWErIl9fYnViYmxlIjt0LmhhcyhsKXx8KHVMKGUsYSwyLCExKSx0LmFkZChsKSl9ZnVuY3Rpb24gQ3MoYSxlLHQpe3ZhciBsPTA7ZSYmKGx8PTQpLHVMKHQsYSxsLGUpfXZhciBhbz0iX3JlYWN0TGlzdGVuaW5nIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKTtmdW5jdGlvbiBzbihhKXtpZighYVthb10pe2FbYW9dPSEwLGpjLmZvckVhY2goZnVuY3Rpb24odCl7dCE9PSJzZWxlY3Rpb25jaGFuZ2UiJiYoaVMuaGFzKHQpfHxDcyh0LCExLGEpLENzKHQsITAsYSkpfSk7dmFyIGU9YS5ub2RlVHlwZT09PTk/YTphLm93bmVyRG9jdW1lbnQ7ZT09PW51bGx8fGVbYW9dfHwoZVthb109ITAsQ3MoInNlbGVjdGlvbmNoYW5nZSIsITEsZSkpfX1mdW5jdGlvbiB1TChhLGUsdCxsKXtzd2l0Y2goeEwoZSkpe2Nhc2UgMjp2YXIgdT1FUzticmVhaztjYXNlIDg6dT1IUzticmVhaztkZWZhdWx0OnU9bW59dD11LmJpbmQobnVsbCxlLHQsYSksdT12b2lkIDAsIUVzfHxlIT09InRvdWNoc3RhcnQiJiZlIT09InRvdWNobW92ZSImJmUhPT0id2hlZWwifHwodT0hMCksbD91IT09dm9pZCAwP2EuYWRkRXZlbnRMaXN0ZW5lcihlLHQse2NhcHR1cmU6ITAscGFzc2l2ZTp1fSk6YS5hZGRFdmVudExpc3RlbmVyKGUsdCwhMCk6dSE9PXZvaWQgMD9hLmFkZEV2ZW50TGlzdGVuZXIoZSx0LHtwYXNzaXZlOnV9KTphLmFkZEV2ZW50TGlzdGVuZXIoZSx0LCExKX1mdW5jdGlvbiBJcyhhLGUsdCxsLHUpe3ZhciBmPWw7aWYoKGUmMSk9PT0wJiYoZSYyKT09PTAmJmwhPT1udWxsKWE6Zm9yKDs7KXtpZihsPT09bnVsbClyZXR1cm47dmFyIG89bC50YWc7aWYobz09PTN8fG89PT00KXt2YXIgZD1sLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO2lmKGQ9PT11KWJyZWFrO2lmKG89PT00KWZvcihvPWwucmV0dXJuO28hPT1udWxsOyl7dmFyIGk9by50YWc7aWYoKGk9PT0zfHxpPT09NCkmJm8uc3RhdGVOb2RlLmNvbnRhaW5lckluZm89PT11KXJldHVybjtvPW8ucmV0dXJufWZvcig7ZCE9PW51bGw7KXtpZihvPXBsKGQpLG89PT1udWxsKXJldHVybjtpZihpPW8udGFnLGk9PT01fHxpPT09Nnx8aT09PTI2fHxpPT09Mjcpe2w9Zj1vO2NvbnRpbnVlIGF9ZD1kLnBhcmVudE5vZGV9fWw9bC5yZXR1cm59bG0oZnVuY3Rpb24oKXt2YXIgbT1mLHg9TWkodCksZz1bXTthOnt2YXIgTD1TbS5nZXQoYSk7aWYoTCE9PXZvaWQgMCl7dmFyIGg9am8seT1hO3N3aXRjaChhKXtjYXNlImtleXByZXNzIjppZihvbyh0KT09PTApYnJlYWsgYTtjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOmg9dXg7YnJlYWs7Y2FzZSJmb2N1c2luIjp5PSJmb2N1cyIsaD0kZDticmVhaztjYXNlImZvY3Vzb3V0Ijp5PSJibHVyIixoPSRkO2JyZWFrO2Nhc2UiYmVmb3JlYmx1ciI6Y2FzZSJhZnRlcmJsdXIiOmg9JGQ7YnJlYWs7Y2FzZSJjbGljayI6aWYodC5idXR0b249PT0yKWJyZWFrIGE7Y2FzZSJhdXhjbGljayI6Y2FzZSJkYmxjbGljayI6Y2FzZSJtb3VzZWRvd24iOmNhc2UibW91c2Vtb3ZlIjpjYXNlIm1vdXNldXAiOmNhc2UibW91c2VvdXQiOmNhc2UibW91c2VvdmVyIjpjYXNlImNvbnRleHRtZW51IjpoPUNyO2JyZWFrO2Nhc2UiZHJhZyI6Y2FzZSJkcmFnZW5kIjpjYXNlImRyYWdlbnRlciI6Y2FzZSJkcmFnZXhpdCI6Y2FzZSJkcmFnbGVhdmUiOmNhc2UiZHJhZ292ZXIiOmNhc2UiZHJhZ3N0YXJ0IjpjYXNlImRyb3AiOmg9Wmg7YnJlYWs7Y2FzZSJ0b3VjaGNhbmNlbCI6Y2FzZSJ0b3VjaGVuZCI6Y2FzZSJ0b3VjaG1vdmUiOmNhc2UidG91Y2hzdGFydCI6aD1keDticmVhaztjYXNlIHBtOmNhc2UgTG06Y2FzZSBobTpoPWpoO2JyZWFrO2Nhc2UgeG06aD1peDticmVhaztjYXNlInNjcm9sbCI6Y2FzZSJzY3JvbGxlbmQiOmg9WGg7YnJlYWs7Y2FzZSJ3aGVlbCI6aD1yeDticmVhaztjYXNlImNvcHkiOmNhc2UiY3V0IjpjYXNlInBhc3RlIjpoPUpoO2JyZWFrO2Nhc2UiZ290cG9pbnRlcmNhcHR1cmUiOmNhc2UibG9zdHBvaW50ZXJjYXB0dXJlIjpjYXNlInBvaW50ZXJjYW5jZWwiOmNhc2UicG9pbnRlcmRvd24iOmNhc2UicG9pbnRlcm1vdmUiOmNhc2UicG9pbnRlcm91dCI6Y2FzZSJwb2ludGVyb3ZlciI6Y2FzZSJwb2ludGVydXAiOmg9eXI7YnJlYWs7Y2FzZSJ0b2dnbGUiOmNhc2UiYmVmb3JldG9nZ2xlIjpoPW14fXZhciBiPShlJjQpIT09MCxHPSFiJiYoYT09PSJzY3JvbGwifHxhPT09InNjcm9sbGVuZCIpLGM9Yj9MIT09bnVsbD9MKyJDYXB0dXJlIjpudWxsOkw7Yj1bXTtmb3IodmFyIHI9bSxwO3IhPT1udWxsOyl7dmFyIFM9cjtpZihwPVMuc3RhdGVOb2RlLFM9Uy50YWcsUyE9PTUmJlMhPT0yNiYmUyE9PTI3fHxwPT09bnVsbHx8Yz09PW51bGx8fChTPU51KHIsYyksUyE9bnVsbCYmYi5wdXNoKFl1KHIsUyxwKSkpLEcpYnJlYWs7cj1yLnJldHVybn0wPGIubGVuZ3RoJiYoTD1uZXcgaChMLHksbnVsbCx0LHgpLGcucHVzaCh7ZXZlbnQ6TCxsaXN0ZW5lcnM6Yn0pKX19aWYoKGUmNyk9PT0wKXthOntpZihMPWE9PT0ibW91c2VvdmVyInx8YT09PSJwb2ludGVyb3ZlciIsaD1hPT09Im1vdXNlb3V0Inx8YT09PSJwb2ludGVyb3V0IixMJiZ0IT09enMmJih5PXQucmVsYXRlZFRhcmdldHx8dC5mcm9tRWxlbWVudCkmJihwbCh5KXx8eVtfbF0pKWJyZWFrIGE7aWYoKGh8fEwpJiYoTD14LndpbmRvdz09PXg/eDooTD14Lm93bmVyRG9jdW1lbnQpP0wuZGVmYXVsdFZpZXd8fEwucGFyZW50V2luZG93OndpbmRvdyxoPyh5PXQucmVsYXRlZFRhcmdldHx8dC50b0VsZW1lbnQsaD1tLHk9eT9wbCh5KTpudWxsLHkhPT1udWxsJiYoRz1XdSh5KSxiPXkudGFnLHkhPT1HfHxiIT09NSYmYiE9PTI3JiZiIT09NikmJih5PW51bGwpKTooaD1udWxsLHk9bSksaCE9PXkpKXtpZihiPUNyLFM9Im9uTW91c2VMZWF2ZSIsYz0ib25Nb3VzZUVudGVyIixyPSJtb3VzZSIsKGE9PT0icG9pbnRlcm91dCJ8fGE9PT0icG9pbnRlcm92ZXIiKSYmKGI9eXIsUz0ib25Qb2ludGVyTGVhdmUiLGM9Im9uUG9pbnRlckVudGVyIixyPSJwb2ludGVyIiksRz1oPT1udWxsP0w6eXUoaCkscD15PT1udWxsP0w6eXUoeSksTD1uZXcgYihTLHIrImxlYXZlIixoLHQseCksTC50YXJnZXQ9RyxMLnJlbGF0ZWRUYXJnZXQ9cCxTPW51bGwscGwoeCk9PT1tJiYoYj1uZXcgYihjLHIrImVudGVyIix5LHQseCksYi50YXJnZXQ9cCxiLnJlbGF0ZWRUYXJnZXQ9RyxTPWIpLEc9UyxoJiZ5KWU6e2ZvcihiPW5TLGM9aCxyPXkscD0wLFM9YztTO1M9YihTKSlwKys7Uz0wO2Zvcih2YXIgTT1yO007TT1iKE0pKVMrKztmb3IoOzA8cC1TOyljPWIoYykscC0tO2Zvcig7MDxTLXA7KXI9YihyKSxTLS07Zm9yKDtwLS07KXtpZihjPT09cnx8ciE9PW51bGwmJmM9PT1yLmFsdGVybmF0ZSl7Yj1jO2JyZWFrIGV9Yz1iKGMpLHI9YihyKX1iPW51bGx9ZWxzZSBiPW51bGw7aCE9PW51bGwmJnBjKGcsTCxoLGIsITEpLHkhPT1udWxsJiZHIT09bnVsbCYmcGMoZyxHLHksYiwhMCl9fWE6e2lmKEw9bT95dShtKTp3aW5kb3csaD1MLm5vZGVOYW1lJiZMLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksaD09PSJzZWxlY3QifHxoPT09ImlucHV0IiYmTC50eXBlPT09ImZpbGUiKXZhciBVPU1yO2Vsc2UgaWYoYnIoTCkpaWYoaW0pVT12eDtlbHNle1U9SXg7dmFyIEE9Q3h9ZWxzZSBoPUwubm9kZU5hbWUsIWh8fGgudG9Mb3dlckNhc2UoKSE9PSJpbnB1dCJ8fEwudHlwZSE9PSJjaGVja2JveCImJkwudHlwZSE9PSJyYWRpbyI/bSYmYmkobS5lbGVtZW50VHlwZSkmJihVPU1yKTpVPXl4O2lmKFUmJihVPVUoYSxtKSkpe3NtKGcsVSx0LHgpO2JyZWFrIGF9QSYmQShhLEwsbSksYT09PSJmb2N1c291dCImJm0mJkwudHlwZT09PSJudW1iZXIiJiZtLm1lbW9pemVkUHJvcHMudmFsdWUhPW51bGwmJlVzKEwsIm51bWJlciIsTC52YWx1ZSl9c3dpdGNoKEE9bT95dShtKTp3aW5kb3csYSl7Y2FzZSJmb2N1c2luIjooYnIoQSl8fEEuY29udGVudEVkaXRhYmxlPT09InRydWUiKSYmKHhsPUEsSHM9bSxEdT1udWxsKTticmVhaztjYXNlImZvY3Vzb3V0IjpEdT1Icz14bD1udWxsO2JyZWFrO2Nhc2UibW91c2Vkb3duIjpOcz0hMDticmVhaztjYXNlImNvbnRleHRtZW51IjpjYXNlIm1vdXNldXAiOmNhc2UiZHJhZ2VuZCI6TnM9ITEsa3IoZyx0LHgpO2JyZWFrO2Nhc2Uic2VsZWN0aW9uY2hhbmdlIjppZihieClicmVhaztjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOmtyKGcsdCx4KX12YXIgVDtpZihCaSlhOntzd2l0Y2goYSl7Y2FzZSJjb21wb3NpdGlvbnN0YXJ0Ijp2YXIgcT0ib25Db21wb3NpdGlvblN0YXJ0IjticmVhayBhO2Nhc2UiY29tcG9zaXRpb25lbmQiOnE9Im9uQ29tcG9zaXRpb25FbmQiO2JyZWFrIGE7Y2FzZSJjb21wb3NpdGlvbnVwZGF0ZSI6cT0ib25Db21wb3NpdGlvblVwZGF0ZSI7YnJlYWsgYX1xPXZvaWQgMH1lbHNlIGhsP29tKGEsdCkmJihxPSJvbkNvbXBvc2l0aW9uRW5kIik6YT09PSJrZXlkb3duIiYmdC5rZXlDb2RlPT09MjI5JiYocT0ib25Db21wb3NpdGlvblN0YXJ0Iik7cSYmKGZtJiZ0LmxvY2FsZSE9PSJrbyImJihobHx8cSE9PSJvbkNvbXBvc2l0aW9uU3RhcnQiP3E9PT0ib25Db21wb3NpdGlvbkVuZCImJmhsJiYoVD11bSgpKTooZHQ9eCxEaT0idmFsdWUiaW4gZHQ/ZHQudmFsdWU6ZHQudGV4dENvbnRlbnQsaGw9ITApKSxBPUdvKG0scSksMDxBLmxlbmd0aCYmKHE9bmV3IElyKHEsYSxudWxsLHQseCksZy5wdXNoKHtldmVudDpxLGxpc3RlbmVyczpBfSksVD9xLmRhdGE9VDooVD1kbSh0KSxUIT09bnVsbCYmKHEuZGF0YT1UKSkpKSwoVD1MeD9oeChhLHQpOnh4KGEsdCkpJiYocT1HbyhtLCJvbkJlZm9yZUlucHV0IiksMDxxLmxlbmd0aCYmKEE9bmV3IElyKCJvbkJlZm9yZUlucHV0IiwiYmVmb3JlaW5wdXQiLG51bGwsdCx4KSxnLnB1c2goe2V2ZW50OkEsbGlzdGVuZXJzOnF9KSxBLmRhdGE9VCkpLHNTKGcsYSxtLHQseCl9bEwoZyxlKX0pfWZ1bmN0aW9uIFl1KGEsZSx0KXtyZXR1cm57aW5zdGFuY2U6YSxsaXN0ZW5lcjplLGN1cnJlbnRUYXJnZXQ6dH19ZnVuY3Rpb24gR28oYSxlKXtmb3IodmFyIHQ9ZSsiQ2FwdHVyZSIsbD1bXTthIT09bnVsbDspe3ZhciB1PWEsZj11LnN0YXRlTm9kZTtpZih1PXUudGFnLHUhPT01JiZ1IT09MjYmJnUhPT0yN3x8Zj09PW51bGx8fCh1PU51KGEsdCksdSE9bnVsbCYmbC51bnNoaWZ0KFl1KGEsdSxmKSksdT1OdShhLGUpLHUhPW51bGwmJmwucHVzaChZdShhLHUsZikpKSxhLnRhZz09PTMpcmV0dXJuIGw7YT1hLnJldHVybn1yZXR1cm5bXX1mdW5jdGlvbiBuUyhhKXtpZihhPT09bnVsbClyZXR1cm4gbnVsbDtkbyBhPWEucmV0dXJuO3doaWxlKGEmJmEudGFnIT09NSYmYS50YWchPT0yNyk7cmV0dXJuIGF8fG51bGx9ZnVuY3Rpb24gcGMoYSxlLHQsbCx1KXtmb3IodmFyIGY9ZS5fcmVhY3ROYW1lLG89W107dCE9PW51bGwmJnQhPT1sOyl7dmFyIGQ9dCxpPWQuYWx0ZXJuYXRlLG09ZC5zdGF0ZU5vZGU7aWYoZD1kLnRhZyxpIT09bnVsbCYmaT09PWwpYnJlYWs7ZCE9PTUmJmQhPT0yNiYmZCE9PTI3fHxtPT09bnVsbHx8KGk9bSx1PyhtPU51KHQsZiksbSE9bnVsbCYmby51bnNoaWZ0KFl1KHQsbSxpKSkpOnV8fChtPU51KHQsZiksbSE9bnVsbCYmby5wdXNoKFl1KHQsbSxpKSkpKSx0PXQucmV0dXJufW8ubGVuZ3RoIT09MCYmYS5wdXNoKHtldmVudDplLGxpc3RlbmVyczpvfSl9dmFyIHJTPS9cclxuPy9nLGNTPS9cdTAwMDB8XHVGRkZEL2c7ZnVuY3Rpb24gTGMoYSl7cmV0dXJuKHR5cGVvZiBhPT0ic3RyaW5nIj9hOiIiK2EpLnJlcGxhY2UoclMsYApgKS5yZXBsYWNlKGNTLCIiKX1mdW5jdGlvbiBmTChhLGUpe3JldHVybiBlPUxjKGUpLExjKGEpPT09ZX1mdW5jdGlvbiBaKGEsZSx0LGwsdSxmKXtzd2l0Y2godCl7Y2FzZSJjaGlsZHJlbiI6dHlwZW9mIGw9PSJzdHJpbmciP2U9PT0iYm9keSJ8fGU9PT0idGV4dGFyZWEiJiZsPT09IiJ8fHFsKGEsbCk6KHR5cGVvZiBsPT0ibnVtYmVyInx8dHlwZW9mIGw9PSJiaWdpbnQiKSYmZSE9PSJib2R5IiYmcWwoYSwiIitsKTticmVhaztjYXNlImNsYXNzTmFtZSI6UGYoYSwiY2xhc3MiLGwpO2JyZWFrO2Nhc2UidGFiSW5kZXgiOlBmKGEsInRhYmluZGV4IixsKTticmVhaztjYXNlImRpciI6Y2FzZSJyb2xlIjpjYXNlInZpZXdCb3giOmNhc2Uid2lkdGgiOmNhc2UiaGVpZ2h0IjpQZihhLHQsbCk7YnJlYWs7Y2FzZSJzdHlsZSI6dG0oYSxsLGYpO2JyZWFrO2Nhc2UiZGF0YSI6aWYoZSE9PSJvYmplY3QiKXtQZihhLCJkYXRhIixsKTticmVha31jYXNlInNyYyI6Y2FzZSJocmVmIjppZihsPT09IiImJihlIT09ImEifHx0IT09ImhyZWYiKSl7YS5yZW1vdmVBdHRyaWJ1dGUodCk7YnJlYWt9aWYobD09bnVsbHx8dHlwZW9mIGw9PSJmdW5jdGlvbiJ8fHR5cGVvZiBsPT0ic3ltYm9sInx8dHlwZW9mIGw9PSJib29sZWFuIil7YS5yZW1vdmVBdHRyaWJ1dGUodCk7YnJlYWt9bD11bygiIitsKSxhLnNldEF0dHJpYnV0ZSh0LGwpO2JyZWFrO2Nhc2UiYWN0aW9uIjpjYXNlImZvcm1BY3Rpb24iOmlmKHR5cGVvZiBsPT0iZnVuY3Rpb24iKXthLnNldEF0dHJpYnV0ZSh0LCJqYXZhc2NyaXB0OnRocm93IG5ldyBFcnJvcignQSBSZWFjdCBmb3JtIHdhcyB1bmV4cGVjdGVkbHkgc3VibWl0dGVkLiBJZiB5b3UgY2FsbGVkIGZvcm0uc3VibWl0KCkgbWFudWFsbHksIGNvbnNpZGVyIHVzaW5nIGZvcm0ucmVxdWVzdFN1Ym1pdCgpIGluc3RlYWQuIElmIHlvdVxcJ3JlIHRyeWluZyB0byB1c2UgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgaW4gYSBzdWJtaXQgZXZlbnQgaGFuZGxlciwgY29uc2lkZXIgYWxzbyBjYWxsaW5nIGV2ZW50LnByZXZlbnREZWZhdWx0KCkuJykiKTticmVha31lbHNlIHR5cGVvZiBmPT0iZnVuY3Rpb24iJiYodD09PSJmb3JtQWN0aW9uIj8oZSE9PSJpbnB1dCImJlooYSxlLCJuYW1lIix1Lm5hbWUsdSxudWxsKSxaKGEsZSwiZm9ybUVuY1R5cGUiLHUuZm9ybUVuY1R5cGUsdSxudWxsKSxaKGEsZSwiZm9ybU1ldGhvZCIsdS5mb3JtTWV0aG9kLHUsbnVsbCksWihhLGUsImZvcm1UYXJnZXQiLHUuZm9ybVRhcmdldCx1LG51bGwpKTooWihhLGUsImVuY1R5cGUiLHUuZW5jVHlwZSx1LG51bGwpLFooYSxlLCJtZXRob2QiLHUubWV0aG9kLHUsbnVsbCksWihhLGUsInRhcmdldCIsdS50YXJnZXQsdSxudWxsKSkpO2lmKGw9PW51bGx8fHR5cGVvZiBsPT0ic3ltYm9sInx8dHlwZW9mIGw9PSJib29sZWFuIil7YS5yZW1vdmVBdHRyaWJ1dGUodCk7YnJlYWt9bD11bygiIitsKSxhLnNldEF0dHJpYnV0ZSh0LGwpO2JyZWFrO2Nhc2Uib25DbGljayI6bCE9bnVsbCYmKGEub25jbGljaz1VZSk7YnJlYWs7Y2FzZSJvblNjcm9sbCI6bCE9bnVsbCYmRSgic2Nyb2xsIixhKTticmVhaztjYXNlIm9uU2Nyb2xsRW5kIjpsIT1udWxsJiZFKCJzY3JvbGxlbmQiLGEpO2JyZWFrO2Nhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKGwhPW51bGwpe2lmKHR5cGVvZiBsIT0ib2JqZWN0Inx8ISgiX19odG1sImluIGwpKXRocm93IEVycm9yKEMoNjEpKTtpZih0PWwuX19odG1sLHQhPW51bGwpe2lmKHUuY2hpbGRyZW4hPW51bGwpdGhyb3cgRXJyb3IoQyg2MCkpO2EuaW5uZXJIVE1MPXR9fWJyZWFrO2Nhc2UibXVsdGlwbGUiOmEubXVsdGlwbGU9bCYmdHlwZW9mIGwhPSJmdW5jdGlvbiImJnR5cGVvZiBsIT0ic3ltYm9sIjticmVhaztjYXNlIm11dGVkIjphLm11dGVkPWwmJnR5cGVvZiBsIT0iZnVuY3Rpb24iJiZ0eXBlb2YgbCE9InN5bWJvbCI7YnJlYWs7Y2FzZSJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmciOmNhc2Uic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIjpjYXNlImRlZmF1bHRWYWx1ZSI6Y2FzZSJkZWZhdWx0Q2hlY2tlZCI6Y2FzZSJpbm5lckhUTUwiOmNhc2UicmVmIjpicmVhaztjYXNlImF1dG9Gb2N1cyI6YnJlYWs7Y2FzZSJ4bGlua0hyZWYiOmlmKGw9PW51bGx8fHR5cGVvZiBsPT0iZnVuY3Rpb24ifHx0eXBlb2YgbD09ImJvb2xlYW4ifHx0eXBlb2YgbD09InN5bWJvbCIpe2EucmVtb3ZlQXR0cmlidXRlKCJ4bGluazpocmVmIik7YnJlYWt9dD11bygiIitsKSxhLnNldEF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieGxpbms6aHJlZiIsdCk7YnJlYWs7Y2FzZSJjb250ZW50RWRpdGFibGUiOmNhc2Uic3BlbGxDaGVjayI6Y2FzZSJkcmFnZ2FibGUiOmNhc2UidmFsdWUiOmNhc2UiYXV0b1JldmVyc2UiOmNhc2UiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCI6Y2FzZSJmb2N1c2FibGUiOmNhc2UicHJlc2VydmVBbHBoYSI6bCE9bnVsbCYmdHlwZW9mIGwhPSJmdW5jdGlvbiImJnR5cGVvZiBsIT0ic3ltYm9sIj9hLnNldEF0dHJpYnV0ZSh0LCIiK2wpOmEucmVtb3ZlQXR0cmlidXRlKHQpO2JyZWFrO2Nhc2UiaW5lcnQiOmNhc2UiYWxsb3dGdWxsU2NyZWVuIjpjYXNlImFzeW5jIjpjYXNlImF1dG9QbGF5IjpjYXNlImNvbnRyb2xzIjpjYXNlImRlZmF1bHQiOmNhc2UiZGVmZXIiOmNhc2UiZGlzYWJsZWQiOmNhc2UiZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUiOmNhc2UiZGlzYWJsZVJlbW90ZVBsYXliYWNrIjpjYXNlImZvcm1Ob1ZhbGlkYXRlIjpjYXNlImhpZGRlbiI6Y2FzZSJsb29wIjpjYXNlIm5vTW9kdWxlIjpjYXNlIm5vVmFsaWRhdGUiOmNhc2Uib3BlbiI6Y2FzZSJwbGF5c0lubGluZSI6Y2FzZSJyZWFkT25seSI6Y2FzZSJyZXF1aXJlZCI6Y2FzZSJyZXZlcnNlZCI6Y2FzZSJzY29wZWQiOmNhc2Uic2VhbWxlc3MiOmNhc2UiaXRlbVNjb3BlIjpsJiZ0eXBlb2YgbCE9ImZ1bmN0aW9uIiYmdHlwZW9mIGwhPSJzeW1ib2wiP2Euc2V0QXR0cmlidXRlKHQsIiIpOmEucmVtb3ZlQXR0cmlidXRlKHQpO2JyZWFrO2Nhc2UiY2FwdHVyZSI6Y2FzZSJkb3dubG9hZCI6bD09PSEwP2Euc2V0QXR0cmlidXRlKHQsIiIpOmwhPT0hMSYmbCE9bnVsbCYmdHlwZW9mIGwhPSJmdW5jdGlvbiImJnR5cGVvZiBsIT0ic3ltYm9sIj9hLnNldEF0dHJpYnV0ZSh0LGwpOmEucmVtb3ZlQXR0cmlidXRlKHQpO2JyZWFrO2Nhc2UiY29scyI6Y2FzZSJyb3dzIjpjYXNlInNpemUiOmNhc2Uic3BhbiI6bCE9bnVsbCYmdHlwZW9mIGwhPSJmdW5jdGlvbiImJnR5cGVvZiBsIT0ic3ltYm9sIiYmIWlzTmFOKGwpJiYxPD1sP2Euc2V0QXR0cmlidXRlKHQsbCk6YS5yZW1vdmVBdHRyaWJ1dGUodCk7YnJlYWs7Y2FzZSJyb3dTcGFuIjpjYXNlInN0YXJ0IjpsPT1udWxsfHx0eXBlb2YgbD09ImZ1bmN0aW9uInx8dHlwZW9mIGw9PSJzeW1ib2wifHxpc05hTihsKT9hLnJlbW92ZUF0dHJpYnV0ZSh0KTphLnNldEF0dHJpYnV0ZSh0LGwpO2JyZWFrO2Nhc2UicG9wb3ZlciI6RSgiYmVmb3JldG9nZ2xlIixhKSxFKCJ0b2dnbGUiLGEpLGxvKGEsInBvcG92ZXIiLGwpO2JyZWFrO2Nhc2UieGxpbmtBY3R1YXRlIjpEZShhLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieGxpbms6YWN0dWF0ZSIsbCk7YnJlYWs7Y2FzZSJ4bGlua0FyY3JvbGUiOkRlKGEsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bGluazphcmNyb2xlIixsKTticmVhaztjYXNlInhsaW5rUm9sZSI6RGUoYSwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhsaW5rOnJvbGUiLGwpO2JyZWFrO2Nhc2UieGxpbmtTaG93IjpEZShhLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieGxpbms6c2hvdyIsbCk7YnJlYWs7Y2FzZSJ4bGlua1RpdGxlIjpEZShhLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieGxpbms6dGl0bGUiLGwpO2JyZWFrO2Nhc2UieGxpbmtUeXBlIjpEZShhLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieGxpbms6dHlwZSIsbCk7YnJlYWs7Y2FzZSJ4bWxCYXNlIjpEZShhLCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLCJ4bWw6YmFzZSIsbCk7YnJlYWs7Y2FzZSJ4bWxMYW5nIjpEZShhLCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLCJ4bWw6bGFuZyIsbCk7YnJlYWs7Y2FzZSJ4bWxTcGFjZSI6RGUoYSwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOnNwYWNlIixsKTticmVhaztjYXNlImlzIjpsbyhhLCJpcyIsbCk7YnJlYWs7Y2FzZSJpbm5lclRleHQiOmNhc2UidGV4dENvbnRlbnQiOmJyZWFrO2RlZmF1bHQ6KCEoMjx0Lmxlbmd0aCl8fHRbMF0hPT0ibyImJnRbMF0hPT0iTyJ8fHRbMV0hPT0ibiImJnRbMV0hPT0iTiIpJiYodD1faC5nZXQodCl8fHQsbG8oYSx0LGwpKX19ZnVuY3Rpb24gaWkoYSxlLHQsbCx1LGYpe3N3aXRjaCh0KXtjYXNlInN0eWxlIjp0bShhLGwsZik7YnJlYWs7Y2FzZSJkYW5nZXJvdXNseVNldElubmVySFRNTCI6aWYobCE9bnVsbCl7aWYodHlwZW9mIGwhPSJvYmplY3QifHwhKCJfX2h0bWwiaW4gbCkpdGhyb3cgRXJyb3IoQyg2MSkpO2lmKHQ9bC5fX2h0bWwsdCE9bnVsbCl7aWYodS5jaGlsZHJlbiE9bnVsbCl0aHJvdyBFcnJvcihDKDYwKSk7YS5pbm5lckhUTUw9dH19YnJlYWs7Y2FzZSJjaGlsZHJlbiI6dHlwZW9mIGw9PSJzdHJpbmciP3FsKGEsbCk6KHR5cGVvZiBsPT0ibnVtYmVyInx8dHlwZW9mIGw9PSJiaWdpbnQiKSYmcWwoYSwiIitsKTticmVhaztjYXNlIm9uU2Nyb2xsIjpsIT1udWxsJiZFKCJzY3JvbGwiLGEpO2JyZWFrO2Nhc2Uib25TY3JvbGxFbmQiOmwhPW51bGwmJkUoInNjcm9sbGVuZCIsYSk7YnJlYWs7Y2FzZSJvbkNsaWNrIjpsIT1udWxsJiYoYS5vbmNsaWNrPVVlKTticmVhaztjYXNlInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyI6Y2FzZSJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmciOmNhc2UiaW5uZXJIVE1MIjpjYXNlInJlZiI6YnJlYWs7Y2FzZSJpbm5lclRleHQiOmNhc2UidGV4dENvbnRlbnQiOmJyZWFrO2RlZmF1bHQ6aWYoIUtjLmhhc093blByb3BlcnR5KHQpKWE6e2lmKHRbMF09PT0ibyImJnRbMV09PT0ibiImJih1PXQuZW5kc1dpdGgoIkNhcHR1cmUiKSxlPXQuc2xpY2UoMix1P3QubGVuZ3RoLTc6dm9pZCAwKSxmPWFbVWFdfHxudWxsLGY9ZiE9bnVsbD9mW3RdOm51bGwsdHlwZW9mIGY9PSJmdW5jdGlvbiImJmEucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLGYsdSksdHlwZW9mIGw9PSJmdW5jdGlvbiIpKXt0eXBlb2YgZiE9ImZ1bmN0aW9uIiYmZiE9PW51bGwmJih0IGluIGE/YVt0XT1udWxsOmEuaGFzQXR0cmlidXRlKHQpJiZhLnJlbW92ZUF0dHJpYnV0ZSh0KSksYS5hZGRFdmVudExpc3RlbmVyKGUsbCx1KTticmVhayBhfXQgaW4gYT9hW3RdPWw6bD09PSEwP2Euc2V0QXR0cmlidXRlKHQsIiIpOmxvKGEsdCxsKX19fWZ1bmN0aW9uIHZhKGEsZSx0KXtzd2l0Y2goZSl7Y2FzZSJkaXYiOmNhc2Uic3BhbiI6Y2FzZSJzdmciOmNhc2UicGF0aCI6Y2FzZSJhIjpjYXNlImciOmNhc2UicCI6Y2FzZSJsaSI6YnJlYWs7Y2FzZSJpbWciOkUoImVycm9yIixhKSxFKCJsb2FkIixhKTt2YXIgbD0hMSx1PSExLGY7Zm9yKGYgaW4gdClpZih0Lmhhc093blByb3BlcnR5KGYpKXt2YXIgbz10W2ZdO2lmKG8hPW51bGwpc3dpdGNoKGYpe2Nhc2Uic3JjIjpsPSEwO2JyZWFrO2Nhc2Uic3JjU2V0Ijp1PSEwO2JyZWFrO2Nhc2UiY2hpbGRyZW4iOmNhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOnRocm93IEVycm9yKEMoMTM3LGUpKTtkZWZhdWx0OlooYSxlLGYsbyx0LG51bGwpfX11JiZaKGEsZSwic3JjU2V0Iix0LnNyY1NldCx0LG51bGwpLGwmJlooYSxlLCJzcmMiLHQuc3JjLHQsbnVsbCk7cmV0dXJuO2Nhc2UiaW5wdXQiOkUoImludmFsaWQiLGEpO3ZhciBkPWY9bz11PW51bGwsaT1udWxsLG09bnVsbDtmb3IobCBpbiB0KWlmKHQuaGFzT3duUHJvcGVydHkobCkpe3ZhciB4PXRbbF07aWYoeCE9bnVsbClzd2l0Y2gobCl7Y2FzZSJuYW1lIjp1PXg7YnJlYWs7Y2FzZSJ0eXBlIjpvPXg7YnJlYWs7Y2FzZSJjaGVja2VkIjppPXg7YnJlYWs7Y2FzZSJkZWZhdWx0Q2hlY2tlZCI6bT14O2JyZWFrO2Nhc2UidmFsdWUiOmY9eDticmVhaztjYXNlImRlZmF1bHRWYWx1ZSI6ZD14O2JyZWFrO2Nhc2UiY2hpbGRyZW4iOmNhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKHghPW51bGwpdGhyb3cgRXJyb3IoQygxMzcsZSkpO2JyZWFrO2RlZmF1bHQ6WihhLGUsbCx4LHQsbnVsbCl9fSRjKGEsZixkLGksbSxvLHUsITEpO3JldHVybjtjYXNlInNlbGVjdCI6RSgiaW52YWxpZCIsYSksbD1vPWY9bnVsbDtmb3IodSBpbiB0KWlmKHQuaGFzT3duUHJvcGVydHkodSkmJihkPXRbdV0sZCE9bnVsbCkpc3dpdGNoKHUpe2Nhc2UidmFsdWUiOmY9ZDticmVhaztjYXNlImRlZmF1bHRWYWx1ZSI6bz1kO2JyZWFrO2Nhc2UibXVsdGlwbGUiOmw9ZDtkZWZhdWx0OlooYSxlLHUsZCx0LG51bGwpfWU9Zix0PW8sYS5tdWx0aXBsZT0hIWwsZSE9bnVsbD9ibChhLCEhbCxlLCExKTp0IT1udWxsJiZibChhLCEhbCx0LCEwKTtyZXR1cm47Y2FzZSJ0ZXh0YXJlYSI6RSgiaW52YWxpZCIsYSksZj11PWw9bnVsbDtmb3IobyBpbiB0KWlmKHQuaGFzT3duUHJvcGVydHkobykmJihkPXRbb10sZCE9bnVsbCkpc3dpdGNoKG8pe2Nhc2UidmFsdWUiOmw9ZDticmVhaztjYXNlImRlZmF1bHRWYWx1ZSI6dT1kO2JyZWFrO2Nhc2UiY2hpbGRyZW4iOmY9ZDticmVhaztjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZihkIT1udWxsKXRocm93IEVycm9yKEMoOTEpKTticmVhaztkZWZhdWx0OlooYSxlLG8sZCx0LG51bGwpfWVtKGEsbCx1LGYpO3JldHVybjtjYXNlIm9wdGlvbiI6Zm9yKGkgaW4gdCl0Lmhhc093blByb3BlcnR5KGkpJiYobD10W2ldLGwhPW51bGwpJiYoaT09PSJzZWxlY3RlZCI/YS5zZWxlY3RlZD1sJiZ0eXBlb2YgbCE9ImZ1bmN0aW9uIiYmdHlwZW9mIGwhPSJzeW1ib2wiOlooYSxlLGksbCx0LG51bGwpKTtyZXR1cm47Y2FzZSJkaWFsb2ciOkUoImJlZm9yZXRvZ2dsZSIsYSksRSgidG9nZ2xlIixhKSxFKCJjYW5jZWwiLGEpLEUoImNsb3NlIixhKTticmVhaztjYXNlImlmcmFtZSI6Y2FzZSJvYmplY3QiOkUoImxvYWQiLGEpO2JyZWFrO2Nhc2UidmlkZW8iOmNhc2UiYXVkaW8iOmZvcihsPTA7bDxRdS5sZW5ndGg7bCsrKUUoUXVbbF0sYSk7YnJlYWs7Y2FzZSJpbWFnZSI6RSgiZXJyb3IiLGEpLEUoImxvYWQiLGEpO2JyZWFrO2Nhc2UiZGV0YWlscyI6RSgidG9nZ2xlIixhKTticmVhaztjYXNlImVtYmVkIjpjYXNlInNvdXJjZSI6Y2FzZSJsaW5rIjpFKCJlcnJvciIsYSksRSgibG9hZCIsYSk7Y2FzZSJhcmVhIjpjYXNlImJhc2UiOmNhc2UiYnIiOmNhc2UiY29sIjpjYXNlImhyIjpjYXNlImtleWdlbiI6Y2FzZSJtZXRhIjpjYXNlInBhcmFtIjpjYXNlInRyYWNrIjpjYXNlIndiciI6Y2FzZSJtZW51aXRlbSI6Zm9yKG0gaW4gdClpZih0Lmhhc093blByb3BlcnR5KG0pJiYobD10W21dLGwhPW51bGwpKXN3aXRjaChtKXtjYXNlImNoaWxkcmVuIjpjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjp0aHJvdyBFcnJvcihDKDEzNyxlKSk7ZGVmYXVsdDpaKGEsZSxtLGwsdCxudWxsKX1yZXR1cm47ZGVmYXVsdDppZihiaShlKSl7Zm9yKHggaW4gdCl0Lmhhc093blByb3BlcnR5KHgpJiYobD10W3hdLGwhPT12b2lkIDAmJmlpKGEsZSx4LGwsdCx2b2lkIDApKTtyZXR1cm59fWZvcihkIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShkKSYmKGw9dFtkXSxsIT1udWxsJiZaKGEsZSxkLGwsdCxudWxsKSl9ZnVuY3Rpb24gbVMoYSxlLHQsbCl7c3dpdGNoKGUpe2Nhc2UiZGl2IjpjYXNlInNwYW4iOmNhc2Uic3ZnIjpjYXNlInBhdGgiOmNhc2UiYSI6Y2FzZSJnIjpjYXNlInAiOmNhc2UibGkiOmJyZWFrO2Nhc2UiaW5wdXQiOnZhciB1PW51bGwsZj1udWxsLG89bnVsbCxkPW51bGwsaT1udWxsLG09bnVsbCx4PW51bGw7Zm9yKGggaW4gdCl7dmFyIGc9dFtoXTtpZih0Lmhhc093blByb3BlcnR5KGgpJiZnIT1udWxsKXN3aXRjaChoKXtjYXNlImNoZWNrZWQiOmJyZWFrO2Nhc2UidmFsdWUiOmJyZWFrO2Nhc2UiZGVmYXVsdFZhbHVlIjppPWc7ZGVmYXVsdDpsLmhhc093blByb3BlcnR5KGgpfHxaKGEsZSxoLG51bGwsbCxnKX19Zm9yKHZhciBMIGluIGwpe3ZhciBoPWxbTF07aWYoZz10W0xdLGwuaGFzT3duUHJvcGVydHkoTCkmJihoIT1udWxsfHxnIT1udWxsKSlzd2l0Y2goTCl7Y2FzZSJ0eXBlIjpmPWg7YnJlYWs7Y2FzZSJuYW1lIjp1PWg7YnJlYWs7Y2FzZSJjaGVja2VkIjptPWg7YnJlYWs7Y2FzZSJkZWZhdWx0Q2hlY2tlZCI6eD1oO2JyZWFrO2Nhc2UidmFsdWUiOm89aDticmVhaztjYXNlImRlZmF1bHRWYWx1ZSI6ZD1oO2JyZWFrO2Nhc2UiY2hpbGRyZW4iOmNhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKGghPW51bGwpdGhyb3cgRXJyb3IoQygxMzcsZSkpO2JyZWFrO2RlZmF1bHQ6aCE9PWcmJlooYSxlLEwsaCxsLGcpfX1PcyhhLG8sZCxpLG0seCxmLHUpO3JldHVybjtjYXNlInNlbGVjdCI6aD1vPWQ9TD1udWxsO2ZvcihmIGluIHQpaWYoaT10W2ZdLHQuaGFzT3duUHJvcGVydHkoZikmJmkhPW51bGwpc3dpdGNoKGYpe2Nhc2UidmFsdWUiOmJyZWFrO2Nhc2UibXVsdGlwbGUiOmg9aTtkZWZhdWx0OmwuaGFzT3duUHJvcGVydHkoZil8fFooYSxlLGYsbnVsbCxsLGkpfWZvcih1IGluIGwpaWYoZj1sW3VdLGk9dFt1XSxsLmhhc093blByb3BlcnR5KHUpJiYoZiE9bnVsbHx8aSE9bnVsbCkpc3dpdGNoKHUpe2Nhc2UidmFsdWUiOkw9ZjticmVhaztjYXNlImRlZmF1bHRWYWx1ZSI6ZD1mO2JyZWFrO2Nhc2UibXVsdGlwbGUiOm89ZjtkZWZhdWx0OmYhPT1pJiZaKGEsZSx1LGYsbCxpKX1lPWQsdD1vLGw9aCxMIT1udWxsP2JsKGEsISF0LEwsITEpOiEhbCE9ISF0JiYoZSE9bnVsbD9ibChhLCEhdCxlLCEwKTpibChhLCEhdCx0P1tdOiIiLCExKSk7cmV0dXJuO2Nhc2UidGV4dGFyZWEiOmg9TD1udWxsO2ZvcihkIGluIHQpaWYodT10W2RdLHQuaGFzT3duUHJvcGVydHkoZCkmJnUhPW51bGwmJiFsLmhhc093blByb3BlcnR5KGQpKXN3aXRjaChkKXtjYXNlInZhbHVlIjpicmVhaztjYXNlImNoaWxkcmVuIjpicmVhaztkZWZhdWx0OlooYSxlLGQsbnVsbCxsLHUpfWZvcihvIGluIGwpaWYodT1sW29dLGY9dFtvXSxsLmhhc093blByb3BlcnR5KG8pJiYodSE9bnVsbHx8ZiE9bnVsbCkpc3dpdGNoKG8pe2Nhc2UidmFsdWUiOkw9dTticmVhaztjYXNlImRlZmF1bHRWYWx1ZSI6aD11O2JyZWFrO2Nhc2UiY2hpbGRyZW4iOmJyZWFrO2Nhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKHUhPW51bGwpdGhyb3cgRXJyb3IoQyg5MSkpO2JyZWFrO2RlZmF1bHQ6dSE9PWYmJlooYSxlLG8sdSxsLGYpfWFtKGEsTCxoKTtyZXR1cm47Y2FzZSJvcHRpb24iOmZvcih2YXIgeSBpbiB0KUw9dFt5XSx0Lmhhc093blByb3BlcnR5KHkpJiZMIT1udWxsJiYhbC5oYXNPd25Qcm9wZXJ0eSh5KSYmKHk9PT0ic2VsZWN0ZWQiP2Euc2VsZWN0ZWQ9ITE6WihhLGUseSxudWxsLGwsTCkpO2ZvcihpIGluIGwpTD1sW2ldLGg9dFtpXSxsLmhhc093blByb3BlcnR5KGkpJiZMIT09aCYmKEwhPW51bGx8fGghPW51bGwpJiYoaT09PSJzZWxlY3RlZCI/YS5zZWxlY3RlZD1MJiZ0eXBlb2YgTCE9ImZ1bmN0aW9uIiYmdHlwZW9mIEwhPSJzeW1ib2wiOlooYSxlLGksTCxsLGgpKTtyZXR1cm47Y2FzZSJpbWciOmNhc2UibGluayI6Y2FzZSJhcmVhIjpjYXNlImJhc2UiOmNhc2UiYnIiOmNhc2UiY29sIjpjYXNlImVtYmVkIjpjYXNlImhyIjpjYXNlImtleWdlbiI6Y2FzZSJtZXRhIjpjYXNlInBhcmFtIjpjYXNlInNvdXJjZSI6Y2FzZSJ0cmFjayI6Y2FzZSJ3YnIiOmNhc2UibWVudWl0ZW0iOmZvcih2YXIgYiBpbiB0KUw9dFtiXSx0Lmhhc093blByb3BlcnR5KGIpJiZMIT1udWxsJiYhbC5oYXNPd25Qcm9wZXJ0eShiKSYmWihhLGUsYixudWxsLGwsTCk7Zm9yKG0gaW4gbClpZihMPWxbbV0saD10W21dLGwuaGFzT3duUHJvcGVydHkobSkmJkwhPT1oJiYoTCE9bnVsbHx8aCE9bnVsbCkpc3dpdGNoKG0pe2Nhc2UiY2hpbGRyZW4iOmNhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKEwhPW51bGwpdGhyb3cgRXJyb3IoQygxMzcsZSkpO2JyZWFrO2RlZmF1bHQ6WihhLGUsbSxMLGwsaCl9cmV0dXJuO2RlZmF1bHQ6aWYoYmkoZSkpe2Zvcih2YXIgRyBpbiB0KUw9dFtHXSx0Lmhhc093blByb3BlcnR5KEcpJiZMIT09dm9pZCAwJiYhbC5oYXNPd25Qcm9wZXJ0eShHKSYmaWkoYSxlLEcsdm9pZCAwLGwsTCk7Zm9yKHggaW4gbClMPWxbeF0saD10W3hdLCFsLmhhc093blByb3BlcnR5KHgpfHxMPT09aHx8TD09PXZvaWQgMCYmaD09PXZvaWQgMHx8aWkoYSxlLHgsTCxsLGgpO3JldHVybn19Zm9yKHZhciBjIGluIHQpTD10W2NdLHQuaGFzT3duUHJvcGVydHkoYykmJkwhPW51bGwmJiFsLmhhc093blByb3BlcnR5KGMpJiZaKGEsZSxjLG51bGwsbCxMKTtmb3IoZyBpbiBsKUw9bFtnXSxoPXRbZ10sIWwuaGFzT3duUHJvcGVydHkoZyl8fEw9PT1ofHxMPT1udWxsJiZoPT1udWxsfHxaKGEsZSxnLEwsbCxoKX1mdW5jdGlvbiBoYyhhKXtzd2l0Y2goYSl7Y2FzZSJjc3MiOmNhc2Uic2NyaXB0IjpjYXNlImZvbnQiOmNhc2UiaW1nIjpjYXNlImltYWdlIjpjYXNlImlucHV0IjpjYXNlImxpbmsiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIHBTKCl7aWYodHlwZW9mIHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGU9PSJmdW5jdGlvbiIpe2Zvcih2YXIgYT0wLGU9MCx0PXBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIiksbD0wO2w8dC5sZW5ndGg7bCsrKXt2YXIgdT10W2xdLGY9dS50cmFuc2ZlclNpemUsbz11LmluaXRpYXRvclR5cGUsZD11LmR1cmF0aW9uO2lmKGYmJmQmJmhjKG8pKXtmb3Iobz0wLGQ9dS5yZXNwb25zZUVuZCxsKz0xO2w8dC5sZW5ndGg7bCsrKXt2YXIgaT10W2xdLG09aS5zdGFydFRpbWU7aWYobT5kKWJyZWFrO3ZhciB4PWkudHJhbnNmZXJTaXplLGc9aS5pbml0aWF0b3JUeXBlO3gmJmhjKGcpJiYoaT1pLnJlc3BvbnNlRW5kLG8rPXgqKGk8ZD8xOihkLW0pLyhpLW0pKSl9aWYoLS1sLGUrPTgqKGYrbykvKHUuZHVyYXRpb24vMWUzKSxhKyssMTA8YSlicmVha319aWYoMDxhKXJldHVybiBlL2EvMWU2fXJldHVybiBuYXZpZ2F0b3IuY29ubmVjdGlvbiYmKGE9bmF2aWdhdG9yLmNvbm5lY3Rpb24uZG93bmxpbmssdHlwZW9mIGE9PSJudW1iZXIiKT9hOjV9dmFyIG5pPW51bGwscmk9bnVsbDtmdW5jdGlvbiBfbyhhKXtyZXR1cm4gYS5ub2RlVHlwZT09PTk/YTphLm93bmVyRG9jdW1lbnR9ZnVuY3Rpb24geGMoYSl7c3dpdGNoKGEpe2Nhc2UiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciOnJldHVybiAxO2Nhc2UiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCI6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH19ZnVuY3Rpb24gb0woYSxlKXtpZihhPT09MClzd2l0Y2goZSl7Y2FzZSJzdmciOnJldHVybiAxO2Nhc2UibWF0aCI6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH1yZXR1cm4gYT09PTEmJmU9PT0iZm9yZWlnbk9iamVjdCI/MDphfWZ1bmN0aW9uIGNpKGEsZSl7cmV0dXJuIGE9PT0idGV4dGFyZWEifHxhPT09Im5vc2NyaXB0Inx8dHlwZW9mIGUuY2hpbGRyZW49PSJzdHJpbmcifHx0eXBlb2YgZS5jaGlsZHJlbj09Im51bWJlciJ8fHR5cGVvZiBlLmNoaWxkcmVuPT0iYmlnaW50Inx8dHlwZW9mIGUuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9PSJvYmplY3QiJiZlLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIT09bnVsbCYmZS5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWwhPW51bGx9dmFyIHlzPW51bGw7ZnVuY3Rpb24gTFMoKXt2YXIgYT13aW5kb3cuZXZlbnQ7cmV0dXJuIGEmJmEudHlwZT09PSJwb3BzdGF0ZSI/YT09PXlzPyExOih5cz1hLCEwKTooeXM9bnVsbCwhMSl9dmFyIGRMPXR5cGVvZiBzZXRUaW1lb3V0PT0iZnVuY3Rpb24iP3NldFRpbWVvdXQ6dm9pZCAwLGhTPXR5cGVvZiBjbGVhclRpbWVvdXQ9PSJmdW5jdGlvbiI/Y2xlYXJUaW1lb3V0OnZvaWQgMCxTYz10eXBlb2YgUHJvbWlzZT09ImZ1bmN0aW9uIj9Qcm9taXNlOnZvaWQgMCx4Uz10eXBlb2YgcXVldWVNaWNyb3Rhc2s9PSJmdW5jdGlvbiI/cXVldWVNaWNyb3Rhc2s6dHlwZW9mIFNjPCJ1Ij9mdW5jdGlvbihhKXtyZXR1cm4gU2MucmVzb2x2ZShudWxsKS50aGVuKGEpLmNhdGNoKFNTKX06ZEw7ZnVuY3Rpb24gU1MoYSl7c2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGF9KX1mdW5jdGlvbiBidChhKXtyZXR1cm4gYT09PSJoZWFkIn1mdW5jdGlvbiBnYyhhLGUpe3ZhciB0PWUsbD0wO2Rve3ZhciB1PXQubmV4dFNpYmxpbmc7aWYoYS5yZW1vdmVDaGlsZCh0KSx1JiZ1Lm5vZGVUeXBlPT09OClpZih0PXUuZGF0YSx0PT09Ii8kInx8dD09PSIvJiIpe2lmKGw9PT0wKXthLnJlbW92ZUNoaWxkKHUpLEdsKGUpO3JldHVybn1sLS19ZWxzZSBpZih0PT09IiQifHx0PT09IiQ/Inx8dD09PSIkfiJ8fHQ9PT0iJCEifHx0PT09IiYiKWwrKztlbHNlIGlmKHQ9PT0iaHRtbCIpRXUoYS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk7ZWxzZSBpZih0PT09ImhlYWQiKXt0PWEub3duZXJEb2N1bWVudC5oZWFkLEV1KHQpO2Zvcih2YXIgZj10LmZpcnN0Q2hpbGQ7Zjspe3ZhciBvPWYubmV4dFNpYmxpbmcsZD1mLm5vZGVOYW1lO2ZbdGZdfHxkPT09IlNDUklQVCJ8fGQ9PT0iU1RZTEUifHxkPT09IkxJTksiJiZmLnJlbC50b0xvd2VyQ2FzZSgpPT09InN0eWxlc2hlZXQifHx0LnJlbW92ZUNoaWxkKGYpLGY9b319ZWxzZSB0PT09ImJvZHkiJiZFdShhLm93bmVyRG9jdW1lbnQuYm9keSk7dD11fXdoaWxlKHQpO0dsKGUpfWZ1bmN0aW9uIENjKGEsZSl7dmFyIHQ9YTthPTA7ZG97dmFyIGw9dC5uZXh0U2libGluZztpZih0Lm5vZGVUeXBlPT09MT9lPyh0Ll9zdGFzaGVkRGlzcGxheT10LnN0eWxlLmRpc3BsYXksdC5zdHlsZS5kaXNwbGF5PSJub25lIik6KHQuc3R5bGUuZGlzcGxheT10Ll9zdGFzaGVkRGlzcGxheXx8IiIsdC5nZXRBdHRyaWJ1dGUoInN0eWxlIik9PT0iIiYmdC5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIikpOnQubm9kZVR5cGU9PT0zJiYoZT8odC5fc3Rhc2hlZFRleHQ9dC5ub2RlVmFsdWUsdC5ub2RlVmFsdWU9IiIpOnQubm9kZVZhbHVlPXQuX3N0YXNoZWRUZXh0fHwiIiksbCYmbC5ub2RlVHlwZT09PTgpaWYodD1sLmRhdGEsdD09PSIvJCIpe2lmKGE9PT0wKWJyZWFrO2EtLX1lbHNlIHQhPT0iJCImJnQhPT0iJD8iJiZ0IT09IiR+IiYmdCE9PSIkISJ8fGErKzt0PWx9d2hpbGUodCl9ZnVuY3Rpb24gbWkoYSl7dmFyIGU9YS5maXJzdENoaWxkO2ZvcihlJiZlLm5vZGVUeXBlPT09MTAmJihlPWUubmV4dFNpYmxpbmcpO2U7KXt2YXIgdD1lO3N3aXRjaChlPWUubmV4dFNpYmxpbmcsdC5ub2RlTmFtZSl7Y2FzZSJIVE1MIjpjYXNlIkhFQUQiOmNhc2UiQk9EWSI6bWkodCksQWkodCk7Y29udGludWU7Y2FzZSJTQ1JJUFQiOmNhc2UiU1RZTEUiOmNvbnRpbnVlO2Nhc2UiTElOSyI6aWYodC5yZWwudG9Mb3dlckNhc2UoKT09PSJzdHlsZXNoZWV0Iiljb250aW51ZX1hLnJlbW92ZUNoaWxkKHQpfX1mdW5jdGlvbiBnUyhhLGUsdCxsKXtmb3IoO2Eubm9kZVR5cGU9PT0xOyl7dmFyIHU9dDtpZihhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT1lLnRvTG93ZXJDYXNlKCkpe2lmKCFsJiYoYS5ub2RlTmFtZSE9PSJJTlBVVCJ8fGEudHlwZSE9PSJoaWRkZW4iKSlicmVha31lbHNlIGlmKGwpe2lmKCFhW3RmXSlzd2l0Y2goZSl7Y2FzZSJtZXRhIjppZighYS5oYXNBdHRyaWJ1dGUoIml0ZW1wcm9wIikpYnJlYWs7cmV0dXJuIGE7Y2FzZSJsaW5rIjppZihmPWEuZ2V0QXR0cmlidXRlKCJyZWwiKSxmPT09InN0eWxlc2hlZXQiJiZhLmhhc0F0dHJpYnV0ZSgiZGF0YS1wcmVjZWRlbmNlIikpYnJlYWs7aWYoZiE9PXUucmVsfHxhLmdldEF0dHJpYnV0ZSgiaHJlZiIpIT09KHUuaHJlZj09bnVsbHx8dS5ocmVmPT09IiI/bnVsbDp1LmhyZWYpfHxhLmdldEF0dHJpYnV0ZSgiY3Jvc3NvcmlnaW4iKSE9PSh1LmNyb3NzT3JpZ2luPT1udWxsP251bGw6dS5jcm9zc09yaWdpbil8fGEuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpIT09KHUudGl0bGU9PW51bGw/bnVsbDp1LnRpdGxlKSlicmVhaztyZXR1cm4gYTtjYXNlInN0eWxlIjppZihhLmhhc0F0dHJpYnV0ZSgiZGF0YS1wcmVjZWRlbmNlIikpYnJlYWs7cmV0dXJuIGE7Y2FzZSJzY3JpcHQiOmlmKGY9YS5nZXRBdHRyaWJ1dGUoInNyYyIpLChmIT09KHUuc3JjPT1udWxsP251bGw6dS5zcmMpfHxhLmdldEF0dHJpYnV0ZSgidHlwZSIpIT09KHUudHlwZT09bnVsbD9udWxsOnUudHlwZSl8fGEuZ2V0QXR0cmlidXRlKCJjcm9zc29yaWdpbiIpIT09KHUuY3Jvc3NPcmlnaW49PW51bGw/bnVsbDp1LmNyb3NzT3JpZ2luKSkmJmYmJmEuaGFzQXR0cmlidXRlKCJhc3luYyIpJiYhYS5oYXNBdHRyaWJ1dGUoIml0ZW1wcm9wIikpYnJlYWs7cmV0dXJuIGE7ZGVmYXVsdDpyZXR1cm4gYX19ZWxzZSBpZihlPT09ImlucHV0IiYmYS50eXBlPT09ImhpZGRlbiIpe3ZhciBmPXUubmFtZT09bnVsbD9udWxsOiIiK3UubmFtZTtpZih1LnR5cGU9PT0iaGlkZGVuIiYmYS5nZXRBdHRyaWJ1dGUoIm5hbWUiKT09PWYpcmV0dXJuIGF9ZWxzZSByZXR1cm4gYTtpZihhPW9lKGEubmV4dFNpYmxpbmcpLGE9PT1udWxsKWJyZWFrfXJldHVybiBudWxsfWZ1bmN0aW9uIENTKGEsZSx0KXtpZihlPT09IiIpcmV0dXJuIG51bGw7Zm9yKDthLm5vZGVUeXBlIT09MzspaWYoKGEubm9kZVR5cGUhPT0xfHxhLm5vZGVOYW1lIT09IklOUFVUInx8YS50eXBlIT09ImhpZGRlbiIpJiYhdHx8KGE9b2UoYS5uZXh0U2libGluZyksYT09PW51bGwpKXJldHVybiBudWxsO3JldHVybiBhfWZ1bmN0aW9uIHNMKGEsZSl7Zm9yKDthLm5vZGVUeXBlIT09ODspaWYoKGEubm9kZVR5cGUhPT0xfHxhLm5vZGVOYW1lIT09IklOUFVUInx8YS50eXBlIT09ImhpZGRlbiIpJiYhZXx8KGE9b2UoYS5uZXh0U2libGluZyksYT09PW51bGwpKXJldHVybiBudWxsO3JldHVybiBhfWZ1bmN0aW9uIHBpKGEpe3JldHVybiBhLmRhdGE9PT0iJD8ifHxhLmRhdGE9PT0iJH4ifWZ1bmN0aW9uIExpKGEpe3JldHVybiBhLmRhdGE9PT0iJCEifHxhLmRhdGE9PT0iJD8iJiZhLm93bmVyRG9jdW1lbnQucmVhZHlTdGF0ZSE9PSJsb2FkaW5nIn1mdW5jdGlvbiBJUyhhLGUpe3ZhciB0PWEub3duZXJEb2N1bWVudDtpZihhLmRhdGE9PT0iJH4iKWEuX3JlYWN0UmV0cnk9ZTtlbHNlIGlmKGEuZGF0YSE9PSIkPyJ8fHQucmVhZHlTdGF0ZSE9PSJsb2FkaW5nIillKCk7ZWxzZXt2YXIgbD1mdW5jdGlvbigpe2UoKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGwpfTt0LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGwpLGEuX3JlYWN0UmV0cnk9bH19ZnVuY3Rpb24gb2UoYSl7Zm9yKDthIT1udWxsO2E9YS5uZXh0U2libGluZyl7dmFyIGU9YS5ub2RlVHlwZTtpZihlPT09MXx8ZT09PTMpYnJlYWs7aWYoZT09PTgpe2lmKGU9YS5kYXRhLGU9PT0iJCJ8fGU9PT0iJCEifHxlPT09IiQ/Inx8ZT09PSIkfiJ8fGU9PT0iJiJ8fGU9PT0iRiEifHxlPT09IkYiKWJyZWFrO2lmKGU9PT0iLyQifHxlPT09Ii8mIilyZXR1cm4gbnVsbH19cmV0dXJuIGF9dmFyIGhpPW51bGw7ZnVuY3Rpb24gSWMoYSl7YT1hLm5leHRTaWJsaW5nO2Zvcih2YXIgZT0wO2E7KXtpZihhLm5vZGVUeXBlPT09OCl7dmFyIHQ9YS5kYXRhO2lmKHQ9PT0iLyQifHx0PT09Ii8mIil7aWYoZT09PTApcmV0dXJuIG9lKGEubmV4dFNpYmxpbmcpO2UtLX1lbHNlIHQhPT0iJCImJnQhPT0iJCEiJiZ0IT09IiQ/IiYmdCE9PSIkfiImJnQhPT0iJiJ8fGUrK31hPWEubmV4dFNpYmxpbmd9cmV0dXJuIG51bGx9ZnVuY3Rpb24geWMoYSl7YT1hLnByZXZpb3VzU2libGluZztmb3IodmFyIGU9MDthOyl7aWYoYS5ub2RlVHlwZT09PTgpe3ZhciB0PWEuZGF0YTtpZih0PT09IiQifHx0PT09IiQhInx8dD09PSIkPyJ8fHQ9PT0iJH4ifHx0PT09IiYiKXtpZihlPT09MClyZXR1cm4gYTtlLS19ZWxzZSB0IT09Ii8kIiYmdCE9PSIvJiJ8fGUrK31hPWEucHJldmlvdXNTaWJsaW5nfXJldHVybiBudWxsfWZ1bmN0aW9uIGlMKGEsZSx0KXtzd2l0Y2goZT1fbyh0KSxhKXtjYXNlImh0bWwiOmlmKGE9ZS5kb2N1bWVudEVsZW1lbnQsIWEpdGhyb3cgRXJyb3IoQyg0NTIpKTtyZXR1cm4gYTtjYXNlImhlYWQiOmlmKGE9ZS5oZWFkLCFhKXRocm93IEVycm9yKEMoNDUzKSk7cmV0dXJuIGE7Y2FzZSJib2R5IjppZihhPWUuYm9keSwhYSl0aHJvdyBFcnJvcihDKDQ1NCkpO3JldHVybiBhO2RlZmF1bHQ6dGhyb3cgRXJyb3IoQyg0NTEpKX19ZnVuY3Rpb24gRXUoYSl7Zm9yKHZhciBlPWEuYXR0cmlidXRlcztlLmxlbmd0aDspYS5yZW1vdmVBdHRyaWJ1dGVOb2RlKGVbMF0pO0FpKGEpfXZhciBkZT1uZXcgTWFwLHZjPW5ldyBTZXQ7ZnVuY3Rpb24gUG8oYSl7cmV0dXJuIHR5cGVvZiBhLmdldFJvb3ROb2RlPT0iZnVuY3Rpb24iP2EuZ2V0Um9vdE5vZGUoKTphLm5vZGVUeXBlPT09OT9hOmEub3duZXJEb2N1bWVudH12YXIgVmU9UC5kO1AuZD17Zjp5UyxyOnZTLEQ6QVMsQzpiUyxMOk1TLG06RFMsWDpCUyxTOlRTLE06a1N9O2Z1bmN0aW9uIHlTKCl7dmFyIGE9VmUuZigpLGU9b2QoKTtyZXR1cm4gYXx8ZX1mdW5jdGlvbiB2UyhhKXt2YXIgZT1QbChhKTtlIT09bnVsbCYmZS50YWc9PT01JiZlLnR5cGU9PT0iZm9ybSI/dHAoZSk6VmUucihhKX12YXIgUWw9dHlwZW9mIGRvY3VtZW50PiJ1Ij9udWxsOmRvY3VtZW50O2Z1bmN0aW9uIG5MKGEsZSx0KXt2YXIgbD1RbDtpZihsJiZ0eXBlb2YgZT09InN0cmluZyImJmUpe3ZhciB1PXRlKGUpO3U9J2xpbmtbcmVsPSInK2ErJyJdW2hyZWY9IicrdSsnIl0nLHR5cGVvZiB0PT0ic3RyaW5nIiYmKHUrPSdbY3Jvc3NvcmlnaW49IicrdCsnIl0nKSx2Yy5oYXModSl8fCh2Yy5hZGQodSksYT17cmVsOmEsY3Jvc3NPcmlnaW46dCxocmVmOmV9LGwucXVlcnlTZWxlY3Rvcih1KT09PW51bGwmJihlPWwuY3JlYXRlRWxlbWVudCgibGluayIpLHZhKGUsImxpbmsiLGEpLHhhKGUpLGwuaGVhZC5hcHBlbmRDaGlsZChlKSkpfX1mdW5jdGlvbiBBUyhhKXtWZS5EKGEpLG5MKCJkbnMtcHJlZmV0Y2giLGEsbnVsbCl9ZnVuY3Rpb24gYlMoYSxlKXtWZS5DKGEsZSksbkwoInByZWNvbm5lY3QiLGEsZSl9ZnVuY3Rpb24gTVMoYSxlLHQpe1ZlLkwoYSxlLHQpO3ZhciBsPVFsO2lmKGwmJmEmJmUpe3ZhciB1PSdsaW5rW3JlbD0icHJlbG9hZCJdW2FzPSInK3RlKGUpKyciXSc7ZT09PSJpbWFnZSImJnQmJnQuaW1hZ2VTcmNTZXQ/KHUrPSdbaW1hZ2VzcmNzZXQ9IicrdGUodC5pbWFnZVNyY1NldCkrJyJdJyx0eXBlb2YgdC5pbWFnZVNpemVzPT0ic3RyaW5nIiYmKHUrPSdbaW1hZ2VzaXplcz0iJyt0ZSh0LmltYWdlU2l6ZXMpKyciXScpKTp1Kz0nW2hyZWY9IicrdGUoYSkrJyJdJzt2YXIgZj11O3N3aXRjaChlKXtjYXNlInN0eWxlIjpmPUZsKGEpO2JyZWFrO2Nhc2Uic2NyaXB0IjpmPVlsKGEpfWRlLmhhcyhmKXx8KGE9JCh7cmVsOiJwcmVsb2FkIixocmVmOmU9PT0iaW1hZ2UiJiZ0JiZ0LmltYWdlU3JjU2V0P3ZvaWQgMDphLGFzOmV9LHQpLGRlLnNldChmLGEpLGwucXVlcnlTZWxlY3Rvcih1KSE9PW51bGx8fGU9PT0ic3R5bGUiJiZsLnF1ZXJ5U2VsZWN0b3Ioc2YoZikpfHxlPT09InNjcmlwdCImJmwucXVlcnlTZWxlY3RvcihuZihmKSl8fChlPWwuY3JlYXRlRWxlbWVudCgibGluayIpLHZhKGUsImxpbmsiLGEpLHhhKGUpLGwuaGVhZC5hcHBlbmRDaGlsZChlKSkpfX1mdW5jdGlvbiBEUyhhLGUpe1ZlLm0oYSxlKTt2YXIgdD1RbDtpZih0JiZhKXt2YXIgbD1lJiZ0eXBlb2YgZS5hcz09InN0cmluZyI/ZS5hczoic2NyaXB0Iix1PSdsaW5rW3JlbD0ibW9kdWxlcHJlbG9hZCJdW2FzPSInK3RlKGwpKyciXVtocmVmPSInK3RlKGEpKyciXScsZj11O3N3aXRjaChsKXtjYXNlImF1ZGlvd29ya2xldCI6Y2FzZSJwYWludHdvcmtsZXQiOmNhc2Uic2VydmljZXdvcmtlciI6Y2FzZSJzaGFyZWR3b3JrZXIiOmNhc2Uid29ya2VyIjpjYXNlInNjcmlwdCI6Zj1ZbChhKX1pZighZGUuaGFzKGYpJiYoYT0kKHtyZWw6Im1vZHVsZXByZWxvYWQiLGhyZWY6YX0sZSksZGUuc2V0KGYsYSksdC5xdWVyeVNlbGVjdG9yKHUpPT09bnVsbCkpe3N3aXRjaChsKXtjYXNlImF1ZGlvd29ya2xldCI6Y2FzZSJwYWludHdvcmtsZXQiOmNhc2Uic2VydmljZXdvcmtlciI6Y2FzZSJzaGFyZWR3b3JrZXIiOmNhc2Uid29ya2VyIjpjYXNlInNjcmlwdCI6aWYodC5xdWVyeVNlbGVjdG9yKG5mKGYpKSlyZXR1cm59bD10LmNyZWF0ZUVsZW1lbnQoImxpbmsiKSx2YShsLCJsaW5rIixhKSx4YShsKSx0LmhlYWQuYXBwZW5kQ2hpbGQobCl9fX1mdW5jdGlvbiBUUyhhLGUsdCl7VmUuUyhhLGUsdCk7dmFyIGw9UWw7aWYobCYmYSl7dmFyIHU9QWwobCkuaG9pc3RhYmxlU3R5bGVzLGY9RmwoYSk7ZT1lfHwiZGVmYXVsdCI7dmFyIG89dS5nZXQoZik7aWYoIW8pe3ZhciBkPXtsb2FkaW5nOjAscHJlbG9hZDpudWxsfTtpZihvPWwucXVlcnlTZWxlY3RvcihzZihmKSkpZC5sb2FkaW5nPTU7ZWxzZXthPSQoe3JlbDoic3R5bGVzaGVldCIsaHJlZjphLCJkYXRhLXByZWNlZGVuY2UiOmV9LHQpLCh0PWRlLmdldChmKSkmJm5uKGEsdCk7dmFyIGk9bz1sLmNyZWF0ZUVsZW1lbnQoImxpbmsiKTt4YShpKSx2YShpLCJsaW5rIixhKSxpLl9wPW5ldyBQcm9taXNlKGZ1bmN0aW9uKG0seCl7aS5vbmxvYWQ9bSxpLm9uZXJyb3I9eH0pLGkuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXtkLmxvYWRpbmd8PTF9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixmdW5jdGlvbigpe2QubG9hZGluZ3w9Mn0pLGQubG9hZGluZ3w9NCxMbyhvLGUsbCl9bz17dHlwZToic3R5bGVzaGVldCIsaW5zdGFuY2U6byxjb3VudDoxLHN0YXRlOmR9LHUuc2V0KGYsbyl9fX1mdW5jdGlvbiBCUyhhLGUpe1ZlLlgoYSxlKTt2YXIgdD1RbDtpZih0JiZhKXt2YXIgbD1BbCh0KS5ob2lzdGFibGVTY3JpcHRzLHU9WWwoYSksZj1sLmdldCh1KTtmfHwoZj10LnF1ZXJ5U2VsZWN0b3IobmYodSkpLGZ8fChhPSQoe3NyYzphLGFzeW5jOiEwfSxlKSwoZT1kZS5nZXQodSkpJiZybihhLGUpLGY9dC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSx4YShmKSx2YShmLCJsaW5rIixhKSx0LmhlYWQuYXBwZW5kQ2hpbGQoZikpLGY9e3R5cGU6InNjcmlwdCIsaW5zdGFuY2U6Zixjb3VudDoxLHN0YXRlOm51bGx9LGwuc2V0KHUsZikpfX1mdW5jdGlvbiBrUyhhLGUpe1ZlLk0oYSxlKTt2YXIgdD1RbDtpZih0JiZhKXt2YXIgbD1BbCh0KS5ob2lzdGFibGVTY3JpcHRzLHU9WWwoYSksZj1sLmdldCh1KTtmfHwoZj10LnF1ZXJ5U2VsZWN0b3IobmYodSkpLGZ8fChhPSQoe3NyYzphLGFzeW5jOiEwLHR5cGU6Im1vZHVsZSJ9LGUpLChlPWRlLmdldCh1KSkmJnJuKGEsZSksZj10LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLHhhKGYpLHZhKGYsImxpbmsiLGEpLHQuaGVhZC5hcHBlbmRDaGlsZChmKSksZj17dHlwZToic2NyaXB0IixpbnN0YW5jZTpmLGNvdW50OjEsc3RhdGU6bnVsbH0sbC5zZXQodSxmKSl9fWZ1bmN0aW9uIEFjKGEsZSx0LGwpe3ZhciB1PSh1PXJ0LmN1cnJlbnQpP1BvKHUpOm51bGw7aWYoIXUpdGhyb3cgRXJyb3IoQyg0NDYpKTtzd2l0Y2goYSl7Y2FzZSJtZXRhIjpjYXNlInRpdGxlIjpyZXR1cm4gbnVsbDtjYXNlInN0eWxlIjpyZXR1cm4gdHlwZW9mIHQucHJlY2VkZW5jZT09InN0cmluZyImJnR5cGVvZiB0LmhyZWY9PSJzdHJpbmciPyhlPUZsKHQuaHJlZiksdD1BbCh1KS5ob2lzdGFibGVTdHlsZXMsbD10LmdldChlKSxsfHwobD17dHlwZToic3R5bGUiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTpudWxsfSx0LnNldChlLGwpKSxsKTp7dHlwZToidm9pZCIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOm51bGx9O2Nhc2UibGluayI6aWYodC5yZWw9PT0ic3R5bGVzaGVldCImJnR5cGVvZiB0LmhyZWY9PSJzdHJpbmciJiZ0eXBlb2YgdC5wcmVjZWRlbmNlPT0ic3RyaW5nIil7YT1GbCh0LmhyZWYpO3ZhciBmPUFsKHUpLmhvaXN0YWJsZVN0eWxlcyxvPWYuZ2V0KGEpO2lmKG98fCh1PXUub3duZXJEb2N1bWVudHx8dSxvPXt0eXBlOiJzdHlsZXNoZWV0IixpbnN0YW5jZTpudWxsLGNvdW50OjAsc3RhdGU6e2xvYWRpbmc6MCxwcmVsb2FkOm51bGx9fSxmLnNldChhLG8pLChmPXUucXVlcnlTZWxlY3RvcihzZihhKSkpJiYhZi5fcCYmKG8uaW5zdGFuY2U9ZixvLnN0YXRlLmxvYWRpbmc9NSksZGUuaGFzKGEpfHwodD17cmVsOiJwcmVsb2FkIixhczoic3R5bGUiLGhyZWY6dC5ocmVmLGNyb3NzT3JpZ2luOnQuY3Jvc3NPcmlnaW4saW50ZWdyaXR5OnQuaW50ZWdyaXR5LG1lZGlhOnQubWVkaWEsaHJlZkxhbmc6dC5ocmVmTGFuZyxyZWZlcnJlclBvbGljeTp0LnJlZmVycmVyUG9saWN5fSxkZS5zZXQoYSx0KSxmfHx3Uyh1LGEsdCxvLnN0YXRlKSkpLGUmJmw9PT1udWxsKXRocm93IEVycm9yKEMoNTI4LCIiKSk7cmV0dXJuIG99aWYoZSYmbCE9PW51bGwpdGhyb3cgRXJyb3IoQyg1MjksIiIpKTtyZXR1cm4gbnVsbDtjYXNlInNjcmlwdCI6cmV0dXJuIGU9dC5hc3luYyx0PXQuc3JjLHR5cGVvZiB0PT0ic3RyaW5nIiYmZSYmdHlwZW9mIGUhPSJmdW5jdGlvbiImJnR5cGVvZiBlIT0ic3ltYm9sIj8oZT1ZbCh0KSx0PUFsKHUpLmhvaXN0YWJsZVNjcmlwdHMsbD10LmdldChlKSxsfHwobD17dHlwZToic2NyaXB0IixpbnN0YW5jZTpudWxsLGNvdW50OjAsc3RhdGU6bnVsbH0sdC5zZXQoZSxsKSksbCk6e3R5cGU6InZvaWQiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTpudWxsfTtkZWZhdWx0OnRocm93IEVycm9yKEMoNDQ0LGEpKX19ZnVuY3Rpb24gRmwoYSl7cmV0dXJuJ2hyZWY9IicrdGUoYSkrJyInfWZ1bmN0aW9uIHNmKGEpe3JldHVybidsaW5rW3JlbD0ic3R5bGVzaGVldCJdWycrYSsiXSJ9ZnVuY3Rpb24gckwoYSl7cmV0dXJuICQoe30sYSx7ImRhdGEtcHJlY2VkZW5jZSI6YS5wcmVjZWRlbmNlLHByZWNlZGVuY2U6bnVsbH0pfWZ1bmN0aW9uIHdTKGEsZSx0LGwpe2EucXVlcnlTZWxlY3RvcignbGlua1tyZWw9InByZWxvYWQiXVthcz0ic3R5bGUiXVsnK2UrIl0iKT9sLmxvYWRpbmc9MTooZT1hLmNyZWF0ZUVsZW1lbnQoImxpbmsiKSxsLnByZWxvYWQ9ZSxlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7cmV0dXJuIGwubG9hZGluZ3w9MX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGZ1bmN0aW9uKCl7cmV0dXJuIGwubG9hZGluZ3w9Mn0pLHZhKGUsImxpbmsiLHQpLHhhKGUpLGEuaGVhZC5hcHBlbmRDaGlsZChlKSl9ZnVuY3Rpb24gWWwoYSl7cmV0dXJuJ1tzcmM9IicrdGUoYSkrJyJdJ31mdW5jdGlvbiBuZihhKXtyZXR1cm4ic2NyaXB0W2FzeW5jXSIrYX1mdW5jdGlvbiBiYyhhLGUsdCl7aWYoZS5jb3VudCsrLGUuaW5zdGFuY2U9PT1udWxsKXN3aXRjaChlLnR5cGUpe2Nhc2Uic3R5bGUiOnZhciBsPWEucXVlcnlTZWxlY3Rvcignc3R5bGVbZGF0YS1ocmVmfj0iJyt0ZSh0LmhyZWYpKyciXScpO2lmKGwpcmV0dXJuIGUuaW5zdGFuY2U9bCx4YShsKSxsO3ZhciB1PSQoe30sdCx7ImRhdGEtaHJlZiI6dC5ocmVmLCJkYXRhLXByZWNlZGVuY2UiOnQucHJlY2VkZW5jZSxocmVmOm51bGwscHJlY2VkZW5jZTpudWxsfSk7cmV0dXJuIGw9KGEub3duZXJEb2N1bWVudHx8YSkuY3JlYXRlRWxlbWVudCgic3R5bGUiKSx4YShsKSx2YShsLCJzdHlsZSIsdSksTG8obCx0LnByZWNlZGVuY2UsYSksZS5pbnN0YW5jZT1sO2Nhc2Uic3R5bGVzaGVldCI6dT1GbCh0LmhyZWYpO3ZhciBmPWEucXVlcnlTZWxlY3RvcihzZih1KSk7aWYoZilyZXR1cm4gZS5zdGF0ZS5sb2FkaW5nfD00LGUuaW5zdGFuY2U9Zix4YShmKSxmO2w9ckwodCksKHU9ZGUuZ2V0KHUpKSYmbm4obCx1KSxmPShhLm93bmVyRG9jdW1lbnR8fGEpLmNyZWF0ZUVsZW1lbnQoImxpbmsiKSx4YShmKTt2YXIgbz1mO3JldHVybiBvLl9wPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGQsaSl7by5vbmxvYWQ9ZCxvLm9uZXJyb3I9aX0pLHZhKGYsImxpbmsiLGwpLGUuc3RhdGUubG9hZGluZ3w9NCxMbyhmLHQucHJlY2VkZW5jZSxhKSxlLmluc3RhbmNlPWY7Y2FzZSJzY3JpcHQiOnJldHVybiBmPVlsKHQuc3JjKSwodT1hLnF1ZXJ5U2VsZWN0b3IobmYoZikpKT8oZS5pbnN0YW5jZT11LHhhKHUpLHUpOihsPXQsKHU9ZGUuZ2V0KGYpKSYmKGw9JCh7fSx0KSxybihsLHUpKSxhPWEub3duZXJEb2N1bWVudHx8YSx1PWEuY3JlYXRlRWxlbWVudCgic2NyaXB0IikseGEodSksdmEodSwibGluayIsbCksYS5oZWFkLmFwcGVuZENoaWxkKHUpLGUuaW5zdGFuY2U9dSk7Y2FzZSJ2b2lkIjpyZXR1cm4gbnVsbDtkZWZhdWx0OnRocm93IEVycm9yKEMoNDQzLGUudHlwZSkpfWVsc2UgZS50eXBlPT09InN0eWxlc2hlZXQiJiYoZS5zdGF0ZS5sb2FkaW5nJjQpPT09MCYmKGw9ZS5pbnN0YW5jZSxlLnN0YXRlLmxvYWRpbmd8PTQsTG8obCx0LnByZWNlZGVuY2UsYSkpO3JldHVybiBlLmluc3RhbmNlfWZ1bmN0aW9uIExvKGEsZSx0KXtmb3IodmFyIGw9dC5xdWVyeVNlbGVjdG9yQWxsKCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW2RhdGEtcHJlY2VkZW5jZV0sc3R5bGVbZGF0YS1wcmVjZWRlbmNlXScpLHU9bC5sZW5ndGg/bFtsLmxlbmd0aC0xXTpudWxsLGY9dSxvPTA7bzxsLmxlbmd0aDtvKyspe3ZhciBkPWxbb107aWYoZC5kYXRhc2V0LnByZWNlZGVuY2U9PT1lKWY9ZDtlbHNlIGlmKGYhPT11KWJyZWFrfWY/Zi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLGYubmV4dFNpYmxpbmcpOihlPXQubm9kZVR5cGU9PT05P3QuaGVhZDp0LGUuaW5zZXJ0QmVmb3JlKGEsZS5maXJzdENoaWxkKSl9ZnVuY3Rpb24gbm4oYSxlKXthLmNyb3NzT3JpZ2luPT1udWxsJiYoYS5jcm9zc09yaWdpbj1lLmNyb3NzT3JpZ2luKSxhLnJlZmVycmVyUG9saWN5PT1udWxsJiYoYS5yZWZlcnJlclBvbGljeT1lLnJlZmVycmVyUG9saWN5KSxhLnRpdGxlPT1udWxsJiYoYS50aXRsZT1lLnRpdGxlKX1mdW5jdGlvbiBybihhLGUpe2EuY3Jvc3NPcmlnaW49PW51bGwmJihhLmNyb3NzT3JpZ2luPWUuY3Jvc3NPcmlnaW4pLGEucmVmZXJyZXJQb2xpY3k9PW51bGwmJihhLnJlZmVycmVyUG9saWN5PWUucmVmZXJyZXJQb2xpY3kpLGEuaW50ZWdyaXR5PT1udWxsJiYoYS5pbnRlZ3JpdHk9ZS5pbnRlZ3JpdHkpfXZhciBobz1udWxsO2Z1bmN0aW9uIE1jKGEsZSx0KXtpZihobz09PW51bGwpe3ZhciBsPW5ldyBNYXAsdT1obz1uZXcgTWFwO3Uuc2V0KHQsbCl9ZWxzZSB1PWhvLGw9dS5nZXQodCksbHx8KGw9bmV3IE1hcCx1LnNldCh0LGwpKTtpZihsLmhhcyhhKSlyZXR1cm4gbDtmb3IobC5zZXQoYSxudWxsKSx0PXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSksdT0wO3U8dC5sZW5ndGg7dSsrKXt2YXIgZj10W3VdO2lmKCEoZlt0Zl18fGZbQ2FdfHxhPT09ImxpbmsiJiZmLmdldEF0dHJpYnV0ZSgicmVsIik9PT0ic3R5bGVzaGVldCIpJiZmLm5hbWVzcGFjZVVSSSE9PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIpe3ZhciBvPWYuZ2V0QXR0cmlidXRlKGUpfHwiIjtvPWErbzt2YXIgZD1sLmdldChvKTtkP2QucHVzaChmKTpsLnNldChvLFtmXSl9fXJldHVybiBsfWZ1bmN0aW9uIERjKGEsZSx0KXthPWEub3duZXJEb2N1bWVudHx8YSxhLmhlYWQuaW5zZXJ0QmVmb3JlKHQsZT09PSJ0aXRsZSI/YS5xdWVyeVNlbGVjdG9yKCJoZWFkID4gdGl0bGUiKTpudWxsKX1mdW5jdGlvbiBSUyhhLGUsdCl7aWYodD09PTF8fGUuaXRlbVByb3AhPW51bGwpcmV0dXJuITE7c3dpdGNoKGEpe2Nhc2UibWV0YSI6Y2FzZSJ0aXRsZSI6cmV0dXJuITA7Y2FzZSJzdHlsZSI6aWYodHlwZW9mIGUucHJlY2VkZW5jZSE9InN0cmluZyJ8fHR5cGVvZiBlLmhyZWYhPSJzdHJpbmcifHxlLmhyZWY9PT0iIilicmVhaztyZXR1cm4hMDtjYXNlImxpbmsiOmlmKHR5cGVvZiBlLnJlbCE9InN0cmluZyJ8fHR5cGVvZiBlLmhyZWYhPSJzdHJpbmcifHxlLmhyZWY9PT0iInx8ZS5vbkxvYWR8fGUub25FcnJvcilicmVhaztyZXR1cm4gZS5yZWw9PT0ic3R5bGVzaGVldCI/KGE9ZS5kaXNhYmxlZCx0eXBlb2YgZS5wcmVjZWRlbmNlPT0ic3RyaW5nIiYmYT09bnVsbCk6ITA7Y2FzZSJzY3JpcHQiOmlmKGUuYXN5bmMmJnR5cGVvZiBlLmFzeW5jIT0iZnVuY3Rpb24iJiZ0eXBlb2YgZS5hc3luYyE9InN5bWJvbCImJiFlLm9uTG9hZCYmIWUub25FcnJvciYmZS5zcmMmJnR5cGVvZiBlLnNyYz09InN0cmluZyIpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gY0woYSl7cmV0dXJuIShhLnR5cGU9PT0ic3R5bGVzaGVldCImJihhLnN0YXRlLmxvYWRpbmcmMyk9PT0wKX1mdW5jdGlvbiBxUyhhLGUsdCxsKXtpZih0LnR5cGU9PT0ic3R5bGVzaGVldCImJih0eXBlb2YgbC5tZWRpYSE9InN0cmluZyJ8fG1hdGNoTWVkaWEobC5tZWRpYSkubWF0Y2hlcyE9PSExKSYmKHQuc3RhdGUubG9hZGluZyY0KT09PTApe2lmKHQuaW5zdGFuY2U9PT1udWxsKXt2YXIgdT1GbChsLmhyZWYpLGY9ZS5xdWVyeVNlbGVjdG9yKHNmKHUpKTtpZihmKXtlPWYuX3AsZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0IiYmdHlwZW9mIGUudGhlbj09ImZ1bmN0aW9uIiYmKGEuY291bnQrKyxhPVhvLmJpbmQoYSksZS50aGVuKGEsYSkpLHQuc3RhdGUubG9hZGluZ3w9NCx0Lmluc3RhbmNlPWYseGEoZik7cmV0dXJufWY9ZS5vd25lckRvY3VtZW50fHxlLGw9ckwobCksKHU9ZGUuZ2V0KHUpKSYmbm4obCx1KSxmPWYuY3JlYXRlRWxlbWVudCgibGluayIpLHhhKGYpO3ZhciBvPWY7by5fcD1uZXcgUHJvbWlzZShmdW5jdGlvbihkLGkpe28ub25sb2FkPWQsby5vbmVycm9yPWl9KSx2YShmLCJsaW5rIixsKSx0Lmluc3RhbmNlPWZ9YS5zdHlsZXNoZWV0cz09PW51bGwmJihhLnN0eWxlc2hlZXRzPW5ldyBNYXApLGEuc3R5bGVzaGVldHMuc2V0KHQsZSksKGU9dC5zdGF0ZS5wcmVsb2FkKSYmKHQuc3RhdGUubG9hZGluZyYzKT09PTAmJihhLmNvdW50KyssdD1Yby5iaW5kKGEpLGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsdCksZS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsdCkpfX12YXIgdnM9MDtmdW5jdGlvbiBPUyhhLGUpe3JldHVybiBhLnN0eWxlc2hlZXRzJiZhLmNvdW50PT09MCYmeG8oYSxhLnN0eWxlc2hlZXRzKSwwPGEuY291bnR8fDA8YS5pbWdDb3VudD9mdW5jdGlvbih0KXt2YXIgbD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYoYS5zdHlsZXNoZWV0cyYmeG8oYSxhLnN0eWxlc2hlZXRzKSxhLnVuc3VzcGVuZCl7dmFyIGY9YS51bnN1c3BlbmQ7YS51bnN1c3BlbmQ9bnVsbCxmKCl9fSw2ZTQrZSk7MDxhLmltZ0J5dGVzJiZ2cz09PTAmJih2cz02MjUwMCpwUygpKTt2YXIgdT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYoYS53YWl0aW5nRm9ySW1hZ2VzPSExLGEuY291bnQ9PT0wJiYoYS5zdHlsZXNoZWV0cyYmeG8oYSxhLnN0eWxlc2hlZXRzKSxhLnVuc3VzcGVuZCkpe3ZhciBmPWEudW5zdXNwZW5kO2EudW5zdXNwZW5kPW51bGwsZigpfX0sKGEuaW1nQnl0ZXM+dnM/NTA6ODAwKStlKTtyZXR1cm4gYS51bnN1c3BlbmQ9dCxmdW5jdGlvbigpe2EudW5zdXNwZW5kPW51bGwsY2xlYXJUaW1lb3V0KGwpLGNsZWFyVGltZW91dCh1KX19Om51bGx9ZnVuY3Rpb24gWG8oKXtpZih0aGlzLmNvdW50LS0sdGhpcy5jb3VudD09PTAmJih0aGlzLmltZ0NvdW50PT09MHx8IXRoaXMud2FpdGluZ0ZvckltYWdlcykpe2lmKHRoaXMuc3R5bGVzaGVldHMpeG8odGhpcyx0aGlzLnN0eWxlc2hlZXRzKTtlbHNlIGlmKHRoaXMudW5zdXNwZW5kKXt2YXIgYT10aGlzLnVuc3VzcGVuZDt0aGlzLnVuc3VzcGVuZD1udWxsLGEoKX19fXZhciBWbz1udWxsO2Z1bmN0aW9uIHhvKGEsZSl7YS5zdHlsZXNoZWV0cz1udWxsLGEudW5zdXNwZW5kIT09bnVsbCYmKGEuY291bnQrKyxWbz1uZXcgTWFwLGUuZm9yRWFjaChVUyxhKSxWbz1udWxsLFhvLmNhbGwoYSkpfWZ1bmN0aW9uIFVTKGEsZSl7aWYoIShlLnN0YXRlLmxvYWRpbmcmNCkpe3ZhciB0PVZvLmdldChhKTtpZih0KXZhciBsPXQuZ2V0KG51bGwpO2Vsc2V7dD1uZXcgTWFwLFZvLnNldChhLHQpO2Zvcih2YXIgdT1hLnF1ZXJ5U2VsZWN0b3JBbGwoImxpbmtbZGF0YS1wcmVjZWRlbmNlXSxzdHlsZVtkYXRhLXByZWNlZGVuY2VdIiksZj0wO2Y8dS5sZW5ndGg7ZisrKXt2YXIgbz11W2ZdOyhvLm5vZGVOYW1lPT09IkxJTksifHxvLmdldEF0dHJpYnV0ZSgibWVkaWEiKSE9PSJub3QgYWxsIikmJih0LnNldChvLmRhdGFzZXQucHJlY2VkZW5jZSxvKSxsPW8pfWwmJnQuc2V0KG51bGwsbCl9dT1lLmluc3RhbmNlLG89dS5nZXRBdHRyaWJ1dGUoImRhdGEtcHJlY2VkZW5jZSIpLGY9dC5nZXQobyl8fGwsZj09PWwmJnQuc2V0KG51bGwsdSksdC5zZXQobyx1KSx0aGlzLmNvdW50KyssbD1Yby5iaW5kKHRoaXMpLHUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsbCksdS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsbCksZj9mLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHUsZi5uZXh0U2libGluZyk6KGE9YS5ub2RlVHlwZT09PTk/YS5oZWFkOmEsYS5pbnNlcnRCZWZvcmUodSxhLmZpcnN0Q2hpbGQpKSxlLnN0YXRlLmxvYWRpbmd8PTR9fXZhciBqdT17JCR0eXBlb2Y6T2UsUHJvdmlkZXI6bnVsbCxDb25zdW1lcjpudWxsLF9jdXJyZW50VmFsdWU6enQsX2N1cnJlbnRWYWx1ZTI6enQsX3RocmVhZENvdW50OjB9O2Z1bmN0aW9uIHpTKGEsZSx0LGwsdSxmLG8sZCxpKXt0aGlzLnRhZz0xLHRoaXMuY29udGFpbmVySW5mbz1hLHRoaXMucGluZ0NhY2hlPXRoaXMuY3VycmVudD10aGlzLnBlbmRpbmdDaGlsZHJlbj1udWxsLHRoaXMudGltZW91dEhhbmRsZT0tMSx0aGlzLmNhbGxiYWNrTm9kZT10aGlzLm5leHQ9dGhpcy5wZW5kaW5nQ29udGV4dD10aGlzLmNvbnRleHQ9dGhpcy5jYW5jZWxQZW5kaW5nQ29tbWl0PW51bGwsdGhpcy5jYWxsYmFja1ByaW9yaXR5PTAsdGhpcy5leHBpcmF0aW9uVGltZXM9amQoLTEpLHRoaXMuZW50YW5nbGVkTGFuZXM9dGhpcy5zaGVsbFN1c3BlbmRDb3VudGVyPXRoaXMuZXJyb3JSZWNvdmVyeURpc2FibGVkTGFuZXM9dGhpcy5leHBpcmVkTGFuZXM9dGhpcy53YXJtTGFuZXM9dGhpcy5waW5nZWRMYW5lcz10aGlzLnN1c3BlbmRlZExhbmVzPXRoaXMucGVuZGluZ0xhbmVzPTAsdGhpcy5lbnRhbmdsZW1lbnRzPWpkKDApLHRoaXMuaGlkZGVuVXBkYXRlcz1qZChudWxsKSx0aGlzLmlkZW50aWZpZXJQcmVmaXg9bCx0aGlzLm9uVW5jYXVnaHRFcnJvcj11LHRoaXMub25DYXVnaHRFcnJvcj1mLHRoaXMub25SZWNvdmVyYWJsZUVycm9yPW8sdGhpcy5wb29sZWRDYWNoZT1udWxsLHRoaXMucG9vbGVkQ2FjaGVMYW5lcz0wLHRoaXMuZm9ybVN0YXRlPWksdGhpcy5pbmNvbXBsZXRlVHJhbnNpdGlvbnM9bmV3IE1hcH1mdW5jdGlvbiBtTChhLGUsdCxsLHUsZixvLGQsaSxtLHgsZyl7cmV0dXJuIGE9bmV3IHpTKGEsZSx0LG8saSxtLHgsZyxkKSxlPTEsZj09PSEwJiYoZXw9MjQpLGY9X2EoMyxudWxsLG51bGwsZSksYS5jdXJyZW50PWYsZi5zdGF0ZU5vZGU9YSxlPXppKCksZS5yZWZDb3VudCsrLGEucG9vbGVkQ2FjaGU9ZSxlLnJlZkNvdW50KyssZi5tZW1vaXplZFN0YXRlPXtlbGVtZW50OmwsaXNEZWh5ZHJhdGVkOnQsY2FjaGU6ZX0sTmkoZiksYX1mdW5jdGlvbiBwTChhKXtyZXR1cm4gYT8oYT1DbCxhKTpDbH1mdW5jdGlvbiBMTChhLGUsdCxsLHUsZil7dT1wTCh1KSxsLmNvbnRleHQ9PT1udWxsP2wuY29udGV4dD11OmwucGVuZGluZ0NvbnRleHQ9dSxsPW10KGUpLGwucGF5bG9hZD17ZWxlbWVudDp0fSxmPWY9PT12b2lkIDA/bnVsbDpmLGYhPT1udWxsJiYobC5jYWxsYmFjaz1mKSx0PXB0KGEsbCxlKSx0IT09bnVsbCYmKE9hKHQsYSxlKSxCdSh0LGEsZSkpfWZ1bmN0aW9uIFRjKGEsZSl7aWYoYT1hLm1lbW9pemVkU3RhdGUsYSE9PW51bGwmJmEuZGVoeWRyYXRlZCE9PW51bGwpe3ZhciB0PWEucmV0cnlMYW5lO2EucmV0cnlMYW5lPXQhPT0wJiZ0PGU/dDplfX1mdW5jdGlvbiBjbihhLGUpe1RjKGEsZSksKGE9YS5hbHRlcm5hdGUpJiZUYyhhLGUpfWZ1bmN0aW9uIGhMKGEpe2lmKGEudGFnPT09MTN8fGEudGFnPT09MzEpe3ZhciBlPWp0KGEsNjcxMDg4NjQpO2UhPT1udWxsJiZPYShlLGEsNjcxMDg4NjQpLGNuKGEsNjcxMDg4NjQpfX1mdW5jdGlvbiBCYyhhKXtpZihhLnRhZz09PTEzfHxhLnRhZz09PTMxKXt2YXIgZT1RYSgpO2U9eWkoZSk7dmFyIHQ9anQoYSxlKTt0IT09bnVsbCYmT2EodCxhLGUpLGNuKGEsZSl9fXZhciBabz0hMDtmdW5jdGlvbiBFUyhhLGUsdCxsKXt2YXIgdT1ELlQ7RC5UPW51bGw7dmFyIGY9UC5wO3RyeXtQLnA9MixtbihhLGUsdCxsKX1maW5hbGx5e1AucD1mLEQuVD11fX1mdW5jdGlvbiBIUyhhLGUsdCxsKXt2YXIgdT1ELlQ7RC5UPW51bGw7dmFyIGY9UC5wO3RyeXtQLnA9OCxtbihhLGUsdCxsKX1maW5hbGx5e1AucD1mLEQuVD11fX1mdW5jdGlvbiBtbihhLGUsdCxsKXtpZihabyl7dmFyIHU9eGkobCk7aWYodT09PW51bGwpSXMoYSxlLGwsUW8sdCksa2MoYSxsKTtlbHNlIGlmKEZTKHUsYSxlLHQsbCkpbC5zdG9wUHJvcGFnYXRpb24oKTtlbHNlIGlmKGtjKGEsbCksZSY0JiYtMTxOUy5pbmRleE9mKGEpKXtmb3IoO3UhPT1udWxsOyl7dmFyIGY9UGwodSk7aWYoZiE9PW51bGwpc3dpdGNoKGYudGFnKXtjYXNlIDM6aWYoZj1mLnN0YXRlTm9kZSxmLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe3ZhciBvPXF0KGYucGVuZGluZ0xhbmVzKTtpZihvIT09MCl7dmFyIGQ9Zjtmb3IoZC5wZW5kaW5nTGFuZXN8PTIsZC5lbnRhbmdsZWRMYW5lc3w9MjtvOyl7dmFyIGk9MTw8MzEtWmEobyk7ZC5lbnRhbmdsZW1lbnRzWzFdfD1pLG8mPX5pfUllKGYpLChfJjYpPT09MCYmKHpvPVhhKCkrNTAwLGRmKDAsITEpKX19YnJlYWs7Y2FzZSAzMTpjYXNlIDEzOmQ9anQoZiwyKSxkIT09bnVsbCYmT2EoZCxmLDIpLG9kKCksY24oZiwyKX1pZihmPXhpKGwpLGY9PT1udWxsJiZJcyhhLGUsbCxRbyx0KSxmPT09dSlicmVhazt1PWZ9dSE9PW51bGwmJmwuc3RvcFByb3BhZ2F0aW9uKCl9ZWxzZSBJcyhhLGUsbCxudWxsLHQpfX1mdW5jdGlvbiB4aShhKXtyZXR1cm4gYT1NaShhKSxwbihhKX12YXIgUW89bnVsbDtmdW5jdGlvbiBwbihhKXtpZihRbz1udWxsLGE9cGwoYSksYSE9PW51bGwpe3ZhciBlPVd1KGEpO2lmKGU9PT1udWxsKWE9bnVsbDtlbHNle3ZhciB0PWUudGFnO2lmKHQ9PT0xMyl7aWYoYT16YyhlKSxhIT09bnVsbClyZXR1cm4gYTthPW51bGx9ZWxzZSBpZih0PT09MzEpe2lmKGE9RWMoZSksYSE9PW51bGwpcmV0dXJuIGE7YT1udWxsfWVsc2UgaWYodD09PTMpe2lmKGUuc3RhdGVOb2RlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpcmV0dXJuIGUudGFnPT09Mz9lLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGw7YT1udWxsfWVsc2UgZSE9PWEmJihhPW51bGwpfX1yZXR1cm4gUW89YSxudWxsfWZ1bmN0aW9uIHhMKGEpe3N3aXRjaChhKXtjYXNlImJlZm9yZXRvZ2dsZSI6Y2FzZSJjYW5jZWwiOmNhc2UiY2xpY2siOmNhc2UiY2xvc2UiOmNhc2UiY29udGV4dG1lbnUiOmNhc2UiY29weSI6Y2FzZSJjdXQiOmNhc2UiYXV4Y2xpY2siOmNhc2UiZGJsY2xpY2siOmNhc2UiZHJhZ2VuZCI6Y2FzZSJkcmFnc3RhcnQiOmNhc2UiZHJvcCI6Y2FzZSJmb2N1c2luIjpjYXNlImZvY3Vzb3V0IjpjYXNlImlucHV0IjpjYXNlImludmFsaWQiOmNhc2Uia2V5ZG93biI6Y2FzZSJrZXlwcmVzcyI6Y2FzZSJrZXl1cCI6Y2FzZSJtb3VzZWRvd24iOmNhc2UibW91c2V1cCI6Y2FzZSJwYXN0ZSI6Y2FzZSJwYXVzZSI6Y2FzZSJwbGF5IjpjYXNlInBvaW50ZXJjYW5jZWwiOmNhc2UicG9pbnRlcmRvd24iOmNhc2UicG9pbnRlcnVwIjpjYXNlInJhdGVjaGFuZ2UiOmNhc2UicmVzZXQiOmNhc2UicmVzaXplIjpjYXNlInNlZWtlZCI6Y2FzZSJzdWJtaXQiOmNhc2UidG9nZ2xlIjpjYXNlInRvdWNoY2FuY2VsIjpjYXNlInRvdWNoZW5kIjpjYXNlInRvdWNoc3RhcnQiOmNhc2Uidm9sdW1lY2hhbmdlIjpjYXNlImNoYW5nZSI6Y2FzZSJzZWxlY3Rpb25jaGFuZ2UiOmNhc2UidGV4dElucHV0IjpjYXNlImNvbXBvc2l0aW9uc3RhcnQiOmNhc2UiY29tcG9zaXRpb25lbmQiOmNhc2UiY29tcG9zaXRpb251cGRhdGUiOmNhc2UiYmVmb3JlYmx1ciI6Y2FzZSJhZnRlcmJsdXIiOmNhc2UiYmVmb3JlaW5wdXQiOmNhc2UiYmx1ciI6Y2FzZSJmdWxsc2NyZWVuY2hhbmdlIjpjYXNlImZvY3VzIjpjYXNlImhhc2hjaGFuZ2UiOmNhc2UicG9wc3RhdGUiOmNhc2Uic2VsZWN0IjpjYXNlInNlbGVjdHN0YXJ0IjpyZXR1cm4gMjtjYXNlImRyYWciOmNhc2UiZHJhZ2VudGVyIjpjYXNlImRyYWdleGl0IjpjYXNlImRyYWdsZWF2ZSI6Y2FzZSJkcmFnb3ZlciI6Y2FzZSJtb3VzZW1vdmUiOmNhc2UibW91c2VvdXQiOmNhc2UibW91c2VvdmVyIjpjYXNlInBvaW50ZXJtb3ZlIjpjYXNlInBvaW50ZXJvdXQiOmNhc2UicG9pbnRlcm92ZXIiOmNhc2Uic2Nyb2xsIjpjYXNlInRvdWNobW92ZSI6Y2FzZSJ3aGVlbCI6Y2FzZSJtb3VzZWVudGVyIjpjYXNlIm1vdXNlbGVhdmUiOmNhc2UicG9pbnRlcmVudGVyIjpjYXNlInBvaW50ZXJsZWF2ZSI6cmV0dXJuIDg7Y2FzZSJtZXNzYWdlIjpzd2l0Y2goTWgoKSl7Y2FzZSBHYzpyZXR1cm4gMjtjYXNlIF9jOnJldHVybiA4O2Nhc2UgeW86Y2FzZSBEaDpyZXR1cm4gMzI7Y2FzZSBQYzpyZXR1cm4gMjY4NDM1NDU2O2RlZmF1bHQ6cmV0dXJuIDMyfWRlZmF1bHQ6cmV0dXJuIDMyfX12YXIgU2k9ITEseHQ9bnVsbCxTdD1udWxsLGd0PW51bGwsS3U9bmV3IE1hcCxKdT1uZXcgTWFwLGZ0PVtdLE5TPSJtb3VzZWRvd24gbW91c2V1cCB0b3VjaGNhbmNlbCB0b3VjaGVuZCB0b3VjaHN0YXJ0IGF1eGNsaWNrIGRibGNsaWNrIHBvaW50ZXJjYW5jZWwgcG9pbnRlcmRvd24gcG9pbnRlcnVwIGRyYWdlbmQgZHJhZ3N0YXJ0IGRyb3AgY29tcG9zaXRpb25lbmQgY29tcG9zaXRpb25zdGFydCBrZXlkb3duIGtleXByZXNzIGtleXVwIGlucHV0IHRleHRJbnB1dCBjb3B5IGN1dCBwYXN0ZSBjbGljayBjaGFuZ2UgY29udGV4dG1lbnUgcmVzZXQiLnNwbGl0KCIgIik7ZnVuY3Rpb24ga2MoYSxlKXtzd2l0Y2goYSl7Y2FzZSJmb2N1c2luIjpjYXNlImZvY3Vzb3V0Ijp4dD1udWxsO2JyZWFrO2Nhc2UiZHJhZ2VudGVyIjpjYXNlImRyYWdsZWF2ZSI6U3Q9bnVsbDticmVhaztjYXNlIm1vdXNlb3ZlciI6Y2FzZSJtb3VzZW91dCI6Z3Q9bnVsbDticmVhaztjYXNlInBvaW50ZXJvdmVyIjpjYXNlInBvaW50ZXJvdXQiOkt1LmRlbGV0ZShlLnBvaW50ZXJJZCk7YnJlYWs7Y2FzZSJnb3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJsb3N0cG9pbnRlcmNhcHR1cmUiOkp1LmRlbGV0ZShlLnBvaW50ZXJJZCl9fWZ1bmN0aW9uIFN1KGEsZSx0LGwsdSxmKXtyZXR1cm4gYT09PW51bGx8fGEubmF0aXZlRXZlbnQhPT1mPyhhPXtibG9ja2VkT246ZSxkb21FdmVudE5hbWU6dCxldmVudFN5c3RlbUZsYWdzOmwsbmF0aXZlRXZlbnQ6Zix0YXJnZXRDb250YWluZXJzOlt1XX0sZSE9PW51bGwmJihlPVBsKGUpLGUhPT1udWxsJiZoTChlKSksYSk6KGEuZXZlbnRTeXN0ZW1GbGFnc3w9bCxlPWEudGFyZ2V0Q29udGFpbmVycyx1IT09bnVsbCYmZS5pbmRleE9mKHUpPT09LTEmJmUucHVzaCh1KSxhKX1mdW5jdGlvbiBGUyhhLGUsdCxsLHUpe3N3aXRjaChlKXtjYXNlImZvY3VzaW4iOnJldHVybiB4dD1TdSh4dCxhLGUsdCxsLHUpLCEwO2Nhc2UiZHJhZ2VudGVyIjpyZXR1cm4gU3Q9U3UoU3QsYSxlLHQsbCx1KSwhMDtjYXNlIm1vdXNlb3ZlciI6cmV0dXJuIGd0PVN1KGd0LGEsZSx0LGwsdSksITA7Y2FzZSJwb2ludGVyb3ZlciI6dmFyIGY9dS5wb2ludGVySWQ7cmV0dXJuIEt1LnNldChmLFN1KEt1LmdldChmKXx8bnVsbCxhLGUsdCxsLHUpKSwhMDtjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpyZXR1cm4gZj11LnBvaW50ZXJJZCxKdS5zZXQoZixTdShKdS5nZXQoZil8fG51bGwsYSxlLHQsbCx1KSksITB9cmV0dXJuITF9ZnVuY3Rpb24gU0woYSl7dmFyIGU9cGwoYS50YXJnZXQpO2lmKGUhPT1udWxsKXt2YXIgdD1XdShlKTtpZih0IT09bnVsbCl7aWYoZT10LnRhZyxlPT09MTMpe2lmKGU9emModCksZSE9PW51bGwpe2EuYmxvY2tlZE9uPWUsbXIoYS5wcmlvcml0eSxmdW5jdGlvbigpe0JjKHQpfSk7cmV0dXJufX1lbHNlIGlmKGU9PT0zMSl7aWYoZT1FYyh0KSxlIT09bnVsbCl7YS5ibG9ja2VkT249ZSxtcihhLnByaW9yaXR5LGZ1bmN0aW9uKCl7QmModCl9KTtyZXR1cm59fWVsc2UgaWYoZT09PTMmJnQuc3RhdGVOb2RlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe2EuYmxvY2tlZE9uPXQudGFnPT09Mz90LnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGw7cmV0dXJufX19YS5ibG9ja2VkT249bnVsbH1mdW5jdGlvbiBTbyhhKXtpZihhLmJsb2NrZWRPbiE9PW51bGwpcmV0dXJuITE7Zm9yKHZhciBlPWEudGFyZ2V0Q29udGFpbmVyczswPGUubGVuZ3RoOyl7dmFyIHQ9eGkoYS5uYXRpdmVFdmVudCk7aWYodD09PW51bGwpe3Q9YS5uYXRpdmVFdmVudDt2YXIgbD1uZXcgdC5jb25zdHJ1Y3Rvcih0LnR5cGUsdCk7enM9bCx0LnRhcmdldC5kaXNwYXRjaEV2ZW50KGwpLHpzPW51bGx9ZWxzZSByZXR1cm4gZT1QbCh0KSxlIT09bnVsbCYmaEwoZSksYS5ibG9ja2VkT249dCwhMTtlLnNoaWZ0KCl9cmV0dXJuITB9ZnVuY3Rpb24gd2MoYSxlLHQpe1NvKGEpJiZ0LmRlbGV0ZShlKX1mdW5jdGlvbiBHUygpe1NpPSExLHh0IT09bnVsbCYmU28oeHQpJiYoeHQ9bnVsbCksU3QhPT1udWxsJiZTbyhTdCkmJihTdD1udWxsKSxndCE9PW51bGwmJlNvKGd0KSYmKGd0PW51bGwpLEt1LmZvckVhY2god2MpLEp1LmZvckVhY2god2MpfWZ1bmN0aW9uIGVvKGEsZSl7YS5ibG9ja2VkT249PT1lJiYoYS5ibG9ja2VkT249bnVsbCxTaXx8KFNpPSEwLHBhLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2socGEudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksR1MpKSl9dmFyIHRvPW51bGw7ZnVuY3Rpb24gUmMoYSl7dG8hPT1hJiYodG89YSxwYS51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKHBhLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LGZ1bmN0aW9uKCl7dG89PT1hJiYodG89bnVsbCk7Zm9yKHZhciBlPTA7ZTxhLmxlbmd0aDtlKz0zKXt2YXIgdD1hW2VdLGw9YVtlKzFdLHU9YVtlKzJdO2lmKHR5cGVvZiBsIT0iZnVuY3Rpb24iKXtpZihwbihsfHx0KT09PW51bGwpY29udGludWU7YnJlYWt9dmFyIGY9UGwodCk7ZiE9PW51bGwmJihhLnNwbGljZShlLDMpLGUtPTMsV3MoZix7cGVuZGluZzohMCxkYXRhOnUsbWV0aG9kOnQubWV0aG9kLGFjdGlvbjpsfSxsLHUpKX19KSl9ZnVuY3Rpb24gR2woYSl7ZnVuY3Rpb24gZShpKXtyZXR1cm4gZW8oaSxhKX14dCE9PW51bGwmJmVvKHh0LGEpLFN0IT09bnVsbCYmZW8oU3QsYSksZ3QhPT1udWxsJiZlbyhndCxhKSxLdS5mb3JFYWNoKGUpLEp1LmZvckVhY2goZSk7Zm9yKHZhciB0PTA7dDxmdC5sZW5ndGg7dCsrKXt2YXIgbD1mdFt0XTtsLmJsb2NrZWRPbj09PWEmJihsLmJsb2NrZWRPbj1udWxsKX1mb3IoOzA8ZnQubGVuZ3RoJiYodD1mdFswXSx0LmJsb2NrZWRPbj09PW51bGwpOylTTCh0KSx0LmJsb2NrZWRPbj09PW51bGwmJmZ0LnNoaWZ0KCk7aWYodD0oYS5vd25lckRvY3VtZW50fHxhKS4kJHJlYWN0Rm9ybVJlcGxheSx0IT1udWxsKWZvcihsPTA7bDx0Lmxlbmd0aDtsKz0zKXt2YXIgdT10W2xdLGY9dFtsKzFdLG89dVtVYV18fG51bGw7aWYodHlwZW9mIGY9PSJmdW5jdGlvbiIpb3x8UmModCk7ZWxzZSBpZihvKXt2YXIgZD1udWxsO2lmKGYmJmYuaGFzQXR0cmlidXRlKCJmb3JtQWN0aW9uIikpe2lmKHU9ZixvPWZbVWFdfHxudWxsKWQ9by5mb3JtQWN0aW9uO2Vsc2UgaWYocG4odSkhPT1udWxsKWNvbnRpbnVlfWVsc2UgZD1vLmFjdGlvbjt0eXBlb2YgZD09ImZ1bmN0aW9uIj90W2wrMV09ZDoodC5zcGxpY2UobCwzKSxsLT0zKSxSYyh0KX19fWZ1bmN0aW9uIGdMKCl7ZnVuY3Rpb24gYShmKXtmLmNhbkludGVyY2VwdCYmZi5pbmZvPT09InJlYWN0LXRyYW5zaXRpb24iJiZmLmludGVyY2VwdCh7aGFuZGxlcjpmdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihvKXtyZXR1cm4gdT1vfSl9LGZvY3VzUmVzZXQ6Im1hbnVhbCIsc2Nyb2xsOiJtYW51YWwifSl9ZnVuY3Rpb24gZSgpe3UhPT1udWxsJiYodSgpLHU9bnVsbCksbHx8c2V0VGltZW91dCh0LDIwKX1mdW5jdGlvbiB0KCl7aWYoIWwmJiFuYXZpZ2F0aW9uLnRyYW5zaXRpb24pe3ZhciBmPW5hdmlnYXRpb24uY3VycmVudEVudHJ5O2YmJmYudXJsIT1udWxsJiZuYXZpZ2F0aW9uLm5hdmlnYXRlKGYudXJsLHtzdGF0ZTpmLmdldFN0YXRlKCksaW5mbzoicmVhY3QtdHJhbnNpdGlvbiIsaGlzdG9yeToicmVwbGFjZSJ9KX19aWYodHlwZW9mIG5hdmlnYXRpb249PSJvYmplY3QiKXt2YXIgbD0hMSx1PW51bGw7cmV0dXJuIG5hdmlnYXRpb24uYWRkRXZlbnRMaXN0ZW5lcigibmF2aWdhdGUiLGEpLG5hdmlnYXRpb24uYWRkRXZlbnRMaXN0ZW5lcigibmF2aWdhdGVzdWNjZXNzIixlKSxuYXZpZ2F0aW9uLmFkZEV2ZW50TGlzdGVuZXIoIm5hdmlnYXRlZXJyb3IiLGUpLHNldFRpbWVvdXQodCwxMDApLGZ1bmN0aW9uKCl7bD0hMCxuYXZpZ2F0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm5hdmlnYXRlIixhKSxuYXZpZ2F0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm5hdmlnYXRlc3VjY2VzcyIsZSksbmF2aWdhdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKCJuYXZpZ2F0ZWVycm9yIixlKSx1IT09bnVsbCYmKHUoKSx1PW51bGwpfX19ZnVuY3Rpb24gTG4oYSl7dGhpcy5faW50ZXJuYWxSb290PWF9aWQucHJvdG90eXBlLnJlbmRlcj1Mbi5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGEpe3ZhciBlPXRoaXMuX2ludGVybmFsUm9vdDtpZihlPT09bnVsbCl0aHJvdyBFcnJvcihDKDQwOSkpO3ZhciB0PWUuY3VycmVudCxsPVFhKCk7TEwodCxsLGEsZSxudWxsLG51bGwpfTtpZC5wcm90b3R5cGUudW5tb3VudD1Mbi5wcm90b3R5cGUudW5tb3VudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuX2ludGVybmFsUm9vdDtpZihhIT09bnVsbCl7dGhpcy5faW50ZXJuYWxSb290PW51bGw7dmFyIGU9YS5jb250YWluZXJJbmZvO0xMKGEuY3VycmVudCwyLG51bGwsYSxudWxsLG51bGwpLG9kKCksZVtfbF09bnVsbH19O2Z1bmN0aW9uIGlkKGEpe3RoaXMuX2ludGVybmFsUm9vdD1hfWlkLnByb3RvdHlwZS51bnN0YWJsZV9zY2hlZHVsZUh5ZHJhdGlvbj1mdW5jdGlvbihhKXtpZihhKXt2YXIgZT1ZYygpO2E9e2Jsb2NrZWRPbjpudWxsLHRhcmdldDphLHByaW9yaXR5OmV9O2Zvcih2YXIgdD0wO3Q8ZnQubGVuZ3RoJiZlIT09MCYmZTxmdFt0XS5wcmlvcml0eTt0KyspO2Z0LnNwbGljZSh0LDAsYSksdD09PTAmJlNMKGEpfX07dmFyIHFjPU9jLnZlcnNpb247aWYocWMhPT0iMTkuMi42Iil0aHJvdyBFcnJvcihDKDUyNyxxYywiMTkuMi42IikpO1AuZmluZERPTU5vZGU9ZnVuY3Rpb24oYSl7dmFyIGU9YS5fcmVhY3RJbnRlcm5hbHM7aWYoZT09PXZvaWQgMCl0aHJvdyB0eXBlb2YgYS5yZW5kZXI9PSJmdW5jdGlvbiI/RXJyb3IoQygxODgpKTooYT1PYmplY3Qua2V5cyhhKS5qb2luKCIsIiksRXJyb3IoQygyNjgsYSkpKTtyZXR1cm4gYT1naChlKSxhPWEhPT1udWxsP0hjKGEpOm51bGwsYT1hPT09bnVsbD9udWxsOmEuc3RhdGVOb2RlLGF9O3ZhciBfUz17YnVuZGxlVHlwZTowLHZlcnNpb246IjE5LjIuNiIscmVuZGVyZXJQYWNrYWdlTmFtZToicmVhY3QtZG9tIixjdXJyZW50RGlzcGF0Y2hlclJlZjpELHJlY29uY2lsZXJWZXJzaW9uOiIxOS4yLjYifTtpZih0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fPCJ1IiYmKGd1PV9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXywhZ3UuaXNEaXNhYmxlZCYmZ3Uuc3VwcG9ydHNGaWJlcikpdHJ5eyR1PWd1LmluamVjdChfUyksVmE9Z3V9Y2F0Y2h7fXZhciBndTtuZC5jcmVhdGVSb290PWZ1bmN0aW9uKGEsZSl7aWYoIVVjKGEpKXRocm93IEVycm9yKEMoMjk5KSk7dmFyIHQ9ITEsbD0iIix1PW5wLGY9cnAsbz1jcDtyZXR1cm4gZSE9bnVsbCYmKGUudW5zdGFibGVfc3RyaWN0TW9kZT09PSEwJiYodD0hMCksZS5pZGVudGlmaWVyUHJlZml4IT09dm9pZCAwJiYobD1lLmlkZW50aWZpZXJQcmVmaXgpLGUub25VbmNhdWdodEVycm9yIT09dm9pZCAwJiYodT1lLm9uVW5jYXVnaHRFcnJvciksZS5vbkNhdWdodEVycm9yIT09dm9pZCAwJiYoZj1lLm9uQ2F1Z2h0RXJyb3IpLGUub25SZWNvdmVyYWJsZUVycm9yIT09dm9pZCAwJiYobz1lLm9uUmVjb3ZlcmFibGVFcnJvcikpLGU9bUwoYSwxLCExLG51bGwsbnVsbCx0LGwsbnVsbCx1LGYsbyxnTCksYVtfbF09ZS5jdXJyZW50LHNuKGEpLG5ldyBMbihlKX07bmQuaHlkcmF0ZVJvb3Q9ZnVuY3Rpb24oYSxlLHQpe2lmKCFVYyhhKSl0aHJvdyBFcnJvcihDKDI5OSkpO3ZhciBsPSExLHU9IiIsZj1ucCxvPXJwLGQ9Y3AsaT1udWxsO3JldHVybiB0IT1udWxsJiYodC51bnN0YWJsZV9zdHJpY3RNb2RlPT09ITAmJihsPSEwKSx0LmlkZW50aWZpZXJQcmVmaXghPT12b2lkIDAmJih1PXQuaWRlbnRpZmllclByZWZpeCksdC5vblVuY2F1Z2h0RXJyb3IhPT12b2lkIDAmJihmPXQub25VbmNhdWdodEVycm9yKSx0Lm9uQ2F1Z2h0RXJyb3IhPT12b2lkIDAmJihvPXQub25DYXVnaHRFcnJvciksdC5vblJlY292ZXJhYmxlRXJyb3IhPT12b2lkIDAmJihkPXQub25SZWNvdmVyYWJsZUVycm9yKSx0LmZvcm1TdGF0ZSE9PXZvaWQgMCYmKGk9dC5mb3JtU3RhdGUpKSxlPW1MKGEsMSwhMCxlLHQ/P251bGwsbCx1LGksZixvLGQsZ0wpLGUuY29udGV4dD1wTChudWxsKSx0PWUuY3VycmVudCxsPVFhKCksbD15aShsKSx1PW10KGwpLHUuY2FsbGJhY2s9bnVsbCxwdCh0LHUsbCksdD1sLGUuY3VycmVudC5sYW5lcz10LGVmKGUsdCksSWUoZSksYVtfbF09ZS5jdXJyZW50LHNuKGEpLG5ldyBpZChlKX07bmQudmVyc2lvbj0iMTkuMi42In0pO3ZhciB2TD1tZSgoeWcseUwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIElMKCl7aWYoISh0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fPiJ1Inx8dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSE9ImZ1bmN0aW9uIikpdHJ5e19fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShJTCl9Y2F0Y2goYSl7Y29uc29sZS5lcnJvcihhKX19SUwoKSx5TC5leHBvcnRzPUNMKCl9KTt2YXIgd0w9bWUoTGQ9PnsidXNlIHN0cmljdCI7dmFyIGNnPVN5bWJvbC5mb3IoInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50IiksbWc9U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKTtmdW5jdGlvbiBrTChhLGUsdCl7dmFyIGw9bnVsbDtpZih0IT09dm9pZCAwJiYobD0iIit0KSxlLmtleSE9PXZvaWQgMCYmKGw9IiIrZS5rZXkpLCJrZXkiaW4gZSl7dD17fTtmb3IodmFyIHUgaW4gZSl1IT09ImtleSImJih0W3VdPWVbdV0pfWVsc2UgdD1lO3JldHVybiBlPXQucmVmLHskJHR5cGVvZjpjZyx0eXBlOmEsa2V5OmwscmVmOmUhPT12b2lkIDA/ZTpudWxsLHByb3BzOnR9fUxkLkZyYWdtZW50PW1nO0xkLmpzeD1rTDtMZC5qc3hzPWtMfSk7dmFyIHZmPW1lKCh0SSxSTCk9PnsidXNlIHN0cmljdCI7UkwuZXhwb3J0cz13TCgpfSk7dmFyIHpMPXBlKEplKCksMSksRUw9cGUodkwoKSwxKTt2YXIgQj1wZShKZSgpLDEpO3ZhciBtZD1wZShKZSgpLDEpO3ZhciByZD0oLi4uYSk9PmEuZmlsdGVyKChlLHQsbCk9PiEhZSYmZS50cmltKCkhPT0iIiYmbC5pbmRleE9mKGUpPT09dCkuam9pbigiICIpLnRyaW0oKTt2YXIgQUw9YT0+YS5yZXBsYWNlKC8oW2EtejAtOV0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCk7dmFyIGJMPWE9PmEucmVwbGFjZSgvXihbQS1aXSl8W1xzLV9dKyhcdykvZywoZSx0LGwpPT5sP2wudG9VcHBlckNhc2UoKTp0LnRvTG93ZXJDYXNlKCkpO3ZhciBobj1hPT57bGV0IGU9YkwoYSk7cmV0dXJuIGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX07dmFyIHJmPXBlKEplKCksMSk7dmFyIGNkPXt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjI0LGhlaWdodDoyNCx2aWV3Qm94OiIwIDAgMjQgMjQiLGZpbGw6Im5vbmUiLHN0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VXaWR0aDoyLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifTt2YXIgTUw9YT0+e2ZvcihsZXQgZSBpbiBhKWlmKGUuc3RhcnRzV2l0aCgiYXJpYS0iKXx8ZT09PSJyb2xlInx8ZT09PSJ0aXRsZSIpcmV0dXJuITA7cmV0dXJuITF9O3ZhciBqbD1wZShKZSgpLDEpO3ZhciBQUz0oMCxqbC5jcmVhdGVDb250ZXh0KSh7fSk7dmFyIERMPSgpPT4oMCxqbC51c2VDb250ZXh0KShQUyk7dmFyIFRMPSgwLHJmLmZvcndhcmRSZWYpKCh7Y29sb3I6YSxzaXplOmUsc3Ryb2tlV2lkdGg6dCxhYnNvbHV0ZVN0cm9rZVdpZHRoOmwsY2xhc3NOYW1lOnU9IiIsY2hpbGRyZW46ZixpY29uTm9kZTpvLC4uLmR9LGkpPT57bGV0e3NpemU6bT0yNCxzdHJva2VXaWR0aDp4PTIsYWJzb2x1dGVTdHJva2VXaWR0aDpnPSExLGNvbG9yOkw9ImN1cnJlbnRDb2xvciIsY2xhc3NOYW1lOmg9IiJ9PURMKCk/P3t9LHk9bD8/Zz9OdW1iZXIodD8/eCkqMjQvTnVtYmVyKGU/P20pOnQ/P3g7cmV0dXJuKDAscmYuY3JlYXRlRWxlbWVudCkoInN2ZyIse3JlZjppLC4uLmNkLHdpZHRoOmU/P20/P2NkLndpZHRoLGhlaWdodDplPz9tPz9jZC5oZWlnaHQsc3Ryb2tlOmE/P0wsc3Ryb2tlV2lkdGg6eSxjbGFzc05hbWU6cmQoImx1Y2lkZSIsaCx1KSwuLi4hZiYmIU1MKGQpJiZ7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LC4uLmR9LFsuLi5vLm1hcCgoW2IsR10pPT4oMCxyZi5jcmVhdGVFbGVtZW50KShiLEcpKSwuLi5BcnJheS5pc0FycmF5KGYpP2Y6W2ZdXSl9KTt2YXIgaz0oYSxlKT0+e2xldCB0PSgwLG1kLmZvcndhcmRSZWYpKCh7Y2xhc3NOYW1lOmwsLi4udX0sZik9PigwLG1kLmNyZWF0ZUVsZW1lbnQpKFRMLHtyZWY6ZixpY29uTm9kZTplLGNsYXNzTmFtZTpyZChgbHVjaWRlLSR7QUwoaG4oYSkpfWAsYGx1Y2lkZS0ke2F9YCxsKSwuLi51fSkpO3JldHVybiB0LmRpc3BsYXlOYW1lPWhuKGEpLHR9O3ZhciBYUz1bWyJwYXRoIix7ZDoiTTIyIDEyaC0yLjQ4YTIgMiAwIDAgMC0xLjkzIDEuNDZsLTIuMzUgOC4zNmEuMjUuMjUgMCAwIDEtLjQ4IDBMOS4yNCAyLjE4YS4yNS4yNSAwIDAgMC0uNDggMGwtMi4zNSA4LjM2QTIgMiAwIDAgMSA0LjQ5IDEySDIiLGtleToiMTY5enNlIn1dXSxKdD1rKCJhY3Rpdml0eSIsWFMpO3ZhciBWUz1bWyJwYXRoIix7ZDoiTTUgMTJoMTQiLGtleToiMWF5czBoIn1dLFsicGF0aCIse2Q6Im0xMiA1IDcgNy03IDciLGtleToieHF1ejRjIn1dXSxjZj1rKCJhcnJvdy1yaWdodCIsVlMpO3ZhciBaUz1bWyJwYXRoIix7ZDoiTTcgMTdWN2gxMCIsa2V5OiIxMWJ3OTMifV0sWyJwYXRoIix7ZDoiTTE3IDE3IDcgNyIsa2V5OiIyNzg2dXYifV1dLEtsPWsoImFycm93LXVwLWxlZnQiLFpTKTt2YXIgUVM9W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAiLGtleToidnd2YnQ5In1dLFsicGF0aCIse2Q6Ik0zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2IixrZXk6IjExZzl2aSJ9XV0sSmw9aygiYmVsbCIsUVMpO3ZhciBZUz1bWyJwYXRoIix7ZDoiTTIwIDYgOSAxN2wtNS01IixrZXk6IjFnbWYyYyJ9XV0sV2w9aygiY2hlY2siLFlTKTt2YXIgalM9W1sicGF0aCIse2Q6Im0xNSAxOC02LTYgNi02IixrZXk6IjF3bmZnMyJ9XV0sV3Q9aygiY2hldnJvbi1sZWZ0IixqUyk7dmFyIEtTPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCIsa2V5OiIxbWdsYXkifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI4Iix5MjoiMTIiLGtleToiMXBrZXVoIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyLjAxIix5MToiMTYiLHkyOiIxNiIsa2V5OiI0ZGZxOTAifV1dLE10PWsoImNpcmNsZS1hbGVydCIsS1MpO3ZhciBKUz1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIixrZXk6InRncjRkNiJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIiLGtleToiMTE2MTk2In1dLFsicGF0aCIse2Q6Ik0xMiAxMWg0IixrZXk6IjFqcnoxOSJ9XSxbInBhdGgiLHtkOiJNMTIgMTZoNCIsa2V5OiJuODVleGIifV0sWyJwYXRoIix7ZDoiTTggMTFoLjAxIixrZXk6IjFkZnVqdyJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEiLGtleToiMThzNmc5In1dXSwkbD1rKCJjbGlwYm9hcmQtbGlzdCIsSlMpO3ZhciBXUz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAiLGtleToiMW1nbGF5In1dLFsicGF0aCIse2Q6Ik0xMiA2djZsNCAyIixrZXk6Im1tazd5ZyJ9XV0sbWY9aygiY2xvY2siLFdTKTt2YXIgJFM9W1siY2lyY2xlIix7Y3g6IjUiLGN5OiI2IixyOiIzIixrZXk6IjFxbm92MiJ9XSxbInBhdGgiLHtkOiJNMTIgNmg1YTIgMiAwIDAgMSAyIDJ2NyIsa2V5OiIxeWo5MXkifV0sWyJwYXRoIix7ZDoibTE1IDktMy0zIDMtMyIsa2V5OiIxbHd2OGwifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOCIscjoiMyIsa2V5OiIxcWxqazIifV0sWyJwYXRoIix7ZDoiTTEyIDE4SDdhMiAyIDAgMCAxLTItMlY5IixrZXk6IjE2c2RlcCJ9XSxbInBhdGgiLHtkOiJtOSAxNSAzIDMtMyAzIixrZXk6IjFtM2tibCJ9XV0sYXU9aygiZ2l0LWNvbXBhcmUtYXJyb3dzIiwkUyk7dmFyIGFnPVtbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIixrZXk6ImE2cDZ1aiJ9XSxbInBhdGgiLHtkOiJNMTAuNDEgMTAuNDFhMiAyIDAgMSAxLTIuODMtMi44MyIsa2V5OiIxYnpsbzkifV0sWyJsaW5lIix7eDE6IjEzLjUiLHgyOiI2Iix5MToiMTMuNSIseTI6IjIxIixrZXk6IjFxMGFldSJ9XSxbImxpbmUiLHt4MToiMTgiLHgyOiIyMSIseTE6IjEyIix5MjoiMTUiLGtleToiNW1vemV1In1dLFsicGF0aCIse2Q6Ik0zLjU5IDMuNTlBMS45OSAxLjk5IDAgMCAwIDMgNXYxNGEyIDIgMCAwIDAgMiAyaDE0Yy41NSAwIDEuMDUyLS4yMiAxLjQxLS41OSIsa2V5OiJtbWplOTgifV0sWyJwYXRoIix7ZDoiTTIxIDE1VjVhMiAyIDAgMCAwLTItMkg5IixrZXk6IjQzZWw3NyJ9XV0scGY9aygiaW1hZ2Utb2ZmIixhZyk7dmFyIGVnPVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI5Iix4OiIzIix5OiIzIixyeDoiMSIsa2V5OiIxMGx2eTAifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNSIseDoiMTQiLHk6IjMiLHJ4OiIxIixrZXk6IjE2dW5lOCJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI5Iix4OiIxNCIseToiMTIiLHJ4OiIxIixrZXk6IjFodXRnNSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiIzIix5OiIxNiIscng6IjEiLGtleToibGRvbzF5In1dXSxMZj1rKCJsYXlvdXQtZGFzaGJvYXJkIixlZyk7dmFyIHRnPVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiLGtleToiMXNkMTJzIn1dXSxoZj1rKCJtZXNzYWdlLWNpcmNsZSIsdGcpO3ZhciBsZz1bWyJwYXRoIix7ZDoiTTUgMTJoMTQiLGtleToiMWF5czBoIn1dLFsicGF0aCIse2Q6Ik0xMiA1djE0IixrZXk6InM2OTlsZSJ9XV0seGY9aygicGx1cyIsbGcpO3ZhciB1Zz1bWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCIsa2V5OiIxMzU3ZTMifV0sWyJwYXRoIix7ZDoiTTMgM3Y1aDUiLGtleToiMXhocThhIn1dLFsicGF0aCIse2Q6Ik0xMiA3djVsNCAyIixrZXk6IjFmZHYyaCJ9XV0sWmU9aygicm90YXRlLWNjdy1jbG9jayIsdWcpO3ZhciBmZz1bWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCIsa2V5OiIxMzU3ZTMifV0sWyJwYXRoIix7ZDoiTTMgM3Y1aDUiLGtleToiMXhocThhIn1dXSxldT1rKCJyb3RhdGUtY2N3IixmZyk7dmFyIG9nPVtbInBhdGgiLHtkOiJtMjEgMjEtNC4zNC00LjM0IixrZXk6IjE0ajdyaiJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4IixrZXk6IjRlajk3dSJ9XV0sU2Y9aygic2VhcmNoIixvZyk7dmFyIGRnPVtbInBhdGgiLHtkOiJNMTQuNTM2IDIxLjY4NmEuNS41IDAgMCAwIC45MzctLjAyNGw2LjUtMTlhLjQ5Ni40OTYgMCAwIDAtLjYzNS0uNjM1bC0xOSA2LjVhLjUuNSAwIDAgMC0uMDI0LjkzN2w3LjkzIDMuMThhMiAyIDAgMCAxIDEuMTEyIDEuMTF6IixrZXk6IjFmZnh5MyJ9XSxbInBhdGgiLHtkOiJtMjEuODU0IDIuMTQ3LTEwLjk0IDEwLjkzOSIsa2V5OiIxMmNqcGEifV1dLGdmPWsoInNlbmQiLGRnKTt2YXIgc2c9W1sicGF0aCIse2Q6Ik05LjY3MSA0LjEzNmEyLjM0IDIuMzQgMCAwIDEgNC42NTkgMCAyLjM0IDIuMzQgMCAwIDAgMy4zMTkgMS45MTUgMi4zNCAyLjM0IDAgMCAxIDIuMzMgNC4wMzMgMi4zNCAyLjM0IDAgMCAwIDAgMy44MzEgMi4zNCAyLjM0IDAgMCAxLTIuMzMgNC4wMzMgMi4zNCAyLjM0IDAgMCAwLTMuMzE5IDEuOTE1IDIuMzQgMi4zNCAwIDAgMS00LjY1OSAwIDIuMzQgMi4zNCAwIDAgMC0zLjMyLTEuOTE1IDIuMzQgMi4zNCAwIDAgMS0yLjMzLTQuMDMzIDIuMzQgMi4zNCAwIDAgMCAwLTMuODMxQTIuMzQgMi4zNCAwIDAgMSA2LjM1IDYuMDUxYTIuMzQgMi4zNCAwIDAgMCAzLjMxOS0xLjkxNSIsa2V5OiIxaTVlY3cifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyIsa2V5OiIxdjd6cmQifV1dLENmPWsoInNldHRpbmdzIixzZyk7dmFyIGlnPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiLGtleToib2VsNDF5In1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQiLGtleToiZHptbTc0In1dXSwkdD1rKCJzaGllbGQtY2hlY2siLGlnKTt2YXIgbmc9W1sicGF0aCIse2Q6Ik0xMCA1SDMiLGtleToiMXFnZmF3In1dLFsicGF0aCIse2Q6Ik0xMiAxOUgzIixrZXk6InlobW4xaiJ9XSxbInBhdGgiLHtkOiJNMTQgM3Y0IixrZXk6IjFzdWEwMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTd2NCIsa2V5OiIxcTByMTQifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC05IixrZXk6IjFvNGxzcSJ9XSxbInBhdGgiLHtkOiJNMjEgMTloLTUiLGtleToiMXJsdDFwIn1dLFsicGF0aCIse2Q6Ik0yMSA1aC03IixrZXk6IjFvc3p6MiJ9XSxbInBhdGgiLHtkOiJNOCAxMHY0IixrZXk6InRncHhxayJ9XSxbInBhdGgiLHtkOiJNOCAxMkgzIixrZXk6ImE3czRqYiJ9XV0sdHU9aygic2xpZGVycy1ob3Jpem9udGFsIixuZyk7dmFyIHJnPVtbInBhdGgiLHtkOiJNMTggNiA2IDE4IixrZXk6IjFibDVmOCJ9XSxbInBhdGgiLHtkOiJtNiA2IDEyIDEyIixrZXk6ImQ4Yms2diJ9XV0sSWY9aygieCIscmcpO3ZhciBhbD17aG9zdDoiaHR0cHM6Ly9rYi5oLXNvZnQuaXIiLGJhc2U6Ii9yZXN0L3NjcmlwdHJ1bm5lci9sYXRlc3QvY3VzdG9tLyIscHJpb3JpdGllczpbXX07ZnVuY3Rpb24gcGQoKXt0cnl7aWYobG9jYXRpb24ub3JpZ2luPT09YWwuaG9zdHx8d2luZG93LnBhcmVudCE9PXdpbmRvdyYmd2luZG93LnBhcmVudC5sb2NhdGlvbi5vcmlnaW49PT1hbC5ob3N0KXJldHVybiBhbC5ob3N0fWNhdGNoe310aHJvdyBFcnJvcigiXHUwNjI3XHUwNkNDXHUwNjQ2IFx1MDY0Nlx1MDYzM1x1MDYyRVx1MDY0NyBcdTA2MjhcdTA2MjdcdTA2Q0NcdTA2MkYgXHUwNjJGXHUwNjI3XHUwNjJFXHUwNjQ0IFx1MDYzNVx1MDY0MVx1MDYyRFx1MDY0NyBcdTA2NDVcdTA2MkZcdTA2Q0NcdTA2QTlcdTA2Q0NcdTA2NDggXHUwNjJGXHUwNjMxIGtiLmgtc29mdC5pciBcdTA2MjdcdTA2MkNcdTA2MzFcdTA2MjcgXHUwNjM0XHUwNjQ4XHUwNjJGLiBcdTA2NDFcdTA2MjdcdTA2Q0NcdTA2NDQgXHUwNjQ1XHUwNjJEXHUwNjQ0XHUwNkNDIFx1MDZDQ1x1MDYyNyBcdTA2MzNcdTA2MjdcdTA2Q0NcdTA2MkEgXHUwNjI4XHUwNkNDXHUwNjMxXHUwNjQ4XHUwNjQ2XHUwNkNDIFx1MDYyOFx1MDY0NyBcdTA2NDZcdTA2MzRcdTA2MzNcdTA2MkEgXHUwNjMzXHUwNjI3XHUwNjMyXHUwNjQ1XHUwNjI3XHUwNjQ2IFx1MDY0NVx1MDYyQVx1MDYzNVx1MDY0NCBcdTA2NDZcdTA2Q0NcdTA2MzNcdTA2MkEuIil9dmFyIER0PWNsYXNzIGV4dGVuZHMgRXJyb3J7c3RhdHVzO2RhdGE7Y29uc3RydWN0b3IoZSx0LGwpe3N1cGVyKGUpLHRoaXMuc3RhdHVzPXQsdGhpcy5kYXRhPWx9fTthc3luYyBmdW5jdGlvbiB5ZShhLGU9e30sdCxsKXtsZXQgdT1wZCgpLGY9bmV3IFVSTFNlYXJjaFBhcmFtcyhlKSxvO3RyeXtvPWF3YWl0IGZldGNoKHUrYWwuYmFzZSthKyhmLnNpemU/Ij8iK2Y6IiIpLHttZXRob2Q6dD8iUE9TVCI6IkdFVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixjYWNoZToibm8tc3RvcmUiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4udD97IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLCJYLUF0bGFzc2lhbi1Ub2tlbiI6Im5vLWNoZWNrIn06e319LGJvZHk6dD9KU09OLnN0cmluZ2lmeSh0KTp2b2lkIDAsc2lnbmFsOmx9KX1jYXRjaChtKXt0aHJvdyBtLm5hbWU9PT0iQWJvcnRFcnJvciI/bTpuZXcgRHQoIlx1MDYyN1x1MDYzMVx1MDYyQVx1MDYyOFx1MDYyN1x1MDYzNyBcdTA2MjhcdTA2MjcgXHUwNjMzXHUwNjMxXHUwNjQ4XHUwNjMxIFx1MDYyOFx1MDYzMVx1MDY0Mlx1MDYzMVx1MDYyN1x1MDYzMSBcdTA2NDZcdTA2MzRcdTA2MkZcdTA2MUIgXHUwNjdFXHUwNkNDXHUwNjM0IFx1MDYyN1x1MDYzMiBcdTA2MkFcdTA2QTlcdTA2MzFcdTA2MjdcdTA2MzEgXHUwNjJCXHUwNjI4XHUwNjJBXHUwNjBDIFx1MDY0OFx1MDYzNlx1MDYzOVx1MDZDQ1x1MDYyQSBcdTA2MkZcdTA2MzFcdTA2MkVcdTA2NDhcdTA2MjdcdTA2MzNcdTA2MkEgXHUwNjMxXHUwNjI3IFx1MDYyOFx1MDY0N1x1MjAwQ1x1MDYzMVx1MDY0OFx1MDYzMiBcdTA2QTlcdTA2NDZcdTA2Q0NcdTA2MkYuIiwwLG51bGwpfWxldCBkPWF3YWl0IG8udGV4dCgpLGk7dHJ5e2k9SlNPTi5wYXJzZShkKX1jYXRjaHt0aHJvdyBuZXcgRHQoIlx1MDY3RVx1MDYyN1x1MDYzM1x1MDYyRSBcdTA2NDVcdTA2MzlcdTA2MkFcdTA2MjhcdTA2MzEgXHUwNjJGXHUwNjMxXHUwNkNDXHUwNjI3XHUwNjQxXHUwNjJBIFx1MDY0Nlx1MDYzNFx1MDYyRlx1MDYxQiBcdTA2NDhcdTA2MzFcdTA2NDhcdTA2MkYgXHUwNkE5XHUwNjI3XHUwNjMxXHUwNjI4XHUwNjMxXHUwNkNDIFx1MDY0OCBcdTA2NDZcdTA2MzVcdTA2MjggXHUwNjMzXHUwNjMxXHUwNjQ4XHUwNkNDXHUwNjMzIFx1MDYzMVx1MDYyNyBcdTA2MjhcdTA2MzFcdTA2MzFcdTA2MzNcdTA2Q0MgXHUwNkE5XHUwNjQ2XHUwNkNDXHUwNjJGLiIsby5zdGF0dXMsbnVsbCl9aWYoIW8ub2t8fGkub2s9PT0hMXx8dCYmaS5vayE9PSEwKXRocm93IG5ldyBEdChpLm1lc3NhZ2V8fGBcdTA2MzlcdTA2NDVcdTA2NDRcdTA2Q0NcdTA2MjdcdTA2MkEgXHUwNjI3XHUwNjQ2XHUwNjJDXHUwNjI3XHUwNjQ1IFx1MDY0Nlx1MDYzNFx1MDYyRiAoJHtvLnN0YXR1c30pYCxvLnN0YXR1cyxpKTtyZXR1cm4gaX12YXIgc2U9e21ldGFkYXRhOigpPT55ZSgibWVkaXFEYXNoYm9hcmRSZWFkIix7YWN0aW9uOiJtZXRhZGF0YSJ9KSxsaXN0OihhLGUpPT55ZShhPT09Im1pbmUiPyJtZWRpcVVzZXJGYXVsdFByb3h5IjoibWVkaXFNYWludGVuYW5jZVByb3h5Iix7YWN0aW9uOmE9PT0ibWluZSI/Imxpc3QiOiJhY3Rpdml0aWVzIn0sdm9pZCAwLGUpLGRldGFpbDooYSxlKT0+eWUoZT09PSJtaW5lIj8ibWVkaXFVc2VyRmF1bHRQcm94eSI6Im1lZGlxTWFpbnRlbmFuY2VQcm94eSIsZT09PSJtaW5lIj97YWN0aW9uOiJkZXRhaWwiLGtleTphfTp7YWN0aW9uOiJpc3N1ZS5kZXRhaWwiLHR5cGU6YX0pLGV4dHJhOihhLGUpPT55ZSgibWVkaXFEYXNoYm9hcmRSZWFkIix7YWN0aW9uOiJkZXRhaWwiLGtleTphLHNjb3BlOmV9KSx0cmFuc2l0aW9uczphPT55ZSgibWVkaXFUcmFuc2l0aW9uU2NyZWVuIix7a2V5OmF9KSxjcmVhdGU6YXN5bmMgYT0+e2xldCBlPWF3YWl0IHllKCJtZWRpcVVzZXJGYXVsdFByb3h5V3JpdGUiLHt9LHthY3Rpb246ImNyZWF0ZSIsLi4uYX0pO2lmKGUuY3JlYXRlZCE9PSEwfHwhL15NRUQtWzAtOV0rJC8udGVzdChlLmtleXx8IiIpKXRocm93IEVycm9yKCJcdTA2MkFcdTA2MjNcdTA2Q0NcdTA2Q0NcdTA2MkYgXHUwNjI3XHUwNkNDXHUwNjJDXHUwNjI3XHUwNjJGIFx1MDYyRlx1MDYzMVx1MDYyRVx1MDY0OFx1MDYyN1x1MDYzM1x1MDYyQSBcdTA2MjdcdTA2MzIgXHUwNjMzXHUwNjMxXHUwNjQ4XHUwNjMxIFx1MDYyRlx1MDYzMVx1MDZDQ1x1MDYyN1x1MDY0MVx1MDYyQSBcdTA2NDZcdTA2MzRcdTA2MkZcdTA2MUIgXHUwNjdFXHUwNkNDXHUwNjM0IFx1MDYyN1x1MDYzMiBcdTA2MjdcdTA2MzFcdTA2MzNcdTA2MjdcdTA2NDQgXHUwNjJGXHUwNjQ4XHUwNjI4XHUwNjI3XHUwNjMxXHUwNjQ3XHUwNjBDIFx1MDY0MVx1MDY0N1x1MDYzMVx1MDYzM1x1MDYyQSBcdTA2MzFcdTA2MjcgXHUwNjI4XHUwNjMxXHUwNjMxXHUwNjMzXHUwNkNDIFx1MDZBOVx1MDY0Nlx1MDZDQ1x1MDYyRi4iKTtyZXR1cm4gZX0sY2xvc2U6YT0+eWUoIm1lZGlxVXNlckZhdWx0UHJveHlXcml0ZSIse30se2FjdGlvbjoiY2xvc2UiLGtleTphfSksY29tbWVudDooYSxlKT0+eWUoIm1lZGlxTWFpbnRlbmFuY2VQcm94eVdyaXRlIix7fSx7YWN0aW9uOiJpc3N1ZS5jb21tZW50IixrZXk6YSxib2R5OmUsdmlzaWJpbGl0eToiaW50ZXJuYWwifSksZXhlY3V0ZTooYSxlLHQpPT55ZSgibWVkaXFUcmFuc2l0aW9uU2NyZWVuV3JpdGUiLHt9LHtrZXk6YSx0cmFuc2l0aW9uSWQ6ZSxmaWVsZHM6dH0pLGVxdWlwbWVudDphc3luYygpPT57bGV0IGE9W10sZT0wO2Zvcig7Oyl7bGV0IHQ9YXdhaXQgeWUoIm1lZGlxR2F0ZXdheSIse2tpbmQ6ImVxdWlwbWVudCIsbGltaXQ6IjUwMCIsb2Zmc2V0OlN0cmluZyhlKX0pO2lmKCFBcnJheS5pc0FycmF5KHQuaXRlbXMpKXRocm93IEVycm9yKCJcdTA2MzNcdTA2MjdcdTA2MkVcdTA2MkFcdTA2MjdcdTA2MzEgXHUwNjQxXHUwNjQ3XHUwNjMxXHUwNjMzXHUwNjJBIFx1MDYyQVx1MDYyQ1x1MDY0N1x1MDZDQ1x1MDYzMlx1MDYyN1x1MDYyQSBcdTA2NDVcdTA2MzlcdTA2MkFcdTA2MjhcdTA2MzEgXHUwNjQ2XHUwNkNDXHUwNjMzXHUwNjJBLiIpO2lmKGEucHVzaCguLi50Lml0ZW1zKSwhdC5oYXNNb3JlfHx0Lml0ZW1zLmxlbmd0aD09PTApYnJlYWs7aWYoZSs9dC5pdGVtcy5sZW5ndGgsZT4yZTQpdGhyb3cgRXJyb3IoIlx1MDY0MVx1MDY0N1x1MDYzMVx1MDYzM1x1MDYyQSBcdTA2MkFcdTA2MkNcdTA2NDdcdTA2Q0NcdTA2MzJcdTA2MjdcdTA2MkEgXHUwNjI4XHUwNkNDXHUwNjM0IFx1MDYyN1x1MDYzMiBcdTA2MkRcdTA2MkYgXHUwNjI3XHUwNjQ2XHUwNjJBXHUwNjM4XHUwNjI3XHUwNjMxIFx1MDYyN1x1MDYzM1x1MDYyQS4iKX1yZXR1cm4gYX19O2Z1bmN0aW9uIEJMKGEpe3JldHVybnsuLi5hLGlkOmEua2V5LHRpdGxlOmEuc3VtbWFyeXx8IiIsc3RhdHVzOmEuc3RhdHVzfHwiIixwcmlvcml0eTphLnByaW9yaXR5TmFtZXx8YS5wcmlvcml0eXx8IiIscGVyc29uOmEuYXNzaWduZWVOYW1lfHxhLmFzc2lnbmVlRGlzcGxheU5hbWV8fCh0eXBlb2YgYS5hc3NpZ25lZT09InN0cmluZyI/YS5hc3NpZ25lZTphLmFzc2lnbmVlPy5kaXNwbGF5TmFtZSl8fCJcdTA2MkFcdTA2MkVcdTA2MzVcdTA2Q0NcdTA2MzUgXHUwNjJGXHUwNjI3XHUwNjJGXHUwNjQ3IFx1MDY0Nlx1MDYzNFx1MDYyRlx1MDY0NyIsZGVzYzphLmRlc2NyaXB0aW9ufHwiIixkb25lOmEuZG9uZT09PSEwLGFzc2V0OmEuZGV2aWNlfHwiIixkZXZpY2U6IiIsdW5pdDphLmRlcGFydG1lbnR8fCJcdTA2MjhcdTA2MkVcdTA2MzQgXHUwNjJGXHUwNjMxIFx1MDY3RVx1MDYyN1x1MDYzM1x1MDYyRSBcdTA2NDVcdTA2NDhcdTA2MkNcdTA2NDhcdTA2MkYgXHUwNjQ2XHUwNkNDXHUwNjMzXHUwNjJBIn19ZnVuY3Rpb24geG4oYSl7aWYoIWF8fHR5cGVvZiBhIT0ic3RyaW5nIilyZXR1cm4iIjt0cnl7bGV0IGU9bmV3IFVSTChhLGFsLmhvc3QpO3JldHVybiBlLnByb3RvY29sPT09Imh0dHBzOiImJltuZXcgVVJMKGFsLmhvc3QpLmhvc3QsInN1cHBvcnQuaC1zb2Z0LmlyIl0uaW5jbHVkZXMoZS5ob3N0KT9lLmhyZWY6IiJ9Y2F0Y2h7cmV0dXJuIiJ9fWZ1bmN0aW9uIHlmKGEpe2lmKCFhKXJldHVybiJcdTIwMTQiO2xldCBlPW5ldyBEYXRlKHR5cGVvZiBhPT0ibnVtYmVyIj9hOlN0cmluZyhhKSk7cmV0dXJuIGlzTmFOKCtlKT9TdHJpbmcoYSk6ZS50b0xvY2FsZVN0cmluZygiZmEtSVIiLHtkYXRlU3R5bGU6InNob3J0Iix0aW1lU3R5bGU6InNob3J0Iix0aW1lWm9uZToiQXNpYS9UZWhyYW4ifSl9dmFyIFNuPWE9Pi9eKNio2LPYqtmGfNio2LPYqtmGINiv2LHYrtmI2KfYs9iqfNio2LPYqtmHINi02K/ZhnxjbG9zZXxjbG9zZSBpc3N1ZXxjbG9zZSByZXF1ZXN0KSQvaS50ZXN0KFN0cmluZyhhLm5hbWV8fCIiKS50cmltKCkpO3ZhciBzPXBlKHZmKCksMSksdmU9YT0+YS50b0xvY2FsZVN0cmluZygiZmEtSVIiKSxRZT1hPT5TdHJpbmcoYT8ubWVzc2FnZXx8YXx8Ilx1MDYyRVx1MDYzN1x1MDYyN1x1MDZDQyBcdTA2NDZcdTA2MjdcdTA2NDVcdTA2MzRcdTA2MkVcdTA2MzUiKS5yZXBsYWNlKC9KaXJhfENvbmZsdWVuY2V82KzbjNix2Kd82qnYp9mG2YHZhNmI2KbZhtizL2dpLCJcdTA2MzNcdTA2MzFcdTA2NDhcdTA2Q0NcdTA2MzMiKSxxTD0oKT0+KHtpc3N1ZTp7fSxhc3NldDp7fSxjb21tZW50czpbXSx0cmFuc2l0aW9uczpbXSxwcmlvcml0eTp7fSxoaXN0b3J5OltdLGhpc3RvcnlUb3RhbDowLGVycm9yczpbXSxjaGVja2VkOiExfSk7ZnVuY3Rpb24gT0woe25hbWU6YSxpY29uOmV9KXtsZXQgdD14bihlKTtyZXR1cm4oMCxzLmpzeHMpKCJzcGFuIix7Y2xhc3NOYW1lOiJiYWRnZSBsaXZlcHJpb3JpdHkiLGNoaWxkcmVuOlt0PygwLHMuanN4KSgiaW1nIix7c3JjOnQsYWx0OiIiLG9uRXJyb3I6bD0+bC5jdXJyZW50VGFyZ2V0LnN0eWxlLmRpc3BsYXk9Im5vbmUifSk6KDAscy5qc3gpKCJzcGFuIix7dGl0bGU6Ilx1MDYyMlx1MDZDQ1x1MDZBOVx1MDY0NiBcdTA2MzNcdTA2MzFcdTA2NDhcdTA2Q0NcdTA2MzMgXHUwNjJGXHUwNjMxXHUwNkNDXHUwNjI3XHUwNjQxXHUwNjJBIFx1MDY0Nlx1MDYzNFx1MDYyRlx1MDY0NyIsY2hpbGRyZW46Ilx1MjVDNyJ9KSxhfHwiXHUwNjQ2XHUwNjI3XHUwNjQ1XHUwNjM0XHUwNjJFXHUwNjM1Il19KX1mdW5jdGlvbiBVTCh7YXNzZXQ6YX0pe2xldCBlPXhuKGE/LmltYWdlVXJsKTtyZXR1cm4oMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZToicGljdHVyZSIsY2hpbGRyZW46ZT8oMCxzLmpzeCkoImltZyIse3NyYzplLGFsdDphPy5sYWJlbHx8Ilx1MDYyQVx1MDYzNVx1MDY0OFx1MDZDQ1x1MDYzMSBcdTA2MkZcdTA2MzNcdTA2MkFcdTA2QUZcdTA2MjdcdTA2NDciLG9uRXJyb3I6dD0+e3QuY3VycmVudFRhcmdldC5zdHlsZS5kaXNwbGF5PSJub25lIix0LmN1cnJlbnRUYXJnZXQucGFyZW50RWxlbWVudD8uY2xhc3NMaXN0LmFkZCgiaW1hZ2VmYWlsZWQiKX19KTooMCxzLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6Im5vaW1hZ2UiLGNoaWxkcmVuOlsoMCxzLmpzeCkocGYse3NpemU6MjR9KSwoMCxzLmpzeCkoInNtYWxsIix7Y2hpbGRyZW46Ilx1MDYyQVx1MDYzNVx1MDY0OFx1MDZDQ1x1MDYzMSBcdTA2MkJcdTA2MjhcdTA2MkEgXHUwNjQ2XHUwNjM0XHUwNjJGXHUwNjQ3In0pXX0pfSl9ZnVuY3Rpb24gZ24oKXtsZXRbYSxlXT0oMCxCLnVzZVN0YXRlKSgibWluZSIpLFt0LGxdPSgwLEIudXNlU3RhdGUpKCJcdTA2MkZcdTA2MjdcdTA2MzRcdTA2MjhcdTA2NDhcdTA2MzFcdTA2MkYiKSxbdSxmXT0oMCxCLnVzZVN0YXRlKShbXSksW28sZF09KDAsQi51c2VTdGF0ZSkoe30pLFtpLG1dPSgwLEIudXNlU3RhdGUpKFtdKSxbeCxnXT0oMCxCLnVzZVN0YXRlKShbXSksW0wsaF09KDAsQi51c2VTdGF0ZSkoe30pLFt5LGJdPSgwLEIudXNlU3RhdGUpKCIiKSxbRyxjXT0oMCxCLnVzZVN0YXRlKSgiIiksW3IscF09KDAsQi51c2VTdGF0ZSkoITEpLFtTLE1dPSgwLEIudXNlU3RhdGUpKCIiKSxbVSxBXT0oMCxCLnVzZVN0YXRlKSgiIiksW1QscV09KDAsQi51c2VTdGF0ZSkoIm9wZW4iKSxbTyxLYV09KDAsQi51c2VTdGF0ZSkoIiIpLFtUdCx4ZF09KDAsQi51c2VTdGF0ZSkoIiIpLFtsdSxTZF09KDAsQi51c2VTdGF0ZSkoIiIpLFtITCxBZl09KDAsQi51c2VTdGF0ZSkoMCksW3V1LEluXT0oMCxCLnVzZVN0YXRlKShbXSksW0VhLEJ0XT0oMCxCLnVzZVN0YXRlKSgiIiksW1llLGdkXT0oMCxCLnVzZVN0YXRlKSgiIiksW0xhLHluXT0oMCxCLnVzZVN0YXRlKSghMSksW3ZuLEFlXT0oMCxCLnVzZVN0YXRlKSgiIiksW2JmLGZ1XT0oMCxCLnVzZVN0YXRlKSgiIiksW0NkLElkXT0oMCxCLnVzZVN0YXRlKSgiIiksW3lkLE5MXT0oMCxCLnVzZVN0YXRlKShbXSksW0FuLHZkXT0oMCxCLnVzZVN0YXRlKSgiIiksW2JuLEZMXT0oMCxCLnVzZVN0YXRlKSgiIiksW0hhLGVsXT0oMCxCLnVzZVN0YXRlKSh7ZXF1aXBtZW50S2V5OiIiLGRlc2NyaXB0aW9uOiIiLHByaW9yaXR5OiIiLGRldmljZVN0YXR1czoiIn0pLFtNbixEbl09KDAsQi51c2VTdGF0ZSkoIiIpLFtNZixUbl09KDAsQi51c2VTdGF0ZSkoW10pLFtEZixBZF09KDAsQi51c2VTdGF0ZSkoW10pLFtqZSxCbl09KDAsQi51c2VTdGF0ZSkobnVsbCksW1RmLEJmXT0oMCxCLnVzZVN0YXRlKSh7fSksa3Q9KDAsQi51c2VSZWYpKDApLGtmPSgwLEIudXNlUmVmKSh7fSksd2Y9KDAsQi51c2VSZWYpKG5ldyBTZXQpLGJkPSgwLEIudXNlUmVmKShhKSxNZD0oMCxCLnVzZVJlZikobnVsbCk7YmQuY3VycmVudD1hO2xldCB0bD1hc3luYygpPT57bGV0IG49KytrdC5jdXJyZW50O01kLmN1cnJlbnQ/LmFib3J0KCk7bGV0IEk9bmV3IEFib3J0Q29udHJvbGxlcjtNZC5jdXJyZW50PUksYigiIikscCghMCksQWUoIiIpO3RyeXtwZCgpO2xldCB2PWF3YWl0IHNlLmxpc3QoYSxJLnNpZ25hbCksej1hPT09Im1pbmUiP3YuaXRlbXM6di5hY3Rpdml0aWVzO2lmKCFBcnJheS5pc0FycmF5KHopKXRocm93IEVycm9yKCJcdTA2MzNcdTA2MjdcdTA2MkVcdTA2MkFcdTA2MjdcdTA2MzEgXHUwNjQxXHUwNjQ3XHUwNjMxXHUwNjMzXHUwNjJBIFx1MDYyRlx1MDYzMVx1MDZDQ1x1MDYyN1x1MDY0MVx1MDYyQVx1MDZDQyBcdTA2NDVcdTA2MzlcdTA2MkFcdTA2MjhcdTA2MzEgXHUwNjQ2XHUwNkNDXHUwNjMzXHUwNjJBLiIpO2lmKG4hPT1rdC5jdXJyZW50KXJldHVybjtmKHouZmlsdGVyKHRhPT4hL15QTVxzKi0vLnRlc3QodGEuc3VtbWFyeXx8IiIpKS5tYXAoQkwpKSxtKEFycmF5LmlzQXJyYXkodi5ub3RpZmljYXRpb25zKT92Lm5vdGlmaWNhdGlvbnM6W10pLE0obmV3IERhdGUoKS50b0xvY2FsZVRpbWVTdHJpbmcoImZhLUlSIix7dGltZVpvbmU6IkFzaWEvVGVocmFuIn0pKSxrZi5jdXJyZW50PXt9LHdmLmN1cnJlbnQuY2xlYXIoKSxkKHt9KSxJbihbXSl9Y2F0Y2godil7aWYobiE9PWt0LmN1cnJlbnR8fHYubmFtZT09PSJBYm9ydEVycm9yIilyZXR1cm47ZihbXSksZCh7fSksbShbXSksYihRZSh2KSl9ZmluYWxseXtuPT09a3QuY3VycmVudCYmcCghMSl9fTsoMCxCLnVzZUVmZmVjdCkoKCk9Pnt0cnl7cGQoKX1jYXRjaChuKXtjKFFlKG4pKTtyZXR1cm59c2UubWV0YWRhdGEoKS50aGVuKG49PntoKG4udXNlcnx8e30pLGcobi5wcmlvcml0aWVzfHxbXSl9KS5jYXRjaChuPT5iKCJcdTA2MjdcdTA2MzdcdTA2NDRcdTA2MjdcdTA2MzlcdTA2MjdcdTA2MkEgXHUwNjJBXHUwNkE5XHUwNjQ1XHUwNkNDXHUwNjQ0XHUwNkNDIFx1MDYyOFx1MDYyN1x1MDYzMVx1MDZBRlx1MDZDQ1x1MDYzMVx1MDZDQyBcdTA2NDZcdTA2MzRcdTA2MkY6ICIrUWUobikpKTt0cnl7VG4oSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgibWVkaXEtbGl2ZS12aWV3cy12MSIpfHwiW10iKSl9Y2F0Y2h7fX0sW10pLCgwLEIudXNlRWZmZWN0KSgoKT0+KGYoW10pLGQoe30pLHEoIm9wZW4iKSxBZigwKSxnZCgiIiksQnQoIiIpLEFkKFtdKSx0bCgpLCgpPT57TWQuY3VycmVudD8uYWJvcnQoKSxrdC5jdXJyZW50Kyt9KSxbYV0pLCgwLEIudXNlRWZmZWN0KSgoKT0+e2lmKGJmKXtsZXQgbj1zZXRUaW1lb3V0KCgpPT5mdSgiIiksNDUwMCk7cmV0dXJuKCk9PmNsZWFyVGltZW91dChuKX19LFtiZl0pLCgwLEIudXNlRWZmZWN0KSgoKT0+QWYoMCksW1UsVCxPLFR0LGx1XSk7bGV0IG91PWFzeW5jKG4sST0hMSk9PntsZXQgdj1rdC5jdXJyZW50LHo9YmQuY3VycmVudCx0YT16KyI6IituO2lmKGtmLmN1cnJlbnRbdGFdJiYhSSlyZXR1cm4ga2YuY3VycmVudFt0YV07aWYod2YuY3VycmVudC5oYXModGEpKXJldHVybiBudWxsO3dmLmN1cnJlbnQuYWRkKHRhKTtsZXQgTWE9YXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKFtzZS5kZXRhaWwobix6KSxzZS5leHRyYShuLHopLHNlLnRyYW5zaXRpb25zKG4pXSk7aWYod2YuY3VycmVudC5kZWxldGUodGEpLHYhPT1rdC5jdXJyZW50fHx6IT09YmQuY3VycmVudClyZXR1cm4gbnVsbDtsZXQgbGE9cUwoKSxLZT1NYVswXSxOYT1NYVsxXSxiZT1NYVsyXTtyZXR1cm4gS2Uuc3RhdHVzPT09ImZ1bGZpbGxlZCI/KGxhLmlzc3VlPUtlLnZhbHVlLmlzc3VlfHx7fSxsYS5hc3NldD1LZS52YWx1ZS5hc3NldHx8e30sbGEuY29tbWVudHM9S2UudmFsdWUuY29tbWVudHN8fFtdLGxhLnByaW9yaXR5PXtuYW1lOmxhLmlzc3VlLnByaW9yaXR5fHwiIn0pOmxhLmVycm9ycy5wdXNoKFFlKEtlLnJlYXNvbikpLE5hLnN0YXR1cz09PSJmdWxmaWxsZWQiPyhsYS5hc3NldD17Li4ubGEuYXNzZXQsLi4uTmEudmFsdWUuYXNzZXR9LGxhLnByaW9yaXR5PU5hLnZhbHVlLnByaW9yaXR5fHxsYS5wcmlvcml0eSxsYS5oaXN0b3J5PU5hLnZhbHVlLmhpc3Rvcnl8fFtdLGxhLmhpc3RvcnlUb3RhbD1OYS52YWx1ZS5oaXN0b3J5VG90YWx8fGxhLmhpc3RvcnkubGVuZ3RoKTpsYS5lcnJvcnMucHVzaCgiXHUwNjQ1XHUwNjM0XHUwNjJFXHUwNjM1XHUwNjI3XHUwNjJBIFx1MDYyQVx1MDZBOVx1MDY0NVx1MDZDQ1x1MDY0NFx1MDZDQzogIitRZShOYS5yZWFzb24pKSxiZS5zdGF0dXM9PT0iZnVsZmlsbGVkIiYmQXJyYXkuaXNBcnJheShiZS52YWx1ZS50cmFuc2l0aW9ucyk/KGxhLnRyYW5zaXRpb25zPWJlLnZhbHVlLnRyYW5zaXRpb25zLGxhLmNoZWNrZWQ9S2Uuc3RhdHVzPT09ImZ1bGZpbGxlZCIpOmJlLnN0YXR1cz09PSJyZWplY3RlZCImJmxhLmVycm9ycy5wdXNoKCJcdTA2NDVcdTA2MkNcdTA2NDhcdTA2MzIgXHUwNjI3XHUwNjQyXHUwNjJGXHUwNjI3XHUwNjQ1XHUwNjI3XHUwNjJBOiAiK1FlKGJlLnJlYXNvbikpLGtmLmN1cnJlbnRbdGFdPWxhLGQoVkw9Pih7Li4uVkwsW25dOmxhfSkpLGxhfSxkdT11LmZpbHRlcihuPT4oVD09PSJhbGwifHwoVD09PSJvcGVuIj8hbi5kb25lOm4uZG9uZSkpJiYoIU98fG4uc3RhdHVzPT09TykmJighVHR8fG4ucHJpb3JpdHk9PT1UdCkmJighbHV8fG4ucGVyc29uPT09bHUpJiZbbi5pZCxuLnRpdGxlLG4ucGVyc29uLG4ucHJpb3JpdHksbi5hc3NldCxvW24uaWRdPy5hc3NldD8ubGFiZWwsb1tuLmlkXT8uYXNzZXQ/LmtleV0uam9pbigiICIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoVS50b0xvd2VyQ2FzZSgpKSksRGQ9TWF0aC5tYXgoMSxNYXRoLmNlaWwoZHUubGVuZ3RoLzQpKSxzdT1NYXRoLm1pbihITCxEZC0xKSxSZj1kdS5zbGljZShzdSo0LHN1KjQrNCksa249UmYubWFwKG49Pm4uaWQpLmpvaW4oInwiKTsoMCxCLnVzZUVmZmVjdCkoKCk9PntsZXQgbj0hMSxJPWtuLnNwbGl0KCJ8IikuZmlsdGVyKEJvb2xlYW4pLHY9YXN5bmMoKT0+e2Zvcig7SS5sZW5ndGgmJiFuOyl7bGV0IHo9SS5zaGlmdCgpO2F3YWl0IG91KHopfX07cmV0dXJuIHJ8fCh2KCksdigpKSwoKT0+e249ITB9fSxba24scixhXSk7bGV0IGllPXUuZmluZChuPT5uLmlkPT09WWUpLHVhPW9bWWVdfHxxTCgpLGJhPShuLEk9IiIpPT57QnQobiksZ2QoSSksQWUoIiIpLElkKCIiKSxCbihudWxsKSxJJiYob3UoSSksQWQodj0+dlt2Lmxlbmd0aC0xXT09PUk/djpbLi4udixJXS5zbGljZSgtMzApKSksbj09PSJcdTA2MkJcdTA2MjhcdTA2MkEgXHUwNjJFXHUwNjMxXHUwNjI3XHUwNjI4XHUwNkNDIFx1MDYyQ1x1MDYyRlx1MDZDQ1x1MDYyRiImJnlkLmxlbmd0aD09PTAmJih2ZCgiXHUwNjJGXHUwNjMxIFx1MDYyRFx1MDYyN1x1MDY0NCBcdTA2MkZcdTA2MzFcdTA2Q0NcdTA2MjdcdTA2NDFcdTA2MkEgXHUwNjJBXHUwNjJDXHUwNjQ3XHUwNkNDXHUwNjMyXHUwNjI3XHUwNjJBXHUyMDI2Iiksc2UuZXF1aXBtZW50KCkudGhlbih2PT57TkwodiksdmQoIiIpfSkuY2F0Y2godj0+dmQoUWUodikpKSl9LHFmPWFzeW5jKG4sSSk9PntpZighTGEpe3luKCEwKSxBZSgiIik7dHJ5e2xldCB2PWF3YWl0IG4oKTtyZXR1cm4gZnUodHlwZW9mIEk9PSJmdW5jdGlvbiI/SSh2KTpJKSwhMH1jYXRjaCh2KXtsZXQgej1RZSh2KTtyZXR1cm4gdiBpbnN0YW5jZW9mIER0JiZ2LmRhdGE/LmVycm9ycz8uZmllbGRzJiYoeis9IiBceEI3ICIrT2JqZWN0LmVudHJpZXModi5kYXRhLmVycm9ycy5maWVsZHMpLm1hcCgoW3RhLE1hXSk9PnRhKyI6ICIrU3RyaW5nKE1hKSkuam9pbigiXHUwNjFCICIpKSx2IGluc3RhbmNlb2YgRHQmJnYuZGF0YT8uYXZhaWxhYmxlUHJpb3JpdGllcyYmKHorPSIgXHhCNyBcdTA2MjdcdTA2NDhcdTA2NDRcdTA2NDhcdTA2Q0NcdTA2MkFcdTIwMENcdTA2NDdcdTA2MjdcdTA2Q0MgXHUwNjQ1XHUwNjJDXHUwNjI3XHUwNjMyOiAiK3YuZGF0YS5hdmFpbGFibGVQcmlvcml0aWVzLmpvaW4oIlx1MDYwQyAiKSksQWUoeiksITF9ZmluYWxseXt5bighMSl9fX0sVGQ9KG4sSSk9PiFuLmRvbmUmJkk/LmNoZWNrZWQ9PT0hMCYmSS50cmFuc2l0aW9ucy5zb21lKFNuKSx3bj1uPT57VG4obik7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJtZWRpcS1saXZlLXZpZXdzLXYxIixKU09OLnN0cmluZ2lmeShuKSl9Y2F0Y2h7ZnUoIlx1MDY0NVx1MDYzMVx1MDY0OFx1MDYzMVx1MDZBRlx1MDYzMSBcdTA2MjdcdTA2MkNcdTA2MjdcdTA2MzJcdTA2NDcgXHUwNjMwXHUwNjJFXHUwNkNDXHUwNjMxXHUwNjQ3IFx1MDY0Nlx1MDY0NVx1MDYyNyBcdTA2MzFcdTA2MjcgXHUwNjQ2XHUwNjJGXHUwNjI3XHUwNjJGIil9fSxHTD0oKT0+e2xldCBuPURmW0RmLmxlbmd0aC0yXTtuJiYoQWQoST0+SS5zbGljZSgwLC0xKSksZ2Qobiksb3UobiksQWUoIiIpKX0sX0w9QXJyYXkuZnJvbShuZXcgU2V0KHUubWFwKG49Pm4ucHJpb3JpdHkpLmZpbHRlcihCb29sZWFuKSkpLFBMPW49PntCbihuKSxCZih7fSksQWUoIiIpfSxSbj1uPT5BcnJheS5pc0FycmF5KG4uYWxsb3dlZFZhbHVlcykmJm4uYWxsb3dlZFZhbHVlcy5sZW5ndGg+MHx8WyJzdHJpbmciLCJudW1iZXIiLCJkYXRlIiwiZGF0ZXRpbWUiLCJib29sZWFuIl0uaW5jbHVkZXMobi5zY2hlbWE/LnR5cGUpJiYhWyJ1c2VyIiwiZ3JvdXAiXS5pbmNsdWRlcyhuLnNjaGVtYT8uc3lzdGVtKSxCZD1qZSYmT2JqZWN0LnZhbHVlcyhqZS5maWVsZHN8fHt9KS5zb21lKG49Pm4ucmVxdWlyZWQmJiFSbihuKSksWEw9YXN5bmMoKT0+e2lmKCFqZXx8QmQpcmV0dXJuO2xldCBuPXt9O2ZvcihsZXRbeix0YV1vZiBPYmplY3QuZW50cmllcyhqZS5maWVsZHN8fHt9KSl7bGV0IE1hPVRmW3pdO2lmKE1hPT09dm9pZCAwfHxNYT09PSIiKXtpZih0YS5yZXF1aXJlZCl7QWUoIlx1MDY0MVx1MDZDQ1x1MDY0NFx1MDYyRiBceEFCIit0YS5uYW1lKyJceEJCIFx1MDYyN1x1MDY0NFx1MDYzMlx1MDYyN1x1MDY0NVx1MDZDQyBcdTA2MjdcdTA2MzNcdTA2MkEuIik7cmV0dXJufWNvbnRpbnVlfWlmKHRhLmFsbG93ZWRWYWx1ZXM/Lmxlbmd0aCl7bGV0IGxhPUtlPT57bGV0IE5hPXRhLmFsbG93ZWRWYWx1ZXMuZmluZChiZT0+U3RyaW5nKGJlLmlkPz9iZS52YWx1ZT8/YmUubmFtZSk9PT1TdHJpbmcoS2UpKTtpZihOYT8uaWQhPW51bGwpcmV0dXJue2lkOlN0cmluZyhOYS5pZCl9O2lmKE5hPy52YWx1ZSE9bnVsbClyZXR1cm57dmFsdWU6TmEudmFsdWV9O2lmKE5hPy5uYW1lIT1udWxsKXJldHVybntuYW1lOk5hLm5hbWV9O3Rocm93IEVycm9yKCJcdTA2NDVcdTA2NDJcdTA2MkZcdTA2MjdcdTA2MzEgXHUwNjI3XHUwNjQ2XHUwNjJBXHUwNjJFXHUwNjI3XHUwNjI4XHUwNkNDIFx1MDY0Nlx1MDYyN1x1MDY0NVx1MDYzOVx1MDYyQVx1MDYyOFx1MDYzMSBcdTA2MjdcdTA2MzNcdTA2MkEuIil9O25bel09dGEuc2NoZW1hPy50eXBlPT09ImFycmF5Ij9NYS5tYXAobGEpOmxhKE1hKX1lbHNlIG5bel09dGEuc2NoZW1hPy50eXBlPT09Im51bWJlciI/TnVtYmVyKE1hKTp0YS5zY2hlbWE/LnR5cGU9PT0iYm9vbGVhbiI/ISFNYTpNYX1sZXQgST1ZZTthd2FpdCBxZigoKT0+c2UuZXhlY3V0ZShJLFN0cmluZyhqZS5pZCksbiksIlx1MDY0NVx1MDYzMVx1MDYyRFx1MDY0NFx1MDY0NyBcdTA2MjhcdTA2MjcgXHUwNjJBXHUwNjIzXHUwNkNDXHUwNkNDXHUwNjJGIFx1MDYzM1x1MDYzMVx1MDY0OFx1MDYzMSBcdTA2MjdcdTA2MkNcdTA2MzFcdTA2MjcgXHUwNjM0XHUwNjJGIikmJihCdCgiIiksYXdhaXQgdGwoKSl9O3JldHVybiBHPygwLHMuanN4cykoImRpdiIse2RpcjoicnRsIixjbGFzc05hbWU6InNldHVwIixjaGlsZHJlbjpbKDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6ImJyYW5kbWFyayIsY2hpbGRyZW46KDAscy5qc3gpKEp0LHt9KX0pLCgwLHMuanN4KSgiaDEiLHtjaGlsZHJlbjoiXHUwNjI3XHUwNjJBXHUwNjM1XHUwNjI3XHUwNjQ0IFx1MDY0NVx1MDYyRlx1MDZDQ1x1MDZBOVx1MDZDQ1x1MDY0OCJ9KSwoMCxzLmpzeCkoInAiLHtjaGlsZHJlbjpHfSksKDAscy5qc3hzKSgicCIse2NoaWxkcmVuOlsiXHUwNjQxXHUwNjI3XHUwNkNDXHUwNjQ0ICIsKDAscy5qc3gpKCJiIix7Y2hpbGRyZW46Ik1lZGlRLUVtYmVkLmh0bWwifSksIiBcdTA2MzFcdTA2MjcgXHUwNjJGXHUwNjI3XHUwNjJFXHUwNjQ0IFx1MDY0NVx1MDYyN1x1MDZBOVx1MDYzMVx1MDY0OFx1MDZDQyBIVE1MIFx1MDZDQ1x1MDZBOSBcdTA2MzVcdTA2NDFcdTA2MkRcdTA2NDcgXHUwNjIyXHUwNjMyXHUwNjQ1XHUwNjI3XHUwNkNDXHUwNjM0XHUwNkNDIFx1MDY0Mlx1MDYzMVx1MDYyN1x1MDYzMSBcdTA2MkZcdTA2NDdcdTA2Q0NcdTA2MkYgXHUwNjQ4IFx1MDYzM1x1MDYzMVx1MDY0OFx1MDZDQ1x1MDYzMyBcdTA2NDdcdTA2NDVcdTA2MzFcdTA2MjdcdTA2NDcgXHUwNjMxXHUwNjI3IFx1MDY0Nlx1MDYzNVx1MDYyOCBcdTA2QTlcdTA2NDZcdTA2Q0NcdTA2MkYuIl19KSwoMCxzLmpzeCkoInAiLHtjbGFzc05hbWU6Im5vdGljZSIsY2hpbGRyZW46Ilx1MDYyRlx1MDYzMSBcdTA2MjdcdTA2Q0NcdTA2NDYgXHUwNjQ2XHUwNjMzXHUwNjJFXHUwNjQ3IFx1MDYyN1x1MDYzN1x1MDY0NFx1MDYyN1x1MDYzOVx1MDYyN1x1MDYyQSBcdTA2NDZcdTA2NDVcdTA2NDhcdTA2NDZcdTA2NDcgXHUwNjQ4XHUwNjJDXHUwNjQ4XHUwNjJGIFx1MDY0Nlx1MDYyRlx1MDYyN1x1MDYzMVx1MDYyRiBcdTA2NDggXHUwNjQ3XHUwNkNDXHUwNjg2IFx1MDYzOVx1MDY0NVx1MDY0NFx1MDZDQ1x1MDYyN1x1MDYyQSBcdTA2MjJcdTA2NDFcdTA2NDRcdTA2MjdcdTA2Q0NcdTA2NDZcdTA2Q0MgXHUwNjI4XHUwNjQ3XHUyMDBDXHUwNjM5XHUwNjQ2XHUwNjQ4XHUwNjI3XHUwNjQ2IFx1MDYyQlx1MDYyOFx1MDYyQSBcdTA2NDhcdTA2MjdcdTA2NDJcdTA2MzlcdTA2Q0MgXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNkNDXHUwNjM0IFx1MDYyRlx1MDYyN1x1MDYyRlx1MDY0NyBcdTA2NDZcdTA2NDVcdTA2Q0NcdTIwMENcdTA2MzRcdTA2NDhcdTA2MkYuIn0pXX0pOigwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZToic2hlbGwiLGRpcjoicnRsIixjaGlsZHJlbjpbKDAscy5qc3hzKSgiYXNpZGUiLHtjbGFzc05hbWU6InNpZGViYXIiLGNoaWxkcmVuOlsoMCxzLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6ImJyYW5kIixjaGlsZHJlbjpbKDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6ImJyYW5kbWFyayIsY2hpbGRyZW46KDAscy5qc3gpKEp0LHt9KX0pLCgwLHMuanN4cykoImRpdiIse2NoaWxkcmVuOlsiXHUwNjQ1XHUwNjJGXHUwNkNDXHUwNkE5XHUwNkNDXHUwNjQ4IiwoMCxzLmpzeCkoInNtYWxsIix7Y2hpbGRyZW46Ilx1MDY0NVx1MDYyRlx1MDZDQ1x1MDYzMVx1MDZDQ1x1MDYyQSBcdTA2NDdcdTA2NDhcdTA2MzRcdTA2NDVcdTA2NDZcdTA2MkYgXHUwNjJBXHUwNjJDXHUwNjQ3XHUwNkNDXHUwNjMyXHUwNjI3XHUwNjJBIn0pXX0pLCgwLHMuanN4KSgic3BhbiIse2NsYXNzTmFtZToiYnJhbmRMYXRpbiIsY2hpbGRyZW46Ik1lZGlRIn0pXX0pLCgwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZToib3JnIixjaGlsZHJlbjpbKDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6Im9yZ2ljb24iLGNoaWxkcmVuOiJcdTI3MUEifSksKDAscy5qc3hzKSgiZGl2Iix7Y2hpbGRyZW46WyJcdTA2NDVcdTA2MzFcdTA2QTlcdTA2MzIgXHUwNjQ1XHUwNjJGXHUwNkNDXHUwNjMxXHUwNkNDXHUwNjJBIFx1MDYyQVx1MDYyQ1x1MDY0N1x1MDZDQ1x1MDYzMlx1MDYyN1x1MDYyQSIsKDAscy5qc3gpKCJzbWFsbCIse2NoaWxkcmVuOiJcdTA2NDVcdTA2MkFcdTA2MzVcdTA2NDQgXHUwNjI4XHUwNjQ3IFx1MDYzM1x1MDYzMVx1MDY0OFx1MDZDQ1x1MDYzMyBcdTA2MzNcdTA2MjdcdTA2MzJcdTA2NDVcdTA2MjdcdTA2NDYifSldfSldfSksKDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6Im5hdmxhYmVsIixjaGlsZHJlbjoiXHUwNjQxXHUwNjM2XHUwNjI3XHUwNkNDIFx1MDZBOVx1MDYyN1x1MDYzMVx1MDZDQyJ9KSxbW0xmLCJcdTA2MkZcdTA2MjdcdTA2MzRcdTA2MjhcdTA2NDhcdTA2MzFcdTA2MkYiXSxbJGwsIlx1MDZBOVx1MDYyN1x1MDYzMVx1MDYyQVx1MDYyN1x1MDYyOFx1MDY0NCBcdTA2MkVcdTA2MzFcdTA2MjdcdTA2MjhcdTA2Q0NcdTIwMENcdTA2NDdcdTA2MjciXSxbWmUsIlx1MDY3RVx1MDZDQ1x1MDZBRlx1MDZDQ1x1MDYzMVx1MDZDQyBcdTA2MkFcdTA2M0FcdTA2Q0NcdTA2Q0NcdTA2MzFcdTA2MjdcdTA2MkEiXSxbYXUsIlx1MDY0NVx1MDY0Mlx1MDYyN1x1MDZDQ1x1MDYzM1x1MDY0NyBcdTA2MkVcdTA2MzFcdTA2MjdcdTA2MjhcdTA2Q0NcdTIwMENcdTA2NDdcdTA2MjciXV0ubWFwKChbbixJXSk9PigwLHMuanN4cykoImJ1dHRvbiIse2NsYXNzTmFtZTp0PT09ST8ibmF2IGFjdGl2ZSI6Im5hdiIsb25DbGljazooKT0+e2woSSksST09PSJcdTA2NDVcdTA2NDJcdTA2MjdcdTA2Q0NcdTA2MzNcdTA2NDcgXHUwNjJFXHUwNjMxXHUwNjI3XHUwNjI4XHUwNkNDXHUyMDBDXHUwNjQ3XHUwNjI3IiYmYmEoIlx1MDY0NVx1MDY0Mlx1MDYyN1x1MDZDQ1x1MDYzM1x1MDY0NyIpfSxjaGlsZHJlbjpbKDAscy5qc3gpKG4se3NpemU6MTl9KSxJXX0sSSkpLCgwLHMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiJuYXZsYWJlbCIsY2hpbGRyZW46Ilx1MDY0NVx1MDYyRlx1MDZDQ1x1MDYzMVx1MDZDQ1x1MDYyQSJ9KSwoMCxzLmpzeHMpKCJidXR0b24iLHtjbGFzc05hbWU6Im5hdiIsb25DbGljazooKT0+YmEoIlx1MDY0Nlx1MDY0NVx1MDYyN1x1MDY0N1x1MDYyN1x1MDZDQyBcdTA2MzNcdTA2NDFcdTA2MjdcdTA2MzFcdTA2MzRcdTA2Q0MiKSxjaGlsZHJlbjpbKDAscy5qc3gpKHR1LHtzaXplOjE5fSksIlx1MDY0Nlx1MDY0NVx1MDYyN1x1MDY0N1x1MDYyN1x1MDZDQyBcdTA2MzNcdTA2NDFcdTA2MjdcdTA2MzFcdTA2MzRcdTA2Q0MiXX0pLCgwLHMuanN4cykoImJ1dHRvbiIse2NsYXNzTmFtZToibmF2IixvbkNsaWNrOigpPT5iYSgiXHUwNjI3XHUwNjJBXHUwNjM1XHUwNjI3XHUwNjQ0IFx1MDY0OCBcdTA2MkFcdTA2NDZcdTA2MzhcdTA2Q0NcdTA2NDVcdTA2MjdcdTA2MkEiKSxjaGlsZHJlbjpbKDAscy5qc3gpKENmLHtzaXplOjE5fSksIlx1MDYyN1x1MDYyQVx1MDYzNVx1MDYyN1x1MDY0NCBcdTA2NDggXHUwNjJBXHUwNjQ2XHUwNjM4XHUwNkNDXHUwNjQ1XHUwNjI3XHUwNjJBIl19KSwoMCxzLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6InNpZGViYXJib3R0b20iLGNoaWxkcmVuOlsoMCxzLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6ImhlbHAiLGNoaWxkcmVuOlsoMCxzLmpzeCkoJHQse3NpemU6MjN9KSwoMCxzLmpzeCkoImIiLHtjaGlsZHJlbjoiXHUwNjJGXHUwNjMzXHUwNjJBXHUwNjMxXHUwNjMzXHUwNkNDIFx1MDY0NVx1MDYzN1x1MDYyN1x1MDYyOFx1MDY0MiBcdTA2MkRcdTA2MzNcdTA2MjdcdTA2MjggXHUwNkE5XHUwNjI3XHUwNjMxXHUwNjI4XHUwNjMxXHUwNkNDIn0pLCgwLHMuanN4KSgicCIse2NoaWxkcmVuOiJcdTA2NDdcdTA2NDVcdTA2NDcgXHUwNjI3XHUwNjQyXHUwNjJGXHUwNjI3XHUwNjQ1XHUwNjI3XHUwNjJBIFx1MDYyOFx1MDYyNyBcdTA2MkFcdTA2MjNcdTA2Q0NcdTA2Q0NcdTA2MkYgXHUwNjMzXHUwNjMxXHUwNjQ4XHUwNkNDXHUwNjMzIFx1MDYyN1x1MDYzNVx1MDY0NFx1MDZDQyJ9KSwoMCxzLmpzeCkoImJ1dHRvbiIse29uQ2xpY2s6KCk9PmJhKCJcdTA2MzFcdTA2MjdcdTA2NDdcdTA2NDZcdTA2NDVcdTA2MjciKSxjaGlsZHJlbjoiXHUwNjMxXHUwNjI3XHUwNjQ3XHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNkNDIFx1MDYyN1x1MDYyQVx1MDYzNVx1MDYyN1x1MDY0NCJ9KV19KSwoMCxzLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6InByb2ZpbGUiLGNoaWxkcmVuOlsoMCxzLmpzeCkoInNwYW4iLHtjbGFzc05hbWU6ImF2YXRhciIsY2hpbGRyZW46KEwuZGlzcGxheU5hbWV8fCJcdTA2QTkiKVswXX0pLCgwLHMuanN4cykoImRpdiIse2NoaWxkcmVuOltMLmRpc3BsYXlOYW1lfHwiXHUwNjJEXHUwNjMzXHUwNjI3XHUwNjI4IFx1MDYyQ1x1MDYyN1x1MDYzMVx1MDZDQyIsKDAscy5qc3gpKCJzbWFsbCIse2NoaWxkcmVuOmE9PT0ibWluZSI/Ilx1MDYyRlx1MDYzMVx1MDYyRVx1MDY0OFx1MDYyN1x1MDYzM1x1MDYyQVx1MjAwQ1x1MDY0N1x1MDYyN1x1MDZDQyBcdTA2MkJcdTA2MjhcdTA2MkFcdTIwMENcdTA2MzRcdTA2MkZcdTA2NDcgXHUwNjQ1XHUwNjQ2IjoiXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNkNDIFx1MDY0NVx1MDYyRlx1MDZDQ1x1MDYzMVx1MDZDQ1x1MDYyQSJ9KV19KV19KV19KV19KSwoMCxzLmpzeHMpKCJtYWluIix7Y2hpbGRyZW46WygwLHMuanN4cykoImhlYWRlciIse2NoaWxkcmVuOlsoMCxzLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6ImJyZWFkY3J1bWIiLGNoaWxkcmVuOlsiXHUwNjQxXHUwNjM2XHUwNjI3XHUwNkNDIFx1MDZBOVx1MDYyN1x1MDYzMVx1MDZDQyIsKDAscy5qc3gpKFd0LHtzaXplOjE0fSksKDAscy5qc3gpKCJiIix7Y2hpbGRyZW46dH0pXX0pLCgwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZToiaGVhZGVybGVmdCIsY2hpbGRyZW46WygwLHMuanN4cykoInNwYW4iLHtjbGFzc05hbWU6ImNvbm5lY3Rpb24iLGNoaWxkcmVuOlsoMCxzLmpzeCkoImkiLHt9KSxTPyJcdTA2NDVcdTA2MkFcdTA2MzVcdTA2NDQgXHhCNyAiK1M6Ilx1MDYyRlx1MDYzMSBcdTA2MkRcdTA2MjdcdTA2NDQgXHUwNjI3XHUwNjJBXHUwNjM1XHUwNjI3XHUwNjQ0Il19KSwoMCxzLmpzeCkoImJ1dHRvbiIse2NsYXNzTmFtZToiaWNvbmJ1dHRvbiIsImFyaWEtbGFiZWwiOiJcdTA2MjdcdTA2MzlcdTA2NDRcdTA2MjdcdTA2NDZcdTIwMENcdTA2NDdcdTA2MjciLG9uQ2xpY2s6KCk9PmJhKCJcdTA2MjdcdTA2MzlcdTA2NDRcdTA2MjdcdTA2NDZcdTIwMENcdTA2NDdcdTA2MjciKSxjaGlsZHJlbjooMCxzLmpzeCkoSmwse3NpemU6MTh9KX0pXX0pXX0pLCgwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZToiY29udGVudCIsY2hpbGRyZW46WygwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZToiaGVhZGluZyIsY2hpbGRyZW46WygwLHMuanN4cykoImRpdiIse2NoaWxkcmVuOlsoMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZToiZXllYnJvdyIsY2hpbGRyZW46Ilx1MDY0NVx1MDYzMVx1MDZBOVx1MDYzMiBcdTA2QTlcdTA2NDZcdTA2MkFcdTA2MzFcdTA2NDQgXHUwNjQ4IFx1MDY0Nlx1MDZBRlx1MDY0N1x1MDYyRlx1MDYyN1x1MDYzMVx1MDZDQyJ9KSwoMCxzLmpzeCkoImgxIix7Y2hpbGRyZW46dD09PSJcdTA2MkZcdTA2MjdcdTA2MzRcdTA2MjhcdTA2NDhcdTA2MzFcdTA2MkYiPyJcdTA2NDZcdTA2NDVcdTA2MjdcdTA2Q0MgXHUwNkE5XHUwNjQ0XHUwNkNDIFx1MDYyQVx1MDYyQ1x1MDY0N1x1MDZDQ1x1MDYzMlx1MDYyN1x1MDYyQSBcdTA2NDggXHUwNjJFXHUwNjMxXHUwNjI3XHUwNjI4XHUwNkNDXHUyMDBDXHUwNjQ3XHUwNjI3Ijp0fSksKDAscy5qc3gpKCJwIix7Y2hpbGRyZW46YT09PSJtaW5lIj8iXHUwNjQxXHUwNjQyXHUwNjM3IFx1MDYyRlx1MDYzMVx1MDYyRVx1MDY0OFx1MDYyN1x1MDYzM1x1MDYyQVx1MjAwQ1x1MDY0N1x1MDYyN1x1MDZDQ1x1MDZDQyBcdTA2QTlcdTA2NDcgXHUwNjJFXHUwNjQ4XHUwNjJGXHUwNjJBXHUwNjI3XHUwNjQ2IFx1MDYyQlx1MDYyOFx1MDYyQSBcdTA2QTlcdTA2MzFcdTA2MkZcdTA2NDdcdTIwMENcdTA2MjdcdTA2Q0NcdTA2MkZcdTA2MUIgXHUwNjQ1XHUwNjMzXHUwNjI2XHUwNjQ4XHUwNjQ0IFx1MDYyQVx1MDYzOVx1MDY0NVx1MDZDQ1x1MDYzMVx1MDYyN1x1MDYyQSBcdTA2NDVcdTA2Q0NcdTIwMENcdTA2MkFcdTA2NDhcdTA2MjdcdTA2NDZcdTA2MkYgXHUwNjM0XHUwNjJFXHUwNjM1IFx1MDYyRlx1MDZDQ1x1MDZBRlx1MDYzMVx1MDZDQyBcdTA2MjhcdTA2MjdcdTA2MzRcdTA2MkYuIjoiXHUwNjQxXHUwNjM5XHUwNjI3XHUwNjQ0XHUwNkNDXHUwNjJBXHUyMDBDXHUwNjQ3XHUwNjI3XHUwNkNDIFx1MDY0NVx1MDYyQ1x1MDYyN1x1MDYzMiBcdTA2MjhcdTA2MzFcdTA2MjdcdTA2Q0MgXHUwNkFGXHUwNjMxXHUwNjQ4XHUwNjQ3IFx1MDY0NVx1MDYyRlx1MDZDQ1x1MDYzMVx1MDZDQ1x1MDYyQSBcdTA2NDggXHUwNkE5XHUwNjI3XHUwNjMxXHUwNjM0XHUwNjQ2XHUwNjI3XHUwNjMzXHUwNjI3XHUwNjQ2XHUwNjFCIFx1MDYyOFx1MDYzMSBcdTA2MjdcdTA2MzNcdTA2MjdcdTA2MzMgXHUwNjJGXHUwNjMzXHUwNjJBXHUwNjMxXHUwNjMzXHUwNkNDIFx1MDYzM1x1MDYzMVx1MDY0OFx1MDYzMS4ifSldfSksKDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6ImRhdGUiLGNoaWxkcmVuOigwLHMuanN4cykoInNlbGVjdCIseyJhcmlhLWxhYmVsIjoiXHUwNjQ1XHUwNjJEXHUwNjJGXHUwNjQ4XHUwNjJGXHUwNjQ3IFx1MDYyN1x1MDYzN1x1MDY0NFx1MDYyN1x1MDYzOVx1MDYyN1x1MDYyQSIsdmFsdWU6YSxkaXNhYmxlZDpMYSxvbkNoYW5nZTpuPT57ZShuLnRhcmdldC52YWx1ZSksS2EoIiIpLHhkKCIiKSxTZCgiIil9LGNoaWxkcmVuOlsoMCxzLmpzeCkoIm9wdGlvbiIse3ZhbHVlOiJtaW5lIixjaGlsZHJlbjoiXHUwNjJGXHUwNjMxXHUwNjJFXHUwNjQ4XHUwNjI3XHUwNjMzXHUwNjJBXHUyMDBDXHUwNjQ3XHUwNjI3XHUwNkNDIFx1MDYyQlx1MDYyOFx1MDYyQVx1MjAwQ1x1MDYzNFx1MDYyRlx1MDY0NyBcdTA2NDVcdTA2NDYifSksKDAscy5qc3gpKCJvcHRpb24iLHt2YWx1ZToibWFuYWdlbWVudCIsY2hpbGRyZW46Ilx1MDY0Nlx1MDY0NVx1MDYyN1x1MDZDQyBcdTA2NDVcdTA2MkZcdTA2Q0NcdTA2MzFcdTA2Q0NcdTA2MkEgXHUwNjQ4IFx1MDZBOVx1MDYyN1x1MDYzMVx1MDYzNFx1MDY0Nlx1MDYyN1x1MDYzM1x1MDYyN1x1MDY0NiJ9KV19KX0pXX0pLHkmJigwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZToibGl2ZWVycm9yIixyb2xlOiJhbGVydCIsY2hpbGRyZW46WygwLHMuanN4KShNdCx7c2l6ZToxOH0pLCgwLHMuanN4KSgic3BhbiIse2NoaWxkcmVuOnl9KSwoMCxzLmpzeCkoImJ1dHRvbiIse2Rpc2FibGVkOnIsb25DbGljazp0bCxjaGlsZHJlbjoiXHUwNjJBXHUwNjQ0XHUwNjI3XHUwNjM0IFx1MDY0NVx1MDYyQ1x1MDYyRlx1MDYyRiJ9KV19KSwoMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZToic3RhdHMiLGNoaWxkcmVuOlt7bGFiZWw6Ilx1MDYyRVx1MDYzMVx1MDYyN1x1MDYyOFx1MDZDQ1x1MjAwQ1x1MDY0N1x1MDYyN1x1MDZDQyBcdTA2MkNcdTA2MjdcdTA2MzFcdTA2Q0MiLHZhbHVlOnUuZmlsdGVyKG49PiFuLmRvbmUpLmxlbmd0aCxpY29uOiRsLGNvbG9yOiJ0ZWFsIn0se2xhYmVsOiJcdTA2QTlcdTA2NDQgXHUwNjQ1XHUwNjQ4XHUwNjI3XHUwNjMxXHUwNjJGIFx1MDYyRlx1MDYzMVx1MDZDQ1x1MDYyN1x1MDY0MVx1MDYyQVx1MDZDQyIsdmFsdWU6dS5sZW5ndGgsaWNvbjpKdCxjb2xvcjoiYmx1ZSJ9LHtsYWJlbDoiXHUwNjQyXHUwNjI3XHUwNjI4XHUwNjQ0IFx1MDYyOFx1MDYzM1x1MDYyQVx1MDY0NiBcdTA2MkZcdTA2MzEgXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNkNDIFx1MDY0MVx1MDYzOVx1MDY0NFx1MDZDQyIsdmFsdWU6UmYuZmlsdGVyKG49PlRkKG4sb1tuLmlkXSkpLmxlbmd0aCxpY29uOiR0LGNvbG9yOiJhbWJlciJ9LHtsYWJlbDoiXHUwNjdFXHUwNjI3XHUwNkNDXHUwNjI3XHUwNjQ2XHUyMDBDXHUwNkNDXHUwNjI3XHUwNjQxXHUwNjJBXHUwNjQ3XHUyMDBDXHUwNjQ3XHUwNjI3Iix2YWx1ZTp1LmZpbHRlcihuPT5uLmRvbmUpLmxlbmd0aCxpY29uOldsLGNvbG9yOiJ0ZWFsIn1dLm1hcChuPT4oMCxzLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6InN0YXQiLGNoaWxkcmVuOlsoMCxzLmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbKDAscy5qc3gpKCJzcGFuIix7Y2hpbGRyZW46bi5sYWJlbH0pLCgwLHMuanN4KSgic3Ryb25nIix7Y2hpbGRyZW46cj8iXHUyMDI2Ijp2ZShuLnZhbHVlKX0pLCgwLHMuanN4KSgic21hbGwiLHtjaGlsZHJlbjoiXHUwNjI4XHUwNjMxIFx1MDYyN1x1MDYzM1x1MDYyN1x1MDYzMyBcdTA2N0VcdTA2MjdcdTA2MzNcdTA2MkUgXHUwNjMzXHUwNjMxXHUwNjQ4XHUwNkNDXHUwNjMzIn0pXX0pLCgwLHMuanN4KSgic3BhbiIse2NsYXNzTmFtZToic3RhdEljb24gIituLmNvbG9yLGNoaWxkcmVuOigwLHMuanN4KShuLmljb24se3NpemU6MjN9KX0pXX0sbi5sYWJlbCkpfSksKDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJxdWlja3JvdyIsY2hpbGRyZW46WygwLHMuanN4cykoImJ1dHRvbiIse2NsYXNzTmFtZToicXVpY2sgbmV3IixkaXNhYmxlZDpMYSxvbkNsaWNrOigpPT5iYSgiXHUwNjJCXHUwNjI4XHUwNjJBIFx1MDYyRVx1MDYzMVx1MDYyN1x1MDYyOFx1MDZDQyBcdTA2MkNcdTA2MkZcdTA2Q0NcdTA2MkYiKSxjaGlsZHJlbjpbKDAscy5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOiJxdWlja0ljb24iLGNoaWxkcmVuOigwLHMuanN4KSh4Zix7c2l6ZToyM30pfSksKDAscy5qc3hzKSgiZGl2Iix7Y2hpbGRyZW46WygwLHMuanN4KSgiaDMiLHtjaGlsZHJlbjoiXHUwNjJCXHUwNjI4XHUwNjJBIFx1MDYyRVx1MDYzMVx1MDYyN1x1MDYyOFx1MDZDQyBcdTA2MkNcdTA2MkZcdTA2Q0NcdTA2MkYifSksKDAscy5qc3gpKCJwIix7Y2hpbGRyZW46Ilx1MDYyQlx1MDYyOFx1MDYyQSBcdTA2NDVcdTA2MzNcdTA2MkFcdTA2NDJcdTA2Q0NcdTA2NDUgXHUwNjI4XHUwNjI3IFx1MDYyRFx1MDYzM1x1MDYyN1x1MDYyOCBcdTA2QTlcdTA2MjdcdTA2MzFcdTA2MjhcdTA2MzFcdTA2Q0MgXHUwNjQxXHUwNjM5XHUwNjQ0XHUwNkNDIn0pXX0pLCgwLHMuanN4KShLbCx7c2l6ZToyMH0pXX0pLCgwLHMuanN4cykoImJ1dHRvbiIse2NsYXNzTmFtZToicXVpY2siLG9uQ2xpY2s6dGwsZGlzYWJsZWQ6cnx8TGEsY2hpbGRyZW46WygwLHMuanN4KSgic3BhbiIse2NsYXNzTmFtZToicXVpY2tJY29uIixjaGlsZHJlbjooMCxzLmpzeCkoZXUse3NpemU6MjF9KX0pLCgwLHMuanN4cykoImRpdiIse2NoaWxkcmVuOlsoMCxzLmpzeCkoImgzIix7Y2hpbGRyZW46Ilx1MDYyOFx1MDY0N1x1MjAwQ1x1MDYzMVx1MDY0OFx1MDYzMlx1MDYzMVx1MDYzM1x1MDYyN1x1MDY0Nlx1MDZDQyJ9KSwoMCxzLmpzeCkoInAiLHtjaGlsZHJlbjpyPyJcdTA2MkZcdTA2MzEgXHUwNjJEXHUwNjI3XHUwNjQ0IFx1MDYyRlx1MDYzMVx1MDZDQ1x1MDYyN1x1MDY0MVx1MDYyQSBcdTA2MjdcdTA2MzdcdTA2NDRcdTA2MjdcdTA2MzlcdTA2MjdcdTA2MkFcdTIwMjYiOiJcdTA2MkZcdTA2MzFcdTA2Q0NcdTA2MjdcdTA2NDFcdTA2MkEgXHUwNjIyXHUwNjJFXHUwNjMxXHUwNkNDXHUwNjQ2IFx1MDYyN1x1MDYzN1x1MDY0NFx1MDYyN1x1MDYzOVx1MDYyN1x1MDYyQSBcdTA2MjdcdTA2MzIgXHUwNjMzXHUwNjMxXHUwNjQ4XHUwNjMxIn0pXX0pLCgwLHMuanN4KShLbCx7c2l6ZToyMH0pXX0pXX0pLCgwLHMuanN4cykoInNlY3Rpb24iLHtjbGFzc05hbWU6ImJvYXJkIixjaGlsZHJlbjpbKDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJib2FyZGhlYWQiLGNoaWxkcmVuOlsoMCxzLmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbKDAscy5qc3hzKSgiaDIiLHtjaGlsZHJlbjpbYT09PSJtaW5lIj8iXHUwNjJGXHUwNjMxXHUwNjJFXHUwNjQ4XHUwNjI3XHUwNjMzXHUwNjJBXHUyMDBDXHUwNjQ3XHUwNjI3XHUwNkNDIFx1MDYyQlx1MDYyOFx1MDYyQVx1MjAwQ1x1MDYzNFx1MDYyRlx1MDY0NyBcdTA2NDVcdTA2NDYiOiJcdTA2QTlcdTA2MjdcdTA2MzFcdTA2MkFcdTA2MjdcdTA2MjhcdTA2NDQgXHUwNjQ1XHUwNjJGXHUwNkNDXHUwNjMxXHUwNkNDXHUwNjJBIiwoMCxzLmpzeHMpKCJzcGFuIix7Y2hpbGRyZW46W3ZlKGR1Lmxlbmd0aCksIiBcdTA2NDVcdTA2NDhcdTA2MzFcdTA2MkYiXX0pXX0pLCgwLHMuanN4KSgicCIse2NoaWxkcmVuOiJcdTA2QUZcdTA2MzFcdTA2MkZcdTA2MzQgXHUwNkE5XHUwNjI3XHUwNjMxIFx1MDY0OCBcdTA2NDVcdTA2MkNcdTA2NDhcdTA2MzJcdTA2NDdcdTA2MjcgXHUwNjI3XHUwNjMyIFx1MDYzM1x1MDYzMVx1MDY0OFx1MDZDQ1x1MDYzMyBcdTA2MjdcdTA2MzVcdTA2NDRcdTA2Q0MgXHUwNjJGXHUwNjMxXHUwNkNDXHUwNjI3XHUwNjQxXHUwNjJBIFx1MDY0NVx1MDZDQ1x1MjAwQ1x1MDYzNFx1MDY0OFx1MDY0Nlx1MDYyRiJ9KV19KSwoMCxzLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6ImJvYXJkdG9vbHMiLGNoaWxkcmVuOlsoMCxzLmpzeHMpKCJidXR0b24iLHtvbkNsaWNrOigpPT5iYSgiXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNjQ3XHUwNjI3XHUwNkNDIFx1MDYzM1x1MDY0MVx1MDYyN1x1MDYzMVx1MDYzNFx1MDZDQyIpLGNoaWxkcmVuOlsoMCxzLmpzeCkodHUse3NpemU6MTZ9KSwiXHUwNjJBXHUwNjQ2XHUwNjM4XHUwNkNDXHUwNjQ1IFx1MDY0Nlx1MDY0NVx1MDYyNyJdfSksKDAscy5qc3hzKSgiYnV0dG9uIix7b25DbGljazooKT0+YmEoIlx1MDY0NVx1MDY0Mlx1MDYyN1x1MDZDQ1x1MDYzM1x1MDY0NyIpLGNoaWxkcmVuOlsoMCxzLmpzeCkoYXUse3NpemU6MTZ9KSwiXHUwNjQ1XHUwNjQyXHUwNjI3XHUwNkNDXHUwNjMzXHUwNjQ3ICgiLHZlKHV1Lmxlbmd0aCksIikiXX0pXX0pXX0pLCgwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZToidGFicyIsY2hpbGRyZW46W1tbIm9wZW4iLCJcdTA2MkNcdTA2MjdcdTA2MzFcdTA2Q0MiXSxbImRvbmUiLCJcdTA2N0VcdTA2MjdcdTA2Q0NcdTA2MjdcdTA2NDZcdTIwMENcdTA2Q0NcdTA2MjdcdTA2NDFcdTA2MkFcdTA2NDciXSxbImFsbCIsIlx1MDY0N1x1MDY0NVx1MDY0NyJdXS5tYXAoKFtuLEldKT0+KDAscy5qc3gpKCJidXR0b24iLHtjbGFzc05hbWU6VD09PW4/ImNob3NlbiI6IiIsb25DbGljazooKT0+cShuKSxjaGlsZHJlbjpJfSxuKSksTWYubWFwKChuLEkpPT4oMCxzLmpzeCkoImJ1dHRvbiIse29uQ2xpY2s6KCk9PntxKG4udGFiKSxLYShuLnN0YXR1cykseGQobi5wcmlvcml0eSksU2Qobi5hc3NpZ25lZSksQShuLnF1ZXJ5KX0sY2hpbGRyZW46bi5uYW1lfSxJKSldfSksKDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJmaWx0ZXJzIixjaGlsZHJlbjpbKDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJzZWFyY2giLGNoaWxkcmVuOlsoMCxzLmpzeCkoU2Yse3NpemU6MTd9KSwoMCxzLmpzeCkoImlucHV0Iix7dmFsdWU6VSxvbkNoYW5nZTpuPT5BKG4udGFyZ2V0LnZhbHVlKSxwbGFjZWhvbGRlcjoiXHUwNjJDXHUwNjMzXHUwNjJBXHUyMDBDXHUwNjQ4XHUwNjJDXHUwNjQ4XHUwNkNDIFx1MDYyRVx1MDYzMVx1MDYyN1x1MDYyOFx1MDZDQ1x1MDYwQyBcdTA2MkFcdTA2MkNcdTA2NDdcdTA2Q0NcdTA2MzJcdTA2MEMgXHUwNjM0XHUwNjQ2XHUwNjI3XHUwNjMzXHUwNjQ3IFx1MDZDQ1x1MDYyNyBcdTA2QTlcdTA2MjdcdTA2MzFcdTA2MzRcdTA2NDZcdTA2MjdcdTA2MzNcdTIwMjYifSldfSksKDAscy5qc3hzKSgic2VsZWN0Iix7ImFyaWEtbGFiZWwiOiJcdTA2NDFcdTA2Q0NcdTA2NDRcdTA2MkFcdTA2MzEgXHUwNjQ4XHUwNjM2XHUwNjM5XHUwNkNDXHUwNjJBIix2YWx1ZTpPLG9uQ2hhbmdlOm49PkthKG4udGFyZ2V0LnZhbHVlKSxjaGlsZHJlbjpbKDAscy5qc3gpKCJvcHRpb24iLHt2YWx1ZToiIixjaGlsZHJlbjoiXHUwNjQ3XHUwNjQ1XHUwNjQ3IFx1MDY0OFx1MDYzNlx1MDYzOVx1MDZDQ1x1MDYyQVx1MjAwQ1x1MDY0N1x1MDYyNyJ9KSxBcnJheS5mcm9tKG5ldyBTZXQodS5tYXAobj0+bi5zdGF0dXMpKSkubWFwKG49PigwLHMuanN4KSgib3B0aW9uIix7Y2hpbGRyZW46bn0sbikpXX0pLCgwLHMuanN4cykoInNlbGVjdCIseyJhcmlhLWxhYmVsIjoiXHUwNjQxXHUwNkNDXHUwNjQ0XHUwNjJBXHUwNjMxIFx1MDY0MVx1MDY0OFx1MDYzMVx1MDZDQ1x1MDYyQSIsdmFsdWU6VHQsb25DaGFuZ2U6bj0+eGQobi50YXJnZXQudmFsdWUpLGNoaWxkcmVuOlsoMCxzLmpzeCkoIm9wdGlvbiIse3ZhbHVlOiIiLGNoaWxkcmVuOiJcdTA2NDdcdTA2NDVcdTA2NDcgXHUwNjI3XHUwNjQ4XHUwNjQ0XHUwNjQ4XHUwNkNDXHUwNjJBXHUyMDBDXHUwNjQ3XHUwNjI3In0pLF9MLm1hcChuPT4oMCxzLmpzeCkoIm9wdGlvbiIse2NoaWxkcmVuOm59LG4pKV19KSwoMCxzLmpzeHMpKCJzZWxlY3QiLHsiYXJpYS1sYWJlbCI6Ilx1MDY0MVx1MDZDQ1x1MDY0NFx1MDYyQVx1MDYzMSBcdTA2NDVcdTA2MzNcdTA2MjZcdTA2NDhcdTA2NDQiLHZhbHVlOmx1LG9uQ2hhbmdlOm49PlNkKG4udGFyZ2V0LnZhbHVlKSxjaGlsZHJlbjpbKDAscy5qc3gpKCJvcHRpb24iLHt2YWx1ZToiIixjaGlsZHJlbjoiXHUwNjQ3XHUwNjQ1XHUwNjQ3IFx1MDZBOVx1MDYyN1x1MDYzMVx1MDYzNFx1MDY0Nlx1MDYyN1x1MDYzM1x1MDYyN1x1MDY0NiJ9KSxBcnJheS5mcm9tKG5ldyBTZXQodS5tYXAobj0+bi5wZXJzb24pKSkubWFwKG49PigwLHMuanN4KSgib3B0aW9uIix7Y2hpbGRyZW46bn0sbikpXX0pXX0pLHI/KDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6ImVtcHR5IixjaGlsZHJlbjoiXHUwNjJGXHUwNjMxIFx1MDYyRFx1MDYyN1x1MDY0NCBcdTA2MkZcdTA2MzFcdTA2Q0NcdTA2MjdcdTA2NDFcdTA2MkEgXHUwNjI3XHUwNjM3XHUwNjQ0XHUwNjI3XHUwNjM5XHUwNjI3XHUwNjJBIFx1MDY0OFx1MDYyN1x1MDY0Mlx1MDYzOVx1MDZDQ1x1MjAyNiJ9KTooMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZToiY2FyZHMiLGNoaWxkcmVuOlJmLm1hcChuPT57bGV0IEk9b1tuLmlkXSx2PUk/LnByaW9yaXR5Py5uYW1lP0kucHJpb3JpdHk6eC5maW5kKHo9PnoubmFtZT09PW4ucHJpb3JpdHkpO3JldHVybigwLHMuanN4cykoImFydGljbGUiLHtjbGFzc05hbWU6ImZhdWx0IixjaGlsZHJlbjpbKDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJjYXJkdG9wIixjaGlsZHJlbjpbKDAscy5qc3gpKE9MLHtuYW1lOnY/Lm5hbWV8fG4ucHJpb3JpdHksaWNvbjp2Py5pY29uVXJsfSksKDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJjYXJkaWQiLGNoaWxkcmVuOlsoMCxzLmpzeCkoInNwYW4iLHtkaXI6Imx0ciIsY2hpbGRyZW46bi5pZH0pLCgwLHMuanN4KSgiaW5wdXQiLHt0eXBlOiJjaGVja2JveCIsImFyaWEtbGFiZWwiOiJcdTA2MjdcdTA2NDZcdTA2MkFcdTA2MkVcdTA2MjdcdTA2MjggIituLmlkLGNoZWNrZWQ6dXUuaW5jbHVkZXMobi5pZCksb25DaGFuZ2U6ej0+SW4odGE9PnoudGFyZ2V0LmNoZWNrZWQ/Wy4uLnRhLG4uaWRdOnRhLmZpbHRlcihNYT0+TWEhPT1uLmlkKSl9KV19KV19KSwoMCxzLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6InByb2R1Y3QiLGNoaWxkcmVuOlsoMCxzLmpzeCkoVUwse2Fzc2V0Okk/LmFzc2V0fSksKDAscy5qc3hzKSgiZGl2Iix7Y2hpbGRyZW46WygwLHMuanN4KSgic3BhbiIse2NsYXNzTmFtZToidW5pdCIsY2hpbGRyZW46ST8uYXNzZXQ/LmtleXx8Ilx1MDYzNFx1MDY0Nlx1MDYyN1x1MDYzM1x1MDY0NyBcdTA2MkFcdTA2MkNcdTA2NDdcdTA2Q0NcdTA2MzIgXHUwNjJGXHUwNjMxXHUwNkNDXHUwNjI3XHUwNjQxXHUwNjJBIFx1MDY0Nlx1MDYzNFx1MDYyRlx1MDY0NyJ9KSwoMCxzLmpzeCkoImgzIix7dGl0bGU6bi50aXRsZSxjaGlsZHJlbjooMCxzLmpzeCkoImJ1dHRvbiIse2NsYXNzTmFtZToidGl0bGVidXR0b24iLG9uQ2xpY2s6KCk9PmJhKCJcdTA2MkNcdTA2MzJcdTA2MjZcdTA2Q0NcdTA2MjdcdTA2MkEiLG4uaWQpLGNoaWxkcmVuOm4udGl0bGV9KX0pLCgwLHMuanN4KSgicCIse2NoaWxkcmVuOkk/LmFzc2V0Py5sYWJlbHx8Ilx1MDY0NVx1MDYzNFx1MDYyRVx1MDYzNVx1MDYyN1x1MDYyQSBcdTA2MkFcdTA2MkNcdTA2NDdcdTA2Q0NcdTA2MzIgXHUwNjJGXHUwNjMxIFx1MDYyRFx1MDYyN1x1MDY0NCBcdTA2MjhcdTA2MzFcdTA2MzFcdTA2MzNcdTA2Q0MifSldfSldfSksKDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJhc3NpZ25tZW50IixjaGlsZHJlbjpbKDAscy5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOiJhdmF0YXIgdGlueSIsY2hpbGRyZW46bi5wZXJzb25bMF19KSwoMCxzLmpzeHMpKCJzcGFuIix7Y2hpbGRyZW46WyJcdTA2QTlcdTA2MjdcdTA2MzFcdTA2MzRcdTA2NDZcdTA2MjdcdTA2MzMgXHUwNjJBXHUwNjM5XHUwNjQ1XHUwNkNDXHUwNjMxXHUwNjI3XHUwNjJBIiwoMCxzLmpzeCkoImIiLHtjaGlsZHJlbjpuLnBlcnNvbn0pXX0pLCgwLHMuanN4cykoInNwYW4iLHtjbGFzc05hbWU6ImVsYXBzZWQiLGNoaWxkcmVuOlsoMCxzLmpzeCkobWYse3NpemU6MTJ9KSx5ZihuLnVwZGF0ZWQpXX0pXX0pLCgwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZToiYWN0aW9uYm94IixjaGlsZHJlbjpbKDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJhY3Rpb250aXRsZSIsY2hpbGRyZW46WygwLHMuanN4KSgiYiIse2NoaWxkcmVuOiJcdTA2MjdcdTA2NDJcdTA2MkZcdTA2MjdcdTA2NDUifSksKDAscy5qc3hzKSgic3BhbiIse2NsYXNzTmFtZToic3RhdHVzIixjaGlsZHJlbjpbKDAscy5qc3gpKCJpIix7fSksbi5zdGF0dXNdfSldfSksKDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJsaXZlZmxvdyIsY2hpbGRyZW46WygwLHMuanN4KSgic3BhbiIse2NsYXNzTmFtZToiY3VycmVudHN0YWdlIixjaGlsZHJlbjpuLnN0YXR1c30pLCgwLHMuanN4KShXdCx7c2l6ZToxMn0pLCgwLHMuanN4KSgic3BhbiIse2NoaWxkcmVuOm4uZG9uZT8iXHUwNjdFXHUwNjI3XHUwNkNDXHUwNjI3XHUwNjQ2IFx1MDY0MVx1MDYzMVx1MDYyN1x1MDZDQ1x1MDY0Nlx1MDYyRiI6ST8uY2hlY2tlZD9JLnRyYW5zaXRpb25zLmxlbmd0aD9JLnRyYW5zaXRpb25zLm1hcCh6PT56Lm5hbWUpLmpvaW4oIiAvICIpOiJcdTA2MjdcdTA2NDJcdTA2MkZcdTA2MjdcdTA2NDVcdTA2Q0MgXHUwNjI4XHUwNjMxXHUwNjI3XHUwNkNDIFx1MDYyN1x1MDZDQ1x1MDY0NiBcdTA2MkRcdTA2MzNcdTA2MjdcdTA2MjggXHUwNjQ1XHUwNjJDXHUwNjI3XHUwNjMyIFx1MDY0Nlx1MDZDQ1x1MDYzM1x1MDYyQSI6Ilx1MDYyRlx1MDYzMSBcdTA2MkRcdTA2MjdcdTA2NDQgXHUwNjI4XHUwNjMxXHUwNjMxXHUwNjMzXHUwNkNDIFx1MDY0NVx1MDYyQ1x1MDY0OFx1MDYzMiBcdTA2MjdcdTA2NDJcdTA2MkZcdTA2MjdcdTA2NDVcdTA2MjdcdTA2MkEifSldfSksKDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJhY3Rpb25zIixjaGlsZHJlbjpbKDAscy5qc3hzKSgiYnV0dG9uIix7ZGlzYWJsZWQ6TGEsb25DbGljazooKT0+YmEoIlx1MDY3RVx1MDZDQ1x1MDYyN1x1MDY0NSBcdTA2MjhcdTA2NDcgXHUwNkE5XHUwNjI3XHUwNjMxXHUwNjM0XHUwNjQ2XHUwNjI3XHUwNjMzIixuLmlkKSxjaGlsZHJlbjpbKDAscy5qc3gpKGhmLHtzaXplOjE1fSksIlx1MDY3RVx1MDZDQ1x1MDYyN1x1MDY0NSBcdTA2MjhcdTA2NDcgXHUwNkE5XHUwNjI3XHUwNjMxXHUwNjM0XHUwNjQ2XHUwNjI3XHUwNjMzIl19KSwoMCxzLmpzeHMpKCJidXR0b24iLHtjbGFzc05hbWU6ImNsb3NlZmF1bHQiLGRpc2FibGVkOkxhfHwhVGQobixJKSx0aXRsZToiXHUwNjQxXHUwNjM5XHUwNjI3XHUwNjQ0IFx1MDYzNFx1MDYyRlx1MDY0NiBcdTA2MjhcdTA2MzEgXHUwNjI3XHUwNjMzXHUwNjI3XHUwNjMzIFx1MDY0NVx1MDYzMVx1MDYyN1x1MDYyRFx1MDY0NCBcdTA2NDVcdTA2MkNcdTA2MjdcdTA2MzIgXHUwNjJGXHUwNjMxXHUwNkNDXHUwNjI3XHUwNjQxXHUwNjJBXHUwNkNDIFx1MDYyN1x1MDYzMiBcdTA2MzNcdTA2MzFcdTA2NDhcdTA2MzEiLG9uQ2xpY2s6KCk9PmJhKCJcdTA2MjhcdTA2MzNcdTA2MkFcdTA2NDYgXHUwNjJGXHUwNjMxXHUwNjJFXHUwNjQ4XHUwNjI3XHUwNjMzXHUwNjJBIixuLmlkKSxjaGlsZHJlbjpbKDAscy5qc3gpKCR0LHtzaXplOjE0fSksIlx1MDYyOFx1MDYzM1x1MDYyQVx1MDY0NiBcdTA2MkZcdTA2MzFcdTA2MkVcdTA2NDhcdTA2MjdcdTA2MzNcdTA2MkEiXX0pLCgwLHMuanN4KSgiYnV0dG9uIix7Y2xhc3NOYW1lOiJkZXRhaWxzIiwiYXJpYS1sYWJlbCI6Ilx1MDYyN1x1MDY0Mlx1MDYyRlx1MDYyN1x1MDY0NVx1MDYyN1x1MDYyQSAiK24uaWQsb25DbGljazooKT0+YmEoIlx1MDYyQ1x1MDYzMlx1MDYyNlx1MDZDQ1x1MDYyN1x1MDYyQSIsbi5pZCksY2hpbGRyZW46KDAscy5qc3gpKFd0LHtzaXplOjE2fSl9KV19KV19KV19LG4uaWQpfSl9KSwhciYmIWR1Lmxlbmd0aCYmKDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6ImVtcHR5IixjaGlsZHJlbjp5PyJcdTA2MjdcdTA2MzdcdTA2NDRcdTA2MjdcdTA2MzlcdTA2MjdcdTA2MkFcdTA2Q0MgXHUwNjI4XHUwNjQ3IFx1MDYyRlx1MDY0NFx1MDZDQ1x1MDY0NCBcdTA2MkVcdTA2MzdcdTA2MjdcdTA2Q0MgXHUwNjI3XHUwNjJBXHUwNjM1XHUwNjI3XHUwNjQ0IFx1MDY0Nlx1MDY0NVx1MDYyN1x1MDZDQ1x1MDYzNCBcdTA2MkZcdTA2MjdcdTA2MkZcdTA2NDcgXHUwNjQ2XHUwNjQ1XHUwNkNDXHUyMDBDXHUwNjM0XHUwNjQ4XHUwNjJGLiI6Ilx1MDY0NVx1MDY0OFx1MDYzMVx1MDYyRlx1MDZDQyBcdTA2MjhcdTA2MjcgXHUwNjQxXHUwNkNDXHUwNjQ0XHUwNjJBXHUwNjMxIFx1MDY0MVx1MDYzOVx1MDY0NFx1MDZDQyBcdTA2NDhcdTA2MkNcdTA2NDhcdTA2MkYgXHUwNjQ2XHUwNjJGXHUwNjI3XHUwNjMxXHUwNjJGLiJ9KSwoMCxzLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6ImJvYXJkZm9vdGVyIixjaGlsZHJlbjpbKDAscy5qc3hzKSgic3BhbiIse2NoaWxkcmVuOlsiXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNkNDXHUwNjM0ICIsdmUoUmYubGVuZ3RoKSwiIFx1MDYyN1x1MDYzMiAiLHZlKGR1Lmxlbmd0aCksIiBcdTA2NDVcdTA2NDhcdTA2MzFcdTA2MkYgXHUwNjJGXHUwNjMxXHUwNkNDXHUwNjI3XHUwNjQxXHUwNjJBXHUwNkNDIl19KSwoMCxzLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6InBhZ2luYXRpb24iLGNoaWxkcmVuOlsoMCxzLmpzeCkoImJ1dHRvbiIse2Rpc2FibGVkOnN1PT09MCxvbkNsaWNrOigpPT5BZihuPT5uLTEpLGNoaWxkcmVuOiJcdTA2NDJcdTA2MjhcdTA2NDRcdTA2Q0MifSksKDAscy5qc3hzKSgic3BhbiIse2NoaWxkcmVuOlt2ZShzdSsxKSwiIC8gIix2ZShEZCldfSksKDAscy5qc3gpKCJidXR0b24iLHtkaXNhYmxlZDpzdSsxPj1EZCxvbkNsaWNrOigpPT5BZihuPT5uKzEpLGNoaWxkcmVuOiJcdTA2MjhcdTA2MzlcdTA2MkZcdTA2Q0MifSldfSldfSldfSksdD09PSJcdTA2N0VcdTA2Q0NcdTA2QUZcdTA2Q0NcdTA2MzFcdTA2Q0MgXHUwNjJBXHUwNjNBXHUwNkNDXHUwNkNDXHUwNjMxXHUwNjI3XHUwNjJBIiYmKDAscy5qc3hzKSgic2VjdGlvbiIse2NsYXNzTmFtZToicGFuZWwgbGl2ZWhpc3RvcnkiLGNoaWxkcmVuOlsoMCxzLmpzeCkoImgzIix7Y2hpbGRyZW46Ilx1MDY3RVx1MDZDQ1x1MDZBRlx1MDZDQ1x1MDYzMVx1MDZDQyBcdTA2MkFcdTA2M0FcdTA2Q0NcdTA2Q0NcdTA2MzFcdTA2MjdcdTA2MkEgXHUwNjJGXHUwNjMxXHUwNjJFXHUwNjQ4XHUwNjI3XHUwNjMzXHUwNjJBIn0pLCgwLHMuanN4KSgicCIse2NsYXNzTmFtZToibXV0ZWQiLGNoaWxkcmVuOiJcdTA2MjdcdTA2MzIgXHUwNjQ3XHUwNjMxIFx1MDZBOVx1MDYyN1x1MDYzMVx1MDYyQSBceEFCXHUwNjJDXHUwNjMyXHUwNjI2XHUwNkNDXHUwNjI3XHUwNjJBXHhCQiBcdTA2MzFcdTA2MjcgXHUwNjI4XHUwNjI3XHUwNjMyIFx1MDZBOVx1MDY0Nlx1MDZDQ1x1MDYyRlx1MDYxQiBcdTA2MkFcdTA2MjdcdTA2MzFcdTA2Q0NcdTA2MkVcdTA2ODZcdTA2NDcgXHUwNjMzXHUwNjMxXHUwNjQ4XHUwNjMxIFx1MDY0N1x1MDY0NVx1MDYzMVx1MDYyN1x1MDY0NyBcdTA2NDZcdTA2MjdcdTA2NDUgXHUwNjJBXHUwNjNBXHUwNkNDXHUwNkNDXHUwNjMxXHUyMDBDXHUwNjJGXHUwNjQ3XHUwNjQ2XHUwNjJGXHUwNjQ3IFx1MDY0OCBcdTA2NDVcdTA2NDJcdTA2MkZcdTA2MjdcdTA2MzEgXHUwNjQyXHUwNjI4XHUwNjQ0XHUwNkNDIFx1MDY0OCBcdTA2MkNcdTA2MkZcdTA2Q0NcdTA2MkYgXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNkNDXHUwNjM0IFx1MDYyRlx1MDYyN1x1MDYyRlx1MDY0NyBcdTA2NDVcdTA2Q0NcdTIwMENcdTA2MzRcdTA2NDhcdTA2MkYuIFx1MDYyOFx1MDYyN1x1MDYzMlx1MDZBRlx1MDYzNFx1MDYyQSBcdTA2MjhcdTA2NDcgXHUwNjJGXHUwNjMxXHUwNjJFXHUwNjQ4XHUwNjI3XHUwNjMzXHUwNjJBIFx1MDY0Mlx1MDYyOFx1MDY0NFx1MDZDQ1x1MDYwQyBcdTA2MjdcdTA2MzdcdTA2NDRcdTA2MjdcdTA2MzlcdTA2MjdcdTA2MkEgXHUwNjMzXHUwNjMxXHUwNjQ4XHUwNjMxIFx1MDYzMVx1MDYyNyBcdTA2MkFcdTA2M0FcdTA2Q0NcdTA2Q0NcdTA2MzEgXHUwNjQ2XHUwNjQ1XHUwNkNDXHUyMDBDXHUwNjJGXHUwNjQ3XHUwNjJGLiJ9KSxEZi5zbGljZSgpLnJldmVyc2UoKS5maWx0ZXIoKG4sSSx2KT0+di5pbmRleE9mKG4pPT09SSkubWFwKG49PigwLHMuanN4KSgiYnV0dG9uIix7b25DbGljazooKT0+YmEoIlx1MDYyQ1x1MDYzMlx1MDYyNlx1MDZDQ1x1MDYyN1x1MDYyQSIsbiksY2hpbGRyZW46bn0sbikpXX0pLCgwLHMuanN4cykoImZvb3RlciIse2NoaWxkcmVuOlsoMCxzLmpzeCkoInNwYW4iLHtjaGlsZHJlbjoiXHUwNjQ1XHUwNjJGXHUwNkNDXHUwNkE5XHUwNkNDXHUwNjQ4IFx1MjAyMiBcdTA2NDVcdTA2MkZcdTA2Q0NcdTA2MzFcdTA2Q0NcdTA2MkEgXHUwNjJBXHUwNjJDXHUwNjQ3XHUwNkNDXHUwNjMyXHUwNjI3XHUwNjJBIFx1MDY0OCBcdTA2N0VcdTA2Q0NcdTA2QUZcdTA2Q0NcdTA2MzFcdTA2Q0MgXHUwNjJFXHUwNjMxXHUwNjI3XHUwNjI4XHUwNkNDXHUyMDBDXHUwNjQ3XHUwNjI3In0pLCgwLHMuanN4KSgic3BhbiIse2NoaWxkcmVuOiJcdTA2NDZcdTA2MzNcdTA2MkVcdTA2NDcgXHUwNjQ1XHUwNjJBXHUwNjM1XHUwNjQ0IFx1MDZGMS5cdTA2RjAuXHUwNkYyIFx4QjcgXHUwNjI4XHUwNjJGXHUwNjQ4XHUwNjQ2IFx1MDYyRlx1MDYyN1x1MDYyRlx1MDY0NyBcdTA2NDZcdTA2NDVcdTA2NDhcdTA2NDZcdTA2NDcifSldfSldfSldfSksYmYmJigwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZToidG9hc3QiLHJvbGU6InN0YXR1cyIsY2hpbGRyZW46WygwLHMuanN4KShXbCx7c2l6ZToxOH0pLGJmXX0pLEVhJiYoMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZToib3ZlcmxheSIsb25DbGljazooKT0+IUxhJiZCdCgiIiksY2hpbGRyZW46KDAscy5qc3hzKSgic2VjdGlvbiIse2NsYXNzTmFtZToibW9kYWwgIisoRWE9PT0iXHUwNjQ1XHUwNjQyXHUwNjI3XHUwNkNDXHUwNjMzXHUwNjQ3Ij8id2lkZSI6IiIpLHJvbGU6ImRpYWxvZyIsImFyaWEtbW9kYWwiOiJ0cnVlIiwiYXJpYS1sYWJlbCI6RWEsb25DbGljazpuPT5uLnN0b3BQcm9wYWdhdGlvbigpLGNoaWxkcmVuOlsoMCxzLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6Im1vZGFsaGVhZCIsY2hpbGRyZW46WygwLHMuanN4KSgiaDIiLHtjaGlsZHJlbjpFYX0pLCgwLHMuanN4KSgiYnV0dG9uIix7ZGlzYWJsZWQ6TGEsImFyaWEtbGFiZWwiOiJcdTA2MjhcdTA2MzNcdTA2MkFcdTA2NDYiLG9uQ2xpY2s6KCk9PkJ0KCIiKSxjaGlsZHJlbjooMCxzLmpzeCkoSWYse3NpemU6MjB9KX0pXX0pLHZuJiYoMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZToibGl2ZWVycm9yIixyb2xlOiJhbGVydCIsY2hpbGRyZW46dm59KSxFYT09PSJcdTA2MkJcdTA2MjhcdTA2MkEgXHUwNjJFXHUwNjMxXHUwNjI3XHUwNjI4XHUwNkNDIFx1MDYyQ1x1MDYyRlx1MDZDQ1x1MDYyRiImJigwLHMuanN4cykoImZvcm0iLHtvblN1Ym1pdDphc3luYyBuPT57aWYobi5wcmV2ZW50RGVmYXVsdCgpLCEvXk1FRC1bMC05XXsxLDEwfSQvLnRlc3QoSGEuZXF1aXBtZW50S2V5KSl7QWUoIlx1MDYzNFx1MDY0Nlx1MDYyN1x1MDYzM1x1MDY0NyBcdTA2MkFcdTA2MkNcdTA2NDdcdTA2Q0NcdTA2MzIgXHUwNjI4XHUwNjI3XHUwNkNDXHUwNjJGIFx1MDY0NVx1MDYyN1x1MDY0Nlx1MDY0Nlx1MDYyRiBNRUQtMTAyNCBcdTA2MjhcdTA2MjdcdTA2MzRcdTA2MkYuIik7cmV0dXJufWF3YWl0IHFmKCgpPT5zZS5jcmVhdGUoSGEpLHY9PiJcdTA2MkZcdTA2MzFcdTA2MkVcdTA2NDhcdTA2MjdcdTA2MzNcdTA2MkEgIit2LmtleSsiIFx1MDYyOFx1MDYyNyBcdTA2MjdcdTA2NDhcdTA2NDRcdTA2NDhcdTA2Q0NcdTA2MkEgXHhBQiIrKHYucHJpb3JpdHl8fCJcdTA2MjdcdTA2NDhcdTA2NDRcdTA2NDhcdTA2Q0NcdTA2MkEgXHUwNjMzXHUwNjMxXHUwNjQ4XHUwNkNDXHUwNjMzIikrIlx4QkIgXHUwNjJCXHUwNjI4XHUwNjJBIFx1MDYzNFx1MDYyRiIpJiYoQnQoIiIpLGVsKHsuLi5IYSxkZXNjcmlwdGlvbjoiIn0pLGF3YWl0IHRsKCkpfSxjaGlsZHJlbjpbKDAscy5qc3gpKCJwIix7Y2xhc3NOYW1lOiJub3RpY2UiLGNoaWxkcmVuOiJcdTA2MkZcdTA2MzNcdTA2MkFcdTA2QUZcdTA2MjdcdTA2NDcgXHUwNjMxXHUwNjI3IFx1MDYyN1x1MDY0Nlx1MDYyQVx1MDYyRVx1MDYyN1x1MDYyOCBcdTA2QTlcdTA2NDZcdTA2Q0NcdTA2MkYgXHUwNkNDXHUwNjI3IFx1MDYzNFx1MDY0Nlx1MDYyN1x1MDYzM1x1MDY0NyBcdTA2NDVcdTA2MzlcdTA2MkFcdTA2MjhcdTA2MzEgXHUwNjJBXHUwNjJDXHUwNjQ3XHUwNkNDXHUwNjMyIFx1MDYzMVx1MDYyNyBcdTA2NDhcdTA2MjdcdTA2MzFcdTA2MkYgXHUwNkE5XHUwNjQ2XHUwNkNDXHUwNjJGLiBcdTA2MzlcdTA2NDZcdTA2NDhcdTA2MjdcdTA2NDYgXHUwNjQ2XHUwNjQ3XHUwNjI3XHUwNkNDXHUwNkNDIFx1MDYyRlx1MDYzMVx1MDYyRVx1MDY0OFx1MDYyN1x1MDYzM1x1MDYyQSBcdTA2MkFcdTA2NDhcdTA2MzNcdTA2MzcgXHUwNjMzXHUwNjMxXHUwNjQ4XHUwNkNDXHUwNjMzIFx1MDYzM1x1MDYyN1x1MDYyRVx1MDYyQVx1MDY0NyBcdTA2NDVcdTA2Q0NcdTIwMENcdTA2MzRcdTA2NDhcdTA2MkYuIn0pLCgwLHMuanN4cykoImxhYmVsIix7Y2hpbGRyZW46WyJcdTA2MkNcdTA2MzNcdTA2MkFcdTIwMENcdTA2NDhcdTA2MkNcdTA2NDhcdTA2Q0MgXHUwNjJGXHUwNjMzXHUwNjJBXHUwNkFGXHUwNjI3XHUwNjQ3IiwoMCxzLmpzeCkoImlucHV0Iix7dmFsdWU6Ym4sb25DaGFuZ2U6bj0+Rkwobi50YXJnZXQudmFsdWUpLHBsYWNlaG9sZGVyOiJcdTA2NDZcdTA2MjdcdTA2NDUgXHUwNkNDXHUwNjI3IFx1MDYzNFx1MDY0Nlx1MDYyN1x1MDYzM1x1MDY0NyBcdTA2MkFcdTA2MkNcdTA2NDdcdTA2Q0NcdTA2MzIifSldfSkseWQubGVuZ3RoPjAmJigwLHMuanN4cykoImxhYmVsIix7Y2hpbGRyZW46WyJcdTA2MjdcdTA2NDZcdTA2MkFcdTA2MkVcdTA2MjdcdTA2MjggXHUwNjJGXHUwNjMzXHUwNjJBXHUwNkFGXHUwNjI3XHUwNjQ3IiwoMCxzLmpzeHMpKCJzZWxlY3QiLHt2YWx1ZTpIYS5lcXVpcG1lbnRLZXksb25DaGFuZ2U6bj0+ZWwoey4uLkhhLGVxdWlwbWVudEtleTpuLnRhcmdldC52YWx1ZX0pLGNoaWxkcmVuOlsoMCxzLmpzeCkoIm9wdGlvbiIse3ZhbHVlOiIiLGNoaWxkcmVuOiJcdTA2MjdcdTA2NDZcdTA2MkFcdTA2MkVcdTA2MjdcdTA2MjggXHUwNkE5XHUwNjQ2XHUwNkNDXHUwNjJGIn0pLHlkLmZpbHRlcihuPT4obi5sYWJlbCsiICIrbi5rZXkpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYm4udG9Mb3dlckNhc2UoKSkpLnNsaWNlKDAsMTUwKS5tYXAobj0+KDAscy5qc3hzKSgib3B0aW9uIix7dmFsdWU6bi5rZXksY2hpbGRyZW46W24ubGFiZWwsIiBcdTIwMTQgIixuLmtleV19LG4ua2V5KSldfSksKDAscy5qc3gpKCJzbWFsbCIse2NoaWxkcmVuOiJcdTA2MkRcdTA2MkZcdTA2MjdcdTA2QTlcdTA2MkJcdTA2MzEgXHUwNkYxXHUwNkY1XHUwNkYwIFx1MDY0Nlx1MDYyQVx1MDZDQ1x1MDYyQ1x1MDY0N1x1MDYxQiBcdTA2MjhcdTA2MzFcdTA2MjdcdTA2Q0MgXHUwNjQ1XHUwNjJEXHUwNjJGXHUwNjQ4XHUwNjJGXHUwNkE5XHUwNjMxXHUwNjJGXHUwNjQ2IFx1MDY0Nlx1MDYyQVx1MDYyN1x1MDZDQ1x1MDYyQyBcdTA2MkNcdTA2MzNcdTA2MkFcdTIwMENcdTA2NDhcdTA2MkNcdTA2NDggXHUwNkE5XHUwNjQ2XHUwNkNDXHUwNjJGLiJ9KV19KSxBbiYmKDAscy5qc3hzKSgicCIse2NsYXNzTmFtZToibm90aWNlIixjaGlsZHJlbjpbQW4sIiBcdTIwMTQgXHUwNjI3XHUwNkFGXHUwNjMxIFx1MDYyRlx1MDYzM1x1MDYyQVx1MDYzMVx1MDYzM1x1MDZDQyBcdTA2NDFcdTA2NDdcdTA2MzFcdTA2MzNcdTA2MkEgXHUwNjQ2XHUwNjJGXHUwNjI3XHUwNjMxXHUwNkNDXHUwNjJGXHUwNjBDIFx1MDYzNFx1MDY0Nlx1MDYyN1x1MDYzM1x1MDY0NyBcdTA2MkFcdTA2MkNcdTA2NDdcdTA2Q0NcdTA2MzIgXHUwNjMxXHUwNjI3IFx1MDYyRlx1MDYzM1x1MDYyQVx1MDZDQyBcdTA2NDhcdTA2MjdcdTA2MzFcdTA2MkYgXHUwNkE5XHUwNjQ2XHUwNkNDXHUwNjJGLiJdfSksKDAscy5qc3hzKSgibGFiZWwiLHtjaGlsZHJlbjpbIlx1MDYzNFx1MDY0Nlx1MDYyN1x1MDYzM1x1MDY0NyBcdTA2MkFcdTA2MkNcdTA2NDdcdTA2Q0NcdTA2MzIiLCgwLHMuanN4KSgiaW5wdXQiLHtyZXF1aXJlZDohMCxkaXI6Imx0ciIsdmFsdWU6SGEuZXF1aXBtZW50S2V5LG9uQ2hhbmdlOm49PmVsKHsuLi5IYSxlcXVpcG1lbnRLZXk6bi50YXJnZXQudmFsdWUudHJpbSgpLnRvVXBwZXJDYXNlKCl9KSxwbGFjZWhvbGRlcjoiTUVELTEwMjQifSldfSksKDAscy5qc3hzKSgibGFiZWwiLHtjaGlsZHJlbjpbIlx1MDYyN1x1MDY0OFx1MDY0NFx1MDY0OFx1MDZDQ1x1MDYyQSIsKDAscy5qc3hzKSgic2VsZWN0Iix7cmVxdWlyZWQ6ITAsdmFsdWU6SGEucHJpb3JpdHksb25DaGFuZ2U6bj0+ZWwoey4uLkhhLHByaW9yaXR5Om4udGFyZ2V0LnZhbHVlfSksY2hpbGRyZW46WygwLHMuanN4KSgib3B0aW9uIix7dmFsdWU6IiIsY2hpbGRyZW46Ilx1MDYyN1x1MDY0Nlx1MDYyQVx1MDYyRVx1MDYyN1x1MDYyOCBcdTA2QTlcdTA2NDZcdTA2Q0NcdTA2MkYifSkseC5tYXAobj0+KDAscy5qc3gpKCJvcHRpb24iLHt2YWx1ZTpuLm5hbWUsY2hpbGRyZW46bi5uYW1lfSxuLmlkKSldfSldfSksIXgubGVuZ3RoJiYoMCxzLmpzeCkoInAiLHtjbGFzc05hbWU6Im5vdGljZSIsY2hpbGRyZW46Ilx1MDYyOFx1MDYzMVx1MDYyN1x1MDZDQyBcdTA2MkVcdTA2NDhcdTA2MjdcdTA2NDZcdTA2MkZcdTA2NDYgXHUwNjI3XHUwNjQ4XHUwNjQ0XHUwNjQ4XHUwNkNDXHUwNjJBXHUyMDBDXHUwNjQ3XHUwNjI3XHUwNkNDIFx1MDY0OFx1MDYyN1x1MDY0Mlx1MDYzOVx1MDZDQ1x1MDYwQyBcdTA2MzNcdTA2MzFcdTA2NDhcdTA2Q0NcdTA2MzMgXHUwNjQ3XHUwNjQ1XHUwNjMxXHUwNjI3XHUwNjQ3IFx1MDYyOFx1MDYyN1x1MDZDQ1x1MDYyRiBcdTA2NDZcdTA2MzVcdTA2MjggXHUwNjQ4IFx1MDY0Mlx1MDYyN1x1MDYyOFx1MDY0NCBcdTA2MkZcdTA2MzNcdTA2MkFcdTA2MzFcdTA2MzNcdTA2Q0MgXHUwNjI4XHUwNjI3XHUwNjM0XHUwNjJGLiJ9KSwoMCxzLmpzeHMpKCJsYWJlbCIse2NoaWxkcmVuOlsiXHUwNjM0XHUwNjMxXHUwNjJEIFx1MDYyRVx1MDYzMVx1MDYyN1x1MDYyOFx1MDZDQyIsKDAscy5qc3gpKCJ0ZXh0YXJlYSIse3JlcXVpcmVkOiEwLG1heExlbmd0aDo1ZTMsdmFsdWU6SGEuZGVzY3JpcHRpb24sb25DaGFuZ2U6bj0+ZWwoey4uLkhhLGRlc2NyaXB0aW9uOm4udGFyZ2V0LnZhbHVlfSl9KV19KSwoMCxzLmpzeHMpKCJsYWJlbCIse2NoaWxkcmVuOlsiXHUwNjQ4XHUwNjM2XHUwNjM5XHUwNkNDXHUwNjJBIFx1MDYyRlx1MDYzM1x1MDYyQVx1MDZBRlx1MDYyN1x1MDY0NyAoXHUwNjI3XHUwNjJFXHUwNjJBXHUwNkNDXHUwNjI3XHUwNjMxXHUwNkNDKSIsKDAscy5qc3gpKCJpbnB1dCIse3ZhbHVlOkhhLmRldmljZVN0YXR1cyxvbkNoYW5nZTpuPT5lbCh7Li4uSGEsZGV2aWNlU3RhdHVzOm4udGFyZ2V0LnZhbHVlfSkscGxhY2Vob2xkZXI6Ilx1MDY0NVx1MDYzN1x1MDYyN1x1MDYyOFx1MDY0MiBcdTA2NDVcdTA2NDJcdTA2MjdcdTA2MkZcdTA2Q0NcdTA2MzEgXHUwNjQ1XHUwNjJDXHUwNjI3XHUwNjMyIFx1MDYzM1x1MDYyN1x1MDYzMlx1MDY0NVx1MDYyN1x1MDY0NiJ9KV19KSwoMCxzLmpzeCkoInAiLHtjbGFzc05hbWU6Im11dGVkIixjaGlsZHJlbjoiXHUwNjI3XHUwNjQ4XHUwNjQ0XHUwNjQ4XHUwNkNDXHUwNjJBIFx1MDY0OCBcdTA2NDVcdTA2NDJcdTA2MjdcdTA2MkZcdTA2Q0NcdTA2MzEgXHUwNjQxXHUwNjMxXHUwNjQ1IFx1MDYyRlx1MDYzMSBcdTA2MzNcdTA2MzFcdTA2NDhcdTA2MzEgXHUwNjI3XHUwNjM5XHUwNjJBXHUwNjI4XHUwNjI3XHUwNjMxXHUwNjMzXHUwNjQ2XHUwNjJDXHUwNkNDIFx1MDY0NVx1MDZDQ1x1MjAwQ1x1MDYzNFx1MDY0OFx1MDY0Nlx1MDYyRi4gXHUwNjM3XHUwNjQ4XHUwNjQ0IFx1MDYzNFx1MDYzMVx1MDYyRCBcdTA2MkZcdTA2MzEgXHUwNjI3XHUwNkNDXHUwNjQ2IFx1MDY0MVx1MDYzMVx1MDY0NSBcdTA2MjhcdTA2MzFcdTA2MjdcdTA2Q0MgXHUwNjMxXHUwNjM5XHUwNjI3XHUwNkNDXHUwNjJBIFx1MDYzM1x1MDY0Mlx1MDY0MSBcdTA2MkZcdTA2MzFcdTA2MkVcdTA2NDhcdTA2MjdcdTA2MzNcdTA2MkEgXHUwNjQ1XHUwNjJEXHUwNjJGXHUwNjQ4XHUwNjJGIFx1MDYzNFx1MDYyRlx1MDY0NyBcdTA2MjdcdTA2MzNcdTA2MkEuIn0pLCgwLHMuanN4KSgiYnV0dG9uIix7Y2xhc3NOYW1lOiJwcmltYXJ5IixkaXNhYmxlZDpMYXx8IXgubGVuZ3RoLGNoaWxkcmVuOkxhPyJcdTA2MkZcdTA2MzEgXHUwNjJEXHUwNjI3XHUwNjQ0IFx1MDYyQlx1MDYyOFx1MDYyQVx1MjAyNiI6Ilx1MDYyQlx1MDYyOFx1MDYyQSBcdTA2MkVcdTA2MzFcdTA2MjdcdTA2MjhcdTA2Q0MgXHUwNjJGXHUwNjMxIFx1MDYzM1x1MDYzMVx1MDY0OFx1MDYzMSJ9KV19KSxpZSYmRWE9PT0iXHUwNjJDXHUwNjMyXHUwNjI2XHUwNkNDXHUwNjI3XHUwNjJBIiYmKDAscy5qc3hzKShzLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJkZXRhaWxuYXZpZ2F0aW9uIixjaGlsZHJlbjpbKDAscy5qc3gpKCJzcGFuIix7ZGlyOiJsdHIiLGNoaWxkcmVuOlllfSksKDAscy5qc3hzKSgiYnV0dG9uIix7ZGlzYWJsZWQ6RGYubGVuZ3RoPDJ8fExhLG9uQ2xpY2s6R0wsY2hpbGRyZW46WygwLHMuanN4KShjZix7c2l6ZToxNH0pLCJcdTA2NDVcdTA2NDhcdTA2MzFcdTA2MkYgXHUwNjQyXHUwNjI4XHUwNjQ0XHUwNkNDIl19KSwoMCxzLmpzeHMpKCJidXR0b24iLHtkaXNhYmxlZDpMYSxvbkNsaWNrOigpPT5vdShZZSwhMCksY2hpbGRyZW46WygwLHMuanN4KShldSx7c2l6ZToxNH0pLCJcdTA2MjhcdTA2MjdcdTA2MzJcdTA2MkVcdTA2NDhcdTA2MjdcdTA2NDZcdTA2Q0MiXX0pXX0pLCgwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZToiZGV0YWlscHJvZHVjdCIsY2hpbGRyZW46WygwLHMuanN4KShVTCx7YXNzZXQ6dWEuYXNzZXR9KSwoMCxzLmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbKDAscy5qc3gpKCJoMyIse2NoaWxkcmVuOmllLnRpdGxlfSksKDAscy5qc3gpKCJwIix7Y2hpbGRyZW46dWEuYXNzZXQ/LmxhYmVsfHx1YS5hc3NldD8ua2V5fHwiXHUwNjJBXHUwNjJDXHUwNjQ3XHUwNkNDXHUwNjMyIFx1MDYyRlx1MDYzMSBcdTA2N0VcdTA2MjdcdTA2MzNcdTA2MkUgXHUwNjQ1XHUwNjM0XHUwNjJFXHUwNjM1IFx1MDY0Nlx1MDYzNFx1MDYyRlx1MDY0NyJ9KSwoMCxzLmpzeCkoT0wse25hbWU6dWEucHJpb3JpdHk/Lm5hbWV8fGllLnByaW9yaXR5LGljb246dWEucHJpb3JpdHk/Lmljb25Vcmx9KV19KV19KSwoMCxzLmpzeCkoInAiLHtjbGFzc05hbWU6ImRlc2NyaXB0aW9uIixjaGlsZHJlbjp1YS5pc3N1ZS5kZXNjcmlwdGlvbnx8aWUuZGVzY3x8Ilx1MDYzNFx1MDYzMVx1MDYyRFx1MDZDQyBcdTA2MkZcdTA2MzFcdTA2Q0NcdTA2MjdcdTA2NDFcdTA2MkEgXHUwNjQ2XHUwNjM0XHUwNjJGXHUwNjQ3IFx1MDYyN1x1MDYzM1x1MDYyQS4ifSksKDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJub3RpY2UiLGNoaWxkcmVuOlsiXHUwNjQ4XHUwNjM2XHUwNjM5XHUwNkNDXHUwNjJBOiAiLHVhLmlzc3VlLnN0YXR1c3x8aWUuc3RhdHVzLCIgXHhCNyBcdTA2NDVcdTA2MzNcdTA2MjZcdTA2NDhcdTA2NDQ6ICIsdWEuaXNzdWUuYXNzaWduZWVOYW1lfHx1YS5pc3N1ZS5hc3NpZ25lZXx8aWUucGVyc29uXX0pLHVhLmVycm9ycy5tYXAoKG4sSSk9PigwLHMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiJub3RpY2UiLGNoaWxkcmVuOm59LEkpKSwoMCxzLmpzeCkoImgzIix7Y2hpbGRyZW46Ilx1MDYyN1x1MDY0Mlx1MDYyRlx1MDYyN1x1MDY0NVx1MjAwQ1x1MDY0N1x1MDYyN1x1MDZDQyBcdTA2NDVcdTA2MkNcdTA2MjdcdTA2MzIifSksKDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6InRyYW5zaXRpb25idXR0b25zIixjaGlsZHJlbjp1YS5jaGVja2VkP3VhLnRyYW5zaXRpb25zLmxlbmd0aD91YS50cmFuc2l0aW9ucy5tYXAobj0+KDAscy5qc3gpKCJidXR0b24iLHtkaXNhYmxlZDpMYSxvbkNsaWNrOigpPT5TbihuKT9iYSgiXHUwNjI4XHUwNjMzXHUwNjJBXHUwNjQ2IFx1MDYyRlx1MDYzMVx1MDYyRVx1MDY0OFx1MDYyN1x1MDYzM1x1MDYyQSIsWWUpOlBMKG4pLGNoaWxkcmVuOm4ubmFtZX0sbi5pZCkpOigwLHMuanN4KSgicCIse2NsYXNzTmFtZToibXV0ZWQiLGNoaWxkcmVuOiJcdTA2MkZcdTA2MzEgXHUwNjQ4XHUwNjM2XHUwNjM5XHUwNkNDXHUwNjJBIFx1MDY0MVx1MDYzOVx1MDY0NFx1MDZDQyBcdTA2MjdcdTA2NDJcdTA2MkZcdTA2MjdcdTA2NDVcdTA2Q0MgXHUwNjI4XHUwNjMxXHUwNjI3XHUwNkNDIFx1MDYyN1x1MDZDQ1x1MDY0NiBcdTA2MkRcdTA2MzNcdTA2MjdcdTA2MjggXHUwNjJGXHUwNjMxIFx1MDYyRlx1MDYzM1x1MDYyQVx1MDYzMVx1MDYzMyBcdTA2NDZcdTA2Q0NcdTA2MzNcdTA2MkEuIn0pOigwLHMuanN4KSgicCIse2NsYXNzTmFtZToibXV0ZWQiLGNoaWxkcmVuOiJcdTA2NDVcdTA2MkNcdTA2NDhcdTA2MzIgXHUwNjI3XHUwNjQyXHUwNjJGXHUwNjI3XHUwNjQ1XHUwNjI3XHUwNjJBIFx1MDY0N1x1MDY0Nlx1MDY0OFx1MDYzMiBcdTA2MkFcdTA2MjNcdTA2Q0NcdTA2Q0NcdTA2MkYgXHUwNjQ2XHUwNjM0XHUwNjJGXHUwNjQ3IFx1MDYyN1x1MDYzM1x1MDYyQS4ifSl9KSxqZSYmKDAscy5qc3hzKSgiZm9ybSIse2NsYXNzTmFtZToidHJhbnNpdGlvbmZvcm0iLG9uU3VibWl0Om49PntuLnByZXZlbnREZWZhdWx0KCksWEwoKX0sY2hpbGRyZW46WygwLHMuanN4KSgiaDMiLHtjaGlsZHJlbjpqZS5uYW1lfSksT2JqZWN0LmVudHJpZXMoamUuZmllbGRzfHx7fSkubWFwKChbbixJXSk9PigwLHMuanN4cykoImxhYmVsIix7Y2hpbGRyZW46W0kubmFtZSxJLnJlcXVpcmVkPyIgKiI6IiIsUm4oSSk/SS5hbGxvd2VkVmFsdWVzPy5sZW5ndGg/KDAscy5qc3hzKSgic2VsZWN0Iix7cmVxdWlyZWQ6SS5yZXF1aXJlZCxtdWx0aXBsZTpJLnNjaGVtYT8udHlwZT09PSJhcnJheSIsdmFsdWU6VGZbbl0/PyhJLnNjaGVtYT8udHlwZT09PSJhcnJheSI/W106IiIpLG9uQ2hhbmdlOnY9PkJmKHo9Pih7Li4ueixbbl06SS5zY2hlbWE/LnR5cGU9PT0iYXJyYXkiP0FycmF5LmZyb20odi50YXJnZXQuc2VsZWN0ZWRPcHRpb25zKS5tYXAodGE9PnRhLnZhbHVlKTp2LnRhcmdldC52YWx1ZX0pKSxjaGlsZHJlbjpbSS5zY2hlbWE/LnR5cGUhPT0iYXJyYXkiJiYoMCxzLmpzeCkoIm9wdGlvbiIse3ZhbHVlOiIiLGNoaWxkcmVuOiJcdTA2MjdcdTA2NDZcdTA2MkFcdTA2MkVcdTA2MjdcdTA2MjggXHUwNkE5XHUwNjQ2XHUwNkNDXHUwNjJGIn0pLEkuYWxsb3dlZFZhbHVlcy5tYXAoKHYseik9PigwLHMuanN4KSgib3B0aW9uIix7dmFsdWU6di5pZD8/di52YWx1ZT8/di5uYW1lLGNoaWxkcmVuOnYubmFtZXx8di52YWx1ZXx8di5sYWJlbHx8di5pZH0seikpXX0pOkkuc2NoZW1hPy50eXBlPT09ImJvb2xlYW4iPygwLHMuanN4KSgiaW5wdXQiLHt0eXBlOiJjaGVja2JveCIsY2hlY2tlZDohIVRmW25dLG9uQ2hhbmdlOnY9PkJmKHo9Pih7Li4ueixbbl06di50YXJnZXQuY2hlY2tlZH0pKX0pOigwLHMuanN4KSgiaW5wdXQiLHtyZXF1aXJlZDpJLnJlcXVpcmVkLHR5cGU6SS5zY2hlbWE/LnR5cGU9PT0ibnVtYmVyIj8ibnVtYmVyIjpJLnNjaGVtYT8udHlwZT09PSJkYXRlIj8iZGF0ZSI6InRleHQiLHZhbHVlOlRmW25dPz8iIixvbkNoYW5nZTp2PT5CZih6PT4oey4uLnosW25dOnYudGFyZ2V0LnZhbHVlfSkpfSk6KDAscy5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOiJub3RpY2UiLGNoaWxkcmVuOiJcdTA2NDZcdTA2NDhcdTA2MzkgXHUwNjI3XHUwNkNDXHUwNjQ2IFx1MDY0MVx1MDZDQ1x1MDY0NFx1MDYyRiBcdTA2MkZcdTA2MzEgXHUwNjQxXHUwNjMxXHUwNjQ1IFx1MDYzOVx1MDY0NVx1MDY0OFx1MDY0NVx1MDZDQyBcdTA2N0VcdTA2MzRcdTA2MkFcdTA2Q0NcdTA2MjhcdTA2MjdcdTA2NDZcdTA2Q0MgXHUwNjQ2XHUwNjQ1XHUwNkNDXHUyMDBDXHUwNjM0XHUwNjQ4XHUwNjJGXHUwNjFCIFx1MDYyN1x1MDYzMiBcdTA2NDFcdTA2MzFcdTA2NDUgXHUwNjI3XHUwNjM1XHUwNjQ0XHUwNkNDIFx1MDYzM1x1MDYyN1x1MDYzMlx1MDY0NVx1MDYyN1x1MDY0NiBcdTA2MjdcdTA2MzNcdTA2MkFcdTA2NDFcdTA2MjdcdTA2MkZcdTA2NDcgXHUwNkE5XHUwNjQ2XHUwNkNDXHUwNjJGLiJ9KV19LG4pKSxCZCYmKDAscy5qc3gpKCJwIix7Y2xhc3NOYW1lOiJub3RpY2UiLGNoaWxkcmVuOiJcdTA2NDFcdTA2Q0NcdTA2NDRcdTA2MkYgXHUwNjI3XHUwNjQ0XHUwNjMyXHUwNjI3XHUwNjQ1XHUwNkNDIFx1MDY0OFx1MDZDQ1x1MDY5OFx1MDY0NyBcdTA2NDhcdTA2MkNcdTA2NDhcdTA2MkYgXHUwNjJGXHUwNjI3XHUwNjMxXHUwNjJGXHUwNjFCIFx1MDYyN1x1MDYyQ1x1MDYzMVx1MDYyN1x1MDZDQyBcdTA2MjdcdTA2Q0NcdTA2NDYgXHUwNjQ1XHUwNjMxXHUwNjJEXHUwNjQ0XHUwNjQ3IFx1MDYyN1x1MDYzMiBcdTA2MjdcdTA2Q0NcdTA2NDYgXHUwNjQxXHUwNjMxXHUwNjQ1IFx1MDYzQVx1MDZDQ1x1MDYzMVx1MDY0MVx1MDYzOVx1MDYyN1x1MDY0NCBcdTA2MjdcdTA2MzNcdTA2MkEuIn0pLCgwLHMuanN4KSgiYnV0dG9uIix7Y2xhc3NOYW1lOiJwcmltYXJ5IixkaXNhYmxlZDpMYXx8QmQsY2hpbGRyZW46Ilx1MDYyQVx1MDYyM1x1MDZDQ1x1MDZDQ1x1MDYyRiBcdTA2NDggXHUwNjI3XHUwNjJDXHUwNjMxXHUwNjI3XHUwNkNDIFx1MDY0NVx1MDYzMVx1MDYyRFx1MDY0NFx1MDY0NyJ9KV19KSwoMCxzLmpzeCkoImgzIix7Y2xhc3NOYW1lOiJzcGFjZWQiLGNoaWxkcmVuOiJcdTA2MkFcdTA2MjdcdTA2MzFcdTA2Q0NcdTA2MkVcdTA2ODZcdTA2NDcgXHUwNjJBXHUwNjNBXHUwNkNDXHUwNkNDXHUwNjMxXHUwNjI3XHUwNjJBIn0pLHVhLmhpc3RvcnlUb3RhbD51YS5oaXN0b3J5Lmxlbmd0aCYmKDAscy5qc3hzKSgicCIse2NsYXNzTmFtZToibm90aWNlIixjaGlsZHJlbjpbIlx1MDYzM1x1MDYzMVx1MDY0OFx1MDYzMSAiLHZlKHVhLmhpc3RvcnkubGVuZ3RoKSwiIFx1MDY0NVx1MDY0OFx1MDYzMVx1MDYyRiBcdTA2MjdcdTA2MzIgIix2ZSh1YS5oaXN0b3J5VG90YWwpLCIgXHUwNjMxXHUwNjQ4XHUwNkNDXHUwNjJGXHUwNjI3XHUwNjJGIFx1MDYzMVx1MDYyNyBcdTA2MkZcdTA2MzEgXHUwNjI3XHUwNkNDXHUwNjQ2IFx1MDY3RVx1MDYyN1x1MDYzM1x1MDYyRSBcdTA2MjhcdTA2MzFcdTA2QUZcdTA2MzFcdTA2MkZcdTA2MjdcdTA2NDZcdTA2MkZcdTA2NDcgXHUwNjI3XHUwNjMzXHUwNjJBXHUwNjFCIFx1MDYyN1x1MDZDQ1x1MDY0NiBcdTA2NDFcdTA2NDdcdTA2MzFcdTA2MzNcdTA2MkEgXHUwNjJBXHUwNjI3XHUwNjMxXHUwNkNDXHUwNjJFXHUwNjg2XHUwNjQ3IFx1MDZBOVx1MDYyN1x1MDY0NVx1MDY0NCBcdTA2NDZcdTA2Q0NcdTA2MzNcdTA2MkEuIl19KSx1YS5oaXN0b3J5Lmxlbmd0aD91YS5oaXN0b3J5Lm1hcCgobixJKT0+KDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJsb2ciLGNoaWxkcmVuOlsoMCxzLmpzeCkoWmUse3NpemU6MTZ9KSwoMCxzLmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbKDAscy5qc3gpKCJiIix7Y2hpbGRyZW46bi5hdXRob3J8fCJcdTA2QTlcdTA2MjdcdTA2MzFcdTA2MjhcdTA2MzEgXHUwNjMzXHUwNjMxXHUwNjQ4XHUwNkNDXHUwNjMzIn0pLCgwLHMuanN4KSgic21hbGwiLHtjaGlsZHJlbjp5ZihuLmNyZWF0ZWQpfSksbi5pdGVtcy5tYXAoKHYseik9PigwLHMuanN4cykoInAiLHtjaGlsZHJlbjpbdi5maWVsZCwiOiAiLHYuZnJvbXx8Ilx1MjAxNCIsIiBcdTIxOTAgIix2LnRvfHwiXHUyMDE0Il19LHopKV19KV19LG4uaWR8fEkpKTooMCxzLmpzeCkoInAiLHtjbGFzc05hbWU6Im11dGVkIixjaGlsZHJlbjoiXHUwNjMxXHUwNjQ4XHUwNkNDXHUwNjJGXHUwNjI3XHUwNjJGXHUwNkNDIFx1MDYyRlx1MDYzMVx1MDZDQ1x1MDYyN1x1MDY0MVx1MDYyQSBcdTA2NDZcdTA2MzRcdTA2MkZcdTA2NDcgXHUwNjI3XHUwNjMzXHUwNjJBXHUwNjFCIFx1MDYyRlx1MDYzMSBcdTA2MzVcdTA2NDhcdTA2MzFcdTA2MkEgXHUwNjJFXHUwNjM3XHUwNjI3XHUwNkNDIFx1MDYzM1x1MDYzMVx1MDY0OFx1MDZDQ1x1MDYzMyBcdTA2NDdcdTA2NDVcdTA2MzFcdTA2MjdcdTA2NDdcdTA2MEMgXHUwNjQ4XHUwNjM2XHUwNjM5XHUwNkNDXHUwNjJBIFx1MDYyN1x1MDYyQVx1MDYzNVx1MDYyN1x1MDY0NCBcdTA2MzFcdTA2MjcgXHUwNjI4XHUwNjMxXHUwNjMxXHUwNjMzXHUwNkNDIFx1MDZBOVx1MDY0Nlx1MDZDQ1x1MDYyRi4ifSksKDAscy5qc3gpKCJoMyIse2NsYXNzTmFtZToic3BhY2VkIixjaGlsZHJlbjoiXHUwNkNDXHUwNjI3XHUwNjJGXHUwNjJGXHUwNjI3XHUwNjM0XHUwNjJBXHUyMDBDXHUwNjQ3XHUwNjI3XHUwNkNDIFx1MDY0Mlx1MDYyN1x1MDYyOFx1MDY0NCBcdTA2NDVcdTA2MzRcdTA2MjdcdTA2NDdcdTA2MkZcdTA2NDcifSksdWEuY29tbWVudHMubGVuZ3RoP3VhLmNvbW1lbnRzLm1hcCgobixJKT0+KDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6ImxvZyIsY2hpbGRyZW46KDAscy5qc3hzKSgiZGl2Iix7Y2hpbGRyZW46WygwLHMuanN4KSgiYiIse2NoaWxkcmVuOm4uYXV0aG9yfHxuLmF1dGhvck5hbWV9KSwoMCxzLmpzeCkoInNtYWxsIix7Y2hpbGRyZW46eWYobi5jcmVhdGVkKX0pLCgwLHMuanN4KSgicCIse2NsYXNzTmFtZToiZGVzY3JpcHRpb24iLGNoaWxkcmVuOm4uYm9keXx8bi50ZXh0fSldfSl9LG4uaWR8fEkpKTooMCxzLmpzeCkoInAiLHtjbGFzc05hbWU6Im11dGVkIixjaGlsZHJlbjoiXHUwNkNDXHUwNjI3XHUwNjJGXHUwNjJGXHUwNjI3XHUwNjM0XHUwNjJBXHUwNkNDIFx1MDYyOFx1MDYzMVx1MDYyN1x1MDZDQyBcdTA2NDZcdTA2NDVcdTA2MjdcdTA2Q0NcdTA2MzQgXHUwNjI4XHUwNjMxXHUwNjQ2XHUwNkFGXHUwNjM0XHUwNjJBXHUwNjQ3IFx1MDYyN1x1MDYzM1x1MDYyQS4ifSldfSksaWUmJkVhPT09Ilx1MDY3RVx1MDZDQ1x1MDYyN1x1MDY0NSBcdTA2MjhcdTA2NDcgXHUwNkE5XHUwNjI3XHUwNjMxXHUwNjM0XHUwNjQ2XHUwNjI3XHUwNjMzIiYmKDAscy5qc3hzKSgiZm9ybSIse29uU3VibWl0OmFzeW5jIG49PntuLnByZXZlbnREZWZhdWx0KCk7bGV0IEk9WWU7YXdhaXQgcWYoKCk9PnNlLmNvbW1lbnQoSSxDZC50cmltKCkpLCJcdTA2N0VcdTA2Q0NcdTA2MjdcdTA2NDUgXHUwNjI4XHUwNjI3IFx1MDYyQVx1MDYyM1x1MDZDQ1x1MDZDQ1x1MDYyRiBcdTA2MzNcdTA2MzFcdTA2NDhcdTA2MzEgXHUwNjJCXHUwNjI4XHUwNjJBIFx1MDYzNFx1MDYyRiIpJiYoSWQoIiIpLGF3YWl0IG91KEksITApKX0sY2hpbGRyZW46WygwLHMuanN4cykoInAiLHtjaGlsZHJlbjpbIlx1MDZBOVx1MDYyN1x1MDYzMVx1MDYzNFx1MDY0Nlx1MDYyN1x1MDYzMyBcdTA2NDFcdTA2MzlcdTA2NDRcdTA2Q0M6ICIsKDAscy5qc3gpKCJiIix7Y2hpbGRyZW46aWUucGVyc29ufSldfSksKDAscy5qc3gpKCJwIix7Y2xhc3NOYW1lOiJub3RpY2UiLGNoaWxkcmVuOiJcdTA2N0VcdTA2Q0NcdTA2MjdcdTA2NDUgXHUwNjI4XHUwNjQ3XHUyMDBDXHUwNjM1XHUwNjQ4XHUwNjMxXHUwNjJBIFx1MDZDQ1x1MDYyN1x1MDYyRlx1MDYyRlx1MDYyN1x1MDYzNFx1MDYyQSBcdTA2MkZcdTA2MjdcdTA2MkVcdTA2NDRcdTA2Q0MgXHUwNjI4XHUwNjMxXHUwNjI3XHUwNkNDIFx1MDYyQVx1MDZDQ1x1MDY0NSBcdTA2MkFcdTA2MzlcdTA2NDVcdTA2Q0NcdTA2MzFcdTA2MjdcdTA2MkEgXHUwNjJCXHUwNjI4XHUwNjJBIFx1MDY0NVx1MDZDQ1x1MjAwQ1x1MDYzNFx1MDY0OFx1MDYyRi4gXHUwNjJGXHUwNjI3XHUwNjM0XHUwNjJBXHUwNjQ2IFx1MDY0NVx1MDYyQ1x1MDY0OFx1MDYzMiBcdTA2MkJcdTA2MjhcdTA2MkEgXHUwNkNDXHUwNjI3XHUwNjJGXHUwNjJGXHUwNjI3XHUwNjM0XHUwNjJBIFx1MDYyRlx1MDYyN1x1MDYyRVx1MDY0NFx1MDZDQyBcdTA2MjdcdTA2NDRcdTA2MzJcdTA2MjdcdTA2NDVcdTA2Q0MgXHUwNjI3XHUwNjMzXHUwNjJBXHUwNjFCIFx1MDY3RVx1MDZDQ1x1MDYyN1x1MDY0NSBcdTA2MzlcdTA2NDVcdTA2NDhcdTA2NDVcdTA2Q0MgXHUwNjJDXHUwNjI3XHUwNkNDXHUwNkFGXHUwNjMyXHUwNkNDXHUwNjQ2IFx1MDYyMlx1MDY0NiBcdTA2NDZcdTA2MkVcdTA2NDhcdTA2MjdcdTA2NDdcdTA2MkYgXHUwNjM0XHUwNjJGLiJ9KSwoMCxzLmpzeCkoInRleHRhcmVhIix7cmVxdWlyZWQ6ITAsbWF4TGVuZ3RoOjNlMyx2YWx1ZTpDZCxvbkNoYW5nZTpuPT5JZChuLnRhcmdldC52YWx1ZSkscGxhY2Vob2xkZXI6Ilx1MDY0NVx1MDYyQVx1MDY0NiBcdTA2N0VcdTA2Q0NcdTA2MjdcdTA2NDUgXHUwNjI4XHUwNjQ3IFx1MDZBOVx1MDYyN1x1MDYzMVx1MDYzNFx1MDY0Nlx1MDYyN1x1MDYzMyBcdTA2MkFcdTA2MzlcdTA2NDVcdTA2Q0NcdTA2MzFcdTA2MjdcdTA2MkFcdTIwMjYifSksKDAscy5qc3hzKSgiYnV0dG9uIix7Y2xhc3NOYW1lOiJwcmltYXJ5IixkaXNhYmxlZDpMYXx8IUNkLnRyaW0oKSxjaGlsZHJlbjpbKDAscy5qc3gpKGdmLHtzaXplOjE1fSksTGE/Ilx1MDYyRlx1MDYzMSBcdTA2MkRcdTA2MjdcdTA2NDQgXHUwNjI3XHUwNjMxXHUwNjMzXHUwNjI3XHUwNjQ0XHUyMDI2IjoiXHUwNjI3XHUwNjMxXHUwNjMzXHUwNjI3XHUwNjQ0IFx1MDY3RVx1MDZDQ1x1MDYyN1x1MDY0NSBcdTA2NDhcdTA2MjdcdTA2NDJcdTA2MzlcdTA2Q0MiXX0pXX0pLGllJiZFYT09PSJcdTA2MjhcdTA2MzNcdTA2MkFcdTA2NDYgXHUwNjJGXHUwNjMxXHUwNjJFXHUwNjQ4XHUwNjI3XHUwNjMzXHUwNjJBIiYmKDAscy5qc3hzKShzLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAscy5qc3hzKSgicCIse2NoaWxkcmVuOlsiXHUwNjJGXHUwNjMxXHUwNjJFXHUwNjQ4XHUwNjI3XHUwNjMzXHUwNjJBIFx4QUIiLGllLnRpdGxlLCJceEJCIFx1MDYyOFx1MDYzM1x1MDYyQVx1MDY0NyBcdTA2MzRcdTA2NDhcdTA2MkZcdTA2MUYiXX0pLCgwLHMuanN4KSgicCIse2NsYXNzTmFtZToibm90aWNlIixjaGlsZHJlbjoiXHUwNjMzXHUwNjMxXHUwNjQ4XHUwNjMxXHUwNjBDIFx1MDY0NVx1MDYyQ1x1MDY0OFx1MDYzMiBcdTA2MkRcdTA2MzNcdTA2MjdcdTA2MjggXHUwNjQ4IFx1MDYzNFx1MDYzMVx1MDY0OFx1MDYzNyBcdTA2QUZcdTA2MzFcdTA2MkZcdTA2MzQgXHUwNkE5XHUwNjI3XHUwNjMxIFx1MDYzMVx1MDYyNyBcdTA2MkZcdTA2NDhcdTA2MjhcdTA2MjdcdTA2MzFcdTA2NDcgXHUwNjI4XHUwNjMxXHUwNjMxXHUwNjMzXHUwNkNDIFx1MDY0NVx1MDZDQ1x1MjAwQ1x1MDZBOVx1MDY0Nlx1MDYyRi4gXHUwNjQ1XHUwNjQ4XHUwNjQxXHUwNjQyXHUwNkNDXHUwNjJBIFx1MDYyQVx1MDY0Nlx1MDY0N1x1MDYyNyBcdTA2N0VcdTA2MzMgXHUwNjI3XHUwNjMyIFx1MDYyRlx1MDYzMVx1MDZDQ1x1MDYyN1x1MDY0MVx1MDYyQSBcdTA2MkFcdTA2MjNcdTA2Q0NcdTA2Q0NcdTA2MkYgXHUwNjI4XHUwNjMzXHUwNjJBXHUwNjQ2IFx1MDY0Nlx1MDY0NVx1MDYyN1x1MDZDQ1x1MDYzNCBcdTA2MkZcdTA2MjdcdTA2MkZcdTA2NDcgXHUwNjQ1XHUwNkNDXHUyMDBDXHUwNjM0XHUwNjQ4XHUwNjJGLiJ9KSwoMCxzLmpzeCkoImJ1dHRvbiIse2NsYXNzTmFtZToicHJpbWFyeSIsZGlzYWJsZWQ6TGF8fCFUZChpZSx1YSksb25DbGljazphc3luYygpPT57bGV0IG49WWU7YXdhaXQgcWYoYXN5bmMoKT0+e2xldCB2PWF3YWl0IHNlLmNsb3NlKG4pO2lmKHYub2shPT0hMHx8di5jbG9zZWQhPT0hMCl0aHJvdyBFcnJvcigiXHUwNjJBXHUwNjIzXHUwNkNDXHUwNkNDXHUwNjJGIFx1MDYyOFx1MDYzM1x1MDYyQVx1MDY0NiBcdTA2MjdcdTA2MzIgXHUwNjMzXHUwNjMxXHUwNjQ4XHUwNjMxIFx1MDYyRlx1MDYzMVx1MDZDQ1x1MDYyN1x1MDY0MVx1MDYyQSBcdTA2NDZcdTA2MzRcdTA2MkYuIil9LCJcdTA2MjhcdTA2MzNcdTA2MkFcdTA2NDYgXHUwNjJGXHUwNjMxXHUwNjJFXHUwNjQ4XHUwNjI3XHUwNjMzXHUwNjJBIFx1MDYyQVx1MDY0OFx1MDYzM1x1MDYzNyBcdTA2MzNcdTA2MzFcdTA2NDhcdTA2MzEgXHUwNjJBXHUwNjIzXHUwNkNDXHUwNkNDXHUwNjJGIFx1MDYzNFx1MDYyRiIpJiYoQnQoIiIpLGF3YWl0IHRsKCkpfSxjaGlsZHJlbjpMYT8iXHUwNjJGXHUwNjMxIFx1MDYyRFx1MDYyN1x1MDY0NCBcdTA2MjhcdTA2MzFcdTA2MzFcdTA2MzNcdTA2Q0MgXHUwNjQ4IFx1MDYyQlx1MDYyOFx1MDYyQVx1MjAyNiI6Ilx1MDYyQVx1MDYyM1x1MDZDQ1x1MDZDQ1x1MDYyRiBcdTA2NDggXHUwNjI4XHUwNjMzXHUwNjJBXHUwNjQ2IFx1MDYyRlx1MDYzMVx1MDYyRVx1MDY0OFx1MDYyN1x1MDYzM1x1MDYyQSJ9KV19KSxFYT09PSJcdTA2NDVcdTA2NDJcdTA2MjdcdTA2Q0NcdTA2MzNcdTA2NDciJiYodXUubGVuZ3RoPDI/KDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6ImVtcHR5IixjaGlsZHJlbjoiXHUwNjJEXHUwNjJGXHUwNjI3XHUwNjQyXHUwNjQ0IFx1MDYyRlx1MDY0OCBcdTA2QTlcdTA2MjdcdTA2MzFcdTA2MkEgXHUwNjMxXHUwNjI3IFx1MDYyOFx1MDYzMVx1MDYyN1x1MDZDQyBcdTA2NDVcdTA2NDJcdTA2MjdcdTA2Q0NcdTA2MzNcdTA2NDcgXHUwNjI3XHUwNjQ2XHUwNjJBXHUwNjJFXHUwNjI3XHUwNjI4IFx1MDZBOVx1MDY0Nlx1MDZDQ1x1MDYyRi4ifSk6KDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6InRhYmxld3JhcCIsY2hpbGRyZW46KDAscy5qc3hzKSgidGFibGUiLHtjaGlsZHJlbjpbKDAscy5qc3gpKCJ0aGVhZCIse2NoaWxkcmVuOigwLHMuanN4cykoInRyIix7Y2hpbGRyZW46WygwLHMuanN4KSgidGgiLHtjaGlsZHJlbjoiXHUwNjQ1XHUwNjM0XHUwNjJFXHUwNjM1XHUwNjQ3In0pLHV1Lm1hcChuPT4oMCxzLmpzeCkoInRoIix7Y2hpbGRyZW46bn0sbikpXX0pfSksKDAscy5qc3gpKCJ0Ym9keSIse2NoaWxkcmVuOltbIlx1MDYzOVx1MDY0Nlx1MDY0OFx1MDYyN1x1MDY0NiIsInRpdGxlIl0sWyJcdTA2NDVcdTA2MzNcdTA2MjZcdTA2NDhcdTA2NDQiLCJwZXJzb24iXSxbIlx1MDY0OFx1MDYzNlx1MDYzOVx1MDZDQ1x1MDYyQSIsInN0YXR1cyJdLFsiXHUwNjQxXHUwNjQ4XHUwNjMxXHUwNkNDXHUwNjJBIiwicHJpb3JpdHkiXV0ubWFwKChbbixJXSk9PigwLHMuanN4cykoInRyIix7Y2hpbGRyZW46WygwLHMuanN4KSgidGgiLHtjaGlsZHJlbjpufSksdXUubWFwKHY9PigwLHMuanN4KSgidGQiLHtjaGlsZHJlbjp1LmZpbmQoej0+ei5pZD09PXYpPy5bSV18fCJcdTIwMTQifSx2KSldfSxJKSl9KV19KX0pKSxFYT09PSJcdTA2NDZcdTA2NDVcdTA2MjdcdTA2NDdcdTA2MjdcdTA2Q0MgXHUwNjMzXHUwNjQxXHUwNjI3XHUwNjMxXHUwNjM0XHUwNkNDIiYmKDAscy5qc3hzKShzLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAscy5qc3gpKCJwIix7Y2xhc3NOYW1lOiJtdXRlZCIsY2hpbGRyZW46Ilx1MDY0MVx1MDZDQ1x1MDY0NFx1MDYyQVx1MDYzMVx1MDY0N1x1MDYyN1x1MDZDQyBcdTA2NDFcdTA2MzlcdTA2NDRcdTA2Q0MgXHUwNjMxXHUwNjI3IFx1MDYzMFx1MDYyRVx1MDZDQ1x1MDYzMVx1MDY0NyBcdTA2QTlcdTA2NDZcdTA2Q0NcdTA2MkYuIFx1MDY0MVx1MDY0Mlx1MDYzNyBcdTA2MkFcdTA2NDZcdTA2MzhcdTA2Q0NcdTA2NDVcdTA2MjdcdTA2MkEgXHUwNjQ2XHUwNjQ1XHUwNjI3IFx1MDYyRlx1MDYzMSBcdTA2NDVcdTA2MzFcdTA2NDhcdTA2MzFcdTA2QUZcdTA2MzEgXHUwNjQ1XHUwNkNDXHUyMDBDXHUwNjQ1XHUwNjI3XHUwNjQ2XHUwNjJGXHUwNjFCIFx1MDYyN1x1MDYzN1x1MDY0NFx1MDYyN1x1MDYzOVx1MDYyN1x1MDYyQSBcdTA2MkZcdTA2MzFcdTA2MkVcdTA2NDhcdTA2MjdcdTA2MzNcdTA2MkFcdTIwMENcdTA2NDdcdTA2MjcgXHUwNjMwXHUwNjJFXHUwNkNDXHUwNjMxXHUwNjQ3IFx1MDY0NVx1MDYyRFx1MDY0NFx1MDZDQyBcdTA2NDZcdTA2NDVcdTA2Q0NcdTIwMENcdTA2MzRcdTA2NDhcdTA2MkYuIn0pLCgwLHMuanN4cykoImZvcm0iLHtvblN1Ym1pdDpuPT57bi5wcmV2ZW50RGVmYXVsdCgpLHduKFsuLi5NZix7bmFtZTpNbix0YWI6VCxzdGF0dXM6Tyxwcmlvcml0eTpUdCxhc3NpZ25lZTpsdSxxdWVyeTpVfV0pLERuKCIiKSxmdSgiXHUwNjQ2XHUwNjQ1XHUwNjI3IFx1MDYzMFx1MDYyRVx1MDZDQ1x1MDYzMVx1MDY0NyBcdTA2MzRcdTA2MkYiKX0sY2hpbGRyZW46WygwLHMuanN4cykoImxhYmVsIix7Y2hpbGRyZW46WyJcdTA2NDZcdTA2MjdcdTA2NDUgXHUwNjQ2XHUwNjQ1XHUwNjI3IiwoMCxzLmpzeCkoImlucHV0Iix7cmVxdWlyZWQ6ITAsbWF4TGVuZ3RoOjYwLHZhbHVlOk1uLG9uQ2hhbmdlOm49PkRuKG4udGFyZ2V0LnZhbHVlKX0pXX0pLCgwLHMuanN4KSgiYnV0dG9uIix7Y2xhc3NOYW1lOiJwcmltYXJ5IixjaGlsZHJlbjoiXHUwNjMwXHUwNjJFXHUwNkNDXHUwNjMxXHUwNjQ3IFx1MDY0Nlx1MDY0NVx1MDYyNyJ9KV19KSxNZi5tYXAoKG4sSSk9PigwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZToibG9nIixjaGlsZHJlbjpbKDAscy5qc3gpKCJiIix7Y2hpbGRyZW46bi5uYW1lfSksKDAscy5qc3gpKCJidXR0b24iLHtvbkNsaWNrOigpPT53bihNZi5maWx0ZXIoKHYseik9PnohPT1JKSksY2hpbGRyZW46Ilx1MDYyRFx1MDYzMFx1MDY0MSJ9KV19LEkpKV19KSxFYT09PSJcdTA2MjdcdTA2MzlcdTA2NDRcdTA2MjdcdTA2NDZcdTIwMENcdTA2NDdcdTA2MjciJiYoMCxzLmpzeCkocy5GcmFnbWVudCx7Y2hpbGRyZW46aS5sZW5ndGg/aS5tYXAoKG4sSSk9PigwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZToibG9nIixjaGlsZHJlbjpbKDAscy5qc3gpKEpsLHtzaXplOjE2fSksKDAscy5qc3hzKSgiZGl2Iix7Y2hpbGRyZW46WygwLHMuanN4KSgiYiIse2NoaWxkcmVuOm4udGl0bGV9KSwoMCxzLmpzeCkoInAiLHtjaGlsZHJlbjpuLmJvZHl9KSwoMCxzLmpzeHMpKCJzbWFsbCIse2NoaWxkcmVuOltuLmF1dGhvciwiIFx4QjcgIix5ZihuLmF0KV19KV19KSwoMCxzLmpzeCkoImJ1dHRvbiIse29uQ2xpY2s6KCk9PmJhKCJcdTA2MkNcdTA2MzJcdTA2MjZcdTA2Q0NcdTA2MjdcdTA2MkEiLG4uaXNzdWUpLGNoaWxkcmVuOiJcdTA2NDVcdTA2MzRcdTA2MjdcdTA2NDdcdTA2MkZcdTA2NDcifSldfSxuLmlkfHxJKSk6KDAscy5qc3gpKCJwIix7Y2xhc3NOYW1lOiJub3RpY2UiLGNoaWxkcmVuOiJcdTA2MjdcdTA2MzlcdTA2NDRcdTA2MjdcdTA2NDZcdTA2Q0MgXHUwNjJGXHUwNjMxIFx1MDY3RVx1MDYyN1x1MDYzM1x1MDYyRSBcdTA2NDFcdTA2MzlcdTA2NDRcdTA2Q0MgXHUwNjQ4XHUwNjJDXHUwNjQ4XHUwNjJGIFx1MDY0Nlx1MDYyRlx1MDYyN1x1MDYzMVx1MDYyRi4gXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNkNDIFx1MDY0NVx1MDYyRlx1MDZDQ1x1MDYzMVx1MDZDQ1x1MDYyQVx1MDYwQyBcdTA2NDFcdTA2Q0NcdTA2MkYgXHUwNjI3XHUwNjM5XHUwNjQ0XHUwNjI3XHUwNjQ2IFx1MDYzNFx1MDYyRVx1MDYzNVx1MDZDQyBcdTA2MzFcdTA2MjcgXHUwNjI4XHUwNjMxXHUwNjQ2XHUwNjQ1XHUwNkNDXHUyMDBDXHUwNkFGXHUwNjMxXHUwNjJGXHUwNjI3XHUwNjQ2XHUwNjJGLiJ9KX0pLEVhPT09Ilx1MDYyN1x1MDYyQVx1MDYzNVx1MDYyN1x1MDY0NCBcdTA2NDggXHUwNjJBXHUwNjQ2XHUwNjM4XHUwNkNDXHUwNjQ1XHUwNjI3XHUwNjJBIiYmKDAscy5qc3hzKShzLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6Im5vdGljZSIsY2hpbGRyZW46Ilx1MDY0NVx1MDYyRFx1MDYyRlx1MDY0OFx1MDYyRlx1MDY0NyBcdTA2NDggXHUwNjQ1XHUwNjJDXHUwNjQ4XHUwNjMyXHUwNjQ3XHUwNjI3IFx1MDYyN1x1MDYzMiBcdTA2MzNcdTA2MzFcdTA2NDhcdTA2MzEgXHUwNjJBXHUwNjM5XHUwNkNDXHUwNkNDXHUwNjQ2IFx1MDY0NVx1MDZDQ1x1MjAwQ1x1MDYzNFx1MDY0OFx1MDY0Nlx1MDYyRi4gXHUwNjJBXHUwNjNBXHUwNkNDXHUwNkNDXHUwNjMxIFx1MDY0Nlx1MDY0NVx1MDYyN1x1MDYwQyBcdTA2MkZcdTA2MzNcdTA2MkFcdTA2MzFcdTA2MzNcdTA2Q0MgXHUwNjJDXHUwNjJGXHUwNkNDXHUwNjJGXHUwNkNDIFx1MDYyN1x1MDZDQ1x1MDYyQ1x1MDYyN1x1MDYyRiBcdTA2NDZcdTA2NDVcdTA2Q0NcdTIwMENcdTA2QTlcdTA2NDZcdTA2MkYuIn0pLCgwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZToibG9nIixjaGlsZHJlbjpbKDAscy5qc3gpKCJzcGFuIix7Y2hpbGRyZW46Ilx1MDYyRFx1MDYzM1x1MDYyN1x1MDYyOCBcdTA2MzNcdTA2MzFcdTA2NDhcdTA2Q0NcdTA2MzMifSksKDAscy5qc3gpKCJiIix7Y2hpbGRyZW46TC5kaXNwbGF5TmFtZXx8Ilx1MDYyRlx1MDYzMVx1MDZDQ1x1MDYyN1x1MDY0MVx1MDYyQSBcdTA2NDZcdTA2MzRcdTA2MkZcdTA2NDcifSldfSksKDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJsb2ciLGNoaWxkcmVuOlsoMCxzLmpzeCkoInNwYW4iLHtjaGlsZHJlbjoiXHUwNjIyXHUwNjJFXHUwNjMxXHUwNkNDXHUwNjQ2IFx1MDYyRlx1MDYzMVx1MDZDQ1x1MDYyN1x1MDY0MVx1MDYyQSBcdTA2NDFcdTA2NDdcdTA2MzFcdTA2MzNcdTA2MkEifSksKDAscy5qc3gpKCJiIix7Y2hpbGRyZW46U3x8Ilx1MDYyN1x1MDY0Nlx1MDYyQ1x1MDYyN1x1MDY0NSBcdTA2NDZcdTA2MzRcdTA2MkZcdTA2NDcifSldfSksKDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJsb2ciLGNoaWxkcmVuOlsoMCxzLmpzeCkoInNwYW4iLHtjaGlsZHJlbjoiXHUwNjJBXHUwNjM5XHUwNjJGXHUwNjI3XHUwNjJGIFx1MDYyN1x1MDY0OFx1MDY0NFx1MDY0OFx1MDZDQ1x1MDYyQVx1MjAwQ1x1MDY0N1x1MDYyN1x1MDZDQyBcdTA2MkZcdTA2MzFcdTA2Q0NcdTA2MjdcdTA2NDFcdTA2MkFcdTIwMENcdTA2MzRcdTA2MkZcdTA2NDcifSksKDAscy5qc3gpKCJiIix7Y2hpbGRyZW46dmUoeC5sZW5ndGgpfSldfSksKDAscy5qc3gpKCJidXR0b24iLHtjbGFzc05hbWU6InByaW1hcnkiLG9uQ2xpY2s6KCk9PnNlLm1ldGFkYXRhKCkudGhlbihuPT57aChuLnVzZXIpLGcobi5wcmlvcml0aWVzKSxmdSgiXHUwNjQ1XHUwNjM0XHUwNjJFXHUwNjM1XHUwNjI3XHUwNjJBIFx1MDYyN1x1MDYyQVx1MDYzNVx1MDYyN1x1MDY0NCBcdTA2MkZcdTA2MzFcdTA2Q0NcdTA2MjdcdTA2NDFcdTA2MkEgXHUwNjM0XHUwNjJGIil9KS5jYXRjaChuPT5BZShRZShuKSkpLGNoaWxkcmVuOiJcdTA2MjhcdTA2MzFcdTA2MzFcdTA2MzNcdTA2Q0MgXHUwNjI3XHUwNjJBXHUwNjM1XHUwNjI3XHUwNjQ0In0pLCgwLHMuanN4KSgicCIse2NsYXNzTmFtZToibm90aWNlIixjaGlsZHJlbjoiXHUwNjJBXHUwNjM1XHUwNjQ4XHUwNkNDXHUwNjMxIFx1MDYyRlx1MDYzM1x1MDYyQVx1MDZBRlx1MDYyN1x1MDY0NyBcdTA2NDFcdTA2NDJcdTA2MzcgXHUwNjJGXHUwNjMxIFx1MDYzNVx1MDY0OFx1MDYzMVx1MDYyQSBcdTA2NDhcdTA2MkNcdTA2NDhcdTA2MkYgXHUwNjIyXHUwNjJGXHUwNjMxXHUwNjMzIFx1MDY0NVx1MDYzOVx1MDYyQVx1MDYyOFx1MDYzMSBcdTA2MkZcdTA2MzEgXHUwNjdFXHUwNjI3XHUwNjMzXHUwNjJFIFx1MDY0Nlx1MDY0NVx1MDYyN1x1MDZDQ1x1MDYzNCBcdTA2MkZcdTA2MjdcdTA2MkZcdTA2NDcgXHUwNjQ1XHUwNkNDXHUyMDBDXHUwNjM0XHUwNjQ4XHUwNjJGLiBcdTA2MkFcdTA2MjdcdTA2MzFcdTA2Q0NcdTA2MkVcdTA2ODZcdTA2NDcgXHUwNjQxXHUwNjQyXHUwNjM3IFx1MDYyOFx1MDY0NyBcdTA2MjdcdTA2NDZcdTA2MkZcdTA2MjdcdTA2MzJcdTA2NDcgXHUwNjMxXHUwNjQ4XHUwNkNDXHUwNjJGXHUwNjI3XHUwNjJGXHUwNjQ3XHUwNjI3XHUwNkNDIFx1MDYyOFx1MDYzMVx1MDZBRlx1MDYzNFx1MDYyQVx1MDZDQyBcdTA2MzNcdTA2MzFcdTA2NDhcdTA2MzEgXHUwNjI3XHUwNjMzXHUwNjJBLiBcdTA2MjhcdTA2MzFcdTA2QUZcdTA2MzFcdTA2MkZcdTA2MjdcdTA2NDZcdTA2MkZcdTA2NDYgXHUwNjQ4XHUwNjI3XHUwNjQyXHUwNjM5XHUwNkNDIFx1MDY0OFx1MDYzNlx1MDYzOVx1MDZDQ1x1MDYyQSBcdTA2NDJcdTA2MjhcdTA2NDRcdTA2Q0MgXHUwNjQxXHUwNjQyXHUwNjM3IFx1MDYyOFx1MDYyNyBcdTA2MjdcdTA2NDJcdTA2MkZcdTA2MjdcdTA2NDUgXHUwNjQ1XHUwNjJDXHUwNjI3XHUwNjMyIFx1MDZBRlx1MDYzMVx1MDYyRlx1MDYzNCBcdTA2QTlcdTA2MjdcdTA2MzEgXHUwNjI3XHUwNjQ2XHUwNjJDXHUwNjI3XHUwNjQ1IFx1MDY0NVx1MDZDQ1x1MjAwQ1x1MDYzNFx1MDY0OFx1MDYyRi4ifSldfSksRWE9PT0iXHUwNjMxXHUwNjI3XHUwNjQ3XHUwNjQ2XHUwNjQ1XHUwNjI3IiYmKDAscy5qc3hzKShzLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAscy5qc3gpKCJwIix7Y2hpbGRyZW46Ilx1MDY0Nlx1MDY0NVx1MDYyN1x1MDZDQyBcdTA2MzRcdTA2MkVcdTA2MzVcdTA2Q0NcdTA2MEMgXHUwNjJGXHUwNjMxXHUwNjJFXHUwNjQ4XHUwNjI3XHUwNjMzXHUwNjJBXHUyMDBDXHUwNjQ3XHUwNjI3XHUwNkNDIFx1MDYyQlx1MDYyOFx1MDYyQVx1MjAwQ1x1MDYzNFx1MDYyRlx1MDY0NyBcdTA2MzRcdTA2NDVcdTA2MjcgXHUwNjMxXHUwNjI3IFx1MDY0Nlx1MDY0NVx1MDYyN1x1MDZDQ1x1MDYzNCBcdTA2NDVcdTA2Q0NcdTIwMENcdTA2MkZcdTA2NDdcdTA2MkYuIFx1MDY0Nlx1MDY0NVx1MDYyN1x1MDZDQ1x1MDYzNCBcdTA2MjJcdTA2NDYgXHUwNjI4XHUwNjQ3IFx1MDY0NVx1MDYzOVx1MDY0Nlx1MDZDQyBcdTA2NDVcdTA2MzNcdTA2MjZcdTA2NDhcdTA2NDRcdTIwMENcdTA2MjhcdTA2NDhcdTA2MkZcdTA2NDYgXHUwNjM0XHUwNjQ1XHUwNjI3IFx1MDYyOFx1MDYzMVx1MDYyN1x1MDZDQyBcdTA2MkFcdTA2MzlcdTA2NDVcdTA2Q0NcdTA2MzEgXHUwNjQ2XHUwNkNDXHUwNjMzXHUwNjJBLiBcdTA2NDZcdTA2NDVcdTA2MjdcdTA2Q0MgXHUwNjQ1XHUwNjJGXHUwNkNDXHUwNjMxXHUwNkNDXHUwNjJBIFx1MDYyOFx1MDY0NyBcdTA2QUZcdTA2MzFcdTA2NDhcdTA2NDdcdTIwMENcdTA2NDdcdTA2MjdcdTA2Q0MgXHUwNjQ1XHUwNjJDXHUwNjI3XHUwNjMyIFx1MDY0NVx1MDYyRFx1MDYyRlx1MDY0OFx1MDYyRiBcdTA2MjdcdTA2MzNcdTA2MkEuIn0pLCgwLHMuanN4KSgicCIse2NoaWxkcmVuOiJcdTA2MkJcdTA2MjhcdTA2MkFcdTA2MEMgXHUwNjdFXHUwNkNDXHUwNjI3XHUwNjQ1IFx1MDY0OCBcdTA2MjhcdTA2MzNcdTA2MkFcdTA2NDYgXHUwNjI4XHUwNjQ3IFx1MDYzM1x1MDYzMVx1MDY0OFx1MDZDQ1x1MDYzMyBcdTA2MjdcdTA2MzVcdTA2NDRcdTA2Q0MgXHUwNjI3XHUwNjMxXHUwNjMzXHUwNjI3XHUwNjQ0IFx1MDY0NVx1MDZDQ1x1MjAwQ1x1MDYzNFx1MDY0OFx1MDY0Nlx1MDYyRi4gXHUwNjJCXHUwNjI4XHUwNjJBIFx1MDY3RVx1MDZDQ1x1MDYyN1x1MDY0NSBcdTA2MkZcdTA2MjdcdTA2MkVcdTA2NDRcdTA2Q0MgXHUwNjQ1XHUwNjQ1XHUwNkE5XHUwNjQ2IFx1MDYyN1x1MDYzM1x1MDYyQSBcdTA2MjhcdTA2MzFcdTA2MjdcdTA2Q0MgXHUwNjJEXHUwNjMzXHUwNjI3XHUwNjI4XHUyMDBDXHUwNjQ3XHUwNjI3XHUwNkNDIFx1MDYzOVx1MDYyN1x1MDYyRlx1MDZDQyBcdTA2NDVcdTA2MkNcdTA2MjdcdTA2MzIgXHUwNjQ2XHUwNjI4XHUwNjI3XHUwNjM0XHUwNjJGLiBcdTA2MkZcdTA2MzEgXHUwNjM1XHUwNjQ4XHUwNjMxXHUwNjJBIFx1MDYyRVx1MDYzN1x1MDYyN1x1MDYwQyBcdTA2NDVcdTA2MkNcdTA2NDhcdTA2MzJcdTA2NDdcdTA2MjcgXHUwNjMxXHUwNjI3IFx1MDYyRlx1MDYzMSBcdTA2MzNcdTA2MzFcdTA2NDhcdTA2MzEgXHUwNjI4XHUwNjMxXHUwNjMxXHUwNjMzXHUwNkNDIFx1MDZBOVx1MDY0Nlx1MDZDQ1x1MDYyRi4ifSksKDAscy5qc3gpKCJwIix7Y2hpbGRyZW46Ilx1MDYyQVx1MDY0Nlx1MDYzOFx1MDZDQ1x1MDY0NVx1MDYyN1x1MDYyQSBcdTA2NDZcdTA2NDVcdTA2MjcgXHUwNjQyXHUwNjI3XHUwNjI4XHUwNjQ0IFx1MDYzMFx1MDYyRVx1MDZDQ1x1MDYzMVx1MDY0N1x1MjAwQ1x1MDYyN1x1MDY0Nlx1MDYyRi4gXHUwNjQ1XHUwNjQ4XHUwNjI3XHUwNjMxXHUwNjJGIFx1MDY0Mlx1MDYyOFx1MDY0NFx1MDZDQyBcdTA2MzFcdTA2MjcgXHUwNjJGXHUwNjMxIFx1MDYyQ1x1MDYzMlx1MDYyNlx1MDZDQ1x1MDYyN1x1MDYyQSBcdTA2NDVcdTA2MzFcdTA2NDhcdTA2MzEgXHUwNkE5XHUwNjQ2XHUwNkNDXHUwNjJGXHUwNjFCIFx1MDYyOFx1MDYyN1x1MDYzMlx1MDZBRlx1MDYzNFx1MDYyQSBcdTA2MkZcdTA2MzEgXHUwNjMxXHUwNjI3XHUwNjI4XHUwNjM3IFx1MDY0N1x1MDZDQ1x1MDY4NiBcdTA2MkFcdTA2M0FcdTA2Q0NcdTA2Q0NcdTA2MzFcdTA2Q0MgXHUwNjJGXHUwNjMxIFx1MDY0OFx1MDYzNlx1MDYzOVx1MDZDQ1x1MDYyQSBcdTA2MkZcdTA2MzFcdTA2MkVcdTA2NDhcdTA2MjdcdTA2MzNcdTA2MkEgXHUwNjI3XHUwNkNDXHUwNjJDXHUwNjI3XHUwNjJGIFx1MDY0Nlx1MDY0NVx1MDZDQ1x1MjAwQ1x1MDZBOVx1MDY0Nlx1MDYyRi4ifSldfSldfSl9KV19KX12YXIgaGQ9cGUodmYoKSwxKSxDbj1jbGFzcyBleHRlbmRzIHpMLmRlZmF1bHQuQ29tcG9uZW50e3N0YXRlPXtlcnJvcjoiIn07c3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcigpe3JldHVybntlcnJvcjoiXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNkNDXHUwNjM0IFx1MDYyRlx1MDYyN1x1MDYzNFx1MDYyOFx1MDY0OFx1MDYzMVx1MDYyRiBcdTA2MjhcdTA2MjcgXHUwNjJFXHUwNjM3XHUwNjI3IFx1MDYzMVx1MDY0OFx1MDYyOFx1MDY0N1x1MjAwQ1x1MDYzMVx1MDY0OCBcdTA2MzRcdTA2MkYuIFx1MDYzNVx1MDY0MVx1MDYyRFx1MDY0NyBcdTA2MzFcdTA2MjcgXHUwNjJBXHUwNjI3XHUwNjMyXHUwNjQ3IFx1MDZBOVx1MDY0Nlx1MDZDQ1x1MDYyRlx1MDYxQiBcdTA2NDdcdTA2Q0NcdTA2ODYgXHUwNjJCXHUwNjI4XHUwNjJBIFx1MDY0NVx1MDY0OFx1MDY0MVx1MDY0Mlx1MDZDQyBcdTA2MjhcdTA2MkZcdTA2NDhcdTA2NDYgXHUwNjJBXHUwNjIzXHUwNkNDXHUwNkNDXHUwNjJGIFx1MDYzM1x1MDYzMVx1MDY0OFx1MDYzMSBcdTA2MjdcdTA2MzlcdTA2NDRcdTA2MjdcdTA2NDUgXHUwNjQ2XHUwNjQ1XHUwNkNDXHUyMDBDXHUwNjM0XHUwNjQ4XHUwNjJGLiJ9fXJlbmRlcigpe3JldHVybiB0aGlzLnN0YXRlLmVycm9yPygwLGhkLmpzeCkoImRpdiIse2RpcjoicnRsIixzdHlsZTp7cGFkZGluZzozMCxmb250RmFtaWx5OiJUYWhvbWEifSxjaGlsZHJlbjp0aGlzLnN0YXRlLmVycm9yfSk6dGhpcy5wcm9wcy5jaGlsZHJlbn19OygwLEVMLmNyZWF0ZVJvb3QpKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyb290IikpLnJlbmRlcigoMCxoZC5qc3gpKENuLHtjaGlsZHJlbjooMCxoZC5qc3gpKGduLHt9KX0pKTt9KSgpOwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKcmVhY3QvY2pzL3JlYWN0LnByb2R1Y3Rpb24uanM6CiAgKCoqCiAgICogQGxpY2Vuc2UgUmVhY3QKICAgKiByZWFjdC5wcm9kdWN0aW9uLmpzCiAgICoKICAgKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLgogICAqCiAgICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlCiAgICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogICAqKQoKc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5qczoKICAoKioKICAgKiBAbGljZW5zZSBSZWFjdAogICAqIHNjaGVkdWxlci5wcm9kdWN0aW9uLmpzCiAgICoKICAgKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLgogICAqCiAgICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlCiAgICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogICAqKQoKcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20ucHJvZHVjdGlvbi5qczoKICAoKioKICAgKiBAbGljZW5zZSBSZWFjdAogICAqIHJlYWN0LWRvbS5wcm9kdWN0aW9uLmpzCiAgICoKICAgKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLgogICAqCiAgICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlCiAgICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogICAqKQoKcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20tY2xpZW50LnByb2R1Y3Rpb24uanM6CiAgKCoqCiAgICogQGxpY2Vuc2UgUmVhY3QKICAgKiByZWFjdC1kb20tY2xpZW50LnByb2R1Y3Rpb24uanMKICAgKgogICAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuCiAgICoKICAgKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGUKICAgKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAgICopCgpyZWFjdC9janMvcmVhY3QtanN4LXJ1bnRpbWUucHJvZHVjdGlvbi5qczoKICAoKioKICAgKiBAbGljZW5zZSBSZWFjdAogICAqIHJlYWN0LWpzeC1ydW50aW1lLnByb2R1Y3Rpb24uanMKICAgKgogICAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuCiAgICoKICAgKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGUKICAgKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAgICopCgpsdWNpZGUtcmVhY3QvZGlzdC9lc20vc2hhcmVkL3NyYy91dGlscy9tZXJnZUNsYXNzZXMubWpzOgpsdWNpZGUtcmVhY3QvZGlzdC9lc20vc2hhcmVkL3NyYy91dGlscy90b0tlYmFiQ2FzZS5tanM6Cmx1Y2lkZS1yZWFjdC9kaXN0L2VzbS9zaGFyZWQvc3JjL3V0aWxzL3RvQ2FtZWxDYXNlLm1qczoKbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL3NoYXJlZC9zcmMvdXRpbHMvdG9QYXNjYWxDYXNlLm1qczoKbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2RlZmF1bHRBdHRyaWJ1dGVzLm1qczoKbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL3NoYXJlZC9zcmMvdXRpbHMvaGFzQTExeVByb3AubWpzOgpsdWNpZGUtcmVhY3QvZGlzdC9lc20vY29udGV4dC5tanM6Cmx1Y2lkZS1yZWFjdC9kaXN0L2VzbS9JY29uLm1qczoKbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2NyZWF0ZUx1Y2lkZUljb24ubWpzOgpsdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvYWN0aXZpdHkubWpzOgpsdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvYXJyb3ctcmlnaHQubWpzOgpsdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvYXJyb3ctdXAtbGVmdC5tanM6Cmx1Y2lkZS1yZWFjdC9kaXN0L2VzbS9pY29ucy9iZWxsLm1qczoKbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2NoZWNrLm1qczoKbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2NoZXZyb24tbGVmdC5tanM6Cmx1Y2lkZS1yZWFjdC9kaXN0L2VzbS9pY29ucy9jaXJjbGUtYWxlcnQubWpzOgpsdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLWxpc3QubWpzOgpsdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2xvY2subWpzOgpsdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvZ2l0LWNvbXBhcmUtYXJyb3dzLm1qczoKbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2ltYWdlLW9mZi5tanM6Cmx1Y2lkZS1yZWFjdC9kaXN0L2VzbS9pY29ucy9sYXlvdXQtZGFzaGJvYXJkLm1qczoKbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLm1qczoKbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL3BsdXMubWpzOgpsdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcm90YXRlLWNjdy1jbG9jay5tanM6Cmx1Y2lkZS1yZWFjdC9kaXN0L2VzbS9pY29ucy9yb3RhdGUtY2N3Lm1qczoKbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL3NlYXJjaC5tanM6Cmx1Y2lkZS1yZWFjdC9kaXN0L2VzbS9pY29ucy9zZW5kLm1qczoKbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL3NldHRpbmdzLm1qczoKbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1jaGVjay5tanM6Cmx1Y2lkZS1yZWFjdC9kaXN0L2VzbS9pY29ucy9zbGlkZXJzLWhvcml6b250YWwubWpzOgpsdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMveC5tanM6Cmx1Y2lkZS1yZWFjdC9kaXN0L2VzbS9sdWNpZGUtcmVhY3QubWpzOgogICgqKgogICAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MS4zMS4wIC0gSVNDCiAgICoKICAgKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICAgKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICAgKikKKi8K');doc.body.appendChild(script);
  setTimeout(function(){var shell=doc.querySelector('.shell');if(shell&&frame.contentWindow.getComputedStyle(shell).display!=='flex'){var warning=document.createElement('p');warning.dir='rtl';warning.textContent='استایل داشبورد اعمال نشد. لطفاً خطای Console مرورگر را برای بررسی ارسال کنید.';warning.style.cssText='padding:12px;color:#a33;background:#fff3ee;font:13px Tahoma;';host.insertBefore(warning,frame);}},1200);
 }catch(error){host.textContent='راه‌اندازی داشبورد انجام نشد: '+String(error.message||error);host.style.cssText='padding:18px;color:#a33;font:13px Tahoma;';}
})();
</script>