{"id":37790,"date":"2026-09-23T12:23:01","date_gmt":"2026-09-23T12:23:01","guid":{"rendered":"https:\/\/skinfoways.com\/?page_id=37790"},"modified":"2026-09-23T12:23:01","modified_gmt":"2026-09-23T12:23:01","slug":"sk-home","status":"publish","type":"page","link":"https:\/\/skinfoways.com\/","title":{"rendered":"Home"},"content":{"rendered":"<script>window.SK_ROUTE=\"\/\";<\/script><link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Schibsted+Grotesk:wght@400;500;600;700;800&amp;display=swap\" rel=\"stylesheet\">\n<link rel=\"stylesheet\" id=\"sk-css\" href=\"data:text\/css;charset=utf-8;base64,OnJvb3R7CiAgLS1uYXZ5OiMwQTE4MzA7IC0tbmF2eS0yOiMwRjI0NDY7IC0tbmF2eS0zOiMxNzM0NUY7IC0tbmF2eS1saW5lOnJnYmEoMjU1LDI1NSwyNTUsLjA5KTsKICAtLWJnOiNGRkZGRkY7IC0tYmctMjojRjJGNUY4OyAtLWNhcmQ6I0ZGRkZGRjsKICAtLXRleHQ6IzEzMjAzMzsgLS1tdXRlZDojNUE2Nzc5OyAtLWxpbmU6I0RDRTNFQjsgLS1zaWx2ZXI6IzlBQTdCNjsKICAtLWN5YW46IzAwOTNDRjsgLS1jeWFuLTI6IzYzQ0ZFQzsgLS1jeWFuLXNvZnQ6I0UzRjRGQTsKICAtLXdhOiMxRTlFNTI7IC0td2EtMjojMTY4MDQ0OwogIC0tZGFuZ2VyOiNDNDM4MkY7CiAgLS1zaGFkb3c6MCAxcHggMnB4IHJnYmEoMTAsMjQsNDgsLjA1KSwwIDEwcHggMjhweCAtMTRweCByZ2JhKDEwLDI0LDQ4LC4yMik7CiAgLS1zaGFkb3ctbGc6MCAzMHB4IDcwcHggLTI4cHggcmdiYSgxMCwyNCw0OCwuNDUpOwogIC0tci1sZzoxOHB4OyAtLXI6MTJweDsgLS1yLXNtOjhweDsKICAtLW1heHc6MTIwMHB4OwogIC0tZm9udDoiU2NoaWJzdGVkIEdyb3Rlc2siLHVpLXNhbnMtc2VyaWYsc3lzdGVtLXVpLC1hcHBsZS1zeXN0ZW0sIlNlZ29lIFVJIixSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjsKICAtLWhkcjo4MHB4OwogIGJveC1zaXppbmc6Ym9yZGVyLWJveDsKICBwYWRkaW5nLXRvcDplbnYoc2FmZS1hcmVhLWluc2V0LXRvcCwwcHgpOwogIHBhZGRpbmctYm90dG9tOmVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLDBweCk7CiAgY29sb3Itc2NoZW1lOmxpZ2h0Owp9CkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7OnJvb3Q6bm90KFtkYXRhLXRoZW1lPSJsaWdodCJdKXsKICAgIC0tYmc6IzBCMTIxQzsgLS1iZy0yOiMwRjE5MjY7IC0tY2FyZDojMTMxRTJDOyAtLXRleHQ6I0U2RUNGMzsgLS1tdXRlZDojOUJBOUI5OyAtLWxpbmU6IzIyMzI0NDsKICAgIC0tY3lhbi1zb2Z0OiMwRjJFM0I7IC0tc2hhZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLC4zKSwwIDEycHggMzBweCAtMTRweCByZ2JhKDAsMCwwLC42KTsgY29sb3Itc2NoZW1lOmRhcms7CiAgfQoKfQo6cm9vdFtkYXRhLXRoZW1lPSJkYXJrIl17CiAgLS1iZzojMEIxMjFDOyAtLWJnLTI6IzBGMTkyNjsgLS1jYXJkOiMxMzFFMkM7IC0tdGV4dDojRTZFQ0YzOyAtLW11dGVkOiM5QkE5Qjk7IC0tbGluZTojMjIzMjQ0OwogIC0tY3lhbi1zb2Z0OiMwRjJFM0I7IC0tc2hhZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLC4zKSwwIDEycHggMzBweCAtMTRweCByZ2JhKDAsMCwwLC42KTsgY29sb3Itc2NoZW1lOmRhcms7Cn0KaHRtbHtzY3JvbGwtcGFkZGluZy10b3A6Y2FsYyh2YXIoLS1oZHIpICsgZW52KHNhZmUtYXJlYS1pbnNldC10b3AsMHB4KSk7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCV9CiNzay1yb290ICosI3NrLXJvb3QgKjo6YmVmb3JlLCNzay1yb290ICo6OmFmdGVye2JveC1zaXppbmc6aW5oZXJpdH0KI3NrLXJvb3R7bWFyZ2luOjA7YmFja2dyb3VuZDp2YXIoLS1iZyk7Y29sb3I6dmFyKC0tdGV4dCk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udCk7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MS42Oy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7b3ZlcmZsb3cteDpoaWRkZW59CiNzay1yb290IGltZ3ttYXgtd2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrfQojc2stcm9vdCBhe2NvbG9yOmluaGVyaXR9CiNzay1yb290IGJ1dHRvbntmb250OmluaGVyaXQ7Y29sb3I6aW5oZXJpdH0KI3NrLXJvb3QgOmZvY3VzLXZpc2libGV7b3V0bGluZToycHggc29saWQgdmFyKC0tY3lhbik7b3V0bGluZS1vZmZzZXQ6M3B4O2JvcmRlci1yYWRpdXM6NnB4fQojc2stcm9vdCAuc2tpcHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi05OTlweDt0b3A6OHB4O2JhY2tncm91bmQ6dmFyKC0tY3lhbik7Y29sb3I6I2ZmZjtwYWRkaW5nOjhweCAxNHB4O2JvcmRlci1yYWRpdXM6OHB4O3otaW5kZXg6MTAwfQojc2stcm9vdCAuc2tpcDpmb2N1c3tsZWZ0OjEycHh9CiNzay1yb290IC53cmFwe3dpZHRoOjEwMCU7bWF4LXdpZHRoOnZhcigtLW1heHcpO21hcmdpbjowIGF1dG87cGFkZGluZzowIGNsYW1wKDE4cHgsNHZ3LDMycHgpfQojc2stcm9vdCAuaWN7d2lkdGg6MjJweDtoZWlnaHQ6MjJweDtmbGV4Om5vbmV9CiNzay1yb290IC5waHtiYWNrZ3JvdW5kOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMTM1ZGVnLHJnYmEoMjcsMTU2LDE5OCwuMTIpIDAgNnB4LHRyYW5zcGFyZW50IDZweCAxMnB4KTtib3JkZXI6MXB4IGRhc2hlZCB2YXIoLS1jeWFuKTtib3JkZXItcmFkaXVzOjRweDtwYWRkaW5nOjAgNnB4O2ZvbnQtd2VpZ2h0OjUwMH0KI3NrLXJvb3QgaDEsI3NrLXJvb3QgaDIsI3NrLXJvb3QgaDMsI3NrLXJvb3QgaDR7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4xO2xldHRlci1zcGFjaW5nOi0uMDJlbTt0ZXh0LXdyYXA6YmFsYW5jZX0KI3NrLXJvb3QgaDF7Zm9udC1zaXplOmNsYW1wKDIuNHJlbSw2dncsNC42cmVtKTtmb250LXdlaWdodDo4MDA7bGV0dGVyLXNwYWNpbmc6LS4wNGVtO2xpbmUtaGVpZ2h0OjEuMDF9CiNzay1yb290IGgye2ZvbnQtc2l6ZTpjbGFtcCgxLjdyZW0sMy4ydncsMi41NXJlbSk7Zm9udC13ZWlnaHQ6NzAwO2xldHRlci1zcGFjaW5nOi0uMDNlbX0KI3NrLXJvb3QgaDN7Zm9udC1zaXplOjEuMTRyZW07Zm9udC13ZWlnaHQ6NjUwfQojc2stcm9vdCBwe21hcmdpbjowfQojc2stcm9vdCAubGVhZHtmb250LXNpemU6Y2xhbXAoMS4wMnJlbSwxLjV2dywxLjE4cmVtKTtjb2xvcjp2YXIoLS1tdXRlZCk7bWF4LXdpZHRoOjYwY2h9CiNzay1yb290IC5zZWN7cGFkZGluZzpjbGFtcCg2NHB4LDl2dywxMTJweCkgMH0KI3NrLXJvb3QgLnNlYy5hbHR7YmFja2dyb3VuZDp2YXIoLS1iZy0yKX0KI3NrLXJvb3QgLnNlYy1oZWFke2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczplbmQ7Z2FwOjI0cHg7bWFyZ2luLWJvdHRvbTpjbGFtcCgyOHB4LDR2dyw0NHB4KTtmbGV4LXdyYXA6d3JhcH0KI3NrLXJvb3QgLnNlYy1oZWFkIHB7bWFyZ2luLXRvcDoxMnB4fQojc2stcm9vdCAuYnRuey0tYmg6NDhweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDoxMHB4O21pbi1oZWlnaHQ6dmFyKC0tYmgpO3BhZGRpbmc6MCAyMnB4O2JvcmRlci1yYWRpdXM6MTBweDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6Ljk4cmVtO3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xNXMgZWFzZSxiYWNrZ3JvdW5kIC4ycyBlYXNlLGJvcmRlci1jb2xvciAuMnMgZWFzZSxib3gtc2hhZG93IC4ycyBlYXNlO3doaXRlLXNwYWNlOm5vd3JhcDstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9CiNzay1yb290IC5idG46YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTcpfQojc2stcm9vdCAuYnRuIC5pY3t3aWR0aDoxOXB4O2hlaWdodDoxOXB4fQojc2stcm9vdCAuYnRuLXByaW1hcnl7YmFja2dyb3VuZDp2YXIoLS1jeWFuKTtjb2xvcjojZmZmO2JveC1zaGFkb3c6MCA4cHggMjBweCAtMTBweCByZ2JhKDI3LDE1NiwxOTgsLjgpfQojc2stcm9vdCAuYnRuLXByaW1hcnk6aG92ZXJ7YmFja2dyb3VuZDojMDA3REIwfQojc2stcm9vdCAuYnRuLXdhe2JhY2tncm91bmQ6dmFyKC0td2EpO2NvbG9yOiNmZmZ9CiNzay1yb290IC5idG4td2E6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS13YS0yKX0KI3NrLXJvb3QgLmJ0bi1naG9zdHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjp2YXIoLS1saW5lKTtjb2xvcjp2YXIoLS10ZXh0KX0KI3NrLXJvb3QgLmJ0bi1naG9zdDpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tdGV4dCl9CiNzay1yb290IC5vbi1kYXJrIC5idG4tZ2hvc3R7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjI4KTtjb2xvcjojZmZmfQojc2stcm9vdCAub24tZGFyayAuYnRuLWdob3N0OmhvdmVye2JvcmRlci1jb2xvcjojZmZmO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDYpfQojc2stcm9vdCAuYnRuLXNtey0tYmg6NDBweDtwYWRkaW5nOjAgMTRweDtmb250LXNpemU6LjlyZW07Ym9yZGVyLXJhZGl1czo4cHh9CiNzay1yb290IC5idG4tYmxvY2t7d2lkdGg6MTAwJX0KI3NrLXJvb3QgLmxpbmt7Y29sb3I6dmFyKC0tY3lhbik7Zm9udC13ZWlnaHQ6NjAwO3RleHQtZGVjb3JhdGlvbjpub25lO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHRyYW5zcGFyZW50O3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4yc30KI3NrLXJvb3QgLmxpbms6aG92ZXJ7Ym9yZGVyLWNvbG9yOmN1cnJlbnRDb2xvcn0KI3NrLXJvb3QgI2hkcntwb3NpdGlvbjpzdGlja3k7dG9wOmVudihzYWZlLWFyZWEtaW5zZXQtdG9wLDBweCk7ei1pbmRleDo1MDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjk2KTtiYWNrZHJvcC1maWx0ZXI6c2F0dXJhdGUoMS40KSBibHVyKDE0cHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnNhdHVyYXRlKDEuNCkgYmx1cigxNHB4KTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjRTNFOEVFO2NvbG9yOiMxMzIwMzM7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4yNXN9CiNzay1yb290ICNoZHIgLndyYXB7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MjRweDtoZWlnaHQ6dmFyKC0taGRyKTt0cmFuc2l0aW9uOmhlaWdodCAuMjVzIGVhc2V9CiNzay1yb290ICNoZHIuc2Nyb2xsZWR7Ym94LXNoYWRvdzowIDEwcHggMzBweCAtMThweCByZ2JhKDEwLDI0LDQ4LC4zNSl9CiNzay1yb290ICNoZHIuc2Nyb2xsZWQgLndyYXB7aGVpZ2h0OjU4cHh9CiNzay1yb290IC5sb2dve2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6I2ZmZjtmbGV4Om5vbmV9CiNzay1yb290IC5sb2dvIGltZ3toZWlnaHQ6NThweDt3aWR0aDphdXRvO3RyYW5zaXRpb246aGVpZ2h0IC4yNXN9CiNzay1yb290ICNoZHIuc2Nyb2xsZWQgLmxvZ28gaW1ne2hlaWdodDo0NHB4fQojc2stcm9vdCAuZmxvZ297ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjEwcHggMTRweH0KI3NrLXJvb3QgLmZsb2dvIGltZ3toZWlnaHQ6NTJweDt3aWR0aDphdXRvfQojc2stcm9vdCAud29yZG1hcmt7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc2l6ZToxLjIycmVtO2xldHRlci1zcGFjaW5nOi0uMDNlbX0KI3NrLXJvb3QgLndvcmRtYXJrIHNtYWxse2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOi42NnJlbTtmb250LXdlaWdodDo1MDA7bGV0dGVyLXNwYWNpbmc6LjAyZW07Y29sb3I6dmFyKC0tc2lsdmVyKTttYXJnaW4tdG9wOi0ycHh9CiNzay1yb290IC5uYXZ7ZGlzcGxheTpmbGV4O2dhcDo0cHg7bWFyZ2luLWxlZnQ6YXV0b30KI3NrLXJvb3QgLm5hdiBhe3BhZGRpbmc6OHB4IDE0cHg7Ym9yZGVyLXJhZGl1czo4cHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZTouOTVyZW07Y29sb3I6IzQzNTA2QTt0cmFuc2l0aW9uOmNvbG9yIC4ycyxiYWNrZ3JvdW5kIC4yc30KI3NrLXJvb3QgLm5hdiBhOmhvdmVye2NvbG9yOiMwQTE4MzA7YmFja2dyb3VuZDojRjBGNEY4fQojc2stcm9vdCAubmF2IGEuYWN0aXZle2NvbG9yOnZhcigtLWN5YW4pO2JhY2tncm91bmQ6I0U2RjRGQX0KI3NrLXJvb3QgLmhkci13YXttYXJnaW4tbGVmdDo4cHh9CiNzay1yb290IC5idXJnZXJ7ZGlzcGxheTpub25lO21hcmdpbi1sZWZ0OmF1dG87d2lkdGg6NDRweDtoZWlnaHQ6NDRweDtib3JkZXItcmFkaXVzOjEwcHg7Ym9yZGVyOjFweCBzb2xpZCAjRDZERUU3O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246cmVsYXRpdmV9CiNzay1yb290IC5idXJnZXIgc3Bhbntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjEycHg7cmlnaHQ6MTJweDtoZWlnaHQ6MnB4O2JhY2tncm91bmQ6IzEzMjAzMztib3JkZXItcmFkaXVzOjJweDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzLG9wYWNpdHkgLjJzfQojc2stcm9vdCAuYnVyZ2VyIHNwYW46bnRoLWNoaWxkKDEpe3RvcDoxNXB4fQojc2stcm9vdCAuYnVyZ2VyIHNwYW46bnRoLWNoaWxkKDIpe3RvcDoyMXB4fQojc2stcm9vdCAuYnVyZ2VyIHNwYW46bnRoLWNoaWxkKDMpe3RvcDoyN3B4fQpib2R5Lm1lbnUtb3BlbiAjc2stcm9vdCAuYnVyZ2VyIHNwYW46bnRoLWNoaWxkKDEpe3RyYW5zZm9ybTp0cmFuc2xhdGVZKDZweCkgcm90YXRlKDQ1ZGVnKX0KYm9keS5tZW51LW9wZW4gI3NrLXJvb3QgLmJ1cmdlciBzcGFuOm50aC1jaGlsZCgyKXtvcGFjaXR5OjB9CmJvZHkubWVudS1vcGVuICNzay1yb290IC5idXJnZXIgc3BhbjpudGgtY2hpbGQoMyl7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTZweCkgcm90YXRlKC00NWRlZyl9CiNzay1yb290IC5tbmF2e2Rpc3BsYXk6bm9uZX0KQG1lZGlhIChtYXgtd2lkdGg6OTAwcHgpeyNzay1yb290IC5uYXYsI3NrLXJvb3QgLmhkci13YXtkaXNwbGF5Om5vbmV9CiNzay1yb290IC5idXJnZXJ7ZGlzcGxheTpibG9ja30KI3NrLXJvb3QgLm1uYXZ7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7cmlnaHQ6MDt0b3A6Y2FsYyh2YXIoLS1oZHIpICsgZW52KHNhZmUtYXJlYS1pbnNldC10b3AsMHB4KSk7Ym90dG9tOjA7YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6MThweCBjbGFtcCgxOHB4LDR2dywzMnB4KSBjYWxjKDI4cHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwwcHgpKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtOHB4KTtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47dHJhbnNpdGlvbjpvcGFjaXR5IC4yMnMgZWFzZSx0cmFuc2Zvcm0gLjIycyBlYXNlLHZpc2liaWxpdHkgLjIycztvdmVyZmxvdy15OmF1dG87ei1pbmRleDo0OX0KI3NrLXJvb3QgI2hkci5zY3JvbGxlZCB+IC5tbmF2e3RvcDpjYWxjKDU4cHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCwwcHgpKX0KYm9keS5tZW51LW9wZW4gI3NrLXJvb3QgLm1uYXZ7b3BhY2l0eToxO3RyYW5zZm9ybTpub25lO3Zpc2liaWxpdHk6dmlzaWJsZX0KI3NrLXJvb3QgLm1uYXYgYS5tbHtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MTZweCA0cHg7Zm9udC1zaXplOjEuNXJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6LS4wMmVtO2NvbG9yOiMxMzIwMzM7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI0UzRThFRX0KI3NrLXJvb3QgLm1uYXYgYS5tbC5hY3RpdmV7Y29sb3I6dmFyKC0tY3lhbil9CiNzay1yb290IC5tbmF2IC5idG57bWFyZ2luLXRvcDoyNHB4O3dpZHRoOjEwMCV9CiNzay1yb290IC5tbmF2IC5tbm90ZXtjb2xvcjojNUE2Nzc5O2ZvbnQtc2l6ZTouOXJlbTttYXJnaW4tdG9wOjE0cHh9Cgp9CmJvZHkubWVudS1vcGVue292ZXJmbG93OmhpZGRlbn0KI3NrLXJvb3QgI3NrLW1haW57b3V0bGluZTpub25lO2FuaW1hdGlvbjpwYWdlSW4gLjMycyBlYXNlIGJvdGh9CiNzay1yb290ICNzay1tYWluLmxlYXZpbmd7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMTJzfQpAa2V5ZnJhbWVzIHBhZ2VJbntmcm9te29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fQojc2stcm9vdCAucmV2ZWFse29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxNHB4KTt0cmFuc2l0aW9uOm9wYWNpdHkgLjVzIGVhc2UsdHJhbnNmb3JtIC41cyBlYXNlfQojc2stcm9vdCAucmV2ZWFsLmlue29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZX0KQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7I3NrLXJvb3QgKiwjc2stcm9vdCAqOjpiZWZvcmUsI3NrLXJvb3QgKjo6YWZ0ZXJ7YW5pbWF0aW9uLWR1cmF0aW9uOi4wMW1zIWltcG9ydGFudDt0cmFuc2l0aW9uLWR1cmF0aW9uOi4wMW1zIWltcG9ydGFudH0KI3NrLXJvb3QgLnJldmVhbHtvcGFjaXR5OjE7dHJhbnNmb3JtOm5vbmV9Cgp9CiNzay1yb290IC5oZXJve3Bvc2l0aW9uOnJlbGF0aXZlO2JhY2tncm91bmQ6dmFyKC0tbmF2eSk7Y29sb3I6I2ZmZjtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGV9CiNzay1yb290IC5oZXJvOjpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6LTE7YmFja2dyb3VuZDoKICByYWRpYWwtZ3JhZGllbnQoNzAwcHggNDIwcHggYXQgNzglIDM4JSxyZ2JhKDI3LDE1NiwxOTgsLjIyKSx0cmFuc3BhcmVudCA2NSUpLAogIGxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tbmF2eSkgMCUsdmFyKC0tbmF2eS0yKSAxMDAlKX0KI3NrLXJvb3QgLmhlcm86OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4Oi0xO29wYWNpdHk6LjU7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodmFyKC0tbmF2eS1saW5lKSAxcHgsdHJhbnNwYXJlbnQgMXB4KSxsaW5lYXItZ3JhZGllbnQoOTBkZWcsdmFyKC0tbmF2eS1saW5lKSAxcHgsdHJhbnNwYXJlbnQgMXB4KTtiYWNrZ3JvdW5kLXNpemU6NTZweCA1NnB4O21hc2staW1hZ2U6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx0cmFuc3BhcmVudCwjMDAwIDMwJSwjMDAwIDcwJSx0cmFuc3BhcmVudCk7LXdlYmtpdC1tYXNrLWltYWdlOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdHJhbnNwYXJlbnQsIzAwMCAzMCUsIzAwMCA3MCUsdHJhbnNwYXJlbnQpfQojc2stcm9vdCAuaGVybyAud3JhcHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjEuM2ZyIDFmcjtnYXA6Y2xhbXAoMjRweCw1dncsNjRweCk7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmctdG9wOmNsYW1wKDU2cHgsOHZ3LDEwNHB4KTtwYWRkaW5nLWJvdHRvbTpjbGFtcCg2NHB4LDl2dywxMTJweCl9CiNzay1yb290IC5oZXJvIGgxe2ZvbnQtc2l6ZTpjbGFtcCgyLjNyZW0sNC41dncsMy44cmVtKX0KI3NrLXJvb3QgLmhlcm8gaDEgc3BhbntkaXNwbGF5OmJsb2NrfQpAbWVkaWEgKG1pbi13aWR0aDo5MDFweCl7I3NrLXJvb3QgLmhlcm8gaDEgc3Bhbnt3aGl0ZS1zcGFjZTpub3dyYXB9fQojc2stcm9vdCAuaGVybyBoMSBzcGFuOm50aC1jaGlsZCgyKXtjb2xvcjojQzdENEUzfQojc2stcm9vdCAuaGVybyBoMSBzcGFuOm50aC1jaGlsZCgzKXtjb2xvcjp2YXIoLS1jeWFuLTIpfQojc2stcm9vdCAuaGVybyAubGVhZHtjb2xvcjojQjVDMkQyO21hcmdpbi10b3A6MjRweDttYXgtd2lkdGg6NDZjaH0KI3NrLXJvb3QgLmhlcm8tY3Rhc3tkaXNwbGF5OmZsZXg7Z2FwOjEycHg7bWFyZ2luLXRvcDozNHB4O2ZsZXgtd3JhcDp3cmFwfQojc2stcm9vdCAuaGVyby1ub3Rle21hcmdpbi10b3A6MjhweDtkaXNwbGF5OmZsZXg7Z2FwOjE4cHg7ZmxleC13cmFwOndyYXA7Y29sb3I6IzhGQTBCNDtmb250LXNpemU6LjlyZW19CiNzay1yb290IC5oZXJvLW5vdGUgc3BhbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4fQojc2stcm9vdCAuaGVyby1ub3RlIC5pY3t3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2NvbG9yOnZhcigtLWN5YW4tMil9CiNzay1yb290IC5oLWxpbmV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDE2cHgpO2FuaW1hdGlvbjpyaXNlIC42cyBjdWJpYy1iZXppZXIoLjIsLjcsLjIsMSkgZm9yd2FyZHN9CiNzay1yb290IC5oLWxpbmU6bnRoLWNoaWxkKDEpe2FuaW1hdGlvbi1kZWxheTouMDVzfQojc2stcm9vdCAuaC1saW5lOm50aC1jaGlsZCgyKXthbmltYXRpb24tZGVsYXk6LjE1c30KI3NrLXJvb3QgLmgtbGluZTpudGgtY2hpbGQoMyl7YW5pbWF0aW9uLWRlbGF5Oi4yNXN9CiNzay1yb290IC5oLWZhZGV7b3BhY2l0eTowO2FuaW1hdGlvbjpmYWRlIC43cyBlYXNlIC40NXMgZm9yd2FyZHN9CkBrZXlmcmFtZXMgcmlzZXt0b3tvcGFjaXR5OjE7dHJhbnNmb3JtOm5vbmV9fQpAa2V5ZnJhbWVzIGZhZGV7dG97b3BhY2l0eToxfX0KI3NrLXJvb3QgLmhlcm8tYXJ0e3Bvc2l0aW9uOnJlbGF0aXZlO21heC13aWR0aDo2MDBweDtqdXN0aWZ5LXNlbGY6ZW5kO3dpZHRoOjEwMCV9CiNzay1yb290IC5oZXJvLWFydCBzdmd7d2lkdGg6MTAwJTtoZWlnaHQ6YXV0bztmaWx0ZXI6ZHJvcC1zaGFkb3coMCA0MHB4IDUwcHggcmdiYSgwLDAsMCwuNDUpKX0KI3NrLXJvb3QgLmhlcm8tcGhvdG97YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6MjBweDtwYWRkaW5nOjE0cHg7Ym94LXNoYWRvdzowIDQwcHggODBweCAtMzBweCByZ2JhKDAsMCwwLC42KTthc3BlY3QtcmF0aW86NC8zO2Rpc3BsYXk6Z3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuO29wYWNpdHk6MDthbmltYXRpb246ZmFkZSAuOHMgZWFzZSAuM3MgZm9yd2FyZHN9CiNzay1yb290IC5oZXJvLXBob3RvIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29iamVjdC1maXQ6Y29udGFpbjtib3JkZXItcmFkaXVzOjEycHh9CiNzay1yb290IC5oZXJvLWFydCAuc2Nye2FuaW1hdGlvbjpwb3dlck9uIDEuMXMgZWFzZSAuMzVzIGJvdGh9CkBrZXlmcmFtZXMgcG93ZXJPbnswJXtvcGFjaXR5Oi4wOH00MCV7b3BhY2l0eTouMzV9MTAwJXtvcGFjaXR5OjF9fQojc2stcm9vdCAubG90e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTYlO2JvdHRvbTo2JTt3aWR0aDptaW4oMjUwcHgsNTglKTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjk3KTtjb2xvcjojMTMyMDMzO2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjE0cHggMTZweCAxNHB4IDIwcHg7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctbGcpO2N1cnNvcjpwb2ludGVyO2JvcmRlcjowO3RleHQtYWxpZ246bGVmdDtvcGFjaXR5OjA7YW5pbWF0aW9uOnJpc2UgLjZzIGN1YmljLWJlemllciguMiwuNywuMiwxKSAuOHMgZm9yd2FyZHM7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTZweCl9CiNzay1yb290IC5sb3Q6OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6OHB4O3RvcDoxNHB4O2JvdHRvbToxNHB4O3dpZHRoOjNweDtib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kOnZhcigtLWN5YW4pfQojc2stcm9vdCAubG90IHNtYWxse2Rpc3BsYXk6YmxvY2s7Y29sb3I6IzVBNjc3OTtmb250LXNpemU6Ljc2cmVtO2ZvbnQtd2VpZ2h0OjUwMH0KI3NrLXJvb3QgLmxvdCBzdHJvbmd7ZGlzcGxheTpibG9jaztmb250LXNpemU6MXJlbTtsaW5lLWhlaWdodDoxLjI1O21hcmdpbjoycHggMCA2cHh9CiNzay1yb290IC5sb3QgLnJvd3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Zm9udC1zaXplOi44cmVtO2NvbG9yOiM1QTY3Nzk7Ym9yZGVyLXRvcDoxcHggc29saWQgI0U0RTlFRjtwYWRkaW5nLXRvcDo2cHg7bWFyZ2luLXRvcDo2cHg7Z2FwOjhweH0KI3NrLXJvb3QgLmxvdCAucm93IGJ7Y29sb3I6IzEzMjAzMztmb250LXdlaWdodDo2MDB9CiNzay1yb290IC5sb3Q6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTNweCkhaW1wb3J0YW50O3RyYW5zaXRpb246dHJhbnNmb3JtIC4yc30KI3NrLXJvb3QgLmhse2JhY2tncm91bmQ6dmFyKC0tYmcpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWxpbmUpfQojc2stcm9vdCAuaGwgLndyYXB7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCwxZnIpfQojc2stcm9vdCAuaGwtaXRlbXtkaXNwbGF5OmZsZXg7Z2FwOjE0cHg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MjhweCAyMHB4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCB2YXIoLS1saW5lKX0KI3NrLXJvb3QgLmhsLWl0ZW06Zmlyc3QtY2hpbGR7Ym9yZGVyLWxlZnQ6MDtwYWRkaW5nLWxlZnQ6MH0KI3NrLXJvb3QgLmhsLWl0ZW0gLmljLWJveHt3aWR0aDo0NnB4O2hlaWdodDo0NnB4O2JvcmRlci1yYWRpdXM6MTJweDtkaXNwbGF5OmdyaWQ7cGxhY2UtaXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6dmFyKC0tY3lhbi1zb2Z0KTtjb2xvcjp2YXIoLS1jeWFuKTtmbGV4Om5vbmV9CiNzay1yb290IC5obC1pdGVtIGgze2ZvbnQtc2l6ZToxcmVtfQojc2stcm9vdCAuaGwtaXRlbSBwe2ZvbnQtc2l6ZTouODZyZW07Y29sb3I6dmFyKC0tbXV0ZWQpO2xpbmUtaGVpZ2h0OjEuNDttYXJnaW4tdG9wOjJweH0KI3NrLXJvb3QgLmdyaWQtcHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdChhdXRvLWZpbGwsbWlubWF4KDI3MHB4LDFmcikpO2dhcDoyMHB4fQojc2stcm9vdCAucGNhcmR7YmFja2dyb3VuZDp2YXIoLS1jYXJkKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JvcmRlci1yYWRpdXM6dmFyKC0tci1sZyk7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjIycyBlYXNlLGJveC1zaGFkb3cgLjIycyBlYXNlLGJvcmRlci1jb2xvciAuMjJzfQojc2stcm9vdCAucGNhcmQ6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTRweCk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0KI3NrLXJvb3QgLnBtZWRpYXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7Ym9yZGVyOjA7cGFkZGluZzowO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE2MGRlZywjRjVGOEZCLCNFN0VERjMpO2FzcGVjdC1yYXRpbzoxNi8xMC41O292ZXJmbG93OmhpZGRlbn0KOnJvb3RbZGF0YS10aGVtZT0iZGFyayJdICNzay1yb290IC5wbWVkaWF7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTYwZGVnLCMxODI2M0EsIzEwMUIyQSl9CkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7OnJvb3Q6bm90KFtkYXRhLXRoZW1lPSJsaWdodCJdKSAjc2stcm9vdCAucG1lZGlhe2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE2MGRlZywjMTgyNjNBLCMxMDFCMkEpfX0KI3NrLXJvb3QgLnBtZWRpYXthc3BlY3QtcmF0aW86NC8zfQojc2stcm9vdCAucG1lZGlhIGltZywjc2stcm9vdCAucG1lZGlhIHN2Z3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29iamVjdC1maXQ6Y29udGFpbjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNDVzIGVhc2V9CiNzay1yb290IC5wbWVkaWEgLnBoLWJne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b2JqZWN0LWZpdDpjb3ZlcjtmaWx0ZXI6Ymx1cigyMnB4KSBzYXR1cmF0ZSgxLjEpIGJyaWdodG5lc3MoLjkyKTt0cmFuc2Zvcm06c2NhbGUoMS4yKX0KI3NrLXJvb3QgLnBtZWRpYSAucGgtZmd7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzoxMHB4O2ZpbHRlcjpkcm9wLXNoYWRvdygwIDEwcHggMThweCByZ2JhKDAsMCwwLC4yNSkpfQojc2stcm9vdCAucGNhcmQ6aG92ZXIgLnBtZWRpYSAucGgtYmd7dHJhbnNmb3JtOnNjYWxlKDEuMil9CiNzay1yb290IC5wbWVkaWEgc3Zne29iamVjdC1maXQ6Y29udGFpbjtwYWRkaW5nOjglIDEwJSA0JX0KI3NrLXJvb3QgLnBjYXJkOmhvdmVyIC5wbWVkaWEgaW1nLCNzay1yb290IC5wY2FyZDpob3ZlciAucG1lZGlhIHN2Z3t0cmFuc2Zvcm06c2NhbGUoMS4wNCl9CiNzay1yb290IC50YWd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEycHg7bGVmdDoxMnB4O2JhY2tncm91bmQ6cmdiYSgxMCwyNCw0OCwuODYpO2NvbG9yOiNmZmY7Zm9udC1zaXplOi43NHJlbTtmb250LXdlaWdodDo2MDA7cGFkZGluZzo1cHggMTBweDtib3JkZXItcmFkaXVzOjZweDtiYWNrZHJvcC1maWx0ZXI6Ymx1cig2cHgpfQojc2stcm9vdCAudGFnLnF0eXtsZWZ0OmF1dG87cmlnaHQ6MTJweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjk0KTtjb2xvcjojMTMyMDMzfQojc2stcm9vdCAucGJvZHl7cGFkZGluZzoxOHB4IDE4cHggMjBweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXg6MX0KI3NrLXJvb3QgLnBicmFuZHtmb250LXNpemU6LjgycmVtO2NvbG9yOnZhcigtLW11dGVkKTtmb250LXdlaWdodDo1MDB9CiNzay1yb290IC5wYm9keSBoM3ttYXJnaW46MnB4IDAgMTRweDtmb250LXNpemU6MS4xMnJlbTtsaW5lLWhlaWdodDoxLjI1fQojc2stcm9vdCAucGxpbmt7dGV4dC1kZWNvcmF0aW9uOm5vbmV9CiNzay1yb290IC5wbGluazpob3Zlcntjb2xvcjp2YXIoLS1jeWFuKX0KI3NrLXJvb3QgLnNwZWNze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MTBweCAxNHB4O21hcmdpbjowIDAgMTZweDtmb250LXNpemU6Ljg2cmVtfQojc2stcm9vdCAuc3BlY3MgZGl2e21pbi13aWR0aDowfQojc2stcm9vdCAuc3BlY3MgZHR7Y29sb3I6dmFyKC0tbXV0ZWQpO2ZvbnQtc2l6ZTouNzRyZW19CiNzay1yb290IC5zcGVjcyBkZHttYXJnaW46MDtmb250LXdlaWdodDo2MDA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTtsaW5lLWhlaWdodDoxLjN9CiNzay1yb290IC5wbWV0YXtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHggMTBweDtwYWRkaW5nLXRvcDoxMnB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2ZvbnQtc2l6ZTouODVyZW07bWFyZ2luLXRvcDphdXRvfQojc2stcm9vdCAuY29uZHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZvbnQtd2VpZ2h0OjYwMH0KI3NrLXJvb3QgLmNvbmQ6OmJlZm9yZXtjb250ZW50OiIiO3dpZHRoOjdweDtoZWlnaHQ6N3B4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0td2EpfQojc2stcm9vdCAucHJpY2UtcmVxe3doaXRlLXNwYWNlOm5vd3JhcDtjb2xvcjp2YXIoLS1jeWFuKTtmb250LXdlaWdodDo2MDA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZDpub25lO2JvcmRlcjowO3BhZGRpbmc6MDtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6Ljg1cmVtfQojc2stcm9vdCAucHJpY2UtcmVxOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9CiNzay1yb290IC5wYWN0aW9uc3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjhweDttYXJnaW4tdG9wOjE0cHh9CiNzay1yb290IC5wYWN0aW9ucyAuYnRue3BhZGRpbmc6MCAxMHB4fQojc2stcm9vdCAud2h5e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDQsMWZyKTtnYXA6MjBweH0KI3NrLXJvb3QgLndjYXJke3BhZGRpbmc6MjhweCAyNHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tci1sZyk7YmFja2dyb3VuZDp2YXIoLS1jYXJkKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMjVzLHRyYW5zZm9ybSAuMjVzfQojc2stcm9vdCAud2NhcmQ6OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7aGVpZ2h0OjNweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx2YXIoLS1jeWFuKSx2YXIoLS1jeWFuLTIpKTt0cmFuc2Zvcm06c2NhbGVYKDApO3RyYW5zZm9ybS1vcmlnaW46bGVmdDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzIGVhc2V9CiNzay1yb290IC53Y2FyZDpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tc2lsdmVyKX0KI3NrLXJvb3QgLndjYXJkOmhvdmVyOjphZnRlcnt0cmFuc2Zvcm06c2NhbGVYKDEpfQojc2stcm9vdCAud2NhcmQgLmlje3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHg7Y29sb3I6dmFyKC0tY3lhbil9CiNzay1yb290IC53Y2FyZCBoM3ttYXJnaW46MjBweCAwIDhweH0KI3NrLXJvb3QgLndjYXJkIHB7Y29sb3I6dmFyKC0tbXV0ZWQpO2ZvbnQtc2l6ZTouOTVyZW07bGluZS1oZWlnaHQ6MS41fQojc2stcm9vdCAuYnJhbmRze2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtnYXA6MTBweCA0NHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjMwcHggMDtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1saW5lKTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1saW5lKX0KI3NrLXJvb3QgLmJyYW5kcyBzcGFue2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6Y2xhbXAoMS4wNXJlbSwydncsMS4zNXJlbSk7Y29sb3I6dmFyKC0tc2lsdmVyKTtsZXR0ZXItc3BhY2luZzotLjAyZW19CiNzay1yb290IC5icmFuZHMgc21hbGx7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLW11dGVkKTtmb250LXNpemU6LjlyZW19CiNzay1yb290IC5jdGF7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZDp2YXIoLS1uYXZ5KTtjb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6MjRweDtwYWRkaW5nOmNsYW1wKDQwcHgsN3Z3LDgwcHgpO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjEuNGZyIGF1dG87Z2FwOjMycHg7YWxpZ24taXRlbXM6Y2VudGVyfQojc2stcm9vdCAuY3RhOjpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6LTE7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoNTIwcHggMzAwcHggYXQgOTAlIDAlLHJnYmEoMjcsMTU2LDE5OCwuMzUpLHRyYW5zcGFyZW50IDcwJSksbGluZWFyLWdyYWRpZW50KDEzNWRlZyx2YXIoLS1uYXZ5KSx2YXIoLS1uYXZ5LTMpKX0KI3NrLXJvb3QgLmN0YSBoMntmb250LXNpemU6Y2xhbXAoMS45cmVtLDR2dywzLjFyZW0pfQojc2stcm9vdCAuY3RhIHB7Y29sb3I6I0I1QzJEMjttYXJnaW4tdG9wOjE0cHg7Zm9udC1zaXplOjEuMXJlbX0KI3NrLXJvb3QgLmN0YSAuYnRuc3tkaXNwbGF5OmZsZXg7Z2FwOjEycHg7ZmxleC13cmFwOndyYXB9CiNzay1yb290IC5waGVyb3tiYWNrZ3JvdW5kOnZhcigtLW5hdnkpO2NvbG9yOiNmZmY7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlfQojc2stcm9vdCAucGhlcm86OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7ei1pbmRleDotMTtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudCg2MDBweCAzMDBweCBhdCA4NSUgMTAlLHJnYmEoMjcsMTU2LDE5OCwuMjUpLHRyYW5zcGFyZW50IDcwJSksbGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1uYXZ5KSx2YXIoLS1uYXZ5LTIpKX0KI3NrLXJvb3QgLnBoZXJvIC53cmFwe3BhZGRpbmctdG9wOmNsYW1wKDU2cHgsN3Z3LDkycHgpO3BhZGRpbmctYm90dG9tOmNsYW1wKDQ4cHgsNnZ3LDgwcHgpfQojc2stcm9vdCAucGhlcm8gaDF7Zm9udC1zaXplOmNsYW1wKDIuMnJlbSw1dncsMy44cmVtKX0KI3NrLXJvb3QgLnBoZXJvIC5sZWFke2NvbG9yOiNCNUMyRDI7bWFyZ2luLXRvcDoxNnB4fQojc2stcm9vdCAuY3J1bWJze2ZvbnQtc2l6ZTouODZyZW07Y29sb3I6IzhGQTBCNDttYXJnaW4tYm90dG9tOjE4cHh9CiNzay1yb290IC5jcnVtYnMgYXt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjojQjVDMkQyfQojc2stcm9vdCAuY3J1bWJzIGE6aG92ZXJ7Y29sb3I6I2ZmZn0KI3NrLXJvb3QgLnNwbGl0e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MS4yNWZyIDFmcjtnYXA6Y2xhbXAoMzJweCw2dncsODBweCk7YWxpZ24taXRlbXM6c3RhcnR9CiNzay1yb290IC5wcm9zZS1zIHB7Y29sb3I6dmFyKC0tbXV0ZWQpO2ZvbnQtc2l6ZToxLjA2cmVtO21hcmdpbi10b3A6MTZweDttYXgtd2lkdGg6NjJjaH0KI3NrLXJvb3QgLnByb3NlLXMgcDpmaXJzdC1vZi10eXBle2NvbG9yOnZhcigtLXRleHQpO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS41fQojc2stcm9vdCAuZmFjdHN7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKTtib3JkZXItcmFkaXVzOnZhcigtLXItbGcpO2JhY2tncm91bmQ6dmFyKC0tY2FyZCk7b3ZlcmZsb3c6aGlkZGVufQojc2stcm9vdCAuZmFjdHMgZGl2e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTZweDtwYWRkaW5nOjE4cHggMjJweDtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1saW5lKX0KI3NrLXJvb3QgLmZhY3RzIGRpdjpmaXJzdC1jaGlsZHtib3JkZXItdG9wOjB9CiNzay1yb290IC5mYWN0cyBkdHtjb2xvcjp2YXIoLS1tdXRlZCk7Zm9udC1zaXplOi45cmVtfQojc2stcm9vdCAuZmFjdHMgZGR7bWFyZ2luOjA7Zm9udC13ZWlnaHQ6NjAwO3RleHQtYWxpZ246cmlnaHR9CiNzay1yb290IC5vZmZlcntkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg2LDFmcik7Z2FwOjE4cHh9CiNzay1yb290IC5vY2FyZHtncmlkLWNvbHVtbjpzcGFuIDI7cGFkZGluZzoyNnB4O2JvcmRlci1yYWRpdXM6dmFyKC0tci1sZyk7YmFja2dyb3VuZDp2YXIoLS1jYXJkKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjIycyxib3gtc2hhZG93IC4yMnMsYm9yZGVyLWNvbG9yIC4yMnN9CiNzay1yb290IC5vY2FyZDpudGgtY2hpbGQoNCksI3NrLXJvb3QgLm9jYXJkOm50aC1jaGlsZCg1KXtncmlkLWNvbHVtbjpzcGFuIDN9CiNzay1yb290IC5vY2FyZDpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNHB4KTtib3gtc2hhZG93OnZhcigtLXNoYWRvdyk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fQojc2stcm9vdCAub2NhcmQgLmlje3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHg7Y29sb3I6dmFyKC0tY3lhbil9CiNzay1yb290IC5vY2FyZCBoM3ttYXJnaW4tdG9wOjEwcHh9CiNzay1yb290IC5vY2FyZCBwe2NvbG9yOnZhcigtLW11dGVkKTtmb250LXNpemU6Ljk1cmVtO2xpbmUtaGVpZ2h0OjEuNX0KI3NrLXJvb3QgLm9jYXJkIGF7bWFyZ2luLXRvcDphdXRvO3BhZGRpbmctdG9wOjEwcHg7Zm9udC1zaXplOi45cmVtfQojc2stcm9vdCAuc3RlcHN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCwxZnIpO2dhcDowO2NvdW50ZXItcmVzZXQ6cztwb3NpdGlvbjpyZWxhdGl2ZX0KI3NrLXJvb3QgLnN0ZXB7cGFkZGluZzowIDIycHggMCAwO3Bvc2l0aW9uOnJlbGF0aXZlfQojc2stcm9vdCAuc3RlcCAubnVte3dpZHRoOjUycHg7aGVpZ2h0OjUycHg7Ym9yZGVyLXJhZGl1czo1MCU7ZGlzcGxheTpncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEuMDVyZW07YmFja2dyb3VuZDp2YXIoLS1jYXJkKTtib3JkZXI6MS41cHggc29saWQgdmFyKC0tY3lhbik7Y29sb3I6dmFyKC0tY3lhbik7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMjVzLGNvbG9yIC4yNXN9CiNzay1yb290IC5zdGVwOmhvdmVyIC5udW17YmFja2dyb3VuZDp2YXIoLS1jeWFuKTtjb2xvcjojZmZmfQojc2stcm9vdCAuc3RlcDo6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjI2cHg7bGVmdDo1MnB4O3JpZ2h0OjA7aGVpZ2h0OjEuNXB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHZhcigtLWN5YW4pLHZhcigtLWxpbmUpKX0KI3NrLXJvb3QgLnN0ZXA6bGFzdC1jaGlsZDo6YmVmb3Jle2Rpc3BsYXk6bm9uZX0KI3NrLXJvb3QgLnN0ZXAgaDN7bWFyZ2luOjIwcHggMCA2cHg7Zm9udC1zaXplOjEuMjVyZW19CiNzay1yb290IC5zdGVwIHB7Y29sb3I6dmFyKC0tbXV0ZWQpO2ZvbnQtc2l6ZTouOTVyZW07bGluZS1oZWlnaHQ6MS41O21heC13aWR0aDoyNmNofQojc2stcm9vdCAuY2F0YWxvZ3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjI1MHB4IDFmcjtnYXA6MzZweDthbGlnbi1pdGVtczpzdGFydH0KI3NrLXJvb3QgLnNlYXJjaGJhcntwb3NpdGlvbjpyZWxhdGl2ZTttYXgtd2lkdGg6NjQwcHg7bWFyZ2luLXRvcDoyOHB4fQojc2stcm9vdCAuc2VhcmNoYmFyIC5pY3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjE4cHg7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtjb2xvcjojOEZBMEI0fQojc2stcm9vdCAuc2VhcmNoYmFyIGlucHV0e3dpZHRoOjEwMCU7aGVpZ2h0OjU4cHg7Ym9yZGVyLXJhZGl1czoxNHB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMTYpO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDcpO2NvbG9yOiNmZmY7Zm9udDppbmhlcml0O2ZvbnQtc2l6ZToxLjAycmVtO3BhZGRpbmc6MCA0OHB4IDAgNTJweDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMnMsYmFja2dyb3VuZCAuMnN9CiNzay1yb290IC5zZWFyY2hiYXIgaW5wdXQ6OnBsYWNlaG9sZGVye2NvbG9yOiM4RkEwQjR9CiNzay1yb290IC5zZWFyY2hiYXIgaW5wdXQ6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlci1jb2xvcjp2YXIoLS1jeWFuLTIpO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMSl9CiNzay1yb290IC5zZWFyY2hiYXIgLmNscntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMHB4O3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7d2lkdGg6MzhweDtoZWlnaHQ6MzhweDtib3JkZXItcmFkaXVzOjhweDtib3JkZXI6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOiNCNUMyRDI7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpub25lO3BsYWNlLWl0ZW1zOmNlbnRlcn0KI3NrLXJvb3QgLnNlYXJjaGJhci5oYXMgLmNscntkaXNwbGF5OmdyaWR9CiNzay1yb290IC5maWx0ZXJze3Bvc2l0aW9uOnN0aWNreTt0b3A6Y2FsYyh2YXIoLS1oZHIpICsgMjRweCl9CiNzay1yb290IC5mZ3JvdXB7cGFkZGluZzoxOHB4IDA7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tbGluZSl9CiNzay1yb290IC5mZ3JvdXA6Zmlyc3Qtb2YtdHlwZXtib3JkZXItdG9wOjA7cGFkZGluZy10b3A6MH0KI3NrLXJvb3QgLmZncm91cCBoM3tmb250LXNpemU6LjlyZW07bWFyZ2luLWJvdHRvbToxMnB4O2NvbG9yOnZhcigtLW11dGVkKTtmb250LXdlaWdodDo2MDB9CiNzay1yb290IC5jaGlwc3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjhweH0KI3NrLXJvb3QgLmNoaXB7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDttaW4taGVpZ2h0OjM4cHg7cGFkZGluZzowIDE0cHg7Ym9yZGVyLXJhZGl1czo5OTlweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JhY2tncm91bmQ6dmFyKC0tY2FyZCk7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOi45cmVtO2ZvbnQtd2VpZ2h0OjUwMDt0cmFuc2l0aW9uOmFsbCAuMTVzfQojc2stcm9vdCAuY2hpcDpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tdGV4dCl9CiNzay1yb290IC5jaGlwW2FyaWEtcHJlc3NlZD0idHJ1ZSJde2JhY2tncm91bmQ6dmFyKC0tbmF2eSk7Ym9yZGVyLWNvbG9yOnZhcigtLW5hdnkpO2NvbG9yOiNmZmZ9Cjpyb290W2RhdGEtdGhlbWU9ImRhcmsiXSAjc2stcm9vdCAuY2hpcFthcmlhLXByZXNzZWQ9InRydWUiXXtiYWNrZ3JvdW5kOnZhcigtLWN5YW4pO2JvcmRlci1jb2xvcjp2YXIoLS1jeWFuKX0KQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXs6cm9vdDpub3QoW2RhdGEtdGhlbWU9ImxpZ2h0Il0pICNzay1yb290IC5jaGlwW2FyaWEtcHJlc3NlZD0idHJ1ZSJde2JhY2tncm91bmQ6dmFyKC0tY3lhbik7Ym9yZGVyLWNvbG9yOnZhcigtLWN5YW4pfX0KI3NrLXJvb3QgLmNoaXAgLm57Zm9udC1zaXplOi43NnJlbTtvcGFjaXR5Oi42fQojc2stcm9vdCAuY2hpcDpkaXNhYmxlZHtvcGFjaXR5Oi40O2N1cnNvcjpkZWZhdWx0fQojc2stcm9vdCAuZmNsZWFye21hcmdpbi10b3A6NnB4O2JhY2tncm91bmQ6bm9uZTtib3JkZXI6MDtjb2xvcjp2YXIoLS1jeWFuKTtmb250LXdlaWdodDo2MDA7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzo2cHggMH0KI3NrLXJvb3QgLmZzaGVldC1oZWFkLCNzay1yb290IC5mc2hlZXQtZm9vdCwjc2stcm9vdCAuc2NyaW17ZGlzcGxheTpub25lfQojc2stcm9vdCAucmVzYmFye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7bWFyZ2luLWJvdHRvbToxOHB4O2ZsZXgtd3JhcDp3cmFwfQojc2stcm9vdCAucmVzYmFyIHB7Y29sb3I6dmFyKC0tbXV0ZWQpO2ZvbnQtc2l6ZTouOTVyZW19CiNzay1yb290IC5yZXNiYXIgYntjb2xvcjp2YXIoLS10ZXh0KX0KI3NrLXJvb3QgLmFjdGl2ZS1me2Rpc3BsYXk6ZmxleDtnYXA6NnB4O2ZsZXgtd3JhcDp3cmFwfQojc2stcm9vdCAuYWN0aXZlLWYgYnV0dG9ue2JvcmRlcjowO2JhY2tncm91bmQ6dmFyKC0tY3lhbi1zb2Z0KTtjb2xvcjp2YXIoLS1jeWFuKTtib3JkZXItcmFkaXVzOjk5OXB4O3BhZGRpbmc6NXB4IDEwcHggNXB4IDEycHg7Zm9udC1zaXplOi44MnJlbTtmb250LXdlaWdodDo2MDA7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtnYXA6NHB4O2FsaWduLWl0ZW1zOmNlbnRlcn0KI3NrLXJvb3QgLmVtcHR5e3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6NjBweCAyMHB4O2JvcmRlcjoxcHggZGFzaGVkIHZhcigtLWxpbmUpO2JvcmRlci1yYWRpdXM6dmFyKC0tci1sZyl9CiNzay1yb290IC5lbXB0eSBoM3ttYXJnaW4tYm90dG9tOjhweH0KI3NrLXJvb3QgLmVtcHR5IHB7Y29sb3I6dmFyKC0tbXV0ZWQpO21hcmdpbi1ib3R0b206MjBweH0KI3NrLXJvb3QgLmZidG57ZGlzcGxheTpub25lfQojc2stcm9vdCAubm90aWNle2JhY2tncm91bmQ6dmFyKC0tY3lhbi1zb2Z0KTtjb2xvcjp2YXIoLS10ZXh0KTtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoxMHB4IDE0cHg7Zm9udC1zaXplOi44NnJlbTttYXJnaW4tYm90dG9tOjE4cHh9CkBtZWRpYSAobWF4LXdpZHRoOjk2MHB4KXsjc2stcm9vdCAuY2F0YWxvZ3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfQojc2stcm9vdCAuZmJ0bntkaXNwbGF5OmlubGluZS1mbGV4O3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MTZweDtib3R0b206Y2FsYygxOHB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sMHB4KSk7ei1pbmRleDo0MDtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1sZyk7YmFja2dyb3VuZDp2YXIoLS1uYXZ5KTtjb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1uYXZ5KX0KI3NrLXJvb3QgLmZpbHRlcnN7cG9zaXRpb246Zml4ZWQ7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7dG9wOmF1dG87ei1pbmRleDo3MDtiYWNrZ3JvdW5kOnZhcigtLWNhcmQpO2JvcmRlci1yYWRpdXM6MjJweCAyMnB4IDAgMDtwYWRkaW5nOjhweCAyMHB4IGNhbGMoMThweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLDBweCkpO21heC1oZWlnaHQ6ODJ2aDtvdmVyZmxvdy15OmF1dG87dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTA1JSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGN1YmljLWJlemllciguMiwuNywuMiwxKTtib3gtc2hhZG93OjAgLTIwcHggNjBweCByZ2JhKDAsMCwwLC4zKX0KI3NrLXJvb3QgLmZpbHRlcnMub3Blbnt0cmFuc2Zvcm06bm9uZX0KI3NrLXJvb3QgLmZzaGVldC1oZWFke2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzoxNHB4IDAgMTZweDtwb3NpdGlvbjpzdGlja3k7dG9wOi04cHg7YmFja2dyb3VuZDp2YXIoLS1jYXJkKTt6LWluZGV4OjF9CiNzay1yb290IC5mc2hlZXQtaGVhZDo6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDo1MCU7d2lkdGg6NDBweDtoZWlnaHQ6NHB4O2JvcmRlci1yYWRpdXM6NHB4O2JhY2tncm91bmQ6dmFyKC0tbGluZSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSl9CiNzay1yb290IC5mc2hlZXQtaGVhZCBoMntmb250LXNpemU6MS4yNXJlbX0KI3NrLXJvb3QgLmZzaGVldC1mb290e2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246c3RpY2t5O2JvdHRvbTotMThweDtiYWNrZ3JvdW5kOnZhcigtLWNhcmQpO3BhZGRpbmc6MTRweCAwIDRweH0KI3NrLXJvb3QgLmNoaXB7bWluLWhlaWdodDo0NHB4fQojc2stcm9vdCAuc2NyaW17ZGlzcGxheTpibG9jaztwb3NpdGlvbjpmaXhlZDtpbnNldDowO2JhY2tncm91bmQ6cmdiYSg1LDEyLDI0LC41KTt6LWluZGV4OjY1O29wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbjt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyx2aXNpYmlsaXR5IC4yNXN9CiNzay1yb290IC5zY3JpbS5vcGVue29wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGV9Cgp9CiNzay1yb290IC54YnRue3dpZHRoOjQ0cHg7aGVpZ2h0OjQ0cHg7Ym9yZGVyLXJhZGl1czoxMHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7YmFja2dyb3VuZDp2YXIoLS1jYXJkKTtkaXNwbGF5OmdyaWQ7cGxhY2UtaXRlbXM6Y2VudGVyO2N1cnNvcjpwb2ludGVyfQojc2stcm9vdCAjc2stbW9kYWx7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDt6LWluZGV4OjkwO2Rpc3BsYXk6Z3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7cGFkZGluZzoyMHB4fQojc2stcm9vdCAjc2stbW9kYWxbaGlkZGVuXXtkaXNwbGF5Om5vbmV9CiNzay1yb290IC5tc2NyaW17cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtiYWNrZ3JvdW5kOnJnYmEoNSwxMiwyNCwuNjIpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDRweCk7YW5pbWF0aW9uOmZhZGUgLjJzIGVhc2UgZm9yd2FyZHM7b3BhY2l0eTowfQojc2stcm9vdCAubWJveHtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOnZhcigtLWNhcmQpO2JvcmRlci1yYWRpdXM6MjJweDt3aWR0aDptaW4oMTAwMHB4LDEwMCUpO21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDQwcHgpO292ZXJmbG93OmF1dG87ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxLjFmciAxZnI7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctbGcpO2FuaW1hdGlvbjpwb3AgLjI4cyBjdWJpYy1iZXppZXIoLjIsLjcsLjIsMSkgYm90aH0KQGtleWZyYW1lcyBwb3B7ZnJvbXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMThweCkgc2NhbGUoLjk4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOm5vbmV9fQojc2stcm9vdCAubWdhbHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxNjBkZWcsI0Y1RjhGQiwjRTNFQUYxKTtwYWRkaW5nOjI4cHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTRweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfQo6cm9vdFtkYXRhLXRoZW1lPSJkYXJrIl0gI3NrLXJvb3QgLm1nYWx7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTYwZGVnLCMxODI2M0EsIzBGMUEyOCl9CkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7OnJvb3Q6bm90KFtkYXRhLXRoZW1lPSJsaWdodCJdKSAjc2stcm9vdCAubWdhbHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxNjBkZWcsIzE4MjYzQSwjMEYxQTI4KX19CiNzay1yb290IC5tZ2FsIC5tYWlue2FzcGVjdC1yYXRpbzo0LzM7Ym9yZGVyLXJhZGl1czoxNHB4O292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmdyaWQ7cGxhY2UtaXRlbXM6Y2VudGVyfQojc2stcm9vdCAubWdhbCAubWFpbiBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvbnRhaW59CiNzay1yb290IC5tZ2FsIC5tYWluIHN2Z3t3aWR0aDo5MiU7aGVpZ2h0OmF1dG99CiNzay1yb290ICNzay1tb2RhbCAubWdhbCAubWFpbjpoYXMoaW1nKXthc3BlY3QtcmF0aW86YXV0bzttaW4taGVpZ2h0OjI0MHB4O2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjEwcHh9CiNzay1yb290ICNzay1tb2RhbCAubWdhbCAubWFpbiBpbWd7d2lkdGg6YXV0bztoZWlnaHQ6YXV0bzttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0Om1pbig2OHZoLDU2MHB4KTtvYmplY3QtZml0OmNvbnRhaW47ZGlzcGxheTpibG9jazttYXJnaW46MCBhdXRvfQpAbWVkaWEgKG1heC13aWR0aDo3NjBweCl7I3NrLXJvb3QgI3NrLW1vZGFsIC5tZ2FsIC5tYWluIGltZ3ttYXgtaGVpZ2h0OjQ2dmh9fQojc2stcm9vdCAudGh1bWJze2Rpc3BsYXk6ZmxleDtnYXA6OHB4O292ZXJmbG93LXg6YXV0b30KI3NrLXJvb3QgLnRodW1icyBidXR0b257d2lkdGg6NjRweDtoZWlnaHQ6NDhweDtib3JkZXItcmFkaXVzOjhweDtib3JkZXI6MnB4IHNvbGlkIHRyYW5zcGFyZW50O3BhZGRpbmc6MDtvdmVyZmxvdzpoaWRkZW47Y3Vyc29yOnBvaW50ZXI7ZmxleDpub25lO2JhY2tncm91bmQ6I2ZmZn0KI3NrLXJvb3QgLnRodW1icyBidXR0b25bYXJpYS1jdXJyZW50PSJ0cnVlIl17Ym9yZGVyLWNvbG9yOnZhcigtLWN5YW4pfQojc2stcm9vdCAudGh1bWJzIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29iamVjdC1maXQ6Y292ZXJ9CiNzay1yb290IC5tZGV0e3BhZGRpbmc6MzJweCAzMHB4IDI4cHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0KI3NrLXJvb3QgLm1kZXQgaDJ7Zm9udC1zaXplOmNsYW1wKDEuNXJlbSwzdncsMnJlbSk7bWFyZ2luOjRweCAwIDE2cHh9CiNzay1yb290IC5tY2xvc2V7cG9zaXRpb246YWJzb2x1dGU7dG9wOjE0cHg7cmlnaHQ6MTRweDt6LWluZGV4OjJ9CiNzay1yb290IC5zdGFibGV7d2lkdGg6MTAwJTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Zm9udC1zaXplOi45NHJlbTttYXJnaW4tYm90dG9tOjE4cHh9CiNzay1yb290IC5zdGFibGUgdGgsI3NrLXJvb3QgLnN0YWJsZSB0ZHt0ZXh0LWFsaWduOmxlZnQ7cGFkZGluZzoxMHB4IDA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tbGluZSk7dmVydGljYWwtYWxpZ246dG9wfQojc2stcm9vdCAuc3RhYmxlIHRoe2NvbG9yOnZhcigtLW11dGVkKTtmb250LXdlaWdodDo1MDA7d2lkdGg6NDAlfQojc2stcm9vdCAuc3RhYmxlIHRke2ZvbnQtd2VpZ2h0OjYwMH0KI3NrLXJvb3QgLm1ub3Rle2ZvbnQtc2l6ZTouODZyZW07Y29sb3I6dmFyKC0tbXV0ZWQpO21hcmdpbi1ib3R0b206MThweH0KI3NrLXJvb3QgLm1hY3Rpb25ze2Rpc3BsYXk6Z3JpZDtnYXA6MTBweDttYXJnaW4tdG9wOmF1dG99CkBtZWRpYSAobWF4LXdpZHRoOjc2MHB4KXsjc2stcm9vdCAjc2stbW9kYWx7cGFkZGluZzowO3BsYWNlLWl0ZW1zOmVuZCBzdHJldGNofQojc2stcm9vdCAubWJveHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO2JvcmRlci1yYWRpdXM6MjJweCAyMnB4IDAgMDttYXgtaGVpZ2h0Ojkydmg7YW5pbWF0aW9uOnNoZWV0VXAgLjNzIGN1YmljLWJlemllciguMiwuNywuMiwxKSBib3RofQpAa2V5ZnJhbWVzIHNoZWV0VXB7ZnJvbXt0cmFuc2Zvcm06dHJhbnNsYXRlWSg0MHB4KTtvcGFjaXR5OjB9dG97dHJhbnNmb3JtOm5vbmU7b3BhY2l0eToxfX0KI3NrLXJvb3QgLm1nYWx7cGFkZGluZzoxOHB4fQojc2stcm9vdCAubWRldHtwYWRkaW5nOjIycHggMjBweCBjYWxjKDIycHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwwcHgpKX0KCn0KI3NrLXJvb3QgLmJjaGlwc3tkaXNwbGF5OmZsZXg7Z2FwOjhweDtmbGV4LXdyYXA6d3JhcDttYXJnaW4tYm90dG9tOjI4cHh9CiNzay1yb290IC5iZmVhdHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjEuM2ZyIDFmcjtib3JkZXItcmFkaXVzOnZhcigtLXItbGcpO292ZXJmbG93OmhpZGRlbjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JhY2tncm91bmQ6dmFyKC0tY2FyZCk7dGV4dC1kZWNvcmF0aW9uOm5vbmU7bWFyZ2luLWJvdHRvbToyOHB4O3RyYW5zaXRpb246Ym94LXNoYWRvdyAuMjVzLHRyYW5zZm9ybSAuMjVzfQojc2stcm9vdCAuYmZlYXQ6aG92ZXJ7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0zcHgpfQojc2stcm9vdCAuYmltZ3twb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDp2YXIoLS1uYXZ5KTthc3BlY3QtcmF0aW86MTYvOX0KI3NrLXJvb3QgLmJpbWcgaW1nLCNzay1yb290IC5iaW1nIHN2Z3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29iamVjdC1maXQ6Y292ZXI7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjVzIGVhc2V9CiNzay1yb290IC5iaW1nIHN2ZyBzdmd7d2lkdGg6MzIwcHg7aGVpZ2h0OjIxMHB4fQojc2stcm9vdCBhOmhvdmVyIC5iaW1nIGltZywjc2stcm9vdCBhOmhvdmVyIC5iaW1nID4gc3Zne3RyYW5zZm9ybTpzY2FsZSgxLjA0KX0KI3NrLXJvb3QgLmJmZWF0IC5iaW1ne2FzcGVjdC1yYXRpbzphdXRvO21pbi1oZWlnaHQ6MzIwcHh9CiNzay1yb290IC5iZmVhdCAuYnR4dHtwYWRkaW5nOmNsYW1wKDI0cHgsNHZ3LDQ0cHgpO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcn0KI3NrLXJvb3QgLmJmZWF0IGgye2ZvbnQtc2l6ZTpjbGFtcCgxLjVyZW0sMi42dncsMi4xcmVtKTttYXJnaW46MTJweCAwfQojc2stcm9vdCAuYm1ldGF7ZGlzcGxheTpmbGV4O2dhcDoxMnB4O2FsaWduLWl0ZW1zOmNlbnRlcjtmb250LXNpemU6Ljg0cmVtO2NvbG9yOnZhcigtLW11dGVkKTtmbGV4LXdyYXA6d3JhcH0KI3NrLXJvb3QgLmJjYXR7YmFja2dyb3VuZDp2YXIoLS1jeWFuLXNvZnQpO2NvbG9yOnZhcigtLWN5YW4pO2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nOjNweCAxMHB4O2JvcmRlci1yYWRpdXM6NnB4fQojc2stcm9vdCAuYmdyaWR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoYXV0by1maWxsLG1pbm1heCgyOTBweCwxZnIpKTtnYXA6MjRweH0KI3NrLXJvb3QgLmJjYXJke2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ym9yZGVyLXJhZGl1czp2YXIoLS1yLWxnKTtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDp2YXIoLS1jYXJkKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO3RyYW5zaXRpb246Ym94LXNoYWRvdyAuMjVzLHRyYW5zZm9ybSAuMjVzfQojc2stcm9vdCAuYmNhcmQ6aG92ZXJ7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0zcHgpfQojc2stcm9vdCAuYmNhcmQgLmJ0eHR7cGFkZGluZzoyMnB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleDoxfQojc2stcm9vdCAuYmNhcmQgaDN7bWFyZ2luOjEycHggMCAxMHB4O2ZvbnQtc2l6ZToxLjE4cmVtO2xpbmUtaGVpZ2h0OjEuM30KI3NrLXJvb3QgLmJleHtjb2xvcjp2YXIoLS1tdXRlZCk7Zm9udC1zaXplOi45NXJlbTtsaW5lLWhlaWdodDoxLjU1O2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1saW5lLWNsYW1wOjM7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO292ZXJmbG93OmhpZGRlbn0KI3NrLXJvb3QgLmJtb3Jle21hcmdpbi10b3A6YXV0bztwYWRkaW5nLXRvcDoxNnB4O2NvbG9yOnZhcigtLWN5YW4pO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6LjkycmVtfQojc2stcm9vdCAuYXJ0aWNsZXttYXgtd2lkdGg6NzYwcHg7bWFyZ2luOjAgYXV0b30KI3NrLXJvb3QgLmFydGljbGUgLmJpbWd7Ym9yZGVyLXJhZGl1czp2YXIoLS1yLWxnKTttYXJnaW46LTQwcHggMCA0MHB4O2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LWxnKTthc3BlY3QtcmF0aW86MTYvOH0KI3NrLXJvb3QgLnByb3Nle2ZvbnQtc2l6ZToxLjA4cmVtO2xpbmUtaGVpZ2h0OjEuNzV9CiNzay1yb290IC5wcm9zZSA+ICogKyAqe21hcmdpbi10b3A6MS4xZW19CiNzay1yb290IC5wcm9zZSBoMntmb250LXNpemU6MS42cmVtO21hcmdpbi10b3A6MS44ZW19CiNzay1yb290IC5wcm9zZSBoM3tmb250LXNpemU6MS4yNXJlbTttYXJnaW4tdG9wOjEuNmVtfQojc2stcm9vdCAucHJvc2UgdWwsI3NrLXJvb3QgLnByb3NlIG9se3BhZGRpbmctbGVmdDoxLjNlbX0KI3NrLXJvb3QgLnByb3NlIGxpK2xpe21hcmdpbi10b3A6LjRlbX0KI3NrLXJvb3QgLnByb3NlIGF7Y29sb3I6dmFyKC0tY3lhbil9CiNzay1yb290IC5wcm9zZSBpbWd7Ym9yZGVyLXJhZGl1czoxMnB4O2hlaWdodDphdXRvfQojc2stcm9vdCAucHJvc2UgdGFibGV7d2lkdGg6MTAwJTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Zm9udC1zaXplOi45NXJlbTtkaXNwbGF5OmJsb2NrO292ZXJmbG93LXg6YXV0b30KI3NrLXJvb3QgLnByb3NlIHRoLCNzay1yb290IC5wcm9zZSB0ZHtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1saW5lKTtwYWRkaW5nOjEwcHggMTJweDt0ZXh0LWFsaWduOmxlZnR9CiNzay1yb290IC5wcm9zZSBibG9ja3F1b3Rle2JvcmRlci1sZWZ0OjNweCBzb2xpZCB2YXIoLS1jeWFuKTttYXJnaW4tbGVmdDowO3BhZGRpbmctbGVmdDoxOHB4O2NvbG9yOnZhcigtLW11dGVkKX0KI3NrLXJvb3QgLmFjdGF7bWFyZ2luLXRvcDo1NnB4O2JhY2tncm91bmQ6dmFyKC0tbmF2eSk7Y29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjIwcHg7cGFkZGluZzozMnB4O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjIwcHg7ZmxleC13cmFwOndyYXB9CiNzay1yb290IC5hY3RhIGgye2ZvbnQtc2l6ZToxLjVyZW19CiNzay1yb290IC5hY3RhIHB7Y29sb3I6I0I1QzJEMjttYXJnaW4tdG9wOjZweH0KI3NrLXJvb3QgLmFjdGEgLmJ0bnN7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2ZsZXgtd3JhcDp3cmFwfQojc2stcm9vdCAuYmFja3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2NvbG9yOiNCNUMyRDI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC1zaXplOi45MnJlbTttYXJnaW4tYm90dG9tOjIwcHh9CiNzay1yb290IC5iYWNrOmhvdmVye2NvbG9yOiNmZmZ9CiNzay1yb290IC5za2Vse2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHZhcigtLWJnLTIpLHZhcigtLWxpbmUpLHZhcigtLWJnLTIpKTtiYWNrZ3JvdW5kLXNpemU6MjAwJSAxMDAlO2FuaW1hdGlvbjpzaCAxLjJzIGluZmluaXRlO2JvcmRlci1yYWRpdXM6MTJweH0KQGtleWZyYW1lcyBzaHt0b3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDAlIDB9fQojc2stcm9vdCAuY2dyaWR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxLjM1ZnIgMWZyO2dhcDoyOHB4O2FsaWduLWl0ZW1zOnN0YXJ0fQojc2stcm9vdCAuZm9ybS1jYXJke2JhY2tncm91bmQ6dmFyKC0tY2FyZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKTtib3JkZXItcmFkaXVzOjIycHg7cGFkZGluZzpjbGFtcCgyMnB4LDR2dyw0MHB4KTtib3gtc2hhZG93OnZhcigtLXNoYWRvdyl9CiNzay1yb290IC5mb3JtLWNhcmQgaDJ7Zm9udC1zaXplOjEuNnJlbX0KI3NrLXJvb3QgLmZvcm0tY2FyZCA+IHB7Y29sb3I6dmFyKC0tbXV0ZWQpO21hcmdpbi10b3A6NnB4fQojc2stcm9vdCAuZmdyaWR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDoxNnB4IDE4cHg7bWFyZ2luLXRvcDoyNnB4fQojc2stcm9vdCAuZmllbGR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NnB4O21pbi13aWR0aDowfQojc2stcm9vdCAuZmllbGQuZnVsbHtncmlkLWNvbHVtbjoxLy0xfQojc2stcm9vdCAuZmllbGQgbGFiZWx7Zm9udC1zaXplOi44OHJlbTtmb250LXdlaWdodDo2MDB9CiNzay1yb290IC5maWVsZCBsYWJlbCAub3B0e2NvbG9yOnZhcigtLW11dGVkKTtmb250LXdlaWdodDo0MDB9CiNzay1yb290IC5maWVsZCBpbnB1dCwjc2stcm9vdCAuZmllbGQgc2VsZWN0LCNzay1yb290IC5maWVsZCB0ZXh0YXJlYXt3aWR0aDoxMDAlO2ZvbnQ6aW5oZXJpdDtmb250LXNpemU6MXJlbTtjb2xvcjp2YXIoLS10ZXh0KTtiYWNrZ3JvdW5kOnZhcigtLWJnKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JvcmRlci1yYWRpdXM6MTBweDtwYWRkaW5nOjEycHggMTRweDttaW4taGVpZ2h0OjUwcHg7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjJzLGJveC1zaGFkb3cgLjJzOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZX0KI3NrLXJvb3QgLmZpZWxkIHNlbGVjdHtiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMicgaGVpZ2h0PSc4JyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzVBNjc3OScgc3Ryb2tlLXdpZHRoPScxLjgnJTNFJTNDcGF0aCBkPSdNMSAxLjVsNSA1IDUtNScvJTNFJTNDL3N2ZyUzRSIpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IDE0cHggY2VudGVyO3BhZGRpbmctcmlnaHQ6MzhweH0KI3NrLXJvb3QgLmZpZWxkIHRleHRhcmVhe21pbi1oZWlnaHQ6MTIwcHg7cmVzaXplOnZlcnRpY2FsfQojc2stcm9vdCAuZmllbGQgaW5wdXQ6Zm9jdXMsI3NrLXJvb3QgLmZpZWxkIHNlbGVjdDpmb2N1cywjc2stcm9vdCAuZmllbGQgdGV4dGFyZWE6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlci1jb2xvcjp2YXIoLS1jeWFuKTtib3gtc2hhZG93OjAgMCAwIDRweCByZ2JhKDI3LDE1NiwxOTgsLjE1KX0KI3NrLXJvb3QgLmZpZWxkIFthcmlhLWludmFsaWQ9InRydWUiXXtib3JkZXItY29sb3I6dmFyKC0tZGFuZ2VyKX0KI3NrLXJvb3QgLmVycntjb2xvcjp2YXIoLS1kYW5nZXIpO2ZvbnQtc2l6ZTouODJyZW07bWluLWhlaWdodDowfQojc2stcm9vdCAuZmxhYmVse2ZvbnQtc2l6ZTouODhyZW07Zm9udC13ZWlnaHQ6NjAwfQojc2stcm9vdCAuc2Vne2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6OHB4fQojc2stcm9vdCAuc2VnIGxhYmVse3Bvc2l0aW9uOnJlbGF0aXZlO21pbi13aWR0aDowfQojc2stcm9vdCAuc2VnIGlucHV0e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDoxcHg7aGVpZ2h0OjFweDtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZX0KI3NrLXJvb3QgLnNlZyBzcGFue2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6OHB4O21pbi1oZWlnaHQ6NTBweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JvcmRlci1yYWRpdXM6MTBweDtjdXJzb3I6cG9pbnRlcjtmb250LXdlaWdodDo2MDA7dHJhbnNpdGlvbjphbGwgLjE1c30KI3NrLXJvb3QgLnNlZyAuaWN7d2lkdGg6MThweDtoZWlnaHQ6MThweH0KI3NrLXJvb3QgLnNlZyBpbnB1dDpjaGVja2VkICsgc3Bhbntib3JkZXItY29sb3I6dmFyKC0tY3lhbik7YmFja2dyb3VuZDp2YXIoLS1jeWFuLXNvZnQpO2NvbG9yOnZhcigtLWN5YW4pfQojc2stcm9vdCAuc2VnIGlucHV0OmZvY3VzLXZpc2libGUgKyBzcGFue291dGxpbmU6MnB4IHNvbGlkIHZhcigtLWN5YW4pO291dGxpbmUtb2Zmc2V0OjJweH0KI3NrLXJvb3QgLmhwe3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTk5OTlweDt3aWR0aDoxcHg7aGVpZ2h0OjFweDtvdmVyZmxvdzpoaWRkZW59CiNzay1yb290IC5mc3VibWl0e21hcmdpbi10b3A6MjRweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxNnB4O2ZsZXgtd3JhcDp3cmFwfQojc2stcm9vdCAuZnN1Ym1pdCBzbWFsbHtjb2xvcjp2YXIoLS1tdXRlZCk7Zm9udC1zaXplOi44NHJlbX0KI3NrLXJvb3QgLnNwaW57d2lkdGg6MThweDtoZWlnaHQ6MThweDtib3JkZXI6MnB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjQpO2JvcmRlci10b3AtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjUwJTthbmltYXRpb246cm90IC43cyBsaW5lYXIgaW5maW5pdGV9CkBrZXlmcmFtZXMgcm90e3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19CiNzay1yb290IC5zdWNjZXNze3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MzBweCAxMHB4fQojc2stcm9vdCAuc3VjY2VzcyAudGlja3t3aWR0aDo3MnB4O2hlaWdodDo3MnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6cmdiYSgzMCwxNTgsODIsLjEyKTtjb2xvcjp2YXIoLS13YSk7ZGlzcGxheTpncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcjttYXJnaW46MCBhdXRvIDIwcHg7YW5pbWF0aW9uOnBvcCAuNHMgY3ViaWMtYmV6aWVyKC4yLC43LC4yLDEuMykgYm90aH0KI3NrLXJvb3QgLnN1Y2Nlc3MgLnRpY2sgLmlje3dpZHRoOjM0cHg7aGVpZ2h0OjM0cHh9CiNzay1yb290IC5zdWNjZXNzIHB7Y29sb3I6dmFyKC0tbXV0ZWQpO21hcmdpbjoxMHB4IGF1dG8gMjRweDttYXgtd2lkdGg6NDJjaH0KI3NrLXJvb3QgLnN1Y2Nlc3MgLmJ0bnN7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC13cmFwOndyYXB9CiNzay1yb290IC53YS1jYXJke2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE0NWRlZywjMEYzQjJBLCMwQjJBMjApO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czoyMnB4O3BhZGRpbmc6MzBweDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGV9CiNzay1yb290IC53YS1jYXJkOjpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotNjBweDt0b3A6LTYwcHg7d2lkdGg6MjIwcHg7aGVpZ2h0OjIyMHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSxyZ2JhKDQ2LDIwNCwxMTMsLjM1KSx0cmFuc3BhcmVudCA3MCUpO3otaW5kZXg6LTF9CiNzay1yb290IC53YS1jYXJkIC5pYy1ib3h7d2lkdGg6NTZweDtoZWlnaHQ6NTZweDtib3JkZXItcmFkaXVzOjE2cHg7YmFja2dyb3VuZDp2YXIoLS13YSk7ZGlzcGxheTpncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcjttYXJnaW4tYm90dG9tOjE4cHh9CiNzay1yb290IC53YS1jYXJkIC5pYy1ib3ggLmlje3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHh9CiNzay1yb290IC53YS1jYXJkIGgye2ZvbnQtc2l6ZToxLjZyZW19CiNzay1yb290IC53YS1jYXJkIHB7Y29sb3I6I0I4RDZDNzttYXJnaW46OHB4IDAgMjJweH0KI3NrLXJvb3QgLndhLWNhcmQgLm51bXtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEuMXJlbTttYXJnaW4tYm90dG9tOjE4cHg7ZGlzcGxheTpibG9ja30KI3NrLXJvb3QgLmluZm97bWFyZ2luLXRvcDoyMHB4O2JhY2tncm91bmQ6dmFyKC0tY2FyZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKTtib3JkZXItcmFkaXVzOjIycHg7cGFkZGluZzo4cHggMjRweH0KI3NrLXJvb3QgLmluZm8gZGl2e2Rpc3BsYXk6ZmxleDtnYXA6MTRweDtwYWRkaW5nOjE2cHggMDtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1saW5lKTthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fQojc2stcm9vdCAuaW5mbyBkaXY6Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcDowfQojc2stcm9vdCAuaW5mbyAuaWN7Y29sb3I6dmFyKC0tY3lhbik7bWFyZ2luLXRvcDoycHh9CiNzay1yb290IC5pbmZvIGR0e2ZvbnQtc2l6ZTouOHJlbTtjb2xvcjp2YXIoLS1tdXRlZCl9CiNzay1yb290IC5pbmZvIGRke21hcmdpbjowO2ZvbnQtd2VpZ2h0OjYwMDtvdmVyZmxvdy13cmFwOmFueXdoZXJlfQojc2stcm9vdCAuaW5mbyBkZCBhe3RleHQtZGVjb3JhdGlvbjpub25lfQojc2stcm9vdCAuZmFxe21heC13aWR0aDo4MjBweH0KI3NrLXJvb3QgLmZhcSBkZXRhaWxze2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWxpbmUpfQojc2stcm9vdCAuZmFxIHN1bW1hcnl7bGlzdC1zdHlsZTpub25lO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MjJweCA0NHB4IDIycHggMDtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEuMDhyZW07cG9zaXRpb246cmVsYXRpdmV9CiNzay1yb290IC5mYXEgc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlcntkaXNwbGF5Om5vbmV9CiNzay1yb290IC5mYXEgc3VtbWFyeTo6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDo2cHg7dG9wOjUwJTt3aWR0aDoxMnB4O2hlaWdodDoxMnB4O2JvcmRlci1yaWdodDoycHggc29saWQgdmFyKC0tbXV0ZWQpO2JvcmRlci1ib3R0b206MnB4IHNvbGlkIHZhcigtLW11dGVkKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNzAlKSByb3RhdGUoNDVkZWcpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yNXN9CiNzay1yb290IC5mYXEgZGV0YWlsc1tvcGVuXSBzdW1tYXJ5OjphZnRlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMzAlKSByb3RhdGUoLTEzNWRlZyl9CiNzay1yb290IC5mYXEgLmFuc3tjb2xvcjp2YXIoLS1tdXRlZCk7cGFkZGluZzowIDAgMjJweDttYXgtd2lkdGg6NjZjaDthbmltYXRpb246ZmFkZSAuM3MgZWFzZX0KI3NrLXJvb3QgI2Z0cntiYWNrZ3JvdW5kOnZhcigtLW5hdnkpO2NvbG9yOiNCNUMyRDI7cGFkZGluZzo2NHB4IDAgY2FsYygyOHB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sMHB4KSk7bWFyZ2luLXRvcDowfQojc2stcm9vdCAuZmdyaWQ0e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MS41ZnIgMWZyIDEuMmZyIDEuMmZyO2dhcDozNnB4fQojc2stcm9vdCAjZnRyIGgze2NvbG9yOiNmZmY7Zm9udC1zaXplOi45NXJlbTttYXJnaW4tYm90dG9tOjE0cHh9CiNzay1yb290ICNmdHIgdWx7bGlzdC1zdHlsZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtkaXNwbGF5OmdyaWQ7Z2FwOjEwcHh9CiNzay1yb290ICNmdHIgYXt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjojQjVDMkQyO3RyYW5zaXRpb246Y29sb3IgLjJzfQojc2stcm9vdCAjZnRyIGE6aG92ZXJ7Y29sb3I6I2ZmZn0KI3NrLXJvb3QgI2Z0ciAuZmFib3V0e21heC13aWR0aDozMmNoO21hcmdpbjoxNnB4IDAgMjBweDtmb250LXNpemU6Ljk1cmVtfQojc2stcm9vdCAuZmJvdHRvbXttYXJnaW4tdG9wOjQ4cHg7cGFkZGluZy10b3A6MjRweDtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1uYXZ5LWxpbmUpO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTZweDtmbGV4LXdyYXA6d3JhcDtmb250LXNpemU6Ljg1cmVtO2NvbG9yOiM4MTkzQTh9CiNzay1yb290ICN3YS1mbG9hdHtwb3NpdGlvbjpmaXhlZDtyaWdodDoxOHB4O2JvdHRvbTpjYWxjKDE4cHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwwcHgpKTt6LWluZGV4OjYwO2hlaWdodDo1OHB4O21pbi13aWR0aDo1OHB4O2JvcmRlci1yYWRpdXM6MjlweDtiYWNrZ3JvdW5kOnZhcigtLXdhKTtjb2xvcjojZmZmO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZzowIDE4cHggMCAxNnB4O3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtd2VpZ2h0OjYwMDtib3gtc2hhZG93OjAgMTRweCAzNHB4IC0xMHB4IHJnYmEoMjIsMTI4LDY4LC43KTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMsYmFja2dyb3VuZCAuMnN9CiNzay1yb290ICN3YS1mbG9hdDpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtM3B4KTtiYWNrZ3JvdW5kOnZhcigtLXdhLTIpfQojc2stcm9vdCAjd2EtZmxvYXQgLmlje3dpZHRoOjI2cHg7aGVpZ2h0OjI2cHh9CiNzay1yb290ICN3YS1mbG9hdDo6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtib3JkZXItcmFkaXVzOmluaGVyaXQ7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS13YSk7YW5pbWF0aW9uOnBpbmcgMi44cyBlYXNlLW91dCAycyAyfQpAa2V5ZnJhbWVzIHBpbmd7MCV7dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6Ljh9MTAwJXt0cmFuc2Zvcm06c2NhbGUoMS4zNSk7b3BhY2l0eTowfX0KYm9keS5vdmVybGF5ICNzay1yb290ICN3YS1mbG9hdCxib2R5Lm92ZXJsYXkgI3NrLXJvb3QgLmZidG57b3BhY2l0eTowO3Zpc2liaWxpdHk6aGlkZGVuO3BvaW50ZXItZXZlbnRzOm5vbmV9CkBtZWRpYSAobWF4LXdpZHRoOjQyMHB4KXsjc2stcm9vdCAubG9nbyBpbWd7aGVpZ2h0OjQ2cHh9CiNzay1yb290ICNoZHIuc2Nyb2xsZWQgLmxvZ28gaW1ne2hlaWdodDo0MHB4fX0KQG1lZGlhIChtYXgtd2lkdGg6NjAwcHgpeyNzay1yb290ICN3YS1mbG9hdHtwYWRkaW5nOjA7d2lkdGg6NThweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfQojc2stcm9vdCAjd2EtZmxvYXQgc3BhbntkaXNwbGF5Om5vbmV9fQpAbWVkaWEgKG1heC13aWR0aDoxMDgwcHgpeyNzay1yb290IC53aHl7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLDFmcil9CiNzay1yb290IC5mZ3JpZDR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnJ9Cgp9CkBtZWRpYSAobWF4LXdpZHRoOjkwMHB4KXsjc2stcm9vdCAuaGVybyAud3JhcHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfQojc2stcm9vdCAuaGVyby1hcnR7anVzdGlmeS1zZWxmOmNlbnRlcjttYXgtd2lkdGg6NTIwcHg7bWFyZ2luLXRvcDo4cHh9CiNzay1yb290IC5sb3R7bGVmdDowfQojc2stcm9vdCAuaGwgLndyYXB7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnJ9CiNzay1yb290IC5obC1pdGVte2JvcmRlci1sZWZ0OjA7cGFkZGluZzoyMnB4IDA7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tbGluZSl9CiNzay1yb290IC5obC1pdGVtOm50aC1jaGlsZCgtbisyKXtib3JkZXItdG9wOjB9CiNzay1yb290IC5obC1pdGVtOm50aC1jaGlsZChldmVuKXtwYWRkaW5nLWxlZnQ6MThweDtib3JkZXItbGVmdDoxcHggc29saWQgdmFyKC0tbGluZSl9CiNzay1yb290IC5jdGF7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn0KI3NrLXJvb3QgLnNwbGl0LCNzay1yb290IC5jZ3JpZHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfQojc2stcm9vdCAub2ZmZXJ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnJ9CiNzay1yb290IC5vY2FyZCwjc2stcm9vdCAub2NhcmQ6bnRoLWNoaWxkKDQpLCNzay1yb290IC5vY2FyZDpudGgtY2hpbGQoNSl7Z3JpZC1jb2x1bW46c3BhbiAxfQojc2stcm9vdCAub2NhcmQ6bnRoLWNoaWxkKDUpe2dyaWQtY29sdW1uOjEvLTF9CiNzay1yb290IC5zdGVwc3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MzZweCAwfQojc2stcm9vdCAuc3RlcDpudGgtY2hpbGQoMik6OmJlZm9yZXtkaXNwbGF5Om5vbmV9CiNzay1yb290IC5iZmVhdHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfQojc2stcm9vdCAuYmZlYXQgLmJpbWd7bWluLWhlaWdodDowO2FzcGVjdC1yYXRpbzoxNi85fQoKfQpAbWVkaWEgKG1heC13aWR0aDo2MDBweCl7I3NrLXJvb3QgLmhlcm8tY3RhcyAuYnRuLCNzay1yb290IC5jdGEgLmJ0bntmbGV4OjEgMSAxMDAlfQojc2stcm9vdCAuaGwtaXRlbXtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTBweH0KI3NrLXJvb3QgLmxvdHtwb3NpdGlvbjpyZWxhdGl2ZTtsZWZ0OmF1dG87Ym90dG9tOmF1dG87d2lkdGg6MTAwJTttYXJnaW4tdG9wOjRweH0KI3NrLXJvb3QgLmhlcm8tYXJ0IHN2Z3ttYXJnaW4tYm90dG9tOi02cHh9CiNzay1yb290IC53aHl7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn0KI3NrLXJvb3QgLm9mZmVye2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9CiNzay1yb290IC5vY2FyZDpudGgtY2hpbGQoNSl7Z3JpZC1jb2x1bW46YXV0b30KI3NrLXJvb3QgLnN0ZXBze2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjB9CiNzay1yb290IC5zdGVwe2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6NTJweCAxZnI7Z2FwOjAgMThweDtwYWRkaW5nOjAgMCAzMHB4fQojc2stcm9vdCAuc3RlcDo6YmVmb3Jle2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O3RvcDo1MnB4O2JvdHRvbTowO2xlZnQ6MjVweDtyaWdodDphdXRvO3dpZHRoOjEuNXB4O2hlaWdodDphdXRvO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1jeWFuKSx2YXIoLS1saW5lKSl9CiNzay1yb290IC5zdGVwOmxhc3QtY2hpbGQ6OmJlZm9yZXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fQojc2stcm9vdCAuc3RlcCBoM3ttYXJnaW46MTJweCAwIDRweDtncmlkLWNvbHVtbjoyfQojc2stcm9vdCAuc3RlcCBwe2dyaWQtY29sdW1uOjI7bWF4LXdpZHRoOm5vbmV9CiNzay1yb290IC5zdGVwIC5udW17Z3JpZC1yb3c6MS8zfQojc2stcm9vdCAuZmdyaWR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn0KI3NrLXJvb3QgLmZncmlkNHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfQojc2stcm9vdCAuZ3JpZC1we2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9CiNzay1yb290IC5icmFuZHN7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7Z2FwOjhweCAyOHB4fQojc2stcm9vdCAuYWN0YXtwYWRkaW5nOjI0cHh9CiNzay1yb290IC5hY3RhIC5idG5zLCNzay1yb290IC5hY3RhIC5idG57d2lkdGg6MTAwJX0KI3NrLXJvb3QgLmFydGljbGUgLmJpbWd7bWFyZ2luLXRvcDotMjRweH0KCn0KQG1lZGlhIChtaW4td2lkdGg6NjAxcHgpIGFuZCAobWF4LXdpZHRoOjc2MHB4KXsjc2stcm9vdCAuZ3JpZC1we2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyfX0KCgovKiA9PT09PSBXb3JkUHJlc3MgLyBBc3RyYSBpbnRlZ3JhdGlvbiA9PT09PSAqLwpodG1sOmhhcygjc2stcm9vdCl7Zm9udC1zaXplOjEwMCV9CiNzay1yb290e2JveC1zaXppbmc6Ym9yZGVyLWJveH0KYm9keTpoYXMoI3NrLXJvb3Qpe2JhY2tncm91bmQ6I2ZmZjtvdmVyZmxvdy14OmhpZGRlbn0KYm9keTpoYXMoI3NrLXJvb3QpICNtYXN0aGVhZCxib2R5Omhhcygjc2stcm9vdCkgLnNpdGUtaGVhZGVyLGJvZHk6aGFzKCNzay1yb290KSAjY29sb3Bob24sYm9keTpoYXMoI3NrLXJvb3QpIC5zaXRlLWZvb3Rlcixib2R5Omhhcygjc2stcm9vdCkgLmVudHJ5LWhlYWRlcixib2R5Omhhcygjc2stcm9vdCkgLmFzdC1icmVhZGNydW1icy13cmFwcGVyLGJvZHk6aGFzKCNzay1yb290KSAuaHQtY3RjLGJvZHk6aGFzKCNzay1yb290KSAjYXN0LXNjcm9sbC10b3AsYm9keTpoYXMoI3NrLXJvb3QpIC5hc3Qtc2Nyb2xsLXRvcC1pY29ue2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9CmJvZHk6aGFzKCNzay1yb290KSAuc2l0ZS1jb250ZW50Pi5hc3QtY29udGFpbmVyLGJvZHk6aGFzKCNzay1yb290KSAjcHJpbWFyeSxib2R5Omhhcygjc2stcm9vdCkgLnNpdGUtbWFpbixib2R5Omhhcygjc2stcm9vdCkgYXJ0aWNsZS5wYWdlLGJvZHk6aGFzKCNzay1yb290KSAuZW50cnktY29udGVudCxib2R5Omhhcygjc2stcm9vdCkgI2NvbnRlbnR7bWF4LXdpZHRoOm5vbmUhaW1wb3J0YW50O3dpZHRoOjEwMCUhaW1wb3J0YW50O21hcmdpbjowIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O2JhY2tncm91bmQ6bm9uZSFpbXBvcnRhbnQ7Ym9yZGVyOjAhaW1wb3J0YW50O2JveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnR9CmJvZHk6aGFzKCNzay1yb290KSAuZW50cnktY29udGVudD4jc2stcm9vdCwjc2stcm9vdHttYXgtd2lkdGg6bm9uZSFpbXBvcnRhbnQ7bWFyZ2luOjAhaW1wb3J0YW50O3dpZHRoOjEwMCUhaW1wb3J0YW50fQpib2R5LmFkbWluLWJhciAjc2stcm9vdCAjaGRye3RvcDozMnB4fQpAbWVkaWEgKG1heC13aWR0aDo3ODJweCl7Ym9keS5hZG1pbi1iYXIgI3NrLXJvb3QgI2hkcnt0b3A6NDZweH19CiNzay1yb290IGgxLCNzay1yb290IGgyLCNzay1yb290IGgzLCNzay1yb290IGg0e2NvbG9yOmluaGVyaXQ7Zm9udC1mYW1pbHk6aW5oZXJpdDt0ZXh0LXRyYW5zZm9ybTpub25lfQojc2stcm9vdCBidXR0b257cGFkZGluZzowO2JhY2tncm91bmQ6bm9uZTtib3gtc2hhZG93Om5vbmU7dGV4dC1zaGFkb3c6bm9uZTtib3JkZXItcmFkaXVzOjA7bGluZS1oZWlnaHQ6aW5oZXJpdDtmb250LXdlaWdodDppbmhlcml0O3RleHQtdHJhbnNmb3JtOm5vbmU7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21pbi1oZWlnaHQ6MH0KI3NrLXJvb3QgdGFibGUsI3NrLXJvb3QgdGgsI3NrLXJvb3QgdGR7Ym9yZGVyOjB9CiNzay1yb290IGlucHV0LCNzay1yb290IHNlbGVjdCwjc2stcm9vdCB0ZXh0YXJlYXtib3gtc2hhZG93Om5vbmV9CiNzay1yb290IHVsLCNzay1yb290IG9se21hcmdpbi1ib3R0b206MH0K\">\n<style id=\"sk-wpfix\">#sk-root>*:not(#sk-modal):not(#wa-float):not(.mnav):not(.skip){max-width:none!important;margin-left:0!important;margin-right:0!important;width:100%!important}#sk-root #sk-modal .mgal .main:has(img){aspect-ratio:auto;min-height:240px;background:#fff;padding:10px}#sk-root #sk-modal .mgal .main img{width:auto;height:auto;max-width:100%;max-height:min(68vh,560px);object-fit:contain;display:block;margin:0 auto}@media (max-width:760px){#sk-root #sk-modal .mgal .main img{max-height:46vh}}<\/style>\n<div id=\"sk-root\">\n<a class=\"skip\" href=\"#sk-main\">Skip to content<\/a>\n\n<header id=\"hdr\">\n  <div class=\"wrap\">\n    <a class=\"logo\" id=\"logo-h\" data-link aria-label=\"SK Infoways home\"><\/a>\n    <nav class=\"nav\" id=\"nav\" aria-label=\"Main\"><\/nav>\n    <a class=\"btn btn-wa btn-sm hdr-wa\" id=\"wa-hdr\" target=\"_blank\" rel=\"noopener\"><\/a>\n    <button class=\"burger\" id=\"burger\" aria-label=\"Open menu\" aria-expanded=\"false\" aria-controls=\"mnav\"><span><\/span><span><\/span><span><\/span><\/button>\n  <\/div>\n<\/header>\n<div class=\"mnav\" id=\"mnav\" aria-label=\"Mobile\"><\/div>\n\n<main id=\"sk-main\" tabindex=\"-1\"><\/main>\n<footer id=\"ftr\"><\/footer>\n<a id=\"wa-float\" target=\"_blank\" rel=\"noopener\" aria-label=\"Chat with SK Infoways on WhatsApp\"><\/a>\n<div id=\"sk-modal\" hidden><\/div>\n\n\n<\/div>\n<script id=\"sk-app\" src=\"data:text\/javascript;charset=utf-8;base64,Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAxKSBDT05GSUdVUkFUSU9OIOKAlCBlZGl0IHRoZXNlIHZhbHVlcy4gUGxhY2Vob2xkZXJzIGFyZSBpbiBbYnJhY2tldHNdLgogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KY29uc3QgQ09ORklHID0gewogIEJVU0lORVNTX05BTUU6ICJTSyBJbmZvd2F5cyIsCiAgU0lURV9VUkw6ICJodHRwczovL3NraW5mb3dheXMuY29tIiwKICAvLyBPcmlnaW5hbCBTSyBJbmZvd2F5cyBsb2dvIChlbWJlZGRlZCkuIFRvIHVzZSB0aGUgdXBsb2FkZWQgZmlsZSBpbnN0ZWFkOiAiL3dwLWNvbnRlbnQvdXBsb2Fkcy9zay1pbmZvd2F5cy1sb2dvLnBuZyIKICBMT0dPX1VSTDogImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBYTBBQUFDRUNBSUFBQUNzNE9NcUFBQmVPRWxFUVZSNDJ1MTlkM3hjMVpYL09mZStNbjJrVWErMlpMbDNqQUdiRm5vSW5RMlFoSkNFOUMzSnB1NXVkcFBBUW5wKzJmUmtBNEdFaEFESnBoRmE2TTJBYld6akxsZFpWclhxaktiUHZQZnUrZjF4WjU1RzFiSXRHMlBlaVQ2T0dMMTU1YjU3di9lYzcybElSSEJ5Q1FrU0RQbndmNE5BWU9DSUk0NDRjbndFVHlvY0ZHUkpCT3hMN3R2WS9YdVhFcHhmZWttRmR5NEFBYUR6dGh4eHhKRlRHUWNKQkFBaVlNYU1yKzM4OVlidTMyZk1HQUJ3VkM2ZmZkdVM4cXVJQktLakZUcmlpQ09uSmc0T0c4STcrLzYrcHYzdS91UitsK0pucUNDd2pKWHc2K1VmWGY0SGxia2NyZEFSUnh3NUhxS2NESVl3UTk2VDJQM1N3Wi90QzY5Um1PWlJpd1ZaZ2l3QXdWRVJ3akJGUm1VdUJ3VWRjY1NSVXdvSGlRUWdNdVJwTS9wYXg2ODNIZm8vdzBxNWxRQ1JFR1FWMk1zRUFPZ0FvQ09PT0hJcTRTQUJVZDRRM3Q3MytDdHRkdzJrV2wxS3dLWDRDeEhRRVVjY2NlVFV4RUZwQ0NQeVEvR2RMeDc4V1V2a1ZZWHBCWWF3STQ0NDRzaXBpNE8ySVp3MElxOTEzUHZHb1QrWkl1TldncU1NWVVjY2NjU1JVeEFIQ1FoSUlISUEyTmI3eUN2dGR3K20ybHhLUUhjTVlVY2NjZVR0Z0lPNTBHamtYYkZ0TDdYOS9FQjRyY0pkMGhBbUJ3UWRjY1NSVXhzSGlRUWlNdVFKWS9EVjludTM5UHpaRWxtMzZoakNqamppeU5zQUJ3c040YzA5ZjNtMS9aNUl1dE9sQkxpaU9Ram9pQ09PblBvNGFCdkNIZEV0TDdYOXJEV3lYdU51ajFva3lEcjVham80NG9namprd3JEc29VWUlZOG51MS9wZjJYVzNzZkZzTDBxRVdPSWV5SUk0NmMramhJUUVDRXlBam9qVU4vZXEzajNxRjB0MXNKZ0tJN0NPaUlJNDZjK2ppWU40U3hQYnJweFlNL2F4dmFxSEdQTklUQk1ZUWRjY1NSVXhzSGJVTTRsdTE5cGUzdXJiMlBFRm1PSWV5SUk0NjhMWERRTm9RRldXOGMrdU5ySGIrS1pucmNTZ0FRSFFSMHhCRkhUbjBjdEEzaGcwT3Z2M1R3WiszUnpZNGg3SWdqanJ4ZGNOQTJoS09aUTJ2YTc5cmUreGdCT1lhd0k0NDQ4cmJBd1FKRDJOelkvWWUxSGIrT1ovdGNqaUhzaUNPT3ZFMXcwRGFFRDBUV3Z0VDI4ODdvRm8zNzNJNGg3SWdqanJ3ZGNOQTJoQ1BwempYdGQrM29ld0lCUEdxeFl3Zzc0b2dqcHo0TzJvYXdSY2FHcmdmWGRmNDJrZTEzcVVHcEhqb0Q1NGdqanB6YU9KaHZJSWU0UC96S3kyMC83NHB0MTIxRDJCRkhISEhrMU1aQjJ4QU9wOXRmYnZ0RmM5K1RpTXlqRmd2SEVIYkVFVWRPZVJ5MERXRlRaRjd2ZW1COTUvMUpNK3hTQW80aDdJZ2pqcndkY0hEWUVONDMrTkpMYmY5N0tMNVRWM3h1SmVnZ29DT09PUEkyd1VGa3lBZFRCMTlxKzk5ZC9jOHd4eEIyeEJGSDNsWTRTRUJaTTdHeCs2SDFYYjlMbVVPT0lleUlJNDY4N1hBUUFWODQrS08xSGI4TzZGV09JZXlJSTIrdUVBQkpxbjVNZ2dJaUlDQUNBQUk2SXpYdGRuSEdqT3VLSDVFTE1wMFJjY1NSTjBVRUFSRnhobE9CT291SUtJK01EaXhPQ3c0aWNpSUI0R1RJT2VMSW02TURDaUtPQ0lpbW9BUFI3TDVJcGpOaERHYk1qRVVNd2F1d2tFc3BkeXZWWHJYS3E1YTVGVDRTL09RWmlBQUJFQjJkOGFodzBFRkFSeHc1Y3ZDaUVjbjFtTGRjajF3TlpBZ2NzWGt3ZmRmMi9yKzFETFVNcGlCakFjSHd5U2gvQ1lXQnpodUMrckpTOTRweXo3SlM5NXhpVjYxUGRTdU1qN200RFk1ajdlc1Ivd21JWXo1OGUrS2dJNDQ0TWpYNEkwRkFETGxOMW8wQ1J5S0JnSWhzNmlBNG1MSCtlMjNYejdmMkc5R01OK1M2ZW01b1pibW5JYUNWdUJTTm95QkltaUtjc1hxVFJsdmNPRENVMlRlVWVhUTErcGVkQTJBSlVKalhwelVGOVlVaDE2SVMxOXhpMTZ5Z1h1TlRTM1FGRWJoak16czQ2SWdqMDY0QUlqSUpMQWxqSUpFZHpGcEpBc0ZSZFNsK2p4cHlLWDdadG52cUlMZzdrcm51a2YzTjdiRlFpZXZ6bDg3OHlNS1NDbzk2Mk85R3MxWmJ6R2dlVEczc1RXNGJTTzhkeXZ4cGYrU0JIU2FZQkF4QTQwR1hVdWxSS2p4cXFWc0phaXlnOGFER2d4cjNxTXl0TURkSGxhT0NxREowSzZ6T3A5WUhOSTV2WDZYUXdVRkhISmtTQ0VvRjhGQjhWM1AvayszUnpVT1pycXlac01nZ0lBYU1NODJsQkVMdStoci80bG5GNTFUN0Z4OU9yd1FBR0VpYlZ6NnlmMTluL0tMNUpmZGNYRC9EcjBIZUJ6TEtnTFhOVzZubEJUUytxSVF2S25IZE1MdFlmcDQwUlgvSzdFb1luWEdqSTJHMHg3TTlTYk0vWlhiR2piMm1sYkhJSWdBQWphRkhZVUdkVmJyVkdYNXRYckZyWHNoVjRsYmV6aURvNE9ESnJuM1FCTlF0NXRod3grWTVRYll3SWt1WlE4OGYrT0dPL3I4YlZsSmhHa2NOa2Fub0FrQVo2NUkwd3ZGc1gzUC8wOTN4NWhzWC9FaCthMEpsRUlnai92ZjZRL3ZhWStmT0xYN2txa2Ezd2d4QkN1TDR4dXdZN284SUJKR05qQjZGMWZ1MWVyL212QzhIQjArUlZRY0FpQXdPdDBYbnVTcjJaZ0VpZ1VCZ3AvanJBSUhJaGpMZC83ZnpNejJKWFI2bFNGV0xLYmRGNWY2VlIzSlVWTzRTWk00SXJzeXJrQk1xZ3h5eEoybithdWVBTzZEZGZWRzlXMkdtSUpWTjlUMUt6d1lybUNEakJoN0t2K1BJbVZSNG1JeThZVy83L2RUQndaTnN5ZVVwOXFRUjdrdnVHMGdlaUdaNzAyWlVrSW5BWkQrc2dGNFZjczhvY2MvVXVBZHpNOXVhT2kxMUFrQlFrTW1RbnhMcUtnRkJWaVQvc3V2ZitwSjdmV3FwUlFibGN3MFk4dHdSZVJPV1NDRHdLdDk4bURSd3hTSlNFTmQweCtQaDlEOHNLNTliNUxLSWxHTkRvN3pQOS9DT0VTZXN4c0hCazkzNEFvQjk0WmUzOVR6YUdkdVNNQVlzWWRoVE43L05Fd0pUdUI3UUttcjhTMmFYbk45UXRFcmpucU83WEgveXdHTjdiMk9veU5NanNyUVpXMWgyK2FyYVd3VUpOb2xaUnhaRHZxUHZpWFdkdjlHNFIrcXdCTUJSU1JyaDJhSHp6NS94endCdzFLU1Q1T1ArdnYvclhiRWRLbmNEQ1FBVVpPbmNkOTM4NytqY215UHNqck1JSW9ic2xmWmZka1MzK1BXeS9Pc0FCRVlnVXVZUUVjbTNKdDNFRExsWEt5bnpOQTByWXhOTGN6aXRBcHhmN1pPcW5BTk1EZzQ2SUNoUnFlV1pBOTlyamF3bEFJMjVOTzVGamhNZEg4MzJEdlk5dXEzdnNaQ3JmbG5sZFN1cTNxTXc5VWdYa3lGU1hmSHRERldKZ3d4NTBvalVCcGJtTGEzSlFMQWwvT3BqZTIrWGQwNjVyeXNaTTFyaG0zOTY5WHNSOGRpalV2dVRCN3BpMnpURlN6a2NORDFLRVoyb3JDZkpPUXhsdXJmMC9NV2pCb2RCRUpscHBUblRGcGE5cXk2d3pLdVdFbERTR0J4SUhtaUp2T2JYU3QxcTBWUmd1aXR1R0FtRE1RY0FIUngwSkcvVjdoOWM4N2M5WDg1WXNYeXBDMEVrSm9FU0JWVlYwUUZ3SU5XNnBlZmgwNnZlU3dBSVI2WlhTRnQ3R0FlQm16eXJvRGFwaW1ReDVOM3huUS92L2hKRFJlRWFFUUVRUXlVcmtxV2VXZTlaK0ZPZlZqb3QrcHJLZEkxN05PWWh5T0dneXR3blRIRWlFb2g4Vi8vVFNTUHNVWXRsNmowaU02MU13RlYxOVp5dlYva1dqREY0alVSMllCS3pVOFkyQ3dKQjhMNDV4WTB1NWF4S3IveFBpNGdoT3BqbzRPRGJWaFBrN1VPYi9yenJpNGpNcFFRS1MxMGdjc3o1anVYYVF2dGJCRVJrTWVRSWNGcmxEWnlwNHFoWVFya3FKUTRTb2p6ekpBY3o1T0YweDUrYlAyK0tyTUoxR3gwTWtkSzQ1eC9tZjgrdmxVL3VLajBpalN3SEdpUUFNSCtySjBqa0k3Ukcxak5VN0RHUmozYk5uSzlYK2hZSU1rZUJNa2Mxb0ZkT2RFS0xpQ055Uk00QkFNNnA5cDFUN1pOLzB2S0t2eVdJTVFjTkhSeDhtOEVnSUtiTjJPUDc3aUFnbFdrMkNFb0dLbTFHaVFSSEJSRUpTSkFsMTZHQ3VzSTBSR2FSNlZhTDU1Uzh3MTYzeC9OZUJTSkxHdUUvTlg4MmJnem8zSnNEUVdBU0VhNmIrNTB5VDFPdXkrdGIvOVVnWU5aS2h0TnRDdE1nRjZIQ01tWnNkdWdkbGI0RmdpeUd5amc3eFhqS29KMDhCd0JydXhQUGRzUmVQQmc5bzlaMyt4bFY5elFQUExoOTROd1ovbmZVK00rdDhXa003ZU1kY1hEd3JhZldqVktqRVBHd01TV3lEUGdiaC83WW56cmdWVXZzZWo4SXpCUnB4dFQ1cFpmT0NLNG8wbXRVN3JMSVRCcVJvVXhYWDJMZm9maXVjTHBOa0NYSVdsQjJXVUN2bkM0VmJCTFZESUVaSXZYblhWL3NUN2E0bEtDOFd3UWtFS2FWdlc3K2QrcURLMDRWRU16eEN3bGpNR1ZFR1hMNWNoRlFrRlhqWHpLeHlqeU9LaWZWUUFENDljNkJuMjd0MjlDVEJFdEEycW91MGhXRy9Tbnp4ZjNoRnp2algyUGQ4MHZjSDF0VStzbkZwVzZGMmQ5eXhNSEJ0NHpnVWNWZ01lUVdHVHY3bnRTWW00WTFRVFJGT3VpcXZuTDJIZFgrUmVOKzBSU1pydGoyNXY2bnR2WTh2S0QwTXBnMFdtMWFRQkNJQklpSGQvOW4yOUJHajFxY2gyd0V4SXdSdTJMMmJYTkM3emlaUUpESS9xY0FzOUQrMzJGSlJpSkF6RnB4aXd6Ym55NjNxSUJlZ1RCVkw1Q0VzMTJSOU1lZmJudTVMUW9jbWNwMFhjMFM2aHdCUUdYSWRVWHpLRmxMTkErbVB2ZnN3WHQzOVAvOG9obm5WSGxQY2lpMEswM1E4T0JnVGdVNEtYdy9NbEJ5NU8xTjhQWWRISndXUlFsZjYvalZRUElBNXpxUVFHUlpNOUVVT205QjJUc25VZFBrbndhU0I4THBkczcwWVFZS2lLRnk5Wnh2VlBybVNYdHptQmJNYXlVSzArdURLK3FESzg2c3VjV3Jsa0ErbHUxNHpTY2lodXl4dmJmdEhuamVxNFpzdlpVaEpvM0l4WTFmWEZKeHpac0xnb1hwTnpLd0hNR09sQnQvOEtmQ0pBZ1NCTUlPV2lJZ1JPUk1vNXdYQzhjak9wajl2aVNRcmVsT1hQUHd2c0drb2JvVitUVlRrSjA4UndBV2tTbElFSENGTVpWdjcwOWQrSCs3NzM5WDQ0MU5SWVZRS085NTdBWjh1R0VSaFdOd3VPTUYwR1NYSUJCRUpLTmNDOHJDam5OZE9iM0hBdUxZVzhvaDV4U2djNXdSUUJocmRSRlpNSHlIRTk4ZWdNMm5Pemc0UGJKbjRJWFd5RHBkOFFvU0hIbkNHSFNwd1FWbDc1d3NxUUFJQVFaVGJZWkkyWlhBSlliT0tGcFo2WnMzbG9IQ2tkZ0VBRVd1MnVPTk1OSjRmN3JsdTF0Ni9scG92RFBrQ1dQdy9QcC9QcVA2NWpkZEU4U1JTUk5aSzVreWg5Sm1OR1BHRFpHeXlKUWVIcDM3dkZwcFVLOVFtR3VZOUR5eWxCaFNtUnVSOGNOaktIREVQWkhNVlEvdmk2Uk4xYVdZZ2c3N0ZVR2thTnkweEhzZmE2bDQ5NXp6YTN5Q2lPVlFuUjNWc1BBak9mNHdVVHlGT1N4Skk1d3dCbExHVU5aS3lnMWI1UzZQR2dwbzVXNjFTRUxNV0QzZ1NHOXA2cUJ2djAxNTZheVZpbWE2NDBaLzFrd0NFR2Vxem4wZXRkaW5sV3JjTzhxajZPRGc5SWl1K0R4cWtZeDBrM1NTeXR4VCtXTEtqQlJtUWtrR3lxZVZ5ZHlTeWFZRVlvRTVmTHpNRUFtQ0x4MzgyZnF1KzBkcWdrckNHRmhWZStzNTlSOC9HY3hobVg3VG05amJsOXdmVHJYSHNqMXBNMmFLdEVSQW1mMkdnSWhjWlM2ZlZscnBXekMvOU5MWm9mTVEyTlNwVlNKU21IdHQ1NisyOXowbWxZNlJMQWZMV0lsNUpSY3ZLcjlDa0FCZ0Z0RUhuemtZU1JxalFCQUJDck5IT0k2SWw3RUVjYzVNeS9yQTA2MWIzemZmcnpJQWlHWU9QZC82UTlzZVIyU0dsYXIyTDFwVmUrdTRJVXJ5b2ZZTVBMKzE5MkdkKytUZVVCODhmV1gxKzhaOVh2bmh4dTQvSElpOHBuT3Z5R2xleEZDNXFPSHpubHhFSlBRblc5cUdObmJGZHd3a0Q4U3l2Umt6YmxLV3lLSjgzQlZubWxzSmxub2Fta0xuTFN4N3Awc0oycGNqSWtSYzEvbWJqdWhtTlI5N2o0aW15SjQzNDU5SzNRMlR2d2lMakdkYXZwY3l3dEo5TDZNNHk3eE41OVovVXRLNTl0ZjNERHpmM1AvVW9YaHozQmd3UmRyMjVqSGtDdE05YWxHUnE2N0NPN2N1c0x3K2VKckd2UURrNE9CMG1ZNUNlaTNrMnhWa1RUSENRNHhVOWVVTFRocGg2UytlMG9aLzNFUUMzR3NkdjFyVGZwZFhEWW5oZkRJbGtSMDR2Zm85Rjg3OERKSEY4RTFMTVpZUUVNOE8zTC90dzVGMHB5QUxBUm5qREZXR25LSEtVY3RYU0xXNUlqR1U2UjVJdGU3b2U2SStjTnJGalordjhNNmJQSG1tOElJTWxmYm81bkU3V0REa3lleGdrVjZ6cVB3S1V3aU5zd2YyaE5jZWpLcnVrU0NJWUJGWktkUEtjNWhXMnJSMHpoRkZma2UwQktrNmIrdFAvV2hMMzFkV1Zsb0VicldvSTdZbG5HcFhtQzYxSGxPa2V4TjdWbGJmckRBTkpvZ2IzZEgzOSsyOWo3dlZJQkZscldRNDNYNTYxWHZHeFJwRUJLQ3RQUSszUnpkcDNDc3ZrYldTMWY2RkxzVm5WNEo5Y3YrMzlvVmYxcm1QSVdlb01PUWFlcVNPUjdtZFFxVE1vZGJJK3YzaFY5WjMvdmJjK2s4dUtyOHlIMnd2RUxoRnh0YmV2M255ZXlwRG5qVENkWUhscGU2R2lZd24rZlhCMU1GTjNYK0EvTXRreUpQWjhMbjFuNUNMU0pycVBZbGRUN2Q4dHozNkJnQ3FUR2VvYU54YjhQYUpnT0xaL2tpNnV5WDg2cXR3ejRlVy9yYkd2NFRJd2NFM1cxeUtyM0FHRXdtTnV6dWpXeVBwamlKWHJTQnp2T0NNRTRQc0ZtZmFocTRIbjIvOWtWc3RzdkZhYW9KTEs2KzliTmFYOGp2d20weUtXMlNrektpbWVCZ29JOHNJa00yU0YxcWtDbXFxNGdLQTl1Z2I5Mi85NkRWenY5a1VPbmZLV2lGcDNEUHU5c09RRXdtVnVRQ0FNeVNBbjJ6dFI0YWpDaDhJazd3YSs5eUZkYmN1REJIQUIrY1ZhZGp3blUwOVBYR0RxZHcyRG9RZ1ZQbmRPL3Evc0x6Y3BRQkgxK3ppOHpabC91aFdnM21heko4eWh5THA5bExQTEtscWpUSWhMVElHVTYwK3JVeGhPZ0RwM0pmSURrYXpoNEo2OVNnVlV2NW5MTnNYeS9iNXRYSTVEZ3c1QU0wT3ZZT2hraWR0ZU1oZHIwZDliclZJQ0ROZmFVTEFTUGM1UTRVcktnSkxHSU1QNy82dmNMcmozUHBQeXJ4REFKZ1R1bUJ0eDMyMkFTR3YxUkhkdkxMNmZSTUhueE1DZE1XMkE2SlhMUlprRVFBRFpCcWZVM0toUEFTUnQ0UmYrOHZ1ZnpPc2xGc0p3bkNNcmN6NHRNK01IRlZGMFFXWmJyVzQxTjA0Slh2YmtlTkxhUUVVdStvVXBvMHdqWkZuUmZLeHZYZGtyWVNjZ3VNUzVNZGJ2ZVZNZStQUUg1OCs4RjIzR3BBWkkza1FIRnhZZHZrVnMyL0xOUW82Q1R5RENNaFFLVlRKNWNwaHlCbHl5WmRMZlVIV2taYVJtSUlzbCtJbkVBL3YvbEpQWWpjaW0rbzRqd0hXZ28rSFRkMldvY3lHbmlTb3pNcS9YSVlBRnBWN2xCZi9ZYzRkcTZvYkFpNGlzOHFyZis2MGlyVTN6cDFYNGlaRDJQU2JJR0FLYTQ5azF2VWs1VlNwQzY2US9obDU4d0NRTm1QZDhXYUFVVUNVOHllRVUyMlJUQmRETHNnVVpBRkMwb3oweEhlUGRUakkvK3hON0U0YWc0QW96MitSQ1lEMXdSV0YxSFN4cTA2UUJVQ0l5SkRoZU1NcnRVSkJKa2ZOcTRWZU92aXo3YjJQMmNtWEplNFpJZmZNckpVa0lrR1dFQ1pIdFR2ZW5ESGppR3pjYkU3NStPM1JONERJZnNXR1NQdTBzZ3JmWEFtQ2c2bTJ2KzM1VHlMVHBmaHp4OGl5NGNnQWlITDJHU0VpSWtOa2hwVXVjYy9RRlovY0F4d2NuS2FsaUV5dU92dm5zT3k3M01ETHZMT0xYTlVtWlFwelJUVHVhWTl1ZW1EN0p6cWltK1c3ekFWUm41Qk9Nb0lFSXR0ODZNOVA3dittaS90bHBva0V3YVF4T0sva29xdm5mRzA0Q09Ha1lTWkdyUnhEcEpOR09HbEVNbWJjRUdsRHBETm1MR2xFTERMdDdWK1FwVERkRU9tblc3NHJ5SnBha3c0MFJESmxSdE5tTkRYeUoyMUdVOGFRSVRJUzlEYjNwY2l3ZE00VWh2SkhaUXd0K24vbjFhd285OFN5UTQvdXZmM3VOMjU0Y3YrM0UwWmlaa0MvKytKNmxZT0NZQit2Y1ZRRnZkNlRBRUFDcUEwczlhZ2hpNHpDdmFjenRuVmNCUW9BdXVNN00yWjhXUE1DSkxLNll0c25lckRPMkZaQnBueW5DR2dKdzY5WFZQa1dBZ3c3UjRyZDlRQ1VNUk5KSTVJMHdtbHpLR3NsOHNNYlR4cGhVMlR0NFpYT1pWM3h2ZFQyczVRNUpCRVprYzhzV21tS2pFMXdjNmJGTW9lNjR6dkcwa1I1WFkrWkl0c2QzNmt3WFVJMlEyYUlUTFYva2M1OWtneFowLzZMcEJGUm1ic3dIU3RsRG1YTkJDSlh1VXRCallDeVZpSnBoTk5tTEN0U2xiNEY5aDdnMk1YVEkxa3prVEtHTE1qNUpWTkd4QkNwdzY0b1FaYktYSXZMcjNxdTlmdWE2cmJ5ckJPUmNDbiszc1RlQjNmODAvelNTMDZyZkhlMWY3SHRnRHV1aWp5UjVWTDhld2FlZjN6Zm5UTFRtUXBBY0hiby9Hdm5mak5IVkorczlRRVEwS1JzcFcvQnpLS1ZRYjNHcDVYcTNBZEFDV093SzdhdHVmK3BXTGJQcnBFanRjTDI2S2FXOEt0Tm9YTVA1L05CUVdhTmY0bFhLOGxwd3lPdXl6Tld2TUk3Ui81cHkwREtqQnVtQUJDNXRXMFFnTTdmV1I4MGhmSFkzaS92SFhqT294YXY2N3d2bHUyNWR1NjNWMWQ2QWg2MXZ5OEZLa3BVTnhoQzB0elVsd0lBVXdpL1ZsN2htOXNhV2E4clhpSWlJb1ZwM2ZHZEU5MXpSM1FMamdSSGpxcUVtOUUrWEdRQTBCWGR6bEROeFdZaEdsWjZsbStSUy9FWFJzQUU5V3FmVmxybW1WM3FhU2gyMWZtMGNwZnFWMUNYSHIrZStLN21nYWNIa2dkMHhaODNTSVhDWEpGMDUrNytaNWRWWGk5YjZzMHFQbWRkNTI5dEd3Z0JMVElPUk5iT0xEcHpYTjhVSWc2a0RneWxPem5UQ2hNY0c0ck9rak16bHVrNUVIbk5wZmlzWWQ2V0JGbkxLcTZmVzNKUmthdEc0MjVCVnRaS3hJMkJnV1JMVjJ4SFMrUTFDZkU1cXNTQnNHbVJodUpWUHIxTVpick11OGhZOFNyZkFnSWd5Tk5ENDhFR1EwWkFLNnB1MnRuMzkvNVVpODc5TmdFdnlGSzVtNGkyOVQ2eXEvL3Btc0N5K1NVWE40WE84Mm1sK2VsQjA0Nkdnb1N1K1BZT3Z2akdvVC9LNG9iNVZjRVN4c0RzMFBuWHpmdU9uSXNuYy9rNlJHYVl5U1VWVnkycnVIN1VuK2FXWEhoNjlYdi91dXMvdXVMYmJTaVVJTEd6LzhtbTBMbVRQeGNpbWxacVZlMUhHb3RYVFRxTWhJRG5WSG4rL2J3cXJ2S2M5d09CQlBrMEh0UVZ3eHJzam0vM2FhVUl6S2VWZHNXMkdTTGxWZ0pmUHIyME8yWXducHN6RE5FeXJXV1ZmZ0JBRUFCc1p0RVpMZUZYcEZPQ1FDaE1DNmZhSXVtT2tIdEdZUUNRMUx5NjR6czQwMjI0a2JqWm56cVFNQWE5YXNoK2lmS1hoREhZbDlxdkRoK1BSRlpEOFprMlBTY25XNm1uOFNQTGZ5OURWc2ZLN05ENUsydmUvM1RMZDdiM1BxWXJQaHNLR1NyN3c2OHVxN3hlNG5XVmIyR0plMGJlNXlNQlhUOFllWDFjUUpkWGI0OXV6bHBKdTlxRklOT3RCdXVEcDh0amVwTjdVMGJVdmlJaXk1anhpeG8rdDdMNmZhUE9WZ3F6WmdiUFdGRUZhVFBHbVpxblFSMGNuQ2FhVC9xdHhzcmhvc3dRU0dqY2M5V2NPeC9ZL3Ntc2xkQzRWeFJvaFFEZ1ZvS0NSRnZrOVFQaDF3SjZlV1B4T1l2THI2Z0xuQ1lkZkJKMnAxRWRaS2lHMHgwY09jOFhGMEJBMDhyTUs3bjQ2cmxmczUyVkovOXJNVVJHOGtSOHVDSXNDUkIrcmZ5cU9YZithc3Y3aVV3QVNSNEpoYnNPeFhjYUlxMHlGeHltWmc4YUlpVkp1dkUxUjBScFJWNWFIN3kwUGpqdUtSSVdxS2hsUklJaENqSTFYaXk5MWYrNnRHcWlxOHFKTkRONGhzcmNWT0N6U2htUnJ0ajJrSHNHRVVuOVZMNmd3VlI3T04yaE1LMGc2b0FZVXhQWmdkN0U3b2FpVmJaclJWYjY2SW52U21RSGJDZ1JaTG1VUUgzZ2RCaFpSRkpobXNKS1pGUXBqTm5mQ1lUT3ZWYzAzVGFRUE5DVDJLMHlONEVBSXM3VWdWU0xLVElLMHdWWkN0TWFpczdxVGV4VnVWc3lkd3B6OWFkYStwTDdLcnh6UnptczVOWGJoelppZ1dzbGF5YnFncWNWdVdya1cwaGtCNlIxTERjY0lVeTNHbHhRZWxtZXl1U0ZoSUhFZlpmaUx4eGVCd2VuemJGUXVINGtQQTFtTEpselFBUmVqWG1VY2VNVkdKRW85ODY1YWVGUEh0NzlwY0hVUWJjU1JHUWlkMEtRRzZDbWVCRXdZeWEySFByTDl0NUg2d0xMVjFUZE5LZmtBaXdJbTVxdVIxRlFwV0hxSFFVSWxic3ZidnlDeXR3V0dSelZ0OHIrSkhHcU1HS1dBeGRrRmJscVpvZk8yOWJ6aUZzTlN0YVZveExMOWcybHUwbzlqV045cjJQT3pCQVpBazJlS2JTei85bnUyQzZWdTNKS0NxQUZsb3Y3enFwNUx3SUtDVStZSytEQVVCRmtydXQ4S0cwbE9IQmJEVGVzVkZQbzdCbkI1WEptbFhtYlF1NFpBNmxXdFNBQnFTUDZ4cUx5SzBZYWt0QVoyNUl4NHg2MWFFVDVJa0JCWmtkMFMwUFJxbEdNYWx0MGt5UUhDUUNCWlVXeTJyZW8yRjBIWXpiYW5HTmh2RDFBVnR4Z3FDeXJ2UDZ4dmJkcjNDTWQ5Z3lWcEJGSkdBTkJ2VnBlZDA3SkJSdTZmMjgvQWtPV05wUDd3NjlXZU9lT2pKN0pXVmVINHMxcW5oeVVkclEwaXNmYmpXUm9ZU1pqeGIxYWlVVm1RV2o0TUtVOXlxWnhjSERhYkxGQ3hwNEJwQzA2OTA5N09xS0dybUltYWQ1K1h1M25scFdiWXB6eTZ4SUtxM3dMUHJEa1Z5OGMvTW1PdmlkTU02TXBIbzdxc09PZkJBRWdjaGsyMFRhMHNYWG85WWFpTXk5cStGeVpwMm5LNFc5VDl6alFzQklCekJTWmgzYjg4MVd6NzZ6Mkx6d0ZLaWtRVUgzdzlLMDlmeXQ4QlZrekhzMTBsM29hanoxVFc1Nmh1ZStKTFQxL3NaRUlBUTNLQkxYcU0ydHVHbWw5RTBQR2tGdGtydXU4TjVydFVWSExjN0k4WVF5NkZIMUdjRGtSRVZnYzFSbkJGVDJKM1pyVXBFaHdwbmVOcEFqejN0Vk5PRjU3WllacVozUnI0WXlWTTZjenVzVm0zeERSRXRtWlJXZktxUDVScjl0R2tueVRscEVxSVpFQXM5dzdSK09lQXAyUm1TS2ROcUpCdlZxaWFyVnZjYW03MFFaMDZTMXBDYTlaVmZ1aEVVdUpDQkVQeFhkRk16MmFZbE82UXVPZXh1TFZ0cmJvVVVOMkxZemMyN1NTYTlydnZtcjJIUndWcWIyT1N2SWJSWUM4QlF5Y3QyNXd6MURXaXFYTlNNYUtwYzIwU1pQREtKSHdxS0YzTlgzMS9ZdC91YVRpR29YcFNTTnNXQ2tBekljajVOaGZBdElVcjFzSnRFYlcvM2JyaDV2N24yTElDcmY5WTJZSnpjS0pJdFdsb1hUblF6dithZS9naXd6NU5GN3JUZEVURVRBME1seEpMdmlFTVRpTkY5SVZuMWNOZWRSaSs4ZXJoanhxMFZqdGthSENnQU9RUnkwYSs1VlJpVWtOeGF2dE5VOUFDdFBDNmZad3FrMmFwWG52YXFZN051eGRIVFpUaUZTbTl5WDNKNHhCR1Q4a0MxdEdNNGY2ay91VlBEbElKQlRta2h6b2VBbkNRdVFUZUljamsvSS9uS2tNbFlCZXdRdE1jZ1FRSkV6SzJ0dzNaMnBUNkR4VHBPMnVCaXB6OWNSM0R5UmJwSWt6Yk1jQ3RBMXRzQ2liZDJRelU2UkxQYlBLUEUweW1scXF5YlpGTDgrbUs3NmRmWDkvWU1jbkRrVFcyU3RJUmgyTis3Sk9hbjJRSVJka1pNd1luSkI0a1drWEJSRVpLb2dXTzN3NW1seUFGVkdWYitFVnN4Y09aYnAzOVQrOWUrQzVuc1NldEpuU3VGdE82OXdDSUVFQUxzVnZDZVBoM1Y4Q3dQbWxsMHlMZ1V3a1BHcFIwb2dBa0N3b0lLZWp5ajFDR0gvZTljVjNOWDFsY2ZsVmIyR3RFQUVBUEdxUjVEb0xIejFqeHFlWEtwRUVwYTBQMnIvbmt2eHlFSU81TURjQlFuNEZtSzNhRkNZbVNjV3QxcjgwcUZjbWpMQ3NnaU5iS1hURXRwUjRHaWhYSkJGN0Uvc2k2VTZGYVlDWU5ST3pRK2NuamNHdStBNk51WkVwQ2FPL083NmpxZmpjdkZlQmQ4YTJKbzJJWkFrUTBCU1prTHV1MGpzUHhuU1l5Zm1PRVRKV3ZDZSt1eSs1TDVMdVNocURXWkVDRWlyM2VOV1NNaytqV3kxQ1lBQXk5WkRHcGRUbmxWNzhldGY5QlZ3blQ1clJ2WU12bG5wbTJTbzVRd1pBYlVNYkMzVlZVMlFhaTFmSi9WakdyZ2YxcW9haXM1cjdublRuS3lGSktPeUlidm5EemsvVitKZk1MNzJrS1hSZVVLK3lOZGxSSzBVNVdlY3FBNFMwR1ZXWXRxenlIMVR1T2Q0K1Nydit4MGhzR3Q4ck1zVWFXMVR3TTFXWEMrWTJ3NkJlZFdiTkI4NnN1YVVydG1QM3dMTzdCNTRiVExXcDNLVXlsNjJPQ2JJWVUxUndQN0h2em5MdjdCTDNqR09FUW9ZOFlVYVhWLzVEZlhERjMvWjgyYkJTR3ZmSXl4RlpEQlVWMmFON2J6ZEUrclRLRzk2eVVJZ0FvREFYWjZvcE1namNmai9XOGU5OGttdHVoOHdVV1lzTUhmVTB4YVRiMUNMRDFub211bk81dkdzRHk3YjNQVjVRbXdQYmhqWXVyYmhXcW5nSTBCN2RhSWlVeWwwQVlJck12TktMWlY2d3pyMXkyclFQYld3cVB0Yys3OEdoRFlWR3BTRXk5Y0dWbkdtalhyRk0raHhJSHRoNDZQZjdCMStOWmc5WklpdFQzVzNYczZ3Y3JuSTNSeFhIQTBGN3k2L3d6cTcyTDJxUHZxRnhyOXpnT2RQMkRyNTBWczJISk9MTEpSOUpkL1ltOTlxNnJkUWNtNHJQRzlaVkVRRG92UHAvUEJCZWE0aTB5dlQ4akJVYTl3QkJaMnhyMjlER05XMTNOUlNmdGFUOG1wbEZaeUJLVm4wNEM0Q2RmSk1VR1hKRHBESm12Q2wwN3ZzWDMzUEJ6SC9OaitseEZJNW94Ni9hUDdrcTZnVS9ESStnVURBVy9Cd1IxV2dIVGdOZ3RYL1JCVFAvOVVOTDc3Kzg2YitDZWxYU2lJd2tVQVJuV3NhTXY5ejJ2OU9TMmlHRDc1cEM1OTI4K081aWQzM0tqTnFKZmJMMGc4NTlUKzc3NXFidS8zdExHOGk1UUhjYWp4bzliZ2lvTUgwbzA5VWFXZWRTZ2hjMmZFYmw3bmkyWCtmZTFYVWZSY0FEa2JXeFRBOW42bVI5RVlBQVlGYnh1Y1BkQzBrb1RPK083ekJFMnFiQURnNXRrREdlZ29UT2ZYV0I1YlgrcFpnSEY0WHBiVU52RUlrOEwybDBScmZZWGdpWmh0RVVPbmNjNXcvZ3VzN2YzcmYxZ3h1NmZwOHcralhtOGFqRkhyWElyUVJkU3NDbEJOeEswS09HUEdvUnozZThtVVJaQnNENXBaZFp3c2hoS0FtTnVYc1N1dzhsZGtHQkRkc1czWlF5aGpncWtBK1BML1hNcXZUTnN5bE9CRVpBSWZlTWErZCtrNk9TTm1QNU5KSmN6d25aN2RhazdJNitKMzYvODE4ZTJQNkpsdkNyTWgvVUhtcmxaSnVkbHNobXpFU1ZiK0haZFIrZFUzSUJqRmU2WjlwbktDQTh1Q2ZjSGMrNlZhNHdVQm1xakdrY1ZXYi9nSkwvM2FXd2VjVXVQZ1hNeVFvaVFWbEJaSkZGZEtSNFpBZE9FNUJMOFMrdmZQZUMwc3RlYXZ2NXh1NC95TWFWTnAybks3Nzk0VmNHVXdkSHhaRWROUlFTaVFydjNKc1gzZlhYM2YvUkdsbHZGMTYxWXc2ZWJQa21aK3JTaW10UG1RTFVKOFpCZzhDZWEvMSt0WC94MG9wclp4YWQyUkhkWE9OZlhPU3FEYWM3WG1qOXNjSjBvTVB3eUFBd3MyaWxUeStUbVJLU0lveWtPM3ZpdTJvRHl4QlpQTnQvS040czA1eE5rU24xTkFUMFNvYUtUeXMxckxTc3VkS2ZhaGxNdDVXNFp3SkFYMkxmWUtxTjUwSmYwUkxaSWxkTnJYK3BiWW5iYS9ENTFoKzkwbjZYUncxNTFPSmNwaHFocExaRnJvZE1Ubzg1TEdFdEgyUnV5WVd2dE4rVk1ST0lYREtiaHBuYTFmOTBsVytCYmYrMWhGKzFiWE5KZmM0cVBsdm1teGE0aGhpUmFDaGU5ZjdGOXp6ZDhwMjJvUTJNcVJyeklLTGQ3d3lCdVpVZ0ViVVBiV29iMnJpczRycUxHNytnNUo5YU9Ya1FVSkNWTkNJQnZlTGNHZjkwV3VVTnVkQW5PZ0Z0TndBQnZySGgwUGFEVWRDVjRZbUlCZVl4NWh0bEN5cjJxaTBmV0Zpazg0bkN6T1NIR3NPbnJtbktXb1FJSktqR3J3RUFQL0txMWZsSzF5Ukk2SXIva3NaLzg2b2xMN1g5ekE3WmgzelJqdGJJK3NJNHNtTnpUakZMWkQxcThZMExmdlR3N3YvYVBmQ01YU0JFemh1ZCs1N1k5eldOZStlWFh1SkE0WlJubWxDNWV5RForbjg3UDMxUnd4ZXEvUXVEWlZXV01MYjFQdkp5MnkvaTJYNDd5R2F5TFFxRVJ3M1YrSmZzR1hqT3BmZ0ZFUUl6UmViZzBJYmF3RElBNklodFRtUUgzR3BRNG1CZDREUUE4R21sRmQ3NUJ5S3Y2WXFQQVVzYTRiYWhEUklIRHc2OUxvMW9RWlpFb3ZyZ0NobGtMcGVlakVabzduL3ExZlo3ZkZxWnpCMjJKMG5XVENsTTA3aFg1VG9BV3BUTldBbkx5bXJjZTlpOTFxTVdONFhPZTZQN2oyNjFTR1lOcTl5OWQvQ2xjK28vSVhFOGJVWTdvMXRVNWhiRFJyRmJxa2M0dXBLcmpEK2JmZlBpdTNmMi9YM1RvVDkyeGJaWklxdHlqM1NJNWQwN3VSQzBEZDBQRFdXNnI1Ly8veFNtMGNtZ0QrYXB3SmpDOU5PcjM3T3E5bGEvVmo2c0JoWThyS3hTS2Z2WTJCWEE4N2lEeDNJSEFPQlRtZUpSdWNaRXZsREpLR05FSGlsTTBEbE9wVm82UTFoYzRoNFhJby91THFXWGtFaXNydnZJd2VpR3RxRU5rbGl4RCtoTDdwdk85NEpjMmx6WHpmdjJJM3Urc3FQdjhWRlFxSEwzbzN1KzZsR0taaFN0ZEtCd3lzNFRTMU84WGZFZEQrNzRaTG1uU2VYdVNMb3JuRzVYbVg1WUVNeWZnUkJoZHVpOFhmM1BRSjZWNDZpMkRxMWZYZmNSQkd3SnZ3cDViekpEM2xCOGx2eGlRL0ZaKzhNdlM4Nk9JVzhKdjdhODh0MHd1aUVmSWJMWm9mTmh1TFFsTVVSVFpGNXB2MXZqN3VGWUdXUlpLeG5VcXhhVlgxa2ZXQkhRSzNUdUJVVERTaVdNZ1k3bzVwZmJmcEdmOHBOcHVFdktyOTdhODhpd080N3BBNm5XMXNqNjJhSHpBS0J0YUZNczIrTlMvSUlFQWpORXN0SzNvTUlyYXl1dzhXaEhnY0FXbEwxelFkazcyNFkyN3V4L3NpWDh5bEM2aXpNdEg4Y2pPeUNDWHkvZk8vakNTd2QvZWxIRDU0bUU4cVlpSU1yUkZHVE9LajczblBxUHk0YXdjbEdOaXNnVFJEd2ZxUS9BeDZkTzhpK3AwS2RobDUrYkNJWGtwN0ppSjRuSmVnWXpBQ0pRRU5uVU5GU1JhN2NKQk1SZ0duclQybFhlRnBSZWRpRDhHbkswNjhVelpIRmpzczY1UjZjVnlqTmZQZmRyQURBS0NobHlRdkdYM2Y5KzgrSzd5anhOeDUyK09IV2dVRWh0cXl1K2cwaHdwcm9VUHhCTnNkcU5IT1NHb2xVK3JkU3dVbks3VXJtcko3NDdtdW4yYXhWdFE1c1U3aUlnU3hoK3Jiekd2elNIZzhHek5PNlZIbUdWdWJ0aTIyUVYxVVB4blRLREV3Qk5rUTNxMWJMR0RCc3Vuc282WTlzR2txMnl6RERrQTd4ci9JdXZtL3NkcnpZaXg4NnRCQU42WmJHcjlwWDJYMXI1cWcyVHpLNXEvNkxhd05MMm9VMzVreU1DN09oOVRPTGd2dkJMbEMvaUx5dTJ6Z205QTVGTnRPOUtSa2cyQkplTks1SkdlTS9BODV0Ny90d2QzNmx4TDh2NzRpMWhlTlRRNXA2L3JxaTZxY2hWKzZaTlhCazRtalRDcFo3RzYrWjk5NFlGUDZqeUxiQ3I1UlFlYVJHaExHUVVUZCt6WTZoMXFIWGY0TE1kMGExOXlmMnhURS9hakZwazJLZzZvdUtMakdrQ1Z0Q1poUXJLRm8wQVBFTk1sYitUeFdTbTlvekFNZGV3Y1ZyNzdhQlBLeXRzcWlzL05LMk1yU1BiUzg2dVFYUnN5SXRYemJselh1bkZ5Vnk0aHMzUWExa3I4WmRkLzVZMHduWmhwWW4xR09zWWIrWlVna0lBMExoSFYzd0thcFAzakI3WG92UnBwWFdCNVlaSTVXc0ZLaWtqM0JIZDBwL2NIMDYzS1V5WExvV2F3QkszRXBESlRxV2Vobkx2YkZPa0FaRXpOWnJ0Nlk3djZJN3RpR2Y3ZVM0RWh4bFdhbWJSR1RyMzJlZ2piNnduc2RzaW82QWtFaUd5U3hxLzZOVktMR0hrS3YwQkVaQWtDdE5tZE1yamdFc3JyckVSVTVDbGNVOUxaRzAwMDIwSm96V3lYdVh1ZlBpMDZWSUNzdURnWVJKK2JHS2RMSTlhdkt6eStnOHMrZlZsczc0a3lUZjdLUmp5dEJrN0VGbjM1dmhKNUE2V05DSit2ZnpjK2srdXFMcFJzcFZBb3hGUUpxVnh4SVFwZnZoRzcvYzJkUThPNldmUGZPSGQ5VDlKVzBHVkt3cHFLbmRyM0tOenI2NEVYSXJmclJTNTFZQmJLWElyUWJjYWRDbCtuZnMwN3RXNFIyVXVSRFlLa1NnWDVBbFQ5bU9RZ25nY3VvaFJQcDFyQ3QxcWdESm1uSVlUS20yQVZ1MW5JckNiNlVBaDFYMjBVRWdNMmRWenZwNHg0NjFEcjd2elRUc0ZXUnIzRHFSYS83Ym55emN1K0ZFK2EybWN5RnZaTmVMWWIrWXR4Z2RPQVEyUDZyeUVBSE5MTHR6Vi96VG1Bck1Ja2U4UHIrbFB0dGhMblVqTUtqNGJjdUVzeEpBM0ZxL3VpRzZXekIwQzdoNTRYaFJVSVpNbmtVQXpLcWttV1JCaGpvQW1HWDZ0b3RoVlQwQ2NLV09iTHVIVVNCSVpIamduZEVHSloyWTBjMGlXeG1Lb3hMUDl1d2Vlci9UTmo2UTdaRzBGV1RxaHNYaDF5RjAvUlUrZzdSK1hDZFNuVmQ3Z1Uwdi91dnMvR0J2MkFTREFRT3JBaWNaQkJBYUlHVE9tTU8zMHFwdk9xcjAxb0ZjVVVJRTQwcUxNZGVwNmNIZjRqblhkdTNvVG9DTjNzNkdzVjFjQ0Zya1FMSk15aHBGT1pQdmxMaVRyblVFdTE0Y2hjbzRLWjVyS2RKVzdOZTUxS1Q2ZEI5eHF3S1VFenFoK3YwOHJsZTBaQlpFaHBzYmVFU2dNSnNMQlNYeGs0L2J1c3IvRmtFdDh6azNpQ1RvZkVnZ0N3WUMzUkY0dEhDNVpXczZyaHZMVG1lejRpY0ZVbThaZHRZRmxZNnNRSHlFVUNvWHAxODc3OWdQYlB0R2ZhckdidUFzeTNVclIvdkNhNTF0L2VGSEQ1OFlhTERMVjJoVFpnME92UnpQZGJpVllIMXpoVVVOdmtYb05SeS81Y3ZuSGpxWTBrV25zMXl2VFpsVFdvTlVWWDJ0a0hVUEZ4ZjNTZ2V0VlF6T0RaK1NPSndLQXB1SnpYK3Y0bFZUZmRPN2JNL0NjL0tVZ2ZMcSswQ2llaEZFbnNtZ2FvcVpRMWxWYVhIYmxDd2QvcktvdW1TeW9jYy8yM3NjT0RtM2dkaDB3UUVGV3JrWHRlSjdBZkFzNkhOc1dTanFqQlZselNpNG84OHpxUys3UEZZQUFBTUMwR1R1Uk9JZ01XZFpLQ1RJYWk4OCtwKzdqc2pPdklJc2hHMFVGV3Jra1hIeWxPM0hiYTEzUHRnNEJSOVdqRWxtbVNhYlFMVUVBMGtuUEdRS2drbmVZNExpTVlkWktwcTA0VVk5MDloT1JSY2I4MHN0OFdta3VWb0RBRWpSRk40YVNUdzRacjQ3V2tma0tKR3BzN1gxNGUrL2pxMnB2blJGY3FUQnQ3UDNuUzU0eUJNYVI3UnA0cHJudktSZjNGOEl1QVpWN1p3T0FBSXVER2tsM1BycjN0bzdvWmpuRmRjVjNkdDFIejZ6NXdHR0xDRXl5aHhFSnR4SzhmdjUzNzkvNjBZd1ZzN05OQkpsZU5iUys4N2VWdnZrTHl5NHZoRUo1ODkyeEhZL3R1NzB2MlNLRFYzMXE2WVVObjExWWR2bEpYci9yR0tYWVZUY2REQURLTGt0alRXTzNHbXdvT210cno4TjJIb2doTWdCcHFWSVlacXErK0RTL1hwR2ZQd2hBRmQ2NTVaN1pzaElNSUdSRnlrWlZSR2FZNlZuRjU4aEEvVkV6V1ZhaXROOHBaMm9zMnp1UVBsanRXMlNSd1dCRXJEVk5xaENNaStsTEtxN2UwUDJRSVZJSU1oTElOWmc2T0pBNmtHL25oS2JJQmwzVk1xcHhYSXkyNDh3Z0gybzJDaWR6eHJMTjJJK2tGRThFRGpMa2xqQ1M1bENGYjk3WnRSK2RWM3F4NURJQjJWZ3FVTVl6SDRobTcxelgvZXZtQWJKSTBSVUNNb1gwRkZOR2FBTDRNRk5SOFA4MHNTV3V5Sy9rNFhKVVMwelpRSGJLKy96NFM5Y1MyYTI5ZnpPczlCaUxEeTNLemkyNXFOaFZPMnJseXlOMzlUL2RFbjYxSzdhdHhEMXpWdWljaHFKVnBaNUdyeG9hMVl0U2tEbVlPcml0OTlHTjNiOW5qTk5JUE5VVmY2NHNKWEJEcEIvZS9hV08yQmF2V21JWHJYbXE1VHN1SmJpMDRwcWpONUNSQ2JLS1hYVlh6LzM2NzNmOEM4dFJTTGs4UDAzeFBiWC9XeFhldWFXZXhueGZIa0tBV0xidlQ3dStFTS8ydXBXZ1BEaGpKZjYyNTh0ZXJXUm04SXhUMGtDV3I3amF2N2l3YnVoUmFZSkNZVnFadDJuY1BSNEJGcFJldXEzM2taRnQxSmxNMmhOa3pncWRtemUyT09SYkQ4NEtuZE1aMnlvcndZeXNqeUFVcHM4dnZYUmNWMXZJWFQvUzFFVUFldjdBRDYrZDkrMmNGVkx3QitrdG1mcFlDUkkrcld4KzZhV3ZkejJRTDB0QmlKemw2KzdJYWpSTEtxNXlLWUV4SlVVSUFETlcvTkU5dDlYNEZ6Y1duMTNxYVp5SXdOL2E4M0Ivc2tYbHJvTFVNWklGUFk4dkRnNVRnVnJaMmZVZk83M3FKb1c1cEpxRG94RXc1MCtJR2VJSGIvVDh6NmJlU01KZ091ZDh1TDBERVFKU1ZtZ1djVHl5NlRVYUxrZjVTU3dDa3dpbWNsSUNOVmRQZkVRM1lWbnc3dm5XSHlXTXNETFNnNEhJMG1hMDJGMWY3S3ExSjZYTm1nMmtXcnRpMi8xNk9RQU1wQTcydE85WjMvbGJqMXJpMThxOGFraFhmQXhWSWl0dFJhT1pua2k2TTJQR2RNVmZ1S2N4VkpKR2VHSFo1U0gzREl0TWpzcit3VmM2WTF0OVdxa2xESHNyY25IZjYxMFBMQ3AvMTdFVXpwSk04NHpnNlJjM2ZQN3YrNzl1MThXVXRSZ3ladnp4ZlhlOGI5RmRrbmVYRDd1OTk5R2hkS2RQTDdOdlJtRzZLZEt2ZC81T1dtMm5uc2pOcTlxL01PU3FpMlM2RkR3YU5NU2NFbFJUNFowNzFqTWdGWWk2NElwU1QyTTQxYVlNbCtFaUFMRElkS3RGalVXckNyOG8wVzEyNkx5MUhiOGFSVTNLa0pRcTM4SXEzNEpSSVNueTl4cmZFcThha3ZxYWZMTXE5M1RFdHZ4bTY0Zm1sMTVTNDEvaTA4b1VwZ215VEpISm1QSGU1TjVDajhUaG5oUUFZRVhWamR0Ni8xYWdTQlpnRlFtVmFZdktyaGhyaEVuN0pwTHUzRFB3L082QjUxNXAvMld4dTc3Q095ZmtucEhyVXd4b2lGUTBjNmdqdXFWMWFEMGYxUXNJc01hLzVEamlJQUpEeExRWlU1aDJXdFVOcTJzL0hOQXJEMHNGM3I5cjhNNTEzWHY2VXFCenhhM0lqaXlqSGp4ajZVSXdob0ttejZTeUJKbGlTbE1UQUJTT0FPTVU2MFJBV1UyRWo4RkJqb295Qm4wa3piRjM0SVcwR1pPQW9qSmRobWlseldqU0dNemwyQk1CSWdKanFDaE1jK2MzVEhzOW1DTHQxVUxuei9nbnlxY3k5eWYyUVVIUmpwd3V3TlNFMFovSURnVDB5bU5SVWlRVW5sWjFRM2Q4NTVhZXY5cDFwYVJPMmg1OVkwM2JMOTR4ODFQMk11aFB0akNtRnQ2TTdJUVhTWGRad3VCTVBWemQwN2NrRWdxeUZPWmFXSGI1OHdkL3JLcHVPdkxNWlVSdW1LbjVKUmVQYTZoQ3JybUtOcmZrb3BmYmZpNExtdHJ6TFd2R0c0ck9LbkxWRkpicGxSMkx5ajF6eWoxekRpVjJGWEJrdVpDVStXV1hqUTFKa1RhNFZ5dFpVSHJadXM3ZjJQdVpaUEVTMmY1WDIrOWx5RG5UN0E1TkZwa0VwT2ZpcUdrS1Q4cUlSTWc5WTI3SlJWdDcvaWJOL01LL1pzMWtUV0JKbFg4UmpRa2JsSHB4YjJJUElQclVrQ215L2NtV252aXVYUHZ2ZkdWYVdSTmJ0aXEycDNIV1NwWjVtbVlVcmFUajA3ODRSd1ZhWk13cVhuMU8zY2VyL1lzUFN3VyszQm4vNnRxdUYxcWpvRERWbzhnSWkvSE9UU2FwSnFrNlN4T3g2VW9JdFNnUHVGTTRuOG9RSmxpN01pNEVDL0lXSVZlUGZXeXdDREZrcHNoczczdGM1VzRaMlVOQWNqWXpWRGlxaFkyUWJLN1FuaUtTRU1sYUNZYjg2amxmSzVMS0pqQUE0QVVrNHdnSUF6N1JuNDdVUUNZUWx6UitzVHUrY3pEVldoalo0RkdMMTNYK3BxRjQxWXpnNlpZd09MSTgwbzFXcXpuanA3RExXTklDeXl0djJOenoxNlF4eUZHYllqOXJXNDB3UmNhdlY2eW91b2ttS1BncUZiMkZaZTk4dmV0M1k0dXQ1bUtoQyt3UDJ6UnVDcDNYRWRzaVRlTzhIbUQ0dExKNUpSZkR1SzF2RUFsb2RkMUhXeUt2RHFiYTNFcFFScW9SQ1k2cVI4M1Yxb2RjQ1FsUTBDV3BwN0U2eE9TeXN2cm01djZueG43UkltTngrWlh5bk9ONm9uc1RlMlVyT3dDUXlzUzQ3cWJDT3Q0V1pRVlpGelo4Vm1VdUlqSE5FNUVoSjdLU1JsaW1QZCs0NE1mVi9zV1N0bVRENWRGejBJTUFDc1A5UTVrUFB0VjYzaC8zdk5BV1ZWd0tWOUFVazhTd2tDRVVReWdBTkkxQmFLWUFhNHI2SlpIS3BrRjVrVGVmc1JJNjk1c2ltelNIaUt4YzUwTmttSDl0ZHVHbWZDL0s0UmhKaTh5RU1SQjBWZCswOEtjTlJhc0ttK25VQlU1aitSUjBtUS9JbVpLMUVtV2VXVjYxZUNSSGlhUGE3STJLWUo5UUx5YlF1T2VLMlYrVjgxSldwV0RJSmRRKzAvTC9USkdSYWtWOWNJVWxqUHk5eVp0Uk0xYWkycitZSVJjMG1aOStiQmZBaVR4UjR6ekY0VjduZUY5aDQyM3FSM3ptL0JDUld3MWUzUEQ1ckpVNm90NSs4dGlzbGJ5azRZdGVyVVR5UVJONXJrTHVHVE9DS3cwcnpaa21lNnNUa0VjdG5oVTZHOGJweDRRQU1MdmtIWkpha1krak1DMHJVck5ENS91MFVydkw4RmdJODZoRjE4LzdYc2hkSHpmNjVYS1dLNXBJMkMxTmhzTUxpUXFyRXdLUUlUS1R4QW5aV1hGelNpNlVoUklLeVlFaVY4M2Nrb3ZHOVpBd1pBUWlYeThIR1hKWnNZbElpSUlmSWdFRTl2eEptUkVBdkhyTzF4cUxWOHVGbzB6akJnaEVTU1BpMDBwWDEzMzA5S3FiVk83T1U0RnNsUElsKzU1R3M5Yi92Tkg3L1UyOTBhVEJYSnlCTW5rUW55eHhid3JWSkFXblNST1VaekdKckNtZmIxcHdVTTR0cnhwNi8rSzc5NFhYN09oN3JDTzZPWjd0RnlRWUtwd3BjbG5tc1VPT2k3RElzb1FoaEFHSVJYck5tVFczckt5KzJlNG9acytuMnNEUzVaVTNyT3Y4alZzTk1sU0FLR25FWE54Ly9zeC9rZW9wRERmSk5aTkdtT1dyZ3pEa0NTT2N0WkpUOUpsVStSYWVVL2V4Si9kL3M3QUtKa1BsNE5ENnAxcStmWG5UVndqRS9KSkxtMHVlMnRYL2pGc05TcjQ0bGcyWGVocFcxMzZFNERETzY0d1pTeHBoazdMU2FTaklwSkVwUXpiVG1qUWlacDY5a21XYzgvMHpKM3J2bERRaWhwV1VRUlg1cjZUR0tQaG0wZ2piQkora2V1MTZvbE13OTZ3NUpSZThZK2Fubmovd0E0OWFQSlVLUGZLWWxCRzV0UEhmNTVWZVBIbkNvclFLbDFaY3M3M3ZNUUdtMVA3U1puUkI2YVZCdlhwc1pKSXN6VkxtYVN6enpHb0p2eWI3M3NrdU44c3FyNXZFR3BMV2NhbW40ZjJMNzEzVDlvdWQvVThtamJDc3JzbFFZWkRMZjVWVitBa0tteXdUUTlYRnZTV2VtYnJpTyt4eVhGVjc2Lzd3R2pIQ3hrK3NxTHBSZGlVZWJ5aFFFdFlaS3hiTDlKZ2lhMi9KbUw4cklCQWdCRmtXR1VUQ3BRVG1sMTV5VHQzSFN6Mno3SVdqVE1lU3psR0JuS25MSzkrOXV1N0RzdDZoekc2WmlBcThyM25nem5XSDl2Y25RVmR5Vk9CVW9BM0pKTVVRR3VKMFppV1lPU0lTcDQ2RE5FMnNGaUtiSFRwdmR1aThSTGEvTTdhdEk3YWxMN0Z2S05PZE1vZE1LMjJTYVNNVVo1cEhDZnExOG5MdjdCbkJsVE9MenBTOVpzYjJ0U0dnUzJmOWU1R3JlbHZ2bzBsamtLRmE3ejM5dkJuL21HditrRU5NQklBaVYvVVZzMitYVGtiYkhLdnd6WUVwdEFhVnpmYk9yTG5GcTRZc01qQ2ZzWlN2Z3Njc2tWV1l4cGw2N2J4dnJXbTdhOC9BQzJrcnBqSjlUc2tGNzVqeHo1S214QW1USFJFQVZ0VitaSEhaVll3cHVlQndFZ3JUTk9hMkQ1RC91cFhnNVUzL2xXY2tDWUNaSWxNWFhEN3VVOGl2dUJUL081ditVd2hMdHJ1U1g2a05MSVhoT0JJRWdHSlg3Wld6NzJCbzF5aEVTeGd5KzNNcVJyM0UvZFcxSDFhWTlrTHJqMldVSDR3WDJHRUh2bVhNT0VQbDhsbGZPYTNxM1lmTjJwWi9iU2hlZGYyODc1b2lJK056VFN0ZEcxaGU0SUVZNTc0dWF2amNndElkQ25jQmtTRFRyUmJKSnBhVGJFdVNEUEdvUlpmTyt2Y3phei9RRW42MU03WjFNTldXTk1LR1NNbTRlZ2FjTTFWaHVzWjlYclU0b0ZlVnVHZUUzRE9LWGJVQnZVckcrVTg0YmdnRTRGVkRLbk5sekxnZDlPZFMvRXNxcnAzazNqZ3FGelY4N3R6NlQzYkZ0N2NQYmVwSjdJbGxlakpXVERicUFpQ0dpc3BjYnFXbzJGMVg3Vi9VVUhTV0xEQlJ1SENRaUI3WjgrWHR2WSs1UjdaME9WSXFzTEhvckhQcVB5NlRHU1VWQ0NNYVdkbFVJRHpmRWJ0dGJmZkxCNk9nTUZWbGxqZ3lDNWNBdjdEd1d6TzhyUm1oSDdWV0tNaTZaY212S3J4ekxCSWMyZjZoeklMZk5XY3RZcE9la1NPYWFmTzYrYUUvdjZ0Umh2aU1jTjZiOFhzMjM1UTBJbVA5SkJrejl1NEZQMmdxSHI4OTd0aVd4S1pJcDR5aHRCVXpyTFFnQ3hFVjFEVEY1MWFDaFgyMnhvN3oyTWRNR0FNS2FtNjFDTWIwcGpsUmt0c3dUSkZKR1JHTmUzUUozNmQwOE9Dbzk0dklPcUp2dkhqd3ArM1J6VElpbmFNcXVRTEsreFpNa1ViQXVzQnA3NWo1cVJyL2twTXpvbWlzaFplMWtvWklTZWhnd0JsVEZLYkxhakZIdUNSTmhzcnpyVDk2cmVOZTZUWmt5Rk5tZEg3cHBkZk8vZWJrb3pIcXJ6SmsyQlNaSERvalY1bGI0NTVDQXlMUEd1WGs2UFZCT3lxdzNEdDdkZTFIRnBTOU03ZWtFU2VLQ3R3VHlkeTVydnYrWFFNZ1FIRXJkQ1JSZS9hZVFhUmtMUTF6Nitqb2RjTENLNXN5cis3d3BmT256UzRlVFNrVThMaUlUR0V1dis3eVE4VkU2R1p6WjVOalBVT2VLOTR6WVFXejRRYU1ZM1dUcVc4cWsyZ3JrSGNqS2t6MzU5T0hKa3FZR1R1L3g2cjk0ejcxMkh1WUpJRm40cS9nR0lwd3ZQRTUzSm5ISmI5cUE4dHZYdnpML2VFMXpmMVBkOGEyeGpKOXBwV1FQSnJLWEFHdHZOcS9lSDdwcFUzRFFYOUgvd3JHZTVERERPd1VVd0J5SmRNTGtqYzA3aW1FbUVLc3lmVUpzUDgzM0dPbndKbWJteEFXUjdVcnRtMWo5ME11SlpBdktFME1sWlhWNzUzYUNzcjFqWkxQcm5PdlBxYndWNDVrSDI5d2xLTmN0emtxc0dSVjNZZFByM3F2ZGpncU1KS3h2cmVwNXdlYmUrTkprN2s0QTdURTBVSVlzYXpRRWVrWTdWSy94aWlIMFdBS0VnUU1DbnBHakloMnpnOFdRMkxvVW83TExsMFlFSjhQZEtTeE1EeFJ5OFFKWU1odUlzOG1Na0NQdlY3V0ZNNlF5MjJpQXR5ZjRrekRhYnVIby9zS1RrczlNUW1GaUd4VzhUbXppczh4UkRxY2JvK211MDJSMGJqWHI1Y1g2VFZxM3N0NUZKcmdrZDdrMUFkMnFuTjF4Ri9sWkdVNHhTbUh5SUgxSnZiOGRmZVhKRzlESktReU9LZmtnaW1yeGppeWRNQ0l1OHJkMHNSUHJSejU4N08wR2VPb0xxdTgvdXphandSZDFiYnFNUzRWU0FEMzdoeTRjMTEzNjBCNk9DcndxTXVmSUFHeGpOQ1BKV0lHQVN5aVo5cWoxODRDalhHTEtHc1IyUTVqbTRnZkUwbGpNSVNra1RaRjdvODQzdlRLeFFiUnFBK1B1RGcvak5jZTVTZ0c3Q1F5cXZCdFlRWlBydldUQUFDVnVjbzlzOHM5czhlbFI5NXE0VVJUZmEzU2dodE1IZHcxOEd4OTREUy9YcUZ4dHlteTBjeWgvWU5yM2pqMHA2eVZVUEpGR0tVQmNVN2R4MC9NWkpzNkRxSXN5Mk5TdHFIb3JIUHFQaUZKWlVsUmpXem1Ba0tRelB0OXRqMzIxYlZkcjdiRkRoTVZlSVJQbUxGMFBLWjBKZEE1KytpemJUL2VYUEtOczB2T3JQUXRMbkd0Zjg4OFFXQVFtSUlNK1dQbGZza0tNbVM0RVZFaVl5MHQ5d0NNdTlsUnhveG56QmhIdFRCWURKR256Wmc0L2oyQVRrMXlEVUFTeUpQVStKSHNNK0tJWTJUVmpWRWZUa1ZrMEFLYjJHVXc3dVdPQ0ExSE52L042ekxIR2Y2a2FvS0E3RTNhanFRNysrRFFoci92KzNwQXIxQ1ptek5Oa0preDQ0Wkk2OXhyZ3lCbmFqelRkMDc5eHl1OGM2YTNOL2N4NGFCTkJaWjVtbGJYZldSaDJlVVRVb0dDWkpEVnJuRDZ2OWQxUDdSckVPZ29xY0NKaHhNemxuN3Nxb1ZQNWM4ZGlKN2QxZi9oQldWZk9iTnlaWVgzQ0MyUjBhYUF5dDNYenYxMllabTJRZzY0eXIvb2lFeENSK3lSUFN6YzRIaEozMnhpdzJ4eU9ickxIVEVlSG5ORlNybWVwbjRqYkx5U2FDZEdDcGYrb1hpelJ5MVdtY3VrckdHbUVWQmhtc3BkSXQrWWlhT2FOTUl6aWxhZVhmY3hJc0ZPaUJXaFRKRUs5R29sWjlWK2FHWDFlelhaSVdnOEtwQWpjb2FER2V1N0czdCt2TGsza1RLWmkrT3hVSUVUU0VhNGp2MGtSSUs3R0NEZXZibjNqM3ZEbnoydC9OUEx5b01hTndVSkFJN2pNUjgyMTRYanpqTmxadEVaaHlVV0hHaWJ1aVlJQUVNWmEydGZrbk4yUm9WbnJJZEtFREhFL1VPWm4yenFtVkhzK3N5eWNzcng2N2krSi9IZ3R2N1RhdjIzekF2Snc2WnlVVVBRdXA2a3NNVFNjazlBNDZPUVE1NW4zMURtcHdXWGU3UGU2TlFSVU43a3pzRjBmOXlvTDlKbkJyUVRmTnY1VytVQTFKdllLK1BuRVZpQmg5REtzNVlzWVF5VWUrZGVPL2RiK2FUcEUzR25iSklWeTVCbnpJUWhNc3Nxci8zZ2tsK2ZYZmRSdTY1M0lRZ0tBb3VBSXdxQXU3YjNuL2E3NW0rOTJwV3dTSEVyTXFSeTJtODZiZW5IZmhLVEZNdGlCS0M1ZWRnd3YvcHkyNnJmNzN4d2Q3L0NVTXR0bmVOMDhsUW1MVVpkbUFFeTZnZmU5a1dZajFRc1FRand6UTJIem4rZytad0htcDg0R0pVRzZWaXNQQkROL21CTjUxMDcrZ3UxanpmNlVqOTRzZVAvOWtWZ2FrTXZzNWdlT1RCMDdnUE41ei9RL0oyTlBUaTF5NzFac2p1U2JvMW1wL0owY2czKzJ5dGQ1LzlxKzgrMzk4R1k1enJlbTFsckxMc3JuQUtBd1ZSN2IzS3Z3alJFWk1qeVA3azBqNnlWVEJxRFRhSHozcnZvWno2dGpFQ2NNTDFCbVpnS1RKc2lNN1BvakhQcVAxRVhXRDRSRldoSEJUN1ZGcjN0dGU2MUhkTkxCVTZnRDFyVG9BOEd0Y2lBa2pRQXM2WUtwSURLbW52Rit4N3UvZC9HeUoycks4K3I5c20xd1k5RUw4YzNqWHM1QlpWQmhXSENFTC9iR3dhWEFxYTRlK2ZBMVEzQmNkZUZ4bER4cU1YNmlNbnNWbER4cWtGdHFvNVVHUXR6OTg0QllBQ3FjditlOEpkWFZyb1ZObFloR2ZkeUozSmtFTUFRZFBydmQxL1RFTHovMHBuMkdweGNYQW95aldsdnhneTk4cEg5SGdYVzN6Zy9LOUt5QmsvS0hDcE1zME5rR3ZkVyt4WXRxN3grY2ZtVmNNSXJsaXZqVUlGa0pvMmhVcytzMWJVZlhsUit4VVJVb0Vta0lDb01kd3ltLzN0dDkvL3R5VkdCWWhxcHdBazAxWXpRaVk3cGRRcGlIMnE2SjJXNms2WTNidnBpUmlCcUJHSm1VY0x3djl3OTkvdy94RCt3b09qTFoxVE5MdEp0azkvQnBoT3NEQ29NLzk0VzdleEpuamU3dUNPZWZYSi9wRFdhblJuUUJJMDJDV2s0STJnRUoyV0txYmFORmdUU3ZuNm1aYWlwMUZQcFVkYnNpenpWRnJ1Nk1UZ1daUW92UndVZEhkakUyNkQwOXNnRFVUcGhjSng3a0hiM3FKTllSRVJnNzhjeVVLRXZaY1pUcHM0WjVlcnlIMTV4SW9JcHRrRXB2RnNBR0tzS1NBVkkzdW9rSXlEdkttdFJlOXhZVnVvbWdBclBuRnVYUFRpUWFoMUl0Z3hsdWpOV0hBRTA3dk5wbGFXZVdhV2VSbzR5Mkc0Y0p0M0t1OHRHRE9ZRTNxcFJ4N0REc2JGS1hnSGtERG1SU0JsREhyWDR6Qm4vdkxMNmZUcjM1dnRtakVNRktvajlhZk03RzNwK3NxVXZsVGE1aThOeG9BTEhmVTBaeTNYc1JiZFVOSFF0RTlJSEdRb0dBcEVJVU1OczFQeFM4MEQ1YjdiMS9tVi81RFBMS3o2M3ZGeTJLaFlPR3A1d1J1bWVuUU5naXM4dkwzK2xPLzZkWjlzZjJEUDRuNmRYVHAzc081SjlrUmppNy9hRXpXam1wak9yVGl0enI5azFlRS96d0RXTndVa3VKUkdaalhSU2o0WENISFUrTW5KODdPWTZrV05uMUJkbDc4TytsSWxaUytPSTB4M1lQKzdkam5vdTIxTmtFWEFFWllJUklBSkVHTXBhc2JTcE1ydGtQQ3Z6TkpaNUdpZTZBWTRvWGVtakJvUG5HbGZrQ3BYYXQ1ZVBrQjE5dDVNL3dqZzRLTWhJR21FQnhGRlpYSEgxMlhVZktYYlZ3Y2krR1lYTUMwZTBpTzdhMXYrTjF3OTFoRFBneWtVRm5pZ0tqREtXVHNjY2pFYUFKaW5TNVdOL29yT01LUkNBTkk4U004V2RhenJ2Yng3NDhwbFZ0eTRveWMvYXdzTFhJN1pYR1FMcWVFS21BNVdBSWU2TlpKNDVNRlJVNW5sbmZhRFVwWHpIM1hYZnJzRXZMSzlRT1U0dmVVNEFuR0hHb3Z0MkRZSmJ2Yll4dUNEa0NwUzRuend3MURLVWFRenE0eTRoK1dIVUVIL2JIMm1OWml1OXlzWDFnWm4rMGVxcUlPQ0lRMW5yeFk3WXpuQ0dpT1lYdTg2djlSZnIzRDVTNHNXdWNIcmJvY1RzTXMreVVqY1Z6TzluMjJPRFNlT0NHWUZTbDBMNUhXTG5ZSW9zeWxvVXkxcW1JSlV6N3pUQklVYzBCSzNwaW0vdVN5Vk1NYmRJdjN4bTBLY3l1NTQ5QWd5a3plY09ScGRYZXB1QyttREdldnpBVUdzMFcrNVJMcW9QekNwUTJPVWo3QTZuS1dzUlVTeHJDUUpFOEtxSStYWEVFUUJ3VTI5eWZVK3lMMldWdVpRektyMm5sWHRnakpMN1dHdFU0M2hKblI4QW5tdVByZTlKcWd4V1ZualBxL0VWSGl5SEtHWFJNd2VqMndkVEhIRjVtZnVpK29CTW1aMHNqbnAxM1VjOWFna0N6aTI5YUJJcU1COFZDRThjak43Mld0ZnJuWEZRanpzVk9ENE9DczBpZml4SmRmbHRUUllSSVJzSEdRcmJMbVBJdUVjNUVNMSs1SWtEdjl6ZWY4ZXFtZ3RyZlF3TG93OUdnSjZEZjlPcm5kMi9lOUNJWlc5WVhLWnhQTDNDczZqR3Y3MDk5bnhuN05MNndQVHE1dEx5ZmFZOTJ0SWRYejRqc0t6VXJUQzhycW40dm5WZEQrd0pmM25sZUJxb0lML0duMnFMdmZ2Ui9iR0VBVVJnVXFCSS84bEY5YmZNRGRsQUlIKzVmMC80MzE1czcrNVBBV2VBQUtZb0wzRi84OXphRDgvUE9iSXRJZ1h4RC9zaXR6MnkveE1YMVAzdkJmWHlFN2x1UC9WU1IzUHIwQXNmV25SK2pROEFYdXhJWFArM2ZVT0MwSy9kMnp4d2IvTUFXRlRpVmZmZHNrQWFMa2M5THRMQ2ZiSXQrdmtYTzNaM3g0RXphUURQcWZiOThjcFppMHRjZG5KRWN6aDk0ME83UG5WQi9lVXpBdGM5dkMrVHNTUlo0QTFvUDdxby9zUHpTMHhCQ3NPOWtmUTVmOXpUbDdiUXBUemZHUS84WXFzRXgrYWI1ODh0ZHNrWXU3NlUrWS9QSGZ4VDh5Q1lGaWdNVEFLTzE4d1AvZUxDR1JVZXBYQS91UFhaZzNGRGJIN1B2RnVlUExDK05Rb013UlNnc3Zjc0x2djF4VE5VSmt1ZEFVUFkycDk2N3hNSGRuYkU3QUdmVyszNzlXVXp6NnowVHFRVktnQlE1bW02cFBHTCtiRVlUUVhhemhET2NOdEE2dmExM1gvZUV3WThJVlRnT0s5S2x1Ylh4V0ZLSWt5UG1tQUs0Z295bGIvV252NWYxKzA5a1M1QmZvVkpHa0ZoS0NPRk9FTkZZYW9wTWd2TDNqV3IrQnluby9teGEyZHBTL3gyOXlDNGxBL09DMG5YeEMxemkvLzlRT1RlbllPWDFRZW1tWEJHQUlCN213ZkJGQitZRzVJVzN3Zm5GZCszdWZlKzNZTmZQSzFDR3hraUlJaEFaVnQ2a3pjODN2S1o1ZVgvTUx2WUVIVGZyc0dmYkRqMG9TZGJsNWE0bDVTNmJjajQ0NzdJTFEvdjA5ekt0eStiZVVsZGdDRTgxeEg3cjFlNlB2TElmcDNoelhPTGJYTE5yU0IzSzE1MTlNd0phcHk3RlZ2Ym14RlFQN09pWW4xZjh2RmQ0VFBxL2RjMEJyTVcrVFV1MHozeDZQY2VZQWhkY2VQS3YrelRWZmF0UzJkZVdoY0FnSjl0Ni92bCtrTWZldWJnMmh2bUtIbVZnUUh5b091UGU4Ty8zTjcvK1JVVk44d05DWUlIZGc5KzcvVkRIMzNxNFBKU3o3SXl0eUFxY1NuL3VyUjhaemo5NFBiK3BqTFBCK2VGWlB1TlVyY2lJOGhUcHJqNnNaYTF1d2N2WGxqNitlWGw5WDZ0TTJIOFlIUHZ3MXY3T3BQbUM5ZlBkdlBoaDZwd0s3Rk01b3lIZHAxZTdubjI1dmtWSG5WamIvTGZYKzE4YUZQUDdDTDlqak9yVEVFTU1XUFJ6VThmM05rVi84dzV0UitZRjBLRTV6dGlQOW5RY3locElvQ1lRQ2xVWUdSRzlQaFVJTVBlbFBudERZZCt0clV2bmJHNHp1RUV1dDdIcnBTamFsRnk5UE9EaUxpbTFIc1A5U2QzSkUwM0F5dWZjRWUyYmN5UUo3S0RaWjdaczRyUEdkWDcxWkdqME02ZWJvc2RPSlJZVWg4NHE5SWpsK2lOVGNXM0Jic2ZiWW0weDdOMVBtMXl1dWVJM2k5SGJJMW1IMitKZUlwYzcyNHFscHJST2RXKytkWGU1czc0cysyeHkyY0dyTHd4WkdObndyRCtldFVzRzVSUEwvZUUwK2J2TnZUOGVHdmYzUmZXQ3lMT01HR0l6NjdwUUlRSDM5VndmV09SUEhKcHFYdDJrWDdObi9aKy9wV09LMmNHQWpvM1NmYlNBa3ZRMkZVbGN6NHBEOEVOQWYycloxYmQyenp3Mk9iZXM2dDgvM2w2NVhRUnNnUlE3OWNldlc3MnZKQStLNUFMVGJ2N3d2bzEzZkZOSGJITmZhbVZGUjRoZ0NNSUlndXBQMm4rK2NyR0t4dHlMWmxPSzZ2cFM1dS9XWC9vcDl2NmZubGh2VVZRNGxMK2EyWGxpNTN4QnpiMnppMTIvZGZLNFZ1VkN1TzlPL3ZYN2dtZk42L2t5V3VhNU9ndUNMa3VxZk5mWUlvWG1nZnUydDcvMldYbFp0NVB4UkRUY2VQbUZSVy92S2hlbm1SaHlGWGlVcTc1ODU2ZmIrdi8zTEx5b000UllGYzR2YjBydm1wVzBmZlByWkdITFN0MWYzWlplU0hKT003akF3QUNHMXVJV0ZCdWloaEVQOW5TdC94M3pmK3o3bENhUUhFcDhrOXZtaUNaUWpXRnZUbWRrTVVKd2dLdU1JL08zSnJpMVJXdnJ2aDB4YThyZnJjU2xEOGV0VWd2S0lybHlMRm9aL2MwRDRBaGJwa1RZb0NtSUZQUXpJQjI4WXhBTXBKK2FFOFlZTnJpVXVWNUh0d2JUa2N5bHpjRWEzMnFUS3hVR040OHV4aXkxcjI3QmtZbFlqQkVNTVh5Q3M5bDlRRlpvU05ya1NDNGRVRUpxdXlWN29Rc0w0SUFMM1hGTzNxVFMrdjgxemNXbVlJc0FvdkFFSFRsek9EeU9uOVBYK3E1emhnQ1dFZnlLSVlnVTFBc0t3QXhhUXBUVU5vVTAyS1d5VWU4WW1aZ1ZrRFBGRGphejZqd1lzWnFpV1pnT0lrRndSQ0x5ejFYTmdRbGRtY0ZDWUlQelF1Qnh0WjB4U1Y0eVZzTloweEF5QW95QldVdGtuR2FjbE41WUUrWWNmejBzaktHa0xHRUlNaFlBZ0ErdmJRTU9YdHdUNWdLa0VzUUFjZFBMeXNqZ0t3UUZvRXA2SjB6L0EzbG52NUkrbzIrcER4T1FRU0dQZkhzdnFHTURXVVdIV2E2c0VrZFlmRG9nYUd6SHRyOXFhY1BkaVVOMWFPd04xTU5ITllIalh4SmFqb2hwQndCQWdnRkRTSWlGTExxdC8xVEVDd3RwcVUyeWR2Y1E4SVJEMFF6ZjI4WktpcDEzN3FnQkJFMGpsSWorTlNTTXFieSszWU55cmhPbW9ZM0M1eWhJZWkrWFFOTVZ6NjFwQXdBRkliU0QvdVJoU1gra092eC9VTUhZMW1PT0dyaTV4UUZoZ3h6TGEzcmZCcTRsTzZFRWNsWVVydlowcDlDUTZ3bzgxQk9HUUdlTHhXN3N0eURwdGpTbjg0eGMwZUNWbllIYlhscCtUTmRwSVFFUUowakF2U2xqTlpZTm1rSVFqQnBuQzFrZUFRUUdjSU12OFpjU2xmQ0NHZHlkY0FrZVdUZnRuMnJDRENVdGZaRU11UldGb1ZjQktBeXhoQlV4Z2hnVWNnTkhuVnZKQk5PV3pqUzdrc1lRcVphY2dSWnkycE9VRWRESEl4bDVTWXhMK1I2VjFOUlMyZDh4WU83L3VXRjltZmFvbGtoRHNzbUsrUFNwUXhoUzMvcXR0ZTZIdDRYQVFURjh5WlFnWWZCUWFIaWljelFRR0o0bU9kSGdHTnBpZW1JN1NINXphNXdKbVdpb3IzemIvc0tJU0lyU0xpVUhUM0pGenJqRjlYNWoxMGxsTmJ1cysyeDNiMHBjUEZQdjlSUjZIUkZoQ3hnSnBYOTNlNWN2TTZvMVRTS290WVlJZ09EaG5zZlJyTVdBUVMxMFNsSUNCRFVPQkZFTXlkUjlRM0taM1AvZVYva3Z1YUJ0VDNKZ2JScEVYSEdRT1BqS2tDajRGZFhtTW94WTFGbWNoV1hBQkNTcGtnWVFsR1lWK1dGbmRVUndLc3lUY0dFS1JLbUZRSmV5T21OakU4a0FuUnpSZ1JKMDQ1aGhBY3ZtL25mUmZwdm13ZC8rbHJYVDlkMU4xVjRQck9pOHA4WGwwN0NwU2hqeVFpTytLdm1nVTg4ZGRDdzZNMm1Bc2RUelpBczRvWlFwN2MwLzJIWUV4QWNyY1BSME1oUmNiRHNHTFd6akVXLzNUMElLcXZ5S0wxSjAzN0hCS0FnMXZqVXpvSFVQVHNITHE2YkJncENScGpkczNNQUxGRmJwRWV6bGxrUW9JK0ExUjdsUU5xOGIxZjRpNmRWS0F3TG83SkhoWWtSUU55d2hFbCtOL1BtbzB4a0xFdkNHTDErQ0NCdUNFVHdxdnp3OVBTSkdmeDhlUFpOVDdROHZ6ZXlxTmIvc1VVbGkwdmNOVjcxbXh0N0h0OHh3TWRBeU5qNDdhUWhzaVlGZGU1UkRxK2Z1amx6S3hoT2k5U1lucmtwVXhnVytUUW0vU1NqT29VWGJDZUlBREhEUWdTL2x2T29JRUJBNDk4N3QvYkxaMVM5MUJuN3c5N0lBODBELy9KNEMwZjQ1S0xTaVhJaXh1U1RBQkxCRHpmM0daYlEzVXJXT3VteVloSElJcDRWT2g1Skk4UmpCRitHRWdjUGMyZXlBNE1qUjZtZEVYSEU1enBpKzNzUzlhV2VMZStkN3gvalBIMjlOM25XZzgyUEhSanFTaGpWWHRVUXhJL1dJcFEyZUVjOCswVHJFTmY0bzFmTldsbzZ1dDlqSkdNdGZLQjVUMC9paGM3NHhYVitJUUR5d0tVZ0lvQkp4QkZOSVRUT2RnNm1NV1hPcnZYN1ZHWUlVaGt1Q0xsSVlXOE1wREIvUlZ2dDJqeVFJczRXbHJqc2RTNVBLTTF0UVRJVWgxU0drOGNGeXV4K25ISWdrVXl6R1dYYnlhOXl3SytzN1g1KzUrQ2RsODM4Y29GUFkrYWVNRmpqdVA3a0RVc3kxQlNrY213T3B5RnB6Q3IzRkx1VXNYN1ovS1BsT0kyZ3podUQrc2J3ME81SXBxbElOd1dwREUwaUZYQlBKRU5KczZIVUgzS05qZ1JTRUdYelJyazAweFp0SDB5VGk4OHZkc2tIa2I1TFExQ3h6cTlwTExxbXNlaWlldi9ISG0xNWNFLzRrNHRLSndydlphUFZWWVNFS1E0bERhWnlRNXlNcFFGeXBmbUZ5dURFT1dZUkJFTnJrbVMrZk50QUJ3ZVBaWkFCQVg3VlBBQlpjZFBzWXIvS1JpMVhRYkN5M0hOV3JUOFdUdjloYnhqZ21QeDEwcXgrYUc4NEVjbWNXK2RmV3VvZWRUWkxVSkhPYjVoVmhCbnozdWFCd21ZMGdCRE9tRFlXYUp3QndNKzM5NU9nYXhxRDlobmVVZU12TFhGdGFvODkxeEdUcEI1RFVCbXU2WXF2YjRzV0Zic3VxdlZEM2hWUTYxTkpZUnY3a2d4QjQ0Z0lLc09XYUxZbGtnYk9ScEVBbEMrZnpoQjBqbE9OcGlUd3FreGg2RkxZeU5JaEtBTWsxL1lrRksvNm9ma2xBR0RyUUMzUkRQQXhiQ3ppVU1hVU40OEFrbEg5MmJZK3N1aWF4aURtU3pSQ2djN0lFQlFHQ2tQTUY5RzRmbFlSR2VMbjIvcHlaMERRR0NMQ3o3ZjFrMkZkMzFqRWNEaEZUV2FUUkRJV1IxUVpjZ1NPK0p0ZGcxMTlxUVVWM3FXbGJzcFhqWlNjc3FRTEFlQWROVDVFMUNmZE1FZTE5UU5CNEZaWWhVY1ZHVXRsSjJzZUdiR3NwUVBTQ2NGcEFrS09naCtlSDh6WnhVN1F6RkZyWjEwSjQ4bldLUGVwNzV0YlRQYjJYcUF3QXNBdGMwUEE4SGQ3dzVEUDdzSUNQcjZRdWhyN1lhRklyZVNCUFJGZ2VNdmNFSXoxUVNNUXdNM3pRdWhWLzk0NmRDaHBhUGx5YklyR2R3MmtML25ydm5VOXllNmtzYWt2K2Q0blcxL1lIVzZvOFgxNFFZa3NFbUVSRmV2OGEyZFZteG5ycHNjUDNMOTdzRDJlN1lnYkQrME52L3Z4QTBiSy9PK3pxc3JjaWd5WkJvRHphM3orSXYyVmc5SGIxblczeGJKdDhld3Z0dldmL21CekxDdVVNV3U0MUtVSXpsN3VqTzhieXF3OWxQamY3ZjJIdGFBUlFkSFpNKzJ4cjY3ci92TGFycSt1Ni83cXV1N2IxM2QvNVpYT1AreU41RlEvdjJhbXpaOXU2MHVaQWhHMjlxY3UvOXUrNTl0aWlzNExQYTZDQ0JTMmJ6Qjl3Wi8zdm5ZbzBaMDBOdmVuUHZEMHdTZWJCK3VxdlArNHVMVFF6MXZxVWtobDIvcVNtL3FTemVIMDl6ZjNHb0k0UTBId2o0dEs1ODRJUEw2OS80UFBISHlqTDNVb2FXenBUMzNrMmJaSHR2ZlBxdlAveTVJeW91RmNRNWxkZk5NVEIzNjdlN0FqYmh5TVpYK3l0ZTlmWDJnSGhEdk9yRklabW9JUVlITi9hdEZ2ZHZ4a2ExODRZeWtNdXhQR0YxN3V0RExtRFUzRk1IR1lnVEoyMFhQRUg1eGJlL01UTGQxRFdYQnhoYUYxTWltR2lBU0VHYUdmR0xqSjVSS2hRQkNUUTV4czV3cmdJT0ZSYW1jTThVZGIrcUxkOFZXTHk1YVZ1aVV5ampMRUNPQzZ4cUxQQnJRTmU4T1B0UTVkTVRNSUFGblpabmlrenlGbGtwa3dockxqc3huU1EvTFhscUUzOW9WOXBlNXJHb00wSnJoTStvaFhsSHVXVi9rMjdoajR5ZGErcjUxVkRRQVdnUmxPWDMxNkpRTTQ2OTV0NEZFaGE0RXA1dGY0SDNwWGc1MHdKOU5QUDdHb05HcUlyNnpwdk9YUGU4R2xBQUtrVE1XcmZ1MlNtWjllV21ZbnhnaUNTby82MC9QclB2Sms2eDNQdHQzeGFoY0FnVWsvdkhUbXRvSFVMMS9xRURRQ3Z0ODV3OTlVNDl0Mk1EcjczbTFnQ00yblhkMFFyUEtxTkhIQzZXREdOTFBXQzNzakwrd1lLSHhJU0JqbnI2aTRjWGFSSVBqUzZSWFBINHgrNjhYMkgyM3BjM0VjakdWdlhWTDI4NHZxUC96UTdrS0tEQkhCRkhNclBFbFRyTDV2QjdnVXlGcGdpSG0xdmdjdWJ5eDFLYm1BRThnTjRIbU53WmVhQjFmOFpxZE1JYnlneHIrc3pHMFJGZW44c2F0bWZmQ3AxdDlzNlBuTkc3MmdjVG1TWnpVVzNYZlp6SkNMRjNvMkxBSlEyRG5Wdmc4OGZpQ1hpcGd5VlovNnZVdG0vTU9zSWptU0JKQXhSZHdVbjNxczVkTXZkWlM1bGQ2NEFSbnpZNnRyYnAwZkVqUmhBZDNST0NqUGRVR3RiL1A3RjN4cnc2R2ZiKzFMcDAydWN3QVVkUEtnSVV0YkxnSVF4TVpCeVdFb21xNGJ6dW1Eay9QTUNJd3p4MDl5bENKcCtKVVZuaDlkMVhSUmdXazVTcU1oZ0FxUDhzaVZzNW9QSmV6S1YvT0xYVCs4b3JIU3IwRyttZ3NBbkZmdCsrSFZzMlpQMEVSQlpzMkhYUHo3bDh4WVV1MHJrWHdXam04eC9lcWkrbWNiZ3JYRkx2dHkzMzlYNHpzYWdzdEszWCtZVS94eVo1d3pQTDNjYysyc0lwL0tDcGV1Uk5JdkxpKy9vYW5veWRibzlzR1VJRmdVY2wwMk05aVl5OE5GVzNzVkJMZk1DeTBwZFQvU0V1bE1HTFZlN2ZyWlJmT0xYVnNIVWdzRG1peDl4UEx0bGtNdTVhWHJaOSszYzZBdG5wMFYxSzl2S3E3eXFqRFJJeUFDd0dlV2xsOVZIMUJHSWdGREZLYVlYZUtTcStYTUN1K0dtK2YvY1U5NC8xQ20zS05jMlZDMHVzcWJNa1hzMnFhektyMlFkOWRLNUE1b2ZOMk5jLyt3Ti94eVo1d3hYRGxtQk9TRmRJNlBYdEY0YjBOd2R6aFQ3Vld1blZXOElPUWlBb1VoRWN3SzZpL2ZNUGZwZzlFMTNmR2VwRm51VmxaWCt5NmJFV0Q1d0pWQ3hBWkRmT3ZzNmp2T3FucG85MkFrSzJZRnRDc2JnL09LWGZaSUVzQ1psZDY5dHk1NjRrRDA1YTVZZjlxcTgybVh6d3lzcWp4TXRYa2NOOERRZnBMdEE2bmIxM2IvYVc4WUNCU2RGMWJqZWRNZ0VJVmwrTi9UZFBjN2F4NVBtRjZaRVV3RUJFakFpRkFBSTBJQ2xML25NR284bnJFZ1QxaXlxNml6ekk5MmZYWnZlQWxYa2hKa0VVaVE0bGVIL20zeDE3MUtrb2J6V0ViMzRUWkU1bjJMNzZyeEwzYnk2bzR6VHpIOSt2YlJuWE5jVjhCRTlXYW04dUhZcjAvazN6eE9aWnJIM3NDb1QrVDl2TnFkT1B0M081ZlcrRGUvZHg1TVlRU082SW9UZmI3NGdlYnQzWWxYYjU2M3F0STNjb2lBSDY2dXpHSHZTcGtBYTNJRnZCYVZ1UDk0UmVPVEI2TmZYZHUxdmlOK2RKM1hwM25LRWlKUHY5Qno0ZjVZazhhelhpWGg1a21Qa25UenBKdW5YRHp0NG1tTlp6U1dWZEZRbU1uUllpZ1FoVTNhU3BRVXhBaFFVQTQ5Q1lZL0hFZGJRY3V2SmhWTXh3MTdWbUp1ejh2M1ppV3d1Qk5IZld3aWErMnhTZXZaNHBqRGpycFAweFI3T1kwNnJMRDZYdUZhNEd6ODI1WmFZZUdpa1FIQTQ2Njd3aVBsWWJhUEZVZlJOVk1yZlRocWJDZFN0T1g5akxvQitYbmg4OXBYbHc0V1dYN2xzQ05RV0VoODFLM2FVR09mUlpZTEhIc2VtZUFyQjhUSWgwYXpNVTB5eGozaDBjUlIyNCthajZHbnkyWUVMcTRQM0xPai8rdnJEN1VOcGtIbkNuL1RTRU1DQkRRUEplb094Um9MOVZvQUFyUUFMWVVaS2pNMGx0VjVXc0tpaEVpUGtvTkxqeUlSTStYaWFaMW5OSlpSbWFFd1U4T3NoeWZIeGdreUJFRCtSdC9NQ3ErMU1LUVJXUUlzbVVsQ0pQSy9DMHRrT2RNZExEc202M2hLN2QxSEgzYlVmWnFtMk10cDFHR0ZsK05UVTM2bTNqUnE3SkVUZlJkSEZ2NmJyckVkZTdteHcyc0lNbE5tSkdQaTFFWmc4czVXT0xWN2kyUk1NMlVhUklmMWdPR1VIL1l3ZHZGRU92eGd4dnFmalQwLzNOd2JUK1hic2I5SnFpRUNqYzB2dHRVNklBUkFJRmJ3cjkyZm5RQUVvQUMwR0pvcU0xU1cxWG5HeFRJNlQvdlVXR3U4TVpZdFFqUWw0OHdaR29ZQVMxelNVUEtOczZ0UEw5Y2gxMWxHYnB6Qy9rV0EwTG5QU2ExejVKUW5KZnBUNWxPdFE4VWU5ZklaZ1JOMjZjZGJvNUdVZVZsRG9HUzg0TVJqeFpPcEUzNTJ5WTA5a2N3ZDY3cC90MnNRQkVtSCtza1dhRGdjYm9Fd2J2cWRSRXdBb0dHVVpMbC9XUWJSQWtETzBMUUlNbFpUcWZ1TzFkWHZuVk44L0hnWlJ4eHg1TTFFakNOeWZCUTJabnFoSTM3YjJxNlhEa1pQQnRMd1dIYTQ0VHdxbE9XUFVQYU50akttVzFjK3Q3ejhpNmRYQkRVdTh1MjlSNDdIaU4rY1l0U092RTIwd3FQdVpIL1VNcXBQeTV1SmcxTHNHcE1BOE50ZGczZXM2OTdYbHdTZEs1eFo0cTNkblRKbkNHY3RFSERON0tLdm5WMnpLT1FDcDFXVEk0NDQrdUJFOEN5am1hS0c5Y00zK3Y1blUwOGtZVENkeXpyamI4V3hzQTNoK1JXZXI2K3V2bTVXRVJ4NTYwNUhISEhrYllTRE5ocEtSZWxBTlB1MTlkMi8yamxBSmlrNko2QzNrR3JJRUFISVNsdCtqL3JGRlJXZlA2M2NvN0I4eVVsbmtqamlpSU9EVXlNTEpHbjRhbmZpOXJWZFR4OFlBbzZxeXEyVElPNTZxb1l3d1kzelFsOWJWZTMwTEhiRUVRY0hqMUlLU2NQZjd3M2ZzYlo3WjA4U05LWXFKNjhMUldGb1dBSXlZbG0xOSt1cmE5NDFNK0FZd280NDR1RGdOS0NodENWVHB2anhscjd2YnV6cGoyVlI1L3drSzliQUVBbElwSzJRVC8yUDB5cy92YXhjNTdLdUZqcUdzQ09PT0RnNERXSWJsUjF4NHh1dmQ5KzlmY0EwTEs0cmNCS1FoakpyeDh4WWdQQ0JCYVgvdmFwcXBsOXpER0ZISEhGd2NQcWxrRFRjMEp1OC9iV3V4MXFHQUVIVjNrelNVR0ZvbUFJTWNVYXQ3eHVyYXk2cTh6dUdzQ09PT0lMSEZaT0lRT1JKdzcvdWo5eStybnRMZHdMVU40RTA1SWlDU0dTczhvRDI1VE9xL21sSkdVZHdER0ZISEhIa3VPT2dGSnMwekFyNitkYStiMi9vNlI3S2dINkNLcnphaGpBeS9OamkwdHZPcktyMnFvNGg3SWdqanB4UUhKUmk0MDVQMHBRVlhqTlo2M2hYZUxVTjRYUHJBOTg0dS9xY2FwODBoQlZIQ1hURUVVZE9QQTdDU05KdzYwRHE5dGU2L3lLN1RCeUhDcSt5S2pxbHJacGkvYll6cXo2MnFGUmlNY3VWSW5iRUVVY2NlVE53MEVaRGtTOWQ4MFJyOUxhMVhhOTN4cWVSTkdRSWlHaW1UVVZsLzdTay9ML09xQ3gzSzVUckJPUzhjVWNjY2VRa3dFRXBObWxvRWYxeSs4RFhYKzl1SDh3Y1k0WFh3bktCRjg4TWZ2M3M2ak1xdkFCZzVsdUNPZUtJSTQ2Y1JEZ294U1lOQjlMbS85dlk4K010ZlltanJmQXFRN1VwYmMwc2NkMnhxdnFXZVNHUTljU2RtQmhISEhIa1pNYkJIQnJtemVSZDRmUWQ2N29mM0RVbzIwSk5zY0lyUTBCQU0yUHFHdi9YWmVYL3NiS3lXT2RFUUU2VkJFY2NjZVN0Z29NdzBvWHlYRWZzdHRlNjE3UWR2c0pyM2hDMndLSXJtb3ErdnJwbWFha2JuSmdZUnh4eDVLMklnMUlLaXpYYzF6eHc1N3BEKy90VG9MTnhLN3pteXdXYWM4bzlkNjZxdm5GMk1RQ1lSTnh4Q0R2aWlDTnZYUnpNbWNsMmhkZXM5ZjAzZXIvL1J1L1F5QXF2REFFQXJiVHBkU3VmTzYzaWl5c3EvS3BUTHRBUlJ4dzVoWERRUmtPcEdMWU1aZTVjZitqWHpRTmdDa1ZYRUVHV0M3eCtUdkhYVmxmUEwzYnE1anZpaUNPbktBN0NTTkp3VFZmOHR0ZTZuenM0QkJZdHJQSitmWFhOTlkxQmNLb2tPT0tJSTZjMkRrb1oxUmFxTTU3OTdQSUtuYU5qQ0R2aWlDTnZGeHkweldSVzRBQnhER0ZISEhGa3V1VC9BMlpLODFTWWlDc2RBQUFBQUVsRlRrU3VRbUNDIiwKICBXSEFUU0FQUF9OVU1CRVI6ICI5MTk4MTg1OTI5ODkiLCAgICAvLyBjb3VudHJ5IGNvZGUgKyBudW1iZXIsIGRpZ2l0cyBvbmx5CiAgUEhPTkU6ICIrOTEgOTgxODUgOTI5ODkiLAogIFBIT05FXzI6ICIrOTEgOTIwNTYgNjA4OTIiLCAgICAgICAgIC8vIHNlY29uZCBudW1iZXIgZnJvbSB5b3VyIGN1cnJlbnQgQ29udGFjdCBwYWdlIOKAlCBzZXQgIiIgdG8gaGlkZQogIEVNQUlMOiAic2FsZXNAc2tpbmZvd2F5cy5jb20iLAogIEFERFJFU1M6ICJHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYSIsCiAgSE9VUlM6ICJNb25kYXkgdG8gU2F0dXJkYXksIDEwOjMwIEFNIOKAkyA3OjMwIFBNIiwKICBZRUFSU19FWFBFUklFTkNFOiAiMTUrIiwgICAgICAgICAgICAvLyBzZXQgdG8gIiIgdG8gaGlkZQogIEhFUk9fUFJPRFVDVDogIlN1cmZhY2UgTGFwdG9wIDQiLCAgIC8vIHByb2R1Y3Qgc2hvd24gaW4gdGhlIEhvbWUgcGFnZSBoZXJvIChtYXRjaGVkIGJ5IG5hbWUpCiAgV0FfR0VORVJBTDogIkhlbGxvIFNLIEluZm93YXlzLCBJIHdvdWxkIGxpa2UgdG8gZW5xdWlyZSBhYm91dCB5b3VyIGxhcHRvcCBzdG9jay4iLAogIFdBX1BST0RVQ1Q6ICJIZWxsbyBTSyBJbmZvd2F5cywgSSBhbSBpbnRlcmVzdGVkIGluIHtQUk9EVUNUfS4gUGxlYXNlIHNoYXJlIHRoZSBjdXJyZW50IHdob2xlc2FsZSBwcmljZSBhbmQgYXZhaWxhYmxlIHF1YW50aXR5LiIsCgogIC8vIExpdmUgZGF0YTogcHJvZHVjdHMgY29tZSBmcm9tIHlvdXIgV29vQ29tbWVyY2Ugc3RvcmUgKGFscmVhZHkgc3luY2VkIGZyb20gdGhlIEdvb2dsZSBTaGVldCksCiAgLy8gYmxvZ3MgZnJvbSB5b3VyIFdvcmRQcmVzcyBwb3N0cyAoYWxyZWFkeSBhdXRvLXB1Ymxpc2hlZCBieSB0aGUgQXBwcyBTY3JpcHQpLgogIExJVkVfSE9TVFM6IFsic2tpbmZvd2F5cy5jb20iLCAid3d3LnNraW5mb3dheXMuY29tIl0sCiAgLy8gWW91ciBXb3JkUHJlc3MgdXNlcyBwbGFpbiBwZXJtYWxpbmtzLCBzbyB0aGUgUkVTVCBBUEkgbGl2ZXMgYXQgL2luZGV4LnBocD9yZXN0X3JvdXRlPQogIFJFU1Q6IHJvdXRlID0+ICIvaW5kZXgucGhwP3Jlc3Rfcm91dGU9IiArIHJvdXRlLAogIC8vIENvbnRhY3QgZm9ybSBwb3N0cyB0byB0aGUgU0FNRSBHb29nbGUgRm9ybSB5b3VyIGN1cnJlbnQgQ29udGFjdCBwYWdlIHVzZXMsCiAgLy8gc28gZW5xdWlyaWVzIGxhbmQgaW4gIkZvcm0gUmVzcG9uc2VzIDEiIGFuZCB5b3VyIFdoYXRzQXBwIGFsZXJ0ICsgcmVwbHkgbGlua3Mgd29yayBhcyBiZWZvcmUuCiAgR09PR0xFX0ZPUk06IHsKICAgIGFjdGlvbjogImh0dHBzOi8vZG9jcy5nb29nbGUuY29tL2Zvcm1zL2QvZS8xRkFJcFFMU2VDWnRsQVZBTTZHOVkwUmtYbGN1N0d0a1FMSE43WmYwaUlrc3ZwRUFNSDFwRlR5QS9mb3JtUmVzcG9uc2UiLAogICAgbmFtZTogImVudHJ5LjkxMDAwMTI2IiwgICAgICAgICAgLy8gRnVsbCBOYW1lCiAgICBwaG9uZTogImVudHJ5LjIxMjM1MDY4OTYiLCAgICAgICAvLyBQaG9uZSBOdW1iZXIgKFdoYXRzQXBwIHByZWZlcnJlZCkKICAgIGludGVyZXN0OiAiZW50cnkuMTk4OTMyMDgwMSIsICAgIC8vIExhcHRvcCAvIE1vZGVsIEludGVyZXN0ZWQgSW4KICAgIGNvbnRhY3RQcmVmOiAiZW50cnkuMjU1MDcwMTQ3IiwgIC8vIFByZWZlcnJlZCBjb250YWN0OiAiV2hhdHNBcHAiIHwgIlBob25lIENhbGwiCiAgICBkZXRhaWxzOiAiZW50cnkuMTU3MTcyMTY1NiIgICAgICAvLyBBZGRpdGlvbmFsIERldGFpbHMgKGVtYWlsLCBjb21wYW55LCBidXllciB0eXBlLCBxdWFudGl0eSwgbWVzc2FnZSBnbyBoZXJlKQogIH0sCiAgLy8gdHJ1ZSA9IGNsZWFuIFVSTHMgKC9hYm91dCwgL3Byb2R1Y3RzKSDigJQgbmVlZHMgdGhlIC5odGFjY2VzcyBydWxlcyBmcm9tIHRoZSBkZXBsb3kgbm90ZXMuCiAgQ0xFQU5fVVJMUzogZmFsc2UsCiAgLy8gV29yZFByZXNzIG1vZGU6IGVhY2ggV1AgcGFnZSBzZXRzIHdpbmRvdy5TS19ST1VURTsgdGhlc2UgYXJlIHRoZSByZWFsIHBhZ2UgVVJMcy4KICBQQUdFX1VSTFM6IHsiLyI6ICIvIiwgIi9hYm91dCI6ICIvP3BhZ2VfaWQ9Mzc3OTEiLCAiL3Byb2R1Y3RzIjogIi8\/cGFnZV9pZD0zNzc5MiIsICIvYmxvZ3MiOiAiLz9wYWdlX2lkPTM3NzkzIiwgIi9jb250YWN0IjogIi8\/cGFnZV9pZD0zNzc5NCJ9Cn07CmNvbnN0IFdQX01PREUgPSB0eXBlb2Ygd2luZG93LlNLX1JPVVRFID09PSAic3RyaW5nIjsKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAyKSBTQU1QTEUgREFUQSDigJQgc2hvd24gb25seSBpbiBwcmV2aWV3IC8gaWYgdGhlIGxpdmUgc3RvcmUgY2FuJ3QgYmUgcmVhY2hlZC4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCmNvbnN0IFNBTVBMRV9QUk9EVUNUUyA9IFsKICB7IGlkOiJzMSIsIGJyYW5kOiJMZW5vdm8iLCBtb2RlbDoiVGhpbmtQYWQgWDEgQ2FyYm9uIiwgY3B1OiJJbnRlbCBDb3JlIGk3IDEwdGggR2VuIiwgcmFtOiIxNkdCIiwgc3RvcmFnZToiNTEyR0IgU1NEIiwgc2NyZWVuOicxNCIgRkhEJywgY29uZGl0aW9uOiJSZWZ1cmJpc2hlZCIsIHF0eToiMjUiLCBmZWF0dXJlZDp0cnVlIH0sCiAgeyBpZDoiczIiLCBicmFuZDoiRGVsbCIsIG1vZGVsOiJMYXRpdHVkZSA3NDQwIiwgY3B1OiJJbnRlbCBDb3JlIGk3IDEzdGggR2VuIiwgcmFtOiIzMkdCIEREUjUiLCBzdG9yYWdlOiIyNTZHQiBTU0QiLCBzY3JlZW46JzE0IiBUb3VjaCcsIGNvbmRpdGlvbjoiUmVmdXJiaXNoZWQiLCBxdHk6IjQwIiwgZmVhdHVyZWQ6dHJ1ZSB9LAogIHsgaWQ6InMzIiwgYnJhbmQ6IkRlbGwiLCBtb2RlbDoiTGF0aXR1ZGUgNzQ1MCIsIGNwdToiSW50ZWwgQ29yZSBVbHRyYSA3IiwgcmFtOiIzMkdCIiwgc3RvcmFnZToiNTEyR0IgU1NEIiwgc2NyZWVuOicxNCIgVG91Y2gnLCBjb25kaXRpb246IlJlZnVyYmlzaGVkIiwgcXR5OiIxNSIsIGZlYXR1cmVkOnRydWUgfSwKICB7IGlkOiJzNCIsIGJyYW5kOiJEZWxsIiwgbW9kZWw6IkxhdGl0dWRlIDczMjAgMi1pbi0xIiwgY3B1OiJJbnRlbCBDb3JlIGk1IDExdGggR2VuIiwgcmFtOiI4R0IiLCBzdG9yYWdlOiIyNTZHQiBTU0QiLCBzY3JlZW46JzEzLjMiIEZIRCBUb3VjaCcsIGNvbmRpdGlvbjoiVXNlZCIsIHF0eToiMzAiLCBmZWF0dXJlZDp0cnVlIH0sCiAgeyBpZDoiczUiLCBicmFuZDoiTWljcm9zb2Z0IiwgbW9kZWw6IlN1cmZhY2UgTGFwdG9wIDMiLCBjcHU6IkludGVsIENvcmUgaTcgMTB0aCBHZW4iLCByYW06IjE2R0IiLCBzdG9yYWdlOiIyNTZHQiBTU0QiLCBzY3JlZW46JzEzLjUiIFRvdWNoJywgY29uZGl0aW9uOiJSZWZ1cmJpc2hlZCIsIHF0eToiMjAiLCBmZWF0dXJlZDp0cnVlIH0sCiAgeyBpZDoiczYiLCBicmFuZDoiSFAiLCBtb2RlbDoiRWxpdGVCb29rIDg0MCBHNSIsIGNwdToiSW50ZWwgQ29yZSBpNSA4dGggR2VuIiwgcmFtOiI4R0IiLCBzdG9yYWdlOiIyNTZHQiBTU0QiLCBzY3JlZW46JzE0IiBGSEQnLCBjb25kaXRpb246IlVzZWQiLCBxdHk6IjUwIiwgZmVhdHVyZWQ6dHJ1ZSB9LAogIHsgaWQ6InM3IiwgYnJhbmQ6IkhQIiwgbW9kZWw6IkVsaXRlQm9vayA4NDAgRzEwIiwgY3B1OiJJbnRlbCBDb3JlIGk1IDEzdGggR2VuIiwgcmFtOiIxNkdCIiwgc3RvcmFnZToiNTEyR0IgU1NEIiwgc2NyZWVuOicxNCIgV1VYR0EnLCBjb25kaXRpb246IlJlZnVyYmlzaGVkIiwgcXR5OiIxMiIgfSwKICB7IGlkOiJzOCIsIGJyYW5kOiJMZW5vdm8iLCBtb2RlbDoiVGhpbmtQYWQgVDE0IEdlbiAyIiwgY3B1OiJBTUQgUnl6ZW4gNSBQcm8gNTY1MFUiLCByYW06IjE2R0IiLCBzdG9yYWdlOiIyNTZHQiBTU0QiLCBzY3JlZW46JzE0IiBGSEQnLCBjb25kaXRpb246IlVzZWQiLCBxdHk6IjE4IiB9LAogIHsgaWQ6InM5IiwgYnJhbmQ6IkFwcGxlIiwgbW9kZWw6Ik1hY0Jvb2sgQWlyIE0xIiwgY3B1OiJBcHBsZSBNMSIsIHJhbToiOEdCIiwgc3RvcmFnZToiMjU2R0IgU1NEIiwgc2NyZWVuOicxMy4zIiBSZXRpbmEnLCBjb25kaXRpb246IlJlZnVyYmlzaGVkIiwgcXR5OiIxMCIgfQpdOwoKY29uc3QgU0FNUExFX1BPU1RTID0gWwogIHsgc2x1ZzoiZXZhbHVhdGUtdXNlZC1sYXB0b3AtbG90LWJlZm9yZS1idWxrLXB1cmNoYXNlIiwgdGl0bGU6IkhvdyB0byBldmFsdWF0ZSBhIHVzZWQgbGFwdG9wIGxvdCBiZWZvcmUgYnV5aW5nIGluIGJ1bGsiLCBjYXRlZ29yeToiQnV5aW5nIGd1aWRlIiwgZGF0ZToiMjAyNi0wOS0xNCIsCiAgICBleGNlcnB0OiJGaXZlIGNoZWNrcyB0aGF0IHRlbGwgeW91IHdoZXRoZXIgYSBsb3Qgb2YgdXNlZCBidXNpbmVzcyBsYXB0b3BzIHdpbGwgcmVzZWxsIHdlbGw6IHByb2Nlc3NvciBnZW5lcmF0aW9uLCBiYXR0ZXJ5IGhlYWx0aCwgc2NyZWVuIGNvbmRpdGlvbiwgc3RvcmFnZSB0eXBlIGFuZCBncmFkZSBjb25zaXN0ZW5jeS4iLAogICAgaHRtbDpgPHA+QnV5aW5nIGxhcHRvcHMgYnkgdGhlIGxvdCBpcyBkaWZmZXJlbnQgZnJvbSBidXlpbmcgYSBzaW5nbGUgbWFjaGluZS4gWW91IGFyZSBub3QganVkZ2luZyBvbmUgdW5pdCDigJQgeW91IGFyZSBqdWRnaW5nIGhvdyBjb25zaXN0ZW50IHRoZSB3aG9sZSBsb3QgaXMsIGFuZCBob3cgcXVpY2tseSBpdCB3aWxsIG1vdmUuPC9wPgo8aDI+MS4gUHJvY2Vzc29yIGdlbmVyYXRpb248L2gyPjxwPkdlbmVyYXRpb24gbWF0dGVycyBtb3JlIHRoYW4gdGhlIGk1L2k3IGxhYmVsLiBBbiA4dGggR2VuIGk1IGlzIHN0aWxsIGNvbWZvcnRhYmxlIGZvciBvZmZpY2Ugd29yazsgYW55dGhpbmcgb2xkZXIgaXMgaGFyZGVyIHRvIHJlc2VsbCB0byBidXNpbmVzcyBidXllcnMuPC9wPgo8aDI+Mi4gQmF0dGVyeSBoZWFsdGg8L2gyPjxwPkFzayBmb3IgYSBiYXR0ZXJ5IHJlcG9ydCBvbiBhIHNhbXBsZSBvZiB1bml0cy4gQSBsb3Qgd2l0aCBtaXhlZCBiYXR0ZXJ5IGhlYWx0aCBuZWVkcyBzZXBhcmF0ZSBwcmljaW5nIGZvciBlYWNoIGdyb3VwLjwvcD4KPGgyPjMuIFNjcmVlbiBhbmQgYm9keSBncmFkZTwvaDI+PHA+U2NyYXRjaGVzIGFuZCBwcmVzc3VyZSBtYXJrcyBhZmZlY3QgcmVzYWxlIHByaWNlIG1vcmUgdGhhbiBzbWFsbCBzcGVjaWZpY2F0aW9uIGRpZmZlcmVuY2VzLiBBc2sgZm9yIHBob3RvcyBvZiBib3RoIHRoZSBsaWQgYW5kIHRoZSBkaXNwbGF5LjwvcD4KPGgyPjQuIFN0b3JhZ2UgdHlwZTwvaDI+PHA+U1NEIGlzIG5vdyB0aGUgbWluaW11bSBidXllcnMgZXhwZWN0LiBDaGVjayB3aGV0aGVyIHRoZSBsb3QgaXMgdW5pZm9ybSwgb3IgaGFzIG1peGVkIGNhcGFjaXRpZXMuPC9wPgo8aDI+NS4gQ29uc2lzdGVuY3kgYWNyb3NzIHRoZSBsb3Q8L2gyPjxwPkEgbG90IG9mIHRoZSBzYW1lIG1vZGVsIGFuZCBzcGVjaWZpY2F0aW9uIGlzIGVhc2llciB0byBsaXN0LCBwcmljZSBhbmQgc2VsbCB0aGFuIGEgbWl4ZWQgcGlsZS48L3A+YCB9LAogIHsgc2x1ZzoiZGVsbC1sYXRpdHVkZS12cy1sZW5vdm8tdGhpbmtwYWQtZm9yLXJlc2VsbGVycyIsIHRpdGxlOiJEZWxsIExhdGl0dWRlIHZzIExlbm92byBUaGlua1BhZDogd2hpY2ggc3VpdHMgcmVzYWxlIGJldHRlcj8iLCBjYXRlZ29yeToiQ29tcGFyaXNvbiIsIGRhdGU6IjIwMjYtMDktMDciLAogICAgZXhjZXJwdDoiQm90aCBsaW5lcyBhcmUgYnVpbHQgZm9yIGJ1c2luZXNzIHVzZSBhbmQgYm90aCByZXNlbGwgd2VsbC4gSGVyZSBpcyBob3cgdGhleSBkaWZmZXIgb24ga2V5Ym9hcmRzLCBzcGFyZSBwYXJ0cyBhbmQgd2hhdCBidXllcnMgYXNrIGZvci4iLAogICAgaHRtbDpgPHA+RGVsbCBMYXRpdHVkZSBhbmQgTGVub3ZvIFRoaW5rUGFkIGFyZSB0aGUgdHdvIG1vc3QgY29tbW9uIGJ1c2luZXNzIGxhcHRvcCBsaW5lcyBpbiB0aGUgdXNlZCBtYXJrZXQuIEJvdGggYXJlIGR1cmFibGUgYW5kIGJvdGggYXJlIGZhbWlsaWFyIHRvIGJ1eWVycy48L3A+CjxoMj5XaGF0IGJ1eWVycyBub3RpY2U8L2gyPjx1bD48bGk+PHN0cm9uZz5LZXlib2FyZDo8L3N0cm9uZz4gVGhpbmtQYWQga2V5Ym9hcmRzIGhhdmUgYSBsb3lhbCBmb2xsb3dpbmcgYW1vbmcgb2ZmaWNlIHVzZXJzLjwvbGk+PGxpPjxzdHJvbmc+QnVpbGQ6PC9zdHJvbmc+IExhdGl0dWRlIDUwMDAgYW5kIDcwMDAgc2VyaWVzIGZlZWwgc29saWQgYW5kIGFyZSBlYXN5IHRvIHNlcnZpY2UuPC9saT48bGk+PHN0cm9uZz5TcGFyZSBwYXJ0czo8L3N0cm9uZz4gQm90aCBoYXZlIHdpZGUgYXZhaWxhYmlsaXR5IG9mIGJhdHRlcmllcywgY2hhcmdlcnMgYW5kIHNjcmVlbnMuPC9saT48L3VsPgo8aDI+Rm9yIHJlc2VsbGVyczwvaDI+PHA+U3RvY2sgd2hhdCB5b3VyIGN1c3RvbWVycyBhc2sgZm9yLiBGb3IgY29ycG9yYXRlIGJ1eWVycywgYSBjb25zaXN0ZW50IG1vZGVsIGFjcm9zcyB0aGUgd2hvbGUgb3JkZXIgdXN1YWxseSBtYXR0ZXJzIG1vcmUgdGhhbiB0aGUgYnJhbmQgaXRzZWxmLjwvcD5gIH0sCiAgeyBzbHVnOiJyZWZ1cmJpc2hlZC12cy11c2VkLWxhcHRvcHMtZXhwbGFpbmVkIiwgdGl0bGU6IlJlZnVyYmlzaGVkIHZzIHVzZWQgbGFwdG9wczogd2hhdCB0aGUgdGVybXMgYWN0dWFsbHkgbWVhbiIsIGNhdGVnb3J5OiJCYXNpY3MiLCBkYXRlOiIyMDI2LTA4LTMxIiwKICAgIGV4Y2VycHQ6IlRoZSB0d28gd29yZHMgYXJlIG9mdGVuIHVzZWQgaW50ZXJjaGFuZ2VhYmx5LiBLbm93aW5nIHRoZSBkaWZmZXJlbmNlIGhlbHBzIHlvdSBzZXQgdGhlIHJpZ2h0IHByaWNlIGFuZCB0aGUgcmlnaHQgZXhwZWN0YXRpb25zIHdpdGggeW91ciBjdXN0b21lcnMuIiwKICAgIGh0bWw6YDxwPkEgPHN0cm9uZz51c2VkPC9zdHJvbmc+IGxhcHRvcCBpcyBzb2xkIGFzIGl0IHdhcyByZWNlaXZlZCwgdXN1YWxseSBhZnRlciBhIGJhc2ljIGZ1bmN0aW9uIGNoZWNrLiBBIDxzdHJvbmc+cmVmdXJiaXNoZWQ8L3N0cm9uZz4gbGFwdG9wIGhhcyBiZWVuIGNoZWNrZWQsIGNsZWFuZWQgYW5kLCB3aGVyZSBuZWVkZWQsIGhhZCBwYXJ0cyByZXBsYWNlZCBiZWZvcmUgc2FsZS48L3A+CjxoMj5XaHkgaXQgbWF0dGVycyBmb3IgZGVhbGVyczwvaDI+PHA+UmVmdXJiaXNoZWQgdW5pdHMgY29zdCBtb3JlIGJ1dCBuZWVkIGxlc3Mgd29yayBiZWZvcmUgcmVzYWxlLiBVc2VkIHVuaXRzIGxlYXZlIHJvb20gZm9yIHlvdXIgb3duIHByZXBhcmF0aW9uIGFuZCBtYXJnaW4uPC9wPgo8cD5XaGljaGV2ZXIgeW91IGJ1eSwgYXNrIHRoZSBzdXBwbGllciB0byBzdGF0ZSB0aGUgY29uZGl0aW9uIGNsZWFybHkgb24gZXZlcnkgbGlzdGluZy48L3A+YCB9LAogIHsgc2x1ZzoiY2hvb3NpbmctcHJvY2Vzc29yLWdlbmVyYXRpb24tYnVzaW5lc3MtbGFwdG9wcyIsIHRpdGxlOiJDaG9vc2luZyB0aGUgcmlnaHQgcHJvY2Vzc29yIGdlbmVyYXRpb24gZm9yIGJ1c2luZXNzIGJ1eWVycyIsIGNhdGVnb3J5OiJCdXlpbmcgZ3VpZGUiLCBkYXRlOiIyMDI2LTA4LTI0IiwKICAgIGV4Y2VycHQ6IkZyb20gOHRoIEdlbiBJbnRlbCB0byBDb3JlIFVsdHJhOiBhIHNpbXBsZSB3YXkgdG8gbWF0Y2ggcHJvY2Vzc29yIGdlbmVyYXRpb24gdG8gd2hhdCB5b3VyIGN1c3RvbWVyIHdpbGwgYWN0dWFsbHkgdXNlIHRoZSBsYXB0b3AgZm9yLiIsCiAgICBodG1sOmA8cD5Nb3N0IGJ1c2luZXNzIGJ1eWVycyBuZWVkIGVtYWlsLCBicm93c2Vycywgc3ByZWFkc2hlZXRzIGFuZCB2aWRlbyBjYWxscy4gVGhhdCB3b3JrbG9hZCBkb2VzIG5vdCBuZWVkIHRoZSBuZXdlc3QgcHJvY2Vzc29yLjwvcD4KPGgyPkEgc2ltcGxlIGd1aWRlPC9oMj48dWw+PGxpPjxzdHJvbmc+OHRo4oCTMTB0aCBHZW4gSW50ZWw6PC9zdHJvbmc+IG9mZmljZSB3b3JrLCBzY2hvb2xzLCBjYWxsIGNlbnRyZXMuPC9saT48bGk+PHN0cm9uZz4xMXRo4oCTMTN0aCBHZW4gSW50ZWwgLyBSeXplbiA1MDAwOjwvc3Ryb25nPiBoZWF2aWVyIG11bHRpdGFza2luZyBhbmQgbG9uZ2VyIGxpZmUuPC9saT48bGk+PHN0cm9uZz5Db3JlIFVsdHJhOjwvc3Ryb25nPiBidXllcnMgd2hvIHdhbnQgdGhlIG5ld2VzdCBwbGF0Zm9ybS48L2xpPjwvdWw+CjxwPk1hdGNoIHRoZSBnZW5lcmF0aW9uIHRvIHRoZSBidWRnZXQsIGFuZCBxdW90ZSBhbHRlcm5hdGl2ZXMgd2hlbiBzdG9jayBvZiBvbmUgbW9kZWwgcnVucyBsb3cuPC9wPmAgfQpdOwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIDMpIEhFTFBFUlMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCmNvbnN0ICQgPSAocywgcj1kb2N1bWVudCkgPT4gci5xdWVyeVNlbGVjdG9yKHMpOwpjb25zdCAkJCA9IChzLCByPWRvY3VtZW50KSA9PiBbLi4uci5xdWVyeVNlbGVjdG9yQWxsKHMpXTsKY29uc3QgZXNjID0gcyA9PiBTdHJpbmcocyA\/PyAiIikucmVwbGFjZSgvWyY8PiInXS9nLCBjID0+ICh7IiYiOiImYW1wOyIsIjwiOiImbHQ7IiwiPiI6IiZndDsiLCciJzoiJnF1b3Q7IiwiJyI6IiYjMzk7In1bY10pKTsKY29uc3QgZGVjb2RlID0gcyA9PiB7IGNvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTsgdC5pbm5lckhUTUw9c3x8IiI7IHJldHVybiB0LnZhbHVlOyB9Owpjb25zdCBpc1BoID0gdiA9PiAvXlxbLipcXSQvLnRlc3QoU3RyaW5nKHZ8fCIiKSk7CmNvbnN0IHNob3cgPSB2ID0+IGlzUGgodikgPyBgPHNwYW4gY2xhc3M9InBoIj4ke2VzYyh2KX08L3NwYW4+YCA6IGVzYyh2KTsKY29uc3Qgd2FMaW5rID0gbXNnID0+IGBodHRwczovL3dhLm1lLyR7Q09ORklHLldIQVRTQVBQX05VTUJFUn0\/dGV4dD0ke2VuY29kZVVSSUNvbXBvbmVudChtc2cpfWA7CmNvbnN0IHdhR2VuZXJhbCA9ICgpID0+IHdhTGluayhDT05GSUcuV0FfR0VORVJBTCk7CmNvbnN0IHBOYW1lID0gcCA9PiBgJHtwLmJyYW5kfSAke3AubW9kZWx9YC50cmltKCk7CmNvbnN0IHdhUHJvZHVjdCA9IHAgPT4gd2FMaW5rKENPTkZJRy5XQV9QUk9EVUNULnJlcGxhY2UoIntQUk9EVUNUfSIsIHBOYW1lKHApKSk7CmNvbnN0IGZtdERhdGUgPSBkID0+IHsgdHJ5IHsgcmV0dXJuIG5ldyBEYXRlKGQpLnRvTG9jYWxlRGF0ZVN0cmluZygiZW4tSU4iLHtkYXk6Im51bWVyaWMiLG1vbnRoOiJzaG9ydCIseWVhcjoibnVtZXJpYyJ9KTsgfSBjYXRjaChlKXsgcmV0dXJuIGQ7IH0gfTsKZnVuY3Rpb24gaHJlZihwKXsKICBpZiAoV1BfTU9ERSl7CiAgICBpZiAocC5zdGFydHNXaXRoKCIvYmxvZ3MvIikpIHJldHVybiBDT05GSUcuUEFHRV9VUkxTWyIvYmxvZ3MiXSArIChDT05GSUcuUEFHRV9VUkxTWyIvYmxvZ3MiXS5pbmNsdWRlcygiPyIpID8gIiYiIDogIj8iKSArICJhcnRpY2xlPSIgKyBlbmNvZGVVUklDb21wb25lbnQocC5zbGljZSg3KSk7CiAgICByZXR1cm4gQ09ORklHLlBBR0VfVVJMU1twXSB8fCAiLyI7CiAgfQogIHJldHVybiBDT05GSUcuQ0xFQU5fVVJMUyA\/IHAgOiAiIyIgKyBwOwp9CmNvbnN0IGFicyA9IHAgPT4gV1BfTU9ERSA\/IG5ldyBVUkwoaHJlZihwKSwgQ09ORklHLlNJVEVfVVJMKS5ocmVmIDogQ09ORklHLlNJVEVfVVJMICsgKHAgPT09ICIvIiA\/ICIvIiA6IHAgKyAiLyIpOwpjb25zdCBhZGRQYXJhbSA9ICh1LCBrLCB2KSA9PiB1ICsgKHUuaW5jbHVkZXMoIj8iKSA\/ICImIiA6ICI\/IikgKyBrICsgIj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KHYpOwoKY29uc3QgSSA9IHsKICBib3hlczonPHBhdGggZD0iTTMgOCAxMiAzLjUgMjEgOGwtOSA0LjV6Ii8+PHBhdGggZD0iTTMgOHY4bDkgNC41IDktNC41VjgiLz48cGF0aCBkPSJNMTIgMTIuNXY4Ii8+PHBhdGggZD0ibTcuNSA1LjggOSA0LjUiLz4nLAogIHNoaWVsZDonPHBhdGggZD0iTTEyIDMgMTkgNnY1LjJjMCA0LjMtMi45IDcuOC03IDkuOC00LjEtMi03LTUuNS03LTkuOFY2eiIvPjxwYXRoIGQ9Im04LjggMTIgMi4zIDIuMyA0LjItNC42Ii8+JywKICBsYXllcnM6JzxwYXRoIGQ9Im0xMiAzIDkgNC44LTkgNC44LTktNC44eiIvPjxwYXRoIGQ9Im0zIDEyLjIgOSA0LjggOS00LjgiLz48cGF0aCBkPSJtMyAxNi40IDkgNC42IDktNC42Ii8+JywKICBicmllZjonPHJlY3QgeD0iMyIgeT0iNyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEzIiByeD0iMiIvPjxwYXRoIGQ9Ik05IDdWNS41QTEuNSAxLjUgMCAwIDEgMTAuNSA0aDNBMS41IDEuNSAwIDAgMSAxNSA1LjVWNyIvPjxwYXRoIGQ9Ik0zIDEyLjVoMTgiLz48cGF0aCBkPSJNMTEgMTIuNWgydjJoLTJ6Ii8+JywKICBjaGF0Oic8cGF0aCBkPSJNMjAuNSAxMS44YTguNSA4LjUgMCAwIDEtMTIuNCA3LjZMMy41IDIwLjVsMS4yLTQuM2E4LjUgOC41IDAgMSAxIDE1LjgtNC40eiIvPjxwYXRoIGQ9Ik05LjIgOC42Yy0uMyAyLjcgMi44IDYuMyA1LjkgNi4ybC45LTEuNC0xLjktMS0xIC44Yy0uOS0uNC0xLjgtMS4zLTIuMi0yLjJsLjgtMS0xLTEuOXoiLz4nLAogIHNlYXJjaDonPGNpcmNsZSBjeD0iMTEiIGN5PSIxMSIgcj0iNyIvPjxwYXRoIGQ9Im0yMCAyMC0zLjgtMy44Ii8+JywKICBjbG9zZTonPHBhdGggZD0iTTYgNmwxMiAxMk0xOCA2IDYgMTgiLz4nLAogIGZpbHRlcjonPHBhdGggZD0iTTQgNmgxNk03IDEyaDEwTTEwIDE4aDQiLz4nLAogIHRhcmdldDonPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iOC41Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iNC41Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMSIvPicsCiAgbGluazonPHBhdGggZD0iTTkuNSAxNC41IDE0LjUgOS41Ii8+PHBhdGggZD0iTTEwLjggNi43IDEyLjYgNWE0LjIgNC4yIDAgMCAxIDYgNmwtMS44IDEuOCIvPjxwYXRoIGQ9Ik0xMy4yIDE3LjMgMTEuNCAxOWE0LjIgNC4yIDAgMCAxLTYtNmwxLjgtMS44Ii8+JywKICBsYXB0b3A6JzxyZWN0IHg9IjQuNSIgeT0iNSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjEwIiByeD0iMS41Ii8+PHBhdGggZD0iTTIuNSAxOC41aDE5Ii8+JywKICByZWZyZXNoOic8cGF0aCBkPSJNMjAgMTJhOCA4IDAgMCAxLTE0LjMgNC45Ii8+PHBhdGggZD0iTTQgMTJBOCA4IDAgMCAxIDE4LjMgNy4xIi8+PHBhdGggZD0iTTE4LjUgMy41djRoLTQiLz48cGF0aCBkPSJNNS41IDIwLjV2LTRoNCIvPicsCiAgc3RhY2s6JzxyZWN0IHg9IjMiIHk9IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSI0LjUiIHJ4PSIxLjIiLz48cmVjdCB4PSIzIiB5PSIxMCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjQuNSIgcng9IjEuMiIvPjxyZWN0IHg9IjMiIHk9IjE2IiB3aWR0aD0iMTgiIGhlaWdodD0iNC41IiByeD0iMS4yIi8+JywKICBidWlsZGluZzonPHBhdGggZD0iTTQgMjFWNS41TDEyIDN2MTgiLz48cGF0aCBkPSJNMTIgOC41IDIwIDExdjEwIi8+PHBhdGggZD0iTTMgMjFoMTgiLz48cGF0aCBkPSJNNy41IDguNWgxTTcuNSAxMmgxTTcuNSAxNS41aDFNMTUuNSAxNGgxTTE1LjUgMTcuNWgxIi8+JywKICBzdG9yZTonPHBhdGggZD0iTTQgOS41VjIwaDE2VjkuNSIvPjxwYXRoIGQ9Ik0zIDkuNSA1IDRoMTRsMiA1LjVhMi43IDIuNyAwIDAgMS01LjQgMCAyLjcgMi43IDAgMCAxLTUuMyAwIDIuNyAyLjcgMCAwIDEtNS4zIDB6Ii8+PHBhdGggZD0iTTEwIDIwdi01aDR2NSIvPicsCiAgcGluOic8cGF0aCBkPSJNMTIgMjFzLTYuNS02LTYuNS0xMWE2LjUgNi41IDAgMCAxIDEzIDBjMCA1LTYuNSAxMS02LjUgMTF6Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMCIgcj0iMi4zIi8+JywKICBwaG9uZTonPHBhdGggZD0iTTUgNGgzLjVsMS44IDQuNC0yLjIgMS40YTExIDExIDAgMCAwIDYuMSA2LjFsMS40LTIuMkwyMCAxNS41VjE5YTEuNSAxLjUgMCAwIDEtMS42IDEuNUExNi41IDE2LjUgMCAwIDEgMy41IDUuNiAxLjUgMS41IDAgMCAxIDUgNHoiLz4nLAogIG1haWw6JzxyZWN0IHg9IjMiIHk9IjUiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNCIgcng9IjIiLz48cGF0aCBkPSJtMy41IDYuNSA4LjUgNi41IDguNS02LjUiLz4nLAogIGNsb2NrOic8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI4LjUiLz48cGF0aCBkPSJNMTIgNy41VjEybDMgMiIvPicsCiAgY2hlY2s6JzxwYXRoIGQ9Im01IDEyLjUgNC41IDQuNUwxOSA3LjUiLz4nLAogIGJhY2s6JzxwYXRoIGQ9Ik0xNSA1bC03IDcgNyA3Ii8+JywKICBzZW5kOic8cGF0aCBkPSJNMjAuNSAzLjUgMTAgMTQiLz48cGF0aCBkPSJNMjAuNSAzLjUgMTQgMjAuNWwtNC02LjUtNi41LTR6Ii8+Jwp9Owpjb25zdCBpY29uID0gKG4sIGNscz0iIikgPT4gYDxzdmcgY2xhc3M9ImljICR7Y2xzfSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPiR7SVtuXX08L3N2Zz5gOwoKLyogTGFwdG9wIGlsbHVzdHJhdGlvbiB1c2VkIHdoZW4gYSBwcm9kdWN0IGhhcyBubyBwaG90byB5ZXQgKi8KY29uc3QgVElOVCA9IHsgRGVsbDpbIiMxNjUwOEYiLCIjNThCRUUzIl0sIExlbm92bzpbIiMxQzJBNDAiLCIjNkY4REI1Il0sIEhQOlsiIzBDNUU4RSIsIiM3RkQ0RUUiXSwgTWljcm9zb2Z0OlsiIzM0NDM3RiIsIiM5OEIyRUUiXSwgQXBwbGU6WyIjNEI1NjY3IiwiI0M5RDRFMSJdLCBPdGhlcjpbIiMxQjM1NUEiLCIjODBCNUQ0Il0gfTsKbGV0IHVpZE4gPSAwOwpmdW5jdGlvbiBsYXB0b3BBcnQoYnJhbmQsIGxhYmVsKXsKICBjb25zdCBbYSxiXSA9IFRJTlRbYnJhbmRdIHx8IFRJTlQuT3RoZXI7IGNvbnN0IHUgPSAiZyIgKyAodWlkTisrKTsKICByZXR1cm4gYDxzdmcgdmlld0JveD0iMCAwIDMyMCAyMTAiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iJHtlc2MobGFiZWx8fCJMYXB0b3AiKX0iPgogIDxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0icyR7dX0iIHgxPSIwIiB5MT0iMCIgeDI9IjEiIHkyPSIxIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiR7YX0iLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiR7Yn0iLz48L2xpbmVhckdyYWRpZW50PgogIDxsaW5lYXJHcmFkaWVudCBpZD0iYiR7dX0iIHgxPSIwIiB5MT0iMCIgeDI9IjAiIHkyPSIxIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNFRUYyRjYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNBOEI0QzIiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz4KICA8ZWxsaXBzZSBjeD0iMTYwIiBjeT0iMTk3IiByeD0iMTQwIiByeT0iNiIgZmlsbD0iIzBBMTgzMCIgb3BhY2l0eT0iLjE0Ii8+CiAgPHJlY3QgeD0iNDQiIHk9IjEyIiB3aWR0aD0iMjMyIiBoZWlnaHQ9IjE1MiIgcng9IjkiIGZpbGw9IiMxNzIwMzAiLz4KICA8cmVjdCBjbGFzcz0ic2NyIiB4PSI1MyIgeT0iMjEiIHdpZHRoPSIyMTQiIGhlaWdodD0iMTM0IiByeD0iMyIgZmlsbD0idXJsKCNzJHt1fSkiLz4KICA8cGF0aCBkPSJNNTMgMTE4QzExMiA4OCAxNzIgMTM4IDI2NyA2OHY4N0g1M3oiIGZpbGw9IiNmZmYiIG9wYWNpdHk9Ii4xMSIvPgogIDxwYXRoIGQ9Ik01MyAxNDBjNjYtMjIgMTM2IDEwIDIxNC0zMnY0N0g1M3oiIGZpbGw9IiNmZmYiIG9wYWNpdHk9Ii4wOCIvPgogIDxjaXJjbGUgY3g9IjE2MCIgY3k9IjE2LjUiIHI9IjEuNSIgZmlsbD0iIzNBNDY1NiIvPgogIDxwYXRoIGQ9Ik0xNiAxNjZoMjg4bC0xMCAxOHEtMyA2LTEwIDZIMzZxLTcgMC0xMC02eiIgZmlsbD0idXJsKCNiJHt1fSkiLz4KICA8cmVjdCB4PSIxMzYiIHk9IjE2NiIgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQiIHJ4PSIyIiBmaWxsPSIjODg5NEEzIi8+PC9zdmc+YDsKfQpmdW5jdGlvbiBoZXJvQXJ0KGJyYW5kKXsKICBjb25zdCBbYSxiXSA9IFRJTlRbYnJhbmRdIHx8IFRJTlQuRGVsbDsKICByZXR1cm4gYDxzdmcgdmlld0JveD0iMCAwIDU0MCA0NDAiIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICA8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImhzIiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIke2F9Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIke2J9Ii8+PC9saW5lYXJHcmFkaWVudD4KICA8bGluZWFyR3JhZGllbnQgaWQ9ImhiIiB4MT0iMCIgeTE9IjAiIHgyPSIwIiB5Mj0iMSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjRjFGNEY4Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjOUZBQ0JCIi8+PC9saW5lYXJHcmFkaWVudD4KICA8bGluZWFyR3JhZGllbnQgaWQ9ImhsIiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMkEzOTUwIi8+PHN0b3Agb2Zmc2V0PSIuNSIgc3RvcC1jb2xvcj0iIzNCNEQ2OCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzI2MzQ0QSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPgogIDxnIG9wYWNpdHk9Ii45Ij48cmVjdCB4PSI2MiIgeT0iMzgwIiB3aWR0aD0iNDIwIiBoZWlnaHQ9IjE2IiByeD0iNiIgZmlsbD0idXJsKCNobCkiLz48cmVjdCB4PSI2MiIgeT0iMzkyIiB3aWR0aD0iNDIwIiBoZWlnaHQ9IjQiIHJ4PSIyIiBmaWxsPSIjMEIxNDI0IiBvcGFjaXR5PSIuNiIvPjwvZz4KICA8Zz48cmVjdCB4PSI1MiIgeT0iMzYwIiB3aWR0aD0iNDQwIiBoZWlnaHQ9IjE4IiByeD0iNiIgZmlsbD0idXJsKCNobCkiLz48cmVjdCB4PSI1MiIgeT0iMzc0IiB3aWR0aD0iNDQwIiBoZWlnaHQ9IjQiIHJ4PSIyIiBmaWxsPSIjMEIxNDI0IiBvcGFjaXR5PSIuNiIvPjwvZz4KICA8cmVjdCB4PSI5NiIgeT0iMzAiIHdpZHRoPSIzNTIiIGhlaWdodD0iMjMyIiByeD0iMTMiIGZpbGw9IiMxNDFDMkEiLz4KICA8cmVjdCBjbGFzcz0ic2NyIiB4PSIxMDkiIHk9IjQzIiB3aWR0aD0iMzI2IiBoZWlnaHQ9IjIwNiIgcng9IjQiIGZpbGw9InVybCgjaHMpIi8+CiAgPHBhdGggZD0iTTEwOSAxOTBjOTAtNDYgMTgwIDMwIDMyNi03OHYxMzdIMTA5eiIgZmlsbD0iI2ZmZiIgb3BhY2l0eT0iLjEyIi8+CiAgPHBhdGggZD0iTTEwOSAyMjJjMTAwLTM0IDIwOCAxNCAzMjYtNDh2NzVIMTA5eiIgZmlsbD0iI2ZmZiIgb3BhY2l0eT0iLjA4Ii8+CiAgPGcgb3BhY2l0eT0iLjg1IiBmaWxsPSIjZmZmIj48cmVjdCB4PSIxMzMiIHk9IjcwIiB3aWR0aD0iOTIiIGhlaWdodD0iOCIgcng9IjQiIG9wYWNpdHk9Ii43Ii8+PHJlY3QgeD0iMTMzIiB5PSI4OCIgd2lkdGg9IjE1MCIgaGVpZ2h0PSI1IiByeD0iMi41IiBvcGFjaXR5PSIuMzUiLz48cmVjdCB4PSIxMzMiIHk9IjEwMCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI1IiByeD0iMi41IiBvcGFjaXR5PSIuMzUiLz48L2c+CiAgPGNpcmNsZSBjeD0iMjcyIiBjeT0iMzYuNSIgcj0iMiIgZmlsbD0iIzNBNDY1NiIvPgogIDxwYXRoIGQ9Ik00MCAyNjRoNDY0bC0xNSAyOHEtNCA4LTE0IDhINjlxLTEwIDAtMTQtOHoiIGZpbGw9InVybCgjaGIpIi8+CiAgPHBhdGggZD0iTTQwIDI2NGg0NjRsLTIgNEg0MnoiIGZpbGw9IiNmZmYiIG9wYWNpdHk9Ii43Ii8+CiAgPHJlY3QgeD0iMjM2IiB5PSIyNjQiIHdpZHRoPSI3MiIgaGVpZ2h0PSI1IiByeD0iMi41IiBmaWxsPSIjODM5MUEyIi8+CiAgPGVsbGlwc2UgY3g9IjI3MiIgY3k9IjMxOCIgcng9IjIzNSIgcnk9IjEwIiBmaWxsPSIjMDAwIiBvcGFjaXR5PSIuMjUiLz48L3N2Zz5gOwp9CmZ1bmN0aW9uIHByb2R1Y3RNZWRpYShwLCBjbHM9IiIpewogIHJldHVybiBwLmltYWdlcyAmJiBwLmltYWdlcy5sZW5ndGgKICAgID8gYDxpbWcgY2xhc3M9InBoLWJnIiBzcmM9IiR7ZXNjKHAuaW1hZ2VzWzBdLnNyYyl9IiBhbHQ9IiIgYXJpYS1oaWRkZW49InRydWUiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+PGltZyBjbGFzcz0icGgtZmciIHNyYz0iJHtlc2MocC5pbWFnZXNbMF0uc3JjKX0iIGFsdD0iJHtlc2MocC5pbWFnZXNbMF0uYWx0IHx8IHBOYW1lKHApICsgIiBsYXB0b3AiKX0iIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+YAogICAgOiBsYXB0b3BBcnQocC5icmFuZCwgYCR7cE5hbWUocCl9IGxhcHRvcGApOwp9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgNCkgREFUQSBMQVlFUiDigJQgbGl2ZSBXb29Db21tZXJjZSBwcm9kdWN0cyArIFdvcmRQcmVzcyBwb3N0cwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KY29uc3QgQlJBTkRTID0gWyJEZWxsIiwiTGVub3ZvIiwiSFAiLCJNaWNyb3NvZnQiLCJBcHBsZSIsIk90aGVyIl07CmNvbnN0IFBST0NTID0gWyJpNSIsImk3IiwiaTkiLCJDb3JlIFVsdHJhIiwiQU1EIl07CmZ1bmN0aW9uIHByb2NGYW1pbHkoY3B1KXsKICBjb25zdCBjID0gKGNwdXx8IiIpLnRvTG93ZXJDYXNlKCk7CiAgaWYgKC91bHRyYS8udGVzdChjKSkgcmV0dXJuICJDb3JlIFVsdHJhIjsKICBpZiAoL1xiaTlcYnxpOVstIF0vLnRlc3QoYykpIHJldHVybiAiaTkiOwogIGlmICgvXGJpN1xifGk3Wy0gXS8udGVzdChjKSkgcmV0dXJuICJpNyI7CiAgaWYgKC9cYmk1XGJ8aTVbLSBdLy50ZXN0KGMpKSByZXR1cm4gImk1IjsKICBpZiAoL3J5emVufGFtZC8udGVzdChjKSkgcmV0dXJuICJBTUQiOwogIHJldHVybiAiT3RoZXIiOwp9CmZ1bmN0aW9uIG5vcm1CcmFuZChzKXsKICBjb25zdCB0PShzfHwiIikudG9Mb3dlckNhc2UoKTsKICBpZiAodC5pbmNsdWRlcygiZGVsbCIpKSByZXR1cm4gIkRlbGwiOyBpZiAodC5pbmNsdWRlcygibGVub3ZvIil8fHQuaW5jbHVkZXMoInRoaW5rcGFkIikpIHJldHVybiAiTGVub3ZvIjsKICBpZiAodC5pbmNsdWRlcygiaHAiKXx8dC5pbmNsdWRlcygiZWxpdGVib29rIil8fHQuaW5jbHVkZXMoInpib29rIil8fHQuaW5jbHVkZXMoInByb2Jvb2siKSkgcmV0dXJuICJIUCI7CiAgaWYgKHQuaW5jbHVkZXMoIm1pY3Jvc29mdCIpfHx0LmluY2x1ZGVzKCJzdXJmYWNlIikpIHJldHVybiAiTWljcm9zb2Z0IjsKICBpZiAodC5pbmNsdWRlcygiYXBwbGUiKXx8dC5pbmNsdWRlcygibWFjYm9vayIpKSByZXR1cm4gIkFwcGxlIjsgcmV0dXJuICJPdGhlciI7Cn0KZnVuY3Rpb24gZW5yaWNoKHApewogIHAuYnJhbmQgPSBCUkFORFMuaW5jbHVkZXMocC5icmFuZCkgPyBwLmJyYW5kIDogbm9ybUJyYW5kKHAuYnJhbmQgKyAiICIgKyBwLm1vZGVsKTsKICBwLnByb2MgPSBwcm9jRmFtaWx5KHAuY3B1KTsKICBwLmhheSA9IFtwLmJyYW5kLHAubW9kZWwscC5jcHUscC5yYW0scC5zdG9yYWdlLHAuc2NyZWVuLHAuY29uZGl0aW9uLHAucHJvY10uam9pbigiICIpLnRvTG93ZXJDYXNlKCk7CiAgcC5pbWFnZXMgPSBwLmltYWdlcyB8fCBbXTsKICByZXR1cm4gcDsKfQpjb25zdCBXT1JEUyA9IHsgdGhpbmtwYWQ6IlRoaW5rUGFkIiwgdGhpbmtib29rOiJUaGlua0Jvb2siLCBpZGVhcGFkOiJJZGVhUGFkIiwgZWxpdGVib29rOiJFbGl0ZUJvb2siLCBwcm9ib29rOiJQcm9Cb29rIiwgemJvb2s6IlpCb29rIiwgbWFjYm9vazoiTWFjQm9vayIsIHhwczoiWFBTIiwgIjJpbjEiOiIyLWluLTEiLCBocDoiSFAiLCBnOiJHIiB9OwpmdW5jdGlvbiB0aXRsZU1vZGVsKHMpewogIHJldHVybiBzLnRyaW0oKS5zcGxpdCgvXHMrLykubWFwKHcgPT4geyBjb25zdCBsID0gdy50b0xvd2VyQ2FzZSgpOwogICAgaWYgKFdPUkRTW2xdKSByZXR1cm4gV09SRFNbbF07CiAgICBpZiAoL15bYS16XSskLy50ZXN0KGwpKSByZXR1cm4gbFswXS50b1VwcGVyQ2FzZSgpICsgbC5zbGljZSgxKTsKICAgIHJldHVybiB3LnRvVXBwZXJDYXNlKCk7IH0pLmpvaW4oIiAiKS5yZXBsYWNlKC8tRyhcZCkvLCIgRyQxIik7Cn0KY29uc3QgY2FwID0gcyA9PiBTdHJpbmcoc3x8IiIpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXGJcdy9nLCBjID0+IGMudG9VcHBlckNhc2UoKSk7CmZ1bmN0aW9uIG5pY2VDcHUoYyl7CiAgcmV0dXJuIFN0cmluZyhjfHwiIikucmVwbGFjZSgvXGJJTlRFTFxiL2ksIkludGVsIikucmVwbGFjZSgvXGJDT1JFXGIvaSwiQ29yZSIpLnJlcGxhY2UoL1xiSShbMzU3OV0pXGJccyovaSwiaSQxLSIpLnJlcGxhY2UoLy0oXGR7NCw1fVtBLVowLTldKikvaSwobSxhKT0+Ii0iK2EudG9VcHBlckNhc2UoKSkKICAgIC5yZXBsYWNlKC9cYlVMVFJBXGIvaSwiVWx0cmEiKS5yZXBsYWNlKC9cKD8oXGR7MSwyfSkoU1R8TkR8UkR8VEgpXHMqR0VOKEVSQVRJT04pP1wpPy9pLChtLG4sdCk9PmAoJHtufSR7dC50b0xvd2VyQ2FzZSgpfSBHZW4pYCkKICAgIC5yZXBsYWNlKC9Db3JlXHMrKENFTEVST058UEVOVElVTSkvaSwobSxhKT0+Y2FwKGEpKS5yZXBsYWNlKC9cKChcZCspXHMqQ09SRVwpL2ksIigkMS1jb3JlKSIpLnJlcGxhY2UoL1xzezIsfS9nLCIgIikucmVwbGFjZSgvLVxzLywiLSIpLnRyaW0oKTsKfQpmdW5jdGlvbiBtYXBXb28odyl7CiAgY29uc3QgbmFtZSA9IGRlY29kZSh3Lm5hbWUpOwogIGNvbnN0IHBhcnRzID0gbmFtZS5zcGxpdCgifCIpLm1hcCh4ID0+IHgudHJpbSgpKTsKICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsgZGl2LmlubmVySFRNTCA9ICh3LmRlc2NyaXB0aW9ufHwiIikgKyAiXG4iICsgKHcuc2hvcnRfZGVzY3JpcHRpb258fCIiKTsKICBjb25zdCBrdiA9IHt9OwogIGRpdi5xdWVyeVNlbGVjdG9yQWxsKCJ0ciIpLmZvckVhY2godHIgPT4geyBjb25zdCBjID0gdHIucXVlcnlTZWxlY3RvckFsbCgidGgsdGQiKTsgaWYgKGMubGVuZ3RoPj0yKSBrdltjWzBdLnRleHRDb250ZW50LnRyaW0oKS50b0xvd2VyQ2FzZSgpXSA9IGNbMV0udGV4dENvbnRlbnQudHJpbSgpOyB9KTsKICAody5hdHRyaWJ1dGVzfHxbXSkuZm9yRWFjaChhID0+IGt2WyhhLm5hbWV8fCIiKS50b0xvd2VyQ2FzZSgpXSA9IChhLnRlcm1zfHxbXSkubWFwKHQ9PnQubmFtZSkuam9pbigiLCAiKSk7CiAgLy8gZXhhY3Qga2V5IGZpcnN0LCB0aGVuIHBhcnRpYWwgbWF0Y2gKICBjb25zdCBwaWNrID0gKC4uLmtleXMpID0+IHsgZm9yIChjb25zdCBrIG9mIGtleXMpIGlmIChrdltrXSkgcmV0dXJuIGt2W2tdOyBmb3IgKGNvbnN0IGsgb2Yga2V5cykgZm9yIChjb25zdCBrayBpbiBrdikgaWYgKGtrLmluY2x1ZGVzKGspICYmIGt2W2trXSkgcmV0dXJuIGt2W2trXTsgcmV0dXJuICIiOyB9OwogIGNvbnN0IGhlYWQgPSBwYXJ0c1swXSB8fCBuYW1lOwogIGNvbnN0IGJyYW5kID0gbm9ybUJyYW5kKGhlYWQgKyAiICIgKyAody5jYXRlZ29yaWVzfHxbXSkubWFwKGM9PmMubmFtZSkuam9pbigiICIpKTsKICBjb25zdCBtb2RlbCA9IHRpdGxlTW9kZWwoaGVhZC5yZXBsYWNlKC9eKHJlZnVyYmlzaGVkfHVzZWQpXHMrL2ksIiIpLnJlcGxhY2UobmV3IFJlZ0V4cCgiXigiICsgYnJhbmQgKyAifGhwfGRlbGx8bGVub3ZvfGFwcGxlfG1pY3Jvc29mdClcXHMrIiwiaSIpLCIiKSk7CiAgY29uc3QgdG91Y2ggPSAvXnkvaS50ZXN0KHBpY2soInRvdWNoIHNjcmVlbiIsInRvdWNoIikpOwogIGxldCBzY3JlZW4gPSBwaWNrKCJkaXNwbGF5Iiwic2NyZWVuIHNpemUiLCJzY3JlZW4iKS5yZXBsYWNlKC\/igLMvZywnIicpOwogIGlmICh0b3VjaCAmJiBzY3JlZW4gJiYgIS90b3VjaC9pLnRlc3Qoc2NyZWVuKSkgc2NyZWVuICs9ICIgVG91Y2giOwogIGNvbnN0IHJ4ID0gciA9PiAobmFtZS5tYXRjaChyKXx8WyIiXSlbMF0udHJpbSgpOwogIHJldHVybiBlbnJpY2goewogICAgaWQ6ICJ3IiArIHcuaWQsIGJyYW5kLCBtb2RlbCwgc2t1OiB3LnNrdSwgZmVhdHVyZWQ6ICEhdy5mZWF0dXJlZCwKICAgIGNwdTogbmljZUNwdShwaWNrKCJwcm9jZXNzb3IiLCJjcHUiKSB8fCBwYXJ0c1sxXSB8fCAiIiksCiAgICByYW06IChwaWNrKCJyYW0iLCJtZW1vcnkiKSB8fCByeCgvXGJcZHsxLDJ9XHM\/R0IoPz1ccypSQU0pL2kpKS5yZXBsYWNlKC9ccypSQU0kL2ksIiIpLAogICAgc3RvcmFnZTogcGljaygic3RvcmFnZSIsInNzZCIsImhkZCIpIHx8IHJ4KC9cYlxkK1xzPyhHQnxUQilccz8oU1NEfEhERHxOVk1lKS9pKSwKICAgIHNjcmVlbiwKICAgIGNvbmRpdGlvbjogY2FwKHBpY2soImNvbmRpdGlvbiIsImdyYWRlIikpIHx8ICJSZWZ1cmJpc2hlZCIsCiAgICBxdHk6IHBpY2soInF1YW50aXR5IiwicXR5IiwiYXZhaWxhYmxlIHF1YW50aXR5Iiwic3RvY2sgcXR5IikgfHwgKHcuaXNfaW5fc3RvY2sgPT09IGZhbHNlID8gIkFzayIgOiAiSW4gc3RvY2siKSwKICAgIHNwZWNzOiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoa3YpLm1hcCgoW2ssdl0pID0+IFtrLCAvXltBLVowLTkgLiwvKCktXSskLy50ZXN0KHYpICYmIHYubGVuZ3RoID4gMyA\/IGNhcCh2KSA6IHZdKSksCiAgICBpbWFnZXM6ICh3LmltYWdlc3x8W10pLmZpbHRlcihpID0+ICEvUEhPVE9cLnBuZy9pLnRlc3QoaS5zcmMpKS5tYXAoaSA9PiAoeyBzcmM6aS5zcmMsIGFsdDppLmFsdCB8fCBuYW1lIH0pKSwKICAgIHVybDogdy5wZXJtYWxpbmsKICB9KTsKfQpmdW5jdGlvbiBtYXBQb3N0KHApewogIGNvbnN0IGUgPSBwLl9lbWJlZGRlZCB8fCB7fTsKICBjb25zdCBpbWcgPSBlWyJ3cDpmZWF0dXJlZG1lZGlhIl0gJiYgZVsid3A6ZmVhdHVyZWRtZWRpYSJdWzBdOwogIGNvbnN0IGNhdCA9IGVbIndwOnRlcm0iXSAmJiBlWyJ3cDp0ZXJtIl1bMF0gJiYgZVsid3A6dGVybSJdWzBdWzBdOwogIGNvbnN0IGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsgZC5pbm5lckhUTUwgPSBwLmV4Y2VycHQgPyBwLmV4Y2VycHQucmVuZGVyZWQgOiAiIjsKICByZXR1cm4geyBzbHVnOnAuc2x1ZywgdGl0bGU6ZGVjb2RlKHAudGl0bGUucmVuZGVyZWQpLCBkYXRlOnAuZGF0ZSwgY2F0ZWdvcnk6IGNhdCA\/IGRlY29kZShjYXQubmFtZSkgOiAiSW5zaWdodHMiLAogICAgZXhjZXJwdDogZC50ZXh0Q29udGVudC50cmltKCkucmVwbGFjZSgvXHMqXFvigKZcXXxccypSZWFkIG1vcmUuKiQvaSwiIiksIGh0bWw6cC5jb250ZW50LnJlbmRlcmVkLAogICAgaW1hZ2U6IGltZyAmJiBpbWcuc291cmNlX3VybCA\/IHsgc3JjOihpbWcubWVkaWFfZGV0YWlscyYmaW1nLm1lZGlhX2RldGFpbHMuc2l6ZXMmJmltZy5tZWRpYV9kZXRhaWxzLnNpemVzLmxhcmdlID8gaW1nLm1lZGlhX2RldGFpbHMuc2l6ZXMubGFyZ2Uuc291cmNlX3VybCA6IGltZy5zb3VyY2VfdXJsKSwgYWx0OiBpbWcuYWx0X3RleHQgfHwgZGVjb2RlKHAudGl0bGUucmVuZGVyZWQpIH0gOiBudWxsIH07Cn0KY29uc3Qgc3RhdGUgPSB7IHByb2R1Y3RzOiBbXSwgcG9zdHM6IFtdLCBsaXZlOiBmYWxzZSwgcG9zdHNMaXZlOiBmYWxzZSwgZmlsdGVyOiB7IHE6IiIsIGJyYW5kczpuZXcgU2V0KCksIHByb2NzOm5ldyBTZXQoKSB9LCBibG9nQ2F0OiAiQWxsIiwgcHJlZmlsbDogIiIgfTsKY29uc3QgaXNMaXZlSG9zdCA9ICgpID0+IENPTkZJRy5MSVZFX0hPU1RTLmluY2x1ZGVzKGxvY2F0aW9uLmhvc3RuYW1lKTsKZnVuY3Rpb24gd2l0aFRpbWVvdXQocHIsIG1zKXsgcmV0dXJuIFByb21pc2UucmFjZShbcHIsIG5ldyBQcm9taXNlKChfLHIpPT5zZXRUaW1lb3V0KCgpPT5yKG5ldyBFcnJvcigidGltZW91dCIpKSxtcykpXSk7IH0KYXN5bmMgZnVuY3Rpb24gbG9hZERhdGEoKXsKICBzdGF0ZS5wcm9kdWN0cyA9IFNBTVBMRV9QUk9EVUNUUy5tYXAocCA9PiBlbnJpY2goey4uLnB9KSk7CiAgc3RhdGUucG9zdHMgPSBTQU1QTEVfUE9TVFMuc2xpY2UoKTsKICBpZiAoIWlzTGl2ZUhvc3QoKSkgcmV0dXJuOwogIGNvbnN0IGdldEFsbFByb2R1Y3RzID0gYXN5bmMgKCkgPT4geyBsZXQgYWxsID0gW10sIHBhZ2UgPSAxOwogICAgd2hpbGUgKHBhZ2UgPD0gMTApeyBjb25zdCByID0gYXdhaXQgZmV0Y2goQ09ORklHLlJFU1QoIi93Yy9zdG9yZS92MS9wcm9kdWN0cyIpICsgIiZwZXJfcGFnZT0xMDAmcGFnZT0iICsgcGFnZSk7IGlmICghci5vaykgYnJlYWs7CiAgICAgIGNvbnN0IGogPSBhd2FpdCByLmpzb24oKTsgYWxsID0gYWxsLmNvbmNhdChqKTsgaWYgKGoubGVuZ3RoIDwgMTAwKSBicmVhazsgcGFnZSsrOyB9CiAgICByZXR1cm4gYWxsOyB9OwogIGNvbnN0IFtwcm9kcywgcG9zdHNdID0gYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKFsKICAgIHdpdGhUaW1lb3V0KGdldEFsbFByb2R1Y3RzKCksIDgwMDApLAogICAgd2l0aFRpbWVvdXQoZmV0Y2goQ09ORklHLlJFU1QoIi93cC92Mi9wb3N0cyIpICsgIiZwZXJfcGFnZT01MCZfZW1iZWQ9MSIpLnRoZW4ociA9PiByLm9rID8gci5qc29uKCkgOiBQcm9taXNlLnJlamVjdChyLnN0YXR1cykpLCA4MDAwKQogIF0pOwogIGlmIChwcm9kcy5zdGF0dXMgPT09ICJmdWxmaWxsZWQiICYmIHByb2RzLnZhbHVlLmxlbmd0aCl7IHN0YXRlLnByb2R1Y3RzID0gcHJvZHMudmFsdWUubWFwKG1hcFdvbyk7IHN0YXRlLmxpdmUgPSB0cnVlOyB9CiAgaWYgKHBvc3RzLnN0YXR1cyA9PT0gImZ1bGZpbGxlZCIgJiYgcG9zdHMudmFsdWUubGVuZ3RoKXsgc3RhdGUucG9zdHMgPSBwb3N0cy52YWx1ZS5tYXAobWFwUG9zdCk7IHN0YXRlLnBvc3RzTGl2ZSA9IHRydWU7IH0KfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIDUpIFNFTwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KZnVuY3Rpb24gc2V0TWV0YSh7IHRpdGxlLCBkZXNjLCBwYXRoLCBsZCB9KXsKICBkb2N1bWVudC50aXRsZSA9IHRpdGxlOwogIGNvbnN0IHNldCA9IChzZWwsIGF0dHIsIHZhbCkgPT4geyBsZXQgZWwgPSAkKHNlbCk7CiAgICBpZiAoIWVsICYmIHNlbC5zdGFydHNXaXRoKCJtZXRhIikpeyBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm1ldGEiKTsgY29uc3QgbSA9IHNlbC5tYXRjaCgvXFsobmFtZXxwcm9wZXJ0eSk9IihbXiJdKykiXF0vKTsgaWYgKG0pIGVsLnNldEF0dHJpYnV0ZShtWzFdLCBtWzJdKTsgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChlbCk7IH0KICAgIGlmIChlbCkgZWwuc2V0QXR0cmlidXRlKGF0dHIsIHZhbCk7IH07CiAgc2V0KCdtZXRhW25hbWU9ImRlc2NyaXB0aW9uIl0nLCJjb250ZW50IixkZXNjKTsKICBzZXQoJ21ldGFbcHJvcGVydHk9Im9nOnRpdGxlIl0nLCJjb250ZW50Iix0aXRsZSk7CiAgc2V0KCdtZXRhW3Byb3BlcnR5PSJvZzpkZXNjcmlwdGlvbiJdJywiY29udGVudCIsZGVzYyk7CiAgc2V0KCdtZXRhW3Byb3BlcnR5PSJvZzp1cmwiXScsImNvbnRlbnQiLGFicyhwYXRoKSk7CiAgaWYgKCFXUF9NT0RFKSBzZXQoJ2xpbmtbcmVsPSJjYW5vbmljYWwiXScsImhyZWYiLGFicyhwYXRoKSk7CiAgY29uc3Qgb3JnID0geyAiQHR5cGUiOiJPcmdhbml6YXRpb24iLCAiQGlkIjpDT05GSUcuU0lURV9VUkwrIi8jb3JnIiwgbmFtZTpDT05GSUcuQlVTSU5FU1NfTkFNRSwgdXJsOkNPTkZJRy5TSVRFX1VSTCwKICAgIC4uLihDT05GSUcuTE9HT19VUkwgPyB7IGxvZ286IG5ldyBVUkwoQ09ORklHLkxPR09fVVJMLCBDT05GSUcuU0lURV9VUkwpLmhyZWYgfSA6IHt9KSB9OwogIGxldCBsZEVsID0gJCgiI2xkIik7IGlmICghbGRFbCl7IGxkRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsgbGRFbC50eXBlID0gImFwcGxpY2F0aW9uL2xkK2pzb24iOyBsZEVsLmlkID0gImxkIjsgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsZEVsKTsgfQogIGxkRWwudGV4dENvbnRlbnQgPSBKU09OLnN0cmluZ2lmeSh7ICJAY29udGV4dCI6Imh0dHBzOi8vc2NoZW1hLm9yZyIsICJAZ3JhcGgiOltvcmcsIC4uLihsZHx8W10pXSB9KTsKfQpmdW5jdGlvbiBsb2NhbEJ1c2luZXNzTEQoKXsKICBjb25zdCBsYiA9IHsgIkB0eXBlIjoiTG9jYWxCdXNpbmVzcyIsICJAaWQiOkNPTkZJRy5TSVRFX1VSTCsiLyNidXNpbmVzcyIsIG5hbWU6Q09ORklHLkJVU0lORVNTX05BTUUsIHVybDpDT05GSUcuU0lURV9VUkwsCiAgICBkZXNjcmlwdGlvbjoiQjJCIHdob2xlc2FsZSBzdXBwbGllciBvZiB1c2VkIGFuZCByZWZ1cmJpc2hlZCBsYXB0b3BzIHRvIGRlYWxlcnMsIHJlc2VsbGVycywgZGlzdHJpYnV0b3JzIGFuZCBidXNpbmVzcyBidXllcnMuIiwKICAgIGFkZHJlc3M6eyAiQHR5cGUiOiJQb3N0YWxBZGRyZXNzIiwgYWRkcmVzc0xvY2FsaXR5OiJHdXJnYW9uIiwgYWRkcmVzc1JlZ2lvbjoiSGFyeWFuYSIsIGFkZHJlc3NDb3VudHJ5OiJJTiIgfSB9OwogIGlmICghaXNQaChDT05GSUcuUEhPTkUpKSBsYi50ZWxlcGhvbmUgPSBDT05GSUcuUEhPTkU7CiAgaWYgKCFpc1BoKENPTkZJRy5FTUFJTCkpIGxiLmVtYWlsID0gQ09ORklHLkVNQUlMOwogIHJldHVybiBsYjsKfQpjb25zdCBjcnVtYkxEID0gKG5hbWUsIHBhdGgpID0+ICh7ICJAdHlwZSI6IkJyZWFkY3J1bWJMaXN0IiwgaXRlbUxpc3RFbGVtZW50OlsKICB7ICJAdHlwZSI6Ikxpc3RJdGVtIiwgcG9zaXRpb246MSwgbmFtZToiSG9tZSIsIGl0ZW06YWJzKCIvIikgfSwgeyAiQHR5cGUiOiJMaXN0SXRlbSIsIHBvc2l0aW9uOjIsIG5hbWUsIGl0ZW06YWJzKHBhdGgpIH0gXX0pOwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIDYpIFNIQVJFRCBDT01QT05FTlRTCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwpjb25zdCBOQVYgPSBbWyIvIiwiSG9tZSJdLFsiL2Fib3V0IiwiQWJvdXQgVXMiXSxbIi9wcm9kdWN0cyIsIlByb2R1Y3RzIl0sWyIvYmxvZ3MiLCJCbG9ncyJdLFsiL2NvbnRhY3QiLCJDb250YWN0IFVzIl1dOwpmdW5jdGlvbiBsb2dvSFRNTChmb290ZXIpewogIGNvbnN0IGltZyA9IGA8aW1nIHNyYz0iJHtlc2MoQ09ORklHLkxPR09fVVJMKX0iIGFsdD0iUy5LLiBJbmZvd2F5cyDigJMgQWxsIEFib3V0IExhcHRvcHMiIHdpZHRoPSI0MjkiIGhlaWdodD0iMTMyIj5gOwogIHJldHVybiBmb290ZXIgPyBgPHNwYW4gY2xhc3M9ImZsb2dvIj4ke2ltZ308L3NwYW4+YCA6IGltZzsKfQpmdW5jdGlvbiByZW5kZXJDaHJvbWUoKXsKICAkKCIjbG9nby1oIikuaW5uZXJIVE1MID0gbG9nb0hUTUwoZmFsc2UpOyAkKCIjbG9nby1oIikuaHJlZiA9IGhyZWYoIi8iKTsKICAkKCIjbmF2IikuaW5uZXJIVE1MID0gTkFWLm1hcCgoW3AsbF0pID0+IGA8YSBocmVmPSIke2hyZWYocCl9IiBkYXRhLWxpbmsgZGF0YS1wYXRoPSIke3B9Ij4ke2x9PC9hPmApLmpvaW4oIiIpOwogICQoIiN3YS1oZHIiKS5ocmVmID0gd2FHZW5lcmFsKCk7ICQoIiN3YS1oZHIiKS5pbm5lckhUTUwgPSBpY29uKCJjaGF0IikgKyAiV2hhdHNBcHAiOwogICQoIiNtbmF2IikuaW5uZXJIVE1MID0gTkFWLm1hcCgoW3AsbF0pID0+IGA8YSBjbGFzcz0ibWwiIGhyZWY9IiR7aHJlZihwKX0iIGRhdGEtbGluayBkYXRhLXBhdGg9IiR7cH0iPiR7bH08L2E+YCkuam9pbigiIikKICAgICsgYDxhIGNsYXNzPSJidG4gYnRuLXdhIiBocmVmPSIke3dhR2VuZXJhbCgpfSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPiR7aWNvbigiY2hhdCIpfUNoYXQgb24gV2hhdHNBcHA8L2E+CiAgICAgICA8cCBjbGFzcz0ibW5vdGUiPiR7ZXNjKENPTkZJRy5BRERSRVNTKX08L3A+YDsKICAkKCIjd2EtZmxvYXQiKS5ocmVmID0gd2FHZW5lcmFsKCk7ICQoIiN3YS1mbG9hdCIpLmlubmVySFRNTCA9IGljb24oImNoYXQiKSArICI8c3Bhbj5XaGF0c0FwcDwvc3Bhbj4iOwogICQoIiNmdHIiKS5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz0id3JhcCI+CiAgICA8ZGl2IGNsYXNzPSJmZ3JpZDQiPgogICAgICA8ZGl2PjxhIGNsYXNzPSJsb2dvIiBocmVmPSIke2hyZWYoIi8iKX0iIGRhdGEtbGluaz4ke2xvZ29IVE1MKHRydWUpfTwvYT4KICAgICAgICA8cCBjbGFzcz0iZmFib3V0Ij5CMkIgd2hvbGVzYWxlIHN1cHBsaWVyIG9mIHVzZWQgYW5kIHJlZnVyYmlzaGVkIGxhcHRvcHMgdG8gZGVhbGVycywgcmVzZWxsZXJzIGFuZCBidXNpbmVzcyBidXllcnMuPC9wPgogICAgICAgIDxhIGNsYXNzPSJidG4gYnRuLXdhIGJ0bi1zbSIgaHJlZj0iJHt3YUdlbmVyYWwoKX0iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj4ke2ljb24oImNoYXQiKX1XaGF0c0FwcCB1czwvYT48L2Rpdj4KICAgICAgPGRpdj48aDM+UGFnZXM8L2gzPjx1bD4ke05BVi5tYXAoKFtwLGxdKSA9PiBgPGxpPjxhIGhyZWY9IiR7aHJlZihwKX0iIGRhdGEtbGluaz4ke2x9PC9hPjwvbGk+YCkuam9pbigiIil9PC91bD48L2Rpdj4KICAgICAgPGRpdj48aDM+U3RvY2s8L2gzPjx1bD4ke1siRGVsbCIsIkxlbm92byIsIkhQIiwiTWljcm9zb2Z0IiwiQXBwbGUiXS5tYXAoYiA9PiBgPGxpPjxhIGhyZWY9IiR7aHJlZigiL3Byb2R1Y3RzIil9IiBkYXRhLWxpbmsgZGF0YS1icmFuZD0iJHtifSI+VXNlZCAke2J9IGxhcHRvcHM8L2E+PC9saT5gKS5qb2luKCIiKX08L3VsPjwvZGl2PgogICAgICA8ZGl2PjxoMz5Db250YWN0PC9oMz48dWw+CiAgICAgICAgPGxpPiR7ZXNjKENPTkZJRy5BRERSRVNTKX08L2xpPgogICAgICAgIDxsaT4ke3Bob25lc0hUTUwoKX08L2xpPgogICAgICAgIDxsaT4ke2lzUGgoQ09ORklHLkVNQUlMKSA\/IHNob3coQ09ORklHLkVNQUlMKSA6IGA8YSBocmVmPSJtYWlsdG86JHtlc2MoQ09ORklHLkVNQUlMKX0iPiR7ZXNjKENPTkZJRy5FTUFJTCl9PC9hPmB9PC9saT4KICAgICAgICA8bGk+JHtzaG93KENPTkZJRy5IT1VSUyl9PC9saT48L3VsPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmYm90dG9tIj48c3Bhbj7CqSAke25ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKX0gU0sgSW5mb3dheXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9zcGFuPjxzcGFuPlVzZWQgJmFtcDsgcmVmdXJiaXNoZWQgbGFwdG9wcyB3aG9sZXNhbGUsIEd1cmdhb24sIEluZGlhPC9zcGFuPjwvZGl2PgogIDwvZGl2PmA7Cn0KY29uc3Qgd2FEaXNwbGF5ID0gKCkgPT4gIisiICsgQ09ORklHLldIQVRTQVBQX05VTUJFUi5yZXBsYWNlKC9eOTEoXGR7NX0pKFxkezV9KSQvLCAiOTEgJDEgJDIiKTsKZnVuY3Rpb24gcGhvbmVzSFRNTCgpewogIHJldHVybiBbQ09ORklHLlBIT05FLCBDT05GSUcuUEhPTkVfMl0uZmlsdGVyKEJvb2xlYW4pLm1hcChwID0+IGlzUGgocCkgPyBzaG93KHApIDogYDxhIGhyZWY9InRlbDoke2VzYyhwLnJlcGxhY2UoL1xzL2csIiIpKX0iPiR7ZXNjKHApfTwvYT5gKS5qb2luKCI8YnI+Iik7Cn0KZnVuY3Rpb24gcHJvZHVjdENhcmQocCwgb25Qcm9kdWN0cyl7CiAgcmV0dXJuIGA8YXJ0aWNsZSBjbGFzcz0icGNhcmQgcmV2ZWFsIj4KICAgIDxidXR0b24gY2xhc3M9InBtZWRpYSIgZGF0YS1vcGVuPSIke2VzYyhwLmlkKX0iIGFyaWEtbGFiZWw9IlZpZXcgZGV0YWlsczogJHtlc2MocE5hbWUocCkpfSI+CiAgICAgICR7cHJvZHVjdE1lZGlhKHApfTxzcGFuIGNsYXNzPSJ0YWciPiR7ZXNjKHAuY29uZGl0aW9uKX08L3NwYW4+JHtwLnF0eSA\/IGA8c3BhbiBjbGFzcz0idGFnIHF0eSI+UXR5OiAke2VzYyhwLnF0eSl9PC9zcGFuPmAgOiAiIn0KICAgIDwvYnV0dG9uPgogICAgPGRpdiBjbGFzcz0icGJvZHkiPgogICAgICA8c3BhbiBjbGFzcz0icGJyYW5kIj4ke2VzYyhwLmJyYW5kKX08L3NwYW4+CiAgICAgIDxoMz4ke3AudXJsID8gYDxhIGNsYXNzPSJwbGluayIgaHJlZj0iJHtlc2MocC51cmwpfSIgZGF0YS1vcGVuPSIke2VzYyhwLmlkKX0iPiR7ZXNjKHAubW9kZWwpfTwvYT5gIDogZXNjKHAubW9kZWwpfTwvaDM+CiAgICAgIDxkbCBjbGFzcz0ic3BlY3MiPgogICAgICAgIDxkaXY+PGR0PlByb2Nlc3NvcjwvZHQ+PGRkPiR7ZXNjKHAuY3B1fHwi4oCUIil9PC9kZD48L2Rpdj4KICAgICAgICA8ZGl2PjxkdD5SQU08L2R0PjxkZD4ke2VzYyhwLnJhbXx8IuKAlCIpfTwvZGQ+PC9kaXY+CiAgICAgICAgPGRpdj48ZHQ+U3RvcmFnZTwvZHQ+PGRkPiR7ZXNjKHAuc3RvcmFnZXx8IuKAlCIpfTwvZGQ+PC9kaXY+CiAgICAgICAgPGRpdj48ZHQ+U2NyZWVuPC9kdD48ZGQ+JHtlc2MocC5zY3JlZW58fCLigJQiKX08L2RkPjwvZGl2PgogICAgICA8L2RsPgogICAgICA8ZGl2IGNsYXNzPSJwbWV0YSI+PHNwYW4gY2xhc3M9ImNvbmQiPiR7ZXNjKHAuY29uZGl0aW9uKX08L3NwYW4+CiAgICAgICAgPGEgY2xhc3M9InByaWNlLXJlcSIgaHJlZj0iJHt3YVByb2R1Y3QocCl9IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciI+UmVxdWVzdCB3aG9sZXNhbGUgcHJpY2U8L2E+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InBhY3Rpb25zIj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSIgZGF0YS1vcGVuPSIke2VzYyhwLmlkKX0iPlZpZXcgZGV0YWlsczwvYnV0dG9uPgogICAgICAgIDxhIGNsYXNzPSJidG4gYnRuLXdhIGJ0bi1zbSIgaHJlZj0iJHt3YVByb2R1Y3QocCl9IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgYXJpYS1sYWJlbD0iV2hhdHNBcHAgZW5xdWlyeSBmb3IgJHtlc2MocE5hbWUocCkpfSI+JHtpY29uKCJjaGF0Iil9RW5xdWlyZTwvYT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj48L2FydGljbGU+YDsKfQpmdW5jdGlvbiBjdGFCYW5kKGgsIHAsIHNlY29uZCl7CiAgcmV0dXJuIGA8c2VjdGlvbiBjbGFzcz0ic2VjIiBzdHlsZT0icGFkZGluZy10b3A6MCI+PGRpdiBjbGFzcz0id3JhcCI+PGRpdiBjbGFzcz0iY3RhIG9uLWRhcmsgcmV2ZWFsIj4KICAgIDxkaXY+PGgyPiR7aH08L2gyPjxwPiR7cH08L3A+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJidG5zIj4ke3NlY29uZH08YSBjbGFzcz0iYnRuIGJ0bi13YSIgaHJlZj0iJHt3YUdlbmVyYWwoKX0iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj4ke2ljb24oImNoYXQiKX1XaGF0c0FwcCB1czwvYT48L2Rpdj4KICA8L2Rpdj48L2Rpdj48L3NlY3Rpb24+YDsKfQpmdW5jdGlvbiBzYW1wbGVOb3RpY2UoKXsgcmV0dXJuIHN0YXRlLmxpdmUgPyAiIiA6IGA8cCBjbGFzcz0ibm90aWNlIj5QcmV2aWV3IHdpdGggc2FtcGxlIHN0b2NrLiBPbiBza2luZm93YXlzLmNvbSB0aGlzIGxpc3Qgc2hvd3MgeW91ciBsaXZlIHByb2R1Y3RzIGZyb20gdGhlIFdlYnNpdGUgUHJvZHVjdHMgc2hlZXQuPC9wPmA7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICA3KSBQQUdFUwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KZnVuY3Rpb24gSG9tZSgpewogIGNvbnN0IGZlYXQgPSAoc3RhdGUucHJvZHVjdHMuZmlsdGVyKHA9PnAuZmVhdHVyZWQpLmxlbmd0aCA+PSA0ID8gc3RhdGUucHJvZHVjdHMuZmlsdGVyKHA9PnAuZmVhdHVyZWQpIDogc3RhdGUucHJvZHVjdHMpLnNsaWNlKDAsNik7CiAgY29uc3QgZiA9IHN0YXRlLnByb2R1Y3RzLmZpbmQocCA9PiBwTmFtZShwKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKENPTkZJRy5IRVJPX1BST0RVQ1QudG9Mb3dlckNhc2UoKSkpIHx8IGZlYXRbMF07CiAgc2V0TWV0YSh7IHRpdGxlOiJVc2VkICYgUmVmdXJiaXNoZWQgTGFwdG9wcyBXaG9sZXNhbGUgaW4gSW5kaWEgfCBTSyBJbmZvd2F5cyIsIHBhdGg6Ii8iLAogICAgZGVzYzoiU0sgSW5mb3dheXMgc3VwcGxpZXMgcXVhbGl0eSB1c2VkIGFuZCByZWZ1cmJpc2hlZCBsYXB0b3BzIGluIGJ1bGsgdG8gZGVhbGVycywgcmVzZWxsZXJzLCBkaXN0cmlidXRvcnMgYW5kIGJ1c2luZXNzIGJ1eWVycy4gRGVsbCwgTGVub3ZvLCBIUCwgTWljcm9zb2Z0IGFuZCBBcHBsZSBzdG9jayBmcm9tIEd1cmdhb24uIiwKICAgIGxkOltsb2NhbEJ1c2luZXNzTEQoKSwgeyAiQHR5cGUiOiJXZWJTaXRlIiwgbmFtZToiU0sgSW5mb3dheXMiLCB1cmw6Q09ORklHLlNJVEVfVVJMIH1dIH0pOwogIHJldHVybiBgCiAgPHNlY3Rpb24gY2xhc3M9Imhlcm8gb24tZGFyayI+PGRpdiBjbGFzcz0id3JhcCI+CiAgICA8ZGl2PgogICAgICA8aDE+PHNwYW4gY2xhc3M9ImgtbGluZSI+VXNlZCBMYXB0b3BzLjwvc3Bhbj48c3BhbiBjbGFzcz0iaC1saW5lIj5XaG9sZXNhbGUgQnVzaW5lc3MuPC9zcGFuPjxzcGFuIGNsYXNzPSJoLWxpbmUiPlRydXN0ZWQgU3VwcGx5Ljwvc3Bhbj48L2gxPgogICAgICA8cCBjbGFzcz0ibGVhZCBoLWZhZGUiPlF1YWxpdHkgdXNlZCBhbmQgcmVmdXJiaXNoZWQgbGFwdG9wcyBzdXBwbGllZCBpbiBidWxrIHRvIGRlYWxlcnMsIHJlc2VsbGVycywgZGlzdHJpYnV0b3JzIGFuZCBidXNpbmVzcyBidXllcnMuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJoZXJvLWN0YXMgaC1mYWRlIj4KICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IiBocmVmPSIke2hyZWYoIi9wcm9kdWN0cyIpfSIgZGF0YS1saW5rPlZpZXcgcHJvZHVjdHM8L2E+CiAgICAgICAgPGEgY2xhc3M9ImJ0biBidG4tZ2hvc3QiIGhyZWY9IiR7d2FHZW5lcmFsKCl9IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciI+JHtpY29uKCJjaGF0Iil9V2hhdHNBcHAgdXM8L2E+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJoZXJvLW5vdGUgaC1mYWRlIj48c3Bhbj4ke2ljb24oInBpbiIpfUd1cmdhb24sIEluZGlhPC9zcGFuPjxzcGFuPiR7aWNvbigibGFwdG9wIil9RGVsbCwgTGVub3ZvLCBIUCwgTWljcm9zb2Z0LCBBcHBsZTwvc3Bhbj48L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iaGVyby1hcnQiPgogICAgICAke2YgJiYgZi5pbWFnZXMubGVuZ3RoID8gYDxkaXYgY2xhc3M9Imhlcm8tcGhvdG8iPjxpbWcgc3JjPSIke2VzYyhmLmltYWdlc1swXS5zcmMpfSIgYWx0PSIke2VzYyhwTmFtZShmKSl9IOKAkyByZWZ1cmJpc2hlZCBsYXB0b3AgYXQgU0sgSW5mb3dheXMiIGZldGNocHJpb3JpdHk9ImhpZ2giPjwvZGl2PmAgOiBoZXJvQXJ0KGYgPyBmLmJyYW5kIDogIkRlbGwiKX0KICAgICAgJHtmID8gYDxidXR0b24gY2xhc3M9ImxvdCIgZGF0YS1vcGVuPSIke2VzYyhmLmlkKX0iIGFyaWEtbGFiZWw9IlZpZXcgJHtlc2MocE5hbWUoZikpfSI+CiAgICAgICAgPHNtYWxsPkluIHN0b2NrIG5vdzwvc21hbGw+PHN0cm9uZz4ke2VzYyhwTmFtZShmKSl9PC9zdHJvbmc+CiAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTouODJyZW07Y29sb3I6IzVBNjc3OSI+JHtlc2MoW2YuY3B1LGYucmFtLGYuc3RvcmFnZV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiB8ICIpKX08L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InJvdyI+PHNwYW4+Q29uZGl0aW9uIDxiPiR7ZXNjKGYuY29uZGl0aW9uKX08L2I+PC9zcGFuPjxzcGFuPlF0eSA8Yj4ke2VzYyhmLnF0eSl9PC9iPjwvc3Bhbj48L3NwYW4+PC9idXR0b24+YCA6ICIifQogICAgPC9kaXY+CiAgPC9kaXY+PC9zZWN0aW9uPgoKICA8c2VjdGlvbiBjbGFzcz0iaGwiIGFyaWEtbGFiZWw9IkJ1c2luZXNzIGhpZ2hsaWdodHMiPjxkaXYgY2xhc3M9IndyYXAiPgogICAgJHtbWyJzdGFjayIsIkJ1bGsgcXVhbnRpdGllcyIsIlN0b2NrIHN1cHBsaWVkIGJ5IHRoZSBsb3QiXSxbInNoaWVsZCIsIlF1YWxpdHkgY2hlY2tlZCBzdG9jayIsIlNwZWNzIGFuZCBjb25kaXRpb24gc3RhdGVkIl0sWyJsYXllcnMiLCJNdWx0aXBsZSBicmFuZHMiLCJEZWxsLCBMZW5vdm8sIEhQIGFuZCBtb3JlIl0sWyJicmllZiIsIkIyQiB3aG9sZXNhbGUiLCJGb3IgZGVhbGVycyBhbmQgYnVzaW5lc3NlcyJdXQogICAgICAubWFwKChbaSx0LGRdKSA9PiBgPGRpdiBjbGFzcz0iaGwtaXRlbSI+PHNwYW4gY2xhc3M9ImljLWJveCI+JHtpY29uKGkpfTwvc3Bhbj48ZGl2PjxoMz4ke3R9PC9oMz48cD4ke2R9PC9wPjwvZGl2PjwvZGl2PmApLmpvaW4oIiIpfQogIDwvZGl2Pjwvc2VjdGlvbj4KCiAgPHNlY3Rpb24gY2xhc3M9InNlYyBhbHQiPjxkaXYgY2xhc3M9IndyYXAiPgogICAgPGRpdiBjbGFzcz0ic2VjLWhlYWQgcmV2ZWFsIj48ZGl2PjxoMj5GZWF0dXJlZCBzdG9jazwvaDI+PHAgY2xhc3M9ImxlYWQiPkEgc2VsZWN0aW9uIG9mIHdoYXQncyBhdmFpbGFibGUgbm93LiBQcmljZXMgYXJlIHNoYXJlZCBvbiBlbnF1aXJ5LjwvcD48L2Rpdj4KICAgICAgPGEgY2xhc3M9ImJ0biBidG4tZ2hvc3QiIGhyZWY9IiR7aHJlZigiL3Byb2R1Y3RzIil9IiBkYXRhLWxpbms+VmlldyBhbGwgcHJvZHVjdHM8L2E+PC9kaXY+CiAgICAke3NhbXBsZU5vdGljZSgpfQogICAgPGRpdiBjbGFzcz0iZ3JpZC1wIj4ke2ZlYXQubWFwKHAgPT4gcHJvZHVjdENhcmQocCkpLmpvaW4oIiIpfTwvZGl2PgogIDwvZGl2Pjwvc2VjdGlvbj4KCiAgPHNlY3Rpb24gY2xhc3M9InNlYyIgc3R5bGU9InBhZGRpbmc6NTZweCAwIDAiPjxkaXYgY2xhc3M9IndyYXAiPgogICAgPGRpdiBjbGFzcz0iYnJhbmRzIHJldmVhbCIgYXJpYS1sYWJlbD0iQnJhbmRzIHdlIHN0b2NrIj48c21hbGw+QnJhbmRzIHdlIHN0b2NrPC9zbWFsbD48c3Bhbj5EZWxsPC9zcGFuPjxzcGFuPkxlbm92bzwvc3Bhbj48c3Bhbj5IUDwvc3Bhbj48c3Bhbj5NaWNyb3NvZnQ8L3NwYW4+PHNwYW4+QXBwbGU8L3NwYW4+PC9kaXY+CiAgPC9kaXY+PC9zZWN0aW9uPgoKICA8c2VjdGlvbiBjbGFzcz0ic2VjIj48ZGl2IGNsYXNzPSJ3cmFwIj4KICAgIDxkaXYgY2xhc3M9InNlYy1oZWFkIHJldmVhbCI+PGRpdj48aDI+V2h5IFNLIEluZm93YXlzPC9oMj48L2Rpdj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9IndoeSI+CiAgICAgICR7W1sidGFyZ2V0IiwiV2hvbGVzYWxlIGZvY3VzIiwiRm9jdXNlZCBvbiBCMkIgbGFwdG9wIHN1cHBseS4iXSxbImJveGVzIiwiQnVsayBhdmFpbGFiaWxpdHkiLCJTdWl0YWJsZSBmb3IgZGVhbGVycywgcmVzZWxsZXJzIGFuZCBidXNpbmVzcyBidXllcnMuIl0sWyJzaGllbGQiLCJRdWFsaXR5IGNvbnNjaW91cyIsIlN0b2NrIGlzIGNoZWNrZWQgYW5kIHNwZWNpZmljYXRpb25zIGFyZSBjbGVhcmx5IHByZXNlbnRlZC4iXSxbImxpbmsiLCJMb25nLXRlcm0gYnVzaW5lc3MiLCJGb2N1c2VkIG9uIGJ1aWxkaW5nIHJlbGlhYmxlIEIyQiByZWxhdGlvbnNoaXBzLiJdXQogICAgICAgIC5tYXAoKFtpLHQsZF0pID0+IGA8ZGl2IGNsYXNzPSJ3Y2FyZCByZXZlYWwiPiR7aWNvbihpKX08aDM+JHt0fTwvaDM+PHA+JHtkfTwvcD48L2Rpdj5gKS5qb2luKCIiKX0KICAgIDwvZGl2PgogIDwvZGl2Pjwvc2VjdGlvbj4KCiAgJHtjdGFCYW5kKCJMb29raW5nIGZvciBsYXB0b3BzIGluIGJ1bGs\/IiwiTGV0J3MgZGlzY3VzcyB5b3VyIHJlcXVpcmVtZW50LiIsYDxhIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiIGhyZWY9IiR7aHJlZigiL3Byb2R1Y3RzIil9IiBkYXRhLWxpbms+VmlldyBwcm9kdWN0czwvYT5gKX1gOwp9CgpmdW5jdGlvbiBBYm91dCgpewogIHNldE1ldGEoeyB0aXRsZToiQWJvdXQgU0sgSW5mb3dheXMgfCBVc2VkIExhcHRvcCBXaG9sZXNhbGUgU3VwcGxpZXIgaW4gR3VyZ2FvbiIsIHBhdGg6Ii9hYm91dCIsCiAgICBkZXNjOiJTSyBJbmZvd2F5cyBpcyBhIEd1cmdhb24tYmFzZWQgd2hvbGVzYWxlIHN1cHBsaWVyIG9mIHVzZWQgYW5kIHJlZnVyYmlzaGVkIGxhcHRvcHMgZm9yIGRlYWxlcnMsIHJlc2VsbGVycywgZGlzdHJpYnV0b3JzIGFuZCBidWxrIGJ1c2luZXNzIGJ1eWVycy4iLAogICAgbGQ6W2xvY2FsQnVzaW5lc3NMRCgpLCBjcnVtYkxEKCJBYm91dCBVcyIsIi9hYm91dCIpXSB9KTsKICBjb25zdCBvZmZlciA9IFsKICAgIFsibGFwdG9wIiwiVXNlZCBsYXB0b3BzIiwiQnVzaW5lc3MtZ3JhZGUgdXNlZCBsYXB0b3BzLCBsaXN0ZWQgd2l0aCBjbGVhciBzcGVjaWZpY2F0aW9ucy4iLCJ1c2VkIGxhcHRvcHMiXSwKICAgIFsicmVmcmVzaCIsIlJlZnVyYmlzaGVkIGxhcHRvcHMiLCJDaGVja2VkIGFuZCBwcmVwYXJlZCB1bml0cywgcmVhZHkgZm9yIHJlc2FsZSBvciBkZXBsb3ltZW50LiIsInJlZnVyYmlzaGVkIGxhcHRvcHMiXSwKICAgIFsic3RhY2siLCJCdWxrIGxhcHRvcCBsb3RzIiwiTG90cyBvZiB0aGUgc2FtZSBtb2RlbCBhbmQgc3BlYyBmb3IgZWFzaWVyIHJlc2FsZS4iLCJidWxrIGxhcHRvcCBsb3RzIl0sCiAgICBbImJ1aWxkaW5nIiwiQnVzaW5lc3MgLyBjb3Jwb3JhdGUgcmVxdWlyZW1lbnRzIiwiTGFwdG9wcyBmb3Igb2ZmaWNlcywgdGVhbXMgYW5kIGluc3RpdHV0aW9uYWwgYnV5ZXJzLiIsImEgYnVzaW5lc3MgLyBjb3Jwb3JhdGUgcmVxdWlyZW1lbnQiXSwKICAgIFsic3RvcmUiLCJEZWFsZXIgJiByZXNlbGxlciBzdXBwbHkiLCJSZWd1bGFyIHN0b2NrIGZvciBzaG9wcywgZGVhbGVycyBhbmQgb25saW5lIHJlc2VsbGVycy4iLCJkZWFsZXIgLyByZXNlbGxlciBzdXBwbHkiXQogIF07CiAgcmV0dXJuIGAKICA8c2VjdGlvbiBjbGFzcz0icGhlcm8gb24tZGFyayI+PGRpdiBjbGFzcz0id3JhcCI+CiAgICA8bmF2IGNsYXNzPSJjcnVtYnMiIGFyaWEtbGFiZWw9IkJyZWFkY3J1bWIiPjxhIGhyZWY9IiR7aHJlZigiLyIpfSIgZGF0YS1saW5rPkhvbWU8L2E+IC8gQWJvdXQgVXM8L25hdj4KICAgIDxoMT5BYm91dCBTSyBJbmZvd2F5czwvaDE+CiAgICA8cCBjbGFzcz0ibGVhZCI+WW91ciBCMkIgcGFydG5lciBmb3IgcXVhbGl0eSB1c2VkIGxhcHRvcHMuPC9wPgogIDwvZGl2Pjwvc2VjdGlvbj4KCiAgPHNlY3Rpb24gY2xhc3M9InNlYyI+PGRpdiBjbGFzcz0id3JhcCBzcGxpdCI+CiAgICA8ZGl2IGNsYXNzPSJwcm9zZS1zIHJldmVhbCI+CiAgICAgIDxoMj5PdXIgYnVzaW5lc3M8L2gyPgogICAgICA8cD5TSyBJbmZvd2F5cyBpcyBhIEd1cmdhb24tYmFzZWQgd2hvbGVzYWxlIGJ1c2luZXNzIHN1cHBseWluZyB1c2VkIGFuZCByZWZ1cmJpc2hlZCBsYXB0b3BzIHRvIGRlYWxlcnMsIHJlc2VsbGVycywgZGlzdHJpYnV0b3JzIGFuZCBidWxrIGJ1eWVycy48L3A+CiAgICAgIDxwPldlIGtlZXAgYSBidWxrIGludmVudG9yeSBvZiBidXNpbmVzcy1ncmFkZSBtb2RlbHMgZnJvbSBEZWxsLCBMZW5vdm8sIEhQLCBNaWNyb3NvZnQgYW5kIEFwcGxlIOKAlCB0aGUgbGFwdG9wcyBvZmZpY2VzIGFjdHVhbGx5IHVzZSwgYW5kIGN1c3RvbWVycyBhY3R1YWxseSBhc2sgZm9yLjwvcD4KICAgICAgPHA+RXZlcnkgbGlzdGluZyBzdGF0ZXMgdGhlIHByb2Nlc3NvciwgbWVtb3J5LCBzdG9yYWdlLCBzY3JlZW4gYW5kIGNvbmRpdGlvbiwgc28geW91IGNhbiBjb21wYXJlIHN0b2NrIHF1aWNrbHkgYW5kIHBsYW4geW91ciBvcmRlci48L3A+CiAgICAgIDxwPldob2xlc2FsZSBzdG9jayBtb3ZlcyBmYXN0LCBzbyBwcmljaW5nIGlzIHNoYXJlZCBvbiBlbnF1aXJ5LiBNZXNzYWdlIHVzIG9uIFdoYXRzQXBwIGFuZCB3ZSdsbCByZXBseSB3aXRoIGN1cnJlbnQgcHJpY2UsIHF1YW50aXR5IGFuZCBwaG90b3MuPC9wPgogICAgPC9kaXY+CiAgICA8ZGwgY2xhc3M9ImZhY3RzIHJldmVhbCI+CiAgICAgIDxkaXY+PGR0PkJhc2VkIGluPC9kdD48ZGQ+R3VyZ2FvbiwgSGFyeWFuYTwvZGQ+PC9kaXY+CiAgICAgIDxkaXY+PGR0PkJ1c2luZXNzPC9kdD48ZGQ+QjJCIHdob2xlc2FsZTwvZGQ+PC9kaXY+CiAgICAgIDxkaXY+PGR0PlN0b2NrPC9kdD48ZGQ+VXNlZCAmYW1wOyByZWZ1cmJpc2hlZCBsYXB0b3BzPC9kZD48L2Rpdj4KICAgICAgPGRpdj48ZHQ+QnJhbmRzPC9kdD48ZGQ+RGVsbCwgTGVub3ZvLCBIUCwgTWljcm9zb2Z0LCBBcHBsZTwvZGQ+PC9kaXY+CiAgICAgIDxkaXY+PGR0PkJ1eWVyczwvZHQ+PGRkPkRlYWxlcnMsIHJlc2VsbGVycywgZGlzdHJpYnV0b3JzLCBidXNpbmVzc2VzPC9kZD48L2Rpdj4KICAgICAgJHtDT05GSUcuWUVBUlNfRVhQRVJJRU5DRSA\/IGA8ZGl2PjxkdD5JbiB0aGUgbGFwdG9wIHRyYWRlPC9kdD48ZGQ+JHtlc2MoQ09ORklHLllFQVJTX0VYUEVSSUVOQ0UpfSB5ZWFyczwvZGQ+PC9kaXY+YCA6ICIifQogICAgPC9kbD4KICA8L2Rpdj48L3NlY3Rpb24+CgogIDxzZWN0aW9uIGNsYXNzPSJzZWMgYWx0Ij48ZGl2IGNsYXNzPSJ3cmFwIj4KICAgIDxkaXYgY2xhc3M9InNlYy1oZWFkIHJldmVhbCI+PGRpdj48aDI+V2hhdCB3ZSBvZmZlcjwvaDI+PHAgY2xhc3M9ImxlYWQiPlRlbGwgdXMgd2hpY2ggZml0cyB5b3VyIHJlcXVpcmVtZW50IOKAlCBlYWNoIGNhcmQgb3BlbnMgYSBXaGF0c0FwcCBlbnF1aXJ5LjwvcD48L2Rpdj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9Im9mZmVyIj4KICAgICAgJHtvZmZlci5tYXAoKFtpLHQsZCxxXSkgPT4gYDxkaXYgY2xhc3M9Im9jYXJkIHJldmVhbCI+JHtpY29uKGkpfTxoMz4ke3R9PC9oMz48cD4ke2R9PC9wPgogICAgICAgIDxhIGNsYXNzPSJsaW5rIiBocmVmPSIke3dhTGluayhgSGVsbG8gU0sgSW5mb3dheXMsIEkgd291bGQgbGlrZSB0byBlbnF1aXJlIGFib3V0ICR7cX0uYCl9IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciI+RW5xdWlyZSBvbiBXaGF0c0FwcDwvYT48L2Rpdj5gKS5qb2luKCIiKX0KICAgIDwvZGl2PgogIDwvZGl2Pjwvc2VjdGlvbj4KCiAgPHNlY3Rpb24gY2xhc3M9InNlYyI+PGRpdiBjbGFzcz0id3JhcCI+CiAgICA8ZGl2IGNsYXNzPSJzZWMtaGVhZCByZXZlYWwiPjxkaXY+PGgyPk91ciBhcHByb2FjaDwvaDI+PHAgY2xhc3M9ImxlYWQiPkZvdXIgc3RlcHMgZnJvbSBzb3VyY2luZyB0byB5b3VyIGRvb3IuPC9wPjwvZGl2PjwvZGl2PgogICAgPG9sIGNsYXNzPSJzdGVwcyIgc3R5bGU9Imxpc3Qtc3R5bGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjAiPgogICAgICAke1tbIlNvdXJjZSIsIkJ1c2luZXNzLWdyYWRlIGxhcHRvcHMgc291cmNlZCBpbiBsb3RzLiJdLFsiQ2hlY2siLCJFYWNoIHVuaXQgY2hlY2tlZCBhbmQgaXRzIHNwZWNpZmljYXRpb25zIHJlY29yZGVkLiJdLFsiUHJlcGFyZSIsIkNsZWFuZWQsIGdyYWRlZCBhbmQgcHJlcGFyZWQgZm9yIGRpc3BhdGNoLiJdLFsiU3VwcGx5IiwiU3VwcGxpZWQgdG8gZGVhbGVycywgcmVzZWxsZXJzIGFuZCBidXNpbmVzcyBidXllcnMuIl1dCiAgICAgICAgLm1hcCgoW3QsZF0sbikgPT4gYDxsaSBjbGFzcz0ic3RlcCByZXZlYWwiPjxzcGFuIGNsYXNzPSJudW0iPiR7bisxfTwvc3Bhbj48aDM+JHt0fTwvaDM+PHA+JHtkfTwvcD48L2xpPmApLmpvaW4oIiIpfQogICAgPC9vbD4KICA8L2Rpdj48L3NlY3Rpb24+CgogICR7Y3RhQmFuZCgiTG9va2luZyBmb3IgYSByZWxpYWJsZSB3aG9sZXNhbGUgbGFwdG9wIHN1cHBsaWVyPyIsIkNvbnRhY3QgU0sgSW5mb3dheXMgZm9yIGN1cnJlbnQgc3RvY2sgYW5kIHByaWNpbmcuIixgPGEgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSIgaHJlZj0iJHtocmVmKCIvY29udGFjdCIpfSIgZGF0YS1saW5rPkNvbnRhY3QgU0sgSW5mb3dheXM8L2E+YCl9YDsKfQoKZnVuY3Rpb24gUHJvZHVjdHMoKXsKICBzZXRNZXRhKHsgdGl0bGU6IlVzZWQgTGFwdG9wcyBXaG9sZXNhbGUgU3RvY2sgfCBEZWxsLCBMZW5vdm8sIEhQIHwgU0sgSW5mb3dheXMiLCBwYXRoOiIvcHJvZHVjdHMiLAogICAgZGVzYzoiQnJvd3NlIGN1cnJlbnQgd2hvbGVzYWxlIHN0b2NrIG9mIHVzZWQgYW5kIHJlZnVyYmlzaGVkIERlbGwsIExlbm92bywgSFAsIE1pY3Jvc29mdCBhbmQgQXBwbGUgbGFwdG9wcy4gU2VhcmNoIGJ5IG1vZGVsIG9yIHNwZWMgYW5kIGVucXVpcmUgb24gV2hhdHNBcHAgZm9yIGJ1bGsgcHJpY2luZy4iLAogICAgbGQ6W2NydW1iTEQoIlByb2R1Y3RzIiwiL3Byb2R1Y3RzIiksIHsgIkB0eXBlIjoiSXRlbUxpc3QiLCBuYW1lOiJXaG9sZXNhbGUgbGFwdG9wIHN0b2NrIiwgaXRlbUxpc3RFbGVtZW50OiBzdGF0ZS5wcm9kdWN0cy5zbGljZSgwLDMwKS5tYXAoKHAsaSkgPT4gKHsKICAgICAgIkB0eXBlIjoiTGlzdEl0ZW0iLCBwb3NpdGlvbjppKzEsIGl0ZW06eyAiQHR5cGUiOiJQcm9kdWN0IiwgbmFtZTpwTmFtZShwKSwgLi4uKHAudXJsID8geyB1cmw6cC51cmwgfSA6IHt9KSwgYnJhbmQ6eyAiQHR5cGUiOiJCcmFuZCIsIG5hbWU6cC5icmFuZCB9LAogICAgICBkZXNjcmlwdGlvbjpbcC5jcHUscC5yYW0scC5zdG9yYWdlLHAuc2NyZWVuLHAuY29uZGl0aW9uXS5maWx0ZXIoQm9vbGVhbikuam9pbigiLCAiKSwgLi4uKHAuaW1hZ2VzWzBdID8geyBpbWFnZTpwLmltYWdlc1swXS5zcmMgfSA6IHt9KSB9IH0pKSB9XSB9KTsKICBjb25zdCBmID0gc3RhdGUuZmlsdGVyOwogIHJldHVybiBgCiAgPHNlY3Rpb24gY2xhc3M9InBoZXJvIG9uLWRhcmsiPjxkaXYgY2xhc3M9IndyYXAiPgogICAgPG5hdiBjbGFzcz0iY3J1bWJzIiBhcmlhLWxhYmVsPSJCcmVhZGNydW1iIj48YSBocmVmPSIke2hyZWYoIi8iKX0iIGRhdGEtbGluaz5Ib21lPC9hPiAvIFByb2R1Y3RzPC9uYXY+CiAgICA8aDE+V2hvbGVzYWxlIGxhcHRvcCBzdG9jazwvaDE+CiAgICA8cCBjbGFzcz0ibGVhZCI+VXNlZCBhbmQgcmVmdXJiaXNoZWQgbGFwdG9wcyBhdmFpbGFibGUgaW4gYnVsay4gUHJpY2VzIG9uIHJlcXVlc3QuPC9wPgogICAgPGRpdiBjbGFzcz0ic2VhcmNoYmFyICR7Zi5xID8gImhhcyIgOiAiIn0iIHJvbGU9InNlYXJjaCI+CiAgICAgICR7aWNvbigic2VhcmNoIil9CiAgICAgIDxsYWJlbCBmb3I9InEiIGNsYXNzPSJocCI+U2VhcmNoIGxhcHRvcHM8L2xhYmVsPgogICAgICA8aW5wdXQgaWQ9InEiIHR5cGU9InNlYXJjaCIgYXV0b2NvbXBsZXRlPSJvZmYiIHBsYWNlaG9sZGVyPSJTZWFyY2ggbGFwdG9wcyBieSBtb2RlbCwgYnJhbmQgb3Igc3BlY2lmaWNhdGlvbiIgdmFsdWU9IiR7ZXNjKGYucSl9Ij4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY2xyIiBpZD0icWNsciIgYXJpYS1sYWJlbD0iQ2xlYXIgc2VhcmNoIj4ke2ljb24oImNsb3NlIil9PC9idXR0b24+CiAgICA8L2Rpdj4KICA8L2Rpdj48L3NlY3Rpb24+CiAgPHNlY3Rpb24gY2xhc3M9InNlYyIgc3R5bGU9InBhZGRpbmctdG9wOjQ0cHgiPjxkaXYgY2xhc3M9IndyYXAgY2F0YWxvZyI+CiAgICA8ZGl2IGNsYXNzPSJzY3JpbSIgaWQ9InNjcmltIj48L2Rpdj4KICAgIDxhc2lkZSBjbGFzcz0iZmlsdGVycyIgaWQ9ImZpbHRlcnMiIGFyaWEtbGFiZWw9IkZpbHRlcnMiPgogICAgICA8ZGl2IGNsYXNzPSJmc2hlZXQtaGVhZCI+PGgyPkZpbHRlcnM8L2gyPjxidXR0b24gY2xhc3M9InhidG4iIGlkPSJmY2xvc2UiIGFyaWEtbGFiZWw9IkNsb3NlIGZpbHRlcnMiPiR7aWNvbigiY2xvc2UiKX08L2J1dHRvbj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZmdyb3VwIj48aDM+QnJhbmQ8L2gzPjxkaXYgY2xhc3M9ImNoaXBzIiBpZD0iZmIiPjwvZGl2PjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJmZ3JvdXAiPjxoMz5Qcm9jZXNzb3I8L2gzPjxkaXYgY2xhc3M9ImNoaXBzIiBpZD0iZnAiPjwvZGl2PjwvZGl2PgogICAgICA8YnV0dG9uIGNsYXNzPSJmY2xlYXIiIGlkPSJmY2xlYXIiPkNsZWFyIGFsbCBmaWx0ZXJzPC9idXR0b24+CiAgICAgIDxkaXYgY2xhc3M9ImZzaGVldC1mb290Ij48YnV0dG9uIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIiBpZD0iZmFwcGx5Ij5TaG93IGxhcHRvcHM8L2J1dHRvbj48L2Rpdj4KICAgIDwvYXNpZGU+CiAgICA8ZGl2PgogICAgICAke3NhbXBsZU5vdGljZSgpfQogICAgICA8ZGl2IGNsYXNzPSJyZXNiYXIiPjxwIGlkPSJjb3VudCIgYXJpYS1saXZlPSJwb2xpdGUiPjwvcD48ZGl2IGNsYXNzPSJhY3RpdmUtZiIgaWQ9ImFjdGl2ZWYiPjwvZGl2PjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJncmlkLXAiIGlkPSJwbGlzdCI+PC9kaXY+CiAgICA8L2Rpdj4KICAgIDxidXR0b24gY2xhc3M9ImJ0biBmYnRuIiBpZD0iZm9wZW4iPiR7aWNvbigiZmlsdGVyIil9RmlsdGVyczxzcGFuIGlkPSJmY291bnQiPjwvc3Bhbj48L2J1dHRvbj4KICA8L2Rpdj48L3NlY3Rpb24+CiAgJHtjdGFCYW5kKCJDYW4ndCBmaW5kIGEgbW9kZWw\/IiwiU3RvY2sgY2hhbmdlcyBkYWlseS4gVGVsbCB1cyB3aGF0IHlvdSBuZWVkIGFuZCB3ZSdsbCBjaGVjay4iLGA8YSBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IiBocmVmPSIke2hyZWYoIi9jb250YWN0Iil9IiBkYXRhLWxpbms+U2VuZCBhIHJlcXVpcmVtZW50PC9hPmApfWA7Cn0KZnVuY3Rpb24gZmlsdGVyZWQoaWdub3JlKXsKICBjb25zdCBmID0gc3RhdGUuZmlsdGVyOyBjb25zdCB0b2tzID0gZi5xLnRvTG93ZXJDYXNlKCkuc3BsaXQoL1xzKy8pLmZpbHRlcihCb29sZWFuKTsKICByZXR1cm4gc3RhdGUucHJvZHVjdHMuZmlsdGVyKHAgPT4KICAgIHRva3MuZXZlcnkodCA9PiBwLmhheS5pbmNsdWRlcyh0KSkgJiYKICAgIChpZ25vcmU9PT0iYiIgfHwgIWYuYnJhbmRzLnNpemUgfHwgZi5icmFuZHMuaGFzKHAuYnJhbmQpKSAmJgogICAgKGlnbm9yZT09PSJwIiB8fCAhZi5wcm9jcy5zaXplIHx8IGYucHJvY3MuaGFzKHAucHJvYykpKTsKfQpmdW5jdGlvbiBtb3VudFByb2R1Y3RzKCl7CiAgY29uc3QgZiA9IHN0YXRlLmZpbHRlcjsKICBjb25zdCBkcmF3ID0gKCkgPT4gewogICAgY29uc3QgbGlzdCA9IGZpbHRlcmVkKCk7CiAgICBjb25zdCBiQmFzZSA9IGZpbHRlcmVkKCJiIiksIHBCYXNlID0gZmlsdGVyZWQoInAiKTsKICAgICQoIiNmYiIpLmlubmVySFRNTCA9IEJSQU5EUy5tYXAoYiA9PiB7IGNvbnN0IG4gPSBiQmFzZS5maWx0ZXIocD0+cC5icmFuZD09PWIpLmxlbmd0aDsKICAgICAgcmV0dXJuIGA8YnV0dG9uIGNsYXNzPSJjaGlwIiBkYXRhLWZiPSIke2J9IiBhcmlhLXByZXNzZWQ9IiR7Zi5icmFuZHMuaGFzKGIpfSIgJHshbiAmJiAhZi5icmFuZHMuaGFzKGIpID8gImRpc2FibGVkIiA6ICIifT4ke2J9PHNwYW4gY2xhc3M9Im4iPiR7bn08L3NwYW4+PC9idXR0b24+YDsgfSkuam9pbigiIik7CiAgICAkKCIjZnAiKS5pbm5lckhUTUwgPSBQUk9DUy5tYXAoYiA9PiB7IGNvbnN0IG4gPSBwQmFzZS5maWx0ZXIocD0+cC5wcm9jPT09YikubGVuZ3RoOwogICAgICByZXR1cm4gYDxidXR0b24gY2xhc3M9ImNoaXAiIGRhdGEtZnA9IiR7Yn0iIGFyaWEtcHJlc3NlZD0iJHtmLnByb2NzLmhhcyhiKX0iICR7IW4gJiYgIWYucHJvY3MuaGFzKGIpID8gImRpc2FibGVkIiA6ICIifT4ke2J9PHNwYW4gY2xhc3M9Im4iPiR7bn08L3NwYW4+PC9idXR0b24+YDsgfSkuam9pbigiIik7CiAgICBjb25zdCBuQWN0ID0gZi5icmFuZHMuc2l6ZSArIGYucHJvY3Muc2l6ZTsKICAgICQoIiNmY291bnQiKS50ZXh0Q29udGVudCA9IG5BY3QgPyBgICgke25BY3R9KWAgOiAiIjsKICAgICQoIiNmYXBwbHkiKS50ZXh0Q29udGVudCA9IGBTaG93ICR7bGlzdC5sZW5ndGh9IGxhcHRvcCR7bGlzdC5sZW5ndGg9PT0xPyIiOiJzIn1gOwogICAgJCgiI2NvdW50IikuaW5uZXJIVE1MID0gYDxiPiR7bGlzdC5sZW5ndGh9PC9iPiBvZiAke3N0YXRlLnByb2R1Y3RzLmxlbmd0aH0gbGFwdG9wc2A7CiAgICAkKCIjYWN0aXZlZiIpLmlubmVySFRNTCA9IFsuLi5mLmJyYW5kc10ubWFwKGI9PmA8YnV0dG9uIGRhdGEtcmI9IiR7Yn0iIGFyaWEtbGFiZWw9IlJlbW92ZSAke2J9Ij4ke2J9ICR7aWNvbigiY2xvc2UiKX08L2J1dHRvbj5gKS5qb2luKCIiKQogICAgICArIFsuLi5mLnByb2NzXS5tYXAoYj0+YDxidXR0b24gZGF0YS1ycD0iJHtifSIgYXJpYS1sYWJlbD0iUmVtb3ZlICR7Yn0iPiR7Yn0gJHtpY29uKCJjbG9zZSIpfTwvYnV0dG9uPmApLmpvaW4oIiIpOwogICAgJCQoIiNhY3RpdmVmIC5pYyIpLmZvckVhY2goaSA9PiB7IGkuc3R5bGUud2lkdGg9IjE0cHgiOyBpLnN0eWxlLmhlaWdodD0iMTRweCI7IH0pOwogICAgJCgiI3BsaXN0IikuaW5uZXJIVE1MID0gbGlzdC5sZW5ndGggPyBsaXN0Lm1hcChwID0+IHByb2R1Y3RDYXJkKHAsIHRydWUpKS5qb2luKCIiKQogICAgICA6IGA8ZGl2IGNsYXNzPSJlbXB0eSIgc3R5bGU9ImdyaWQtY29sdW1uOjEvLTEiPjxoMz5ObyBsYXB0b3BzIG1hdGNoPC9oMz48cD5UcnkgYSBkaWZmZXJlbnQgc2VhcmNoLCBvciBzZW5kIHVzIHlvdXIgcmVxdWlyZW1lbnQg4oCUIG5ldyBzdG9jayBhcnJpdmVzIHJlZ3VsYXJseS48L3A+CiAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6MTBweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtd3JhcDp3cmFwIj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLWdob3N0IiBpZD0icmVzZXQiPkNsZWFyIHNlYXJjaCBhbmQgZmlsdGVyczwvYnV0dG9uPgogICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi13YSIgaHJlZj0iJHt3YUxpbmsoYEhlbGxvIFNLIEluZm93YXlzLCBJIGFtIGxvb2tpbmcgZm9yOiAke2YucSB8fCAibGFwdG9wcyJ9LiBQbGVhc2UgbGV0IG1lIGtub3cgd2hhdCB5b3UgaGF2ZS5gKX0iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj4ke2ljb24oImNoYXQiKX1Bc2sgb24gV2hhdHNBcHA8L2E+PC9kaXY+PC9kaXY+YDsKICAgICQkKCIjcGxpc3QgLnJldmVhbCIpLmZvckVhY2goZWwgPT4gZWwuY2xhc3NMaXN0LmFkZCgiaW4iKSk7CiAgfTsKICBjb25zdCBxID0gJCgiI3EiKTsgbGV0IHQ7CiAgcS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsICgpID0+IHsgY2xlYXJUaW1lb3V0KHQpOyB0ID0gc2V0VGltZW91dCgoKSA9PiB7IGYucSA9IHEudmFsdWUudHJpbSgpOyAkKCIuc2VhcmNoYmFyIikuY2xhc3NMaXN0LnRvZ2dsZSgiaGFzIiwgISFmLnEpOyBkcmF3KCk7IH0sIDYwKTsgfSk7CiAgJCgiI3FjbHIiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHsgcS52YWx1ZT0iIjsgZi5xPSIiOyAkKCIuc2VhcmNoYmFyIikuY2xhc3NMaXN0LnJlbW92ZSgiaGFzIik7IGRyYXcoKTsgcS5mb2N1cygpOyB9KTsKICBjb25zdCBzaGVldCA9ICQoIiNmaWx0ZXJzIiksIHNjcmltID0gJCgiI3NjcmltIik7CiAgY29uc3Qgb3BlblMgPSBvID0+IHsgc2hlZXQuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsIG8pOyBzY3JpbS5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIiwgbyk7IGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSBvID8gImhpZGRlbiIgOiAiIjsgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJvdmVybGF5Iiwgbyk7IH07CiAgJCgiI2ZvcGVuIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiBvcGVuUyh0cnVlKSk7CiAgJCgiI2ZjbG9zZSIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gb3BlblMoZmFsc2UpKTsKICAkKCIjZmFwcGx5IikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7IG9wZW5TKGZhbHNlKTsgd2luZG93LnNjcm9sbFRvKHsgdG9wOiAkKCIjY291bnQiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyBzY3JvbGxZIC0gMTIwLCBiZWhhdmlvcjoic21vb3RoIiB9KTsgfSk7CiAgc2NyaW0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiBvcGVuUyhmYWxzZSkpOwogIGNvbnN0IHJlc2V0ID0gKCkgPT4geyBmLmJyYW5kcy5jbGVhcigpOyBmLnByb2NzLmNsZWFyKCk7IGYucT0iIjsgcS52YWx1ZT0iIjsgJCgiLnNlYXJjaGJhciIpLmNsYXNzTGlzdC5yZW1vdmUoImhhcyIpOyBkcmF3KCk7IH07CiAgJCgiI2ZjbGVhciIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4geyBmLmJyYW5kcy5jbGVhcigpOyBmLnByb2NzLmNsZWFyKCk7IGRyYXcoKTsgfSk7CiAgJCgiLmNhdGFsb2ciKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGUgPT4gewogICAgY29uc3QgYiA9IGUudGFyZ2V0LmNsb3Nlc3QoIltkYXRhLWZiXSxbZGF0YS1mcF0sW2RhdGEtcmJdLFtkYXRhLXJwXSwjcmVzZXQiKTsgaWYgKCFiKSByZXR1cm47CiAgICBpZiAoYi5pZCA9PT0gInJlc2V0IikgcmV0dXJuIHJlc2V0KCk7CiAgICBjb25zdCB0b2cgPSAoc2V0LHYpID0+IHNldC5oYXModikgPyBzZXQuZGVsZXRlKHYpIDogc2V0LmFkZCh2KTsKICAgIGlmIChiLmRhdGFzZXQuZmIpIHRvZyhmLmJyYW5kcywgYi5kYXRhc2V0LmZiKTsgaWYgKGIuZGF0YXNldC5mcCkgdG9nKGYucHJvY3MsIGIuZGF0YXNldC5mcCk7CiAgICBpZiAoYi5kYXRhc2V0LnJiKSBmLmJyYW5kcy5kZWxldGUoYi5kYXRhc2V0LnJiKTsgaWYgKGIuZGF0YXNldC5ycCkgZi5wcm9jcy5kZWxldGUoYi5kYXRhc2V0LnJwKTsKICAgIGRyYXcoKTsKICB9KTsKICBkcmF3KCk7Cn0KCmZ1bmN0aW9uIGJsb2dJbWcocCl7CiAgcmV0dXJuIHAuaW1hZ2UgPyBgPGltZyBzcmM9IiR7ZXNjKHAuaW1hZ2Uuc3JjKX0iIGFsdD0iJHtlc2MocC5pbWFnZS5hbHQpfSIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj5gCiAgICA6IGA8c3ZnIHZpZXdCb3g9IjAgMCA4MDAgNDUwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBzbGljZSIgYXJpYS1oaWRkZW49InRydWUiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYmcke3VpZE59IiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMEExODMwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMTczNDVGIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+CiAgICAgIDxyZWN0IHdpZHRoPSI4MDAiIGhlaWdodD0iNDUwIiBmaWxsPSJ1cmwoI2JnJHt1aWROKyt9KSIvPjxnIHN0cm9rZT0icmdiYSgyNTUsMjU1LDI1NSwuMDcpIj4ke0FycmF5LmZyb20oe2xlbmd0aDoxNH0sKF8saSk9PmA8cGF0aCBkPSJNJHtpKjYwfSAwdjQ1MCIvPmApLmpvaW4oIiIpfSR7QXJyYXkuZnJvbSh7bGVuZ3RoOjh9LChfLGkpPT5gPHBhdGggZD0iTTAgJHtpKjYwfWg4MDAiLz5gKS5qb2luKCIiKX08L2c+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI1MCAxMTApIHNjYWxlKC45NSkiIG9wYWNpdHk9Ii45NSI+JHtsYXB0b3BBcnQoWyJEZWxsIiwiTGVub3ZvIiwiSFAiLCJNaWNyb3NvZnQiXVtwLnRpdGxlLmxlbmd0aCU0XSkucmVwbGFjZSgnPHN2ZycsJzxzdmcgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyMTAiJyl9PC9nPjwvc3ZnPmA7Cn0KZnVuY3Rpb24gQmxvZ3MoKXsKICBzZXRNZXRhKHsgdGl0bGU6IkxhcHRvcCBXaG9sZXNhbGUgR3VpZGVzICYgSW5zaWdodHMgfCBTSyBJbmZvd2F5cyBCbG9nIiwgcGF0aDoiL2Jsb2dzIiwKICAgIGRlc2M6IlByYWN0aWNhbCBndWlkZXMgZm9yIGRlYWxlcnMgYW5kIGJ1c2luZXNzIGJ1eWVycyBvbiB1c2VkIGFuZCByZWZ1cmJpc2hlZCBsYXB0b3BzOiBldmFsdWF0aW5nIGxvdHMsIGNvbXBhcmluZyBtb2RlbHMgYW5kIGNob29zaW5nIHNwZWNpZmljYXRpb25zLiIsCiAgICBsZDpbY3J1bWJMRCgiQmxvZ3MiLCIvYmxvZ3MiKSwgeyAiQHR5cGUiOiJCbG9nIiwgbmFtZToiU0sgSW5mb3dheXMgQmxvZyIsIHVybDphYnMoIi9ibG9ncyIpIH1dIH0pOwogIGNvbnN0IGNhdHMgPSBbIkFsbCIsIC4uLm5ldyBTZXQoc3RhdGUucG9zdHMubWFwKHA9PnAuY2F0ZWdvcnkpKV07CiAgcmV0dXJuIGAKICA8c2VjdGlvbiBjbGFzcz0icGhlcm8gb24tZGFyayI+PGRpdiBjbGFzcz0id3JhcCI+CiAgICA8bmF2IGNsYXNzPSJjcnVtYnMiIGFyaWEtbGFiZWw9IkJyZWFkY3J1bWIiPjxhIGhyZWY9IiR7aHJlZigiLyIpfSIgZGF0YS1saW5rPkhvbWU8L2E+IC8gQmxvZ3M8L25hdj4KICAgIDxoMT5JbnNpZ2h0cyBmb3IgbGFwdG9wIGJ1eWVyczwvaDE+CiAgICA8cCBjbGFzcz0ibGVhZCI+R3VpZGVzIGZvciBkZWFsZXJzLCByZXNlbGxlcnMgYW5kIGJ1c2luZXNzIGJ1eWVycyB3b3JraW5nIHdpdGggdXNlZCBhbmQgcmVmdXJiaXNoZWQgbGFwdG9wcy48L3A+CiAgPC9kaXY+PC9zZWN0aW9uPgogIDxzZWN0aW9uIGNsYXNzPSJzZWMiIHN0eWxlPSJwYWRkaW5nLXRvcDo0NHB4Ij48ZGl2IGNsYXNzPSJ3cmFwIj4KICAgICR7Y2F0cy5sZW5ndGggPiAyID8gYDxkaXYgY2xhc3M9ImJjaGlwcyIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9IkZpbHRlciBieSBjYXRlZ29yeSI+JHtjYXRzLm1hcChjID0+IGA8YnV0dG9uIGNsYXNzPSJjaGlwIiBkYXRhLWJjPSIke2VzYyhjKX0iIGFyaWEtcHJlc3NlZD0iJHtzdGF0ZS5ibG9nQ2F0PT09Y30iPiR7ZXNjKGMpfTwvYnV0dG9uPmApLmpvaW4oIiIpfTwvZGl2PmAgOiAiIn0KICAgIDxkaXYgaWQ9ImJsaXN0Ij48L2Rpdj4KICA8L2Rpdj48L3NlY3Rpb24+YDsKfQpmdW5jdGlvbiBtb3VudEJsb2dzKCl7CiAgY29uc3QgZHJhdyA9ICgpID0+IHsKICAgIGNvbnN0IGxpc3QgPSBzdGF0ZS5wb3N0cy5maWx0ZXIocCA9PiBzdGF0ZS5ibG9nQ2F0PT09IkFsbCIgfHwgcC5jYXRlZ29yeT09PXN0YXRlLmJsb2dDYXQpOwogICAgY29uc3QgW2ZpcnN0LCAuLi5yZXN0XSA9IGxpc3Q7CiAgICAkKCIjYmxpc3QiKS5pbm5lckhUTUwgPSAhZmlyc3QgPyBgPGRpdiBjbGFzcz0iZW1wdHkiPjxoMz5ObyBwb3N0cyB5ZXQ8L2gzPjxwPk5ldyBhcnRpY2xlcyBhcmUgcHVibGlzaGVkIGV2ZXJ5IHdlZWsuPC9wPjwvZGl2PmAgOiBgCiAgICAgIDxhIGNsYXNzPSJiZmVhdCIgaHJlZj0iJHtocmVmKCIvYmxvZ3MvIitmaXJzdC5zbHVnKX0iIGRhdGEtbGluaz4KICAgICAgICA8ZGl2IGNsYXNzPSJiaW1nIj4ke2Jsb2dJbWcoZmlyc3QpfTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJ0eHQiPjxkaXYgY2xhc3M9ImJtZXRhIj48c3BhbiBjbGFzcz0iYmNhdCI+JHtlc2MoZmlyc3QuY2F0ZWdvcnkpfTwvc3Bhbj48dGltZSBkYXRldGltZT0iJHtlc2MoZmlyc3QuZGF0ZSl9Ij4ke2ZtdERhdGUoZmlyc3QuZGF0ZSl9PC90aW1lPjwvZGl2PgogICAgICAgICAgPGgyPiR7ZXNjKGZpcnN0LnRpdGxlKX08L2gyPjxwIGNsYXNzPSJiZXgiPiR7ZXNjKGZpcnN0LmV4Y2VycHQpfTwvcD48c3BhbiBjbGFzcz0iYm1vcmUiPlJlYWQgbW9yZTwvc3Bhbj48L2Rpdj48L2E+CiAgICAgIDxkaXYgY2xhc3M9ImJncmlkIj4ke3Jlc3QubWFwKHAgPT4gYDxhIGNsYXNzPSJiY2FyZCByZXZlYWwgaW4iIGhyZWY9IiR7aHJlZigiL2Jsb2dzLyIrcC5zbHVnKX0iIGRhdGEtbGluaz4KICAgICAgICA8ZGl2IGNsYXNzPSJiaW1nIj4ke2Jsb2dJbWcocCl9PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYnR4dCI+PGRpdiBjbGFzcz0iYm1ldGEiPjxzcGFuIGNsYXNzPSJiY2F0Ij4ke2VzYyhwLmNhdGVnb3J5KX08L3NwYW4+PHRpbWUgZGF0ZXRpbWU9IiR7ZXNjKHAuZGF0ZSl9Ij4ke2ZtdERhdGUocC5kYXRlKX08L3RpbWU+PC9kaXY+CiAgICAgICAgICA8aDM+JHtlc2MocC50aXRsZSl9PC9oMz48cCBjbGFzcz0iYmV4Ij4ke2VzYyhwLmV4Y2VycHQpfTwvcD48c3BhbiBjbGFzcz0iYm1vcmUiPlJlYWQgbW9yZTwvc3Bhbj48L2Rpdj48L2E+YCkuam9pbigiIil9PC9kaXY+YDsKICAgICQkKCJbZGF0YS1iY10iKS5mb3JFYWNoKGIgPT4gYi5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsIGIuZGF0YXNldC5iYz09PXN0YXRlLmJsb2dDYXQpKTsKICB9OwogICQkKCJbZGF0YS1iY10iKS5mb3JFYWNoKGIgPT4gYi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHsgc3RhdGUuYmxvZ0NhdCA9IGIuZGF0YXNldC5iYzsgZHJhdygpOyB9KSk7CiAgZHJhdygpOwp9CmFzeW5jIGZ1bmN0aW9uIFBvc3Qoc2x1Zyl7CiAgbGV0IHAgPSBzdGF0ZS5wb3N0cy5maW5kKHggPT4geC5zbHVnID09PSBzbHVnKTsKICBpZiAoIXAgJiYgaXNMaXZlSG9zdCgpKXsKICAgIHRyeSB7IGNvbnN0IHIgPSBhd2FpdCBmZXRjaChDT05GSUcuUkVTVCgiL3dwL3YyL3Bvc3RzIikgKyAiJnNsdWc9IiArIGVuY29kZVVSSUNvbXBvbmVudChzbHVnKSArICImX2VtYmVkPTEiKTsgY29uc3QgaiA9IGF3YWl0IHIuanNvbigpOyBpZiAoalswXSkgcCA9IG1hcFBvc3QoalswXSk7IH0gY2F0Y2goZSl7fQogIH0KICBpZiAoIXApIHJldHVybiBOb3RGb3VuZCgpOwogIGNvbnN0IHBsYWluID0gKCgpID0+IHsgY29uc3QgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsgZC5pbm5lckhUTUw9cC5odG1sOyByZXR1cm4gZC50ZXh0Q29udGVudDsgfSkoKTsKICBzZXRNZXRhKHsgdGl0bGU6YCR7cC50aXRsZX0gfCBTSyBJbmZvd2F5c2AsIHBhdGg6Ii9ibG9ncy8iK3Auc2x1ZywgZGVzYzoocC5leGNlcnB0fHxwbGFpbikuc2xpY2UoMCwxNTUpLAogICAgbGQ6W3sgIkB0eXBlIjoiQmxvZ1Bvc3RpbmciLCBoZWFkbGluZTpwLnRpdGxlLCBkYXRlUHVibGlzaGVkOnAuZGF0ZSwgYXV0aG9yOnsgIkBpZCI6Q09ORklHLlNJVEVfVVJMKyIvI29yZyIgfSwgcHVibGlzaGVyOnsgIkBpZCI6Q09ORklHLlNJVEVfVVJMKyIvI29yZyIgfSwKICAgICAgbWFpbkVudGl0eU9mUGFnZTphYnMoIi9ibG9ncy8iK3Auc2x1ZyksIC4uLihwLmltYWdlID8geyBpbWFnZTpwLmltYWdlLnNyYyB9IDoge30pIH0sCiAgICAgIHsgIkB0eXBlIjoiQnJlYWRjcnVtYkxpc3QiLCBpdGVtTGlzdEVsZW1lbnQ6W3sgIkB0eXBlIjoiTGlzdEl0ZW0iLCBwb3NpdGlvbjoxLCBuYW1lOiJIb21lIiwgaXRlbTphYnMoIi8iKSB9LHsgIkB0eXBlIjoiTGlzdEl0ZW0iLCBwb3NpdGlvbjoyLCBuYW1lOiJCbG9ncyIsIGl0ZW06YWJzKCIvYmxvZ3MiKSB9LHsgIkB0eXBlIjoiTGlzdEl0ZW0iLCBwb3NpdGlvbjozLCBuYW1lOnAudGl0bGUsIGl0ZW06YWJzKCIvYmxvZ3MvIitwLnNsdWcpIH1dIH1dIH0pOwogIGNvbnN0IG1pbnMgPSBNYXRoLm1heCgxLCBNYXRoLnJvdW5kKHBsYWluLnNwbGl0KC9ccysvKS5sZW5ndGggLyAyMDApKTsKICBjb25zdCBtb3JlID0gc3RhdGUucG9zdHMuZmlsdGVyKHggPT4geC5zbHVnICE9PSBwLnNsdWcpLnNsaWNlKDAsMyk7CiAgcmV0dXJuIGAKICA8c2VjdGlvbiBjbGFzcz0icGhlcm8gb24tZGFyayI+PGRpdiBjbGFzcz0id3JhcCIgc3R5bGU9InBhZGRpbmctYm90dG9tOjgwcHgiPjxkaXYgY2xhc3M9ImFydGljbGUiPgogICAgPGEgY2xhc3M9ImJhY2siIGhyZWY9IiR7aHJlZigiL2Jsb2dzIil9IiBkYXRhLWxpbms+JHtpY29uKCJiYWNrIil9QWxsIGFydGljbGVzPC9hPgogICAgPGRpdiBjbGFzcz0iYm1ldGEiIHN0eWxlPSJjb2xvcjojOEZBMEI0Ij48c3BhbiBjbGFzcz0iYmNhdCI+JHtlc2MocC5jYXRlZ29yeSl9PC9zcGFuPjx0aW1lIGRhdGV0aW1lPSIke2VzYyhwLmRhdGUpfSI+JHtmbXREYXRlKHAuZGF0ZSl9PC90aW1lPjxzcGFuPiR7bWluc30gbWluIHJlYWQ8L3NwYW4+PC9kaXY+CiAgICA8aDEgc3R5bGU9ImZvbnQtc2l6ZTpjbGFtcCgycmVtLDQuNHZ3LDMuMnJlbSk7bWFyZ2luLXRvcDoxNnB4Ij4ke2VzYyhwLnRpdGxlKX08L2gxPgogIDwvZGl2PjwvZGl2Pjwvc2VjdGlvbj4KICA8c2VjdGlvbiBjbGFzcz0ic2VjIiBzdHlsZT0icGFkZGluZy10b3A6MCI+PGRpdiBjbGFzcz0id3JhcCI+PGFydGljbGUgY2xhc3M9ImFydGljbGUiPgogICAgPGRpdiBjbGFzcz0iYmltZyI+JHtibG9nSW1nKHApfTwvZGl2PgogICAgPGRpdiBjbGFzcz0icHJvc2UiPiR7cC5odG1sfTwvZGl2PgogICAgPGFzaWRlIGNsYXNzPSJhY3RhIj48ZGl2PjxoMj5Mb29raW5nIGZvciBsYXB0b3BzIGluIGJ1bGs\/PC9oMj48cD5Db250YWN0IFNLIEluZm93YXlzIGZvciBjdXJyZW50IHN0b2NrIGFuZCB3aG9sZXNhbGUgcHJpY2luZy48L3A+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImJ0bnMiPjxhIGNsYXNzPSJidG4gYnRuLWdob3N0IiBzdHlsZT0iYm9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjMpO2NvbG9yOiNmZmYiIGhyZWY9IiR7aHJlZigiL2NvbnRhY3QiKX0iIGRhdGEtbGluaz5Db250YWN0IFNLIEluZm93YXlzPC9hPgogICAgICA8YSBjbGFzcz0iYnRuIGJ0bi13YSIgaHJlZj0iJHt3YUdlbmVyYWwoKX0iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj4ke2ljb24oImNoYXQiKX1XaGF0c0FwcCB1czwvYT48L2Rpdj48L2FzaWRlPgogIDwvYXJ0aWNsZT4KICAke21vcmUubGVuZ3RoID8gYDxkaXYgc3R5bGU9Im1heC13aWR0aDp2YXIoLS1tYXh3KTttYXJnaW46NzJweCBhdXRvIDAiPjxoMiBzdHlsZT0iZm9udC1zaXplOjEuNnJlbTttYXJnaW4tYm90dG9tOjI0cHgiPk1vcmUgYXJ0aWNsZXM8L2gyPjxkaXYgY2xhc3M9ImJncmlkIj4ke21vcmUubWFwKHggPT4gYDxhIGNsYXNzPSJiY2FyZCIgaHJlZj0iJHtocmVmKCIvYmxvZ3MvIit4LnNsdWcpfSIgZGF0YS1saW5rPjxkaXYgY2xhc3M9ImJpbWciPiR7YmxvZ0ltZyh4KX08L2Rpdj48ZGl2IGNsYXNzPSJidHh0Ij48ZGl2IGNsYXNzPSJibWV0YSI+PHNwYW4gY2xhc3M9ImJjYXQiPiR7ZXNjKHguY2F0ZWdvcnkpfTwvc3Bhbj48L2Rpdj48aDM+JHtlc2MoeC50aXRsZSl9PC9oMz48c3BhbiBjbGFzcz0iYm1vcmUiPlJlYWQgbW9yZTwvc3Bhbj48L2Rpdj48L2E+YCkuam9pbigiIil9PC9kaXY+PC9kaXY+YCA6ICIifQogIDwvZGl2Pjwvc2VjdGlvbj5gOwp9CgpmdW5jdGlvbiBDb250YWN0KCl7CiAgc2V0TWV0YSh7IHRpdGxlOiJDb250YWN0IFNLIEluZm93YXlzIHwgQnVsayBMYXB0b3AgU3VwcGxpZXIgaW4gR3VyZ2FvbiIsIHBhdGg6Ii9jb250YWN0IiwKICAgIGRlc2M6IlNlbmQgeW91ciBsYXB0b3AgcmVxdWlyZW1lbnQgdG8gU0sgSW5mb3dheXMsIEd1cmdhb24uIEJ1bGsgb3JkZXJzIGZvciBkZWFsZXJzIGFuZCBidXNpbmVzc2VzLCBvciBhIHNpbmdsZSBsYXB0b3AgZm9yIGhvbWUgb3Igb2ZmaWNlLiBXaGF0c0FwcCBvciBlbnF1aXJ5IGZvcm0uIiwKICAgIGxkOltsb2NhbEJ1c2luZXNzTEQoKSwgY3J1bWJMRCgiQ29udGFjdCBVcyIsIi9jb250YWN0IiksIHsgIkB0eXBlIjoiRkFRUGFnZSIsIG1haW5FbnRpdHk6IEZBUS5tYXAoKFtxLGFdKSA9PiAoeyAiQHR5cGUiOiJRdWVzdGlvbiIsIG5hbWU6cSwgYWNjZXB0ZWRBbnN3ZXI6eyAiQHR5cGUiOiJBbnN3ZXIiLCB0ZXh0OmEgfSB9KSkgfV0gfSk7CiAgY29uc3QgcHJlID0gc3RhdGUucHJlZmlsbDsgc3RhdGUucHJlZmlsbCA9ICIiOwogIHJldHVybiBgCiAgPHNlY3Rpb24gY2xhc3M9InBoZXJvIG9uLWRhcmsiPjxkaXYgY2xhc3M9IndyYXAiPgogICAgPG5hdiBjbGFzcz0iY3J1bWJzIiBhcmlhLWxhYmVsPSJCcmVhZGNydW1iIj48YSBocmVmPSIke2hyZWYoIi8iKX0iIGRhdGEtbGluaz5Ib21lPC9hPiAvIENvbnRhY3QgVXM8L25hdj4KICAgIDxoMT5MZXQncyB0YWxrIGJ1c2luZXNzPC9oMT4KICAgIDxwIGNsYXNzPSJsZWFkIj5Mb29raW5nIGZvciBsYXB0b3BzIGluIGJ1bGssIG9yIGp1c3Qgb25lIGZvciBob21lIG9yIG9mZmljZSB1c2U\/IFRlbGwgdXMgd2hhdCB5b3UgbmVlZC48L3A+CiAgPC9kaXY+PC9zZWN0aW9uPgogIDxzZWN0aW9uIGNsYXNzPSJzZWMiIHN0eWxlPSJwYWRkaW5nLXRvcDo0NHB4Ij48ZGl2IGNsYXNzPSJ3cmFwIGNncmlkIj4KICAgIDxkaXYgY2xhc3M9ImZvcm0tY2FyZCIgaWQ9ImZjYXJkIj4ke2Zvcm1IVE1MKHByZSl9PC9kaXY+CiAgICA8ZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ3YS1jYXJkIj4KICAgICAgICA8c3BhbiBjbGFzcz0iaWMtYm94Ij4ke2ljb24oImNoYXQiKX08L3NwYW4+CiAgICAgICAgPGgyPlByZWZlciBXaGF0c0FwcD88L2gyPgogICAgICAgIDxwPkNoYXQgd2l0aCBTSyBJbmZvd2F5cyBmb3IgY3VycmVudCBzdG9jaywgcHJpY2VzIGFuZCBwaG90b3MuPC9wPgogICAgICAgIDxzcGFuIGNsYXNzPSJudW0iPiR7ZXNjKHdhRGlzcGxheSgpKX08L3NwYW4+CiAgICAgICAgPGEgY2xhc3M9ImJ0biBidG4td2EgYnRuLWJsb2NrIiBocmVmPSIke3dhR2VuZXJhbCgpfSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPiR7aWNvbigiY2hhdCIpfUNoYXQgd2l0aCBTSyBJbmZvd2F5czwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxkbCBjbGFzcz0iaW5mbyI+CiAgICAgICAgPGRpdj4ke2ljb24oImJyaWVmIil9PHNwYW4+PGR0PkJ1c2luZXNzPC9kdD48ZGQ+U0sgSW5mb3dheXM8L2RkPjwvc3Bhbj48L2Rpdj4KICAgICAgICA8ZGl2PiR7aWNvbigicGluIil9PHNwYW4+PGR0PkxvY2F0aW9uPC9kdD48ZGQ+JHtlc2MoQ09ORklHLkFERFJFU1MpfTwvZGQ+PC9zcGFuPjwvZGl2PgogICAgICAgIDxkaXY+JHtpY29uKCJwaG9uZSIpfTxzcGFuPjxkdD5QaG9uZSBObyAvIFdoYXRzQXBwPC9kdD48ZGQ+JHtwaG9uZXNIVE1MKCl9PC9kZD48L3NwYW4+PC9kaXY+CiAgICAgICAgPGRpdj4ke2ljb24oIm1haWwiKX08c3Bhbj48ZHQ+RW1haWw8L2R0PjxkZD4ke2lzUGgoQ09ORklHLkVNQUlMKSA\/IHNob3coQ09ORklHLkVNQUlMKSA6IGA8YSBocmVmPSJtYWlsdG86JHtlc2MoQ09ORklHLkVNQUlMKX0iPiR7ZXNjKENPTkZJRy5FTUFJTCl9PC9hPmB9PC9kZD48L3NwYW4+PC9kaXY+CiAgICAgICAgPGRpdj4ke2ljb24oImNsb2NrIil9PHNwYW4+PGR0PkJ1c2luZXNzIGhvdXJzPC9kdD48ZGQ+JHtzaG93KENPTkZJRy5IT1VSUyl9PC9kZD48L3NwYW4+PC9kaXY+CiAgICAgIDwvZGw+CiAgICA8L2Rpdj4KICA8L2Rpdj48L3NlY3Rpb24+CiAgPHNlY3Rpb24gY2xhc3M9InNlYyBhbHQiPjxkaXYgY2xhc3M9IndyYXAiPgogICAgPGRpdiBjbGFzcz0ic2VjLWhlYWQiPjxkaXY+PGgyPkNvbW1vbiBxdWVzdGlvbnM8L2gyPjwvZGl2PjwvZGl2PgogICAgPGRpdiBjbGFzcz0iZmFxIj4ke0ZBUS5tYXAoKFtxLGFdLGkpID0+IGA8ZGV0YWlscyAke2k9PT0wPyJvcGVuIjoiIn0+PHN1bW1hcnk+JHtlc2MocSl9PC9zdW1tYXJ5PjxwIGNsYXNzPSJhbnMiPiR7ZXNjKGEpfTwvcD48L2RldGFpbHM+YCkuam9pbigiIil9PC9kaXY+CiAgPC9kaXY+PC9zZWN0aW9uPmA7Cn0KY29uc3QgRkFRID0gWwogIFsiV2h5IGFyZW4ndCBwcmljZXMgc2hvd24gb24gdGhlIHdlYnNpdGU\/IiwiV2hvbGVzYWxlIHN0b2NrIGFuZCBwcmljZXMgY2hhbmdlIG9mdGVuLiBTZW5kIGFuIGVucXVpcnkgb3IgV2hhdHNBcHAgbWVzc2FnZSB3aXRoIHRoZSBtb2RlbCB5b3UgbmVlZCwgYW5kIHdlJ2xsIHNoYXJlIHRoZSBjdXJyZW50IHByaWNlIGFuZCBhdmFpbGFibGUgcXVhbnRpdHkuIl0sCiAgWyJDYW4gSSBidXkgYSBzaW5nbGUgbGFwdG9wPyIsIlllcy4gV2Ugd29yayBtYWlubHkgd2l0aCBkZWFsZXJzIGFuZCBidWxrIGJ1eWVycywgYnV0IHlvdSBjYW4gYWxzbyBlbnF1aXJlIGZvciBvbmUgbGFwdG9wIGZvciBob21lIG9yIG9mZmljZSB1c2UuIl0sCiAgWyJDYW4gSSBzZWUgcGhvdG9zIG9mIHRoZSBhY3R1YWwgdW5pdHM\/IiwiWWVzLiBBc2sgb24gV2hhdHNBcHAgYW5kIHdlJ2xsIHNlbmQgcGhvdG9zIG9mIHRoZSBzdG9jayB5b3UncmUgaW50ZXJlc3RlZCBpbi4iXSwKICBbIldoaWNoIGJyYW5kcyBkbyB5b3Ugc3RvY2s\/IiwiTWFpbmx5IERlbGwsIExlbm92bywgSFAsIE1pY3Jvc29mdCBhbmQgQXBwbGUuIEF2YWlsYWJsZSBtb2RlbHMgY2hhbmdlIHJlZ3VsYXJseSDigJQgc2VlIHRoZSBQcm9kdWN0cyBwYWdlIGZvciBjdXJyZW50IHN0b2NrLiJdCl07CmZ1bmN0aW9uIGZvcm1IVE1MKHByZSl7CiAgcmV0dXJuIGA8aDI+U2VuZCBhbiBlbnF1aXJ5PC9oMj48cD5GaWxsIGluIHlvdXIgcmVxdWlyZW1lbnQgYW5kIHdlJ2xsIGdldCBiYWNrIHRvIHlvdS48L3A+CiAgPGZvcm0gaWQ9ImNmb3JtIiBub3ZhbGlkYXRlPgogICAgPGRpdiBjbGFzcz0iZmdyaWQiPgogICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0iZi1uYW1lIj5GdWxsIG5hbWU8L2xhYmVsPjxpbnB1dCBpZD0iZi1uYW1lIiBuYW1lPSJuYW1lIiBhdXRvY29tcGxldGU9Im5hbWUiIHJlcXVpcmVkIGFyaWEtZGVzY3JpYmVkYnk9ImUtbmFtZSI+PHNwYW4gY2xhc3M9ImVyciIgaWQ9ImUtbmFtZSI+PC9zcGFuPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0iZi1waG9uZSI+UGhvbmUgLyBXaGF0c0FwcDwvbGFiZWw+PGlucHV0IGlkPSJmLXBob25lIiBuYW1lPSJwaG9uZSIgdHlwZT0idGVsIiBpbnB1dG1vZGU9InRlbCIgYXV0b2NvbXBsZXRlPSJ0ZWwiIHBsYWNlaG9sZGVyPSIxMC1kaWdpdCBtb2JpbGUgbnVtYmVyIiByZXF1aXJlZCBhcmlhLWRlc2NyaWJlZGJ5PSJlLXBob25lIj48c3BhbiBjbGFzcz0iZXJyIiBpZD0iZS1waG9uZSI+PC9zcGFuPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0iZi1lbWFpbCI+RW1haWwgPHNwYW4gY2xhc3M9Im9wdCI+KG9wdGlvbmFsKTwvc3Bhbj48L2xhYmVsPjxpbnB1dCBpZD0iZi1lbWFpbCIgbmFtZT0iZW1haWwiIHR5cGU9ImVtYWlsIiBhdXRvY29tcGxldGU9ImVtYWlsIiBhcmlhLWRlc2NyaWJlZGJ5PSJlLWVtYWlsIj48c3BhbiBjbGFzcz0iZXJyIiBpZD0iZS1lbWFpbCI+PC9zcGFuPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0iZi1jb21wYW55Ij5Db21wYW55IC8gc2hvcCA8c3BhbiBjbGFzcz0ib3B0Ij4ob3B0aW9uYWwpPC9zcGFuPjwvbGFiZWw+PGlucHV0IGlkPSJmLWNvbXBhbnkiIG5hbWU9ImNvbXBhbnkiIGF1dG9jb21wbGV0ZT0ib3JnYW5pemF0aW9uIj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBmb3I9ImYtdHlwZSI+SSBhbSBhPC9sYWJlbD48c2VsZWN0IGlkPSJmLXR5cGUiIG5hbWU9ImJ1eWVyVHlwZSI+PG9wdGlvbj5EZWFsZXIgLyByZXNlbGxlcjwvb3B0aW9uPjxvcHRpb24+RGlzdHJpYnV0b3I8L29wdGlvbj48b3B0aW9uPkJ1c2luZXNzIC8gY29ycG9yYXRlIGJ1eWVyPC9vcHRpb24+PG9wdGlvbj5JbmRpdmlkdWFsIChob21lIC8gb2ZmaWNlIHVzZSk8L29wdGlvbj48L3NlbGVjdD48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBmb3I9ImYtcXR5Ij5RdWFudGl0eSBuZWVkZWQ8L2xhYmVsPjxzZWxlY3QgaWQ9ImYtcXR5IiBuYW1lPSJxdWFudGl0eSI+PG9wdGlvbj4xPC9vcHRpb24+PG9wdGlvbj4y4oCTMTA8L29wdGlvbj48b3B0aW9uPjEx4oCTNTA8L29wdGlvbj48b3B0aW9uPjUx4oCTMTAwPC9vcHRpb24+PG9wdGlvbj4xMDArPC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIGZ1bGwiPjxzcGFuIGNsYXNzPSJmbGFiZWwiIGlkPSJsLXByZWYiPlByZWZlcnJlZCBjb250YWN0IG1ldGhvZDwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWciIHJvbGU9InJhZGlvZ3JvdXAiIGFyaWEtbGFiZWxsZWRieT0ibC1wcmVmIj4KICAgICAgICAgIDxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImNvbnRhY3RQcmVmIiB2YWx1ZT0iV2hhdHNBcHAiIGNoZWNrZWQ+PHNwYW4+JHtpY29uKCJjaGF0Iil9V2hhdHNBcHA8L3NwYW4+PC9sYWJlbD4KICAgICAgICAgIDxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImNvbnRhY3RQcmVmIiB2YWx1ZT0iUGhvbmUgQ2FsbCI+PHNwYW4+JHtpY29uKCJwaG9uZSIpfVBob25lIGNhbGw8L3NwYW4+PC9sYWJlbD4KICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZmllbGQgZnVsbCI+PGxhYmVsIGZvcj0iZi1pbnRlcmVzdCI+TGFwdG9wIGludGVyZXN0PC9sYWJlbD48aW5wdXQgaWQ9ImYtaW50ZXJlc3QiIG5hbWU9ImludGVyZXN0IiBwbGFjZWhvbGRlcj0iZS5nLiBEZWxsIExhdGl0dWRlIDc0NDAsIGk1IDh0aCBHZW4sIDE2R0IgLyBvciBubyBpZGVhIiB2YWx1ZT0iJHtlc2MocHJlKX0iIHJlcXVpcmVkIGFyaWEtZGVzY3JpYmVkYnk9ImUtaW50ZXJlc3QiPjxzcGFuIGNsYXNzPSJlcnIiIGlkPSJlLWludGVyZXN0Ij48L3NwYW4+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIGZ1bGwiPjxsYWJlbCBmb3I9ImYtbXNnIj5NZXNzYWdlIDxzcGFuIGNsYXNzPSJvcHQiPihvcHRpb25hbCk8L3NwYW4+PC9sYWJlbD48dGV4dGFyZWEgaWQ9ImYtbXNnIiBuYW1lPSJtZXNzYWdlIiBwbGFjZWhvbGRlcj0iQnVkZ2V0LCBkZWxpdmVyeSBjaXR5LCBwcmVmZXJyZWQgc3BlY3PigKYiPjwvdGV4dGFyZWE+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImhwIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxhYmVsPkxlYXZlIGVtcHR5PGlucHV0IG5hbWU9IndlYnNpdGUiIHRhYmluZGV4PSItMSIgYXV0b2NvbXBsZXRlPSJvZmYiPjwvbGFiZWw+PC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZzdWJtaXQiPjxidXR0b24gY2xhc3M9ImJ0biBidG4tcHJpbWFyeSIgdHlwZT0ic3VibWl0IiBpZD0iZnNlbmQiPiR7aWNvbigic2VuZCIpfVNlbmQgZW5xdWlyeTwvYnV0dG9uPjxzbWFsbD5XZSBvbmx5IHVzZSB5b3VyIGRldGFpbHMgdG8gcmVwbHkgdG8gdGhpcyBlbnF1aXJ5Ljwvc21hbGw+PC9kaXY+CiAgPC9mb3JtPmA7Cn0KZnVuY3Rpb24gbW91bnRDb250YWN0KCl7CiAgY29uc3QgZm9ybSA9ICQoIiNjZm9ybSIpOyBpZiAoIWZvcm0pIHJldHVybjsKICBjb25zdCBydWxlcyA9IHsKICAgIG5hbWU6IHYgPT4gdi50cmltKCkubGVuZ3RoID49IDIgPyAiIiA6ICJFbnRlciB5b3VyIG5hbWUuIiwKICAgIHBob25lOiB2ID0+IHsgY29uc3QgZCA9IHYucmVwbGFjZSgvXEQvZywiIik7IHJldHVybiAoZC5sZW5ndGg9PT0xMCAmJiAvXls2LTldLy50ZXN0KGQpKSB8fCAoZC5sZW5ndGg9PT0xMiAmJiBkLnN0YXJ0c1dpdGgoIjkxIikpID8gIiIgOiAiRW50ZXIgYSB2YWxpZCAxMC1kaWdpdCBtb2JpbGUgbnVtYmVyLiI7IH0sCiAgICBlbWFpbDogdiA9PiAhdi50cmltKCkgfHwgL15bXlxzQF0rQFteXHNAXStcLlteXHNAXXsyLH0kLy50ZXN0KHYudHJpbSgpKSA\/ICIiIDogIkVudGVyIGEgdmFsaWQgZW1haWwsIG9yIGxlYXZlIGl0IGVtcHR5LiIsCiAgICBpbnRlcmVzdDogdiA9PiB2LnRyaW0oKS5sZW5ndGggPj0gMiA\/ICIiIDogIlRlbGwgdXMgd2hpY2ggbGFwdG9wIG9yIHNwZWMgeW91IG5lZWQuIgogIH07CiAgY29uc3QgY2hlY2sgPSAobmFtZSkgPT4geyBjb25zdCBlbCA9IGZvcm0uZWxlbWVudHNbbmFtZV07IGNvbnN0IG0gPSBydWxlc1tuYW1lXShlbC52YWx1ZSk7IGVsLnNldEF0dHJpYnV0ZSgiYXJpYS1pbnZhbGlkIiwgISFtKTsgJCgiI2UtIituYW1lKS50ZXh0Q29udGVudCA9IG07IHJldHVybiAhbTsgfTsKICBPYmplY3Qua2V5cyhydWxlcykuZm9yRWFjaChuID0+IHsgZm9ybS5lbGVtZW50c1tuXS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwgKCkgPT4gY2hlY2sobikpOyBmb3JtLmVsZW1lbnRzW25dLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgKCkgPT4geyBpZiAoZm9ybS5lbGVtZW50c1tuXS5nZXRBdHRyaWJ1dGUoImFyaWEtaW52YWxpZCIpPT09InRydWUiKSBjaGVjayhuKTsgfSk7IH0pOwogIGZvcm0uYWRkRXZlbnRMaXN0ZW5lcigic3VibWl0IiwgYXN5bmMgZSA9PiB7CiAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICBjb25zdCBvayA9IE9iamVjdC5rZXlzKHJ1bGVzKS5tYXAoY2hlY2spLmV2ZXJ5KEJvb2xlYW4pOwogICAgaWYgKCFvayl7IGNvbnN0IGJhZCA9IGZvcm0ucXVlcnlTZWxlY3RvcignW2FyaWEtaW52YWxpZD0idHJ1ZSJdJyk7IGJhZCAmJiBiYWQuZm9jdXMoKTsgcmV0dXJuOyB9CiAgICBpZiAoZm9ybS5lbGVtZW50cy53ZWJzaXRlLnZhbHVlKSByZXR1cm47IC8vIHNwYW0gdHJhcAogICAgY29uc3QgZGF0YSA9IE9iamVjdC5mcm9tRW50cmllcyhuZXcgRm9ybURhdGEoZm9ybSkpOyBkZWxldGUgZGF0YS53ZWJzaXRlOwogICAgZGF0YS5wYWdlID0gbG9jYXRpb24uaHJlZjsgZGF0YS5zdWJtaXR0ZWRBdCA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTsKICAgIGNvbnN0IGJ0biA9ICQoIiNmc2VuZCIpOyBidG4uZGlzYWJsZWQgPSB0cnVlOyBidG4uaW5uZXJIVE1MID0gYDxzcGFuIGNsYXNzPSJzcGluIj48L3NwYW4+U2VuZGluZ+KApmA7CiAgICBsZXQgc2VudCA9IGZhbHNlOwogICAgY29uc3QgRyA9IENPTkZJRy5HT09HTEVfRk9STTsKICAgIGNvbnN0IGRldGFpbHMgPSBbCiAgICAgIGRhdGEubWVzc2FnZSAmJiBkYXRhLm1lc3NhZ2UudHJpbSgpLAogICAgICBkYXRhLmVtYWlsICYmICJFbWFpbDogIiArIGRhdGEuZW1haWwudHJpbSgpLAogICAgICBkYXRhLmNvbXBhbnkgJiYgIkNvbXBhbnk6ICIgKyBkYXRhLmNvbXBhbnkudHJpbSgpLAogICAgICAiQnV5ZXIgdHlwZTogIiArIGRhdGEuYnV5ZXJUeXBlLAogICAgICAiUXVhbnRpdHk6ICIgKyBkYXRhLnF1YW50aXR5CiAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCJcbiIpOwogICAgY29uc3QgYm9keSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoeyBbRy5uYW1lXTogZGF0YS5uYW1lLnRyaW0oKSwgW0cucGhvbmVdOiBkYXRhLnBob25lLnRyaW0oKSwgW0cuaW50ZXJlc3RdOiBkYXRhLmludGVyZXN0LnRyaW0oKSwgW0cuY29udGFjdFByZWZdOiBkYXRhLmNvbnRhY3RQcmVmIHx8ICJXaGF0c0FwcCIsIFtHLmRldGFpbHNdOiBkZXRhaWxzIH0pOwogICAgaWYgKGlzTGl2ZUhvc3QoKSAmJiBHLmFjdGlvbil7CiAgICAgIHRyeSB7IGF3YWl0IGZldGNoKEcuYWN0aW9uLCB7IG1ldGhvZDoiUE9TVCIsIG1vZGU6Im5vLWNvcnMiLCBib2R5IH0pOyBzZW50ID0gdHJ1ZTsgfQogICAgICBjYXRjaChlcnIpeyBidG4uZGlzYWJsZWQgPSBmYWxzZTsgYnRuLmlubmVySFRNTCA9IGljb24oInNlbmQiKSArICJTZW5kIGVucXVpcnkiOwogICAgICAgICQoIiNlLWludGVyZXN0IikudGV4dENvbnRlbnQgPSAiVGhlIGVucXVpcnkgY291bGRuJ3QgYmUgc2VudC4gQ2hlY2sgeW91ciBjb25uZWN0aW9uIGFuZCB0cnkgYWdhaW4sIG9yIG1lc3NhZ2UgdXMgb24gV2hhdHNBcHAuIjsgcmV0dXJuOyB9CiAgICB9IGVsc2UgeyBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgNzAwKSk7IH0KICAgIGNvbnN0IGZpcnN0ID0gZGF0YS5uYW1lLnRyaW0oKS5zcGxpdCgiICIpWzBdOwogICAgJCgiI2ZjYXJkIikuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9InN1Y2Nlc3MiIHJvbGU9InN0YXR1cyI+PGRpdiBjbGFzcz0idGljayI+JHtpY29uKCJjaGVjayIpfTwvZGl2PgogICAgICA8aDI+RW5xdWlyeSBzZW50PC9oMj48cD5UaGFua3MsICR7ZXNjKGZpcnN0KX0uIFdlJ3ZlIHJlY2VpdmVkIHlvdXIgcmVxdWlyZW1lbnQgZm9yICR7ZXNjKGRhdGEuaW50ZXJlc3QpfSBhbmQgd2lsbCByZXBseSBvbiAke2VzYyhkYXRhLnBob25lKX0uPC9wPgogICAgICAke3NlbnQgPyAiIiA6IGA8cCBjbGFzcz0ibm90aWNlIiBzdHlsZT0ibWFyZ2luOi04cHggYXV0byAyMHB4Ij5QcmV2aWV3IG9ubHk6IG5vdGhpbmcgd2FzIHNlbnQuIE9uIHNraW5mb3dheXMuY29tIHRoaXMgZ29lcyB0byBGb3JtIFJlc3BvbnNlcyAxLjwvcD5gfQogICAgICA8ZGl2IGNsYXNzPSJidG5zIj48YSBjbGFzcz0iYnRuIGJ0bi13YSIgaHJlZj0iJHt3YUxpbmsoYEhlbGxvIFNLIEluZm93YXlzLCBJIGp1c3Qgc2VudCBhbiBlbnF1aXJ5IGZvciAke2RhdGEuaW50ZXJlc3R9LiBNeSBuYW1lIGlzICR7ZGF0YS5uYW1lfS5gKX0iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj4ke2ljb24oImNoYXQiKX1Gb2xsb3cgdXAgb24gV2hhdHNBcHA8L2E+CiAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tZ2hvc3QiIGlkPSJhZ2FpbiI+U2VuZCBhbm90aGVyIGVucXVpcnk8L2J1dHRvbj48L2Rpdj48L2Rpdj5gOwogICAgJCgiI2FnYWluIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7ICQoIiNmY2FyZCIpLmlubmVySFRNTCA9IGZvcm1IVE1MKCIiKTsgbW91bnRDb250YWN0KCk7IH0pOwogICAgJCgiI2ZjYXJkIikuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjoic21vb3RoIiwgYmxvY2s6ImNlbnRlciIgfSk7CiAgfSk7Cn0KCmZ1bmN0aW9uIE5vdEZvdW5kKCl7CiAgc2V0TWV0YSh7IHRpdGxlOiJQYWdlIG5vdCBmb3VuZCB8IFNLIEluZm93YXlzIiwgcGF0aDoiLyIsIGRlc2M6IlRoaXMgcGFnZSBkb2Vzbid0IGV4aXN0LiIgfSk7CiAgcmV0dXJuIGA8c2VjdGlvbiBjbGFzcz0icGhlcm8gb24tZGFyayI+PGRpdiBjbGFzcz0id3JhcCI+PGgxPlBhZ2Ugbm90IGZvdW5kPC9oMT48cCBjbGFzcz0ibGVhZCI+VGhlIHBhZ2UgeW91J3JlIGxvb2tpbmcgZm9yIGRvZXNuJ3QgZXhpc3Qgb3IgaGFzIG1vdmVkLjwvcD4KICAgIDxkaXYgY2xhc3M9Imhlcm8tY3RhcyI+PGEgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSIgaHJlZj0iJHtocmVmKCIvIil9IiBkYXRhLWxpbms+R28gdG8gaG9tZTwvYT48YSBjbGFzcz0iYnRuIGJ0bi1naG9zdCIgaHJlZj0iJHtocmVmKCIvcHJvZHVjdHMiKX0iIGRhdGEtbGluaz5WaWV3IHByb2R1Y3RzPC9hPjwvZGl2PjwvZGl2Pjwvc2VjdGlvbj5gOwp9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgOCkgUFJPRFVDVCBNT0RBTAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KbGV0IGxhc3RGb2N1cyA9IG51bGw7CmZ1bmN0aW9uIG9wZW5Nb2RhbChpZCl7CiAgY29uc3QgcCA9IHN0YXRlLnByb2R1Y3RzLmZpbmQoeCA9PiB4LmlkID09PSBpZCk7IGlmICghcCkgcmV0dXJuOwogIGxhc3RGb2N1cyA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7CiAgY29uc3Qgcm93cyA9IFtbIkJyYW5kIixwLmJyYW5kXSxbIk1vZGVsIixwLm1vZGVsXSxbIlByb2Nlc3NvciIscC5jcHVdLFsiUkFNIixwLnJhbV0sWyJTdG9yYWdlIixwLnN0b3JhZ2VdLFsiU2NyZWVuIixwLnNjcmVlbl0sWyJDb25kaXRpb24iLHAuY29uZGl0aW9uXSxbIlF1YW50aXR5IGF2YWlsYWJsZSIscC5xdHldXTsKICBpZiAocC5zcGVjcykgT2JqZWN0LmVudHJpZXMocC5zcGVjcykuZm9yRWFjaCgoW2ssdl0pID0+IHsgaWYgKCEvYnJhbmR8bW9kZWx8cHJvY2Vzc29yfGNwdXxyYW18bWVtb3J5fHNzZHxzdG9yYWdlfHNjcmVlbnxkaXNwbGF5fHRvdWNofGNvbmRpdGlvbnxncmFkZXxxdHl8cXVhbnRpdHl8c3RvY2t8cHJpY2UvaS50ZXN0KGspICYmIHYgJiYgdi5sZW5ndGggPCA4MCkgcm93cy5wdXNoKFtrLnJlcGxhY2UoL1xiXHcvZyxjPT5jLnRvVXBwZXJDYXNlKCkpLCB2XSk7IH0pOwogIGNvbnN0IG0gPSAkKCIjc2stbW9kYWwiKTsKICBtLmlubmVySFRNTCA9IGA8ZGl2IGNsYXNzPSJtc2NyaW0iIGRhdGEtY2xvc2U+PC9kaXY+CiAgPGRpdiBjbGFzcz0ibWJveCIgcm9sZT0iZGlhbG9nIiBhcmlhLW1vZGFsPSJ0cnVlIiBhcmlhLWxhYmVsbGVkYnk9Im10aXRsZSI+CiAgICA8YnV0dG9uIGNsYXNzPSJ4YnRuIG1jbG9zZSIgZGF0YS1jbG9zZSBhcmlhLWxhYmVsPSJDbG9zZSI+JHtpY29uKCJjbG9zZSIpfTwvYnV0dG9uPgogICAgPGRpdiBjbGFzcz0ibWdhbCI+PGRpdiBjbGFzcz0ibWFpbiIgaWQ9Im1tYWluIj4ke3AuaW1hZ2VzLmxlbmd0aCA\/IGA8aW1nIHNyYz0iJHtlc2MocC5pbWFnZXNbMF0uc3JjKX0iIGFsdD0iJHtlc2MocC5pbWFnZXNbMF0uYWx0KX0iPmAgOiBsYXB0b3BBcnQocC5icmFuZCwgcE5hbWUocCkpfTwvZGl2PgogICAgICAke3AuaW1hZ2VzLmxlbmd0aCA+IDEgPyBgPGRpdiBjbGFzcz0idGh1bWJzIj4ke3AuaW1hZ2VzLm1hcCgoaW0saSkgPT4gYDxidXR0b24gZGF0YS1pbWc9IiR7aX0iIGFyaWEtY3VycmVudD0iJHtpPT09MH0iIGFyaWEtbGFiZWw9IlBob3RvICR7aSsxfSI+PGltZyBzcmM9IiR7ZXNjKGltLnNyYyl9IiBhbHQ9IiIgbG9hZGluZz0ibGF6eSI+PC9idXR0b24+YCkuam9pbigiIil9PC9kaXY+YCA6ICIifQogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJtZGV0Ij4KICAgICAgPHNwYW4gY2xhc3M9InBicmFuZCI+JHtlc2MocC5icmFuZCl9PC9zcGFuPgogICAgICA8aDIgaWQ9Im10aXRsZSI+JHtlc2MocC5tb2RlbCl9PC9oMj4KICAgICAgPHRhYmxlIGNsYXNzPSJzdGFibGUiPjx0Ym9keT4ke3Jvd3MuZmlsdGVyKHI9PnJbMV0pLm1hcCgoW2ssdl0pID0+IGA8dHI+PHRoIHNjb3BlPSJyb3ciPiR7ZXNjKGspfTwvdGg+PHRkPiR7ZXNjKHYpfTwvdGQ+PC90cj5gKS5qb2luKCIiKX08L3Rib2R5PjwvdGFibGU+CiAgICAgIDxwIGNsYXNzPSJtbm90ZSI+V2hvbGVzYWxlIHByaWNlIHNoYXJlZCBvbiBlbnF1aXJ5LiBSZWFsIHBob3RvcyBvZiB0aGUgdW5pdHMgYXZhaWxhYmxlIG9uIFdoYXRzQXBwLiR7cC51cmwgPyBgIDxhIGNsYXNzPSJsaW5rIiBocmVmPSIke2VzYyhwLnVybCl9Ij5GdWxsIHByb2R1Y3QgcGFnZTwvYT5gIDogIiJ9PC9wPgogICAgICA8ZGl2IGNsYXNzPSJtYWN0aW9ucyI+CiAgICAgICAgPGEgY2xhc3M9ImJ0biBidG4td2EiIGhyZWY9IiR7d2FQcm9kdWN0KHApfSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPiR7aWNvbigiY2hhdCIpfVdoYXRzQXBwIGVucXVpcnk8L2E+CiAgICAgICAgPGEgY2xhc3M9ImJ0biBidG4tZ2hvc3QiIGhyZWY9IiR7aHJlZigiL2NvbnRhY3QiKX0iIGRhdGEtbGluayBkYXRhLXByZWZpbGw9IiR7ZXNjKHBOYW1lKHApKX0iPlNlbmQgd2hvbGVzYWxlIGVucXVpcnk8L2E+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+PC9kaXY+YDsKICBtLmhpZGRlbiA9IGZhbHNlOyBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gImhpZGRlbiI7IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgib3ZlcmxheSIpOwogICQoIi5tY2xvc2UiLCBtKS5mb2N1cygpOwogICQkKCJbZGF0YS1pbWddIiwgbSkuZm9yRWFjaChiID0+IGIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7CiAgICBjb25zdCBpbSA9IHAuaW1hZ2VzWytiLmRhdGFzZXQuaW1nXTsgJCgiI21tYWluIikuaW5uZXJIVE1MID0gYDxpbWcgc3JjPSIke2VzYyhpbS5zcmMpfSIgYWx0PSIke2VzYyhpbS5hbHQpfSI+YDsKICAgICQkKCJbZGF0YS1pbWddIiwgbSkuZm9yRWFjaCh4ID0+IHguc2V0QXR0cmlidXRlKCJhcmlhLWN1cnJlbnQiLCB4PT09YikpOwogIH0pKTsKfQpmdW5jdGlvbiBjbG9zZU1vZGFsKHJlc3RvcmU9dHJ1ZSl7CiAgY29uc3QgbSA9ICQoIiNzay1tb2RhbCIpOyBpZiAobS5oaWRkZW4pIHJldHVybjsKICBtLmhpZGRlbiA9IHRydWU7IG0uaW5uZXJIVE1MID0gIiI7IGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAiIjsgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJvdmVybGF5Iik7CiAgaWYgKHJlc3RvcmUgJiYgbGFzdEZvY3VzKSBsYXN0Rm9jdXMuZm9jdXMoKTsKfQpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgZSA9PiB7CiAgaWYgKGUua2V5ID09PSAiRXNjYXBlIil7IGNsb3NlTW9kYWwoKTsgY2xvc2VNZW51KCk7IGNvbnN0IHM9JCgiI2ZpbHRlcnMub3BlbiIpOyBpZiAocyl7IHMuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpOyAkKCIjc2NyaW0iKS5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIik7IGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9IiI7IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgib3ZlcmxheSIpOyB9IH0KICBpZiAoZS5rZXkgPT09ICJUYWIiICYmICEkKCIjc2stbW9kYWwiKS5oaWRkZW4pewogICAgY29uc3QgZiA9ICQkKCcjc2stbW9kYWwgYSwgI3NrLW1vZGFsIGJ1dHRvbicpOyBjb25zdCBmaXJzdD1mWzBdLCBsYXN0PWZbZi5sZW5ndGgtMV07CiAgICBpZiAoZS5zaGlmdEtleSAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09Zmlyc3QpeyBlLnByZXZlbnREZWZhdWx0KCk7IGxhc3QuZm9jdXMoKTsgfQogICAgZWxzZSBpZiAoIWUuc2hpZnRLZXkgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWxhc3QpeyBlLnByZXZlbnREZWZhdWx0KCk7IGZpcnN0LmZvY3VzKCk7IH0KICB9Cn0pOwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIDkpIFJPVVRFUiArIEdMT0JBTCBFVkVOVFMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCmZ1bmN0aW9uIGN1cnJlbnRQYXRoKCl7CiAgaWYgKFdQX01PREUpewogICAgY29uc3QgYXJ0ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpLmdldCgiYXJ0aWNsZSIpOwogICAgaWYgKHdpbmRvdy5TS19ST1VURSA9PT0gIi9ibG9ncyIgJiYgYXJ0KSByZXR1cm4gIi9ibG9ncy8iICsgYXJ0OwogICAgcmV0dXJuIHdpbmRvdy5TS19ST1VURTsKICB9CiAgY29uc3QgcmF3ID0gQ09ORklHLkNMRUFOX1VSTFMgPyBsb2NhdGlvbi5wYXRobmFtZSA6IChsb2NhdGlvbi5oYXNoLnJlcGxhY2UoL14jLywiIikgfHwgIi8iKTsKICByZXR1cm4gKHJhdy5zcGxpdCgiPyIpWzBdLnJlcGxhY2UoL1wvKyQvLCIiKSB8fCAiLyIpOwp9CmZ1bmN0aW9uIGNsb3NlTWVudSgpeyBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoIm1lbnUtb3BlbiIpOyAkKCIjYnVyZ2VyIikuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKTsgJCgiI2J1cmdlciIpLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsIk9wZW4gbWVudSIpOyB9CmxldCBpbzsKYXN5bmMgZnVuY3Rpb24gcmVuZGVyKCl7CiAgY29uc3QgcGF0aCA9IGN1cnJlbnRQYXRoKCk7CiAgY2xvc2VNZW51KCk7IGNsb3NlTW9kYWwoZmFsc2UpOyBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gIiI7IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgib3ZlcmxheSIpOwogIGNvbnN0IG1haW4gPSAkKCIjc2stbWFpbiIpOwogIGxldCBodG1sLCBtb3VudCA9IG51bGw7CiAgaWYgKHBhdGggPT09ICIvIikgaHRtbCA9IEhvbWUoKTsKICBlbHNlIGlmIChwYXRoID09PSAiL2Fib3V0IikgaHRtbCA9IEFib3V0KCk7CiAgZWxzZSBpZiAocGF0aCA9PT0gIi9wcm9kdWN0cyIpeyBodG1sID0gUHJvZHVjdHMoKTsgbW91bnQgPSBtb3VudFByb2R1Y3RzOyB9CiAgZWxzZSBpZiAocGF0aCA9PT0gIi9ibG9ncyIpeyBodG1sID0gQmxvZ3MoKTsgbW91bnQgPSBtb3VudEJsb2dzOyB9CiAgZWxzZSBpZiAocGF0aC5zdGFydHNXaXRoKCIvYmxvZ3MvIikpIGh0bWwgPSBhd2FpdCBQb3N0KGRlY29kZVVSSUNvbXBvbmVudChwYXRoLnNsaWNlKDcpKSk7CiAgZWxzZSBpZiAocGF0aCA9PT0gIi9jb250YWN0Iil7IGh0bWwgPSBDb250YWN0KCk7IG1vdW50ID0gbW91bnRDb250YWN0OyB9CiAgZWxzZSBodG1sID0gTm90Rm91bmQoKTsKICBtYWluLnN0eWxlLmFuaW1hdGlvbiA9ICJub25lIjsgbWFpbi5vZmZzZXRIZWlnaHQ7IG1haW4uc3R5bGUuYW5pbWF0aW9uID0gIiI7CiAgbWFpbi5pbm5lckhUTUwgPSBodG1sOwogIGlmIChtb3VudCkgbW91bnQoKTsKICB3aW5kb3cuc2Nyb2xsVG8oMCwwKTsKICAkJCgiW2RhdGEtcGF0aF0iKS5mb3JFYWNoKGEgPT4geyBjb25zdCBvbiA9IGEuZGF0YXNldC5wYXRoID09PSBwYXRoIHx8IChhLmRhdGFzZXQucGF0aCAhPT0gIi8iICYmIHBhdGguc3RhcnRzV2l0aChhLmRhdGFzZXQucGF0aCkpOyBhLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsIG9uKTsgb24gPyBhLnNldEF0dHJpYnV0ZSgiYXJpYS1jdXJyZW50IiwicGFnZSIpIDogYS5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtY3VycmVudCIpOyB9KTsKICBpZiAoaW8pIGlvLmRpc2Nvbm5lY3QoKTsKICBpbyA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihlcyA9PiBlcy5mb3JFYWNoKGVuID0+IHsgaWYgKGVuLmlzSW50ZXJzZWN0aW5nKXsgZW4udGFyZ2V0LmNsYXNzTGlzdC5hZGQoImluIik7IGlvLnVub2JzZXJ2ZShlbi50YXJnZXQpOyB9IH0pLCB7IHJvb3RNYXJnaW46IjBweCAwcHggLTglIDBweCIgfSk7CiAgJCQoIi5yZXZlYWw6bm90KC5pbikiKS5mb3JFYWNoKGVsID0+IGlvLm9ic2VydmUoZWwpKTsKfQpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGUgPT4gewogIGNvbnN0IG8gPSBlLnRhcmdldC5jbG9zZXN0KCJbZGF0YS1vcGVuXSIpOyBpZiAobyl7IGUucHJldmVudERlZmF1bHQoKTsgb3Blbk1vZGFsKG8uZGF0YXNldC5vcGVuKTsgcmV0dXJuOyB9CiAgaWYgKGUudGFyZ2V0LmNsb3Nlc3QoIltkYXRhLWNsb3NlXSIpKXsgY2xvc2VNb2RhbCgpOyByZXR1cm47IH0KICBjb25zdCBhID0gZS50YXJnZXQuY2xvc2VzdCgiYVtkYXRhLWxpbmtdIik7CiAgaWYgKGEpewogICAgaWYgKFdQX01PREUpewogICAgICBpZiAoYS5kYXRhc2V0LnByZWZpbGwpeyBlLnByZXZlbnREZWZhdWx0KCk7IGxvY2F0aW9uLmhyZWYgPSBhZGRQYXJhbShhLmdldEF0dHJpYnV0ZSgiaHJlZiIpLCAicHJvZHVjdCIsIGEuZGF0YXNldC5wcmVmaWxsKTsgfQogICAgICBlbHNlIGlmIChhLmRhdGFzZXQuYnJhbmQpeyBlLnByZXZlbnREZWZhdWx0KCk7IGxvY2F0aW9uLmhyZWYgPSBhZGRQYXJhbShhLmdldEF0dHJpYnV0ZSgiaHJlZiIpLCAiYnJhbmQiLCBhLmRhdGFzZXQuYnJhbmQpOyB9CiAgICAgIHJldHVybjsgLy8gbm9ybWFsIHBhZ2UgbmF2aWdhdGlvbgogICAgfQogICAgaWYgKGEuZGF0YXNldC5wcmVmaWxsKSBzdGF0ZS5wcmVmaWxsID0gYS5kYXRhc2V0LnByZWZpbGw7CiAgICBpZiAoYS5kYXRhc2V0LmJyYW5kKXsgc3RhdGUuZmlsdGVyLmJyYW5kcyA9IG5ldyBTZXQoW2EuZGF0YXNldC5icmFuZF0pOyBzdGF0ZS5maWx0ZXIucHJvY3MuY2xlYXIoKTsgc3RhdGUuZmlsdGVyLnEgPSAiIjsgfQogICAgY29uc3QgdGFyZ2V0ID0gYS5nZXRBdHRyaWJ1dGUoImhyZWYiKTsKICAgIGlmIChDT05GSUcuQ0xFQU5fVVJMUyl7IGUucHJldmVudERlZmF1bHQoKTsgaWYgKHRhcmdldCAhPT0gbG9jYXRpb24ucGF0aG5hbWUpIGhpc3RvcnkucHVzaFN0YXRlKHt9LCAiIiwgdGFyZ2V0KTsgcmVuZGVyKCk7IH0KICAgIGVsc2UgaWYgKHRhcmdldCA9PT0gbG9jYXRpb24uaGFzaCB8fCAodGFyZ2V0ID09PSAiIy8iICYmICFsb2NhdGlvbi5oYXNoKSl7IGUucHJldmVudERlZmF1bHQoKTsgcmVuZGVyKCk7IH0KICB9Cn0pOwppZiAoIVdQX01PREUpIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKENPTkZJRy5DTEVBTl9VUkxTID8gInBvcHN0YXRlIiA6ICJoYXNoY2hhbmdlIiwgcmVuZGVyKTsKJCgiI2J1cmdlciIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gewogIGNvbnN0IG9wZW4gPSAhZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoIm1lbnUtb3BlbiIpOwogIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgibWVudS1vcGVuIiwgb3Blbik7CiAgJCgiI2J1cmdlciIpLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsIG9wZW4pOyAkKCIjYnVyZ2VyIikuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwgb3BlbiA\/ICJDbG9zZSBtZW51IiA6ICJPcGVuIG1lbnUiKTsKfSk7CmxldCB0aWNraW5nID0gZmFsc2U7CndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCAoKSA9PiB7IGlmICh0aWNraW5nKSByZXR1cm47IHRpY2tpbmcgPSB0cnVlOyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geyAkKCIjaGRyIikuY2xhc3NMaXN0LnRvZ2dsZSgic2Nyb2xsZWQiLCBzY3JvbGxZID4gMTYpOyB0aWNraW5nID0gZmFsc2U7IH0pOyB9LCB7IHBhc3NpdmU6dHJ1ZSB9KTsKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsICgpID0+IHsgaWYgKGlubmVyV2lkdGggPiA5MDApIGNsb3NlTWVudSgpOyB9KTsKCihhc3luYyBmdW5jdGlvbiBpbml0KCl7CiAgcmVuZGVyQ2hyb21lKCk7CiAgaWYgKFdQX01PREUpeyBjb25zdCBxID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpOwogICAgaWYgKHEuZ2V0KCJwcm9kdWN0IikpIHN0YXRlLnByZWZpbGwgPSBxLmdldCgicHJvZHVjdCIpOwogICAgaWYgKHEuZ2V0KCJicmFuZCIpICYmIEJSQU5EUy5pbmNsdWRlcyhxLmdldCgiYnJhbmQiKSkpIHN0YXRlLmZpbHRlci5icmFuZHMgPSBuZXcgU2V0KFtxLmdldCgiYnJhbmQiKV0pOyB9CiAgYXdhaXQgbG9hZERhdGEoKTsKICByZW5kZXIoKTsKfSkoKTsK\"><\/script>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"unboxed","site-sidebar-style":"unboxed","ast-global-header-display":"disabled","ast-banner-title-visibility":"disabled","ast-main-header-display":"disabled","ast-hfb-above-header-display":"disabled","ast-hfb-below-header-display":"disabled","ast-hfb-mobile-header-display":"disabled","site-post-title":"disabled","ast-breadcrumbs-content":"disabled","ast-featured-img":"disabled","footer-sml-layout":"disabled","theme-transparent-header-meta":"disabled","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-37790","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/skinfoways.com\/index.php?rest_route=\/wp\/v2\/pages\/37790"}],"collection":[{"href":"https:\/\/skinfoways.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/skinfoways.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/skinfoways.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/skinfoways.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=37790"}],"version-history":[{"count":2,"href":"https:\/\/skinfoways.com\/index.php?rest_route=\/wp\/v2\/pages\/37790\/revisions"}],"predecessor-version":[{"id":37805,"href":"https:\/\/skinfoways.com\/index.php?rest_route=\/wp\/v2\/pages\/37790\/revisions\/37805"}],"wp:attachment":[{"href":"https:\/\/skinfoways.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=37790"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}