{"id":7738,"date":"2026-10-27T10:15:43","date_gmt":"2026-10-27T14:15:43","guid":{"rendered":"https:\/\/aerowoodaviation.com\/site\/?page_id=7738"},"modified":"2026-10-27T11:28:18","modified_gmt":"2026-10-27T15:28:18","slug":"aerowood-pilot-portal","status":"publish","type":"page","link":"https:\/\/aerowoodaviation.com\/site\/aerowood-pilot-portal\/","title":{"rendered":"Aerowood Pilot Portal"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"7738\" class=\"elementor elementor-7738\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-32cc079 e-con e-atomic-element e-flexbox-base e-155d5c7 \" data-id=\"32cc079\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"32cc079\" data-e-type=\"e-flexbox\" data-id=\"32cc079\">\n    \t\t<div class=\"elementor-element elementor-element-89500b0 elementor-widget elementor-widget-html\" data-id=\"89500b0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- Aerowood Aviation lobby dashboard (KEQY weather, area airports, fly-in food).\n     Paste this whole block into a Custom HTML block. Everything runs inside its own frame,\n     so it can't change your site's header, footer or fonts.\n     Desktop: a 16:9 panel that scales to fit. Phones: the panel grows to its full height, so only the page scrolls. -->\n<style>\n#aw-dash-embed{width:100%;max-width:1600px;margin:0 auto;background:#040C16;border-radius:12px;overflow:hidden;box-shadow:0 0 0 1px rgba(97,202,225,.35),0 0 24px rgba(97,202,225,.25)}\n#aw-dash-embed.wide{aspect-ratio:16\/9}\n#aw-dash-embed iframe{display:block;width:100%;border:0}\n#aw-dash-embed.wide iframe{height:100%}\n#aw-dash-embed.tall iframe{height:900px;overflow:hidden}\n<\/style>\n<div id=\"aw-dash-embed\"><\/div>\n<script>\n(function(){\n  var box = document.getElementById(\"aw-dash-embed\");\n  if (!box) return;\n  var b64 = \"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB2aWV3cG9ydC1maXQ9Y292ZXIiPgo8dGl0bGU+QWVyb3dvb2QgS0VRWSBXZWF0aGVyPC90aXRsZT4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI\/ZmFtaWx5PVBvcHBpbnM6d2dodEAzMDA7NDAwOzUwMDs2MDA7NzAwJmZhbWlseT1KZXRCcmFpbnMrTW9ubzp3Z2h0QDQwMDs1MDAmZGlzcGxheT1zd2FwIj4KPHN0eWxlPgovKiBMYXlvdXQ6IGxvYmJ5LXNjcmVlbiBncmlkLiBIZWFkZXIgYmFuZCwgc3RhdHVzIGhlcm8sIHdpbmQgaW5zdHJ1bWVudCArIGRhdGEgdGlsZXMsIHJhdyBNRVRBUi9UQUYgc3RyaXAsIGZvb3Rlci4gU2luZ2xlIGRhcmsgYnJhbmQgbG9vay4gKi8KOnJvb3R7CiAgLS1pbms6IzBBMEEwQTsgICAgICAgICAgLyogYnJhbmQgYmxhY2sgKi8KICAtLXNsYXRlOiMxRjI5MzM7ICAgICAgICAvKiBicmFuZCBzbGF0ZSAqLwogIC0tbmF2eTojMEEyNTQwOyAgICAgICAgIC8qIGJyYW5kIG5hdnkgKi8KICAtLXNreTojNjFDQUUxOyAgICAgICAgICAvKiBicmFuZCBza3kgYmx1ZSAqLwogIC0td2hpdGU6I0ZGRkZGRjsKICAtLWJnOiMwNDBDMTY7ICAgICAgICAgICAvKiBpbmsgYmxlbmRlZCB3aXRoIG5hdnkgKi8KICAtLXBhbmVsOnJnYmEoMTAsMzcsNjQsLjI4KTsKICAtLXBhbmVsLTI6cmdiYSgxMCwzNyw2NCwuNTUpOwogIC0tbGluZTpyZ2JhKDk3LDIwMiwyMjUsLjU1KTsKICAtLWxpbmUtc29mdDpyZ2JhKDk3LDIwMiwyMjUsLjIyKTsKICAtLWdsb3c6MCAwIDAgMXB4IHJnYmEoOTcsMjAyLDIyNSwuMDgpLCAwIDAgMTRweCByZ2JhKDk3LDIwMiwyMjUsLjI4KSwgaW5zZXQgMCAwIDE4cHggcmdiYSg5NywyMDIsMjI1LC4wNyk7CiAgLS1nbG93LXN0cm9uZzowIDAgMCAxcHggcmdiYSg5NywyMDIsMjI1LC4xNSksIDAgMCAyMnB4IHJnYmEoOTcsMjAyLDIyNSwuNDUpLCBpbnNldCAwIDAgMjJweCByZ2JhKDk3LDIwMiwyMjUsLjEyKTsKICAtLWNhdDojNkY4QUEzOwogIC0tbXV0ZWQ6IzlGQjZDQjsKICAtLWRpbTojNkY4QUEzOwogIC0tdmZyOiMzQ0NCN0Y7IC0tbXZmcjojNEM4REZGOyAtLWlmcjojRjA1MDRGOyAtLWxpZnI6I0Q4NUZEQjsgLS11bms6IzZGOEFBMzsKICAtLXdhcm46I0YyQjg0QjsKICAtLWYtZGlzcGxheToiUG9wcGlucyIsICJTZWdvZSBVSSIsIHN5c3RlbS11aSwgc2Fucy1zZXJpZjsKICAtLWYtbW9ubzoiSmV0QnJhaW5zIE1vbm8iLCB1aS1tb25vc3BhY2UsICJTRk1vbm8tUmVndWxhciIsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlOwogIGNvbG9yLXNjaGVtZTpkYXJrOwp9Cip7Ym94LXNpemluZzpib3JkZXItYm94fQpodG1sLGJvZHl7aGVpZ2h0OjEwMCU7bWFyZ2luOjB9CmJvZHl7CiAgYmFja2dyb3VuZDp2YXIoLS1iZyk7CiAgY29sb3I6dmFyKC0td2hpdGUpOwogIGZvbnQtZmFtaWx5OnZhcigtLWYtZGlzcGxheSk7CiAgZm9udC13ZWlnaHQ6NDAwOwogIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7Cn0KLndyYXB7CiAgbWluLWhlaWdodDoxMDAlOwogIGRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOmNsYW1wKDEycHgsMS40dncsMjJweCk7CiAgcGFkZGluZy1ibG9jazpjbGFtcCgxNHB4LDEuNnZ3LDI4cHgpOwogIHBhZGRpbmctbGVmdDptYXgoMTZweCwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0LDBweCksIDJ2dyk7CiAgcGFkZGluZy1yaWdodDptYXgoMTZweCwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCwwcHgpLCAydncpOwogIGJhY2tncm91bmQ6CiAgICByYWRpYWwtZ3JhZGllbnQoOTAwcHggNTAwcHggYXQgMTAwJSAtMTAlLCByZ2JhKDk3LDIwMiwyMjUsLjE0KSwgdHJhbnNwYXJlbnQgNjAlKSwKICAgIHJhZGlhbC1ncmFkaWVudCg5MDBweCA2MDBweCBhdCAtMTAlIDExMCUsIHJnYmEoMTAsMzcsNjQsLjkpLCB0cmFuc3BhcmVudCA3MCUpLAogICAgbGluZWFyLWdyYWRpZW50KHJnYmEoOTcsMjAyLDIyNSwuMDM1KSAxcHgsIHRyYW5zcGFyZW50IDFweCkgMCAwLzQ4cHggNDhweCwKICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSg5NywyMDIsMjI1LC4wMzUpIDFweCwgdHJhbnNwYXJlbnQgMXB4KSAwIDAvNDhweCA0OHB4LAogICAgdmFyKC0tYmcpOwp9Ci5udW17Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfQoubGFiZWx7Zm9udC1zaXplOmNsYW1wKDExcHgsLjcydncsMTRweCk7Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4xOGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjp2YXIoLS1tdXRlZCl9CgovKiBIZWFkZXIgKi8KaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjIwcHg7ZmxleC13cmFwOndyYXB9Ci5icmFuZHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDpjbGFtcCgxMHB4LDF2dywxOHB4KX0KLmJyYW5kIGltZ3toZWlnaHQ6Y2xhbXAoNDZweCw0LjZ2dyw4NnB4KTt3aWR0aDphdXRvfQoud29yZG1hcmt7bGluZS1oZWlnaHQ6MX0KLndvcmRtYXJrIGJ7ZGlzcGxheTpibG9jaztmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOmNsYW1wKDIycHgsMi4zdncsNDRweCk7bGV0dGVyLXNwYWNpbmc6LjAxZW19Ci53b3JkbWFyayBzcGFue2Rpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6MzAwO2ZvbnQtc2l6ZTpjbGFtcCgxMXB4LC45NXZ3LDE4cHgpO2xldHRlci1zcGFjaW5nOi42MmVtO21hcmdpbi10b3A6LjQ1ZW07Y29sb3I6dmFyKC0td2hpdGUpfQouZmllbGR7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHZhcigtLWxpbmUtc29mdCk7cGFkZGluZy1sZWZ0OmNsYW1wKDEwcHgsMXZ3LDE4cHgpO21hcmdpbi1sZWZ0OmNsYW1wKDRweCwuNnZ3LDEwcHgpfQouZmllbGQgLmlke2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6Y2xhbXAoMThweCwxLjZ2dywzMHB4KTtjb2xvcjp2YXIoLS1za3kpO2xldHRlci1zcGFjaW5nOi4wNGVtfQouZmllbGQgLm5te2ZvbnQtd2VpZ2h0OjMwMDtmb250LXNpemU6Y2xhbXAoMTJweCwuODV2dywxNnB4KTtjb2xvcjp2YXIoLS1tdXRlZCl9Ci5jbG9ja3N7ZGlzcGxheTpmbGV4O2dhcDpjbGFtcCgxNHB4LDEuNnZ3LDMycHgpO3RleHQtYWxpZ246cmlnaHR9Ci5jbG9jayAudHtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOmNsYW1wKDI0cHgsMi40dncsNDZweCk7bGluZS1oZWlnaHQ6MS4wNX0KLmNsb2NrIC56e2NvbG9yOnZhcigtLXNreSk7dGV4dC1zaGFkb3c6MCAwIDE4cHggcmdiYSg5NywyMDIsMjI1LC41NSl9CgovKiBTdGF0dXMgYmFyICovCi5zdGF0dXN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczphdXRvIDFmciBhdXRvO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6Y2xhbXAoMTRweCwxLjZ2dywzMHB4KTsKICBiYWNrZ3JvdW5kOnZhcigtLXBhbmVsKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JveC1zaGFkb3c6dmFyKC0tZ2xvdyk7Ym9yZGVyLXJhZGl1czoxNHB4O3BhZGRpbmc6Y2xhbXAoMTJweCwxLjF2dywyMHB4KSBjbGFtcCgxNHB4LDEuNHZ3LDI2cHgpO3Bvc2l0aW9uOnJlbGF0aXZlfQouY2F0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjE0cHh9Ci5jYXQtcGlsbHtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOmNsYW1wKDMwcHgsMy4ydncsNjRweCk7bGluZS1oZWlnaHQ6MTtsZXR0ZXItc3BhY2luZzouMDRlbTsKICBwYWRkaW5nOi4xNmVtIC41ZW07Ym9yZGVyLXJhZGl1czouMjJlbTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLWNhdCk7CiAgYm9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWNhdCk7CiAgYm94LXNoYWRvdzowIDAgMThweCBjb2xvci1taXgoaW4gc3JnYix2YXIoLS1jYXQpIDU1JSx0cmFuc3BhcmVudCksIGluc2V0IDAgMCAxOHB4IGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWNhdCkgMzAlLHRyYW5zcGFyZW50KTsKICB0ZXh0LXNoYWRvdzowIDAgMTZweCBjb2xvci1taXgoaW4gc3JnYix2YXIoLS1jYXQpIDgwJSx0cmFuc3BhcmVudCl9Ci5jYXQtZGVzY3tmb250LXdlaWdodDozMDA7Zm9udC1zaXplOmNsYW1wKDEzcHgsLjk1dncsMThweCk7Y29sb3I6dmFyKC0tbXV0ZWQpO21heC13aWR0aDoyMmNoO2xpbmUtaGVpZ2h0OjEuM30KLnN1bW1hcnl7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZTpjbGFtcCgxNnB4LDEuNHZ3LDI4cHgpO2xpbmUtaGVpZ2h0OjEuMzttaW4td2lkdGg6MH0KLnN1bW1hcnkgc21hbGx7ZGlzcGxheTpibG9jaztmb250LXdlaWdodDozMDA7Zm9udC1zaXplOi42MmVtO2NvbG9yOnZhcigtLW11dGVkKTttYXJnaW4tdG9wOjRweH0KLmFnZXt0ZXh0LWFsaWduOnJpZ2h0fQouYWdlIC52e2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6Y2xhbXAoMjBweCwxLjd2dywzNHB4KX0KLmFnZS5zdGFsZSAudntjb2xvcjp2YXIoLS13YXJuKX0KLmFnZSAuc3tmb250LXNpemU6Y2xhbXAoMTFweCwuNzV2dywxNHB4KTtjb2xvcjp2YXIoLS1tdXRlZCl9CgovKiBNYWluIGdyaWQgKi8KbWFpbntmbGV4OjE7ZGlzcGxheTpncmlkO2dhcDpjbGFtcCgxMnB4LDEuMnZ3LDIwcHgpOwogIGdyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCwxLjA1ZnIpIG1pbm1heCgwLDEuNmZyKTsKICBncmlkLXRlbXBsYXRlLXJvd3M6YXV0byBtaW5tYXgoMCwxZnIpOwogIGdyaWQtdGVtcGxhdGUtYXJlYXM6IndpbmQgdGlsZXMiICJ3aW5kIHJhdyJ9Ci53aW5ke2dyaWQtYXJlYTp3aW5kfS50aWxlc3tncmlkLWFyZWE6dGlsZXN9LnJhd3tncmlkLWFyZWE6cmF3fQoucGFuZWx7YmFja2dyb3VuZDp2YXIoLS1wYW5lbCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKTtib3gtc2hhZG93OnZhcigtLWdsb3cpO2JvcmRlci1yYWRpdXM6MTRweDtwYWRkaW5nOmNsYW1wKDE0cHgsMS4zdncsMjRweCk7bWluLXdpZHRoOjA7cG9zaXRpb246cmVsYXRpdmU7CiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cig2cHgpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDZweCl9Ci8qIEhVRCBjb3JuZXIgdGlja3MgKi8KLnBhbmVsOjpiZWZvcmUsLnN0YXR1czo6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6LTFweDtib3JkZXItcmFkaXVzOmluaGVyaXQ7cG9pbnRlci1ldmVudHM6bm9uZTsKICBiYWNrZ3JvdW5kOgogICAgbGluZWFyLWdyYWRpZW50KHZhcigtLXNreSksdmFyKC0tc2t5KSkgdG9wIGxlZnQvMThweCAycHggbm8tcmVwZWF0LAogICAgbGluZWFyLWdyYWRpZW50KHZhcigtLXNreSksdmFyKC0tc2t5KSkgdG9wIGxlZnQvMnB4IDE4cHggbm8tcmVwZWF0LAogICAgbGluZWFyLWdyYWRpZW50KHZhcigtLXNreSksdmFyKC0tc2t5KSkgYm90dG9tIHJpZ2h0LzE4cHggMnB4IG5vLXJlcGVhdCwKICAgIGxpbmVhci1ncmFkaWVudCh2YXIoLS1za3kpLHZhcigtLXNreSkpIGJvdHRvbSByaWdodC8ycHggMThweCBuby1yZXBlYXQ7CiAgZmlsdGVyOmRyb3Atc2hhZG93KDAgMCA0cHggdmFyKC0tc2t5KSl9Ci53aW5ke2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOmNsYW1wKDEwcHgsMXZ3LDE4cHgpfQoud2luZC1oZWFke2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpiYXNlbGluZTtnYXA6MTJweDtmbGV4LXdyYXA6d3JhcH0KLndpbmQtdmFse2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6Y2xhbXAoMjhweCwyLjZ2dyw1MnB4KTtsaW5lLWhlaWdodDoxfQoud2luZC12YWwgLnV7Zm9udC1zaXplOi40MmVtO2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjp2YXIoLS1tdXRlZCk7bWFyZ2luLWxlZnQ6LjJlbX0KLndpbmQtdmFsIC5ne2NvbG9yOnZhcigtLXdhcm4pO3RleHQtc2hhZG93OjAgMCAxNHB4IHJnYmEoMjQyLDE4NCw3NSwuNSl9Ci5jb21wYXNze3dpZHRoOjEwMCU7bWF4LXdpZHRoOm1pbigxMDAlLDQ2dmgpO2FzcGVjdC1yYXRpbzoxO21hcmdpbjowIGF1dG87ZGlzcGxheTpibG9ja30KLnJ3eXN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDpjbGFtcCg4cHgsLjh2dywxNHB4KX0KLnJ3eXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6MTBweDtwYWRkaW5nOmNsYW1wKDEwcHgsLjl2dywxNnB4KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUtc29mdCl9Ci5yd3kuZmF2e2JvcmRlci1jb2xvcjp2YXIoLS1za3kpO2JveC1zaGFkb3c6dmFyKC0tZ2xvdy1zdHJvbmcpfQoucnd5LmZhdiAubnt0ZXh0LXNoYWRvdzowIDAgMTRweCByZ2JhKDk3LDIwMiwyMjUsLjYpfQoucnd5IC5ue2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTpjbGFtcCgxOHB4LDEuNHZ3LDI4cHgpfQoucnd5IC50YWd7Zm9udC1zaXplOmNsYW1wKDEwcHgsLjYydncsMTJweCk7Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4xNGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXNreSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1za3kpO2JveC1zaGFkb3c6MCAwIDEwcHggcmdiYSg5NywyMDIsMjI1LC40NSk7cGFkZGluZzoycHggOHB4O2JvcmRlci1yYWRpdXM6OTlweH0KLnJ3eSBkbHttYXJnaW46OHB4IDAgMDtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOmF1dG8gMWZyO2dhcDo0cHggOHB4O2ZvbnQtc2l6ZTpjbGFtcCgxMnB4LC43OHZ3LDE2cHgpfQoucnd5IGRke3doaXRlLXNwYWNlOm5vd3JhcH0KLnJ3eSAubntmbGV4LXdyYXA6d3JhcDtnYXA6NHB4IDhweDt3aGl0ZS1zcGFjZTpub3dyYXB9Ci5yd3kgZHR7Y29sb3I6dmFyKC0tbXV0ZWQpO2ZvbnQtd2VpZ2h0OjMwMH0KLnJ3eSBkZHttYXJnaW46MDt0ZXh0LWFsaWduOnJpZ2h0O2ZvbnQtd2VpZ2h0OjUwMH0KLnh3LWhpZ2h7Y29sb3I6dmFyKC0td2Fybil9CgoucGFuZWwudGlsZXN7YmFja2dyb3VuZDpub25lO2JvcmRlcjowO2JveC1zaGFkb3c6bm9uZTtwYWRkaW5nOjA7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZTtiYWNrZHJvcC1maWx0ZXI6bm9uZX0KLnBhbmVsLnRpbGVzOjpiZWZvcmUsLnBhbmVsLnRpbGVzOjphZnRlcntkaXNwbGF5Om5vbmV9Ci5wYW5lbC50aWxlc3thbmltYXRpb246bm9uZSFpbXBvcnRhbnR9Ci50aWxlc3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLG1pbm1heCgwLDFmcikpO2dhcDpjbGFtcCgxMHB4LDEuMXZ3LDE4cHgpO2FsaWduLWNvbnRlbnQ6c3RhcnR9Ci50aWxle2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjZweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUtc29mdCk7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6Y2xhbXAoMTJweCwxLjF2dywyMHB4KTsKICBiYWNrZ3JvdW5kOnZhcigtLXBhbmVsKTtib3gtc2hhZG93OjAgMCAxMnB4IHJnYmEoOTcsMjAyLDIyNSwuMTIpLCBpbnNldCAwIDAgMTRweCByZ2JhKDk3LDIwMiwyMjUsLjA1KTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuM3MsIGJveC1zaGFkb3cgLjNzfQoudGlsZTpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tbGluZSk7Ym94LXNoYWRvdzp2YXIoLS1nbG93KX0KLnRpbGUgLnZ7dGV4dC1zaGFkb3c6MCAwIDIycHggcmdiYSg5NywyMDIsMjI1LC4yMil9Ci50aWxlIC52e2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6Y2xhbXAoMjZweCwyLjN2dyw0NnB4KTtsaW5lLWhlaWdodDoxLjA1fQoudGlsZSAudiAudXtmb250LXNpemU6LjQ1ZW07Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOnZhcigtLW11dGVkKTttYXJnaW4tbGVmdDouMTVlbX0KLnRpbGUgLnN7Zm9udC13ZWlnaHQ6MzAwO2ZvbnQtc2l6ZTpjbGFtcCgxMnB4LC44NXZ3LDE2cHgpO2NvbG9yOnZhcigtLW11dGVkKTtsaW5lLWhlaWdodDoxLjM1fQoudGlsZS53aWRle2dyaWQtY29sdW1uOnNwYW4gMn0KLnRpbGV7bWluLWhlaWdodDowO292ZXJmbG93OmhpZGRlbn0KLnRpbGUgLnN7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWxpbmUtY2xhbXA6Mjstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7b3ZlcmZsb3c6aGlkZGVufQpAbWVkaWEgKG1heC1oZWlnaHQ6ODYwcHgpIGFuZCAobWluLXdpZHRoOjEyODFweCl7LnRpbGUgLnN7LXdlYmtpdC1saW5lLWNsYW1wOjF9LnRpbGV7Z2FwOjNweH19Ci5za3ktbGlzdHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo0cHg7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZTpjbGFtcCgxNnB4LDEuMjV2dywyNHB4KX0KLnNreS1saXN0IC5jZWlse2NvbG9yOnZhcigtLXNreSk7dGV4dC1zaGFkb3c6MCAwIDEycHggcmdiYSg5NywyMDIsMjI1LC41NSl9Ci5hbGVydHtjb2xvcjp2YXIoLS13YXJuKX0KCi5yYXd7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCwxZnIpO2FsaWduLWNvbnRlbnQ6c3RhcnQ7Z2FwOmNsYW1wKDEwcHgsMXZ3LDE4cHgpO21pbi1oZWlnaHQ6MDtvdmVyZmxvdzphdXRvO3BhZGRpbmctYmxvY2s6Y2xhbXAoMTBweCwuOXZ3LDE2cHgpfQoucmF3bm90ZXtmb250LXNpemU6Y2xhbXAoMTFweCwuNzV2dywxNHB4KTtjb2xvcjp2YXIoLS1tdXRlZCk7Zm9udC13ZWlnaHQ6MzAwfQoucmF3IHByZXttYXJnaW46MDtmb250LWZhbWlseTp2YXIoLS1mLW1vbm8pO2ZvbnQtc2l6ZTpjbGFtcCgxM3B4LC45NXZ3LDE4cHgpO2xpbmUtaGVpZ2h0OjEuNTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7Y29sb3I6dmFyKC0td2hpdGUpfQoucmF3IC50YWZ7Y29sb3I6I0QzRTNGMH0KLnJhdyBwcmV7dGV4dC1zaGFkb3c6MCAwIDEwcHggcmdiYSg5NywyMDIsMjI1LC4xOCl9Ci5yYXcgLnJvd3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo2cHh9CgovKiBEaXNjbGFpbWVyOiBib2xkLCB1bmRlcmxpbmVkLCB3aXRoIGEgZ2xvd2luZyBoaWdobGlnaHQgYmFyIHRoYXQgc3dlZXBzIGJlbmVhdGggaXQgKi8KLmRpc2NsYWltZXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZy1ib3R0b206MTBweH0KLmRpc2NsYWltZXIgc3Bhbntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOmNsYW1wKDEzcHgsLjk1dncsMThweCk7bGV0dGVyLXNwYWNpbmc6LjAyZW07Y29sb3I6dmFyKC0td2hpdGUpOwogIHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOnZhcigtLXNreSk7dGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczoycHg7dGV4dC11bmRlcmxpbmUtb2Zmc2V0OjVweDsKICBwYWRkaW5nOjRweCAxNHB4O2FuaW1hdGlvbjpkaXNjZ2xvdyAzLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlfQouZGlzY2xhaW1lciBzcGFuOjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtyaWdodDowO2JvdHRvbTotOHB4O2hlaWdodDozcHg7Ym9yZGVyLXJhZGl1czozcHg7CiAgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAlLCByZ2JhKDk3LDIwMiwyMjUsLjI1KSAyMCUsICNGRkZGRkYgNTAlLCByZ2JhKDk3LDIwMiwyMjUsLjI1KSA4MCUsIHRyYW5zcGFyZW50IDEwMCUpIDAgMC81MCUgMTAwJSBuby1yZXBlYXQsIHJnYmEoOTcsMjAyLDIyNSwuMzUpOwogIGJveC1zaGFkb3c6MCAwIDEycHggcmdiYSg5NywyMDIsMjI1LC44KSwgMCAwIDI0cHggcmdiYSg5NywyMDIsMjI1LC40NSk7CiAgYW5pbWF0aW9uOmRpc2Nzd2VlcCAyLjhzIGxpbmVhciBpbmZpbml0ZX0KLmRpc2NsYWltZXIgc3Bhbjo6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6LTJweCAtNnB4O2JvcmRlci1yYWRpdXM6OHB4O3otaW5kZXg6LTE7CiAgYmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoNjAlIDEyMCUgYXQgNTAlIDEwMCUsIHJnYmEoOTcsMjAyLDIyNSwuMjIpLCB0cmFuc3BhcmVudCA3MCUpO2FuaW1hdGlvbjpkaXNjcHVsc2UgMy4ycyBlYXNlLWluLW91dCBpbmZpbml0ZX0KQGtleWZyYW1lcyBkaXNjc3dlZXB7MCV7YmFja2dyb3VuZC1wb3NpdGlvbjotNjAlIDAsIDAgMH0xMDAle2JhY2tncm91bmQtcG9zaXRpb246MTYwJSAwLCAwIDB9fQpAa2V5ZnJhbWVzIGRpc2NnbG93ezAlLDEwMCV7dGV4dC1zaGFkb3c6MCAwIDZweCByZ2JhKDk3LDIwMiwyMjUsLjM1KX01MCV7dGV4dC1zaGFkb3c6MCAwIDE2cHggcmdiYSg5NywyMDIsMjI1LC45NSksIDAgMCAzMHB4IHJnYmEoOTcsMjAyLDIyNSwuNDUpfX0KQGtleWZyYW1lcyBkaXNjcHVsc2V7MCUsMTAwJXtvcGFjaXR5Oi40NX01MCV7b3BhY2l0eToxfX0KZm9vdGVye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTZweDtmbGV4LXdyYXA6d3JhcDthbGlnbi1pdGVtczpjZW50ZXI7CiAgZm9udC1zaXplOmNsYW1wKDEycHgsLjh2dywxNXB4KTtjb2xvcjp2YXIoLS1tdXRlZCk7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tbGluZS1zb2Z0KTtwYWRkaW5nLXRvcDpjbGFtcCgxMHB4LC45dncsMTZweCl9CmZvb3RlciAuZnJlcXN7ZGlzcGxheTpmbGV4O2dhcDpjbGFtcCgxNHB4LDEuNnZ3LDMwcHgpO2ZsZXgtd3JhcDp3cmFwfQpmb290ZXIgLmZyZXFzIGJ7Y29sb3I6dmFyKC0td2hpdGUpO2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW4tbGVmdDo2cHh9CmZvb3RlciAuY3RybHtkaXNwbGF5OmZsZXg7Z2FwOjhweDthbGlnbi1pdGVtczpjZW50ZXJ9CmJ1dHRvbntmb250OmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLXNreSk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpOwogIGJvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6NnB4IDEycHg7Y3Vyc29yOnBvaW50ZXJ9CmJ1dHRvbjpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tc2t5KTtib3gtc2hhZG93OjAgMCAxMnB4IHJnYmEoOTcsMjAyLDIyNSwuNDUpO2NvbG9yOnZhcigtLXdoaXRlKX0KYnV0dG9uOmZvY3VzLXZpc2libGV7b3V0bGluZToycHggc29saWQgdmFyKC0tc2t5KTtvdXRsaW5lLW9mZnNldDoycHh9Ci5lcnJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjQwLDgwLDc5LC43KTtib3gtc2hhZG93OjAgMCAxNHB4IHJnYmEoMjQwLDgwLDc5LC4zNSk7Y29sb3I6I0ZGRDVENDtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoxMHB4IDE0cHg7Zm9udC1zaXplOjE0cHh9CgovKiBCaWcgbG9iYnkgc2NyZWVuczoga2VlcCBldmVyeXRoaW5nIG9uIG9uZSBwYWdlICovCkBtZWRpYSAobWluLXdpZHRoOjEyODBweCkgYW5kIChtaW4tYXNwZWN0LXJhdGlvOjQvMyl7CiAgLndyYXB7aGVpZ2h0OjEwMCU7bWluLWhlaWdodDowfQogIG1haW57bWluLWhlaWdodDowO2dyaWQtdGVtcGxhdGUtcm93czptaW5tYXgoMCwxZnIpfQogIC53aW5ke21pbi1oZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW59CiAgLnRpbGVze21pbi1oZWlnaHQ6MH0KICAuY29tcGFzc3tmbGV4OjEgMSAwO21pbi1oZWlnaHQ6MDtoZWlnaHQ6YXV0bzttYXgtd2lkdGg6MTAwJTthc3BlY3QtcmF0aW86YXV0b30KfQoKQG1lZGlhIChtYXgtd2lkdGg6MTEwMHB4KXsKICBtYWlue2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z3JpZC10ZW1wbGF0ZS1yb3dzOmF1dG87Z3JpZC10ZW1wbGF0ZS1hcmVhczoid2luZCIgInRpbGVzIiAicmF3In0KICAudGlsZXN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbm1heCgwLDFmcikpfQp9CkBtZWRpYSAobWF4LXdpZHRoOjY0MHB4KXsKICAuc3RhdHVze2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9CiAgLmFnZXt0ZXh0LWFsaWduOmxlZnR9CiAgLmNsb2Nrc3t0ZXh0LWFsaWduOmxlZnR9CiAgLmZpZWxke2JvcmRlci1sZWZ0OjA7cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWxlZnQ6MH0KICAudGlsZXN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnJ9CiAgLnRpbGUud2lkZXtncmlkLWNvbHVtbjpzcGFuIDJ9CiAgLnJ3eXN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn0KfQoKLyogLS0tLS0tLS0tLSBWaWV3IHN3aXRjaCArIEFyZWEgdmlldyAtLS0tLS0tLS0tICovCi5mb29kYm94e2ZsZXg6MTttaW4taGVpZ2h0OjA7cG9zaXRpb246cmVsYXRpdmV9CkBtZWRpYSAobWF4LXdpZHRoOjExMDBweCl7LmZvb2Rib3h7bWluLWhlaWdodDo4NXZofX0KLmZvb2Rib3ggaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXI6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fQovKiBQaG9uZSAvIG5hcnJvdyBsYXlvdXQ6IHRoZSBwYWdlIGdyb3dzIHRvIGZpdCBldmVyeXRoaW5nIChubyBpbm5lciBzY3JvbGwpLCBhbmQgdGhlIGZvb2QgbWFwIGZyYW1lIGdyb3dzIHdpdGggaXRzIGNvbnRlbnQgKi8KaHRtbC5hdXRvaCxodG1sLmF1dG9oIGJvZHl7aGVpZ2h0OmF1dG8haW1wb3J0YW50fQpodG1sLmF1dG9oIC53cmFwe21pbi1oZWlnaHQ6MCFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8haW1wb3J0YW50fQoubmFycm93IC5mb29kYm94e21pbi1oZWlnaHQ6MCFpbXBvcnRhbnQ7ZmxleDpub25lfQoubmFycm93IC5mb29kYm94IGlmcmFtZXtwb3NpdGlvbjpzdGF0aWM7aGVpZ2h0OjYwMHB4fQoubmFycm93IC5yb3RiYXJ7ZGlzcGxheTpub25lfQoucm90YmFye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtib3R0b206LTZweDtoZWlnaHQ6MnB4O3dpZHRoOjA7dHJhbnNpdGlvbjp3aWR0aCAuMjVzIGxpbmVhcjtiYWNrZ3JvdW5kOnZhcigtLXNreSk7Ym94LXNoYWRvdzowIDAgOHB4IHZhcigtLXNreSk7Ym9yZGVyLXJhZGl1czoycHh9Ci52aWV3c3d7cG9zaXRpb246cmVsYXRpdmV9Ci52aWV3e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOmNsYW1wKDEycHgsMS40dncsMjJweCk7ZmxleDoxO21pbi1oZWlnaHQ6MH0KLnZpZXdbaGlkZGVuXXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fQoudmlld3N3e2Rpc3BsYXk6ZmxleDtnYXA6NnB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZS1zb2Z0KTtib3JkZXItcmFkaXVzOjk5cHg7cGFkZGluZzo0cHh9Ci52aWV3c3cgYnV0dG9ue2JvcmRlcjowO2JvcmRlci1yYWRpdXM6OTlweDtmb250LXNpemU6Y2xhbXAoMTJweCwuOHZ3LDE1cHgpO3BhZGRpbmc6NnB4IDE0cHh9Ci52aWV3c3cgYnV0dG9uW2FyaWEtc2VsZWN0ZWQ9InRydWUiXXtjb2xvcjp2YXIoLS1iZyk7YmFja2dyb3VuZDp2YXIoLS1za3kpO2JveC1zaGFkb3c6MCAwIDE0cHggcmdiYSg5NywyMDIsMjI1LC42KX0KLmFyZWF7ZmxleDoxO21pbi1oZWlnaHQ6MDtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLC45ZnIpIG1pbm1heCgwLDEuNmZyKTtnYXA6Y2xhbXAoMTJweCwxLjJ2dywyMHB4KX0KLmFyZWFtYXB7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6OHB4O21pbi1oZWlnaHQ6MH0KLmFyZWEtaGVhZHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHggMTRweDtmbGV4LXdyYXA6d3JhcH0KLmxlZ2VuZDJ7ZGlzcGxheTpmbGV4O2dhcDoxMnB4O2ZsZXgtd3JhcDp3cmFwO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLW11dGVkKX0KLmxlZ2VuZDIgaXtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDo5cHg7aGVpZ2h0OjlweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWMpO2JveC1zaGFkb3c6MCAwIDhweCB2YXIoLS1jKTttYXJnaW4tcmlnaHQ6NXB4O3ZlcnRpY2FsLWFsaWduOjB9Ci5sZWdlbmQyIGkudHJpe3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLXJhZGl1czowO2JhY2tncm91bmQ6bm9uZTtib3gtc2hhZG93Om5vbmU7Ym9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo5cHggc29saWQgdmFyKC0td2Fybil9CiNhcmVhU3Zne2ZsZXg6MTttaW4taGVpZ2h0OjA7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrfQouYXJlYS1zdW17Zm9udC1zaXplOmNsYW1wKDEycHgsLjg1dncsMTZweCk7Y29sb3I6dmFyKC0tbXV0ZWQpfQouYXJlYS1zdW0gYntjb2xvcjp2YXIoLS13aGl0ZSl9Ci5hcmVhLWFzb2Z7Zm9udC1zaXplOmNsYW1wKDExcHgsLjd2dywxM3B4KTtjb2xvcjp2YXIoLS13YXJuKTtmb250LXdlaWdodDo1MDB9Ci5jYXJkc3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLG1pbm1heCgwLDFmcikpO2dyaWQtYXV0by1yb3dzOm1pbm1heCgwLDFmcik7Z2FwOmNsYW1wKDhweCwuN3Z3LDEycHgpO21pbi1oZWlnaHQ6MH0KLmFjYXJke3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjNweDttaW4td2lkdGg6MDttaW4taGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuOwogIGJvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZS1zb2Z0KTtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzpjbGFtcCg4cHgsLjZ2dywxMnB4KSBjbGFtcCgxMHB4LC43NXZ3LDE0cHgpO2JhY2tncm91bmQ6dmFyKC0tcGFuZWwpOwogIGJveC1zaGFkb3c6MCAwIDEwcHggcmdiYSg5NywyMDIsMjI1LC4xMCksIGluc2V0IDAgMCAxMnB4IHJnYmEoOTcsMjAyLDIyNSwuMDQpO2N1cnNvcjpkZWZhdWx0O3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4yNXMsIGJveC1zaGFkb3cgLjI1c30KLmFjYXJkOjpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjEwcHg7Ym90dG9tOjEwcHg7d2lkdGg6M3B4O2JvcmRlci1yYWRpdXM6MCAzcHggM3B4IDA7YmFja2dyb3VuZDp2YXIoLS1jYyx2YXIoLS11bmspKTtib3gtc2hhZG93OjAgMCAxMHB4IHZhcigtLWNjLHZhcigtLXVuaykpfQouYWNhcmQub257Ym9yZGVyLWNvbG9yOnZhcigtLXNreSk7Ym94LXNoYWRvdzp2YXIoLS1nbG93LXN0cm9uZyl9CkBtZWRpYSAobWF4LXdpZHRoOjEyODBweCksIChtYXgtYXNwZWN0LXJhdGlvOjQvMyl7LmFjYXJkIC5ub3Rley13ZWJraXQtbGluZS1jbGFtcDozfS5hY2FyZCAud3h7ZmxleC13cmFwOndyYXA7Z2FwOjJweCAxMnB4fS5hY2FyZCAuY2hpcHN7ZmxleC13cmFwOndyYXB9fQouYWNhcmQgLnRvcHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHh9Ci5hY2FyZCAuYWlke2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6Y2xhbXAoMTVweCwxLjA1dncsMjBweCk7bGV0dGVyLXNwYWNpbmc6LjAzZW19Ci5hY2FyZCAuYWNhdHtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOmNsYW1wKDEwcHgsLjYydncsMTJweCk7bGV0dGVyLXNwYWNpbmc6LjA4ZW07cGFkZGluZzoxcHggN3B4O2JvcmRlci1yYWRpdXM6NXB4O2NvbG9yOnZhcigtLWNjLHZhcigtLXVuaykpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tY2MsdmFyKC0tdW5rKSk7Ym94LXNoYWRvdzowIDAgOHB4IGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWNjLCM2RjhBQTMpIDQ1JSx0cmFuc3BhcmVudCl9Ci5hY2FyZCAuZGlzdHtmbGV4Om5vbmU7Zm9udC1zaXplOmNsYW1wKDExcHgsLjY4dncsMTNweCk7Y29sb3I6dmFyKC0tbXV0ZWQpO3doaXRlLXNwYWNlOm5vd3JhcH0KLmFjYXJkIC5hbm17Zm9udC1zaXplOmNsYW1wKDExcHgsLjY2dncsMTNweCk7Y29sb3I6dmFyKC0tbXV0ZWQpO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczttaW4td2lkdGg6MDtmbGV4OjF9Ci5hY2FyZCAud3h7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDpub3dyYXA7Z2FwOjEycHg7Zm9udC1zaXplOmNsYW1wKDEycHgsLjcydncsMTRweCk7Zm9udC13ZWlnaHQ6NTAwO292ZXJmbG93OmhpZGRlbn0KLmFjYXJkIC53eCBzcGFue3doaXRlLXNwYWNlOm5vd3JhcH0KLmFjYXJkIC53eCAua3tjb2xvcjp2YXIoLS1kaW0pO2ZvbnQtd2VpZ2h0OjQwMDttYXJnaW4tcmlnaHQ6NHB4O2ZvbnQtc2l6ZTouODVlbX0KLmFjYXJkIC53eCAuZ3tjb2xvcjp2YXIoLS13YXJuKX0KLmFjYXJkID4gKntmbGV4Om5vbmV9Ci5hY2FyZCAuY2hpcHN7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDpub3dyYXA7Z2FwOjRweDttYXJnaW4tdG9wOmF1dG87b3ZlcmZsb3c6aGlkZGVuO2FsaWduLWl0ZW1zOmNlbnRlcn0KLmFjYXJkIC5jaGlwcyAuYWdle2ZsZXg6bm9uZTtwYWRkaW5nLWxlZnQ6NnB4fQouY2hpcDJ7Zm9udC1zaXplOmNsYW1wKDlweCwuNTZ2dywxMXB4KTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjA4ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3BhZGRpbmc6MXB4IDZweDtib3JkZXItcmFkaXVzOjk5cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1jaCk7Y29sb3I6dmFyKC0tY2gpO3doaXRlLXNwYWNlOm5vd3JhcH0KLmNoaXAyLmp1bXB7LS1jaDp2YXIoLS13YXJuKTtib3gtc2hhZG93OjAgMCA4cHggcmdiYSgyNDIsMTg0LDc1LC40NSk7YW5pbWF0aW9uOmNoaXBnbG93IDIuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGV9Ci5jaGlwMi5taWx7LS1jaDojRkY3QTZCfQouY2hpcDIuaGVsaXstLWNoOiNDNDlCRkZ9Ci5jaGlwMi53aWxkey0tY2g6IzhGRDY5NH0KLmNoaXAyLmFpcnstLWNoOnZhcigtLXNreSl9Ci5jaGlwMi5vYnN7LS1jaDp2YXIoLS1tdXRlZCl9CkBrZXlmcmFtZXMgY2hpcGdsb3d7MCUsMTAwJXtib3gtc2hhZG93OjAgMCA2cHggcmdiYSgyNDIsMTg0LDc1LC4zNSl9NTAle2JveC1zaGFkb3c6MCAwIDE0cHggcmdiYSgyNDIsMTg0LDc1LC44NSl9fQouYWNhcmQgLm5vdGV7Zm9udC1zaXplOmNsYW1wKDEwcHgsLjYydncsMTJweCk7Y29sb3I6I0QzRTNGMDtmb250LXdlaWdodDozMDA7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWxpbmUtY2xhbXA6MTstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7b3ZlcmZsb3c6aGlkZGVufQouYWNhcmQgLmFnZXtmb250LXNpemU6Y2xhbXAoMTBweCwuNnZ3LDEycHgpO2NvbG9yOnZhcigtLWRpbSl9Ci5hY2FyZCAuYWdlLnN0YWxle2NvbG9yOnZhcigtLXdhcm4pfQouYXB0LWRvdHtjdXJzb3I6cG9pbnRlcn0KLmFwdC1kb3QgdGV4dHtmb250OjYwMCAxM3B4IHZhcigtLWYtZGlzcGxheSk7ZmlsbDojRkZGRkZGO3BhaW50LW9yZGVyOnN0cm9rZTtzdHJva2U6IzA0MEMxNjtzdHJva2Utd2lkdGg6NHB4fQouYXB0LWRvdC5vbiBjaXJjbGUuY29yZXtyOjl9Ci5hcHQtZG90Lm9uIHRleHR7ZmlsbDp2YXIoLS1za3kpfQpAbWVkaWEgKG1heC13aWR0aDoxMjgwcHgpLCAobWF4LWFzcGVjdC1yYXRpbzo0LzMpewogIC5hcmVhe2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9CiAgI2FyZWFTdmd7aGVpZ2h0Om1pbig4MHZ3LDU2MHB4KTtmbGV4Om5vbmV9CiAgLmNhcmRze2dyaWQtYXV0by1yb3dzOmF1dG99Cn0KQG1lZGlhIChtYXgtd2lkdGg6OTAwcHgpeyAuY2FyZHN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbm1heCgwLDFmcikpfSB9CkBtZWRpYSAobWF4LXdpZHRoOjU2MHB4KXsgLmNhcmRze2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9IC52aWV3c3d7b3JkZXI6M30gfQovKiAtLS0tLS0tLS0tIE1vdGlvbiAtLS0tLS0tLS0tCiAgIDEuIEEgc2hvcnQgYnJpZ2h0IHNlZ21lbnQgdHJhY2VzIGVhY2ggb3V0bGluZSAoY29uaWMgZ3JhZGllbnQgbWFza2VkIHRvIGEgMXB4IHJpbmcpLgogICAyLiBHbG93cyBicmVhdGhlIHNsb3dseS4KICAgMy4gT24gZWFjaCBkYXRhIHJlZnJlc2gsIGEgc2NhbiBsaW5lIHN3ZWVwcyB0aGUgdGlsZXMgYW5kIHZhbHVlcyBicmlnaHRlbiBmb3IgYSBtb21lbnQuCiAgIDQuIEEgc2xvdyByYWRhciBzd2VlcCB0dXJucyBpbnNpZGUgdGhlIGNvbXBhc3MuICovCkBwcm9wZXJ0eSAtLXRyYWNle3N5bnRheDoiPGFuZ2xlPiI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTowZGVnfQoucGFuZWwsLnN0YXR1cywudGlsZSwucnd5e3Bvc2l0aW9uOnJlbGF0aXZlfQoucGFuZWw6OmFmdGVyLC5zdGF0dXM6OmFmdGVyLC50aWxlOjphZnRlciwucnd5OjphZnRlcnsKICBjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0Oi0xcHg7Ym9yZGVyLXJhZGl1czppbmhlcml0O3BhZGRpbmc6MS41cHg7cG9pbnRlci1ldmVudHM6bm9uZTsKICBiYWNrZ3JvdW5kOmNvbmljLWdyYWRpZW50KGZyb20gdmFyKC0tdHJhY2UpLCB0cmFuc3BhcmVudCAwZGVnLCB0cmFuc3BhcmVudCAyOTBkZWcsIHJnYmEoOTcsMjAyLDIyNSwuMCkgMzAwZGVnLCByZ2JhKDk3LDIwMiwyMjUsLjkpIDM0NWRlZywgI0ZGRkZGRiAzNThkZWcsIHRyYW5zcGFyZW50IDM2MGRlZyk7CiAgLXdlYmtpdC1tYXNrOmxpbmVhci1ncmFkaWVudCgjMDAwIDAgMCkgY29udGVudC1ib3gsIGxpbmVhci1ncmFkaWVudCgjMDAwIDAgMCk7CiAgLXdlYmtpdC1tYXNrLWNvbXBvc2l0ZTp4b3I7IG1hc2s6bGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKSBjb250ZW50LWJveCBleGNsdWRlLCBsaW5lYXItZ3JhZGllbnQoIzAwMCAwIDApOwogIGZpbHRlcjpkcm9wLXNoYWRvdygwIDAgNHB4IHJnYmEoOTcsMjAyLDIyNSwuOSkpOwogIGFuaW1hdGlvbjp0cmFjZSB2YXIoLS10cmFjZS1kdXIsOXMpIGxpbmVhciBpbmZpbml0ZTthbmltYXRpb24tZGVsYXk6dmFyKC0tdHJhY2UtZGVsYXksMHMpO29wYWNpdHk6Ljg1fQoudGlsZTo6YWZ0ZXIsLnJ3eTo6YWZ0ZXJ7b3BhY2l0eTouNzU7cGFkZGluZzoxcHh9Ci5zdGF0dXN7LS10cmFjZS1kdXI6MTJzfQoucGFuZWwud2luZHstLXRyYWNlLWR1cjoxMHM7LS10cmFjZS1kZWxheTotM3N9Ci5wYW5lbC5yYXd7LS10cmFjZS1kdXI6MTFzOy0tdHJhY2UtZGVsYXk6LTZzfQoudGlsZTpudGgtY2hpbGQoMSl7LS10cmFjZS1kZWxheTotMXN9LnRpbGU6bnRoLWNoaWxkKDIpey0tdHJhY2UtZGVsYXk6LTQuNXN9LnRpbGU6bnRoLWNoaWxkKDMpey0tdHJhY2UtZGVsYXk6LTIuMnN9Ci50aWxlOm50aC1jaGlsZCg0KXstLXRyYWNlLWRlbGF5Oi02LjhzfS50aWxlOm50aC1jaGlsZCg1KXstLXRyYWNlLWRlbGF5Oi0zLjRzfS50aWxlOm50aC1jaGlsZCg2KXstLXRyYWNlLWRlbGF5Oi04c30KLnJ3eTpudGgtY2hpbGQoMil7LS10cmFjZS1kZWxheTotNHN9CkBrZXlmcmFtZXMgdHJhY2V7dG97LS10cmFjZTozNjBkZWd9fQoKQGtleWZyYW1lcyBicmVhdGhlezAlLDEwMCV7Ym94LXNoYWRvdzp2YXIoLS1nbG93KX01MCV7Ym94LXNoYWRvdzowIDAgMCAxcHggcmdiYSg5NywyMDIsMjI1LC4xMiksIDAgMCAyMHB4IHJnYmEoOTcsMjAyLDIyNSwuMzgpLCBpbnNldCAwIDAgMjJweCByZ2JhKDk3LDIwMiwyMjUsLjEwKX19Ci5wYW5lbCwuc3RhdHVze2FuaW1hdGlvbjpicmVhdGhlIDdzIGVhc2UtaW4tb3V0IGluZmluaXRlfQoucGFuZWwud2luZHthbmltYXRpb24tZGVsYXk6LTJzfS5wYW5lbC5yYXd7YW5pbWF0aW9uLWRlbGF5Oi00LjVzfQpAa2V5ZnJhbWVzIHRleHRnbG93ezAlLDEwMCV7dGV4dC1zaGFkb3c6MCAwIDE0cHggcmdiYSg5NywyMDIsMjI1LC40NSl9NTAle3RleHQtc2hhZG93OjAgMCAyNnB4IHJnYmEoOTcsMjAyLDIyNSwuODUpfX0KLmNsb2NrIC56LC5maWVsZCAuaWR7YW5pbWF0aW9uOnRleHRnbG93IDVzIGVhc2UtaW4tb3V0IGluZmluaXRlfQpAa2V5ZnJhbWVzIGNhdGdsb3d7MCUsMTAwJXtmaWx0ZXI6YnJpZ2h0bmVzcygxKX01MCV7ZmlsdGVyOmJyaWdodG5lc3MoMS4yMil9fQouY2F0LXBpbGx7YW5pbWF0aW9uOmNhdGdsb3cgNXMgZWFzZS1pbi1vdXQgaW5maW5pdGV9CkBrZXlmcmFtZXMgZmF2Z2xvd3swJSwxMDAle2JveC1zaGFkb3c6dmFyKC0tZ2xvdyl9NTAle2JveC1zaGFkb3c6dmFyKC0tZ2xvdy1zdHJvbmcpfX0KLnJ3eS5mYXZ7YW5pbWF0aW9uOmZhdmdsb3cgNHMgZWFzZS1pbi1vdXQgaW5maW5pdGV9CgovKiByZWZyZXNoIHN3ZWVwICovCi5zY2Fue3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXItcmFkaXVzOmluaGVyaXQ7b3ZlcmZsb3c6aGlkZGVufQouc2Nhbjo6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OjA7aGVpZ2h0OjQwJTt0b3A6LTQ1JTsKICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDk3LDIwMiwyMjUsLjEwKSA3MCUsIHJnYmEoOTcsMjAyLDIyNSwuNDUpIDk4JSwgdHJhbnNwYXJlbnQpfQoucmVmcmVzaGVkIC5zY2FuOjpiZWZvcmV7YW5pbWF0aW9uOnNjYW4gMS40cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSAxfQpAa2V5ZnJhbWVzIHNjYW57dG97dG9wOjExMCV9fQoucmVmcmVzaGVkIC50aWxlIC52LC5yZWZyZXNoZWQgLnNreS1saXN0LC5yZWZyZXNoZWQgLndpbmQtdmFsLC5yZWZyZXNoZWQgLnN1bW1hcnl7YW5pbWF0aW9uOnZhbGZsYXNoIDEuNnMgZWFzZS1vdXQgMX0KQGtleWZyYW1lcyB2YWxmbGFzaHswJXt0ZXh0LXNoYWRvdzowIDAgMCByZ2JhKDk3LDIwMiwyMjUsMCl9MzUle3RleHQtc2hhZG93OjAgMCAyMnB4IHJnYmEoOTcsMjAyLDIyNSwuOTUpO2NvbG9yOiNFOEZBRkZ9MTAwJXt0ZXh0LXNoYWRvdzowIDAgMjJweCByZ2JhKDk3LDIwMiwyMjUsLjIyKX19CgovKiBjb21wYXNzIHJhZGFyIHN3ZWVwICovCi5zd2VlcHt0cmFuc2Zvcm0tb3JpZ2luOjIwMHB4IDIwMHB4O2FuaW1hdGlvbjpzd2VlcCA4cyBsaW5lYXIgaW5maW5pdGV9Ci5zd2VlcDJ7dHJhbnNmb3JtLW9yaWdpbjozMjBweCAzMjBweDthbmltYXRpb246c3dlZXAgMTBzIGxpbmVhciBpbmZpbml0ZX0KQGtleWZyYW1lcyBzd2VlcHt0b3t0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fQpAa2V5ZnJhbWVzIHJpbmdwdWxzZXswJSwxMDAle29wYWNpdHk6LjM1fTUwJXtvcGFjaXR5Oi45fX0KLnJpbmdwdWxzZXthbmltYXRpb246cmluZ3B1bHNlIDRzIGVhc2UtaW4tb3V0IGluZmluaXRlfQoKQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7Knt0cmFuc2l0aW9uOm5vbmUhaW1wb3J0YW50O2FuaW1hdGlvbjpub25lIWltcG9ydGFudH19Ci5mYWRle3RyYW5zaXRpb246b3BhY2l0eSAuNHN9Cjwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+CjxkaXYgY2xhc3M9IndyYXAiPgogIDxoZWFkZXI+CiAgICA8ZGl2IGNsYXNzPSJicmFuZCI+CiAgICAgIDxpbWcgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUx3QUFBQzdDQVlBQUFEZlRQUVRBQUJOQzBsRVFWUjQydTJkZDV4ZFZkWDN2M3Z2Yzg2dDB6THBsUkpJQ0pBQUlaRFFxelJSRkVURXdpdjRpSUJVZ2RDbEt3aElFVkVmeGVkUkVmVkJ4WUxQZzBpemdvQ0E5QkFJa0lUME51WGVlOHJlKy8zam5Idm56bVFTTXBuSlRDYTVpOC9oVG00NTliZlhYbXZ0dFg0TGFsS1RLdG50aXJ2KzU3aTdmbXFuWHZYTlAyQnQvWloyZlU3dEVkZWtMSk52K1A2TmgrODc2d1NSY2htNmJQbFJZKy84NlpvL2dOaVNybEhXSG5OTkFDYmQ4Y0QvMjY2eDhkS0NJMmgzQk5sUnc5bDE3NzA0K3VzL3REWEExMlNMRTNmaC9DdDJtcjQ3b2VmUWJqVnRZY0NhWXBFUm84YkFGcVRsYXlaTlRaaDQwMDh2T0hiL2ZiWmZHaFRRYVFmaGVtQWpsQ05ZdEdReGdLMXArSnBzR2JMWWp0OTc1TEJiMXdRK1RqYUxGcEl3MUNnaFNhZFMvS05oeUlsYjB1V3EyaFBmdW1XZjFNalZleHl3SHkwbVJEc09Wa2hjQkJraFdmN2VmSjc1M0lkT3JFVnBhckpGeUE0My85ZWx1MHlld2lxL2hQQlNoRHBDQ1VuR2NWRkZuNmRmZlBuM1c5bzExelQ4MWlyV3BvK2F0L3p4dWxFamFjZUE2MkF0T0JiY1VPTXZXOGtqWng0M2FVdTc3Sm9OdjVYS2pFdHVMNDdhYmdJbTQ2SmRCeU1sMWxyUzBpRnFMZkQrVys5c2tkZGRNMm0yUXBsKzlUM2ZtckhIN2hSMWhIRXlhQk1BRmdFNENJcHRCUll1WGY3Z2xuanROUTIvOVpreXFXMkdqem9yM2RpTVRXVm9MZmlvVklxQ1g4SjFIWFRvby8wQ3o5OTB4c2RyZ0svSm9KZDlyL3RocVduaURwUlVDaTNTaEZxaEk0WG5wWWxNaU5FRjVzMzU5eFlWZTYrWk5GdVlYUGpqeCsyS29NU2NkOTVtenJiRFA3WHNoSTgvVGIyYTEvVjdVeTcvOWk4bjdUV2R6TEJtd2dod0hEekFkVnlDTU1TMWxvWk1obWRPbWJ3YlYyK1o5MHJVNERLNDVjZzcvbkRzckIzSC9YYU5NT1NhR3lrVmlnZ2Q4ZFNmbm1EaEFVZE5YM1RFZGdzTFFpd1ovcDAvSEgvOHVCRVBxSkhOdEdwREZHcUU0NklOZUk1TDVMZlRxQ1F0ODk3aXh5Y2ZzY1hpb2diNExRSDAxOXhyWng3eklkNWZ0WnhNUGtkWThtbndNdml0N2J6eDZtc1VBNS94RXljeVpQeG8xaERTRXBaSXAvSklxWWdDVGNaMVVLV1FPbUg0elY4ZXYvN04yZjl4WlEzd05kbDg1WGYvM3Z0anl4YzhOWDduU1lSQ29MVkdhWXRqQmRZS3REVUV3bUtWeExoUWlrSnkrWHEwdGtRbG43eVR3aXNHdEM1Y3lMMG5IU0F1dDdiaEJpSFcxR3o0bW14MmNvNjErVHVGZVByWElFNyt6ZDlzZnVoUTJrbytxVlNLWERwTm9BMUNTcVNuOEgyZkZBS0x4aStWMEpGRldaQkdJM3lmT2MrL0JNQ1dDdlphbEdZTGtEdUZhQ3YvL2RPUDdOUDB4dk12MEpCT1U1L0wwMWJ5aWFTZ0pmUlowZEpDcnE0ZTF5anlJb1BVQXRkMVNhZlRXR3ZSWVVSTHR1NnJXL3I5cXBrMFc1Nm9tVGYrSU5yemdBT0pISWMySFpLcXkyR2tvSDNWR2hxMGkrZTR0RXFObTA5aGpLYTBmQ1hPaWhaKy9NbjlQU0Rja205T1RjTnZlYUtmdXV3MDhkaHZmMDlPS1VTa3NWcFRiRytqSVY5SE9wMmxFR2pjVEpaVnhTSnRPaVEvdElrMzMzMkxMUjNzTmNCdm9iS250VTNLaWplS3JlM1VaYks0UXVJSUtCYUx0UHNCZGMxRGFQV0xTTTlCT0JMZkJOUVBIVUxEOTMvMXlacEpzeFhLWjc1ODJaLys0NHRuSHByTHBqRmhTS1FEcEpSazB5bDBHQ0tzU1hSRi83NWFBYUdRSUF6S2FwU044SXhCR3NCNmhESkZxMHpSNm1YNDA4dXZvSVlQbzFWWVdzTVN5bE1ZSThCNlpPdnJXTEJxRWRuNkxOb0V1R0ZBcGkxQXJHcmw3MHRhajMvdGpLTi90U0gzS2Z1UGgyZHUrN2Uzam43bHdqT3ZxZ0YrRU10MWQvM0lYdkRsejJJdEtCSGZKRCtFckJzdnVBL1V0R2lBU01Sci9pTEo3WGFOamQrd2draENRY0tDRUg3NjVHdXNkaFFsUnhKSnlPVnlSTmJRVWlnaFhRZmhnSmVTRUFXNFdwTUtMZlc0bU5YdFBQYndvNjg4ZmR2NXU2em5WQno1KzBmMlBXNVI2eE03VEpyRXY1NzhDNSs2NHZUTXFVS1VxSVVsR1dTNVZRZDVCVDZMQWtvK3BOSVFoVkRuZ280TWppcHIzSUd3UHlYS2dxbW9xUWhrQW4vcm9BVzBBNisvMjBya09UalpMTlphWEVmaCt3R2xVcEZzZlo1SUI3aGhpQ3lHZUdpRTBlVFNlWllzWFVKRHRwSERQLzZSblp0SGpyQi8rUENuSmpKRnZOWE5xVVQ3dkx6Z2lkSDc3bzFPdWV4NTRQN2NlOTEvblFkOHZXYkREekk1N2R6OWZBbVlFUEpwaUh4TlVHeEJXQ0R5WTVCaEJtd1RCcFNKdGJ2RVlvbXdhQ0lCQWJDc0FITVd2VWU3MUxTWmlKYkFKNUlTSVJTNVRCWkhhRHpqNHhYYTJIbllVSFlkTXB6Nm9vK25JNXFITnVFMTF6T3ZaU1dUOXAzRjJlKytNbmZhN0h0KzIvVWU3ZnFWTzk3ZGJaOTlFSmswSzRvRmZDRUlnM0IwemFRWmhMS2sxVnBYUW4wV2xJVW9ESEhjeEk0d0dwUXpZR21Fd3NyWXBoR0FvekVpUkJPaGtVU2tLS0I0WnRGcS92ekdQTnJxaDlEdXBtZ1BOQmtuaFNqNlpLU2hyYmlVUmlXWU9tdzBCMDhhU1JwNGZ1NXlmdkNyQi9CR2owS09HRTNqaUZGWUxVaEZVQmZBcS85NG1qZnF4eC8yK3VrekhwMTg1Yyt1K3ZBQnUxOVRxdk1veWdockloYSsvQVlQbi9iUkVRaXh0R2JTRENJNTU5eUx2NDdSMU9jVnlrS3BXQ1NkU1FHR3NGVEV6V1JBaUlHZEdFWEhId0tGSUQ0ZmpTSUE1aTVkeWhvc0pXMG9FaUdGSkFvRGxBNlJRak0rbDJXb0MzdE9HRWtEa0FGbVRSektSMmVmSWJCenhrMjQrbmUvSHRvMGJQcXVVM1lqbjIraXZiM0FqdE9tTW1iTjZqK051dlpIakJnM0FsVlhSMXVwaFZRK2pRMGoybGF2WVRDQXZRYjRMakpwK242ekcrdFZBbWRET3VQR3BvU1F1Tm02aXJNNHNOT2lCV2t4b1kvMFhJZ1UwbkV3d0xOdkwyTlJhd2x5alZqcDRpSnhyWUFFN0c1VXBObTBjOUJPTzdOOUdqeEFsNkErRGQrNi95SDdaYkdqZUJmMmZCZDREc1NSbDMvUFRONXRkM0tqUjFGd1ljZUQ5c1ZKcFZtdEkvTFpQTHE5SFMvU0xCVFI1ZFRpOElQTldmM0hrTzIyM3daWkFiVHBWQU9oMTNwbklMUzdBV25BQkVqWHhVUUM1VGlFd0pKMmVHLzVhclRLVWd3MEJvc2pKVG9vNEptUXBwU2tFYzBlMjAxZ2ZDNUxCa2haeUxuZ1dkaGpwMGxZZmZHUTZsdnlmemQ4VWR4K3dwNzUrMy8xcS9mZlg3MENQKzJ5TWdvb0NJdXZJMUtwRkpIdjg4NVhUcnV4QnZoQkpxZWMvOUJkVTZmdXN0bmZLS3NFb2JCZ0pkSktRc0FIWG5oM0lVdmIyMm4zUS9MNU9yVFdsRXB0NUhKcGxBbElGd3Jzc2MyMlRCb3hrZ3d5anU1SHNZV21OZXcwYVh0T1BaY2ZyajNJUlBzYnQ1eTlVNmxVd2twTHBpNkRrL1h3SFVzN0lVLzkrd1ZxSzYyRFVIYlpkYmVURy9QaUExMTZNYURHakVRRHd2SGlNM0VFUldBVjhQYktsZmlwVEJ5UmNSU09FampTa3BLR1BDSGIxR2ZaYTB3OUdlSUlqN1VkMXhLR2tFbkR1RzIyLzBpM1hzTXZYNXpTM055TUVJSmlzWjBnTEdKc2hISWRwcy9Za3hsWDNtVnJnQjlrY3VMeHgyTnRsMXRqeXc3cTVuT2JEQkFoOEsyZ0pLQUV2THl3bFZWR1VIUTlaRDdQaWpVdE9GSlM3emxFcTVheVhYTWpCKzZ5TFRsaXUxMENyZ0NWc0JKNWJ2ejZvY01PNzNhYzdmTHNuLzh4WXNRSXdtSVJSd2hrRk9GWml3MERnaURnbUk4ZXh3bmYvcFdkZHQyOVY5Y0FQd2prekN0dnMwME40SWh1TkxqWXZHNldBb3cxV0FVRllEWHd5dnlGMkV5V29vR2lNU2hYSXNJQTBkYk8rRnllUGJjZHh3Z0ZqZ0hIV3R4eWlYWXl3SldLMXgybVQ5dVdzeTZhZlVNWDU2WjUyclJwV0sxeGtYaFJTS1BqOE5aekwvRHdiLzd3M3NReDQxbXpwb1dSMjIzSEFYdE0rK3B1Rjl5NnN1SHBwVHZYQUw4Wnk2bWYveHlGZHRNWjdBSVFtOWZ0RVRaZUczQnhLQUlyZ0g4dmFXTzVYeUp5WExRUUZIVklKcFBHRFgxR2VBNEg3ckFqTzZRRUtTQk5oR01pUkhraFMwY2RBMG5HbDd6M3ZoKzZyUHFZVTYvNnpxMzE5WG44OWphYU1obFNmb0JadW9JbnovaEU3cDJ2blQvaGltWEJOTWRBdHJrUk82U093ejkzWXRQdVQvM3BaZmZuVHgxWUEveG1LTE12dSt4TEk1cUgwSlNUR0YxMVEreG1lbXRNSEV2MmdUYmdoYmx6aUR5WFloZ2dsU0NYOGdqWHJLWkpTUFlZUDU0ZDZ3UTVRT2tTVWxxVTZBZzNXV0ZpbEZ0d0ZVUVJmT3lqaDNUMmJVWU1PMlg0a0NHNFFoQzF0T0l2WHNiZFI4OFFDRkVBNE5CeC8vN0puQVdmZUhmdTIwUUlsaFZiMmZXZ2ZUazViWi9ZOWVMYlg2OEJmak9UeGpHVDc2bkx4TXMzanVwcXluVFk3d01mZjA5TUVEK01OVDN3NnJ2djRVdUxrOHRnc0hoU2tQSkxOR2pOakcwbXNPZkliQXoyTU1KUkFrd1FoMlVTVTBZNFRoTHFqR2VQdEFNdU1QdHIzNjU0TXhPM0hZOHVGaEcrVDl2aXBmenA4T2tUdTU3V29yT09lT0M1MTkvKzdvSTViMkkxK0ZhalJqUXk4K2hESmgxMXgvMjJCdmpOU0NhTUc0dW5ZZ0FwQmtHdWhldUNqVE42L1BaMi9HSTc3WVUxbEVvdGlHSTcyVktCR2VQR3NjdklETGs0QXlGZUhNWjBBdnRhSTFqRTVwSXc4T0VqTzV6WGE0L1pTL3p6YjM4bWkrUmZMNzcwZis4T2JlZ3VtWXk1MTN6aFM3OC81V2pSdG1BUlVjbkhwbHphUFJpNyt5NWM5TVFyRm12cmFvQWZZRG5qL05uZi9QQlJCK1BKK0VhRVFkQnBaY2wyOXUwR0xFdXlzMThSLytrRWxpSEtZMmcyUzRPbmFQSWtRMU9DSGVyenpCemZ3QmdKbmdhcDR2VjBFK3A0U050azFoTFYxMmNxRnlrMWpCbzJsUCtZZmNrM3l1YjlINi84a3JqaDBKM0VpMS8vOGxFZmRJcS9uTGovNU9XdnZZVUpBcnlHUEF6SnMxaVgrT0l2Lzk0eTY4STdINjBCZmlETm1lSGp6bk1WNk5BaWpNWHpuRTVnM3l3bENzRlk2ajNCN2p0c3o4ekprNWpZM0V5RGlaQXJsN0hQeEcwWnBTQk5ISlVwUDJaclpCWGc0L2NNOFFweTlVVXJDOXVNYnNTUjlSZlNzY2k4NGJLbjk4WnZQMzNJdHUrOThob2kxS3hlc3dZM24yUFl0dU9aZGVEK2h4eDl6UTh0QTBqVHZsVm5TeTR0V051VWlaM0FvTkNPbDBrbGtSa1pKMGRXYVlTT2RBTTU0RjZyTVdDa3BCMW9xU3BFVFFHTlNjcUFDZzNDRVNCdG5BTmtKZFVYcFdVWnlTWTI1eXhnNG12elEzanNtZWM1K29BOWVvV1B3Lzd6QVR2andBT1p2M0FSVGVrNlBBMTUxK1h2anozS0l3ZCthRmYyR2ZWeVRjUFRmMlY4ZFJrb0ZTTktoU0plS2lsbnNtWTlTejZiUTVER29wUDFnalF3QkdnQzZpM2tiZnllMEFIQ05TQTBZUmdpa3Nlc0E5dHBCalBWSnB0TnJsRkR5b05EOXQrOTErZjZYUDNRdytiKzQxOE1jWE1VdzRoMlI3RFNoRXc3K0VCT2VQMkZsOGJjK2JNdjFnRGZUM0xjeDQ0L0ZDQ1hjZkFjR1R0MFp2TmVJYmNKaTdzVkVHQ1JRTlpBa3c5RE5UU1lPUHlvSEFNaUJLRnhFbVBkQWxhS1RzTzNVektjU094NFAvRmpOUHp3MTMvcTFRMVo5Y21ESG4xcDVJZW02T1V0dUs1SDZDcldTTU1LRXpCK2wwa2NObXIwZDZkZGNjZEROWk5tRTB2N25BZkdMaHJ5MGZsam1oMzhsZ0lOZFduUUlVZ0J3Z0VoTzlud29wT0dsd01LK0lnSWdVUWo4UUFSVlZ2WlVaejZLQ0swc1VnVVFyaGc0aHdjbVlRZkVYRWRpYTZzM2hvY2E1SkxsT2hBWTlNdXJScUd1S0xYR0tuLzJmdDducEJkOUl3ZFVvL05wREFZbkZKQW8rdFFXTHFDdno3MXR6KytmUDE1UjlRMC9DYVNxKzZiTjM5TXM0TUVjcmtza1FaVUt0YVpTUWhQckJXNUcvaWNtcmhEaDRNcWc3MmNhK0FtbStlQWlOOVFNbzJRYm56T01rNGZFRlVxTGduZTRKUTlTSkVZOHRLZ01vcElhN0lPbkg3UnRiMmU5bHBPR3Yzc3k4KytjRk5qZXhGYjhMRW9WQ2JMaWxLSU4zb1VIL3JJUno0MDRabzdmNGUxRFRYQTk3V1cvUDNKWS9mZWMxcjgzRzJjSDZhY2NwaE9kckhaRFp0alRXYW5nVmlkMzFaWkxITTYzcXorc3VpOEg5VXRBQXlSRGtnbHEzQUhIM2hBbjV6M1A2ODk3WksvUHZMb2k4MWVCdUhIdm9KMFhWcDB5S0syRm80NTVOQVBUNy84anRYVXV2ajFyVFNNT2Zqb2d6NzZ5Uk9hNnJNSWtWZ3haUkFKMFdIVjJnUkJXNnJSSjZwRHJ4WlJydWNTRUdtTlVpNkJnY2JtWVl5cWx5Lys2ZkUvOXpwTjRQMi9QL3lkekE0enJoNDNiaXloRG5GU0xvRU9TSGt1UTV1SDBsamZnQjI1NHptTC92SEhtMnNhdm8va1BYZmsvV1BHRE8ya0hLMkZNTlJzM2RJQkJjLzFzRmhjQ1UzMU9kNXFTZis2cjQ3eTJNVW5EVnY4Nmh2VUtZVzBKazVweU9hWk4zOEJ1ZUhEbVhIWUlVT216NzdOWXExWEEzd2Z5QmRPL1R5T2lLT1BwWkpPaW5wQWxaUERyZXljT05aNXFYWExwNTB6c1Jsbm9oQ1JaREljYzh4UmZYaFFzZnlOMWZyVC9xcVZ1TWJnQ2tsYld4dnAra2JXR0VQWVdNZmVIL2t3ZTF4NnAxOERmQy9sN0s5Y2N1M0U3VWRpYkJ5eGtFb2tLZC94djJ2YW5hVG9CUnpIaVoxa0Fmdk8ycU5Qai9idmk0Lys2VDhlZmF6ZEZJdWtWTXlaazg3bjhhMmg2RHFFbVF6VDl0K1A2ZWZkVXFvQnZoZHl3T0hIWFdsTXpDQW1nYlFiWDM0VTZXN3pWYm9KZ204QmF2MERISEVwS1pkK2xWa2FzaDZjZC9XdGZYcjF6OTk2WVg3T2MvOGlhaTJRVDJWb2FXbER1QjV1SnN2U05hdkpEeC9CQWNjY25acDEzamRmcndGK0kyV0hpZHVnUkF4MGErUG5ha3lIT1dQTVZuSWp1Z1Y5VmRqVldLd3hTRXVsUnVEU2l5N284OU40YWN5d0k5dVdMc01XZmFTMlNDdnhDejRORGMwVW9oQlpuMmV2UXc2YXROZFh2dlZZRGZBOWxDdHV2c2VPSHpPaVFvNHFrd2lOa3ZGV1ZtNGZxT25aNHZsS1FFcUVsR0FOcnVwdzdqLzVwWXZiK3ZKUWkwODY4dUZYbnZuWGF0cUw1RndYRVdvYTNEUzY2R01RRkl6QkhkN003Z2ZzZGZEWTcvMzJoQnJnZXlDalJnd25sOTdhQ3dBTTY4OExrdkhDVlRMVjJjUzBFVUJkRnZiZmI5OWNYNS9SaTdkY01PYTkxOStnWHJtNFFVU3dxaFhQQ0RLWkRLRVNMQXZhYVJ3L2hqMEYvelArdng0NXVnYjREVkZhcjV3NDR1Z2pENjhxMzF2YkpyZmR2OTBaTEI5ay8yNHA5OHZFLzdNbVFpVDVkQUxZYjUrOXVPaUdHMC91Vy9OS0ZGNHQ2alBibHkwbks2RFJjMGtMZ1E0RHRBRGZnZFUyWU9LdVU5bDUxWXFIZXJzYXUxVUEvdE4zakgxMzFQQTZna0FueSt1bWR3a3RXNGlXdDkzcWUxbUZSWUVVWUkzR0FHUEhqT1RkaFcxWDkvVVp2WDN4Q2ZjOCs4UVRaS3pCUStCZ2lLS1EwRVJrOG5Vc2IyMmxZRFM3N3IwM015Ky9lM1VOOEI4ZzUxOXdia29ieUhncWZyeldiRlVhdTBjRHVZcWNSeVZKeENsSG9ZQ2NCN3Z1dk5NT20rTHdUMy90ckZGckZpM0NMN1lTRVpET3BZaU1SZ2hCUGxkUEtDV2hrdXkyM3l4MnV2enUzOVVBdnc2NTZvclpwMHlaTkI2MHhWaXp0b2EyV3ltdzEyMWl4TVhkZ0RFZHM0SEFJb0JQZmZMRVRSUTVFb3VmZi9wcE1uVnBBaE1Tb1ZGS1VHaHJKK1c2dUY2S2xwSlBkc2dRRHB5MTk0ZjU2OEpkYW9EdlJrYnZjc0IvUlJvOFYxVFZNZlZ4N0hvd2lkakFCUVd0a1U3YzdjUWFBOFpnZ09ITkhoZGRmYzNuTjRtV3YrV0NzU3RYTDRPVW9yWFVobklkWENzSTJvdEVVWVQwUEFwUnhNang0OW52a2QrL3RER0Y0WExManJEZGtaK3grMjQ0RXFMSUlvUmFPOVM0b2FGSHNhVlVFSFRFVzBVM0lMRGwxQUpqa2xUak9GcWpwQ0pKTnVaenA1MTc3eWJTOGd1ZitldGZ5VG9PUkJwaG9hNnVEaUVrZmhnaEhaZEFTaGF0V2MzTVF3OWlweXUvOC8wYTRLdmtpeGNzYjkxbXpBZzhBYTRqRXIzbVZPcFdPemxvZEpONnV4WS96V0MvWFhLdGE2bGNiM0xSUXNXZlNhK2p2bGNwdDVKT25BYkdEYTNqdmh1K2VQQ21PTVBuci91S1VDdmJhWEl5K0szdHRQcyt4blV4R2hDS1NBcFVYWjZpNjdMWDdydWVXQU44RlV3blRkeVcrcHhDQURyVVZmNlkzSXJMMXpkZzRLNWprQXVnWmRVcThtbEp5OWpESDl0VVovaTNQejZHRXhucU1sa2N4NkhrKzJTeldVcWxFaWlIb29rb1drdjl5QkhzOTlYdjJScmdFeVAxdU9NK1VsNHB4M1VWc3RiUnF0ZlMxTlNFSDJqR2pSdUx0ZDlvM0JUSGVHWC9mZmRidFhRWmRaazBRYWxJT3BYQ0NCQ09RbG9RMXFLdHdVckJqUDMyWWJjYmZuVHhWbS9TZk9PcS96aHAxS2htdE9sZ0JXNXBhYXNodHBkaWpFRXB4YXhaTXpucHpHWHpOc1V4Q3NmdTlmejc3N3hIc2FVdHliRXhSRkdBNnlZNVQ5cmlPQTZCMFlpVXk0U3NkOVBXRHZpbVEwKys4bjVIeEVFWjM0L05tZnI2ZkEyeHZRNEVXQndGdVRTTUhENjhjUk01cjRWRmk1YThiQW8rZGFrVXBXSVJLU1ZCRkNJUmNXS2I2NUNxcTZPRXBYbjhXS1orNDJkZjJtb0IvK2Z2bkRsaDBvN2ppRUp3SktSU2lqQ01DSUtvaHRoZWlsSXFYck1EVGovdDFFMTJuRmUrZnU1aFRaa01waFNRVDZXeDFtS01RWnNRMTNVSm9wQjJ2NFRJcHNnME56RmVtWHUyV3NDL2xEbjBlVWRBeW8ycm1RVGdlUTZPVTJ0YTJGc0pnaUF1bmdFbWpHdkN2anQ3eENiUzhrdGVlL0VsQ0NJeXJvZXhFVktDUW1DTXdWcExhNmxBU1JoVVhaWWRwazBGYTV1M1NzRHZQV002RW1odkxWWWNWV08yOXFxbXZoSFBpMHROL1NDbTZQdlQ0bE1XYjZwai9lYk00NXFHNUhLc1diR2NsT05nclNXZFRsTnNhOGRMcDhuWE5kRHVCN1NISVRhYjRvQnJ2Nzk4cXdQOFo3NzRsY1hiakJ1REFPcnJNa1JSbkU0Z1pmVlNlVTAyVnFJb05ndlRuaVFNWWZxMG5UYmR3WVJZdldiWkN2THBERkpLd2lqdUtaWEw1UWpEa0NpS2NGSWVrWVNpMWN3NGFEL1VpOHQzMnFvQXYvUE9rMGRrVWc0ZEhMbTI0bXpKbW9ydnRUaU9nMThLOElzaEdSZHlLYmoxdS9mWlRZV2xwLzc4WjB3UUVBWWw4dmw4VllhRTdYakNVaEZKU1NnRk85MS8vejFiRmVBUE92Q0EySFpQa3A1a2toVloxa3cxNmIyazB4N1pqSXVKb0xXbHdJU3hvellaMjJ4cnJ1R0dySExSWVVRWWhoWGxKYXhBMkRnMXlBSkdDVUlGNDBZTlB4QnJVMXNGNEMrKzZJS0xkdDVwUjZvck9pcFZPN1lHMUw0UTN3ODd3Q01zamZWWlpremZqZFBPUFAveFRUS2pwUEx2dGExWmpZUEZSQ0U2R1ZmU2dxcUFYbUtSR0trWU5XRTgyZC85YzgrdEF2Q3pQdlNKbXpOZSthTGluSGRyZFdVcXRyYUcrdDVLS3VWV3JXWEhqdXVZRVUxWW96ZEpUUDdsMlIvLzRmdnZ6Y2VWaW13Mkd6OVprWFEwTkRIb3l5RFdBbEtOZFl4NzlsOW5idkdBLzhudGwrOTc1R0V6RWNsS1hMbVlRWXFFZFVtSUd1RDdTRXFsRWdpRFVvSW9DSkhBWjA0NWRiZE41TGlHUWFHQWtwSW9DS3JxdEtwQWI1SXljNm1RWG9yaEtlL2tMUjd3LzF6Wi9OZnkzMG9BVmlkMHU3WFlPNXRndFJWQSt3R09xNGhDemI0enAyMHlQTFd1YVVFSEliN3ZKN2xSdHRLelZpVjJ2RXk2enlJRTIrMjR3NWJ2dEI1MStLRWR1WDFDSkM2VTZDQmFFaVloUysyTHBnUTlMWlF5YTIvbGpoczllbDNQUHZ0cDhqSVdNcGxNQW53TkdCd1pteFcvZlBodm00U2djMFUyZjAzZ0Y4bm5zN0hOWHRVSkpRWnhuT1FzclNRU2xxYlJJN2Nzd0MrenRoTmR4SmxubjNmdjFKMjI3NkJDRm9EakpzME5IQnpYamZIUVM4L1Zkb0daN1dZVVdBMmhIeVZmam45UktMWmhNWVNSM3ozNHF6Y2RWb0ZZci9XNVRiWklCL0Y3UmxkcWRIVVlkWnpIV29PeTkvVGZscGlKenlUQkFDZVZBbUVSeW1Bak9QU2dmYkQyamo1UFdIcmppbE91YnNqbUNBb2xIQ3dLMEVsVUpwQVNMUVJTeDBvdU5CTHRPRXlhZmR1aUxRYnd3NFJvci81My9kRFJuMi9NWnlvNUhtdlRidlR0WmE1djJBZ0picmtib0JTMHRMU1F5ZVFUeHpuVndkOHV1bjgxU1ovSlNCdGkvQXFzVlVrM25yanpYbUNpQ3JXM2pvTEtHYW5FZkxPaWlvM0Ewc25KN0l1WndGUlhmeVUzV1lpNHkvY0YxK3BXNHRaVGZTcGhzWVJUNldCaTBCSWkyWEd0MWNQYUtvZUpPKzdRclpvZjlBYnVpZUFkLzdHUGswckpmaHU5b3F1bUVKMUhRUlJxSXFQeFVoNTE5WTNKYkNBSnRVWko5UUhVampHb1NjaE15elpDcUVYOHdKRklLU3V6bVN4elFmWmpyci9vOXJ3RlNzQXVVNllBck96clk3YTF0Sktwajd1MXJHK2VzbExnUnlFVEprellNbTM0RDE5Lzl2NVRkOTJlL2xoWEV1dThZUW5saHpCZ0xZNm5TS1U5Yk5KSFNRUHpGeTFGS2tWTDBiSzZ4RHEzWlcyYXBhMFJpOWNFTEc4M3JDckI0alVCS3dzaHhZaks0Q25QV2tLNThabDlVTnJFcHFqSnRiYWpQamFoTGR4dHQ2bGNmdlZYUDkzbmR2enk1VGdic0ZLdWxLb3NVS0h0dUMxT3c5ZnY5YWsveGVhdVFUaXlYN3EzeVU3NzYySWJTMGtZUmtqWEpVdzZZYit6Y0JuMzNIenRYYm1zbXJ1eWxOM09vTlo1T241a3h3bEI2RWl4SW5FU013Q0Z3T3lUeTZkM3ZPYUtpeGpTa01HUHdwaHFPbDVkd3hvYlcwVURJVUpXbE1Ia2lhTjRhM0hwbThCOWZYbUlKZTh2WXZ6VUtRamtlbDB4S1NXTzV4RVVDa3krL251WHZRNW5iREdBdC9ZLzB5Vm1nWVZVS21ZRUZxSy9XYnc2dWE5RU9zQngwd1JKMGI4QmJyanhGbjcwN2J2UDZmMzEvcXpwaWVmbXJadzFmUW9XQnl0SUFLK1RkalVHckt4WVdIS3RrUzc3WkxBYmlCa2drbmhKMTM0S0o1NTQ0ckNmZmVlbVByM1RhL3p3U1JOR0IrS3N2ekZJR0lia1BSZnRPRFJIMFpmb0F2aEJiZEtjUG50cE1kSlU5S1cxcGw5b1hUcFR1M1NPM1RqS2lSMUxIVnZmSzlaWWZ2VHRtMFhmck1HY3RPcFBUendaZzFtSnhLRVZXS2tRU2d4NE13VUI2QWlPT0hnUHJQM1BkRjhlcGJXeDRXR3NSZG9QTGtIVVdwTktwU29yczFzTTREOTg5SkVrbVFORW9SN2diRWlUNUltWGtqNUppcUtHLzc3di9qNDlpci95M1hNaW9OeVNTbXNkVTFzTGtTeTJtVTNxdzFpYjlNWHFOUE9JbUcrZm1JN1BXcmoxQjQzRnZqeDJvYTdoSGJVQk5wdm5lWEVwb0pRRVFiRGxBUDdhcTJaL2V0dHhvMGw1RU9tWWxhQzdrRnQvMDd3cjVYUTYrSHR2dm5wblgrNy9saHR2dXF0UWdpQUp1VWU2ZjlNbHFrMUdteXoxQ1NGaXA3VnM1SVJ3MGdrZjY5UGpyaG81OWoyeEFaM1M0dzZFaWlBSU9xVVREM3JBTDlOTlB4ay9iaVFTOEZSY2VoWjJNNktyNGxYOXd2ZmlLSSsyWWhFTFBQUGM2M3g4OTlILzJkZEh1dWpDMlg5THBhRVlnSnR5TVFaYVc5dXFocllaRUtyS3BLY3pXUTljYVRuNVN4ZjEyV2kwalUzdFBackJwVWhJcGJZUXdCOXkwSUY0RHBTS1VWeXo2cmk0bnJmcEg3RG83bzJPenNBV1NTNlR3US9oMy85K21TTk9PZXZsdmo2SEg5MTk4MzZoQmM4RFA0aE51YnI2K240QnU4Q1VzMWE2QmIwMWNmK3NJWFVPKzgzY3V3LzFpYllvdWNIUFJnalIwWmx4U3dEOC92dk9SQXJ3a283UlNJdTFVYi93dTl0TzNhMlQ1VDZyd0Ryb1pHSEVHSGoyMldlWGJhcnJ2KzMyZTdHQWNoSlNhNjBwdGJkWHNmMzJqNWJ2bXJDZ3lxbTd3TFJkcG1EdFFYMmpoUll2R0xxdUVrM1Q3Zk1Sc0tWbytBdSsrbldiejhRbjd6cWlzcnpkbnpXcnRtcytRVUxmcDFUc1U4eC9ieWsvKzg1Tnd6ZlY4ZWZNZVpPaUh6L1RLREpJQ2VsOHRzdVpWU1hUZHUwLzI0ZXRGYXB2aWtpQzVLVkN5QjdUZHVJL3pwcisyNzQ0MWpaejV4MmhOeUFLWjBUbm1Qd1dBZmh6emprSEN4U0tJY1pZdEE0NmNrbnNwZ1Y1aDBickFxYXFCQjVId1hlLys1K2I5QjdjZjgvT1ExNTViUzZCQnNlSm96VHRiVzJibVBUZXJGOEJDQU1taWd0REpMZ09ISFRZRVVmMEJjNmFWcSsreUZqYkNkRGRPOVdpMjc4SExlQy9kTjdzYjQwWWtzRm95R1pjbEVwc05XdlIvVkszMm1VU3J3WTdvRFdzWG0zNDlxMVhpRTBiTGZuc3F2ZmVXNENqb0ZpTTg4UnozVVFsUkgvM1Y1QVNHL3A0U1dYVUVVY2NqcDN6aTJHOVBjNjRiU2J3UVRaOGRiNyt1b3A5QmgzZzk5em5nTE9NalNNellSaDFjSmxMRVd2NEQzckNvdS9ZZHp2MWkwb3NLeFE4OHRpVC9YSXYvdkw0LzkwZFdmQXlLYlNWNk9vR3l4VTczdlJoZkZiU1hZcEZwMVFMSVJCVnptSStDeGZjdjZqWDNEVk53NFlocEZQSmZsVUdIRk11L29qTCszVFNqOVNVTDdlYk1PYWdBdnppaDYvZGJ2clVLWVNGQWdwSXVYR2lrRlF4VmIrdWlrbXZtK2U5OXhMNllSS0NDOEVFSUVKYTIxb3hBaUlCRHovNjJDTTkzZWVkUC9xdFBlT0NLNzdXazk5ODUvYWJ2dHdXUWdCWUlWRk91cU1ObjlWSmNwZXBhR0xkaHl1cklvbllxT3FCWlEwMk1xRGl0SWR5YXRublB2UEpYaDgxVlZlSGNOTkVVbUtFd0RIZzZoajBFS2NLQndwOEhlRjVIbEk0bElxRGZPSHBnbCszUGI3ZCtERTA1TEtKWmhGSUtTdlRWMytzdE1xa2tEa0t3MFRaVzhKU2dYdytpd1plbWJPVW5jYU4rVVpQOS91NWs0K2xybW5FSlQzOTNZMWZ1d3NMaEFiQ3lGVEY1anBYUXBrK3RlNWw1eng3VzI0VUI4SjFBRWtwTkpRTnpLR045WnoyNWZNZjZrVVNVZDRxaDFJVW9oTzd2RnplVjA0MXNBSzBqTzEyclhWTXkySUh1WVkvNElEOXgyY3pMbDNUUWN0Y2c2SWZNOGNjTjJrQUUxbGMxMFVJUlZ1NzV1bW4vOGxsbDU2eG9SbytCM0RxZVZkYVY4R3V1KzdLdy85OWQ0K2FkZDF4OVRsaTZZb0FKUlBudFI5c2R0czEzYmg2eVQ4QldkcVZsY3pFdXJvTU8wK2J2dEZOaGNmZi9zdVQzSlRUS1FwbjF0SFlRVXFKMWhxclRiZDIvS0FDL0RISEhGWEppS3NtVnFyVzh2MVIrS0IxbFJKMUZLaTRoRkM1aWovLzlTODk4WnpiQWM0NjZ5d1dMQ3B5MkJFSGNzUXBaNzNXMC9ONjdJa25PdHExaWY1c3oxTWQ2cFFWc3RVeU1NdTVOMmtYWnM2WWdiVUhaVGZLZmw4NC94SXZuVUs2Y1pDL2VuSXhTZm15RVdWdEh6dXNqcFNZU0E5ZXdKOXkzdFcycVQ1dVgrTzZiaWNtNERpWFEvUkxIRjZITWNZeEFqL3dBVVVRR1ZxTEFYNmcrZm4zYm5aN05scy9reGs5ZGdRM2YrMmFuLy85Ny8vaUU2ZGYzdU5RMDVOUC9vWDJFbFJjR0xIMjQ1VjlIS2RhbDZiM1VxbUtvamUydzZIZGZwdHhuSFBCYmpkc3pQSHE4dW50ZFVMQlpENGdaQ3FzeFZVQ3oxRVUyMXNITCtEUFBlc3NuSzdMS3FhRFFrOEkwUzgydk9OMmtJcW0wdG00QVpqamtjNTQzUG10ZTNxOHZ4dS84MDdCOStFSGQ5MTAwbHR2djhNbGwvVFlqT2ZnN2NRQkxlMkZTalZVbkJzdjEvTGNaUzhETmV0dSt0a2xlaU1zVXNSUkVpbmlUNGMwWk5oaDZzenpOdWE0alVPYkNYV0UxcnJUYXFvUlhWTTl5dlFkQW1FdHJYN3c3S0FFL0RsZm1YM05wSWxENHlvMjNSRm5OY2IwcTkxZWZ1b21zamhlYk1PWElvMUI0QnU0NGRLemUzd3lkWFYxWEhiNVZRRE1lKzM1cjQ4YTFmT2kvMVBQdis0di8velg4M0dsWDdtdXg0cXFQSjlOdHdEWDFaQTBWYUJVU3FCSVdvWUN4eDkzWEkrUE5mcmh4L1liTW1KWWhiTmhYYWtlc29xZlJocEw1UHVzMlczSzVZTVM4Qk4zM2VzcURMZ3lYcm92Zzl4eG5FcUNVSGtBMEM4cHNqYkpmWTl3SEplQ2IvamJVOC8zZUQ5Zm5IM1R4VWNlY3dUYkRFbDlGdUNlMjY2L3RLME5icnIzZHoxMlNINzd1NGZRblV3TjJYbkpmNU12UHNYSGswcFZOTEdPb2lRZXJySGEwdHlZNHBOblgvS3ZudXc3Ly95Ykg2NGYwb1J5eTg5YVZEUzc3YUxoWTk0SEd3Tys2UFBXeVIvNjQ2QURmUGpvSlJQR2pSMkowNlhxb0t0bTd5K1R4aHFEa0RFSnQvSWNmQXRlU3ZLVG4vMVBqL2UxcWowNDVOOHZ6ZUhHNjY3NFNmbTllKy85SWZ2c3MwK1A5M1hmWFY4VEZnaHNySGw5UCt3RStpZ3lmUVo2OFFFeCtwZ3V4RlNpUmluUHdWRUNBWngxMXRtNzkrUllxUlV0NTNqNVBLM3R4U3EvVFhaZllHOUFhSU1OQTV4MW5PVm1EL2hUSHdqL2VOU2grMkNqSkJPUGdXMkdLU1FKL2JhaEVFUUlBYS9NWGNEZXU2UU82dW51cnJ2K2lpTmUrUGRMbmQ3NytzV25pdUhOUXpqNTdLLyt2cWY3dStuVzd5R1RCWitLODJoaU5vVyswQVc5TlpBa01MU3hnZE8vZXYwRzIvS1RkcG1TMFVLUXo5Y1RobnE5cWRvU1NFbUhvUTFOdlAzR200TVQ4Q05IanQ2eFVEQjREdGhJRC93SkdWdVphVktlZzIvZ2haZGU1WnpUcjM2eTU5MDA0UFhYWG4ycTYvdno1ODluOUtneHgvUjBmOWRmZUxwbzh5RXdIWTlYYXgzbnFBdlpaemxsc2xNRlFGY2x0SGEzNytvQk0zNUVqc2Jjc0c5dTBJSCsvdGM5eDA2Y2lLOE5RanFZeUNDdDdMYXV0VnhydkdiMWF2ejJBcTgwTlI0M0tBRS8rNklMcU12SzVJSjB2M0VvZHEvaVltMXB3ckF5WFljR0huM2lMejNlMVUwLy9JTXRGRUlldVB1cVdWMC91L2ZlZTlsMzMzMDM2aFQvOXZlbk9xVVJTQ25qbXRjK05tYzJOalZIV3RoLzc1a2I5TjJaajc3OGpIQWNRZ3Vsa2svYVRhOEY4dktyVExhaERVMlUyZ3E4OVlXamZqUG9BSC9iOVpjY204c2tOOWJxbUhkR21BSHZhaThTTzFrRHlvR2YzM2w5ajUvOUlZY2N3b3N2ZFY4TVZlZmFtM2FiTmdYNzBpOUc5M1MvanozNVp4d0pRYUE3K3pwVzkxazJqZGhJeWo0SmVBSU9tRFdWSzc1NnlTa2ZsRTZ3Kzk1N1U5QTZUaHF6QWtkNUZVM2VsWnRHSklNcGwwcnoxaHR6QmlXWnFyUFhjV2Y5VmdCQktZb3ZhVE5wV3lNOFJkbTZ1djhYLzl2ajMvKy9zNis4cjdFeHhRN2pHN3JsZy92dU42KzU1TG5uWHVDTSt4Y3M3TEdaMUxMc3J0WkM3R3pFMFpvNGRicEMybVA3S0NkZTlKeTFXQUJDUThhRk1EMzJ2OWFIdjNGZi85NjEyY1o2dEpCWUVZTTlDblJzMG5UUjhySnE5bGk5Y2hWdkxsNzY2MEVIK08vZmZ1dmUyMDBZRzQ5Y2tVelNTbTBHWjlieGhEVnd3bTR2YmRQVFBZemJkdnVUVjYwcWNkQ3UyNyszcnUrODhjWWJYSG5GK1QwK3UyOS84NVp6WDNubEZWeFhWRFM4dGJadmUzWldrc1ZNQi9DN0piRmRtOFZZaWppYThwbVRQcm51aWhKcnZZbHUrdnhpR0lKUWxieVo2b1duN2t3bGdGSjdnWlhEaHY5aDBBSGVINzdUWHh2eXNWYm9hTE5pKzI1eDNHNDhUNFhXQnFWZzd0eUZqSm8wKzkyZTdtTENoQW5jOWMyYmZyUys3M2h0YzQ3U0ZxeGQwRk1tWHZ2OFM2OWdnRER4cjJNYjNzUXNTWDFoRWdvMkxsK25hZ1JNM0dZb1oxNTh5WFhBV3FrWU85LytreTlPbkRJRnJSUWhCdWtvdERWeGtwNEZZV1NYU0kxQldJdGpEQXZmbWNmU2N6LyswMEVGZUdzdnJCODdyQ0VldFZHWmJ5VE9zKzc5S1p0MWJCdWlvU1JXU0ZhMXRXT0FPKy80Vm8rUGZ2blZYLzMwOU9tN3MrUG96Qy9XOTcyTExyN3EvMXFMbG5zZmVtOUZUNDl4M3FsTmRVVWRMNzNyY21qUzlKVU5MOWV4ZFhabXUyN1ZYNUJKMXNPSGpqbitDaURzZW9UaHE5dnZzcTZEVmdJM2w4SFhFWkdOVXd1a0VRZ05VamhZSlFsdGhNYmdTb09yQTViTmU5c2lSR0ZRQWY3U0M0TXo5NXErTzI1U0ZCMkdJVUk2ZlhlNmR1TWFCRmlndmVSVDM5akVhM1BtMCtpWTYzdDY2RG1ML1h2KzhmUlRYRGw3OWdmbWgxLysxYXNaUG5MMFJreENSN1Q5N24vL1hvRjNwSFdDUzlsM1daSmlJNk5jTm9nalhSYW1UTnFSUjM1MmM2ZDA2QkhXTmsrWXVBUE5JMFpTS0FXc1hyMGF4M1BKNXVObXhCS0I0emdVL1JLaGpoc1RaMUl1eGRZVzhpbVB0bDBtZjJ5dzlXbVZ4ZlNvcjlYWFp3Z2ppeEFkSENOOWxnSXNaRWNhcmUyWmhsS3Vod1hlbTcrQTIyKy8rY29lYS9pcnJxdGJ0R3pENk5NZnZQdGFzY3V1RS9oL2w5M1I0d3QvNlc4UG4yVXN0SmNNcnB1S1V5bjFackNPSVNXbFloRlhRRjArengvbVpEdXR2TzE4eFhlWE40MGNoYkVDMTAzaE9SNWhVQ0lJU3JncGh3aUxVQXFkWlBRNFVxRERnSXpqTWZlMU41aHo2ckcvR1d5QU4yZWNlVHFPU2lnNGtweVpLSXI2cUxtd3JDcSs3cm1tVWtyaGEzajZtZWNBNm52eTJ4OSs3NkZwamhLOC92S0x3WWIrNWcrL2ZaS3hJMGYyK0NxLzhmVnJ2LzNhR3d2SnBKTm9UWkszdnpsSU9wTkNXbWpLU2ZhYzNwRnBNUGwvL3JYUDFKbDdZVE5wVnF4cHdYRmM2dXJxc05vUUJDV0VJNGlJTU5LUXluaXhFZ3dpZ2tLUm5KdmlrZmJWcDM5ZzZHOXpRL3ZGbDN6bHZIR2ptL0JMQnMrVm9DTmNSMklGT0k3YlJ4YU4zQ2hhN1hMczNWRncvWC84Y2VnTmw5TFNrOTh2RnZhRkNjTVZGNTc1QmUvc0wzemVLdWtTR1lFeDRLVlRGQXB0R0tPUkNyTFpOSzdyNGprcDlOUkpYR2NQeWdqeFJJOElTaDk5L0VtbVRUNlpVbWh3ck1hVklrbm1IOGlZYmxMcGFtSnpkZmVwMDdqOXdRZW5uWGZjY1MvbW5ucmlieHg3TEdTejZHSWJrZStUa1pKc0tvMDFocEpmUUNnUEg0TndGRUliUXI5RTN2T1k5L29jVnB4MTh2Y0dIZUNQT1A2MGJ5ckFTeWR0WGFSQ0NFRVVhU3dXMGN0c0d0dmx0YWQ3RThEdi91OHZmUEtvMy9YWW1XeHJhK1hiMy80SkdVL2d1UmtpYlJFNHRCVUxaREk1Zkw5SUxwK202QmNxMVRwQ0NEd3Z6ZlJKVC9TWWpmZlYxMTZudFFDTldZa0paTkxDYytBbjljRDM4VndIRThHRXNUa2UrOXJ6ZjU3eDQxOTllaWZWU0l1SlNBbVFYZ29aUlVSaGlCQUN4MUZJUjRLU2hEcEFHb3VqRFk0eHBKVEhNNHVXM05pN3hMY0JrTXN1dit5MEM2Kzg0ZnNtRE1pbUhLUUpTWldUb0FDdExZNFNmWkxMM2RXbUUrc2tHNUtkNHU0RjRMNWJyenIwakF1dmU0eEJJTSsvc2RCdU4zWVVkVm1CU1poMUI1WlNQQjdJcG1TUm5rZUxoaWRlZnBkdlBmaGJwbjdvQ0ZZS2hVNmwwTnFTY2oyVWppZ1VXa21sWFZUS0k3QUMzL2RKU1lrVGFUTEc4djZjTi9uVnFjZUluaE9ORExENDZlSGZOOXJTa1BmSXVMSUM5akxQdCtwanNHL003OStjdTRRekxyenVyd3dTZWY3RmwzRFRNWkdHdFdLeldMYXpXS1FiVTA2NkRzemNmUUo3ejVxQmJ3SlUyc002RW0yb0xEU2xYQy8yNDBJZmk4RllUVXBKMGtLUXNqRG5qYmt2YkJ5enpnRExyanROcGk2YkdDMVZvVU92ajFtQjdRY3NtK3NvU3NBaEs5LzNnd2dEZk84SC93VXhGY3lna0ZOUFBGS1VFeVdOM1J3ZWQ3eHdodzdqZE9za1lucm9JVE5CUjBSUmdCQWlVWGFTd0krUVV1R3FlS1ZWWWtrNWltSnJLeWtwOE5lMDhQSk41KzQrNkFCLzIvV1hISHY0b1FkWGRkUHU0RHJaOUJUUW5ZK2hIQWNoQkN0V3JzWUN4VURqZUE3TFY1VW90clUveUNDVFJ4OTdEa01jcEJuSVpGTmJUWEthckQ0cEdUTU41eDFveW1kdzBZaWtmdFZnRVk3Q1lBbkRFRmNLYkJpQTc5TmNsMGVVQXU1V2VwK041MDRiUUhsdFZmcTNycU02NHQ3V2JQTDJrOTBWTlJ1dGljSVFZd3hEaGpRU0d0QW1wb1o0K3AvUDhLTnZYWGQ4YnlKeUEzRnY3L3ZaejIyb1llRExDZUs3TG9VVEo5VWtoRW9PVUM5aGRIMGRHV053bzVnNXpRTFNVUmdCWWFoeGxFTHFpUHAwQ2xVSytkc2pmOElldGZjL0JpWGd6enJqU3pUa1ZYSkNWVVFRMW13QWQyMGY5Rmt0M3hDbGtNckZKdXhaeGtJcTdlQkhzR2pKaXQ2ZVJta2c3dTNwdXpwN0xGall1bm5rM2xWNnpOcGtGdGU0UUIwd3ZyRUJMeXpoV1UzYVVYSEhiUkhuQWhsalVFYVNjejJFNzdQa3ZmZDRaNWNkanV3ZE8rWUF5VmRtWDNiKzJORWpDSU5OcjkzcFdxblRoVEpPUjFGU0h3dEtTYVNDVWhpVHBKNTF5c2Q2NC9VTjJLclBRZWQ4N1lYSG4vd3oycklaNUVsMTdvOGpwTVlocG1BYlU1Y2pHMnFjSU1EQllJd2gxQkhDY1pIQ1FXcUxMcFNvOXpLODlLOFhGeTgrNmNpSEJ4WGdyYlZwZ0wwUC9laHR1UXlrdlRJQTEwY0UwY2RoTXRIWlQxQkpvWEN4NkZkU1R4d1hGaTVlM2R1RGhRTjVyNTk1NXBuTklnaGRxVWVoVEo4amNJaElBVU16TUxJdWp3cDlqQTZ4VmhOcURVS2doRUpZU1VhNkxKZzdseGUvOFpYUkczTjhaMkF2WHBRQXBrK2Zqalp4a2JZU1pwTmlYRlI3VUtJNkd0U2hnb1NRcERJcDJnTk55b3ZOckVtam0zb0ZsNHR2L1lIZGRwc3hERzNJbzJ3NWgxdFdsYXJGM005YWh5QUZVUlJoa0hpcExJNlhadG5TMVh4K1RHR2NuSFhNZ28wNS92ZDJkN2Q3K2ZYRmIwK2RQSExBUVY4bTRsTUo0ekFXUE9sUUIwemVaZ0lMWHA1RFN4Z2dVaG1JVEV6SFlTM1dHSXF0YmZ4b21OcHZZelhoZ0srMG5uM1Y3YmE1UWFFRU9OMTJqUmFiWmpvUzNVU0FCRmhqSzhWVmFVK2hnWGNXdHRDN21leVBqYzh2M0p1SlkrcHhTZG83MnU2bldTSFdudGZLLzc3aTY5K1p2N0dMaGM2cFY4eTcvM2NIc3N2a2thZ0JDMGpHV2NwS1FtZ01Vb21rdmF4QlNJT0haTkt3TkU5NWtoVW10dU9ORlZodElJcFF4dkRueHg5ZndzMFgvcTF2R080SFFDWnZQNDZNU3NqdEsyYUdpRXZUaEVyR3BPeTdmcXUyRzkwZ090cHJHMnZqRUo0RGhTQUcyOTNmK1dHdkR2bU5teDQrY09LWStvUW9LTjdpMlN6ZVpOVlc3b0luckltQnFTMHU0RnFZT1dOcXI4NWoyK0lyTzJsaVd1M3liU2lUbjY0N0U3WDd1b0dOdmZleS9Lb2NOQTRhRitHNFFPeThwb0Z0UnpRekpKdW5iZVZxQ0NKeWJvbzBob1Z2dk1hL2I3NXdaTisxZE9obmVlaldTMmZNMm1zNmluSk9rK25reWR2cWJFYmJ4K2E4bFYwZW9LbGtRd1poUk1HUGZZcVdObWhaMDlhclE0Mlljc1NEaFVLRTgwSEZFV1dXQVJLdEJ4VUNJeWxnbTNGak9mWEM2Mi9jMlBPWWVlS1hYcC96MWdJY1IxSXMrdmgraU91NjhURkZ2R1RmUCsyQ1RDVlZvL0tjclVFUklZSHR4NHlDVW9IaHVYcUc1K3RZTVg4QnNsVGlnZE9QRzllM1BVejZXWDYvcE82Zmt5ZFBvTUtRWisybVA2V3VTQk5kYVdjaVBOY2hrNHJObXZudnZjK1A3K3BkdjZZVGpqMmNocXpUSXlLamF0ckFjbHIwaEFuaktCYkRTM3R6THYvNTNUaWhNSk5Ka1VxNWxacFhhMjJmcjJpdmorUERkbVZCU01RRDhpNE16MlpKUnlIQjhoV015dVY1OExWWHowS0lCWU1aOENNK2NjTEg0MmxiZE5QWHZGKzZjTW0xL2hhaW82V0xIMWhlZXVINVhoM3VNMTg2YjJWNUdBZCsxQk9Idm1KbWxNR2ZUUWxtN2oyOVYrY3pXcjkxeHNLRml6cUZDTXVrdEp1Y21OYks1RGJMYmx0ZWtpeENOVGt3dHJFUjBkcENvNFMvL1A0aDVwOTM4cmZwdTJxSS9wZTdicnAyMTcxbVRNTFMxVm5kOUoyMDdYb3NKR003ZUdyeldVSGh4VitkdERISCtRUjQxdUorNGZPbk5wVWQxVXpLK1VBL3BLek55NTFOeWdVd1pmQ2Y4TEZqZTNYOXM2T2ZQdkQwMDA5akRIRk95enBtbFUybjRUc1gzWWpxd1dEQU5YRk1ma0pUSFEzV01PKzVmL0hzTjg3dE00UU1XSlNtTkdTblIxUUNoTGlyaHE3S2hwU2J0TS9xMnEwQ091SWkxdHFZM3h3SUFzTy9WbVcvZTlwWkYvOHNpT0xVV2x0cEtoUVhkSmZicjVUZmpzS1FqT2RpdE0vWkY2YTQ1T0p4OFdkMnc3b3VWdmVyS21jTGxrbGlyWVhHUEp4Mi9sVTJET1BVNmZiMjl2aWNrOVhJdVAyTzZNU29YUDdjRllZdlJpV09UQmJXeXJOWitaajlSVDF1dXdzUmwxKzF3Zk1rWStxaGZlbjdETC9ncEpGODVWTjlINWJ1VDNuN3Q3ZHUzN3JyS1hPM0g5OU1LaUVURTVpWWYwYW9kZDhVWVhvMUdHd1Z0RVZWcDZDNHhXUEhFU05qVWRLbHZlUmpyTVJMdXdRQlJDWmVKN0JkT216WXFqQmpKZzN0N1phTUp5Z1ZpMlRUS1Z4SEltV3N2YXM3bDZ6TGRxODJMNnA3VjlsazlXcnBpZ0oxZFZta2hEQUV6NlB5ZDVsdnFkS0Z3M1JZaThKYVBHVUlTMFhxNi9NVWl6N1pUS3JUWUZzYjlLWnZqWUxrNXBlTk80VkJXSk53ZGdwMHFMR1pGR3VBSHovNEtPZC83REN4U2RaaCtsTStmZFpsOXBhYnJtTklMbUdSaXFLcWhseHlIUlZKcHRjM2ZHM0FsNjNKTXBWMC9Ja2YrSGhlcHZKcDBkZDRub3E3V254QWluRVV4cVZyNWNzUlFCU0VPSjdhNFBPdkhoaFJrdXBRenZQeHczamxWNXNZekc3U2ZEd013WE5qM0loMXNDemJaRXJYMmxabVUxRTFFM1JmSExJSkFGL3U0SkVBSG11cXlEQmpDdktDaXQ4YTFzZlR6b0RZOEx0TTJaR0dYQngrQzBzQmp1UDBVeGZ0RHhybEltRUZUbEZ0WEdWU3FrTFZMWk5oVURiSHVvWVlVMjRNOXFyUVBvNnJlaFJTclo0RnlrMGZsRktWL1N2QWs1QjI0cjhkWXZvNkJiZ2lpZk4zc3psVm5UbTZPc2o5VWdsVjVUeUpNdGc3TlU2V1dCMmhGQmdibTVWbjNIaGJuNjY3OTdzTmIxc3ZIZjdhNm1NcVlFbW52ZGkwa0xKVHN3RlRtZktxbU1LRWlaMGIwYnRzU2JQT2NXL1dJZzIxZE9FeTdMSUFvNUNkWm96Ty82amVwK2tUSFNNMldmSExBQ1RIVjdPZ0piUXBJcGthMDBMZ0EvdlBtc0U5ZlhqWWZsOWxYbGljY2U5SkozNXNaeDBZcEFCSHhFU2ZJbG44b01xNFdNdkFFWGJqU1lEV0dZcVAveExySUlJVzJFNWJCM0JGWlc0V1lqMUlFcmJzcFBTaERadzBJTzd4NjhZTUlOdTNRODVXVTQvYnFsMnFPRDR2SURRUkNBZ0lhUjQ2ak1hUnhWZisvSDlQdlRvb1RacVBISGZTaVFKd1BZa3JCV0ZRcWx6NCtxTmlwa3NPektiUWtCdkNsOWpOZDJ3L2M5VDM1bld6a2k3QllSR0hoUjBwTVpUSUlCbVN6N053Y2NQL01CaHQrT1Z6SGh0NzZJRjdFVVZoeFZSeEhDZXA4ekQ5MTVTTTlTL3ZyNDg3c1ZORDN1NXFSTHZac2UzVDJ5eDdzYkU1bExSV2N1Rzd2bStUY0c5TXF4M2hZUEdBb3c4N2ZIQTZyZGMvOE5aOEE3aFNFUGdGdEE0UVVtQjFpSkFTUnpuOTZqaHQ2bHRXZlJqYjU4QWZoTEtXTXFqT25lb0luMG9nTFNVT2hqU3czNHk5c2Y5OGJRaUR5V205L29kL25ENXp6NTNqakVFcFVhbDA0Z0JhaE9OZ3d3amhlUDFuRXRqMTlEd1NHd0Yyc1c0cngxUzNkZHpjeUlBR0N2anJ1UGtpQ2FzcVEvSS9hSzV6K05wZi9yMmlMMjVkdjZtYzE1NS8rdHlkZHh5TkFzS29nK1dpcmJVdFh1enBFcFpjYXhJVy9UWFZibVREbzVyMEtMV2p1d3BqWVRzNmJaWnBVa3lrVVJZdU91L0V3V1hTVE5saHpHZWJ2SGhLU1R0cFJBTHBmRjBESUhIVDJRcHcxcmF0KzlJV3JTSlI3YzZJMzFEdC9nRmc3OWkxN1BUZlFJK045ZnN1RytJejlKVmVrVlVyQk1sOXFZcGtDU2VEamdReVliSW9GU0krZjhiRmR0QUEvcUI5WitDc05hWEx6Z0RzZFFSbDh6ZGRhOUxkUU9vc2NRNlJyS1NaSUNDZmR6aGcvNzBHaDRZLzd5dm4zakI5OTExcXo3Z205S1FXb0p4VlVEWjNaKzA5Z3dlK2YrbU16Ujd3TysxNTZHVmljMXJscThuZ21Ca1R3QnRqMEZvemV2Um9IbmcyZkhTekIvenhIeitXUWxIWHB2U2FmS0JvclN2cDBHVk43M2tlVWtveWFZZGpqdmx3SFp0eldQTGNyOTVpY3g0NHFMWFRUR3BTRTlidXNFS25Hb25PMlM5SEhYSGc1bTNEZit5angxSW94aU0xREtQYUU2MEpHMGpTaGVNNEZYUEdHSU14Y1Zib1dWZCt3MjZXZ1AvY1dSZi9kZHlva2VRek11Wm9kSnphazZ3SkcxTGlXSzdTS3BzM1NxbVl6eWFBS3k2NWNQUFU4R1BHanQxM3pNaDZiTUlxMWs4VlpEVVp4Rkt1QlpCVkxUYkxabzBFTWg3a1V2Q2w4eS84OXVZRWVNOHVQbVBJZmpQM0pvb1NrcUhhczZ3SmZSTzlkeFJNMjJQZk16WW53QWZ6SDFvOS9JQjk5eUx0OUM4clFVM1lzblBQVEV6RHZOK3N2WGordXhmdXZObVlOTmU5TU9HMWxCc2ZvSzB0N2dUdUIzN3RxZFdrVjZKa1hEY3hjdmd3N25oQi8yanpBZnkxMTFUU0NGd256cFZJZTZuYUU2c0p2YVhyQ3dwdE5OYTV6SnkxN3g2YkJlQlArZEpYWG1odTlEQlJQQnJUWGlvbXR3L0Qydk9xU2UrNEthMGg1Y1dFVmtjZmZUVDBzQnY2SmdIOHB6L3oyV2xoRUZOSVNBSEltUGZjZFZYdG1kV2t0NGsydUo1SEZNSHc1Z3lmT1dQMmt3TUsrUHUrZGRXc1VhT0c0M2x4TERVSVMzSG5aTmROMkdKTk41WDhacE5RN3E5TjlXeDZWdkZrNmViN0JrdUV4WFM3VWZYYTNYV3Q4L0RyT0JackhZTVAzTlozUUV1WnRiZjZ1NFpCdENJRjF1STVFQVJ3eWFXWDdEYWdnSDl5dnZqNzJMRkQ0d2F5SWtKNWlrakZURk5SaFFpcGU2QnMwTGJXMCszK2Urcy94dm9SVXlxRTNiNnZvd0NMeGhCMnMya01Pcjd1ZFJ6ZkFrRlVmUjg2NzkrR3BxclZua0diOG40TkdrMUFTRVNVSENGNXo0YkpOK0ovZDJxbVlCTHFNZDF4M3pTd3VoQ2lnVUIzM0pNbzlEc0JmKzNCWXphRGdTRmpGcW9rYlZoWXpYYmpHckcvT0dXYkFRRzh0ZGZsWnU2NUIzblBSU1ZrUlJKd0V4WWFRUWU3V0xrNG92emFpV0YyZlZ0M2pMU1Z6N3JmZjZmYWduSnNxNXRLYml1Z0ZHaFMyYmovV0h1eEdEL2ljc3ErOGpBb0xHNDNXL3krd2NGU0p2dDNNTWlxTFc2MFVENlh5SUN2RS9CTHdKTllWeVZWUVJKa2lzaElJaXNTTWtBWGkwTkJRM3NFRVFvclhBSWtCU1ErQ2g4b0VyY0xMRXFCcnlTQkk0a2tGRXc4MkhKWmw0ak9penVPb3pvVVNyZTJNK3Y1dkg5Qlh5d1dzVFlteUhLQm43b256Mk1na3NlRXVMTDk3WVdyY0N4Z0ZCQWhVRGhDNHVpRUM3bGM3R0UzRVZQUVdrUk5zb00zUnBnT0hTaDBWYWtaRmFaSmtaTDRHSVNRT0xrTVlhTFhSRkpnckpDSXFvRlgzYzNkZEVQMFpMc1dTUVV4Rlo4Vm9BVkVDc0tFTXNZQVFWTFRXV1ljVmxKMUtvWUxEVWdWRDU0Z21UV0xPbFo2VHJLUEtEbHUrVGRsRXlhbDRyNm9PWkd3cGlWc3ZqcUtVR3J3TEEzR0RSemlhMXExdXNESWtTTUhKbHZ5MDZmUHR1TkhOVllaaXJLRE1yZGN6TmhWNWRwMWxNM1o5Wk54YmpEeFREY2svSGE5NWRZU2dTVENzblRGU3I1NnpUVVlhNWQ3THM5WTZvNEsyd1hTT0FncnNWV2NMMFowNzVQWXFvSmxaUTJ1dFFocHNVS2doU1VRQW8wTmpKVHRWdUo3cWR6SVVxbUVzS3dTaGlZcEJHaGJsSlppSkZRbVRLVmVHemx1M0I1VGRwM0trS0ZOb0NSV3hGNkZ0bkVrekVsNUtDWFFXcU90U2Rwd1N0SlJSR25CUWtibGNuem9vTDA3RlZ3b0ZkTWRLbWZ6VHlxcnBwdHNhc3d5ZWRLT2ZPcjBDKzM5MzcxRjlDdmdyN3I4aWxnTFJlQTZJdGJ5WlhQQlNUQXYxbTRrMWduTG9zdHJsNFo3UXNpcWY1dTFQOThBUjZ6RHVMS2R4a2VaVnl6QUloRGM5UFhiK1BGZGQyMFc2OFNIL2ZldmptcDdiZTUxVTJiTW5PNE9iV1JCT3NlN1NYOG1UOGs0UUZEeVNYc09HV0d4b1U5YmF5dkNHSUlnWU03cmI5RHVsQzc3NndYbmZNMitldENJdWUvL2F2SFFJWGthMGk2TzY4WnQ0QWRKY2wrNVUwbFFpdkRTRHMxTmFVWU9IOWEvN01Hbm5UMzdaOSs2OCt1ZlZCWnNCSjZ6TmdWd1pFaTZRVWNmeUZIYm5WSzNpVjF1dTdSSldiZHowdDFRY0xvTWlpcTdWRWlLZm9DYlNxT0JGTUlUZ2hESUEyMzkvbVJmZW12bnFULzV6YSsyR1RkaHh6RVRKcEFkMnN3cUlrS2xjS1NNNzRReDJEREVOZUJKZ1FnMUJDR2xsamFXdnIrUTkrYlBuemYzSTRkOG9tWC8zWityM3ZYZlg1cHJwKyt5ZmV4bldZc2dIaGhlS3RNTmUzUDF6T1ZzRmhtVmp1T2dFeHRTQS9QbXIyRHkrS0g5cCtIMzJHLy9UN2FIY1g4ZVVXWkt0WEZUV1J2Rm5ETU9Ca3ozUmR0cW5VUFE5TXpmdHRDdFZXMWxCd2RFcDhabXN0TnZVMDRhQS96a3B3L3hoVS9IellTdHRZSG94MVRQWFMvOTltOG1iN3Z0UjBZdEMrQ2p4MUhRSVFVRTdSaGtLb3UwRm1OamIxZUdBazg3WkZDa2pXREIyM041N2VWWFgzajJ0bk9tVjI3ZU45WSt4bmUvZHk5MzNYWURub3hWZ0VEZ3BRYkhTcmp2aDFocmNWMFhDN1MwQld3enJwbHZYWGZ1TVYrKzhvNkgra1hELy9uVmVYYVBuYlpKbUFrc3drUUlERXBLSXQvSFNhVVNtOFpadngwdTF0ZFRsZTRqTlJ2aTlOb044eEdzZ0pZUzNQek43M0RqNVdlSWZqQkswenZlOGRESDY5Nlo4KzJoSTRZMTdMckhkR1E2VGVSS2ZHdnhwVVc2TGxiRkhUNTAwU2ZqZWtodENZdEZkTkZuemJKbHpIM3BWUlpNbW5uRTh0UDMrdU9HSG5wTmFHMlpjdHVFNVlWQnVWbHIrQ2d5bFY0QzFsckNVS004aDhEQVA1NTlsVVAzM2xsc2NnMy8yYk12czd2c3NFMVZXMFliVStoaENRbFFLWWtsUUFobjdVT0t6bXNLRmFKZzBWa1RXMEUzck1MZDlXanEvRnZSNVE5YjFlOVlsSCtRekFTeEl3bnZMMTNLM1BuejdDWUN1T3ZkODg5REo4NTcvdUpoK2N6QkkzLzRLSFhiamlLOTI0NjRtUlNGTU1RS2d4VVdxU1FwSWJHUndZWWFKNHJJUlpaVjg5OWwzdHZ6V0x4bTlkOWJKMHkrNWEwekQzOFljVmlocDZmeXlPTlBjZXpoTTRraThCdzNjUWcvb0QzTkFJdHlaQ2RmekhOajAwWUNNNlpQd2RvYnMwSmNWdGlrZ045anloVGNxcWF6WlRaZ2tiaUhaVW85aTBHYjJDR1VhdjNhM1haWlhOTTJIdEZLaW00L3IreENkYlBRYUR1KzA4SFFiSlBZWGZYcWtxQlFER2hwWGMwdnZuTnpuOGJwcHQ3dzgzTzlwZS9mUHZVWC95U3piVDNacWNkZ3BDQzA4WEpSSk1DUEl0SnBqOGdQc0dHQUl4MDhxU2dWaXF4Y3VveTJaY3Q1K3JDUDc3ams0QjNtZHJvRloyM2NPZjNoZDcvKzVZY1BuM204NHlTYVV3Mk9QRzdidFpONXdnZ3VCZHorZ3gzYjF6YytuZDRyckNiMy9TWEhrM09xVDZLNllMc2NtUTZ4MXFDVXh1QmdrbW5TWUpJK29Ub0dkRkxkb3FwR01jTEczU0lFaUxVbzdXTis5bkpVUGRKUnBVZVNFQUtKVTRrVXlXUjFybk1rc2lwWUtTeTVqTWVDOTk3ZDZQdFJkOTlmRDIyTkltZklva1ZUaHk5YmN2UGtLVHN6WnNJRUhNK2pHSVpZenlGd0ZINFVFZm8ranVPUXkyUndnYURRVHJpNmlEUWFXeXl5ZVBFeTNuMzdMVlkxTjE4NDU2TFAzSVVRUVY4Q1o4Zmgzay9lWGJEeStPM0dEc0Z4NUtBb3NLL3VZUlh6M29Pd0FwWDArUms1b25uOVR1dDVQL2pUcktYdnZidExvWFhOWHFIdjd5VWROZFhBb3lPbVRMbmgzdE0vL1BnSG5jQXBYLzdpSS9kOEs0NXF0TFVHMU9lOEtxM3JKSDFZRFZnVkE5TWFqTkNWSm1MbEJSMVJwWnFydTNqR2pRaE10MDVzUnd4R2txd1Q0aWFCNUE0WW04NHVyRkRkVE51eXNpUmYwUERFRTcvOTVnWkZ1S3pOYi91OXh3OXNuUFBTMTVvYTYzZkoxamVRQ1gwYWhnMmpic2Z0MEVKUWlqUUJZRkpwM0lZc1FSQ2dsRUNtRkJucm9iUW1iRzlsNWJJVnJGbTJqSGZudnJVNnFzL2Y5OGFwbjd4RGo1djVadVZvRjMrMno4Rnp5WlhYUHpoOGg3MFkrL0ZqeWJqZHN3UjA3blFvTngvUWR6bzlpMEpnTFJ5dzN6NmNkczdGOS8vZ3pwcy90Y0ZPNnlkdnVlOFR3WktsdjVnMGVUTDFkWFVzVzc2Y045OThrL1o4K2x1dlQ5L2xsNHMrZXRDckNMRVU0RFhmMnFFZUZOcERtbk51cDc1SDBoS3Z1cFlYb21RY21nK3I1aU9Kd1ZLMk9ReXVVSjNqNDlaaTBaVnUwV1VOTDRTSW0xcFlzS0tqQjUvcHdzbXVPNmx6aVVobUg2cnlXY29ya1ZIU0pXOTBOeUdaQXg1NmZKOVZieXpjVFM1WWN2ZTRpUlBaZHR0dFNXY3pSTnBpeWpGc0pWbmQyb2FYU2FOY2g4akU4NWhRQ29ORjZ3aTBqK2NvUkJDeCtMMzV2UGJxYXd2ZU9PbVlJOWx0MGlzREFaNWJ2M3VmL2ZJWFQwWUNPb2hJZWM0NmZQK0VEV3lBUVYrZWtHVkZrWnBLN29jVzBCN0FXZWRkeGsvdStaclk2Q2pOY1hmLzRxTnRyNzE1MzVEUkkzT2lycDZobzRhUklxQnQ2V0wyM1hNcXpia3NZMFlNWjluU3BReHBHb2x5WER3M1RjcURsQk0zNEpKeFYwSWMxZjNpcXV4a1NWTnhnTmQzb3JhTHpyZGQzclBkUExLd0tva3RCRUlkNTdPRUVZUVdubi9wVFg3NjRLK2ZUem5lN2lOR2phT2hlU2gxRFkwNHJrZEJhM1FtaGNwa1VFSVNoaUZSRkNHSlZ6TXhsbHd1aDlZaFVSQVNoaUU2RENrVTJsaTFhaFd0TFd0WXZYUXg3NDlyUEh2WkdhZDlhek5RbHZKSDE1OTk4TkhuM3ZhbitweURzOTR1aFpzSDRDM1Z2bGgxUXBzVHQ4c0IvdjM2Kzh6WWFZem8wN0RrdVgvN3c3UTk3YmdYeG94c3huRmgwYktsckM0VVdPTkhoRTRhN1hwSXowTTZEc3AxVUVyZ0Nna1J1RGk0cm92cnVxUmNoZWU0T0VvaEphUmROODRsRWZFaWxaSnhEMUs1RGtmVUpCcWE1TytDSDdkZ0RDTkRFTVdnODZNUUhWbTBqZUxRSHBaSVd5SmpLRVVhUDlRRUdnSmpDSzNFU1djSUkwMWs0NlptbVh3ZFFnZ0twWGFVSy9GOUh4MkdlRktSOVZ4Y0FicFlKQ3FVV0w1NE1hdVhMbVhGNHNWRlVxbkhWU2Ixa3RoaHpHUC8rTlN4ZjJRemxSZm52R3QzM21FOE90UjRyaHIwZ0M5RTBPUUt0N3NWemw3NUtiLysrOHYyb0ZrN1k0RTFHandGUHJBU1dOSWVzWGpsU3BhdlhzV2FRaHUrWDhSRzRObzBFcWVUWXltRTZPUjFseStpYk1hVXR6aHh5T2xrUzNab2RJRVJjV0pSWi9PbTQ5OElnN1lCUXNSdHNZVlFjV2FqRldqQUNFbWtCVzRxamJGeExncktJUXhEakJWa1hJa3lFVFlzVVd3dnNHckZNdWJQbThkOFI5NjE1TkwvdUFraEZqSUk1Y0tyYjdGWFh2SVZjcW1PTzd1dXBRcXhPVVJvNkpvYW5zUmZFc0FiNExtWDVyUHYxUEdpejg3L3hDL05icnY5dHEvbjZqTGxucHRKSnAvc01DZHNWZmFlVHJMN2xyZEh0SlVDMmxvTEZFckZXUHNhaUl3bU1oQllqVGFXVUVjRVJxTjEvTDVKOHY4RVhoeVh0eDJ0NGl1RFE2eE54Q21Fd29qeXZ5TUNYY0RMT0VSQmdFQlJYMWRIb2IxRVBsL1AwcVhMV0x4b0tiNGZVaXo2aElFbUNFTGEyNHEwYXY0VjVlb2VlZnZxejExT1J4dmRMVWJhcmJYV1FFcDI5Sit0dHBuTDkzYkFPNWpZOVNRUkp2bFg3VVZESkNTTmI1d3pRdXgyMTlJK0NVdHVNM1owTHAvdVNHTVZ4RGRMV0UwWGRSMXJYMk1JaEtJNTV4RGxIR2pPZG5JYXl3T2lKWXh0YVcwdG9UVm9FenVlVnNRNTc2RWZKUUdTem9Ddi9ydmE1K3dBdnNBS2kvTGlvSzBKSTVTS1cxZm5jeTdMbDdSejl3Ty81QTgzWEx4Vmtvbzg5TWd6SEhQNGpOaFVMQy84MlRpMjNhdVdXQU13SUhJWlNVdTc0ZHlmalZqU2RWaHNOT0RQUGZjYzNHUlh4VktFNnloU2p1aDJIVlFnVVZLUkFvSXd3RXRNRTZrNnpBME5STmJTN0ZZNlAzWHExVnpaYzliWjRHeUM3cEFiUjJRVU5oTkhsTUxrSnRqSWJyVmdCM2p3d1FjN0FkNWlZOU92MHNVa0NhU0pnUVAvT2x0RGlXcjJZWU53SkptY1pLK1pNL3VtNHVrYlh6M3ZoTVk4ckdtTmZZSk0yaUhsQ0t3eGEvSHBsY09ENWVCUnhwVmtIRWxLR2x3YjRXSHdNR1F3MUFsQmpqZzFzUTdJMi9qdkJ1TFM5THJrc3h3UmVVelZhMGdlM2MxcjUrL2xnWVlJaGhob3RsQnZvUkZ3QTVqM3drdHN6WExDTkdmR2ttVkZTSUlFUW9pcUpld2tEZHR1TGczUnFPNEwzV2tNS0VjU1J2RTdrM2Zha1ovZmZlTmV2UWI4SVNlZC96OUdRMU9kVXpGbnJDMjNLdW1xZmJ2Y0pSc0hISTJ4YUcwZ3NyRjNhV1hGQnhISkppMDRHbFN5T2JaRDV5ZHVKb0o0RVVzbVJYRFZyMTIvcDRoUXdpQkNnOUNnQXZBU1J0ci8vYzJ2RjJ6TmdQLzQ2ZGMrKy95TEwxU0ZEQXdZRFRxcU9JZFMyTTJvQytEYXFTamxzM01kZ1RXdzA0N2orTTByYlUvM0d2Q1RKbzVIMlk0Zmx3b2xwS0JiR2c1aGsrblJkdVRFR0NHUnlrVTVYaHlZRjZMN1RucGR2ZCtrK05QQlFhSjYvQnJ2UzBOWW9Gd2tIV29JTlB6b0I5OFl4MVl1TDd6MGIwTFRYVGpTbGoyeHpTNzlRS3kxTUdWaXh6b3BZenpweE9ON1o5TGNlczkvV3h0R3BKMVlBeXNMdVV3YXJDWW90Q2NyWDZhVDB5aVNmQmNyNG5UNENGRmhNWWlBS0FrbkJUYXU4NnpVWkR0ZE5wbnNXc3VOMjR3Q2FjQ0xwdzZaY1RFdVBQQy9qMUlUV0Rodjd1K0xSVU9vcTdPeTFvSlVCZmo5L2NvNjZFODY2dkFOSmdyQmF0eGtGZjZRQS9iZ2hxdG5uN2pSZ0oreTAyUnlHUWNkR2FTQUtBamkrSFlRNG1VeVZMeWVkYXltVnBkY1dHeGlGMXFraUJlWjRrUUN2VGJWUnBscFFOSjk3L2dOMmtROFRidUtJSXlwS2lLZ3VQeVBCOVRnRHZmZWRjdXhKVDhnMERyMnZZUktpbVpFNS9XTWJqbUYrdXVWOVhJUlNSSFh2QWEranhJeGthODdjcGVmYnhUZ1AzWFdWWS9OMm5zdndpQkFKV0VyTjJaY1FybHVWYXZCdFdrMXlwaFROc0loeExFUkx2SG1FS0VJVVlRNHliOEY0VnFiSll5ci9aTmQ5L1RWU2tCNUJJSEZkZU93Nk9LbHJjd2FsVjlTZzNzc3YvN2Q3M0hjeEZPeUVvU0xSY2Fia0p0dHVuQ0gweHBIOFZLcEZNYUMxbkRjUjQvRnZqdDdSSThCUDJMMDJJTWREeHpYUTZqcTVyNktPTUc5WEw3WDhkbGFqRmhXSms0cUhhOGQxZDFWSFpvN09HWnNKZG9qZXE4ZmhJTlFHVFJROE9IQjN6ekV0S091bWxPRGVpem4vTDlQQ0FRRXBtUEJzSzJrcTF4LzJURUFCbUNyeGxkNURjY2srTEJJdEU1VzVoT0x6RkV3cEtHQmsyK01GdlFZOE1kKzVDUHhTcXFna3cwZTBwR1VGUkVIWGlLNzludkdFQnZ4eHVsMnM4YkZXQWRqeTdvL1JaaThsdWNDYVVCdDVJYUIxZTBoMnBGRWljL3czc0tsTlpSM2tlZGVmTHVpbHlMQVM4YzBpWjJlNXdCdHBncGZrZTNBWDVtakIrVmloS0sxNE1kRlEwQW1Bd2NjZEtnRFBWaDRlay9iNGN1V2FONTRad1d1RGJ0WjZSUlZuRjkwV3VZdmErb1lyTEpxbEJrTUVrU2NwR1dTVjRSWmkrQ280Z01ZczVZMXlRWXpUZ3JjWEk1VkMxZVNTbWVZKzg2NzNIbk51YlYyRFYxdCtlLy80TmZlbDgvK21PZEFHT29LTFlialNFeWtPOVVyOUxkSVU4WlduQTVjeHByQUlLMUZDb3N4RVNEeHZEVEZ3RktLRENYZlVHc2lXWk1Qa2dhMm5LNkF0ZVlFTmFsSlRkanErNlBtdHVUcisvOGdTRExIL2N4S3BnQUFBQUJKUlU1RXJrSmdnZz09IiBhbHQ9IkFlcm93b29kIEF2aWF0aW9uIGxvZ28gbWFyayI+CiAgICAgIDxkaXYgY2xhc3M9IndvcmRtYXJrIj48Yj5BRVJPV09PRDwvYj48c3Bhbj5BVklBVElPTjwvc3Bhbj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPgogICAgICAgIDxkaXYgY2xhc3M9ImlkIj5LRVFZPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibm0iPkNoYXJsb3R0ZS1Nb25yb2UgRXhlY3V0aXZlIMK3IEVsZXYgNjgzIGZ0PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJ2aWV3c3ciIHJvbGU9InRhYmxpc3QiIGFyaWEtbGFiZWw9IlNjcmVlbiI+CiAgICAgIDxpIGNsYXNzPSJyb3RiYXIiIGlkPSJyb3RiYXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+CiAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiByb2xlPSJ0YWIiIGRhdGEtdmlldz0ia2VxeSIgYXJpYS1zZWxlY3RlZD0idHJ1ZSI+S0VRWTwvYnV0dG9uPgogICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgcm9sZT0idGFiIiBkYXRhLXZpZXc9ImFyZWEiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIj5BcmVhIGFpcnBvcnRzPC9idXR0b24+CiAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiByb2xlPSJ0YWIiIGRhdGEtdmlldz0iZm9vZCIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiPkZseS1pbiBmb29kPC9idXR0b24+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNsb2NrcyI+CiAgICAgIDxkaXYgY2xhc3M9ImNsb2NrIj48ZGl2IGNsYXNzPSJsYWJlbCI+TG9jYWw8L2Rpdj48ZGl2IGNsYXNzPSJ0IG51bSIgaWQ9ImNsa0wiPi0tOi0tPC9kaXY+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNsb2NrIj48ZGl2IGNsYXNzPSJsYWJlbCI+WnVsdTwvZGl2PjxkaXYgY2xhc3M9InQgeiBudW0iIGlkPSJjbGtaIj4tLTotLVo8L2Rpdj48L2Rpdj4KICAgIDwvZGl2PgogIDwvaGVhZGVyPgoKICA8ZGl2IGNsYXNzPSJ2aWV3IiBpZD0idmlld0tlcXkiPgogIDxzZWN0aW9uIGNsYXNzPSJzdGF0dXMiIGFyaWEtbGl2ZT0icG9saXRlIj4KICAgIDxkaXYgY2xhc3M9ImNhdCI+CiAgICAgIDxkaXYgY2xhc3M9ImNhdC1waWxsIiBpZD0iY2F0Ij4tLS0tPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNhdC1kZXNjIiBpZD0iY2F0RGVzYyI+TG9hZGluZyBvYnNlcnZhdGlvbuKApjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJzdW1tYXJ5IiBpZD0ic3VtbWFyeSI+RmV0Y2hpbmcgdGhlIGxhdGVzdCBLRVFZIEFTT1MgcmVwb3J0PHNtYWxsPiZuYnNwOzwvc21hbGw+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJhZ2UiIGlkPSJhZ2VCb3giPjxkaXYgY2xhc3M9ImxhYmVsIj5PYnNlcnZlZDwvZGl2PjxkaXYgY2xhc3M9InYgbnVtIiBpZD0iYWdlIj4tLTwvZGl2PjxkaXYgY2xhc3M9InMgbnVtIiBpZD0ib2JzVGltZSI+Jm5ic3A7PC9kaXY+PC9kaXY+CiAgPC9zZWN0aW9uPgoKICA8ZGl2IGNsYXNzPSJlcnIiIGlkPSJlcnIiIGhpZGRlbj48L2Rpdj4KCiAgPG1haW4+CiAgICA8c2VjdGlvbiBjbGFzcz0icGFuZWwgd2luZCIgYXJpYS1sYWJlbD0iV2luZCI+CiAgICAgIDxkaXYgY2xhc3M9IndpbmQtaGVhZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwiPlN1cmZhY2Ugd2luZDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IndpbmQtdmFsIG51bSIgaWQ9IndpbmRWYWwiPi0tPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8c3ZnIGNsYXNzPSJjb21wYXNzIiBpZD0iY29tcGFzcyIgdmlld0JveD0iMCAwIDQwMCA0MDAiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iV2luZCBjb21wYXNzIHdpdGggcnVud2F5IDA1LzIzIj48L3N2Zz4KICAgICAgPGRpdiBjbGFzcz0icnd5cyIgaWQ9InJ3eXMiPjwvZGl2PgogICAgPC9zZWN0aW9uPgoKICAgICAgPHNlY3Rpb24gY2xhc3M9InBhbmVsIHRpbGVzIiBhcmlhLWxhYmVsPSJDb25kaXRpb25zIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlIj48ZGl2IGNsYXNzPSJsYWJlbCI+VmlzaWJpbGl0eTwvZGl2PjxkaXYgY2xhc3M9InYgbnVtIiBpZD0idmlzIj4tLTwvZGl2PjxkaXYgY2xhc3M9InMiIGlkPSJ3eCI+Jm5ic3A7PC9kaXY+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZSI+PGRpdiBjbGFzcz0ibGFiZWwiPlNreSAvIENlaWxpbmc8L2Rpdj48ZGl2IGNsYXNzPSJza3ktbGlzdCBudW0iIGlkPSJza3kiPi0tPC9kaXY+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZSI+PGRpdiBjbGFzcz0ibGFiZWwiPkFsdGltZXRlcjwvZGl2PjxkaXYgY2xhc3M9InYgbnVtIiBpZD0iYWx0Ij4tLTwvZGl2PjxkaXYgY2xhc3M9InMgbnVtIiBpZD0iYWx0SHBhIj4mbmJzcDs8L2Rpdj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlIj48ZGl2IGNsYXNzPSJsYWJlbCI+VGVtcCAvIERld3BvaW50PC9kaXY+PGRpdiBjbGFzcz0idiBudW0iIGlkPSJ0ZCI+LS08L2Rpdj48ZGl2IGNsYXNzPSJzIG51bSIgaWQ9InNwcmVhZCI+Jm5ic3A7PC9kaXY+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZSI+PGRpdiBjbGFzcz0ibGFiZWwiPkRlbnNpdHkgQWx0aXR1ZGU8L2Rpdj48ZGl2IGNsYXNzPSJ2IG51bSIgaWQ9ImRhIj4tLTwvZGl2PjxkaXYgY2xhc3M9InMgbnVtIiBpZD0icGEiPiZuYnNwOzwvZGl2PjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUiPjxkaXYgY2xhc3M9ImxhYmVsIj5EYXlsaWdodDwvZGl2PjxkaXYgY2xhc3M9InYgbnVtIiBpZD0ic3VuIj4tLTwvZGl2PjxkaXYgY2xhc3M9InMgbnVtIiBpZD0ic3VuMiI+Jm5ic3A7PC9kaXY+PC9kaXY+CiAgICAgIDwvc2VjdGlvbj4KCiAgICAgIDxzZWN0aW9uIGNsYXNzPSJwYW5lbCByYXciIGFyaWEtbGFiZWw9IlJhdyByZXBvcnRzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPjxkaXYgY2xhc3M9ImxhYmVsIj5NRVRBUiDCtyBLRVFZPC9kaXY+PHByZSBpZD0icmF3TWV0YXIiPi0tPC9wcmU+PGRpdiBjbGFzcz0icmF3bm90ZSIgaWQ9InJhd05vdGUiIGhpZGRlbj48L2Rpdj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciIGlkPSJ0YWZSb3ciPjxkaXYgY2xhc3M9ImxhYmVsIiBpZD0idGFmTGFiZWwiPlRBRiDCtyBLQ0xUIChuZWFyZXN0IGZvcmVjYXN0KTwvZGl2PjxwcmUgY2xhc3M9InRhZiIgaWQ9InJhd1RhZiI+LS08L3ByZT48L2Rpdj4KICAgICAgPC9zZWN0aW9uPgogIDwvbWFpbj4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0idmlldyIgaWQ9InZpZXdGb29kIiBoaWRkZW4+CiAgICA8ZGl2IGNsYXNzPSJmb29kYm94IiBpZD0iZm9vZEJveCI+PC9kaXY+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9InZpZXciIGlkPSJ2aWV3QXJlYSIgaGlkZGVuPgogICAgPGRpdiBjbGFzcz0iYXJlYSI+CiAgICAgIDxzZWN0aW9uIGNsYXNzPSJwYW5lbCBhcmVhbWFwIiBhcmlhLWxhYmVsPSJBcmVhIG1hcCI+CiAgICAgICAgPGRpdiBjbGFzcz0iYXJlYS1oZWFkIj48ZGl2IGNsYXNzPSJsYWJlbCI+QXJlYSB3ZWF0aGVyIMK3IDI1IC8gNTAgLyA3NSBubSBmcm9tIEtFUVk8L2Rpdj48ZGl2IGNsYXNzPSJsZWdlbmQyIj48c3Bhbj48aSBzdHlsZT0iLS1jOnZhcigtLXZmcikiPjwvaT5WRlI8L3NwYW4+PHNwYW4+PGkgc3R5bGU9Ii0tYzp2YXIoLS1tdmZyKSI+PC9pPk1WRlI8L3NwYW4+PHNwYW4+PGkgc3R5bGU9Ii0tYzp2YXIoLS1pZnIpIj48L2k+SUZSPC9zcGFuPjxzcGFuPjxpIHN0eWxlPSItLWM6dmFyKC0tbGlmcikiPjwvaT5MSUZSPC9zcGFuPjxzcGFuPjxpIGNsYXNzPSJ0cmkiPjwvaT5UcmFmZmljIG5vdGU8L3NwYW4+PC9kaXY+PC9kaXY+CiAgICAgICAgPHN2ZyBpZD0iYXJlYVN2ZyIgdmlld0JveD0iMCAwIDY0MCA2NDAiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iTWFwIG9mIGFyZWEgYWlycG9ydHMgY29sb3JlZCBieSBmbGlnaHQgY2F0ZWdvcnkiPjwvc3ZnPgogICAgICAgIDxkaXYgY2xhc3M9ImFyZWEtc3VtIiBpZD0iYXJlYVN1bSI+TG9hZGluZyBhcmVhIHJlcG9ydHPigKY8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhcmVhLWFzb2YiPlRyYWZmaWMgbm90ZXMgc3VtbWFyaXplIEZBQSBDaGFydCBTdXBwbGVtZW50IHJlbWFya3MgYXMgb2YgT2N0IDIwMjYuIENoZWNrIHRoZSBjdXJyZW50IENoYXJ0IFN1cHBsZW1lbnQgYW5kIE5PVEFNcyBiZWZvcmUgZmxpZ2h0LjwvZGl2PgogICAgICA8L3NlY3Rpb24+CiAgICAgIDxzZWN0aW9uIGNsYXNzPSJjYXJkcyIgaWQ9ImFyZWFDYXJkcyIgYXJpYS1sYWJlbD0iQXJlYSBhaXJwb3J0IHJlcG9ydHMiPjwvc2VjdGlvbj4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8Zm9vdGVyPgogICAgPGRpdiBjbGFzcz0iZnJlcXMiPgogICAgICA8c3Bhbj5DVEFGIC8gVU5JQ09NPGIgY2xhc3M9Im51bSI+MTIyLjcwMDwvYj48L3NwYW4+CiAgICAgIDxzcGFuPkFTT1M8YiBjbGFzcz0ibnVtIj4xMzUuNzc1PC9iPjwvc3Bhbj4KICAgICAgPHNwYW4+Q2xlYXJhbmNlPGIgY2xhc3M9Im51bSI+MTMyLjU1MDwvYj48L3NwYW4+CiAgICAgIDxzcGFuPkNoYXJsb3R0ZSBBcHAvRGVwPGIgY2xhc3M9Im51bSI+MTIwLjA1MDwvYj48L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImN0cmwiPgogICAgICA8c3BhbiBpZD0ic3JjIj4mbmJzcDs8L3NwYW4+CiAgICAgIDxidXR0b24gaWQ9ImJ0blJlZnJlc2giIHR5cGU9ImJ1dHRvbiI+UmVmcmVzaDwvYnV0dG9uPgogICAgICA8YnV0dG9uIGlkPSJidG5GdWxsIiB0eXBlPSJidXR0b24iPkZ1bGwgc2NyZWVuPC9idXR0b24+CiAgICA8L2Rpdj4KICA8L2Zvb3Rlcj4KICA8ZGl2IGNsYXNzPSJkaXNjbGFpbWVyIiByb2xlPSJub3RlIj48c3Bhbj5Gb3IgdHJhaW5pbmcgYXdhcmVuZXNzIG9ubHkuIE5vdCBhbiBvZmZpY2lhbCB3ZWF0aGVyIGJyaWVmaW5nLiBHZXQgYSBzdGFuZGFyZCBicmllZmluZyBhdCAxODAwd3hicmllZi5jb20gYmVmb3JlIGZsaWdodC48L3NwYW4+PC9kaXY+CjwvZGl2PgoKPHNjcmlwdD4KLyogLS0tLS0tLS0tLSBUViBmaXQgbW9kZSAtLS0tLS0tLS0tCiAgIE9uIGFueSBzY3JlZW4gOTAwcHggb3Igd2lkZXIsIHRoZSBkYXNoYm9hcmQgaXMgZHJhd24gb24gYSBmaXhlZCAxOTIww5cxMDgwIGNhbnZhcyBpbnNpZGUgYSBmcmFtZQogICBhbmQgc2NhbGVkIHRvIGZpdCB0aGUgd2luZG93LCBzbyBub3RoaW5nIGlzIGV2ZXIgY3V0IG9mZiwgd2hhdGV2ZXIgdGhlIFRWLCBsYXB0b3Agb3IgY2FzdCBzaXplLgogICBPcHRpb25zIGluIHRoZSBsaW5rOiA\/c2FmZT01ICBzZXRzIHRoZSBib3JkZXIgYXJvdW5kIHRoZSBlZGdlcyAoZGVmYXVsdCAyJSkgZm9yIFRWcyB0aGF0IGNyb3AgKG92ZXJzY2FuKTsgP3NhZmU9MCByZW1vdmVzIGl0LgogICAgICAgICAgICAgICAgICAgICAgICA\/Zml0PTAgICB0dXJucyBmaXQgbW9kZSBvZmYuCiAgIFBob25lcyBhbmQgbmFycm93IGVtYmVkcyBrZWVwIHRoZSBub3JtYWwgc2Nyb2xsaW5nIGxheW91dC4gKi8KKGZ1bmN0aW9uKCl7CiAgaWYgKHdpbmRvdy5uYW1lID09PSAiYXctc3RhZ2UiKSByZXR1cm47CiAgY29uc3QgcSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTsKICBpZiAocS5nZXQoImZpdCIpID09PSAiMCIgfHwgd2luZG93LmlubmVyV2lkdGggPCA5MDApIHJldHVybjsKICBjb25zdCBzYWZlID0gTWF0aC5taW4oMTUsIE1hdGgubWF4KDAsIHEuaGFzKCJzYWZlIikgPyAocGFyc2VGbG9hdChxLmdldCgic2FmZSIpKSB8fCAwKSA6IDIpKSAvIDEwMDsgIC8vIDIlIGJvcmRlciBieSBkZWZhdWx0CiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsICgpID0+IHsKICAgIGNvbnN0IGh0bWwgPSAiPCFET0NUWVBFIGh0bWw+XG4iICsgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm91dGVySFRNTDsgIC8vIGZ1bGwsIHVudG91Y2hlZCBwYWdlCiAgICBkb2N1bWVudC5oZWFkLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIiwgIjxzdHlsZT5odG1sLGJvZHl7bWFyZ2luOjA7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6IzA0MEMxNn0jYXdTdGFnZXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MTkyMHB4O2hlaWdodDoxMDgwcHg7Ym9yZGVyOjA7dHJhbnNmb3JtLW9yaWdpbjowIDA7YmFja2dyb3VuZDojMDQwQzE2fTwvc3R5bGU+Iik7CiAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICIiOwogICAgY29uc3QgZiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwogICAgZi5pZCA9ICJhd1N0YWdlIjsgZi5uYW1lID0gImF3LXN0YWdlIjsgZi50aXRsZSA9ICJBZXJvd29vZCBLRVFZIFdlYXRoZXIiOwogICAgZi5zZXRBdHRyaWJ1dGUoImFsbG93IiwgImZ1bGxzY3JlZW47IHNjcmVlbi13YWtlLWxvY2siKTsKICAgIGYuc3JjZG9jID0gaHRtbDsKICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZik7CiAgICBjb25zdCBmaXQgPSAoKSA9PiB7CiAgICAgIGNvbnN0IFcgPSB3aW5kb3cuaW5uZXJXaWR0aCwgSCA9IHdpbmRvdy5pbm5lckhlaWdodDsKICAgICAgY29uc3QgayA9IE1hdGgubWluKFcqKDEtMipzYWZlKS8xOTIwLCBIKigxLTIqc2FmZSkvMTA4MCk7CiAgICAgIGYuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgkeyhXLTE5MjAqaykvMn1weCwgJHsoSC0xMDgwKmspLzJ9cHgpIHNjYWxlKCR7a30pYDsKICAgIH07CiAgICBmaXQoKTsgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZpdCk7CiAgICBjb25zdCB3YWtlID0gYXN5bmMgKCkgPT4geyB0cnkgeyBpZiAoIndha2VMb2NrIiBpbiBuYXZpZ2F0b3IpIGF3YWl0IG5hdmlnYXRvci53YWtlTG9jay5yZXF1ZXN0KCJzY3JlZW4iKTsgfSBjYXRjaChlKXt9IH07CiAgICB3YWtlKCk7IGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLCAoKSA9PiB7IGlmICghZG9jdW1lbnQuaGlkZGVuKSB3YWtlKCk7IH0pOwogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZnVsbHNjcmVlbmNoYW5nZSIsIGZpdCk7CiAgfSk7CiAgd2luZG93Ll9fYXdTdGFnZWQgPSB0cnVlOwp9KSgpOwo8L3NjcmlwdD4KPHNjcmlwdD4KKCgpID0+IHsKICBpZiAod2luZG93Ll9fYXdTdGFnZWQpIHJldHVybjsKICBjb25zdCBJTl9TVEFHRSA9IHdpbmRvdy5uYW1lID09PSAiYXctc3RhZ2UiOwogIGNvbnN0IFRPUCA9IElOX1NUQUdFID8gd2luZG93LnBhcmVudCA6IHdpbmRvdzsKICAvKiAtLS0tLS0tLS0tIFNldHRpbmdzIC0tLS0tLS0tLS0gKi8KICBjb25zdCBDRkcgPSB7CiAgICBzdGF0aW9uOiAiS0VRWSIsCiAgICB0YWZTdGF0aW9uOiAiS0NMVCIsICAgICAgICAgIC8vIEtFUVkgZG9lcyBub3QgaXNzdWUgYSBUQUY7IG5lYXJlc3QgaXMgQ2hhcmxvdHRlIERvdWdsYXMKICAgIGxhdDogMzUuMDE3NCwgbG9uOiAtODAuNjIyMCwKICAgIGVsZXZGdDogNjgzLAogICAgbWFnVmFyOiAtNywgICAgICAgICAgICAgICAgICAvLyBkZWdyZWVzLCB3ZXN0IG5lZ2F0aXZlIChhcHByb3guIGZvciBNb25yb2UsIE5DKQogICAgcnd5TWFnSGRnOiA0NywgICAgICAgICAgICAgICAvLyBSV1kgMDUgbWFnbmV0aWMgaGVhZGluZzsgMjMgPSArMTgwCiAgICByZWZyZXNoU2VjOiAxMjAsCiAgICBzdGFsZU1pbjogNzUsCiAgICB4d1dhcm5LdDogMTIgICAgICAgICAgICAgICAgIC8vIGhpZ2hsaWdodCBjcm9zc3dpbmQgYWJvdmUgdGhpcyAodHlwaWNhbCB0cmFpbmVyIGNvbWZvcnQpCiAgfTsKICBjb25zdCBxcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoVE9QLmxvY2F0aW9uLnNlYXJjaCk7CiAgY29uc3QgREVNTyA9IHFzLmhhcygiZGVtbyIpOwoKICAvKiAtLS0tLS0tLS0tIEhlbHBlcnMgLS0tLS0tLS0tLSAqLwogIGNvbnN0ICQgPSBpZCA9PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CiAgY29uc3QgcGFkID0gbiA9PiBTdHJpbmcobikucGFkU3RhcnQoMiwiMCIpOwogIGNvbnN0IG5vcm0gPSBkID0+ICgoZCAlIDM2MCkgKyAzNjApICUgMzYwOwoKICBmdW5jdGlvbiB0aWNrKCl7CiAgICBjb25zdCBkID0gbmV3IERhdGUoKTsKICAgICQoImNsa0wiKS50ZXh0Q29udGVudCA9IGQudG9Mb2NhbGVUaW1lU3RyaW5nKFtdLCB7aG91cjoibnVtZXJpYyIsIG1pbnV0ZToiMi1kaWdpdCJ9KTsKICAgICQoImNsa1oiKS50ZXh0Q29udGVudCA9IHBhZChkLmdldFVUQ0hvdXJzKCkpICsgcGFkKGQuZ2V0VVRDTWludXRlcygpKSArICJaIjsKICAgIGlmIChzdGF0ZS5vYnNEYXRlKSByZW5kZXJBZ2UoKTsKICB9CgogIC8qIC0tLS0tLS0tLS0gTUVUQVIgcGFyc2VyIC0tLS0tLS0tLS0gKi8KICBmdW5jdGlvbiBwYXJzZUZyYWMocyl7CiAgICAvLyAiMSAxLzIiLCAiMS8yIiwgIjEwIiwgIk0xLzQiLCAiUDYiCiAgICBzID0gcy5yZXBsYWNlKC9eW01QXS8sIiIpOwogICAgbGV0IHYgPSAwOwogICAgZm9yIChjb25zdCBwYXJ0IG9mIHMuc3BsaXQoIiAiKSkgewogICAgICBpZiAocGFydC5pbmNsdWRlcygiLyIpKSB7IGNvbnN0IFthLGJdID0gcGFydC5zcGxpdCgiLyIpLm1hcChOdW1iZXIpOyB2ICs9IGEvYjsgfQogICAgICBlbHNlIHYgKz0gTnVtYmVyKHBhcnQpOwogICAgfQogICAgcmV0dXJuIHY7CiAgfQogIGZ1bmN0aW9uIHBhcnNlTWV0YXIocmF3KXsKICAgIGNvbnN0IG91dCA9IHsgcmF3OiByYXcudHJpbSgpLCBjbG91ZHM6IFtdLCB3eDogW10gfTsKICAgIGxldCBib2R5ID0gb3V0LnJhdy5zcGxpdCgiIFJNSyAiKVswXTsKICAgIGxldCB0b2tlbnMgPSBib2R5LnNwbGl0KC9ccysvKTsKICAgIC8vIGRyb3AgbGVhZGluZyB0eXBlIC8gc3RhdGlvbgogICAgd2hpbGUgKHRva2Vucy5sZW5ndGggJiYgL14oTUVUQVJ8U1BFQ0l8Q09SfEFVVE8pJC8udGVzdCh0b2tlbnNbMF0pKSB7IGlmICh0b2tlbnNbMF09PT0iU1BFQ0kiKSBvdXQuc3BlY2kgPSB0cnVlOyB0b2tlbnMuc2hpZnQoKTsgfQogICAgb3V0LnN0YXRpb24gPSB0b2tlbnMuc2hpZnQoKTsKICAgIGNvbnN0IHRtID0gdG9rZW5zWzBdICYmIHRva2Vuc1swXS5tYXRjaCgvXihcZHsyfSkoXGR7Mn0pKFxkezJ9KVokLyk7CiAgICBpZiAodG0pIHsKICAgICAgdG9rZW5zLnNoaWZ0KCk7CiAgICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7CiAgICAgIGxldCBkID0gbmV3IERhdGUoRGF0ZS5VVEMobm93LmdldFVUQ0Z1bGxZZWFyKCksIG5vdy5nZXRVVENNb250aCgpLCArdG1bMV0sICt0bVsyXSwgK3RtWzNdKSk7CiAgICAgIGlmIChkIC0gbm93ID4gMio4NjRlNSkgZCA9IG5ldyBEYXRlKERhdGUuVVRDKG5vdy5nZXRVVENGdWxsWWVhcigpLCBub3cuZ2V0VVRDTW9udGgoKS0xLCArdG1bMV0sICt0bVsyXSwgK3RtWzNdKSk7CiAgICAgIG91dC5kYXRlID0gZDsKICAgIH0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSsrKSB7CiAgICAgIGNvbnN0IHQgPSB0b2tlbnNbaV07CiAgICAgIGxldCBtOwogICAgICBpZiAodCA9PT0gIkFVVE8iIHx8IHQgPT09ICJDT1IiKSBjb250aW51ZTsKICAgICAgaWYgKChtID0gdC5tYXRjaCgvXihcZHszfXxWUkIpKFxkezIsM30pKD86RyhcZHsyLDN9KSk\/S1QkLykpKSB7CiAgICAgICAgb3V0LndkaXIgPSBtWzFdID09PSAiVlJCIiA\/ICJWUkIiIDogK21bMV07IG91dC53c3BkID0gK21bMl07IG91dC53Z3N0ID0gbVszXSA\/ICttWzNdIDogbnVsbDsgY29udGludWU7CiAgICAgIH0KICAgICAgaWYgKChtID0gdC5tYXRjaCgvXihcZHszfSlWKFxkezN9KSQvKSkpIHsgb3V0Lnd2YXIgPSBbK21bMV0sICttWzJdXTsgY29udGludWU7IH0KICAgICAgaWYgKC9eXGQkLy50ZXN0KHQpICYmIHRva2Vuc1tpKzFdICYmIC9eW01QXT9cZFwvXGQrU00kLy50ZXN0KHRva2Vuc1tpKzFdKSkgewogICAgICAgIG91dC52aXMgPSBwYXJzZUZyYWModCArICIgIiArIHRva2Vuc1tpKzFdLnJlcGxhY2UoIlNNIiwiIikpOyBvdXQudmlzUmF3ID0gdCArICIgIiArIHRva2Vuc1tpKzFdOyBpKys7IGNvbnRpbnVlOwogICAgICB9CiAgICAgIGlmICgobSA9IHQubWF0Y2goL14oW01QXT9bXGRcL10rKVNNJC8pKSkgeyBvdXQudmlzID0gcGFyc2VGcmFjKG1bMV0pOyBvdXQudmlzUmF3ID0gdDsgb3V0LnZpc1BsdXMgPSB0LnN0YXJ0c1dpdGgoIlAiKTsgY29udGludWU7IH0KICAgICAgaWYgKChtID0gdC5tYXRjaCgvXihGRVd8U0NUfEJLTnxPVkN8VlYpKFxkezN9KShDQnxUQ1UpPyQvKSkpIHsgb3V0LmNsb3Vkcy5wdXNoKHtjb3ZlcjptWzFdLCBiYXNlOittWzJdKjEwMCwgdHlwZTptWzNdfHwiIn0pOyBjb250aW51ZTsgfQogICAgICBpZiAoL14oU0tDfENMUnxOU0N8TkNEKSQvLnRlc3QodCkpIHsgb3V0LmNsb3Vkcy5wdXNoKHtjb3Zlcjp0LCBiYXNlOm51bGx9KTsgY29udGludWU7IH0KICAgICAgaWYgKChtID0gdC5tYXRjaCgvXihNP1xkezJ9KVwvKE0\/XGR7Mn0pPyQvKSkpIHsKICAgICAgICBjb25zdCBjID0gcyA9PiBzID8gKHNbMF09PT0iTSIgPyAtcy5zbGljZSgxKSA6ICtzKSA6IG51bGw7CiAgICAgICAgb3V0LnRlbXAgPSBjKG1bMV0pOyBvdXQuZGV3cCA9IGMobVsyXSk7IGNvbnRpbnVlOwogICAgICB9CiAgICAgIGlmICgobSA9IHQubWF0Y2goL15BKFxkezR9KSQvKSkpIHsgb3V0LmFsdGltID0gK21bMV0vMTAwOyBjb250aW51ZTsgfQogICAgICBpZiAoKG0gPSB0Lm1hdGNoKC9eUShcZHs0fSkkLykpKSB7IG91dC5hbHRpbSA9ICttWzFdKjAuMDI5NTMwMDsgY29udGludWU7IH0KICAgICAgaWYgKC9eKFwrfC18VkMpPyhNSXxQUnxCQ3xEUnxCTHxTSHxUU3xGWik\/KERafFJBfFNOfFNHfElDfFBMfEdSfEdTfFVQfEJSfEZHfEZVfFZBfERVfFNBfEhafFBZfFBPfFNRfEZDfFNTfERTfFRTKSskLy50ZXN0KHQpKSB7IG91dC53eC5wdXNoKHQpOyBjb250aW51ZTsgfQogICAgfQogICAgLy8gcmVtYXJrczogcHJlY2lzZSB0ZW1wIFQwMTIzMDA2NwogICAgY29uc3Qgcm1rID0gb3V0LnJhdy5zcGxpdCgiIFJNSyAiKVsxXSB8fCAiIjsKICAgIGNvbnN0IHRwID0gcm1rLm1hdGNoKC9cYlQoWzAxXSkoXGR7M30pKFswMV0pKFxkezN9KVxiLyk7CiAgICBpZiAodHApIHsgb3V0LnRlbXBQID0gKHRwWzFdPT09IjEiPy0xOjEpKigrdHBbMl0pLzEwOyBvdXQuZGV3cFAgPSAodHBbM109PT0iMSI\/LTE6MSkqKCt0cFs0XSkvMTA7IH0KICAgIG91dC5tYWludCA9IC9cJCQvLnRlc3Qob3V0LnJhdy50cmltKCkpOwogICAgcmV0dXJuIG91dDsKICB9CgogIGZ1bmN0aW9uIGNlaWxpbmdPZihtKXsKICAgIGNvbnN0IGMgPSBtLmNsb3Vkcy5maW5kKGMgPT4gWyJCS04iLCJPVkMiLCJWViJdLmluY2x1ZGVzKGMuY292ZXIpKTsKICAgIHJldHVybiBjID8gYy5iYXNlIDogbnVsbDsKICB9CiAgZnVuY3Rpb24gZmxpZ2h0Q2F0KG0pewogICAgY29uc3QgY2VpbCA9IGNlaWxpbmdPZihtKSwgdmlzID0gbS52aXM7CiAgICBpZiAodmlzID09IG51bGwgJiYgY2VpbCA9PSBudWxsKSByZXR1cm4gIlVOSyI7CiAgICBjb25zdCBjID0gY2VpbCA9PSBudWxsID8gOTk5OTkgOiBjZWlsLCB2ID0gdmlzID09IG51bGwgPyA5OSA6IHZpczsKICAgIGlmIChjIDwgNTAwIHx8IHYgPCAxKSByZXR1cm4gIkxJRlIiOwogICAgaWYgKGMgPCAxMDAwIHx8IHYgPCAzKSByZXR1cm4gIklGUiI7CiAgICBpZiAoYyA8PSAzMDAwIHx8IHYgPD0gNSkgcmV0dXJuICJNVkZSIjsKICAgIHJldHVybiAiVkZSIjsKICB9CiAgY29uc3QgQ0FUX1RYVCA9IHsKICAgIFZGUjoiVmlzdWFsIGZsaWdodCBydWxlcy4gQ2VpbGluZyBhYm92ZSAzLDAwMCBmdCBhbmQgdmlzaWJpbGl0eSBvdmVyIDUgU00uIiwKICAgIE1WRlI6Ik1hcmdpbmFsIFZGUi4gQ2VpbGluZyAxLDAwMOKAkzMsMDAwIGZ0IG9yIHZpc2liaWxpdHkgM+KAkzUgU00uIiwKICAgIElGUjoiSW5zdHJ1bWVudCBmbGlnaHQgcnVsZXMuIENlaWxpbmcgNTAw4oCTOTk5IGZ0IG9yIHZpc2liaWxpdHkgMeKAkzMgU00uIiwKICAgIExJRlI6IkxvdyBJRlIuIENlaWxpbmcgYmVsb3cgNTAwIGZ0IG9yIHZpc2liaWxpdHkgdW5kZXIgMSBTTS4iLAogICAgVU5LOiJDYXRlZ29yeSB1bmF2YWlsYWJsZSBmcm9tIHRoaXMgcmVwb3J0LiIKICB9OwogIGNvbnN0IENBVF9DT0xPUl9IRVggPSB7VkZSOiIjM0NDQjdGIixNVkZSOiIjNEM4REZGIixJRlI6IiNGMDUwNEYiLExJRlI6IiNEODVGREIiLFVOSzoiIzZGOEFBMyJ9OwogIGNvbnN0IENBVF9DT0xPUiA9IHtWRlI6InZhcigtLXZmcikiLE1WRlI6InZhcigtLW12ZnIpIixJRlI6InZhcigtLWlmcikiLExJRlI6InZhcigtLWxpZnIpIixVTks6InZhcigtLXVuaykifTsKCiAgY29uc3QgV1ggPSB7Ii0iOiJMaWdodCAiLCIrIjoiSGVhdnkgIixWQzoiTmVhcmJ5ICIsTUk6InNoYWxsb3cgIixQUjoicGFydGlhbCAiLEJDOiJwYXRjaGVzIG9mICIsRFI6ImRyaWZ0aW5nICIsQkw6ImJsb3dpbmcgIixTSDoic2hvd2VycyBvZiAiLFRTOiJ0aHVuZGVyc3Rvcm0gIixGWjoiZnJlZXppbmcgIiwKICAgIERaOiJkcml6emxlIixSQToicmFpbiIsU046InNub3ciLFNHOiJzbm93IGdyYWlucyIsSUM6ImljZSBjcnlzdGFscyIsUEw6ImljZSBwZWxsZXRzIixHUjoiaGFpbCIsR1M6InNtYWxsIGhhaWwiLFVQOiJ1bmtub3duIHByZWNpcCIsQlI6Im1pc3QiLEZHOiJmb2ciLEZVOiJzbW9rZSIsVkE6InZvbGNhbmljIGFzaCIsRFU6ImR1c3QiLFNBOiJzYW5kIixIWjoiaGF6ZSIsUFk6InNwcmF5IixQTzoiZHVzdCB3aGlybHMiLFNROiJzcXVhbGxzIixGQzoiZnVubmVsIGNsb3VkIixTUzoic2FuZHN0b3JtIixEUzoiZHVzdHN0b3JtIn07CiAgZnVuY3Rpb24gd3hUZXh0KGNvZGUpewogICAgbGV0IHMgPSAiIiwgcmVzdCA9IGNvZGU7CiAgICBjb25zdCBwcmUgPSByZXN0Lm1hdGNoKC9eKFwrfC18VkMpLyk7IGlmIChwcmUpeyBzICs9IFdYW3ByZVsxXV07IHJlc3QgPSByZXN0LnNsaWNlKHByZVsxXS5sZW5ndGgpOyB9CiAgICBjb25zdCBwYXJ0cyA9IHJlc3QubWF0Y2goLy57Mn0vZykgfHwgW107CiAgICBwYXJ0cy5mb3JFYWNoKHAgPT4gcyArPSAoV1hbcF18fHApICsgKHA9PT0iVFMiICYmIHBhcnRzLmxlbmd0aD4xID8gIndpdGggIiA6IChbIk1JIiwiUFIiLCJCQyIsIkRSIiwiQkwiLCJTSCIsIkZaIl0uaW5jbHVkZXMocCkgPyAiIiA6ICIgIikpKTsKICAgIHMgPSBzLnJlcGxhY2UoL1xzKy9nLCIgIikudHJpbSgpOwogICAgcmV0dXJuIHMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzLnNsaWNlKDEpOwogIH0KICBjb25zdCBDT1ZFUiA9IHtGRVc6IkZldyIsU0NUOiJTY2F0dGVyZWQiLEJLTjoiQnJva2VuIixPVkM6Ik92ZXJjYXN0IixWVjoiVmVydGljYWwgdmlzIixDTFI6IkNsZWFyIGJlbG93IDEyLDAwMCIsU0tDOiJTa3kgY2xlYXIiLE5TQzoiTm8gc2lnbmlmaWNhbnQgY2xvdWQiLE5DRDoiTm8gY2xvdWQgZGV0ZWN0ZWQifTsKCiAgLyogLS0tLS0tLS0tLSBQZXJmb3JtYW5jZSAtLS0tLS0tLS0tICovCiAgZnVuY3Rpb24gcHJlc3N1cmVBbHQoYWx0KXsgcmV0dXJuIENGRy5lbGV2RnQgKyAoMjkuOTIgLSBhbHQpICogMTAwMDsgfQogIGZ1bmN0aW9uIGRlbnNpdHlBbHQoYWx0LCB0Qyl7CiAgICBjb25zdCBwYSA9IHByZXNzdXJlQWx0KGFsdCk7CiAgICBjb25zdCBpc2EgPSAxNSAtIDEuOTggKiBwYSAvIDEwMDA7CiAgICByZXR1cm4gcGEgKyAxMTguOCAqICh0QyAtIGlzYSk7CiAgfQogIGZ1bmN0aW9uIHJoKHQsZCl7IGNvbnN0IGY9eD0+TWF0aC5leHAoMTcuNjI1KngvKDI0My4wNCt4KSk7IHJldHVybiAxMDAqZihkKS9mKHQpOyB9CgogIC8qIC0tLS0tLS0tLS0gU3VucmlzZSAvIHN1bnNldCAoTk9BQSkgLS0tLS0tLS0tLSAqLwogIGZ1bmN0aW9uIHN1blRpbWVzKGRhdGUsIGxhdCwgbG9uKXsKICAgIGNvbnN0IHJhZCA9IE1hdGguUEkvMTgwOwogICAgY29uc3QgZGF5ID0gTWF0aC5mbG9vcigoRGF0ZS5VVEMoZGF0ZS5nZXRGdWxsWWVhcigpLGRhdGUuZ2V0TW9udGgoKSxkYXRlLmdldERhdGUoKSkgLSBEYXRlLlVUQygyMDAwLDAsMSwxMikpLzg2NGU1KTsKICAgIGNvbnN0IEpzdGFyID0gZGF5IC0gbG9uLzM2MDsKICAgIGNvbnN0IE0gPSBub3JtKDM1Ny41MjkxICsgMC45ODU2MDAyOCAqIEpzdGFyKTsKICAgIGNvbnN0IEMgPSAxLjkxNDgqTWF0aC5zaW4oTSpyYWQpICsgMC4wMipNYXRoLnNpbigyKk0qcmFkKSArIDAuMDAwMypNYXRoLnNpbigzKk0qcmFkKTsKICAgIGNvbnN0IEwgPSBub3JtKE0gKyBDICsgMTgwICsgMTAyLjkzNzIpOwogICAgY29uc3QgSnQgPSAyNDUxNTQ1ICsgSnN0YXIgKyAwLjAwNTMqTWF0aC5zaW4oTSpyYWQpIC0gMC4wMDY5Kk1hdGguc2luKDIqTCpyYWQpOwogICAgY29uc3QgZGVjID0gTWF0aC5hc2luKE1hdGguc2luKEwqcmFkKSpNYXRoLnNpbigyMy40Mzk3KnJhZCkpOwogICAgY29uc3QgZm4gPSBoMCA9PiB7CiAgICAgIGNvbnN0IGNvc3cgPSAoTWF0aC5zaW4oaDAqcmFkKSAtIE1hdGguc2luKGxhdCpyYWQpKk1hdGguc2luKGRlYykpIC8gKE1hdGguY29zKGxhdCpyYWQpKk1hdGguY29zKGRlYykpOwogICAgICBjb25zdCB3ID0gTWF0aC5hY29zKE1hdGgubWF4KC0xLE1hdGgubWluKDEsY29zdykpKS9yYWQ7CiAgICAgIGNvbnN0IHRvRGF0ZSA9IGogPT4gbmV3IERhdGUoKGogLSAyNDQwNTg3LjUpICogODY0ZTUpOwogICAgICByZXR1cm4gW3RvRGF0ZShKdCAtIHcvMzYwKSwgdG9EYXRlKEp0ICsgdy8zNjApXTsKICAgIH07CiAgICBjb25zdCBbcmlzZSxzZXRdID0gZm4oLTAuODMzKTsKICAgIGNvbnN0IFtkYXduLGR1c2tdID0gZm4oLTYpOwogICAgcmV0dXJuIHtyaXNlLHNldCxkYXduLGR1c2t9OwogIH0KICBjb25zdCBobSA9IGQgPT4gZC50b0xvY2FsZVRpbWVTdHJpbmcoW10sIHtob3VyOiJudW1lcmljIiwgbWludXRlOiIyLWRpZ2l0In0pOwoKICAvKiAtLS0tLS0tLS0tIENvbXBhc3MgLS0tLS0tLS0tLSAqLwogIGZ1bmN0aW9uIGRyYXdDb21wYXNzKG0pewogICAgY29uc3Qgc3ZnID0gJCgiY29tcGFzcyIpOwogICAgY29uc3QgY3g9MjAwLCBjeT0yMDAsIFI9MTY4OwogICAgY29uc3Qgcnd5VHJ1ZSA9IG5vcm0oQ0ZHLnJ3eU1hZ0hkZyArIENGRy5tYWdWYXIpOwogICAgbGV0IHMgPSAiIjsKICAgIHMgKz0gYDxkZWZzPjxmaWx0ZXIgaWQ9ImdsIiB4PSItNTAlIiB5PSItNTAlIiB3aWR0aD0iMjAwJSIgaGVpZ2h0PSIyMDAlIj48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIzLjIiIHJlc3VsdD0iYiIvPjxmZU1lcmdlPjxmZU1lcmdlTm9kZSBpbj0iYiIvPjxmZU1lcmdlTm9kZSBpbj0iU291cmNlR3JhcGhpYyIvPjwvZmVNZXJnZT48L2ZpbHRlcj48L2RlZnM+YDsKICAgIHMgKz0gYDxjaXJjbGUgY3g9IiR7Y3h9IiBjeT0iJHtjeX0iIHI9IiR7Un0iIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzYxQ0FFMSIgc3Ryb2tlLXdpZHRoPSIxLjUiIGZpbHRlcj0idXJsKCNnbCkiLz5gOwogICAgcyArPSBgPGNpcmNsZSBjeD0iJHtjeH0iIGN5PSIke2N5fSIgcj0iJHtSLTQ4fSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZ2JhKDk3LDIwMiwyMjUsLjE4KSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtZGFzaGFycmF5PSIyIDYiIGNsYXNzPSJyaW5ncHVsc2UiLz5gOwogICAgcyArPSBgPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJzd2ciIHgxPSIwIiB5MT0iMCIgeDI9IjEiIHkyPSIwIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM2MUNBRTEiIHN0b3Atb3BhY2l0eT0iMCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzYxQ0FFMSIgc3RvcC1vcGFjaXR5PSIuMjIiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz4KICAgICAgPGcgY2xhc3M9InN3ZWVwIj48cGF0aCBkPSJNJHtjeH0gJHtjeX0gTCR7Y3h9ICR7Y3ktUisyfSBBJHtSLTJ9ICR7Ui0yfSAwIDAgMSAke2N4KyhSLTIpKk1hdGguc2luKE1hdGguUEkvNil9ICR7Y3ktKFItMikqTWF0aC5jb3MoTWF0aC5QSS82KX0gWiIgZmlsbD0idXJsKCNzd2cpIi8+CiAgICAgIDxsaW5lIHgxPSIke2N4fSIgeTE9IiR7Y3l9IiB4Mj0iJHtjeCsoUi0yKSpNYXRoLnNpbihNYXRoLlBJLzYpfSIgeTI9IiR7Y3ktKFItMikqTWF0aC5jb3MoTWF0aC5QSS82KX0iIHN0cm9rZT0iIzYxQ0FFMSIgc3Ryb2tlLW9wYWNpdHk9Ii41NSIgc3Ryb2tlLXdpZHRoPSIxLjIiLz48L2c+YDsKICAgIGZvciAobGV0IGE9MDthPDM2MDthKz0xMCl7CiAgICAgIGNvbnN0IG1ham9yID0gYSUzMD09PTAsIHIxID0gbWFqb3I\/Ui0xNjpSLTk7CiAgICAgIGNvbnN0IHgxPWN4K1IqTWF0aC5zaW4oYSpNYXRoLlBJLzE4MCksIHkxPWN5LVIqTWF0aC5jb3MoYSpNYXRoLlBJLzE4MCk7CiAgICAgIGNvbnN0IHgyPWN4K3IxKk1hdGguc2luKGEqTWF0aC5QSS8xODApLCB5Mj1jeS1yMSpNYXRoLmNvcyhhKk1hdGguUEkvMTgwKTsKICAgICAgcyArPSBgPGxpbmUgeDE9IiR7eDF9IiB5MT0iJHt5MX0iIHgyPSIke3gyfSIgeTI9IiR7eTJ9IiBzdHJva2U9IiR7bWFqb3I\/IiM5RkI2Q0IiOiIjM0U1RjdFIn0iIHN0cm9rZS13aWR0aD0iJHttYWpvcj8yOjF9Ii8+YDsKICAgIH0KICAgIFtbIk4iLDBdLFsiRSIsOTBdLFsiUyIsMTgwXSxbIlciLDI3MF1dLmZvckVhY2goKFtsLGFdKT0+ewogICAgICBjb25zdCByPVItMzQ7IHMgKz0gYDx0ZXh0IHg9IiR7Y3grcipNYXRoLnNpbihhKk1hdGguUEkvMTgwKX0iIHk9IiR7Y3ktcipNYXRoLmNvcyhhKk1hdGguUEkvMTgwKSs3fSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9IlBvcHBpbnMsc2Fucy1zZXJpZiIgZm9udC13ZWlnaHQ9IjYwMCIgZm9udC1zaXplPSIyMCIgZmlsbD0iJHtsPT09Ik4iPyIjNjFDQUUxIjoiIzlGQjZDQiJ9Ij4ke2x9PC90ZXh0PmA7CiAgICB9KTsKICAgIC8vIHZhcmlhYmxlIHdpbmQgYXJjCiAgICBpZiAobSAmJiBtLnd2YXIpewogICAgICBjb25zdCBbYTEsYTJdID0gbS53dmFyLCByID0gUi00OwogICAgICBjb25zdCBzcGFuID0gbm9ybShhMi1hMSk7CiAgICAgIGNvbnN0IHAgPSBhID0+IFtjeCtyKk1hdGguc2luKGEqTWF0aC5QSS8xODApLCBjeS1yKk1hdGguY29zKGEqTWF0aC5QSS8xODApXTsKICAgICAgY29uc3QgW3gxLHkxXT1wKGExKSwgW3gyLHkyXT1wKGEyKTsKICAgICAgcyArPSBgPHBhdGggZD0iTSR7eDF9ICR7eTF9IEEke3J9ICR7cn0gMCAke3NwYW4+MTgwPzE6MH0gMSAke3gyfSAke3kyfSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjRjJCODRCIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgZmlsdGVyPSJ1cmwoI2dsKSIvPmA7CiAgICB9CiAgICAvLyBydW53YXkKICAgIHMgKz0gYDxnIHRyYW5zZm9ybT0icm90YXRlKCR7cnd5VHJ1ZX0gJHtjeH0gJHtjeX0pIj4KICAgICAgPHJlY3QgeD0iJHtjeC0xNX0iIHk9IiR7Y3ktMTEwfSIgd2lkdGg9IjMwIiBoZWlnaHQ9IjIyMCIgcng9IjMiIGZpbGw9InJnYmEoMTAsMzcsNjQsLjYpIiBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS1vcGFjaXR5PSIuODUiIHN0cm9rZS13aWR0aD0iMS4yIiBmaWx0ZXI9InVybCgjZ2wpIi8+CiAgICAgIDxsaW5lIHgxPSIke2N4fSIgeTE9IiR7Y3ktODB9IiB4Mj0iJHtjeH0iIHkyPSIke2N5KzgwfSIgc3Ryb2tlPSIjRkZGRkZGIiBzdHJva2Utb3BhY2l0eT0iLjgiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtZGFzaGFycmF5PSIxMCA5Ii8+CiAgICAgIDx0ZXh0IHg9IiR7Y3h9IiB5PSIke2N5KzEwNH0iIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJQb3BwaW5zLHNhbnMtc2VyaWYiIGZvbnQtd2VpZ2h0PSI3MDAiIGZvbnQtc2l6ZT0iMTciIGZpbGw9IiNGRkZGRkYiPjA1PC90ZXh0PgogICAgICA8dGV4dCB4PSIke2N4fSIgeT0iJHtjeS05MX0iIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJQb3BwaW5zLHNhbnMtc2VyaWYiIGZvbnQtd2VpZ2h0PSI3MDAiIGZvbnQtc2l6ZT0iMTciIGZpbGw9IiNGRkZGRkYiIHRyYW5zZm9ybT0icm90YXRlKDE4MCAke2N4fSAke2N5LTk3fSkiPjIzPC90ZXh0PgogICAgPC9nPmA7CiAgICAvLyB3aW5kIGFycm93IChwb2ludHMgZG93bndpbmQsIGRyYXduIGZyb20gdGhlIHNpZGUgd2luZCBjb21lcyBmcm9tKQogICAgaWYgKG0gJiYgdHlwZW9mIG0ud2RpciA9PT0gIm51bWJlciIgJiYgbS53c3BkID4gMCl7CiAgICAgIGNvbnN0IGEgPSBtLndkaXI7CiAgICAgIHMgKz0gYDxnIHRyYW5zZm9ybT0icm90YXRlKCR7YX0gJHtjeH0gJHtjeX0pIj4KICAgICAgICA8ZyBmaWx0ZXI9InVybCgjZ2wpIj4KICAgICAgICA8bGluZSB4MT0iJHtjeH0iIHkxPSIke2N5LVIrNn0iIHgyPSIke2N4fSIgeTI9IiR7Y3ktNTB9IiBzdHJva2U9IiM2MUNBRTEiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIke2N4LTE1fSwke2N5LTUyfSAke2N4KzE1fSwke2N5LTUyfSAke2N4fSwke2N5LTIwfSIgZmlsbD0icmdiYSg5NywyMDIsMjI1LC4yNSkiIHN0cm9rZT0iIzYxQ0FFMSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgPGNpcmNsZSBjeD0iJHtjeH0iIGN5PSIke2N5LVIrNn0iIHI9IjciIGZpbGw9IiMwNDBDMTYiIHN0cm9rZT0iIzYxQ0FFMSIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz5gOwogICAgfSBlbHNlIGlmIChtICYmIG0ud2RpciA9PT0gIlZSQiIpIHsKICAgICAgcyArPSBgPHRleHQgeD0iJHtjeH0iIHk9IiR7Y3krOH0iIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJQb3BwaW5zLHNhbnMtc2VyaWYiIGZvbnQtd2VpZ2h0PSI2MDAiIGZvbnQtc2l6ZT0iMjQiIGZpbGw9IiNGMkI4NEIiIHBhaW50LW9yZGVyPSJzdHJva2UiIHN0cm9rZT0iIzA0MEMxNiIgc3Ryb2tlLXdpZHRoPSI2Ij5WQVJJQUJMRTwvdGV4dD5gOwogICAgfSBlbHNlIGlmIChtKSB7CiAgICAgIHMgKz0gYDx0ZXh0IHg9IiR7Y3h9IiB5PSIke2N5Kzh9IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0iUG9wcGlucyxzYW5zLXNlcmlmIiBmb250LXdlaWdodD0iNjAwIiBmb250LXNpemU9IjI2IiBmaWxsPSIjRkZGRkZGIiBwYWludC1vcmRlcj0ic3Ryb2tlIiBzdHJva2U9IiMwNDBDMTYiIHN0cm9rZS13aWR0aD0iNiI+Q0FMTTwvdGV4dD5gOwogICAgfQogICAgc3ZnLmlubmVySFRNTCA9IHM7CiAgfQoKICBmdW5jdGlvbiBjb21wb25lbnRzKG0sIHJ3eU1hZyl7CiAgICBpZiAodHlwZW9mIG0ud2RpciAhPT0gIm51bWJlciIpIHJldHVybiBudWxsOwogICAgY29uc3Qgcnd5VHJ1ZSA9IG5vcm0ocnd5TWFnICsgQ0ZHLm1hZ1Zhcik7CiAgICBjb25zdCBhbmcgPSAobS53ZGlyIC0gcnd5VHJ1ZSkgKiBNYXRoLlBJLzE4MDsKICAgIGNvbnN0IGNhbGMgPSBzcGQgPT4gKHsgaGVhZDogc3BkKk1hdGguY29zKGFuZyksIGNyb3NzOiBzcGQqTWF0aC5zaW4oYW5nKSB9KTsKICAgIGNvbnN0IGJhc2UgPSBjYWxjKG0ud3NwZCksIGd1c3QgPSBtLndnc3QgPyBjYWxjKG0ud2dzdCkgOiBudWxsOwogICAgcmV0dXJuIHsgaGVhZDogYmFzZS5oZWFkLCBjcm9zczogYmFzZS5jcm9zcywgZ0hlYWQ6IGd1c3QgJiYgZ3VzdC5oZWFkLCBnQ3Jvc3M6IGd1c3QgJiYgZ3VzdC5jcm9zcyB9OwogIH0KCiAgZnVuY3Rpb24gcmVuZGVyUnVud2F5cyhtKXsKICAgIGNvbnN0IGVuZHMgPSBbe246IjA1IiwgaGRnOkNGRy5yd3lNYWdIZGd9LHtuOiIyMyIsIGhkZzpDRkcucnd5TWFnSGRnKzE4MH1dOwogICAgY29uc3QgY2FsbSA9ICFtLndzcGQgfHwgbS53c3BkID09PSAwOwogICAgY29uc3QgY29tcHMgPSBlbmRzLm1hcChlID0+ICh7Li4uZSwgYzogY29tcG9uZW50cyhtLCBlLmhkZyl9KSk7CiAgICBsZXQgZmF2ID0gbnVsbDsKICAgIGlmICghY2FsbSAmJiBjb21wc1swXS5jKSBmYXYgPSBjb21wc1swXS5jLmhlYWQgPj0gY29tcHNbMV0uYy5oZWFkID8gIjA1IiA6ICIyMyI7CiAgICBjb25zdCBmbXRIVCA9IHYgPT4gdiA+PSAwID8gYCR7TWF0aC5yb3VuZCh2KX0ga3QgaGVhZGAgOiBgJHtNYXRoLnJvdW5kKC12KX0ga3QgVEFJTGA7CiAgICBjb25zdCBmbXRYID0gdiA9PiBgJHtNYXRoLnJvdW5kKE1hdGguYWJzKHYpKX0ga3QgJHt2ID49IDAgPyAiZnJvbSBSIiA6ICJmcm9tIEwifWA7CiAgICAkKCJyd3lzIikuaW5uZXJIVE1MID0gY29tcHMubWFwKGUgPT4gewogICAgICBsZXQgcm93czsKICAgICAgaWYgKGNhbG0pIHJvd3MgPSBgPGR0PldpbmQ8L2R0PjxkZD5DYWxtPC9kZD48ZHQ+SGVhZGluZzwvZHQ+PGRkPiR7cGFkMyhlLmhkZyl9wrAgTTwvZGQ+YDsKICAgICAgZWxzZSBpZiAoIWUuYykgcm93cyA9IGA8ZHQ+V2luZDwvZHQ+PGRkPlZhcmlhYmxlICR7bS53c3BkfSBrdDwvZGQ+PGR0PkhlYWRpbmc8L2R0PjxkZD4ke3BhZDMoZS5oZGcpfcKwIE08L2RkPmA7CiAgICAgIGVsc2UgewogICAgICAgIGNvbnN0IHhNYXggPSBNYXRoLmFicyhlLmMuZ0Nyb3NzID8\/IGUuYy5jcm9zcyk7CiAgICAgICAgcm93cyA9IGA8ZHQ+SGVhZC9UYWlsPC9kdD48ZGQgY2xhc3M9Im51bSI+JHtmbXRIVChlLmMuaGVhZCl9PC9kZD4KICAgICAgICAgIDxkdD5Dcm9zc3dpbmQ8L2R0PjxkZCBjbGFzcz0ibnVtICR7eE1heD49Q0ZHLnh3V2Fybkt0PyJ4dy1oaWdoIjoiIn0iPiR7Zm10WChlLmMuY3Jvc3MpfTwvZGQ+YDsKICAgICAgICBpZiAobS53Z3N0KSByb3dzICs9IGA8ZHQ+R3VzdCB4d2luZDwvZHQ+PGRkIGNsYXNzPSJudW0gJHtNYXRoLmFicyhlLmMuZ0Nyb3NzKT49Q0ZHLnh3V2Fybkt0PyJ4dy1oaWdoIjoiIn0iPiR7TWF0aC5yb3VuZChNYXRoLmFicyhlLmMuZ0Nyb3NzKSl9IGt0PC9kZD5gOwogICAgICB9CiAgICAgIHJldHVybiBgPGRpdiBjbGFzcz0icnd5ICR7ZmF2PT09ZS5uPyJmYXYiOiIifSI+PGRpdiBjbGFzcz0ibiI+UldZICR7ZS5ufSR7ZmF2PT09ZS5uPyc8c3BhbiBjbGFzcz0idGFnIj5GYXZvcmVkPC9zcGFuPic6IiJ9PC9kaXY+PGRsPiR7cm93c308L2RsPjwvZGl2PmA7CiAgICB9KS5qb2luKCIiKTsKICB9CiAgY29uc3QgcGFkMyA9IG4gPT4gU3RyaW5nKG5vcm0obikpLnBhZFN0YXJ0KDMsIjAiKTsKCiAgLyogLS0tLS0tLS0tLSBSZW5kZXIgLS0tLS0tLS0tLSAqLwogIGNvbnN0IHN0YXRlID0geyBvYnNEYXRlOm51bGwsIHNvdXJjZToiIiB9OwogIGZ1bmN0aW9uIHJlbmRlckFnZSgpewogICAgY29uc3QgbWluID0gTWF0aC5yb3VuZCgoRGF0ZS5ub3coKSAtIHN0YXRlLm9ic0RhdGUpLzYwMDAwKTsKICAgICQoImFnZSIpLnRleHRDb250ZW50ID0gbWluIDwgMSA\/ICJKdXN0IG5vdyIgOiBtaW4gPCA5MCA\/IGAke21pbn0gbWluIGFnb2AgOiBgJHtNYXRoLmZsb29yKG1pbi82MCl9IGggJHttaW4lNjB9IG0gYWdvYDsKICAgICQoImFnZUJveCIpLmNsYXNzTGlzdC50b2dnbGUoInN0YWxlIiwgbWluID4gQ0ZHLnN0YWxlTWluKTsKICAgICQoIm9ic1RpbWUiKS50ZXh0Q29udGVudCA9IGAke3BhZChzdGF0ZS5vYnNEYXRlLmdldFVUQ0hvdXJzKCkpfSR7cGFkKHN0YXRlLm9ic0RhdGUuZ2V0VVRDTWludXRlcygpKX1aIMK3ICR7aG0oc3RhdGUub2JzRGF0ZSl9IGxvY2FsYCArIChtaW4gPiBDRkcuc3RhbGVNaW4gPyAiIMK3IHN0YWxlIiA6ICIiKTsKICB9CgogIGZ1bmN0aW9uIHB1bHNlUmVmcmVzaCgpewogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRpbGUsIC5wYW5lbC5yYXcsIC5zdGF0dXMiKS5mb3JFYWNoKGVsID0+IHsKICAgICAgaWYgKCFlbC5xdWVyeVNlbGVjdG9yKCI6c2NvcGUgPiAuc2NhbiIpKSB7IGNvbnN0IGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsgZC5jbGFzc05hbWUgPSAic2NhbiI7IGVsLnByZXBlbmQoZCk7IH0KICAgIH0pOwogICAgY29uc3QgdyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi53cmFwIik7CiAgICB3LmNsYXNzTGlzdC5yZW1vdmUoInJlZnJlc2hlZCIpOyB2b2lkIHcub2Zmc2V0V2lkdGg7IHcuY2xhc3NMaXN0LmFkZCgicmVmcmVzaGVkIik7CiAgICBzZXRUaW1lb3V0KCgpID0+IHcuY2xhc3NMaXN0LnJlbW92ZSgicmVmcmVzaGVkIiksIDE4MDApOwogIH0KICBmdW5jdGlvbiByZW5kZXIobSl7CiAgICBjb25zdCBjYXQgPSBmbGlnaHRDYXQobSk7CiAgICAkKCJjYXQiKS50ZXh0Q29udGVudCA9IGNhdCA9PT0gIlVOSyIgPyAiLS0tLSIgOiBjYXQ7CiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoIi0tY2F0IiwgQ0FUX0NPTE9SX0hFWFtjYXRdKTsKICAgICQoImNhdERlc2MiKS50ZXh0Q29udGVudCA9IENBVF9UWFRbY2F0XTsKCiAgICAvLyBXaW5kCiAgICBsZXQgd3Y7CiAgICBpZiAobS53c3BkID09IG51bGwpIHd2ID0gIi0tIjsKICAgIGVsc2UgaWYgKG0ud3NwZCA9PT0gMCkgd3YgPSAiQ2FsbSI7CiAgICBlbHNlIHd2ID0gYCR7bS53ZGlyPT09IlZSQiI\/IlZSQiI6cGFkMyhtLndkaXIpKyLCsCJ9IEAgJHttLndzcGR9JHttLndnc3Q\/YCA8c3BhbiBjbGFzcz0iZyI+RyR7bS53Z3N0fTwvc3Bhbj5gOiIifTxzcGFuIGNsYXNzPSJ1Ij5rdDwvc3Bhbj5gOwogICAgJCgid2luZFZhbCIpLmlubmVySFRNTCA9IHd2OwogICAgZHJhd0NvbXBhc3MobSk7CiAgICByZW5kZXJSdW53YXlzKG0pOwoKICAgIC8vIFZpc2liaWxpdHkgJiB3ZWF0aGVyCiAgICAkKCJ2aXMiKS5pbm5lckhUTUwgPSBtLnZpcyA9PSBudWxsID8gIi0tIiA6IGAke20udmlzUGx1cz8iJmd0OyI6IiJ9JHtmbXRWaXMobS52aXMpfTxzcGFuIGNsYXNzPSJ1Ij5TTTwvc3Bhbj5gOwogICAgJCgid3giKS50ZXh0Q29udGVudCA9IG0ud3gubGVuZ3RoID8gbS53eC5tYXAod3hUZXh0KS5qb2luKCIsICIpIDogIk5vIHdlYXRoZXIgcmVwb3J0ZWQiOwogICAgJCgid3giKS5jbGFzc05hbWUgPSAicyIgKyAobS53eC5zb21lKHc9Pi9UU3xGWnxcK3xHUnxGQ3xTUS8udGVzdCh3KSkgPyAiIGFsZXJ0IiA6ICIiKTsKCiAgICAvLyBTa3kKICAgIGNvbnN0IGNlaWwgPSBjZWlsaW5nT2YobSk7CiAgICAkKCJza3kiKS5pbm5lckhUTUwgPSBtLmNsb3Vkcy5sZW5ndGggPyBtLmNsb3Vkcy5tYXAoYyA9PiB7CiAgICAgIGNvbnN0IGlzQ2VpbCA9IGMuYmFzZSE9bnVsbCAmJiBjLmJhc2UgPT09IGNlaWwgJiYgWyJCS04iLCJPVkMiLCJWViJdLmluY2x1ZGVzKGMuY292ZXIpOwogICAgICByZXR1cm4gYDxkaXYgY2xhc3M9IiR7aXNDZWlsPyJjZWlsIjoiIn0iPiR7Q09WRVJbYy5jb3Zlcl18fGMuY292ZXJ9JHtjLmJhc2UhPW51bGw\/YCAke2MuYmFzZS50b0xvY2FsZVN0cmluZygpfWA6IiJ9JHtjLnR5cGU\/IiAiK2MudHlwZToiIn0ke2lzQ2VpbD8iIMK3IGNlaWxpbmciOiIifTwvZGl2PmA7CiAgICB9KS5qb2luKCIiKSA6ICItLSI7CgogICAgLy8gQWx0aW1ldGVyCiAgICBpZiAobS5hbHRpbSl7ICQoImFsdCIpLmlubmVySFRNTCA9IGAke20uYWx0aW0udG9GaXhlZCgyKX08c3BhbiBjbGFzcz0idSI+aW5IZzwvc3Bhbj5gOyAkKCJhbHRIcGEiKS50ZXh0Q29udGVudCA9IGAke01hdGgucm91bmQobS5hbHRpbSozMy44NjM5KX0gaFBhYDsgfQogICAgZWxzZSB7ICQoImFsdCIpLnRleHRDb250ZW50ID0gIi0tIjsgJCgiYWx0SHBhIikuaW5uZXJIVE1MPSImbmJzcDsiOyB9CgogICAgLy8gVGVtcAogICAgY29uc3QgdCA9IG0udGVtcFAgPz8gbS50ZW1wLCBkID0gbS5kZXdwID09IG51bGwgPyBudWxsIDogKG0uZGV3cFAgPz8gbS5kZXdwKTsKICAgIGlmICh0ICE9IG51bGwpewogICAgICBjb25zdCB0ZiA9IE1hdGgucm91bmQodCo5LzUrMzIpOwogICAgICAkKCJ0ZCIpLmlubmVySFRNTCA9IGAke01hdGgucm91bmQodCl9wrA8c3BhbiBjbGFzcz0idSI+LyAke2QhPW51bGw\/TWF0aC5yb3VuZChkKSsiwrAiOiItLSJ9IEM8L3NwYW4+YDsKICAgICAgY29uc3Qgc3AgPSBkIT1udWxsID8gdCAtIGQgOiBudWxsOwogICAgICAkKCJzcHJlYWQiKS50ZXh0Q29udGVudCA9IGAke3RmfcKwRmAgKyAoc3AhPW51bGwgPyBgIMK3IHNwcmVhZCAke3NwLnRvRml4ZWQoMSl9wrAgwrcgUkggJHtNYXRoLnJvdW5kKHJoKHQsZCkpfSVgIDogIiIpOwogICAgICAkKCJzcHJlYWQiKS5jbGFzc05hbWUgPSAicyBudW0iICsgKHNwIT1udWxsICYmIHNwIDw9IDIgPyAiIGFsZXJ0IiA6ICIiKTsKICAgIH0gZWxzZSB7ICQoInRkIikudGV4dENvbnRlbnQ9Ii0tIjsgJCgic3ByZWFkIikuaW5uZXJIVE1MPSImbmJzcDsiOyB9CgogICAgLy8gRGVuc2l0eSBhbHRpdHVkZQogICAgaWYgKHQgIT0gbnVsbCAmJiBtLmFsdGltKXsKICAgICAgY29uc3QgZGEgPSBNYXRoLnJvdW5kKGRlbnNpdHlBbHQobS5hbHRpbSwgdCkvMTApKjEwLCBwYSA9IE1hdGgucm91bmQocHJlc3N1cmVBbHQobS5hbHRpbSkpOwogICAgICAkKCJkYSIpLmlubmVySFRNTCA9IGAke2RhLnRvTG9jYWxlU3RyaW5nKCl9PHNwYW4gY2xhc3M9InUiPmZ0PC9zcGFuPmA7CiAgICAgIGNvbnN0IGRpZmYgPSBkYSAtIENGRy5lbGV2RnQ7CiAgICAgICQoInBhIikudGV4dENvbnRlbnQgPSBgUHJlc3N1cmUgYWx0ICR7cGEudG9Mb2NhbGVTdHJpbmcoKX0gZnQgwrcgJHtkaWZmPj0wPyIrIjoiIn0ke2RpZmYudG9Mb2NhbGVTdHJpbmcoKX0gdnMgZmllbGRgOwogICAgfSBlbHNlIHsgJCgiZGEiKS50ZXh0Q29udGVudD0iLS0iOyAkKCJwYSIpLmlubmVySFRNTD0iJm5ic3A7IjsgfQoKICAgIC8vIFN1bW1hcnkgbGluZQogICAgY29uc3QgcGFydHMgPSBbXTsKICAgIHBhcnRzLnB1c2gobS53c3BkID09PSAwID8gIldpbmQgY2FsbSIgOiBtLndzcGQhPW51bGwgPyBgV2luZCAke20ud2Rpcj09PSJWUkIiPyJ2YXJpYWJsZSI6cGFkMyhtLndkaXIpKyLCsCJ9IGF0ICR7bS53c3BkfSR7bS53Z3N0P2AgZ3VzdGluZyAke20ud2dzdH1gOiIifSBrdGAgOiBudWxsKTsKICAgIHBhcnRzLnB1c2gobS52aXMhPW51bGwgPyBgJHttLnZpc1BsdXM\/Im92ZXIgIjoiIn0ke2ZtdFZpcyhtLnZpcyl9IFNNIHZpc2liaWxpdHlgIDogbnVsbCk7CiAgICBwYXJ0cy5wdXNoKGNlaWwhPW51bGwgPyBgY2VpbGluZyAke2NlaWwudG9Mb2NhbGVTdHJpbmcoKX0gZnRgIDogIm5vIGNlaWxpbmciKTsKICAgICQoInN1bW1hcnkiKS5pbm5lckhUTUwgPSBwYXJ0cy5maWx0ZXIoQm9vbGVhbikuam9pbigiIMK3ICIpLnJlcGxhY2UoL14uLyxjPT5jLnRvVXBwZXJDYXNlKCkpICsKICAgICAgYDxzbWFsbD4ke20uc3BlY2k\/IlNwZWNpYWwgb2JzZXJ2YXRpb24gKFNQRUNJKS4gIjoiIn0ke20ubWFpbnQ\/IkFTT1MgZmxhZ2dlZCBmb3IgbWFpbnRlbmFuY2UgKCQpLiAiOiIifUFsdGltZXRlciAke20uYWx0aW0\/bS5hbHRpbS50b0ZpeGVkKDIpOiItLSJ9PC9zbWFsbD5gOwoKICAgICQoInJhd01ldGFyIikudGV4dENvbnRlbnQgPSBtLnJhdzsKICAgIHN0YXRlLm9ic0RhdGUgPSBtLmRhdGUgfHwgbmV3IERhdGUoKTsKICAgIHJlbmRlckFnZSgpOwogIH0KICBmdW5jdGlvbiBmbXRWaXModil7CiAgICBpZiAodiA+PSAxICYmIE51bWJlci5pc0ludGVnZXIodikpIHJldHVybiBTdHJpbmcodik7CiAgICBjb25zdCB3ID0gTWF0aC5mbG9vcih2KSwgZiA9IHYgLSB3OwogICAgY29uc3QgZnIgPSBbWzAuMTI1LCIxLzgiXSxbMC4yNSwiMS80Il0sWzAuMzc1LCIzLzgiXSxbMC41LCIxLzIiXSxbMC42MjUsIjUvOCJdLFswLjc1LCIzLzQiXV07CiAgICBjb25zdCBiZXN0ID0gZnIucmVkdWNlKChhLGIpPT5NYXRoLmFicyhiWzBdLWYpPE1hdGguYWJzKGFbMF0tZik\/YjphKTsKICAgIGlmIChmIDwgMC4wNikgcmV0dXJuIFN0cmluZyh3KTsKICAgIHJldHVybiAodyA\/IHcgKyAiICIgOiAiIikgKyBiZXN0WzFdOwogIH0KCiAgZnVuY3Rpb24gcmVuZGVyU3VuKCl7CiAgICBjb25zdCBzID0gc3VuVGltZXMobmV3IERhdGUoKSwgQ0ZHLmxhdCwgQ0ZHLmxvbik7CiAgICAkKCJzdW4iKS5pbm5lckhUTUwgPSBgJHtobShzLnJpc2UpLnJlcGxhY2UoL1xzP1tBUF1NL2ksIiIpfTxzcGFuIGNsYXNzPSJ1Ij7ihpE8L3NwYW4+ICR7aG0ocy5zZXQpLnJlcGxhY2UoL1xzP1tBUF1NL2ksIiIpfTxzcGFuIGNsYXNzPSJ1Ij7ihpM8L3NwYW4+YDsKICAgICQoInN1bjIiKS50ZXh0Q29udGVudCA9IGBTdW5yaXNlICR7aG0ocy5yaXNlKX0gwrcgU3Vuc2V0ICR7aG0ocy5zZXQpfSDCtyBDaXZpbCB0d2lsaWdodCBlbmRzICR7aG0ocy5kdXNrKX1gOwogIH0KCiAgLyogLS0tLS0tLS0tLSBEYXRhIHNvdXJjZXMgLS0tLS0tLS0tLQogICAgIFByaW1hcnk6IE5hdGlvbmFsIFdlYXRoZXIgU2VydmljZSBBUEkgKGJyb3dzZXItZnJpZW5kbHksIHdvcmtzIGZyb20gYSBmaWxlLCBHb29nbGUgU2l0ZXMgb3IgYW55IGhvc3QpLgogICAgIEtFUVkncyBBU09TIHBvc3RzIGEgNS1taW51dGUgdXBkYXRlIGJldHdlZW4gaG91cmx5IE1FVEFScy4gVGhvc2UgdXBkYXRlcyBoYXZlIG5vIHJhdyB0ZXh0LAogICAgIHNvIHRoZSBkYXNoYm9hcmQgcmVidWlsZHMgYSBNRVRBUi1zdHlsZSBsaW5lIGZyb20gdGhlaXIgdmFsdWVzIGFuZCBzaG93cyB0aGUgbGFzdCB0cnVlIE1FVEFSIGJlbG93LiAqLwogIGFzeW5jIGZ1bmN0aW9uIGdldEpTT04odXJsKXsKICAgIGNvbnN0IGN0bCA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTsgY29uc3QgdG8gPSBzZXRUaW1lb3V0KCgpPT5jdGwuYWJvcnQoKSwgMTUwMDApOwogICAgdHJ5IHsKICAgICAgY29uc3QgciA9IGF3YWl0IGZldGNoKHVybCwge3NpZ25hbDpjdGwuc2lnbmFsLCBjYWNoZToibm8tc3RvcmUifSk7CiAgICAgIGlmICghci5vaykgdGhyb3cgbmV3IEVycm9yKCJIVFRQICIgKyByLnN0YXR1cyk7CiAgICAgIHJldHVybiBhd2FpdCByLmpzb24oKTsKICAgIH0gZmluYWxseSB7IGNsZWFyVGltZW91dCh0byk7IH0KICB9CiAgY29uc3QgdmFsID0gcSA9PiAocSAmJiB0eXBlb2YgcS52YWx1ZSA9PT0gIm51bWJlciIpID8gcS52YWx1ZSA6IG51bGw7CiAgZnVuY3Rpb24gc3ludGhNZXRhcihwLCBzaWQpewogICAgY29uc3QgdCA9IG5ldyBEYXRlKHAudGltZXN0YW1wKTsKICAgIGNvbnN0IGt0ID0gdiA9PiB2ID09IG51bGwgPyBudWxsIDogTWF0aC5yb3VuZCh2IC8gMS44NTIpOwogICAgY29uc3QgcGFydHMgPSBbc2lkIHx8IENGRy5zdGF0aW9uLCBwYWQodC5nZXRVVENEYXRlKCkpICsgcGFkKHQuZ2V0VVRDSG91cnMoKSkgKyBwYWQodC5nZXRVVENNaW51dGVzKCkpICsgIloiLCAiQVVUTyJdOwogICAgY29uc3Qgc3BkID0ga3QodmFsKHAud2luZFNwZWVkKSksIGdzdCA9IGt0KHZhbChwLndpbmRHdXN0KSksIGRpciA9IHZhbChwLndpbmREaXJlY3Rpb24pOwogICAgaWYgKHNwZCAhPSBudWxsKSB7CiAgICAgIGlmIChzcGQgPT09IDApIHBhcnRzLnB1c2goIjAwMDAwS1QiKTsKICAgICAgZWxzZSBwYXJ0cy5wdXNoKChkaXIgPT0gbnVsbCA\/ICJWUkIiIDogU3RyaW5nKE1hdGgucm91bmQoZGlyLzEwKSoxMCAlIDM2MCB8fCAzNjApLnBhZFN0YXJ0KDMsIjAiKSkgKyBTdHJpbmcoc3BkKS5wYWRTdGFydCgyLCIwIikgKyAoZ3N0ICYmIGdzdCA+IHNwZCA\/ICJHIiArIGdzdCA6ICIiKSArICJLVCIpOwogICAgfQogICAgY29uc3Qgdm0gPSB2YWwocC52aXNpYmlsaXR5KTsKICAgIGlmICh2bSAhPSBudWxsKSB7CiAgICAgIGNvbnN0IHNtID0gdm0gLyAxNjA5LjM0NDsKICAgICAgaWYgKHNtID49IDkuNSkgcGFydHMucHVzaCgiMTBTTSIpOwogICAgICBlbHNlIGlmIChzbSA+PSAxKSBwYXJ0cy5wdXNoKE1hdGgucm91bmQoc20pICsgIlNNIik7CiAgICAgIGVsc2UgeyBjb25zdCBxID0gTWF0aC5tYXgoMSwgTWF0aC5yb3VuZChzbSo0KSk7IHBhcnRzLnB1c2gocSA9PT0gNCA\/ICIxU00iIDogKHEgJSAyID8gcSArICIvNFNNIiA6IChxLzIpICsgIi8yU00iKSk7IH0KICAgIH0KICAgIChwLnByZXNlbnRXZWF0aGVyIHx8IFtdKS5mb3JFYWNoKHcgPT4geyBpZiAody5yYXdTdHJpbmcpIHBhcnRzLnB1c2gody5yYXdTdHJpbmcpOyB9KTsKICAgIGNvbnN0IGxheWVycyA9IHAuY2xvdWRMYXllcnMgfHwgW107CiAgICBpZiAoIWxheWVycy5sZW5ndGgpIHt9CiAgICBsYXllcnMuZm9yRWFjaChjID0+IHsKICAgICAgY29uc3QgYmFzZSA9IGMuYmFzZSAmJiB0eXBlb2YgYy5iYXNlLnZhbHVlID09PSAibnVtYmVyIiA\/IE1hdGgucm91bmQoYy5iYXNlLnZhbHVlICogMy4yODA4NCAvIDEwMCkgOiBudWxsOwogICAgICBpZiAoYy5hbW91bnQgPT09ICJDTFIiIHx8IGMuYW1vdW50ID09PSAiU0tDIikgcGFydHMucHVzaCgiQ0xSIik7CiAgICAgIGVsc2UgaWYgKGJhc2UgIT0gbnVsbCkgcGFydHMucHVzaChjLmFtb3VudCArIFN0cmluZyhiYXNlKS5wYWRTdGFydCgzLCIwIikpOwogICAgfSk7CiAgICBjb25zdCB0YyA9IHZhbChwLnRlbXBlcmF0dXJlKSwgZGMgPSB2YWwocC5kZXdwb2ludCk7CiAgICBjb25zdCBmbXQgPSB2ID0+ICh2IDwgMCA\/ICJNIiA6ICIiKSArIFN0cmluZyhNYXRoLnJvdW5kKE1hdGguYWJzKHYpKSkucGFkU3RhcnQoMiwiMCIpOwogICAgaWYgKHRjICE9IG51bGwpIHBhcnRzLnB1c2goZm10KHRjKSArICIvIiArIChkYyAhPSBudWxsID8gZm10KGRjKSA6ICIiKSk7CiAgICBjb25zdCBwYSA9IHZhbChwLmJhcm9tZXRyaWNQcmVzc3VyZSk7CiAgICBpZiAocGEgIT0gbnVsbCkgcGFydHMucHVzaCgiQSIgKyBNYXRoLnJvdW5kKHBhIC8gMzM4Ni4zODkgKiAxMDApKTsKICAgIGxldCBsaW5lID0gcGFydHMuam9pbigiICIpOwogICAgaWYgKHRjICE9IG51bGwpIHsKICAgICAgY29uc3QgdHQgPSB2ID0+ICh2IDwgMCA\/ICIxIiA6ICIwIikgKyBTdHJpbmcoTWF0aC5yb3VuZChNYXRoLmFicyh2KSoxMCkpLnBhZFN0YXJ0KDMsIjAiKTsKICAgICAgbGluZSArPSAiIFJNSyBUIiArIHR0KHRjKSArIChkYyAhPSBudWxsID8gdHQoZGMpIDogIiIpOwogICAgfQogICAgcmV0dXJuIGxpbmU7CiAgfQogIGFzeW5jIGZ1bmN0aW9uIGZldGNoT2JzKCl7CiAgICB0cnkgewogICAgICBjb25zdCBqID0gYXdhaXQgZ2V0SlNPTihgaHR0cHM6Ly9hcGkud2VhdGhlci5nb3Yvc3RhdGlvbnMvJHtDRkcuc3RhdGlvbn0vb2JzZXJ2YXRpb25zP2xpbWl0PTI0YCk7CiAgICAgIGNvbnN0IGZlYXRzID0gKGouZmVhdHVyZXMgfHwgW10pLm1hcChmID0+IGYucHJvcGVydGllcykuZmlsdGVyKEJvb2xlYW4pCiAgICAgICAgLnNvcnQoKGEsYikgPT4gbmV3IERhdGUoYi50aW1lc3RhbXApIC0gbmV3IERhdGUoYS50aW1lc3RhbXApKTsKICAgICAgaWYgKCFmZWF0cy5sZW5ndGgpIHRocm93IG5ldyBFcnJvcigibm8gb2JzZXJ2YXRpb25zIHJldHVybmVkIik7CiAgICAgIGNvbnN0IG5ld2VzdCA9IGZlYXRzWzBdOwogICAgICBjb25zdCBsYXN0TWV0YXIgPSBmZWF0cy5maW5kKHAgPT4gcC5yYXdNZXNzYWdlICYmIHAucmF3TWVzc2FnZS50cmltKCkpOwogICAgICBpZiAobmV3ZXN0LnJhd01lc3NhZ2UgJiYgbmV3ZXN0LnJhd01lc3NhZ2UudHJpbSgpKQogICAgICAgIHJldHVybiB7IGRlY29kZTogbmV3ZXN0LnJhd01lc3NhZ2UudHJpbSgpLCBtZXRhcjogbmV3ZXN0LnJhd01lc3NhZ2UudHJpbSgpLCBzcmM6ICJOYXRpb25hbCBXZWF0aGVyIFNlcnZpY2UiIH07CiAgICAgIHJldHVybiB7IGRlY29kZTogc3ludGhNZXRhcihuZXdlc3QpLCBtZXRhcjogbGFzdE1ldGFyID8gbGFzdE1ldGFyLnJhd01lc3NhZ2UudHJpbSgpIDogbnVsbCwKICAgICAgICAgICAgICAgZml2ZU1pbjogbmV3IERhdGUobmV3ZXN0LnRpbWVzdGFtcCksIHNyYzogIk5hdGlvbmFsIFdlYXRoZXIgU2VydmljZSDCtyA1LW1pbiBBU09TIiB9OwogICAgfSBjYXRjaChlKSB7CiAgICAgIC8vIEJhY2t1cDogQXZpYXRpb24gV2VhdGhlciBDZW50ZXIgKG9mdGVuIGJsb2NrZWQgZm9yIGJyb3dzZXIgcGFnZXMsIHNvIGl0IGlzIHNlY29uZCkKICAgICAgdHJ5IHsKICAgICAgICBjb25zdCBhID0gYXdhaXQgZ2V0SlNPTihgaHR0cHM6Ly9hdmlhdGlvbndlYXRoZXIuZ292L2FwaS9kYXRhL21ldGFyP2lkcz0ke0NGRy5zdGF0aW9ufSZmb3JtYXQ9anNvbiZob3Vycz0zYCk7CiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYSkgJiYgYS5sZW5ndGggJiYgYVswXS5yYXdPYikgcmV0dXJuIHsgZGVjb2RlOiBhWzBdLnJhd09iLCBtZXRhcjogYVswXS5yYXdPYiwgc3JjOiAiYXZpYXRpb253ZWF0aGVyLmdvdiIgfTsKICAgICAgfSBjYXRjaChlMikge30KICAgICAgdGhyb3cgZTsKICAgIH0KICB9CiAgYXN5bmMgZnVuY3Rpb24gZmV0Y2hUYWYoKXsKICAgIHRyeSB7CiAgICAgIGNvbnN0IGwgPSBhd2FpdCBnZXRKU09OKGBodHRwczovL2FwaS53ZWF0aGVyLmdvdi9wcm9kdWN0cy90eXBlcy9UQUYvbG9jYXRpb25zLyR7Q0ZHLnRhZlN0YXRpb24uc2xpY2UoMSl9YCk7CiAgICAgIGNvbnN0IGZpcnN0ID0gbFsiQGdyYXBoIl0gJiYgbFsiQGdyYXBoIl1bMF07CiAgICAgIGlmIChmaXJzdCkgewogICAgICAgIGNvbnN0IHByb2QgPSBhd2FpdCBnZXRKU09OKGZpcnN0WyJAaWQiXSk7CiAgICAgICAgY29uc3QgdHh0ID0gcHJvZC5wcm9kdWN0VGV4dCB8fCAiIjsKICAgICAgICBjb25zdCBtID0gdHh0Lm1hdGNoKC8oVEFGKD86XHMrQU1EfFxzK0NPUik\/XHMqXG4\/XHMqS1tBLVpdezN9W1xzXFNdKj8pPS8pOwogICAgICAgIGlmIChtKSByZXR1cm4gbVsxXS5yZXBsYWNlKC9ccysvZywgIiAiKS50cmltKCk7CiAgICAgIH0KICAgIH0gY2F0Y2goZSkge30KICAgIHRyeSB7CiAgICAgIGNvbnN0IGogPSBhd2FpdCBnZXRKU09OKGBodHRwczovL2F2aWF0aW9ud2VhdGhlci5nb3YvYXBpL2RhdGEvdGFmP2lkcz0ke0NGRy50YWZTdGF0aW9ufSZmb3JtYXQ9anNvbmApOwogICAgICBpZiAoQXJyYXkuaXNBcnJheShqKSAmJiBqLmxlbmd0aCAmJiBqWzBdLnJhd1RBRikgcmV0dXJuIGpbMF0ucmF3VEFGOwogICAgfSBjYXRjaChlKSB7fQogICAgcmV0dXJuIG51bGw7CiAgfQogIGNvbnN0IGZtdFRhZiA9IHMgPT4gcy5yZXBsYWNlKC9ccysoRk1cZHs2fXxCRUNNR3xURU1QT3xQUk9CXGR7Mn0pL2csICJcbiAgJDEiKTsKCiAgbGV0IGhhdmVEYXRhID0gZmFsc2U7CiAgYXN5bmMgZnVuY3Rpb24gcmVmcmVzaCgpewogICAgdHJ5IHsKICAgICAgbGV0IHIsIHRhZjsKICAgICAgaWYgKERFTU8pIHsKICAgICAgICBjb25zdCBvYiA9IG5ldyBEYXRlKERhdGUubm93KCktMTQqNjAwMDApOyBjb25zdCB6ID0gcGFkKG9iLmdldFVUQ0RhdGUoKSkrcGFkKG9iLmdldFVUQ0hvdXJzKCkpK3BhZChvYi5nZXRVVENNaW51dGVzKCkpKyJaIjsKICAgICAgICBjb25zdCByYXcgPSBgTUVUQVIgS0VRWSAke3p9IEFVVE8gMjUwMTJHMTlLVCAyMTBWMjgwIDEwU00gRkVXMDQ1IFNDVDI1MCAxOC8wNyBBMzAwNCBSTUsgQU8yIFNMUDE3MSBUMDE3ODAwNzJgOwogICAgICAgIHIgPSB7IGRlY29kZTogcmF3LCBtZXRhcjogcmF3LCBzcmM6ICJzYW1wbGUgZGF0YSIgfTsKICAgICAgICB0YWYgPSAiVEFGIEtDTFQgMjcxMTIwWiAyNzEyLzI4MTggMjQwMTBLVCBQNlNNIEZFVzA1MCBGTTI3MTgwMCAyNTAxM0cyMEtUIFA2U00gU0NUMDYwIEZNMjgwMTAwIDIzMDA2S1QgUDZTTSBTS0MiOwogICAgICB9IGVsc2UgewogICAgICAgIHIgPSBhd2FpdCBmZXRjaE9icygpOyB0YWYgPSBhd2FpdCBmZXRjaFRhZigpOwogICAgICB9CiAgICAgIHJlbmRlcihwYXJzZU1ldGFyKHIuZGVjb2RlKSk7CiAgICAgICQoInJhd01ldGFyIikudGV4dENvbnRlbnQgPSByLm1ldGFyIHx8ICJObyBob3VybHkgTUVUQVIgaW4gdGhlIGxhc3QgZmV3IGhvdXJzLiI7CiAgICAgICQoInJhd05vdGUiKS50ZXh0Q29udGVudCA9IHIuZml2ZU1pbiA\/IGBSZWFkaW5ncyBhYm92ZSBhcmUgZnJvbSB0aGUgJHtwYWQoci5maXZlTWluLmdldFVUQ0hvdXJzKCkpfSR7cGFkKHIuZml2ZU1pbi5nZXRVVENNaW51dGVzKCkpfVogZml2ZS1taW51dGUgQVNPUyB1cGRhdGUuIFRoZSB0ZXh0IHNob3dzIHRoZSBsYXN0IGhvdXJseSBNRVRBUi5gIDogIiI7CiAgICAgICQoInJhd05vdGUiKS5oaWRkZW4gPSAhci5maXZlTWluOwogICAgICBpZiAodGFmKSB7ICQoInJhd1RhZiIpLnRleHRDb250ZW50ID0gZm10VGFmKHRhZik7ICQoInRhZlJvdyIpLmhpZGRlbiA9IGZhbHNlOyB9CiAgICAgIGVsc2UgJCgidGFmUm93IikuaGlkZGVuID0gdHJ1ZTsKICAgICAgJCgic3JjIikudGV4dENvbnRlbnQgPSBgV2VhdGhlciBkYXRhOiBOT0FBIC8gTmF0aW9uYWwgV2VhdGhlciBTZXJ2aWNlJHtyLnNyYyA9PT0gInNhbXBsZSBkYXRhIiA\/ICIgKHNhbXBsZSkiIDogIiJ9IMK3IHVwZGF0ZWQgJHtobShuZXcgRGF0ZSgpKX0gwrcgTm90IGFmZmlsaWF0ZWQgd2l0aCBvciBlbmRvcnNlZCBieSBOT0FBIG9yIHRoZSBGQUFgOwogICAgICAkKCJlcnIiKS5oaWRkZW4gPSB0cnVlOyBoYXZlRGF0YSA9IHRydWU7IHB1bHNlUmVmcmVzaCgpOwogICAgfSBjYXRjaChlKSB7CiAgICAgICQoImVyciIpLmhpZGRlbiA9IGZhbHNlOwogICAgICAkKCJlcnIiKS50ZXh0Q29udGVudCA9IChoYXZlRGF0YSA\/ICJMb3N0IGNvbnRhY3Qgd2l0aCB0aGUgd2VhdGhlciBzZXJ2aWNlLiBTaG93aW5nIHRoZSBsYXN0IHJlcG9ydCByZWNlaXZlZC4iIDogIkNhbid0IHJlYWNoIHRoZSB3ZWF0aGVyIHNlcnZpY2UgeWV0LiBDaGVjayB0aGF0IHRoaXMgY29tcHV0ZXIgaXMgb25saW5lLiIpCiAgICAgICAgKyBgIFJldHJ5aW5nIGluICR7Q0ZHLnJlZnJlc2hTZWMvNjB9IG1pbnV0ZXMuICgke2UubWVzc2FnZSB8fCBlfSlgOwogICAgfQogIH0KCgoKICAvKiAtLS0tLS0tLS0tIEFyZWEgYWlycG9ydHMgLS0tLS0tLS0tLQogICAgIExpdmUgTldTIG9ic2VydmF0aW9ucyBmb3IgbmVhcmJ5IGFuZCBjb21tb24gY3Jvc3MtY291bnRyeSBmaWVsZHMuCiAgICAgVHJhZmZpYyBub3RlcyBjb21lIGZyb20gZWFjaCBhaXJwb3J0J3MgRkFBIENoYXJ0IFN1cHBsZW1lbnQgcmVtYXJrcyAodmlhIEFpck5hdiwgT2N0IDIwMjYpLAogICAgIHBsdXMga25vd24gc2t5ZGl2aW5nIG9wZXJhdG9ycy4gQWx3YXlzIGNvbmZpcm0gaW4gdGhlIGN1cnJlbnQgQ2hhcnQgU3VwcGxlbWVudCBhbmQgTk9UQU1zLiAqLwogIGNvbnN0IFNFX1NUQVRFUyA9IFtbW1tbLTg3LjM2LDM1LjBdLFstODUuNjEsMzQuOThdLFstODUuNDMsMzQuMTJdLFstODUuMTgsMzIuODZdLFstODUuMDcsMzIuNThdLFstODQuOTYsMzIuNDJdLFstODUuMCwzMi4zMl0sWy04NC44OSwzMi4yNl0sWy04NS4wNiwzMi4xNF0sWy04NS4wNSwzMi4wMV0sWy04NS4xNCwzMS44NF0sWy04NS4wNCwzMS41NF0sWy04NS4xMSwzMS4yOF0sWy04NS4wLDMxLjBdLFstODUuNSwzMS4wXSxbLTg3LjYsMzEuMF0sWy04Ny42MywzMC44N10sWy04Ny40MSwzMC42N10sWy04Ny40NSwzMC41MV0sWy04Ny4zNywzMC40M10sWy04Ny41MiwzMC4yOF0sWy04Ny42NiwzMC4yNV0sWy04Ny45MSwzMC40MV0sWy04Ny45MywzMC42Nl0sWy04OC4wMSwzMC42OV0sWy04OC4xLDMwLjVdLFstODguMTQsMzAuMzJdLFstODguMzksMzAuMzddLFstODguNDcsMzEuOV0sWy04OC4yNCwzMy44XSxbLTg4LjEsMzQuODldLFstODguMiwzNS4wXSxbLTg3LjM2LDM1LjBdXV1dLFtbW1stODUuNSwzMS4wXSxbLTg1LjAsMzEuMF0sWy04NC44NywzMC43MV0sWy04My41LDMwLjY1XSxbLTgyLjIyLDMwLjU3XSxbLTgyLjE3LDMwLjM2XSxbLTgyLjA1LDMwLjM2XSxbLTgyLjAsMzAuNTZdLFstODIuMDQsMzAuNzVdLFstODEuOTUsMzAuODNdLFstODEuNzIsMzAuNzVdLFstODEuNDQsMzAuNzFdLFstODEuMzgsMzAuMjddLFstODEuMjYsMjkuNzldLFstODAuOTcsMjkuMTVdLFstODAuNTIsMjguNDZdLFstODAuNTksMjguNDFdLFstODAuNTcsMjguMDldLFstODAuMzgsMjcuNzRdLFstODAuMDksMjcuMDJdLFstODAuMDMsMjYuOF0sWy04MC4wNCwyNi41N10sWy04MC4xNSwyNS43NF0sWy04MC4yNCwyNS43Ml0sWy04MC4zNCwyNS40N10sWy04MC4zLDI1LjM4XSxbLTgwLjUsMjUuMl0sWy04MC41NywyNS4yNF0sWy04MC43NiwyNS4xNl0sWy04MS4wOCwyNS4xMl0sWy04MS4xNywyNS4yMl0sWy04MS4xMywyNS4zOF0sWy04MS4zNSwyNS44Ml0sWy04MS41MywyNS45XSxbLTgxLjY4LDI1Ljg0XSxbLTgxLjgsMjYuMDldLFstODEuODMsMjYuMjldLFstODIuMDQsMjYuNTJdLFstODIuMDksMjYuNjddLFstODIuMDYsMjYuODhdLFstODIuMTcsMjYuOTJdLFstODIuMTUsMjYuNzldLFstODIuMjUsMjYuNzZdLFstODIuNTcsMjcuM10sWy04Mi42OSwyNy40NF0sWy04Mi4zOSwyNy44NF0sWy04Mi41OSwyNy44Ml0sWy04Mi43MiwyNy42OV0sWy04Mi44NSwyNy44OV0sWy04Mi42OCwyOC40M10sWy04Mi42NCwyOC44OV0sWy04Mi43NiwyOS4wXSxbLTgyLjgsMjkuMTVdLFstODIuOTksMjkuMThdLFstODMuMjIsMjkuNDJdLFstODMuNCwyOS41Ml0sWy04My40MSwyOS42N10sWy04My41NCwyOS43Ml0sWy04My42NCwyOS44OV0sWy04NC4wMiwzMC4xXSxbLTg0LjM2LDMwLjA2XSxbLTg0LjM0LDI5LjldLFstODQuNDUsMjkuOTNdLFstODQuODcsMjkuNzRdLFstODUuMzEsMjkuN10sWy04NS4zLDI5LjgxXSxbLTg1LjQsMjkuOTRdLFstODUuOTIsMzAuMjRdLFstODYuMywzMC4zNl0sWy04Ni42MywzMC40XSxbLTg2LjkxLDMwLjM3XSxbLTg3LjUyLDMwLjI4XSxbLTg3LjM3LDMwLjQzXSxbLTg3LjQ1LDMwLjUxXSxbLTg3LjQxLDMwLjY3XSxbLTg3LjYzLDMwLjg3XSxbLTg3LjYsMzEuMF0sWy04NS41LDMxLjBdXV1dLFtbW1stODMuMTEsMzUuMF0sWy04My4zMiwzNC43OV0sWy04My4zNCwzNC42OF0sWy04My4wMSwzNC40N10sWy04Mi45LDM0LjQ5XSxbLTgyLjc1LDM0LjI3XSxbLTgyLjcxLDM0LjE1XSxbLTgyLjU2LDMzLjk0XSxbLTgyLjMzLDMzLjgyXSxbLTgyLjE5LDMzLjYzXSxbLTgxLjkzLDMzLjQ2XSxbLTgxLjk0LDMzLjM1XSxbLTgxLjc2LDMzLjE2XSxbLTgxLjQ5LDMzLjAxXSxbLTgxLjQzLDMyLjg0XSxbLTgxLjQyLDMyLjYzXSxbLTgxLjI4LDMyLjU2XSxbLTgxLjEyLDMyLjI5XSxbLTgxLjEyLDMyLjEyXSxbLTgwLjg5LDMyLjAzXSxbLTgxLjEzLDMxLjY5XSxbLTgxLjE4LDMxLjUyXSxbLTgxLjI4LDMxLjM2XSxbLTgxLjI5LDMxLjIxXSxbLTgxLjQsMzEuMTNdLFstODEuNDQsMzAuNzFdLFstODEuNzIsMzAuNzVdLFstODEuOTUsMzAuODNdLFstODIuMDQsMzAuNzVdLFstODIuMCwzMC41Nl0sWy04Mi4wNSwzMC4zNl0sWy04Mi4xNywzMC4zNl0sWy04Mi4yMiwzMC41N10sWy04My41LDMwLjY1XSxbLTg0Ljg3LDMwLjcxXSxbLTg1LjAsMzEuMF0sWy04NS4xMSwzMS4yOF0sWy04NS4wNCwzMS41NF0sWy04NS4xNCwzMS44NF0sWy04NS4wNSwzMi4wMV0sWy04NS4wNiwzMi4xNF0sWy04NC44OSwzMi4yNl0sWy04NS4wLDMyLjMyXSxbLTg0Ljk2LDMyLjQyXSxbLTg1LjA3LDMyLjU4XSxbLTg1LjE4LDMyLjg2XSxbLTg1LjQzLDM0LjEyXSxbLTg1LjYxLDM0Ljk4XSxbLTg0LjMyLDM0Ljk5XSxbLTgzLjYyLDM0Ljk4XSxbLTgzLjExLDM1LjBdXV1dLFtbW1stODMuOSwzOC43N10sWy04My42OCwzOC42M10sWy04My41MiwzOC43XSxbLTgzLjE0LDM4LjYzXSxbLTgzLjAzLDM4LjczXSxbLTgyLjg5LDM4Ljc2XSxbLTgyLjg1LDM4LjU5XSxbLTgyLjczLDM4LjU2XSxbLTgyLjU5LDM4LjQyXSxbLTgyLjYyLDM4LjEyXSxbLTgyLjUsMzcuOTNdLFstODIuMzQsMzcuNzhdLFstODIuMjksMzcuNjddLFstODIuMSwzNy41NV0sWy04MS45NywzNy41NF0sWy04Mi4zNSwzNy4yN10sWy04Mi43MiwzNy4xMl0sWy04Mi43MiwzNy4wNF0sWy04Mi44NywzNi45OF0sWy04Mi44OCwzNi44OV0sWy04My4wNywzNi44NV0sWy04My4xNCwzNi43NF0sWy04My42NywzNi42XSxbLTgzLjY5LDM2LjU4XSxbLTg0LjU0LDM2LjU5XSxbLTg1LjI5LDM2LjYzXSxbLTg1LjQ5LDM2LjYyXSxbLTg2LjU5LDM2LjY2XSxbLTg3Ljg1LDM2LjYzXSxbLTg4LjA3LDM2LjY4XSxbLTg4LjA1LDM2LjVdLFstODkuMywzNi41MV0sWy04OS40MiwzNi41XSxbLTg5LjM2LDM2LjYyXSxbLTg5LjIyLDM2LjU4XSxbLTg5LjEzLDM2Ljk4XSxbLTg5LjE4LDM3LjA0XSxbLTg5LjAzLDM3LjIxXSxbLTg4LjkxLDM3LjIyXSxbLTg4LjU1LDM3LjA3XSxbLTg4LjQyLDM3LjE1XSxbLTg4LjUxLDM3LjI5XSxbLTg4LjQ4LDM3LjM5XSxbLTg4LjA3LDM3LjQ4XSxbLTg4LjE2LDM3LjY2XSxbLTg4LjAzLDM3LjhdLFstODcuOTMsMzcuODldLFstODcuNjgsMzcuOV0sWy04Ny42LDM3Ljk4XSxbLTg3LjUxLDM3LjldLFstODcuMzgsMzcuOTRdLFstODcuMTMsMzcuNzldLFstODcuMDUsMzcuODldLFstODYuOCwzNy45OV0sWy04Ni43MywzNy44OV0sWy04Ni41LDM3LjkzXSxbLTg2LjUyLDM4LjA0XSxbLTg2LjMsMzguMTddLFstODYuMjYsMzguMDVdLFstODYuMDQsMzcuOTZdLFstODUuOTIsMzguMDJdLFstODUuODMsMzguMjhdLFstODUuNjYsMzguMzNdLFstODUuNTksMzguNDVdLFstODUuNDIsMzguNTNdLFstODUuNDMsMzguNzNdLFstODUuMTcsMzguNjldLFstODQuOTksMzguNzhdLFstODQuODEsMzguNzldLFstODQuODksMzkuMDZdLFstODQuODIsMzkuMV0sWy04NC40MywzOS4xXSxbLTg0LjIzLDM4LjldLFstODQuMjIsMzguODFdLFstODMuOSwzOC43N11dXV0sW1tbWy04MC45OCwzNi41Nl0sWy04MC4yOSwzNi41NV0sWy03OS41MSwzNi41NF0sWy03NS44NywzNi41NV0sWy03NS43NSwzNi4xNV0sWy03Ni4wMywzNi4xOV0sWy03Ni4wNywzNi4xNF0sWy03Ni40MSwzNi4wOF0sWy03Ni40NiwzNi4wM10sWy03Ni42OCwzNi4wMV0sWy03Ni42NywzNS45NF0sWy03Ni40LDM1Ljk5XSxbLTc2LjM2LDM1Ljk0XSxbLTc2LjA2LDM1Ljk5XSxbLTc1Ljk2LDM1LjldLFstNzUuNzgsMzUuOTRdLFstNzUuNzIsMzUuN10sWy03NS43OCwzNS41OF0sWy03NS45LDM1LjU3XSxbLTc2LjE1LDM1LjMyXSxbLTc2LjQ4LDM1LjMxXSxbLTc2LjU0LDM1LjE0XSxbLTc2LjM5LDM0Ljk3XSxbLTc2LjI4LDM0Ljk0XSxbLTc2LjQ5LDM0LjY2XSxbLTc2LjY3LDM0LjY5XSxbLTc2Ljk5LDM0LjY3XSxbLTc3LjIxLDM0LjYxXSxbLTc3LjU2LDM0LjQyXSxbLTc3LjgzLDM0LjE2XSxbLTc3Ljk3LDMzLjg1XSxbLTc4LjE4LDMzLjkyXSxbLTc4LjU0LDMzLjg1XSxbLTc5LjY4LDM0LjhdLFstODAuOCwzNC44Ml0sWy04MC43OCwzNC45NF0sWy04MC45MywzNS4xMV0sWy04MS4wNCwzNS4wNF0sWy04MS4wNCwzNS4xNV0sWy04Mi4yOCwzNS4yXSxbLTgyLjU1LDM1LjE2XSxbLTgyLjc2LDM1LjA3XSxbLTgzLjExLDM1LjBdLFstODMuNjIsMzQuOThdLFstODQuMzIsMzQuOTldLFstODQuMjksMzUuMjNdLFstODQuMSwzNS4yNV0sWy04NC4wMiwzNS40MV0sWy04My43NywzNS41Nl0sWy04My41LDM1LjU3XSxbLTgzLjI1LDM1LjcyXSxbLTgyLjk5LDM1Ljc3XSxbLTgyLjc4LDM2LjBdLFstODIuNjQsMzYuMDZdLFstODIuNjEsMzUuOTddLFstODIuMjIsMzYuMTZdLFstODIuMDQsMzYuMTJdLFstODEuOTEsMzYuM10sWy04MS43MiwzNi4zNV0sWy04MS42OCwzNi41OV0sWy04MC45OCwzNi41Nl1dXV0sW1tbWy04Mi43NiwzNS4wN10sWy04Mi41NSwzNS4xNl0sWy04Mi4yOCwzNS4yXSxbLTgxLjA0LDM1LjE1XSxbLTgxLjA0LDM1LjA0XSxbLTgwLjkzLDM1LjExXSxbLTgwLjc4LDM0Ljk0XSxbLTgwLjgsMzQuODJdLFstNzkuNjgsMzQuOF0sWy03OC41NCwzMy44NV0sWy03OC43MiwzMy44XSxbLTc4Ljk0LDMzLjY0XSxbLTc5LjE1LDMzLjM4XSxbLTc5LjE5LDMzLjE3XSxbLTc5LjM2LDMzLjAxXSxbLTc5LjU4LDMzLjAxXSxbLTc5LjYzLDMyLjg5XSxbLTc5Ljg3LDMyLjc2XSxbLTgwLjAsMzIuNjFdLFstODAuMjEsMzIuNTVdLFstODAuNDMsMzIuNF0sWy04MC40NSwzMi4zM10sWy04MC42NiwzMi4yNV0sWy04MC44OSwzMi4wM10sWy04MS4xMiwzMi4xMl0sWy04MS4xMiwzMi4yOV0sWy04MS4yOCwzMi41Nl0sWy04MS40MiwzMi42M10sWy04MS40MywzMi44NF0sWy04MS40OSwzMy4wMV0sWy04MS43NiwzMy4xNl0sWy04MS45NCwzMy4zNV0sWy04MS45MywzMy40Nl0sWy04Mi4xOSwzMy42M10sWy04Mi4zMywzMy44Ml0sWy04Mi41NiwzMy45NF0sWy04Mi43MSwzNC4xNV0sWy04Mi43NSwzNC4yN10sWy04Mi45LDM0LjQ5XSxbLTgzLjAxLDM0LjQ3XSxbLTgzLjM0LDM0LjY4XSxbLTgzLjMyLDM0Ljc5XSxbLTgzLjExLDM1LjBdLFstODIuNzYsMzUuMDddXV1dLFtbW1stODguMDUsMzYuNV0sWy04OC4wNywzNi42OF0sWy04Ny44NSwzNi42M10sWy04Ni41OSwzNi42Nl0sWy04NS40OSwzNi42Ml0sWy04NS4yOSwzNi42M10sWy04NC41NCwzNi41OV0sWy04My42OSwzNi41OF0sWy04My42NywzNi42XSxbLTgxLjY4LDM2LjU5XSxbLTgxLjcyLDM2LjM1XSxbLTgxLjkxLDM2LjNdLFstODIuMDQsMzYuMTJdLFstODIuMjIsMzYuMTZdLFstODIuNjEsMzUuOTddLFstODIuNjQsMzYuMDZdLFstODIuNzgsMzYuMF0sWy04Mi45OSwzNS43N10sWy04My4yNSwzNS43Ml0sWy04My41LDM1LjU3XSxbLTgzLjc3LDM1LjU2XSxbLTg0LjAyLDM1LjQxXSxbLTg0LjEsMzUuMjVdLFstODQuMjksMzUuMjNdLFstODQuMzIsMzQuOTldLFstODUuNjEsMzQuOThdLFstODcuMzYsMzUuMF0sWy04OC4yLDM1LjBdLFstODguNDcsMzUuMF0sWy05MC4zMSwzNS4wXSxbLTkwLjIxLDM1LjAyXSxbLTkwLjExLDM1LjJdLFstOTAuMTMsMzUuNDRdLFstODkuOTQsMzUuNl0sWy04OS45MSwzNS43Nl0sWy04OS43NiwzNS44MV0sWy04OS43MywzNi4wXSxbLTg5LjUzLDM2LjI1XSxbLTg5LjU0LDM2LjVdLFstODkuNDgsMzYuNV0sWy04OS40MiwzNi41XSxbLTg5LjMsMzYuNTFdLFstODguMDUsMzYuNV1dXV0sW1tbWy03NS40LDM4LjAxXSxbLTc1LjI0LDM4LjAzXSxbLTc1LjM4LDM3Ljg2XSxbLTc1LjUxLDM3LjhdLFstNzUuNTksMzcuNTddLFstNzUuOCwzNy4yXSxbLTc1Ljk3LDM3LjEyXSxbLTc2LjAzLDM3LjI2XSxbLTc1Ljk0LDM3LjU2XSxbLTc1LjY3LDM3Ljk1XSxbLTc1LjQsMzguMDFdXV0sW1tbLTc2LjAyLDM3Ljk1XSxbLTc1Ljk5LDM3Ljk1XSxbLTc2LjA0LDM3Ljk1XSxbLTc2LjAyLDM3Ljk1XV1dLFtbWy03OC4zNSwzOS40Nl0sWy03Ny44MywzOS4xM10sWy03Ny43MiwzOS4zMl0sWy03Ny41NywzOS4zMV0sWy03Ny40NiwzOS4yMl0sWy03Ny40NiwzOS4wOF0sWy03Ny4yNSwzOS4wM10sWy03Ny4xMiwzOC45M10sWy03Ny4wNCwzOC43OV0sWy03Ny4xMywzOC42M10sWy03Ny4yNSwzOC41OV0sWy03Ny4zMywzOC40NV0sWy03Ny4yOCwzOC4zNF0sWy03Ny4wMSwzOC4zN10sWy03Ni45NiwzOC4yMl0sWy03Ni42MSwzOC4xNV0sWy03Ni41MSwzOC4wMl0sWy03Ni4yNCwzNy44OV0sWy03Ni4zNiwzNy42MV0sWy03Ni4yNSwzNy4zOV0sWy03Ni4zOCwzNy4yOV0sWy03Ni40LDM3LjE2XSxbLTc2LjI3LDM3LjA4XSxbLTc2LjQxLDM2Ljk2XSxbLTc2LjYyLDM3LjEyXSxbLTc2LjY3LDM3LjA3XSxbLTc2LjQ5LDM2Ljk1XSxbLTc1Ljk5LDM2LjkyXSxbLTc1Ljg3LDM2LjU1XSxbLTc5LjUxLDM2LjU0XSxbLTgwLjI5LDM2LjU1XSxbLTgwLjk4LDM2LjU2XSxbLTgxLjY4LDM2LjU5XSxbLTgzLjY3LDM2LjZdLFstODMuMTQsMzYuNzRdLFstODMuMDcsMzYuODVdLFstODIuODgsMzYuODldLFstODIuODcsMzYuOThdLFstODIuNzIsMzcuMDRdLFstODIuNzIsMzcuMTJdLFstODIuMzUsMzcuMjddLFstODEuOTcsMzcuNTRdLFstODEuOTksMzcuNDVdLFstODEuODUsMzcuMjldLFstODEuNjgsMzcuMl0sWy04MS41NSwzNy4yMV0sWy04MS4zNiwzNy4zNF0sWy04MS4yMywzNy4yNF0sWy04MC45NywzNy4yOV0sWy04MC41MSwzNy40OF0sWy04MC40NywzNy40Ml0sWy04MC4zLDM3LjUxXSxbLTgwLjI5LDM3LjY5XSxbLTgwLjE4LDM3Ljg1XSxbLTgwLjAsMzguMF0sWy03OS45MiwzOC4xOF0sWy03OS43MiwzOC4zNl0sWy03OS42NSwzOC41OV0sWy03OS40OCwzOC40Nl0sWy03OS4zMSwzOC40MV0sWy03OS4yMSwzOC41XSxbLTc5LjAsMzguODVdLFstNzguODcsMzguNzZdLFstNzguNCwzOS4xN10sWy03OC4zNSwzOS40Nl1dXV0sW1tbWy04MC41Miw0MC42NF0sWy04MC41MiwzOS43Ml0sWy03OS40OCwzOS43Ml0sWy03OS40OSwzOS4yMV0sWy03OS4yOSwzOS4zXSxbLTc5LjA5LDM5LjQ3XSxbLTc4Ljk2LDM5LjQ0XSxbLTc4Ljc3LDM5LjU5XSxbLTc4LjQ3LDM5LjUxXSxbLTc4LjQzLDM5LjYyXSxbLTc4LjI3LDM5LjYyXSxbLTc4LjE3LDM5LjY5XSxbLTc4LjAsMzkuNl0sWy03Ny44MywzOS42XSxbLTc3LjcyLDM5LjMyXSxbLTc3LjgzLDM5LjEzXSxbLTc4LjM1LDM5LjQ2XSxbLTc4LjQsMzkuMTddLFstNzguODcsMzguNzZdLFstNzkuMCwzOC44NV0sWy03OS4yMSwzOC41XSxbLTc5LjMxLDM4LjQxXSxbLTc5LjQ4LDM4LjQ2XSxbLTc5LjY1LDM4LjU5XSxbLTc5LjcyLDM4LjM2XSxbLTc5LjkyLDM4LjE4XSxbLTgwLjAsMzguMF0sWy04MC4xOCwzNy44NV0sWy04MC4yOSwzNy42OV0sWy04MC4zLDM3LjUxXSxbLTgwLjQ3LDM3LjQyXSxbLTgwLjUxLDM3LjQ4XSxbLTgwLjk3LDM3LjI5XSxbLTgxLjIzLDM3LjI0XSxbLTgxLjM2LDM3LjM0XSxbLTgxLjU1LDM3LjIxXSxbLTgxLjY4LDM3LjJdLFstODEuODUsMzcuMjldLFstODEuOTksMzcuNDVdLFstODEuOTcsMzcuNTRdLFstODIuMSwzNy41NV0sWy04Mi4yOSwzNy42N10sWy04Mi4zNCwzNy43OF0sWy04Mi41LDM3LjkzXSxbLTgyLjYyLDM4LjEyXSxbLTgyLjU5LDM4LjQyXSxbLTgyLjMzLDM4LjQ1XSxbLTgyLjI5LDM4LjU4XSxbLTgyLjE3LDM4LjYzXSxbLTgyLjIyLDM4Ljc5XSxbLTgyLjA0LDM5LjAzXSxbLTgxLjg5LDM4Ljg3XSxbLTgxLjc4LDM4Ljk3XSxbLTgxLjgxLDM5LjA4XSxbLTgxLjY5LDM5LjI3XSxbLTgxLjU3LDM5LjI3XSxbLTgxLjQ2LDM5LjQxXSxbLTgxLjM1LDM5LjM0XSxbLTgxLjIyLDM5LjM5XSxbLTgwLjgzLDM5LjcxXSxbLTgwLjc0LDQwLjA4XSxbLTgwLjYsNDAuMzJdLFstODAuNiw0MC40N10sWy04MC42Nyw0MC41OF0sWy04MC41Miw0MC42NF1dXV1dOwogIGNvbnN0IEFSRUEgPSBbCiAgICB7IGlkOiJLQ0xUIiwgbmFtZToiQ2hhcmxvdHRlIERvdWdsYXMgSW50bCIsIGxhdDozNS4yMDgzLCBsb246LTgwLjk2MTQsIHR3cjp0cnVlLCBjaGlwczpbWyJhaXIiLCJDbGFzcyBCIl0sWyJtaWwiLCJBTkcgbWlsaXRhcnkiXSxbIndpbGQiLCJCaXJkcyJdXSwgbm90ZToiQnVzeSBDbGFzcyBCLiBBaXIgTmF0aW9uYWwgR3VhcmQgbWlsaXRhcnkgb3BzIG9uIGZpZWxkLiIgfSwKICAgIHsgaWQ6IktKUUYiLCBuYW1lOiJDb25jb3JkLVBhZGdldHQgUmVnaW9uYWwiLCBsYXQ6MzUuMzg5NiwgbG9uOi04MC43MDc0LCB0d3I6dHJ1ZSwgY2hpcHM6W1siYWlyIiwiVG93ZXJlZCJdLFsiaGVsaSIsIkhlbGlwYWQiXV0sIG5vdGU6IlBhcnQtdGltZSB0b3dlci4gV2hlbiBjbG9zZWQsIGNsZWFyYW5jZSB2aWEgQ2hhcmxvdHRlIEFwcHJvYWNoLiIgfSwKICAgIHsgaWQ6IktVWkEiLCBuYW1lOiJSb2NrIEhpbGwvWW9yayBDb3VudHkiLCBsYXQ6MzQuOTgzOSwgbG9uOi04MS4wNTU4LCBjdGFmOiIxMjMuMDUiLCBjaGlwczpbWyJ3aWxkIiwiV2lsZGxpZmUiXV0sIG5vdGU6IldpbGRsaWZlIG5lYXIgdGhlIGZpZWxkLiBWb2x1bnRhcnkgbm9pc2UgYWJhdGVtZW50LiIgfSwKICAgIHsgaWQ6IktMS1IiLCBuYW1lOiJMYW5jYXN0ZXIgTWNXaGlydGVyIEZpZWxkIiwgbGF0OjM0LjcyMywgbG9uOi04MC44NTUsIGN0YWY6IjEyMi43MjUiLCBjaGlwczpbWyJ3aWxkIiwiRGVlciJdLFsib2JzIiwiRHJvcC1vZmYiXV0sIG5vdGU6IkRlZXIgb24gYW5kIG5lYXIgdGhlIGZpZWxkLiAyNSBmdCBkcm9wIDI1MCBmdCBmcm9tIFJ3eSAwNiB0aHJlc2hvbGQuIiB9LAogICAgeyBpZDoiS0FGUCIsIG5hbWU6IkFuc29uIENvdW50eSAoV2FkZXNib3JvKSIsIGxhdDozNS4wMTk0LCBsb246LTgwLjA3ODQsIGN0YWY6IjEyMi44IiwgY2hpcHM6W1sid2lsZCIsIkRlZXIiXSxbIm9icyIsIlBvd2VyIGxpbmVzIl1dLCBub3RlOiJEZWVyIG5lYXIgdGhlIGZpZWxkLiBVbm1hcmtlZCA2MCsgZnQgcG93ZXIgbGluZXMgMiw3MDAgZnQgZnJvbSBSd3kgMzQuIiB9LAogICAgeyBpZDoiS1ZVSiIsIG5hbWU6IlN0YW5seSBDb3VudHkgKEFsYmVtYXJsZSkiLCBsYXQ6MzUuNDE2NywgbG9uOi04MC4xNTA4LCB0d3I6dHJ1ZSwgY2hpcHM6W1sianVtcCIsIlBhcmFjaHV0ZXMiXSxbIm1pbCIsIk1pbGl0YXJ5Il0sWyJ3aWxkIiwiRGVlci9CaXJkcyJdXSwgbm90ZToiSGVhdnkgcGFyYWNodXRlIGp1bXBpbmcgTiBlbmQgUnd5IDIyTC9SLiBIaWdoLXNwZWVkIGxvdy1sZXZlbCBtaWxpdGFyeSBhaXJjcmFmdCwgZnJlcXVlbnQgbmlnaHQgb3BzLCBhc3NhdWx0IG9wcyB0byAyMlIuIiB9LAogICAgeyBpZDoiS1JVUSIsIG5hbWU6Ik1pZC1DYXJvbGluYSBSZWdpb25hbCAoU2FsaXNidXJ5KSIsIGxhdDozNS42NDQyLCBsb246LTgwLjUyMzYsIGN0YWY6IjEyMi43MjUiLCBjaGlwczpbWyJqdW1wIiwiU2t5ZGl2aW5nIl0sWyJoZWxpIiwiTWlsIGhlbG9zIl1dLCBub3RlOiJTa3lkaXZpbmcgb3ZlciB0aGUgYWlycG9ydDsgZG8gbm90IG92ZXJmbHkgZHVyaW5nIGp1bXBzLiBXYXRjaCBmb3IgQXJteSBHdWFyZCBoZWxpY29wdGVycywgZnJlcXVlbnQgbmlnaHQgb3BzLiIgfSwKICAgIHsgaWQ6IktBS0giLCBsYmw6ImwiLCBuYW1lOiJHYXN0b25pYSBNdW5pY2lwYWwiLCBsYXQ6MzUuMTk2OSwgbG9uOi04MS4xNTU1LCBjdGFmOiIxMjMuMCIsIGNoaXBzOltbIndpbGQiLCJEZWVyIl0sWyJhaXIiLCJDbGFzcyBCIGNsb3NlIl1dLCBub3RlOiJEZWVyIG9uIGFuZCBuZWFyIHRoZSBmaWVsZC4gVHVybnMgd2VzdCBuZWVkIGEgQ2xhc3MgQiBjbGVhcmFuY2UgZnJvbSBDaGFybG90dGUgQXBwcm9hY2guIiB9LAogICAgeyBpZDoiS0hLWSIsIG5hbWU6IkhpY2tvcnkgUmVnaW9uYWwiLCBsYXQ6MzUuNzQyMiwgbG9uOi04MS4zODIyLCB0d3I6dHJ1ZSwgY2hpcHM6W1siYWlyIiwiVG93ZXJlZCJdXSwgbm90ZToiQ2xhc3MgRCB0b3dlci4iIH0sCiAgICB7IGlkOiJLRENNIiwgbmFtZToiQ2hlc3RlciBDYXRhd2JhIFJlZ2lvbmFsIiwgbGF0OjM0Ljc4OSwgbG9uOi04MS4xOTYsIGN0YWY6IjEyMi43IiwgY2hpcHM6W1sianVtcCIsIlNreWRpdmluZyJdXSwgbm90ZToiSG9tZSBvZiBTa3lkaXZlIENhcm9saW5hLiBFeHBlY3QganVtcCBhaXJjcmFmdCBhbmQgcGFyYWNodXRpc3RzLCBlc3BlY2lhbGx5IHdlZWtlbmRzLiIgfSwKICAgIHsgaWQ6IktDRE4iLCBuYW1lOiJDYW1kZW4gV29vZHdhcmQgRmllbGQiLCBsYXQ6MzQuMjg0LCBsb246LTgwLjU2NSwgY3RhZjoiMTIzLjAiLCBjaGlwczpbXSwgbm90ZToiQ2xlYXJhbmNlIHZpYSBKYWNrc29udmlsbGUgQ2VudGVyLiIgfSwKICAgIHsgaWQ6IktSQ1oiLCBuYW1lOiJSb2NraW5naGFtLUhhbWxldCIsIGxhdDozNC44OTU1LCBsb246LTc5Ljc1NzYsIGN0YWY6IjEyMi44IiwgY2hpcHM6W1sib2JzIiwiRHJvcC1vZmYiXSxbIm9icyIsIlJ3eSAzMiBvYnN0YWNsZXMiXV0sIG5vdGU6IjYwIGZ0IGRyb3Atb2ZmIG5lYXIgUnd5IDE0LiBSd3kgMDQvMjIgY2xvc2VkIHdoZW4gd2V0IHRvIHR1cmJpbmUgYW5kIDEwaysgbGIgYWlyY3JhZnQuIiB9LAogICAgeyBpZDoiS01FQiIsIG5hbWU6IkxhdXJpbmJ1cmctTWF4dG9uIiwgbGF0OjM0Ljc5MTMsIGxvbjotNzkuMzY4MywgY3RhZjoiMTIyLjgiLCBjaGlwczpbWyJtaWwiLCJNaWxpdGFyeSJdLFsianVtcCIsIlBhcmFjaHV0ZXMiXV0sIG5vdGU6IkZyZXF1ZW50IG1pbGl0YXJ5IG9wcyBvbiBjbG9zZWQgcnVud2F5cy4gSGVhdnkgcGFyYWNodXRlIGFjdGl2aXR5IHNvdXRoIGVuZC4gUnd5IDEzLzMxIGRheWxpZ2h0IG9ubHkuIiB9LAogICAgeyBpZDoiS1NPUCIsIG5hbWU6Ik1vb3JlIENvdW50eSAoUGluZWh1cnN0KSIsIGxhdDozNS4yMzMzLCBsb246LTc5LjQsIGN0YWY6IjEyMy4wNSIsIGNoaXBzOltbIndpbGQiLCJCaXJkcyBBcHLigJNPY3QiXSxbImhlbGkiLCJBcm15IGZpZWxkcyBuZWFyIl1dLCBub3RlOiJCaXJkIGFjdGl2aXR5IEFwcuKAk09jdC4gTWFja2FsbCwgUG9wZSBhbmQgU2ltbW9ucyBBcm15IGFpcmZpZWxkcyB3aXRoaW4gMjUgbm0uIE5vaXNlIGFiYXRlbWVudCBpbiBlZmZlY3QuIiB9LAogICAgeyBpZDoiS0hWUyIsIG5hbWU6IkhhcnRzdmlsbGUgUmVnaW9uYWwiLCBsYXQ6MzQuNDAzLCBsb246LTgwLjExOSwgY3RhZjoiMTIyLjgiLCBjaGlwczpbWyJvYnMiLCIzMDAgZnQgdG93ZXIiXV0sIG5vdGU6IjMwMCsgZnQgYW50ZW5uYSAyLjUgbWkgU1cuIENsZWFyYW5jZSB2aWEgU2hhdyBBcHByb2FjaC4iIH0sCiAgICB7IGlkOiJLVURHIiwgbmFtZToiRGFybGluZ3RvbiBDb3VudHkiLCBsYXQ6MzQuNDQ5MiwgbG9uOi03OS44OTAzLCBjdGFmOiIxMjMuMCIsIGNoaXBzOltdLCBub3RlOiJDbGVhcmFuY2UgdmlhIEZsb3JlbmNlIEFwcHJvYWNoLiIgfSwKICAgIHsgaWQ6IktGTE8iLCBuYW1lOiJGbG9yZW5jZSBSZWdpb25hbCIsIGxhdDozNC4xODc4LCBsb246LTc5LjczMDgsIHR3cjp0cnVlLCBjaGlwczpbWyJhaXIiLCJUb3dlcmVkIl1dLCBub3RlOiJQb3B1bGFyIElGUiBjcm9zcy1jb3VudHJ5LiBGbG9yZW5jZSBBcHByb2FjaC4iIH0sCiAgICB7IGlkOiJLQ0FFIiwgbmFtZToiQ29sdW1iaWEgTWV0cm9wb2xpdGFuIiwgbGF0OjMzLjk0MTksIGxvbjotODEuMTE4MSwgdHdyOnRydWUsIGNoaXBzOltbImFpciIsIkNsYXNzIEMiXSxbImhlbGkiLCJIZWxpcGFkIl1dLCBub3RlOiJDcmV3cyBoYXZlIG1pc3Rha2VuIEtDVUIgKFJ3eSAxMy8zMSkgZm9yIEtDQUUgKFJ3eSAxMS8yOSksIDYgbWkgYXBhcnQuIFVsdHJhbGlnaHRzIHByb2hpYml0ZWQuIiB9CiAgXTsKICBjb25zdCBBUkVBX1JfTk0gPSA5MDsKICBmdW5jdGlvbiBubVhZKGxhdCwgbG9uKXsgLy8gS0VRWS1jZW50ZXJlZCwgbm0gZWFzdC9zb3V0aAogICAgcmV0dXJuIFsgKGxvbiAtIENGRy5sb24pICogTWF0aC5jb3MoQ0ZHLmxhdCpNYXRoLlBJLzE4MCkgKiA2MCwgKENGRy5sYXQgLSBsYXQpICogNjAgXTsKICB9CiAgZnVuY3Rpb24gYXJlYURpc3RCcmcobGF0LCBsb24pewogICAgY29uc3QgUj0zNDQwLjA2NSwgcj1kPT5kKk1hdGguUEkvMTgwLCBwMT1yKENGRy5sYXQpLCBwMj1yKGxhdCksIGRsPXIobG9uLUNGRy5sb24pOwogICAgY29uc3QgZCA9IDIqUipNYXRoLmFzaW4oTWF0aC5zcXJ0KE1hdGguc2luKChwMi1wMSkvMikqKjIgKyBNYXRoLmNvcyhwMSkqTWF0aC5jb3MocDIpKk1hdGguc2luKGRsLzIpKioyKSk7CiAgICBjb25zdCB5PU1hdGguc2luKGRsKSpNYXRoLmNvcyhwMiksIHg9TWF0aC5jb3MocDEpKk1hdGguc2luKHAyKS1NYXRoLnNpbihwMSkqTWF0aC5jb3MocDIpKk1hdGguY29zKGRsKTsKICAgIHJldHVybiB7IG5tOmQsIGJyZzooTWF0aC5hdGFuMih5LHgpKjE4MC9NYXRoLlBJKzM2MCklMzYwIH07CiAgfQogIEFSRUEuZm9yRWFjaChhID0+IE9iamVjdC5hc3NpZ24oYSwgYXJlYURpc3RCcmcoYS5sYXQsIGEubG9uKSkpOwogIEFSRUEuc29ydCgoYSxiKSA9PiBhLm5tIC0gYi5ubSk7CgogIGZ1bmN0aW9uIGRyYXdBcmVhQmFzZSgpewogICAgY29uc3Qgc3ZnID0gJCgiYXJlYVN2ZyIpLCBDID0gMzIwLCBTID0gMzAwIC8gQVJFQV9SX05NOwogICAgY29uc3QgUCA9IChsYXQsIGxvbikgPT4geyBjb25zdCBbeCx5XSA9IG5tWFkobGF0LCBsb24pOyByZXR1cm4gW0MgKyB4KlMsIEMgKyB5KlNdOyB9OwogICAgbGV0IGggPSBgPGRlZnM+PGNsaXBQYXRoIGlkPSJhY2xpcCI+PGNpcmNsZSBjeD0iJHtDfSIgY3k9IiR7Q30iIHI9IjMwMCIvPjwvY2xpcFBhdGg+CiAgICAgIDxmaWx0ZXIgaWQ9ImFnbCIgeD0iLTUwJSIgeT0iLTUwJSIgd2lkdGg9IjIwMCUiIGhlaWdodD0iMjAwJSI+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMi41IiByZXN1bHQ9ImIiLz48ZmVNZXJnZT48ZmVNZXJnZU5vZGUgaW49ImIiLz48ZmVNZXJnZU5vZGUgaW49IlNvdXJjZUdyYXBoaWMiLz48L2ZlTWVyZ2U+PC9maWx0ZXI+CiAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iYXN3ZyIgeDE9IjAiIHkxPSIwIiB4Mj0iMSIgeTI9IjAiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzYxQ0FFMSIgc3RvcC1vcGFjaXR5PSIwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNjFDQUUxIiBzdG9wLW9wYWNpdHk9Ii4xNiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPmA7CiAgICBoICs9IGA8Y2lyY2xlIGN4PSIke0N9IiBjeT0iJHtDfSIgcj0iMzAwIiBmaWxsPSJyZ2JhKDEwLDM3LDY0LC4zNSkiIHN0cm9rZT0iIzYxQ0FFMSIgc3Ryb2tlLXdpZHRoPSIxLjUiIGZpbHRlcj0idXJsKCNhZ2wpIi8+YDsKICAgIGggKz0gYDxnIGNsaXAtcGF0aD0idXJsKCNhY2xpcCkiPmA7CiAgICBTRV9TVEFURVMuZm9yRWFjaChwb2x5ID0+IHBvbHkuZm9yRWFjaChyaW5ncyA9PiByaW5ncy5mb3JFYWNoKHJpbmcgPT4gewogICAgICBoICs9IGA8cGF0aCBkPSJNJHtyaW5nLm1hcCgoW2xvLGxhXSkgPT4gUChsYSxsbykubWFwKHY9PnYudG9GaXhlZCgxKSkuam9pbigiICIpKS5qb2luKCJMIil9WiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZ2JhKDk3LDIwMiwyMjUsLjM1KSIgc3Ryb2tlLXdpZHRoPSIxIi8+YDsKICAgIH0pKSk7CiAgICBoICs9IGA8ZyBjbGFzcz0ic3dlZXAyIj48cGF0aCBkPSJNJHtDfSAke0N9IEwke0N9ICR7Qy0zMDB9IEEzMDAgMzAwIDAgMCAxICR7QyszMDAqTWF0aC5zaW4oTWF0aC5QSS83KX0gJHtDLTMwMCpNYXRoLmNvcyhNYXRoLlBJLzcpfSBaIiBmaWxsPSJ1cmwoI2Fzd2cpIi8+PC9nPmA7CiAgICBoICs9IGA8L2c+YDsKICAgIFsyNSw1MCw3NV0uZm9yRWFjaChuID0+IHsKICAgICAgaCArPSBgPGNpcmNsZSBjeD0iJHtDfSIgY3k9IiR7Q30iIHI9IiR7bipTfSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZ2JhKDk3LDIwMiwyMjUsLjMpIiBzdHJva2UtZGFzaGFycmF5PSIzIDYiLz5gOwogICAgICBoICs9IGA8dGV4dCB4PSIke0MrNH0iIHk9IiR7Qy1uKlMtNX0iIGZpbGw9InJnYmEoOTcsMjAyLDIyNSwuNzUpIiBmb250LWZhbWlseT0iSmV0QnJhaW5zIE1vbm8sbW9ub3NwYWNlIiBmb250LXNpemU9IjExIj4ke259IG5tPC90ZXh0PmA7CiAgICB9KTsKICAgIFtbIk4iLDBdLFsiRSIsOTBdLFsiUyIsMTgwXSxbIlciLDI3MF1dLmZvckVhY2goKFtsLGFdKSA9PiB7CiAgICAgIGNvbnN0IHggPSBDICsgMjg2Kk1hdGguc2luKGEqTWF0aC5QSS8xODApLCB5ID0gQyAtIDI4NipNYXRoLmNvcyhhKk1hdGguUEkvMTgwKSArIDU7CiAgICAgIGggKz0gYDx0ZXh0IHg9IiR7eH0iIHk9IiR7eX0iIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJQb3BwaW5zLHNhbnMtc2VyaWYiIGZvbnQtd2VpZ2h0PSI2MDAiIGZvbnQtc2l6ZT0iMTQiIGZpbGw9IiR7bD09PSJOIj8iIzYxQ0FFMSI6IiM5RkI2Q0IifSI+JHtsfTwvdGV4dD5gOwogICAgfSk7CiAgICBoICs9IGA8ZyBpZD0iYXB0TGF5ZXIiPjwvZz5gOwogICAgaCArPSBgPGcgZmlsdGVyPSJ1cmwoI2FnbCkiPjxjaXJjbGUgY3g9IiR7Q30iIGN5PSIke0N9IiByPSIxMSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjRkZGRkZGIiBzdHJva2Utd2lkdGg9IjEuNSIvPjxjaXJjbGUgY3g9IiR7Q30iIGN5PSIke0N9IiByPSI0IiBmaWxsPSIjNjFDQUUxIi8+PC9nPgogICAgICAgICAgPHRleHQgeD0iJHtDKzE1fSIgeT0iJHtDKzV9IiBmb250LWZhbWlseT0iUG9wcGlucyxzYW5zLXNlcmlmIiBmb250LXdlaWdodD0iNzAwIiBmb250LXNpemU9IjE0IiBmaWxsPSIjNjFDQUUxIiBwYWludC1vcmRlcj0ic3Ryb2tlIiBzdHJva2U9IiMwNDBDMTYiIHN0cm9rZS13aWR0aD0iNCI+S0VRWTwvdGV4dD5gOwogICAgc3ZnLmlubmVySFRNTCA9IGg7CiAgICBBUkVBLmZvckVhY2goYSA9PiB7IFthLngsIGEueV0gPSBQKGEubGF0LCBhLmxvbik7IH0pOwogIH0KCiAgZnVuY3Rpb24gYXJlYU9ic0FnZShkKXsgY29uc3QgbSA9IE1hdGgucm91bmQoKERhdGUubm93KCkgLSBkKS82MDAwMCk7IHJldHVybiBtIDwgOTAgPyBgJHttfSBtaW4gYWdvYCA6IGAke01hdGguZmxvb3IobS82MCl9IGggJHttJTYwfSBtIGFnb2A7IH0KICBmdW5jdGlvbiByZW5kZXJBcmVhKCl7CiAgICBjb25zdCBsYXllciA9ICQoImFwdExheWVyIik7IGlmICghbGF5ZXIpIHJldHVybjsKICAgIGxldCBoID0gIiI7CiAgICBBUkVBLmZvckVhY2goYSA9PiB7CiAgICAgIGNvbnN0IGNvbCA9IENBVF9DT0xPUl9IRVhbYS5jYXQgfHwgIlVOSyJdOwogICAgICBjb25zdCBoYXNKdW1wID0gYS5jaGlwcy5zb21lKGMgPT4gY1swXSA9PT0gImp1bXAiIHx8IGNbMF0gPT09ICJtaWwiKTsKICAgICAgY29uc3QgbGJsTGVmdCA9IGEubGJsID09PSAibCIgfHwgYS54ID4gNDcwOwogICAgICBoICs9IGA8ZyBjbGFzcz0iYXB0LWRvdCIgZGF0YS1pZD0iJHthLmlkfSIgdGFiaW5kZXg9IjAiPmA7CiAgICAgIGlmIChoYXNKdW1wKSBoICs9IGA8cGF0aCBkPSJNJHthLnh9ICR7YS55LTE5fSBsNyAxMSBoLTE0IHoiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0YyQjg0QiIgc3Ryb2tlLXdpZHRoPSIxLjYiIGZpbHRlcj0idXJsKCNhZ2wpIi8+YDsKICAgICAgaWYgKGEubSAmJiB0eXBlb2YgYS5tLndkaXIgPT09ICJudW1iZXIiICYmIGEubS53c3BkID4gMCkgewogICAgICAgIGNvbnN0IHIgPSBhLm0ud2RpcipNYXRoLlBJLzE4MCwgTCA9IDEwICsgTWF0aC5taW4oYS5tLndzcGQsIDMwKSouODsKICAgICAgICBoICs9IGA8bGluZSB4MT0iJHthLnggKyBNYXRoLnNpbihyKSooOCtMKX0iIHkxPSIke2EueSAtIE1hdGguY29zKHIpKig4K0wpfSIgeDI9IiR7YS54ICsgTWF0aC5zaW4ocikqOH0iIHkyPSIke2EueSAtIE1hdGguY29zKHIpKjh9IiBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS1vcGFjaXR5PSIuNzUiIHN0cm9rZS13aWR0aD0iMS42IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz5gOwogICAgICB9CiAgICAgIGggKz0gYDxjaXJjbGUgY2xhc3M9ImNvcmUiIGN4PSIke2EueH0iIGN5PSIke2EueX0iIHI9IjciIGZpbGw9IiR7Y29sfSIgc3Ryb2tlPSIjMDQwQzE2IiBzdHJva2Utd2lkdGg9IjIiIGZpbHRlcj0idXJsKCNhZ2wpIi8+YDsKICAgICAgaCArPSBgPHRleHQgeD0iJHtsYmxMZWZ0ID8gYS54LTExIDogYS54KzExfSIgeT0iJHthLnkrNH0iIHRleHQtYW5jaG9yPSIke2xibExlZnQ\/ImVuZCI6InN0YXJ0In0iPiR7YS5pZC5zbGljZSgxKX08L3RleHQ+PC9nPmA7CiAgICB9KTsKICAgIGxheWVyLmlubmVySFRNTCA9IGg7CiAgICBsYXllci5xdWVyeVNlbGVjdG9yQWxsKCIuYXB0LWRvdCIpLmZvckVhY2goZyA9PiB7CiAgICAgIGcuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsICgpID0+IGhpQXJlYShnLmRhdGFzZXQuaWQpKTsKICAgICAgZy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwgKCkgPT4gaGlBcmVhKG51bGwpKTsKICAgICAgZy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsICgpID0+IGhpQXJlYShnLmRhdGFzZXQuaWQpKTsKICAgICAgZy5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwgKCkgPT4gaGlBcmVhKG51bGwpKTsKICAgIH0pOwoKICAgICQoImFyZWFDYXJkcyIpLmlubmVySFRNTCA9IEFSRUEubWFwKGEgPT4gewogICAgICBjb25zdCBtID0gYS5tLCBjYXQgPSBhLmNhdCB8fCAiVU5LIiwgY29sID0gQ0FUX0NPTE9SX0hFWFtjYXRdOwogICAgICBsZXQgd2luZCA9ICItLSIsIHZpcyA9ICItLSIsIGNlaWwgPSAiLS0iLCBhbHQgPSAiLS0iOwogICAgICBpZiAobSkgewogICAgICAgIGlmIChtLndzcGQgPT09IDApIHdpbmQgPSAiQ2FsbSI7CiAgICAgICAgZWxzZSBpZiAobS53c3BkICE9IG51bGwpIHdpbmQgPSBgJHttLndkaXIgPT09ICJWUkIiID8gIlZSQiIgOiBwYWQzKG0ud2Rpcil9QCR7bS53c3BkfSR7bS53Z3N0ID8gYDxzcGFuIGNsYXNzPSJnIj5HJHttLndnc3R9PC9zcGFuPmAgOiAiIn1gOwogICAgICAgIGlmIChtLnZpcyAhPSBudWxsKSB2aXMgPSBgJHttLnZpc1BsdXMgPyAiJmd0OyIgOiAiIn0ke2ZtdFZpcyhtLnZpcyl9IFNNYCArIChtLnd4Lmxlbmd0aCA\/IGAgJHttLnd4LmpvaW4oIiAiKX1gIDogIiIpOwogICAgICAgIGNvbnN0IGMgPSBjZWlsaW5nT2YobSk7CiAgICAgICAgY2VpbCA9IGMgIT0gbnVsbCA\/IGAkeyhtLmNsb3Vkcy5maW5kKHggPT4geC5iYXNlID09PSBjICYmIFsiQktOIiwiT1ZDIiwiVlYiXS5pbmNsdWRlcyh4LmNvdmVyKSkgfHwge30pLmNvdmVyIHx8ICIifSAke2MudG9Mb2NhbGVTdHJpbmcoKX1gIDogKG0uY2xvdWRzLmxlbmd0aCAmJiBtLmNsb3Vkc1swXS5jb3ZlciAhPT0gIkNMUiIgPyAiTm9uZSIgOiAiQ2xlYXIiKTsKICAgICAgICBpZiAobS5hbHRpbSkgYWx0ID0gbS5hbHRpbS50b0ZpeGVkKDIpOwogICAgICB9CiAgICAgIGNvbnN0IHN0YWxlID0gYS5kYXRlICYmIChEYXRlLm5vdygpIC0gYS5kYXRlKSA+IDkwKjYwMDAwOwogICAgICBjb25zdCBjaGlwcyA9IChhLnR3ciA\/IFtdIDogW1siYWlyIiwgIkNUQUYgIiArIGEuY3RhZl1dKS5jb25jYXQoYS5jaGlwcyk7CiAgICAgIHJldHVybiBgPGFydGljbGUgY2xhc3M9ImFjYXJkIiBkYXRhLWlkPSIke2EuaWR9IiBzdHlsZT0iLS1jYzoke2NvbH0iPgogICAgICAgIDxkaXYgY2xhc3M9InRvcCI+PHNwYW4gY2xhc3M9ImFpZCI+JHthLmlkfTwvc3Bhbj48c3BhbiBjbGFzcz0iYWNhdCI+JHtjYXQgPT09ICJVTksiID8gIi0tLS0iIDogY2F0fTwvc3Bhbj48c3BhbiBjbGFzcz0iYW5tIj4ke2EubmFtZX08L3NwYW4+PHNwYW4gY2xhc3M9ImRpc3QgbnVtIj4ke01hdGgucm91bmQoYS5ubSl9IG5tIMK3ICR7cGFkMyhNYXRoLnJvdW5kKGEuYnJnKSl9wrA8L3NwYW4+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0id3ggbnVtIj48c3Bhbj48c3BhbiBjbGFzcz0iayI+V0lORDwvc3Bhbj4ke3dpbmR9PC9zcGFuPjxzcGFuPjxzcGFuIGNsYXNzPSJrIj5WSVM8L3NwYW4+JHt2aXN9PC9zcGFuPjxzcGFuPjxzcGFuIGNsYXNzPSJrIj5DSUc8L3NwYW4+JHtjZWlsfTwvc3Bhbj48c3Bhbj48c3BhbiBjbGFzcz0iayI+QUxUPC9zcGFuPiR7YWx0fTwvc3Bhbj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJub3RlIiB0aXRsZT0iJHthLm5vdGV9Ij4ke2Eubm90ZX08L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGlwcyI+JHtjaGlwcy5tYXAoKFt0LGxdKSA9PiBgPHNwYW4gY2xhc3M9ImNoaXAyICR7dH0iPiR7bH08L3NwYW4+YCkuam9pbigiIil9PHNwYW4gY2xhc3M9ImFnZSAke3N0YWxlPyJzdGFsZSI6IiJ9IiBzdHlsZT0ibWFyZ2luLWxlZnQ6YXV0byI+JHthLmRhdGUgPyBhcmVhT2JzQWdlKGEuZGF0ZSkgOiAoYS5lcnIgPyAiTm8gcmVwb3J0IiA6ICJMb2FkaW5nIil9PC9zcGFuPjwvZGl2PgogICAgICA8L2FydGljbGU+YDsKICAgIH0pLmpvaW4oIiIpOwogICAgJCgiYXJlYUNhcmRzIikucXVlcnlTZWxlY3RvckFsbCgiLmFjYXJkIikuZm9yRWFjaChjID0+IHsKICAgICAgYy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwgKCkgPT4gaGlBcmVhKGMuZGF0YXNldC5pZCkpOwogICAgICBjLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCAoKSA9PiBoaUFyZWEobnVsbCkpOwogICAgfSk7CgogICAgY29uc3QgY291bnRzID0ge307IEFSRUEuZm9yRWFjaChhID0+IHsgaWYgKGEuY2F0ICYmIGEuY2F0ICE9PSAiVU5LIikgY291bnRzW2EuY2F0XSA9IChjb3VudHNbYS5jYXRdfHwwKSsxOyB9KTsKICAgIGNvbnN0IHdvcnN0ID0gWyJMSUZSIiwiSUZSIiwiTVZGUiJdLmZpbmQoYyA9PiBjb3VudHNbY10pOwogICAgJCgiYXJlYVN1bSIpLmlubmVySFRNTCA9IE9iamVjdC5rZXlzKGNvdW50cykubGVuZ3RoCiAgICAgID8gYDxiPiR7Y291bnRzLlZGUnx8MH0gb2YgJHtBUkVBLmxlbmd0aH08L2I+IGZpZWxkcyBWRlJgICsgKHdvcnN0ID8gYCDCtyBsb3dlc3Q6IDxiIHN0eWxlPSJjb2xvcjoke0NBVF9DT0xPUl9IRVhbd29yc3RdfSI+JHtBUkVBLmZpbHRlcihhPT5hLmNhdD09PXdvcnN0KS5tYXAoYT0+YS5pZCkuam9pbigiLCAiKX0gJHt3b3JzdH08L2I+YCA6ICIgwrcgbm8gZmllbGRzIGJlbG93IFZGUiIpCiAgICAgIDogIkxvYWRpbmcgYXJlYSByZXBvcnRz4oCmIjsKICB9CiAgZnVuY3Rpb24gaGlBcmVhKGlkKXsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hcHQtZG90IikuZm9yRWFjaChnID0+IGcuY2xhc3NMaXN0LnRvZ2dsZSgib24iLCBnLmRhdGFzZXQuaWQgPT09IGlkKSk7CiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYWNhcmQiKS5mb3JFYWNoKGMgPT4gYy5jbGFzc0xpc3QudG9nZ2xlKCJvbiIsIGMuZGF0YXNldC5pZCA9PT0gaWQpKTsKICB9CgogIGFzeW5jIGZ1bmN0aW9uIGZldGNoU3RhdGlvbihhKXsKICAgIHRyeSB7CiAgICAgIGNvbnN0IGogPSBhd2FpdCBnZXRKU09OKGBodHRwczovL2FwaS53ZWF0aGVyLmdvdi9zdGF0aW9ucy8ke2EuaWR9L29ic2VydmF0aW9ucz9saW1pdD02YCk7CiAgICAgIGNvbnN0IGZlYXRzID0gKGouZmVhdHVyZXMgfHwgW10pLm1hcChmID0+IGYucHJvcGVydGllcykuZmlsdGVyKEJvb2xlYW4pLnNvcnQoKHgseSkgPT4gbmV3IERhdGUoeS50aW1lc3RhbXApIC0gbmV3IERhdGUoeC50aW1lc3RhbXApKTsKICAgICAgaWYgKCFmZWF0cy5sZW5ndGgpIHRocm93IG5ldyBFcnJvcigibm9uZSIpOwogICAgICBjb25zdCBwID0gZmVhdHNbMF07CiAgICAgIGNvbnN0IHJhdyA9IHAucmF3TWVzc2FnZSAmJiBwLnJhd01lc3NhZ2UudHJpbSgpID8gcC5yYXdNZXNzYWdlLnRyaW0oKSA6IHN5bnRoTWV0YXIoT2JqZWN0LmFzc2lnbih7fSwgcCksIGEuaWQpOwogICAgICBhLm0gPSBwYXJzZU1ldGFyKHJhdyk7IGEuY2F0ID0gZmxpZ2h0Q2F0KGEubSk7IGEuZGF0ZSA9IG5ldyBEYXRlKHAudGltZXN0YW1wKTsgYS5lcnIgPSBmYWxzZTsKICAgIH0gY2F0Y2goZSkgeyBhLmVyciA9IHRydWU7IH0KICB9CiAgYXN5bmMgZnVuY3Rpb24gcmVmcmVzaEFyZWEoKXsKICAgIGNvbnN0IHEgPSBBUkVBLnNsaWNlKCk7CiAgICBjb25zdCB3b3JrZXIgPSBhc3luYyAoKSA9PiB7IHdoaWxlIChxLmxlbmd0aCkgYXdhaXQgZmV0Y2hTdGF0aW9uKHEuc2hpZnQoKSk7IH07CiAgICBhd2FpdCBQcm9taXNlLmFsbChbd29ya2VyKCksIHdvcmtlcigpLCB3b3JrZXIoKSwgd29ya2VyKCldKTsKICAgIHJlbmRlckFyZWEoKTsKICB9CgogIC8qIC0tLS0tLS0tLS0gU2NyZWVuIHN3aXRjaGluZyAtLS0tLS0tLS0tCiAgICAgVGhyZWUgc2NyZWVuczogS0VRWSB3ZWF0aGVyICg2MCBzKSwgQXJlYSBhaXJwb3J0cyAoMzAgcyksIEZseS1pbiBmb29kICgzMCBzKSwgb24gYSBsb29wLgogICAgIFRpbWVzIGNhbiBiZSBjaGFuZ2VkIGluIHRoZSBsaW5rOiA\/a2VxeT02MCZhcmVhPTIwJmZvb2Q9MTUgICAoP25vcm90YXRlIHN0b3BzIHRoZSBsb29wKS4KICAgICBUYXBwaW5nIGEgc2NyZWVuIHNob3dzIGl0IHJpZ2h0IGF3YXk7IGFmdGVyIGEgMTAgcyBidWZmZXIgaXRzIG5vcm1hbCB0aW1lciBzdGFydHMgYW5kIHRoZSBsb29wIGNhcnJpZXMgb24uICovCiAgY29uc3QgRk9PRF9IVE1MID0gIlx1MDAzYyFET0NUWVBFIGh0bWw+XG5cdTAwM2NodG1sIGxhbmc9XCJlblwiPlxuXHUwMDNjaGVhZD5cblx1MDAzY21ldGEgY2hhcnNldD1cInV0Zi04XCI+XG5cdTAwM2NtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdmlld3BvcnQtZml0PWNvdmVyXCI+XG5cdTAwM2N0aXRsZT5BZXJvd29vZCBGbHktSW4gRm9vZFx1MDAzYy90aXRsZT5cblx1MDAzY21ldGEgbmFtZT1cImNsYXVkZTp2aWV3cG9ydC1maXQtc2lkZXNcIiBjb250ZW50PVwiY292ZXJcIj5cblx1MDAzY2xpbmsgcmVsPVwicHJlY29ubmVjdFwiIGhyZWY9XCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tXCI+XG5cdTAwM2NsaW5rIHJlbD1cInByZWNvbm5lY3RcIiBocmVmPVwiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbVwiIGNyb3Nzb3JpZ2luPlxuXHUwMDNjbGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9UG9wcGluczp3Z2h0QDMwMDs0MDA7NTAwOzYwMDs3MDAmZmFtaWx5PUpldEJyYWlucytNb25vOndnaHRANDAwOzUwMCZkaXNwbGF5PXN3YXBcIj5cblx1MDAzY3N0eWxlPlxuLyogTGF5b3V0OiBicmFuZCBoZWFkZXIsIHRoZW4gYSBnbG93aW5nIGNoYXJ0LXN0eWxlIG1hcCBvZiB0aGUgQ2Fyb2xpbmFzIChwaW5zICsgcmFuZ2UgcmluZ3MgZnJvbSBLRVFZKSBiZXNpZGUgYSBkaXN0YW5jZS1zb3J0ZWQgbGlzdC4gU2FtZSBkYXJrIGdsb3cgbG9vayBhcyB0aGUgS0VRWSB3ZWF0aGVyIHNjcmVlbi4gKi9cbjpyb290e1xuICAtLWJnOiMwNDBDMTY7IC0tbmF2eTojMEEyNTQwOyAtLXNsYXRlOiMxRjI5MzM7IC0taW5rOiMwQTBBMEE7XG4gIC0tc2t5OiM2MUNBRTE7IC0td2hpdGU6I0ZGRkZGRjsgLS1tdXRlZDojOUZCNkNCOyAtLWRpbTojNkY4QUEzO1xuICAtLWxpbmU6cmdiYSg5NywyMDIsMjI1LC41NSk7IC0tbGluZS1zb2Z0OnJnYmEoOTcsMjAyLDIyNSwuMjIpO1xuICAtLXBhbmVsOnJnYmEoMTAsMzcsNjQsLjI4KTtcbiAgLS13YXJuOiNGMkI4NEI7XG4gIC0tZ2xvdzowIDAgMCAxcHggcmdiYSg5NywyMDIsMjI1LC4wOCksIDAgMCAxNHB4IHJnYmEoOTcsMjAyLDIyNSwuMjgpLCBpbnNldCAwIDAgMThweCByZ2JhKDk3LDIwMiwyMjUsLjA3KTtcbiAgLS1nbG93LXN0cm9uZzowIDAgMCAxcHggcmdiYSg5NywyMDIsMjI1LC4xNSksIDAgMCAyMnB4IHJnYmEoOTcsMjAyLDIyNSwuNDUpLCBpbnNldCAwIDAgMjJweCByZ2JhKDk3LDIwMiwyMjUsLjEyKTtcbiAgLS1mLWRpc3BsYXk6XCJQb3BwaW5zXCIsXCJTZWdvZSBVSVwiLHN5c3RlbS11aSxzYW5zLXNlcmlmO1xuICAtLWYtbW9ubzpcIkpldEJyYWlucyBNb25vXCIsdWktbW9ub3NwYWNlLE1lbmxvLENvbnNvbGFzLG1vbm9zcGFjZTtcbiAgY29sb3Itc2NoZW1lOmRhcms7XG59XG4qe2JveC1zaXppbmc6Ym9yZGVyLWJveH1cbmh0bWwsYm9keXttYXJnaW46MDtiYWNrZ3JvdW5kOnZhcigtLWJnKTtjb2xvcjp2YXIoLS13aGl0ZSk7Zm9udC1mYW1pbHk6dmFyKC0tZi1kaXNwbGF5KTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkfVxuLm51bXtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9XG4ubGFiZWx7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4xOGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjp2YXIoLS1tdXRlZCl9XG4ud3JhcHtcbiAgbWluLWhlaWdodDoxMDB2aDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxOHB4O1xuICBwYWRkaW5nLWJsb2NrOjIycHg7XG4gIHBhZGRpbmctbGVmdDptYXgoMTZweCwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0LDBweCksIDJ2dyk7XG4gIHBhZGRpbmctcmlnaHQ6bWF4KDE2cHgsIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQsMHB4KSwgMnZ3KTtcbiAgYmFja2dyb3VuZDpcbiAgICByYWRpYWwtZ3JhZGllbnQoOTAwcHggNTAwcHggYXQgMTAwJSAtMTAlLCByZ2JhKDk3LDIwMiwyMjUsLjE0KSwgdHJhbnNwYXJlbnQgNjAlKSxcbiAgICByYWRpYWwtZ3JhZGllbnQoOTAwcHggNjAwcHggYXQgLTEwJSAxMTAlLCByZ2JhKDEwLDM3LDY0LC45KSwgdHJhbnNwYXJlbnQgNzAlKSxcbiAgICBsaW5lYXItZ3JhZGllbnQocmdiYSg5NywyMDIsMjI1LC4wMzUpIDFweCwgdHJhbnNwYXJlbnQgMXB4KSAwIDAvNDhweCA0OHB4LFxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSg5NywyMDIsMjI1LC4wMzUpIDFweCwgdHJhbnNwYXJlbnQgMXB4KSAwIDAvNDhweCA0OHB4LFxuICAgIHZhcigtLWJnKTtcbn1cbmhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxNnB4IDI0cHg7ZmxleC13cmFwOndyYXB9XG4uYnJhbmR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTRweH1cbi5icmFuZCBpbWd7aGVpZ2h0OmNsYW1wKDQ0cHgsNHZ3LDc0cHgpO3dpZHRoOmF1dG99XG4ud29yZG1hcmt7bGluZS1oZWlnaHQ6MX1cbi53b3JkbWFyayBie2Rpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTpjbGFtcCgyMHB4LDJ2dywzNnB4KX1cbi53b3JkbWFyayBzcGFue2Rpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6MzAwO2ZvbnQtc2l6ZTpjbGFtcCgxMHB4LC44NXZ3LDE1cHgpO2xldHRlci1zcGFjaW5nOi42MmVtO21hcmdpbi10b3A6LjQ1ZW19XG4udGl0bGV7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHZhcigtLWxpbmUtc29mdCk7cGFkZGluZy1sZWZ0OjE2cHg7bWFyZ2luLWxlZnQ6NHB4fVxuLnRpdGxlIGgxe21hcmdpbjowO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6Y2xhbXAoMjBweCwxLjl2dywzNHB4KTtjb2xvcjp2YXIoLS1za3kpO3RleHQtc2hhZG93OjAgMCAxOHB4IHJnYmEoOTcsMjAyLDIyNSwuNDUpO3RleHQtd3JhcDpiYWxhbmNlfVxuLnRpdGxlIHB7bWFyZ2luOjJweCAwIDA7Zm9udC13ZWlnaHQ6MzAwO2ZvbnQtc2l6ZTpjbGFtcCgxMnB4LC44NXZ3LDE1cHgpO2NvbG9yOnZhcigtLW11dGVkKX1cbi5oY3RybHtkaXNwbGF5OmZsZXg7Z2FwOjhweDtmbGV4LXdyYXA6d3JhcH1cbmJ1dHRvbiwuY2hpcHtmb250OmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLXNreSk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6N3B4IDEycHg7Y3Vyc29yOnBvaW50ZXJ9XG5idXR0b246aG92ZXIsLmNoaXA6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLXNreSk7Ym94LXNoYWRvdzowIDAgMTJweCByZ2JhKDk3LDIwMiwyMjUsLjQ1KTtjb2xvcjp2YXIoLS13aGl0ZSl9XG5idXR0b246Zm9jdXMtdmlzaWJsZSwuY2hpcDpmb2N1cy12aXNpYmxlLC5pdGVtOmZvY3VzLXZpc2libGV7b3V0bGluZToycHggc29saWQgdmFyKC0tc2t5KTtvdXRsaW5lLW9mZnNldDoycHh9XG5idXR0b25bYXJpYS1wcmVzc2VkPVwidHJ1ZVwiXSwuY2hpcFthcmlhLXByZXNzZWQ9XCJ0cnVlXCJde2NvbG9yOnZhcigtLWJnKTtiYWNrZ3JvdW5kOnZhcigtLXNreSk7Ym94LXNoYWRvdzowIDAgMTRweCByZ2JhKDk3LDIwMiwyMjUsLjYpfVxuXG5tYWlue2ZsZXg6MTtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLDFmcikgY2xhbXAoMzAwcHgsMjZ2dyw0MjBweCk7Z2FwOjE4cHg7bWluLWhlaWdodDowfVxuLnBhbmVse3Bvc2l0aW9uOnJlbGF0aXZlO2JhY2tncm91bmQ6dmFyKC0tcGFuZWwpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7Ym94LXNoYWRvdzp2YXIoLS1nbG93KTtib3JkZXItcmFkaXVzOjE0cHg7bWluLXdpZHRoOjB9XG4ucGFuZWw6OmJlZm9yZXtjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6LTFweDtib3JkZXItcmFkaXVzOmluaGVyaXQ7cG9pbnRlci1ldmVudHM6bm9uZTtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQodmFyKC0tc2t5KSx2YXIoLS1za3kpKSB0b3AgbGVmdC8xOHB4IDJweCBuby1yZXBlYXQsXG4gICAgbGluZWFyLWdyYWRpZW50KHZhcigtLXNreSksdmFyKC0tc2t5KSkgdG9wIGxlZnQvMnB4IDE4cHggbm8tcmVwZWF0LFxuICAgIGxpbmVhci1ncmFkaWVudCh2YXIoLS1za3kpLHZhcigtLXNreSkpIGJvdHRvbSByaWdodC8xOHB4IDJweCBuby1yZXBlYXQsXG4gICAgbGluZWFyLWdyYWRpZW50KHZhcigtLXNreSksdmFyKC0tc2t5KSkgYm90dG9tIHJpZ2h0LzJweCAxOHB4IG5vLXJlcGVhdDtcbiAgZmlsdGVyOmRyb3Atc2hhZG93KDAgMCA0cHggdmFyKC0tc2t5KSl9XG5cbi5tYXBib3h7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59XG4ubWFwaGVhZHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O2ZsZXgtd3JhcDp3cmFwO3BhZGRpbmc6MTRweCAxOHB4IDB9XG4ubGVnZW5ke2Rpc3BsYXk6ZmxleDtnYXA6MTZweDtmbGV4LXdyYXA6d3JhcDtmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS1tdXRlZCl9XG4ubGVnZW5kIGl7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDtib3JkZXItcmFkaXVzOjUwJTttYXJnaW4tcmlnaHQ6NnB4O3ZlcnRpY2FsLWFsaWduOi0xcHh9XG4ubGctb2t7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1za3kpO2JveC1zaGFkb3c6MCAwIDhweCB2YXIoLS1za3kpfVxuLmxnLWNhbGx7Ym9yZGVyOjJweCBkYXNoZWQgdmFyKC0td2Fybil9XG4ubWFwd3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjE7bWluLWhlaWdodDowfVxuI21hcHtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7bWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gMjEwcHgpO21pbi1oZWlnaHQ6MzIwcHh9XG4uc3RhdGV7ZmlsbDpyZ2JhKDEwLDM3LDY0LC4zNSk7c3Ryb2tlOnJnYmEoOTcsMjAyLDIyNSwuNDUpO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1saW5lam9pbjpyb3VuZDt2ZWN0b3ItZWZmZWN0Om5vbi1zY2FsaW5nLXN0cm9rZX1cbi5zdGF0ZS5ob21le2ZpbGw6cmdiYSg5NywyMDIsMjI1LC4wNik7c3Ryb2tlOnJnYmEoOTcsMjAyLDIyNSwuOCl9XG4uc3RsYWJlbHtmaWxsOnJnYmEoMTU5LDE4MiwyMDMsLjM1KTtmb250OjYwMCAxM3B4IHZhcigtLWYtZGlzcGxheSk7bGV0dGVyLXNwYWNpbmc6LjNlbTt0ZXh0LWFuY2hvcjptaWRkbGV9XG4ucmluZ3tmaWxsOm5vbmU7c3Ryb2tlOnJnYmEoOTcsMjAyLDIyNSwuMjgpO3N0cm9rZS1kYXNoYXJyYXk6MyA2fVxuLnJpbmdsYmx7ZmlsbDpyZ2JhKDk3LDIwMiwyMjUsLjcpO2ZvbnQ6NTAwIDExcHggdmFyKC0tZi1tb25vKX1cbi5waW57Y3Vyc29yOnBvaW50ZXJ9XG4ucGluIC5oYWxve2ZpbGw6cmdiYSg5NywyMDIsMjI1LC4xMik7c3Ryb2tlOm5vbmU7dHJhbnNpdGlvbjpyIC4yc31cbi5waW4gLmRvdHtmaWxsOnZhcigtLWJnKTtzdHJva2U6dmFyKC0tc2t5KTtzdHJva2Utd2lkdGg6Mi41fVxuLnBpbi5jYWxsIC5kb3R7c3Ryb2tlOnZhcigtLXdhcm4pO3N0cm9rZS1kYXNoYXJyYXk6MyAyLjV9XG4ucGluLmNhbGwgLmhhbG97ZmlsbDpyZ2JhKDI0MiwxODQsNzUsLjEyKX1cbi5waW4gdGV4dHtmaWxsOnZhcigtLXdoaXRlKTtmb250OjYwMCAxMnB4IHZhcigtLWYtZGlzcGxheSk7cGFpbnQtb3JkZXI6c3Ryb2tlO3N0cm9rZTp2YXIoLS1iZyk7c3Ryb2tlLXdpZHRoOjRweDtsZXR0ZXItc3BhY2luZzouMDRlbX1cbi5waW4ub24gLmhhbG97cjoxOH1cbi5waW4ub24gLmRvdHtmaWxsOnZhcigtLXNreSl9XG4ucGluLmNhbGwub24gLmRvdHtmaWxsOnZhcigtLXdhcm4pfVxuLnBpbi5kaW17b3BhY2l0eTouMTh9XG4uaG9tZSAuY29yZXtmaWxsOnZhcigtLXNreSl9XG4uaG9tZSB0ZXh0e2ZpbGw6dmFyKC0tc2t5KTtmb250OjcwMCAxM3B4IHZhcigtLWYtZGlzcGxheSk7cGFpbnQtb3JkZXI6c3Ryb2tlO3N0cm9rZTp2YXIoLS1iZyk7c3Ryb2tlLXdpZHRoOjRweH1cbi5yb3V0ZXtzdHJva2U6dmFyKC0tc2t5KTtzdHJva2Utd2lkdGg6MS41O3N0cm9rZS1kYXNoYXJyYXk6NiA1O2ZpbGw6bm9uZTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXN9XG4ucm91dGUuc2hvd3tvcGFjaXR5Oi45fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOm5vLXByZWZlcmVuY2UpeyAucm91dGUuc2hvd3thbmltYXRpb246ZGFzaCAxLjJzIGxpbmVhciBpbmZpbml0ZX0gQGtleWZyYW1lcyBkYXNoe3Rve3N0cm9rZS1kYXNob2Zmc2V0Oi0yMn19IH1cblxuLyogSG92ZXIgY2FyZCAqL1xuLmNhcmR7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo1O3dpZHRoOm1pbigzNDBweCxjYWxjKDEwMCUgLSAyNHB4KSk7YmFja2dyb3VuZDpyZ2JhKDQsMTIsMjIsLjkyKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXNreSk7Ym94LXNoYWRvdzp2YXIoLS1nbG93LXN0cm9uZyk7XG4gIGJvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjE0cHggMTZweDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoOHB4KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cig4cHgpfVxuLmNhcmRbaGlkZGVuXXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fVxuLmNhcmQgLnRvcHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTBweH1cbi5jYXJkIC5pZHtmb250OjcwMCAyMnB4IHZhcigtLWYtZGlzcGxheSk7Y29sb3I6dmFyKC0tc2t5KTt0ZXh0LXNoYWRvdzowIDAgMTRweCByZ2JhKDk3LDIwMiwyMjUsLjU1KTtsaW5lLWhlaWdodDoxfVxuLmNhcmQgLmFwdHtmb250LXNpemU6MTNweDtjb2xvcjp2YXIoLS1tdXRlZCk7bWFyZ2luLXRvcDo0cHh9XG4uY2FyZCAueHtib3JkZXI6MDtwYWRkaW5nOjJweCA2cHg7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MTtjb2xvcjp2YXIoLS1tdXRlZCl9XG4uc3RhdHN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMywxZnIpO2dhcDo4cHg7bWFyZ2luOjEycHggMDtib3JkZXItYmxvY2s6MXB4IHNvbGlkIHZhcigtLWxpbmUtc29mdCk7cGFkZGluZzo4cHggMH1cbi5zdGF0cyBkaXZ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn1cbi5zdGF0cyBie2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTZweH1cbi5zdGF0cyBzcGFue2ZvbnQtc2l6ZToxMHB4O2xldHRlci1zcGFjaW5nOi4xNGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjp2YXIoLS1kaW0pfVxuLmZvb2R7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweH1cbi5mb29kIGgze21hcmdpbjowO2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjYwMH1cbi5mb29kIC53aGVyZXtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTFweDtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjFlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6dmFyKC0tc2t5KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JvcmRlci1yYWRpdXM6OTlweDtwYWRkaW5nOjFweCA4cHg7bWFyZ2luLWxlZnQ6NnB4O3ZlcnRpY2FsLWFsaWduOjJweH1cbi5mb29kIHB7bWFyZ2luOjRweCAwIDA7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MS40NTtjb2xvcjojRDNFM0YwfVxuLmZvb2QgLmhyc3tjb2xvcjp2YXIoLS1tdXRlZCl9XG4uY2F1dGlvbnttYXJnaW4tdG9wOjEwcHg7Zm9udC1zaXplOjEyLjVweDtsaW5lLWhlaWdodDoxLjQ1O2NvbG9yOnZhcigtLXdhcm4pO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNDIsMTg0LDc1LC40NSk7Ym9yZGVyLXJhZGl1czo4cHg7cGFkZGluZzo3cHggMTBweH1cbi5jYXJkIGF7Y29sb3I6dmFyKC0tc2t5KTtmb250LXNpemU6MTNweH1cbi5jYXJkIC5saW5rc3ttYXJnaW4tdG9wOjEwcHg7ZGlzcGxheTpmbGV4O2dhcDoxNHB4O2ZsZXgtd3JhcDp3cmFwfVxuLnN0YXR1c3tmb250LXNpemU6MTFweDtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjEyZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3doaXRlLXNwYWNlOm5vd3JhcH1cbi5zdGF0dXMub2t7Y29sb3I6dmFyKC0tc2t5KX0gLnN0YXR1cy5jYWxse2NvbG9yOnZhcigtLXdhcm4pfVxuXG4vKiBMaXN0ICovXG4ubGlzdGJveHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi1oZWlnaHQ6MDtwYWRkaW5nOjE0cHggMTJweCAxMnB4fVxuLmZpbHRlcnN7ZGlzcGxheTpmbGV4O2dhcDo2cHg7ZmxleC13cmFwOndyYXA7cGFkZGluZzowIDZweCAxMnB4fVxuLmNoaXB7Zm9udC1zaXplOjEycHg7cGFkZGluZzo1cHggMTBweDtib3JkZXItcmFkaXVzOjk5cHh9XG4ubGlzdHtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowIDRweDtvdmVyZmxvdzphdXRvO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjhweDttaW4taGVpZ2h0OjA7bWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gMjMwcHgpfVxuLml0ZW17ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczphdXRvIDFmciBhdXRvO2dhcDoycHggMTJweDthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzoxMHB4IDEycHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lLXNvZnQpO2JvcmRlci1yYWRpdXM6MTBweDtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4ycywgYm94LXNoYWRvdyAuMnN9XG4uaXRlbTpob3ZlciwuaXRlbS5vbntib3JkZXItY29sb3I6dmFyKC0tc2t5KTtib3gtc2hhZG93OnZhcigtLWdsb3cpfVxuLml0ZW0gLmlpZHtmb250OjcwMCAxNXB4IHZhcigtLWYtZGlzcGxheSk7Y29sb3I6dmFyKC0tc2t5KTtncmlkLXJvdzpzcGFuIDI7bWluLXdpZHRoOjMuNGVtfVxuLml0ZW0gLm5te2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTRweDttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9XG4uaXRlbSAuc3Vie2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLW11dGVkKTttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9XG4uaXRlbSAuZGlzdHtncmlkLXJvdzpzcGFuIDI7dGV4dC1hbGlnbjpyaWdodDtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjE1cHh9XG4uaXRlbSAuZGlzdCBzbWFsbHtkaXNwbGF5OmJsb2NrO2ZvbnQtd2VpZ2h0OjMwMDtmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS1tdXRlZCl9XG4uaXRlbS5jYWxsIC5paWR7Y29sb3I6dmFyKC0td2Fybil9XG5cbmZvb3RlcntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjEwcHggMjBweDtmbGV4LXdyYXA6d3JhcDtmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS1kaW0pO2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWxpbmUtc29mdCk7cGFkZGluZy10b3A6MTJweH1cblxuLyogVFYgdG91ciBtb2RlICovXG4udHYgLmxpc3Rib3ggLmZpbHRlcnN7ZGlzcGxheTpub25lfVxuLnR2IC5jYXJke3dpZHRoOm1pbig0MjBweCxjYWxjKDEwMCUgLSAyNHB4KSl9XG5cbkBtZWRpYSAobWF4LXdpZHRoOjk4MHB4KXtcbiAgbWFpbntncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfVxuICAjbWFwe21heC1oZWlnaHQ6bm9uZTttaW4taGVpZ2h0OjA7aGVpZ2h0OmF1dG99XG4gIC5saXN0e21heC1oZWlnaHQ6bm9uZX1cbiAgLnRpdGxle2JvcmRlci1sZWZ0OjA7cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWxlZnQ6MH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOjY0MHB4KXtcbiAgLmNhcmR7cG9zaXRpb246Zml4ZWQ7bGVmdDptYXgoMTJweCwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0LDBweCkpIWltcG9ydGFudDtyaWdodDptYXgoMTJweCwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCwwcHgpKTt0b3A6YXV0byFpbXBvcnRhbnQ7Ym90dG9tOmNhbGMoMTJweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLDBweCkpO3dpZHRoOmF1dG87bWF4LWhlaWdodDo3MHZoO292ZXJmbG93OmF1dG99XG59XG4vKiBFbWJlZGRlZCBpbnNpZGUgdGhlIGxvYmJ5IGRhc2hib2FyZDogbm8gb3duIGhlYWRlci9mb290ZXIsIGZpbGwgdGhlIGZyYW1lICovXG4uZW1iZWQgaGVhZGVyLC5lbWJlZCBmb290ZXJ7ZGlzcGxheTpub25lfVxuLmVtYmVkLndyYXB7bWluLWhlaWdodDoxMDB2aDtwYWRkaW5nLWJsb2NrOjA7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9XG5odG1sLmVtYmVkZGVkLGh0bWwuZW1iZWRkZWQgYm9keXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fVxuQG1lZGlhIChtaW4td2lkdGg6OTgxcHgpe1xuICAuZW1iZWQgI21hcHttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSA2NHB4KX1cbiAgLmVtYmVkIC5saXN0e21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDgwcHgpfVxuICAuZW1iZWQgbWFpbntoZWlnaHQ6MTAwdmh9XG59XG4vKiBOYXJyb3cgZW1iZWQgKHBob25lcyk6IG5hdHVyYWwgaGVpZ2h0LCBkZXRhaWxzIGNhcmQgc2l0cyB1bmRlciB0aGUgbWFwIGluc3RlYWQgb2YgZmxvYXRpbmcgKi9cbkBtZWRpYSAobWF4LXdpZHRoOjk4MHB4KXtcbiAgLmVtYmVkLndyYXB7bWluLWhlaWdodDowfVxuICAuZW1iZWQgLmNhcmR7cG9zaXRpb246c3RhdGljIWltcG9ydGFudDtsZWZ0OmF1dG8haW1wb3J0YW50O3RvcDphdXRvIWltcG9ydGFudDtyaWdodDphdXRvIWltcG9ydGFudDtib3R0b206YXV0byFpbXBvcnRhbnQ7d2lkdGg6YXV0byFpbXBvcnRhbnQ7bWF4LWhlaWdodDpub25lO21hcmdpbjoxMHB4fVxufVxuLnByaXZ7Y29sb3I6dmFyKC0td2Fybik7Zm9udC13ZWlnaHQ6NjAwfVxuXHUwMDNjL3N0eWxlPlxuXHUwMDNjL2hlYWQ+XG5cdTAwM2Nib2R5PlxuXG5cdTAwM2NkaXYgY2xhc3M9XCJ3cmFwXCIgaWQ9XCJhcHBcIj5cbiAgXHUwMDNjaGVhZGVyPlxuICAgIFx1MDAzY2RpdiBjbGFzcz1cImJyYW5kXCI+XG4gICAgICBcdTAwM2NpbWcgc3JjPVwiXCIgYWx0PVwiQWVyb3dvb2QgQXZpYXRpb24gbG9nbyBtYXJrXCI+XG4gICAgICBcdTAwM2NkaXYgY2xhc3M9XCJ3b3JkbWFya1wiPlx1MDAzY2I+QUVST1dPT0RcdTAwM2MvYj5cdTAwM2NzcGFuPkFWSUFUSU9OXHUwMDNjL3NwYW4+XHUwMDNjL2Rpdj5cbiAgICAgIFx1MDAzY2RpdiBjbGFzcz1cInRpdGxlXCI+XG4gICAgICAgIFx1MDAzY2gxPkZseS1JbiBGb29kIGZyb20gS0VRWVx1MDAzYy9oMT5cbiAgICAgICAgXHUwMDNjcD5SZXN0YXVyYW50cyBvbiB0aGUgZmllbGQgb3IgYSBzaG9ydCB3YWxrIGZyb20gdGhlIHJhbXBcdTAwM2MvcD5cbiAgICAgIFx1MDAzYy9kaXY+XG4gICAgXHUwMDNjL2Rpdj5cbiAgICBcdTAwM2NkaXYgY2xhc3M9XCJoY3RybFwiPlxuICAgICAgXHUwMDNjYnV0dG9uIGlkPVwiYnRuVG91clwiIHR5cGU9XCJidXR0b25cIiBhcmlhLXByZXNzZWQ9XCJmYWxzZVwiPkF1dG8gdG91clx1MDAzYy9idXR0b24+XG4gICAgICBcdTAwM2NidXR0b24gaWQ9XCJidG5GdWxsXCIgdHlwZT1cImJ1dHRvblwiPkZ1bGwgc2NyZWVuXHUwMDNjL2J1dHRvbj5cbiAgICBcdTAwM2MvZGl2PlxuICBcdTAwM2MvaGVhZGVyPlxuXG4gIFx1MDAzY21haW4+XG4gICAgXHUwMDNjc2VjdGlvbiBjbGFzcz1cInBhbmVsIG1hcGJveFwiIGFyaWEtbGFiZWw9XCJNYXAgb2YgZmx5LWluIHJlc3RhdXJhbnRzXCI+XG4gICAgICBcdTAwM2NkaXYgY2xhc3M9XCJtYXBoZWFkXCI+XG4gICAgICAgIFx1MDAzY2RpdiBjbGFzcz1cImxhYmVsXCI+UmFuZ2UgcmluZ3MgaW4gbmF1dGljYWwgbWlsZXMgZnJvbSBLRVFZXHUwMDNjL2Rpdj5cbiAgICAgICAgXHUwMDNjZGl2IGNsYXNzPVwibGVnZW5kXCI+XHUwMDNjc3Bhbj5cdTAwM2NpIGNsYXNzPVwibGctb2tcIj5cdTAwM2MvaT5PcGVuLCBjaGVja2VkIE9jdCAyMDI2XHUwMDNjL3NwYW4+XHUwMDNjc3Bhbj5cdTAwM2NpIGNsYXNzPVwibGctY2FsbFwiPlx1MDAzYy9pPkNhbGwgYWhlYWQgdG8gY29uZmlybVx1MDAzYy9zcGFuPlx1MDAzYy9kaXY+XG4gICAgICBcdTAwM2MvZGl2PlxuICAgICAgXHUwMDNjZGl2IGNsYXNzPVwibWFwd3JhcFwiIGlkPVwibWFwd3JhcFwiPlxuICAgICAgICBcdTAwM2NzdmcgaWQ9XCJtYXBcIiB2aWV3Qm94PVwiMCAwIDkyNSA3MTBcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiIHJvbGU9XCJpbWdcIiBhcmlhLWxhYmVsPVwiTWFwIG9mIHRoZSBTb3V0aGVhc3Qgd2l0aCByZXN0YXVyYW50IHBpbnNcIj5cdTAwM2Mvc3ZnPlxuICAgICAgICBcdTAwM2NkaXYgY2xhc3M9XCJjYXJkXCIgaWQ9XCJjYXJkXCIgaGlkZGVuIHJvbGU9XCJkaWFsb2dcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cdTAwM2MvZGl2PlxuICAgICAgXHUwMDNjL2Rpdj5cbiAgICBcdTAwM2Mvc2VjdGlvbj5cblxuICAgIFx1MDAzY2FzaWRlIGNsYXNzPVwicGFuZWwgbGlzdGJveFwiIGFyaWEtbGFiZWw9XCJEZXN0aW5hdGlvbnMgbGlzdFwiPlxuICAgICAgXHUwMDNjZGl2IGNsYXNzPVwiZmlsdGVyc1wiIHJvbGU9XCJncm91cFwiIGFyaWEtbGFiZWw9XCJEaXN0YW5jZSBmaWx0ZXJcIj5cbiAgICAgICAgXHUwMDNjYnV0dG9uIGNsYXNzPVwiY2hpcFwiIGRhdGEtZj1cImFsbFwiIGFyaWEtcHJlc3NlZD1cInRydWVcIiB0eXBlPVwiYnV0dG9uXCI+QWxsXHUwMDNjL2J1dHRvbj5cbiAgICAgICAgXHUwMDNjYnV0dG9uIGNsYXNzPVwiY2hpcFwiIGRhdGEtZj1cIjEwMFwiIGFyaWEtcHJlc3NlZD1cImZhbHNlXCIgdHlwZT1cImJ1dHRvblwiPlVuZGVyIDEwMCBubVx1MDAzYy9idXR0b24+XG4gICAgICAgIFx1MDAzY2J1dHRvbiBjbGFzcz1cImNoaXBcIiBkYXRhLWY9XCIyMDBcIiBhcmlhLXByZXNzZWQ9XCJmYWxzZVwiIHR5cGU9XCJidXR0b25cIj4xMDBcdTIwMTMyMDAgbm1cdTAwM2MvYnV0dG9uPlxuICAgICAgICBcdTAwM2NidXR0b24gY2xhc3M9XCJjaGlwXCIgZGF0YS1mPVwiZmFyXCIgYXJpYS1wcmVzc2VkPVwiZmFsc2VcIiB0eXBlPVwiYnV0dG9uXCI+MjAwKyBubVx1MDAzYy9idXR0b24+XG4gICAgICBcdTAwM2MvZGl2PlxuICAgICAgXHUwMDNjdWwgY2xhc3M9XCJsaXN0XCIgaWQ9XCJsaXN0XCI+XHUwMDNjL3VsPlxuICAgIFx1MDAzYy9hc2lkZT5cbiAgXHUwMDNjL21haW4+XG5cbiAgXHUwMDNjZm9vdGVyPlxuICAgIFx1MDAzY3NwYW4+RGlzdGFuY2VzIGFyZSBncmVhdC1jaXJjbGUgZnJvbSBLRVFZLiBUaW1lcyBhcmUgbm8td2luZCBlc3RpbWF0ZXMgYXQgMTEwIGt0Llx1MDAzYy9zcGFuPlxuICAgIFx1MDAzY3NwYW4+SG91cnMgY2hhbmdlIG9mdGVuLiBDYWxsIGFoZWFkLCBjaGVjayBOT1RBTXMsIGFuZCBnZXQgYSBmdWxsIGJyaWVmaW5nLiBQcml2YXRlIGZpZWxkcyBuZWVkIHRoZSBvd25lcidzIHBlcm1pc3Npb24gYmVmb3JlIGxhbmRpbmcuIExpc3RpbmdzIGNoZWNrZWQgT2N0IDIwMjYuXHUwMDNjL3NwYW4+XG4gIFx1MDAzYy9mb290ZXI+XG5cdTAwM2MvZGl2PlxuXG5cdTAwM2NzY3JpcHQ+XG4oKCkgPT4ge1xuICBjb25zdCBHRU8gPSB7XCJwcm9qXCI6e1wiTE9OMFwiOi04NS44LFwiTEFUMVwiOjM3LjcsXCJLXCI6MC44MjYwOTgyOTQ0OTU3NjM5LFwiU1wiOjEwMH0sXCJwYXRoc1wiOntcIkFsYWJhbWFcIjpcIk0tMTI4LjggMjY5LjlMMTYgMjcxLjVMMzAuNCAzNTcuNUw1MC44IDQ4NEw2MC4zIDUxMkw2OS40IDUyNy44TDY1LjcgNTM3LjdMNzUuMiA1NDMuN0w2MS4yIDU1Ni4zTDYxLjcgNTY4LjlMNTQuNCA1ODUuOUw2Mi42IDYxNkw1Ni43IDY0Mi4zTDY1LjcgNjY5LjdMMjUgNjcwLjJMLTE0OC43IDY3MC4yTC0xNTEuNCA2ODMuNEwtMTMyLjkgNzAyLjZMLTEzNi4xIDcxOUwtMTI5LjcgNzI3LjJMLTE0MS45IDc0MkwtMTUzLjIgNzQ1LjNMLTE3NC4xIDcyOC44TC0xNzYuMyA3MDQuMkwtMTgyLjcgNzAxLjVMLTE5MC4zIDcyMC4xTC0xOTMuMSA3MzguMkwtMjE0LjMgNzMzLjJMLTIyMC43IDU4MC40TC0yMDEuNyAzOTAuNEwtMTg5LjkgMjgwLjhMLTE5OC41IDI3MC40TC0xMjguOCAyNjkuOVpcIixcIkRlbGF3YXJlXCI6XCJNODU4IC0yMTAuNEw4NTAuMyAtMTk4LjRMODQxLjcgLTE5MS44TDg0My41IC0xNzUuOUw4NTUuNyAtMTYxLjJMODU4LjkgLTEzNi41TDg3Ni41IC0xMTAuOEw4ODQuNyAtMTA5LjdMODg4LjMgLTc1LjJMODM0LjkgLTc2LjNMODI3LjIgLTIwMi4yTDg0MS4yIC0yMTMuMkw4NTggLTIxMC40WlwiLFwiRmxvcmlkYVwiOlwiTTI1IDY3MC4yTDY1LjcgNjY5LjdMNzcuMSA2OTguN0wxOTAuMiA3MDUuM0wyOTYgNzEzTDMwMC4xIDczNC4zTDMxMC4xIDczMy44TDMxMy43IDcxMy41TDMxMC41IDY5NC45TDMxOC4yIDY4Ny4yTDMzNy4yIDY5NS40TDM1OS44IDY5OS4zTDM2NC44IDc0Mi41TDM3NS4yIDc5MS4zTDM5OS4yIDg1NS40TDQzNS44IDkyMy44TDQzMC40IDkyOC44TDQzMi4yIDk2MC41TDQ0Ny42IDk5Ni4xTDQ3MS42IDEwNjcuOUw0NzYuNiAxMDkwLjNMNDc2LjEgMTExMy4zTDQ2Ny4xIDExOTZMNDU5LjQgMTE5Ny43TDQ1MS4yIDEyMjMuNEw0NTMuOSAxMjMxLjZMNDM4LjEgMTI1MC4zTDQzMS44IDEyNDUuOUw0MTYuNCAxMjUzLjVMMzkwLjEgMTI1Ny45TDM4Mi41IDEyNDcuNUwzODYuMSAxMjMyLjJMMzY3LjUgMTE4Ny44TDM1MyAxMTc5LjZMMzQwLjQgMTE4NS42TDMzMC40IDExNjFMMzI3LjcgMTE0MC43TDMxMC41IDExMTguM0wzMDYuNCAxMTAzLjVMMzA5LjIgMTA4Mi4xTDI5OS43IDEwNzguM0wzMDEuOSAxMDkwLjlMMjkzLjMgMTA5NC4yTDI2Ny4xIDEwMzkuOUwyNTYuNyAxMDI2LjJMMjgxLjYgOTg2LjNMMjY1LjMgOTg4LjVMMjU0LjQgMTAwMS4xTDI0My42IDk4MS4zTDI1OCA5MjYuNkwyNjAuNyA4ODEuMUwyNTAuOCA4NzAuMkwyNDcuNiA4NTUuNEwyMzEuOCA4NTIuMUwyMTMuMiA4MjhMMTk4LjMgODE4LjFMMTk3LjQgODAzLjNMMTg3IDc5Ny45TDE3OC40IDc4MS40TDE0Ni43IDc1OS41TDExOS4xIDc2NC40TDEyMC41IDc3OS44TDExMS40IDc3N0w3Ny4xIDc5NS43TDQwLjQgODAwTDQxLjMgNzg5LjFMMzIuNyA3NzZMLTEwLjMgNzQ2LjRMLTQxIDczMy44TC02OC42IDczMC41TC05MS43IDczMi43TC0xNDEuOSA3NDJMLTEyOS43IDcyNy4yTC0xMzYuMSA3MTlMLTEzMi45IDcwMi42TC0xNTEuNCA2ODMuNEwtMTQ4LjcgNjcwLjJMMjUgNjcwLjJaXCIsXCJHZW9yZ2lhXCI6XCJNMjIyLjMgMjY5LjlMMjA0LjYgMjkxLjJMMjAzLjMgMzAxLjZMMjMwLjkgMzIzTDIzOS41IDMyMS40TDI1Mi4xIDM0My4zTDI1NC45IDM1NC44TDI2OCAzNzUuNkwyODcgMzg4LjJMMjk3LjggNDA2LjhMMzIwIDQyMy44TDMxOS4xIDQzNS4zTDMzMy42IDQ1My45TDM1NS44IDQ2OS4yTDM2MS4yIDQ4NS43TDM2Mi4xIDUwN0wzNzMuNCA1MTQuMkwzODYuNSA1NDFMMzg3IDU1OEw0MDYgNTY2LjdMMzg1LjYgNjAwLjdMMzgyIDYxOC4yTDM3My40IDYzMy42TDM3Mi41IDY0OS40TDM2My41IDY1Ni42TDM1OS44IDY5OS4zTDMzNy4yIDY5NS40TDMxOC4yIDY4Ny4yTDMxMC41IDY5NC45TDMxMy43IDcxMy41TDMxMC4xIDczMy44TDMwMC4xIDczNC4zTDI5NiA3MTNMMTkwLjIgNzA1LjNMNzcuMSA2OTguN0w2NS43IDY2OS43TDU2LjcgNjQyLjNMNjIuNiA2MTZMNTQuNCA1ODUuOUw2MS43IDU2OC45TDYxLjIgNTU2LjNMNzUuMiA1NDMuN0w2NS43IDUzNy43TDY5LjQgNTI3LjhMNjAuMyA1MTJMNTAuOCA0ODRMMzAuNCAzNTcuNUwxNiAyNzEuNUwxMjIuMyAyNzFMMTgwLjIgMjcxLjVMMjIyLjMgMjY5LjlaXCIsXCJLZW50dWNreVwiOlwiTTE1Ni43IC0xMDYuOUwxNzUuMiAtOTMuMkwxODguNCAtMTAwLjRMMjE5LjYgLTkyLjdMMjI4LjYgLTEwMi41TDI0MC40IC0xMDUuOEwyNDQgLTg4LjlMMjUzLjUgLTg2LjFMMjY0LjggLTcyLjRMMjYyLjYgLTQyLjNMMjcyLjUgLTIzLjFMMjg1LjYgLTguM0wyODkuNyAzLjJMMzA1LjUgMTQuN0wzMTYuNCAxNi4zTDI4NC43IDQzLjFMMjU0LjQgNTcuOUwyNTQuNCA2NS42TDI0Mi4yIDcyLjJMMjQxLjMgODAuOUwyMjUuNSA4NC44TDIyMCA5NS43TDE3NS43IDExMEwxNzQuMyAxMTEuNkwxMDMuNyAxMTAuNUw0Mi4yIDEwNy4yTDI1LjkgMTA4LjNMLTY1LjUgMTA0LjVMLTE2OS41IDEwNi43TC0xODcuNiAxMDIuM0wtMTg2LjMgMTIwLjRMLTI4OSAxMTkuM0wtMjk4LjkgMTIwLjRMLTI5NC40IDEwNy44TC0yODIuMiAxMTIuMUwtMjc1LjQgNzEuNkwtMjc5LjUgNjYuMUwtMjY2LjggNDguNkwtMjU3LjMgNDcuNUwtMjI3IDYyLjlMLTIxNi42IDU0LjZMLTIyNC4zIDQxLjVMLTIyMS4xIDMxLjFMLTE4Ny4yIDIxLjhMLTE5NC45IDQuM0wtMTg0IC0xMEwtMTc2LjMgLTE5LjNMLTE1NS41IC0yMC40TC0xNDguNyAtMjcuNUwtMTQxLjUgLTIwLjRMLTEzMC42IC0yMy43TC0xMDkuOCAtOC45TC0xMDMgLTE5LjNMLTgyLjIgLTI5LjJMLTc2LjggLTE5LjNMLTU4LjIgLTIzLjFMLTU5LjYgLTM0LjFMLTQxLjUgLTQ2LjdMLTM4LjMgLTM1LjJMLTE5LjggLTI1LjlMLTEwLjMgLTMyLjRMLTIuNiAtNTcuNkwxMS45IC02Mi42TDE3LjMgLTc1LjJMMzEuNCAtODMuNEwzMC40IC0xMDMuMUw1MS43IC05OC43TDY3LjEgLTEwOEw4MS42IC0xMDguNkw3NC44IC0xMzZMODEuMSAtMTQwLjNMMTEyLjggLTE0MC4zTDEyOS41IC0xMTkuNUwxMzAuOSAtMTEwLjhMMTU2LjcgLTEwNi45WlwiLFwiTWFyeWxhbmRcIjpcIk04MTAgLTI1LjNMODA4LjIgLTI1LjNMODA1LjkgLTI1LjNMODEwIC0yNS4zWk01MjIuMyAtMjAyLjJMODI3LjIgLTIwMi4yTDgzNC45IC03Ni4zTDg4OC4zIC03NS4yTDg3MiAtMzNMODU5LjMgLTMxLjNMODM2LjcgLTI1LjNMODE5LjEgLTIwLjlMODE5LjUgLTM3LjRMODEyLjcgLTQzLjlMODIyLjIgLTUxLjFMODA5LjYgLTY3LjVMODA1LjUgLTYwLjRMNzg4LjMgLTYyTDc4Mi40IC04MC4xTDc4Ny44IC04MC4xTDc4OC4zIC0xMDMuNkw3OTMuNyAtMTEzTDc4Ni41IC0xNDQuN0w3OTUuNSAtMTYzLjNMODA5LjYgLTE2Ni42TDgxMS44IC0xODUuOEw4MDEuNCAtMTgzLjZMODAxIC0xNzMuOEw3NzkuMyAtMTYxLjJMNzcyLjkgLTE0OS43TDc3MS42IC0xMjAuNkw3NjMuNCAtMTA2LjlMNzY3IC04My45TDc3Ny45IC02OEw3NzYuNSAtNTZMNzgzLjMgLTQzLjlMNzc5LjcgLTM1LjdMNzYwLjcgLTUxLjZMNzMzLjYgLTU5LjNMNzI1LjQgLTc0LjZMNzEwIC02NS45TDcwNC4xIC03Ny45TDcxNi40IC05My4yTDcyMy42IC0xMDkuMUw3MzQuNSAtMTE5LjVMNzI0LjEgLTEyOS40TDcxNy4zIC0xMjMuNEw3MDYuNCAtMTMyLjdMNjg5LjIgLTEzNy42TDY4OS4yIC0xNTIuNEw2ODAuMiAtMTYwLjZMNjY3LjUgLTE2Mi4yTDY1OCAtMTkwLjJMNjQ0IC0xOTAuMkw2MjkuOSAtMTk5LjVMNjIyLjMgLTE5MS44TDYwOC43IC0xOTIuNEw2MDUuNSAtMTgxLjRMNTgxLjEgLTE4OC41TDU2NC44IC0xNzMuOEw1NTMuOSAtMTc3TDUzNy42IC0xNjAuMUw1MjEuNCAtMTUwLjdMNTIyLjMgLTIwMi4yWlwiLFwiTm9ydGggQ2Fyb2xpbmFcIjpcIk0zOTguMyAxMTMuOEw0NTQuOCAxMTUuNEw1MTkuNSAxMTZMODIwLjQgMTE0LjlMODI5LjkgMTU0LjlMODA2LjkgMTUxTDgwMy43IDE1Nkw3NzUuNiAxNjJMNzcxLjYgMTY3LjVMNzUzIDE2OS4xTDc1My45IDE3Ni4yTDc3Ni41IDE3MS4zTDc3OS43IDE3NS43TDgwNC42IDE3MC43TDgxMi43IDE4MC4xTDgyNy43IDE3Ni4yTDgzMy4xIDIwMC4zTDgyOC4xIDIxMS44TDgxOC4yIDIxMi45TDc5Ny40IDIzNy42TDc2OS44IDIzOC43TDc2NS4yIDI1NS42TDc3NyAyNzIuNkw3ODYuNSAyNzUuOUw3NjguOCAzMDMuOEw3NTMuOSAzMDAuNkw3MjcuNyAzMDMuM0w3MDkuNiAzMDkuM0w2ODEuMSAzMjguNUw2NTguNCAzNTMuN0w2NDYuNyAzODUuNEw2MjkuNSAzNzguM0w1OTkuNiAzODQuOUw1MDYgMjg5LjZMNDEzLjIgMjg4TDQxNC42IDI3Ni41TDQwMS45IDI1OS41TDM5My4zIDI2NS41TDM5Mi45IDI1NS4xTDI5MS4xIDI1MC4yTDI2OC40IDI1NEwyNTAuOCAyNjMuM0wyMjIuMyAyNjkuOUwxODAuMiAyNzEuNUwxMjIuMyAyNzFMMTI0LjYgMjQ3LjRMMTQwLjggMjQ1LjJMMTQ3LjIgMjI4LjhMMTY3LjUgMjE0TDE5MC4yIDIxMy41TDIxMC41IDE5OC4xTDIzMS44IDE5Mi43TDI0OS45IDE3MC4yTDI2MS4yIDE2My42TDI2My41IDE3My41TDI5NiAxNTQuM0wzMTEgMTU4LjJMMzIxLjQgMTM5LjVMMzM2LjggMTM0LjZMMzQwLjQgMTExLjFMMzk4LjMgMTEzLjhaXCIsXCJTb3V0aCBDYXJvbGluYVwiOlwiTTI1MC44IDI2My4zTDI2OC40IDI1NEwyOTEuMSAyNTAuMkwzOTIuOSAyNTUuMUwzOTMuMyAyNjUuNUw0MDEuOSAyNTkuNUw0MTQuNiAyNzYuNUw0MTMuMiAyODhMNTA2IDI4OS42TDU5OS42IDM4NC45TDU4NS4yIDM4OS44TDU2Ny4xIDQwNi4zTDU0OS40IDQzMkw1NDYuMiA0NTIuOEw1MzIuMiA0NjkuMkw1MTMuNyA0NjkuMkw1MDkuNiA0ODEuM0w0OTAuMSA0OTQuNEw0NzkuMyA1MDguN0w0NjIuMSA1MTQuN0w0NDMuNSA1MzBMNDQxLjcgNTM3LjJMNDI0LjUgNTQ1LjRMNDA2IDU2Ni43TDM4NyA1NThMMzg2LjUgNTQxTDM3My40IDUxNC4yTDM2Mi4xIDUwN0wzNjEuMiA0ODUuN0wzNTUuOCA0NjkuMkwzMzMuNiA0NTMuOUwzMTkuMSA0MzUuM0wzMjAgNDIzLjhMMjk3LjggNDA2LjhMMjg3IDM4OC4yTDI2OCAzNzUuNkwyNTQuOSAzNTQuOEwyNTIuMSAzNDMuM0wyMzkuNSAzMjEuNEwyMzAuOSAzMjNMMjAzLjMgMzAxLjZMMjA0LjYgMjkxLjJMMjIyLjMgMjY5LjlMMjUwLjggMjYzLjNaXCIsXCJUZW5uZXNzZWVcIjpcIk0tMTg2LjMgMTIwLjRMLTE4Ny42IDEwMi4zTC0xNjkuNSAxMDYuN0wtNjUuNSAxMDQuNUwyNS45IDEwOC4zTDQyLjIgMTA3LjJMMTAzLjcgMTEwLjVMMTc0LjMgMTExLjZMMTc1LjcgMTEwTDM0MC40IDExMS4xTDMzNi44IDEzNC42TDMyMS40IDEzOS41TDMxMSAxNTguMkwyOTYgMTU0LjNMMjYzLjUgMTczLjVMMjYxLjIgMTYzLjZMMjQ5LjkgMTcwLjJMMjMxLjggMTkyLjdMMjEwLjUgMTk4LjFMMTkwLjIgMjEzLjVMMTY3LjUgMjE0TDE0Ny4yIDIyOC44TDE0MC44IDI0NS4yTDEyNC42IDI0Ny40TDEyMi4zIDI3MUwxNiAyNzEuNUwtMTI4LjggMjY5LjlMLTE5OC41IDI3MC40TC0yMjAuNyAyNzAuNEwtMzcyLjcgMjcwLjRMLTM2NC41IDI2Ny43TC0zNTYuNCAyNTAuMkwtMzU3LjggMjI2LjFMLTM0Mi40IDIwOS42TC0zMzkuNyAxOTQuM0wtMzI3LjQgMTg4LjhMLTMyNC43IDE3MC4yTC0zMDguNCAxNDVMLTMwOC45IDEyMC40TC0zMDQuNCAxMjAuNEwtMjk4LjkgMTIwLjRMLTI4OSAxMTkuM0wtMTg2LjMgMTIwLjRaXCIsXCJWaXJnaW5pYVwiOlwiTTg1OS4zIC0zMS4zTDg3MiAtMzNMODYxLjEgLTE2TDg0OS44IC0xMEw4NDMgMTNMODI1LjkgNTAuM0w4MTEuOCA1Ny45TDgwNy4zIDQ0LjJMODE0LjUgMTMuNkw4MzYuNyAtMjUuM0w4NTkuMyAtMzEuM1pNODA4LjIgLTI1LjNMODEwIC0yNS4zTDgwNS45IC0yNS4zTDgwOC4yIC0yNS4zWk02MTUuNSAtMTc2LjVMNjU4LjQgLTE0My4xTDY2Ny41IC0xNjIuMkw2ODAuMiAtMTYwLjZMNjg5LjIgLTE1Mi40TDY4OS4yIC0xMzcuNkw3MDYuNCAtMTMyLjdMNzE3LjMgLTEyMy40TDcyMy42IC0xMDkuMUw3MTYuNCAtOTMuMkw3MDYuNCAtODguOUw3MDAuMSAtNzQuNkw3MDMuNyAtNjQuMkw3MjUuOSAtNjcuNUw3MjkuOSAtNTEuNkw3NTguOSAtNDVMNzY3IC0zMi40TDc5MC4xIC0xOC44TDc3OS43IDkuMkw3ODkuMiAzMS4xTDc3Ny45IDQxLjVMNzc2LjUgNTQuMUw3ODYuOSA2MS44TDc3NS42IDczLjhMNzU4LjQgNTcuOUw3NTQuNCA2My40TDc2OS4zIDc0LjlMODEwIDc3LjZMODIwLjQgMTE0LjlMNTE5LjUgMTE2TDQ1NC44IDExNS40TDM5OC4zIDExMy44TDM0MC40IDExMS4xTDE3NS43IDExMEwyMjAgOTUuN0wyMjUuNSA4NC44TDI0MS4zIDgwLjlMMjQyLjIgNzIuMkwyNTQuNCA2NS42TDI1NC40IDU3LjlMMjg0LjcgNDMuMUwzMTYuNCAxNi4zTDMxNSAyNC41TDMyNi40IDQxLjVMMzQwLjQgNDkuN0wzNTAuOCA0OS4yTDM2Ni42IDM2TDM3Ny45IDQ2LjRMMzk5LjIgNDAuOUw0MzYuNyAyMS44TDQzOS45IDI3LjhMNDU0LjQgMTlMNDU0LjggMUw0NjMuOSAtMTQuOUw0NzkuMyAtMjkuN0w0ODUuNiAtNDcuOEw1MDEuOSAtNjYuNEw1MDguMiAtODkuNEw1MjIuMyAtNzUuN0w1MzUuOCAtNzEuM0w1NDQuNCAtNzkuNUw1NjIuMSAtMTE1LjFMNTcyLjUgLTEwNi40TDYxMC45IC0xNDYuOUw2MTUuNSAtMTc2LjVaXCIsXCJXZXN0IFZpcmdpbmlhXCI6XCJNNDM2LjMgLTI5My43TDQzNi4zIC0yMDIuMkw1MjIuMyAtMjAyLjJMNTIxLjQgLTE1MC43TDUzNy42IC0xNjAuMUw1NTMuOSAtMTc3TDU2NC44IC0xNzMuOEw1ODEuMSAtMTg4LjVMNjA1LjUgLTE4MS40TDYwOC43IC0xOTIuNEw2MjIuMyAtMTkxLjhMNjI5LjkgLTE5OS41TDY0NCAtMTkwLjJMNjU4IC0xOTAuMkw2NjcuNSAtMTYyLjJMNjU4LjQgLTE0My4xTDYxNS41IC0xNzYuNUw2MTAuOSAtMTQ2LjlMNTcyLjUgLTEwNi40TDU2Mi4xIC0xMTUuMUw1NDQuNCAtNzkuNUw1MzUuOCAtNzEuM0w1MjIuMyAtNzUuN0w1MDguMiAtODkuNEw1MDEuOSAtNjYuNEw0ODUuNiAtNDcuOEw0NzkuMyAtMjkuN0w0NjMuOSAtMTQuOUw0NTQuOCAxTDQ1NC40IDE5TDQzOS45IDI3LjhMNDM2LjcgMjEuOEwzOTkuMiA0MC45TDM3Ny45IDQ2LjRMMzY2LjYgMzZMMzUwLjggNDkuMkwzNDAuNCA0OS43TDMyNi40IDQxLjVMMzE1IDI0LjVMMzE2LjQgMTYuM0wzMDUuNSAxNC43TDI4OS43IDMuMkwyODUuNiAtOC4zTDI3Mi41IC0yMy4xTDI2Mi42IC00Mi4zTDI2NC44IC03Mi40TDI4Ni41IC03NC42TDI4OS43IC04Ny44TDI5OS43IC05My4yTDI5NS42IC0xMDguNkwzMTEgLTEzMi43TDMyMy4yIC0xMTcuM0wzMzEuOCAtMTI2LjZMMzI5LjUgLTEzOC4xTDMzOS45IC0xNTcuM0wzNDkuNCAtMTU2LjhMMzU4LjkgLTE3MUwzNjggLTE2NC40TDM3OC40IC0xNjguOEw0MTAuNSAtMjAxLjFMNDE4LjIgLTIzNy44TDQyOS41IC0yNjEuOUw0MzAgLTI3Ny4zTDQyNC4xIC0yODguMkw0MzYuMyAtMjkzLjdaXCJ9fTtcbiAgY29uc3QgSE9NRSA9IHsgaWQ6XCJLRVFZXCIsIGxhdDozNS4wMTc1LCBsb246LTgwLjYyMjAgfTtcbiAgY29uc3QgVEFTID0gMTEwO1xuXG4gIC8qIEVhY2ggZW50cnk6IGFpcnBvcnQsIGZvb2Qgc3BvdHMsIG5vdGVzLiBzdGF0dXMgXCJva1wiID0gY29uZmlybWVkIG9wZXJhdGluZyBpbiAyMDI2IHNvdXJjZXM7IFwiY2FsbFwiID0gY291bGQgbm90IGNvbmZpcm0gY3VycmVudCBzdGF0dXMuICovXG4gIGNvbnN0IFNQT1RTID0gW1xuICAgIHsgaWQ6XCI0M0FcIiwgc2lkZTpcInVcIiwgYXB0OlwiTW9udGdvbWVyeSBDb3VudHkgQWlycG9ydFwiLCBjaXR5OlwiU3RhciwgTkNcIiwgbGF0OjM1LjM4NDYsIGxvbjotNzkuNzkwMywgc3RhdHVzOlwiY2FsbFwiLFxuICAgICAgZm9vZDpbe25hbWU6XCJNYXJ0aGEncyBHcmlsbFwiLCB3aGVyZTpcIlNob3J0IHdhbGtcIiwgZGVzYzpcIkJyZWFrZmFzdC1hbmQtbHVuY2ggZ3JpbGwgaW4gYSBmb3JtZXIgc2VydmljZSBzdGF0aW9uIG9mZiB0aGUgZW5kIG9mIHRoZSBydW53YXkuIFdhbGsgYWNyb3NzIHRoZSBmaWVsZCBvciBmb2xsb3cgdGhlIHJvYWQgZnJvbSB0aGUgRkJPLlwifSxcbiAgICAgICAgICAgIHtuYW1lOlwiU2hlcnJ5J3MgRmFtaWx5IFJlc3RhdXJhbnRcIiwgd2hlcmU6XCIwLjYgbWkgd2Fsa1wiLCBkZXNjOlwiQnJlYWtmYXN0IGFsbCBkYXkgb24gUyBNYWluIFN0IGluIFN0YXIuXCJ9XSxcbiAgICAgIGxpbmtzOltbXCJGdW4gUGxhY2VzIHRvIEZseSBsaXN0aW5nXCIsXCJodHRwczovL2Z1bnBsYWNlc3RvZmx5LmNvbS9mdW5mbHlkZXRhaWxzLmFzcD9pZD0yMzEwXCJdXSB9LFxuICAgIHsgaWQ6XCJTVEFOVE9OXCIsIGxhYmVsOlwiU3RhbnRvbidzXCIsIHByaXZhdGU6dHJ1ZSwgYXB0OlwiU3RhbnRvbidzIHByaXZhdGUgZ3Jhc3Mgc3RyaXBcIiwgY2l0eTpcIkJlbm5ldHRzdmlsbGUsIFNDXCIsIGxhdDozNC43MywgbG9uOi03OS42Nywgc3RhdHVzOlwib2tcIixcbiAgICAgIGZvb2Q6W3tuYW1lOlwiU3RhbnRvbidzIEJhcmJlY3VlICYgRmlzaCBDYW1wXCIsIHdoZXJlOlwiQWNyb3NzIHRoZSByb2FkXCIsIGRlc2M6XCJCQlEgYW5kIHNlYWZvb2QuIFRpZSBkb3duIGJlc2lkZSB0aGUgcmVzdGF1cmFudCBhbmQgd2FsayBhY3Jvc3MgdGhlIHJ1cmFsIGhpZ2h3YXkuXCIsIGhyczpcIlVzdWFsbHkgVGh1XHUyMDEzU3VuLiBDb25maXJtIGJlZm9yZSB5b3UgZ28uXCJ9XSxcbiAgICAgIGNhdXRpb246XCJQcml2YXRlIGZpZWxkOiBnZXQgdGhlIG93bmVyJ3MgcGVybWlzc2lvbiBiZWZvcmUgbGFuZGluZy4gMiwzMDAgZnQgZ3Jhc3Mgc3RyaXAgd2l0aCBhIGRvZ2xlZywgbm90IG9uIHRoZSBzZWN0aW9uYWwuIEN1cnJlbnQgc2hvcnQtZmllbGQgc2tpbGxzIHJlcXVpcmVkLlwiLFxuICAgICAgbGlua3M6W1tcIlN0YW50b24ncyBCQlFcIixcImh0dHBzOi8vd3d3LnN0YW50b25zYmJxLmNvbS9maW5kLXVzXCJdXSB9LFxuICAgIHsgaWQ6XCJCUTFcIiwgYXB0OlwiR2lsbGlhbS1NY0Nvbm5lbGwgQWlyZmllbGRcIiwgY2l0eTpcIkNhcnRoYWdlLCBOQ1wiLCBsYXQ6MzUuMzQxNywgbG9uOi03OS40MzY5LCBzdGF0dXM6XCJva1wiLFxuICAgICAgZm9vZDpbe25hbWU6XCJQaWstTi1QaWdcIiwgd2hlcmU6XCJPbiBmaWVsZFwiLCBkZXNjOlwiVGhlIGNsYXNzaWMgTkMgZmx5LWluIGJhcmJlY3VlLiBQYXJrIG9uIHRoZSBncmFzcyBpbiBmcm9udCBvZiB0aGUgcmVzdGF1cmFudC5cIn1dLFxuICAgICAgY2F1dGlvbjpcIlJ1bndheSAxMy8zMSBpcyAyLDUzOCBcdTAwZDcgMzYgZnQgd2l0aCBhIDMwMCBmdCBkaXNwbGFjZWQgdGhyZXNob2xkIG9uIDMxLiBDVEFGIDEyMi45LlwiLFxuICAgICAgbGlua3M6W1tcIk5DIFBvcmsgQ291bmNpbCBCQlEgVHJhaWxcIixcImh0dHBzOi8vd3d3Lm5jcG9yay5vcmcvYmJxLXRyYWlsL3Bpay1uLXBpZy9cIl1dIH0sXG4gICAgeyBpZDpcIktDVUJcIiwgYXB0OlwiSmltIEhhbWlsdG9uXHUyMDEzTC5CLiBPd2VucyBBaXJwb3J0XCIsIGNpdHk6XCJDb2x1bWJpYSwgU0NcIiwgbGF0OjMzLjk3MDUsIGxvbjotODAuOTk1Mywgc3RhdHVzOlwib2tcIixcbiAgICAgIGZvb2Q6W3tuYW1lOlwiSHVudGVyLUdhdGhlcmVyIGF0IHRoZSBIYW5nYXJcIiwgd2hlcmU6XCJPbiBmaWVsZFwiLCBkZXNjOlwiQnJld2VyeSBhbmQgYWxlaG91c2UgaW5zaWRlIHRoZSBoaXN0b3JpYyAxOTI5IEN1cnRpc3MtV3JpZ2h0IEhhbmdhciBhdCB0aGUgbm9ydGhlYXN0IGVuZCBvZiB0aGUgZmllbGQuXCIsIGhyczpcIk1vc3RseSBhZnRlcm5vb25zIGFuZCBldmVuaW5ncy4gQ2hlY2sgaG91cnMgYmVmb3JlIGEgbHVuY2ggdHJpcC5cIn1dLFxuICAgICAgY2F1dGlvbjpcIlRoZSBoYW5nYXIgc2l0cyBvdXRzaWRlIHRoZSBhaXJwb3J0IGZlbmNlLiBBc2sgdGhlIEZCTyBhYm91dCBnYXRlIGFjY2VzcyBvciBhIGNyZXcgY2FyLlwiLFxuICAgICAgbGlua3M6W1tcIkh1bnRlci1HYXRoZXJlclwiLFwiaHR0cHM6Ly9odW50ZXJnYXRoZXJlcmJyZXdlcnkuY29tL1wiXV0gfSxcbiAgICB7IGlkOlwiS0hLWVwiLCBhcHQ6XCJIaWNrb3J5IFJlZ2lvbmFsIEFpcnBvcnRcIiwgY2l0eTpcIkhpY2tvcnksIE5DXCIsIGxhdDozNS43NDExLCBsb246LTgxLjM4OTUsIHN0YXR1czpcImNhbGxcIixcbiAgICAgIGZvb2Q6W3tuYW1lOlwiQmx1ZSBTa3kncyBDYWZlXCIsIHdoZXJlOlwiT24gZmllbGRcIiwgZGVzYzpcIk5ldyBjYWZlIGF0IHRoZSBhaXJwb3J0LCByZXBsYWNpbmcgdGhlIGNsb3NlZCBDcm9zc3dpbmQgQ2FmZS4gVGhlIEhpY2tvcnkgQXZpYXRpb24gTXVzZXVtIGlzIG9uIHRoZSBmaWVsZCB0b28uXCJ9XSxcbiAgICAgIGNhdXRpb246XCJDbGFzcyBEIGFpcnBvcnQuIENvbnRhY3QgdGhlIHRvd2VyLlwiLFxuICAgICAgbGlua3M6W1tcIkJsdWUgU2t5J3MgQ2FmZSBvbiBGYWNlYm9va1wiLFwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3AvQmx1ZS1Ta3lzLUNhZmUtSGlja29yeS1SZWdpb25hbC1BaXJwb3J0LTYxNTg0MzM0NjQ0MTc5L1wiXV0gfSxcbiAgICB7IGlkOlwiS0dNVVwiLCBhcHQ6XCJHcmVlbnZpbGxlIERvd250b3duIEFpcnBvcnRcIiwgY2l0eTpcIkdyZWVudmlsbGUsIFNDXCIsIGxhdDozNC44NDc5LCBsb246LTgyLjM1MDAsIHN0YXR1czpcIm9rXCIsXG4gICAgICBmb29kOlt7bmFtZTpcIkhhbmdhciAyOCBLaXRjaGVuICYgRXZlbnRzXCIsIHdoZXJlOlwiT24gZmllbGRcIiwgZGVzYzpcIk9wZW5lZCBKdWx5IDIwMjYgaW4gdGhlIGZvcm1lciBSdW53YXkgQ2FmZSBzcGFjZSBvbiB0aGUgc291dGggcmFtcCwgd2l0aCBydW53YXkgdmlld3MuXCIsIGhyczpcIlR1ZVx1MjAxM1N1bi4gTHVuY2ggYW5kIGRpbm5lciwgYnJlYWtmYXN0IG9uIHdlZWtlbmRzLiBDbG9zZWQgTW9uLlwifV0sXG4gICAgICBjYXV0aW9uOlwiQ2xhc3MgRCBhaXJwb3J0LiBDb250YWN0IHRoZSB0b3dlci5cIixcbiAgICAgIGxpbmtzOltbXCJHcmVlbnZpbGxlIEpvdXJuYWxcIixcImh0dHBzOi8vZ3JlZW52aWxsZWpvdXJuYWwuY29tL2Zvb2QtZHJpbmsvYS1kZWVwLWRpdmUtaW50by1uZXctZ3JlZW52aWxsZS1kb3dudG93bi1haXJwb3J0LWVhdGVyeS1oYW5nZXItMjgtd2Vla2x5LWRpc2gvXCJdXSB9LFxuICAgIHsgaWQ6XCJLTFFLXCIsIHNpZGU6XCJsXCIsIGFwdDpcIlBpY2tlbnMgQ291bnR5IEFpcnBvcnRcIiwgY2l0eTpcIkxpYmVydHksIFNDXCIsIGxhdDozNC44MTAwLCBsb246LTgyLjcwMjksIHN0YXR1czpcIm9rXCIsXG4gICAgICBmb29kOlt7bmFtZTpcIlRoZSBTY29vcCBhdCB0aGUgQWlycG9ydFwiLCB3aGVyZTpcIk9uIGZpZWxkXCIsIGRlc2M6XCJJY2UgY3JlYW0gYW5kIGNhc3VhbCBmb29kLiBQbGFuZXMgY2FuIHBhcmsgbmV4dCB0byB0aGUgcGF0aW8gb2ZmIHRoZSBub3J0aCByYW1wLlwiLCBocnM6XCJMaXN0ZWQgYXMgVHVlXHUyMDEzRnJpIDExXHUyMDEzNiwgU2F0IDJcdTIwMTM3LiBQaG9uZSA4NjQtNDIwLTc5MDMuXCJ9XSxcbiAgICAgIGxpbmtzOltbXCJPcmRlciBvbmxpbmVcIixcImh0dHBzOi8vd3d3LnRvYXN0dGFiLmNvbS9sb2NhbC9vcmRlci90aGUtc2Nvb3AtMTU1LXRlY2hub2xvZ3ktcGxcIl1dIH0sXG4gICAgeyBpZDpcIktNVFZcIiwgc2lkZTpcInVcIiwgYXB0OlwiQmx1ZSBSaWRnZSBBaXJwb3J0XCIsIGNpdHk6XCJNYXJ0aW5zdmlsbGUsIFZBXCIsIGxhdDozNi42MzA3LCBsb246LTgwLjAxODIsIHN0YXR1czpcIm9rXCIsXG4gICAgICBmb29kOlt7bmFtZTpcIlNpbXBseSBTdXphbm5lJ3MgQ2FmZVwiLCB3aGVyZTpcIk9uIGZpZWxkXCIsIGRlc2M6XCJCdXJnZXJzIGFuZCBob21lIGNvb2tpbmcgd2l0aCBtb3VudGFpbiB2aWV3cy4gVGllIGRvd24gb24gdGhlIHJhbXAgaW4gZnJvbnQuXCJ9XSxcbiAgICAgIGxpbmtzOltbXCJWaXNpdCBNYXJ0aW5zdmlsbGVcIixcImh0dHBzOi8vd3d3LnZpc2l0bWFydGluc3ZpbGxlLmNvbS9saXN0aW5nL3NpbXBseS1zdXphbm5lcy1jYWZlL1wiXV0gfSxcbiAgICB7IGlkOlwiS01XS1wiLCBhcHQ6XCJNb3VudCBBaXJ5L1N1cnJ5IENvdW50eSBBaXJwb3J0XCIsIGNpdHk6XCJNb3VudCBBaXJ5LCBOQ1wiLCBsYXQ6MzYuNDU5NywgbG9uOi04MC41NTMxLCBzdGF0dXM6XCJva1wiLFxuICAgICAgZm9vZDpbe25hbWU6XCJUaGUgVXBkcmFmdCBLaXRjaGVuXCIsIHdoZXJlOlwiSW4gdGVybWluYWxcIiwgZGVzYzpcIk9wZW5lZCBNYXJjaCAyMDI2IGluIHRoZSBuZXcgdGVybWluYWwuIFBpbG90IE1vdW50YWluIGlzIHZpc2libGUgZnJvbSB0aGUgZGluaW5nIHJvb20uXCIsIGhyczpcIlR1ZVx1MjAxM1N1bi4gQnJlYWtmYXN0IDhcdTIwMTMxMSwgbHVuY2ggMTE6MzBcdTIwMTM0LiBDbG9zZWQgTW9uLlwifV0sXG4gICAgICBsaW5rczpbW1wiTW91bnQgQWlyeSBOZXdzXCIsXCJodHRwczovL3d3dy5tdGFpcnluZXdzLmNvbS9uZXdzL2EtbmV3LXBsYWNlLXRvLWxhbmQtdXBkcmFmdC1raXRjaGVuLW5vdy1vcGVuLWF0LWFpcnBvcnQvYXJ0aWNsZV9hZDYzMDhjMi05MzAyLTQ4NjYtYTc3MC0wYjU1ZWI2MDY2YzUuaHRtbFwiXV0gfSxcbiAgICB7IGlkOlwiS0pOWFwiLCBhcHQ6XCJKb2huc3RvbiBSZWdpb25hbCBBaXJwb3J0XCIsIGNpdHk6XCJTbWl0aGZpZWxkLCBOQ1wiLCBsYXQ6MzUuNTQwOSwgbG9uOi03OC4zOTAzLCBzdGF0dXM6XCJva1wiLFxuICAgICAgZm9vZDpbe25hbWU6XCJMb3cgYW5kIFNsb3cgU21va2Vob3VzZVwiLCB3aGVyZTpcIk9uIGZpZWxkXCIsIGRlc2M6XCJCYXJiZWN1ZSB3aXRoIGEgdGVycmFjZSBvdmVybG9va2luZyB0aGUgcnVud2F5LlwifV0sXG4gICAgICBsaW5rczpbW1wiTG93IGFuZCBTbG93IFNtb2tlaG91c2VcIixcImh0dHBzOi8vd3d3Lmxvd2FuZHNsb3dzbW9rZWhvdXNlLmNvbS9cIl1dIH0sXG4gICAgeyBpZDpcIlc5NVwiLCBzaWRlOlwibFwiLCBhcHQ6XCJPY3JhY29rZSBJc2xhbmQgQWlycG9ydFwiLCBjaXR5OlwiT2NyYWNva2UsIE5DXCIsIGxhdDozNS4xMDE3LCBsb246LTc1Ljk2NjEsIHN0YXR1czpcIm9rXCIsXG4gICAgICBmb29kOlt7bmFtZTpcIkhvd2FyZCdzIFB1YiAmIFJhdyBCYXJcIiwgd2hlcmU6XCIxMCBtaW4gd2Fsa1wiLCBkZXNjOlwiU2VhZm9vZCBhbmQgcHViIGZhcmUgb24gdGhlIGlzbGFuZCwgYSBzaG9ydCB3YWxrIGZyb20gdGhlIHJhbXAuXCIsIGhyczpcIlJlZHVjZWQgaG91cnMgaW4gd2ludGVyLlwifV0sXG4gICAgICBjYXV0aW9uOlwiTG9uZyBvdmVyd2F0ZXItYWRqYWNlbnQgY29hc3RhbCBsZWcgd2l0aCBmYXN0LWNoYW5naW5nIHdlYXRoZXIuIFBsYW4gZnVlbCBhbmQgYWx0ZXJuYXRlcy5cIixcbiAgICAgIGxpbmtzOltbXCJPY3JhY29rZSBPYnNlcnZlciBvcGVuL2Nsb3NlZCBsaXN0XCIsXCJodHRwczovL29jcmFjb2tlb2JzZXJ2ZXIuY29tLzIwMjYvMDEvMzEvd2hhdHMtb3Blbi1jbG9zZWQtb24tb2NyYWNva2UvXCJdXSB9LFxuICAgIHsgaWQ6XCJLUERLXCIsIGFwdDpcIkRlS2FsYi1QZWFjaHRyZWUgQWlycG9ydFwiLCBjaXR5OlwiQXRsYW50YSwgR0FcIiwgbGF0OjMzLjg3NTYsIGxvbjotODQuMzAyMCwgc3RhdHVzOlwib2tcIixcbiAgICAgIGZvb2Q6W3tuYW1lOlwiNTd0aCBGaWdodGVyIEdyb3VwIFJlc3RhdXJhbnRcIiwgd2hlcmU6XCJPbiBmaWVsZFwiLCBkZXNjOlwiV1dJSS10aGVtZWQgcmVzdGF1cmFudCBiZXNpZGUgdGhlIHJ1bndheSwga25vd24gZm9yIHByaW1lIHJpYi5cIn1dLFxuICAgICAgY2F1dGlvbjpcIkJ1c3kgQ2xhc3MgRCBhaXJwb3J0IHVuZGVyIHRoZSBBdGxhbnRhIENsYXNzIEIuIEJyaWVmIHRoZSBhaXJzcGFjZSBjYXJlZnVsbHkuXCIsXG4gICAgICBsaW5rczpbW1wiT3BlblRhYmxlXCIsXCJodHRwczovL3d3dy5vcGVudGFibGUuY29tL3IvNTd0aC1maWdodGVyLWdyb3VwLXJlc3RhdXJhbnQtYXRsYW50YVwiXV0gfSxcbiAgICB7IGlkOlwiR0EyXCIsIHByaXZhdGU6dHJ1ZSwgYXB0OlwiUGVhY2ggU3RhdGUgQWVyb2Ryb21lXCIsIGNpdHk6XCJXaWxsaWFtc29uLCBHQVwiLCBsYXQ6MzMuMTgzNCwgbG9uOi04NC4yNzc0LCBzdGF0dXM6XCJva1wiLFxuICAgICAgZm9vZDpbe25hbWU6XCJCYXJuc3Rvcm1lcidzIEdyaWxsXCIsIHdoZXJlOlwiT24gZmllbGRcIiwgZGVzYzpcIkdyaWxsIGFuZCBldmVudCBjZW50ZXIgb24gYSB2aW50YWdlLWFpcmNyYWZ0IGFpcmZpZWxkLlwifV0sXG4gICAgICBjYXV0aW9uOlwiUHJpdmF0ZSBmaWVsZDogZ2V0IHBlcm1pc3Npb24gZnJvbSB0aGUgYWlyZmllbGQgYmVmb3JlIGxhbmRpbmcuXCIsXG4gICAgICBsaW5rczpbW1wiUGVhY2ggU3RhdGUgQWVyb2Ryb21lXCIsXCJodHRwczovL3d3dy5wZWFjaHN0YXRlYWVyby5jb20vXCJdXSB9LFxuICAgIHsgaWQ6XCJLU1NJXCIsIGFwdDpcIk1jS2lubm9uIFN0LiBTaW1vbnMgSXNsYW5kIEFpcnBvcnRcIiwgY2l0eTpcIlN0LiBTaW1vbnMgSXNsYW5kLCBHQVwiLCBsYXQ6MzEuMTUxOCwgbG9uOi04MS4zOTEzLCBzdGF0dXM6XCJva1wiLFxuICAgICAgZm9vZDpbe25hbWU6XCJTb3V0aGVybiBTb3VsIEJhcmJlcXVlXCIsIHdoZXJlOlwiMC4zIG1pIHdhbGtcIiwgZGVzYzpcIldlbGwta25vd24gQkJRIGluIGFuIG9sZCBnYXMgc3RhdGlvbi4gQW4gZWFzeSB3YWxrIGZyb20gdGhlIGFpcnBvcnQgb24gYSBuaWNlIGRheS5cIn1dLFxuICAgICAgbGlua3M6W1tcIlNvdXRoZXJuIFNvdWxcIixcImh0dHBzOi8vd3d3LnNvdXRoZXJuc291bGJicS5jb20vXCJdXSB9XG4gIF07XG5cbiAgLyogLS0tLS0tLS0tLSBHZW9tZXRyeSAtLS0tLS0tLS0tICovXG4gIGNvbnN0IFIgPSAzNDQwLjA2NSwgcmFkID0gZCA9PiBkKk1hdGguUEkvMTgwLCBkZWcgPSByID0+IHIqMTgwL01hdGguUEk7XG4gIGZ1bmN0aW9uIGRpc3RCcmcoYSxiKXtcbiAgICBjb25zdCBwMT1yYWQoYS5sYXQpLCBwMj1yYWQoYi5sYXQpLCBkbD1yYWQoYi5sb24tYS5sb24pO1xuICAgIGNvbnN0IGQgPSAyKlIqTWF0aC5hc2luKE1hdGguc3FydChNYXRoLnNpbigocDItcDEpLzIpKioyICsgTWF0aC5jb3MocDEpKk1hdGguY29zKHAyKSpNYXRoLnNpbihkbC8yKSoqMikpO1xuICAgIGNvbnN0IHk9TWF0aC5zaW4oZGwpKk1hdGguY29zKHAyKSwgeD1NYXRoLmNvcyhwMSkqTWF0aC5zaW4ocDIpLU1hdGguc2luKHAxKSpNYXRoLmNvcyhwMikqTWF0aC5jb3MoZGwpO1xuICAgIHJldHVybiB7IG5tOmQsIGJyZzooZGVnKE1hdGguYXRhbjIoeSx4KSkrMzYwKSUzNjAgfTtcbiAgfVxuICBjb25zdCB7TE9OMCxMQVQxLEssU30gPSBHRU8ucHJvajtcbiAgY29uc3QgcHggPSAobG9uLGxhdCkgPT4gWyAobG9uLUxPTjApKksqUywgKExBVDEtbGF0KSpTIF07XG4gIGNvbnN0IE5NUFggPSBTLzYwO1xuICBjb25zdCBwYWQzID0gbiA9PiBTdHJpbmcoTWF0aC5yb3VuZChuKSUzNjAgfHwgMzYwKS5wYWRTdGFydCgzLFwiMFwiKTtcbiAgY29uc3QgZXRlID0gbm0gPT4geyBjb25zdCBtID0gTWF0aC5yb3VuZChubS9UQVMqNjApOyByZXR1cm4gYCR7TWF0aC5mbG9vcihtLzYwKX06JHtTdHJpbmcobSU2MCkucGFkU3RhcnQoMixcIjBcIil9YDsgfTtcblxuICBTUE9UUy5mb3JFYWNoKHMgPT4geyBPYmplY3QuYXNzaWduKHMsIGRpc3RCcmcoSE9NRSwgcykpOyBzLmxhYmVsID0gcy5sYWJlbCB8fCBzLmlkOyB9KTtcbiAgU1BPVFMuc29ydCgoYSxiKSA9PiBhLm5tIC0gYi5ubSk7XG4gIC8vIE5hcnJvdyBlbWJlZCAocGhvbmVzKSBhbmQgdG91Y2ggc2NyZWVuczogdGFwIHRvIG9wZW4gZGV0YWlscywgbm8gaG92ZXIgcHJldmlld3MgKHRoZXkganVtcCB0aGUgbGF5b3V0KVxuICBjb25zdCBub0hvdmVyID0gKCkgPT4gKHdpbmRvdy5uYW1lID09PSBcImF3LWZvb2RcIiAmJiB3aW5kb3cuaW5uZXJXaWR0aCBcdTAwM2M9IDk4MCkgfHwgd2luZG93Lm1hdGNoTWVkaWEoXCIoaG92ZXI6IG5vbmUpXCIpLm1hdGNoZXM7XG5cbiAgLyogLS0tLS0tLS0tLSBEcmF3IG1hcCAtLS0tLS0tLS0tICovXG4gIGNvbnN0IHN2ZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwibWFwXCIpO1xuICBjb25zdCBOUyA9IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjtcbiAgY29uc3QgZWwgPSAodGFnLCBhdHRycywgcGFyZW50KSA9PiB7IGNvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKE5TLHRhZyk7IGZvciAoY29uc3QgayBpbiBhdHRycykgZS5zZXRBdHRyaWJ1dGUoaywgYXR0cnNba10pOyAocGFyZW50fHxzdmcpLmFwcGVuZENoaWxkKGUpOyByZXR1cm4gZTsgfTtcblxuICBjb25zdCBkZWZzID0gZWwoXCJkZWZzXCIse30pO1xuICBkZWZzLmlubmVySFRNTCA9IGBcdTAwM2NmaWx0ZXIgaWQ9XCJnbFwiIHg9XCItNTAlXCIgeT1cIi01MCVcIiB3aWR0aD1cIjIwMCVcIiBoZWlnaHQ9XCIyMDAlXCI+XHUwMDNjZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMi40XCIgcmVzdWx0PVwiYlwiLz5cdTAwM2NmZU1lcmdlPlx1MDAzY2ZlTWVyZ2VOb2RlIGluPVwiYlwiLz5cdTAwM2NmZU1lcmdlTm9kZSBpbj1cIlNvdXJjZUdyYXBoaWNcIi8+XHUwMDNjL2ZlTWVyZ2U+XHUwMDNjL2ZpbHRlcj5gO1xuICBjb25zdCBnU3RhdGVzID0gZWwoXCJnXCIse2ZpbHRlcjpcInVybCgjZ2wpXCJ9KTtcbiAgZm9yIChjb25zdCBbbmFtZSxkXSBvZiBPYmplY3QuZW50cmllcyhHRU8ucGF0aHMpKSBlbChcInBhdGhcIix7ZCwgY2xhc3M6XCJzdGF0ZVwiKyhuYW1lPT09XCJOb3J0aCBDYXJvbGluYVwifHxuYW1lPT09XCJTb3V0aCBDYXJvbGluYVwiP1wiIGhvbWVcIjpcIlwiKX0sIGdTdGF0ZXMpO1xuICBbW1wiTk9SVEggQ0FST0xJTkFcIiwtNzkuMywzNS44NV0sW1wiU09VVEggQ0FST0xJTkFcIiwtODAuOSwzMy43NV0sW1wiR0VPUkdJQVwiLC04My42LDMyLjRdLFtcIlZJUkdJTklBXCIsLTc4LjYsMzcuMzVdLFtcIlRFTk5FU1NFRVwiLC04NS4wLDM1Ljk1XV0uZm9yRWFjaCgoW3QsbG9uLGxhdF0pPT57XG4gICAgY29uc3QgW3gseV09cHgobG9uLGxhdCk7IGNvbnN0IHR4PWVsKFwidGV4dFwiLHt4LHksY2xhc3M6XCJzdGxhYmVsXCJ9KTsgdHgudGV4dENvbnRlbnQ9dDtcbiAgfSk7XG5cbiAgY29uc3QgW2h4LGh5XSA9IHB4KEhPTUUubG9uLCBIT01FLmxhdCk7XG4gIFs1MCwxMDAsMTUwLDIwMCwyNTBdLmZvckVhY2gobiA9PiB7XG4gICAgZWwoXCJjaXJjbGVcIix7Y3g6aHgsY3k6aHkscjpuKk5NUFgsY2xhc3M6XCJyaW5nXCJ9KTtcbiAgICBjb25zdCBhID0gcmFkKC0zNSksIHQgPSBlbChcInRleHRcIix7eDpoeCtNYXRoLnNpbihhKSpuKk5NUFgrNCx5Omh5LU1hdGguY29zKGEpKm4qTk1QWC00LGNsYXNzOlwicmluZ2xibFwifSk7IHQudGV4dENvbnRlbnQgPSBuK1wiIG5tXCI7XG4gIH0pO1xuICBjb25zdCByb3V0ZSA9IGVsKFwibGluZVwiLHt4MTpoeCx5MTpoeSx4MjpoeCx5MjpoeSxjbGFzczpcInJvdXRlXCJ9KTtcblxuICBjb25zdCBnUGlucyA9IGVsKFwiZ1wiLHt9KTtcbiAgY29uc3QgcGluRWxzID0gbmV3IE1hcCgpO1xuICBTUE9UUy5mb3JFYWNoKHMgPT4ge1xuICAgIGNvbnN0IFt4LHldID0gcHgocy5sb24sIHMubGF0KTtcbiAgICBzLng9eDsgcy55PXk7XG4gICAgY29uc3QgZyA9IGVsKFwiZ1wiLHtjbGFzczpcInBpbiBcIitzLnN0YXR1cywgdHJhbnNmb3JtOmB0cmFuc2xhdGUoJHt4fSAke3l9KWAsIHRhYmluZGV4OlwiMFwiLCByb2xlOlwiYnV0dG9uXCIsIFwiYXJpYS1sYWJlbFwiOmAke3MubGFiZWx9ICR7cy5mb29kWzBdLm5hbWV9YH0sIGdQaW5zKTtcbiAgICBlbChcImNpcmNsZVwiLHtyOjExLGNsYXNzOlwiaGFsb1wifSxnKTtcbiAgICBlbChcImNpcmNsZVwiLHtyOjUuNSxjbGFzczpcImRvdFwiLGZpbHRlcjpcInVybCgjZ2wpXCJ9LGcpO1xuICAgIGNvbnN0IHNpZGUgPSBzLnNpZGUgfHwgXCJyXCI7XG4gICAgY29uc3QgdCA9IGVsKFwidGV4dFwiLCBzaWRlPT09XCJsXCIgPyB7eDotMTAseTo0LFwidGV4dC1hbmNob3JcIjpcImVuZFwifSA6IHNpZGU9PT1cInVcIiA\/IHt4OjAseTotMTIsXCJ0ZXh0LWFuY2hvclwiOlwibWlkZGxlXCJ9IDoge3g6MTAseTo0LFwidGV4dC1hbmNob3JcIjpcInN0YXJ0XCJ9LCBnKTtcbiAgICB0LnRleHRDb250ZW50ID0gcy5sYWJlbDtcbiAgICBnLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWVudGVyXCIsICgpID0+IHsgaWYgKCFub0hvdmVyKCkpIHNlbGVjdChzLCB7aG92ZXI6dHJ1ZX0pOyB9KTtcbiAgICBnLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsICgpID0+IHsgaWYgKCFwaW5uZWQgJiYgIW5vSG92ZXIoKSkgY2xlYXJTZWwoKTsgfSk7XG4gICAgZy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZSA9PiB7IGUuc3RvcFByb3BhZ2F0aW9uKCk7IHBpbm5lZCA9IHRydWU7IHNlbGVjdChzKTsgfSk7XG4gICAgZy5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBlID0+IHsgaWYgKGUua2V5PT09XCJFbnRlclwifHxlLmtleT09PVwiIFwiKSB7IGUucHJldmVudERlZmF1bHQoKTsgcGlubmVkID0gdHJ1ZTsgc2VsZWN0KHMpOyB9IH0pO1xuICAgIHBpbkVscy5zZXQocy5pZCwgZyk7XG4gIH0pO1xuICBjb25zdCBob21lID0gZWwoXCJnXCIse2NsYXNzOlwiaG9tZVwiLHRyYW5zZm9ybTpgdHJhbnNsYXRlKCR7aHh9ICR7aHl9KWB9KTtcbiAgZWwoXCJjaXJjbGVcIix7cjoxNCxmaWxsOlwibm9uZVwiLHN0cm9rZTpcIiM2MUNBRTFcIixcInN0cm9rZS13aWR0aFwiOjEuNSxmaWx0ZXI6XCJ1cmwoI2dsKVwifSxob21lKTtcbiAgZWwoXCJjaXJjbGVcIix7cjo0LjUsY2xhc3M6XCJjb3JlXCIsZmlsdGVyOlwidXJsKCNnbClcIn0saG9tZSk7XG4gIGNvbnN0IGh0ID0gZWwoXCJ0ZXh0XCIse3g6MTgseTo1fSxob21lKTsgaHQudGV4dENvbnRlbnQgPSBcIktFUVlcIjtcblxuICAvKiAtLS0tLS0tLS0tIExpc3QgLS0tLS0tLS0tLSAqL1xuICBjb25zdCBsaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJsaXN0XCIpO1xuICBjb25zdCBpdGVtRWxzID0gbmV3IE1hcCgpO1xuICBTUE9UUy5mb3JFYWNoKHMgPT4ge1xuICAgIGNvbnN0IGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImxpXCIpO1xuICAgIGxpLmNsYXNzTmFtZSA9IFwiaXRlbSBcIiArIHMuc3RhdHVzOyBsaS50YWJJbmRleCA9IDA7XG4gICAgbGkuaW5uZXJIVE1MID0gYFx1MDAzY3NwYW4gY2xhc3M9XCJpaWRcIj4ke3MubGFiZWx9XHUwMDNjL3NwYW4+XHUwMDNjc3BhbiBjbGFzcz1cIm5tXCI+JHtzLmZvb2RbMF0ubmFtZX0ke3MuZm9vZC5sZW5ndGg+MT9gICske3MuZm9vZC5sZW5ndGgtMX1gOlwiXCJ9XHUwMDNjL3NwYW4+XG4gICAgICBcdTAwM2NzcGFuIGNsYXNzPVwiZGlzdCBudW1cIj4ke01hdGgucm91bmQocy5ubSl9IG5tXHUwMDNjc21hbGw+JHtldGUocy5ubSl9IGhyXHUwMDNjL3NtYWxsPlx1MDAzYy9zcGFuPlx1MDAzY3NwYW4gY2xhc3M9XCJzdWJcIj4ke3MucHJpdmF0ZSA\/ICdcdTAwM2NiIGNsYXNzPVwicHJpdlwiPlByaXZhdGVcdTAwM2MvYj4gXHUwMGI3ICcgOiBcIlwifSR7cy5jaXR5fSBcdTAwYjcgJHtzLmZvb2RbMF0ud2hlcmV9XHUwMDNjL3NwYW4+YDtcbiAgICBsaS5hZGRFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLCAoKSA9PiB7IGlmICghcGlubmVkICYmICFub0hvdmVyKCkpIHNlbGVjdChzLCB7aG92ZXI6dHJ1ZX0pOyB9KTtcbiAgICBsaS5hZGRFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLCAoKSA9PiB7IGlmICghcGlubmVkICYmICFub0hvdmVyKCkpIGNsZWFyU2VsKCk7IH0pO1xuICAgIGxpLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7IHBpbm5lZCA9IHRydWU7IHNlbGVjdChzKTsgfSk7XG4gICAgbGkuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgZSA9PiB7IGlmIChlLmtleT09PVwiRW50ZXJcInx8ZS5rZXk9PT1cIiBcIikgeyBlLnByZXZlbnREZWZhdWx0KCk7IHBpbm5lZCA9IHRydWU7IHNlbGVjdChzKTsgfSB9KTtcbiAgICBsaXN0LmFwcGVuZENoaWxkKGxpKTsgaXRlbUVscy5zZXQocy5pZCwgbGkpO1xuICB9KTtcblxuICAvKiAtLS0tLS0tLS0tIENhcmQgLS0tLS0tLS0tLSAqL1xuICBjb25zdCBjYXJkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJjYXJkXCIpLCB3cmFwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJtYXB3cmFwXCIpO1xuICBsZXQgcGlubmVkID0gZmFsc2UsIGN1cnJlbnQgPSBudWxsO1xuICBmdW5jdGlvbiBjYXJkSFRNTChzKXtcbiAgICBjb25zdCBmb29kcyA9IHMuZm9vZC5tYXAoZiA9PiBgXHUwMDNjZGl2Plx1MDAzY2gzPiR7Zi5uYW1lfVx1MDAzY3NwYW4gY2xhc3M9XCJ3aGVyZVwiPiR7Zi53aGVyZX1cdTAwM2Mvc3Bhbj5cdTAwM2MvaDM+XHUwMDNjcD4ke2YuZGVzY31cdTAwM2MvcD4ke2YuaHJzP2BcdTAwM2NwIGNsYXNzPVwiaHJzXCI+JHtmLmhyc31cdTAwM2MvcD5gOlwiXCJ9XHUwMDNjL2Rpdj5gKS5qb2luKFwiXCIpO1xuICAgIHJldHVybiBgXHUwMDNjZGl2IGNsYXNzPVwidG9wXCI+XHUwMDNjZGl2Plx1MDAzY2RpdiBjbGFzcz1cImlkXCI+JHtzLmxhYmVsfVx1MDAzYy9kaXY+XHUwMDNjZGl2IGNsYXNzPVwiYXB0XCI+JHtzLmFwdH0gXHUwMGI3ICR7cy5jaXR5fVx1MDAzYy9kaXY+XHUwMDNjL2Rpdj5cbiAgICAgICAgXHUwMDNjZGl2IHN0eWxlPVwiZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4XCI+JHtzLnByaXZhdGUgPyAnXHUwMDNjc3BhbiBjbGFzcz1cInN0YXR1cyBjYWxsXCI+UHJpdmF0ZSBcdTAwYjcgUFBSXHUwMDNjL3NwYW4+JyA6IGBcdTAwM2NzcGFuIGNsYXNzPVwic3RhdHVzICR7cy5zdGF0dXN9XCI+JHtzLnN0YXR1cz09PVwib2tcIj9cIk9wZW5cIjpcIkNhbGwgYWhlYWRcIn1cdTAwM2Mvc3Bhbj5gfVx1MDAzY2J1dHRvbiBjbGFzcz1cInhcIiB0eXBlPVwiYnV0dG9uXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCI+XHUwMGQ3XHUwMDNjL2J1dHRvbj5cdTAwM2MvZGl2Plx1MDAzYy9kaXY+XG4gICAgICBcdTAwM2NkaXYgY2xhc3M9XCJzdGF0cyBudW1cIj5cdTAwM2NkaXY+XHUwMDNjYj4ke01hdGgucm91bmQocy5ubSl9IG5tXHUwMDNjL2I+XHUwMDNjc3Bhbj5EaXN0YW5jZVx1MDAzYy9zcGFuPlx1MDAzYy9kaXY+XHUwMDNjZGl2Plx1MDAzY2I+JHtwYWQzKHMuYnJnKX1cdTAwYjBcdTAwM2MvYj5cdTAwM2NzcGFuPlRydWUgY291cnNlXHUwMDNjL3NwYW4+XHUwMDNjL2Rpdj5cdTAwM2NkaXY+XHUwMDNjYj4ke2V0ZShzLm5tKX1cdTAwM2MvYj5cdTAwM2NzcGFuPkF0ICR7VEFTfSBrdFx1MDAzYy9zcGFuPlx1MDAzYy9kaXY+XHUwMDNjL2Rpdj5cbiAgICAgIFx1MDAzY2RpdiBjbGFzcz1cImZvb2RcIj4ke2Zvb2RzfVx1MDAzYy9kaXY+XG4gICAgICAke3MuY2F1dGlvbj9gXHUwMDNjZGl2IGNsYXNzPVwiY2F1dGlvblwiPiR7cy5jYXV0aW9ufVx1MDAzYy9kaXY+YDpcIlwifVxuICAgICAgXHUwMDNjZGl2IGNsYXNzPVwibGlua3NcIj4ke3MubGlua3MubWFwKChbdCx1XSk9PmBcdTAwM2NhIGhyZWY9XCIke3V9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj4ke3R9IFx1MjE5N1x1MDAzYy9hPmApLmpvaW4oXCJcIil9XG4gICAgICAgIFx1MDAzY2EgaHJlZj1cImh0dHBzOi8vd3d3LmFpcm5hdi5jb20vYWlycG9ydC8ke3MuaWQ9PT1cIlNUQU5UT05cIj9cIktCQlBcIjpzLmlkfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+JHtzLmlkPT09XCJTVEFOVE9OXCI\/XCJOZWFyYnkgS0JCUCBvbiBBaXJOYXZcIjpcIkFpck5hdlwifSBcdTIxOTdcdTAwM2MvYT5cdTAwM2MvZGl2PmA7XG4gIH1cbiAgZnVuY3Rpb24gcGxhY2VDYXJkKHMpe1xuICAgIGNvbnN0IG0gPSBzdmcuZ2V0U2NyZWVuQ1RNKCk7IGlmICghbSkgcmV0dXJuO1xuICAgIGNvbnN0IHdyID0gd3JhcC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBzeCA9IHMueCptLmEgKyBtLmUgLSB3ci5sZWZ0LCBzeSA9IHMueSptLmQgKyBtLmYgLSB3ci50b3A7XG4gICAgY29uc3QgY3cgPSBjYXJkLm9mZnNldFdpZHRoLCBjaCA9IGNhcmQub2Zmc2V0SGVpZ2h0O1xuICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFwcFwiKS5jbGFzc0xpc3QuY29udGFpbnMoXCJ0dlwiKSkge1xuICAgICAgLy8gVFYgdG91cjogcGFyayB0aGUgY2FyZCBvdmVyIHRoZSBvcGVuIEF0bGFudGljIGluIHRoZSBsb3dlciByaWdodFxuICAgICAgY2FyZC5zdHlsZS5sZWZ0ID0gKHdyLndpZHRoIC0gY3cgLSAxOCkrXCJweFwiOyBjYXJkLnN0eWxlLnRvcCA9ICh3ci5oZWlnaHQgLSBjaCAtIDE4KStcInB4XCI7IHJldHVybjtcbiAgICB9XG4gICAgbGV0IGxlZnQgPSBzeCA+IHdyLndpZHRoKjAuNTUgPyBzeCAtIGN3IC0gMTggOiBzeCArIDE4LCB0b3AgPSBzeSAtIGNoLzI7XG4gICAgaWYgKGxlZnQgKyBjdyA+IHdyLndpZHRoIC0gMTApIGxlZnQgPSBzeCAtIGN3IC0gMTg7XG4gICAgbGVmdCA9IE1hdGgubWF4KDEwLCBsZWZ0KTtcbiAgICB0b3AgPSBNYXRoLm1heCgxMCwgTWF0aC5taW4odG9wLCB3ci5oZWlnaHQgLSBjaCAtIDEwKSk7XG4gICAgY2FyZC5zdHlsZS5sZWZ0ID0gbGVmdCtcInB4XCI7IGNhcmQuc3R5bGUudG9wID0gdG9wK1wicHhcIjtcbiAgfVxuICBmdW5jdGlvbiBzZWxlY3Qocywgb3B0PXt9KXtcbiAgICBjdXJyZW50ID0gcztcbiAgICBwaW5FbHMuZm9yRWFjaCgoZyxpZCkgPT4geyBnLmNsYXNzTGlzdC50b2dnbGUoXCJvblwiLCBpZD09PXMuaWQpOyB9KTtcbiAgICBpdGVtRWxzLmZvckVhY2goKGxpLGlkKSA9PiBsaS5jbGFzc0xpc3QudG9nZ2xlKFwib25cIiwgaWQ9PT1zLmlkKSk7XG4gICAgcm91dGUuc2V0QXR0cmlidXRlKFwieDJcIiwgcy54KTsgcm91dGUuc2V0QXR0cmlidXRlKFwieTJcIiwgcy55KTsgcm91dGUuY2xhc3NMaXN0LmFkZChcInNob3dcIik7XG4gICAgY2FyZC5pbm5lckhUTUwgPSBjYXJkSFRNTChzKTsgY2FyZC5oaWRkZW4gPSBmYWxzZTtcbiAgICBjYXJkLnF1ZXJ5U2VsZWN0b3IoXCIueFwiKS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKCkgPT4geyBwaW5uZWQ9ZmFsc2U7IGNsZWFyU2VsKCk7IH0pO1xuICAgIHBsYWNlQ2FyZChzKTtcbiAgICBjb25zdCBuYXJyb3dFbWJlZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYXBwXCIpLmNsYXNzTGlzdC5jb250YWlucyhcImVtYmVkXCIpICYmIHdpbmRvdy5pbm5lcldpZHRoIFx1MDAzYz0gOTgwO1xuICAgIGlmIChuYXJyb3dFbWJlZCkgeyBpZiAoIW9wdC5ob3ZlcikgY2FyZC5zY3JvbGxJbnRvVmlldyh7YmxvY2s6XCJuZWFyZXN0XCIsIGJlaGF2aW9yOlwic21vb3RoXCJ9KTsgfVxuICAgIGVsc2UgaWYgKCFvcHQuaG92ZXIgJiYgIW9wdC5ub1Njcm9sbCkgaXRlbUVscy5nZXQocy5pZCkuc2Nyb2xsSW50b1ZpZXcoe2Jsb2NrOlwibmVhcmVzdFwiLCBiZWhhdmlvcjpcInNtb290aFwifSk7XG4gIH1cbiAgZnVuY3Rpb24gY2xlYXJTZWwoKXtcbiAgICBjdXJyZW50ID0gbnVsbDsgY2FyZC5oaWRkZW4gPSB0cnVlOyByb3V0ZS5jbGFzc0xpc3QucmVtb3ZlKFwic2hvd1wiKTtcbiAgICBwaW5FbHMuZm9yRWFjaChnID0+IGcuY2xhc3NMaXN0LnJlbW92ZShcIm9uXCIpKTsgaXRlbUVscy5mb3JFYWNoKGxpID0+IGxpLmNsYXNzTGlzdC5yZW1vdmUoXCJvblwiKSk7XG4gIH1cbiAgc3ZnLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7IHBpbm5lZD1mYWxzZTsgY2xlYXJTZWwoKTsgfSk7XG4gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsICgpID0+IHsgaWYgKGN1cnJlbnQpIHBsYWNlQ2FyZChjdXJyZW50KTsgfSk7XG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGUgPT4geyBpZiAoZS5rZXk9PT1cIkVzY2FwZVwiKSB7IHBpbm5lZD1mYWxzZTsgY2xlYXJTZWwoKTsgfSB9KTtcblxuICAvKiAtLS0tLS0tLS0tIEZpbHRlcnMgLS0tLS0tLS0tLSAqL1xuICBjb25zdCBjaGlwcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuY2hpcFwiKTtcbiAgY2hpcHMuZm9yRWFjaChjID0+IGMuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IHtcbiAgICBjaGlwcy5mb3JFYWNoKHggPT4geC5zZXRBdHRyaWJ1dGUoXCJhcmlhLXByZXNzZWRcIiwgeD09PWMgPyBcInRydWVcIjpcImZhbHNlXCIpKTtcbiAgICBjb25zdCBmID0gYy5kYXRhc2V0LmY7XG4gICAgU1BPVFMuZm9yRWFjaChzID0+IHtcbiAgICAgIGNvbnN0IHNob3cgPSBmPT09XCJhbGxcIiB8fCAoZj09PVwiMTAwXCIgJiYgcy5ubVx1MDAzYzEwMCkgfHwgKGY9PT1cIjIwMFwiICYmIHMubm0+PTEwMCAmJiBzLm5tXHUwMDNjMjAwKSB8fCAoZj09PVwiZmFyXCIgJiYgcy5ubT49MjAwKTtcbiAgICAgIGl0ZW1FbHMuZ2V0KHMuaWQpLmhpZGRlbiA9ICFzaG93O1xuICAgICAgcGluRWxzLmdldChzLmlkKS5jbGFzc0xpc3QudG9nZ2xlKFwiZGltXCIsICFzaG93KTtcbiAgICB9KTtcbiAgICBpZiAoY3VycmVudCAmJiBpdGVtRWxzLmdldChjdXJyZW50LmlkKS5oaWRkZW4pIHsgcGlubmVkPWZhbHNlOyBjbGVhclNlbCgpOyB9XG4gIH0pKTtcblxuICAvKiAtLS0tLS0tLS0tIEF1dG8gdG91ciAoVFYpIC0tLS0tLS0tLS0gKi9cbiAgY29uc3QgYnRuVG91ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYnRuVG91clwiKTtcbiAgbGV0IHRvdXJUaW1lciA9IG51bGwsIHRvdXJJZHggPSAtMTtcbiAgZnVuY3Rpb24gdG91clN0ZXAoKXsgdG91cklkeCA9ICh0b3VySWR4KzEpICUgU1BPVFMubGVuZ3RoOyBwaW5uZWQgPSB0cnVlOyBzZWxlY3QoU1BPVFNbdG91cklkeF0sIHtub1Njcm9sbDpmYWxzZX0pOyB9XG4gIGZ1bmN0aW9uIHNldFRvdXIob24pe1xuICAgIGJ0blRvdXIuc2V0QXR0cmlidXRlKFwiYXJpYS1wcmVzc2VkXCIsIG9uID8gXCJ0cnVlXCIgOiBcImZhbHNlXCIpO1xuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYXBwXCIpLmNsYXNzTGlzdC50b2dnbGUoXCJ0dlwiLCBvbik7XG4gICAgY2xlYXJJbnRlcnZhbCh0b3VyVGltZXIpOyB0b3VyVGltZXIgPSBudWxsO1xuICAgIGlmIChvbikgeyB0b3VyU3RlcCgpOyB0b3VyVGltZXIgPSBzZXRJbnRlcnZhbCh0b3VyU3RlcCwgd2luZG93Lm5hbWUgPT09IFwiYXctZm9vZFwiID8gNjAwMCA6IDkwMDApOyB9XG4gICAgZWxzZSB7IHBpbm5lZD1mYWxzZTsgY2xlYXJTZWwoKTsgfVxuICB9XG4gIGJ0blRvdXIuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IHNldFRvdXIoIXRvdXJUaW1lcikpO1xuICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImJ0bkZ1bGxcIikuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IHtcbiAgICBjb25zdCBkID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgIGlmICghZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQgJiYgZC5yZXF1ZXN0RnVsbHNjcmVlbikgZC5yZXF1ZXN0RnVsbHNjcmVlbigpLmNhdGNoKCgpPT57fSk7XG4gICAgZWxzZSBpZiAoZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4pIGRvY3VtZW50LmV4aXRGdWxsc2NyZWVuKCkuY2F0Y2goKCk9Pnt9KTtcbiAgfSk7XG4gIChhc3luYyAoKSA9PiB7IHRyeSB7IGlmIChcIndha2VMb2NrXCIgaW4gbmF2aWdhdG9yKSBhd2FpdCBuYXZpZ2F0b3Iud2FrZUxvY2sucmVxdWVzdChcInNjcmVlblwiKTsgfSBjYXRjaChlKXt9IH0pKCk7XG4gIGlmICh3aW5kb3cubmFtZSA9PT0gXCJhdy1mb29kXCIpIHtcbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImVtYmVkZGVkXCIpO1xuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYXBwXCIpLmNsYXNzTGlzdC5hZGQoXCJlbWJlZFwiKTtcbiAgICB3aW5kb3cuX19hd0Zvb2QgPSB7IHNldFRvdXIsIHJlZml0OiAoKSA9PiB7IGlmIChjdXJyZW50KSBwbGFjZUNhcmQoY3VycmVudCk7IH0gfTtcbiAgfVxuICBpZiAobG9jYXRpb24uaGFzaCA9PT0gXCIjdHZcIikgc2V0VG91cih0cnVlKTtcbiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJoYXNoY2hhbmdlXCIsICgpID0+IHNldFRvdXIobG9jYXRpb24uaGFzaCA9PT0gXCIjdHZcIikpO1xufSkoKTtcblx1MDAzYy9zY3JpcHQ+XG5cblx1MDAzYy9ib2R5PlxuXHUwMDNjL2h0bWw+XG4iOwogIGNvbnN0IE5BUlJPVyA9ICFJTl9TVEFHRSAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8IDkwMDsgICAvLyBwaG9uZXMgYW5kIG5hcnJvdyB3ZWJzaXRlIGVtYmVkcwogIGlmIChOQVJST1cpIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJuYXJyb3ciKTsKICBjb25zdCBTQ1JFRU5TID0gWyJrZXF5IiwgImFyZWEiLCAiZm9vZCJdOwogIGNvbnN0IHNlY3MgPSAoaywgZCwgbG8sIGhpKSA9PiBNYXRoLm1pbihoaSwgTWF0aC5tYXgobG8sIHBhcnNlRmxvYXQocXMuZ2V0KGspKSB8fCBkKSkgKiAxMDAwOwogIGNvbnN0IERVUiA9IHsga2VxeTogc2Vjcygia2VxeSIsIDYwLCAxMCwgNjAwKSwgYXJlYTogc2VjcygiYXJlYSIsIDMwLCAxMCwgNjAwKSwgZm9vZDogc2VjcygiZm9vZCIsIDMwLCAxMCwgNjAwKSB9OwogIGNvbnN0IEJVRkZFUl9NUyA9IDEwMDAwOwogIGxldCBzY3JlZW4gPSAia2VxeSIsIHNjcmVlblNpbmNlID0gRGF0ZS5ub3coKSwgZm9vZEZyYW1lID0gbnVsbDsKICBmdW5jdGlvbiBmb29kQXBpKCl7IHRyeSB7IHJldHVybiBmb29kRnJhbWUgJiYgZm9vZEZyYW1lLmNvbnRlbnRXaW5kb3cgJiYgZm9vZEZyYW1lLmNvbnRlbnRXaW5kb3cuX19hd0Zvb2Q7IH0gY2F0Y2goZSkgeyByZXR1cm4gbnVsbDsgfSB9CiAgZnVuY3Rpb24gZW5zdXJlRm9vZCgpewogICAgaWYgKGZvb2RGcmFtZSkgcmV0dXJuOwogICAgZm9vZEZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CiAgICBmb29kRnJhbWUubmFtZSA9ICJhdy1mb29kIjsgZm9vZEZyYW1lLnRpdGxlID0gIkZseS1pbiBmb29kIG1hcCI7CiAgICBmb29kRnJhbWUuc3JjZG9jID0gRk9PRF9IVE1MOwogICAgZm9vZEZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CiAgICAgIGNvbnN0IGFwaSA9IGZvb2RBcGkoKTsgaWYgKGFwaSAmJiBzY3JlZW4gPT09ICJmb29kIiAmJiAhTkFSUk9XKSBhcGkuc2V0VG91cih0cnVlKTsKICAgICAgaWYgKE5BUlJPVykgeyAgIC8vIGdyb3cgdGhlIGZyYW1lIHRvIHRoZSBtYXAncyBmdWxsIGhlaWdodCBzbyB0aGVyZSBpcyBubyBpbm5lciBzY3JvbGxpbmcKICAgICAgICB0cnkgewogICAgICAgICAgY29uc3QgZCA9IGZvb2RGcmFtZS5jb250ZW50RG9jdW1lbnQ7CiAgICAgICAgICBjb25zdCBmaXRIID0gKCkgPT4geyBmb29kRnJhbWUuc3R5bGUuaGVpZ2h0ID0gTWF0aC5jZWlsKGQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCkgKyAicHgiOyB9OwogICAgICAgICAgbmV3IFJlc2l6ZU9ic2VydmVyKGZpdEgpLm9ic2VydmUoZC5kb2N1bWVudEVsZW1lbnQpOyBmaXRIKCk7CiAgICAgICAgfSBjYXRjaChlKSB7fQogICAgICB9CiAgICB9KTsKICAgICQoImZvb2RCb3giKS5hcHBlbmRDaGlsZChmb29kRnJhbWUpOwogIH0KICBmdW5jdGlvbiBzZXRTY3JlZW4odiwgbWFudWFsKXsKICAgIHNjcmVlbiA9IHY7CiAgICAvLyBNYW51YWwgcGljazogc3RhcnQgdGhpcyBzY3JlZW4ncyBub3JtYWwgdGltZXIgb25seSBhZnRlciBhIDEwIHMgYnVmZmVyCiAgICBzY3JlZW5TaW5jZSA9IERhdGUubm93KCkgKyAobWFudWFsID8gQlVGRkVSX01TIDogMCk7CiAgICAkKCJ2aWV3S2VxeSIpLmhpZGRlbiA9IHYgIT09ICJrZXF5IjsgJCgidmlld0FyZWEiKS5oaWRkZW4gPSB2ICE9PSAiYXJlYSI7ICQoInZpZXdGb29kIikuaGlkZGVuID0gdiAhPT0gImZvb2QiOwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnZpZXdzdyBidXR0b24iKS5mb3JFYWNoKGIgPT4gYi5zZXRBdHRyaWJ1dGUoImFyaWEtc2VsZWN0ZWQiLCBiLmRhdGFzZXQudmlldyA9PT0gdiA\/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKICAgIGlmICh2ID09PSAiZm9vZCIpIHsgZW5zdXJlRm9vZCgpOyBjb25zdCBhcGkgPSBmb29kQXBpKCk7IGlmIChhcGkpIHsgaWYgKCFOQVJST1cpIGFwaS5zZXRUb3VyKHRydWUpOyBzZXRUaW1lb3V0KCgpID0+IGFwaS5yZWZpdCgpLCA2MCk7IH0gfQogICAgZWxzZSB7IGNvbnN0IGFwaSA9IGZvb2RBcGkoKTsgaWYgKGFwaSkgYXBpLnNldFRvdXIoZmFsc2UpOyB9CiAgfQogIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi52aWV3c3cgYnV0dG9uIikuZm9yRWFjaChiID0+IGIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiBzZXRTY3JlZW4oYi5kYXRhc2V0LnZpZXcsIHRydWUpKSk7CiAgc2V0SW50ZXJ2YWwoKCkgPT4gewogICAgaWYgKHFzLmhhcygibm9yb3RhdGUiKSB8fCBOQVJST1cpIHsgJCgicm90YmFyIikuc3R5bGUud2lkdGggPSAiMCI7IHJldHVybjsgfSAgIC8vIG5vIGF1dG8tcm90YXRpb24gb24gcGhvbmVzCiAgICBjb25zdCBlbCA9IERhdGUubm93KCkgLSBzY3JlZW5TaW5jZTsgICAgICAgICAgICAgICAvLyBuZWdhdGl2ZSBkdXJpbmcgdGhlIGJ1ZmZlcgogICAgJCgicm90YmFyIikuc3R5bGUud2lkdGggPSBNYXRoLm1heCgwLCBNYXRoLm1pbigxMDAsIGVsIC8gRFVSW3NjcmVlbl0gKiAxMDApKSArICIlIjsKICAgIGlmIChlbCA+PSBEVVJbc2NyZWVuXSkgc2V0U2NyZWVuKFNDUkVFTlNbKFNDUkVFTlMuaW5kZXhPZihzY3JlZW4pICsgMSkgJSBTQ1JFRU5TLmxlbmd0aF0pOwogIH0sIDI1MCk7CiAgY29uc3QgaDAgPSBUT1AubG9jYXRpb24uaGFzaDsKICBpZiAoaDAgPT09ICIjYXJlYSIgfHwgaDAgPT09ICIjZm9vZCIpIHNldFNjcmVlbihoMC5zbGljZSgxKSwgdHJ1ZSk7CiAgc2V0VGltZW91dChlbnN1cmVGb29kLCA0MDAwKTsgIC8vIHByZWxvYWQgdGhlIGZvb2QgbWFwIHNvIGl0IGlzIHJlYWR5IHdoZW4gaXRzIHR1cm4gY29tZXMKCiAgZHJhd0FyZWFCYXNlKCk7CiAgaWYgKERFTU8pIHsKICAgIGNvbnN0IHNhbXBsZXMgPSBbIjI1MDEyRzE5S1QgMTBTTSBGRVcwNDUiLCIyNDAxMEtUIDEwU00gU0NUMDM1IiwiVlJCMDNLVCA0U00gQlIgQktOMDEyIiwiMDAwMDBLVCAxMFNNIENMUiIsIjI3MDA4S1QgNlNNIEhaIEJLTjAyOCIsIjIyMDE0RzIyS1QgMTBTTSBPVkMwMDgiLCIwMDAwMEtUIDJTTSBCUiBPVkMwMDQiXTsKICAgIEFSRUEuZm9yRWFjaCgoYSxpKSA9PiB7IGEubSA9IHBhcnNlTWV0YXIoYCR7YS5pZH0gMjcxMjM1WiBBVVRPICR7c2FtcGxlc1tpJXNhbXBsZXMubGVuZ3RoXX0gMTIvMDggQTMwMTJgKTsgYS5jYXQgPSBmbGlnaHRDYXQoYS5tKTsgYS5kYXRlID0gbmV3IERhdGUoRGF0ZS5ub3coKSAtIChpJTQpKjcqNjAwMDApOyB9KTsKICAgIHJlbmRlckFyZWEoKTsKICB9IGVsc2UgeyByZW5kZXJBcmVhKCk7IHJlZnJlc2hBcmVhKCk7IHNldEludGVydmFsKHJlZnJlc2hBcmVhLCAzMDAwMDApOyB9CgogIC8qIC0tLS0tLS0tLS0gS2lvc2sgbmljZXRpZXMgLS0tLS0tLS0tLSAqLwogICQoImJ0blJlZnJlc2giKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHJlZnJlc2gpOwogICQoImJ0bkZ1bGwiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHsKICAgIGNvbnN0IGQgPSBUT1AuZG9jdW1lbnQsIGVsID0gZC5kb2N1bWVudEVsZW1lbnQ7CiAgICBpZiAoIWQuZnVsbHNjcmVlbkVsZW1lbnQgJiYgZWwucmVxdWVzdEZ1bGxzY3JlZW4pIGVsLnJlcXVlc3RGdWxsc2NyZWVuKCkuY2F0Y2goKCk9Pnt9KTsKICAgIGVsc2UgaWYgKGQuZXhpdEZ1bGxzY3JlZW4pIGQuZXhpdEZ1bGxzY3JlZW4oKS5jYXRjaCgoKT0+e30pOwogIH0pOwogIGFzeW5jIGZ1bmN0aW9uIGtlZXBBd2FrZSgpeyB0cnkgeyBpZiAoIndha2VMb2NrIiBpbiBuYXZpZ2F0b3IpIGF3YWl0IG5hdmlnYXRvci53YWtlTG9jay5yZXF1ZXN0KCJzY3JlZW4iKTsgfSBjYXRjaChlKXt9IH0KICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwgKCkgPT4geyBpZiAoIWRvY3VtZW50LmhpZGRlbikgeyBrZWVwQXdha2UoKTsgcmVmcmVzaCgpOyB9IH0pOwogIGtlZXBBd2FrZSgpOwoKICB0aWNrKCk7IHNldEludGVydmFsKHRpY2ssIDEwMDApOwogIHJlbmRlclN1bigpOyBzZXRJbnRlcnZhbChyZW5kZXJTdW4sIDM2MDBlMyk7CiAgZHJhd0NvbXBhc3MobnVsbCk7CiAgcmVmcmVzaCgpOyBzZXRJbnRlcnZhbChyZWZyZXNoLCBDRkcucmVmcmVzaFNlYyoxMDAwKTsKICAvLyBGdWxsIHBhZ2UgcmVsb2FkIGV2ZXJ5IDYgaG91cnMga2VlcHMgYSAyNC83IGxvYmJ5IHNjcmVlbiBmcmVzaAogIHNldFRpbWVvdXQoKCkgPT4gVE9QLmxvY2F0aW9uLnJlbG9hZCgpLCA2KjM2MDBlMyk7Cn0pKCk7Cjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K\";\n  var bin = atob(b64), bytes = new Uint8Array(bin.length);\n  for (var i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i);\n  var page = new TextDecoder(\"utf-8\").decode(bytes);\n  var mode = null, ro = null;\n  function build(){\n    var wide = box.clientWidth >= 900;\n    var m = wide ? \"wide\" : \"tall\";\n    if (m === mode) return;\n    mode = m;\n    box.className = m;\n    box.innerHTML = \"\";\n    if (ro) { ro.disconnect(); ro = null; }\n    var f = document.createElement(\"iframe\");\n    f.title = \"Aerowood KEQY lobby dashboard\";\n    f.setAttribute(\"allow\", \"fullscreen; screen-wake-lock\");\n    f.setAttribute(\"allowfullscreen\", \"\");\n    if (!wide) f.setAttribute(\"scrolling\", \"no\");\n    \/\/ On phones the frame grows to fit its content, so visitors only scroll the website itself\n    f.srcdoc = wide ? page : page.replace('<html lang=\"en\">', '<html lang=\"en\" class=\"autoh\">');\n    if (!wide) f.addEventListener(\"load\", function(){\n      try {\n        var d = f.contentDocument;\n        var fit = function(){ f.style.height = Math.ceil(d.documentElement.getBoundingClientRect().height) + \"px\"; };\n        ro = new ResizeObserver(fit); ro.observe(d.documentElement); fit();\n      } catch(e) {}\n    });\n    box.appendChild(f);\n  }\n  build();\n  var t; window.addEventListener(\"resize\", function(){ clearTimeout(t); t = setTimeout(build, 300); });\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":5,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","rs_blank_template":"","rs_page_bg_color":"","slide_template_v7":"","footnotes":""},"class_list":["post-7738","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Aerowood Pilot Portal - Aerowood Aviation<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/aerowoodaviation.com\/site\/aerowood-pilot-portal\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Aerowood Pilot Portal - Aerowood Aviation\" \/>\n<meta property=\"og:url\" content=\"https:\/\/aerowoodaviation.com\/site\/aerowood-pilot-portal\/\" \/>\n<meta property=\"og:site_name\" content=\"Aerowood Aviation\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-27T15:28:18+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"33 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/aerowoodaviation.com\\\/site\\\/aerowood-pilot-portal\\\/\",\"url\":\"https:\\\/\\\/aerowoodaviation.com\\\/site\\\/aerowood-pilot-portal\\\/\",\"name\":\"Aerowood Pilot Portal - Aerowood Aviation\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/aerowoodaviation.com\\\/site\\\/#website\"},\"datePublished\":\"2026-10-27T14:15:43+00:00\",\"dateModified\":\"2026-10-27T15:28:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/aerowoodaviation.com\\\/site\\\/aerowood-pilot-portal\\\/#breadcrumb\"},\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/aerowoodaviation.com\\\/site\\\/aerowood-pilot-portal\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/aerowoodaviation.com\\\/site\\\/aerowood-pilot-portal\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/aerowoodaviation.com\\\/site\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Aerowood Pilot Portal\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/aerowoodaviation.com\\\/site\\\/#website\",\"url\":\"https:\\\/\\\/aerowoodaviation.com\\\/site\\\/\",\"name\":\"Aerowood Aviation\",\"description\":\"Aerowood Aviation Flight Training Charlotte-Monroe NC\",\"publisher\":{\"@id\":\"https:\\\/\\\/aerowoodaviation.com\\\/site\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/aerowoodaviation.com\\\/site\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/aerowoodaviation.com\\\/site\\\/#organization\",\"name\":\"Aerowood Aviation\",\"url\":\"https:\\\/\\\/aerowoodaviation.com\\\/site\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\\\/\\\/aerowoodaviation.com\\\/site\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/aerowoodaviation.com\\\/site\\\/wp-content\\\/uploads\\\/2016\\\/07\\\/AerowoodAviation-Logo-1.png\",\"contentUrl\":\"https:\\\/\\\/aerowoodaviation.com\\\/site\\\/wp-content\\\/uploads\\\/2016\\\/07\\\/AerowoodAviation-Logo-1.png\",\"width\":486,\"height\":173,\"caption\":\"Aerowood Aviation\"},\"image\":{\"@id\":\"https:\\\/\\\/aerowoodaviation.com\\\/site\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Aerowood Pilot Portal - Aerowood Aviation","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/aerowoodaviation.com\/site\/aerowood-pilot-portal\/","og_locale":"en_US","og_type":"article","og_title":"Aerowood Pilot Portal - Aerowood Aviation","og_url":"https:\/\/aerowoodaviation.com\/site\/aerowood-pilot-portal\/","og_site_name":"Aerowood Aviation","article_modified_time":"2026-10-27T15:28:18+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"33 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/aerowoodaviation.com\/site\/aerowood-pilot-portal\/","url":"https:\/\/aerowoodaviation.com\/site\/aerowood-pilot-portal\/","name":"Aerowood Pilot Portal - Aerowood Aviation","isPartOf":{"@id":"https:\/\/aerowoodaviation.com\/site\/#website"},"datePublished":"2026-10-27T14:15:43+00:00","dateModified":"2026-10-27T15:28:18+00:00","breadcrumb":{"@id":"https:\/\/aerowoodaviation.com\/site\/aerowood-pilot-portal\/#breadcrumb"},"inLanguage":"en","potentialAction":[{"@type":"ReadAction","target":["https:\/\/aerowoodaviation.com\/site\/aerowood-pilot-portal\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/aerowoodaviation.com\/site\/aerowood-pilot-portal\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/aerowoodaviation.com\/site\/"},{"@type":"ListItem","position":2,"name":"Aerowood Pilot Portal"}]},{"@type":"WebSite","@id":"https:\/\/aerowoodaviation.com\/site\/#website","url":"https:\/\/aerowoodaviation.com\/site\/","name":"Aerowood Aviation","description":"Aerowood Aviation Flight Training Charlotte-Monroe NC","publisher":{"@id":"https:\/\/aerowoodaviation.com\/site\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/aerowoodaviation.com\/site\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en"},{"@type":"Organization","@id":"https:\/\/aerowoodaviation.com\/site\/#organization","name":"Aerowood Aviation","url":"https:\/\/aerowoodaviation.com\/site\/","logo":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/aerowoodaviation.com\/site\/#\/schema\/logo\/image\/","url":"https:\/\/aerowoodaviation.com\/site\/wp-content\/uploads\/2016\/07\/AerowoodAviation-Logo-1.png","contentUrl":"https:\/\/aerowoodaviation.com\/site\/wp-content\/uploads\/2016\/07\/AerowoodAviation-Logo-1.png","width":486,"height":173,"caption":"Aerowood Aviation"},"image":{"@id":"https:\/\/aerowoodaviation.com\/site\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/aerowoodaviation.com\/site\/wp-json\/wp\/v2\/pages\/7738","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aerowoodaviation.com\/site\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/aerowoodaviation.com\/site\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/aerowoodaviation.com\/site\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/aerowoodaviation.com\/site\/wp-json\/wp\/v2\/comments?post=7738"}],"version-history":[{"count":25,"href":"https:\/\/aerowoodaviation.com\/site\/wp-json\/wp\/v2\/pages\/7738\/revisions"}],"predecessor-version":[{"id":7764,"href":"https:\/\/aerowoodaviation.com\/site\/wp-json\/wp\/v2\/pages\/7738\/revisions\/7764"}],"wp:attachment":[{"href":"https:\/\/aerowoodaviation.com\/site\/wp-json\/wp\/v2\/media?parent=7738"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}